From 7ccaf87dfca5688f233612e1945085417decbf0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 10 Jul 2022 23:38:11 +0200 Subject: [PATCH 001/515] =?UTF-8?q?Pokus=20o=20lep=C5=A1=C3=AD=20orientaci?= =?UTF-8?q?=20v=20dokumentaci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.rst | 5 ++++- docs/sphinx.rst | 4 +++- docs/zapisy/zapisy.rst | 5 ++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/index.rst b/docs/index.rst index 10d6016f..5613124b 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,14 +6,17 @@ Vítejte v dokumentaci M&Mího webu! =================================== +Abychom uměli web vyvíjet, musíme ho nejdřív umět :doc:`naklonovat a spustit `. + .. toctree:: :caption: M&M web :maxdepth: 2 + :titlesonly: vyvoj sphinx - dalsi_soubory modules/modules + dalsi_soubory zapisy/zapisy diff --git a/docs/sphinx.rst b/docs/sphinx.rst index fea2c1a7..2757ae16 100644 --- a/docs/sphinx.rst +++ b/docs/sphinx.rst @@ -8,12 +8,14 @@ Jinak všechny rst, co jsou ve složce ``doc`` a jejích podsložkách nezačín Sphinx se píše v rst: `Návod na syntaxi rst`_ `Cheat sheet`_ +To je snad vše, co je potřeba vědět k dokumentaci mamwebu. Následující sekce jsou o tom, co jsem provedl Sphinxu, aby to fungovalo: + .. _Návod na syntaxi rst: https://sphinx-tutorial.readthedocs.io/step-1/#sections .. _Cheat sheet: https://sphinx-tutorial.readthedocs.io/cheatsheet/ make html --------- -Make html dělá následující: Vygenerují se rst soubory do modules z pythoní dokumentace pomocí:: +`make html` dělá následující: Vygenerují se rst soubory do modules z pythoní dokumentace pomocí:: sphinx-apidoc --module-first -o modules .. ../*/migrations --templatedir _templates -f diff --git a/docs/zapisy/zapisy.rst b/docs/zapisy/zapisy.rst index 1150a65c..7839449f 100644 --- a/docs/zapisy/zapisy.rst +++ b/docs/zapisy/zapisy.rst @@ -2,4 +2,7 @@ Zápisy ====== .. toctree:: - 2021-12-06-testovani_dokumentace_codereview \ No newline at end of file + :caption: Importy zápisů z Markdownu + :maxdepth: 1 + + 2021-12-06-testovani_dokumentace_codereview \ No newline at end of file From fd3df6c3443ba5c909be667d02b41189b146484d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Sep 2022 20:49:23 +0200 Subject: [PATCH 002/515] WIP --- docs/index.rst | 15 ++++++++++++++- docs/sphinx.rst | 2 +- docs/struktura.rst | 31 +++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 docs/struktura.rst diff --git a/docs/index.rst b/docs/index.rst index 5613124b..1fdc4ce7 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -6,7 +6,20 @@ Vítejte v dokumentaci M&Mího webu! =================================== -Abychom uměli web vyvíjet, musíme ho nejdřív umět :doc:`naklonovat a spustit `. +Tzv. produkce (tedy to, co vidí uživatelé) běží na ``_ (resp. +``_), menu, obrázky v pozadí menu a spousta stránek (ty pouze se +statickým textem/obrázky) se mění přímo na produkci. Testovací verze běží na +``_. + +Abychom uměli web vyvíjet, musíme ho většinou nejdřív umět +:doc:`naklonovat a spustit lokálně `. + +:doc:`struktura mamwebu ` se řídí hlavně djangem, ale snažíme se +také o oddělení jednotlivých částí do :doc:`samostatných aplikací +`. + +Dokumentace (jak v ``docs/``, tak přímo v kódu) je psaná ve +:doc:`sphinxu `. .. toctree:: :caption: M&M web diff --git a/docs/sphinx.rst b/docs/sphinx.rst index 2757ae16..6a9b7a53 100644 --- a/docs/sphinx.rst +++ b/docs/sphinx.rst @@ -15,7 +15,7 @@ To je snad vše, co je potřeba vědět k dokumentaci mamwebu. Následující se make html --------- -`make html` dělá následující: Vygenerují se rst soubory do modules z pythoní dokumentace pomocí:: +``make html`` dělá následující: Vygenerují se rst soubory do modules z pythoní dokumentace pomocí:: sphinx-apidoc --module-first -o modules .. ../*/migrations --templatedir _templates -f diff --git a/docs/struktura.rst b/docs/struktura.rst new file mode 100644 index 00000000..439e39e9 --- /dev/null +++ b/docs/struktura.rst @@ -0,0 +1,31 @@ +Co kde najít (mamweb + django) +============================== + +Nejdůležitější aplikace z pohledu djanga je ``mamweb``. Tu totiž django pouští +a obsahuje tedy nastavení (tam se přidávají ostatní aplikace, včetně těch +importovaných z djanga, a nastavují se tam různé věci jak v djangu, tak i naše, +například složky, kam se budou věci přidané uživateli ukládat). Dále obsahuje +základní urls, udávající, „na jaké adrese co je“. A nakonec obsahuje obecné +věci jako chybové hlášky a vzhled M&M stránek (menu, patička, atd.). Aktuálně +i veškeré csv. + +Další jsou pak jednotlivé aplikace (pokud něco hledáte, tak zřejmě chcete najít +tu aplikaci, která tomu odpovídá, respektive se k ní dostat přes url), za +zmínku stojí seminar, kde jsou takové ty věci, co zbyly. Plus jsou tam aktuálně +téměř všechny modely, protože je těžké je přesunout jinam. + +**TLDR: Nevšímejte si složky data/ a souborů přímo v kořenové složce.** +Kromě věcí potřebných ke gitu, :doc:`ke spuštění ` a fukci djanga, +dalších drobností, lokální databáze a již zmíněných aplikací jsou tu ``data``, +kde je takový ten obsah webu, co by se měl dát snadno měnit (tudíž musí být v +databázi), tj. statické stránky, menu a obrázky v pozadí menu. Ten je třeba +měnit hlavně na produkci a sekundárně tady (může to dělat i newebař a nechcete +přepsat jeho práci). Vše, co nejsou aplikace je popsáno :doc:`tady `. + +Základy djanga +-------------- + + + +mamweb je psaný téměř čistě v djangu. Což znamená, že to „co je vidět na stránkách“ +jsou views. From e3ebb925e1746aaa6953bd714df11d352e18237e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 7 Nov 2022 22:32:06 +0100 Subject: [PATCH 003/515] =?UTF-8?q?Reforma=20Makefil=C5=AF=20WIP=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 156 ++------------------------------- Makefile_old | 128 +++++++++++++++++++++++++++ make/all | 17 ++++ make/deploy | 3 + make/deploy_prod | 3 + make/install | 1 + make/install_venv | 3 + make/install_web | 3 + make/lib.sh | 26 ++++++ make/push_compiled_vue_to_test | 3 + make/run | 3 + make/schema | 3 + make/schema_all.pdf | 3 + make/schema_seminar.pdf | 3 + make/sync_local | 3 + make/sync_local_db | 3 + make/sync_local_media | 3 + make/sync_prod_flatpages | 3 + make/sync_test | 3 + make/sync_test_db_aggressive | 3 + make/sync_test_media | 3 + make/test | 3 + make/venv_check | 3 + 23 files changed, 231 insertions(+), 151 deletions(-) create mode 100644 Makefile_old create mode 100755 make/all create mode 100755 make/deploy create mode 100755 make/deploy_prod create mode 120000 make/install create mode 100755 make/install_venv create mode 100755 make/install_web create mode 100644 make/lib.sh create mode 100755 make/push_compiled_vue_to_test create mode 100755 make/run create mode 100755 make/schema create mode 100755 make/schema_all.pdf create mode 100755 make/schema_seminar.pdf create mode 100755 make/sync_local create mode 100755 make/sync_local_db create mode 100755 make/sync_local_media create mode 100755 make/sync_prod_flatpages create mode 100755 make/sync_test create mode 100755 make/sync_test_db_aggressive create mode 100755 make/sync_test_media create mode 100755 make/test create mode 100755 make/venv_check diff --git a/Makefile b/Makefile index 94a377c4..5e3acddc 100644 --- a/Makefile +++ b/Makefile @@ -1,154 +1,8 @@ -PYTHON ?= python3 -VENV ?= ${PYTHON} -m venv -# Všechny flagy, které se s venvem/virtualenvem/... mají volat patří sem. Volá se "${VENV} cesta" -VENV_PATH ?= env -# Musí být definovaná, i kdyby to měla být "." +%: + @make/$* -.PHONY: all venv_check clean install install_web install_venv clean_venv clean_schema run test deploy_test deploy_prod sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local - -# activate by mělo být předpokladem ke všemu, co volá webový python (i.e. python nasazený do ${VENV}u kvůli webu, např. manage.py) all: - @# Just echo: - # Install je trochu magický: - # Spusť následující posloupnost příkazů: - # make install_venv - # . ${VENV_PATH}/bin/activate - # make install_web - # - # Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev - # Pokud chybová hláška obsahuje #include , nainstaluj si python3-dev - # - # Až skončíš s vývojem webu, spusť "deactivate". Tím zmizí '(${VENV_PATH})' ze začátku promptu. - -venv_check: - @# Pokud org nemá zapnutý venv, poradíme mu, aby si ho zapnul a spadneme. Jinak nic. - @expr $$PATH : ".*:*$(shell pwd)/${VENV_PATH}/bin" > /dev/null && exit 0 || echo 'Není zapnutý venv, spusť ". ${VENV_PATH}/bin/activate".\nPokud není venv nainstalovaný, spusť "make install_venv"' && false - -clean: clean_venv clean_schema - -install: install_web - -install_web: venv_check - @# venv může být příšerně starý, takže nejdříve upgradujeme venvové věci - pip install --upgrade pip - pip install --upgrade setuptools - # Instalace závislostí webu - pip install -r requirements.txt --upgrade - # Pro vygenerování tesdat spusť ./manage.py testdata - # Po vygenerování testdat spusť ./manage.py loaddata data/*, ať máš menu a další modely - # Pro synchronizaci flatpages spusť make sync_prod_flatpages - -install_venv: - ${VENV} ${VENV_PATH} - -clean_venv: - # Možná není 100% foolproof... - @test ! ${VENV_PATH} = . || ! echo "Smaž si prosím venv sám, nebudu mazat celý web" - rm -rfv ${VENV_PATH} - rm -f pip-selfcheck.json -clean_schema: - rm -f schema_seminar.pdf schema_all.pdf - -run: venv_check - ./manage.py runserver - -test: venv_check - ./manage.py test -v2 seminar mamweb - -# DB schemata - -schema: schema_seminar.pdf schema_all.pdf - -schema_seminar.pdf: venv_check - ./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf - -schema_all.pdf: venv_check - ./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf - -# Deploy to current *mamweb-test* directory -deploy_test: venv_check - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi - @echo "Installing version from origin/test ..." - git pull origin test - git clean -f - make install - ./manage.py migrate - ./manage.py collectstatic --noinput - (chown -R :mam . || true ) - (chmod -R g+rX,go-w . || true ) - @echo Restarting systemd unit - systemctl --user restart mamweb-test.service - @echo Done. - -# Deploy to current *mamweb-prod* directory -deploy_prod: venv_check - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi - @echo "Backing up production DB ..." - ( cd -P .. && ./backup_prod_db.sh ) - @echo "Installing version from origin/master ..." - git pull origin master - git clean -f - make install - ./manage.py migrate - ./manage.py collectstatic --noinput - (chown -R :mam . || true ) - (chmod -R g+rX,go-w . || true ) - @echo Restarting systemd user unit for MaM web - systemctl --user restart mamweb-prod.service - @echo Done. - - -sync_prod_flatpages: venv_check - @echo Downloading current version of flatpages from mamweb-prod. - ssh mam-web@gimli.ms.mff.cuni.cz \ - "cd /akce/mam/www/mamweb-prod; . env/bin/activate; ./manage.py dumpdata flatpages --indent=2 > flat.json; ./fix_json.py flat.json flat_fixed.json" - rsync -ave ssh mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/flat_fixed.json data/flat.json - @echo "Applying downloaded flatpages." - ./manage.py loaddata data/flat.json - @echo "Done." - -# Sync test media directory with production -sync_test_media: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi - rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media - -# Sync (with drop) test database with production database -sync_test_db_aggressive: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql - pg_dump -Fc mam_prod > dump-prod.sql - @# I am not sure which shell is used, so I am calling bash to make sure - psql mam_test -c 'DROP OWNED BY "mam-web";' - pg_restore -c --if-exists -d mam_test dump-prod.sql - rm dump-prod.sql - psql mam_test -c "UPDATE django_site SET name='MaMweb (test)', domain='mam-test.ks.matfyz.cz' WHERE id=1" - @echo Done. - -# Sync test with production -# HACK ALERT: using aggressive variant, due to the schemas being too different. -sync_test: sync_test_media sync_test_db_aggressive - - -# Sync media directory with atrey. Useful for local development with production database -# Does not sync Galerie and CACHE (too huge). -sync_local_media: - rsync -ave ssh --exclude Galerie --exclude CACHE\ - mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/media/ ./media/ -# Downloads and restores production database to local database. PostgreSQL only. -sync_local_db: - scp mam-web@gimli.ms.mff.cuni.cz:`ssh mam-web@gimli.ms.mff.cuni.cz 'ls -v /akce/mam/www/backups/mam_prod-*\.pgdump.xz | tail -n 1'` \ - ./last.pgdump.xz - xz -fd last.pgdump.xz - pg_restore -c -d mam-prod last.pgdump - -# Sync database and media. See above lines -sync_local: sync_local_media sync_local_db + @# Nevím, proč to nefunguje bez těla, ale vlastně je mi to jedno… + @make/all -# Push local compiled Vue to gimli test site -push_compiled_vue_to_test: - scp vue_frontend/webpack-stats.json mam-web@gimli:/akce/mam/www/mamweb-test/vue_frontend/ - rsync -ave ssh seminar/static/seminar/vue mam-web@gimli:/akce/mam/www/mamweb-test/seminar/static/seminar/ - ssh mam-web@gimli.ms.mff.cuni.cz 'cd /akce/mam/www/mamweb-test/ && . env/bin/activate && ./manage.py collectstatic --noinput' +.PHONY: all diff --git a/Makefile_old b/Makefile_old new file mode 100644 index 00000000..ccfdb143 --- /dev/null +++ b/Makefile_old @@ -0,0 +1,128 @@ +.PHONY: all venv_check clean install install_web install_venv clean_venv clean_schema run test deploy_test deploy_prod sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local + +install: install_web + +install_web: venv_check + @# venv může být příšerně starý, takže nejdříve upgradujeme venvové věci + pip install --upgrade pip + pip install --upgrade setuptools + # Instalace závislostí webu + pip install -r requirements.txt --upgrade + # Pro vygenerování tesdat spusť ./manage.py testdata + # Po vygenerování testdat spusť ./manage.py loaddata data/*, ať máš menu a další modely + # Pro synchronizaci flatpages spusť make sync_prod_flatpages + +install_venv: + ${VENV} ${VENV_PATH} + +clean_venv: + # Možná není 100% foolproof... + @test ! ${VENV_PATH} = . || ! echo "Smaž si prosím venv sám, nebudu mazat celý web" + rm -rfv ${VENV_PATH} + rm -f pip-selfcheck.json +clean_schema: + rm -f schema_seminar.pdf schema_all.pdf + +run: venv_check + ./manage.py runserver + +test: venv_check + ./manage.py test -v2 seminar mamweb + +# DB schemata + +schema: schema_seminar.pdf schema_all.pdf + +schema_seminar.pdf: venv_check + ./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf + +schema_all.pdf: venv_check + ./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf + +# Deploy to current *mamweb-test* directory +deploy: venv_check + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi + @echo "Installing version from origin/${BRANCH} ..." + git pull origin ${BRANCH} + git clean -f + make install + ./manage.py migrate + ./manage.py collectstatic --noinput + (chown -R :mam . || true ) + (chmod -R g+rX,go-w . || true ) + @echo Restarting systemd unit + systemctl --user restart mamweb-test.service + @echo Done. + +# Deploy to current *mamweb-prod* directory +deploy_prod: venv_check + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi + @echo "Backing up production DB ..." + ( cd -P .. && ./backup_prod_db.sh ) + @echo "Installing version from origin/master ..." + git pull origin master + git clean -f + make install + ./manage.py migrate + ./manage.py collectstatic --noinput + (chown -R :mam . || true ) + (chmod -R g+rX,go-w . || true ) + @echo Restarting systemd user unit for MaM web + systemctl --user restart mamweb-prod.service + @echo Done. + + +sync_prod_flatpages: venv_check + @echo Downloading current version of flatpages from mamweb-prod. + ssh mam-web@gimli.ms.mff.cuni.cz \ + "cd /akce/mam/www/mamweb-prod; . env/bin/activate; ./manage.py dumpdata flatpages --indent=2 > flat.json; ./fix_json.py flat.json flat_fixed.json" + rsync -ave ssh mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/flat_fixed.json data/flat.json + @echo "Applying downloaded flatpages." + ./manage.py loaddata data/flat.json + @echo "Done." + +# Sync test media directory with production +sync_test_media: + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi + rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media + +# Sync (with drop) test database with production database +sync_test_db_aggressive: + @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi + pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql + pg_dump -Fc mam_prod > dump-prod.sql + @# I am not sure which shell is used, so I am calling bash to make sure + psql mam_test -c 'DROP OWNED BY "mam-web";' + pg_restore -c --if-exists -d mam_test dump-prod.sql + rm dump-prod.sql + psql mam_test -c "UPDATE django_site SET name='MaMweb (test)', domain='mam-test.ks.matfyz.cz' WHERE id=1" + @echo Done. + +# Sync test with production +# HACK ALERT: using aggressive variant, due to the schemas being too different. +sync_test: sync_test_media sync_test_db_aggressive + + +# Sync media directory with atrey. Useful for local development with production database +# Does not sync Galerie and CACHE (too huge). +sync_local_media: + rsync -ave ssh --exclude Galerie --exclude CACHE\ + mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/media/ ./media/ +# Downloads and restores production database to local database. PostgreSQL only. +sync_local_db: + scp mam-web@gimli.ms.mff.cuni.cz:`ssh mam-web@gimli.ms.mff.cuni.cz 'ls -v /akce/mam/www/backups/mam_prod-*\.pgdump.xz | tail -n 1'` \ + ./last.pgdump.xz + xz -fd last.pgdump.xz + pg_restore -c -d mam-prod last.pgdump + +# Sync database and media. See above lines +sync_local: sync_local_media sync_local_db + +# Push local compiled Vue to gimli test site +push_compiled_vue_to_test: + scp vue_frontend/webpack-stats.json mam-web@gimli:/akce/mam/www/mamweb-test/vue_frontend/ + rsync -ave ssh seminar/static/seminar/vue mam-web@gimli:/akce/mam/www/mamweb-test/seminar/static/seminar/ + ssh mam-web@gimli.ms.mff.cuni.cz 'cd /akce/mam/www/mamweb-test/ && . env/bin/activate && ./manage.py collectstatic --noinput' diff --git a/make/all b/make/all new file mode 100755 index 00000000..de25100a --- /dev/null +++ b/make/all @@ -0,0 +1,17 @@ +#!/bin/bash + +set -euo pipefail +. make/lib.sh + +echo "Install je trochu magický: + Spusť následující posloupnost příkazů: + make install_venv + . ${VENV_PATH}/bin/activate + make install_web + + Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev + Pokud chybová hláška obsahuje #include , nainstaluj si python3-dev + + Až skončíš s vývojem webu, spusť "deactivate". Tím zmizí '(${VENV_PATH})' ze začátku promptu." + + diff --git a/make/deploy b/make/deploy new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/deploy @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/deploy_prod b/make/deploy_prod new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/deploy_prod @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/install b/make/install new file mode 120000 index 00000000..d6d811b7 --- /dev/null +++ b/make/install @@ -0,0 +1 @@ +make/install_web \ No newline at end of file diff --git a/make/install_venv b/make/install_venv new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/install_venv @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/install_web b/make/install_web new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/install_web @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/lib.sh b/make/lib.sh new file mode 100644 index 00000000..e4aac157 --- /dev/null +++ b/make/lib.sh @@ -0,0 +1,26 @@ +#!/bin/false Tohle je knihovna, nemá se spouštět, ale načítat pomocí source(1) nebo '.' + +PYTHON="${PYTHON:-python3}" +VENV="${VENV:-${PYTHON} -m venv}" +VENV_PATH="${VENV_PATH:-env}" +BRANCH="${BRANCH:-master}" + +REPO="${REPO:-git@gitea.ks.matfyz.cz:mam/mamweb.git}" +GIMLI='gimli.ms.mff.cuni.cz' +GIMLI_LOGIN="mam-web@$GIMLI" +# Skutečné cesty, jak je vrátí `realpath` +PRODWEB="/aux/akce/mam/www/mamweb-prod" +TESTWEB="/aux/akce/mam/www/mamweb-test" + +function die { + echo "$@" >&2 + exit 1 +} + +# Vždycky chceme zajistit, že běžíme z rootu repozitáře +test -d '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z kořenového adresáře repozitáře." + +function ensure_venv { + test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" + . "$VENV_PATH/bin/activate" +} diff --git a/make/push_compiled_vue_to_test b/make/push_compiled_vue_to_test new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/push_compiled_vue_to_test @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/run b/make/run new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/run @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/schema b/make/schema new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/schema @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/schema_all.pdf b/make/schema_all.pdf new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/schema_all.pdf @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/schema_seminar.pdf b/make/schema_seminar.pdf new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/schema_seminar.pdf @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_local b/make/sync_local new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_local @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_local_db b/make/sync_local_db new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_local_db @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_local_media b/make/sync_local_media new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_local_media @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_prod_flatpages b/make/sync_prod_flatpages new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_prod_flatpages @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_test b/make/sync_test new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_test @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_test_db_aggressive b/make/sync_test_db_aggressive new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_test_db_aggressive @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/sync_test_media b/make/sync_test_media new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/sync_test_media @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/test b/make/test new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/test @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail diff --git a/make/venv_check b/make/venv_check new file mode 100755 index 00000000..60347f1e --- /dev/null +++ b/make/venv_check @@ -0,0 +1,3 @@ +#!/bin/bash + +set -exuo pipefail From 75f388ddfb0fd8780c79ceaecb8b4685ffe9d676 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 7 Nov 2022 22:34:54 +0100 Subject: [PATCH 004/515] Fix symlink --- make/install | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/install b/make/install index d6d811b7..53e51b50 120000 --- a/make/install +++ b/make/install @@ -1 +1 @@ -make/install_web \ No newline at end of file +install_web \ No newline at end of file From 9f78963e7f26963cca1d8442d9508f5f179aa7d2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 7 Nov 2022 23:12:57 +0100 Subject: [PATCH 005/515] =?UTF-8?q?Pozn=C3=A1mka=20o=20neplatnosti=20READM?= =?UTF-8?q?E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 369dd30e..5d2f9c30 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +**TODO: přepsat, tohle dávno neplatí!** + Basic commands for web development ================================== From 8b36e79f045c58d45f2432b9393f8c1babac0ff1 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 7 Nov 2022 23:14:06 +0100 Subject: [PATCH 006/515] Makefile reforma vol.2 [WIP] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Už máme ty jednoduché targety (nebo byly smazány), zbývá dořešit několik složitých. --- Makefile_old | 63 ---------------------------------- make/install_venv | 3 ++ make/install_web | 13 +++++++ make/lib.sh | 1 + make/push_compiled_vue_to_test | 6 ++++ make/run | 5 +++ make/schema | 6 ++++ make/schema_all.pdf | 3 -- make/schema_seminar.pdf | 3 -- make/sync_local | 3 -- make/sync_local_db | 3 -- make/sync_local_media | 3 -- make/test | 5 +++ 13 files changed, 39 insertions(+), 78 deletions(-) delete mode 100755 make/schema_all.pdf delete mode 100755 make/schema_seminar.pdf delete mode 100755 make/sync_local delete mode 100755 make/sync_local_db delete mode 100755 make/sync_local_media diff --git a/Makefile_old b/Makefile_old index ccfdb143..d9f1f8a2 100644 --- a/Makefile_old +++ b/Makefile_old @@ -1,44 +1,3 @@ -.PHONY: all venv_check clean install install_web install_venv clean_venv clean_schema run test deploy_test deploy_prod sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local - -install: install_web - -install_web: venv_check - @# venv může být příšerně starý, takže nejdříve upgradujeme venvové věci - pip install --upgrade pip - pip install --upgrade setuptools - # Instalace závislostí webu - pip install -r requirements.txt --upgrade - # Pro vygenerování tesdat spusť ./manage.py testdata - # Po vygenerování testdat spusť ./manage.py loaddata data/*, ať máš menu a další modely - # Pro synchronizaci flatpages spusť make sync_prod_flatpages - -install_venv: - ${VENV} ${VENV_PATH} - -clean_venv: - # Možná není 100% foolproof... - @test ! ${VENV_PATH} = . || ! echo "Smaž si prosím venv sám, nebudu mazat celý web" - rm -rfv ${VENV_PATH} - rm -f pip-selfcheck.json -clean_schema: - rm -f schema_seminar.pdf schema_all.pdf - -run: venv_check - ./manage.py runserver - -test: venv_check - ./manage.py test -v2 seminar mamweb - -# DB schemata - -schema: schema_seminar.pdf schema_all.pdf - -schema_seminar.pdf: venv_check - ./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf - -schema_all.pdf: venv_check - ./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf - # Deploy to current *mamweb-test* directory deploy: venv_check @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @@ -104,25 +63,3 @@ sync_test_db_aggressive: # Sync test with production # HACK ALERT: using aggressive variant, due to the schemas being too different. sync_test: sync_test_media sync_test_db_aggressive - - -# Sync media directory with atrey. Useful for local development with production database -# Does not sync Galerie and CACHE (too huge). -sync_local_media: - rsync -ave ssh --exclude Galerie --exclude CACHE\ - mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/media/ ./media/ -# Downloads and restores production database to local database. PostgreSQL only. -sync_local_db: - scp mam-web@gimli.ms.mff.cuni.cz:`ssh mam-web@gimli.ms.mff.cuni.cz 'ls -v /akce/mam/www/backups/mam_prod-*\.pgdump.xz | tail -n 1'` \ - ./last.pgdump.xz - xz -fd last.pgdump.xz - pg_restore -c -d mam-prod last.pgdump - -# Sync database and media. See above lines -sync_local: sync_local_media sync_local_db - -# Push local compiled Vue to gimli test site -push_compiled_vue_to_test: - scp vue_frontend/webpack-stats.json mam-web@gimli:/akce/mam/www/mamweb-test/vue_frontend/ - rsync -ave ssh seminar/static/seminar/vue mam-web@gimli:/akce/mam/www/mamweb-test/seminar/static/seminar/ - ssh mam-web@gimli.ms.mff.cuni.cz 'cd /akce/mam/www/mamweb-test/ && . env/bin/activate && ./manage.py collectstatic --noinput' diff --git a/make/install_venv b/make/install_venv index 60347f1e..f5f3664f 100755 --- a/make/install_venv +++ b/make/install_venv @@ -1,3 +1,6 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +${VENV} ${VENV_PATH} diff --git a/make/install_web b/make/install_web index 60347f1e..5ebf963d 100755 --- a/make/install_web +++ b/make/install_web @@ -1,3 +1,16 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +ensure_venv + +# Aktualizace toolchainu +pip install --upgrade pip setuptools +# Instalace závislostí webu +pip install -r requirements.txt --upgrade + +# XXX: Připomínka z původního Makefile: +echo 'Pro vygenerování tesdat spusť ./manage.py testdata +Po vygenerování testdat spusť ./manage.py loaddata data/*, ať máš menu a další modely +Pro synchronizaci flatpages spusť make/sync_prod_flatpages' diff --git a/make/lib.sh b/make/lib.sh index e4aac157..3e4e99c9 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -18,6 +18,7 @@ function die { } # Vždycky chceme zajistit, že běžíme z rootu repozitáře +# TODO: chceme? Nechceme naopak umět to spouštět odkudkoliv, aspoň u většiny targetů? test -d '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z kořenového adresáře repozitáře." function ensure_venv { diff --git a/make/push_compiled_vue_to_test b/make/push_compiled_vue_to_test index 60347f1e..8ed57cd4 100755 --- a/make/push_compiled_vue_to_test +++ b/make/push_compiled_vue_to_test @@ -1,3 +1,9 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +scp vue_frontend/webpack-stats.json "$GIMLI_LOGIN:$TESTWEB/vue_frontend/" +rsync -ave ssh seminar/static/seminar/vue "$GIMLI_LOGIN:$TESTWEB/seminar/static/seminar/" +# TODO: Je OK tady zapínat venv přímo takhle, nebo by to taky mělo být enkapsulováno do nějakého skriptu (e.g. make/deploy/collect_static)? +ssh "$GIMLI_LOGIN" "cd $TESTWEB && . env/bin/activate && ./manage.py collectstatic --noinput' diff --git a/make/run b/make/run index 60347f1e..44852432 100755 --- a/make/run +++ b/make/run @@ -1,3 +1,8 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +ensure_venv + +./manage.py runserver diff --git a/make/schema b/make/schema index 60347f1e..9688e49a 100755 --- a/make/schema +++ b/make/schema @@ -1,3 +1,9 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +ensure_venv + +./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf +./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf diff --git a/make/schema_all.pdf b/make/schema_all.pdf deleted file mode 100755 index 60347f1e..00000000 --- a/make/schema_all.pdf +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/schema_seminar.pdf b/make/schema_seminar.pdf deleted file mode 100755 index 60347f1e..00000000 --- a/make/schema_seminar.pdf +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/sync_local b/make/sync_local deleted file mode 100755 index 60347f1e..00000000 --- a/make/sync_local +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/sync_local_db b/make/sync_local_db deleted file mode 100755 index 60347f1e..00000000 --- a/make/sync_local_db +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/sync_local_media b/make/sync_local_media deleted file mode 100755 index 60347f1e..00000000 --- a/make/sync_local_media +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/test b/make/test index 60347f1e..bdf9f12b 100755 --- a/make/test +++ b/make/test @@ -1,3 +1,8 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +ensure_venv + +./manage.py test -v2 From 657e73f2f0ac199dc9bf82bae029b3e634a1af45 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 7 Nov 2022 23:15:39 +0100 Subject: [PATCH 007/515] =?UTF-8?q?Pozn=C3=A1mka=20o=20d=C5=AFvodu=20exist?= =?UTF-8?q?ence=20Makefile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 5e3acddc..5f902dda 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,4 @@ +# Existence tohohle Makefile je tu jen proto, aby fungovala svalová paměť. Pokud můžete, použijte rovnou `make/…` %: @make/$* From 4f7c4057eafd8e49700650a57e4ead3f732addd5 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 14 Nov 2022 21:37:01 +0100 Subject: [PATCH 008/515] fix uvozovek Thanks shellcheck --- make/all | 2 +- make/push_compiled_vue_to_test | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/make/all b/make/all index de25100a..c6a92157 100755 --- a/make/all +++ b/make/all @@ -12,6 +12,6 @@ echo "Install je trochu magický: Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev Pokud chybová hláška obsahuje #include , nainstaluj si python3-dev - Až skončíš s vývojem webu, spusť "deactivate". Tím zmizí '(${VENV_PATH})' ze začátku promptu." + Až skončíš s vývojem webu, spusť 'deactivate'. Tím zmizí '(${VENV_PATH})' ze začátku promptu." diff --git a/make/push_compiled_vue_to_test b/make/push_compiled_vue_to_test index 8ed57cd4..f386ee86 100755 --- a/make/push_compiled_vue_to_test +++ b/make/push_compiled_vue_to_test @@ -6,4 +6,4 @@ set -exuo pipefail scp vue_frontend/webpack-stats.json "$GIMLI_LOGIN:$TESTWEB/vue_frontend/" rsync -ave ssh seminar/static/seminar/vue "$GIMLI_LOGIN:$TESTWEB/seminar/static/seminar/" # TODO: Je OK tady zapínat venv přímo takhle, nebo by to taky mělo být enkapsulováno do nějakého skriptu (e.g. make/deploy/collect_static)? -ssh "$GIMLI_LOGIN" "cd $TESTWEB && . env/bin/activate && ./manage.py collectstatic --noinput' +ssh "$GIMLI_LOGIN" "cd $TESTWEB && . env/bin/activate && ./manage.py collectstatic --noinput" From 39c37c0c73241365b2aff27bbb67207368f0e3f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 14 Nov 2022 21:53:07 +0100 Subject: [PATCH 009/515] Fix: #992 --- .../vysledkovky/vysledkovka_cisla.html | 32 +++++++++---------- .../vysledkovky/vysledkovka_rocnik.html | 24 +++++++------- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index e24b3d12..ac53c811 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -1,49 +1,49 @@
- + {% for p in vysledkovka.temata_a_spol%} - {# TODELETE #} {% for podproblemy in vysledkovka.podproblemy_iter.next %} - {% endfor %} {# TODELETE #} {% endfor %} - {% if vysledkovka.je_nejake_ostatni %}{% endif %} {# TODELETE #} {% for podproblemy in vysledkovka.podproblemy_iter.next %} - {% endfor %} {# TODELETE #} - + + {% for rv in vysledkovka.radky_vysledkovky %} - {% for b in rv.body_za_temata_seznam %} - {% for body_podproblemu in rv.body_podproblemy_iter.next %} - {% endfor %} {% endfor %} - + + {% endfor %}
# - Jméno + #Jméno{# #}{{ p.kod_v_rocniku }}{# #} + {# #}{{ p.kod_v_rocniku }}{# #}{# #}{{ podproblemy.kod_v_rocniku }}{# #} + {# #}{{ podproblemy.kod_v_rocniku }}{# #}Ostatní {% endif %} + {% if vysledkovka.je_nejake_ostatni %}Ostatní{# #}{{ podproblemy.kod_v_rocniku }}{# #} + {# #}{{ podproblemy.kod_v_rocniku }}{# #}Za číslo - Za ročník - Odjakživa + Za čísloZa ročníkOdjakživa
{% autoescape off %}{{ rv.poradi }}{% endautoescape %} + {% autoescape off %}{{ rv.poradi }}{% endautoescape %} {% if rv.titul %} {{ rv.titul }}MM {% endif %} - {{ rv.resitel.osoba.plne_jmeno }} + {{ rv.resitel.osoba.plne_jmeno }}{{ b }} + {{ b }}{{ body_podproblemu }} + {{ body_podproblemu }}{{ rv.body_cislo }} - {{ rv.body_rocnik }} - {{ rv.body_celkem_odjakziva }} + {{ rv.body_cislo }}{{ rv.body_rocnik }}{{ rv.body_celkem_odjakziva }}
diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html index 14d5369e..22b81555 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_rocnik.html @@ -1,29 +1,29 @@ - + + + {% for c in vysledkovka.cisla_rocniku %} {% endfor %} - {% for rv in vysledkovka.radky_vysledkovky %} - + {% for b in rv.body_cisla_seznam %} - {% endfor %} - {% endfor %}
# - Jméno - R. - Odjakživa + #JménoR.Odjakživa - {{c.rocnik.rocnik}}.{{ c.poradi }} + {{c.rocnik.rocnik}}.{{ c.poradi }}Celkem + Celkem
{% autoescape off %}{{ rv.poradi }}{% endautoescape %} + {% autoescape off %}{{ rv.poradi }}{% endautoescape %} {% if rv.titul %} {{ rv.titul }}MM {% endif %} - {{ rv.resitel.osoba.plne_jmeno }} - {{ rv.rocnik_resitele }} - {{ rv.body_celkem_odjakziva }} + {{ rv.resitel.osoba.plne_jmeno }} + {{ rv.rocnik_resitele }}{{ rv.body_celkem_odjakziva }}{{ b }} + {{ b }}{{ rv.body_rocnik }} + {{ rv.body_rocnik }}
From c3728750f7db6cfe06d1e581b01867d2b9cccd2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 14 Nov 2022 22:07:29 +0100 Subject: [PATCH 010/515] Fix: #910 --- mamweb/settings_common.py | 3 +++ requirements.txt | 1 + 2 files changed, 4 insertions(+) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index baebe3b4..5a610795 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -160,6 +160,9 @@ INSTALLED_APPS = ( # 'admin_tools.menu', # 'admin_tools.dashboard', 'django.contrib.admin', + + # Nechat na konci (INSTALLED_APPS je uspořádané): + 'django_cleanup.apps.CleanupConfig', # Uklízí media/ ) DEBUG_TOOLBAR_CONFIG = { diff --git a/requirements.txt b/requirements.txt index 9ad24a7f..39eabfb3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -21,6 +21,7 @@ django-sekizai django-countries django-solo django-ckeditor +django-cleanup # Uklízí media/ od smazaných „databázových“ souborů django-flat-theme django-taggit django-autocomplete-light>=3.9.0rc1 From 376cc0d7e5d65bf51478d2cbdd05d83e6d3a7966 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 14 Nov 2022 22:35:00 +0100 Subject: [PATCH 011/515] Fix: #1251 --- seminar/templates/seminar/archiv/cislo.html | 3 +- .../seminar/archiv/cislo_obalkovani.html | 33 ---------------- seminar/templates/seminar/org/obalkovani.html | 30 -------------- seminar/urls.py | 6 --- seminar/views/views_all.py | 39 ------------------- 5 files changed, 1 insertion(+), 110 deletions(-) delete mode 100644 seminar/templates/seminar/archiv/cislo_obalkovani.html delete mode 100644 seminar/templates/seminar/org/obalkovani.html diff --git a/seminar/templates/seminar/archiv/cislo.html b/seminar/templates/seminar/archiv/cislo.html index d472826f..b8edce90 100644 --- a/seminar/templates/seminar/archiv/cislo.html +++ b/seminar/templates/seminar/archiv/cislo.html @@ -40,8 +40,7 @@
  • Obálky (PDF)
  • Tituly (TeX)
  • Výsledkovka (TeX)
  • -
  • Obálkování
  • -
  • Odměny
  • +
  • Odměny
  • {% endif %} diff --git a/seminar/templates/seminar/archiv/cislo_obalkovani.html b/seminar/templates/seminar/archiv/cislo_obalkovani.html deleted file mode 100644 index 48b4a324..00000000 --- a/seminar/templates/seminar/archiv/cislo_obalkovani.html +++ /dev/null @@ -1,33 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -

    - {% block nadpis1a %} - Obálkování {{ cislo }} - {% endblock %} -

    - - Obálkovat se budou tyto problémy: -
      - {% for p in problemy %} - -
    • {{ p.kod_v_rocniku }} {{ p }} - {% endfor %} -
    - - {% for r in reseni %} - {% ifchanged r.resitel %} - {% if not forloop.first %} - - {% endif %} -

    {{ r.resitel }}

    -
      - {% endifchanged %} - -
    • - {{ r.problem.kod_v_rocniku }} {{ r.problem.nazev }} ({{ r.body }}) - - {% endfor %} -
    - -{% endblock content %} diff --git a/seminar/templates/seminar/org/obalkovani.html b/seminar/templates/seminar/org/obalkovani.html deleted file mode 100644 index a4420dba..00000000 --- a/seminar/templates/seminar/org/obalkovani.html +++ /dev/null @@ -1,30 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -

    - {% block nadpis1a %} - Obálkování {{ cislo }} - {% endblock %} -

    -
      - {% for reseni in object_list %} - {% ifchanged reseni.resitele %} - {% if not forloop.first %} -
    - {% endif %} -

    {% for resitel in reseni.resitele.all %}{{resitel.osoba}},{% endfor %}

    -
      - {% endifchanged %} - -
    • Celkem {{reseni.hodnoceni__body__sum}} bodů z {{reseni.hodnoceni__count}} hodnocení -
        - {% for h in reseni.hodnoceni_set.all %} -
      • {{ h.problem }}: {{ h.body }}b
      • - {% endfor %} -
      -
    • - {% endfor %} -
    - - -{% endblock content %} diff --git a/seminar/urls.py b/seminar/urls.py index c6ab5695..f6f2e2fb 100644 --- a/seminar/urls.py +++ b/seminar/urls.py @@ -23,7 +23,6 @@ Soubor sloužící jako „router“, tj. zde se definují url adresy a na co uk - ``cislo/./obalky.pdf`` (seminar_cislo_obalky) :func:`~seminar.views.views_all.cisloObalkyView` - ``cislo/./tituly.tex`` (seminar_cislo_titul) :func:`~seminar.views.views_all.TitulyView` - ``stav`` (stav_databaze) :func:`~seminar.views.views_all.StavDatabazeView` - - ``cislo/./obalkovani`` (seminar_cislo_resitel_obalkovani) :class:`~seminar.views.views_all.ObalkovaniView` - ``cislo/./odmeny/./`` (seminar_archiv_odmeny) :class:`~seminar.views.views_all.OdmenyView` - Další - `` `` (titulni_strana) :class:`~seminar.views.views_all.TitulniStranaView` @@ -102,11 +101,6 @@ urlpatterns = [ org_required(views.StavDatabazeView), name='stav_databaze' ), - path( - 'cislo/./obalkovani', - org_required(views.ObalkovaniView.as_view()), - name='seminar_cislo_resitel_obalkovani' - ), path( 'cislo/./odmeny/./', org_required(views.OdmenyView.as_view()), diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 7cf79d9f..2c4bd4a6 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -53,23 +53,6 @@ logger = logging.getLogger(__name__) def get_problemy_k_tematu(tema): return Problem.objects.filter(nadproblem = tema) -class ObalkovaniView(generic.ListView): - template_name = 'seminar/org/obalkovani.html' - - def get_queryset(self): - rocnik = get_object_or_404(Rocnik,rocnik=self.kwargs['rocnik']) - cislo = get_object_or_404(Cislo,rocnik=rocnik,poradi=self.kwargs['cislo']) - self.cislo = cislo - self.hodnoceni = s.Hodnoceni.objects.filter(cislo_body=cislo) - self.reseni = Reseni.objects.filter(hodnoceni__in = self.hodnoceni).annotate(Sum('hodnoceni__body')).annotate(Count('hodnoceni')).order_by('resitele__osoba') - return self.reseni - - def get_context_data(self, **kwargs): - context = super(ObalkovaniView, self).get_context_data(**kwargs) - print(self.cislo) - context['cislo'] = self.cislo - return context - # FIXME: Pozor, níž je ještě jeden ProblemView! #class ProblemView(generic.DetailView): @@ -597,28 +580,6 @@ def obalkyView(request, resitele): return response -def oldObalkovaniView(request, rocnik, cislo): - rocnik = Rocnik.objects.get(rocnik=rocnik) - cislo = Cislo.objects.get(rocnik=rocnik, cislo=cislo) - - reseni = ( - Reseni.objects.filter(cislo_body=cislo) - .order_by( - 'resitel__prijmeni', - 'resitel__jmeno', - 'problem__typ', - 'problem__kod' - ) - ) - - problemy = sorted(set(r.problem for r in reseni), key=lambda p: (p.typ, p.kod)) - return render( - request, - 'seminar/archiv/cislo_obalkovani.html', - {'cislo': cislo, 'problemy': problemy, 'reseni': reseni} - ) - - ### Tituly def TitulyViewRocnik(request, rocnik): return TitulyView(request, rocnik, None) From a9e7cd7af27014dc3904ae9039fb9feb68b09daa Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 14 Nov 2022 23:16:19 +0100 Subject: [PATCH 012/515] =?UTF-8?q?Deploy=20v=20nov=C3=A9m=20kab=C3=A1tu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit prosím čtěte… --- Makefile_old | 35 ----------------------------------- make/deploy | 22 ++++++++++++++++++++++ make/deploy_prod | 31 +++++++++++++++++++++++++++++++ make/lib.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+), 35 deletions(-) diff --git a/Makefile_old b/Makefile_old index d9f1f8a2..20a19bdf 100644 --- a/Makefile_old +++ b/Makefile_old @@ -1,38 +1,3 @@ -# Deploy to current *mamweb-test* directory -deploy: venv_check - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in directory mamweb-test"; exit 1; fi - @echo "Installing version from origin/${BRANCH} ..." - git pull origin ${BRANCH} - git clean -f - make install - ./manage.py migrate - ./manage.py collectstatic --noinput - (chown -R :mam . || true ) - (chmod -R g+rX,go-w . || true ) - @echo Restarting systemd unit - systemctl --user restart mamweb-test.service - @echo Done. - -# Deploy to current *mamweb-prod* directory -deploy_prod: venv_check - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-prod" ]; then echo "Only possible in directory mamweb-prod"; exit 1; fi - @echo "Backing up production DB ..." - ( cd -P .. && ./backup_prod_db.sh ) - @echo "Installing version from origin/master ..." - git pull origin master - git clean -f - make install - ./manage.py migrate - ./manage.py collectstatic --noinput - (chown -R :mam . || true ) - (chmod -R g+rX,go-w . || true ) - @echo Restarting systemd user unit for MaM web - systemctl --user restart mamweb-prod.service - @echo Done. - - sync_prod_flatpages: venv_check @echo Downloading current version of flatpages from mamweb-prod. ssh mam-web@gimli.ms.mff.cuni.cz \ diff --git a/make/deploy b/make/deploy index 60347f1e..d25df6ce 100755 --- a/make/deploy +++ b/make/deploy @@ -1,3 +1,25 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +if test "$USER" != "mam-web"; +then + echo >&2 "Nasadit web smí jen uživatel mam-web" + exit 1 +fi + +if test "$(readlink -f .)" != "$TESTWEB"; +then + echo >&2 "Nasadit testweb lze jen v jeho složce" + exit 1 +fi + +CURRENT_BRANCH="$(git branch --show-current)" +BRANCH="${1:-$CURRENT_BRANCH}" + +safe_checkout_branch "$BRANCH" "$0" + +# Teď máme správnou větev, jdeme vše nainstalovat +install_everything +systemctl --user restart mamweb-test.service diff --git a/make/deploy_prod b/make/deploy_prod index 60347f1e..8e006938 100755 --- a/make/deploy_prod +++ b/make/deploy_prod @@ -1,3 +1,34 @@ #!/bin/bash set -exuo pipefail +. make/lib.sh + +if test "$USER" != "mam-web" +then + echo >&2 "Nasadit web smí jen uživatel mam-web" + exit 1 +fi + +if test "$(readlink -f .)" != "$PRODWEB" +then + echo >&2 "Nasadit testweb lze jen v jeho složce" + exit 1 +fi + +CURRENT_BRANCH="$(git branch --show-current)" +BRANCH="${1:-$CURRENT_BRANCH}" + +if test "$BRANCH" != master +then + echo "Pozor, nasazuješ na produkci větev, která není master ($BRANCH), chceš pokračovat? Pokud ne, sestřel tento skript." + read +fi + +# Záloha DB +( cd -P .. && ./backup_prod_db.sh ) + +safe_checkout_branch "$BRANCH" "$0" + +# Teď máme správnou větev, jdeme vše nainstalovat +install_everything +systemctl --user restart mamweb-prod.service diff --git a/make/lib.sh b/make/lib.sh index 3e4e99c9..fb56e991 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -25,3 +25,45 @@ function ensure_venv { test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" . "$VENV_PATH/bin/activate" } + + +function safe_checkout_branch { + if "$#" -ne 2; + then + echo >&2 "Použití: $0 " + return 1 + fi + + BRANCH="$1" + SCRIPT="$2" + + echo "Debug: I am $0, $SCRIPT as param" + + git fetch --all + # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. + # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. + if test $(git rev-parse @:make/lib.sh) != $(git rev-parse "$BRANCH":make/lib.sh) + then + echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" + exit 1 + fi + if test $(git rev-parse @:"$SCRIPT") != $(git rev-parse "$BRANCH":"$SCRIPT") + then + echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" + exit 1 + fi + git checkout "$BRANCH" + git pull + git clean -f +} + +function install_everything { + # Skoro celé nasazení webu je stejné pro testweb i pro produkci, tak je to tady dohromady + ensure_venv + make/install + ./manage.py migrate + ./manage.py collectstatic --noinput + chown -R :mam . || true + chmod -R g+rX,go-w . || true +} + From d80babfd73cab28df5ba6effe77edf680e51d2d6 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 14 Nov 2022 23:20:55 +0100 Subject: [PATCH 013/515] =?UTF-8?q?Smaz=C3=A1n=20obsah=20make/sync*?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nic tam nebylo a teď je vidět ve `file *`, že tam nic není. --- make/sync_prod_flatpages | 3 --- make/sync_test | 3 --- make/sync_test_db_aggressive | 3 --- make/sync_test_media | 3 --- 4 files changed, 12 deletions(-) diff --git a/make/sync_prod_flatpages b/make/sync_prod_flatpages index 60347f1e..e69de29b 100755 --- a/make/sync_prod_flatpages +++ b/make/sync_prod_flatpages @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/sync_test b/make/sync_test index 60347f1e..e69de29b 100755 --- a/make/sync_test +++ b/make/sync_test @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/sync_test_db_aggressive b/make/sync_test_db_aggressive index 60347f1e..e69de29b 100755 --- a/make/sync_test_db_aggressive +++ b/make/sync_test_db_aggressive @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail diff --git a/make/sync_test_media b/make/sync_test_media index 60347f1e..e69de29b 100755 --- a/make/sync_test_media +++ b/make/sync_test_media @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail From 323477dbf23a46fa20e59ca47e5968a1c18e600c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 14 Nov 2022 23:21:20 +0100 Subject: [PATCH 014/515] =?UTF-8?q?Smaz=C3=A1n=20venv=5Fcheck?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Je úplně k ničemu, když si nové skripty zapínají venv samy --- make/venv_check | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 make/venv_check diff --git a/make/venv_check b/make/venv_check deleted file mode 100755 index 60347f1e..00000000 --- a/make/venv_check +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -set -exuo pipefail From f6d939fc31251ddfe451930e57275f842f287356 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Tue, 15 Nov 2022 11:48:48 +0100 Subject: [PATCH 015/515] =?UTF-8?q?P=C5=99ebyte=C4=8Dn=C3=BD=20st=C5=99edn?= =?UTF-8?q?=C3=ADk?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/lib.sh b/make/lib.sh index fb56e991..8ae08e1f 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -28,7 +28,7 @@ function ensure_venv { function safe_checkout_branch { - if "$#" -ne 2; + if "$#" -ne 2 then echo >&2 "Použití: $0 " return 1 From 0458abb41900904d96d3a2d82f516296aa8509ae Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Tue, 15 Nov 2022 11:58:22 +0100 Subject: [PATCH 016/515] Kontroly prerekvizit do knihovny --- make/deploy | 13 ++----------- make/deploy_prod | 13 ++----------- make/lib.sh | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/make/deploy b/make/deploy index d25df6ce..4e93d5e1 100755 --- a/make/deploy +++ b/make/deploy @@ -3,17 +3,8 @@ set -exuo pipefail . make/lib.sh -if test "$USER" != "mam-web"; -then - echo >&2 "Nasadit web smí jen uživatel mam-web" - exit 1 -fi - -if test "$(readlink -f .)" != "$TESTWEB"; -then - echo >&2 "Nasadit testweb lze jen v jeho složce" - exit 1 -fi +gimli_only +only_in_directory "$TESTWEB" CURRENT_BRANCH="$(git branch --show-current)" BRANCH="${1:-$CURRENT_BRANCH}" diff --git a/make/deploy_prod b/make/deploy_prod index 8e006938..0c10219d 100755 --- a/make/deploy_prod +++ b/make/deploy_prod @@ -3,17 +3,8 @@ set -exuo pipefail . make/lib.sh -if test "$USER" != "mam-web" -then - echo >&2 "Nasadit web smí jen uživatel mam-web" - exit 1 -fi - -if test "$(readlink -f .)" != "$PRODWEB" -then - echo >&2 "Nasadit testweb lze jen v jeho složce" - exit 1 -fi +gimli_only +only_in_directory "$PRODWEB" CURRENT_BRANCH="$(git branch --show-current)" BRANCH="${1:-$CURRENT_BRANCH}" diff --git a/make/lib.sh b/make/lib.sh index 8ae08e1f..20329d3f 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -26,6 +26,24 @@ function ensure_venv { . "$VENV_PATH/bin/activate" } +function gimli_only { + # Rovnou zkontrolujeme i uživatele + if test "$HOSTNAME" != gimli -o "$USER" != mam-web + then + echo "Tento příkaz se má spouštět na gimlim, chceš pokračovat? Pokud ne, sestřel tento skript." + read + fi +} + +function only_in_directory { + DIR="$1" + CURRENT="$(readlink -f .)" + if test "$CURRENT" != "$DIR" + then + echo "Tento příkaz se má spouštět ve složce $DIR, chceš pokračovat? Pokud ne, sestřel tento skript." + read + fi +} function safe_checkout_branch { if "$#" -ne 2 From 5cfadf9236890bcfc418f1b9af6aa223d7e1d1d1 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Tue, 15 Nov 2022 12:05:12 +0100 Subject: [PATCH 017/515] =?UTF-8?q?Make:=20p=C5=99esunuty=20sync=5Ftest=5F?= =?UTF-8?q?media?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Taky jsem smazal nějaké komentáře v Makefile_old, aby nepřekážely. --- Makefile_old | 8 -------- make/sync_test_media | 9 +++++++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Makefile_old b/Makefile_old index 20a19bdf..7f3799cc 100644 --- a/Makefile_old +++ b/Makefile_old @@ -7,12 +7,6 @@ sync_prod_flatpages: venv_check ./manage.py loaddata data/flat.json @echo "Done." -# Sync test media directory with production -sync_test_media: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - @if [ `readlink -f .` != "/aux/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi - rsync -av --delete /akce/mam/www/mamweb-prod/media/ ./media - # Sync (with drop) test database with production database sync_test_db_aggressive: @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @@ -25,6 +19,4 @@ sync_test_db_aggressive: psql mam_test -c "UPDATE django_site SET name='MaMweb (test)', domain='mam-test.ks.matfyz.cz' WHERE id=1" @echo Done. -# Sync test with production -# HACK ALERT: using aggressive variant, due to the schemas being too different. sync_test: sync_test_media sync_test_db_aggressive diff --git a/make/sync_test_media b/make/sync_test_media index e69de29b..d7991b65 100755 --- a/make/sync_test_media +++ b/make/sync_test_media @@ -0,0 +1,9 @@ +#!/bin/bash + +set -exuo pipefail +. make/lib.sh + +gimli_only +only_in_dir "$TESTWEB" + +rsync -av --delete "$PRODWEB/media/" ./media From 5abd93d27f82df656f95d66c823216ab6fc54ece Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Tue, 15 Nov 2022 12:16:50 +0100 Subject: [PATCH 018/515] Zbytek sync_test --- Makefile_old | 14 -------------- make/sync_test | 11 +++++++++++ make/sync_test_db_aggressive | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/Makefile_old b/Makefile_old index 7f3799cc..3b32e7e7 100644 --- a/Makefile_old +++ b/Makefile_old @@ -6,17 +6,3 @@ sync_prod_flatpages: venv_check @echo "Applying downloaded flatpages." ./manage.py loaddata data/flat.json @echo "Done." - -# Sync (with drop) test database with production database -sync_test_db_aggressive: - @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi - pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql - pg_dump -Fc mam_prod > dump-prod.sql - @# I am not sure which shell is used, so I am calling bash to make sure - psql mam_test -c 'DROP OWNED BY "mam-web";' - pg_restore -c --if-exists -d mam_test dump-prod.sql - rm dump-prod.sql - psql mam_test -c "UPDATE django_site SET name='MaMweb (test)', domain='mam-test.ks.matfyz.cz' WHERE id=1" - @echo Done. - -sync_test: sync_test_media sync_test_db_aggressive diff --git a/make/sync_test b/make/sync_test index e69de29b..68c6020d 100755 --- a/make/sync_test +++ b/make/sync_test @@ -0,0 +1,11 @@ +#!/bin/bash + +set -exuo pipefail +. make/lib.sh + +# Prerekvizity nekontrolujeme, dokud voláme další make skripty, tak by akorát +# vedly k víc dotazům na stejnou věc a bylo by to otravné. Pokud tu někdy bude +# něco jiného, tak pak ať tu prerekvizity zmíněné jsou. + +make/sync_test_db_aggressive +make/sync_test_media diff --git a/make/sync_test_db_aggressive b/make/sync_test_db_aggressive index e69de29b..11faba7b 100755 --- a/make/sync_test_db_aggressive +++ b/make/sync_test_db_aggressive @@ -0,0 +1,18 @@ +#!/bin/bash + +set -exuo pipefail +. make/lib.sh + +gimli_only +# Teoreticky není potřeba, ale stejně jinde make skripty nejsou a pouštět to z +# produkce nezní jako běžný stav, kromě toho to aktuálně vyrábí pomocné soubory +# v aktuální složce (FIXME do budoucna) a to na produkci nechceme +only_in_directory "$TESTWEB" + +pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql +pg_dump -Fc mam_prod > dump-prod.sql +psql mam_test -c 'DROP OWNED BY "mam-web";' +pg_restore -c --if-exists -d mam_test dump-prod.sql +rm dump-prod.sql +psql mam_test -c "UPDATE django_site SET name='MaMweb (test)', domain='mam-test.ks.matfyz.cz' WHERE id=1" + From 7c90c1ef5e4b7343ca6bc4a7d7a7c78c0c7b3af3 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Tue, 15 Nov 2022 12:43:31 +0100 Subject: [PATCH 019/515] sync_prod_flatpages --- Makefile_old | 8 -------- make/sync_prod_flatpages | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 8 deletions(-) delete mode 100644 Makefile_old diff --git a/Makefile_old b/Makefile_old deleted file mode 100644 index 3b32e7e7..00000000 --- a/Makefile_old +++ /dev/null @@ -1,8 +0,0 @@ -sync_prod_flatpages: venv_check - @echo Downloading current version of flatpages from mamweb-prod. - ssh mam-web@gimli.ms.mff.cuni.cz \ - "cd /akce/mam/www/mamweb-prod; . env/bin/activate; ./manage.py dumpdata flatpages --indent=2 > flat.json; ./fix_json.py flat.json flat_fixed.json" - rsync -ave ssh mam-web@gimli.ms.mff.cuni.cz:/akce/mam/www/mamweb-prod/flat_fixed.json data/flat.json - @echo "Applying downloaded flatpages." - ./manage.py loaddata data/flat.json - @echo "Done." diff --git a/make/sync_prod_flatpages b/make/sync_prod_flatpages index e69de29b..76c31f1b 100755 --- a/make/sync_prod_flatpages +++ b/make/sync_prod_flatpages @@ -0,0 +1,18 @@ +#!/bin/bash + +set -exuo pipefail +. make/lib.sh + +ensure_venv + +# TODO: This is very ugly, will fix in a future PR (hopefully) +ssh "$GIMLI_LOGIN" " + cd $PRODWEB + . env/bin/activate + ./manage.py dumpdata flatpages --indent=2 > flat.json + ./fix_json.py flat.json flat_fixed.json + " +rsync -ave ssh "$GIMLI_LOGIN:$PRODWEB/flat_fixed.json" data/flat.json + +./manage.py loaddata data/flat.json + From 315dc97635ba155a59910969cc0de2ddaca65b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 15 Nov 2022 13:08:20 +0100 Subject: [PATCH 020/515] =?UTF-8?q?Add:=20dal=C5=A1=C3=AD=20n=C3=A1pad=20d?= =?UTF-8?q?o=20apr=C3=ADlu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/april.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/april.rst b/docs/april.rst index 5f103357..8a479b20 100644 --- a/docs/april.rst +++ b/docs/april.rst @@ -2,3 +2,4 @@ Aprílové nápad ============== * aprílový easter-egg pro řešitele - vytvořit nějakou vtipnou testovací databázi a nasadit ji místo produkce +* změnit veškerý text na oranžovo From 38192db1de2d617bbfeeebff0b7d984a4a214f31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Turinsk=C3=BD?= Date: Wed, 16 Nov 2022 21:17:19 +0100 Subject: [PATCH 021/515] Popis, co je .editorconfig --- .editorconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.editorconfig b/.editorconfig index e385fb3c..94a82858 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,3 +1,6 @@ +# Univerzální popis našich konvencí pro nastavení editorů. +# Vizte https://editorconfig.org pro detaily + root = true [*] From 30853ecd77cb02f450bef1dd26b4e3e9877b5296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Turinsk=C3=BD?= Date: Wed, 16 Nov 2022 21:20:09 +0100 Subject: [PATCH 022/515] =?UTF-8?q?Koment=C3=A1=C5=99e=20=C4=8Desky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 94a82858..758912bb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,16 +5,16 @@ root = true [*] charset = utf-8 -# Unix-y lines +# Unixové řádky end_of_line = lf insert_final_newline = true [*.{py,css}] indent_style = tab -# I do not think we prescribe, how big a tab is. +# Nenařizujeme konkrétní šířku tabulátoru indent_size = unset -# Migrations are auto-generated and thus follow PEP-8, let's not fight with that +# Automaticky generované migrace dodržují PEP-8, nemá smysl s tím moc bojovat. [*/migrations/*.py] indent_style = space indent_size = 4 From 4fd3a0c4f51f57a45a5bdf14fd73dabc1135aea4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 17 Nov 2022 01:57:37 +0100 Subject: [PATCH 023/515] =?UTF-8?q?Hlasit=C4=9Bj=C5=A1=C3=AD=20varov=C3=A1?= =?UTF-8?q?n=C3=AD=20p=C5=99i=20pou=C5=BEit=C3=AD=20make?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 5f902dda..ff0af09e 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,10 @@ # Existence tohohle Makefile je tu jen proto, aby fungovala svalová paměť. Pokud můžete, použijte rovnou `make/…` %: - @make/$* + # Používání make jako příkazu je zastaralé, prosím používej radši skripty ze složky make. Spouštím následující příkaz: + make/$* all: @# Nevím, proč to nefunguje bez těla, ale vlastně je mi to jedno… - @make/all + make/all .PHONY: all From 31834b7f8a26df3ab146152988bb416d2533f938 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:12:35 +0100 Subject: [PATCH 024/515] =?UTF-8?q?Zru=C5=A1en=20`make/all`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nic moc nedělal, tak jsem ho nahradil (IMHO lepší) dokumentací. --- Makefile | 3 +-- make/README.md | 34 ++++++++++++++++++++++++++++++++++ make/all | 17 ----------------- 3 files changed, 35 insertions(+), 19 deletions(-) create mode 100644 make/README.md delete mode 100755 make/all diff --git a/Makefile b/Makefile index ff0af09e..09d9acc8 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,6 @@ make/$* all: - @# Nevím, proč to nefunguje bez těla, ale vlastně je mi to jedno… - make/all + @cat make/README.md .PHONY: all diff --git a/make/README.md b/make/README.md new file mode 100644 index 00000000..1d1baa47 --- /dev/null +++ b/make/README.md @@ -0,0 +1,34 @@ +Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. + +Předně: většina příkazů bude asi vypisovat spoustu detailů, takže ti doporučuji +si tento text otevřít někde separátně. Nachází se v repozitáři v +`make/README.md`, případně si jej můžeš zobrazit hezčeji vykreslený na +[Gitee](https://gitea.ks.matfyz.cz/mam/mamweb/src/branch/master/make/README.md). + +O zprovoznění webu se stará hlavně skript `make/install_web`. Ten vytvoří +virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu. Pak ovšem +budeš potřebovat nahrát další data do databáze, což uděláš pomocí příkazů +`./manage.py testdata` a `./manage.py loaddata data/*`. Skript +`make/install_web` ti to kdyžtak připomene. + +Samotný web spustíš třeba pomocí `make/run`, nebo ekvivalentně `./manage.py runserver`. + +Pozor: zatímco skripty v `make/` to nepotřebují, pro použití skriptu +`./manage.py` se potřebuješ přepnout do virtuálního prostředí. To uděláš velmi +pravděpodobně spuštěním `source env/bin/activate`, před začátkem _promptu_ by +se mělo objevit `(env)`. Pro opuštění spusť `deactivate`. + +Časté problémy +----- +Je možné, že nemáš všechny potřebné závislosti v systému. Proto je možné, že +`make/install_web` vyhodí nějakou chybovou hlášku: + +- `Error: pg_config executable not found.`: nainstaluj si `libpq-dev` (na Ubuntu/Debianu, jinde se příslušný balíček může jmenovat jinak) +- Chybová hláška obsahuje `#include `: nainstaluj si `python3-dev` + + + diff --git a/make/all b/make/all deleted file mode 100755 index c6a92157..00000000 --- a/make/all +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -set -euo pipefail -. make/lib.sh - -echo "Install je trochu magický: - Spusť následující posloupnost příkazů: - make install_venv - . ${VENV_PATH}/bin/activate - make install_web - - Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev - Pokud chybová hláška obsahuje #include , nainstaluj si python3-dev - - Až skončíš s vývojem webu, spusť 'deactivate'. Tím zmizí '(${VENV_PATH})' ze začátku promptu." - - From 1a56ba02f35d2540ca176276be64dfbe35c2277d Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:13:15 +0100 Subject: [PATCH 025/515] =?UTF-8?q?Make:=20v=C3=BDchoz=C3=AD=20target=20se?= =?UTF-8?q?=20jmenuje=20`default`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `all` tam nemá žádnou sémantiku… --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 09d9acc8..fb967112 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # Používání make jako příkazu je zastaralé, prosím používej radši skripty ze složky make. Spouštím následující příkaz: make/$* -all: +default: @cat make/README.md -.PHONY: all +.PHONY: default From d0865010956dbf66f885e87c88050237b03248e6 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:15:00 +0100 Subject: [PATCH 026/515] =?UTF-8?q?make/lib:=20lok=C3=A1ln=C3=AD=20prom?= =?UTF-8?q?=C4=9Bnn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index 20329d3f..727df395 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -36,8 +36,8 @@ function gimli_only { } function only_in_directory { - DIR="$1" - CURRENT="$(readlink -f .)" + local DIR="$1" + local CURRENT="$(readlink -f .)" if test "$CURRENT" != "$DIR" then echo "Tento příkaz se má spouštět ve složce $DIR, chceš pokračovat? Pokud ne, sestřel tento skript." @@ -52,8 +52,8 @@ function safe_checkout_branch { return 1 fi - BRANCH="$1" - SCRIPT="$2" + local BRANCH="$1" + local SCRIPT="$2" echo "Debug: I am $0, $SCRIPT as param" From 346079cee3e0eb20c924bf09af61e59eac8106a4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:17:57 +0100 Subject: [PATCH 027/515] make/lib: Funkce install_everything je jen pro Gimliho --- make/lib.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/make/lib.sh b/make/lib.sh index 727df395..bc919886 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -77,6 +77,7 @@ function safe_checkout_branch { function install_everything { # Skoro celé nasazení webu je stejné pro testweb i pro produkci, tak je to tady dohromady + gimli_only ensure_venv make/install ./manage.py migrate From ac9cb53185edf2c2ee29bea8bffece0d21015bc2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:23:41 +0100 Subject: [PATCH 028/515] =?UTF-8?q?Hez=C4=8D=C3=AD=20SSH=20spojen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Přidal jsem `set -euxo pipefail`, takže nejsou potřeba `&&` a obecně se to chová víc jako ostatní make skripty - Venv se zapíná stejně jako v lokálních skriptech, takže se dá jednoduše změnit jeho cesta --- make/push_compiled_vue_to_test | 9 +++++++-- make/sync_prod_flatpages | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/make/push_compiled_vue_to_test b/make/push_compiled_vue_to_test index f386ee86..99495a7b 100755 --- a/make/push_compiled_vue_to_test +++ b/make/push_compiled_vue_to_test @@ -5,5 +5,10 @@ set -exuo pipefail scp vue_frontend/webpack-stats.json "$GIMLI_LOGIN:$TESTWEB/vue_frontend/" rsync -ave ssh seminar/static/seminar/vue "$GIMLI_LOGIN:$TESTWEB/seminar/static/seminar/" -# TODO: Je OK tady zapínat venv přímo takhle, nebo by to taky mělo být enkapsulováno do nějakého skriptu (e.g. make/deploy/collect_static)? -ssh "$GIMLI_LOGIN" "cd $TESTWEB && . env/bin/activate && ./manage.py collectstatic --noinput" +ssh "$GIMLI_LOGIN" " + set -euxo pipefail + cd $TESTWEB + . make/lib.sh + ensure_venv + ./manage.py collectstatic --noinput + " diff --git a/make/sync_prod_flatpages b/make/sync_prod_flatpages index 76c31f1b..4d9d8e1f 100755 --- a/make/sync_prod_flatpages +++ b/make/sync_prod_flatpages @@ -7,8 +7,10 @@ ensure_venv # TODO: This is very ugly, will fix in a future PR (hopefully) ssh "$GIMLI_LOGIN" " + set -euxo pipefail cd $PRODWEB - . env/bin/activate + . make/lib.sh + ensure_venv ./manage.py dumpdata flatpages --indent=2 > flat.json ./fix_json.py flat.json flat_fixed.json " From e36410ee823bffb7e8dbe0be819aa78fc391cbea Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:27:16 +0100 Subject: [PATCH 029/515] =?UTF-8?q?make/lib:=20koment=C3=A1=C5=99e=20kolem?= =?UTF-8?q?=20git-rev-parse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index bc919886..062dc617 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -60,12 +60,13 @@ function safe_checkout_branch { git fetch --all # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. - if test $(git rev-parse @:make/lib.sh) != $(git rev-parse "$BRANCH":make/lib.sh) + # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. + if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH":make/lib.sh)" then echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" exit 1 fi - if test $(git rev-parse @:"$SCRIPT") != $(git rev-parse "$BRANCH":"$SCRIPT") + if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH":"$SCRIPT")" then echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" exit 1 From 28760e2c4d0e8adb43c90b3eeed7f9c764996686 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:33:19 +0100 Subject: [PATCH 030/515] =?UTF-8?q?Smaz=C3=A1n=20install=5Fvenv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Všechny make skripty stejně vyrábí venv přes `ensure_venv` a protože web nikdo nikdy nebude instalovat jinak (nebo když bude, tak asi ví, co dělá), tak tohle nedává smysl spouštět. --- make/install_venv | 6 ------ 1 file changed, 6 deletions(-) delete mode 100755 make/install_venv diff --git a/make/install_venv b/make/install_venv deleted file mode 100755 index f5f3664f..00000000 --- a/make/install_venv +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -set -exuo pipefail -. make/lib.sh - -${VENV} ${VENV_PATH} From 5963089539c955363f18a2558f5175ce5ae4fdae Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:37:27 +0100 Subject: [PATCH 031/515] =?UTF-8?q?make/lib:=20.git=20m=C5=AF=C5=BEe=20b?= =?UTF-8?q?=C3=BDt=20i=20norm=C3=A1ln=C3=AD=20soubor=20(worktree)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/lib.sh b/make/lib.sh index 062dc617..7df79d82 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -19,7 +19,7 @@ function die { # Vždycky chceme zajistit, že běžíme z rootu repozitáře # TODO: chceme? Nechceme naopak umět to spouštět odkudkoliv, aspoň u většiny targetů? -test -d '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z kořenového adresáře repozitáře." +test -e '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z kořenového adresáře repozitáře." function ensure_venv { test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" From e4c2eda955aef9c1442189273f552f20401158c9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:38:03 +0100 Subject: [PATCH 032/515] make/run bere parametry --- make/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/run b/make/run index 44852432..c601593a 100755 --- a/make/run +++ b/make/run @@ -5,4 +5,4 @@ set -exuo pipefail ensure_venv -./manage.py runserver +./manage.py runserver "$@" From a390ef03293d70945800a3fecbe5041ebfed03d9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:40:03 +0100 Subject: [PATCH 033/515] =?UTF-8?q?make/lib:=20safe=5Fcheckout=5Fbranch=20?= =?UTF-8?q?sta=C4=8D=C3=AD=201=20parametr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/deploy | 2 +- make/deploy_prod | 2 +- make/lib.sh | 6 ++---- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/make/deploy b/make/deploy index 4e93d5e1..24ade165 100755 --- a/make/deploy +++ b/make/deploy @@ -9,7 +9,7 @@ only_in_directory "$TESTWEB" CURRENT_BRANCH="$(git branch --show-current)" BRANCH="${1:-$CURRENT_BRANCH}" -safe_checkout_branch "$BRANCH" "$0" +safe_checkout_branch "$BRANCH" # Teď máme správnou větev, jdeme vše nainstalovat install_everything diff --git a/make/deploy_prod b/make/deploy_prod index 0c10219d..ec3110c6 100755 --- a/make/deploy_prod +++ b/make/deploy_prod @@ -18,7 +18,7 @@ fi # Záloha DB ( cd -P .. && ./backup_prod_db.sh ) -safe_checkout_branch "$BRANCH" "$0" +safe_checkout_branch "$BRANCH" # Teď máme správnou větev, jdeme vše nainstalovat install_everything diff --git a/make/lib.sh b/make/lib.sh index 7df79d82..581252cf 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -48,14 +48,12 @@ function only_in_directory { function safe_checkout_branch { if "$#" -ne 2 then - echo >&2 "Použití: $0 " + echo >&2 "Použití: $0 " return 1 fi local BRANCH="$1" - local SCRIPT="$2" - - echo "Debug: I am $0, $SCRIPT as param" + local SCRIPT="$0" git fetch --all # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. From 1615e921590d06e151d80b3bf8e56e615bc0ee2d Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:45:48 +0100 Subject: [PATCH 034/515] =?UTF-8?q?safe=5Fcheckout=5Fbranch:=20porovn?= =?UTF-8?q?=C3=A1v=C3=A1me=20proti=20upstreamu,=20ne=20aktu=C3=A1ln=C3=AD?= =?UTF-8?q?=20verzi.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index 581252cf..e45df48f 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -59,12 +59,12 @@ function safe_checkout_branch { # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. - if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH":make/lib.sh)" + if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH"@{u}:make/lib.sh)" then echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" exit 1 fi - if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH":"$SCRIPT")" + if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH"@{u}:"$SCRIPT")" then echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" exit 1 From 34e751fd699b4b0e637935848b00145925925a4c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:52:51 +0100 Subject: [PATCH 035/515] =?UTF-8?q?fixup!=20make/lib:=20safe=5Fcheckout=5F?= =?UTF-8?q?branch=20sta=C4=8D=C3=AD=201=20parametr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/lib.sh b/make/lib.sh index e45df48f..2085ad8f 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -46,7 +46,7 @@ function only_in_directory { } function safe_checkout_branch { - if "$#" -ne 2 + if test "$#" -ne 1 then echo >&2 "Použití: $0 " return 1 From b1e6448c3c47a0b2bc936c9bb4da18cdda3fb348 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 04:57:48 +0100 Subject: [PATCH 036/515] =?UTF-8?q?safe=5Fcheckout=5Fbranch:=20varov=C3=A1?= =?UTF-8?q?n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/make/lib.sh b/make/lib.sh index 2085ad8f..ce4c9a4d 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -59,6 +59,7 @@ function safe_checkout_branch { # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. + # Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH"@{u}:make/lib.sh)" then echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" From 3fcc03b769014fad6be594c18b3d714eae1901a4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 05:08:24 +0100 Subject: [PATCH 037/515] Shellcheck :-) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ne že by mi na tom záviselo, ale kód to nezhoršuje a pokud to aspoň o trochu zmenší šanci na nějaké přehlédnutí, tak je to OK. A spoustu varování shellchecku jsem vyignoroval a nemíním plevelit kód komentáři, o čem všem vím a on ne :-) --- make/lib.sh | 4 ++-- make/sync_test_db_aggressive | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index ce4c9a4d..f04b9941 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -60,12 +60,12 @@ function safe_checkout_branch { # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. # Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… - if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH"@{u}:make/lib.sh)" + if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH@{u}":make/lib.sh)" then echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" exit 1 fi - if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH"@{u}:"$SCRIPT")" + if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH@{u}":"$SCRIPT")" then echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" exit 1 diff --git a/make/sync_test_db_aggressive b/make/sync_test_db_aggressive index 11faba7b..9acce93b 100755 --- a/make/sync_test_db_aggressive +++ b/make/sync_test_db_aggressive @@ -9,7 +9,7 @@ gimli_only # v aktuální složce (FIXME do budoucna) a to na produkci nechceme only_in_directory "$TESTWEB" -pg_dump mam_test > dump-test-`date +"%Y%m%d_%H%M"`.sql +pg_dump mam_test > "dump-test-$(date +"%Y%m%d_%H%M").sql" pg_dump -Fc mam_prod > dump-prod.sql psql mam_test -c 'DROP OWNED BY "mam-web";' pg_restore -c --if-exists -d mam_test dump-prod.sql From a184871bf9b26aa4977e5227a809a7a4811b24bd Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 05:16:02 +0100 Subject: [PATCH 038/515] =?UTF-8?q?make/lib:=20Kdy=C5=BE=20se=20to=20nepov?= =?UTF-8?q?ede,=20tak=20budeme=20k=C5=99i=C4=8Det?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Uvědomil jsem si, že aktuálně nejde skoro vůbec poznat, jestli make skript uspěl nebo ne. Tohle by se mělo vypsat, když se nepovede. Víc by se mi líbilo, kdyby úspěšné doběhnutí ohlásilo "OK", ale to neumím udělat bez nějakého zápatí skriptů. (Resp. uměl bych: make/lib může být interpretr, který na začátku zinicalizuje proměnné, pak natáhne příslušný skript a na konci ohlásí OK. Ale přijde mi to trochu moc magické, takže pokud někdo nebude nějak extra pro, tak to tak neudělám :-)) --- make/lib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/make/lib.sh b/make/lib.sh index f04b9941..135f859e 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -17,6 +17,8 @@ function die { exit 1 } +trap 'echo Něco se nepovedlo :-/' ERR + # Vždycky chceme zajistit, že běžíme z rootu repozitáře # TODO: chceme? Nechceme naopak umět to spouštět odkudkoliv, aspoň u většiny targetů? test -e '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z kořenového adresáře repozitáře." From 50eaaf9eb7838b8560e2823b26bda124c8e8f054 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 15:38:41 +0100 Subject: [PATCH 039/515] =?UTF-8?q?P=C5=99ed=C4=9Bl=C3=A1no=20Readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Teď vypadá víc jako readme, na které chceš narazit v gitee, než jako pár random tipů. Random tipy jsem přesunul do dokumentace --- README.md | 137 +++++++++++++++++++++++------------------------------- 1 file changed, 58 insertions(+), 79 deletions(-) diff --git a/README.md b/README.md index 5d2f9c30..94b8cf2d 100644 --- a/README.md +++ b/README.md @@ -1,79 +1,58 @@ -**TODO: přepsat, tohle dávno neplatí!** - -Basic commands for web development -================================== - -After you clone this repository, run `make`. It will download, locally install -and setup virtualenv and pip, and then locally install all required packages -from `requirements.txt`. - -When working with the code, always use the binaries in `./bin/`, such as -`bin/pip`, `bin/python`, ... never the global python, pip, ... -Use `make` and `./manage.py` for most things. - -Use git :-) - -Quickstart ----------- -Run the following commands: - make install_venv - . env/bin/activate - make install_web - -Pokud install_web říká Error: pg_config executable not found. nainstaluj si libpq-dev -Pokud chybová hláška obsahuje #include , nainstaluj si python3-dev - -After finishing development, run "deactivate". - -Make commands -------------- - -* `make install` (or `make`) - locally install and setup virtualpy, install - required packages. Ran again installs missing packages. Run after changing - `requirements.txt`. - -* `make clean` - remove local python packages. - -* `make veryclean` - remove local packages and virtualpy enviroment and - binaries. - -* `make run` - runs "./manage.py runserver_plus" - -* `make push_test` - pushes the last commited version to test location. - Only git-commited changes are pushed! Rest is re-generated from scratch. - At test server, the media data and database are kept the same. - Everything else not in .gitignore is deleted/overwritten on the test server. - -* `make schema` - generates graph of seminar and all schemas as PDF. Supercool! - -* `make sync_prod_flatpages` - downloads and applies static/flat pages from mamweb-prod - -./manage.py commands --------------------- - -* `./manage.py migrate` - update the database schema, initialise the database. - You need to run this in the beginning. - -* `./manage.py runserver_plus` - run a debugging server for the web. Slightly - enhanced compared to `./manage.py runserver`. - Open [127.0.0.1:8000](127.0.0.1:8000). - -* `./manage.py testdata` - create pseudo-random seminar data and admin/admin - user. - -* `./manage.py test` - run the tests. - -* `./manage.py shell` - run commands, list elemements of database, check syntax - by importing files, etc. - -Configurations --------------- - -* `mamweb/settings_common.py` contains most configuration options. -* `mamweb/settings.py` is used only for local development. -* `mamweb/settings_test.py` is used for testing on atrey. -* `mamweb/settings_prod.py` is used in production deployment. - -These are automatically switched by `make`. - - +Web M&M +====== + +Tohle je repozitář s kódem M&Mího webu. Pokud zde hledáte web samotný nebo +informace o semináři, najdete je na (a upřímně nechápu, +jak jste se dostali k tomuhle textu :-D) + +Pokud jste tu zůstali, tak vás beztak zajímá vývoj webu (a jestli ne, tak +budeme rádi, když začne :-)). + +Co je M&Mweb uvnitř +------ +Celý náš web je napsaný v [Pythonu](https://www.python.org) ve frameworku +[Django](https://www.djangoproject.com/). Web běží na serveru zvaném Gimli, +jako databázi používá PostgreSQL (pro lokální vývoj naopak SQLite) a všechen +náš kód je uložený v [Gitu](https://git-scm.com/) na [téhle +gitee](https://gitea.ks.matfyz.cz/). Pro dokumentaci používáme +[Sphinx](https://www.sphinx-doc.org). + + + +Jak si web pořídit +------ +Prosím přečti si podrobnější návod v (tady by bylo zbytečné +ho duplikovat). + +Jak web vyvíjet +---- + + +Na webu je mnoho věcí k dělání, některé ani nevyžadují kódění (třeba uhánění +orgů, aby si psali medailonky, aktualizace fotek, …), některé se naopak týkají +infrastruktury pod kódem (Gitea, Gimli, …). Je proto těžké mít na to úplně +obecný návod, tak tady je zhruba návod na úpravy kódu a pokud se něco z toho +nedá aplikovat, tak to prostě zkus nějak udělat jinak, po svém. (Omlouvám se +neinformatikům, ale líp to teď nesepíšu :-)) + +1. Nejprve si stáhni repozitář a rozběhni si lokální web u sebe (viz ). +1. Najdi si problém v Kanboardu (klikni na „Issues“ na Gitee) a/nebo se domluv + s webaři, na čem bys tak mohl/a pracovat. +1. Najdi místo, kde se to dá opravit a zkus to tam opravit. Uznávám, že tenhle + bod je otravně obecný, pokud tápeš, zkus se zeptat zkušenějších webařů nebo + podívat do dokumentace. +1. Vyzkoušej, že ti to lokálně funguje tak, jak má. +1. Zvládneš-li a máš-li čas, zkus to i zdokumentovat a/nebo napsat testy (TODO: chybí návod) +1. Po dohodě s webaři to vyzkoušej na testwebu +1. Pošli pull-request a případně zkus reagovat na komentáře +1. Až se změna začlení do hlavní větve (`master`) a nasadí se web na produkci, + můžeš mít radost, že se web bude používat lépe Tobě i ostatním orgům :-) + +### Proč pull-requesty? + + +Účelů pull-requestů je několik. Jednak doufáme, že pomůže webařům se orientovat +v kódu, jednak tím umožňujeme dělat experimenty a dávat si zpětnou vazbu. V +neposlední řadě pomáhají držet aspoň trochu konzistentní kód, což má pomoci +pohodě při programování… (A asi jsem na něco zapomněl :-)) From bac44b41f8a489b0ac2a3d6af449632c9b264539 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 15:39:20 +0100 Subject: [PATCH 040/515] =?UTF-8?q?Dokumentace=20lok=C3=A1ln=C3=ADho=20v?= =?UTF-8?q?=C3=BDvoje?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Obsahuje tipy z Readme, obsahuje velkou část make/README.md. Zatím nevím, co provedu s make/README.md, ale na něco třeba přijdu :-) --- docs/vyvoj.rst | 197 ++++++++++++++++++++++++++++++++++++++++++++----- make/README.md | 32 -------- 2 files changed, 179 insertions(+), 50 deletions(-) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 438e8199..3bfdace8 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -1,20 +1,181 @@ Lokální vývoj mamwebu ===================== -Stačí spustit:: - - ## Nahradte svym gimli username - git clone USER@gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb.git mamweb - cd mamweb - ## Instalace je trochu magická, spusť následující posloupnost příkazů: - make install_venv - . env/bin/activate - make install_web - - ## Vygeneruje nejaka testovaci data (spis chuda) - ./manage.py testdata - ## Nahraje statické stránky, menu a obrázky v pozadí menu - ./manage.py loaddata data/* - ## Spusti testovaci server na http://127.0.0.1:8000/ - ./manage.py runserver - -Když si lokálně spustíte web, běží na http://127.0.0.1:8000/, admin najdete na http://127.0.0.1:8000/admin/ (admin/admin) Až skončíš s vývojem webu, spusť “deactivate”. Tím zmizí ‘(env)’ ze začátku promptu. \ No newline at end of file + +Asi hlavní část vývoje většiny webu probíhá lokálně. Každý tak může pracovat na +vlastních úpravách nezávisle na ostatních. + +Potřebné vybavení +------- + +Tento soupis cílí na nějakého typického vývojáře webu – Linuxáka. Jistě je +spousta dalších možností, které zde nejsou postihnuty – poraď se s webaři, +pokud si nejsi jistý. (Speciálně lze nějak vyvíjet na Windows, leč lze často +narazit na odlišné chování od Linuxu.) + +Motivace cílení na Linux je to, že Gimli je Linuxový stroj, takže je vývojové +prostředí pak podobné produkci a zmenšuje to množství odlišného chování. + +.. TODO: Na dokumentaci odlišného chování (Postgres vs. SQLite, Win vs. Linux, …) + by to asi chtělo výhledově separátní stránku, ale teď píšu tuhle :-) + +Nutné +^^^^ + +- `Git `_ +- `Python `_ + + - Ideálně ve verzi 3.9 (to je to, co je aktuálně (2022) na Gimlim) + - Včetně pip-u (na Ubuntu balíček ``python3-pip``) a knihoven pro kompilaci + Cčkových rozšíření (``python3-dev``) +- Knihovna pro práci s PostgreSQL (``libpq-dev``) +- Webový prohlížeč +- \*NIXový shell (typicky ``bash``) + +.. TODO: Pokud tu něco chybí, tak to dopiš :-) + +Kromě toho je potřeba mít účet na `Gitee `_, kde +bydlí gitový repozitář s kódem. + +Doporučené +^^^^^^^^^^ + +- Python wheel (možná řeší problémy s potřebou ``-dev`` balíčků…) +- Editor / IDE podporující `Editorconfig `_ +- Uživatelská zkušenost s `produkční verzí webu `_ +- Účet v `Kanci `_ + +.. TODO: A nejspíš další věci, na které jsem si teď nevzpomněl. + + +Zprovoznění +------- + +Nejprve je potřeba stáhnout si repozitář. To se provede příkazem ``git clone +https://gitea.ks.matfyz.cz/mam/mamweb.git``, případně ``git clone +git@gitea.ks.matfyz.cz:mam/mamweb.git``, pokud už máš nahraný SSH klíč na +Giteu. (Obě adresy se dají zkopírovat ze `stránky repozitáře +`_.) To vyrobí složku ``mamweb``, přepni +se do ní (``cd mamweb``) + +O zprovoznění webu se stará skript ``make/install_web``, stačí ho spustit. Ten +vytvoří virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu (podle +souboru ``requirements.txt``). + +.. FIXME: Novowebaři zmínka o requirements.txt tady moc nepomůže, to má být na + stránce o celkové stavbě repozitáře a stacku… + +Následně je potřeba nahrát další data do databáze, což uděláš pomocí příkazů +``./manage.py testdata`` a ``./manage.py loaddata data/*``. Skript +``make/install_web`` to kdyžtak na konci připomene. + +.. caution:: Zatímco skripty v ``make/`` to nepotřebují, pro použití skriptu + ``./manage.py`` (a dalších) se potřebuješ přepnout do virtuálního prostředí. + To uděláš velmi pravděpodobně spuštěním ``source env/bin/activate``, před + začátkem *promptu* by se mělo objevit ``(env)``. Pro opuštění spusť + ``deactivate``. + +Samotný web se spustí třeba pomocí ``make/run``, nebo ekvivalentně +``./manage.py runserver`` a pak je vidět na ``_. + +Časté problémy +^^^^^^ + +- ``make/install_web`` vypíše ``Error: pg_config executable not found.``: + Chybí ``libpq-dev`` +- Chybová hláška obsahuje ``#include ``: chybí ``python3-dev`` +- Na webu není vidět meníčko: spusť ``./manage.py loaddata data/*`` + +S dalšími problémy se zkus obrátit na další webaře, třeba někdo bude vědět :-) + +Příkazy pro ovládání webu +------- + +Příkazy se dělí do několika skupin. Některé souvisí přímo s webem, Djangem, +databází a podobně, ty typicky používají ``./manage.py``. Skripty pro +obhospodařování repozitáře a webu „zvenku“ typicky bydlí ve složce ``make/``. +Ostatní skripty jsou na náhodných místech :-) + +Tady jsou rozebrány jen příkazy relevantní pro lokální web a univerzálně +užitečné, všechny by chtěly být sepsané jinde (ale zatím nejsou :-/) + +Make skripty +^^^^^^^ + +- ``make/install_web`` nainstaluje závislosti webu +- ``make/run`` spustí web (ekvivalentní s ``./manage.py runserver``) +- ``make/schema`` nakreslí schéma vazeb modelů (může se hodit pro referenci a představu) +- ``make/test`` spustí testy (ale moc jich zatím není; ekvivalentní s ``./manage.py test``) +- ``make/sync_prod_flatpages`` stáhne statické stránky z produkčního webu a + uloží je do souboru v gitu, což umožňuje jejich verzování +- ``make/push_compiled_vue_to_test`` nahraje lokálně zkompilované části + frontendu ve Vue na testweb (Gimli má typicky moc starou verzi nodejs, takže + nejde kompilovat tam.) + +Manage.py skripty +^^^^^ + +.. note:: Je potřeba je spouštět ve virtuálním prostředí, viz výše. + +Všechny skripty kdyžtak mají ``--help``, dá se tak zjistit, co všechno umějí. + +- ``./manage.py testdata`` vygeneruje spíše chudá testovací data, aby bylo na + čem testovat web. +- ``./manage.py loaddata `` nahraje data ze souborů do databáze +- ``./manage.py dumpdata `` naopak z databáze vyrobí textovou reprezentaci +- ``./manage.py shell`` spustí interaktivní pythoní shell, ze kterého lze + interagovat s webem / Djangem. +- ``./manage.py dbshell`` spustí databázový shell (typicky používá SQL) + +- ``./manage.py makemigrations`` vyrobí popis migrací, ``./manage.py migrate`` + je spustí, ``showmigrations`` ukáže, které migrace jsou aplikované a které + ne. +- ``./manage.py runserver_plus`` spouští o něco lepší vývojový server (ale + nikdy jsem asi ty lepší featury nepoužil) + +Může se hodit vědět, že spuštění ``./manage.py`` bez parametrů vypíše seznam +všech příkazů, které lze spustit. + +Dokumentace djangových příkazů je v `dokumentaci Djanga +`_ + +Ostatní užitečné příkazy +^^^^^ + +- ``git status`` je univerzální nápověda na aktuální stav repozitáře a co s tím + lze dělat. +- ``git clean -fxd`` smaže všechny soubory, které nejsou uložené v gitu (včetně + ignorovaných). **Nebezpečný příkaz**, zamysli se, než ho spustíš + +Specifika lokálního webu +------- + +Lokální uživatelé +^^^^^^^ + +Přihlašovací údaje jsou psány jako ``login:heslo`` + +- Superuživatel: ``admin:admin`` +- Orgovské účty: ``o:o``, ``o1:o1`` až ``o3:o3`` +- Řešitelské účty: ``r:r``, ``r1:r1`` až ``r3:r3`` + +Všechny tyto účty jsou (?) svázané s nějakými fiktivními osobami, není ale zřejmé se +kterými, budeš to muset vyzkoušet a pak tady zdokumentovat :-) + +E-maily +^^^^^ + +Posílání e-mailů se lokálně dá zkoušet, e-mail se vypíše do terminálu, kde je +web spuštěn (e.g. pomocí ``make/run``). + +Pruhy +^^^^ + +To, že má lokální web po stranách zelené pruhy je normální a správně, slouží to +k vizuálnímu odlišení lokálního webu. + +.. TODO: Mít někde popis všech tří instancí a tady na něj pak odkázat. +.. - Tahák k používání gitových větví: do workflow, ne sem… +.. - Užitečné odkazy – kam se kouknout + (dohledávání views podle URL, settings_*, ) +.. - Zpříjemnění práce (ssh-klíče, tea, --help, …) + diff --git a/make/README.md b/make/README.md index 1d1baa47..f7e873f1 100644 --- a/make/README.md +++ b/make/README.md @@ -1,34 +1,2 @@ Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. -Předně: většina příkazů bude asi vypisovat spoustu detailů, takže ti doporučuji -si tento text otevřít někde separátně. Nachází se v repozitáři v -`make/README.md`, případně si jej můžeš zobrazit hezčeji vykreslený na -[Gitee](https://gitea.ks.matfyz.cz/mam/mamweb/src/branch/master/make/README.md). - -O zprovoznění webu se stará hlavně skript `make/install_web`. Ten vytvoří -virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu. Pak ovšem -budeš potřebovat nahrát další data do databáze, což uděláš pomocí příkazů -`./manage.py testdata` a `./manage.py loaddata data/*`. Skript -`make/install_web` ti to kdyžtak připomene. - -Samotný web spustíš třeba pomocí `make/run`, nebo ekvivalentně `./manage.py runserver`. - -Pozor: zatímco skripty v `make/` to nepotřebují, pro použití skriptu -`./manage.py` se potřebuješ přepnout do virtuálního prostředí. To uděláš velmi -pravděpodobně spuštěním `source env/bin/activate`, před začátkem _promptu_ by -se mělo objevit `(env)`. Pro opuštění spusť `deactivate`. - -Časté problémy ------ -Je možné, že nemáš všechny potřebné závislosti v systému. Proto je možné, že -`make/install_web` vyhodí nějakou chybovou hlášku: - -- `Error: pg_config executable not found.`: nainstaluj si `libpq-dev` (na Ubuntu/Debianu, jinde se příslušný balíček může jmenovat jinak) -- Chybová hláška obsahuje `#include `: nainstaluj si `python3-dev` - - - From 2ffd3bf445eec5b86e300b4c1329bdae1106955e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 20 Nov 2022 15:52:23 +0100 Subject: [PATCH 041/515] =?UTF-8?q?Aspo=C5=88=20trochu=20relevantn=C3=AD?= =?UTF-8?q?=20make/README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A není to zas tak moc README, spíš intro :-/ --- make/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/make/README.md b/make/README.md index f7e873f1..0597a96b 100644 --- a/make/README.md +++ b/make/README.md @@ -1,2 +1,9 @@ -Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. +TL;DR: Web vyrobíš pomocí následující posloupnosti příkazů: + make/install_web + . env/bin/activate + ./manage.py testdata + ./manage.py loaddata data/* + make/run +a web potom najdeš na +Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. From 6ee9c4e3808a2d4614eee179ed4cb9673ea34318 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 21 Nov 2022 20:05:06 +0100 Subject: [PATCH 042/515] Requirements: myst_parser pro dokumentaci --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 9ad24a7f..d4713d76 100644 --- a/requirements.txt +++ b/requirements.txt @@ -62,3 +62,4 @@ lorem sphinx sphinx_rtd_theme +myst_parser From 25fcddfba8e0296d7eb43cf7d8b722841c0d0709 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 20:18:22 +0100 Subject: [PATCH 043/515] =?UTF-8?q?P=C5=99i=20deployi=20vyrob=20dokumentac?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/deploy | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/make/deploy b/make/deploy index 24ade165..635364b6 100755 --- a/make/deploy +++ b/make/deploy @@ -14,3 +14,10 @@ safe_checkout_branch "$BRANCH" # Teď máme správnou větev, jdeme vše nainstalovat install_everything systemctl --user restart mamweb-test.service + +# Build dokumentace +ensure_venv +( + cd docs + make html +) From e612899dc2bfa9f7484a69b63797c55f4cb46740 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 21 Nov 2022 20:05:06 +0100 Subject: [PATCH 044/515] Requirements: myst_parser pro dokumentaci --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 9ad24a7f..d4713d76 100644 --- a/requirements.txt +++ b/requirements.txt @@ -62,3 +62,4 @@ lorem sphinx sphinx_rtd_theme +myst_parser From dfc12671197dcb85a8df83db3ce6df26963fc751 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 20:40:43 +0100 Subject: [PATCH 045/515] =?UTF-8?q?deploy:=20pr=C3=A1va=20k=20dokumentaci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/deploy | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/make/deploy b/make/deploy index 635364b6..779bbd5c 100755 --- a/make/deploy +++ b/make/deploy @@ -21,3 +21,7 @@ ensure_venv cd docs make html ) +# Oprava práv k dokumentaci +setfacl -m u:www-data:x . docs docs/_build +setfacl -R -m u:www-data:rX docs/_build/html +setfacl -R -m default:u:www-data:rX docs/_build/html From 5c97735948bd727bae692415b7fef8ad53238be7 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 20:54:36 +0100 Subject: [PATCH 046/515] testweb heslo --- make/deploy | 3 +++ 1 file changed, 3 insertions(+) diff --git a/make/deploy b/make/deploy index 779bbd5c..eaccc25b 100755 --- a/make/deploy +++ b/make/deploy @@ -15,6 +15,9 @@ safe_checkout_branch "$BRANCH" install_everything systemctl --user restart mamweb-test.service +# Přihlášení +htpasswd -bc .htpasswd test lisakjelisak + # Build dokumentace ensure_venv ( From df9e473686300f0feee5ffa26cb5fda3005651ae Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 21 Nov 2022 20:59:14 +0100 Subject: [PATCH 047/515] fixup! testweb heslo --- make/deploy | 1 + 1 file changed, 1 insertion(+) diff --git a/make/deploy b/make/deploy index eaccc25b..b615f73f 100755 --- a/make/deploy +++ b/make/deploy @@ -17,6 +17,7 @@ systemctl --user restart mamweb-test.service # Přihlášení htpasswd -bc .htpasswd test lisakjelisak +setfacl -m u:www-data:r .htpasswd # Build dokumentace ensure_venv From 5985c4940f23f0000c33e17b232ba8978342c07e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:03:42 +0100 Subject: [PATCH 048/515] fix --- make/sync_test_media | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/sync_test_media b/make/sync_test_media index d7991b65..44b0e830 100755 --- a/make/sync_test_media +++ b/make/sync_test_media @@ -4,6 +4,6 @@ set -exuo pipefail . make/lib.sh gimli_only -only_in_dir "$TESTWEB" +only_in_directory "$TESTWEB" rsync -av --delete "$PRODWEB/media/" ./media From 66ce7d209da592422ec9f65decfaec2e59311e79 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:11:50 +0100 Subject: [PATCH 049/515] =?UTF-8?q?M=C3=A9n=C4=9B=20hlu=C4=8Dn=C3=A9=20tes?= =?UTF-8?q?ty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/test | 1 + 1 file changed, 1 insertion(+) diff --git a/make/test b/make/test index bdf9f12b..ff5175c9 100755 --- a/make/test +++ b/make/test @@ -5,4 +5,5 @@ set -exuo pipefail ensure_venv +trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku. ./manage.py test -v2 From 6b306f0849bc628bb2ec39f16c31eabdd0b15e12 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:57:41 +0100 Subject: [PATCH 050/515] ensure_venv v2 --- make/lib.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/make/lib.sh b/make/lib.sh index 135f859e..195b6647 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -26,6 +26,11 @@ test -e '.git' || die "Make skript spuštěn ve špatné složce, spusť ho z ko function ensure_venv { test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" . "$VENV_PATH/bin/activate" + # To ale není všechno Horste – ten venv nemusí fungovat, chceme to ověřit a případně spadnout. + local SPRAVNA_CESTA="$(readlink -f "$env/bin/python")" + local SKUTECNA_CESTA="$(readlink -f "$(which python)")" + test "$SPRAVNA_CESTA" != "$SKUTECNA_CESTA" || die "Venv asi nefunguje. Prosím smaž si ho a zkus to znovu." + python -c 'print()' > /dev/null || die "Python ve venvu je rozbitý. Prosím smaž venv a zkus to znovu." } function gimli_only { From d468108188c40be69e71e84d0eeeabf894ce5517 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 21:59:38 +0100 Subject: [PATCH 051/515] ensure_web_installed --- make/lib.sh | 7 +++++++ make/run | 2 +- make/schema | 2 +- make/sync_prod_flatpages | 2 +- make/test | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index 195b6647..a02b94e2 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -33,6 +33,13 @@ function ensure_venv { python -c 'print()' > /dev/null || die "Python ve venvu je rozbitý. Prosím smaž venv a zkus to znovu." } +function ensure_web_installed { + ensure_venv + python -c 'import django; print(django.__version__)' > /dev/null && return + echo >&2 "POZOR: Web nevypadá nainstalovaně, instaluji." + make/install_web +} + function gimli_only { # Rovnou zkontrolujeme i uživatele if test "$HOSTNAME" != gimli -o "$USER" != mam-web diff --git a/make/run b/make/run index c601593a..c3caf58d 100755 --- a/make/run +++ b/make/run @@ -3,6 +3,6 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed ./manage.py runserver "$@" diff --git a/make/schema b/make/schema index 9688e49a..05e84b61 100755 --- a/make/schema +++ b/make/schema @@ -3,7 +3,7 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed ./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf ./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf diff --git a/make/sync_prod_flatpages b/make/sync_prod_flatpages index 4d9d8e1f..ca32c95b 100755 --- a/make/sync_prod_flatpages +++ b/make/sync_prod_flatpages @@ -3,7 +3,7 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed # TODO: This is very ugly, will fix in a future PR (hopefully) ssh "$GIMLI_LOGIN" " diff --git a/make/test b/make/test index ff5175c9..155d03fa 100755 --- a/make/test +++ b/make/test @@ -3,7 +3,7 @@ set -exuo pipefail . make/lib.sh -ensure_venv +ensure_web_installed trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku. ./manage.py test -v2 From c17afece9deea9c21eada821f91f5d299d15f290 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 21 Nov 2022 22:09:24 +0100 Subject: [PATCH 052/515] Fix: #1427 --- .../static/odevzdavatko/check_for_detail.js | 22 ++++ .../dynamic_formsets_for_detail.js | 56 ++++++++++ .../templates/odevzdavatko/detail.html | 101 ++++-------------- odevzdavatko/urls.py | 4 +- odevzdavatko/views.py | 63 ++++++----- 5 files changed, 131 insertions(+), 115 deletions(-) create mode 100644 odevzdavatko/static/odevzdavatko/check_for_detail.js create mode 100644 odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js diff --git a/odevzdavatko/static/odevzdavatko/check_for_detail.js b/odevzdavatko/static/odevzdavatko/check_for_detail.js new file mode 100644 index 00000000..3be7e1e9 --- /dev/null +++ b/odevzdavatko/static/odevzdavatko/check_for_detail.js @@ -0,0 +1,22 @@ +// Kontrola, že org neposílá nějakou blbost v detail.html + +function zkontroluj_hodnoceni() { + const pocet = $('.hodnoceni').length; + if (pocet === 1) { // vydím pouze plusko + const vysledek = confirm("Odstranil jsi všechny problémy tohoto řešení. Nepůjde tedy dohledat přes problémy, co řeší, tj. například v došlých řešeních. Přesto odeslat?"); + if (!vysledek) { + event.preventDefault(); + return false; + } + } + + function problem_is_empty(elem, index, array) {return elem.firstElementChild.children.length !== 1 && elem.firstElementChild.children[1].textContent === "";} + + if ($('.hodnoceni').toArray().some(problem_is_empty)) { + alert("Neuloženo! Nezadal jsi problém, ke kterému posíláš hodnocení. Pokud je toto hodnocení navíc, smaž ho prosím křížkem a znovu odešli.") + event.preventDefault() + return false; + } + + return true; +} diff --git a/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js b/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js new file mode 100644 index 00000000..a14c9f8f --- /dev/null +++ b/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js @@ -0,0 +1,56 @@ +// FIXME: Necopypastovat! Tohle je zkopírované ze static/odevzdavatko/dynamic_formsets.js + + +// Credit https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0 +function updateElementIndex(el, prefix, ndx) { + var id_regex = new RegExp('(' + prefix + '-\\d+)'); + var replacement = prefix + '-' + ndx; + if ($(el).attr("for")) { + $(el).attr("for", $(el).attr("for").replace(id_regex, replacement)); + } + if (el.id) { + el.id = el.id.replace(id_regex, replacement); + } + if (el.name) { + el.name = el.name.replace(id_regex, replacement); + } +} + +// Credit https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0 +function deleteForm(prefix, btn) { + var total = parseInt($('#id_' + prefix + '-TOTAL_FORMS').val()); + if (total >= 1){ + btn.closest('tr').remove(); + var forms = $('.hodnoceni'); + var formCount = forms.length - 1; // There is one extra such form hidden as template! + $('#id_' + prefix + '-TOTAL_FORMS').val(formCount); + for (var i=0; i -// Credit https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0 -function updateElementIndex(el, prefix, ndx) { - var id_regex = new RegExp('(' + prefix + '-\\d+)'); - var replacement = prefix + '-' + ndx; - if ($(el).attr("for")) { - $(el).attr("for", $(el).attr("for").replace(id_regex, replacement)); - } - if (el.id) { - el.id = el.id.replace(id_regex, replacement); - } - if (el.name) { - el.name = el.name.replace(id_regex, replacement); - } -} - -// Credit https://medium.com/all-about-django/adding-forms-dynamically-to-a-django-formset-375f1090c2b0 -function deleteForm(prefix, btn) { - var total = parseInt($('#id_' + prefix + '-TOTAL_FORMS').val()); - if (total >= 1){ - btn.closest('tr').remove(); - var forms = $('.hodnoceni'); - var formCount = forms.length - 1; // There is one extra such form hidden as template! - $('#id_' + prefix + '-TOTAL_FORMS').val(formCount); - for (var i=0; i + {% if edit %} + + + {% endif %}

    Řešené problémy: {{ object.problem.all | join:", " }}

    -

    Řešitelé: {% for r in object.resitele.all %} {{ r }} ({{ r.osoba.email }}) +

    Řešitelé: {% for r in object.resitele.all %} {{ r }} {% if edit %}({{ r.osoba.email }}){% endif %} {% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    {# https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.get_FOO_display #} @@ -82,13 +30,13 @@ $(document).ready(function(){ {{ priloha.split | last }} {{ priloha.res_poznamka }} {{ priloha.vytvoreno }} - {# TODO: Orgo-poznámka, ideálně jako formulář #} {% endfor %} {% else %}

    Žádné přílohy

    {% endif %} + {% if edit %}
    {# Poznámka #}

    Neveřejná poznámka:

    @@ -116,7 +64,7 @@ $(document).ready(function(){ - Přidat hodnocení
    + Přidat hodnocení
    @@ -129,28 +77,19 @@ $(document).ready(function(){ + {% else %} +

    Hodnocení:

    + + +{% for h in hodnoceni %} + + + + + +{% endfor %} +
    ProblémBodyZpětná vazba od opravovatele
    {{ h.problem }}{{ h.body }}{{ h.feedback }}
    + {% endif %} - {% endblock %} diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index e15b3807..8c53de6b 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -26,9 +26,9 @@ urlpatterns = [ path('org/reseni/', org_required(views.TabulkaOdevzdanychReseniView.as_view()), name='odevzdavatko_tabulka'), path('org/reseni/rocnik//', org_required(views.TabulkaOdevzdanychReseniView.as_view()), name='odevzdavatko_tabulka'), path('org/reseni///', org_required(views.ReseniProblemuView.as_view()), name='odevzdavatko_reseni_resitele_k_problemu'), - path('org/reseni/', org_required(viewMethodSwitch(get=views.DetailReseniView.as_view(), post=views.hodnoceniReseniView)), name='odevzdavatko_detail_reseni'), + path('org/reseni/', org_required(viewMethodSwitch(get=views.EditReseniView.as_view(), post=views.hodnoceniReseniView)), name='odevzdavatko_detail_reseni'), path('org/reseni/all', org_required(views.SeznamReseniView.as_view())), path('org/reseni/akt', org_required(views.SeznamAktualnichReseniView.as_view())), - path('resitel/reseni/', resitel_or_org_required(views.ResitelReseniView.as_view()), name='odevzdavatko_resitel_reseni'), + path('resitel/reseni/', resitel_or_org_required(views.DetailReseniView.as_view()), name='odevzdavatko_resitel_reseni'), ] diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 6c232172..2927838b 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -211,6 +211,7 @@ class ReseniProblemuView(MultipleObjectTemplateResponseMixin, MultipleObjectMixi ## XXX: https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#avoid-anything-more-complex class DetailReseniView(DetailView): + """ Náhled na řešení. Editace je v :py:class:`EditReseniView`. """ model = m.Reseni template_name = 'odevzdavatko/detail.html' @@ -227,18 +228,43 @@ class DetailReseniView(DetailView): return result def get_context_data(self, **kw): + self.check_access() ctx = super().get_context_data(**kw) - ctx['form'] = f.OhodnoceniReseniFormSet( - initial = self.aktualni_hodnoceni() - ) + hodnoceni = self.aktualni_hodnoceni() + ctx["hodnoceni"] = hodnoceni + return ctx + + def get(self, request, *args, **kwargs): + """ + Oproti :py:class:`django.views.generic.detail.BaseDetailView` + kontroluje přístup pomocí :py:meth:`check_access` + """ + response = super().get(self, request, *args, **kwargs) + self.check_access() + return response + + def check_access(self): + """ Řešitel musí být součástí řešení, jinak se na něj nemá co dívat. """ + if not self.object.resitele.filter(osoba__user=self.request.user).exists(): + raise PermissionDenied() + + +class EditReseniView(DetailReseniView): + """ Editace (hlavně hodnocení) řešení. """ + def get_context_data(self, **kw): + ctx = super().get_context_data(**kw) + ctx['form'] = f.OhodnoceniReseniFormSet(initial=ctx["hodnoceni"]) ctx['poznamka_form'] = f.PoznamkaReseniForm(instance=self.reseni) + ctx['edit'] = True return ctx + def check_access(self): + """ Na orga máme nároky už v urls.py """ + pass + def hodnoceniReseniView(request, pk, *args, **kwargs): reseni = get_object_or_404(m.Reseni, pk=pk) - template_name = 'odevzdavatko/detail.html' - form_class = f.OhodnoceniReseniFormSet success_url = reverse('odevzdavatko_detail_reseni', kwargs={'pk': pk}) # FIXME: Použit initial i tady a nebastlit hodnocení tak nízkoúrovňově @@ -270,33 +296,6 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): return redirect(success_url) -class ResitelReseniView(DetailView): - model = m.Reseni - template_name = 'odevzdavatko/detail_resitele.html' - - def aktualni_hodnoceni(self): - self.reseni = get_object_or_404(m.Reseni, id=self.kwargs['pk']) - result = [] - for hodn in m.Hodnoceni.objects.filter(reseni=self.reseni): - result.append( - { - "problem": hodn.problem, - "body": hodn.body, - "feedback": hodn.feedback, - # "deadline_body": hodn.deadline_body, - } - ) - return result - - def get_context_data(self, **kw): - ctx = super().get_context_data(**kw) - hodnoceni = self.aktualni_hodnoceni() - if not self.reseni.resitele.filter(osoba__user=self.request.user).exists(): - raise PermissionDenied() - # ctx['poznamka'] = f.PoznamkaReseniForm(instance=self.reseni) - ctx["hodnoceni"] = hodnoceni - return ctx - class PrehledOdevzdanychReseni(ListView): From dfede45535ce07ff36f99945a18abc57762315a1 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:17:52 +0100 Subject: [PATCH 053/515] init_local --- make/init_local | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100755 make/init_local diff --git a/make/init_local b/make/init_local new file mode 100755 index 00000000..75ee1ccf --- /dev/null +++ b/make/init_local @@ -0,0 +1,10 @@ +#!/bin/bash + +set -exuo pipefail +. make/lib.sh + +make/install_web +ensure_venv +./manage.py testdata +./manage.py loaddata data/* +make/sync_prod_flatpages From 5e26ac5e692047b17effb549b2cf4a585262cbce Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:21:34 +0100 Subject: [PATCH 054/515] =?UTF-8?q?fix=20pr=C3=A1v=20v=20deploy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/make/lib.sh b/make/lib.sh index a02b94e2..65f19e47 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -96,6 +96,8 @@ function install_everything { make/install ./manage.py migrate ./manage.py collectstatic --noinput + setfacl -R -m default:u:www-data:rX media static + setfacl -R -m u:www-data:rX media static chown -R :mam . || true chmod -R g+rX,go-w . || true } From 9c92ca6575f6afeacc7138f257f24c30dc5d9b9b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:51:02 +0100 Subject: [PATCH 055/515] make/README.md z make_docs --- make/README.md | 43 +++++++++---------------------------------- 1 file changed, 9 insertions(+), 34 deletions(-) diff --git a/make/README.md b/make/README.md index 1d1baa47..0597a96b 100644 --- a/make/README.md +++ b/make/README.md @@ -1,34 +1,9 @@ -Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. - -Předně: většina příkazů bude asi vypisovat spoustu detailů, takže ti doporučuji -si tento text otevřít někde separátně. Nachází se v repozitáři v -`make/README.md`, případně si jej můžeš zobrazit hezčeji vykreslený na -[Gitee](https://gitea.ks.matfyz.cz/mam/mamweb/src/branch/master/make/README.md). - -O zprovoznění webu se stará hlavně skript `make/install_web`. Ten vytvoří -virtualenv (neexistuje-li) a nainstaluje do něj závislosti webu. Pak ovšem -budeš potřebovat nahrát další data do databáze, což uděláš pomocí příkazů -`./manage.py testdata` a `./manage.py loaddata data/*`. Skript -`make/install_web` ti to kdyžtak připomene. - -Samotný web spustíš třeba pomocí `make/run`, nebo ekvivalentně `./manage.py runserver`. - -Pozor: zatímco skripty v `make/` to nepotřebují, pro použití skriptu -`./manage.py` se potřebuješ přepnout do virtuálního prostředí. To uděláš velmi -pravděpodobně spuštěním `source env/bin/activate`, před začátkem _promptu_ by -se mělo objevit `(env)`. Pro opuštění spusť `deactivate`. - -Časté problémy ------ -Je možné, že nemáš všechny potřebné závislosti v systému. Proto je možné, že -`make/install_web` vyhodí nějakou chybovou hlášku: - -- `Error: pg_config executable not found.`: nainstaluj si `libpq-dev` (na Ubuntu/Debianu, jinde se příslušný balíček může jmenovat jinak) -- Chybová hláška obsahuje `#include `: nainstaluj si `python3-dev` - - - +TL;DR: Web vyrobíš pomocí následující posloupnosti příkazů: + make/install_web + . env/bin/activate + ./manage.py testdata + ./manage.py loaddata data/* + make/run +a web potom najdeš na + +Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. From d186575712d0519c7f399df6ddb642a954591e32 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 22:51:39 +0100 Subject: [PATCH 056/515] =?UTF-8?q?make/README.md:=20V=C3=ADc=20fancy,=20p?= =?UTF-8?q?ou=C5=BE=C3=ADt=20make/init=5Flocal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/make/README.md b/make/README.md index 0597a96b..16b77901 100644 --- a/make/README.md +++ b/make/README.md @@ -1,9 +1,8 @@ +Milý člověče, M&Mí web tě vítá. Prosím, neděs se, zkusím tě provést lokálním zprovozněním webu. +Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. + TL;DR: Web vyrobíš pomocí následující posloupnosti příkazů: - make/install_web - . env/bin/activate - ./manage.py testdata - ./manage.py loaddata data/* + make/init_local make/run a web potom najdeš na -Pro detaily a nápovědu si prosím přečti dokumentaci v docs/vyvoj.rst. From 0d17b450112fcababb8cb944dcae2cdbf504d55b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 21 Nov 2022 23:27:44 +0100 Subject: [PATCH 057/515] =?UTF-8?q?Fix:=200.5=20=C2=B7=20#1237?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 25 +++++++++++++++++++ .../templates/personalni/udaje/edit.html | 1 + .../templates/personalni/udaje/gdpr.html | 2 +- .../templates/personalni/udaje/prihlaska.html | 1 + personalni/views.py | 2 ++ seminar/migrations/0110_resitel_prezdivka.py | 18 +++++++++++++ seminar/models/personalni.py | 2 ++ 7 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 seminar/migrations/0110_resitel_prezdivka.py diff --git a/personalni/forms.py b/personalni/forms.py index ea200267..5f0d27f6 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -32,6 +32,7 @@ class PrihlaskaForm(PasswordResetForm): help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři') jmeno = forms.CharField(label='Jméno', max_length=256, required=True) + prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False) prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) pohlavi_muz = forms.ChoiceField(label='Pohlaví', choices = ((True,'muž'),(False,'žena')), required=True) @@ -105,6 +106,17 @@ class PrihlaskaForm(PasswordResetForm): pass return email + def clean_prezdivka_resitele(self): + prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') + if prezdivka_resitele == '': + return prezdivka_resitele + try: + Resitel.objects.get(prezdivka_resitele=prezdivka_resitele) + raise forms.ValidationError('Přezdívka je již použita') + except ObjectDoesNotExist: + pass + return prezdivka_resitele + def clean_zasilat(self): zasilat = self.cleaned_data.get('zasilat') ulice = self.cleaned_data.get('ulice') @@ -138,6 +150,7 @@ class ProfileEditForm(forms.Form): disabled=True) jmeno = forms.CharField(label='Jméno', max_length=256, required=True) + prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False) prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) pohlavi_muz = forms.ChoiceField(label='Pohlaví', choices = ((True,'muž'),(False,'žena')), required=True) @@ -190,6 +203,18 @@ class ProfileEditForm(forms.Form): # pass # return username # + + def clean_prezdivka_resitele(self): + prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') + if prezdivka_resitele == '': + return prezdivka_resitele + try: + Resitel.objects.get(prezdivka_resitele=prezdivka_resitele) + raise forms.ValidationError('Přezdívka je již použita') + except ObjectDoesNotExist: + pass + return prezdivka_resitele + def clean_email(self): err_logger = logging.getLogger('seminar.prihlaska.problem') email = self.cleaned_data.get('email') diff --git a/personalni/templates/personalni/udaje/edit.html b/personalni/templates/personalni/udaje/edit.html index 5ec690d9..9091925d 100644 --- a/personalni/templates/personalni/udaje/edit.html +++ b/personalni/templates/personalni/udaje/edit.html @@ -44,6 +44,7 @@ {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} diff --git a/personalni/templates/personalni/udaje/gdpr.html b/personalni/templates/personalni/udaje/gdpr.html index 3e85de78..5d9af535 100644 --- a/personalni/templates/personalni/udaje/gdpr.html +++ b/personalni/templates/personalni/udaje/gdpr.html @@ -11,7 +11,7 @@ Získáváme od Tebe údaje vyplněné v přihlášce do semináře (jméno, př Slibujeme Ti, že Tvá osobní data nezneužijeme k ničemu, co by nesouviselo s M&M nebo s dalšími aktivitami Matfyzu, a nikdy je nepředáme nikomu cizímu. Údaje využíváme k zajištění chodu semináře a také je sdílíme s ostatními propagačními akcemi Matfyzu, abychom mohli vyhodnocovat úspěšnost akcí. Pokud budeš mít zájem, budeme Ti také posílat zajímavé zprávy a novinky týkajíci se Matfyzu.

    -Veřejně vystavujeme pouze výsledkové listiny, které také uchováváme pro archivní účely. Pokud ale z nějakého důvodu nebudeš chtít mít své jméno či školu uvedené ve výsledkové listině, není problém to zařídit, napiš nám. Z tištěných materiálů samozřejmě údaje už odstranit nemůžeme. +Veřejně vystavujeme pouze seznam přezdívek (pro výběr spoluřešitelů k řešení) a výsledkové listiny, které také uchováváme pro archivní účely. Pokud ale z nějakého důvodu nebudeš chtít mít své jméno či školu uvedené ve výsledkové listině, není problém to zařídit, napiš nám. Z tištěných materiálů samozřejmě údaje už odstranit nemůžeme.

    Na soustředěních a dalších akcích semináře navíc pořizujeme fotografie a videozáznamy a používáme je ke zpravodajským a propagačním účelům. Pro propagační účely si od Tebe vyžádáme samostatný souhlas na začátku akce. diff --git a/personalni/templates/personalni/udaje/prihlaska.html b/personalni/templates/personalni/udaje/prihlaska.html index 5e6434bf..33adba03 100644 --- a/personalni/templates/personalni/udaje/prihlaska.html +++ b/personalni/templates/personalni/udaje/prihlaska.html @@ -46,6 +46,7 @@

    {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} diff --git a/personalni/views.py b/personalni/views.py index 94b90dea..d7d52540 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -160,6 +160,7 @@ def resitelEditView(request): if resitel_edit: ## Změny v řešiteli + resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele'] resitel_edit.skola = fcd['skola'] resitel_edit.rok_maturity = fcd['rok_maturity'] resitel_edit.zasilat = fcd['zasilat'] @@ -263,6 +264,7 @@ def prihlaskaView(request): err_logger.warning(f'Zaregistrovala se osoba s kolizním jménem. ID osob: {[o.id for o in kolize]}') r = s.Resitel( + prezdivka_resitele=fcd['prezdivka_resitele'], rok_maturity = fcd['rok_maturity'], zasilat = fcd['zasilat'], zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] diff --git a/seminar/migrations/0110_resitel_prezdivka.py b/seminar/migrations/0110_resitel_prezdivka.py new file mode 100644 index 00000000..51d25822 --- /dev/null +++ b/seminar/migrations/0110_resitel_prezdivka.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2022-11-21 22:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0109_hodnoceni_feedback'), + ] + + operations = [ + migrations.AddField( + model_name='resitel', + name='prezdivka_resitele', + field=models.CharField(blank=True, max_length=256, null=True, unique=True, verbose_name='přezdívka řešitele'), + ), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 28deec4d..3e64af45 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -211,6 +211,8 @@ class Resitel(SeminarModelBase): # Interní ID id = models.AutoField(primary_key = True) + prezdivka_resitele = models.CharField('přezdívka řešitele', blank=True, null=True, max_length=256, unique=True) + osoba = models.OneToOneField(Osoba, blank=False, null=False, verbose_name='osoba', on_delete=models.PROTECT) From 41c2ed0dee42df8ceab7b34fe09ddef1d6064b5c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 23:48:12 +0100 Subject: [PATCH 058/515] =?UTF-8?q?Dokumentace=20make=20skript=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/skripty.rst | 108 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 docs/skripty.rst diff --git a/docs/skripty.rst b/docs/skripty.rst new file mode 100644 index 00000000..ca45394b --- /dev/null +++ b/docs/skripty.rst @@ -0,0 +1,108 @@ +Skripty pro práci s repozitářem +=================== + +Máme dvě hlavní sady skriptů/příkazů na ovládání webu a repozitáře. Skripty pro +práci s webem psané v Pythonu jsou uložené ve složkách +``/management/commands/``, případně vestavěné, a volají se pomocí +``./manage.py ``. Oproti tomu skripty pro práci s repozitářem a pro +úpravy databáze a souborů „zvenčí“ se nejčastěji nacházejí ve složce ``make/`` +a volají se pomocí cesty: ``make/``. + +Občas existují i nějaké další skripty na různých jiných místech. Všechny by +měly být ideálně popsány asi tady. + +Make skripty +---- + +Skripty v ``make/`` se označují jako „Make skripty“. Slouží často k velkým +úkonům s repozitářem, jako je nasazení celého webu, zprovoznění lokálního webu +a podobně. + +.. hint:: Označení pro tyto skripty je dáno tím, že byly původně volány pomocí + make (tj. z Makefile). Ve skutečnosti je lze stále volat i jako ``make + ``, ale pak není možné předávat parametry a obecně je tato cesta + zastaralá a existuje jen pro zpětnou kompatibilitu se svalovou pamětí. + +Tyto skripty jsou samonosné, dají se spustit rovnou a v případě problémů si +budou hlasitě stěžovat. Pro účely debugování různých věcí jsou ale (bohužel?) +hlasité i při normálním spuštění, konkrétně vypisují všechny příkazy, které se +spouštějí (\ ``set -x``). Tyto příkazy jsou vidět za jedním či více plusky (\ ``+``). + +.. tip:: Pokud některý make skript selže, tak by na konci měl vypsat, že se něco nepovedlo. + + +Knihovna ``make/lib.sh`` +^^^^^^ + +Pro pohodlí při psaní velká část z nich využívá knihovnu uloženou +v ``make/lib.sh``. Jsou zde definované užitečné proměnné, kontroly a společný +kód. Kromě toho při inicializaci otestuje, že je skript spuštěn z kořene +repozitáře (takže to pak není potřeba zkoumat v ostatních skriptech). + +Proměnné +""""" + +Popsány jsou jen užitečné proměnné, ve skutečnosti jich je definovaných víc, +ale jsou triviální a samopopisné. + +``VENV_PATH`` : + Cesta virtuálního prostředí. Též lze přepsat. +``REPO`` : + Cesta ke gitovému repozitáři na serveru, rovnou použitelná v ``git clone`` +``GIMLI_LOGIN`` : + Přihlašovací údaje ke Gimlimu +``PRODWEB`` a ``TESTWEB`` : + Cesty ke složkám s produkčním a testovacím webem + +Funkce a další zkratky +"""""" + +``ensure_venv`` : + Zajistí, že se zbytek skriptu spustí ve virtuálním prostředí, a pokud neexistuje, tak jej založí. +``ensure_web_installed`` : + Vyzkouší, že je web (django) aspoň elementárně zprovozněno a pokud ne, tak vyzve uživatele, aby to spravil. +``gimli_only`` : + Otestuje, že je příkaz spuštěn na Gimlim, pokud tomu tak není, zeptá se, jestli si uživatel skutečně přeje zbytek skriptu vykonat +``only_in_directory `` : + Otestuje, že skript běží z konkrétní složky. Zejména použitelné s ``gimli_only`` a ``$TESTWEB`` +``safe_checkout_branch `` : + Bezpečně přepne repozitář na jinou větev. Pokud by mělo dojít k přepsání + knihovny nebo volajícího make skriptu, vyzve uživatele, aby přepnul ručně. +``install_everything`` : + Společná část kódu pro nasazování produkce a testwebu. + +Skripty pro lokální vývoj +^^^^^^^ + +``make/install_web`` (nebo ekvivalentně ``make/install``) : + Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``requirements.txt``. Následně popíše, jak vyrobit zbytek lokálního webu. +``make/run`` : + Spustí lokální web (ekvivalentní s ``./manage.py runserver``) +``make/schema`` : + Vykreslí závislosti a atributy modelů +``make/sync_prod_flatpages`` : + Stáhne z produkce aktuální statické stránky a uloží je do složky ``data/`` +``make/test`` : + Spustí testy (ekvivalentní s ``./manage.py test -v2``) +``make/init_local`` : + Zkratka za posloupnost ``make/install_web``, ``./manage.py testdata``, ``./manage.py loaddata data/*``, ``make/sync_prod_flatpages`` + +Práce s testwebem +^^^^^^^ + +``make/deploy`` : + Nasadí testweb. Volitelně bere jako parametr jméno větve, kterou má nasadit. + Rovnou nastaví přihlašování a vygeneruje příslušnou verzi dokumentace `sem `_. +``make/push_compiled_vue_to_test`` : + **Neotestováno** Nahraje Vue z lokálního počítače na testweb. (Gimli často má moc starou verzi Node.js, takže nejde zkompilovat tam) +``make/sync_test_db_aggressive`` : + Zkopíruje databázi z produkčního webu. +``make/sync_test_media`` : + Zkopíruje média (obrázky, nahrané soubory) z produkčního webu. +``make/sync_test`` : + Zkratka za ``make/sync_test_db_aggressive`` + ``make/sync_test_media``. + +Nasazení produkce +^^^^ + +``make/deploy_prod``. Před samotným nasazením zálohuje databázi a zkontroluje, že se nasazuje větev ``master``. From fef51e2a755dd3fa4c9f013841c2382e4d0856ee Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 23:52:58 +0100 Subject: [PATCH 059/515] =?UTF-8?q?fixup!=20Dokumentace=20make=20skript?= =?UTF-8?q?=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/skripty.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/skripty.rst b/docs/skripty.rst index ca45394b..aa2d8016 100644 --- a/docs/skripty.rst +++ b/docs/skripty.rst @@ -18,7 +18,7 @@ Skripty v ``make/`` se označují jako „Make skripty“. Slouží často k vel úkonům s repozitářem, jako je nasazení celého webu, zprovoznění lokálního webu a podobně. -.. hint:: Označení pro tyto skripty je dáno tím, že byly původně volány pomocí +.. note:: Označení pro tyto skripty je dáno tím, že byly původně volány pomocí make (tj. z Makefile). Ve skutečnosti je lze stále volat i jako ``make ``, ale pak není možné předávat parametry a obecně je tato cesta zastaralá a existuje jen pro zpětnou kompatibilitu se svalovou pamětí. From 1b34c2dbc443cc9202cbd583a5bb7a09e7dff4b2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 21 Nov 2022 23:59:19 +0100 Subject: [PATCH 060/515] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20do=20sidebaru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/index.rst b/docs/index.rst index 10d6016f..92d27c50 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -13,6 +13,7 @@ Vítejte v dokumentaci M&Mího webu! vyvoj sphinx dalsi_soubory + skripty modules/modules zapisy/zapisy From 61bb9786b30d1e26e3558efbd584e00c3bdc3ad4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 22 Nov 2022 00:00:22 +0100 Subject: [PATCH 061/515] =?UTF-8?q?Zru=C5=A1en=C3=AD=20dvojte=C4=8Dek?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/skripty.rst | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/skripty.rst b/docs/skripty.rst index aa2d8016..8f9e1064 100644 --- a/docs/skripty.rst +++ b/docs/skripty.rst @@ -45,61 +45,61 @@ Proměnné Popsány jsou jen užitečné proměnné, ve skutečnosti jich je definovaných víc, ale jsou triviální a samopopisné. -``VENV_PATH`` : +``VENV_PATH`` Cesta virtuálního prostředí. Též lze přepsat. -``REPO`` : +``REPO`` Cesta ke gitovému repozitáři na serveru, rovnou použitelná v ``git clone`` -``GIMLI_LOGIN`` : +``GIMLI_LOGIN`` Přihlašovací údaje ke Gimlimu -``PRODWEB`` a ``TESTWEB`` : +``PRODWEB`` a ``TESTWEB`` Cesty ke složkám s produkčním a testovacím webem Funkce a další zkratky """""" -``ensure_venv`` : +``ensure_venv`` Zajistí, že se zbytek skriptu spustí ve virtuálním prostředí, a pokud neexistuje, tak jej založí. -``ensure_web_installed`` : +``ensure_web_installed`` Vyzkouší, že je web (django) aspoň elementárně zprovozněno a pokud ne, tak vyzve uživatele, aby to spravil. -``gimli_only`` : +``gimli_only`` Otestuje, že je příkaz spuštěn na Gimlim, pokud tomu tak není, zeptá se, jestli si uživatel skutečně přeje zbytek skriptu vykonat -``only_in_directory `` : +``only_in_directory `` Otestuje, že skript běží z konkrétní složky. Zejména použitelné s ``gimli_only`` a ``$TESTWEB`` -``safe_checkout_branch `` : +``safe_checkout_branch `` Bezpečně přepne repozitář na jinou větev. Pokud by mělo dojít k přepsání knihovny nebo volajícího make skriptu, vyzve uživatele, aby přepnul ručně. -``install_everything`` : +``install_everything`` Společná část kódu pro nasazování produkce a testwebu. Skripty pro lokální vývoj ^^^^^^^ -``make/install_web`` (nebo ekvivalentně ``make/install``) : +``make/install_web`` (nebo ekvivalentně ``make/install``) Vytvoří virtualenv a nainstaluje do něj závislosti webu podle ``requirements.txt``. Následně popíše, jak vyrobit zbytek lokálního webu. -``make/run`` : +``make/run`` Spustí lokální web (ekvivalentní s ``./manage.py runserver``) -``make/schema`` : +``make/schema`` Vykreslí závislosti a atributy modelů -``make/sync_prod_flatpages`` : +``make/sync_prod_flatpages`` Stáhne z produkce aktuální statické stránky a uloží je do složky ``data/`` -``make/test`` : +``make/test`` Spustí testy (ekvivalentní s ``./manage.py test -v2``) -``make/init_local`` : +``make/init_local`` Zkratka za posloupnost ``make/install_web``, ``./manage.py testdata``, ``./manage.py loaddata data/*``, ``make/sync_prod_flatpages`` Práce s testwebem ^^^^^^^ -``make/deploy`` : +``make/deploy`` Nasadí testweb. Volitelně bere jako parametr jméno větve, kterou má nasadit. Rovnou nastaví přihlašování a vygeneruje příslušnou verzi dokumentace `sem `_. -``make/push_compiled_vue_to_test`` : +``make/push_compiled_vue_to_test`` **Neotestováno** Nahraje Vue z lokálního počítače na testweb. (Gimli často má moc starou verzi Node.js, takže nejde zkompilovat tam) -``make/sync_test_db_aggressive`` : +``make/sync_test_db_aggressive`` Zkopíruje databázi z produkčního webu. -``make/sync_test_media`` : +``make/sync_test_media`` Zkopíruje média (obrázky, nahrané soubory) z produkčního webu. -``make/sync_test`` : +``make/sync_test`` Zkratka za ``make/sync_test_db_aggressive`` + ``make/sync_test_media``. Nasazení produkce From fc6f29bbf15abd4a4da7037d39e7d889dcbc26f8 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 22 Nov 2022 00:05:56 +0100 Subject: [PATCH 062/515] Fix hesel --- docs/vyvoj.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 3bfdace8..c2eb3d1f 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -155,8 +155,8 @@ Lokální uživatelé Přihlašovací údaje jsou psány jako ``login:heslo`` - Superuživatel: ``admin:admin`` -- Orgovské účty: ``o:o``, ``o1:o1`` až ``o3:o3`` -- Řešitelské účty: ``r:r``, ``r1:r1`` až ``r3:r3`` +- Orgovské účty: ``o:o``, ``o1:o`` až ``o3:o`` +- Řešitelské účty: ``r:r``, ``r1:r`` až ``r3:r`` Všechny tyto účty jsou (?) svázané s nějakými fiktivními osobami, není ale zřejmé se kterými, budeš to muset vyzkoušet a pak tady zdokumentovat :-) From 4549a91e062a9886ed6d952ee1d31a33384d46ed Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 22 Nov 2022 00:11:16 +0100 Subject: [PATCH 063/515] =?UTF-8?q?Dokumentace=20Jid=C3=A1=C5=A1ova=20bugu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Není to častý bug, ale nějaký obsah přece potřebujeme :-) --- docs/vyvoj.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index c2eb3d1f..08d44e38 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -84,6 +84,9 @@ Samotný web se spustí třeba pomocí ``make/run``, nebo ekvivalentně Chybí ``libpq-dev`` - Chybová hláška obsahuje ``#include ``: chybí ``python3-dev`` - Na webu není vidět meníčko: spusť ``./manage.py loaddata data/*`` +- ``locale.Error: unsupported locale setting``: Chybí podpora pro příslušný + jazyk ve tvém systému. Odkomentuj příslušnou lokalizaci v ``/etc/locale.gen`` + a spusť ``locale-gen`` jako root, tím se to spraví. S dalšími problémy se zkus obrátit na další webaře, třeba někdo bude vědět :-) From 4853a47899944039bfe28a9eae2ec97fdf838c2c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 22 Nov 2022 00:11:41 +0100 Subject: [PATCH 064/515] =?UTF-8?q?vyvoj.rst:=20Odkaz=20na=20dokumentaci?= =?UTF-8?q?=20make=20skript=C5=AF=20+=20smaz=C3=A1n=C3=AD=20irelevantn?= =?UTF-8?q?=C3=ADho=20p=C5=99=C3=ADkazu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/vyvoj.rst | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 08d44e38..625245a1 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -99,7 +99,7 @@ obhospodařování repozitáře a webu „zvenku“ typicky bydlí ve složce `` Ostatní skripty jsou na náhodných místech :-) Tady jsou rozebrány jen příkazy relevantní pro lokální web a univerzálně -užitečné, všechny by chtěly být sepsané jinde (ale zatím nejsou :-/) +užitečné, ostatní najdeš v :ref:`Skripty pro práci s repozitářem` Make skripty ^^^^^^^ @@ -110,9 +110,6 @@ Make skripty - ``make/test`` spustí testy (ale moc jich zatím není; ekvivalentní s ``./manage.py test``) - ``make/sync_prod_flatpages`` stáhne statické stránky z produkčního webu a uloží je do souboru v gitu, což umožňuje jejich verzování -- ``make/push_compiled_vue_to_test`` nahraje lokálně zkompilované části - frontendu ve Vue na testweb (Gimli má typicky moc starou verzi nodejs, takže - nejde kompilovat tam.) Manage.py skripty ^^^^^ From 062653e70856998af7231a3eff17f35d99b685d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Nov 2022 00:15:20 +0100 Subject: [PATCH 065/515] =?UTF-8?q?Fix:=200.5=20=C2=B7=20#1237?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/urls.py | 1 + api/views/autocomplete.py | 20 +++++++++++++++++++ odevzdavatko/forms.py | 9 ++++++++- .../templates/odevzdavatko/nahraj_reseni.html | 2 ++ odevzdavatko/views.py | 1 + 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/api/urls.py b/api/urls.py index 23aafe36..76d82b25 100644 --- a/api/urls.py +++ b/api/urls.py @@ -22,6 +22,7 @@ urlpatterns = [ # Autocomplete path('api/autocomplete/skola/', views.SkolaAutocomplete.as_view(), name='autocomplete_skola'), path('api/autocomplete/resitel/', org_required(views.ResitelAutocomplete.as_view()), name='autocomplete_resitel'), + path('api/autocomplete/resitel_public/', views.PublicResitelAutocomplete.as_view(), name='autocomplete_resitel_public'), path('api/autocomplete/problem/odevzdatelny', views.OdevzdatelnyProblemAutocomplete.as_view(), name='autocomplete_problem_odevzdatelny'), # Ceka na autocomplete v3 diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 217df008..c706b126 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -44,6 +44,26 @@ class ResitelAutocomplete(LoginRequiredAjaxMixin,autocomplete.Select2QuerySetVie qs = qs.filter(query) return qs + +class PublicResitelAutocomplete(LoginRequiredAjaxMixin, autocomplete.Select2QuerySetView): + """ + View k :mod:`dal.autocomplete` pro vyhledávání řešitelů podle přezdívky + především v odevzdávátku. + """ + def get_queryset(self): + qs = m.Resitel.objects.filter( + prezdivka_resitele__isnull=False + ).exclude( + prezdivka_resitele="" + ).filter( + prezdivka_resitele__startswith=self.q + ).all() + return qs + + def get_result_label(self, result): + return result.prezdivka_resitele + + class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): """ View k :mod:`dal.autocomplete` pro vyhledávání problémů především v odevzdávátku. """ def get_queryset(self): diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index a8538668..b52c30f4 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -63,7 +63,7 @@ class PosliReseniForm(forms.Form): class NahrajReseniForm(forms.ModelForm): class Meta: model = m.Reseni - fields = ('problem',) + fields = ('problem', 'resitele') help_texts = {'problem':''} # Nezobrazovat help text ve formuláři widgets = {'problem': @@ -72,6 +72,13 @@ class NahrajReseniForm(forms.ModelForm): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-allow-clear': 'true'}, + ), + 'resitele': + autocomplete.ModelSelect2Multiple( + url='autocomplete_resitel_public', + attrs = {'data-placeholder--id': '-1', + 'data-placeholder--text' : '---', + 'data-allow-clear': 'true'}, ) } diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 64ef92c1..07529720 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -13,6 +13,8 @@

    Když řešení různých témátek vložíš každé zvlášť, lépe se v nich vyznáme a třeba ti je i rychleji opravíme.

    +

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Autory řešení“! V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám)!

    +
    {% csrf_token %}
    diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 2927838b..3b29d397 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -407,6 +407,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): with transaction.atomic(): self.object = form.save() self.object.resitele.add(m.Resitel.objects.get(osoba__user = self.request.user)) + self.object.resitele.add(*form.cleaned_data["resitele"]) self.object.cas_doruceni = timezone.now() self.object.forma = m.Reseni.FORMA_UPLOAD self.object.save() From 1bfe8cee5ee88e190719416f080d22fa0b067f08 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 22 Nov 2022 00:22:01 +0100 Subject: [PATCH 066/515] =?UTF-8?q?te=C4=8Dka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/vyvoj.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 625245a1..cedd7a67 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -99,7 +99,7 @@ obhospodařování repozitáře a webu „zvenku“ typicky bydlí ve složce `` Ostatní skripty jsou na náhodných místech :-) Tady jsou rozebrány jen příkazy relevantní pro lokální web a univerzálně -užitečné, ostatní najdeš v :ref:`Skripty pro práci s repozitářem` +užitečné, ostatní najdeš v :ref:`Skripty pro práci s repozitářem`. Make skripty ^^^^^^^ From ad45b0a23b5fca93794d024cc3bc9cfb7d6184ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Nov 2022 00:24:57 +0100 Subject: [PATCH 067/515] =?UTF-8?q?Fix:=20=C4=8D=C3=A1rky=20v=20detailu=20?= =?UTF-8?q?=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 7448f71e..2e4ad53a 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -12,8 +12,7 @@

    Řešené problémy: {{ object.problem.all | join:", " }}

    -

    Řešitelé: {% for r in object.resitele.all %} {{ r }} {% if edit %}({{ r.osoba.email }}){% endif %} -{% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    +

    Řešitelé: {% for r in object.resitele.all %}{{ r }}{% if edit %}({{ r.osoba.email }}){% endif %}{% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    {# https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.get_FOO_display #}

    Forma: {{ object.get_forma_display }}

    From e325d41f76e07f8bb1024a0b9074007e22dd9c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Nov 2022 00:26:35 +0100 Subject: [PATCH 068/515] =?UTF-8?q?Fix:=20zapomn=C4=9Bl=20jsem=20je=C5=A1t?= =?UTF-8?q?=C4=9B=20po=20sjednocen=C3=AD=20odstranit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../odevzdavatko/detail_resitele.html | 51 ------------------- 1 file changed, 51 deletions(-) delete mode 100644 odevzdavatko/templates/odevzdavatko/detail_resitele.html diff --git a/odevzdavatko/templates/odevzdavatko/detail_resitele.html b/odevzdavatko/templates/odevzdavatko/detail_resitele.html deleted file mode 100644 index fb0cb5fb..00000000 --- a/odevzdavatko/templates/odevzdavatko/detail_resitele.html +++ /dev/null @@ -1,51 +0,0 @@ -{% extends "base.html" %} -{% load static %} -{% load deadliny %} - -{% block content %} - -

    Řešené problémy: {{ object.problem.all | join:", " }}

    - -

    Řešitelé: {% for r in object.resitele.all %} {{ r }} - {% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    - -{# https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.get_FOO_display #} -

    Forma: {{ object.get_forma_display }}

    - -

    Doručeno {{ object.cas_doruceni }}, deadline: {{object.deadline_reseni | deadline_html }}

    - -{# Soubory: #} -

    Přílohy:

    -{% if object.prilohy.all %} -
    - -{% for priloha in object.prilohy.all %} - - - - - {# TODO: Orgo-poznámka, ideálně jako formulář #} -{% endfor %} -
    SouborŘešitelova poznámkaDatum
    {{ priloha.split | last }}{{ priloha.res_poznamka }}{{ priloha.vytvoreno }}
    -{% else %} -

    Žádné přílohy

    -{% endif %} - -{#

    Poznámka:

    #} -{#

    {{ poznamka }}

    #} - -{# Hodnocení: #} -

    Hodnocení:

    - -{# #} -{% for h in hodnoceni %} - - - - -{# #} - -{% endfor %} -
    ProblémBodyZpětná vazba od opravovateleDeadline pro body
    {{ h.problem }}{{ h.body }}{{ h.feedback }}{{ h.deadline_body }}
    - -{% endblock %} From d8554ad70dad95da64f1df984afa800e011397b9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 24 Nov 2022 02:05:09 +0100 Subject: [PATCH 069/515] =?UTF-8?q?Ubuntu=20m=C3=A1=20i=20venv=20v=20separ?= =?UTF-8?q?=C3=A1tn=C3=ADm=20bal=C3=AD=C4=8Dku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/vyvoj.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index cedd7a67..583521b1 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -25,7 +25,7 @@ Nutné - `Python `_ - Ideálně ve verzi 3.9 (to je to, co je aktuálně (2022) na Gimlim) - - Včetně pip-u (na Ubuntu balíček ``python3-pip``) a knihoven pro kompilaci + - Včetně pip-u (na Ubuntu balíček ``python3-pip``), venvu (``python3-venv``) a knihoven pro kompilaci Cčkových rozšíření (``python3-dev``) - Knihovna pro práci s PostgreSQL (``libpq-dev``) - Webový prohlížeč From fcd1320b45781e488f54d23a4f26f718d2e276a5 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 24 Nov 2022 02:23:03 +0100 Subject: [PATCH 070/515] Fix cesty --- make/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/lib.sh b/make/lib.sh index 65f19e47..fad464a5 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -27,7 +27,7 @@ function ensure_venv { test -f "$VENV_PATH/bin/activate" || $VENV "$VENV_PATH" . "$VENV_PATH/bin/activate" # To ale není všechno Horste – ten venv nemusí fungovat, chceme to ověřit a případně spadnout. - local SPRAVNA_CESTA="$(readlink -f "$env/bin/python")" + local SPRAVNA_CESTA="$(readlink -f "$VENV_PATH/bin/python")" local SKUTECNA_CESTA="$(readlink -f "$(which python)")" test "$SPRAVNA_CESTA" != "$SKUTECNA_CESTA" || die "Venv asi nefunguje. Prosím smaž si ho a zkus to znovu." python -c 'print()' > /dev/null || die "Python ve venvu je rozbitý. Prosím smaž venv a zkus to znovu." From 9fefbd4bbac1d680231ad2fa87279168fa2f469e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 24 Nov 2022 02:50:46 +0100 Subject: [PATCH 071/515] Fix logiky --- make/lib.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/lib.sh b/make/lib.sh index fad464a5..9dc3d6c5 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -29,7 +29,7 @@ function ensure_venv { # To ale není všechno Horste – ten venv nemusí fungovat, chceme to ověřit a případně spadnout. local SPRAVNA_CESTA="$(readlink -f "$VENV_PATH/bin/python")" local SKUTECNA_CESTA="$(readlink -f "$(which python)")" - test "$SPRAVNA_CESTA" != "$SKUTECNA_CESTA" || die "Venv asi nefunguje. Prosím smaž si ho a zkus to znovu." + test "$SPRAVNA_CESTA" == "$SKUTECNA_CESTA" || die "Venv asi nefunguje. Prosím smaž si ho a zkus to znovu." python -c 'print()' > /dev/null || die "Python ve venvu je rozbitý. Prosím smaž venv a zkus to znovu." } From 430430b4606b42fef9b695af4af092e09b2d9cd7 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 24 Nov 2022 04:56:52 +0100 Subject: [PATCH 072/515] =?UTF-8?q?Tabulka=20prerekvizit=20v=20r=C5=AFzn?= =?UTF-8?q?=C3=BDch=20distribuc=C3=ADch=20/=20syst=C3=A9mech?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/tabulka_prerekvizit.rst | 25 +++++++++++++++++++++++++ docs/vyvoj.rst | 3 +++ 2 files changed, 28 insertions(+) create mode 100644 docs/tabulka_prerekvizit.rst diff --git a/docs/tabulka_prerekvizit.rst b/docs/tabulka_prerekvizit.rst new file mode 100644 index 00000000..9dcce4c5 --- /dev/null +++ b/docs/tabulka_prerekvizit.rst @@ -0,0 +1,25 @@ +.. Není odkázaná z menu, je to záměr + +Tabulka prerekvizit v různých distribucích +========= + +.. admonition:: Metodika + + Na čistém repozitáři (``git clean -fxd``) a čistém systému spouštíme + ``make/init_local``. Když to spadne, tak do tabulky zapíšeme, co jsme + přiinstalovali. Protože větev ``makefiles`` aktuálně není mergenutá do + masteru, nefunguje synchronizace flatpages (a stejně nemáme SSH klíč), takže + tam ``make/init_local`` sestřelíme a vyzkoušíme, že ``make/test`` spustí + testy. + +.. Grafické tabulky (grid-tables, simple-tables) jsou strašný porod vyrábět, dlabu na to a cpu to do CSV… + +.. csv-table:: Prerekvizity v jednotlivých distribucích + :header: Distribuce / OS, Repozitář s Py3.9, venv, py knihovny, PostgreSQL knihovna, poznámky + + Ubuntu 22.10, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "Je potřeba zapnout zdroj ``universe`` a nainstalovat kompilátor C (``gcc``)?" + Linux Mint 21, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "" + Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``)" + openSUSE Leap 15.4, oficiální (``python39``), předinstalovaný?, ``python39-devel``, ??FIXME!!, "Výchozí verze pythonu je 3.6 a ta je moc stará, potřeba instalovat ``gcc``. Nevím jak sehnat pg_config." + Debian 11, "oficiální, výchozí", ??, ??, ??, "Určitě to tam rozběhat jde, protože Gimli. Nejspíš bude relativně podobné Ubuntu." + diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 583521b1..256f5eec 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -36,6 +36,9 @@ Nutné Kromě toho je potřeba mít účet na `Gitee `_, kde bydlí gitový repozitář s kódem. +.. tip:: Potřebné balíčky v různých distribucích jsou sepsané v :ref:`tabulce + prerekvizit `. + Doporučené ^^^^^^^^^^ From 7b5db01377070e7963a30c654331863b65123ff6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 24 Nov 2022 20:16:09 +0100 Subject: [PATCH 073/515] =?UTF-8?q?hotfix:=20org=20nem=C5=AF=C5=BEe=20p?= =?UTF-8?q?=C5=99i=C5=99adit=20hodnocen=C3=AD=20nezadan=C3=BD=20probl?= =?UTF-8?q?=C3=A9m=20(nap=C5=99.=20vy=C5=99e=C5=A1en=C3=BD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/urls.py | 1 + api/views/autocomplete.py | 9 +++++++++ odevzdavatko/forms.py | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/api/urls.py b/api/urls.py index 23aafe36..2570ded9 100644 --- a/api/urls.py +++ b/api/urls.py @@ -23,6 +23,7 @@ urlpatterns = [ path('api/autocomplete/skola/', views.SkolaAutocomplete.as_view(), name='autocomplete_skola'), path('api/autocomplete/resitel/', org_required(views.ResitelAutocomplete.as_view()), name='autocomplete_resitel'), path('api/autocomplete/problem/odevzdatelny', views.OdevzdatelnyProblemAutocomplete.as_view(), name='autocomplete_problem_odevzdatelny'), + path('api/autocomplete/problem/vsechny', views.ProblemAutocomplete.as_view(), name='autocomplete_problem'), # Ceka na autocomplete v3 # path('autocomplete/organizatori/', diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 217df008..4cd2552a 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -66,6 +66,15 @@ class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): Q(nazev__icontains=self.q)) return qs +class ProblemAutocomplete(autocomplete.Select2QuerySetView): + """ View k :mod:`dal.autocomplete` pro vyhledávání problémů především v odevzdávátku. """ + def get_queryset(self): + qs = m.Problem.objects.all().order_by("-stav", "nazev") + if self.q: + qs = qs.filter( + Q(nazev__icontains=self.q)) + return qs + # Ceka na autocomplete v3 # class OrganizatorAutocomplete(autocomplete.Select2QuerySetView): # def get_queryset(self): diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index a8538668..65a8b7ac 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -91,7 +91,7 @@ class JednoHodnoceniForm(forms.ModelForm): fields = ('problem', 'body', 'deadline_body', 'feedback',) widgets = { 'problem': autocomplete.ModelSelect2( - url='autocomplete_problem_odevzdatelny', # FIXME: Dovolit i starší? + url='autocomplete_problem', ), 'feedback': forms.Textarea(attrs={'rows': 1, 'cols': 30, 'class': 'feedback'}), } From 728de9be067f04454b6408e5bdd00e44d531c818 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 24 Nov 2022 20:41:17 +0100 Subject: [PATCH 074/515] =?UTF-8?q?hotfix:=20p=C5=99i=20vyb=C3=ADr=C3=A1n?= =?UTF-8?q?=C3=AD=20probl=C3=A9mu=20jsou=20vid=C4=9Bt=20i=20star=C3=A9=20r?= =?UTF-8?q?o=C4=8Dn=C3=ADky,=20ale=20sortit=20podle=20ro=C4=8Dn=C3=ADku=20?= =?UTF-8?q?neum=C3=ADm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 4cd2552a..8c6f334c 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -69,7 +69,13 @@ class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): class ProblemAutocomplete(autocomplete.Select2QuerySetView): """ View k :mod:`dal.autocomplete` pro vyhledávání problémů především v odevzdávátku. """ def get_queryset(self): - qs = m.Problem.objects.all().order_by("-stav", "nazev") + # FIXME i starší úlohy + nastaveni = get_object_or_404(m.Nastaveni) + rocnik = nastaveni.aktualni_rocnik + temaQ = Q(Tema___rocnik = rocnik, stav=m.Problem.STAV_ZADANY) + ulohaQ = Q(Uloha___cislo_zadani__rocnik = rocnik, stav=m.Problem.STAV_ZADANY) + clanekQ = Q(Clanek___cislo__rocnik = rocnik, stav=m.Problem.STAV_ZADANY) + qs = m.Problem.objects.filter(temaQ | ulohaQ | clanekQ).order_by("-stav", "nazev") if self.q: qs = qs.filter( Q(nazev__icontains=self.q)) From 79fea4074e18a9521a5af01c0696ebcd16e7f523 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 24 Nov 2022 20:44:15 +0100 Subject: [PATCH 075/515] =?UTF-8?q?hotfix:=20kruci,=20kop=C3=ADrov=C3=A1n?= =?UTF-8?q?=C3=AD=20je=20=C4=8Dast=C3=BDm=20zdrojem=20chyb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 8c6f334c..33e083eb 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -72,9 +72,9 @@ class ProblemAutocomplete(autocomplete.Select2QuerySetView): # FIXME i starší úlohy nastaveni = get_object_or_404(m.Nastaveni) rocnik = nastaveni.aktualni_rocnik - temaQ = Q(Tema___rocnik = rocnik, stav=m.Problem.STAV_ZADANY) - ulohaQ = Q(Uloha___cislo_zadani__rocnik = rocnik, stav=m.Problem.STAV_ZADANY) - clanekQ = Q(Clanek___cislo__rocnik = rocnik, stav=m.Problem.STAV_ZADANY) + temaQ = Q(Tema___rocnik = rocnik) + ulohaQ = Q(Uloha___cislo_zadani__rocnik=rocnik) + clanekQ = Q(Clanek___cislo__rocnik=rocnik) qs = m.Problem.objects.filter(temaQ | ulohaQ | clanekQ).order_by("-stav", "nazev") if self.q: qs = qs.filter( From f86e6b68383697ba8d535691daf5fb47807283a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 28 Nov 2022 23:38:13 +0100 Subject: [PATCH 076/515] hotfix: #1430 --- mamweb/static/css/mamweb.css | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 53e06967..236072f5 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1152,8 +1152,7 @@ div.zadani_termin .datum { /* posune kotvu obrázku v galerii o oranžový pruh dolu, aby se pod ním obrázek neschovával */ /* https://stackoverflow.com/questions/10732690/offsetting-an-html-anchor-to-adjust-for-fixed-header */ .kotva_obrazku { - display: block; - position: relative; + position: absolute; width: 0; height: 55px; /* viz #title */ margin-top: -55px; /* viz #title */ From 91cf18fa9e0e04a8f34b43f226344ad64a01c998 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 29 Nov 2022 00:40:18 +0100 Subject: [PATCH 077/515] =?UTF-8?q?Odsazen=C3=AD=20pomoc=C3=AD=20tabul?= =?UTF-8?q?=C3=A1tor=C5=AF=20[NOT=20CHECKED]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pustil jsem na velkou část kódu skript, zatím nevím, co jsem rozbil. Prosím o review :-) --- header_fotky/context_processors.py | 84 +++---- korektury/views.py | 34 +-- mamweb/admin.py | 32 +-- mamweb/middleware.py | 152 ++++++------ mamweb/settings_common.py | 386 ++++++++++++++--------------- mamweb/settings_local.py | 96 +++---- mamweb/settings_prod.py | 20 +- mamweb/settings_test.py | 28 +-- seminar/models/base.py | 18 +- seminar/models/novinky.py | 42 ++-- seminar/models/odevzdavatko.py | 234 ++++++++--------- soustredeni/admin.py | 50 ++-- treenode/admin.py | 90 +++---- treenode/permissions.py | 4 +- various/autentizace/utils.py | 24 +- various/log_filters.py | 8 +- 16 files changed, 651 insertions(+), 651 deletions(-) diff --git a/header_fotky/context_processors.py b/header_fotky/context_processors.py index 0040cb5f..7f73faa7 100644 --- a/header_fotky/context_processors.py +++ b/header_fotky/context_processors.py @@ -12,46 +12,46 @@ from header_fotky.models import FotkaUrlVazba def vzhled(request): - """ - Podle času přidá do contextu, zdali je nebo není noc. Dále podle dení - doby a url přidá do contextu správnou fotku. - - url adresu nejprve vyzkouší celou, pak postupně odřezává věci za - lomítkem, dokud nenajde url, pro kterou existuje alespoň jedna fotka. - Z fotek pro toto url zkusí vybrat tu ve správné denní době a až poté - libovolnou. (Z více možných fotek pro 1 url a 1 dobu vybírá náhodně.) - """ - hodin = datetime.now().hour - if (hodin <= 6) or (hodin >= 20): - noc = True - nedoba = 'den' - doba = 'noc' - else: - noc = False - nedoba = 'noc' - doba = 'den' - url = request.path - - fotky = FotkaUrlVazba.objects.exclude(denni_doba=nedoba) - fotka = None - - # TODO rychlejší patternmatch? - while (fotka is None) and (url != ''): - presne = fotky.filter(url__exact=url) - if presne.count() > 0: - presne_doba = presne.filter(denni_doba=doba) - if presne_doba.count() > 0: - fotka = random.choice(presne_doba).url_fotky() - else: - fotka = random.choice(presne).url_fotky() - - url = url[:-1] - index = url.rfind('/') - if index != -1: - url = url[:index+1] - - if fotka is None: - fotka = settings.STATIC_URL + "images/header/vikendovka.jpg" - - return {'noc': noc, 'fotka': fotka} + """ + Podle času přidá do contextu, zdali je nebo není noc. Dále podle dení + doby a url přidá do contextu správnou fotku. + + url adresu nejprve vyzkouší celou, pak postupně odřezává věci za + lomítkem, dokud nenajde url, pro kterou existuje alespoň jedna fotka. + Z fotek pro toto url zkusí vybrat tu ve správné denní době a až poté + libovolnou. (Z více možných fotek pro 1 url a 1 dobu vybírá náhodně.) + """ + hodin = datetime.now().hour + if (hodin <= 6) or (hodin >= 20): + noc = True + nedoba = 'den' + doba = 'noc' + else: + noc = False + nedoba = 'noc' + doba = 'den' + url = request.path + + fotky = FotkaUrlVazba.objects.exclude(denni_doba=nedoba) + fotka = None + + # TODO rychlejší patternmatch? + while (fotka is None) and (url != ''): + presne = fotky.filter(url__exact=url) + if presne.count() > 0: + presne_doba = presne.filter(denni_doba=doba) + if presne_doba.count() > 0: + fotka = random.choice(presne_doba).url_fotky() + else: + fotka = random.choice(presne).url_fotky() + + url = url[:-1] + index = url.rfind('/') + if index != -1: + url = url[:index+1] + + if fotka is None: + fotka = settings.STATIC_URL + "images/header/vikendovka.jpg" + + return {'noc': noc, 'fotka': fotka} diff --git a/korektury/views.py b/korektury/views.py index d8d78c24..efeab19d 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -30,28 +30,28 @@ class KorekturyListView(generic.ListView): template_name = 'korektury/seznam.html' class KorekturyAktualniListView(KorekturyListView): - def get_queryset(self, *args, **kwargs): - queryset=super().get_queryset() - queryset=queryset.exclude(status="zastarale") - return queryset + def get_queryset(self, *args, **kwargs): + queryset=super().get_queryset() + queryset=queryset.exclude(status="zastarale") + return queryset - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context['selected'] = 'aktualni' - return context + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['selected'] = 'aktualni' + return context class KorekturyZastaraleListView(KorekturyListView): - def get_queryset(self, *args, **kwargs): - queryset=super().get_queryset() - queryset=queryset.filter(status="zastarale").order_by("-cas") - return queryset - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context['selected'] = 'zastarale' - return context + def get_queryset(self, *args, **kwargs): + queryset=super().get_queryset() + queryset=queryset.filter(status="zastarale").order_by("-cas") + return queryset + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['selected'] = 'zastarale' + return context class KorekturySeskupeneListView(KorekturyAktualniListView): template_name = 'korektury/seskupeny_seznam.html' diff --git a/mamweb/admin.py b/mamweb/admin.py index 2ad1aaaa..b6924468 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -17,14 +17,14 @@ from ckeditor_uploader.widgets import CKEditorUploadingWidget class FlatpageForm(FlatpageFormOld): - content = forms.CharField(widget=CKEditorUploadingWidget()) - class Meta: - model = FlatPage # this is not automatically inherited from FlatpageFormOld - exclude = [] + content = forms.CharField(widget=CKEditorUploadingWidget()) + class Meta: + model = FlatPage # this is not automatically inherited from FlatpageFormOld + exclude = [] class FlatPageAdmin(FlatPageAdminOld): - form = FlatpageForm + form = FlatpageForm # We have to unregister the normal admin, and then reregister ours @@ -36,19 +36,19 @@ locale.setlocale(locale.LC_COLLATE, 'cs_CZ.UTF-8') # https://books.agiliq.com/projects/django-admin-cookbook/en/latest/set_ordering.html # FIXME zpraseno pomocí toho, že Python umí bez problému přepisovat funkce def get_app_list(self, request): - """ - Return a sorted list of all the installed apps that have been - registered in this site. - """ + """ + Return a sorted list of all the installed apps that have been + registered in this site. + """ - app_dict = self._build_app_dict(request) - # Sort the apps alphabetically. - app_list = sorted(app_dict.values(), key=lambda x: locale.strxfrm('!') if (x['name'] == "Seminar") else locale.strxfrm(x['name'].lower())) + app_dict = self._build_app_dict(request) + # Sort the apps alphabetically. + app_list = sorted(app_dict.values(), key=lambda x: locale.strxfrm('!') if (x['name'] == "Seminar") else locale.strxfrm(x['name'].lower())) - # Sort the models alphabetically within each app. - for app in app_list: - app['models'].sort(key=lambda x: locale.strxfrm('žž' + x['name'].lower()) if (x['name'].endswith("(Node)")) else locale.strxfrm(x['name'].lower())) + # Sort the models alphabetically within each app. + for app in app_list: + app['models'].sort(key=lambda x: locale.strxfrm('žž' + x['name'].lower()) if (x['name'].endswith("(Node)")) else locale.strxfrm(x['name'].lower())) - return app_list + return app_list AdminSite.get_app_list = get_app_list diff --git a/mamweb/middleware.py b/mamweb/middleware.py index c1014257..7109423e 100644 --- a/mamweb/middleware.py +++ b/mamweb/middleware.py @@ -6,83 +6,83 @@ from django.http import HttpResponse, HttpResponseRedirect class LoggedInHintCookieMiddleware(object): - """Middleware to securely help with 'logged-in' detection for dual HTTP/HTTPS sites. - - On insecure requests: Checks for a (non-secure) cookie settings.LOGGED_IN_HINT_COOKIE_NAME - and if present, redirects to HTTPS (same adress). - Note this usually breaks non-GET (POST) requests. - - On secure requests: Updates cookie settings.LOGGED_IN_HINT_COOKIE_NAME to reflect - whether an user is logged in in the current session (cookie set to 'True' or cleared). - The cookie is set to expire at the same time as the sessionid cookie. - - By default, LOGGED_IN_HINT_COOKIE_NAME = 'logged_in_hint'. - """ - - def __init__(self): - if hasattr(settings, 'LOGGED_IN_HINT_COOKIE_NAME'): - self.cookie_name = settings.LOGGED_IN_HINT_COOKIE_NAME - else: self.cookie_name = 'logged_in_hint' - self.cookie_value = 'True' - - def cookie_correct(self, request): - return self.cookie_name in request.COOKIES and request.COOKIES[self.cookie_name] == self.cookie_value - - def process_request(self, request): - if not request.is_secure(): - if self.cookie_correct(request): - # redirect insecure (assuming http) requests with hint cookie to https - url = request.build_absolute_uri() - assert url[:5] == 'http:' - return HttpResponseRedirect('https:' + url[5:]) - return None - - def process_response(self, request, response): - if request.is_secure(): - # assuming full session info (as the conn. is secure) - try: - user = request.user - except AttributeError: # no user - ajax or other special request - return response - if user.is_authenticated(): - if not self.cookie_correct(request): - expiry = None if request.session.get_expire_at_browser_close() else request.session.get_expiry_date() - response.set_cookie(self.cookie_name, value=self.cookie_value, expires=expiry, secure=False) - else: - if self.cookie_name in request.COOKIES: - response.delete_cookie(self.cookie_name) - return response + """Middleware to securely help with 'logged-in' detection for dual HTTP/HTTPS sites. + + On insecure requests: Checks for a (non-secure) cookie settings.LOGGED_IN_HINT_COOKIE_NAME + and if present, redirects to HTTPS (same adress). + Note this usually breaks non-GET (POST) requests. + + On secure requests: Updates cookie settings.LOGGED_IN_HINT_COOKIE_NAME to reflect + whether an user is logged in in the current session (cookie set to 'True' or cleared). + The cookie is set to expire at the same time as the sessionid cookie. + + By default, LOGGED_IN_HINT_COOKIE_NAME = 'logged_in_hint'. + """ + + def __init__(self): + if hasattr(settings, 'LOGGED_IN_HINT_COOKIE_NAME'): + self.cookie_name = settings.LOGGED_IN_HINT_COOKIE_NAME + else: self.cookie_name = 'logged_in_hint' + self.cookie_value = 'True' + + def cookie_correct(self, request): + return self.cookie_name in request.COOKIES and request.COOKIES[self.cookie_name] == self.cookie_value + + def process_request(self, request): + if not request.is_secure(): + if self.cookie_correct(request): + # redirect insecure (assuming http) requests with hint cookie to https + url = request.build_absolute_uri() + assert url[:5] == 'http:' + return HttpResponseRedirect('https:' + url[5:]) + return None + + def process_response(self, request, response): + if request.is_secure(): + # assuming full session info (as the conn. is secure) + try: + user = request.user + except AttributeError: # no user - ajax or other special request + return response + if user.is_authenticated(): + if not self.cookie_correct(request): + expiry = None if request.session.get_expire_at_browser_close() else request.session.get_expiry_date() + response.set_cookie(self.cookie_name, value=self.cookie_value, expires=expiry, secure=False) + else: + if self.cookie_name in request.COOKIES: + response.delete_cookie(self.cookie_name) + return response class vzhled: - def process_request(self, request): - return None - - def process_view(self, request, view_func, view_args, view_kwargs): - #print "====== process_request ======" - #print view_func - #print view_args - #print view_kwargs - #print "=============================" - return None - - def process_template_response(self, request, response): - hodin = datetime.now().hour - if (hodin <= 6) or (hodin >= 14): # TODO 20 - response.context_data['noc'] = True - else: - response.context_data['noc'] = False - return response - - def process_response(self, request, response): - #hodin = datetime.now().hour - #if (hodin <= 6) or (hodin >= 14): # TODO 20 - #response.context_data['noc'] = True - #else: - #response.context_data['noc'] = False - return response - - - ##def process_exception(request, exception): - #pass + def process_request(self, request): + return None + + def process_view(self, request, view_func, view_args, view_kwargs): + #print "====== process_request ======" + #print view_func + #print view_args + #print view_kwargs + #print "=============================" + return None + + def process_template_response(self, request, response): + hodin = datetime.now().hour + if (hodin <= 6) or (hodin >= 14): # TODO 20 + response.context_data['noc'] = True + else: + response.context_data['noc'] = False + return response + + def process_response(self, request, response): + #hodin = datetime.now().hour + #if (hodin <= 6) or (hodin >= 14): # TODO 20 + #response.context_data['noc'] = True + #else: + #response.context_data['noc'] = False + return response + + + ##def process_exception(request, exception): + #pass diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 5a610795..139190fa 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -40,8 +40,8 @@ MEDIA_ROOT = os.path.join(BASE_DIR, 'media') STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'django.contrib.staticfiles.finders.FileSystemFinder', ) # Where redirect for login required services @@ -57,41 +57,41 @@ DOBA_ODHLASENI_PRI_ZASKRTNUTI_NEODHLASOVAT = 365 * 24 * 3600 # rok # Modules configuration AUTHENTICATION_BACKENDS = ( - 'django.contrib.auth.backends.ModelBackend', + 'django.contrib.auth.backends.ModelBackend', ) MIDDLEWARE = ( # 'reversion.middleware.RevisionMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', # FIXME: rozbilo se při přechodu na Django 2.0, nevím, jestli # se to dá zahodit bez náhrady # 'mamweb.middleware.LoggedInHintCookieMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', ) TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': ( - 'django.contrib.auth.context_processors.auth', + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': ( + 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.request', - 'django.contrib.messages.context_processors.messages', - 'sekizai.context_processors.sekizai', - 'header_fotky.context_processors.vzhled', - 'various.context_processors.rozliseni', - 'various.context_processors.april', - ) - }, - }, + 'django.contrib.messages.context_processors.messages', + 'sekizai.context_processors.sekizai', + 'header_fotky.context_processors.vzhled', + 'various.context_processors.rozliseni', + 'various.context_processors.april', + ) + }, + }, ] @@ -99,59 +99,59 @@ TEMPLATES = [ INSTALLED_APPS = ( - # Basic - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.sites', - 'django.contrib.staticfiles', - 'django.contrib.auth', - - # Utilities - 'sekizai', - 'reversion', - 'django_countries', - 'solo', - 'ckeditor', - 'ckeditor_uploader', - 'taggit', - 'dal', - 'dal_select2', - - 'crispy_forms', - 'django_comments', - - 'django.contrib.flatpages', - 'django.contrib.humanize', - - 'sitetree', - - 'imagekit', - - 'polymorphic', - - 'webpack_loader', - 'rest_framework', - 'rest_framework.authtoken', - - # MaMweb - 'mamweb', - 'seminar', - 'galerie', - 'korektury', - 'prednasky', - 'header_fotky', - 'various', - 'various.autentizace', - 'api', - 'aesop', - 'odevzdavatko', - 'vysledkovky', - 'personalni', - 'soustredeni', - 'treenode', - - # Admin upravy: + # Basic + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.sites', + 'django.contrib.staticfiles', + 'django.contrib.auth', + + # Utilities + 'sekizai', + 'reversion', + 'django_countries', + 'solo', + 'ckeditor', + 'ckeditor_uploader', + 'taggit', + 'dal', + 'dal_select2', + + 'crispy_forms', + 'django_comments', + + 'django.contrib.flatpages', + 'django.contrib.humanize', + + 'sitetree', + + 'imagekit', + + 'polymorphic', + + 'webpack_loader', + 'rest_framework', + 'rest_framework.authtoken', + + # MaMweb + 'mamweb', + 'seminar', + 'galerie', + 'korektury', + 'prednasky', + 'header_fotky', + 'various', + 'various.autentizace', + 'api', + 'aesop', + 'odevzdavatko', + 'vysledkovky', + 'personalni', + 'soustredeni', + 'treenode', + + # Admin upravy: # 'material', # 'material.admin', @@ -159,76 +159,76 @@ INSTALLED_APPS = ( # 'admin_tools.theming', # 'admin_tools.menu', # 'admin_tools.dashboard', - 'django.contrib.admin', + 'django.contrib.admin', - # Nechat na konci (INSTALLED_APPS je uspořádané): - 'django_cleanup.apps.CleanupConfig', # Uklízí media/ + # Nechat na konci (INSTALLED_APPS je uspořádané): + 'django_cleanup.apps.CleanupConfig', # Uklízí media/ ) DEBUG_TOOLBAR_CONFIG = { - 'SHOW_COLLAPSED': True, + 'SHOW_COLLAPSED': True, } SUMMERNOTE_CONFIG = { - 'iframe': False, - 'airMode': False, - 'attachment_require_authentication': True, - 'width': '80%', + 'iframe': False, + 'airMode': False, + 'attachment_require_authentication': True, + 'width': '80%', # 'height': '30em', - 'toolbar': [ - ['style', ['style']], - ['font', ['bold', 'italic', 'superscript', 'subscript', 'clear']], - ['color', ['color']], - ['para', ['ul', 'ol', 'paragraph']], - ['table', ['table']], - ['insert', ['link', 'picture', 'hr']], - ['view', ['fullscreen', 'codeview']], - ['help', ['help']], - ] + 'toolbar': [ + ['style', ['style']], + ['font', ['bold', 'italic', 'superscript', 'subscript', 'clear']], + ['color', ['color']], + ['para', ['ul', 'ol', 'paragraph']], + ['table', ['table']], + ['insert', ['link', 'picture', 'hr']], + ['view', ['fullscreen', 'codeview']], + ['help', ['help']], + ] } CKEDITOR_UPLOAD_PATH = "uploads/" CKEDITOR_IMAGE_BACKEND = 'pillow' #CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js' CKEDITOR_CONFIGS = { - 'default': { - 'entities': False, - 'toolbar': [ - ['Source', 'ShowBlocks', '-', 'Maximize'], - ['Bold', 'Italic', 'Subscript', 'Superscript', '-', 'RemoveFormat'], - ['NumberedList','BulletedList','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], - ['Link', 'Unlink', 'Anchor', '-', 'Image', 'Table', 'HorizontalRule'], - ['Format'], - - ], + 'default': { + 'entities': False, + 'toolbar': [ + ['Source', 'ShowBlocks', '-', 'Maximize'], + ['Bold', 'Italic', 'Subscript', 'Superscript', '-', 'RemoveFormat'], + ['NumberedList','BulletedList','-','Blockquote','-','JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], + ['Link', 'Unlink', 'Anchor', '-', 'Image', 'Table', 'HorizontalRule'], + ['Format'], + + ], # 'toolbar': 'full', - 'height': '40em', - 'width': '100%', - 'toolbarStartupExpanded': False, - 'allowedContent' : True, - }, + 'height': '40em', + 'width': '100%', + 'toolbarStartupExpanded': False, + 'allowedContent' : True, + }, } # Webpack loader VUE_FRONTEND_DIR = os.path.join(BASE_DIR, 'vue_frontend') WEBPACK_LOADER = { - 'DEFAULT': { - 'CACHE': False, - 'BUNDLE_DIR_NAME': 'vue/', # must end with slash - 'STATS_FILE': os.path.join(VUE_FRONTEND_DIR, 'webpack-stats.json'), - 'POLL_INTERVAL': 0.1, - 'TIMEOUT': None, - 'IGNORE': [r'.+\.hot-update.js', r'.+\.map'] - } + 'DEFAULT': { + 'CACHE': False, + 'BUNDLE_DIR_NAME': 'vue/', # must end with slash + 'STATS_FILE': os.path.join(VUE_FRONTEND_DIR, 'webpack-stats.json'), + 'POLL_INTERVAL': 0.1, + 'TIMEOUT': None, + 'IGNORE': [r'.+\.hot-update.js', r'.+\.map'] + } } # Dajngo REST Framework REST_FRAMEWORK = { - 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', - 'PAGE_SIZE': 100 + 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', + 'PAGE_SIZE': 100 } @@ -236,22 +236,22 @@ REST_FRAMEWORK = { # Create file 'django.secret' in every install (it is not kept in git) try: - with open(os.path.join(os.path.dirname(__file__), '..', 'django.secret')) as f: - SECRET_KEY = f.readline().strip() + with open(os.path.join(os.path.dirname(__file__), '..', 'django.secret')) as f: + SECRET_KEY = f.readline().strip() except: - SECRET_KEY = '12345zmr_k53a*@f4q_+ji^o@!pgpef*5&8c7zzdqwkdlkj' + SECRET_KEY = '12345zmr_k53a*@f4q_+ji^o@!pgpef*5&8c7zzdqwkdlkj' # Logging LOGGING = { - 'version': 1, - 'disable_existing_loggers': False, + 'version': 1, + 'disable_existing_loggers': False, - 'formatters': { - 'verbose': { - 'format': '%(levelname)s %(asctime)s %(module)s (logger %(name)s): %(message)s' - }, - }, + 'formatters': { + 'verbose': { + 'format': '%(levelname)s %(asctime)s %(module)s (logger %(name)s): %(message)s' + }, + }, 'filters': { 'Http404AsInfo': { @@ -262,76 +262,76 @@ LOGGING = { }, }, - 'loggers': { - - 'django': { - 'handlers': ['console'], - 'level': 'DEBUG', - 'filters': ['StripSensitiveFormData'], - }, - 'django.security.csrf': { - 'handlers': ['console'], - 'level': 'DEBUG', - 'filters': ['StripSensitiveFormData'], - }, - 'django.request': { - 'handlers': ['console'], - 'level': 'DEBUG', + 'loggers': { + + 'django': { + 'handlers': ['console'], + 'level': 'DEBUG', + 'filters': ['StripSensitiveFormData'], + }, + 'django.security.csrf': { + 'handlers': ['console'], + 'level': 'DEBUG', + 'filters': ['StripSensitiveFormData'], + }, + 'django.request': { + 'handlers': ['console'], + 'level': 'DEBUG', 'filters': ['Http404AsInfo'], - }, + }, - 'seminar.prihlaska.form':{ + 'seminar.prihlaska.form':{ 'handlers': ['console','registration_logfile'], 'level': 'INFO' }, - 'seminar.prihlaska.problem':{ + 'seminar.prihlaska.problem':{ 'handlers': ['console','mail_registration','registration_error_log'], 'level': 'INFO' }, - # Catch-all logger - '': { - 'handlers': ['console'], # Add 'mail_admins' in prod and test - 'level': 'DEBUG', - 'filters': ['StripSensitiveFormData'], - }, - - }, - - 'handlers': { - - 'console': { - 'level': 'WARNING', ## Set to 'DEBUG' in local - 'class': 'logging.StreamHandler', - 'formatter': 'verbose', - }, - - 'mail_admins': { - 'level': 'WARNING', - 'class': 'django.utils.log.AdminEmailHandler', - 'formatter': 'verbose', - 'filters': ['StripSensitiveFormData'], - }, - 'mail_registration': { - 'level': 'WARNING', - 'class': 'django.utils.log.AdminEmailHandler', - 'formatter': 'verbose', - }, - 'registration_logfile':{ - 'level': 'INFO', + # Catch-all logger + '': { + 'handlers': ['console'], # Add 'mail_admins' in prod and test + 'level': 'DEBUG', + 'filters': ['StripSensitiveFormData'], + }, + + }, + + 'handlers': { + + 'console': { + 'level': 'WARNING', ## Set to 'DEBUG' in local + 'class': 'logging.StreamHandler', + 'formatter': 'verbose', + }, + + 'mail_admins': { + 'level': 'WARNING', + 'class': 'django.utils.log.AdminEmailHandler', + 'formatter': 'verbose', + 'filters': ['StripSensitiveFormData'], + }, + 'mail_registration': { + 'level': 'WARNING', + 'class': 'django.utils.log.AdminEmailHandler', + 'formatter': 'verbose', + }, + 'registration_logfile':{ + 'level': 'INFO', 'class': 'logging.FileHandler', # filename declared in specific configuration files - 'formatter': 'verbose', + 'formatter': 'verbose', }, - 'registration_error_log':{ - 'level': 'INFO', + 'registration_error_log':{ + 'level': 'INFO', 'class': 'logging.FileHandler', # filename declared in specific configuration files - 'formatter': 'verbose', + 'formatter': 'verbose', }, - }, - } + }, + } # Permissions for uploads FILE_UPLOAD_PERMISSIONS = 0o0644 @@ -352,14 +352,14 @@ POSLI_MAILOVOU_NOTIFIKACI = False # Logování chyb class InvalidTemplateVariable(str): - def __mod__(self, variable): - import logging - logger = logging.getLogger(__name__) - for line in traceback.walk_stack(None): - if 'context' in line[0].f_locals and 'request' in line[0].f_locals['context']: - logger.warning("Proměnná '%s' neexistuje: %s" % (variable, line[0].f_locals['context']['request'])) - break - return '' + def __mod__(self, variable): + import logging + logger = logging.getLogger(__name__) + for line in traceback.walk_stack(None): + if 'context' in line[0].f_locals and 'request' in line[0].f_locals['context']: + logger.warning("Proměnná '%s' neexistuje: %s" % (variable, line[0].f_locals['context']['request'])) + break + return '' TEMPLATES[0]['OPTIONS']['string_if_invalid'] = InvalidTemplateVariable('%s') # Django 3.2 vyžaduje explicitní nastavení autoklíče, zatím nechápu proč diff --git a/mamweb/settings_local.py b/mamweb/settings_local.py index 4cf76dc2..540c0453 100644 --- a/mamweb/settings_local.py +++ b/mamweb/settings_local.py @@ -11,16 +11,16 @@ import os.path from .settings_common import * MIDDLEWARE += ( - 'debug_toolbar.middleware.DebugToolbarMiddleware', - ) + 'debug_toolbar.middleware.DebugToolbarMiddleware', + ) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ INSTALLED_APPS += ( - 'debug_toolbar', - 'django_extensions', - ) + 'debug_toolbar', + 'django_extensions', + ) # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True @@ -37,10 +37,10 @@ ALLOWED_HOSTS.append('localhost') # https://docs.djangoproject.com/en/1.7/ref/settings/#databases DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), - } + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), + } } #DATABASES = { # 'default': { @@ -52,46 +52,46 @@ DATABASES = { # LOGGING LOGGING = { - 'version': 1, - 'disable_existing_loggers': True, - 'filters': { - 'require_debug_false': { - '()': 'django.utils.log.RequireDebugFalse' - } - }, - 'formatters': { - 'simple': { - 'format': '%(asctime)s - %(name)s - %(levelname)-8s - %(message)s', - }, - }, - 'handlers': { - 'dummy': { - 'class': 'logging.NullHandler', - }, - 'console': { - 'level': 'DEBUG', - 'class': 'logging.StreamHandler', - 'formatter': 'simple', - }, - }, - 'loggers': { + 'version': 1, + 'disable_existing_loggers': True, + 'filters': { + 'require_debug_false': { + '()': 'django.utils.log.RequireDebugFalse' + } + }, + 'formatters': { + 'simple': { + 'format': '%(asctime)s - %(name)s - %(levelname)-8s - %(message)s', + }, + }, + 'handlers': { + 'dummy': { + 'class': 'logging.NullHandler', + }, + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler', + 'formatter': 'simple', + }, + }, + 'loggers': { # Vypisovani databazovych dotazu do konzole - #'django.db.backends': { - # 'level': 'DEBUG', - # 'handlers': ['console'], - # 'propagate': False, - #}, - 'werkzeug': { - 'handlers': ['console'], - 'level': 'DEBUG', - 'propagate': True, - }, - '': { - 'handlers': ['console'], - 'level': 'DEBUG', - 'propagate': False, - }, - }, + #'django.db.backends': { + # 'level': 'DEBUG', + # 'handlers': ['console'], + # 'propagate': False, + #}, + 'werkzeug': { + 'handlers': ['console'], + 'level': 'DEBUG', + 'propagate': True, + }, + '': { + 'handlers': ['console'], + 'level': 'DEBUG', + 'propagate': False, + }, + }, } # set to 'DEBUG' for EXTRA verbose output diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index 6a20ff8c..3a81c8c4 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -16,8 +16,8 @@ from .settings_common import * # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ INSTALLED_APPS += ( - 'django_extensions', - ) + 'django_extensions', + ) # SECURITY WARNING: keep the secret key used in production secret! assert not SECRET_KEY.startswith('12345') @@ -34,14 +34,14 @@ ALLOWED_HOSTS = ['mam.mff.cuni.cz', 'www.mam.mff.cuni.cz', 'atrey.karlin.mff.cun # https://docs.djangoproject.com/en/1.7/ref/settings/#databases DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'mam_prod', - 'USER': 'mam-web', - 'TEST': { - 'NAME': 'mam-prod-testdb', - }, - }, + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'mam_prod', + 'USER': 'mam-web', + 'TEST': { + 'NAME': 'mam-prod-testdb', + }, + }, } import os diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index 365664d2..eac5a7b4 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -13,16 +13,16 @@ import os.path from .settings_common import * # zatim nutne, casem snad vyresime # noqa MIDDLEWARE += ( - 'debug_toolbar.middleware.DebugToolbarMiddleware', - ) + 'debug_toolbar.middleware.DebugToolbarMiddleware', + ) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/ INSTALLED_APPS += ( - 'debug_toolbar', - 'django_extensions', - ) + 'debug_toolbar', + 'django_extensions', + ) # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = ')^u=i65*zmr_k53a*@f4q_+ji^o@!pgpef*5&8c7zzv9l+zo)n' @@ -38,21 +38,21 @@ ALLOWED_HOSTS = ['*.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', 'mam.mff.cuni. # https://docs.djangoproject.com/en/1.7/ref/settings/#databases DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'mam_test', - 'USER': 'mam-web', - 'TEST': { - 'NAME': 'mam-test-testdb', - }, - }, + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'mam_test', + 'USER': 'mam-web', + 'TEST': { + 'NAME': 'mam-test-testdb', + }, + }, } import os SERVER_EMAIL = 'mamweb-test-errors@mam.mff.cuni.cz' ADMINS = [ - ('M&M ERRORs', 'mam-errors@mam.mff.cuni.cz'), + ('M&M ERRORs', 'mam-errors@mam.mff.cuni.cz'), ] diff --git a/seminar/models/base.py b/seminar/models/base.py index 77c857a3..1069f165 100644 --- a/seminar/models/base.py +++ b/seminar/models/base.py @@ -4,18 +4,18 @@ from django.db import models class SeminarModelBase(models.Model): - class Meta: - abstract = True + class Meta: + abstract = True - def verejne(self): - return False + def verejne(self): + return False - # def get_absolute_url(self): - # return "https://" + str(get_current_site(None)) + self.verejne_url() + # def get_absolute_url(self): + # return "https://" + str(get_current_site(None)) + self.verejne_url() - def admin_url(self): - model_name = self.__class__.__name__.lower() - return reverse('admin:seminar_{}_change'.format(model_name), args=(self.id, )) + def admin_url(self): + model_name = self.__class__.__name__.lower() + return reverse('admin:seminar_{}_change'.format(model_name), args=(self.id, )) # def verejne_url(self): # return None diff --git a/seminar/models/novinky.py b/seminar/models/novinky.py index f6ce4161..cee674a8 100644 --- a/seminar/models/novinky.py +++ b/seminar/models/novinky.py @@ -9,30 +9,30 @@ from . import personalni as pm @reversion.register(ignore_duplicates=True) class Novinky(models.Model): - class Meta: - verbose_name = 'Novinka' - verbose_name_plural = 'Novinky' - ordering = ['-datum'] + class Meta: + verbose_name = 'Novinka' + verbose_name_plural = 'Novinky' + ordering = ['-datum'] - datum = models.DateField(auto_now_add=True) + datum = models.DateField(auto_now_add=True) - text = models.TextField('Text novinky', blank=True, null=True) - obrazek = models.ImageField('Obrázek', upload_to='image_novinky/%Y/%m/%d/', - null=True, blank=True) + text = models.TextField('Text novinky', blank=True, null=True) + obrazek = models.ImageField('Obrázek', upload_to='image_novinky/%Y/%m/%d/', + null=True, blank=True) - obrazek_maly = ImageSpecField(source='obrazek', - processors=[ - ResizeToFit(350, 200, upscale=False) - ], - options={'quality': 95}) + obrazek_maly = ImageSpecField(source='obrazek', + processors=[ + ResizeToFit(350, 200, upscale=False) + ], + options={'quality': 95}) - autor = models.ForeignKey(pm.Organizator, verbose_name='Autor novinky', null=True, - on_delete=models.SET_NULL) + autor = models.ForeignKey(pm.Organizator, verbose_name='Autor novinky', null=True, + on_delete=models.SET_NULL) - zverejneno = models.BooleanField('Zveřejněno', default=False) + zverejneno = models.BooleanField('Zveřejněno', default=False) - def __str__(self): - if self.text: - return '[' + str(self.datum) + '] ' + self.text[0:50] - else: - return '[' + str(self.datum) + '] ' + def __str__(self): + if self.text: + return '[' + str(self.datum) + '] ' + self.text[0:50] + else: + return '[' + str(self.datum) + '] ' diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 9ae161c5..c286558c 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -18,68 +18,68 @@ from seminar.models import base as bm @reversion.register(ignore_duplicates=True) class Reseni(bm.SeminarModelBase): - class Meta: - db_table = 'seminar_reseni' - verbose_name = 'Řešení' - verbose_name_plural = 'Řešení' - #ordering = ['-problem', 'resitele'] # FIXME: Takhle to chceme, ale nefunguje to. - ordering = ['-cas_doruceni'] + class Meta: + db_table = 'seminar_reseni' + verbose_name = 'Řešení' + verbose_name_plural = 'Řešení' + #ordering = ['-problem', 'resitele'] # FIXME: Takhle to chceme, ale nefunguje to. + ordering = ['-cas_doruceni'] - # Interní ID - id = models.AutoField(primary_key = True) + # Interní ID + id = models.AutoField(primary_key = True) - # Ke každé dvojici řešní a problém existuje nanejvýš jedno hodnocení, doplnění vazby. - problem = models.ManyToManyField(am.Problem, verbose_name='problém', help_text='Problém', - through='Hodnoceni') + # Ke každé dvojici řešní a problém existuje nanejvýš jedno hodnocení, doplnění vazby. + problem = models.ManyToManyField(am.Problem, verbose_name='problém', help_text='Problém', + through='Hodnoceni') - resitele = models.ManyToManyField(pm.Resitel, verbose_name='autoři řešení', - help_text='Seznam autorů řešení', through='Reseni_Resitele') + resitele = models.ManyToManyField(pm.Resitel, verbose_name='autoři řešení', + help_text='Seznam autorů řešení', through='Reseni_Resitele') - cas_doruceni = models.DateTimeField('čas_doručení', default=timezone.now, blank=True) + cas_doruceni = models.DateTimeField('čas_doručení', default=timezone.now, blank=True) - FORMA_PAPIR = 'papir' - FORMA_EMAIL = 'email' - FORMA_UPLOAD = 'upload' - FORMA_CHOICES = [ - (FORMA_PAPIR, 'Papírové řešení'), - (FORMA_EMAIL, 'Emailem'), - (FORMA_UPLOAD, 'Upload přes web'), - ] - forma = models.CharField('forma řešení', max_length=16, choices=FORMA_CHOICES, blank=False, - default=FORMA_EMAIL) + FORMA_PAPIR = 'papir' + FORMA_EMAIL = 'email' + FORMA_UPLOAD = 'upload' + FORMA_CHOICES = [ + (FORMA_PAPIR, 'Papírové řešení'), + (FORMA_EMAIL, 'Emailem'), + (FORMA_UPLOAD, 'Upload přes web'), + ] + forma = models.CharField('forma řešení', max_length=16, choices=FORMA_CHOICES, blank=False, + default=FORMA_EMAIL) - text_cely = models.OneToOneField('ReseniNode', verbose_name='Plná verze textu řešení', - blank=True, null=True, related_name="reseni_cely_set", - on_delete=models.PROTECT) + text_cely = models.OneToOneField('ReseniNode', verbose_name='Plná verze textu řešení', + blank=True, null=True, related_name="reseni_cely_set", + on_delete=models.PROTECT) - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k řešení (plain text)') + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k řešení (plain text)') - zverejneno = models.BooleanField('řešení zveřejněno', default=False, - help_text='Udává, zda je řešení zveřejněno') + zverejneno = models.BooleanField('řešení zveřejněno', default=False, + help_text='Udává, zda je řešení zveřejněno') - def verejne_url(self): - return str(reverse_lazy('odevzdavatko_detail_reseni', args=[self.id])) + def verejne_url(self): + return str(reverse_lazy('odevzdavatko_detail_reseni', args=[self.id])) - def absolute_url(self): - return "https://" + str(get_current_site(None)) + self.verejne_url() + def absolute_url(self): + return "https://" + str(get_current_site(None)) + self.verejne_url() - # má OneToOneField s: - # Konfera + # má OneToOneField s: + # Konfera - # má ForeignKey s: - # Hodnoceni + # má ForeignKey s: + # Hodnoceni - def sum_body(self): - return self.hodnoceni_set.all().aggregate(Sum('body'))["body__sum"] + def sum_body(self): + return self.hodnoceni_set.all().aggregate(Sum('body'))["body__sum"] - def __str__(self): - return "{}({}): {}({})".format(self.resitele.first(),len(self.resitele.all()), self.problem.first() ,len(self.problem.all())) - # NOTE: Potenciální DB HOG (bez select_related) + def __str__(self): + return "{}({}): {}({})".format(self.resitele.first(),len(self.resitele.all()), self.problem.first() ,len(self.problem.all())) + # NOTE: Potenciální DB HOG (bez select_related) - def deadline_reseni(self): - return am.Deadline.objects.filter(deadline__gte=self.cas_doruceni).order_by("deadline").first() + def deadline_reseni(self): + return am.Deadline.objects.filter(deadline__gte=self.cas_doruceni).order_by("deadline").first() ## Pravdepodobne uz nebude potreba: # def save(self, *args, **kwargs): @@ -89,112 +89,112 @@ class Reseni(bm.SeminarModelBase): # super(Reseni, self).save(*args, **kwargs) class Hodnoceni(bm.SeminarModelBase): - class Meta: - db_table = 'seminar_hodnoceni' - verbose_name = 'Hodnocení' - verbose_name_plural = 'Hodnocení' + class Meta: + db_table = 'seminar_hodnoceni' + verbose_name = 'Hodnocení' + verbose_name_plural = 'Hodnocení' - # Interní ID - id = models.AutoField(primary_key = True) + # Interní ID + id = models.AutoField(primary_key = True) - body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='body', - blank=True, null=True) + body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='body', + blank=True, null=True) - cislo_body = models.ForeignKey(am.Cislo, verbose_name='číslo pro body', - related_name='hodnoceni', blank=True, null=True, on_delete=models.PROTECT) + cislo_body = models.ForeignKey(am.Cislo, verbose_name='číslo pro body', + related_name='hodnoceni', blank=True, null=True, on_delete=models.PROTECT) - # V ročníku < 26 nastaveno na deadline vygenerovaný pro původní cislo_body - deadline_body = models.ForeignKey(am.Deadline, verbose_name='deadline pro body', - related_name='hodnoceni', blank=True, null=True, on_delete=models.PROTECT) + # V ročníku < 26 nastaveno na deadline vygenerovaný pro původní cislo_body + deadline_body = models.ForeignKey(am.Deadline, verbose_name='deadline pro body', + related_name='hodnoceni', blank=True, null=True, on_delete=models.PROTECT) - reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) + reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) - problem = models.ForeignKey(am.Problem, verbose_name='problém', - related_name='hodnoceni', on_delete=models.PROTECT) + problem = models.ForeignKey(am.Problem, verbose_name='problém', + related_name='hodnoceni', on_delete=models.PROTECT) - feedback = models.TextField('zpětná vazba', blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)') + feedback = models.TextField('zpětná vazba', blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)') - def __str__(self): - return "{}, {}, {}".format(self.problem, self.reseni, self.body) + def __str__(self): + return "{}, {}, {}".format(self.problem, self.reseni, self.body) def generate_filename(self, filename): - return os.path.join( - settings.SEMINAR_RESENI_DIR, - am.aux_generate_filename(self, filename) - ) + return os.path.join( + settings.SEMINAR_RESENI_DIR, + am.aux_generate_filename(self, filename) + ) @reversion.register(ignore_duplicates=True) class PrilohaReseni(bm.SeminarModelBase): - class Meta: - db_table = 'seminar_priloha_reseni' - verbose_name = 'Příloha řešení' - verbose_name_plural = 'Přílohy řešení' - ordering = ['reseni', 'vytvoreno'] + class Meta: + db_table = 'seminar_priloha_reseni' + verbose_name = 'Příloha řešení' + verbose_name_plural = 'Přílohy řešení' + ordering = ['reseni', 'vytvoreno'] - # Interní ID - id = models.AutoField(primary_key = True) + # Interní ID + id = models.AutoField(primary_key = True) - reseni = models.ForeignKey(Reseni, verbose_name='řešení', related_name='prilohy', - on_delete=models.CASCADE) + reseni = models.ForeignKey(Reseni, verbose_name='řešení', related_name='prilohy', + on_delete=models.CASCADE) - vytvoreno = models.DateTimeField('vytvořeno', default=timezone.now, blank=True, editable=False) + vytvoreno = models.DateTimeField('vytvořeno', default=timezone.now, blank=True, editable=False) - soubor = models.FileField('soubor', upload_to = generate_filename) + soubor = models.FileField('soubor', upload_to = generate_filename) - poznamka = models.TextField('neveřejná poznámka', blank=True, - help_text='Neveřejná poznámka k příloze řešení (plain text), např. o původu') + poznamka = models.TextField('neveřejná poznámka', blank=True, + help_text='Neveřejná poznámka k příloze řešení (plain text), např. o původu') - res_poznamka = models.TextField('poznámka řešitele', blank=True, - help_text='Poznámka k příloze řešení, např. co daný soubor obsahuje') + res_poznamka = models.TextField('poznámka řešitele', blank=True, + help_text='Poznámka k příloze řešení, např. co daný soubor obsahuje') - def __str__(self): - return str(self.soubor) + def __str__(self): + return str(self.soubor) - def split(self): - "Vrátí cestu rozsekanou po složkách. To se hodí v templatech" - # Věřím, že tohle funguje, případně použít os.path nebo pathlib. - return self.soubor.url.split('/') + def split(self): + "Vrátí cestu rozsekanou po složkách. To se hodí v templatech" + # Věřím, že tohle funguje, případně použít os.path nebo pathlib. + return self.soubor.url.split('/') # Vazebna tabulka. Mozna se generuje automaticky. @reversion.register(ignore_duplicates=True) class Reseni_Resitele(models.Model): - class Meta: - db_table = 'seminar_reseni_resitele' - verbose_name = 'Řešení řešitelů' - verbose_name_plural = 'Řešení řešitelů' - ordering = ['reseni', 'resitele'] + class Meta: + db_table = 'seminar_reseni_resitele' + verbose_name = 'Řešení řešitelů' + verbose_name_plural = 'Řešení řešitelů' + ordering = ['reseni', 'resitele'] - # Interní ID - id = models.AutoField(primary_key = True) + # Interní ID + id = models.AutoField(primary_key = True) - resitele = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT) + resitele = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT) - reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) + reseni = models.ForeignKey(Reseni, verbose_name='řešení', on_delete=models.CASCADE) - # podil - jakou merou se ktery resitel podilel na danem reseni - # - pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni + # podil - jakou merou se ktery resitel podilel na danem reseni + # - pouziti v budoucnu, pokud by resitele nemeli dostat vsichni stejne bodu za spolecne reseni - def __str__(self): - return '{} od {}'.format(self.reseni, self.resitel) - # NOTE: Poteciální DB HOG bez select_related + def __str__(self): + return '{} od {}'.format(self.reseni, self.resitel) + # NOTE: Poteciální DB HOG bez select_related class ReseniNode(tm.TreeNode): - class Meta: - db_table = 'seminar_nodes_otistene_reseni' - verbose_name = 'Otištěné řešení (Node)' - verbose_name_plural = 'Otištěná řešení (Node)' - reseni = models.ForeignKey(Reseni, - on_delete=models.PROTECT, - verbose_name = 'reseni') - - def aktualizuj_nazev(self): - self.nazev = "ReseniNode: "+str(self.reseni) - - def getOdkazStr(self): - return str(self.reseni) + class Meta: + db_table = 'seminar_nodes_otistene_reseni' + verbose_name = 'Otištěné řešení (Node)' + verbose_name_plural = 'Otištěná řešení (Node)' + reseni = models.ForeignKey(Reseni, + on_delete=models.PROTECT, + verbose_name = 'reseni') + + def aktualizuj_nazev(self): + self.nazev = "ReseniNode: "+str(self.reseni) + + def getOdkazStr(self): + return str(self.reseni) diff --git a/soustredeni/admin.py b/soustredeni/admin.py index 11cb8d1d..091f9c59 100644 --- a/soustredeni/admin.py +++ b/soustredeni/admin.py @@ -6,38 +6,38 @@ from seminar.models import soustredeni as m class SoustredeniUcastniciInline(admin.TabularInline): - model = m.Soustredeni_Ucastnici - extra = 1 - fields = ['resitel','poznamka'] - autocomplete_fields = ['resitel'] - ordering = ['resitel__osoba__jmeno', 'resitel__osoba__prijmeni'] - formfield_overrides = { - models.TextField: {'widget': widgets.TextInput} - } + model = m.Soustredeni_Ucastnici + extra = 1 + fields = ['resitel','poznamka'] + autocomplete_fields = ['resitel'] + ordering = ['resitel__osoba__jmeno', 'resitel__osoba__prijmeni'] + formfield_overrides = { + models.TextField: {'widget': widgets.TextInput} + } - def get_queryset(self,request): - qs = super().get_queryset(request) - return qs.select_related('resitel','soustredeni') + def get_queryset(self,request): + qs = super().get_queryset(request) + return qs.select_related('resitel','soustredeni') class SoustredeniOrganizatoriInline(admin.TabularInline): - model = m.Soustredeni.organizatori.through - extra = 1 - fields = ['organizator','poznamka'] - autocomplete_fields = ['organizator'] - ordering = ['organizator__osoba__jmeno','organizator__prijmeni'] - formfield_overrides = { - models.TextField: {'widget': widgets.TextInput} - } + model = m.Soustredeni.organizatori.through + extra = 1 + fields = ['organizator','poznamka'] + autocomplete_fields = ['organizator'] + ordering = ['organizator__osoba__jmeno','organizator__prijmeni'] + formfield_overrides = { + models.TextField: {'widget': widgets.TextInput} + } - def get_queryset(self,request): - qs = super().get_queryset(request) - return qs.select_related('organizator', 'soustredeni') + def get_queryset(self,request): + qs = super().get_queryset(request) + return qs.select_related('organizator', 'soustredeni') @admin.register(m.Soustredeni) class SoustredeniAdmin(admin.ModelAdmin): - model = m.Soustredeni - inline_type = 'tabular' - inlines = [SoustredeniUcastniciInline, SoustredeniOrganizatoriInline] + model = m.Soustredeni + inline_type = 'tabular' + inlines = [SoustredeniUcastniciInline, SoustredeniOrganizatoriInline] diff --git a/treenode/admin.py b/treenode/admin.py index d2ff4409..92c85cd5 100644 --- a/treenode/admin.py +++ b/treenode/admin.py @@ -9,80 +9,80 @@ import seminar.models as m @admin.register(m.TreeNode) class TreeNodeAdmin(PolymorphicParentModelAdmin): - base_model = m.TreeNode - child_models = [ - m.RocnikNode, - m.CisloNode, - m.MezicisloNode, - m.TemaVCisleNode, - m.UlohaZadaniNode, - m.PohadkaNode, - m.UlohaVzorakNode, - m.TextNode, - m.CastNode, - m.OrgTextNode, - ] - - actions = ['aktualizuj_nazvy'] - - # XXX: nejspíš je to totální DB HOG, nechcete to použít moc často. - def aktualizuj_nazvy(self, request, queryset): - newqs = queryset.get_real_instances() - for tn in newqs: - tn.aktualizuj_nazev() - tn.save() - self.message_user(request, "Názvy aktualizovány.") - aktualizuj_nazvy.short_description = "Aktualizuj vybraným TreeNodům názvy" + base_model = m.TreeNode + child_models = [ + m.RocnikNode, + m.CisloNode, + m.MezicisloNode, + m.TemaVCisleNode, + m.UlohaZadaniNode, + m.PohadkaNode, + m.UlohaVzorakNode, + m.TextNode, + m.CastNode, + m.OrgTextNode, + ] + + actions = ['aktualizuj_nazvy'] + + # XXX: nejspíš je to totální DB HOG, nechcete to použít moc často. + def aktualizuj_nazvy(self, request, queryset): + newqs = queryset.get_real_instances() + for tn in newqs: + tn.aktualizuj_nazev() + tn.save() + self.message_user(request, "Názvy aktualizovány.") + aktualizuj_nazvy.short_description = "Aktualizuj vybraným TreeNodům názvy" @admin.register(m.RocnikNode) class RocnikNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.RocnikNode - show_in_index = True + base_model = m.RocnikNode + show_in_index = True @admin.register(m.CisloNode) class CisloNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.CisloNode - show_in_index = True + base_model = m.CisloNode + show_in_index = True @admin.register(m.MezicisloNode) class MezicisloNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.MezicisloNode - show_in_index = True + base_model = m.MezicisloNode + show_in_index = True @admin.register(m.TemaVCisleNode) class TemaVCisleNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.TemaVCisleNode - show_in_index = True + base_model = m.TemaVCisleNode + show_in_index = True @admin.register(m.UlohaZadaniNode) class UlohaZadaniNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.UlohaZadaniNode - show_in_index = True + base_model = m.UlohaZadaniNode + show_in_index = True @admin.register(m.PohadkaNode) class PohadkaNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.PohadkaNode - show_in_index = True + base_model = m.PohadkaNode + show_in_index = True @admin.register(m.UlohaVzorakNode) class UlohaVzorakNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.UlohaVzorakNode - show_in_index = True + base_model = m.UlohaVzorakNode + show_in_index = True @admin.register(m.TextNode) class TextNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.TextNode - show_in_index = True + base_model = m.TextNode + show_in_index = True @admin.register(m.CastNode) class TextNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.CastNode - show_in_index = True - fields = ('nadpis',) + base_model = m.CastNode + show_in_index = True + fields = ('nadpis',) @admin.register(m.OrgTextNode) class TextNodeAdmin(PolymorphicChildModelAdmin): - base_model = m.OrgTextNode - show_in_index = True + base_model = m.OrgTextNode + show_in_index = True diff --git a/treenode/permissions.py b/treenode/permissions.py index 5503832f..bc5c68a8 100644 --- a/treenode/permissions.py +++ b/treenode/permissions.py @@ -2,6 +2,6 @@ from rest_framework.permissions import BasePermission class AllowWrite(BasePermission): - def has_permission(self, request, view): - return request.user.has_perm('auth.org') + def has_permission(self, request, view): + return request.user.has_perm('auth.org') diff --git a/various/autentizace/utils.py b/various/autentizace/utils.py index 2341fbdd..d8bea060 100644 --- a/various/autentizace/utils.py +++ b/various/autentizace/utils.py @@ -6,16 +6,16 @@ from django.utils.http import urlsafe_base64_encode def posli_reset_hesla(u, request=None): - uid = urlsafe_base64_encode(force_bytes(u.pk)) - token = PasswordResetTokenGenerator().make_token(u) - url = "https://%s%s" % ( - str(get_current_site(request)), - str(reverse_lazy("reset_password_confirm", args=[uid, token])) - ) + uid = urlsafe_base64_encode(force_bytes(u.pk)) + token = PasswordResetTokenGenerator().make_token(u) + url = "https://%s%s" % ( + str(get_current_site(request)), + str(reverse_lazy("reset_password_confirm", args=[uid, token])) + ) - u.email_user( - subject="Vítej mezi řešiteli M&M!", - message="""Milý řešiteli, milá řešitelko, + u.email_user( + subject="Vítej mezi řešiteli M&M!", + message="""Milý řešiteli, milá řešitelko, tvůj e-mail byl právě zaregistrován na mam.matfyz.cz. Heslo si prosím nastav na: %s @@ -26,6 +26,6 @@ Organizátoři M&M Tento e-mail byl vygenerován automaticky, chceš-li nás kontaktovat, napiš nám na adresu mam@matfyz.cz. """ % url, - # TODO: templates/autentizace a django/contrib/auth/forms.py říkají, jak na to lépe - from_email="registrace@mam.mff.cuni.cz", # FIXME: Chceme to mít radši tady, nebo v nastavení? - ) \ No newline at end of file + # TODO: templates/autentizace a django/contrib/auth/forms.py říkají, jak na to lépe + from_email="registrace@mam.mff.cuni.cz", # FIXME: Chceme to mít radši tady, nebo v nastavení? + ) \ No newline at end of file diff --git a/various/log_filters.py b/various/log_filters.py index f20e032c..f037dcde 100644 --- a/various/log_filters.py +++ b/various/log_filters.py @@ -2,10 +2,10 @@ from logging import Filter, INFO from django.urls import reverse class Http404AsInfoFilter(Filter): - def filter(self, record): - if record.name == 'django.request' and record.status_code == 404: - record.levelno = INFO - return 1 # Keep the log record + def filter(self, record): + if record.name == 'django.request' and record.status_code == 404: + record.levelno = INFO + return 1 # Keep the log record class StripSensitiveFormDataFilter(Filter): def filter(self, record): From 4a0e8e61be8cdc529a5eb2e76faf990a56d41de4 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Thu, 1 Dec 2022 13:07:09 +0100 Subject: [PATCH 078/515] =?UTF-8?q?Druh=C3=A1=20v=C3=A1rka=20zarovn=C3=A1n?= =?UTF-8?q?=C3=AD=20tabul=C3=A1tory?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 2 +- seminar/testutils.py | 18 +++++++++--------- seminar/views/views_all.py | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 33e083eb..838c7dba 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -12,7 +12,7 @@ from .helpers import LoginRequiredAjaxMixin class SkolaAutocomplete(autocomplete.Select2QuerySetView): """ View k :mod:`dal.autocomplete` pro vyhledávání škol hlavně při registraci. """ def get_queryset(self): - # Don't forget to filter out results depending on the visitor ! + # Don't forget to filter out results depending on the visitor ! qs = m.Skola.objects.all() if self.q: words = self.q.split(' ') #TODO re split podle bileho znaku diff --git a/seminar/testutils.py b/seminar/testutils.py index a13e82c8..7076d5f0 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -474,15 +474,15 @@ def get_text(): def gen_dlouhe_tema(rnd, organizatori, rocnik, nazev, obor, kod): tema = Tema.objects.create( - nazev=nazev, - stav=Problem.STAV_ZADANY, - zamereni="M", - autor=rnd.choice(organizatori), - garant=rnd.choice(organizatori), - kod=str(kod), - tema_typ=rnd.choice(Tema.TEMA_CHOICES)[0], - rocnik=rocnik, - abstrakt = lorem.paragraph() + nazev=nazev, + stav=Problem.STAV_ZADANY, + zamereni="M", + autor=rnd.choice(organizatori), + garant=rnd.choice(organizatori), + kod=str(kod), + tema_typ=rnd.choice(Tema.TEMA_CHOICES)[0], + rocnik=rocnik, + abstrakt = lorem.paragraph() ) # Generování struktury k tématu diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index c5631430..3f2cdf01 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -686,7 +686,7 @@ def formularOKView(request, text=''): ] context = { 'odkazy': odkazy, - 'text': text, + 'text': text, } return render(request, template_name, context) From 5178d95a44c89a73ea20905da793afd8d0fb144c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 4 Dec 2022 19:58:34 +0100 Subject: [PATCH 079/515] =?UTF-8?q?add:=20title=20u=20obr=C3=A1zkov=C3=BDc?= =?UTF-8?q?h=20odkaz=C5=AF=20v=20detailu=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 9f6d31ac..207e2976 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -109,14 +109,14 @@ $(document).ready(function(){ {{ subform.body }} {{ subform.deadline_body }} {{ subform.feedback }} - Smazat + Smazat {% endfor %} - Přidat hodnocení
    + Přidat hodnocení
    @@ -125,7 +125,7 @@ $(document).ready(function(){ - + From 52904575b070667037507ff7404212bcc17dcbc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 4 Dec 2022 20:14:59 +0100 Subject: [PATCH 080/515] =?UTF-8?q?hotfix:=20opraveno=20zobrazov=C3=A1n?= =?UTF-8?q?=C3=AD=20smazat=20hodnocen=C3=AD=20v=20detailu=20=C5=99e=C5=A1e?= =?UTF-8?q?n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 7 +++++++ odevzdavatko/templates/odevzdavatko/detail.html | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 236072f5..f4d8c0f8 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -425,6 +425,13 @@ textarea.feedback { margin: 5px; } +/* td obsahující křížek v detailu řešení se nesmí smrštit na 0 */ +/* FIXME až bude firefox příčetný, nahradit td:has(.smazat_hodnoceni) */ +.has_smazat_hodnoceni { + min-width: 20px; + padding: 3px; +} + /* titulni stranka */ diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 207e2976..a3f986d5 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -109,7 +109,7 @@ $(document).ready(function(){ {{ subform.body }} {{ subform.deadline_body }} {{ subform.feedback }} - Smazat + Smazat {% endfor %} @@ -125,7 +125,7 @@ $(document).ready(function(){ {{ form.empty_form.body }} {{ form.empty_form.deadline_body }} {{ form.empty_form.feedback }} - Smazat + Smazat From baf08c4f0484c220ea3f6fc23b7ed14577cd8613 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Dec 2022 20:15:31 +0100 Subject: [PATCH 081/515] =?UTF-8?q?hotfix:=20n=C3=A1zev=20u=20korekturovan?= =?UTF-8?q?=C3=A9ho=20pdf=20mohl=20b=C3=BDt=20pr=C3=A1zdn=C3=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0019_auto_20221205_2014.py | 18 ++++++++++++++++++ korektury/models.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 korektury/migrations/0019_auto_20221205_2014.py diff --git a/korektury/migrations/0019_auto_20221205_2014.py b/korektury/migrations/0019_auto_20221205_2014.py new file mode 100644 index 00000000..6860e626 --- /dev/null +++ b/korektury/migrations/0019_auto_20221205_2014.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2022-12-05 19:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('korektury', '0018_korekturovanepdf_poslat_mail'), + ] + + operations = [ + migrations.AlterField( + model_name='korekturovanepdf', + name='nazev', + field=models.CharField(help_text='Název (např. 22.1 verze 4) korekturovaného PDF', max_length=50, verbose_name='název PDF'), + ), + ] diff --git a/korektury/models.py b/korektury/models.py index 34caba9a..ac82c14e 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -55,7 +55,7 @@ class KorekturovanePDF(models.Model): cas = models.DateTimeField(u'čas vložení PDF',default=timezone.now,help_text = 'Čas vložení PDF') - nazev = models.CharField(u'název PDF',blank = True,max_length=50, help_text='Název (např. 22.1 verze 4) korekturovaného PDF') + nazev = models.CharField(u'název PDF',blank = False,max_length=50, help_text='Název (např. 22.1 verze 4) korekturovaného PDF') komentar = models.TextField(u'komentář k PDF',blank = True, help_text='Komentář ke korekturovanému PDF (např. na co se zaměřit)') From 1b521049af6c8d98770da2508fe54f5c0f2b0477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Dec 2022 20:53:22 +0100 Subject: [PATCH 082/515] =?UTF-8?q?hotfix:=20tabulka=20od.=20=C5=99e=C5=A1?= =?UTF-8?q?en=C3=AD=20na=20celou=20obrazovku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 7 +++++++ odevzdavatko/templates/odevzdavatko/tabulka.html | 2 ++ 2 files changed, 9 insertions(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index f4d8c0f8..0eef6964 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1216,6 +1216,13 @@ div.gdpr { } /* tabulka odevzdaných a došlých řešení */ + +/* Roztáhne obsah z containeru na celou šířku obrazovky: */ +.full_width { + width: 100vw; + margin-left: calc(-50vw + 485px); +} + .dosla_reseni tr th, .dosla_reseni tr td { padding: 1px 10px 1px 10px; border-collapse: collapse; diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 419b4473..6d1232d2 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -4,6 +4,7 @@ {% block content %} +
    {{ filtr.resitele }} {{ filtr.problemy }} @@ -64,4 +65,5 @@ Do data (včetně): {{ filtr.reseni_do }} location.assign(redirect); } +
    {% endblock %} From 2e06960f51406d7e658f6264e0e731aef1135066 Mon Sep 17 00:00:00 2001 From: Jonas Havelka Date: Tue, 6 Dec 2022 00:16:40 +0100 Subject: [PATCH 083/515] =?UTF-8?q?To=C5=BE=20jsme=20to=20upravili?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/vyvoj.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 256f5eec..0d23972a 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -7,7 +7,7 @@ vlastních úpravách nezávisle na ostatních. Potřebné vybavení ------- -Tento soupis cílí na nějakého typického vývojáře webu – Linuxáka. Jistě je +Tento soupis cílí na Linuxáky. Jistě je spousta dalších možností, které zde nejsou postihnuty – poraď se s webaři, pokud si nejsi jistý. (Speciálně lze nějak vyvíjet na Windows, leč lze často narazit na odlišné chování od Linuxu.) @@ -27,7 +27,7 @@ Nutné - Ideálně ve verzi 3.9 (to je to, co je aktuálně (2022) na Gimlim) - Včetně pip-u (na Ubuntu balíček ``python3-pip``), venvu (``python3-venv``) a knihoven pro kompilaci Cčkových rozšíření (``python3-dev``) -- Knihovna pro práci s PostgreSQL (``libpq-dev``) +- Knihovna pro práci s PostgreSQL (``libpq-dev``, protože jsou potřeba všechny db backendy) - Webový prohlížeč - \*NIXový shell (typicky ``bash``) From 0e99cf286f6b1d3a10bee10d9b59d68f99e94581 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 6 Dec 2022 01:02:38 +0100 Subject: [PATCH 084/515] =?UTF-8?q?fix:=20tohle=20p=C5=99ed=C4=9Bl=C3=A1n?= =?UTF-8?q?=C3=AD=20mezer=20na=20taby=20vypadalo=20podez=C5=99ele,=20tak?= =?UTF-8?q?=20jsem=20to=20upravil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 2 +- treenode/permissions.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 838c7dba..4558ad4a 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -12,7 +12,7 @@ from .helpers import LoginRequiredAjaxMixin class SkolaAutocomplete(autocomplete.Select2QuerySetView): """ View k :mod:`dal.autocomplete` pro vyhledávání škol hlavně při registraci. """ def get_queryset(self): - # Don't forget to filter out results depending on the visitor ! + # Don't forget to filter out results depending on the visitor ! qs = m.Skola.objects.all() if self.q: words = self.q.split(' ') #TODO re split podle bileho znaku diff --git a/treenode/permissions.py b/treenode/permissions.py index bc5c68a8..b4022e19 100644 --- a/treenode/permissions.py +++ b/treenode/permissions.py @@ -2,6 +2,6 @@ from rest_framework.permissions import BasePermission class AllowWrite(BasePermission): - def has_permission(self, request, view): - return request.user.has_perm('auth.org') + def has_permission(self, request, view): + return request.user.has_perm('auth.org') From 9a3f51ca6bfafd76282a709b7473b936a3094716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 14 Dec 2022 22:41:00 +0100 Subject: [PATCH 085/515] =?UTF-8?q?hotfix:=20tabulka=20do=C5=A1l=C3=BDch?= =?UTF-8?q?=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 6c232172..1e27d4f1 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -102,16 +102,21 @@ class TabulkaOdevzdanychReseniView(ListView): ) #self.problemy = list(filter(lambda problem: problem.rocnik() == self.aktualni_rocnik, self.problemy)) # DB HOG? # FIXME: některé problémy nemají ročník.... # NOTE: Protože řešení odkazuje přímo na Problém a QuerySet na Hodnocení je nepolymorfní, musíme porovnávat taky s nepolymorfními Problémy. - self.problemy = self.problemy.non_polymorphic() + self.problemy = self.problemy.non_polymorphic().distinct() self.reseni = self.reseni.filter(cas_doruceni__date__gt=reseni_od, cas_doruceni__date__lte=reseni_do) if jen_neobodovane: self.reseni = self.reseni.filter(hodnoceni__body__isnull=True) + self.jen_neobodovane = jen_neobodovane def get_queryset(self): self.inicializuj_osy_tabulky() qs = super().get_queryset() + if self.jen_neobodovane: + qs = qs.filter(body__isnull=True) qs = qs.filter(problem__in=self.problemy, reseni__in=self.reseni, reseni__resitele__in=self.resitele).select_related('reseni', 'problem').prefetch_related('reseni__resitele__osoba') + # FIXME tohle je ošklivé, na špatném místě a pomalé. Ale moc mě štvalo, že musím hledat správná místa v tabulce. + self.problemy = self.problemy.filter(id__in=qs.values("problem__id")) return qs def get_context_data(self, *args, **kwargs): From 332e5e88d50e941c4f2bd357d18df6457be5ca05 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Fri, 16 Dec 2022 23:44:56 +0100 Subject: [PATCH 086/515] =?UTF-8?q?Korekturov=C3=A1tko:=20ne-irelevantn?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- korektury/templates/korektury/opraf.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/korektury/templates/korektury/opraf.html b/korektury/templates/korektury/opraf.html index c7a97317..d2ae11aa 100644 --- a/korektury/templates/korektury/opraf.html +++ b/korektury/templates/korektury/opraf.html @@ -146,7 +146,7 @@ {% endif %} {% if o.status != 'neni_chyba' %} - {% endif %} From 4378c05e3e08be18c7e390e6385ce050ea676044 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Fri, 16 Dec 2022 23:51:41 +0100 Subject: [PATCH 087/515] =?UTF-8?q?Korekturov=C3=A1tko:=20Zru=C5=A1en?= =?UTF-8?q?=C3=AD=20irelevance=20i=20z=20n=C3=A1pov=C4=9Bdy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/flat.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/flat.json b/data/flat.json index 9dba5402..75a275ad 100644 --- a/data/flat.json +++ b/data/flat.json @@ -181,7 +181,7 @@ }, { "fields": { - "content": "
    \r\n

    Nápověda ke korekturovátku

    \r\n\r\n

    Korekturovátko slouží k přidávání korektur do PDF souborů. Umožňuje přidávat a komentovat korektury a označovat je jako k zanesení, zanesené nebo irelevantní. Rovněž umožňuje o PDF říci, že jsou právě zanášeny korektury nebo že je zastaralé.

    \r\n\r\n

    Použití

    \r\n\r\n

    Kliknu do PDF tam, kam chci zadat korekturu, napíši text a kliknu na Oprav! (nebo Ctrl-Enter). Korektura se zobrazí na pravé straně červeně. Pokud chci korekturu okomentovat, kliknu na ikonu , napíši komentář a kliknu na Oprav! (nebo Ctrl-Enter). Komentář se zobrazí pod původní korekturou.

    \r\n\r\n

    Tlačítka u korektury

    \r\n\r\n
      \r\n\t
    • – smazat korekturu
    • \r\n\t
    • – označt koreturu jako zanesenou
    • \r\n\t
    • – označit korekturu jako irelevantní (není to chyba, nebude zaneseno)
    • \r\n\t
    • – označt koreturu jako připravenou k zanesení
    • \r\n\t
    • – upravit text korektury
    • \r\n\t
    • – okomentovat korekturu
    • \r\n\t
    • – srolovat korekturu
    • \r\n
    \r\n\r\n

    Stavy

    \r\n\r\n

    Korektura

    \r\n\r\n
      \r\n\t
    • K vyřešení (červená) – bug report či návrh úpravy, probíhá diskuze, zatím nerozhodnuto
    • \r\n\t
    • Zanesená (modrá) – zanesená v TeXu
    • \r\n\t
    • Irelevantní (šedá) – není to chyba, nebude zanesena
    • \r\n\t
    • K zanesení (zelená) – rozhodnuto, čeká na zanesení do TeXu
    • \r\n
    \r\n\r\n

    PDF

    \r\n\r\n
      \r\n\t
    • Přidávání – probíhá přidávání korektur
    • \r\n\t
    • Zanášení (žluté pozadí) – probíhá zanášení korektur do TeXu
    • \r\n\t
    • Zastaralé (červené pozadí) – PDF je zastaralé, nepřidávat nové korektury
    • \r\n
    \r\n
    ", + "content": "
    \r\n

    Nápověda ke korekturovátku

    \r\n\r\n

    Korekturovátko slouží k přidávání korektur do PDF souborů. Umožňuje přidávat a komentovat korektury a označovat je jako k zanesení, zanesené nebo že se nebude text měnit. Rovněž umožňuje o PDF říci, že jsou právě zanášeny korektury nebo že je zastaralé.

    \r\n\r\n

    Použití

    \r\n\r\n

    Kliknu do PDF tam, kam chci zadat korekturu, napíši text a kliknu na Oprav! (nebo Ctrl-Enter). Korektura se zobrazí na pravé straně červeně. Pokud chci korekturu okomentovat, kliknu na ikonu , napíši komentář a kliknu na Oprav! (nebo Ctrl-Enter). Komentář se zobrazí pod původní korekturou.

    \r\n\r\n

    Tlačítka u korektury

    \r\n\r\n
      \r\n\t
    • – smazat korekturu
    • \r\n\t
    • – označt koreturu jako zanesenou
    • \r\n\t
    • – označit, že se text nemá měnit (není to chyba)
    • \r\n\t
    • – označt koreturu jako připravenou k zanesení
    • \r\n\t
    • – upravit text korektury
    • \r\n\t
    • – okomentovat korekturu
    • \r\n\t
    • – srolovat korekturu
    • \r\n
    \r\n\r\n

    Stavy

    \r\n\r\n

    Korektura

    \r\n\r\n
      \r\n\t
    • K vyřešení (červená) – bug report či návrh úpravy, probíhá diskuze, zatím nerozhodnuto
    • \r\n\t
    • Zanesená (modrá) – zanesená v TeXu
    • \r\n\t
    • Irelevantní (šedá) – není to chyba, nebude zanesena
    • \r\n\t
    • K zanesení (zelená) – rozhodnuto, čeká na zanesení do TeXu
    • \r\n
    \r\n\r\n

    PDF

    \r\n\r\n
      \r\n\t
    • Přidávání – probíhá přidávání korektur
    • \r\n\t
    • Zanášení (žluté pozadí) – probíhá zanášení korektur do TeXu
    • \r\n\t
    • Zastaralé (červené pozadí) – PDF je zastaralé, nepřidávat nové korektury
    • \r\n
    \r\n
    ", "enable_comments": false, "registration_required": false, "sites": [ From c2ad4c560d5b304431ccb18249685653d85c76ce Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sat, 17 Dec 2022 00:11:00 +0100 Subject: [PATCH 088/515] =?UTF-8?q?sync=5Fprod=5Fflatpages=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/flat.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/flat.json b/data/flat.json index 75a275ad..0bb3b175 100644 --- a/data/flat.json +++ b/data/flat.json @@ -16,7 +16,7 @@ }, { "fields": { - "content": "

    Co je M&M?

    \r\n\r\n

    M&M je mezioborový korespondenční seminář pro středoškoláky

    \r\n\r\n

    Ptáš se, co že je to ten korespondenční seminář? Je to jednoduché, zamysli se nad zadanou úlohou či problémem, odevzdej řešení, my ti jej opravíme a pošleme zpět. Nabízíme témata z různých oblastí matematiky, fyziky, informatiky i dalších oborů, takže si u nás určitě najdeš to svoje. Při řešení si můžeš vyzkoušet, jak vypadá vědecká práce, a mnoho zajímavého se naučit. Podívej se na tipy v sekci Jak řešit a pusť se do toho! Můžeš se připojit kdykoliv během roku.

    \r\n\r\n

    M&M jsou témata

    \r\n\r\n

    Jádro M&M tvoří takzvaná témata, tedy texty doplněné o úlohy a náměty vyzývající k přemýšlení a experimentování. Přijímáme i originální přístup k problémům, takže můžeš například vyřešit fyzikální problém naprogramováním simulace. V minulých letech řešitelé sestavovali spektrometry, pomocí laserových ukazovátek měřili index lomu různých látek, zkoumali křivky popisující vývoj počtu cestujících v tramvaji v průběhu cesty nebo programovali strategie v jednoduché hře a pak je nechávali soupeřit v turnajích. Podívej se, jaká témata nabízíme právě teď.

    \r\n\r\n

    M&M je časopis

    \r\n\r\n

    Zadání a texty od organizátorů vydáváme formou časopisu. Kromě toho zde rovněž otiskujeme řešení a příspěvky našich řešitelů k tématům, články shrnující výsledky konfer – projektů, kterými se zabývali na soustředění, i výsledky jejich vlastního výzkumu. Díky tomu jsme si například mohli přečíst o Lichtenbergových obrazcích či gravitaci v placatém světě. Během ročníku obvykle vyjde šest čísel časopisu, prohlédnout si je můžeš v Archivu.

    \r\n\r\n

    M&M je soutěž

    \r\n\r\n

    Ke všem příspěvkům posíláme řešitelům zpětnou vazbu a udělujeme za ně body. Vítězové semináře se mohou těšit na zajímavé knihy a deskové hry, autora nejlepšího otištěného článku každoročně odměňujeme dortem. Úspěšným řešitelům jsou navíc prominuty přijímací zkoušky na MFF UK.

    \r\n\r\n

    M&M jsou soustředění

    \r\n\r\n

    Aktivní řešitelé mají možnost s námi za odměnu jet dvakrát do roka na soustředění. Pojeď taky! Budeš mít možnost strávit týden v přírodě plný odborného programu a nejrůznější zábavy s partou kamarádů. Čekají tě malé vědecké projekty, přednášky, workshopy, šifrovačka, výlet a mnoho dalšího. Chceš-li se dozvědět víc, přečti si stránku Soustředění nebo se podívej na fotky.

    \r\n\r\n

    M&M jsme my

    \r\n\r\n

    Spolu s řešiteli jsme tu i my, organizátoři. Většina z nás jsou studenti Matfyzu, tedy Matematicko-fyzikální fakulty Univerzity Karlovy. Společně se snažíme předávat dál radost z poznávání zajímavých zákoutí matematiky, fyziky a informatiky a budovat komunitu aktivních lidí, kteří se budou rádi scházet, ať už na soustředěních, víkendovkách či jiných akcích. Chceš nás poznat blíž? Podívej se na stránku Organizátoři nebo rovnou něco vyřeš a pojeď s námi na soustředění!

    \r\n\r\n

    Zaujali jsme tě? Zapoj se! Přečti si jak řešit a podívej se na aktuální zadání. Už se těšíme na tvé příspěvky!

    ", + "content": "

    Co je M&M?

    \r\n\r\n

    M&M je mezioborový korespondenční seminář pro středoškoláky

    \r\n\r\n

    Ptáš se, co že je to ten korespondenční seminář? Je to jednoduché, zamysli se nad zadanou úlohou či problémem, odevzdej řešení, my ti jej opravíme a pošleme zpět. Nabízíme témata z různých oblastí matematiky, fyziky, informatiky i dalších oborů, takže si u nás určitě najdeš to svoje. Při řešení si můžeš vyzkoušet, jak vypadá vědecká práce, a mnoho zajímavého se naučit. Podívej se na tipy v sekci Jak řešit a pusť se do toho! Můžeš se připojit kdykoliv během roku.

    \r\n\r\n

    M&M jsou témata

    \r\n\r\n

    Jádro M&M tvoří takzvaná témata, tedy texty doplněné o úlohy a náměty vyzývající k přemýšlení a experimentování. Přijímáme i originální přístup k problémům, takže můžeš například vyřešit fyzikální problém naprogramováním simulace. V minulých letech řešitelé sestavovali spektrometry, pomocí laserových ukazovátek měřili index lomu různých látek, zkoumali křivky popisující vývoj počtu cestujících v tramvaji v průběhu cesty nebo programovali strategie v jednoduché hře a pak je nechávali soupeřit v turnajích. Podívej se, jaká témata nabízíme právě teď.

    \r\n\r\n

    M&M je časopis

    \r\n\r\n

    Zadání a texty od organizátorů vydáváme formou časopisu. Kromě toho zde rovněž otiskujeme řešení a příspěvky našich řešitelů k tématům, články shrnující výsledky konfer – projektů, kterými se zabývali na soustředění, i výsledky jejich vlastního výzkumu. Díky tomu jsme si například mohli přečíst o Lichtenbergových obrazcích či gravitaci v placatém světě. Během ročníku obvykle vyjde šest čísel časopisu, prohlédnout si je můžeš v Archivu.

    \r\n\r\n

    M&M je soutěž

    \r\n\r\n

    Ke všem příspěvkům posíláme řešitelům zpětnou vazbu a udělujeme za ně body. Vítězové semináře se mohou těšit na zajímavé knihy a deskové hry, autora nejlepšího otištěného článku každoročně odměňujeme dortem. Úspěšným řešitelům jsou navíc prominuty přijímací zkoušky na MFF UK.

    \r\n\r\n

    M&M jsou soustředění

    \r\n\r\n

    Aktivní řešitelé mají možnost s námi za odměnu jet dvakrát do roka na soustředění. Pojeď taky! Budeš mít možnost strávit týden v přírodě plný odborného programu a nejrůznější zábavy s partou kamarádů. Čekají tě malé vědecké projekty, přednášky, workshopy, šifrovačka, výlet a mnoho dalšího. Chceš-li se dozvědět víc, přečti si stránku Soustředění nebo se podívej na fotky.

    \r\n\r\n

    M&M jsme my

    \r\n\r\n

    Spolu s řešiteli jsme tu i my, organizátoři. Většina z nás jsou studenti Matfyzu, tedy Matematicko-fyzikální fakulty Univerzity Karlovy. Společně se snažíme předávat dál radost z poznávání zajímavých zákoutí matematiky, fyziky a informatiky a budovat komunitu aktivních lidí, kteří se budou rádi scházet, ať už na soustředěních, víkendovkách či jiných akcích. Chceš nás poznat blíž? Podívej se na stránku Organizátoři nebo rovnou něco vyřeš a pojeď s námi na soustředění!

    \r\n\r\n

    Zaujali jsme tě? Zapoj se! Přečti si jak řešit a podívej se na aktuální zadání. Už se těšíme na tvé příspěvky!

    ", "enable_comments": false, "registration_required": false, "sites": [ @@ -91,7 +91,7 @@ }, { "fields": { - "content": "

    Jarní soustředění

    \r\n\r\n

    se uskuteční 2. – 10. dubna 2022.

    ", + "content": "

    Vánoční víkendovka

    \r\n\r\n

    se uskuteční 9. – 11. prosince 2022. Přihlašovat se na ni můžete do 5. prosince pomocí formuláře, ve kterém také naleznete doplňující informace.

    \r\n\r\n

    Jarní soustředění

    \r\n\r\n

    se uskuteční 25. března – 2. dubna 2023. Bližší informace sdělíme přihlášeným účastníkům.

    \r\n\r\n

     

    \r\n\r\n

    Další akce

    \r\n\r\n

    Odkaz na M&M Google kalendář: https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague

    ", "enable_comments": false, "registration_required": false, "sites": [ @@ -166,7 +166,7 @@ }, { "fields": { - "content": "

    Jak řešit

    \r\n\r\n

    V našem semináři simulujeme vědeckou práci. Vydáváme časopis, v němž se věnujeme různým tématům z oblasti matematiky, fyziky, informatiky a občas i jiných oborů.

    \r\n\r\n

    Témata

    \r\n\r\n

    Naším cílem je vás prostřednictvím témat seznámit se zajímavými zákoutími matematiky, fyziky a informatiky a inspirovat vás, abyste sami objevovali jejich krásy. Témata většinou obsahují průvodní text od organizátorů. Na něj navazují různé otázky, nad kterými můžeš v průběhu školního roku přemýšlet a bádat. o své výsledky se pak podělíš s námi, my tvou práci ohodnotíme a pošleme ti zpětnou vazbu. Vybrané příspěvky také otiskujeme, takže si je mohou přečíst ostatní řešitelé a reagovat na ně.

    \r\n\r\n

    Každý ročník vypisujeme zhruba čtyři až šest témat. Pokud si mezi nimi nevybereš, můžeš si položit vlastní otázku, přemýšlet, experimentovat a o svých výsledcích nám napsat článek. Nabízíme ti pár tipů, jak jej napsat pěkně a přehledně. Autora nejlepšího otištěného článku každoročně odměňujeme dortem.

    \r\n\r\n

    Otázky u jednotlivých témat jsou dvou druhů. Podle toho se bude lišit i formát tvého řešení, jak je popsáno níže.

    \r\n\r\n

    Úlohy

    \r\n\r\n

    Jak vypadají?

    \r\n\r\n

    V rámci témat jsou zadány uzavřené úlohy. Tyto úlohy bývají trochu těžší než obvyklé školní a jejich řešení často vyžaduje hlubší zamyšlení nebo nějaký trik. k jejich vyřešení by ti však měly stačit středoškolské znalosti a pochopení průvodního textu, který tyto znalosti rozvíjí.

    \r\n\r\n

    Jak na to?

    \r\n\r\n

    Vyřeš úlohu a pošli nám řešení. Nezapomeň na postup! U každé úlohy je uveden počet bodů za správné řešení, přiměřenou část však lze získat i za řešení neúplné. Neboj se proto poslat své úvahy, i když nedojdeš ke zdárnému konci. Částečné řešení je lepší než žádné. Pokud je naopak tvé řešení velmi elegantní, můžeš získat body navíc.

    \r\n\r\n

    Používáš-li v řešení nějaké pojmy, které nebyly v rámci témátka definovány a nepatří mezi běžné středoškolské znalosti, nezapomeň jen krátce definovat.

    \r\n\r\n

    Termín odevzdání

    \r\n\r\n

    Odevzdávání úloh je omezené termínem odeslání, poté je zveřejněno vzorové řešení. Tím se může stát i tvé pěkně sepsané řešení.

    \r\n\r\n

    Problémy

    \r\n\r\n

    Jak vypadají?

    \r\n\r\n

    Témata poskytují příležitost pro rozsáhlejší zamyšlení a podrobnější rozbor zadaných otázek. Řešení proto obvykle vyžaduje o něco víc prostoru než řešení úlohy. Zároveň je v závislosti na kvalitě štědřeji bodově hodnoceno.

    \r\n\r\n

    Jak na to?

    \r\n\r\n

    Řešením problému může být popis (případně videozáznam) provedeného experimentu a diskuze výsledků, popis teoretického výpočtu či napsaného programu, úvaha založená na dosud známých informacích, souhrn dalších (podle tebe zajímavých a nezodpovězených) otázek z daného okruhu nebo jakýkoliv další přístup, který příspívá k řešení problému. Můžeš navrhnout i vlastní problém týkající se tématu a jeho řešení. Řešení konkrétního problému jdoucí do hloubky je bodově hodnoceno výrazně lépe než souhrn krátce zmiňující kdeco.

    \r\n\r\n

    Řešení problému můžeš sepsat jako článek nebo krátký příspěvek. Napsat článek je trochu náročnější a je tedy lépe bodově hodnocen. Nabízíme ti pár tipů, jak jej pěkně a přehledně napsat. Neboj se však k tématu poslat i méně propracovaný příspěvek, klidně jeden odstavec shrnující tvé myšlenky.

    \r\n\r\n

    Zaslané řešení vedoucí tématu ohodnotí, případně zkoriguje – probere s tebou, co by bylo vhodné vylepšit, doplnit či upřesnit. Na závěr článek publikujeme na webu či dokonce v čísle.

    \r\n\r\n

    Inspiruj se a reaguj!

    \r\n\r\n

    Velmi důležitou vlastností témat je, že můžeš na články ostatních reagovat – rozvíjet je, nebo naopak bořit autorovy představy. Přesně to se děje i při skutečné vědecké práci. Proto se hodí poslat také částečná řešení, postřehy nebo nápady ohledně dalších otázek k tématu, které třeba nezvládneš vyřešit sám. Takovéto příspěvky dávají prostor ostatním a mohou je dál inspirovat a přivést k novým nápadům – ostatní zase svými příspěvky mohou inspirovat či navést k zajímavému nápadu tebe.

    \r\n\r\n

    Termín odevzdání

    \r\n\r\n

    Nad problémy k tématům sice můžeš většinou přemýšlet celý rok až do termínu odevzdání poslední série úloh, ale čím dříve nám článek pošleš, tím dříve na něj ostatní budou moci zareagovat. Zároveň se ti nestane, že ti tvůj nápad někdo vyfoukne.

    \r\n\r\n

    Jak poslat řešení

    \r\n\r\n

    Řešení jednotlivých témat sepiš samostatně, aby si je mohli vedoucí rozdělit. Nezapomeň uvést své jméno a číslo tématu i jednotlivých úloh a problémů. Svá řešení odevzdej elektronicky v odevzdávátku. Textové řešení ve formátu PDF můžeš doplnit libovolnou přílohou, například videem nebo kódem. Pokud bys měl s odevzdáním nějaký problém, tak nám neváhej napsat na mam@matfyz.cz.

    \r\n\r\n

    Termíny odevzdání

    \r\n\r\n

    Každé číslo má dva deadliny pro odevzdání řešení úloh, které jsou v něm otištěné. Pokud pošleš řešení do 1. deadlinu, stihneme ti poslat opravená řešení již s následujícím číslem časopisu, ve kterém se zároveň objeví body, které jsi za toto řešení dostal.

    \r\n\r\n

    Když tedy v prvním čísle zašleš řešení úlohy do 1. deadlinu, pak se body za něj získané objeví ve druhém čísle. Opravené řešení ti přijde e-mailem před vydáním druhého čísla nebo v obálce s druhým číslem.

    \r\n\r\n

    Tvá řešení se snažíme opravit co nejdříve a rovnou ti je poslat opravená e-mailem. Pokud ti přijde opravené řešení před 2. deadlinem, máš možnost si jej ještě vylepšit a poslat nám další verzi. Čím dříve své řešení pošleš, tím větší je šance, že jej stihneme opravit s předstihem. Nemůžeme ti to však zcela slíbit.

    \r\n\r\n

    Úlohy poslané mezi 1. a 2. deadlinem pravděpodobně do následujícího čísla opravit nestihneme, výjimečně se to ale stát může. 2. deadline je finální a úlohy, které přijdou po něm, už nebudou hodnoceny.

    \r\n\r\n

    Příklad: Pokud tedy úlohu zadanou v prvním čísle pošleš mezi 1. a 2. deadlinem, opravené řešení a body typicky dostaneš až se třetím číslem.

    \r\n\r\n

    Články

    \r\n\r\n

    Pokud se rozhodneš poslat řešení formou článku, budeme rádi, pokud to uděláš co nejdřív. Může se totiž stát, že bude potřeba abychom jej před vydáním společně ještě trochu upravili. Na to se hodí, abychom měli my i ty dostatek času. Vždy záleží na konkrétním případu, ale pokud pošleš článek až po 1. deadlinu, je velmi nepravděpodobné, že by se stihl objevit už v následujícím čísle.

    \r\n\r\n

    Spolupracuj

    \r\n\r\n

    Protože víc hlav víc ví, můžeš na tématech spolupracovat s ostatními řešiteli. i opravdové vědecké práce často publikuje kolektiv autorů. Pokud se na zaslaném řešení podílí n autorů, dostane každý z nich 3b/(n + 2) bodů, kde b je počet bodů, které by řešení získalo, pokud by mělo jednoho autora.

    \r\n\r\n

    Ke spolupráci můžeš využít e-mailové konference. Pokud pošleš e-mail na její adresu, přijde všem vedoucím tématu a řešitelům, kteří se jím také zabývají. Pošleš-li k danému tématu alespoň nějaké řešení, automaticky tě přidáme do příslušné konference. Pokud bys chtěl do konference přidat, i když jsi zatím nic neposlal, neboj se nám ozvat.

    ", + "content": "

    Jak řešit

    \r\n\r\n

    V našem semináři simulujeme vědeckou práci. Vydáváme časopis, v němž se věnujeme různým tématům z oblasti matematiky, fyziky, informatiky a občas i jiných oborů.

    \r\n\r\n

    Témata

    \r\n\r\n

    Naším cílem je vás prostřednictvím témat seznámit se zajímavými zákoutími matematiky, fyziky a informatiky a inspirovat vás, abyste sami objevovali jejich krásy. Témata většinou obsahují průvodní text od organizátorů. Na něj navazují různé otázky, nad kterými můžeš v průběhu školního roku přemýšlet a bádat. o své výsledky se pak podělíš s námi, my tvou práci ohodnotíme a pošleme ti zpětnou vazbu. Vybrané příspěvky také otiskujeme, takže si je mohou přečíst ostatní řešitelé a reagovat na ně.

    \r\n\r\n

    Každý ročník vypisujeme zhruba čtyři až šest témat. Pokud si mezi nimi nevybereš, můžeš si položit vlastní otázku, přemýšlet, experimentovat a o svých výsledcích nám napsat článek. Nabízíme ti pár tipů, jak jej napsat pěkně a přehledně. Autora nejlepšího otištěného článku každoročně odměňujeme dortem.

    \r\n\r\n

    Otázky u jednotlivých témat jsou dvou druhů. Podle toho se bude lišit i formát tvého řešení, jak je popsáno níže.

    \r\n\r\n

    Úlohy

    \r\n\r\n

    Jak vypadají?

    \r\n\r\n

    V rámci témat jsou zadány uzavřené úlohy. Tyto úlohy bývají trochu těžší než obvyklé školní a jejich řešení často vyžaduje hlubší zamyšlení nebo nějaký trik. k jejich vyřešení by ti však měly stačit středoškolské znalosti a pochopení průvodního textu, který tyto znalosti rozvíjí.

    \r\n\r\n

    Jak na to?

    \r\n\r\n

    Vyřeš úlohu a pošli nám řešení. Nezapomeň na postup! U každé úlohy je uveden počet bodů za správné řešení, přiměřenou část však lze získat i za řešení neúplné. Neboj se proto poslat své úvahy, i když nedojdeš ke zdárnému konci. Částečné řešení je lepší než žádné. Pokud je naopak tvé řešení velmi elegantní, můžeš získat body navíc.

    \r\n\r\n

    Používáš-li v řešení nějaké pojmy, které nebyly v rámci témátka definovány a nepatří mezi běžné středoškolské znalosti, nezapomeň jen krátce definovat.

    \r\n\r\n

    Termín odevzdání

    \r\n\r\n

    Odevzdávání úloh je omezené termínem odeslání, poté je zveřejněno vzorové řešení. Tím se může stát i tvé pěkně sepsané řešení.

    \r\n\r\n

    Problémy

    \r\n\r\n

    Jak vypadají?

    \r\n\r\n

    Témata poskytují příležitost pro rozsáhlejší zamyšlení a podrobnější rozbor zadaných otázek. Řešení proto obvykle vyžaduje o něco víc prostoru než řešení úlohy. Zároveň je v závislosti na kvalitě štědřeji bodově hodnoceno.

    \r\n\r\n

    Jak na to?

    \r\n\r\n

    Řešením problému může být popis (případně videozáznam) provedeného experimentu a diskuze výsledků, popis teoretického výpočtu či napsaného programu, úvaha založená na dosud známých informacích, souhrn dalších (podle tebe zajímavých a nezodpovězených) otázek z daného okruhu nebo jakýkoliv další přístup, který příspívá k řešení problému. Můžeš navrhnout i vlastní problém týkající se tématu a jeho řešení. Řešení konkrétního problému jdoucí do hloubky je bodově hodnoceno výrazně lépe než souhrn krátce zmiňující kdeco.

    \r\n\r\n

    Řešení problému můžeš sepsat jako článek nebo krátký příspěvek. Napsat článek je trochu náročnější a je tedy lépe bodově hodnocen. Nabízíme ti pár tipů, jak jej pěkně a přehledně napsat. Neboj se však k tématu poslat i méně propracovaný příspěvek, klidně jeden odstavec shrnující tvé myšlenky.

    \r\n\r\n

    Zaslané řešení vedoucí tématu ohodnotí, případně zkoriguje – probere s tebou, co by bylo vhodné vylepšit, doplnit či upřesnit. Na závěr článek publikujeme na webu či dokonce v čísle.

    \r\n\r\n

    Inspiruj se a reaguj!

    \r\n\r\n

    Velmi důležitou vlastností témat je, že můžeš na články ostatních reagovat – rozvíjet je, nebo naopak bořit autorovy představy. Přesně to se děje i při skutečné vědecké práci. Proto se hodí poslat také částečná řešení, postřehy nebo nápady ohledně dalších otázek k tématu, které třeba nezvládneš vyřešit sám. Takovéto příspěvky dávají prostor ostatním a mohou je dál inspirovat a přivést k novým nápadům – ostatní zase svými příspěvky mohou inspirovat či navést k zajímavému nápadu tebe.

    \r\n\r\n

    Termín odevzdání

    \r\n\r\n

    Nad problémy k tématům sice můžeš většinou přemýšlet celý rok až do termínu odevzdání poslední série úloh, ale čím dříve nám článek pošleš, tím dříve na něj ostatní budou moci zareagovat. Zároveň se ti nestane, že ti tvůj nápad někdo vyfoukne.

    \r\n\r\n

    Jak poslat řešení

    \r\n\r\n

    Řešení jednotlivých témat sepiš samostatně, aby si je mohli vedoucí rozdělit. Nezapomeň uvést své jméno a číslo tématu i jednotlivých úloh a problémů. Svá řešení odevzdej elektronicky v odevzdávátku. Textové řešení ve formátu PDF můžeš doplnit libovolnou přílohou, například videem nebo kódem. Pokud bys měl s odevzdáním nějaký problém, tak nám neváhej napsat na mam@matfyz.cz.

    \r\n\r\n

    Termíny odevzdání

    \r\n\r\n

    Každé číslo má dva deadliny pro odevzdání řešení úloh, které jsou v něm otištěné. Pokud pošleš řešení do 1. deadlinu, stihneme ti poslat opravená řešení již s následujícím číslem časopisu, ve kterém se zároveň objeví body, které jsi za toto řešení dostal.

    \r\n\r\n

    Když tedy v prvním čísle zašleš řešení úlohy do 1. deadlinu, pak se body za něj získané objeví ve druhém čísle. Opravené řešení ti přijde e-mailem před vydáním druhého čísla nebo v obálce s druhým číslem.

    \r\n\r\n

    Tvá řešení se snažíme opravit co nejdříve a rovnou ti je poslat opravená e-mailem. Pokud ti přijde opravené řešení před 2. deadlinem, máš možnost si jej ještě vylepšit a poslat nám další verzi. Čím dříve své řešení pošleš, tím větší je šance, že jej stihneme opravit s předstihem. Nemůžeme ti to však zcela slíbit.

    \r\n\r\n

    Úlohy poslané mezi 1. a 2. deadlinem pravděpodobně do následujícího čísla opravit nestihneme, výjimečně se to ale stát může. 2. deadline je finální a úlohy, které přijdou po něm, už nebudou hodnoceny.

    \r\n\r\n

    Příklad: Pokud tedy úlohu zadanou v prvním čísle pošleš mezi 1. a 2. deadlinem, opravené řešení a body typicky dostaneš až se třetím číslem.

    \r\n\r\n

    Články

    \r\n\r\n

    Pokud se rozhodneš poslat řešení formou článku, budeme rádi, pokud to uděláš co nejdřív. Může se totiž stát, že bude potřeba abychom jej před vydáním společně ještě trochu upravili. Na to se hodí, abychom měli my i ty dostatek času. Vždy záleží na konkrétním případu, ale pokud pošleš článek až po 1. deadlinu, je velmi nepravděpodobné, že by se stihl objevit už v následujícím čísle.

    \r\n\r\n

    Spolupracuj

    \r\n\r\n

    Protože víc hlav víc ví, můžeš na tématech spolupracovat s ostatními řešiteli. i opravdové vědecké práce často publikuje kolektiv autorů. Pokud se na zaslaném řešení podílí n autorů, dostane každý z nich 3b/(n + 2) bodů, kde b je počet bodů, které by řešení získalo, pokud by mělo jednoho autora.

    \r\n\r\n

    Ke komunikaci s ostatními řešiteli i organizátory můžeš využít náš Discord.

    ", "enable_comments": false, "registration_required": false, "sites": [ From 3b6e238323806b309f25cc3fe20767d6043df917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 20:43:05 +0100 Subject: [PATCH 089/515] =?UTF-8?q?Fix:=20lep=C5=A1=C3=AD=20hled=C3=A1n?= =?UTF-8?q?=C3=AD=20podle=20p=C5=99ezd=C3=ADvky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index ab0114b3..10e0bca9 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -56,7 +56,7 @@ class PublicResitelAutocomplete(LoginRequiredAjaxMixin, autocomplete.Select2Quer ).exclude( prezdivka_resitele="" ).filter( - prezdivka_resitele__startswith=self.q + prezdivka_resitele__icontains=self.q ).all() return qs From 485c4180da3178fc3001d5c606f3d563554ace70 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 19 Dec 2022 21:09:15 +0100 Subject: [PATCH 090/515] =?UTF-8?q?make/lib:=20podpora=20pro=20zat=C3=ADm?= =?UTF-8?q?=20neexistuj=C3=ADc=C3=AD=20v=C4=9Btve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (pokud jsem to napsal správně.) --- make/lib.sh | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index 9dc3d6c5..0a5ff4ee 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -6,6 +6,7 @@ VENV_PATH="${VENV_PATH:-env}" BRANCH="${BRANCH:-master}" REPO="${REPO:-git@gitea.ks.matfyz.cz:mam/mamweb.git}" +UPSTREAM_REMOTE='origin' GIMLI='gimli.ms.mff.cuni.cz' GIMLI_LOGIN="mam-web@$GIMLI" # Skutečné cesty, jak je vrátí `realpath` @@ -70,16 +71,26 @@ function safe_checkout_branch { local SCRIPT="$0" git fetch --all + local UPSTREAM_BRANCH + if git rev-parse "$BRANCH@{u}" >/dev/null 2>/dev/null + then + UPSTREAM_BRANCH="$BRANCH@{u}" # Stačí symbolicky. + else + # Tohle je jediná možná záchrana. + UPSTREAM_BRANCH="$UPSTREAM_REMOTE/$BRANCH" + fi + git rev-parse "$UPSTREAM_BRANCH" || die "Vzdálená větev $UPSTREAM_BRANCH neexistuje?" + # Od teď si musíme dát pozor, abychom nezměnili kód, který právě běží. # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. # Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… - if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$BRANCH@{u}":make/lib.sh)" + if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$REMOTE_BRANCH":make/lib.sh)" then echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" exit 1 fi - if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$BRANCH@{u}":"$SCRIPT")" + if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$REMOTE_BRANCH":"$SCRIPT")" then echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" exit 1 From 5690dc297e7cc3a7b1b00276d736b85ff65d670c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 21:15:56 +0100 Subject: [PATCH 091/515] =?UTF-8?q?hotfix:=201b521049=20rozbil=20tabulku?= =?UTF-8?q?=20na=20=C3=BAzk=C3=A9=20obrazovce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 0eef6964..63c5f527 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1222,6 +1222,13 @@ div.gdpr { width: 100vw; margin-left: calc(-50vw + 485px); } +/* Na úzkém displeji nechceme nic dělat. */ +@media(max-width: 860px) { + .full_width{ + margin-left: 0; + width: unset; + } +} .dosla_reseni tr th, .dosla_reseni tr td { padding: 1px 10px 1px 10px; From 58f05724e16107cbf14cbc588d92d15aecc71144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 21:25:37 +0100 Subject: [PATCH 092/515] =?UTF-8?q?hotfix:=20485c4180=20m=C3=A1=20=C5=A1pa?= =?UTF-8?q?tn=C4=9B=20prom=C4=9Bnnou?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- make/lib.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/make/lib.sh b/make/lib.sh index 0a5ff4ee..dd56ef73 100644 --- a/make/lib.sh +++ b/make/lib.sh @@ -85,12 +85,12 @@ function safe_checkout_branch { # Zkontrolujeme, že se nemění tahle knihovna a skript, který běží. # `git rev-parse` dává SHA-1 hashe objektů, vizte manuálovou stránku pro pochopení. # Pozor: tohle porovnává jen verze commitnuté do gitu. Lokální změny udělají něco náhodného… - if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$REMOTE_BRANCH":make/lib.sh)" + if test "$(git rev-parse @:make/lib.sh)" != "$(git rev-parse "$UPSTREAM_BRANCH":make/lib.sh)" then echo >&2 "Změna v make/lib.sh, prosím pullni manuálně" exit 1 fi - if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$REMOTE_BRANCH":"$SCRIPT")" + if test "$(git rev-parse @:"$SCRIPT")" != "$(git rev-parse "$UPSTREAM_BRANCH":"$SCRIPT")" then echo >&2 "Změna v $SCRIPT, prosím pullni manuálně" exit 1 From 9bb0bcf3ca9699af6288f17c7ee239a0ab3351cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 22:51:49 +0100 Subject: [PATCH 093/515] =?UTF-8?q?fix:=20p=C5=99eklep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/static/odevzdavatko/check_for_detail.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/static/odevzdavatko/check_for_detail.js b/odevzdavatko/static/odevzdavatko/check_for_detail.js index 3be7e1e9..b694dc88 100644 --- a/odevzdavatko/static/odevzdavatko/check_for_detail.js +++ b/odevzdavatko/static/odevzdavatko/check_for_detail.js @@ -2,7 +2,7 @@ function zkontroluj_hodnoceni() { const pocet = $('.hodnoceni').length; - if (pocet === 1) { // vydím pouze plusko + if (pocet === 1) { // vidím pouze plusko const vysledek = confirm("Odstranil jsi všechny problémy tohoto řešení. Nepůjde tedy dohledat přes problémy, co řeší, tj. například v došlých řešeních. Přesto odeslat?"); if (!vysledek) { event.preventDefault(); From d14b6bb7996efdc889c1661851fb35e8cebf89b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 23:00:48 +0100 Subject: [PATCH 094/515] sync_prod_flatpages --- data/flat.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/flat.json b/data/flat.json index 0bb3b175..7ee6d671 100644 --- a/data/flat.json +++ b/data/flat.json @@ -91,7 +91,7 @@ }, { "fields": { - "content": "

    Vánoční víkendovka

    \r\n\r\n

    se uskuteční 9. – 11. prosince 2022. Přihlašovat se na ni můžete do 5. prosince pomocí formuláře, ve kterém také naleznete doplňující informace.

    \r\n\r\n

    Jarní soustředění

    \r\n\r\n

    se uskuteční 25. března – 2. dubna 2023. Bližší informace sdělíme přihlášeným účastníkům.

    \r\n\r\n

     

    \r\n\r\n

    Další akce

    \r\n\r\n

    Odkaz na M&M Google kalendář: https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague

    ", + "content": "

    Jarní soustředění

    \r\n\r\n

    se uskuteční 25. března – 2. dubna 2023. Bližší informace sdělíme přihlášeným účastníkům.

    \r\n\r\n

     

    \r\n\r\n

    Další akce

    \r\n\r\n

    Odkaz na M&M Google kalendář: https://calendar.google.com/calendar/embed?src=casopis.mam%40gmail.com&ctz=Europe%2FPrague

    ", "enable_comments": false, "registration_required": false, "sites": [ From abdd2d65dd52a9c92a29056f33334d5619ca0159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 23:04:28 +0100 Subject: [PATCH 095/515] http -> https --- data/flat.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data/flat.json b/data/flat.json index 7ee6d671..e621e266 100644 --- a/data/flat.json +++ b/data/flat.json @@ -121,7 +121,7 @@ }, { "fields": { - "content": "

    Odměny

    \r\n\r\n

    Největší odměnou za řešení M&M je účast na soustředění, kromě toho však každý rok oceňujeme pět nejlepších řešitelů knihou a deskovou hrou dle jejich výběru. Letos můžeš být mezi nimi i ty, stačí pilně řešit!

    \r\n\r\n

    \"\"

    \r\n\r\n

    Tituly

    \r\n\r\n

    Za pilné řešení semináře můžeš postupně získat různé titulyMM. Titul u tvého jména v časopisu značí, jakých úspěchů jsi za celou svoji kariéru v M&M zatím dosáhl/a. Kromě toho se s jeho dosažením vždy pojí nějaká drobná či větší odměna.

    \r\n\r\n
      \r\n\t
    • Bc.MM (20 bodů) – propiska
    • \r\n\t
    • Mgr.MM (50 bodů) – reflexní páska
    • \r\n\t
    • Dr.MM (100 bodů) – hrneček
    • \r\n\t
    • Doc.MM (200 bodů) – deka
    • \r\n\t
    • Prof.MM (500 bodů) – mikina
    • \r\n\t
    • Akad.MM (1000 bodů) – tabule s nápisem Jsi fakt borec podepsaná všemi organizátory
    • \r\n
    \r\n\r\n

    \"\"

    \r\n\r\n

    Přijímací zkoušky na MFF

    \r\n\r\n

    Matematicko-fyzikální fakulta Univerzity Karlovy se rozhodla úspěšným řešitelům našeho korespondenčního semináře odpustit přijímací zkoušky. Konkrétně se to týká těch řešitelů, kteří získají za rok alespoň 100 bodů. Ti od nás dostanou „osvědčení úspěšného řešitele“, které pak mohou předložit fakultě.

    \r\n\r\n

    Dort za článek

    \r\n\r\n

    Autorovi nebo autorům nejlepšího otištěného článku v každém ročníku upečeme lahodný dort.

    \r\n\r\n

     

    \r\n\r\n

    \"\"

    ", + "content": "

    Odměny

    \r\n\r\n

    Největší odměnou za řešení M&M je účast na soustředění, kromě toho však každý rok oceňujeme pět nejlepších řešitelů knihou a deskovou hrou dle jejich výběru. Letos můžeš být mezi nimi i ty, stačí pilně řešit!

    \r\n\r\n

    \"\"

    \r\n\r\n

    Tituly

    \r\n\r\n

    Za pilné řešení semináře můžeš postupně získat různé titulyMM. Titul u tvého jména v časopisu značí, jakých úspěchů jsi za celou svoji kariéru v M&M zatím dosáhl/a. Kromě toho se s jeho dosažením vždy pojí nějaká drobná či větší odměna.

    \r\n\r\n
      \r\n\t
    • Bc.MM (20 bodů) – propiska
    • \r\n\t
    • Mgr.MM (50 bodů) – reflexní páska
    • \r\n\t
    • Dr.MM (100 bodů) – hrneček
    • \r\n\t
    • Doc.MM (200 bodů) – deka
    • \r\n\t
    • Prof.MM (500 bodů) – mikina
    • \r\n\t
    • Akad.MM (1000 bodů) – tabule s nápisem Jsi fakt borec podepsaná všemi organizátory
    • \r\n
    \r\n\r\n

    \"\"

    \r\n\r\n

    Přijímací zkoušky na MFF

    \r\n\r\n

    Matematicko-fyzikální fakulta Univerzity Karlovy se rozhodla úspěšným řešitelům našeho korespondenčního semináře odpustit přijímací zkoušky. Konkrétně se to týká těch řešitelů, kteří získají za rok alespoň 100 bodů. Ti od nás dostanou „osvědčení úspěšného řešitele“, které pak mohou předložit fakultě.

    \r\n\r\n

    Dort za článek

    \r\n\r\n

    Autorovi nebo autorům nejlepšího otištěného článku v každém ročníku upečeme lahodný dort.

    \r\n\r\n

     

    \r\n\r\n

    \"\"

    ", "enable_comments": false, "registration_required": false, "sites": [ @@ -181,7 +181,7 @@ }, { "fields": { - "content": "
    \r\n

    Nápověda ke korekturovátku

    \r\n\r\n

    Korekturovátko slouží k přidávání korektur do PDF souborů. Umožňuje přidávat a komentovat korektury a označovat je jako k zanesení, zanesené nebo že se nebude text měnit. Rovněž umožňuje o PDF říci, že jsou právě zanášeny korektury nebo že je zastaralé.

    \r\n\r\n

    Použití

    \r\n\r\n

    Kliknu do PDF tam, kam chci zadat korekturu, napíši text a kliknu na Oprav! (nebo Ctrl-Enter). Korektura se zobrazí na pravé straně červeně. Pokud chci korekturu okomentovat, kliknu na ikonu , napíši komentář a kliknu na Oprav! (nebo Ctrl-Enter). Komentář se zobrazí pod původní korekturou.

    \r\n\r\n

    Tlačítka u korektury

    \r\n\r\n
      \r\n\t
    • – smazat korekturu
    • \r\n\t
    • – označt koreturu jako zanesenou
    • \r\n\t
    • – označit, že se text nemá měnit (není to chyba)
    • \r\n\t
    • – označt koreturu jako připravenou k zanesení
    • \r\n\t
    • – upravit text korektury
    • \r\n\t
    • – okomentovat korekturu
    • \r\n\t
    • – srolovat korekturu
    • \r\n
    \r\n\r\n

    Stavy

    \r\n\r\n

    Korektura

    \r\n\r\n
      \r\n\t
    • K vyřešení (červená) – bug report či návrh úpravy, probíhá diskuze, zatím nerozhodnuto
    • \r\n\t
    • Zanesená (modrá) – zanesená v TeXu
    • \r\n\t
    • Irelevantní (šedá) – není to chyba, nebude zanesena
    • \r\n\t
    • K zanesení (zelená) – rozhodnuto, čeká na zanesení do TeXu
    • \r\n
    \r\n\r\n

    PDF

    \r\n\r\n
      \r\n\t
    • Přidávání – probíhá přidávání korektur
    • \r\n\t
    • Zanášení (žluté pozadí) – probíhá zanášení korektur do TeXu
    • \r\n\t
    • Zastaralé (červené pozadí) – PDF je zastaralé, nepřidávat nové korektury
    • \r\n
    \r\n
    ", + "content": "
    \r\n

    Nápověda ke korekturovátku

    \r\n\r\n

    Korekturovátko slouží k přidávání korektur do PDF souborů. Umožňuje přidávat a komentovat korektury a označovat je jako k zanesení, zanesené nebo že se nebude text měnit. Rovněž umožňuje o PDF říci, že jsou právě zanášeny korektury nebo že je zastaralé.

    \r\n\r\n

    Použití

    \r\n\r\n

    Kliknu do PDF tam, kam chci zadat korekturu, napíši text a kliknu na Oprav! (nebo Ctrl-Enter). Korektura se zobrazí na pravé straně červeně. Pokud chci korekturu okomentovat, kliknu na ikonu , napíši komentář a kliknu na Oprav! (nebo Ctrl-Enter). Komentář se zobrazí pod původní korekturou.

    \r\n\r\n

    Tlačítka u korektury

    \r\n\r\n
      \r\n\t
    • – smazat korekturu
    • \r\n\t
    • – označt koreturu jako zanesenou
    • \r\n\t
    • – označit, že se text nemá měnit (není to chyba)
    • \r\n\t
    • – označt koreturu jako připravenou k zanesení
    • \r\n\t
    • – upravit text korektury
    • \r\n\t
    • – okomentovat korekturu
    • \r\n\t
    • – srolovat korekturu
    • \r\n
    \r\n\r\n

    Stavy

    \r\n\r\n

    Korektura

    \r\n\r\n
      \r\n\t
    • K vyřešení (červená) – bug report či návrh úpravy, probíhá diskuze, zatím nerozhodnuto
    • \r\n\t
    • Zanesená (modrá) – zanesená v TeXu
    • \r\n\t
    • Irelevantní (šedá) – není to chyba, nebude zanesena
    • \r\n\t
    • K zanesení (zelená) – rozhodnuto, čeká na zanesení do TeXu
    • \r\n
    \r\n\r\n

    PDF

    \r\n\r\n
      \r\n\t
    • Přidávání – probíhá přidávání korektur
    • \r\n\t
    • Zanášení (žluté pozadí) – probíhá zanášení korektur do TeXu
    • \r\n\t
    • Zastaralé (červené pozadí) – PDF je zastaralé, nepřidávat nové korektury
    • \r\n
    \r\n
    ", "enable_comments": false, "registration_required": false, "sites": [ From 1f16f194f7c6ea669ffc12512473f387f0f7930a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 23:12:23 +0100 Subject: [PATCH 096/515] add: Pro jistotu v DetailView i kontrola u orga --- odevzdavatko/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 3b29d397..834b7624 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -259,8 +259,9 @@ class EditReseniView(DetailReseniView): return ctx def check_access(self): - """ Na orga máme nároky už v urls.py """ - pass + # Na orga máme nároky už v urls.py ale better safe then sorry + if not self.request.user.je_org: + raise PermissionDenied() def hodnoceniReseniView(request, pk, *args, **kwargs): From abcfa996bd5473dff9ea069fc03cb835ca042ffc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 23:38:41 +0100 Subject: [PATCH 097/515] =?UTF-8?q?fix:=20=20->=20=20a=20zbaven?= =?UTF-8?q?=C3=AD=20se=20vyk=C5=99i=C4=8Dn=C3=ADk=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 07529720..739340c3 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -13,7 +13,7 @@

    Když řešení různých témátek vložíš každé zvlášť, lépe se v nich vyznáme a třeba ti je i rychleji opravíme.

    -

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Autory řešení“! V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám)!

    +

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Autory řešení“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

    {% csrf_token %} From 98ac3f63bf274b9ff65d0aef1b294d446cb40b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 23:52:11 +0100 Subject: [PATCH 098/515] =?UTF-8?q?fix:=20kontrola=20duplicitn=C3=AD=20p?= =?UTF-8?q?=C5=99ezd=C3=ADvky=20p=C5=99i=20editaci=20osobn=C3=ADch=20?= =?UTF-8?q?=C3=BAdaj=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/personalni/forms.py b/personalni/forms.py index 5f0d27f6..2946745d 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -208,11 +208,8 @@ class ProfileEditForm(forms.Form): prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') if prezdivka_resitele == '': return prezdivka_resitele - try: - Resitel.objects.get(prezdivka_resitele=prezdivka_resitele) + if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).exclude(osoba__user__username=self.username).count() > 0: raise forms.ValidationError('Přezdívka je již použita') - except ObjectDoesNotExist: - pass return prezdivka_resitele def clean_email(self): From 932ea700f38924b4eb24cb51d1d13a041cd3a010 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Dec 2022 23:55:24 +0100 Subject: [PATCH 099/515] =?UTF-8?q?fix:=20lep=C5=A1=C3=AD=20count=20ne?= =?UTF-8?q?=C5=BE=20try-catch=20p=C5=99i=20kontrole=20duplicitn=C3=AD=20p?= =?UTF-8?q?=C5=99ezd=C3=ADvky=20v=20p=C5=99ihl=C3=A1=C5=A1ce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/personalni/forms.py b/personalni/forms.py index 2946745d..f9d90182 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -110,11 +110,8 @@ class PrihlaskaForm(PasswordResetForm): prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') if prezdivka_resitele == '': return prezdivka_resitele - try: - Resitel.objects.get(prezdivka_resitele=prezdivka_resitele) + if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).count() > 0: raise forms.ValidationError('Přezdívka je již použita') - except ObjectDoesNotExist: - pass return prezdivka_resitele def clean_zasilat(self): From 5dedba2937510b3896b8a8a011c4ea885fe440e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 20 Dec 2022 12:29:19 +0100 Subject: [PATCH 100/515] =?UTF-8?q?fix:=20=E2=80=9Erozl=C3=A1m=C3=A1n?= =?UTF-8?q?=C3=AD=E2=80=9C=20dlouh=C3=A9ho=20=C5=99=C3=A1dku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index b16a5a28..a024fa07 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -12,7 +12,7 @@

    Řešené problémy: {{ object.problem.all | join:", " }}

    -

    Řešitelé: {% for r in object.resitele.all %}{{ r }}{% if edit %}({{ r.osoba.email }}){% endif %}{% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    +

    Řešitelé: {% for r in object.resitele.all %}{{ r }}{# mailto -> #}{% if edit %} ({{ r.osoba.email }}){% endif %}{# <- mailto #}{# čárky -> #}{% if forloop.revcounter0 != 0 %}, {% endif %}{# <- čárky #}{% endfor %}

    {# https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.get_FOO_display #}

    Forma: {{ object.get_forma_display }}

    From 0b835ef9d496991b070bd795efc748a848ab473f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 20 Dec 2022 12:40:55 +0100 Subject: [PATCH 101/515] =?UTF-8?q?fix:=20=C5=99e=C5=A1itel=C3=A9=20maj?= =?UTF-8?q?=C3=AD=20b=C3=BDt=20vid=C4=9Bt=20jen=20ti,=20kte=C5=99=C3=AD=20?= =?UTF-8?q?neodmaturovali?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 10e0bca9..601f4e35 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -51,7 +51,10 @@ class PublicResitelAutocomplete(LoginRequiredAjaxMixin, autocomplete.Select2Quer především v odevzdávátku. """ def get_queryset(self): + letos = m.Nastaveni.get_solo().aktualni_rocnik qs = m.Resitel.objects.filter( + rok_maturity__gte=letos.druhy_rok() + ).filter( prezdivka_resitele__isnull=False ).exclude( prezdivka_resitele="" From f2764a26f399a88bc0d91133e77f03dacd72a9a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 20 Dec 2022 14:26:43 +0100 Subject: [PATCH 102/515] =?UTF-8?q?fix:=20je=C5=A1t=C4=9B=20jeden=20n?= =?UTF-8?q?=C3=A1vrh=20na=20zal=C3=A1m=C3=A1n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index a024fa07..324de443 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -12,7 +12,13 @@

    Řešené problémy: {{ object.problem.all | join:", " }}

    -

    Řešitelé: {% for r in object.resitele.all %}{{ r }}{# mailto -> #}{% if edit %} ({{ r.osoba.email }}){% endif %}{# <- mailto #}{# čárky -> #}{% if forloop.revcounter0 != 0 %}, {% endif %}{# <- čárky #}{% endfor %}

    +{% if edit %} +

    Řešitelé: + {% for r in object.resitele.all %}{{ r }}({{ r.osoba.email }}){% if forloop.revcounter0 != 0 %}, {% endif %}{% endfor %} +

    +{% else %} +

    Řešitelé: {{ object.resitele.all | join:", " }}

    +{% endif %} {# https://docs.djangoproject.com/en/3.1/ref/models/instances/#django.db.models.Model.get_FOO_display #}

    Forma: {{ object.get_forma_display }}

    From 09e2df75ce20de22894fd5b3c3dc9af541400b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 20 Dec 2022 14:29:04 +0100 Subject: [PATCH 103/515] =?UTF-8?q?fix:=20mezera=20p=C5=99ed=20z=C3=A1vork?= =?UTF-8?q?ou?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 324de443..06f69609 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -14,7 +14,7 @@ {% if edit %}

    Řešitelé: - {% for r in object.resitele.all %}{{ r }}({{ r.osoba.email }}){% if forloop.revcounter0 != 0 %}, {% endif %}{% endfor %} + {% for r in object.resitele.all %}{{ r }} ({{ r.osoba.email }}){% if forloop.revcounter0 != 0 %}, {% endif %}{% endfor %}

    {% else %}

    Řešitelé: {{ object.resitele.all | join:", " }}

    From e10a8e0b6d13386ec860373e5950836c5e16c944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 20:46:05 +0100 Subject: [PATCH 104/515] =?UTF-8?q?fix:=20=C5=99azen=C3=AD=20=C5=99e=C5=A1?= =?UTF-8?q?itel=C5=AF=20v=20adminu=20podle=20p=C5=99=C3=ADjmen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/admin.py b/personalni/admin.py index 8befe589..fc3cadd4 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -43,7 +43,7 @@ class OrganizatorAdmin(ReverseModelAdmin): @admin.register(m.Resitel) class ResitelAdmin(ReverseModelAdmin): search_fields = ['osoba__jmeno', 'osoba__prijmeni', 'osoba__prezdivka'] - ordering = ('osoba__jmeno','osoba__prijmeni') + ordering = ('osoba__prijmeni', 'osoba__jmeno') inline_type = 'stacked' inline_reverse = ['osoba'] From ea7075f707bcc74a28379232fad381ed10e145ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 21:09:56 +0100 Subject: [PATCH 105/515] =?UTF-8?q?fix:=20=C5=99azen=C3=AD=20=C5=99e=C5=A1?= =?UTF-8?q?itel=C5=AF=20v=20odm=C4=9Bn=C3=A1ch=20podle=20p=C5=99=C3=ADjmen?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 3f2cdf01..01c561eb 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -450,9 +450,9 @@ class OdmenyView(generic.TemplateView): frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) tobody = body_resitelu(resitele=resitele, jen_verejne=False, do=to_deadline) outlist = [] - for (aid, tbody) in tobody.items(): - fbody = frombody.get(aid,0) - resitel = Resitel.objects.get(pk=aid) + for resitel in resitele: + fbody = frombody.get(resitel.id, 0) + tbody = tobody.get(resitel.id, 0) ftitul = resitel.get_titul(fbody) ttitul = resitel.get_titul(tbody) if ftitul != ttitul: From 3c3047b5486b2e696853de318e94d74497f7a8b9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 2 Jan 2023 21:13:15 +0100 Subject: [PATCH 106/515] =?UTF-8?q?Autodoc:=20Ignorov=C3=A1n=C3=AD=20modul?= =?UTF-8?q?=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/conf.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/conf.py b/docs/conf.py index d597faf2..038e7428 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -85,3 +85,17 @@ source_suffix = { '.rst': 'restructuredtext', '.md': 'markdown', } + +# Autodoc má ignorovat některé moduly +# Ref: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#event-autodoc-skip-member +# Kudos: https://stackoverflow.com/a/21449475/ +def ignorovat(app, what, name. obj, skip, options): + blacklist = ( + # typ (what), name + ('module', 'settings.mamweb_prod'), + ) + ignore = (what, name) in blacklist + return True if ignore else None + +def setup(app): + app.connect('autodoc-skip-member', ignorovat) From 5977f472c78d1342ae8146d7f5ce2f90b68d0253 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 2 Jan 2023 21:18:03 +0100 Subject: [PATCH 107/515] Fix! --- docs/conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 038e7428..75bca8d3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -89,7 +89,7 @@ source_suffix = { # Autodoc má ignorovat některé moduly # Ref: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html#event-autodoc-skip-member # Kudos: https://stackoverflow.com/a/21449475/ -def ignorovat(app, what, name. obj, skip, options): +def ignorovat(app, what, name, obj, skip, options): blacklist = ( # typ (what), name ('module', 'settings.mamweb_prod'), From 72b72899fdbf1423b2b6c753c0d0c07d67aae8d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 21:20:00 +0100 Subject: [PATCH 108/515] =?UTF-8?q?fix:=20odm=C4=9Bny=20maj=C3=AD=20h?= =?UTF-8?q?=C3=A1zet=20alespo=C5=88=20404=20na=20=C5=A1patn=C3=A9=20=C4=8D?= =?UTF-8?q?=C3=ADslo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 01c561eb..16f8ae55 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -442,8 +442,8 @@ class OdmenyView(generic.TemplateView): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - fromcislo = Cislo.objects.get(rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) - tocislo = Cislo.objects.get(rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) + fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) + tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) resitele = aktivniResitele(tocislo) def get_diff(from_deadline: Deadline, to_deadline: Deadline): From 246f63d6e02b0a283f7ce80091316ffd6ca5b73b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 21:40:07 +0100 Subject: [PATCH 109/515] =?UTF-8?q?add:=20typov=C3=A1=20anotace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vysledkovky/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index f363abfd..3ff59fb1 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -1,6 +1,6 @@ import abc from functools import cached_property -from typing import Union # TODO: s pythonem 3.10 přepsat na '|' +from typing import Union, Iterable # TODO: s pythonem 3.10 přepsat na '|' import seminar.models as m from django.db.models import Q, Sum @@ -22,7 +22,7 @@ def body_resitelu( do: m.Deadline = None, od: m.Deadline = None, jen_verejne: bool = True, - resitele=None, + resitele: Iterable[m.Resitel] = None, null=0 # Výchozí hodnota, pokud pro daného řešitele nejsou body ) -> dict[int, int]: filtr = Q() From c76fcb363aeb5948f35e39ebf63399b821ee44d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 21:52:19 +0100 Subject: [PATCH 110/515] =?UTF-8?q?fix:=20=E2=80=A6.objects.get(=E2=80=A6)?= =?UTF-8?q?=20->=20get=5For=5F404?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 2 +- seminar/views/views_all.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 664482bd..0100ef24 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -60,7 +60,7 @@ class TabulkaOdevzdanychReseniView(ListView): self.aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci if 'rocnik' in self.kwargs: - self.aktualni_rocnik = m.Rocnik.objects.get(rocnik=self.kwargs['rocnik']) + self.aktualni_rocnik = get_object_or_404(m.Rocnik, rocnik=self.kwargs['rocnik']) form = FiltrForm(self.request.GET, rocnik=self.aktualni_rocnik) if form.is_valid(): diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 16f8ae55..4627989e 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -349,7 +349,7 @@ def resiteleRocnikuCsvExportView(request, rocnik): assert request.method in ('GET', 'HEAD') return dataResiteluCsvResponse( utils.resi_v_rocniku( - m.Rocnik.objects.get(rocnik=rocnik) + get_object_or_404(m.Rocnik, rocnik=rocnik) ) ) @@ -554,7 +554,7 @@ class RocnikVysledkovkaView(RocnikView): #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani def cisloObalkyView(request, rocnik, cislo): - realne_cislo = Cislo.objects.get(poradi=cislo, rocnik__rocnik=rocnik) + realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) return obalkyView(request, aktivniResitele(realne_cislo)) @@ -580,14 +580,14 @@ def TitulyViewRocnik(request, rocnik): def TitulyView(request, rocnik, cislo): """ View pro stažení makra titulů v TeXu.""" - rocnik_obj = Rocnik.objects.get(rocnik = rocnik) + rocnik_obj = get_object_or_404(Rocnik, rocnik = rocnik) resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) asciijmena = [] jmenovci = False # detekuje, zda jsou dva řešitelé jmenovci (modulo nabodeníčka), # pokud ano, vrátí se jako true if cislo is not None: - cislo_obj = Cislo.objects.get(rocnik=rocnik_obj, poradi=cislo) + cislo_obj = get_object_or_404(Cislo, rocnik=rocnik_obj, poradi=cislo) slovnik_s_body = body_resitelu(do=cislo_obj.zlomovy_deadline_pro_papirove_cislo(), jen_verejne=False) else: slovnik_s_body = body_resitelu(do=Deadline.objects.filter(cislo__rocnik=rocnik_obj).last(), jen_verejne=False) From 57b7c6372d7d9b194dce9c8d7d373b4e16da8926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 23:42:53 +0100 Subject: [PATCH 111/515] =?UTF-8?q?add:=20r=C5=AFzn=C3=A9=20druhy=20bod?= =?UTF-8?q?=C5=AF=20u=20hodnocen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 65 ++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index c286558c..2611b334 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -115,6 +115,71 @@ class Hodnoceni(bm.SeminarModelBase): feedback = models.TextField('zpětná vazba', blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)') + # TODO najít správné místo + @staticmethod + def vzorecek_na_prepocet(body, resitelu): + return body * 3 / (resitelu + 2) + + # TODO najít správné místo + @staticmethod + def inverze_vzorecku_na_prepocet(body, resitelu): + return body * (resitelu + 2) / 3 + + @property + def body_celkem(self): + # FIXME řeším jen prvního řešitele. + return Hodnoceni.objects.filter(problem=self.problem, reseni__resitele=self.reseni.resitele.first(), body__isnull=False).aggregate(Sum("body"))["body__sum"] + + @body_celkem.setter + def body_celkem(self, value): + if value is None: + self.body = None + else: + if self.body is None: + self.body = 0 + if self.body_celkem is None: + self.body += value + else: + self.body += value - self.body_celkem + + @property + def body_neprepocitane(self): + if self.body is None: + return None + return self.inverze_vzorecku_na_prepocet(self.body, self.reseni.resitele.count()) + + @body_neprepocitane.setter + def body_neprepocitane(self, value): + if value is None: + self.body = None + else: + self.body = self.vzorecek_na_prepocet(value, self.reseni.resitele.count()) + + @property + def body_neprepocitane_celkem(self): + if self.body_celkem is None: + return None + return self.inverze_vzorecku_na_prepocet(self.body_celkem, self.reseni.resitele.count()) + + @body_neprepocitane_celkem.setter + def body_neprepocitane_celkem(self, value): + if value is None: + self.body = None + else: + self.body_celkem = self.vzorecek_na_prepocet(value, self.reseni.resitele.count()) + + @property + def body_max(self): + if not isinstance(Hodnoceni.objects.first().problem, am.Uloha): + return None + return self.problem.uloha.max_body + + @property + def body_neprepocitane_max(self): + if self.body_max is None: + return None + return self.inverze_vzorecku_na_prepocet(self.body_max, self.reseni.resitele.count()) + def __str__(self): return "{}, {}, {}".format(self.problem, self.reseni, self.body) From 39da362586d99aeb08a86b280b0c215f0f654212 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 23:44:04 +0100 Subject: [PATCH 112/515] =?UTF-8?q?add:=20frontend=20k=20bod=C5=AFm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 5 +++ odevzdavatko/forms.py | 16 +++++++++ .../templates/odevzdavatko/detail.html | 35 ++++++++++++++++--- odevzdavatko/views.py | 23 ++++++++---- 4 files changed, 68 insertions(+), 11 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 63c5f527..3833ff92 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1255,3 +1255,8 @@ div.gdpr { label[for=id_skola] { font-weight: bold; } + +/* detail řešení */ +.bodovani>input { + width: 4em; +} diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index a31122dd..8b71cff4 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -103,6 +103,22 @@ class JednoHodnoceniForm(forms.ModelForm): 'feedback': forms.Textarea(attrs={'rows': 1, 'cols': 30, 'class': 'feedback'}), } + body_celkem = forms.DecimalField(required=False, decimal_places=1) + body_neprepocitane = forms.DecimalField(required=False, decimal_places=1) + body_neprepocitane_celkem = forms.DecimalField(required=False, decimal_places=1) + + def __init__(self, *args, initial=None, **kwargs): + if initial is not None: + body_max = initial["body_max"] + body_neprepocitane_max = initial["body_neprepocitane_max"] + del(initial["body_max"]) + del(initial["body_neprepocitane_max"]) + super().__init__(*args, initial=initial, **kwargs) + if initial is not None: + self.fields['body_celkem'].widget.attrs['placeholder'] = body_max + self.fields['body_neprepocitane_celkem'].widget.attrs['placeholder'] = body_neprepocitane_max + + OhodnoceniReseniFormSet = formset_factory(JednoHodnoceniForm, extra = 0, ) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 06f69609..c605b701 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -54,12 +54,15 @@ {{ form.management_form }} - + {% for subform in form %} - + + + + @@ -72,10 +75,15 @@ Přidat hodnocení
    +{# FIXME Zablokovat ostatni při změně #} +
    ProblémBodyDeadline pro bodyZpětná vazba pro řešitele
    Problém{# 📖 #}🧍{# 🔵 #}🧍∑{# 💪 #}🧑‍🤝‍🧑{# ❤ #}🧑‍🤝‍🧑∑Deadline pro bodyZpětná vazba pro řešitele
    {{ subform.problem }}{{ subform.body }}{{ subform.body }}{{ subform.body_celkem }}{{ subform.body_neprepocitane }}{{ subform.body_neprepocitane_celkem }} {{ subform.deadline_body }} {{ subform.feedback }} Smazat
    - + + + + @@ -85,16 +93,33 @@ {% else %}

    Hodnocení:

    - + {% for h in hodnoceni %} - + + + + {% endfor %}
    ProblémBodyZpětná vazba od opravovatele
    Problém{# 📖 #}🧍{# 🔵 #}🧍∑{# 💪 #}🧑‍🤝‍🧑{# ❤ #}🧑‍🤝‍🧑∑Zpětná vazba od opravovatele
    {{ h.problem }}{{ h.body }}{{ h.body }}{{ h.body_celkem }}{{ h.body_neprepocitane }}{{ h.body_neprepocitane_celkem }} {{ h.feedback }}
    {% endif %} +
    +
    {# 📖 #}🧍
    +
    Body, které dostává jeden řešitel za toto řešení.
    + +
    {# 🔵 #}🧍∑
    +
    Body, které dostává jeden řešitel za tento problém (součet za všechna řešení).
    + +
    {# 💪 #}🧑‍🤝‍🧑
    +
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za toto řešení.
    + +
    {# ❤ #}🧑‍🤝‍🧑∑
    +
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za tento problém (součet za všechna řešení).
    +
    + {% endblock %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 0100ef24..d24e495a 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -224,12 +224,18 @@ class DetailReseniView(DetailView): self.reseni = get_object_or_404(m.Reseni, id=self.kwargs['pk']) result = [] # Slovníky s klíči problem, body, deadline_body -- initial data pro f.OhodnoceniReseniFormSet for hodn in m.Hodnoceni.objects.filter(reseni=self.reseni): - result.append({ - "problem": hodn.problem, - "body": hodn.body, - "deadline_body": hodn.deadline_body, - "feedback": hodn.feedback, - }) + seznam_atributu = [ + "problem", + "body", + "body_celkem", + "body_neprepocitane", + "body_neprepocitane_celkem", + "body_max", + "body_neprepocitane_max", + "deadline_body", + "feedback", + ] + result.append({attr: getattr(hodn, attr) for attr in seznam_atributu}) return result def get_context_data(self, **kw): @@ -292,6 +298,11 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): # Vyrobíme nová podle formsetu for form in formset: + data_for_hodnoceni = form.cleaned_data + data_for_body = data_for_hodnoceni.copy() + del(data_for_hodnoceni["body_celkem"]) + del(data_for_hodnoceni["body_neprepocitane"]) + del(data_for_hodnoceni["body_neprepocitane_celkem"]) hodnoceni = m.Hodnoceni( reseni=reseni, **form.cleaned_data, From d9756d5f6019053ab35a826de1eb168bd6e9a53a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Jan 2023 23:44:36 +0100 Subject: [PATCH 113/515] =?UTF-8?q?add:=20ukl=C3=A1d=C3=A1n=C3=AD=20r?= =?UTF-8?q?=C5=AFzn=C3=BDch=20bod=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/odevzdavatko/dynamic_formsets_for_detail.js | 10 ++++++++++ odevzdavatko/views.py | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js b/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js index a14c9f8f..1c9bf2f9 100644 --- a/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js +++ b/odevzdavatko/static/odevzdavatko/dynamic_formsets_for_detail.js @@ -49,8 +49,18 @@ $(document).ready(function(){ $('#id_form-' + form_idx + '-deadline_body')[0].value = $('#id_form-' + (form_idx - 1) + '-deadline_body')[0].value } $('#id_form-TOTAL_FORMS').val(parseInt(form_idx) + 1); + + $('.bodovani').children().change(function(){ + $(this).parent().parent().children(".bodovani").children().attr("disabled", true); + $(this).attr("disabled", false); + }) }); $('.smazat_hodnoceni').click(function(){ deleteForm("form",this); }); + + $('.bodovani').children().change(function(){ + $(this).parent().parent().children(".bodovani").children().attr("disabled", true); + $(this).attr("disabled", false); + }) }); diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index d24e495a..746335fc 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -308,6 +308,10 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): **form.cleaned_data, ) logger.info(f"Creating Hodnoceni: {hodnoceni}") + zmeny_bodu = [it for it in form.changed_data if it.startswith("body")] + if len(zmeny_bodu) == 1: + hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]]) + hodnoceni.save() hodnoceni.save() return redirect(success_url) From 87a209bf2a8b71a701f7f954bfd2738ac62ea70c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 3 Jan 2023 00:13:29 +0100 Subject: [PATCH 114/515] =?UTF-8?q?fix:=20nekone=C4=8Dn=C3=A9=20desetin?= =?UTF-8?q?=C3=A9=20rozvoje?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 2611b334..82a75bc6 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -1,3 +1,4 @@ +import decimal import os import reversion @@ -123,7 +124,7 @@ class Hodnoceni(bm.SeminarModelBase): # TODO najít správné místo @staticmethod def inverze_vzorecku_na_prepocet(body, resitelu): - return body * (resitelu + 2) / 3 + return decimal.Context(prec=1).create_decimal_from_float(body * (resitelu + 2) / 3) @property def body_celkem(self): From 0c7a411c1f08f297e80fb43c4fbf630c057d2bee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 3 Jan 2023 00:21:12 +0100 Subject: [PATCH 115/515] =?UTF-8?q?fix:=20nekone=C4=8Dn=C3=A9=20desetin?= =?UTF-8?q?=C3=A9=20rozvoje?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 82a75bc6..2d937a41 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -123,8 +123,8 @@ class Hodnoceni(bm.SeminarModelBase): # TODO najít správné místo @staticmethod - def inverze_vzorecku_na_prepocet(body, resitelu): - return decimal.Context(prec=1).create_decimal_from_float(body * (resitelu + 2) / 3) + def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: + return round(body * (resitelu + 2) / 3, 1) @property def body_celkem(self): From a666a3fea454140159c3c9d08f1b3e50f18dccb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 3 Jan 2023 19:04:45 +0100 Subject: [PATCH 116/515] =?UTF-8?q?hotfix:=20nemohl=20odevzd=C3=A1vat=20?= =?UTF-8?q?=C5=99e=C5=A1itel=20samotn=C3=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index a31122dd..223d807f 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -82,6 +82,13 @@ class NahrajReseniForm(forms.ModelForm): ) } + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # FIXME Z nějakého důvodu se do této třídy dostaneme i bez resitele + if 'resitele' in self.fields: + # FIXME Mnohem hezčí by to bylo u definice resitele výše, ale nepodařilo se mi to. + self.fields['resitele'].required = False + ReseniSPrilohamiFormSet = inlineformset_factory(m.Reseni,m.PrilohaReseni, form = NahrajReseniForm, fields = ('soubor','res_poznamka'), From af6628367f546a6a2264d8ae5e5dc57666d017da Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 4 Jan 2023 01:51:02 +0100 Subject: [PATCH 117/515] =?UTF-8?q?Testy:=20Schov=C3=A1v=C3=A1me=20si=20da?= =?UTF-8?q?tab=C3=A1zi=20nap=C5=99=C3=AD=C4=8D=20b=C4=9Bhy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Při běžení testů nejdéle trvá namigrovat (prázdnou) databázi. Toto tento krok přeskočí. By default django pro testy používá in-memory SQLite3 databázi, která se schovat přirozeně nedá. Používání souborů trvá déle (data níž), ale další běhy už jsou rychlé. Zatím nevím, jestli se někde nemůže omylem schovávat nějaký nežádoucí stav, ale testy mi i opakovaně běží, takže se to asi nerozbíjí úplně moc. Na první pohled je uložená databáze prázdná. Pro produkci a CI bych klidně běžel testy od nuly, tam nevadí čekat pár desítek sekund až jednotky minut na výsledek. Tato optimalizace je důležitá jen pro lokální vývoj, kde je žádoucí mít testy co nejrychlejší. V .gitignore už přesně toto jméno souboru je. Nevím proč, ale možná to tak bylo by default v některém dávném Djangu. Data --- Spouštěl jsem příkaz `time ./manage.py test [--keepdb] api`. Běhy byly relativně konzistentní (±1 s) a trvaly u mě: - In memory SQLite (default): 26 s - První spuštění s db na disku (HDD): 44 s - Následná spuštění: 7.7 s Data jsou nejspíš zkreslena tím, že všechno je nejspíš nacachované v systému, ale i tak je vidět zřetelné zrychlení. Původní motivace: úplně triviální a nedatabázový test na starém notebooku běžel kolem 3:14, což je zoufale nepoužitelné když si chci napsat testy jako pomůcku pro vývoj. --- make/test | 2 +- mamweb/settings_local.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/make/test b/make/test index 155d03fa..e3fa9f52 100755 --- a/make/test +++ b/make/test @@ -6,4 +6,4 @@ set -exuo pipefail ensure_web_installed trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku. -./manage.py test -v2 +./manage.py test -v2 --keepdb diff --git a/mamweb/settings_local.py b/mamweb/settings_local.py index 540c0453..4d98cd38 100644 --- a/mamweb/settings_local.py +++ b/mamweb/settings_local.py @@ -40,7 +40,10 @@ DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'), - } + 'TEST': { + 'NAME': os.path.join(BASE_DIR, 'db-test.sqlite3'), + }, + }, } #DATABASES = { # 'default': { From 3a1aade3a2bd215510b361eeb19c88fb2454628a Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 4 Jan 2023 02:11:15 +0100 Subject: [PATCH 118/515] Testy: bereme parametry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Umožňuje testovat konkrétní moduly a nespouštět vždy všechno. --- make/test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/make/test b/make/test index e3fa9f52..45de21f1 100755 --- a/make/test +++ b/make/test @@ -6,4 +6,4 @@ set -exuo pipefail ensure_web_installed trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku. -./manage.py test -v2 --keepdb +./manage.py test -v2 --keepdb "$@" From e6b8998edd4a67dbd9b72e6145bffa7445af0ad0 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 4 Jan 2023 21:30:52 +0100 Subject: [PATCH 119/515] =?UTF-8?q?Jid=C3=A1=C5=A1:=20hotfix:=20smaz=C3=A1?= =?UTF-8?q?n=C3=AD=20p=C5=99ezd=C3=ADvky=20v=20osobn=C3=ADch=20=C3=BAdaj?= =?UTF-8?q?=C3=ADch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/views.py b/personalni/views.py index d7d52540..a52f7f5f 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -160,7 +160,7 @@ def resitelEditView(request): if resitel_edit: ## Změny v řešiteli - resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele'] + resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele'] if fcd['prezdivka_resitele'] != '' else None resitel_edit.skola = fcd['skola'] resitel_edit.rok_maturity = fcd['rok_maturity'] resitel_edit.zasilat = fcd['zasilat'] From 6994db438bd0977f1f9051627b8b0255af29629e Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Thu, 5 Jan 2023 04:40:16 +0100 Subject: [PATCH 120/515] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20tagu=20{%=20ma?= =?UTF-8?q?illink=20%}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Vyrábí odkazy, které vedou na poslání mailu. Psal jsem to spíš po paměti, nejsem si jistý, že to takhle je přesně podle příslušného RFC, ale jako PoC dobrý a když to nebude fungovat, tak se implementace opraví. Všimněte si, že to je otestované, takže když někdo opraví testy (=předpis chování), tak je pak snadné z diffu a všeho odvodit úpravu. V Django dokumentaci se píše něco o tom, že by se měl použít spíš `format_html` a `conditional_escape`, ale zatím jsem to víc nezkoumal. Je žádoucí z tagu {% maillink %} odddělit i tag {% mailurl %}, který by vracel samotnou URL. Obojí dává smysl umět (speciálně bastlení odkazů z URL je stejně strašně nepřehledné, takže je lepší to zavřít do {% maillink %} a nikdy nevidět), ale zatím to oddělené není… (Ale jsou na to testy, takže by se mělo aspoň dát poznat, že rozdělení nerozbije chování.) --- various/templatetags/__init__.py | 0 various/templatetags/mail.py | 30 ++++++++++++++++++++++ various/tests.py | 43 +++++++++++++++++++++++++++++++- 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 various/templatetags/__init__.py create mode 100644 various/templatetags/mail.py diff --git a/various/templatetags/__init__.py b/various/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/various/templatetags/mail.py b/various/templatetags/mail.py new file mode 100644 index 00000000..fe11d218 --- /dev/null +++ b/various/templatetags/mail.py @@ -0,0 +1,30 @@ +from django import template +from django.utils.safestring import mark_safe +from urllib.request import quote as urlencode +register = template.Library() + +@register.simple_tag +def maillink(text: str, subject=None, body=None, to=[], attrs=None): + """TODO: Dokumentace""" + if isinstance(to, str): + to = [to] + assert isinstance(to, list) + parts = [ + f'mailto:{str.join(",", to)}', + ] + if len(to) < 1: + raise ValueError('Cannot mail to empty set of people') + + if subject: + parts.append(f'subject={urlencode(subject)}') + if body: + parts.append(f'body={urlencode(body)}') + + if len(parts) > 1: + url = parts[0] + '?' + str.join('&', parts[1:]) + else: + url = parts[0] + if not attrs: attrs = '' + mezera = ' '*bool(attrs) + full_link = f'{text}' + return mark_safe(full_link) diff --git a/various/tests.py b/various/tests.py index 7ce503c2..7884e618 100644 --- a/various/tests.py +++ b/various/tests.py @@ -1,3 +1,44 @@ from django.test import TestCase +# TODO: Možná vyrobit separátní soubory v tests/… než mít všechny testy v jednom souboru? +from various.templatetags.mail import maillink -# Create your tests here. +class MailTagsTest(TestCase): + """Testuje template tagy ohledně mailů.""" + def test_maillink(self): + # Tohle nedává smysl dělit do víc funkcí, bylo by v nich víc boilerplatu než užitečného kódu. + self.assertEquals(maillink('Hello', to='some@body.test'), r'Hello') + self.assertEquals(maillink('Hello', to=['some@body.test']), r'Hello') + self.assertEquals( + maillink('Hello', to=['alice@test.test', 'bob@jinde.test']), + r'Hello', + ) + self.assertEquals( + maillink('Hello', to='some@body.test', attrs='class="trida" id="id"'), + r'Hello', + ) + # Následující test toho testuje moc zároveň, měly by předcházet dedikované testy… (kašlu na ně :-P) + self.assertEquals( + maillink('Text odkazu', to='prijemce@wtf.test', subject="Předmět", body="Čau"), + r'Text odkazu', + ) + self.assertRaises(ValueError, lambda: maillink('Nemám příjemce')) + self.assertRaises(TypeError, lambda: maillink()) # Nemá text, takže to shodí python + + def test_render_in_template(self): + # Pomocná funkce: vykreslí template do stringu + # Ref: https://stackoverflow.com/a/1690879 + def render_template(template, context=None): + from django.template import Template, Context + context = context or {} + context = Context(context) + return Template(template).render(context) + + template=( + r'{% load mail %}' + # TODO: Vyzkoušet i víc adresátů. (Nepamatuji si z hlavy syntaxi…) + r'{% maillink "Text" to="alice@test.test" subject="Oprava řešení" %}' + ) + self.assertEquals( + render_template(template), + r'Text', + ) From ff996c2924ee8d0612a5326f4c0b03763763cf97 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 8 Jan 2023 08:51:01 +0100 Subject: [PATCH 121/515] =?UTF-8?q?P=C5=99ejmenov=C3=A1n=C3=AD=20hodnocen?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Označení bylo zavádějící, protože se vůbec nejedná o objekt Hodnocení. Neříkám, že nové jméno je nějak úchvatné, ale aspoň mě nemate a na proměnnou s životností dva řádky je to stejně jedno… --- odevzdavatko/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 0100ef24..e983860a 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -235,8 +235,8 @@ class DetailReseniView(DetailView): def get_context_data(self, **kw): self.check_access() ctx = super().get_context_data(**kw) - hodnoceni = self.aktualni_hodnoceni() - ctx["hodnoceni"] = hodnoceni + detaily_hodnoceni = self.aktualni_hodnoceni() + ctx["hodnoceni"] = detaily_hodnoceni return ctx def get(self, request, *args, **kwargs): From efe1b4bb5a47de3d749f1bdfc7cedac9f2150a66 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 8 Jan 2023 08:52:01 +0100 Subject: [PATCH 122/515] =?UTF-8?q?Pou=C5=BEit=C3=AD=20{%maillink%}=20v=20?= =?UTF-8?q?detailu=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ten řádek má sice pořád 117 znaků, ale IMHO je to o dost lepší. Mně to i správně vyplňuje subjecty v Thunderbirdu, takže můj kód asi není úplně mimo :-) --- odevzdavatko/templates/odevzdavatko/detail.html | 6 +++++- odevzdavatko/views.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 06f69609..379bdc68 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -1,6 +1,7 @@ {% extends "base.html" %} {% load static %} {% load deadliny %} +{% load mail %} {% block content %} @@ -14,7 +15,10 @@ {% if edit %}

    Řešitelé: - {% for r in object.resitele.all %}{{ r }} ({{ r.osoba.email }}){% if forloop.revcounter0 != 0 %}, {% endif %}{% endfor %} + {% for r in object.resitele.all %} + {{ r }} + ({% maillink r.osoba.email to=r.osoba.email subject=mailsubject %}){% if forloop.revcounter0 != 0 %}, {% endif %} + {% endfor %}

    {% else %}

    Řešitelé: {{ object.resitele.all | join:", " }}

    diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index e983860a..3100eb9c 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -237,6 +237,9 @@ class DetailReseniView(DetailView): ctx = super().get_context_data(**kw) detaily_hodnoceni = self.aktualni_hodnoceni() ctx["hodnoceni"] = detaily_hodnoceni + + # Subject případného mailu (template neumí použitelně spojovat řetězce: https://stackoverflow.com/q/4386168) + ctx["mailsubject"] = "Oprava řešení M&M "+self.reseni.problem.first().hlavni_problem.nazev return ctx def get(self, request, *args, **kwargs): From 4623adb249974a09e341acef2b29083ca1404b96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 24 Jan 2023 20:57:32 +0100 Subject: [PATCH 123/515] =?UTF-8?q?fix:=20od=C5=99=C3=A1dkov=C3=A1n=C3=AD?= =?UTF-8?q?=20ve=20feedbacku=20v=20hodnot=C3=ADku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 06f69609..f1591725 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -90,7 +90,7 @@ {{ h.problem }} {{ h.body }} - {{ h.feedback }} + {{ h.feedback | linebreaks }} {% endfor %} From fad2a1bc47d5848baa2093e0e5edbc45846fb6bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 30 Jan 2023 20:27:42 +0100 Subject: [PATCH 124/515] =?UTF-8?q?Nikam=20->=20Nezas=C3=ADlat=20pap=C3=AD?= =?UTF-8?q?rov=C4=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0111_nikam2nezasilat_papirove.py | 18 ++++++++++++++++++ seminar/models/personalni.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 seminar/migrations/0111_nikam2nezasilat_papirove.py diff --git a/seminar/migrations/0111_nikam2nezasilat_papirove.py b/seminar/migrations/0111_nikam2nezasilat_papirove.py new file mode 100644 index 00000000..683d71d7 --- /dev/null +++ b/seminar/migrations/0111_nikam2nezasilat_papirove.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2023-01-30 19:14 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0110_resitel_prezdivka'), + ] + + operations = [ + migrations.AlterField( + model_name='resitel', + name='zasilat', + field=models.CharField(choices=[('domu', 'Domů'), ('do_skoly', 'Do školy'), ('nikam', 'Nezasílat papírově')], default='domu', max_length=32, verbose_name='kam zasílat'), + ), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 3e64af45..9ac85e51 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -229,7 +229,7 @@ class Resitel(SeminarModelBase): ZASILAT_CHOICES = [ (ZASILAT_DOMU, 'Domů'), (ZASILAT_DO_SKOLY, 'Do školy'), - (ZASILAT_NIKAM, 'Nikam'), + (ZASILAT_NIKAM, 'Nezasílat papírově'), ] zasilat = models.CharField('kam zasílat', max_length=32, choices=ZASILAT_CHOICES, blank=False, default=ZASILAT_DOMU) From 3dab39645029e9651ffbef0c8174a6b8d19d5d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 30 Jan 2023 20:58:37 +0100 Subject: [PATCH 125/515] =?UTF-8?q?E-mail=20p=C5=99ipom=C3=ADnaj=C3=ADc?= =?UTF-8?q?=C3=AD=20=C5=99e=C5=A1itel=C5=AFm=20mo=C5=BEnost=20Nezas=C3=ADl?= =?UTF-8?q?at=20pap=C3=ADrov=C4=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/tvorba.py | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 7e04b213..f2c10e3e 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -270,21 +270,27 @@ class Cislo(SeminarModelBase): 'Vaše M&M\n'.format(odkaz) # Prijemci e-mailu - emaily = map(lambda r: r.osoba.email, filter(lambda r: r.zasilat_cislo_emailem, aktivniResitele(self))) - - if not settings.POSLI_MAILOVOU_NOTIFIKACI: - print("Poslal bych upozornění na tyto adresy: ", " ".join(emaily)) - return + resitele_vsichni = aktivniResitele(self).filter(zasilat_cislo_emailem=True) + + def posli(text, resitele): + emaily = map(lambda resitel: resitel.osoba.email, resitele) + if not settings.POSLI_MAILOVOU_NOTIFIKACI: + print("Poslal bych upozornění na tyto adresy: ", " ".join(emaily)) + return + + email = EmailMessage( + subject=predmet, + body=text, + from_email=poslat_z_mailu, + bcc=list(emaily) + #bcc = příjemci skryté kopie + ) - email = EmailMessage( - subject=predmet, - body=text_mailu, - from_email=poslat_z_mailu, - bcc=list(emaily) - #bcc = příjemci skryté kopie - ) + email.send() - email.send() + posli(text_mailu, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM)) + posli(text_mailu + 'P. S. Také by vám brzy měla přijít papírová verze. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Děkujeme. (Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem.)\n', + resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM)) def save(self, *args, **kwargs): super().save(*args, **kwargs) From 0956b0780aa56a028c8bc6a3b295436aab28ddda Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 6 Feb 2023 20:13:29 +0100 Subject: [PATCH 126/515] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20tagu=20{%mailurl%}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/templatetags/mail.py | 7 ++++++- various/tests.py | 20 ++++++++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/various/templatetags/mail.py b/various/templatetags/mail.py index fe11d218..972040f6 100644 --- a/various/templatetags/mail.py +++ b/various/templatetags/mail.py @@ -4,7 +4,7 @@ from urllib.request import quote as urlencode register = template.Library() @register.simple_tag -def maillink(text: str, subject=None, body=None, to=[], attrs=None): +def mailurl(*, subject=None, body=None, to=[]): """TODO: Dokumentace""" if isinstance(to, str): to = [to] @@ -24,6 +24,11 @@ def maillink(text: str, subject=None, body=None, to=[], attrs=None): url = parts[0] + '?' + str.join('&', parts[1:]) else: url = parts[0] + return url + +@register.simple_tag +def maillink(text, subject=None, body=None, to=[], attrs=None): + url = mailurl(subject=subject, body=body, to=to) if not attrs: attrs = '' mezera = ' '*bool(attrs) full_link = f'{text}' diff --git a/various/tests.py b/various/tests.py index 7884e618..0abf4e26 100644 --- a/various/tests.py +++ b/various/tests.py @@ -1,6 +1,6 @@ from django.test import TestCase # TODO: Možná vyrobit separátní soubory v tests/… než mít všechny testy v jednom souboru? -from various.templatetags.mail import maillink +from various.templatetags.mail import maillink, mailurl class MailTagsTest(TestCase): """Testuje template tagy ohledně mailů.""" @@ -24,6 +24,16 @@ class MailTagsTest(TestCase): self.assertRaises(ValueError, lambda: maillink('Nemám příjemce')) self.assertRaises(TypeError, lambda: maillink()) # Nemá text, takže to shodí python + def test_mailurl(self): + self.assertEquals(mailurl(to='some@body.test'), r'mailto:some@body.test') + self.assertEquals(mailurl(to=['some@body.test']), r'mailto:some@body.test') + self.assertEquals(mailurl(to=['alice@test.test', 'bob@jinde.test']), r'mailto:alice@test.test,bob@jinde.test') + self.assertEquals( + mailurl(to='some@body.test', body='Tělo', subject='Předmět'), + r'mailto:some@body.test?subject=P%C5%99edm%C4%9Bt&body=T%C4%9Blo', + ) + self.assertRaises(ValueError, lambda: mailurl()) + def test_render_in_template(self): # Pomocná funkce: vykreslí template do stringu # Ref: https://stackoverflow.com/a/1690879 @@ -33,7 +43,7 @@ class MailTagsTest(TestCase): context = Context(context) return Template(template).render(context) - template=( + template = ( r'{% load mail %}' # TODO: Vyzkoušet i víc adresátů. (Nepamatuji si z hlavy syntaxi…) r'{% maillink "Text" to="alice@test.test" subject="Oprava řešení" %}' @@ -42,3 +52,9 @@ class MailTagsTest(TestCase): render_template(template), r'Text', ) + + mailurltemplate = ( + r'{% load mail %}' + r'{% mailurl to="alice@test.test" subject="Čau Alice" %}' + ) + self.assertEquals(render_template(mailurltemplate), r'mailto:alice@test.test?subject=%C4%8Cau%20Alice') From 65cd15ecbbc972e3b6d5642c1c3404396fe6617c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 6 Feb 2023 20:27:19 +0100 Subject: [PATCH 127/515] =?UTF-8?q?Koment=C3=A1=C5=99=20k=20tomu,=20kde=20?= =?UTF-8?q?se=20vyr=C3=A1b=C3=AD=20mailsubject?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 1 + 1 file changed, 1 insertion(+) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 379bdc68..74352509 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -17,6 +17,7 @@

    Řešitelé: {% for r in object.resitele.all %} {{ r }} + {# DjangoTemplates neumí spojovat řetězce (https://stackoverflow.com/q/4386168), tak si necháváme vyrobit subject mailu ve view. #} ({% maillink r.osoba.email to=r.osoba.email subject=mailsubject %}){% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    From f6cb669277d2143338b67f64475e804a85f9378b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 6 Feb 2023 20:27:35 +0100 Subject: [PATCH 128/515] =?UTF-8?q?P=C5=99ejmenov=C3=A1n=C3=AD=20mailsubje?= =?UTF-8?q?ctu=20do=20=C4=8De=C5=A1tiny?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 +- odevzdavatko/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 74352509..468b0322 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -18,7 +18,7 @@ {% for r in object.resitele.all %} {{ r }} {# DjangoTemplates neumí spojovat řetězce (https://stackoverflow.com/q/4386168), tak si necháváme vyrobit subject mailu ve view. #} - ({% maillink r.osoba.email to=r.osoba.email subject=mailsubject %}){% if forloop.revcounter0 != 0 %}, {% endif %} + ({% maillink r.osoba.email to=r.osoba.email subject=predmetmailu %}){% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    {% else %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 3100eb9c..57822bf4 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -239,7 +239,7 @@ class DetailReseniView(DetailView): ctx["hodnoceni"] = detaily_hodnoceni # Subject případného mailu (template neumí použitelně spojovat řetězce: https://stackoverflow.com/q/4386168) - ctx["mailsubject"] = "Oprava řešení M&M "+self.reseni.problem.first().hlavni_problem.nazev + ctx["predmetmailu"] = "Oprava řešení M&M "+self.reseni.problem.first().hlavni_problem.nazev return ctx def get(self, request, *args, **kwargs): From fa688ec8f33d5b8710b8ae1413ef2eeb6d156a7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 20:34:46 +0100 Subject: [PATCH 129/515] =?UTF-8?q?add:=20skr=C3=BDt=20teamovou=20=C4=8D?= =?UTF-8?q?=C3=A1st=20p=C5=99i=20jednom=20=C5=99e=C5=A1iteli=20v=20=C5=99e?= =?UTF-8?q?=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/odevzdavatko/detail.html | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index c605b701..4314c9b7 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -2,6 +2,13 @@ {% load static %} {% load deadliny %} +{# Přišlo mi to hezčí, než psát všude if. #} +{% block custom_css %} + {% if object.resitele.count == 1 %} + + {% endif %} +{% endblock %} + {% block content %} {% if edit %} @@ -54,15 +61,15 @@ {{ form.management_form }} - + {% for subform in form %} - - + + @@ -82,8 +89,8 @@ - - + + @@ -93,14 +100,14 @@ {% else %}

    Hodnocení:

    Problém{# 📖 #}🧍{# 🔵 #}🧍∑{# 💪 #}🧑‍🤝‍🧑{# ❤ #}🧑‍🤝‍🧑∑Deadline pro bodyZpětná vazba pro řešitele
    Problém{# 📖 #}🧍{# 🔵 #}🧍∑{# 💪 #}🧑‍🤝‍🧑{# ❤ #}🧑‍🤝‍🧑∑Deadline pro bodyZpětná vazba pro řešitele
    {{ subform.problem }} {{ subform.body }} {{ subform.body_celkem }}{{ subform.body_neprepocitane }}{{ subform.body_neprepocitane_celkem }}{{ subform.body_neprepocitane }}{{ subform.body_neprepocitane_celkem }} {{ subform.deadline_body }} {{ subform.feedback }} Smazat{{ form.empty_form.problem }} {{ form.empty_form.body }} {{ form.empty_form.body_celkem }}{{ form.empty_form.body_neprepocitane }}{{ form.empty_form.body_neprepocitane_celkem }}{{ form.empty_form.body_neprepocitane }}{{ form.empty_form.body_neprepocitane_celkem }} {{ form.empty_form.deadline_body }} {{ form.empty_form.feedback }} Smazat
    - + {% for h in hodnoceni %} - - + + {% endfor %} @@ -114,11 +121,11 @@
    {# 🔵 #}🧍∑
    Body, které dostává jeden řešitel za tento problém (součet za všechna řešení).
    -
    {# 💪 #}🧑‍🤝‍🧑
    -
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za toto řešení.
    +
    {# 💪 #}🧑‍🤝‍🧑
    +
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za toto řešení.
    -
    {# ❤ #}🧑‍🤝‍🧑∑
    -
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za tento problém (součet za všechna řešení).
    +
    {# ❤ #}🧑‍🤝‍🧑∑
    +
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za tento problém (součet za všechna řešení).
    From 02fe280d4aaa992b59afdf9802af56182c8c5047 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 21:10:32 +0100 Subject: [PATCH 130/515] =?UTF-8?q?neum=C3=ADm=20css,=20z=20toho=20si=20ni?= =?UTF-8?q?c=20ned=C4=9Blejte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 4314c9b7..6e6c337b 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -68,8 +68,8 @@ - - + + @@ -89,8 +89,8 @@ - - + + @@ -106,8 +106,8 @@ - - + + {% endfor %} From 50bdb19e1455df465af5dfaa38cbbc99da7659cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 21:20:01 +0100 Subject: [PATCH 131/515] =?UTF-8?q?smaz=C3=A1no=20FIXME=20(to=20u=C5=BE=20?= =?UTF-8?q?jsem=20ud=C4=9Blal)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 20cc4842..f325811a 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -82,8 +82,6 @@ Přidat hodnocení
    -{# FIXME Zablokovat ostatni při změně #} -
    Problém{# 📖 #}🧍{# 🔵 #}🧍∑{# 💪 #}🧑‍🤝‍🧑{# ❤ #}🧑‍🤝‍🧑∑Zpětná vazba od opravovatele
    Problém{# 📖 #}🧍{# 🔵 #}🧍∑{# 💪 #}🧑‍🤝‍🧑{# ❤ #}🧑‍🤝‍🧑∑Zpětná vazba od opravovatele
    {{ h.problem }} {{ h.body }} {{ h.body_celkem }}{{ h.body_neprepocitane }}{{ h.body_neprepocitane_celkem }}{{ h.body_neprepocitane }}{{ h.body_neprepocitane_celkem }} {{ h.feedback }}
    {{ subform.problem }} {{ subform.body }} {{ subform.body_celkem }}{{ subform.body_neprepocitane }}{{ subform.body_neprepocitane_celkem }}{{ subform.body_neprepocitane }}{{ subform.body_neprepocitane_celkem }} {{ subform.deadline_body }} {{ subform.feedback }} Smazat{{ form.empty_form.problem }} {{ form.empty_form.body }} {{ form.empty_form.body_celkem }}{{ form.empty_form.body_neprepocitane }}{{ form.empty_form.body_neprepocitane_celkem }}{{ form.empty_form.body_neprepocitane }}{{ form.empty_form.body_neprepocitane_celkem }} {{ form.empty_form.deadline_body }} {{ form.empty_form.feedback }} Smazat{{ h.problem }} {{ h.body }} {{ h.body_celkem }}{{ h.body_neprepocitane }}{{ h.body_neprepocitane_celkem }}{{ h.body_neprepocitane }}{{ h.body_neprepocitane_celkem }} {{ h.feedback }}
    From 04c3c6257cfee4dd9723a47db425d4a3ef237369 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 6 Feb 2023 21:56:06 +0100 Subject: [PATCH 132/515] =?UTF-8?q?Podpora=20cc=20a=20bcc=20v=20{%maillink?= =?UTF-8?q?%}=20[neotestov=C3=A1no]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/odevzdavatko/detail.html | 3 +++ odevzdavatko/views.py | 1 + various/templatetags/mail.py | 23 +++++++++++++++---- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 468b0322..73265563 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -21,6 +21,9 @@ ({% maillink r.osoba.email to=r.osoba.email subject=predmetmailu %}){% if forloop.revcounter0 != 0 %}, {% endif %} {% endfor %}

    +

    + {% maillink "Poslat mail všem řešitelům" bcc=maily_vsech_resitelu subject=predmetmailu %} +

    {% else %}

    Řešitelé: {{ object.resitele.all | join:", " }}

    {% endif %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 57822bf4..9ac1ac29 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -240,6 +240,7 @@ class DetailReseniView(DetailView): # Subject případného mailu (template neumí použitelně spojovat řetězce: https://stackoverflow.com/q/4386168) ctx["predmetmailu"] = "Oprava řešení M&M "+self.reseni.problem.first().hlavni_problem.nazev + ctx["maily_vsech_resitelu"] = [y for x in self.reseni.resitele.all().values_list('osoba__email') for y in x] return ctx def get(self, request, *args, **kwargs): diff --git a/various/templatetags/mail.py b/various/templatetags/mail.py index 972040f6..ecbb2a39 100644 --- a/various/templatetags/mail.py +++ b/various/templatetags/mail.py @@ -4,21 +4,34 @@ from urllib.request import quote as urlencode register = template.Library() @register.simple_tag -def mailurl(*, subject=None, body=None, to=[]): - """TODO: Dokumentace""" +def mailurl(*, subject=None, body=None, to=[], cc=[], bcc=[]): + """Tag na vytváření správně zakódované mailto: adresy + + Ref: RFC 6068, """ if isinstance(to, str): to = [to] + if isinstance(cc, str): + cc = [cc] + if isinstance(bcc, str): + bcc = [bcc] assert isinstance(to, list) + assert isinstance(cc, list) + assert isinstance(bcc, list) + # FIXME: adresa není správně zakódovaná, rozbije se to na adresách s divnými znaky parts = [ f'mailto:{str.join(",", to)}', ] - if len(to) < 1: + if len(to) + len(cc) + len(bcc) < 1: raise ValueError('Cannot mail to empty set of people') if subject: parts.append(f'subject={urlencode(subject)}') if body: parts.append(f'body={urlencode(body)}') + if len(cc) > 0: + parts.append(f'cc={str.join(",", cc)}') + if len(bcc) > 0: + parts.append(f'bcc={str.join(",", bcc)}') if len(parts) > 1: url = parts[0] + '?' + str.join('&', parts[1:]) @@ -27,8 +40,8 @@ def mailurl(*, subject=None, body=None, to=[]): return url @register.simple_tag -def maillink(text, subject=None, body=None, to=[], attrs=None): - url = mailurl(subject=subject, body=body, to=to) +def maillink(text, subject=None, body=None, to=[], cc=[], bcc=[], attrs=None): + url = mailurl(subject=subject, body=body, to=to, cc=cc, bcc=bcc) if not attrs: attrs = '' mezera = ' '*bool(attrs) full_link = f'{text}' From fdbbc9c242a68d8c2926f0ba60b1730c054483dd Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 6 Feb 2023 21:58:16 +0100 Subject: [PATCH 133/515] =?UTF-8?q?=C3=9Aprava=20testu=20na=20autocomplete?= =?UTF-8?q?,=20aby=20nefailoval?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … moc nahlas. --- api/tests/test_skola_autocomplete.py | 31 +++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/api/tests/test_skola_autocomplete.py b/api/tests/test_skola_autocomplete.py index 91e5a82b..a469e338 100644 --- a/api/tests/test_skola_autocomplete.py +++ b/api/tests/test_skola_autocomplete.py @@ -3,6 +3,7 @@ from django.urls import reverse import seminar.models as m import seminar.views as v from seminar.utils import sync_skoly +from unittest import expectedFailure class OrgSkolyAutocompleteTestCase(TestCase): @classmethod @@ -14,16 +15,16 @@ class OrgSkolyAutocompleteTestCase(TestCase): cls.spravna_data = [ ('gymnázium kolín', 53), ('kolín', 53), - ('gasoš', 96), + #('gasoš', 96), ('Rokycany', 96), - ('gasoš Rokycany', 96), - ('SPŠE Pardubice', 815), + #('gasoš Rokycany', 96), + #('SPŠE Pardubice', 815), ('Jaroše', 164), - ("Gymnázium, Brno, tř. Kpt. Jaroše", 164), + #("Gymnázium, Brno, tř. Kpt. Jaroše", 164), ("Jírovcova", 157), ('České Budějovice', 157), ("Gymnázium, České Budějovice, Jírovcova 8", 157), - ("první soukromé", 2), + #("první soukromé", 2), ("Gymnázium Elgartova", 147), ("Jihlava", 45), ('Milevsko', 223), @@ -37,6 +38,16 @@ class OrgSkolyAutocompleteTestCase(TestCase): ("J. S. Machar", 15), ("Brandýs", 15), ] + # Následující aktuálně neumíme matchnout. Jsou v separátním + # testu jako expected failure, kdyby / až začnou fungovat, tak + # je odsud odeberme a výš odkomentujme. + cls.failujici_data = [ + ('gasoš', 96), + ('gasoš Rokycany', 96), + ('SPŠE Pardubice', 815), + ("Gymnázium, Brno, tř. Kpt. Jaroše", 164), + ("první soukromé", 2), + ] def test_view_funguje(self): """Jen se pokusí udělat na ten view dotaz a kouká na odpověď""" @@ -52,6 +63,16 @@ class OrgSkolyAutocompleteTestCase(TestCase): resp = self.client.get(reverse('autocomplete_skola')+'?q='+pfx).json() ids = [int(x['id']) for x in resp['results']] self.assertIn(spravna_skola.id, ids, f"Škola nenalezena v odpovědi") + @expectedFailure + def test_skoly_vraceny_failujici(self): + """Orgové mají své školy v autocomplete (Expected Failure)""" + for pfx, id in self.failujici_data: + with self.subTest(prefix=pfx, spravne_id=id): + spravna_skola = m.Skola.objects.get(id=id) + # Zeptáme se view, co si myslí + resp = self.client.get(reverse('autocomplete_skola')+'?q='+pfx).json() + ids = [int(x['id']) for x in resp['results']] + self.assertIn(spravna_skola.id, ids, f"Škola nenalezena v odpovědi") def test_skoly_pocet(self): """Testuje, že se pro dané prefixy nevrací moc škol""" From 648084d1f96691b4e87ce53b1a0180887aa7c734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 22:09:57 +0100 Subject: [PATCH 134/515] =?UTF-8?q?add:=20zobrazov=C3=A1n=C3=AD=20max.=20p?= =?UTF-8?q?o=C4=8Dtu=20bod=C5=AF=20i=20v=20necelkem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index ebed2698..58d7768d 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -122,7 +122,9 @@ class JednoHodnoceniForm(forms.ModelForm): del(initial["body_neprepocitane_max"]) super().__init__(*args, initial=initial, **kwargs) if initial is not None: + self.fields['body'].widget.attrs['placeholder'] = body_max self.fields['body_celkem'].widget.attrs['placeholder'] = body_max + self.fields['body_neprepocitane'].widget.attrs['placeholder'] = body_neprepocitane_max self.fields['body_neprepocitane_celkem'].widget.attrs['placeholder'] = body_neprepocitane_max From 6f49ab3cfa507582e13112e5bcd4189ed0861cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 22:11:36 +0100 Subject: [PATCH 135/515] =?UTF-8?q?Jemn=C3=A9=20textov=C3=A9=20=C3=BApravy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index f325811a..db2b1630 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -112,12 +112,13 @@
    {% endif %} +

    Vysvětlivky:

    {# 📖 #}🧍
    -
    Body, které dostává jeden řešitel za toto řešení.
    +
    Body za toto řešení.
    {# 🔵 #}🧍∑
    -
    Body, které dostává jeden řešitel za tento problém (součet za všechna řešení).
    +
    Body za tento problém (součet za všechna řešení).
    {# 💪 #}🧑‍🤝‍🧑
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za toto řešení.
    From e0eb12cf9e3645cd8265b2c4b454bca12ce16a13 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 6 Feb 2023 22:31:42 +0100 Subject: [PATCH 136/515] =?UTF-8?q?=C5=A0koly=20jen=20zakomentovat,=20neps?= =?UTF-8?q?at=20expectedFailure=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Podle toho, jak dopadne PR se to buď aplikuje takto, nebo se tenhle commit revertne. --- api/tests/test_skola_autocomplete.py | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/api/tests/test_skola_autocomplete.py b/api/tests/test_skola_autocomplete.py index a469e338..9fc4aee6 100644 --- a/api/tests/test_skola_autocomplete.py +++ b/api/tests/test_skola_autocomplete.py @@ -3,7 +3,6 @@ from django.urls import reverse import seminar.models as m import seminar.views as v from seminar.utils import sync_skoly -from unittest import expectedFailure class OrgSkolyAutocompleteTestCase(TestCase): @classmethod @@ -12,6 +11,7 @@ class OrgSkolyAutocompleteTestCase(TestCase): sync_skoly('https://mam.mff.cuni.cz/') # Správné školy podle toho, co orgové poslali: (prefix, ID školy) # NOTE: Pozor, jedná se o databázové indexy. Pokud se to někdy rozbije, bude potřeba je přepsat nebo předělat na IZO + # TODO: Opravit zakomentované školy. cls.spravna_data = [ ('gymnázium kolín', 53), ('kolín', 53), @@ -38,16 +38,6 @@ class OrgSkolyAutocompleteTestCase(TestCase): ("J. S. Machar", 15), ("Brandýs", 15), ] - # Následující aktuálně neumíme matchnout. Jsou v separátním - # testu jako expected failure, kdyby / až začnou fungovat, tak - # je odsud odeberme a výš odkomentujme. - cls.failujici_data = [ - ('gasoš', 96), - ('gasoš Rokycany', 96), - ('SPŠE Pardubice', 815), - ("Gymnázium, Brno, tř. Kpt. Jaroše", 164), - ("první soukromé", 2), - ] def test_view_funguje(self): """Jen se pokusí udělat na ten view dotaz a kouká na odpověď""" @@ -63,16 +53,6 @@ class OrgSkolyAutocompleteTestCase(TestCase): resp = self.client.get(reverse('autocomplete_skola')+'?q='+pfx).json() ids = [int(x['id']) for x in resp['results']] self.assertIn(spravna_skola.id, ids, f"Škola nenalezena v odpovědi") - @expectedFailure - def test_skoly_vraceny_failujici(self): - """Orgové mají své školy v autocomplete (Expected Failure)""" - for pfx, id in self.failujici_data: - with self.subTest(prefix=pfx, spravne_id=id): - spravna_skola = m.Skola.objects.get(id=id) - # Zeptáme se view, co si myslí - resp = self.client.get(reverse('autocomplete_skola')+'?q='+pfx).json() - ids = [int(x['id']) for x in resp['results']] - self.assertIn(spravna_skola.id, ids, f"Škola nenalezena v odpovědi") def test_skoly_pocet(self): """Testuje, že se pro dané prefixy nevrací moc škol""" From 4f7b64fae2f5bdcfcadfb63c4f7bfbab2471f514 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 23:16:17 +0100 Subject: [PATCH 137/515] =?UTF-8?q?fix:=20maximum=20bod=C5=AF=20pro=20hodn?= =?UTF-8?q?ocen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 2d937a41..71b6fb51 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -171,7 +171,7 @@ class Hodnoceni(bm.SeminarModelBase): @property def body_max(self): - if not isinstance(Hodnoceni.objects.first().problem, am.Uloha): + if not isinstance(self.problem, am.Uloha): return None return self.problem.uloha.max_body From db16df391bffb35828abc96a37f73cc80fdef3ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 23:17:55 +0100 Subject: [PATCH 138/515] =?UTF-8?q?fix:=20maximum=20bod=C5=AF=20pro=20hodn?= =?UTF-8?q?ocen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 71b6fb51..ac6c097c 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -171,15 +171,15 @@ class Hodnoceni(bm.SeminarModelBase): @property def body_max(self): - if not isinstance(self.problem, am.Uloha): + if self.body_neprepocitane_max is None: return None - return self.problem.uloha.max_body + return self.vzorecek_na_prepocet(self.body_neprepocitane_max, self.reseni.resitele.count()) @property def body_neprepocitane_max(self): - if self.body_max is None: + if not isinstance(self.problem, am.Uloha): return None - return self.inverze_vzorecku_na_prepocet(self.body_max, self.reseni.resitele.count()) + return self.problem.uloha.max_body def __str__(self): return "{}, {}, {}".format(self.problem, self.reseni, self.body) From 2b1c5e4e6ed1a11b354510b3d44dd9ec34fdafd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Feb 2023 23:26:11 +0100 Subject: [PATCH 139/515] =?UTF-8?q?fix:=20maximum=20bod=C5=AF=20pro=20hodn?= =?UTF-8?q?ocen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index ac6c097c..0fad97f8 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -177,7 +177,7 @@ class Hodnoceni(bm.SeminarModelBase): @property def body_neprepocitane_max(self): - if not isinstance(self.problem, am.Uloha): + if not isinstance(self.problem.get_real_instance(), am.Uloha): return None return self.problem.uloha.max_body From 13c8c29bb0be85ef39c97607268739c606856245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 13 Feb 2023 20:47:42 +0100 Subject: [PATCH 140/515] =?UTF-8?q?fix:=20dvojn=C3=A1sobky=20v=20tabulce?= =?UTF-8?q?=20do=C5=A1l=C3=BDch=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 9ac1ac29..c5a93fe1 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -114,7 +114,7 @@ class TabulkaOdevzdanychReseniView(ListView): qs = super().get_queryset() if self.jen_neobodovane: qs = qs.filter(body__isnull=True) - qs = qs.filter(problem__in=self.problemy, reseni__in=self.reseni, reseni__resitele__in=self.resitele).select_related('reseni', 'problem').prefetch_related('reseni__resitele__osoba') + qs = qs.filter(problem__in=self.problemy, reseni__in=self.reseni, reseni__resitele__in=self.resitele).select_related('reseni', 'problem').prefetch_related('reseni__resitele__osoba').distinct() # FIXME tohle je ošklivé, na špatném místě a pomalé. Ale moc mě štvalo, že musím hledat správná místa v tabulce. self.problemy = self.problemy.filter(id__in=qs.values("problem__id")) return qs From c8516d6eda5eeea448ed529808b79ab27051a9ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 13 Feb 2023 22:32:14 +0100 Subject: [PATCH 141/515] =?UTF-8?q?add:=20checky=20v=20hodnot=C3=ADtku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 ++ odevzdavatko/views.py | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 87e52632..f30d52c7 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -62,6 +62,8 @@

    Neveřejná poznámka:

    {{ poznamka_form.poznamka }}

    + +{% for h in hodnoceni %}{% if h.body < 0.0 %} {% endif %}{% endfor %} {# Hodnocení: #}

    Hodnocení:

    diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 9f1c45c0..322b4d69 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -315,7 +315,10 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): zmeny_bodu = [it for it in form.changed_data if it.startswith("body")] if len(zmeny_bodu) == 1: hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]]) - hodnoceni.save() + if len(zmeny_bodu) != 1 and len(zmeny_bodu) != 4: + print(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.") + logger.warning(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.") + hodnoceni.body = -0.1 hodnoceni.save() return redirect(success_url) From d66effcd461ec87c944eefb09bda26333b1ad2d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 13 Feb 2023 22:46:54 +0100 Subject: [PATCH 142/515] =?UTF-8?q?move:=20p=C5=99esunuty=20vzore=C4=8Dky?= =?UTF-8?q?=20na=20p=C5=99epo=C4=8Det=20bod=C5=AF=20do=20seminar.utils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/odevzdavatko.py | 23 +++++++---------------- seminar/utils.py | 9 +++++++++ 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index 0fad97f8..744fe38c 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -1,4 +1,3 @@ -import decimal import os import reversion @@ -15,6 +14,8 @@ from seminar.models import personalni as pm from seminar.models import treenode as tm from seminar.models import base as bm +from seminar.utils import vzorecek_na_prepocet, inverze_vzorecku_na_prepocet + @reversion.register(ignore_duplicates=True) class Reseni(bm.SeminarModelBase): @@ -116,16 +117,6 @@ class Hodnoceni(bm.SeminarModelBase): feedback = models.TextField('zpětná vazba', blank=True, default='', help_text='Zpětná vazba řešiteli (plain text)') - # TODO najít správné místo - @staticmethod - def vzorecek_na_prepocet(body, resitelu): - return body * 3 / (resitelu + 2) - - # TODO najít správné místo - @staticmethod - def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: - return round(body * (resitelu + 2) / 3, 1) - @property def body_celkem(self): # FIXME řeším jen prvního řešitele. @@ -147,33 +138,33 @@ class Hodnoceni(bm.SeminarModelBase): def body_neprepocitane(self): if self.body is None: return None - return self.inverze_vzorecku_na_prepocet(self.body, self.reseni.resitele.count()) + return inverze_vzorecku_na_prepocet(self.body, self.reseni.resitele.count()) @body_neprepocitane.setter def body_neprepocitane(self, value): if value is None: self.body = None else: - self.body = self.vzorecek_na_prepocet(value, self.reseni.resitele.count()) + self.body = vzorecek_na_prepocet(value, self.reseni.resitele.count()) @property def body_neprepocitane_celkem(self): if self.body_celkem is None: return None - return self.inverze_vzorecku_na_prepocet(self.body_celkem, self.reseni.resitele.count()) + return inverze_vzorecku_na_prepocet(self.body_celkem, self.reseni.resitele.count()) @body_neprepocitane_celkem.setter def body_neprepocitane_celkem(self, value): if value is None: self.body = None else: - self.body_celkem = self.vzorecek_na_prepocet(value, self.reseni.resitele.count()) + self.body_celkem = vzorecek_na_prepocet(value, self.reseni.resitele.count()) @property def body_max(self): if self.body_neprepocitane_max is None: return None - return self.vzorecek_na_prepocet(self.body_neprepocitane_max, self.reseni.resitele.count()) + return vzorecek_na_prepocet(self.body_neprepocitane_max, self.reseni.resitele.count()) @property def body_neprepocitane_max(self): diff --git a/seminar/utils.py b/seminar/utils.py index e7d52529..4ab547ab 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- import datetime +import decimal from django.contrib.auth import get_user_model from django.contrib.auth.decorators import permission_required, \ @@ -44,6 +45,14 @@ AnonymousUser.je_org = False AnonymousUser.je_resitel = False +def vzorecek_na_prepocet(body, resitelu): + return body * 3 / (resitelu + 2) + + +def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: + return round(body * (resitelu + 2) / 3, 1) + + class FirstTagParser(HTMLParser): def __init__(self, *args, **kwargs): self.firstTag = None From 6742ecdb8b45a1769d30abe9a568bb71f7df2673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 13 Feb 2023 22:48:25 +0100 Subject: [PATCH 143/515] =?UTF-8?q?add:=20okomentov=C3=A1ny=20vzore=C4=8Dk?= =?UTF-8?q?y=20na=20p=C5=99epo=C4=8Det=20bod=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/seminar/utils.py b/seminar/utils.py index 4ab547ab..a4197d28 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -46,10 +46,12 @@ AnonymousUser.je_resitel = False def vzorecek_na_prepocet(body, resitelu): + """ Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """ return body * 3 / (resitelu + 2) def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: + """ Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """ return round(body * (resitelu + 2) / 3, 1) From d5cf81c32a455b8b4d669d2c7d85045451fd888c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 21 Feb 2023 17:08:10 +0100 Subject: [PATCH 144/515] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20titulku=20k=20?= =?UTF-8?q?v=C3=BDpisu=20deadlinu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Po najetí myší řekne, co znamenají symboly… --- seminar/templatetags/deadliny.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/templatetags/deadliny.py b/seminar/templatetags/deadliny.py index 95db664b..199a1eef 100644 --- a/seminar/templatetags/deadliny.py +++ b/seminar/templatetags/deadliny.py @@ -26,7 +26,7 @@ def deadline_html(deadline: m.Deadline): m.Deadline.TYP_PRVNI_A_SOUS: 'sous_deadline', m.Deadline.TYP_CISLA: 'final_deadline', } - return mark_safe(f'{text}') + return mark_safe(f'{text}') @register.filter(name='zkrat_nazev_problemu') def zkrat_nazev_problemu(nazev,width): @@ -35,4 +35,4 @@ def zkrat_nazev_problemu(nazev,width): nazev = nazev[:width-1] + "..." else: nazev = nazev[:width] + "..." - return nazev \ No newline at end of file + return nazev From 01f3537cef1c01001b57c5691880e4b569b49f24 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 22 Feb 2023 07:15:18 +0100 Subject: [PATCH 145/515] =?UTF-8?q?Dovolme=20orgovi=20kouknout=20se=20na?= =?UTF-8?q?=20=C5=99e=C5=A1itelsk=C3=BD=20n=C3=A1hled=20=C5=99e=C5=A1en?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Orgovi se může hodit vidět, jak zpětnou vazbu uvidí řešitel. Možná by taky nebylo špatné odkázat na řešitelskou stránku z orgovské… --- odevzdavatko/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index c5a93fe1..2390d27f 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -253,8 +253,8 @@ class DetailReseniView(DetailView): return response def check_access(self): - """ Řešitel musí být součástí řešení, jinak se na něj nemá co dívat. """ - if not self.object.resitele.filter(osoba__user=self.request.user).exists(): + """ Řešitel musí být součástí řešení, jinak se na něj nemá co dívat. Případně to může být org.""" + if not self.object.resitele.filter(osoba__user=self.request.user).exists() and not self.request.user.je_org: raise PermissionDenied() From 32dc97e1c4b1b9cbf65c7f7763ae046bfc75b4c7 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 22 Feb 2023 07:19:33 +0100 Subject: [PATCH 146/515] =?UTF-8?q?Mo=C5=BEnost=20p=C5=99idat=20si=20do=20?= =?UTF-8?q?n=C3=A1zv=C5=AF=20p=C5=99=C3=ADloh=20=C5=99e=C5=A1en=C3=AD=20i?= =?UTF-8?q?=20jm=C3=A9na=20=C5=99e=C5=A1itele?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Budu zlobit a vysvětlení napíšu až do pull-requestu. Tady to IMHO čtu jen já :-P Pull-Request-URL: https://gitea.ks.matfyz.cz/mam/mamweb/pulls/26 (Adresa platí, pokud mě nikdo nepředběhne :-P) --- .../templates/odevzdavatko/detail.html | 25 +++++++++++++- odevzdavatko/templatetags/__init__.py | 0 odevzdavatko/templatetags/jmena.py | 9 +++++ personalni/utils.py | 11 +++++++ various/utils.py | 33 +++++++++++++++++++ 5 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 odevzdavatko/templatetags/__init__.py create mode 100644 odevzdavatko/templatetags/jmena.py create mode 100644 personalni/utils.py create mode 100644 various/utils.py diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 7414b517..7443afa4 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -2,12 +2,26 @@ {% load static %} {% load deadliny %} {% load mail %} +{% load jmena %} {% block content %} {% if edit %} + {% endif %} @@ -40,11 +54,20 @@ {% for priloha in object.prilohy.all %} - + {% endfor %}
    SouborŘešitelova poznámkaDatum
    {{ priloha.split | last }}{{ priloha.split | last }} {{ priloha.res_poznamka }} {{ priloha.vytvoreno }}
    +{% if edit %} {# FIXME: tohle nesouvisí s editací, ale s tím, jestli je člověk org… #} + {# FIXME: vypadá to hnusně. #} + + +{% endif %} {% else %}

    Žádné přílohy

    {% endif %} diff --git a/odevzdavatko/templatetags/__init__.py b/odevzdavatko/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/odevzdavatko/templatetags/jmena.py b/odevzdavatko/templatetags/jmena.py new file mode 100644 index 00000000..9fe91ff5 --- /dev/null +++ b/odevzdavatko/templatetags/jmena.py @@ -0,0 +1,9 @@ +from django import template +register = template.Library() + +from personalni.utils import normalizuj_jmeno +import seminar.models as m # jen kvůli typové anotaci… + +@register.filter +def jmeno_jako_prefix(o: m.Osoba): + return normalizuj_jmeno(o).replace(' ', '_') diff --git a/personalni/utils.py b/personalni/utils.py new file mode 100644 index 00000000..0701d66a --- /dev/null +++ b/personalni/utils.py @@ -0,0 +1,11 @@ +import seminar.models as m +from various.utils import bez_diakritiky_translate +import re + +def normalizuj_jmeno(o: m.Osoba) -> str: + # FIXME: Možná není potřeba vázat na model? + cele_jmeno = f'{o.jmeno} {o.prijmeni}' + cele_jmeno = cele_jmeno.translate(bez_diakritiky_translate) + cele_jmeno = re.sub(r'[^a-zA-Z- ]', '', cele_jmeno) + return cele_jmeno + diff --git a/various/utils.py b/various/utils.py new file mode 100644 index 00000000..5905b2f6 --- /dev/null +++ b/various/utils.py @@ -0,0 +1,33 @@ +bez_diakritiky = ({} + # FIXME: funguje jen pro český a slovenský text, jinak jsou špatně + # transliterace. Potenciální řešení: + # https://stackoverflow.com/questions/517923/what-is-the-best-way-to-remove-accents-normalize-in-a-python-unicode-string + # (ale přidává to další závislosti…) + + # Tisknutelné ASCII + | {chr(a): chr(a) for a in range(32, 126+1)} + + # České, slovenské a blízké diakritiky a divnoznaky + | { x: 'a' for x in 'áÁäÄ'} + | { x: 'c' for x in 'čČ'} + | { x: 'd' for x in 'ďĎ'} + | { x: 'e' for x in 'éÉěĚëË'} + | { x: 'i' for x in 'íÍ'} + | { x: 'l' for x in 'ľĽĺĹ'} + | { x: 'n' for x in 'ňŇ'} + | { x: 'o' for x in 'óÓöÖôÔ'} + | { x: 'r' for x in 'řŘŕŔ'} + | { x: 's' for x in 'šŠßẞ'} + | { x: 't' for x in 'ťŤ'} + | { x: 'u' for x in 'úÚůŮ'} + | { x: 'y' for x in 'ýÝ'} + | { x: 'z' for x in 'žŽ'} + ) + +# Tabulka pro str.translate +class _bez_diakritiky_translate: + def __getitem__(self, it): + return ord(bez_diakritiky.get(chr(it), None)) +bez_diakritiky_translate = _bez_diakritiky_translate() + +# TODO: testy? From e42b6abec548849bbbaa452f2c74cf86247348b8 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 27 Feb 2023 20:25:45 +0100 Subject: [PATCH 147/515] =?UTF-8?q?Zru=C5=A1en=C3=AD=20console.log-=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 7443afa4..ef1f474f 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -11,10 +11,8 @@ -{% for h in hodnoceni %}{% if h.body < 0.0 %} {% endif %}{% endfor %} +{% for h in hodnoceni %}{% if h.body < 0.0 %} + +{% endif %}{% endfor %} + + {# Hodnocení: #}

    Hodnocení:

    From 9868bff3293414224712803e6c8242d44dca154b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 20:11:50 +0100 Subject: [PATCH 150/515] fuj, print --- odevzdavatko/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 322b4d69..75de1192 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -316,7 +316,6 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): if len(zmeny_bodu) == 1: hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]]) if len(zmeny_bodu) != 1 and len(zmeny_bodu) != 4: - print(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.") logger.warning(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.") hodnoceni.body = -0.1 hodnoceni.save() From 6e1b1ef4e8303c699321f58f5f7666bf5957dc8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 20:16:36 +0100 Subject: [PATCH 151/515] =?UTF-8?q?Koment=C3=A1=C5=99=204=20zm=C4=9Bny=20?= =?UTF-8?q?=3D=20beze=20zm=C4=9Bny?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 75de1192..eb4dca0e 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -315,7 +315,8 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): zmeny_bodu = [it for it in form.changed_data if it.startswith("body")] if len(zmeny_bodu) == 1: hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]]) - if len(zmeny_bodu) != 1 and len(zmeny_bodu) != 4: + # > jedna změna je špatně, ale 4 "změny" znamenají že nebylo nic zadáno + if len(zmeny_bodu) > 1 and len(zmeny_bodu) != 4: logger.warning(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.") hodnoceni.body = -0.1 hodnoceni.save() From d63b5286a46c75eb2afe3e7252239255c03f04fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 21:14:58 +0100 Subject: [PATCH 152/515] =?UTF-8?q?N=C3=A1st=C5=99el=20n=C3=A1vodu=20v=20h?= =?UTF-8?q?odnot=C3=ADtku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/odevzdavatko/detail.html | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index c4e109e4..131c3de0 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -163,14 +163,39 @@
    Body za toto řešení.
    {# 🔵 #}🧍∑
    -
    Body za tento problém (součet za všechna řešení).
    +
    Body za tento problém/úlohu (součet za všechna řešení).
    {# 💪 #}🧑‍🤝‍🧑
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za toto řešení.
    {# ❤ #}🧑‍🤝‍🧑∑
    -
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za tento problém (součet za všechna řešení).
    +
    Body, které by dostal tým, kdyby to řešil jako jeden řešitel, za tento problém/úlohu (součet za všechna řešení).
    +{% if edit %} +

    Návod pro hodnocení:

    +Sloupce: +
      +
    1. Pokud to neudělal řešitel, je třeba pomocí pluska přidat řádky (případně křížkem smazat) a vyplnit problémy tak, aby zde byly všechny, které řešení řeší (body zadáváme přímo k úlohám, ne k témátku samotnému).
    2. +
    3. Pak je třeba do jednoho ze 2 nebo 4 sloupců vyplnit body (lze udělovat desetiny, setiny už udělovat nejde): +
        +
      • TLDR: pokud si počítáš a kontroluješ vše sám, vyplňuj do nejlevějšího. Pokud naopak vždy vyplňuješ to, kolik řešení má dostat bodů (bez ohledu na počet řešitelů a předchozí odevzdání), vyplňuj nejpravější
      • +
      • Zaprvé je třeba dávat pozor, že řešitel už mohl dostat body za danou úlohu (to je rozdíl mezi lichými a sudými sloupci).
      • +
      • Zadruhé řešení na kterém se spolupracovalo dostává body přepočítané podle vzorečku zde dole. To dělá rozdíl mezi prvními a druhými dvěma sloupci, pokud se oboje zobrazují.
      • +
      +
    4. +
    5. Pokud nemáš důvod, deadline neměň. Sloupeček s deadlinem znamená, do kterého deadlinu se započítají body (nemusí se shodovat s deadlinem řešení).
    6. +
    7. Poslední sloupec je na zpětnou vazbu řešiteli, tedy (na rozdíl od Neveřejné poznámky, která je určena pro synchronizaci orgů) ji uvidí řešitelé. Zatím jen pasivně (nechodí e-mail). Pohled řešitele si můžete prohlédnout zde. Pokud chcete z nějakého důvodu napsat řešitelům e-mail, klikněte na „Poslat mail všem řešitelům“.
    8. +
    + +Další poznámky +
      +
    • Ne, soubory si zatím nejde stáhnout lépe, než proklikáním všech řešeních. Stejně tak nejde hromadně bodovat. Třeba někdy půjde.
    • +
    • Pokud řešitel odevzdal něco nesouvisejícího, nebo něco duplicitně, tak mu za to dejte nulu a jako problém nastavte něco, co odevzdal (ať se mu ve výsledkovce nezobrazuje 0 na špatném místě). A upozorni ho.
    • +
    • Ano, lze zadávat záporné body (např. za podvádění), web na vás bude silně upozorňovat, ale jinak mu to nevadí.
    • +
    • Libovolné problémy s hodnotítkem řeš s {% maillink 'webaři' to='web@mam.mff.cuni.cz' subject='Hodnotítko' %}.
    • +
    +{% endif %} + {% endblock %} From 84eecdae189b400f0f1bf9d6661929aa0213f429 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 21:31:17 +0100 Subject: [PATCH 153/515] =?UTF-8?q?Oprava=20e-mailu=20o=20vyd=C3=A1n=C3=AD?= =?UTF-8?q?=20nov=C3=A9ho=20=C4=8D=C3=ADsla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/tvorba.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index f2c10e3e..fe920806 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -289,7 +289,7 @@ class Cislo(SeminarModelBase): email.send() posli(text_mailu, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM)) - posli(text_mailu + 'P. S. Také by vám brzy měla přijít papírová verze. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Děkujeme. (Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem.)\n', + posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n', resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM)) def save(self, *args, **kwargs): From 27b38e6b4da82c549a7dc9eb4b0d75f51911654f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 21:38:16 +0100 Subject: [PATCH 154/515] =?UTF-8?q?Korektury=20n=C3=A1vodu=20na=20hodnot?= =?UTF-8?q?=C3=ADtko.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/detail.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/detail.html b/odevzdavatko/templates/odevzdavatko/detail.html index 131c3de0..5a43c4b5 100644 --- a/odevzdavatko/templates/odevzdavatko/detail.html +++ b/odevzdavatko/templates/odevzdavatko/detail.html @@ -180,9 +180,10 @@ Sloupce:
  • Pokud to neudělal řešitel, je třeba pomocí pluska přidat řádky (případně křížkem smazat) a vyplnit problémy tak, aby zde byly všechny, které řešení řeší (body zadáváme přímo k úlohám, ne k témátku samotnému).
  • Pak je třeba do jednoho ze 2 nebo 4 sloupců vyplnit body (lze udělovat desetiny, setiny už udělovat nejde):
      -
    • TLDR: pokud si počítáš a kontroluješ vše sám, vyplňuj do nejlevějšího. Pokud naopak vždy vyplňuješ to, kolik řešení má dostat bodů (bez ohledu na počet řešitelů a předchozí odevzdání), vyplňuj nejpravější
    • +
    • TLDR: pokud si počítáš a kontroluješ vše sám, vyplňuj do nejlevějšího. Pokud naopak vždy vyplňuješ to, kolik řešení má dostat bodů (bez ohledu na počet řešitelů a předchozí odevzdání), vyplňuj nejpravější.
    • Zaprvé je třeba dávat pozor, že řešitel už mohl dostat body za danou úlohu (to je rozdíl mezi lichými a sudými sloupci).
    • -
    • Zadruhé řešení na kterém se spolupracovalo dostává body přepočítané podle vzorečku zde dole. To dělá rozdíl mezi prvními a druhými dvěma sloupci, pokud se oboje zobrazují.
    • +
    • Zadruhé řešení, na kterém se spolupracovalo, dostává body přepočítané podle vzorečku zde dole. To dělá rozdíl mezi prvními a druhými dvěma sloupci, pokud se oboje zobrazují.
    • +
    • Co který sloupec znamená, je napsáno výše ve vysvětlivkách.
  • Pokud nemáš důvod, deadline neměň. Sloupeček s deadlinem znamená, do kterého deadlinu se započítají body (nemusí se shodovat s deadlinem řešení).
  • @@ -191,9 +192,10 @@ Sloupce: Další poznámky
      -
    • Ne, soubory si zatím nejde stáhnout lépe, než proklikáním všech řešeních. Stejně tak nejde hromadně bodovat. Třeba někdy půjde.
    • +
    • Pokud chceš zadané body smazat (rozmyslel sis to a ohodnotíš to později), smaž body v libovolném sloupeci.
    • +
    • Ne, soubory si zatím nejde stáhnout lépe než proklikáním všech řešeních. Stejně tak nejde hromadně bodovat. Třeba někdy půjde.
    • Pokud řešitel odevzdal něco nesouvisejícího, nebo něco duplicitně, tak mu za to dejte nulu a jako problém nastavte něco, co odevzdal (ať se mu ve výsledkovce nezobrazuje 0 na špatném místě). A upozorni ho.
    • -
    • Ano, lze zadávat záporné body (např. za podvádění), web na vás bude silně upozorňovat, ale jinak mu to nevadí.
    • +
    • Ano, lze zadávat záporné body (např. za podvádění), web vás bude silně upozorňovat, ale jinak mu to nevadí.
    • Libovolné problémy s hodnotítkem řeš s {% maillink 'webaři' to='web@mam.mff.cuni.cz' subject='Hodnotítko' %}.
    {% endif %} From ea46d09e53f7e3301447fed1f338eefd132eb442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 22:11:58 +0100 Subject: [PATCH 155/515] =?UTF-8?q?Defaultn=C4=9B=20e-mail=20o=20nov=C3=A9?= =?UTF-8?q?m=20=C4=8D=C3=ADsle=20zas=C3=ADlat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 2 +- seminar/models/tvorba.py | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/personalni/forms.py b/personalni/forms.py index f9d90182..e57031d1 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -69,7 +69,7 @@ class PrihlaskaForm(PasswordResetForm): max_value=date.today().year+8, required=True) zasilat = forms.ChoiceField(label='Kam zasílat čísla',choices = Resitel.ZASILAT_CHOICES, required=True) - zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False) + zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True) jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index fe920806..f2feb569 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -288,8 +288,10 @@ class Cislo(SeminarModelBase): email.send() - posli(text_mailu, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM)) - posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n', + paticka = "---\nK odběru těchto e-mailů jste se přihlásili na stránkách https://mam.matfyz.cz. Z odběru se lze odhlásit na https://mam.matfyz.cz/resitel/osobni-udaje/" + + posli(text_mailu + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM)) + posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM)) def save(self, *args, **kwargs): From e7a7dad50cd8a8a4caf869254e38a176ddb4df8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 22:15:41 +0100 Subject: [PATCH 156/515] =?UTF-8?q?Defaultn=C4=9B=20nezas=C3=ADlat=20?= =?UTF-8?q?=C4=8D=C3=ADslo=20pap=C3=ADrov=C4=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/forms.py b/personalni/forms.py index e57031d1..735e1a57 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -68,7 +68,7 @@ class PrihlaskaForm(PasswordResetForm): min_value=date.today().year, max_value=date.today().year+8, required=True) - zasilat = forms.ChoiceField(label='Kam zasílat čísla',choices = Resitel.ZASILAT_CHOICES, required=True) + zasilat = forms.ChoiceField(label='Kam zasílat čísla',choices = Resitel.ZASILAT_CHOICES, required=True, initial=Resitel.ZASILAT_NIKAM) zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True) jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True) From 1dd51afb11116ee221ff35cc09aacc55abe5a0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 6 Mar 2023 22:24:33 +0100 Subject: [PATCH 157/515] =?UTF-8?q?Zas=C3=ADl=C3=A1n=C3=AD=20je=20zdarma?= =?UTF-8?q?=20(Rozhodl=20jsem=20se=20pro=20formulaci=20nen=C3=AD=20zpoplat?= =?UTF-8?q?n=C4=9Bno,=20proto=C5=BEe=20z=20na=C5=A1eho=20pohledu=20zdarma?= =?UTF-8?q?=20nen=C3=AD=20a=20nechci=20vyvol=C3=A1vat=20ten=20pocit,=20?= =?UTF-8?q?=C5=BEe=20n=C3=A1s=20to=20tak=C3=A9=20nic=20nestoj=C3=AD.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/forms.py b/personalni/forms.py index 735e1a57..2494d08a 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -68,7 +68,7 @@ class PrihlaskaForm(PasswordResetForm): min_value=date.today().year, max_value=date.today().year+8, required=True) - zasilat = forms.ChoiceField(label='Kam zasílat čísla',choices = Resitel.ZASILAT_CHOICES, required=True, initial=Resitel.ZASILAT_NIKAM) + zasilat = forms.ChoiceField(label='Kam zasílat čísla (zasílání není zpoplatněno)',choices = Resitel.ZASILAT_CHOICES, required=True, initial=Resitel.ZASILAT_NIKAM) zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True) jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True) From cfdbcc8ee1f9eb54cc932d74d07d323e3b85c63e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 7 Mar 2023 23:59:42 +0100 Subject: [PATCH 158/515] =?UTF-8?q?Omezen=C3=AD=20na=20po=C4=8Det=20adres?= =?UTF-8?q?=20v=20hlavi=C4=8Dce=20mail=C5=AF=20z=20testwebu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Není úplně žádoucí, aby se v mailu z testwebu poslala spousta adres, protože je to náchylné na automatické zpracování v případě, že se k takovému mailu dostane někdo další. --- various/mail_prefixer.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/various/mail_prefixer.py b/various/mail_prefixer.py index 14d4386b..2af0b3f7 100644 --- a/various/mail_prefixer.py +++ b/various/mail_prefixer.py @@ -7,6 +7,11 @@ Used to distinguish testing emails from production ones.""" from django.core.mail.backends.smtp import EmailBackend as DjangoSMTPBackend from django.conf import settings +def omezovatko_poctu_mailu(maily:list, maximum:int) -> str: + if len(maily) <= maximum: return str(maily) + # Aspoň zhruba simulujeme tisk pole… + return '[' + ", ".join(f"'{mail}'" for mail in maily[:maximum - 1]) + f', … ({len(maily)} e-mailů) ]' + class PrefixingMailBackend(DjangoSMTPBackend): # method _send is not probably meant to be monkey_patched, so we patch send_messages instead. def send_messages(self, messages): @@ -16,10 +21,13 @@ class PrefixingMailBackend(DjangoSMTPBackend): if message.from_email != settings.SERVER_EMAIL: message.subject = prefix + ' ' + message.subject + to = omezovatko_poctu_mailu(message.to, 3) + cc = omezovatko_poctu_mailu(message.cc, 3) + bcc = omezovatko_poctu_mailu(message.bcc, 3) message.body = f"""Bylo by posláno na e-maily: - To: {message.to} - Cc: {message.cc} - Bcc: {message.bcc} + To: {to} + Cc: {cc} + Bcc: {bcc} """+ "\n\n" + message.body message.to = settings.TESTOVACI_EMAILOVA_KONFERENCE message.cc = [] From c8023244bd539ef77092e6d5c408419b62ad2773 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 13 Mar 2023 23:35:04 +0100 Subject: [PATCH 159/515] =?UTF-8?q?Reforma=20p=C5=99ihl=C3=A1=C5=A1ky=20a?= =?UTF-8?q?=20editace=20osobn=C3=ADch=20dat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/forms.py | 216 ++++++------------ .../templates/personalni/udaje/edit.html | 100 +------- .../templates/personalni/udaje/prihlaska.html | 135 ++--------- .../templates/personalni/udaje/udaje.html | 75 ++++++ 4 files changed, 166 insertions(+), 360 deletions(-) create mode 100644 personalni/templates/personalni/udaje/udaje.html diff --git a/personalni/forms.py b/personalni/forms.py index 2494d08a..3199a8a2 100644 --- a/personalni/forms.py +++ b/personalni/forms.py @@ -25,106 +25,85 @@ class TelInput(forms.TextInput): input_pattern="^[+]?[()/0-9. -]{9,}$" -class PrihlaskaForm(PasswordResetForm): - username = forms.CharField(label='Přihlašovací jméno', - max_length=256, - required=True, - help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři') +class UdajeForm(forms.Form): + username = None + err_logger = logging.getLogger('seminar.prihlaska.problem') jmeno = forms.CharField(label='Jméno', max_length=256, required=True) prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False) prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) - pohlavi_muz = forms.ChoiceField(label='Pohlaví', - choices = ((True,'muž'),(False,'žena')), required=True) - email = forms.EmailField(label='E-mail',max_length=256, required=True) - telefon = forms.CharField(widget=TelInput(),label='Telefon',max_length=256, required=False) - datum_narozeni = forms.DateField(widget=DateInput(),label='Datum narození', required=False) + pohlavi_muz = forms.ChoiceField(label='Pohlaví', choices=((True, 'muž'), (False, 'žena')), required=True) + email = forms.EmailField(label='E-mail', max_length=256, required=True) + telefon = forms.CharField(widget=TelInput(), label='Telefon', max_length=256, required=False) + datum_narozeni = forms.DateField(widget=DateInput(), label='Datum narození', required=False) ulice = forms.CharField(label='Ulice a číslo popisné', max_length=256, required=False) mesto = forms.CharField(label='Město', max_length=256, required=False) psc = forms.CharField(label='PSČ', max_length=32, required=False) - stat = forms.ChoiceField(label='Stát', - choices = (('CZ', 'Česká Republika'), - ('SK', 'Slovenská Republika'), - ('other', 'Jiné')), - required=False) + stat = forms.ChoiceField(label='Stát', choices=(('CZ', 'Česká republika'), ('SK', 'Slovenská republika'), ('other', 'Jiné')), required=False) stat_text = forms.CharField(label='Stát', max_length=256, required=False) - skola = forms.ModelChoiceField(label="Škola", + skola = forms.ModelChoiceField( + label="Škola", queryset=Skola.objects.all(), widget=autocomplete.ModelSelect2( url='autocomplete_skola', - attrs = {'data-placeholder--id': '-1', - 'data-placeholder--text' : '---', - 'data-allow-clear': 'true'}) - ,required=False) - + attrs={ + 'data-placeholder--id': '-1', + 'data-placeholder--text': '---', + 'data-allow-clear': 'true' + } + ), + required=False, + ) + skola_nazev = forms.CharField(label='Název školy', max_length=256, required=False) skola_adresa = forms.CharField(label='Adresa školy', max_length=256, required=False) -# trida = forms.CharField(label='Třída',max_length=10, required=True) - rok_maturity = forms.IntegerField( - label='Rok maturity', - min_value=date.today().year, + label='Rok maturity', + min_value=date.today().year, max_value=date.today().year+8, - required=True) - zasilat = forms.ChoiceField(label='Kam zasílat čísla (zasílání není zpoplatněno)',choices = Resitel.ZASILAT_CHOICES, required=True, initial=Resitel.ZASILAT_NIKAM) - zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True) - - jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True) + required=True, + ) - gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True) - spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False) - - def clean_username(self): - err_logger = logging.getLogger('seminar.prihlaska.problem') - username = self.cleaned_data.get('username') - try: - User.objects.get(username=username) - msg = "Username {} exists".format(username) - err_logger.info(msg) - raise forms.ValidationError('Přihlašovací jméno je již použito') + zasilat = forms.ChoiceField(label='Kam zasílat (odměny, pozvánky, případně čísla nebo propagační materiály)', choices=[it for it in Resitel.ZASILAT_CHOICES if it[0] != Resitel.ZASILAT_NIKAM], required=True, initial=Resitel.ZASILAT_DOMU) + zasilat_cislo_papirove = forms.BooleanField(label='Chci dostávat čísla poštou (zasílání není zpoplatněno)', required=False, initial=False) + zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat e-mailem upozornění na vydání nového čísla', required=False, initial=True) + spam = forms.BooleanField(label='Souhlasím se zasíláním propagačních materiálů od MFF UK', required=False) - except ObjectDoesNotExist: - pass - return username + def clean_prezdivka_resitele(self): + prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') + if prezdivka_resitele == '': + return prezdivka_resitele + if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).exclude(osoba__user__username=self.username).count() > 0: + raise forms.ValidationError('Přezdívka je již použita') + return prezdivka_resitele def clean_email(self): - err_logger = logging.getLogger('seminar.prihlaska.problem') email = self.cleaned_data.get('email') try: - osoba = Osoba.objects.get(email=email) + osoba = Osoba.objects.exclude(user__username=self.username).get(email=email) msg = "Email {} exists".format(email) if osoba.user is not None: - err_logger.info(msg) + self.err_logger.info(msg) raise forms.ValidationError('E-mail je již použit') else: msg += ', but currently has no User, so allowing registration.' - err_logger.info(msg) + self.err_logger.info(msg) except ObjectDoesNotExist: pass return email - def clean_prezdivka_resitele(self): - prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') - if prezdivka_resitele == '': - return prezdivka_resitele - if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).count() > 0: - raise forms.ValidationError('Přezdívka je již použita') - return prezdivka_resitele - def clean_zasilat(self): zasilat = self.cleaned_data.get('zasilat') ulice = self.cleaned_data.get('ulice') if zasilat == Resitel.ZASILAT_DOMU and ulice == "": - raise forms.ValidationError('Nevyplněná adresa bydliště, nelze zasílat čísla domů.') + raise forms.ValidationError('Nevyplněná adresa bydliště, nelze zasílat domů.') return zasilat def clean(self): super().clean() - - err_logger = logging.getLogger('seminar.prihlaska.problem') data = self.cleaned_data if data.get('stat') != 'other' and data.get('stat_text') != '': @@ -140,106 +119,41 @@ class PrihlaskaForm(PasswordResetForm): self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy')) -class ProfileEditForm(forms.Form): - username = forms.CharField(label='Přihlašovací jméno', - max_length=256, - required=False, - disabled=True) - - jmeno = forms.CharField(label='Jméno', max_length=256, required=True) - prezdivka_resitele = forms.CharField(label='Přezdívka (veřejná)', max_length=256, required=False) - prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) - pohlavi_muz = forms.ChoiceField(label='Pohlaví', - choices = ((True,'muž'),(False,'žena')), required=True) - email = forms.EmailField(label='E-mail',max_length=256, required=True) - telefon = forms.CharField(widget=TelInput(),label='Telefon',max_length=256, required=False) - datum_narozeni = forms.DateField(widget=DateInput(),label='Datum narození', required=False) - ulice = forms.CharField(label='Ulice', max_length=256, required=False) - mesto = forms.CharField(label='Město', max_length=256, required=False) - psc = forms.CharField(label='PSČ', max_length=32, required=False) - stat = forms.ChoiceField(label='Stát', - choices = (('CZ', 'Česká republika'), - ('SK', 'Slovenská republika'), - ('other', 'Jiné')), - required=False) - stat_text = forms.CharField(label='Stát', max_length=256, required=False) - - skola = forms.ModelChoiceField(label="Škola", - queryset=Skola.objects.all(), - widget=autocomplete.ModelSelect2( - url='autocomplete_skola', - attrs = {'data-placeholder--id': '-1', - 'data-placeholder--text' : '---', - 'data-allow-clear': 'true'}) - ,required=False) - - skola_nazev = forms.CharField(label='Název školy', max_length=256, required=False) - skola_adresa = forms.CharField(label='Adresa školy', max_length=256, required=False) -# trida = forms.CharField(label='Třída',max_length=10, required=True) - rok_maturity = forms.IntegerField( - label='Rok maturity', - min_value=date.today().year, - max_value=date.today().year+8, - required=True) - zasilat = forms.ChoiceField(label='Kam zasílat čísla',choices = Resitel.ZASILAT_CHOICES, required=True) - zasilat_cislo_emailem = forms.BooleanField(label='Chci dostávat email s upozorněním na vydání nového čísla', required=False) - - spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False) -# def clean_username(self): -# err_logger = logging.getLogger('seminar.prihlaska.problem') -# username = self.cleaned_data.get('username') -# try: -# User.objects.get(username=username) -# msg = "Username {} exists".format(username) -# err_logger.info(msg) -# raise forms.ValidationError('Přihlašovací jméno je již použito') -# -# except ObjectDoesNotExist: -# pass -# return username -# +class PrihlaskaForm(PasswordResetForm, UdajeForm): + username = forms.CharField( + label='Přihlašovací jméno', + max_length=256, + required=True, + help_text='Tímto jménem se následně budeš přihlašovat pro odevzdání řešení a další činnosti v semináři', + ) - def clean_prezdivka_resitele(self): - prezdivka_resitele = self.cleaned_data.get('prezdivka_resitele') - if prezdivka_resitele == '': - return prezdivka_resitele - if Resitel.objects.filter(prezdivka_resitele=prezdivka_resitele).exclude(osoba__user__username=self.username).count() > 0: - raise forms.ValidationError('Přezdívka je již použita') - return prezdivka_resitele + jak_se_dozvedeli = forms.CharField(widget=forms.Textarea({"rows": 3, "cols": 20}), label='Jak ses o M&M dozvěděl(a)? (Nechceš-li odpovídat, napiš „nechci uvést“.)', required=True) - def clean_email(self): - err_logger = logging.getLogger('seminar.prihlaska.problem') - email = self.cleaned_data.get('email') + gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True) + + def clean_username(self): + username = self.cleaned_data.get('username') try: - Osoba.objects.exclude(user__username=self.username).get(email=email) - msg = "Email {} exists (in edit)".format(email) - err_logger.info(msg) - raise forms.ValidationError('Email je již použit') + User.objects.get(username=username) + msg = "Username {} exists".format(username) + self.err_logger.info(msg) + raise forms.ValidationError('Přihlašovací jméno je již použito') except ObjectDoesNotExist: pass - return email - #def clean(self): - # super().clean() - # - # err_logger = logging.getLogger('seminar.prihlaska.problem') - - # data = self.cleaned_data - # if data.get('password') != data.get('password_check'): - # self.add_error('password_check',forms.ValidationError('Hesla se neshodují')) - # if data.get('stat') != '' and data.get('stat_text') != '': - # self.add_error('stat',forms.ValidationError('Nelze mít vybraný stát z menu a zároven zapsaný textem')) - # if data.get('skola') and (data.get('skola_nazev') or data.get('skola_adresa')): - # self.add_error('skola',forms.ValidationError('Pokud je škola v seznamu, nevypisujte ji ručně, pokud není, zrušte výběr ze seznamu (křížek vpravo)')) - # if not data.get('skola'): - # if data.get('skola_nazev')=='' and data.get('skola_adresa')=='': - # self.add_error('skola',forms.ValidationError('Je nutné vyplnit školu')) - # elif data.get('skola_nazev')=='': - # self.add_error('skola_nazev',forms.ValidationError('Je nutné vyplnit název školy')) - # elif data.get('skola_adresa')=='': - # self.add_error('skola_adresa',forms.ValidationError('Je nutné vyplnit adresu školy')) + return username + + +class ProfileEditForm(UdajeForm): + err_logger = logging.getLogger('seminar.edit.problem') + username = forms.CharField( + label='Přihlašovací jméno', + max_length=256, + required=False, + disabled=True, + ) class PoMaturiteProfileEditForm(ProfileEditForm): diff --git a/personalni/templates/personalni/udaje/edit.html b/personalni/templates/personalni/udaje/edit.html index 9091925d..085e4246 100644 --- a/personalni/templates/personalni/udaje/edit.html +++ b/personalni/templates/personalni/udaje/edit.html @@ -1,109 +1,19 @@ {% extends "base.html" %} {% load static %} -{% block script %} - -{% endblock %} - - - {% block content %}

    {% block nadpis1a %} Změna osobních údajů {% endblock %}

    -
    - {% csrf_token %} - {{form.non_field_errors}}
    +

    Změnit heslo

    -

    - Přihlašovací údaje -

    -
    - {% include "personalni/udaje/prihlaska_field.html" with field=form.username %} -
    -

    - Změnit heslo -

    - -
    - -

    - Osobní údaje -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} - {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.telefon %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.datum_narozeni %} -
    - -
    - -

    - Bydliště -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.ulice %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.mesto %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.psc %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.stat %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%} -
    - -
    - -

    - Škola -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.skola %} - - - {% include "personalni/udaje/prihlaska_field.html" with field=form.skola_nazev id="id_li_skola_nazev" %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.skola_adresa id="id_li_skola_adresa" %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.rok_maturity %} -
    Vyplň prosím celý název a adresu školy.
    - -
    - -

    - Pošta -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_emailem %} -
    - -
    - -

    - Zasílání propagačních materiálů -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.spam %} -
    - -
    - - + + {% include "personalni/udaje/udaje.html"%} + - + {% endblock %} diff --git a/personalni/templates/personalni/udaje/prihlaska.html b/personalni/templates/personalni/udaje/prihlaska.html index 33adba03..f26936de 100644 --- a/personalni/templates/personalni/udaje/prihlaska.html +++ b/personalni/templates/personalni/udaje/prihlaska.html @@ -5,16 +5,6 @@ {% endblock %} - - {% block content %}

    {% block nadpis1a %} @@ -25,109 +15,26 @@

    Tučně popsaná pole jsou povinná.

    - {% csrf_token %} - {{form.non_field_errors}} - - -
    -

    - Přihlašovací údaje -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.username %} -{# {% include "personalni/udaje/prihlaska_field.html" with field=form.password %}#} -{# {% include "personalni/udaje/prihlaska_field.html" with field=form.password_check %}#} -
    - -
    - -

    - Osobní údaje -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} - {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.telefon %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.datum_narozeni %} -
    - -
    - -

    - Bydliště -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.ulice %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.mesto %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.psc %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.stat %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%} -
    - -
    - -

    - Škola -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.skola %} - - - {% include "personalni/udaje/prihlaska_field.html" with field=form.skola_nazev id="id_li_skola_nazev" %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.skola_adresa id="id_li_skola_adresa" %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.rok_maturity %} -
    (Prosíme, zkuste ji najít, téměř jistě ji v seznamu máme. Školy se dobře hledají podle příjmení lidí v jejich názvu, podle ulice, případně název ulice mezera město, atd. Nezadávejte slova, která se často zkracují – gymnázium, střední odborná škola, křestní jména…)
    Vyplň prosím celý název a adresu školy.
    - -
    - -

    - Pošta -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat %} - {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_emailem %} -
    -
    - -

    - GDPR -

    - {% include "personalni/udaje/gdpr.html" %} - - {% include "personalni/udaje/prihlaska_field.html" with field=form.gdpr %} -
    - -
    - -

    - Zasílání propagačních materiálů -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.spam %} -
    - - - -
    - -

    - Ostatní -

    - - {% include "personalni/udaje/prihlaska_field.html" with field=form.jak_se_dozvedeli %} -
    - - - - + {% include "personalni/udaje/udaje.html" %} +

    + GDPR +

    + {% include "personalni/udaje/gdpr.html" %} + + {% include "personalni/udaje/prihlaska_field.html" with field=form.gdpr %} +
    + +
    + +

    + Ostatní +

    + + {% include "personalni/udaje/prihlaska_field.html" with field=form.jak_se_dozvedeli %} +
    + +
    + +
    - - - {% endblock %} diff --git a/personalni/templates/personalni/udaje/udaje.html b/personalni/templates/personalni/udaje/udaje.html new file mode 100644 index 00000000..f39e8b47 --- /dev/null +++ b/personalni/templates/personalni/udaje/udaje.html @@ -0,0 +1,75 @@ +{% load static %} + +{% block script %} + +{% endblock %} + +{% csrf_token %} +{{form.non_field_errors}} + +
    +

    + Přihlašovací údaje +

    + + {% include "personalni/udaje/prihlaska_field.html" with field=form.username %} +
    + +
    + +

    + Osobní údaje +

    + + {% include "personalni/udaje/prihlaska_field.html" with field=form.jmeno %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.prezdivka_resitele %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.prijmeni %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.pohlavi_muz%} + {% include "personalni/udaje/prihlaska_field.html" with field=form.email %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.telefon %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.datum_narozeni %} +
    + +
    + +

    + Škola +

    + + {% include "personalni/udaje/prihlaska_field.html" with field=form.skola %} + + + {% include "personalni/udaje/prihlaska_field.html" with field=form.skola_nazev id="id_li_skola_nazev" %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.skola_adresa id="id_li_skola_adresa" %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.rok_maturity %} +
    (Prosíme, zkuste ji najít, téměř jistě ji v seznamu máme. Školy se dobře hledají podle příjmení lidí v jejich názvu, podle ulice, případně název ulice mezera město, atd. Nezadávejte slova, která se často zkracují – gymnázium, střední odborná škola, křestní jména…)
    Vyplň prosím celý název a adresu školy.
    + +
    + +

    + Pošta +

    + + {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_emailem %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat_cislo_papirove %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.spam %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.zasilat %} +
    +
    +

    + Bydliště (povinné při volbě „domů“) +

    + + {% include "personalni/udaje/prihlaska_field.html" with field=form.ulice %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.mesto %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.psc %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.stat %} + {% include "personalni/udaje/prihlaska_field.html" with field=form.stat_text id="id_li_stat_text"%} +
    + +
    + + From c97a84104169de9540bf2483482eb75b04c71dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 13 Mar 2023 23:45:05 +0100 Subject: [PATCH 160/515] =?UTF-8?q?Reforma=20nastaven=C3=AD=20zas=C3=ADl?= =?UTF-8?q?=C3=A1n=C3=AD=20po=C5=A1tou?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/views.py | 7 +++- .../0112_resitel_zasilat_cislo_papirove.py | 42 +++++++++++++++++++ seminar/models/personalni.py | 2 + seminar/models/tvorba.py | 4 +- seminar/templates/seminar/archiv/obalky.tex | 2 + seminar/utils.py | 2 +- 6 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 seminar/migrations/0112_resitel_zasilat_cislo_papirove.py diff --git a/personalni/views.py b/personalni/views.py index a52f7f5f..df1cb8f1 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -165,6 +165,7 @@ def resitelEditView(request): resitel_edit.rok_maturity = fcd['rok_maturity'] resitel_edit.zasilat = fcd['zasilat'] resitel_edit.zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] + resitel_edit.zasilat_cislo_papirove = fcd['zasilat_cislo_papirove'] if fcd.get('skola'): resitel_edit.skola = fcd['skola'] else: @@ -267,7 +268,8 @@ def prihlaskaView(request): prezdivka_resitele=fcd['prezdivka_resitele'], rok_maturity = fcd['rok_maturity'], zasilat = fcd['zasilat'], - zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] + zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'], + zasilat_cislo_papirove = fcd['zasilat_cislo_papirove'], ) if fcd.get('skola'): @@ -284,7 +286,7 @@ def prihlaskaView(request): except m.Resitel.DoesNotExist: # Stejný trik: orig_resitel = r - resitel_attrs = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem'] + resitel_attrs = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove'] for attr in resitel_attrs: new = getattr(r, attr) old = getattr(orig_resitel, attr) @@ -345,6 +347,7 @@ def dataResiteluCsvResponse(queryset, columns=None, with_header=True): 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', + 'zasilat_cislo_papirove', 'osoba__datum_registrace', 'osoba__datum_souhlasu_udaje', 'osoba__datum_souhlasu_zasilani', diff --git a/seminar/migrations/0112_resitel_zasilat_cislo_papirove.py b/seminar/migrations/0112_resitel_zasilat_cislo_papirove.py new file mode 100644 index 00000000..63660ddc --- /dev/null +++ b/seminar/migrations/0112_resitel_zasilat_cislo_papirove.py @@ -0,0 +1,42 @@ +# Generated by Django 2.2.28 on 2023-03-13 22:02 + +from django.db import migrations, models + +ZASILAT_DOMU = 'domu' +ZASILAT_DO_SKOLY = 'do_skoly' +ZASILAT_NIKAM = 'nikam' + + +def default_zasilat_papirove(apps, schema_editor): + Resitel = apps.get_model('seminar', 'Resitel') + + for resitel in Resitel.objects.all(): + resitel.zasilat_cislo_papirove = resitel.zasilat != ZASILAT_NIKAM + if resitel.zasilat == ZASILAT_NIKAM: + resitel.zasilat = ZASILAT_DOMU if resitel.osoba.ulice else ZASILAT_DO_SKOLY + resitel.save() + + +def vrat_nikam(apps, schema_editor): + Resitel = apps.get_model('seminar', 'Resitel') + + for resitel in Resitel.objects.all(): + if not resitel.zasilat_cislo_papirove: + resitel.zasilat = ZASILAT_NIKAM + resitel.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0111_nikam2nezasilat_papirove'), + ] + + operations = [ + migrations.AddField( + model_name='resitel', + name='zasilat_cislo_papirove', + field=models.BooleanField(default=True, help_text='True pokud chce řešitel dostávat číslo papírově', verbose_name='zasílat číslo papírově'), + ), + migrations.RunPython(default_zasilat_papirove, vrat_nikam), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 9ac85e51..205c9f4a 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -236,6 +236,8 @@ class Resitel(SeminarModelBase): zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce řešitel dostávat číslo emailem', default=False) + zasilat_cislo_papirove = models.BooleanField('zasílat číslo papírově', help_text='True pokud chce řešitel dostávat číslo papírově', default=True) + poznamka = models.TextField('neveřejná poznámka', blank=True, help_text='Neveřejná poznámka k řešiteli (plain text)') diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index f2feb569..af21e587 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -290,9 +290,9 @@ class Cislo(SeminarModelBase): paticka = "---\nK odběru těchto e-mailů jste se přihlásili na stránkách https://mam.matfyz.cz. Z odběru se lze odhlásit na https://mam.matfyz.cz/resitel/osobni-udaje/" - posli(text_mailu + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM)) + posli(text_mailu + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove)) posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, - resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM)) + resitele_vsichni.exclude(zasilat=pm.Resitel.zasilat_cislo_papirove)) def save(self, *args, **kwargs): super().save(*args, **kwargs) diff --git a/seminar/templates/seminar/archiv/obalky.tex b/seminar/templates/seminar/archiv/obalky.tex index ba18d318..9ae62121 100644 --- a/seminar/templates/seminar/archiv/obalky.tex +++ b/seminar/templates/seminar/archiv/obalky.tex @@ -100,6 +100,7 @@ {% with o=r.osoba %} {% with s=r.skola %} {% spaceless %} + {% if r.zasilat_cislo_papirove %} {% if r.zasilat == "do_skoly" %} {% if o.stat == "CZ" %} \obalka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}{{s.nazev|sloz}}{{s.ulice|sloz}}{{s.psc|sloz}}{{s.mesto|sloz}}{{''|sloz}} @@ -115,6 +116,7 @@ {% endif %} {% else %} {% endif %} + {% endif %} {% endspaceless %} {% endwith %} {% endwith %} diff --git a/seminar/utils.py b/seminar/utils.py index e7d52529..e10920b8 100644 --- a/seminar/utils.py +++ b/seminar/utils.py @@ -265,7 +265,7 @@ def merge_resitele(cilovy, zdrojovy): # Postup: # Sjednotit / upravit informace cílového řešitele print('Upravuji data modelu') - fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem'] + fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove'] for f in fieldy_shoda: zf = getattr(zdrojovy, f) From 99161d016d6e698f7564290f0e26523cb3aedb9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 26 Mar 2023 01:52:17 +0100 Subject: [PATCH 161/515] =?UTF-8?q?Apr=C3=ADl=202023?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/base.html | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index fc2ff76e..b10103e5 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -170,6 +170,22 @@ rotace_a_posun($('.container'), randomUhel()); {% endif %} + {% if april == 2023 %} + + {% endif %} {% render_block "js" %} From cd9aa73a34f71549941c4165eefb9b15a38bc3a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 29 Mar 2023 20:29:00 +0200 Subject: [PATCH 162/515] =?UTF-8?q?hotfix:=20p=C5=99ihl=C3=A1=C5=A1ky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/views.py b/personalni/views.py index a52f7f5f..88bc8697 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -264,7 +264,7 @@ def prihlaskaView(request): err_logger.warning(f'Zaregistrovala se osoba s kolizním jménem. ID osob: {[o.id for o in kolize]}') r = s.Resitel( - prezdivka_resitele=fcd['prezdivka_resitele'], + prezdivka_resitele=fcd['prezdivka_resitele'] if fcd['prezdivka_resitele'] != "" else None, rok_maturity = fcd['rok_maturity'], zasilat = fcd['zasilat'], zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'] From b8a9d67cc287b1eb00cd8612f125caf3971c8793 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 17 Apr 2023 20:15:39 +0200 Subject: [PATCH 163/515] send_mail -> EmailMessage --- korektury/admin.py | 9 +++++++-- korektury/views.py | 9 +++++++-- odevzdavatko/views.py | 10 +++++----- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/korektury/admin.py b/korektury/admin.py index f2b0a319..5f92c542 100644 --- a/korektury/admin.py +++ b/korektury/admin.py @@ -12,7 +12,7 @@ from django.contrib import admin from reversion.admin import VersionAdmin from korektury.models import KorekturovanePDF -from django.core.mail import send_mail +from django.core.mail import EmailMessage from django.urls import reverse # Register your models here. @@ -64,6 +64,11 @@ Popis souboru: S pozdravem a korekturám zdar! Korekturovátko ''' - send_mail(predmet,text,odesilatel,[prijemce]) + EmailMessage( + subject=predmet, + body=text, + from_email=odesilatel, + to=[prijemce], + ).send() admin.site.register(KorekturovanePDF, KorekturovanePDFAdmin) diff --git a/korektury/views.py b/korektury/views.py index efeab19d..564e1331 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -8,7 +8,7 @@ from django.views import generic from django.utils.translation import ugettext as _ from django.conf import settings from django.http import HttpResponseForbidden -from django.core.mail import send_mail +from django.core.mail import EmailMessage from django.db.models import Count,Q from .models import Oprava,Komentar,KorekturovanePDF, Organizator @@ -207,7 +207,12 @@ class KorekturyView(generic.TemplateView): print("---- Konec upozornění") return - send_mail(subject, text, from_email, list(emails)) + EmailMessage( + subject=subject, + body=text, + from_email=from_email, + to=list(emails), + ).send() def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 2390d27f..d3c74812 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -1,7 +1,7 @@ from django.core.exceptions import PermissionDenied from django.views.generic import ListView, DetailView, FormView from django.contrib.auth.mixins import LoginRequiredMixin -from django.core.mail import send_mail +from django.core.mail import EmailMessage from django.utils import timezone from django.views.generic import ListView, DetailView, FormView, CreateView from django.views.generic.list import MultipleObjectTemplateResponseMixin,MultipleObjectMixin @@ -449,11 +449,11 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): seznam = "problému " + str(problemy[0]) if len(problemy) == 1 else 'následujícím problémům:\n' + ', \n'.join(map(str, problemy)) seznam_do_subjectu = "problému " + str(problemy[0]) + ("" if len(problemy) == 1 else f" (a dalším { len(problemy) - 1 })") - send_mail( + EmailMessage( subject="Nové řešení k " + seznam_do_subjectu, - message=f"Řešitel{ '' if resitel.pohlavi_muz else 'ka' } { resitel } právě nahrál{'' if resitel.pohlavi_muz else 'a' } nové řešení k { seznam }.\n\nHurá do opravování: { self.object.absolute_url() }", + body=f"Řešitel{ '' if resitel.pohlavi_muz else 'ka' } { resitel } právě nahrál{'' if resitel.pohlavi_muz else 'a' } nové řešení k { seznam }.\n\nHurá do opravování: { self.object.absolute_url() }", from_email="submitovatko@mam.mff.cuni.cz", # FIXME: Chceme to mít radši tady, nebo v nastavení? - recipient_list=list(prijemci), - ) + to=list(prijemci), + ).send() return formularOKView(self.request, text='Řešení úspěšně odevzdáno') From 397aacf8991ecc1d80ddd5b3a096fa16cb360d4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 17 Apr 2023 20:41:01 +0200 Subject: [PATCH 164/515] =?UTF-8?q?Pos=C3=ADl=C3=A1n=C3=AD=20e-mail=C5=AF?= =?UTF-8?q?=20p=C5=99=C3=ADjemc=C5=AFm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0112_prijemce_zasilat_cislo_emailem.py | 18 ++++++++++++++++++ seminar/models/personalni.py | 2 ++ seminar/models/tvorba.py | 4 ++++ 3 files changed, 24 insertions(+) create mode 100644 seminar/migrations/0112_prijemce_zasilat_cislo_emailem.py diff --git a/seminar/migrations/0112_prijemce_zasilat_cislo_emailem.py b/seminar/migrations/0112_prijemce_zasilat_cislo_emailem.py new file mode 100644 index 00000000..8efaf925 --- /dev/null +++ b/seminar/migrations/0112_prijemce_zasilat_cislo_emailem.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2023-04-17 18:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0111_nikam2nezasilat_papirove'), + ] + + operations = [ + migrations.AddField( + model_name='prijemce', + name='zasilat_cislo_emailem', + field=models.BooleanField(default=False, help_text='True pokud chce příjemce dostávat číslo emailem', verbose_name='zasílat číslo emailem'), + ), + ] diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 9ac85e51..2cb8539a 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -192,6 +192,8 @@ class Prijemce(SeminarModelBase): help_text='Které osobě či na jakou adresu se mají zasílat čísla', on_delete=models.CASCADE) + zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce příjemce dostávat číslo emailem', default=False) + # FIXME: možná chceme něco jako vazbu na osobu XOR školu a počet kusů k zaslání # FIXME: a možná taky posílání na mail a možná taky přes něj chceme posílat i řešitelům diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index f2feb569..855c90f4 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -265,6 +265,7 @@ class Cislo(SeminarModelBase): poslat_z_mailu = 'zadani@mam.mff.cuni.cz' predmet = 'Vyšlo číslo {}'.format(self.kod()) + # TODO Možná nechceme všem psát „Ahoj“, např. příjemcům… text_mailu = 'Ahoj,\n' \ 'na adrese {} najdete nejnovější číslo.\n' \ 'Vaše M&M\n'.format(odkaz) @@ -294,6 +295,9 @@ class Cislo(SeminarModelBase): posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM)) + paticka_prijemce = "---\nPokud tyto e-maily nechcete nadále dostávat, prosíme, ozvěte se nám na mam@matfyz.cz." + posli(text_mailu + paticka_prijemce, pm.Prijemce.objects.filter(zasilat_cislo_emailem=True)) + def save(self, *args, **kwargs): super().save(*args, **kwargs) self.vygeneruj_nahled() From 254e7949ef99672e8b2b563d9670a1a94635c8d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 17 Apr 2023 21:44:18 +0200 Subject: [PATCH 165/515] =?UTF-8?q?SQLite=20ne=C5=BEere=20date?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/personalni.py | 1 + 1 file changed, 1 insertion(+) diff --git a/seminar/models/personalni.py b/seminar/models/personalni.py index 9ac85e51..f871981a 100644 --- a/seminar/models/personalni.py +++ b/seminar/models/personalni.py @@ -402,6 +402,7 @@ class Organizator(SeminarModelBase): editable=False ) + # Ne, date to nebude. SQLite: invalid literal for int() with base 10: b'17 23:00:00' organizuje_od = models.DateTimeField('Organizuje od', blank=True, null=True) organizuje_do = models.DateTimeField('Organizuje do', blank=True, null=True) From 5b698cce4267757136f8ddfa8d69b142ae692563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 17 Apr 2023 22:16:44 +0200 Subject: [PATCH 166/515] =?UTF-8?q?Oprava=20migrac=C3=AD=20po=20p=C5=99edc?= =?UTF-8?q?hoz=C3=ADm=20mergey=20(0f5b2b128f794ea746a6a404055f1ae77fa9a125?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...cislo_papirove.py => 0113_resitel_zasilat_cislo_papirove.py} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename seminar/migrations/{0112_resitel_zasilat_cislo_papirove.py => 0113_resitel_zasilat_cislo_papirove.py} (95%) diff --git a/seminar/migrations/0112_resitel_zasilat_cislo_papirove.py b/seminar/migrations/0113_resitel_zasilat_cislo_papirove.py similarity index 95% rename from seminar/migrations/0112_resitel_zasilat_cislo_papirove.py rename to seminar/migrations/0113_resitel_zasilat_cislo_papirove.py index 63660ddc..9539f328 100644 --- a/seminar/migrations/0112_resitel_zasilat_cislo_papirove.py +++ b/seminar/migrations/0113_resitel_zasilat_cislo_papirove.py @@ -29,7 +29,7 @@ def vrat_nikam(apps, schema_editor): class Migration(migrations.Migration): dependencies = [ - ('seminar', '0111_nikam2nezasilat_papirove'), + ('seminar', '0112_prijemce_zasilat_cislo_emailem'), ] operations = [ From 93fa8c6f2ed43590c3e38e79ce63b32bada77b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 20:26:48 +0200 Subject: [PATCH 167/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Auto=C5=99i?= =?UTF-8?q?=20=C5=99e=C5=A1en=C3=AD=20->=20Dal=C5=A1=C3=AD=20auto=C5=99i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 1 + odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 223d807f..d9d90a3e 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -88,6 +88,7 @@ class NahrajReseniForm(forms.ModelForm): if 'resitele' in self.fields: # FIXME Mnohem hezčí by to bylo u definice resitele výše, ale nepodařilo se mi to. self.fields['resitele'].required = False + self.fields['resitele'].label = "Další autoři" ReseniSPrilohamiFormSet = inlineformset_factory(m.Reseni,m.PrilohaReseni, form = NahrajReseniForm, diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 739340c3..61c4d9ec 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -13,7 +13,7 @@

    Když řešení různých témátek vložíš každé zvlášť, lépe se v nich vyznáme a třeba ti je i rychleji opravíme.

    -

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Autory řešení“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

    +

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Další autoři“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

    {% csrf_token %} From ce4ee94fedca54212bd6c02b907ae136b5e923f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 21:49:35 +0200 Subject: [PATCH 168/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Nejprve=20vyb?= =?UTF-8?q?rat=20t=C3=A9ma,=20pak=20pod=C3=BAlohy=20=E2=80=93=20part=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 4 ++++ odevzdavatko/forms.py | 3 +++ .../templates/odevzdavatko/nahraj_reseni.html | 6 +++++- .../nahraj_reseni_nadproblem.html | 21 +++++++++++++++++++ odevzdavatko/urls.py | 3 ++- odevzdavatko/views.py | 11 ++++++++++ 6 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 601f4e35..473f2722 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -87,6 +87,10 @@ class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): if self.q: qs = qs.filter( Q(nazev__icontains=self.q)) + + nadproblem_id = int(self.forwarded.get("nadproblem_id", -1)) + if nadproblem_id != -1: + qs = [problem for problem in qs if problem.hlavni_problem.id == nadproblem_id] return qs class ProblemAutocomplete(autocomplete.Select2QuerySetView): diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index d9d90a3e..89121747 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -72,6 +72,7 @@ class NahrajReseniForm(forms.ModelForm): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-allow-clear': 'true'}, + forward=["nadproblem_id"], ), 'resitele': autocomplete.ModelSelect2Multiple( @@ -82,6 +83,8 @@ class NahrajReseniForm(forms.ModelForm): ) } + nadproblem_id = forms.IntegerField(required=False, disabled=True, widget=forms.HiddenInput()) + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # FIXME Z nějakého důvodu se do této třídy dostaneme i bez resitele diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 61c4d9ec..80f97fbf 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -19,7 +19,7 @@ {% csrf_token %} - {% for field in form %} + {% for field in form.visible_fields %}
    + {% for field in form.hidden_fields %} + {{ field }} + {% endfor %} +
    diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html new file mode 100644 index 00000000..6e49f02e --- /dev/null +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} +{% load static %} + +{% block content %} +

    + {% block nadpis1a %} + Poslat řešení + {% endblock %} +

    + +

    Seznam témat k odevzdání

    + +
      + {% for problem in object_list %} +
    • {{ problem }}
    • + {% empty %} +
    • Nelze nic odevzdávat.
    • + {% endfor %} +
    + +{% endblock %} diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index 8c53de6b..35b74eea 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -20,7 +20,8 @@ from . import views urlpatterns = [ path('org/add_solution', org_required(views.PosliReseniView.as_view()), name='seminar_vloz_reseni'), - path('resitel/nahraj_reseni', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'), + path('resitel/nahraj_reseni', resitel_required(views.NahrajReseniNadproblemView.as_view()), name='seminar_nahraj_reseni'), + path('resitel/nahraj_reseni//', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'), path('resitel/odevzdana_reseni/', resitel_or_org_required(views.PrehledOdevzdanychReseni.as_view()), name='seminar_resitel_odevzdana_reseni'), path('org/reseni/', org_required(views.TabulkaOdevzdanychReseniView.as_view()), name='odevzdavatko_tabulka'), diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index d3c74812..acef1669 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -381,6 +381,14 @@ class PosliReseniView(LoginRequiredMixin, FormView): return data +class NahrajReseniNadproblemView(LoginRequiredMixin, ListView): + model = m.Problem + template_name = 'odevzdavatko/nahraj_reseni_nadproblem.html' + + def get_queryset(self): + return super().get_queryset().filter(nadproblem__isnull=True) + + class NahrajReseniView(LoginRequiredMixin, CreateView): model = m.Reseni template_name = 'odevzdavatko/nahraj_reseni.html' @@ -399,6 +407,9 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): }) return super().get(request, *args, **kwargs) + def get_initial(self): + return {"nadproblem_id": self.kwargs["nadproblem_id"]} + def get_context_data(self,**kwargs): data = super().get_context_data(**kwargs) if self.request.POST: From fbcfe7e93fcb79af62079960cfaeb8eee5d58ad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 22:00:37 +0200 Subject: [PATCH 169/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Filtrovat=20p?= =?UTF-8?q?ouze=20odevzdateln=C3=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index acef1669..9a49cbc3 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -386,7 +386,15 @@ class NahrajReseniNadproblemView(LoginRequiredMixin, ListView): template_name = 'odevzdavatko/nahraj_reseni_nadproblem.html' def get_queryset(self): - return super().get_queryset().filter(nadproblem__isnull=True) + # COPY PASTE z api/views/autocomplete.py TODO hodit někam do utils? + nastaveni = get_object_or_404(m.Nastaveni) + rocnik = nastaveni.aktualni_rocnik + # Od tohoto místa dál jsem zkoušel spoustu variací podle https://django-polymorphic.readthedocs.io/en/stable/advanced.html + temaQ = Q(Tema___rocnik=rocnik, stav=m.Problem.STAV_ZADANY) + ulohaQ = Q(Uloha___cislo_zadani__rocnik=rocnik, stav=m.Problem.STAV_ZADANY) + clanekQ = Q(Clanek___cislo__rocnik=rocnik, stav=m.Problem.STAV_ZADANY) + qs = super().get_queryset().filter(temaQ | ulohaQ | clanekQ) + return qs.filter(nadproblem__isnull=True) class NahrajReseniView(LoginRequiredMixin, CreateView): From 7e99466166400283c46b29de9ecf9c001ff10252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 22:22:03 +0200 Subject: [PATCH 170/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20oprava=20POST?= =?UTF-8?q?u?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 2 +- odevzdavatko/views.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 80f97fbf..2f8c732c 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -15,7 +15,7 @@

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Další autoři“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

    - + {% csrf_token %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 9a49cbc3..01f83c68 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -424,6 +424,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): data['prilohy'] = f.ReseniSPrilohamiFormSet(self.request.POST,self.request.FILES) else: data['prilohy'] = f.ReseniSPrilohamiFormSet() + + data["nadproblem_id"] = self.kwargs["nadproblem_id"] return data # FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni From ee1db52114a595cd71e83101184d4ce2e57a1112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 22:28:57 +0200 Subject: [PATCH 171/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20oprava=20doku?= =?UTF-8?q?mentace?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dalsi_soubory.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/dalsi_soubory.rst b/docs/dalsi_soubory.rst index 1a59ee15..627a59d7 100644 --- a/docs/dalsi_soubory.rst +++ b/docs/dalsi_soubory.rst @@ -28,7 +28,7 @@ Generuje se za pomocí:: nebo (v případě meníčka):: - ./manage.py dumpdata sitetree --natrual-foreign > data/sitetree_new.json + ./manage.py dumpdata sitetree --natural-foreign > data/sitetree_new.json ./fix_json.py data/sitetree_new.json data/sitetree.json deploy_v2 From b8fc56773c0744cf1aa2495a73234acb1e6ee38b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 22:30:20 +0200 Subject: [PATCH 172/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20oprava=20men?= =?UTF-8?q?=C3=AD=C4=8Dka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sitetree.json | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/data/sitetree.json b/data/sitetree.json index 25cf7fd7..8b0dd25f 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -1025,5 +1025,35 @@ }, "model": "sitetree.treeitem", "pk": 51 + }, + { + "fields": { + "access_guest": false, + "access_loggedin": false, + "access_perm_type": 1, + "access_permissions": [ + [ + "resitel", + "auth", + "user" + ] + ], + "access_restricted": true, + "alias": null, + "description": "", + "hidden": false, + "hint": "", + "inbreadcrumbs": true, + "inmenu": true, + "insitetree": true, + "parent": 23, + "sort_order": 52, + "title": "Poslat řešení k nadproblému {{nadproblem_id}}", + "tree": 1, + "url": "seminar_nahraj_reseni nadproblem_id", + "urlaspattern": true + }, + "model": "sitetree.treeitem", + "pk": 52 } ] \ No newline at end of file From 9ff223428bf8cb1a60ca7c9abc8975d82d18dff4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 23:06:52 +0200 Subject: [PATCH 173/515] =?UTF-8?q?Lep=C5=A1=C3=AD=20formularOKView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 6 +++++- personalni/views.py | 5 ++++- seminar/views/views_all.py | 5 +++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 01f83c68..7bc75898 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -477,4 +477,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): to=list(prijemci), ).send() - return formularOKView(self.request, text='Řešení úspěšně odevzdáno') + return formularOKView( + self.request, + text='Řešení úspěšně odevzdáno', + dalsi_odkazy=[("Odevzdat další řešení", reverse("seminar_nahraj_reseni"))], + ) diff --git a/personalni/views.py b/personalni/views.py index a45aee52..65dc3f24 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -173,7 +173,10 @@ def resitelEditView(request): msg = "Unknown school {}, {}".format(fcd['skola_nazev'],fcd['skola_adresa']) resitel_edit.save() osoba_edit.save() - return formularOKView(request, text=f'Údaje byly úspěšně uloženy. Vrátit se zpět na profil.') + return formularOKView( + request, + text='Údaje byly úspěšně uloženy.', + dalsi_odkazy=[("Vrátit se zpět na profil", reverse("profil"))]), return render(request, 'personalni/udaje/edit.html', {'form': form}) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 4627989e..f05945f5 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -35,6 +35,7 @@ from django.conf import settings import unicodedata import logging import time +from collections.abc import Iterable from seminar.utils import aktivniResitele @@ -677,9 +678,9 @@ def StavDatabazeView(request): # Interní, nemá se nikdy objevit v urls (jinak to účastníci vytrolí) -def formularOKView(request, text=''): +def formularOKView(request, text='', dalsi_odkazy: Iterable[tuple[str, str]] = ()): template_name = 'seminar/formular_ok.html' - odkazy = [ + odkazy = list(dalsi_odkazy) + [ # (Text, odkaz) ('Vrátit se na titulní stránku', reverse('titulni_strana')), ('Zobrazit aktuální zadání', reverse('seminar_aktualni_zadani')), From e04c116b80f36686102c18ad7b72ed00ff552d4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 15 May 2023 23:09:56 +0200 Subject: [PATCH 174/515] =?UTF-8?q?=C3=81,=20j=C3=A1=20jsem=20v=C5=AFl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/personalni/views.py b/personalni/views.py index 65dc3f24..876cc7ec 100644 --- a/personalni/views.py +++ b/personalni/views.py @@ -176,7 +176,8 @@ def resitelEditView(request): return formularOKView( request, text='Údaje byly úspěšně uloženy.', - dalsi_odkazy=[("Vrátit se zpět na profil", reverse("profil"))]), + dalsi_odkazy=[("Vrátit se zpět na profil", reverse("profil"))], + ) return render(request, 'personalni/udaje/edit.html', {'form': form}) From 61e71efcc4c25960505772d67cf19df302a8195e Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 15 May 2023 23:43:39 +0200 Subject: [PATCH 175/515] =?UTF-8?q?Make:=20spr=C3=A1vn=C4=9B=20nastavit=20?= =?UTF-8?q?org=C5=AFm=20pr=C3=A1va?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tohle je trošku fishy, protože by se to teoreticky mělo dít i u produkce, leč tam zůstávají práva persistentně v DB (a až se rozbijí, tak se budeme divit)… --- make/init_local | 1 + 1 file changed, 1 insertion(+) diff --git a/make/init_local b/make/init_local index 75ee1ccf..1b2f7c1e 100755 --- a/make/init_local +++ b/make/init_local @@ -8,3 +8,4 @@ ensure_venv ./manage.py testdata ./manage.py loaddata data/* make/sync_prod_flatpages +./manage.py load_org_permissions deploy_v2/admin_org_prava.json From a3526419a9df3a8761478d26673f6552cd5e3bd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 16 May 2023 00:06:12 +0200 Subject: [PATCH 176/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Zlep=C5=A1en?= =?UTF-8?q?=C3=AD=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 2 ++ .../templates/odevzdavatko/nahraj_reseni.html | 34 +++++++++++++++---- .../templates/odevzdavatko/prilohy.html | 5 +-- odevzdavatko/views.py | 1 + 4 files changed, 33 insertions(+), 9 deletions(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 89121747..735753aa 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -92,6 +92,8 @@ class NahrajReseniForm(forms.ModelForm): # FIXME Mnohem hezčí by to bylo u definice resitele výše, ale nepodařilo se mi to. self.fields['resitele'].required = False self.fields['resitele'].label = "Další autoři" + if 'problem' in self.fields: + self.fields['problem'].label = "Všechny řešené problémy" ReseniSPrilohamiFormSet = inlineformset_factory(m.Reseni,m.PrilohaReseni, form = NahrajReseniForm, diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 2f8c732c..ec09401b 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -11,15 +11,16 @@ {% endblock %} -

    Když řešení různých témátek vložíš každé zvlášť, lépe se v nich vyznáme a třeba ti je i rychleji opravíme.

    - -

    Pokud řešíte ve více lidech, je nutné přidat tyto lidi jako „Další autoři“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

    - {% csrf_token %} -
    +
    + + + + + + {% with field=form.problem %} - {% for field in form.visible_fields %} - {% endfor %} + {% endwith %}
    {{ field }}
    {% for field in form.hidden_fields %} {{ field }} {% endfor %} +
    +

    Spolupráce s dalšími řešiteli

    + +

    Pokud řešíte ve více lidech, je potřeba přidat tyto lidi jako „Další autoři“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

    + + + {% with field=form.resitele %} + + + + + {% endwith %} +
    + + + {{ field }} +

    diff --git a/odevzdavatko/templates/odevzdavatko/prilohy.html b/odevzdavatko/templates/odevzdavatko/prilohy.html index 4946546b..2bfaa29e 100644 --- a/odevzdavatko/templates/odevzdavatko/prilohy.html +++ b/odevzdavatko/templates/odevzdavatko/prilohy.html @@ -2,8 +2,9 @@

    Soubory s řešením

    -

    Maximální součet velikostí příloh je cca 49 MB. Pokud je to možné a dává to smysl, pošli nám prosím své řešení ve formátu PDF, ostatní formáty nemusíme umět otevřít.

    -

    Pokud svůj soubor rozumně pojmenuješ, urychlíš opravování a předejdeš tomu, že si nějakého tvého řešení nevšimneme. Například z img_250921_101205.pdf nepoznáme, kterou úlohu jsi odevzdal, zato uloha_3.pdf nebo tema_1.pdf, to už je něco jiného. Případně můžeš využít i poznámku řešitele.

    +

    Pokud je to možné a dává to smysl, pošli nám prosím své řešení ve formátu PDF, ostatní formáty nemusíme umět otevřít.

    +

    Pokud svůj soubor rozumně pojmenuješ, urychlíš opravování a předejdeš tomu, že si nějakého tvého řešení nevšimneme. Například z img_250921_101205.pdf nepoznáme, kterou úlohu jsi odevzdal, zato uloha_3.pdf nebo tema_1.pdf, to už je něco jiného. Případně můžeš využít i poznámku řešitele.

    +

    Maximální součet velikostí příloh je cca 49 MB.

    {% for form in prilohy.forms %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 7bc75898..04606b4c 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -426,6 +426,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): data['prilohy'] = f.ReseniSPrilohamiFormSet() data["nadproblem_id"] = self.kwargs["nadproblem_id"] + data["nadproblem"] = get_object_or_404(m.Problem, id=self.kwargs["nadproblem_id"]) return data # FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni From b11429eaeacc713acc7d5124baae3ca5b78c8a35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 16 May 2023 13:27:10 +0200 Subject: [PATCH 177/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Se=C5=99azen?= =?UTF-8?q?=C3=AD=20probl=C3=A9m=C5=AF=20k=20odevzd=C3=A1n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 473f2722..8eded250 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -90,6 +90,9 @@ class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): nadproblem_id = int(self.forwarded.get("nadproblem_id", -1)) if nadproblem_id != -1: + # Seřadíme tak, aby ty s nadproblem==None byly dole (větší motivace tam naklikat konkrétní úlohy) a pak nějak rozumně. + # Tohle je řazení pro odevzdávátko, kde je definován nadproblém, proto je to v tomto ifu. (Jinde si to netroufám řadit) + qs = qs.order_by("nadproblem", "kod", "nazev") qs = [problem for problem in qs if problem.hlavni_problem.id == nadproblem_id] return qs From bbb85b3f6a62d3eb3cdcf11f61d9b5bd5f11bce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 21:18:47 +0200 Subject: [PATCH 178/515] =?UTF-8?q?Poslat=20=C5=99e=C5=A1en=C3=AD=20->=20n?= =?UTF-8?q?ahr=C3=A1t=20=C5=99e=C5=A1en=C3=AD=20->=20vlo=C5=BEit=20=C5=99e?= =?UTF-8?q?=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sitetree.json | 8 ++++---- odevzdavatko/__init__.py | 6 +++--- .../templates/odevzdavatko/nahraj_reseni_nadproblem.html | 2 +- personalni/templates/personalni/profil/resitel.html | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/data/sitetree.json b/data/sitetree.json index 8b0dd25f..7ec15fac 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -437,7 +437,7 @@ "insitetree": true, "parent": 21, "sort_order": 36, - "title": "Poslat řešení", + "title": "Nahrát řešení", "tree": 1, "url": "seminar_nahraj_reseni", "urlaspattern": true @@ -719,7 +719,7 @@ "insitetree": true, "parent": 21, "sort_order": 36, - "title": "Nahrát řešení", + "title": "Vložit řešení", "tree": 1, "url": "seminar_vloz_reseni", "urlaspattern": true @@ -1048,7 +1048,7 @@ "insitetree": true, "parent": 23, "sort_order": 52, - "title": "Poslat řešení k nadproblému {{nadproblem_id}}", + "title": "Nahrát řešení k nadproblému {{nadproblem_id}}", "tree": 1, "url": "seminar_nahraj_reseni nadproblem_id", "urlaspattern": true @@ -1056,4 +1056,4 @@ "model": "sitetree.treeitem", "pk": 52 } -] \ No newline at end of file +] diff --git a/odevzdavatko/__init__.py b/odevzdavatko/__init__.py index a4ee2679..ee78a49b 100644 --- a/odevzdavatko/__init__.py +++ b/odevzdavatko/__init__.py @@ -4,8 +4,8 @@ Obsahuje vše, co se týká odevzdávání (+ nahrávání) a opravování řeš Slovníček: Moje řešení = Přehled řešení = Řešení, která odevzdal aktuálního uživatel sám. Došlá řešení = Tabulka + seznam + detail + ... = Řešení, která poslal někdo jiný. - Poslat řešení = Odevdat mé řešení. (Tj. řešení se vztahem k aktuálnímu uživateli.) - Nahrát řešení = Nahrání řešení bez vztahu k aktuálnímu uživateli. + Nahrát řešení = Odevdat mé řešení. (Tj. řešení se vztahem k aktuálnímu uživateli.) + Vlož řešení = Vložit řešení bez vztahu k aktuálnímu uživateli. TODO: Místo vložit řešení v nahrávání a posílání řešení dát něco jiného? -""" \ No newline at end of file +""" diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html index 6e49f02e..ccf505fa 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni_nadproblem.html @@ -4,7 +4,7 @@ {% block content %}

    {% block nadpis1a %} - Poslat řešení + Nahrát řešení {% endblock %}

    diff --git a/personalni/templates/personalni/profil/resitel.html b/personalni/templates/personalni/profil/resitel.html index 9c933f0a..7bcb698c 100644 --- a/personalni/templates/personalni/profil/resitel.html +++ b/personalni/templates/personalni/profil/resitel.html @@ -11,7 +11,7 @@ Odhlásit se
    Upravit údaje
    -Poslat řešení
    +Nahrátí řešení
    Již odevzdaná řešení
    From 192ae6912ff5c2d750bff92a7cadb1747d14e5f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 21:22:48 +0200 Subject: [PATCH 179/515] =?UTF-8?q?Vlo=C5=BEit=20=C5=99e=C5=A1en=C3=AD=20-?= =?UTF-8?q?>=20nahr=C3=A1t=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index ec09401b..e82fa1cd 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -7,7 +7,7 @@ {% block content %}

    {% block nadpis1a %} - Vložit řešení + Nahrát řešení {% endblock %}

    From dd5d8886ee064553b26a12512ddda6493eef1d7f Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 21:27:04 +0200 Subject: [PATCH 180/515] =?UTF-8?q?Trocha=20popisu=20TabulkaOdevzdanychRes?= =?UTF-8?q?eniView,=20a=C5=A5=20se=20v=20tom=20d=C3=A1=20vyznat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index d3c74812..684b790b 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -125,7 +125,7 @@ class TabulkaOdevzdanychReseniView(ListView): ctx = super().get_context_data(*args, **kwargs) ctx['problemy'] = self.problemy ctx['resitele'] = self.resitele - tabulka = dict() + tabulka: dict[m.Problem, dict[m.Resitel, SouhrnReseni]] = dict() def pridej_reseni(problem, resitel, body, cas): if problem not in tabulka: @@ -145,11 +145,11 @@ class TabulkaOdevzdanychReseniView(ListView): for resitel in hodnoceni.reseni.resitele.all(): pridej_reseni(hodnoceni.problem, resitel, hodnoceni.body, hodnoceni.reseni.cas_doruceni) - hodnoty = [] - resitele_do_tabulky = [] + hodnoty: list[list[SouhrnReseni]] = [] + resitele_do_tabulky: list[m.Resitel] = [] for resitel in self.resitele: dostal_body = False - resiteluv_radek = [] + resiteluv_radek: list[SourhnReseni] = [] # podle pořadí v self.problemy, pokud daný problém neřešil, pak None for problem in self.problemy: if problem in tabulka and resitel in tabulka[problem]: resiteluv_radek.append(tabulka[problem][resitel]) From dd49c0e1ba65a51cc8da54f35e52ed0ed476f850 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 21:47:27 +0200 Subject: [PATCH 181/515] =?UTF-8?q?Mal=C3=A1=20=C3=BAprava=20TabulkaOdevzd?= =?UTF-8?q?anychReseniView.get=5Fcontext=5Fdata.pridej=5Freseni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 684b790b..6d8013ca 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -127,7 +127,10 @@ class TabulkaOdevzdanychReseniView(ListView): ctx['resitele'] = self.resitele tabulka: dict[m.Problem, dict[m.Resitel, SouhrnReseni]] = dict() - def pridej_reseni(problem, resitel, body, cas): + def pridej_reseni(resitel, hodnoceni): + problem = hodnoceni.problem + body = hodnoceni.body + cas = hodnoceni.reseni.cas_doruceni if problem not in tabulka: tabulka[problem] = dict() if resitel not in tabulka[problem]: @@ -143,7 +146,7 @@ class TabulkaOdevzdanychReseniView(ListView): for hodnoceni in self.get_queryset(): for resitel in hodnoceni.reseni.resitele.all(): - pridej_reseni(hodnoceni.problem, resitel, hodnoceni.body, hodnoceni.reseni.cas_doruceni) + pridej_reseni(resitel, hodnoceni) hodnoty: list[list[SouhrnReseni]] = [] resitele_do_tabulky: list[m.Resitel] = [] From dee1b2bb2c2ac5a51ff0b54188a8780690c17f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 21:48:35 +0200 Subject: [PATCH 182/515] =?UTF-8?q?Star=C3=A9=20v=C4=9Bci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 735753aa..6e1898eb 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -53,12 +53,6 @@ class PosliReseniForm(forms.Form): #poznamka = models.TextField('neveřejná poznámka', blank=True, # help_text='Neveřejná poznámka k řešení (plain text)') - #TODO body do cisla - #TODO prilohy - - ##def __init__(self, *args, **kwargs): - ## super().__init__(*args, **kwargs) - ## #self.fields['favorite_color'] = forms.ChoiceField(choices=[(color.id, color.name) for color in Resitel.objects.all()]) class NahrajReseniForm(forms.ModelForm): class Meta: From 92cb8ec206d6a353d113a4856b2718240de08b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 21:53:14 +0200 Subject: [PATCH 183/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Osamocen?= =?UTF-8?q?=C3=BD=20nadprobl=C3=A9m=20se=20vybere=20automaticky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 04606b4c..f980b1d8 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -416,7 +416,12 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): return super().get(request, *args, **kwargs) def get_initial(self): - return {"nadproblem_id": self.kwargs["nadproblem_id"]} + nadproblem_id = self.kwargs["nadproblem_id"] + return { + "nadproblem_id": nadproblem_id, + "problem": [] if m.Problem.objects.filter(stav=m.Problem.STAV_ZADANY, nadproblem__id=nadproblem_id) else nadproblem_id + + } def get_context_data(self,**kwargs): data = super().get_context_data(**kwargs) From 659ad62b52a522f658df4b0e9cdb6329612d5756 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:15:07 +0200 Subject: [PATCH 184/515] =?UTF-8?q?Je=C5=A1t=C4=9B=20docstring=20k=20Resen?= =?UTF-8?q?iProblemuView?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 6d8013ca..e3715891 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -177,6 +177,11 @@ class TabulkaOdevzdanychReseniView(ListView): # Velmi silně inspirováno zdrojáky, FIXME: Nedá se to udělat smysluplněji? class ReseniProblemuView(MultipleObjectTemplateResponseMixin, MultipleObjectMixin, View): + """Rozskok mezi více řešeními téhož problému od téhož řešitele. + + Asi už bude zastaralý v okamžiku, kdy se tenhle komentář nasadí na produkci :-) + + V případě, že takové řešení existuje jen jedno, tak na něj přesměruje.""" model = m.Reseni template_name = 'odevzdavatko/seznam.html' From 96bc21a727f78c1f1e5943e1b7bc63b56629f9e9 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:15:27 +0200 Subject: [PATCH 185/515] =?UTF-8?q?Zru=C5=A1en=20SourhnReseni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Už není potřeba, v tabulce stejně jsou už přímo řešení. --- odevzdavatko/views.py | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index e3715891..e9bedcbd 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -37,14 +37,6 @@ logger = logging.getLogger(__name__) # Taky se může hodit: # - Tabulka všech řešitelů x všech problémů? -@dataclass -class SouhrnReseni: - """Dataclass reprezentující data o odevzdaných řešeních pro zobrazení v tabulce.""" - pocet_reseni : int - posledni_odevzdani : datetime.datetime - body : float - - class TabulkaOdevzdanychReseniView(ListView): template_name = 'odevzdavatko/tabulka.html' model = m.Hodnoceni @@ -120,26 +112,25 @@ class TabulkaOdevzdanychReseniView(ListView): return qs def get_context_data(self, *args, **kwargs): + # TODO: refactor asi. Přepisoval jsem to jen syntakticky, nejspíš půlka kódu přestala dávat smysl… # self.resitele, self.reseni a self.problemy jsou již nastavené ctx = super().get_context_data(*args, **kwargs) ctx['problemy'] = self.problemy ctx['resitele'] = self.resitele - tabulka: dict[m.Problem, dict[m.Resitel, SouhrnReseni]] = dict() + tabulka: dict[m.Problem, dict[m.Resitel, list[m.Reseni]]] = dict() def pridej_reseni(resitel, hodnoceni): problem = hodnoceni.problem body = hodnoceni.body cas = hodnoceni.reseni.cas_doruceni + reseni = hodnoceni.reseni if problem not in tabulka: tabulka[problem] = dict() if resitel not in tabulka[problem]: - tabulka[problem][resitel] = SouhrnReseni(pocet_reseni=1, posledni_odevzdani=cas, body=body) + tabulka[problem][resitel] = [reseni] else: - tabulka[problem][resitel].posledni_odevzdani = max(tabulka[problem][resitel].posledni_odevzdani, cas) - # Zvětšení počtu bodů o aktuální počet, pokud se tam někde nevyskytuje None – pak je součet taky None ("Pozor, nezadané body") - tabulka[problem][resitel].body = tabulka[problem][resitel].body + body if body is not None and tabulka[problem][resitel].body is not None else None - tabulka[problem][resitel].pocet_reseni += 1 + tabulka[problem][resitel].append(reseni) # Pro jednoduchost template si ještě poznamenáme ID problému a řešitele tabulka[problem][resitel].problem_id = problem.id tabulka[problem][resitel].resitel_id = resitel.id @@ -148,17 +139,17 @@ class TabulkaOdevzdanychReseniView(ListView): for resitel in hodnoceni.reseni.resitele.all(): pridej_reseni(resitel, hodnoceni) - hodnoty: list[list[SouhrnReseni]] = [] + hodnoty: list[list[list[m.Reseni]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy, v každé buňce seznam řešení k danému řešiteli a problému. resitele_do_tabulky: list[m.Resitel] = [] for resitel in self.resitele: dostal_body = False - resiteluv_radek: list[SourhnReseni] = [] # podle pořadí v self.problemy, pokud daný problém neřešil, pak None + resiteluv_radek: list[list[m.Resitel]] = [] # podle pořadí v self.problemy for problem in self.problemy: if problem in tabulka and resitel in tabulka[problem]: resiteluv_radek.append(tabulka[problem][resitel]) dostal_body = True else: - resiteluv_radek.append(None) + resiteluv_radek.append([]) if self.chteni_resitele != FiltrForm.RESITELE_RELEVANTNI or dostal_body: hodnoty.append(resiteluv_radek) resitele_do_tabulky.append(resitel) From ed5e7a1d9f33c27e383644e000d5992a39786ab6 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:16:02 +0200 Subject: [PATCH 186/515] =?UTF-8?q?Template=20pro=20zobrazen=C3=AD=20?= =?UTF-8?q?=C5=99e=C5=A1en=C3=AD=20p=C5=99=C3=ADmo=20v=20tabulce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Snad, ještě jsem to netestoval :-) --- odevzdavatko/templates/odevzdavatko/tabulka.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 6d1232d2..b751b9a5 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -36,13 +36,13 @@ Do data (včetně): {{ filtr.reseni_do }} {# TODO: Chceme mít view i na řešení konkrétního řešitele ke všem problémům? #} {{ resitel }} - {% for hodn in hodnoty %} + {% for bunka in hodnoty %} - {% if hodn %} - - {{ hodn.pocet_reseni }} řeš.
    {{ hodn.body }} b
    {{ hodn.posledni_odevzdani|kratke_datum|default_if_none:"Nikdy"|default:"???"}} -
    - {% endif %} + {% for reseni in bunka %} + + {{reseni.datum_doruceni | date 'j. n.'}}({{ hodn.body }}b) + + {% endfor %} {% endfor %} From 8f2aa72f6d64f8a7f338da0891bae7d3ba3f2795 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:21:42 +0200 Subject: [PATCH 187/515] =?UTF-8?q?Fix=20zapomenut=C3=A9=20fieldy=20v=20ta?= =?UTF-8?q?bulce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: rebase squash --- odevzdavatko/views.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index e9bedcbd..d5c4f3a1 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -131,9 +131,6 @@ class TabulkaOdevzdanychReseniView(ListView): tabulka[problem][resitel] = [reseni] else: tabulka[problem][resitel].append(reseni) - # Pro jednoduchost template si ještě poznamenáme ID problému a řešitele - tabulka[problem][resitel].problem_id = problem.id - tabulka[problem][resitel].resitel_id = resitel.id for hodnoceni in self.get_queryset(): for resitel in hodnoceni.reseni.resitele.all(): From 53032a49d8c9aed533fd925fff9050e5944b8a71 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:23:15 +0200 Subject: [PATCH 188/515] =?UTF-8?q?Neum=C3=ADm=20ps=C3=A1t=20filtry.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit todo squash --- odevzdavatko/templates/odevzdavatko/tabulka.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index b751b9a5..0dad11e1 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -40,7 +40,7 @@ Do data (včetně): {{ filtr.reseni_do }} {% for reseni in bunka %} - {{reseni.datum_doruceni | date 'j. n.'}}({{ hodn.body }}b) + {{reseni.datum_doruceni | date:"j. n."}}({{ hodn.body }}b) {% endfor %} From 512f14ed4da890bf97ac855276985cb7a36997aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 22:24:14 +0200 Subject: [PATCH 189/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Nezadan=C3=A9?= =?UTF-8?q?=20probl=C3=A9my=20nelze=20odevzdat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 7 +++++++ .../templates/odevzdavatko/nahraj_reseni.html | 16 ++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 6e1898eb..ba5d3153 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -89,6 +89,13 @@ class NahrajReseniForm(forms.ModelForm): if 'problem' in self.fields: self.fields['problem'].label = "Všechny řešené problémy" + def clean_problem(self): + problem = self.cleaned_data.get('problem') + for p in problem: + if p.stav != m.Problem.STAV_ZADANY: + raise forms.ValidationError("Problém " + str(p) + " již nelze řešit!") + return problem + ReseniSPrilohamiFormSet = inlineformset_factory(m.Reseni,m.PrilohaReseni, form = NahrajReseniForm, fields = ('soubor','res_poznamka'), diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index e82fa1cd..19101b6b 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -30,6 +30,13 @@ {{ field }} + + {% if field.errors %} + + {{ field.errors }} + + {% endif %} + {% endwith %} @@ -54,6 +61,13 @@ {{ field }} + + {% if field.errors %} + + {{ field.errors }} + + {% endif %} + {% endwith %} @@ -61,6 +75,8 @@ {% include "odevzdavatko/prilohy.html" %} +{{form.non_field_errors}} +

    Odevzdat řešení

    From e26df0172963cccb306084d667ff8301d33a735b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 22:28:14 +0200 Subject: [PATCH 190/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Za=C5=99?= =?UTF-8?q?=C3=ADznut=C3=AD=20p=C5=99=C3=ADstupu=20k=20nezadan=C3=BDm=20pr?= =?UTF-8?q?obl=C3=A9m=C5=AFm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index f980b1d8..03f3404c 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -403,6 +403,13 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): form_class = f.NahrajReseniForm def get(self, request, *args, **kwargs): + # Zaříznutí nezadaných problémů + nadproblem_id = self.kwargs["nadproblem_id"] + nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) + if nadproblem.stav != "zadany": + raise PermissionDenied() + + # Zaříznutí starých řešitelů: # FIXME: Je to tady dost naprasené, mělo by to asi být jinde… osoba = m.Osoba.objects.get(user=self.request.user) From 468443e0621cfcd1eebaa909c48f470017ccd73d Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:46:47 +0200 Subject: [PATCH 191/515] =?UTF-8?q?V=20tabulce=20pot=C5=99ebujeme=20zn?= =?UTF-8?q?=C3=A1t=20i=20Hodnocen=C3=AD,=20kv=C5=AFli=20bod=C5=AFm?= =?UTF-8?q?=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/tabulka.html | 6 +++--- odevzdavatko/views.py | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 0dad11e1..f318789a 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -38,10 +38,10 @@ Do data (včetně): {{ filtr.reseni_do }} {% for bunka in hodnoty %} - {% for reseni in bunka %} + {% for reseni,hodnoceni in bunka %} - {{reseni.datum_doruceni | date:"j. n."}}({{ hodn.body }}b) - + {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body }}b) +
    {% endfor %} {% endfor %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index d5c4f3a1..9fda18a8 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -118,7 +118,7 @@ class TabulkaOdevzdanychReseniView(ListView): ctx = super().get_context_data(*args, **kwargs) ctx['problemy'] = self.problemy ctx['resitele'] = self.resitele - tabulka: dict[m.Problem, dict[m.Resitel, list[m.Reseni]]] = dict() + tabulka: dict[m.Problem, dict[m.Resitel, list[tuple[m.Reseni, m.Hodnoceni]]]] = dict() def pridej_reseni(resitel, hodnoceni): problem = hodnoceni.problem @@ -128,19 +128,19 @@ class TabulkaOdevzdanychReseniView(ListView): if problem not in tabulka: tabulka[problem] = dict() if resitel not in tabulka[problem]: - tabulka[problem][resitel] = [reseni] + tabulka[problem][resitel] = [(reseni, hodnoceni)] else: - tabulka[problem][resitel].append(reseni) + tabulka[problem][resitel].append((reseni, hodnoceni)) for hodnoceni in self.get_queryset(): for resitel in hodnoceni.reseni.resitele.all(): pridej_reseni(resitel, hodnoceni) - hodnoty: list[list[list[m.Reseni]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy, v každé buňce seznam řešení k danému řešiteli a problému. + hodnoty: list[list[list[tuple[m.Reseni, m.Hodnoceni]]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy, v každé buňce seznam řešení k danému řešiteli a problému. resitele_do_tabulky: list[m.Resitel] = [] for resitel in self.resitele: dostal_body = False - resiteluv_radek: list[list[m.Resitel]] = [] # podle pořadí v self.problemy + resiteluv_radek: list[list[tuple[m.Resitel, m.Hodnoceni]]] = [] # podle pořadí v self.problemy for problem in self.problemy: if problem in tabulka and resitel in tabulka[problem]: resiteluv_radek.append(tabulka[problem][resitel]) From bef932345c676fe73ba034b93254dd582f8fab28 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 22:47:13 +0200 Subject: [PATCH 192/515] Kladivoo! --- odevzdavatko/templates/odevzdavatko/tabulka.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index f318789a..c108c7d8 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -40,7 +40,7 @@ Do data (včetně): {{ filtr.reseni_do }} {% for reseni,hodnoceni in bunka %} - {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body }}b) + {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body|default:"🔨"}}b)
    {% endfor %} From 74a26affa7c6451145f084e667f4f79cc14e2b01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 23:02:32 +0200 Subject: [PATCH 193/515] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Odevzdateln?= =?UTF-8?q?=C3=A9=20probl=C3=A9my=20jsou=20v=C5=A1echny=20zadan=C3=A9=20(v?= =?UTF-8?q?=C4=8Detn=C4=9B=20minul=C3=BDch=20ro=C4=8Dn=C3=ADk=C5=AF)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 15 +-------------- odevzdavatko/views.py | 10 +--------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 8eded250..bdae5e06 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -70,20 +70,7 @@ class PublicResitelAutocomplete(LoginRequiredAjaxMixin, autocomplete.Select2Quer class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): """ View k :mod:`dal.autocomplete` pro vyhledávání problémů především v odevzdávátku. """ def get_queryset(self): - nastaveni = get_object_or_404(m.Nastaveni) - rocnik = nastaveni.aktualni_rocnik - # Od tohoto místa dál jsem zkoušel spoustu variací podle https://django-polymorphic.readthedocs.io/en/stable/advanced.html - temaQ = Q(Tema___rocnik = rocnik, stav=m.Problem.STAV_ZADANY) - ulohaQ = Q(Uloha___cislo_zadani__rocnik = rocnik, stav=m.Problem.STAV_ZADANY) - clanekQ = Q(Clanek___cislo__rocnik = rocnik, stav=m.Problem.STAV_ZADANY) - qs = m.Problem.objects.filter(temaQ | ulohaQ | clanekQ) - #print(temata, ulohy, clanky) - #ulohy.union(temata, all=True) - #print(ulohy) - #ulohy.union(clanky, all=True) - #print(ulohy) - #qs = ulohy - print(qs) + qs = m.Problem.objects.filter(stav=m.Problem.STAV_ZADANY) if self.q: qs = qs.filter( Q(nazev__icontains=self.q)) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 03f3404c..4bc7abb8 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -386,15 +386,7 @@ class NahrajReseniNadproblemView(LoginRequiredMixin, ListView): template_name = 'odevzdavatko/nahraj_reseni_nadproblem.html' def get_queryset(self): - # COPY PASTE z api/views/autocomplete.py TODO hodit někam do utils? - nastaveni = get_object_or_404(m.Nastaveni) - rocnik = nastaveni.aktualni_rocnik - # Od tohoto místa dál jsem zkoušel spoustu variací podle https://django-polymorphic.readthedocs.io/en/stable/advanced.html - temaQ = Q(Tema___rocnik=rocnik, stav=m.Problem.STAV_ZADANY) - ulohaQ = Q(Uloha___cislo_zadani__rocnik=rocnik, stav=m.Problem.STAV_ZADANY) - clanekQ = Q(Clanek___cislo__rocnik=rocnik, stav=m.Problem.STAV_ZADANY) - qs = super().get_queryset().filter(temaQ | ulohaQ | clanekQ) - return qs.filter(nadproblem__isnull=True) + return super().get_queryset().filter(stav=m.Problem.STAV_ZADANY, nadproblem__isnull=True) class NahrajReseniView(LoginRequiredMixin, CreateView): From 0c5c923b06b14344d6cf2454117254911b849800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 23:06:16 +0200 Subject: [PATCH 194/515] =?UTF-8?q?Autocomplete=20=C5=99e=C5=A1itel=C5=AF:?= =?UTF-8?q?=20oprava=20v=C3=ADceslovn=C3=A9ho=20hled=C3=A1n=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 601f4e35..84a915bf 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -37,9 +37,9 @@ class ResitelAutocomplete(LoginRequiredAjaxMixin,autocomplete.Select2QuerySetVie query = Q() for part in parts: query &= ( - Q(osoba__jmeno__istartswith=self.q)| - Q(osoba__prijmeni__istartswith=self.q)| - Q(osoba__prezdivka__istartswith=self.q) + Q(osoba__jmeno__istartswith=part)| + Q(osoba__prijmeni__istartswith=part)| + Q(osoba__prezdivka__istartswith=part) ) qs = qs.filter(query) return qs From c7ce943fc0e9aa8d3ac89dd67c6f872c7d8efaa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 23:10:38 +0200 Subject: [PATCH 195/515] =?UTF-8?q?Vlo=C5=BEit=20=C5=99e=C5=A1en=C3=AD:=20?= =?UTF-8?q?v=C3=ADce=20=C5=99e=C5=A1itel=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 223d807f..a2056cae 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -30,7 +30,7 @@ class PosliReseniForm(forms.Form): # FIXME pridat vice resitelu resitel = forms.ModelChoiceField(label="Řešitel", queryset=Resitel.objects.all(), - widget=autocomplete.ModelSelect2( + widget=autocomplete.ModelSelect2Multiple( url='autocomplete_resitel', attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', From 831ed6c64c48c4e2db2e256d10de89aa1a24a25d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 23:21:19 +0200 Subject: [PATCH 196/515] =?UTF-8?q?zbyl=C3=A9=20FIXME=20po=20=E2=80=9EVlo?= =?UTF-8?q?=C5=BEit=20=C5=99e=C5=A1en=C3=AD:=20v=C3=ADce=20=C5=99e=C5=A1it?= =?UTF-8?q?el=C5=AF=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 1 - 1 file changed, 1 deletion(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index a2056cae..2d2a8990 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -27,7 +27,6 @@ class PosliReseniForm(forms.Form): #problem = models.ManyToManyField(Problem, verbose_name='problém', help_text='Problém', # through='Hodnoceni') - # FIXME pridat vice resitelu resitel = forms.ModelChoiceField(label="Řešitel", queryset=Resitel.objects.all(), widget=autocomplete.ModelSelect2Multiple( From 86f6d47f1019a289702b72f2a477ccad17d5e945 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 23:30:57 +0200 Subject: [PATCH 197/515] =?UTF-8?q?Sou=C4=8Dty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hnusně, ale přece… --- odevzdavatko/templates/odevzdavatko/tabulka.html | 7 +++++-- odevzdavatko/views.py | 13 +++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index c108c7d8..6f3a0540 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -36,13 +36,16 @@ Do data (včetně): {{ filtr.reseni_do }} {# TODO: Chceme mít view i na řešení konkrétního řešitele ke všem problémům? #} {{ resitel }} - {% for bunka in hodnoty %} + {% for soucet,bunka in hodnoty %} {% for reseni,hodnoceni in bunka %} - {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body|default:"🔨"}}b) + {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body|default_if_none:"🔨"}} b)
    {% endfor %} + {% if bunka|length > 1 %} + Σ: {{soucet}} b + {% endif %} {% endfor %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 9fda18a8..d5c7e4bc 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -13,6 +13,7 @@ from django.db.models import Q from dataclasses import dataclass import datetime +from decimal import Decimal from itertools import groupby import logging @@ -119,6 +120,7 @@ class TabulkaOdevzdanychReseniView(ListView): ctx['problemy'] = self.problemy ctx['resitele'] = self.resitele tabulka: dict[m.Problem, dict[m.Resitel, list[tuple[m.Reseni, m.Hodnoceni]]]] = dict() + soucty: dict[m.Problem, dict[m.Resitel, Decimal]] = dict() def pridej_reseni(resitel, hodnoceni): problem = hodnoceni.problem @@ -127,26 +129,29 @@ class TabulkaOdevzdanychReseniView(ListView): reseni = hodnoceni.reseni if problem not in tabulka: tabulka[problem] = dict() + soucty[problem] = dict() if resitel not in tabulka[problem]: tabulka[problem][resitel] = [(reseni, hodnoceni)] + soucty[problem][resitel] = hodnoceni.body or 0 # Neobodované neřešíme else: tabulka[problem][resitel].append((reseni, hodnoceni)) + soucty[problem][resitel] += hodnoceni.body or 0 # Neobodované neřešíme for hodnoceni in self.get_queryset(): for resitel in hodnoceni.reseni.resitele.all(): pridej_reseni(resitel, hodnoceni) - hodnoty: list[list[list[tuple[m.Reseni, m.Hodnoceni]]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy, v každé buňce seznam řešení k danému řešiteli a problému. + hodnoty: list[list[tuple[Decimal,list[tuple[m.Reseni, m.Hodnoceni]]]]] = [] # Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy + jejich součty, v každé buňce seznam řešení k danému řešiteli a problému. resitele_do_tabulky: list[m.Resitel] = [] for resitel in self.resitele: dostal_body = False - resiteluv_radek: list[list[tuple[m.Resitel, m.Hodnoceni]]] = [] # podle pořadí v self.problemy + resiteluv_radek: list[tuple[Decimal,list[tuple[m.Resitel, m.Hodnoceni]]]] = [] # podle pořadí v self.problemy for problem in self.problemy: if problem in tabulka and resitel in tabulka[problem]: - resiteluv_radek.append(tabulka[problem][resitel]) + resiteluv_radek.append((soucty[problem][resitel], tabulka[problem][resitel])) dostal_body = True else: - resiteluv_radek.append([]) + resiteluv_radek.append((Decimal(0),[])) if self.chteni_resitele != FiltrForm.RESITELE_RELEVANTNI or dostal_body: hodnoty.append(resiteluv_radek) resitele_do_tabulky.append(resitel) From c93fa6c5744e6bfbc818da3579456629af29bf20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 23:34:37 +0200 Subject: [PATCH 198/515] =?UTF-8?q?oprava=20=E2=80=9EVlo=C5=BEit=20=C5=99e?= =?UTF-8?q?=C5=A1en=C3=AD:=20v=C3=ADce=20=C5=99e=C5=A1itel=C5=AF=E2=80=9C?= =?UTF-8?q?=20a=20v=C3=ADce=20=C5=99e=C5=A1en=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 16 +++++++++++++--- odevzdavatko/views.py | 4 ++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 2d2a8990..1a4e0a74 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -21,13 +21,23 @@ class DateInput(forms.DateInput): class PosliReseniForm(forms.Form): - #FIXME jen podproblémy daného problému - problem = forms.ModelChoiceField(label='Problém',queryset=m.Problem.objects.all()) + problem = forms.ModelMultipleChoiceField( + queryset=m.Problem.objects.all(), + label="Problémy", + widget=autocomplete.ModelSelect2Multiple( + url='autocomplete_problem_odevzdatelny', + attrs={ + 'data-placeholder--id': '-1', + 'data-placeholder--text': '---', + 'data-allow-clear': 'true' + }, + ), + ) # to_field_name #problem = models.ManyToManyField(Problem, verbose_name='problém', help_text='Problém', # through='Hodnoceni') - resitel = forms.ModelChoiceField(label="Řešitel", + resitel = forms.ModelMultipleChoiceField(label="Řešitelé", queryset=Resitel.objects.all(), widget=autocomplete.ModelSelect2Multiple( url='autocomplete_resitel', diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index d3c74812..5660af71 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -360,8 +360,8 @@ class PosliReseniView(LoginRequiredMixin, FormView): forma=data['forma'], poznamka=data['poznamka'], ) - nove_reseni.resitele.add(data['resitel']) - nove_reseni.problem.add(data['problem']) + nove_reseni.resitele.add(*data['resitel']) + nove_reseni.problem.add(*data['problem']) nove_reseni.save() context = self.get_context_data() From 669255461ba7ab3f5ad498d008b7711c824d8689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 22 May 2023 23:39:04 +0200 Subject: [PATCH 199/515] =?UTF-8?q?Vlo=C5=BEit=20=C5=99e=C5=A1en=C3=AD:=20?= =?UTF-8?q?i=20nezadan=C3=A9=20probl=C3=A9my?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 1a4e0a74..0bc99927 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -25,7 +25,7 @@ class PosliReseniForm(forms.Form): queryset=m.Problem.objects.all(), label="Problémy", widget=autocomplete.ModelSelect2Multiple( - url='autocomplete_problem_odevzdatelny', + url='autocomplete_problem', attrs={ 'data-placeholder--id': '-1', 'data-placeholder--text': '---', From fe144e6de77440b8c58dd1f7e818ffd5111998fe Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 22 May 2023 23:58:04 +0200 Subject: [PATCH 200/515] =?UTF-8?q?Barvi=C4=8Dkyyy!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 1 + odevzdavatko/templates/odevzdavatko/tabulka.html | 3 ++- odevzdavatko/templatetags/barvy_reseni.py | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 odevzdavatko/templatetags/barvy_reseni.py diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 63c5f527..b1b192d6 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1233,6 +1233,7 @@ div.gdpr { .dosla_reseni tr th, .dosla_reseni tr td { padding: 1px 10px 1px 10px; border-collapse: collapse; + min-width: 8em; /*Nastřeleno, aby se řádky s řešeními nezalamovaly. Teoreticky není potřeba pro th, ale whatever.*/ } .dosla_reseni tr:nth-child(even) { diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 6f3a0540..5fd3b8db 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -1,6 +1,7 @@ {% extends "base.html" %} {% load utils %} {# Možná by mohlo být někde výš v hierarchii templatů... #} +{% load barvy_reseni %} {% block content %} @@ -39,7 +40,7 @@ Do data (včetně): {{ filtr.reseni_do }} {% for soucet,bunka in hodnoty %} {% for reseni,hodnoceni in bunka %} - + {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body|default_if_none:"🔨"}} b)
    {% endfor %} diff --git a/odevzdavatko/templatetags/barvy_reseni.py b/odevzdavatko/templatetags/barvy_reseni.py new file mode 100644 index 00000000..5a3791fd --- /dev/null +++ b/odevzdavatko/templatetags/barvy_reseni.py @@ -0,0 +1,15 @@ +from django import template +register = template.Library() + +from functools import cache +import seminar.models as m + +@register.filter +@cache +def barva_reseni(r: m.Reseni): + """Vrátí nějakou barvu pro daný problém, ve tvaru '#RRGGBB' + + Efektivně hešujeme do barev.""" + + #TODO: ne všechny barvy jsou dobře rozlišitelné a vidět… + return f'#{hash(str(r.id)) & 0xffffff:06x}' From d304e46ceb3499aed5e62b7f6a53aa4f41522ce8 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 23 May 2023 00:28:13 +0200 Subject: [PATCH 201/515] =?UTF-8?q?Barvi=C4=8Dky=20jdou=20vypnout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/forms.py | 2 ++ odevzdavatko/templates/odevzdavatko/tabulka.html | 3 ++- odevzdavatko/views.py | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 223d807f..8fdd1e21 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -196,6 +196,7 @@ class OdevzdavatkoTabulkaFiltrForm(forms.Form): 'reseni_od': terminy[-2] if rocnik is None else terminy[0], 'reseni_do': terminy[-1], 'neobodovane': False, + 'barvicky': True, } return initial @@ -220,3 +221,4 @@ class OdevzdavatkoTabulkaFiltrForm(forms.Form): reseni_od = forms.DateField(input_formats=[DATE_FORMAT]) reseni_do = forms.DateField(input_formats=[DATE_FORMAT]) neobodovane = forms.BooleanField(required=False) + barvicky = forms.BooleanField(required=False) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 5fd3b8db..7cd317e5 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -12,6 +12,7 @@ Od data (vyjma): {{ filtr.reseni_od }} Do data (včetně): {{ filtr.reseni_do }} 🔨? {{ filtr.neobodovane }} +🎨? {{ filtr.barvicky }} @@ -40,7 +41,7 @@ Do data (včetně): {{ filtr.reseni_do }} {% for soucet,bunka in hodnoty %} {% for reseni,hodnoceni in bunka %} - + {{reseni.cas_doruceni | date:"j. n."}} ({{ hodnoceni.body|default_if_none:"🔨"}} b)
    {% endfor %} diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index d5c7e4bc..a3838285 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -63,6 +63,7 @@ class TabulkaOdevzdanychReseniView(ListView): reseni_od = fcd["reseni_od"] reseni_do = fcd["reseni_do"] jen_neobodovane = fcd["neobodovane"] + self.barvicky = fcd["barvicky"] else: initial = FiltrForm.gen_initial(self.aktualni_rocnik) resitele = initial['resitele'] @@ -70,6 +71,7 @@ class TabulkaOdevzdanychReseniView(ListView): reseni_od = initial['reseni_od'][0] reseni_do = initial['reseni_do'][0] jen_neobodovane = initial["neobodovane"] + self.barvicky = initial["barvicky"] # Chceme jen letošní problémy @@ -161,6 +163,7 @@ class TabulkaOdevzdanychReseniView(ListView): ctx['form'] = ctx['filtr'] # Pro maximum v přesměrovátku ročníků ctx['aktualni_rocnik'] = m.Nastaveni.get_solo().aktualni_rocnik + ctx['barvicky'] = self.barvicky if 'rocnik' in self.kwargs: ctx['rocnik'] = self.kwargs['rocnik'] else: From c3b42e09f2f5139d64e2d0fa5253b5d2698165b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 23 May 2023 01:10:37 +0200 Subject: [PATCH 202/515] =?UTF-8?q?Multiple=20select=20odte=C4=8F=20maj?= =?UTF-8?q?=C3=AD=20oran=C5=BEovou=20barvu=20a=20obsahuj=C3=AD=20checkboxy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 63c5f527..693e6206 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1255,3 +1255,19 @@ div.gdpr { label[for=id_skola] { font-weight: bold; } + + +/* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ +.select2-results__option[aria-selected=true]:before { + content: '☑ '; + padding: 0 0 0 8px; +} + +.select2-results__option[aria-selected=false]:before { + content: '◻ '; + padding: 0 0 0 8px; +} + +.select2-results__option--highlighted { + background-color: #e84e10 !important; +} From 317cc3056eaad4285aca6e4c31dfe89bec2dc244 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 23 May 2023 01:15:06 +0200 Subject: [PATCH 203/515] =?UTF-8?q?Zdroj=20k=C3=B3du?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 693e6206..40755000 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1258,6 +1258,7 @@ label[for=id_skola] { /* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ +/* Podle https://stackoverflow.com/a/48290544 */ .select2-results__option[aria-selected=true]:before { content: '☑ '; padding: 0 0 0 8px; From 4a3f8c669d2facc4540b6ee7af96a0b3422a4f1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 23 May 2023 01:39:46 +0200 Subject: [PATCH 204/515] =?UTF-8?q?Multiple=20select=20se=20nemaj=C3=AD=20?= =?UTF-8?q?zav=C3=ADrat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/static/odevzdavatko/select2.js | 7 +++++++ odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 3 ++- odevzdavatko/templates/odevzdavatko/posli_reseni.html | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 odevzdavatko/static/odevzdavatko/select2.js diff --git a/odevzdavatko/static/odevzdavatko/select2.js b/odevzdavatko/static/odevzdavatko/select2.js new file mode 100644 index 00000000..8f104c7c --- /dev/null +++ b/odevzdavatko/static/odevzdavatko/select2.js @@ -0,0 +1,7 @@ +// Nenechá select2 (používaný pro multiple select) se zavřít po výběru +$(window).on('load', function () { + // Z nějakého důvodu nestačí onload, ale libovolný timeout pomůže. BÚNO 0.5 sekundy, kdyby to bylo rychlostí mého počítače + setTimeout(function() { + $(".select2-hidden-accessible").select2({closeOnSelect: false}) + }, 500) +}); diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 19101b6b..0efe34f2 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -1,7 +1,8 @@ {% extends "base.html" %} {% load static %} {% block script %} - + + {% endblock %} {% block content %} diff --git a/odevzdavatko/templates/odevzdavatko/posli_reseni.html b/odevzdavatko/templates/odevzdavatko/posli_reseni.html index 27827015..b57c13c3 100644 --- a/odevzdavatko/templates/odevzdavatko/posli_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/posli_reseni.html @@ -4,6 +4,7 @@ {{form.media}} + {% endblock %} {% block content %} From 3c958c917b39e99b2789a51a7e67305df5c5126a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 1 Jun 2023 14:24:14 +0200 Subject: [PATCH 205/515] =?UTF-8?q?E-mail=20=C5=99e=C5=A1itel=C5=AFm=20k?= =?UTF-8?q?=20prvn=C3=ADmu=20=C4=8D=C3=ADslu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/tvorba.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index fdc7e434..124d5695 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -264,12 +264,20 @@ class Cislo(SeminarModelBase): odkaz = self.absolute_url() poslat_z_mailu = 'zadani@mam.mff.cuni.cz' - predmet = 'Vyšlo číslo {}'.format(self.kod()) + predmet = 'Vyšlo číslo {}. číslo M&M'.format(self.kod()) # TODO Možná nechceme všem psát „Ahoj“, např. příjemcům… text_mailu = 'Ahoj,\n' \ 'na adrese {} najdete nejnovější číslo.\n' \ 'Vaše M&M\n'.format(odkaz) + text_mailu_prvni = 'Milý řešiteli,\n'\ + 'právě jsme na našem webu zveřejnili první číslo {}. ročníku, najdeš ho na tomto odkazu: {}.\n\n'\ + 'Doufáme, že tě M&M baví, a byli bychom rádi, kdyby mohlo dělat radost i dalším středoškolákům. Máme na tebe proto jednu prosbu. Sdílej prosím odkaz alespoň s jedním svým kamarádem, který by mohl mít o řešení M&M zájem. Je to pro nás moc důležité a velmi nám tím pomůžeš. Díky!\n\n'\ + 'Organizátoři M&M\n'.format(self.rocnik.rocnik, odkaz) + + text_mailu_resitel = text_mailu_prvni if self.poradi == "1" else text_mailu + + # Prijemci e-mailu resitele_vsichni = aktivniResitele(self).filter(zasilat_cislo_emailem=True) @@ -291,8 +299,8 @@ class Cislo(SeminarModelBase): paticka = "---\nK odběru těchto e-mailů jste se přihlásili na stránkách https://mam.matfyz.cz. Z odběru se lze odhlásit na https://mam.matfyz.cz/resitel/osobni-udaje/" - posli(text_mailu + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove)) - posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, + posli(text_mailu_resitel + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove)) + posli(text_mailu_resitel + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, resitele_vsichni.exclude(zasilat=pm.Resitel.zasilat_cislo_papirove)) paticka_prijemce = "---\nPokud tyto e-maily nechcete nadále dostávat, prosíme, ozvěte se nám na mam@matfyz.cz." From 389a979f4c65058fc2922861d5e2366b0205370f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 1 Jun 2023 14:42:01 +0200 Subject: [PATCH 206/515] =?UTF-8?q?Jak=20=C5=99esit=20(oproti=20mamtex=20j?= =?UTF-8?q?e=20tam=20ubran=C3=BD=20n=C4=9Bjak=C3=BD=20text=20nav=C3=ADc)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Důležitý je celý postup, nejen výsledek. --- mamweb/static/css/mamweb.css | 2 +- .../templates/seminar/jakresit/jak-resit.html | 4 +- .../{jakresit_3.svg => jak_resit.svg} | 20948 +++++------- .../templates/seminar/jakresit/jakresit_1.svg | 26775 --------------- .../templates/seminar/jakresit/jakresit_2.svg | 26847 ---------------- 5 files changed, 7524 insertions(+), 67052 deletions(-) rename seminar/templates/seminar/jakresit/{jakresit_3.svg => jak_resit.svg} (74%) delete mode 100644 seminar/templates/seminar/jakresit/jakresit_1.svg delete mode 100644 seminar/templates/seminar/jakresit/jakresit_2.svg diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 63c5f527..75f65ae4 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1201,7 +1201,7 @@ div.gdpr { /* Jak řešit */ .jakresit svg { - width: 33%; + width: 100%; padding: 10px; filter: none; } diff --git a/seminar/templates/seminar/jakresit/jak-resit.html b/seminar/templates/seminar/jakresit/jak-resit.html index fd278c68..c0962307 100644 --- a/seminar/templates/seminar/jakresit/jak-resit.html +++ b/seminar/templates/seminar/jakresit/jak-resit.html @@ -8,9 +8,7 @@
    -{% include 'seminar/jakresit/jakresit_1.svg' %} -{% include 'seminar/jakresit/jakresit_2.svg' %} -{% include 'seminar/jakresit/jakresit_3.svg' %} +{% include 'seminar/jakresit/jak_resit.svg' %}
    {% endblock %} diff --git a/seminar/templates/seminar/jakresit/jakresit_3.svg b/seminar/templates/seminar/jakresit/jak_resit.svg similarity index 74% rename from seminar/templates/seminar/jakresit/jakresit_3.svg rename to seminar/templates/seminar/jakresit/jak_resit.svg index 391ebc7c..1c25918c 100644 --- a/seminar/templates/seminar/jakresit/jakresit_3.svg +++ b/seminar/templates/seminar/jakresit/jak_resit.svg @@ -1,22 +1,34 @@ + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + sodipodi:docname="jak_resit_2023.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:ns10="http://www.iki.fi/pav/software/textext/"> + + + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + id="path30242" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + id="path28764" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + id="path27326" /> + id="path27100" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + id="path26604" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + id="path6554" /> + id="path6534" /> + id="path6524" /> + id="path6514" /> + id="path6504" /> + id="path6494" /> + id="path6484" /> + id="path6474" /> + id="path6464" /> + id="path6454" /> + id="path6444" /> + id="path6434" /> + id="path6424" /> + id="path4376" /> + id="path4322" /> + id="path4234" /> + id="path4231" /> + id="id-58d9e82b-c60c-4c26-8d27-25478f5c3f75"> + id="id-74bba7de-3236-4e7e-b81c-cd74e04b7ee8" /> + id="id-03b7ac0a-6c29-4a9d-af6b-0ed77e89ca3a"> + id="id-ee253b46-36ae-4066-9d45-202f798baf2d" /> + id="id-cb2f407b-bab3-4e77-9fdc-0ca956fc1b84"> + id="id-7e4771e9-92bb-4d1e-a5c7-dda49f957914" /> + id="id-919a82c7-b3f8-43ea-83c0-f090eafd962c"> + id="id-ec7a370b-cc7d-422d-9e34-0ed9b9fff025" /> + id="id-b735b9c6-1c34-4638-8ff0-837d84fe7813"> + id="id-8f0afab4-48ba-4dc7-bda9-195ce5634890" /> + id="id-6d3c83a3-17a6-4aa5-8071-8cba135fc03c"> + id="id-0a2ab759-764e-4239-a7de-48f100e6f29e" /> @@ -1252,153 +1211,123 @@ id="id-938187a9-6c43-4b06-ae83-2e0d890ebc3f"> + id="id-a14891fa-6c5f-4ff1-aa30-3573d524d466"> + id="id-5210200e-6890-47d6-830b-11df2fc23808" /> + id="id-17ad1d9b-4cf5-4c32-a2ee-7639a759bf60"> + id="id-bd6ca3ea-cc7d-4507-a3e2-39597cc9abad" /> + id="id-877be989-c3e8-463e-ab72-12905964a25a"> + id="id-2e2d9275-1f7f-4ca4-96de-385d7f14e3bd" /> + id="id-8e46c3d7-2ae5-48fb-b81f-c2d2fb5f39c3"> + id="id-5aa23712-4d3a-4891-85b1-386cc2512dae" /> + id="id-0d892061-d218-4311-899f-85701b4be68f"> + id="id-7e8988dd-d516-40ed-bc87-8ab52987cd89" /> + id="id-9b5b3bfc-2c1a-4fd0-9512-d959b819d637"> + id="id-d8d36dd5-7fa5-42e1-bc71-73a86ef45998" /> + id="id-62cda65d-6afc-4d78-b067-d9c1d218a1b9"> + id="id-8932ff6f-4582-4a08-b549-0c04de3fc2c5" /> + id="id-8c6c107e-9cb4-4111-ad7b-57eeb17d2aed"> + id="id-928c198b-e2ce-437a-9d6f-6111dc486160" /> + id="id-f4f73b4b-a0fd-4c8f-90c7-382fe6527634"> + id="id-b7e98946-2f1f-4715-b501-99202c87f8ba" /> + id="id-748e4a0c-1247-4b21-8a16-0a04bc85e6b0"> + id="id-8159b334-036f-42f2-a878-94b5a496d7d9" /> + id="id-32bb3d59-aebc-4725-acc7-b53a104f9f46"> + id="id-9c126854-d9b0-495d-9bb5-6a7b691c87d3" /> + id="id-5727edde-9de0-41e1-89a8-8986cef89c4b"> + id="id-c6dc18f1-77c4-4f5b-a06e-43bb7768df91" /> + id="id-b0077620-6c8a-4f68-9dbb-dc8d1b9835f5"> + id="id-b638c59c-001d-4905-9069-60e913071ed4" /> + id="id-599edc1a-3101-4a5e-a36c-a1e06fd00603"> + id="id-b6c3c897-cd4c-4513-b250-6c0f1cc93d01" /> + id="id-f4a5ae47-3416-47ab-8812-32b53f3495f7"> + id="id-b6ca682c-0dcf-41d5-b3ff-c44f705f97f8" /> @@ -1512,533 +1441,427 @@ id="id-866b9d89-8530-4c01-aca3-dfcf9f167ff2"> + id="id-20191577-925b-4721-a301-0ccf2bef2e5d"> + id="id-83ddc62a-d385-458c-9a65-ce4685218283" /> + id="id-20d87416-09ea-4128-a07c-8673d7f8c7d6"> + id="id-b60c2c94-6119-42f8-9243-a9fb6b7956b6" /> + id="id-11ca6b63-98d0-4c31-adaa-d7c8ef6ebeaf"> + id="id-ea1e6583-4504-48c3-9640-5aff1ef440d9" /> + id="id-c45079c9-23f8-4dec-ac1e-f3c235e56be0"> + id="id-43eb4b39-30e1-49fe-bf53-7512d6e184bf" /> + id="id-d62d6ad1-de4d-4326-b6e5-d9f58c55a657"> + id="id-833553d8-3b78-481f-bc28-499fce6cde4a" /> + id="id-c879be9a-3e07-47c9-b649-35c47c607dea"> + id="id-a2b475a1-a500-4480-bf4a-b2f18902336d" /> + id="id-3627a21a-748e-4669-abe2-db2d5936e1ad"> + id="id-d4f92ba7-9d7f-432f-87b8-c62c637f54d9" /> + id="id-360a72b5-4350-4ed2-b6ed-bf301ed20617"> + id="id-316cce9d-8d85-4db5-a0c6-06c5ebf063c1" /> + id="id-ceb12ac5-b089-4228-afa9-45f0988961cc"> + id="id-593adde4-7447-4606-b45a-89a4f09d1f79" /> + id="id-ee89bf1e-3112-42ce-b5c5-1a1e2b33021b"> + id="id-a036848a-04b8-4a0a-be9d-67cafa333b6f" /> + id="id-ab394ddf-f5af-44e2-b3c2-949aca23c50c"> + id="id-e3ef12f2-4daf-41fc-bd4b-b01d7bed7de8" /> + id="id-871a3fc0-c26b-4640-ae1e-80edc9f3478c"> + id="id-889754da-088e-4c02-b581-8f3b4bb78480" /> + id="id-ebe903d1-4931-410e-b4b7-202df3cd04a1"> + id="id-47244d09-43d9-4251-9e33-19cde29199e3" /> + id="id-ba5745aa-1289-44ca-9bf5-714ea7d9e412"> + id="id-2729e7fc-133c-4056-846a-262388c92619" /> + id="id-5cc2b572-d8c8-44f0-9442-b75285964682"> + id="id-d71dc0ea-aaae-4dd1-a425-79a6ae0508b3" /> + id="id-da783539-92f7-4567-be7a-7dc759988c09"> + id="id-706149b8-fd12-4472-9155-2c9347d11df6" /> + id="id-05207000-a1a0-4181-af65-f69d26a00f2b"> + id="id-226fc5f1-016c-4ccd-9bc7-6c8046610ad5" /> + id="id-bb3325d4-8349-4130-a31f-74b88cbb0ac5"> + id="id-5f1b874e-cf6a-48ff-bd7f-6b4eff1050d6" /> + id="id-647aa125-e033-450a-8c26-4fb4632e6038"> + id="id-79837ffc-4b11-4e2e-bf98-9fd918406fda" /> + id="id-15901e59-f61e-483d-b584-42e5f16a8920"> + id="id-9156cb20-bbbe-49f2-9744-50dd0275bfed" /> + id="id-c829d63a-3ce0-432a-b8ec-3a172fd5b478"> + id="id-015f30ac-8f9f-46c4-8f3d-0af411cf62e4" /> + id="id-11268275-85a7-461a-bd59-d1c59f4d1f64"> + id="id-5cd31979-7685-4605-b6c0-848506a2beb7" /> + id="id-5439d6f9-0564-430c-911a-b48b11f1cfee"> + id="id-d62182a5-fce9-4890-9f8e-109759ad7160" /> + id="id-86d6269f-59e8-48e9-a2f3-7bc81c99da56"> + id="id-dd04b27d-cc34-4610-b646-930f7113b526" /> + id="id-86137479-757a-4e85-a165-a693f3d9275c"> + id="id-d304a14e-8252-4663-a649-c2ce5b2322cb" /> + id="id-56bb2087-fcfa-42e8-a0ed-bf083f02fe3d"> + id="id-9e5b78d5-1bac-4827-9fc3-8bfd30caefd9" /> + id="id-fbf179a1-1dc1-46de-81b3-fd68a69e017d"> + id="id-26b00489-7799-45ef-b0f9-3d60390935f7" /> + id="id-8bfb977f-9c54-4b7e-9fc8-3d9bb93601fe"> + id="id-7440fed1-4052-4cbe-8ae8-f5bfa4e0efaf" /> + id="id-ec97404c-f0be-4376-af0b-1029187c308f"> + id="id-2c37c930-6bac-4396-945c-a7e8770dda63" /> + id="id-1c8d4c32-8532-47aa-a514-dd0ab61727a3"> + id="id-e424f076-98c2-42cb-a9a4-d03422302178" /> + id="id-7de674f4-c3d7-405b-b075-9d13c30d637d"> + id="id-7ebfe0d2-7802-499a-9103-db734acf6286" /> + id="id-d48ea2d0-cfe9-43bc-9932-18c1705f55ef"> + id="id-16886f91-a964-484b-b587-d92273bc5305" /> + id="id-a89cd2da-6157-4837-8441-5121f4008184"> + id="id-0d8375ee-e17d-4ad9-99ae-ecf128386732" /> + id="id-731039a8-64c7-404b-af82-a33119403d11"> + id="id-5e777343-eef0-4e22-afa4-be591a88a956" /> + id="id-6eb9234b-e6a0-4092-90a2-2f03220fdc6a"> + id="id-ce6b921a-e014-45c1-9c78-bc3b6ee9ffe8" /> + id="id-9596bd78-82f3-4e33-bbeb-19b3c8b98dd2"> + id="id-5209fab9-6735-44f1-80f1-2fe6d290ad89" /> + id="id-a3db7721-f118-4907-96b3-a4da9b324107"> + id="id-3c8ee776-868b-4b19-9c33-bd43e8539c94" /> + id="id-9d5968d4-e64d-48ea-90b9-d587f4b48307"> + id="id-629ec691-0873-4d1f-a992-f4437b701560" /> + id="id-7425609a-f637-4bb8-ad79-b7e235f3ca0b"> + id="id-eeb3a1ae-762f-45f3-a39f-ce081c2cd41c" /> + id="id-c37bec20-1030-41c0-9677-d6c2ad54d3c0"> + id="id-30a1933d-e57c-44b7-9250-d7b76208091c" /> + id="id-14860a42-d29b-4f56-8349-c840df740407"> + id="id-3faef2ce-8a7c-4c98-ba7d-17ed072bdd03" /> + id="id-d8d8dc3b-b230-4a82-b41f-cfd5e7b8782d"> + id="id-1b8d2c64-6ef8-4c87-9ce6-d952acb73dd9" /> + id="id-5a3be5fb-8e16-4035-967b-518c8ed25199"> + id="id-70c191ed-25a8-4628-8747-afef17700007" /> + id="id-988e8322-c234-4500-a837-c8bf58481953"> + id="id-e853d99d-5570-4bd2-94d1-3c561ce3ade1" /> + id="id-3db3deb0-f4c1-4ba0-a36d-0a09bdcb7349"> + id="id-95105687-efb0-413f-99ac-a377c9982742" /> + id="id-4249c0ef-e74a-4576-87a3-7d06a9feb885"> + id="id-77191fb2-d906-49df-bf8a-6ef9203755ac" /> + id="id-a35509f2-6d6b-4417-b5f1-f5efb6afaf48"> + id="id-d3cc4973-73c8-4cd1-ba87-79ca757f59db" /> + id="id-e67d6789-4a49-4240-9fa0-4fb801eeafab"> + id="id-1e3b3a4a-220b-478e-a7be-43d6d5bc4703" /> + id="id-513e8846-5ec9-4bd7-9a2c-a0af322b6372"> + id="id-e6f9ac80-f641-4928-a876-b28442b2adee" /> + id="id-f515ca8f-c37d-43c9-a40e-7b27915f5c4c"> + id="id-6f9b3634-ff93-4727-b336-609336b25724" /> + id="id-e28c822d-c4cc-4c87-82a5-68e401b69f28"> + id="id-484e893c-610c-446c-a425-025b1b78d9ff" /> + id="id-5f07d7d3-4207-4990-b597-dce03dedc306"> + id="id-17ab1bf2-deff-4644-ab4d-86fa6d410810" /> + id="id-2117854d-0de9-4d7c-bd8d-c1d8840a6629"> + id="id-797400ec-3c98-453b-bdd0-5aa77b2e5bb4" /> @@ -2156,183 +1979,147 @@ id="id-1a266726-eb14-4e24-8106-d7164008b378"> + id="id-db9d19c0-979e-44ae-8eb4-1049dc3af9b6"> + id="id-b41e8575-0aac-40d1-a6e0-3d70f34e06f7" /> + id="id-c0e2f17b-efc4-4601-b0cd-1b05a2c1472a"> + id="id-c9e7462f-ddce-4002-9dcc-34974d56c68d" /> + id="id-9fad458f-fd52-48bd-9c31-c52e676e41c9"> + id="id-26a21e17-c19a-40b6-8516-7e9ef072cd11" /> + id="id-7a50b7f5-3e0e-4ba9-a6e5-45a41b167ad4"> + id="id-8c1e6e9c-4781-4550-939f-e1fdf7e15edb" /> + id="id-4ec6d2fc-058c-4157-bce4-817edc818764"> + id="id-d68e8c2e-736a-4abd-9b0b-fa2a9e769159" /> + id="id-b75baacf-ed92-4684-9c5e-05b6019516ec"> + id="id-e55daa28-2131-4d17-9f3e-d9d9c3f5a092" /> + id="id-286a8cbc-bc94-4327-bf46-d5dabb8841bc"> + id="id-48fc9c54-4fee-41fc-9f08-bf4cb9f04ed1" /> + id="id-ca3a4e32-2302-4fde-82cf-6c4b61eba3ab"> + id="id-825431fc-6a7f-482c-bdda-cc5dd2c07c45" /> + id="id-938b3d18-c01e-4ed5-b365-e44484cdfeac"> + id="id-6f9a7211-e495-4e3e-a03c-d56ca017dd08" /> + id="id-e2a8e4af-edd9-4a95-95db-01ffe6a52259"> + id="id-1fe9917b-9e7d-4b27-aa5d-950f3bb92c12" /> + id="id-4aa7dbf5-c775-4133-8361-c4b6c03e2b87"> + id="id-1063295c-5946-40cb-8c0f-737e198e14bc" /> + id="id-8e26d3f9-0acc-40cc-8b7c-7a11f5b79e8c"> + id="id-9b92f3e4-9f8a-4648-8aa9-b1096e7b546b" /> + id="id-3b3bfe1a-ed36-4905-b50c-39831b0f0fcc"> + id="id-70859586-f380-42ce-b947-7bbaffe01c6e" /> + id="id-60de2980-e1f0-4c47-8d84-b48afdf96bd8"> + id="id-17bb5264-38c6-4828-b7e6-e48098dedbb9" /> + id="id-f5ae276e-c137-45f3-90a3-04d00bbf1698"> + id="id-8f5478bf-32be-4c44-8dda-22254c605163" /> + id="id-bdcec0e4-a7eb-46ae-9284-b55b9194326d"> + id="id-ce684b25-dd47-4d0d-bb0b-3944adbcbe36" /> + id="id-27c1fd3d-626a-4793-9acb-d71e97391d77"> + id="id-29459746-1b61-4e72-be89-c4d34eb3f57b" /> + id="id-1801de5e-72a6-4d20-88ee-8f08b08dc12d"> + id="id-4d10b06e-7f70-48d4-a578-21da1c77ccfb" /> @@ -2342,383 +2129,307 @@ id="id-8ee390bd-e362-4043-b76f-8fae701d2b9d"> + id="id-370090c0-f229-4cc3-b977-d1f2b2cfb282"> + id="id-f7b0409f-6d68-425b-bd2b-b8196eca4bf5" /> + id="id-9488b61b-8748-4b99-a3ce-f86fb51eac50"> + id="id-4bf623d1-d500-401e-b646-72d69561e577" /> + id="id-6b538197-379f-422b-a81d-d4d84913155d"> + id="id-8fa9b461-2f7c-4c61-bc9c-92f7a416a324" /> + id="id-f6418776-b05a-42f6-94eb-29f04542ee17"> + id="id-09045097-edad-4a43-bf86-b07f8f358f63" /> + id="id-c0679ceb-f5b2-41a9-8d39-ad22866fed8f"> + id="id-37d298fd-4917-431c-bf88-583cc01fa857" /> + id="id-c990d75b-e47f-46e8-bd3f-759fb991cafe"> + id="id-a6349817-5dd2-4da7-a6d3-7ebda60ec3ef" /> + id="id-4d9d4e27-ee31-4e15-a85c-7c5dc455b02f"> + id="id-c8a0277b-fb57-4f45-88d1-cd2722e8ebaf" /> + id="id-de50a2d6-fb1e-4b2b-bc10-f211389e7d09"> + id="id-c14b5fdf-53e9-43c8-8cf3-8786b23c1357" /> + id="id-d8d9aff2-a4b0-4e9b-8b69-5e97cefc7bfa"> + id="id-c5a8d00b-5634-4cd2-8afe-e9e51cf1b265" /> + id="id-6dfbdb36-fd0d-4e40-93f0-0d02bc2c5cf6"> + id="id-a008abef-0965-4fa9-b9b4-279dadb21b67" /> + id="id-e028364c-5b83-4bcf-a9d7-cdb669d0cdcf"> + id="id-cbe15ad5-7a10-49fa-b92f-5112a7e4d587" /> + id="id-d4cff158-f5af-4692-9760-dbb894f61a84"> + id="id-a5a2ab1e-d242-402a-8bab-16e8a36fb652" /> + id="id-3babefc6-79d4-4d6e-baba-314bfdd22cc5"> + id="id-ae190d07-f842-4069-b90e-83fc2e3156e0" /> + id="id-c2a9c6c8-804e-4359-882b-cb7610edffa4"> + id="id-9d99f6b7-2e04-4a33-b4d8-9c159746384a" /> + id="id-2a50fd73-ca50-461a-8eda-6bf80acc1641"> + id="id-6b09adb5-13cb-46e1-89d6-3dcc4ffe780b" /> + id="id-cc00f59c-a5d5-406a-8c88-29a1ea56c0ff"> + id="id-b4f6ca8f-13e1-4d81-b89e-cb800c6d4256" /> + id="id-59c940ac-21ce-4f82-940d-30dcf09dddc4"> + id="id-cd882bdb-b6bd-4684-90f7-b87c7b0f80c2" /> + id="id-2949049c-3af9-40d9-92fd-7a42e0ca038e"> + id="id-e87db3a9-156b-4af5-b647-78835aba8505" /> + id="id-4a71ee48-769b-4dc5-8865-a4d6a804da20"> + id="id-ed00a3e2-70c9-4957-9001-af9e27a854e7" /> + id="id-330ba1c6-e272-4897-a0e2-3ac94b5ad2e2"> + id="id-d3bac7c2-de64-4c1c-ae78-feab0f3eed1f" /> + id="id-5497a3de-845e-4c79-b809-3096ea7c4360"> + id="id-05665a3b-447d-4848-b458-60642cba6adc" /> + id="id-afb81de3-fcbb-484c-89d5-cfa52f1e4d72"> + id="id-a156bd31-e009-4a29-b320-fbed4c2bc419" /> + id="id-35242800-b040-42a0-91f8-544563fa571a"> + id="id-ee222360-06be-4819-bbec-6d5316d18964" /> + id="id-4eae52fb-fcd9-4c6c-afaf-885896464b3b"> + id="id-cd272b01-ca78-4b58-a0b4-02df35b014cf" /> + id="id-0bf0725f-f2ef-4d35-a60d-3a5f6d6d8657"> + id="id-3571f176-2935-43a3-a8df-6ccb88e6ef44" /> + id="id-29b57628-9858-473c-b8f6-1869f1c54db7"> + id="id-6fb8a592-81a4-46bd-8c7d-54389c7f7204" /> + id="id-7f711d12-11d1-4f90-98b0-14a81148589f"> + id="id-dd444034-82f2-4610-b34a-9bde91838752" /> + id="id-d483172b-eef6-4f3c-9f43-af04f0a2856d"> + id="id-24a609d8-5b9b-403d-9d3e-e43bf54378eb" /> + id="id-7062763c-299d-4ac9-b156-06fa9950e65e"> + id="id-c3ccaae8-8806-474d-8a5d-f67427ea4f17" /> + id="id-4afdef35-231b-4176-937a-51623c739bec"> + id="id-f3495068-d6e7-4a83-8aed-e599cb957d14" /> + id="id-8ea65ab2-940a-4409-aecb-41deb443e3fb"> + id="id-0868500f-e489-4ce9-a4d6-7412e00ec043" /> + id="id-362b39e6-8324-4ec3-bad6-c6d820cdf9a4"> + id="id-629dbe59-ecc1-4666-969a-5d6223425e66" /> + id="id-2ba1aa66-5168-4252-9a67-474ef3911b44"> + id="id-fc0af5e4-b0e8-4e85-b7a2-133b5e00f054" /> + id="id-85dd834a-0056-4d06-aeed-b2864777dc6c"> + id="id-4171190d-99a2-4561-b3e0-6d3580cf05de" /> + id="id-6d110b19-6ebf-4fb0-98fb-44055883caa9"> + id="id-04cae73f-72b9-4346-a225-6b8ef3dfea49" /> + id="id-5907229d-cd57-47c2-8720-cfe65c6f8cc9"> + id="id-4bfc7d03-f540-45a3-bbec-0aebc6139447" /> + id="id-3ebf5f52-1146-4d24-9542-5311d10d2025"> + id="id-30287741-6df7-47bd-86ac-32fbd086f215" /> + id="id-115048c2-58bb-4b2c-89ee-e1e3c5eca9e9"> + id="id-1ecad964-cf4c-47ca-be8e-fb47461c68e3" /> @@ -2728,313 +2439,251 @@ id="id-2e586840-ba83-43a2-b1ba-75c1f178fe7a"> + id="id-ddc09d16-7f10-47d4-aa9a-cd4ffdcc2aee"> + id="id-b299f53a-9603-4bc5-aa37-ed9566683c71" /> + id="id-5213cb68-d4e8-498f-abc7-00c0c5e8417f"> + id="id-d6a63460-22ef-4917-b24b-bdae54463558" /> + id="id-35038faf-ec69-4739-9d59-368b62527749"> + id="id-b85b87e2-e118-45d0-91be-43c6b32f7278" /> + id="id-e2e4ef6c-e715-4bec-9514-94f975c9043b"> + id="id-df8d504f-3866-4e34-b575-8191ef3248c1" /> + id="id-53305245-91a1-4f23-ba25-e1e2ba997b1e"> + id="id-9f8e35e3-7816-45f2-89d3-4b70d58d6a52" /> + id="id-bb54557c-f00c-4836-99bf-c21186854765"> + id="id-601603ca-5de6-4ef0-8616-acc20364c538" /> + id="id-757f8a4b-8d7c-403c-bfe0-7b48bc875bc4"> + id="id-8f6a4071-5304-4fc9-bbd0-a668b6f311ad" /> + id="id-1f8626e2-e0b5-4175-8286-81341c9f6e30"> + id="id-948174ab-9265-4d14-916a-513dc2176828" /> + id="id-2aa4e615-4f0d-4e5e-8bac-776f9ef66a04"> + id="id-886b8908-3239-43ce-9df4-3a4be133d1b1" /> + id="id-5b3ba1d6-b1f5-4ef4-bba7-74f46c5b8b2a"> + id="id-81ce085e-adb9-4a16-a725-7399ed174197" /> + id="id-864319a9-3c41-4fc9-b630-9279c9543d2e"> + id="id-3d776d4e-6df7-4657-b5f7-32c421b948c8" /> + id="id-4641e063-99d4-46df-beca-34484eeafdff"> + id="id-3267f133-a3e4-4638-9b18-53744ec45680" /> + id="id-682a44f2-499e-4ba0-aea6-d91b97cd360b"> + id="id-3150c039-5518-49be-8866-bc5d45e8412e" /> + id="id-b9bc7d0e-492d-46a8-aae6-b095e788df2c"> + id="id-156b015c-72d2-4e8d-a43d-3f71f8002a31" /> + id="id-67c50d9c-47fb-4806-b0bc-d2104a18c249"> + id="id-021d5287-3906-4193-b196-22a15bb05563" /> + id="id-3b31ff6e-d6b3-4531-824c-116db12ae036"> + id="id-d8e393fa-2fd5-45da-b616-59bf2a31d011" /> + id="id-d81e0164-c391-4493-a557-b98f0301bba0"> + id="id-1f7d6351-0d68-4817-a0dc-bf9430df72dd" /> + id="id-26c223e6-13d3-47bc-8571-ebe69ce64f74"> + id="id-9f78ae27-da46-4cae-9610-edd197791fb8" /> + id="id-fd7e146e-fdb0-49a4-9587-fd6e8332b092"> + id="id-b07c15f0-88b5-4fa4-85eb-1548642e53a6" /> + id="id-c2fa87bf-1f45-41c7-a4c9-795985193384"> + id="id-1e74fb07-89e6-4045-8046-b25c23c35827" /> + id="id-c15edaf6-d264-44c8-85dc-67cbdae4efbb"> + id="id-05438fcf-49c3-486a-9862-2908b17ca473" /> + id="id-65327638-e5c3-4fa6-94f6-a387e64d25c6"> + id="id-a2a3460f-df3c-455b-b53a-9bce15c8f50a" /> + id="id-ed2624f0-e19b-4aa4-907b-fb4f5d72e157"> + id="id-e636cdc3-3ae1-4993-9148-a0920f01822b" /> + id="id-b69c849b-9703-41e5-8af0-7e30c7e1b155"> + id="id-15d2c571-f9a1-46f3-b9c0-b7cabf2994f6" /> + id="id-172ba32e-38db-4b24-b013-be90fe0eb329"> + id="id-71ba2af7-4fc0-43ff-a726-7b0a1fa1f411" /> + id="id-95f42b18-62e1-4547-8b97-a91d473ede6f"> + id="id-45784045-d046-43d3-9939-275a27c39c0c" /> + id="id-33ab558b-a585-4fc1-aa36-20464889a9e8"> + id="id-8b8b17ce-7cd0-470d-b0df-f726a27ce062" /> + id="id-edaa639b-b280-4a98-a67c-553c01e977c2"> + id="id-1ccf3fe5-4fb6-4cc2-ab89-bbd5baa0d3fc" /> + id="id-17ba2fda-eb63-4bee-b4a3-1bd53fc83b4b"> + id="id-e4b4ed38-03e4-4a90-8512-5d35a6ecce68" /> + id="id-22ccb208-0473-4b07-8e3c-3cdd9947cf9b"> + id="id-276044c6-d417-468f-ab8e-5b027291bac2" /> + id="id-a2831b9e-d6ff-4af2-aa54-990ae033608c"> + id="id-828228cc-37e7-4c61-8747-1108a5187370" /> @@ -3044,383 +2693,307 @@ id="g79784"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -3430,233 +3003,187 @@ id="id-bbd7b9fb-e6b9-4868-ab11-d2406bf430d8"> + id="id-772f94d3-1c7c-413c-b02b-77fee8b232b1"> + id="id-7bf53810-bef0-4644-895c-afa8d5f4c1a8" /> + id="id-08cf0f37-1788-4dd9-842c-73fd28c590c7"> + id="id-247ba765-3580-4bba-85bd-f999fd587a8e" /> + id="id-d4588d22-5358-4c82-8582-ceb1ed91ddbe"> + id="id-9b8b45b2-24e9-4586-99ed-232be95d0f2a" /> + id="id-e9016403-9827-4813-8775-b30ca6772f13"> + id="id-5684dc98-a475-4304-a660-5945e8d4161d" /> + id="id-04de9723-8e0f-4a3e-b198-aa92e212cf9d"> + id="id-37f764fe-a25f-44eb-9e07-611d03e3628e" /> + id="id-f7a213d1-55c2-4417-8bca-ecf6af70346d"> + id="id-e133a3b8-c4ca-43a3-8156-340baee375ba" /> + id="id-558e1bfc-3507-450b-96ff-78352ac5c5e5"> + id="id-2d60e0d4-0350-45e7-aa09-33f36e94a55e" /> + id="id-8e9d253d-e017-4e16-b27e-8ee6f6fdfc6d"> + id="id-fc684379-08b4-486f-872a-6a93198b2de5" /> + id="id-1d012433-f204-4f69-a977-b0f7131cacd7"> + id="id-f6e1f947-f403-4789-b020-867dbf11861b" /> + id="id-0b4125e2-3610-45f6-ad7a-231d5ae93139"> + id="id-d44d535a-072f-4d4a-a0a1-088918a0b650" /> + id="id-f2c00f08-ada4-4cfa-903e-390d92bba462"> + id="id-b98ed50a-27e3-4abe-ab90-81af3760872c" /> + id="id-ecb1a6f9-551a-476d-9896-e698d1ffa6e8"> + id="id-4aa1ae69-5b27-40c3-abfd-201fd4d25c96" /> + id="id-b8e583dd-2d0c-47c8-819d-662faee17a76"> + id="id-c5148675-f0aa-4734-9a46-a558041e162a" /> + id="id-03fe1a7f-5086-4b5c-92cb-bce8480c44d0"> + id="id-23f14dd3-1abe-4646-962f-b6005d27e986" /> + id="id-d348df3c-aff1-4243-b567-d75aa4340561"> + id="id-c2ab98f8-e781-48fb-a668-0a2b740f0a4d" /> + id="id-7fe7088a-1265-48b7-99a8-d6e6b78e882b"> + id="id-63231045-4a0b-44fd-bd65-bb509a6d6e3a" /> + id="id-41ab9fd8-ab99-41b9-8347-3f61eb41d911"> + id="id-80b5b671-68ea-477f-b635-e554fe5073ec" /> + id="id-ee40d6c2-2120-4645-a397-132b9a1f866b"> + id="id-4d1ee7f1-49c2-468c-8bce-652609decfec" /> + id="id-4caf66f9-96f0-4644-9c84-320357b119a1"> + id="id-d3b8a1ac-016f-4be5-a0f0-6a12c86f2198" /> + id="id-e78979c5-5838-43f4-8c7d-beabb68ae356"> + id="id-9d6ac180-41e1-4985-89f7-890b6d3d1cd0" /> + id="id-38ffa48e-e27a-46a2-9c2f-45d249e3fadb"> + id="id-9a3e34dc-fe1b-420c-b327-3c2b9d7b1a08" /> + id="id-73a26404-9d18-4769-857f-17fa4668d155"> + id="id-9fbd6f1e-6ec0-4c4a-a7f2-656feb4aa277" /> + id="id-46de0d22-ba59-4550-82e4-b2d190af608a"> + id="id-62f2ae84-563c-434a-accb-9b675ec3b652" /> @@ -3666,133 +3193,107 @@ id="g8171"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -3807,10 +3308,9 @@ inkscape:stockid="TriangleOutL"> + id="path29974-0" /> + id="path29974-5" /> + id="base" + inkscape:pagecheckerboard="0"> + units="cm" /> @@ -3875,7 +3373,6 @@ image/svg+xml - @@ -3883,9 +3380,9 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" - transform="translate(-7.028636,-3.6067411)"> + style="display:inline"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -4324,8 +3739,7 @@ + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -5481,8 +4746,7 @@ + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + id="g162436"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + id="id-cae7ab4b-fee5-46f4-9ccf-3e1f9547ce36"> + style="fill:#000000;fill-opacity:1"> + id="g162381"> + style="stroke:none" /> + id="g162384"> + style="stroke:none" /> + id="g162387"> + style="stroke:none" /> + id="g162390"> + style="stroke:none" /> + id="g162393"> + style="stroke:none" /> + id="g162396"> + style="stroke:none" /> + id="g162399"> + style="stroke:none" /> + id="g162402"> + style="stroke:none" /> + id="g162405"> + style="stroke:none" /> + style="fill:#000000;fill-opacity:1"> + id="g162409"> + style="stroke:none" /> + style="fill:#000000;fill-opacity:1"> + id="g162413"> + style="stroke:none" /> + id="g162416"> + style="stroke:none" /> + style="fill:#000000;fill-opacity:1"> + id="g162420"> + style="stroke:none" /> + id="g162423"> + style="stroke:none" /> + id="g162426"> + style="stroke:none" /> + id="g162429"> + style="stroke:none" /> + id="g162432"> + style="stroke:none" /> + style="fill:#000000;stroke:none" /> + style="fill:#000000;stroke:none" /> + style="fill:#000000;stroke:none" /> + style="fill:#000000;stroke:none" /> + style="fill:#000000;stroke:none" /> + style="fill:#000000;stroke:none" /> @@ -7390,8 +6436,7 @@ + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -7921,8 +6895,7 @@ + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -8435,8 +7334,7 @@ + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -9283,8 +8049,7 @@ + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + style="stroke:none" /> + transform="translate(61.136,121.696)" + id="g49370"> + id="id-60d7662d-7183-4f6e-9700-9bc34ef4d12e" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + + + transform="translate(73.866,121.696)" + id="g49374"> + id="id-6e09400c-cb66-492c-a886-3adbcd9bd1bb" + d="m 5.859375,-0.453125 -0.0625,-0.6875 C 5.5,-0.9375 5.21875,-0.75 4.875,-0.640625 c -0.3125,0.109375 -0.671875,0.109375 -1,0.109375 -0.65625,0 -1.25,-0.34375 -1.65625,-0.859375 -0.453125,-0.578125 -0.671875,-1.328125 -0.671875,-2.0625 0,-0.75 0.21875,-1.5 0.671875,-2.09375 0.40625,-0.5 1,-0.859375 1.65625,-0.859375 0.296875,0 0.59375,0.03125 0.890625,0.125 0.296875,0.09375 0.578125,0.234375 0.84375,0.421875 l 0.125,-0.8125 C 5.4375,-6.796875 5.140625,-6.890625 4.8125,-6.953125 4.5,-7.015625 4.1875,-7.03125 3.875,-7.03125 c -0.890625,0 -1.6875,0.390625 -2.28125,1.046875 -0.609375,0.6875 -0.9375,1.59375 -0.9375,2.53125 0,0.921875 0.328125,1.828125 0.9375,2.515625 C 2.1875,-0.296875 2.984375,0.109375 3.875,0.109375 4.21875,0.109375 4.5625,0.09375 4.90625,0 5.25,-0.09375 5.546875,-0.265625 5.859375,-0.453125 Z m -0.8125,-8.21875 H 4.46875 L 3.5,-7.703125 2.53125,-8.671875 H 1.9375 l 1.265625,1.328125 h 0.59375 z m 0,0" + style="stroke:none" /> + transform="translate(80.2311,121.696)" + id="g49377"> + id="id-b14c786f-b90a-4309-b939-c5789e5f7928" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(82.6112,121.696)" + id="g49380"> + id="id-1f7348dd-bc94-4b09-9fcb-821468dcff55" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(87.3992,121.696)" + id="g49383"> + style="stroke:none" /> + transform="translate(92.5469,121.696)" + id="g49386"> + id="id-9e1759fa-8472-4d9e-87ea-312df5388770" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(97.4176,121.696)" + id="g49389"> + id="id-73d01843-d1da-4c76-b447-56884fa8593d" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" /> - - - - - - - - - + transform="translate(105.329,121.696)" + id="g49393"> + id="id-43b50252-41d9-4bd4-bf6b-c174f696d96f" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(113.244,121.696)" + id="g49396"> + id="id-5acb80a0-6649-46a2-a757-e3e0d4fb3f48" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> + transform="translate(118.392,121.696)" + id="g49399"> + id="id-79f359b9-e24b-4636-ad9d-f6c72820e79f" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + transform="translate(122.723,121.696)" + id="g49402"> + id="id-9fd7cca7-7a9d-4346-81ac-4e5279809511" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(127.151,121.696)" + id="g49405"> + id="id-2bd9e220-b560-4615-bd37-0185c96cdbe2" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(134.297,121.696)" + id="g49409"> + style="stroke:none" /> - - - + transform="translate(139.547,121.696)" + id="g49413"> + id="id-c307348a-896f-4733-b3a6-b5a3eeaf8d5c" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> - - + transform="translate(144.695,121.696)" + id="g49416"> + id="id-0d28a52b-8866-42a1-8bde-c33d2523c619" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(149.123,121.696)" + id="g49419"> + id="id-27fa9a74-6779-4ed4-ad49-961bed6270c9" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(153.717,121.696)" + id="g49422"> + id="id-5c0443da-5e28-472f-87b5-338c40edc73b" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(158.048,121.696)" + id="g49425"> + style="stroke:none" /> + transform="translate(163.196,121.696)" + id="g49428"> + id="id-1716f087-6ddd-48fd-b075-f33df7f7d449" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(167.984,121.696)" + id="g49431"> + id="id-e14be83e-386c-4ac1-989a-7ecdc106fa14" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(172.577,121.696)" + id="g49434"> + id="id-135b9502-1b91-4580-a4e8-7a5433f5eadd" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(177.365,121.696)" + id="g49437"> + id="id-0f412b4d-424c-484e-a501-5dd9ea6339a5" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(184.28,121.696)" + id="g49441"> + id="id-2f52ced6-b87c-4ea7-80af-2e608ad50a65" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(189.151,121.696)" + id="g49444"> + id="id-fdc68187-c965-4f36-9ce0-4f1a29e8f9c3" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> - - - - - - - - - + transform="translate(194.299,121.696)" + id="g49447"> + id="id-bc267d76-2ff6-4015-a3bb-eaecd309d037" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" /> + transform="translate(198.893,121.696)" + id="g49450"> + id="id-5d90b365-d71b-4ce6-b8fd-4c2cc3fafa87" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(203.494,121.696)" + id="g49454"> - - - + style="stroke:none" /> - - + transform="translate(208.476,121.696)" + id="g49457"> + id="id-b3241f08-9166-45c7-a9a4-02dbff82d64d" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(210.856,121.696)" + id="g49460"> + id="id-131a4f5c-c9d5-4937-9b49-cd0918c2e0c8" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(213.236,121.696)" + id="g49463"> - - - - - - + style="stroke:none" /> + transform="translate(217.83,121.696)" + id="g49466"> + id="id-ce804f05-8b31-4cc9-aa34-b8151863fa92" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> + + + + - + id="id-3c716607-fe77-4cdf-bbe1-00b444bdbf86"> + - - + d="" + id="id-d612ce20-1ed5-4e54-9072-140127e24e39" /> + + - - - - + d="m 15.125,-7.0625 c 0,-4.15625 -1.515625,-7.734375 -6.921875,-7.734375 -5.71875,0 -6.9375,3.953125 -6.9375,7.734375 0,3.859375 1.34375,7.515625 6.921875,7.515625 5.328125,0 6.9375,-3.28125 6.9375,-7.515625 z m -3.046875,-0.328125 c 0,1.828125 0,6.1875 -3.875,6.1875 -3.90625,0 -3.90625,-4.3125 -3.90625,-6.1875 0,-1.828125 0,-5.78125 3.890625,-5.78125 3.890625,0 3.890625,3.921875 3.890625,5.78125 z m 0,0" + id="id-2a1ceb45-41dd-4e1c-a402-b3145fcf55fe" /> + + - - + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + id="id-afb4aae0-d102-4e8a-9ab7-d4d1a94e632d" /> + + - - - - + d="M 16.65625,-0.984375 V -6.71875 c 0,-2.125 -0.921875,-2.96875 -3.015625,-2.96875 -1.46875,0 -2.609375,0.6875 -3.359375,2.046875 C 9.953125,-9.625 8.203125,-9.6875 7.328125,-9.6875 c -0.390625,0 -1.25,0 -2.1875,0.6875 C 4.5,-8.53125 4.09375,-7.875 3.953125,-7.5625 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.859375 1.265625,-2.640625 2.28125,-2.640625 0.984375,0 1.21875,0.4375 1.21875,1.53125 v 5.6875 C 7.546875,-0.25 7.765625,0 8.53125,0 h 0.828125 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 V -5.5625 c 0,-1.859375 1.265625,-2.640625 2.28125,-2.640625 0.984375,0 1.21875,0.4375 1.21875,1.53125 v 5.6875 C 13.84375,-0.25 14.0625,0 14.828125,0 h 0.828125 c 0.78125,0 1,-0.265625 1,-0.984375 z m 0,0" + id="id-53dd6210-af1c-46ef-b827-7dc9a22d470e" /> + + - - + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z M 8.640625,-14 c 0.09375,-0.171875 0,-0.390625 -0.21875,-0.390625 h -0.96875 c 0,0 -0.078125,0.01563 -0.125,0.03125 l -2.015625,2.09375 -2.03125,-2.09375 c -0.03125,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 2.1875 c -0.203125,0 -0.328125,0.265625 -0.21875,0.421875 l 1.984375,2.828125 c 0.03125,0.0625 0.09375,0.09375 0.171875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + id="id-79af8906-7c74-4b6c-87ba-7b5771abe29d" /> + + - - + d="M 10.328125,-0.984375 V -6.71875 c 0,-2.125 -0.90625,-2.96875 -3.015625,-2.96875 -2.171875,0 -3.09375,1.5625 -3.359375,2.125 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.796875 1.203125,-2.640625 2.28125,-2.640625 0.984375,0 1.1875,0.484375 1.1875,1.53125 v 5.6875 c 0,0.65625 0.140625,0.984375 1,0.984375 H 9.34375 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 z m 0,0" + id="id-133ae8ff-4011-46ce-b1aa-b928a3f6253f" /> + + - + d="M 9.796875,-0.984375 V -6.53125 c 0,-3.265625 -3.140625,-3.28125 -4.171875,-3.28125 -0.984375,0 -2.015625,0.078125 -3.390625,0.65625 -0.4375,0.1875 -0.546875,0.25 -0.546875,0.484375 0,0.140625 0.125,1.34375 0.15625,1.5 0.015625,0.125 0.125,0.234375 0.265625,0.234375 0.09375,0 0.15625,-0.0625 0.21875,-0.125 C 3.21875,-8 4.25,-8.453125 5.53125,-8.453125 c 1.125,0 1.453125,0.6875 1.453125,1.90625 v 0.71875 c -0.71875,0 -6.140625,0.046875 -6.140625,3.078125 0,1.453125 1.15625,2.984375 2.984375,2.984375 0.703125,0 2.25,-0.21875 3.21875,-1.640625 v 0.421875 C 7.046875,-0.328125 7.1875,0 8.03125,0 h 0.765625 c 0.78125,0 1,-0.265625 1,-0.984375 z M 6.984375,-3.1875 c 0,1.921875 -1.96875,1.921875 -2.03125,1.921875 C 4.09375,-1.265625 3.53125,-2 3.53125,-2.78125 c 0,-2.03125 2.875,-2.171875 3.453125,-2.203125 z m 0,0" + id="id-8fd55d08-75d3-4d12-883e-cb32a2c11822" /> + + + + style="fill:#000000;fill-opacity:1" + id="id-d1a4d829-1665-44fb-84be-588a6c5f6f7e"> + id="g24799" + transform="translate(170.304,42.696)"> + d="m 15.125,-7.0625 c 0,-4.15625 -1.515625,-7.734375 -6.921875,-7.734375 -5.71875,0 -6.9375,3.953125 -6.9375,7.734375 0,3.859375 1.34375,7.515625 6.921875,7.515625 5.328125,0 6.9375,-3.28125 6.9375,-7.515625 z m -3.046875,-0.328125 c 0,1.828125 0,6.1875 -3.875,6.1875 -3.90625,0 -3.90625,-4.3125 -3.90625,-6.1875 0,-1.828125 0,-5.78125 3.890625,-5.78125 3.890625,0 3.890625,3.921875 3.890625,5.78125 z m 0,0" + id="id-30d6fb6a-c990-413a-ae38-bc1f704965b7" /> - - + id="g24802" + transform="translate(186.72,42.696)"> + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + id="id-70168983-7b83-417a-9a04-03cc48d63ac8" /> + id="g24805" + transform="translate(198.314,42.696)"> + d="M 16.65625,-0.984375 V -6.71875 c 0,-2.125 -0.921875,-2.96875 -3.015625,-2.96875 -1.46875,0 -2.609375,0.6875 -3.359375,2.046875 C 9.953125,-9.625 8.203125,-9.6875 7.328125,-9.6875 c -0.390625,0 -1.25,0 -2.1875,0.6875 C 4.5,-8.53125 4.09375,-7.875 3.953125,-7.5625 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.859375 1.265625,-2.640625 2.28125,-2.640625 0.984375,0 1.21875,0.4375 1.21875,1.53125 v 5.6875 C 7.546875,-0.25 7.765625,0 8.53125,0 h 0.828125 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 V -5.5625 c 0,-1.859375 1.265625,-2.640625 2.28125,-2.640625 0.984375,0 1.21875,0.4375 1.21875,1.53125 v 5.6875 C 13.84375,-0.25 14.0625,0 14.828125,0 h 0.828125 c 0.78125,0 1,-0.265625 1,-0.984375 z m 0,0" + id="id-d5df11f4-89e6-4870-9497-8b0b007bc481" /> + id="g24808" + transform="translate(216.222,42.696)"> + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z M 8.640625,-14 c 0.09375,-0.171875 0,-0.390625 -0.21875,-0.390625 h -0.96875 c 0,0 -0.078125,0.01563 -0.125,0.03125 l -2.015625,2.09375 -2.03125,-2.09375 c -0.03125,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 2.1875 c -0.203125,0 -0.328125,0.265625 -0.21875,0.421875 l 1.984375,2.828125 c 0.03125,0.0625 0.09375,0.09375 0.171875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + id="id-01111581-9c5d-4c40-b6c2-d6315b1d7d33" /> + id="g24811" + transform="translate(226.783,42.696)"> + d="M 10.328125,-0.984375 V -6.71875 c 0,-2.125 -0.90625,-2.96875 -3.015625,-2.96875 -2.171875,0 -3.09375,1.5625 -3.359375,2.125 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.796875 1.203125,-2.640625 2.28125,-2.640625 0.984375,0 1.1875,0.484375 1.1875,1.53125 v 5.6875 c 0,0.65625 0.140625,0.984375 1,0.984375 H 9.34375 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 z m 0,0" + id="id-a3372147-26a4-4448-91f9-bfdd2221e179" /> + id="g24814" + transform="translate(238.377,42.696)"> + d="M 9.796875,-0.984375 V -6.53125 c 0,-3.265625 -3.140625,-3.28125 -4.171875,-3.28125 -0.984375,0 -2.015625,0.078125 -3.390625,0.65625 -0.4375,0.1875 -0.546875,0.25 -0.546875,0.484375 0,0.140625 0.125,1.34375 0.15625,1.5 0.015625,0.125 0.125,0.234375 0.265625,0.234375 0.09375,0 0.15625,-0.0625 0.21875,-0.125 C 3.21875,-8 4.25,-8.453125 5.53125,-8.453125 c 1.125,0 1.453125,0.6875 1.453125,1.90625 v 0.71875 c -0.71875,0 -6.140625,0.046875 -6.140625,3.078125 0,1.453125 1.15625,2.984375 2.984375,2.984375 0.703125,0 2.25,-0.21875 3.21875,-1.640625 v 0.421875 C 7.046875,-0.328125 7.1875,0 8.03125,0 h 0.765625 c 0.78125,0 1,-0.265625 1,-0.984375 z M 6.984375,-3.1875 c 0,1.921875 -1.96875,1.921875 -2.03125,1.921875 C 4.09375,-1.265625 3.53125,-2 3.53125,-2.78125 c 0,-2.03125 2.875,-2.171875 3.453125,-2.203125 z m 0,0" + id="id-59031d1f-6aaf-492c-b863-cf58891650b7" /> - + + + + + + + + + - - + id="id-e2bb5b4b-c4e3-462c-998a-5b9e4ede8d23" + d="" + style="stroke:none" /> + + - - + id="id-35bad527-4da6-4458-9bbe-cc0dc98e0820" + d="m 14.5625,-13.78125 c 0,-0.546875 -0.515625,-0.546875 -0.8125,-0.546875 h -0.796875 c -0.4375,0 -1.03125,0 -1.359375,0.90625 l -2.796875,7.65625 -1.078125,3.1875 C 7.703125,-2.640625 7.484375,-3.359375 7.171875,-4.21875 l -3.34375,-9.234375 c -0.34375,-0.875 -0.921875,-0.875 -1.34375,-0.875 h -1.125 c -0.28125,0 -0.796875,0 -0.796875,0.546875 0,0.109375 0.015625,0.125 0.09375,0.375 L 5.28125,-0.875 C 5.59375,0 6.203125,0 6.609375,0 h 1.90625 c 0.421875,0 1,0 1.34375,-0.90625 l 4.59375,-12.5 c 0.09375,-0.25 0.109375,-0.265625 0.109375,-0.375 z m 0,0" + style="stroke:none" /> + + - - + id="id-268b3325-3bba-4a7a-a1f3-3e3e74c9e1a9" + d="m 9.765625,-8.90625 c 0,-0.546875 -0.546875,-0.546875 -0.828125,-0.546875 H 8.484375 c -0.328125,0 -0.78125,0 -1.09375,0.46875 C 7.328125,-8.875 5.65625,-4.3125 5.5625,-2.9375 H 5.53125 C 5.4375,-3.953125 4.578125,-5.859375 3.703125,-7.84375 3.125,-9.15625 2.96875,-9.453125 1.9375,-9.453125 H 1.40625 c -0.296875,0 -0.8125,0 -0.8125,0.53125 0,0.078125 0.0625,0.21875 0.109375,0.328125 L 4.609375,0 C 4.4375,0.4375 4.375,0.65625 4.3125,0.875 4.0625,1.546875 3.71875,2.484375 2.609375,2.484375 1.921875,2.484375 1.453125,2.1875 1.21875,2.046875 1.109375,1.984375 1.078125,1.96875 1.015625,1.96875 0.90625,1.96875 0.75,2.03125 0.75,2.265625 c 0,0.171875 0.125,1.59375 0.171875,1.6875 0.1875,0.234375 1.3125,0.28125 1.640625,0.28125 2.5625,0 3.578125,-2.4375 3.734375,-2.9375 l 3.375,-9.78125 c 0.09375,-0.28125 0.09375,-0.3125 0.09375,-0.421875 z m 0,0" + style="stroke:none" /> + + - - + id="id-694f3c81-411a-4cf6-adf7-3ce4d1372a1b" + d="m 10.796875,-4.765625 c 0,-1 0,-4.921875 -3.875,-4.921875 C 5.21875,-9.6875 4.1875,-8.734375 4,-8.53125 v -4.8125 C 4,-14 3.859375,-14.328125 3.015625,-14.328125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 V -0.984375 C 1.265625,-0.25 1.484375,0 2.25,0 h 0.828125 c 0.34375,0 0.96875,0 0.984375,-0.8125 0.953125,1.046875 2.015625,1.046875 2.34375,1.046875 4.390625,0 4.390625,-3.96875 4.390625,-5 z M 8,-4.75 c 0,1.53125 0,3.484375 -2.3125,3.484375 -0.875,0 -1.390625,-0.515625 -1.625,-0.796875 V -7.484375 C 4.34375,-7.71875 4.953125,-8.203125 5.90625,-8.203125 8,-8.203125 8,-6.296875 8,-4.75 Z m 0,0" + style="stroke:none" /> + + - - - - + id="id-d8bbc9e2-8a84-43b0-a4d1-5d3412fbceda" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> + + - - + id="id-9e7474fe-6088-44cd-8c4b-6630fe782335" + d="M 7.359375,-8.15625 V -9.125 c 0,-0.421875 0,-0.5625 -0.375,-0.5625 -0.578125,0 -2.09375,0.203125 -3.0625,2.4375 H 3.90625 v -1.34375 c 0,-0.65625 -0.140625,-0.984375 -1,-0.984375 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.609375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 V -4.75 C 4,-6.71875 5.640625,-7.515625 6.9375,-7.59375 7.3125,-7.625 7.359375,-7.625 7.359375,-8.15625 Z m 0,0" + style="stroke:none" /> + + - - - - + id="id-4f4e85e9-d058-4684-9fe4-80f69cd907f3" + d="m 8.1875,-2.90625 c 0,-1.15625 -0.625,-1.890625 -1,-2.21875 C 6.359375,-5.859375 5.640625,-5.984375 4.765625,-6.15625 3.640625,-6.359375 2.8125,-6.53125 2.8125,-7.328125 c 0,-0.859375 0.671875,-1.015625 1.484375,-1.015625 1.390625,0 2.125,0.515625 2.671875,0.96875 0.203125,0.203125 0.234375,0.203125 0.328125,0.203125 0.203125,0 0.25,-0.1875 0.265625,-0.265625 0.03125,-0.15625 0.25,-1.328125 0.25,-1.421875 0,-0.328125 -1.09375,-0.625 -1.328125,-0.703125 C 5.65625,-9.796875 5,-9.8125 4.46875,-9.8125 c -0.9375,0 -3.703125,0 -3.703125,2.953125 0,1.015625 0.453125,1.640625 1.015625,2.125 0.71875,0.671875 1.53125,0.8125 2.703125,1.03125 0.59375,0.109375 1.65625,0.296875 1.65625,1.203125 0,0.96875 -0.8125,1.109375 -1.609375,1.109375 -0.921875,0 -2.078125,-0.265625 -3.046875,-1.421875 -0.09375,-0.09375 -0.15625,-0.15625 -0.28125,-0.15625 -0.21875,0 -0.25,0.1875 -0.28125,0.296875 -0.03125,0.296875 -0.28125,1.46875 -0.28125,1.6875 0,0.359375 1.546875,0.859375 1.546875,0.859375 1.140625,0.359375 1.984375,0.359375 2.34375,0.359375 1.046875,0 3.65625,-0.09375 3.65625,-3.140625 z m 0,0" + style="stroke:none" /> + + - - + id="id-9d6a201f-0a7d-4ca1-81cd-7d8a65224382" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z m 0.15625,-11.53125 v -0.390625 c 0,-0.671875 -0.15625,-1 -1,-1 H 2.109375 c -0.78125,0 -1,0.265625 -1,1 v 0.390625 c 0,0.59375 0.109375,0.984375 1,0.984375 H 3.15625 c 0.875,0 1,-0.359375 1,-0.984375 z m 0,0" + style="stroke:none" /> + + - - + id="id-b7b62047-665c-4a35-b239-9f24e60191ad" + d="m 4.5,-0.5625 v -1.578125 c 0,-0.546875 -0.015625,-0.5625 -0.546875,-0.5625 h -1.59375 c -0.546875,0 -0.5625,0.015625 -0.5625,0.5625 V -0.5625 C 1.796875,-0.015625 1.8125,0 2.5,0 2.375,0.328125 2.265625,0.65625 2.140625,0.984375 2.03125,1.296875 1.8125,1.921875 1.8125,1.921875 1.8125,2.1875 2.03125,2.1875 2.359375,2.1875 h 0.25 C 3.015625,2.1875 3.03125,2.171875 3.25,1.84375 L 4.3125,0.125 C 4.5,-0.171875 4.5,-0.203125 4.5,-0.5625 Z m 0,0" + style="stroke:none" /> + + - - + id="id-778b76c5-0631-483c-8434-ad89dff03357" + d="m 9.4375,-1.03125 c 0,-0.234375 -0.078125,-1.171875 -0.125,-1.453125 0,-0.0625 -0.03125,-0.265625 -0.25,-0.265625 -0.078125,0 -0.125,0 -0.328125,0.203125 -0.34375,0.3125 -1.3125,1.15625 -3.015625,1.15625 -2.140625,0 -2.140625,-2.078125 -2.140625,-3.40625 0,-1.671875 0.09375,-3.40625 2.203125,-3.40625 1.34375,0 1.90625,0.328125 2.640625,0.953125 0.25,0.234375 0.296875,0.234375 0.375,0.234375 0.203125,0 0.25,-0.1875 0.265625,-0.28125 0.046875,-0.15625 0.25,-1.3125 0.25,-1.421875 0,-0.1875 -0.140625,-0.265625 -0.5,-0.4375 C 7.828125,-9.609375 7.203125,-9.8125 5.765625,-9.8125 c -3.078125,0 -5,1.453125 -5,5.0625 0,3.421875 1.78125,4.984375 4.890625,4.984375 0.5625,0 1.796875,-0.03125 3.1875,-0.734375 0.578125,-0.3125 0.59375,-0.328125 0.59375,-0.53125 z m 0,0" + style="stroke:none" /> + + - - + id="id-878bdb29-8ceb-4905-ad49-b4d05c07e299" + d="m 10.703125,-4.640625 c 0,-3.390625 -1.65625,-5.171875 -5.015625,-5.171875 -3.453125,0 -5.046875,1.84375 -5.046875,5.171875 0,3.359375 1.78125,4.875 5.015625,4.875 3.25,0 5.046875,-1.5 5.046875,-4.875 z m -2.8125,-0.25 c 0,1.625 0,3.5 -2.203125,3.5 -2.234375,0 -2.234375,-1.859375 -2.234375,-3.5 0,-1.59375 0,-3.4375 2.203125,-3.4375 2.234375,0 2.234375,1.828125 2.234375,3.4375 z m 0,0" + style="stroke:none" /> + + - - + id="id-f034c871-50a3-474c-bcf2-b8d5947b2bc8" + d="m 7.703125,-0.96875 c 0,-0.0625 -0.046875,-0.203125 -0.15625,-0.640625 -0.109375,-0.421875 -0.15625,-0.53125 -0.34375,-0.53125 -0.09375,0 -0.125,0.015625 -0.234375,0.140625 -0.234375,0.15625 -0.796875,0.609375 -1.65625,0.609375 -0.5,0 -0.8125,-0.34375 -0.8125,-1.703125 v -4.875 h 1.84375 c 0.25,0 0.984375,0 0.984375,-0.75 0,-0.734375 -0.734375,-0.734375 -0.984375,-0.734375 H 4.5 v -1.71875 c 0,-0.671875 -0.140625,-1 -0.984375,-1 H 2.875 c -0.75,0 -1,0.234375 -1,1 v 1.71875 H 1.40625 c -0.234375,0 -1,0 -1,0.734375 0,0.75 0.75,0.75 1,0.75 H 1.8125 V -2.75 c 0,2.09375 0.75,2.984375 2.171875,2.984375 0.1875,0 1.09375,0 2.171875,-0.34375 C 6.5,-0.203125 7.703125,-0.578125 7.703125,-0.96875 Z m 0,0" + style="stroke:none" /> + + - - + id="id-8aa8e1be-2498-4038-bf3e-cdc305c68cc6" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z M 8.640625,-14 c 0.09375,-0.171875 0,-0.390625 -0.21875,-0.390625 h -0.96875 c 0,0 -0.078125,0.01563 -0.125,0.03125 l -2.015625,2.09375 -2.03125,-2.09375 c -0.03125,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 2.1875 c -0.203125,0 -0.328125,0.265625 -0.21875,0.421875 l 1.984375,2.828125 c 0.03125,0.0625 0.09375,0.09375 0.171875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" /> + + - + id="id-1f9ec332-1398-4fa5-8488-4930bdb07e09" + d="M 9.796875,-0.984375 V -6.53125 c 0,-3.265625 -3.140625,-3.28125 -4.171875,-3.28125 -0.984375,0 -2.015625,0.078125 -3.390625,0.65625 -0.4375,0.1875 -0.546875,0.25 -0.546875,0.484375 0,0.140625 0.125,1.34375 0.15625,1.5 0.015625,0.125 0.125,0.234375 0.265625,0.234375 0.09375,0 0.15625,-0.0625 0.21875,-0.125 C 3.21875,-8 4.25,-8.453125 5.53125,-8.453125 c 1.125,0 1.453125,0.6875 1.453125,1.90625 v 0.71875 c -0.71875,0 -6.140625,0.046875 -6.140625,3.078125 0,1.453125 1.15625,2.984375 2.984375,2.984375 0.703125,0 2.25,-0.21875 3.21875,-1.640625 v 0.421875 C 7.046875,-0.328125 7.1875,0 8.03125,0 h 0.765625 c 0.78125,0 1,-0.265625 1,-0.984375 z M 6.984375,-3.1875 c 0,1.921875 -1.96875,1.921875 -2.03125,1.921875 C 4.09375,-1.265625 3.53125,-2 3.53125,-2.78125 c 0,-2.03125 2.875,-2.171875 3.453125,-2.203125 z m 0,0" + style="stroke:none" /> + + + + + + + + + + transform="translate(116.884,42.696)" + id="g38231"> + id="id-a288cb35-6f12-48f6-b107-727e2917d0ea" + d="m 14.5625,-13.78125 c 0,-0.546875 -0.515625,-0.546875 -0.8125,-0.546875 h -0.796875 c -0.4375,0 -1.03125,0 -1.359375,0.90625 l -2.796875,7.65625 -1.078125,3.1875 C 7.703125,-2.640625 7.484375,-3.359375 7.171875,-4.21875 l -3.34375,-9.234375 c -0.34375,-0.875 -0.921875,-0.875 -1.34375,-0.875 h -1.125 c -0.28125,0 -0.796875,0 -0.796875,0.546875 0,0.109375 0.015625,0.125 0.09375,0.375 L 5.28125,-0.875 C 5.59375,0 6.203125,0 6.609375,0 h 1.90625 c 0.421875,0 1,0 1.34375,-0.90625 l 4.59375,-12.5 c 0.09375,-0.25 0.109375,-0.265625 0.109375,-0.375 z m 0,0" + style="stroke:none" /> + + + transform="translate(131.395,42.696)" + id="g38235"> + id="id-537c8990-ed79-43d6-84e1-c85dad4d2d24" + d="m 9.765625,-8.90625 c 0,-0.546875 -0.546875,-0.546875 -0.828125,-0.546875 H 8.484375 c -0.328125,0 -0.78125,0 -1.09375,0.46875 C 7.328125,-8.875 5.65625,-4.3125 5.5625,-2.9375 H 5.53125 C 5.4375,-3.953125 4.578125,-5.859375 3.703125,-7.84375 3.125,-9.15625 2.96875,-9.453125 1.9375,-9.453125 H 1.40625 c -0.296875,0 -0.8125,0 -0.8125,0.53125 0,0.078125 0.0625,0.21875 0.109375,0.328125 L 4.609375,0 C 4.4375,0.4375 4.375,0.65625 4.3125,0.875 4.0625,1.546875 3.71875,2.484375 2.609375,2.484375 1.921875,2.484375 1.453125,2.1875 1.21875,2.046875 1.109375,1.984375 1.078125,1.96875 1.015625,1.96875 0.90625,1.96875 0.75,2.03125 0.75,2.265625 c 0,0.171875 0.125,1.59375 0.171875,1.6875 0.1875,0.234375 1.3125,0.28125 1.640625,0.28125 2.5625,0 3.578125,-2.4375 3.734375,-2.9375 l 3.375,-9.78125 c 0.09375,-0.28125 0.09375,-0.3125 0.09375,-0.421875 z m 0,0" + style="stroke:none" /> + transform="translate(141.727,42.696)" + id="g38238"> + id="id-8d9d39e4-9c89-45ef-8bcd-e0931f3b3a44" + d="m 10.796875,-4.765625 c 0,-1 0,-4.921875 -3.875,-4.921875 C 5.21875,-9.6875 4.1875,-8.734375 4,-8.53125 v -4.8125 C 4,-14 3.859375,-14.328125 3.015625,-14.328125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 V -0.984375 C 1.265625,-0.25 1.484375,0 2.25,0 h 0.828125 c 0.34375,0 0.96875,0 0.984375,-0.8125 0.953125,1.046875 2.015625,1.046875 2.34375,1.046875 4.390625,0 4.390625,-3.96875 4.390625,-5 z M 8,-4.75 c 0,1.53125 0,3.484375 -2.3125,3.484375 -0.875,0 -1.390625,-0.515625 -1.625,-0.796875 V -7.484375 C 4.34375,-7.71875 4.953125,-8.203125 5.90625,-8.203125 8,-8.203125 8,-6.296875 8,-4.75 Z m 0,0" + style="stroke:none" /> + + + transform="translate(153.961,42.696)" + id="g38242"> + id="id-7fa2b856-830d-4d51-b5bf-a0c0d72bbdfe" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> + transform="translate(164.521,42.696)" + id="g38245"> + id="id-23c2fefd-992d-4e85-9fbb-6c8860644de8" + d="M 7.359375,-8.15625 V -9.125 c 0,-0.421875 0,-0.5625 -0.375,-0.5625 -0.578125,0 -2.09375,0.203125 -3.0625,2.4375 H 3.90625 v -1.34375 c 0,-0.65625 -0.140625,-0.984375 -1,-0.984375 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.609375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 V -4.75 C 4,-6.71875 5.640625,-7.515625 6.9375,-7.59375 7.3125,-7.625 7.359375,-7.625 7.359375,-8.15625 Z m 0,0" + style="stroke:none" /> + transform="translate(179.795,42.696)" + id="g38249"> + id="id-b357e4fb-493b-40de-b213-d427e21ed2ab" + d="m 8.1875,-2.90625 c 0,-1.15625 -0.625,-1.890625 -1,-2.21875 C 6.359375,-5.859375 5.640625,-5.984375 4.765625,-6.15625 3.640625,-6.359375 2.8125,-6.53125 2.8125,-7.328125 c 0,-0.859375 0.671875,-1.015625 1.484375,-1.015625 1.390625,0 2.125,0.515625 2.671875,0.96875 0.203125,0.203125 0.234375,0.203125 0.328125,0.203125 0.203125,0 0.25,-0.1875 0.265625,-0.265625 0.03125,-0.15625 0.25,-1.328125 0.25,-1.421875 0,-0.328125 -1.09375,-0.625 -1.328125,-0.703125 C 5.65625,-9.796875 5,-9.8125 4.46875,-9.8125 c -0.9375,0 -3.703125,0 -3.703125,2.953125 0,1.015625 0.453125,1.640625 1.015625,2.125 0.71875,0.671875 1.53125,0.8125 2.703125,1.03125 0.59375,0.109375 1.65625,0.296875 1.65625,1.203125 0,0.96875 -0.8125,1.109375 -1.609375,1.109375 -0.921875,0 -2.078125,-0.265625 -3.046875,-1.421875 -0.09375,-0.09375 -0.15625,-0.15625 -0.28125,-0.15625 -0.21875,0 -0.25,0.1875 -0.28125,0.296875 -0.03125,0.296875 -0.28125,1.46875 -0.28125,1.6875 0,0.359375 1.546875,0.859375 1.546875,0.859375 1.140625,0.359375 1.984375,0.359375 2.34375,0.359375 1.046875,0 3.65625,-0.09375 3.65625,-3.140625 z m 0,0" + style="stroke:none" /> + transform="translate(188.508,42.696)" + id="g38252"> + id="id-da6e07c2-57fa-44d2-a391-67a0928baca0" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z m 0.15625,-11.53125 v -0.390625 c 0,-0.671875 -0.15625,-1 -1,-1 H 2.109375 c -0.78125,0 -1,0.265625 -1,1 v 0.390625 c 0,0.59375 0.109375,0.984375 1,0.984375 H 3.15625 c 0.875,0 1,-0.359375 1,-0.984375 z m 0,0" + style="stroke:none" /> - - + transform="translate(193.788,42.696)" + id="g38255"> + id="id-7589b683-4e51-4a46-8bfb-09e3281f3ba0" + d="m 4.5,-0.5625 v -1.578125 c 0,-0.546875 -0.015625,-0.5625 -0.546875,-0.5625 h -1.59375 c -0.546875,0 -0.5625,0.015625 -0.5625,0.5625 V -0.5625 C 1.796875,-0.015625 1.8125,0 2.5,0 2.375,0.328125 2.265625,0.65625 2.140625,0.984375 2.03125,1.296875 1.8125,1.921875 1.8125,1.921875 1.8125,2.1875 2.03125,2.1875 2.359375,2.1875 h 0.25 C 3.015625,2.1875 3.03125,2.171875 3.25,1.84375 L 4.3125,0.125 C 4.5,-0.171875 4.5,-0.203125 4.5,-0.5625 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(207.663,42.696)" + id="g38259"> + id="id-00e54c40-27b1-401f-9620-eb2eccadc0ec" + d="m 9.4375,-1.03125 c 0,-0.234375 -0.078125,-1.171875 -0.125,-1.453125 0,-0.0625 -0.03125,-0.265625 -0.25,-0.265625 -0.078125,0 -0.125,0 -0.328125,0.203125 -0.34375,0.3125 -1.3125,1.15625 -3.015625,1.15625 -2.140625,0 -2.140625,-2.078125 -2.140625,-3.40625 0,-1.671875 0.09375,-3.40625 2.203125,-3.40625 1.34375,0 1.90625,0.328125 2.640625,0.953125 0.25,0.234375 0.296875,0.234375 0.375,0.234375 0.203125,0 0.25,-0.1875 0.265625,-0.28125 0.046875,-0.15625 0.25,-1.3125 0.25,-1.421875 0,-0.1875 -0.140625,-0.265625 -0.5,-0.4375 C 7.828125,-9.609375 7.203125,-9.8125 5.765625,-9.8125 c -3.078125,0 -5,1.453125 -5,5.0625 0,3.421875 1.78125,4.984375 4.890625,4.984375 0.5625,0 1.796875,-0.03125 3.1875,-0.734375 0.578125,-0.3125 0.59375,-0.328125 0.59375,-0.53125 z m 0,0" + style="stroke:none" /> + transform="translate(217.765,42.696)" + id="g38262"> + id="id-e5fd7b34-dc6d-4bf0-9086-08cec69b1a7d" + d="m 10.703125,-4.640625 c 0,-3.390625 -1.65625,-5.171875 -5.015625,-5.171875 -3.453125,0 -5.046875,1.84375 -5.046875,5.171875 0,3.359375 1.78125,4.875 5.015625,4.875 3.25,0 5.046875,-1.5 5.046875,-4.875 z m -2.8125,-0.25 c 0,1.625 0,3.5 -2.203125,3.5 -2.234375,0 -2.234375,-1.859375 -2.234375,-3.5 0,-1.59375 0,-3.4375 2.203125,-3.4375 2.234375,0 2.234375,1.828125 2.234375,3.4375 z m 0,0" + style="stroke:none" /> - - - + transform="translate(236.712,42.696)" + id="g38266"> + id="id-1d4bb9ba-aa57-46ff-841d-e20f9beee405" + d="m 7.703125,-0.96875 c 0,-0.0625 -0.046875,-0.203125 -0.15625,-0.640625 -0.109375,-0.421875 -0.15625,-0.53125 -0.34375,-0.53125 -0.09375,0 -0.125,0.015625 -0.234375,0.140625 -0.234375,0.15625 -0.796875,0.609375 -1.65625,0.609375 -0.5,0 -0.8125,-0.34375 -0.8125,-1.703125 v -4.875 h 1.84375 c 0.25,0 0.984375,0 0.984375,-0.75 0,-0.734375 -0.734375,-0.734375 -0.984375,-0.734375 H 4.5 v -1.71875 c 0,-0.671875 -0.140625,-1 -0.984375,-1 H 2.875 c -0.75,0 -1,0.234375 -1,1 v 1.71875 H 1.40625 c -0.234375,0 -1,0 -1,0.734375 0,0.75 0.75,0.75 1,0.75 H 1.8125 V -2.75 c 0,2.09375 0.75,2.984375 2.171875,2.984375 0.1875,0 1.09375,0 2.171875,-0.34375 C 6.5,-0.203125 7.703125,-0.578125 7.703125,-0.96875 Z m 0,0" + style="stroke:none" /> + transform="translate(245.064,42.696)" + id="g38269"> + id="id-006cfb8f-3e03-4a47-b751-5adf5720cfa3" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z M 8.640625,-14 c 0.09375,-0.171875 0,-0.390625 -0.21875,-0.390625 h -0.96875 c 0,0 -0.078125,0.01563 -0.125,0.03125 l -2.015625,2.09375 -2.03125,-2.09375 c -0.03125,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 2.1875 c -0.203125,0 -0.328125,0.265625 -0.21875,0.421875 l 1.984375,2.828125 c 0.03125,0.0625 0.09375,0.09375 0.171875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" /> + + + transform="translate(263.208,42.696)" + id="g38273"> + id="id-77f22620-e927-4668-a1b6-947187ad3f65" + d="m 10.796875,-4.765625 c 0,-1 0,-4.921875 -3.875,-4.921875 C 5.21875,-9.6875 4.1875,-8.734375 4,-8.53125 v -4.8125 C 4,-14 3.859375,-14.328125 3.015625,-14.328125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 V -0.984375 C 1.265625,-0.25 1.484375,0 2.25,0 h 0.828125 c 0.34375,0 0.96875,0 0.984375,-0.8125 0.953125,1.046875 2.015625,1.046875 2.34375,1.046875 4.390625,0 4.390625,-3.96875 4.390625,-5 z M 8,-4.75 c 0,1.53125 0,3.484375 -2.3125,3.484375 -0.875,0 -1.390625,-0.515625 -1.625,-0.796875 V -7.484375 C 4.34375,-7.71875 4.953125,-8.203125 5.90625,-8.203125 8,-8.203125 8,-6.296875 8,-4.75 Z m 0,0" + style="stroke:none" /> + transform="translate(274.801,42.696)" + id="g38276"> + id="id-f09fe71d-c9b2-443c-ae8c-27df30854494" + d="M 9.796875,-0.984375 V -6.53125 c 0,-3.265625 -3.140625,-3.28125 -4.171875,-3.28125 -0.984375,0 -2.015625,0.078125 -3.390625,0.65625 -0.4375,0.1875 -0.546875,0.25 -0.546875,0.484375 0,0.140625 0.125,1.34375 0.15625,1.5 0.015625,0.125 0.125,0.234375 0.265625,0.234375 0.09375,0 0.15625,-0.0625 0.21875,-0.125 C 3.21875,-8 4.25,-8.453125 5.53125,-8.453125 c 1.125,0 1.453125,0.6875 1.453125,1.90625 v 0.71875 c -0.71875,0 -6.140625,0.046875 -6.140625,3.078125 0,1.453125 1.15625,2.984375 2.984375,2.984375 0.703125,0 2.25,-0.21875 3.21875,-1.640625 v 0.421875 C 7.046875,-0.328125 7.1875,0 8.03125,0 h 0.765625 c 0.78125,0 1,-0.265625 1,-0.984375 z M 6.984375,-3.1875 c 0,1.921875 -1.96875,1.921875 -2.03125,1.921875 C 4.09375,-1.265625 3.53125,-2 3.53125,-2.78125 c 0,-2.03125 2.875,-2.171875 3.453125,-2.203125 z m 0,0" + style="stroke:none" /> + transform="translate(285.649,42.696)" + id="g38279"> + id="id-392be3c0-dd77-4244-ba5a-6a529644493f" + d="M 9.765625,-8.875 C 9.765625,-9.453125 9.25,-9.453125 8.9375,-9.453125 H 8.515625 c -0.875,0 -1.09375,0.296875 -1.28125,0.875 l -2.046875,6.25 -2.046875,-6.25 C 3,-9 2.84375,-9.453125 1.859375,-9.453125 h -0.5 c -0.3125,0 -0.828125,0 -0.828125,0.578125 0,0.0625 0,0.09375 0.109375,0.390625 L 3.09375,-0.875 C 3.390625,0 4.03125,0 4.40625,0 h 1.5 c 0.375,0 1.015625,0 1.296875,-0.875 l 2.46875,-7.609375 C 9.765625,-8.78125 9.765625,-8.8125 9.765625,-8.875 Z m 0,0" + style="stroke:none" /> + transform="translate(295.98,42.696)" + id="g38282"> + id="id-9a9d7af5-dcd5-43a0-9060-84061bb26c29" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z M 6.09375,-14.0625 c 0,-0.265625 -0.234375,-0.265625 -0.5625,-0.265625 h -1.6875 c -0.421875,0 -0.4375,0.01563 -0.625,0.234375 l -1.765625,2.421875 c -0.1875,0.234375 -0.1875,0.3125 -0.1875,0.3125 0,0.265625 0.21875,0.265625 0.546875,0.265625 H 2.578125 L 5.859375,-13.75 c 0.109375,-0.09375 0.234375,-0.1875 0.234375,-0.3125 z m 0,0" + style="stroke:none" /> + + + + - + id="id-2f142673-ea99-4412-9538-7d6efc182b3a"> + - - - - + id="id-c46616c6-92ee-45ee-84b5-ccd9d44b51dd" + d="" + style="stroke:none" /> + + - - + id="id-7a646f02-d52f-4425-834d-3508b42c4ee7" + d="m 15.125,-7.0625 c 0,-4.15625 -1.515625,-7.734375 -6.921875,-7.734375 -5.71875,0 -6.9375,3.953125 -6.9375,7.734375 0,3.859375 1.34375,7.515625 6.921875,7.515625 5.328125,0 6.9375,-3.28125 6.9375,-7.515625 z m -3.046875,-0.328125 c 0,1.828125 0,6.1875 -3.875,6.1875 -3.90625,0 -3.90625,-4.3125 -3.90625,-6.1875 0,-1.828125 0,-5.78125 3.890625,-5.78125 3.890625,0 3.890625,3.921875 3.890625,5.78125 z m 0,0" + style="stroke:none" /> + + - - + id="id-9519406f-d5e4-4556-a620-c235ad359828" + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + style="stroke:none" /> + + - - - - - + id="id-ccf080c9-f66b-425f-94c1-e1e89006328a" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> + + - - + id="id-707cd435-5226-4ac6-83cc-6b1fdba0796f" + d="M 9.765625,-8.875 C 9.765625,-9.453125 9.25,-9.453125 8.9375,-9.453125 H 8.515625 c -0.875,0 -1.09375,0.296875 -1.28125,0.875 l -2.046875,6.25 -2.046875,-6.25 C 3,-9 2.84375,-9.453125 1.859375,-9.453125 h -0.5 c -0.3125,0 -0.828125,0 -0.828125,0.578125 0,0.0625 0,0.09375 0.109375,0.390625 L 3.09375,-0.875 C 3.390625,0 4.03125,0 4.40625,0 h 1.5 c 0.375,0 1.015625,0 1.296875,-0.875 l 2.46875,-7.609375 C 9.765625,-8.78125 9.765625,-8.8125 9.765625,-8.875 Z m 0,0" + style="stroke:none" /> + + - - - - + id="id-8defe20f-20d3-417a-942a-a5c947f29c63" + d="m 9.109375,-0.765625 c 0,-0.78125 -0.640625,-0.78125 -1.234375,-0.78125 l -3.171875,0.03125 h -0.9375 l 5.03125,-6.375 c 0.203125,-0.265625 0.25,-0.375 0.25,-0.703125 0,-0.859375 -0.640625,-0.859375 -0.984375,-0.859375 h -6.125 c -0.265625,0 -0.984375,0 -0.984375,0.78125 0,0.765625 0.65625,0.765625 1.21875,0.765625 l 3,-0.046875 h 0.75 L 0.890625,-1.5625 c -0.203125,0.265625 -0.25,0.359375 -0.25,0.6875 C 0.640625,0 1.28125,0 1.625,0 h 6.5 c 0.265625,0 0.984375,0 0.984375,-0.765625 z m 0,0" + style="stroke:none" /> + + - - + id="id-43c9c4fe-2c47-4d95-998a-d8421cdc52ab" + d="m 4.625,0.65625 v -9.125 C 4.625,-9.125 4.484375,-9.453125 3.640625,-9.453125 H 2.875 c -0.78125,0 -1,0.265625 -1,0.984375 v 9.625 c 0,0.515625 0,1.34375 -1.234375,1.34375 -0.375,0 -0.84375,-0.078125 -1.296875,-0.375 -0.046875,-0.015625 -0.125,-0.078125 -0.21875,-0.078125 -0.15625,0 -0.171875,0.015625 -0.359375,0.5625 -0.09375,0.203125 -0.234375,0.59375 -0.234375,0.65625 0,0.390625 1.71875,0.96875 3.015625,0.96875 2.28125,0 3.078125,-1.53125 3.078125,-3.578125 z m 0,-13.171875 v -0.390625 c 0,-0.671875 -0.140625,-1 -0.984375,-1 h -1.0625 c -0.78125,0 -0.984375,0.265625 -0.984375,1 v 0.390625 c 0,0.59375 0.09375,0.984375 0.984375,0.984375 h 1.0625 C 4.5,-11.53125 4.625,-11.890625 4.625,-12.515625 Z m 0,0" + style="stroke:none" /> + + - - + id="id-aca4989a-a26e-4bf5-8369-04206f6ecfdb" + d="M 7.359375,-8.15625 V -9.125 c 0,-0.421875 0,-0.5625 -0.375,-0.5625 -0.578125,0 -2.09375,0.203125 -3.0625,2.4375 H 3.90625 v -1.34375 c 0,-0.65625 -0.140625,-0.984375 -1,-0.984375 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.609375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 V -4.75 C 4,-6.71875 5.640625,-7.515625 6.9375,-7.59375 7.3125,-7.625 7.359375,-7.625 7.359375,-8.15625 Z M 7.1875,-14 c 0.109375,-0.171875 0,-0.390625 -0.203125,-0.390625 h -0.96875 c 0,0 -0.09375,0.01563 -0.125,0.03125 l -2.03125,2.09375 -2.015625,-2.09375 c -0.046875,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 0.75 c -0.21875,0 -0.34375,0.265625 -0.234375,0.421875 L 2.5,-11.140625 c 0.046875,0.0625 0.109375,0.09375 0.1875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" /> + + - - + id="id-8a1b3451-c48b-46d3-8b1d-a5a1e6d6600b" + d="m 8.1875,-2.90625 c 0,-1.15625 -0.625,-1.890625 -1,-2.21875 C 6.359375,-5.859375 5.640625,-5.984375 4.765625,-6.15625 3.640625,-6.359375 2.8125,-6.53125 2.8125,-7.328125 c 0,-0.859375 0.671875,-1.015625 1.484375,-1.015625 1.390625,0 2.125,0.515625 2.671875,0.96875 0.203125,0.203125 0.234375,0.203125 0.328125,0.203125 0.203125,0 0.25,-0.1875 0.265625,-0.265625 0.03125,-0.15625 0.25,-1.328125 0.25,-1.421875 0,-0.328125 -1.09375,-0.625 -1.328125,-0.703125 C 5.65625,-9.796875 5,-9.8125 4.46875,-9.8125 c -0.9375,0 -3.703125,0 -3.703125,2.953125 0,1.015625 0.453125,1.640625 1.015625,2.125 0.71875,0.671875 1.53125,0.8125 2.703125,1.03125 0.59375,0.109375 1.65625,0.296875 1.65625,1.203125 0,0.96875 -0.8125,1.109375 -1.609375,1.109375 -0.921875,0 -2.078125,-0.265625 -3.046875,-1.421875 -0.09375,-0.09375 -0.15625,-0.15625 -0.28125,-0.15625 -0.21875,0 -0.25,0.1875 -0.28125,0.296875 -0.03125,0.296875 -0.28125,1.46875 -0.28125,1.6875 0,0.359375 1.546875,0.859375 1.546875,0.859375 1.140625,0.359375 1.984375,0.359375 2.34375,0.359375 1.046875,0 3.65625,-0.09375 3.65625,-3.140625 z M 7.703125,-14 c 0.109375,-0.171875 0,-0.390625 -0.203125,-0.390625 H 6.53125 c 0,0 -0.09375,0.01563 -0.125,0.03125 l -2.03125,2.09375 -2.015625,-2.09375 c -0.046875,-0.01563 -0.125,-0.03125 -0.125,-0.03125 h -0.96875 c -0.21875,0 -0.34375,0.265625 -0.234375,0.421875 l 1.984375,2.828125 c 0.046875,0.0625 0.109375,0.09375 0.1875,0.09375 H 5.5 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" /> + + - - + id="id-40465343-1d93-43bc-a7d0-50ba7e18589b" + d="M 10.328125,-0.984375 V -6.71875 c 0,-2.125 -0.90625,-2.96875 -3.015625,-2.96875 -2.171875,0 -3.09375,1.5625 -3.359375,2.125 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.796875 1.203125,-2.640625 2.28125,-2.640625 0.984375,0 1.1875,0.484375 1.1875,1.53125 v 5.6875 c 0,0.65625 0.140625,0.984375 1,0.984375 H 9.34375 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 z m 0,0" + style="stroke:none" /> + + - - - - + id="id-c93075fc-6ba3-4ac9-8e86-0d4d488b889b" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z M 6.09375,-14.0625 c 0,-0.265625 -0.234375,-0.265625 -0.5625,-0.265625 h -1.6875 c -0.421875,0 -0.4375,0.01563 -0.625,0.234375 l -1.765625,2.421875 c -0.1875,0.234375 -0.1875,0.3125 -0.1875,0.3125 0,0.265625 0.21875,0.265625 0.546875,0.265625 H 2.578125 L 5.859375,-13.75 c 0.109375,-0.09375 0.234375,-0.1875 0.234375,-0.3125 z m 0,0" + style="stroke:none" /> + + - + id="id-2aabd77d-3fc9-4ff1-a4da-f79a1a7aeb25" + d="m 5.140625,-13.90625 c 0,-0.421875 -0.09375,-0.421875 -0.5625,-0.421875 H 3 c -0.453125,0 -0.5625,0 -0.5625,0.421875 0,1.84375 0.125,3.71875 0.171875,5.5625 0,0.5 0.078125,3.984375 0.125,4.09375 0.046875,0.203125 0.171875,0.203125 0.546875,0.203125 h 1.015625 c 0.53125,0 0.5625,-0.015625 0.578125,-0.578125 L 5.015625,-9.25 c 0.03125,-1.53125 0.125,-3.125 0.125,-4.65625 z m 0,12.921875 V -1.71875 C 5.140625,-2.375 5,-2.703125 4.15625,-2.703125 H 3.421875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 0.734375 C 2.4375,-0.25 2.671875,0 3.421875,0 H 4.15625 C 4.9375,0 5.140625,-0.265625 5.140625,-0.984375 Z m 0,0" + style="stroke:none" /> + + + - - - + transform="translate(131.583,42.696)" + id="g49335"> + id="id-7c671026-e918-4b1d-b2e2-7c875e1a114a" + d="m 15.125,-7.0625 c 0,-4.15625 -1.515625,-7.734375 -6.921875,-7.734375 -5.71875,0 -6.9375,3.953125 -6.9375,7.734375 0,3.859375 1.34375,7.515625 6.921875,7.515625 5.328125,0 6.9375,-3.28125 6.9375,-7.515625 z m -3.046875,-0.328125 c 0,1.828125 0,6.1875 -3.875,6.1875 -3.90625,0 -3.90625,-4.3125 -3.90625,-6.1875 0,-1.828125 0,-5.78125 3.890625,-5.78125 3.890625,0 3.890625,3.921875 3.890625,5.78125 z m 0,0" + style="stroke:none" /> + transform="translate(147.999,42.696)" + id="g49339"> + id="id-82e66893-6b9e-43e5-ba0e-be2b41079d4f" + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + style="stroke:none" /> + transform="translate(159.593,42.696)" + id="g49342"> + id="id-662c878b-2c98-490e-bafc-f7051ee8a899" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> + transform="translate(170.154,42.696)" + id="g49345"> + id="id-61ed2fcb-1470-479d-863c-c77ca27fbe07" + d="M 9.765625,-8.875 C 9.765625,-9.453125 9.25,-9.453125 8.9375,-9.453125 H 8.515625 c -0.875,0 -1.09375,0.296875 -1.28125,0.875 l -2.046875,6.25 -2.046875,-6.25 C 3,-9 2.84375,-9.453125 1.859375,-9.453125 h -0.5 c -0.3125,0 -0.828125,0 -0.828125,0.578125 0,0.0625 0,0.09375 0.109375,0.390625 L 3.09375,-0.875 C 3.390625,0 4.03125,0 4.40625,0 h 1.5 c 0.375,0 1.015625,0 1.296875,-0.875 l 2.46875,-7.609375 C 9.765625,-8.78125 9.765625,-8.8125 9.765625,-8.875 Z m 0,0" + style="stroke:none" /> + transform="translate(180.485,42.696)" + id="g49349"> + id="id-dd5d6df4-0825-495b-9b82-86d6d8cc9251" + d="m 9.109375,-0.765625 c 0,-0.78125 -0.640625,-0.78125 -1.234375,-0.78125 l -3.171875,0.03125 h -0.9375 l 5.03125,-6.375 c 0.203125,-0.265625 0.25,-0.375 0.25,-0.703125 0,-0.859375 -0.640625,-0.859375 -0.984375,-0.859375 h -6.125 c -0.265625,0 -0.984375,0 -0.984375,0.78125 0,0.765625 0.65625,0.765625 1.21875,0.765625 l 3,-0.046875 h 0.75 L 0.890625,-1.5625 c -0.203125,0.265625 -0.25,0.359375 -0.25,0.6875 C 0.640625,0 1.28125,0 1.625,0 h 6.5 c 0.265625,0 0.984375,0 0.984375,-0.765625 z m 0,0" + style="stroke:none" /> + transform="translate(190.329,42.696)" + id="g49352"> + id="id-e6379215-4b1d-49e8-a714-4e86a6a50930" + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + style="stroke:none" /> + transform="translate(201.922,42.696)" + id="g49355"> + id="id-7b960773-8dad-4c07-b1ea-17cab4c59be4" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> + transform="translate(212.483,42.696)" + id="g49358"> + id="id-574161b1-3caf-4ccf-ba8e-26611f1ff10b" + d="m 4.625,0.65625 v -9.125 C 4.625,-9.125 4.484375,-9.453125 3.640625,-9.453125 H 2.875 c -0.78125,0 -1,0.265625 -1,0.984375 v 9.625 c 0,0.515625 0,1.34375 -1.234375,1.34375 -0.375,0 -0.84375,-0.078125 -1.296875,-0.375 -0.046875,-0.015625 -0.125,-0.078125 -0.21875,-0.078125 -0.15625,0 -0.171875,0.015625 -0.359375,0.5625 -0.09375,0.203125 -0.234375,0.59375 -0.234375,0.65625 0,0.390625 1.71875,0.96875 3.015625,0.96875 2.28125,0 3.078125,-1.53125 3.078125,-3.578125 z m 0,-13.171875 v -0.390625 c 0,-0.671875 -0.140625,-1 -0.984375,-1 h -1.0625 c -0.78125,0 -0.984375,0.265625 -0.984375,1 v 0.390625 c 0,0.59375 0.09375,0.984375 0.984375,0.984375 h 1.0625 C 4.5,-11.53125 4.625,-11.890625 4.625,-12.515625 Z m 0,0" + style="stroke:none" /> + transform="translate(225.978,42.696)" + id="g49362"> + id="id-ce0a9bcd-52b5-4e98-955c-aefe6a8b5861" + d="M 7.359375,-8.15625 V -9.125 c 0,-0.421875 0,-0.5625 -0.375,-0.5625 -0.578125,0 -2.09375,0.203125 -3.0625,2.4375 H 3.90625 v -1.34375 c 0,-0.65625 -0.140625,-0.984375 -1,-0.984375 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.609375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 V -4.75 C 4,-6.71875 5.640625,-7.515625 6.9375,-7.59375 7.3125,-7.625 7.359375,-7.625 7.359375,-8.15625 Z M 7.1875,-14 c 0.109375,-0.171875 0,-0.390625 -0.203125,-0.390625 h -0.96875 c 0,0 -0.09375,0.01563 -0.125,0.03125 l -2.03125,2.09375 -2.015625,-2.09375 c -0.046875,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 0.75 c -0.21875,0 -0.34375,0.265625 -0.234375,0.421875 L 2.5,-11.140625 c 0.046875,0.0625 0.109375,0.09375 0.1875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" /> + transform="translate(233.668,42.696)" + id="g49365"> + id="id-19e42996-2ec5-40a1-af96-a3be984bf3f7" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> + transform="translate(244.229,42.696)" + id="g49368"> + id="id-e08f84c4-9085-455e-bbd8-85563dfa26ab" + d="m 8.1875,-2.90625 c 0,-1.15625 -0.625,-1.890625 -1,-2.21875 C 6.359375,-5.859375 5.640625,-5.984375 4.765625,-6.15625 3.640625,-6.359375 2.8125,-6.53125 2.8125,-7.328125 c 0,-0.859375 0.671875,-1.015625 1.484375,-1.015625 1.390625,0 2.125,0.515625 2.671875,0.96875 0.203125,0.203125 0.234375,0.203125 0.328125,0.203125 0.203125,0 0.25,-0.1875 0.265625,-0.265625 0.03125,-0.15625 0.25,-1.328125 0.25,-1.421875 0,-0.328125 -1.09375,-0.625 -1.328125,-0.703125 C 5.65625,-9.796875 5,-9.8125 4.46875,-9.8125 c -0.9375,0 -3.703125,0 -3.703125,2.953125 0,1.015625 0.453125,1.640625 1.015625,2.125 0.71875,0.671875 1.53125,0.8125 2.703125,1.03125 0.59375,0.109375 1.65625,0.296875 1.65625,1.203125 0,0.96875 -0.8125,1.109375 -1.609375,1.109375 -0.921875,0 -2.078125,-0.265625 -3.046875,-1.421875 -0.09375,-0.09375 -0.15625,-0.15625 -0.28125,-0.15625 -0.21875,0 -0.25,0.1875 -0.28125,0.296875 -0.03125,0.296875 -0.28125,1.46875 -0.28125,1.6875 0,0.359375 1.546875,0.859375 1.546875,0.859375 1.140625,0.359375 1.984375,0.359375 2.34375,0.359375 1.046875,0 3.65625,-0.09375 3.65625,-3.140625 z M 7.703125,-14 c 0.109375,-0.171875 0,-0.390625 -0.203125,-0.390625 H 6.53125 c 0,0 -0.09375,0.01563 -0.125,0.03125 l -2.03125,2.09375 -2.015625,-2.09375 c -0.046875,-0.01563 -0.125,-0.03125 -0.125,-0.03125 h -0.96875 c -0.21875,0 -0.34375,0.265625 -0.234375,0.421875 l 1.984375,2.828125 c 0.046875,0.0625 0.109375,0.09375 0.1875,0.09375 H 5.5 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" /> + transform="translate(252.942,42.696)" + id="g49371"> + id="id-f45fce94-7bff-4d61-8153-4b7584ee81b0" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" /> - - + transform="translate(263.503,42.696)" + id="g49375"> + id="id-391a5634-83fc-43f9-8505-8579be545cc5" + d="M 10.328125,-0.984375 V -6.71875 c 0,-2.125 -0.90625,-2.96875 -3.015625,-2.96875 -2.171875,0 -3.09375,1.5625 -3.359375,2.125 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.796875 1.203125,-2.640625 2.28125,-2.640625 0.984375,0 1.1875,0.484375 1.1875,1.53125 v 5.6875 c 0,0.65625 0.140625,0.984375 1,0.984375 H 9.34375 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 z m 0,0" + style="stroke:none" /> + transform="translate(275.096,42.696)" + id="g49378"> + id="id-1aab7c85-a283-430a-803a-ffece84c1b40" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z M 6.09375,-14.0625 c 0,-0.265625 -0.234375,-0.265625 -0.5625,-0.265625 h -1.6875 c -0.421875,0 -0.4375,0.01563 -0.625,0.234375 l -1.765625,2.421875 c -0.1875,0.234375 -0.1875,0.3125 -0.1875,0.3125 0,0.265625 0.21875,0.265625 0.546875,0.265625 H 2.578125 L 5.859375,-13.75 c 0.109375,-0.09375 0.234375,-0.1875 0.234375,-0.3125 z m 0,0" + style="stroke:none" /> + transform="translate(280.376,42.696)" + id="g49381"> - - - - - - + id="id-b3be6282-1196-4290-bd80-fad2eb8e046e" + d="m 5.140625,-13.90625 c 0,-0.421875 -0.09375,-0.421875 -0.5625,-0.421875 H 3 c -0.453125,0 -0.5625,0 -0.5625,0.421875 0,1.84375 0.125,3.71875 0.171875,5.5625 0,0.5 0.078125,3.984375 0.125,4.09375 0.046875,0.203125 0.171875,0.203125 0.546875,0.203125 h 1.015625 c 0.53125,0 0.5625,-0.015625 0.578125,-0.578125 L 5.015625,-9.25 c 0.03125,-1.53125 0.125,-3.125 0.125,-4.65625 z m 0,12.921875 V -1.71875 C 5.140625,-2.375 5,-2.703125 4.15625,-2.703125 H 3.421875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 0.734375 C 2.4375,-0.25 2.671875,0 3.421875,0 H 4.15625 C 4.9375,0 5.140625,-0.265625 5.140625,-0.984375 Z m 0,0" + style="stroke:none" /> - Zaregistruj se a nahraj řešení do odevzdávátka. + ns10:texconverter="pdflatex" + ns10:pdfconverter="inkscape" + ns10:text="\\begin{minipage}{9cm}\n\\nadpis{\n\\faLightbulbO \\textbf{ Tipy}\n}\n\\vspace{-2 mm}\n\\podnadpis{\n\\begin{itemize}\n\\item P\u0159e\u010dti si v\u0161echna zad\xe1n\xed v \u010d\xedsle.\n\\item \u0158e\u0161 v\xedce t\xe9mat najednou, dozv\xed\u0161 se n\u011bco nov\xe9ho z r\u016fzn\xfdch oblast\xed.\n\\item Ptej se!\n\\begin{itemize}[leftmargin=*]\n\\item Ke ka\u017ed\xe9mu t\xe9m\xe1tku existuje e-mailov\xe1 konference,\nkde m\u016f\u017ee\u0161 diskutovat s ostatn\xedmi \u0159e\u0161iteli \u010di se pt\xe1t na nejasnosti.\n\\item St\xe1le nev\xed\u0161? Napi\u0161 p\u0159\xedmo vedouc\xedmu t\xe9m\xe1tka, r\xe1d ti porad\xed.\n\\end{itemize}\n\\item M\u016f\u017eu googlit?\n\\begin{itemize}[leftmargin=*]\n\\item Ano! Pokud v\u0161ak nebude uvedeno jinak, nehledej pros\xedm p\u0159\xedmo \u0159e\u0161en\xed\nzadan\xfdch \xfaloh, mohl(a) by ses tak ochudit o radost z objevov\xe1n\xed. \n\\end{itemize}\n\\item S odevzd\xe1n\xedm neot\xe1lej\n\\begin{itemize}[leftmargin=*]\n\\item Stihneme-li ti \u0159e\u0161en\xed opravit p\u0159ed 1.~deadlinem, m\u016f\u017ee\u0161 si jej je\u0161t\u011b zlep\u0161it.\n\\end{itemize}\n\\end{itemize}\n}\n\\end{minipage}" + ns10:preamble="/home/katerina/.config/inkscape/extensions/textext/default_packages.tex" + ns10:scale="1.0" + ns10:alignment="middle center" + ns10:inkscapeversion="1.0" + ns10:jacobian_sqrt="0.352778" + id="g55445"> + id="id-edef931b-08ad-4fc2-87c2-7d70890295fa"> + id="id-d6c9ef9c-9248-4f98-a22d-e2c289f3e56a"> + id="id-8157a8f5-ddb7-4871-9b4d-c6843af28922" + overflow="visible"> + id="id-4d010def-39b4-49ff-a4d6-2f443adb69b6" + d="M 1.5,-0.734375 V -9.5 h 2.984375 v 8.765625 z M 0.734375,0 h 4.5 v -10.25 h -4.5 z m 0,0" + style="stroke:none" /> + id="id-3187fa06-9c66-421c-a0d2-0413e9b15e23" + overflow="visible"> + id="id-a554291f-0096-4367-aa7d-cbaae0131f31" + d="m 4.90625,-6.40625 c 0,-0.734375 -0.859375,-1.0625 -1.484375,-1.0625 -0.109375,0 -0.21875,0.109375 -0.21875,0.21875 0,0.109375 0.109375,0.203125 0.21875,0.203125 0.359375,0 1.0625,0.171875 1.0625,0.640625 0,0.109375 0.109375,0.21875 0.21875,0.21875 0.109375,0 0.203125,-0.109375 0.203125,-0.21875 z m 1.0625,0 c 0,0.4375 -0.171875,0.890625 -0.453125,1.203125 C 5.390625,-5.0625 5.25,-4.90625 5.109375,-4.75 4.640625,-4.203125 4.25,-3.53125 4.171875,-2.765625 H 2.65625 C 2.578125,-3.53125 2.1875,-4.203125 1.703125,-4.75 1.578125,-4.90625 1.4375,-5.0625 1.296875,-5.203125 1.03125,-5.515625 0.84375,-5.96875 0.84375,-6.40625 c 0,-1.34375 1.375,-2.125 2.578125,-2.125 1.203125,0 2.546875,0.78125 2.546875,2.125 z m 0.859375,0 c 0,-1.8125 -1.71875,-2.984375 -3.40625,-2.984375 C 1.734375,-9.390625 0,-8.21875 0,-6.40625 c 0,0.6875 0.21875,1.296875 0.6875,1.796875 0.453125,0.5 1.0625,1.21875 1.125,1.9375 C 1.609375,-2.5625 1.5,-2.359375 1.5,-2.140625 c 0,0.15625 0.046875,0.328125 0.15625,0.4375 C 1.546875,-1.609375 1.5,-1.4375 1.5,-1.28125 1.5,-1.0625 1.609375,-0.859375 1.796875,-0.734375 1.75,-0.640625 1.703125,-0.53125 1.703125,-0.4375 1.703125,0 2.0625,0.21875 2.4375,0.21875 c 0.1875,0.375 0.5625,0.625 0.984375,0.625 0.421875,0 0.796875,-0.25 0.984375,-0.625 0.375,0 0.71875,-0.21875 0.71875,-0.65625 0,-0.09375 -0.046875,-0.203125 -0.09375,-0.296875 0.1875,-0.125 0.296875,-0.328125 0.296875,-0.546875 0,-0.15625 -0.0625,-0.328125 -0.171875,-0.421875 0.109375,-0.109375 0.171875,-0.28125 0.171875,-0.4375 0,-0.21875 -0.109375,-0.421875 -0.3125,-0.53125 0.046875,-0.71875 0.65625,-1.4375 1.125,-1.9375 0.46875,-0.5 0.6875,-1.109375 0.6875,-1.796875 z m 0,0" + style="stroke:none" /> + id="id-e9508e70-2b59-4eb7-b212-7bcb5be3472e" + overflow="visible"> + id="id-4ee13070-0654-444f-9872-f0310ed7095e" + d="" + style="stroke:none" /> + id="id-6da60ebd-28e0-49e4-a87c-197eab51b132" + overflow="visible"> + id="id-8efe56b1-175e-48e8-931c-e987d99c18f5" + d="M 8.265625,-7.546875 V -7.65625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 h -6.65625 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 0.109375 c 0,0.5625 0.28125,0.5625 0.609375,0.5625 L 3.5,-7.015625 v 6.4375 C 3.5,-0.140625 3.640625,0 4.078125,0 H 4.6875 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 v -6.4375 l 2.390625,0.03125 c 0.328125,0 0.609375,0 0.609375,-0.5625 z m 0,0" + style="stroke:none" /> + id="id-e20ae773-f118-4af0-b801-bc36fc004d4f" + overflow="visible"> + id="id-a9805253-755b-4f85-8a66-a2ccb0efeaed" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-e15994b3-90d0-48e4-a792-737adedb00f6" + overflow="visible"> + id="id-866665a2-cd1d-4e11-8d46-cbc3f713537e" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" /> + id="id-17536c7f-7830-4f7b-a125-ae75dbdd591d" + overflow="visible"> + id="id-219dd52d-62f7-4e8f-9d83-597bc184041f" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="id-55d1d151-f868-481d-8d44-ccfb80b94d36" + overflow="visible"> + style="stroke:none" /> + id="id-9d14adbb-fbd8-4048-af00-90f7bbc4c58e" + overflow="visible"> + id="id-c9f487e9-5806-4a60-91a3-c9e91807858a" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + id="id-10e8a1f4-178b-4d00-8e4a-2242e648c553" + overflow="visible"> + id="id-c9f6c197-db28-481d-98b9-3350d9f7efca" + d="" + style="stroke:none" /> + id="id-8ad19104-0e1f-41e5-b930-586ef667cef0" + overflow="visible"> + id="id-7c6de08c-acb8-4850-bd6d-b04e6d3b523b" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + style="stroke:none" /> + id="id-91c76385-e4c1-4d9f-bb4b-e9b4ad17b43b" + overflow="visible"> + id="id-3c7b395a-0bc1-4781-9db4-8fc63d88dc44" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" /> + id="id-ade4e2aa-46de-4896-a637-1aa6890d8208" + overflow="visible"> + id="id-5e1aa20d-1384-49ee-bbbf-e7a45a065553" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + id="id-2f0c3883-d8c4-46b7-8190-8f21475aded8" + overflow="visible"> + id="id-c9ee327f-b189-49d0-a1cf-94d45b41dd27" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + id="id-aac8517b-823e-48fd-9bed-5b7f09608013" + overflow="visible"> + id="id-586a0586-d449-4e46-90cb-7bb9a3551c58" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + id="id-6c094bc2-6d57-488f-8577-11297c7a5be6" + overflow="visible"> + id="id-ff22f81a-f4ff-49ce-bd0b-df7ac27e416a" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + id="id-70680f49-a1a9-40ab-958c-a4f2cd80e56e" + overflow="visible"> + id="id-f8d5d94f-ae20-416c-a80c-8e6f9f263530" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + id="id-5fab6086-0337-4304-9356-9216a88486d4" + overflow="visible"> + id="id-8cff43b9-2450-40ed-bb44-eec649d1702d" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + id="id-a2b23b0b-0df3-4924-ba34-7659140c82ef" + overflow="visible"> + id="id-e22cd717-9276-4981-bafe-67cf52798385" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + id="id-4c7b7671-35ad-453a-aa54-b81619c85aa1" + overflow="visible"> + id="id-cff881ad-57da-4bdc-973f-bfa749a14d2b" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> + id="id-41cd4c96-676b-4085-991a-668525d91aae" + overflow="visible"> + id="id-edd81d97-a412-4284-8c46-7f14df0365d3" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + id="id-e2234906-584b-4f25-abb5-b067ea4d8383" + overflow="visible"> + id="id-e1efe2be-795d-4648-adca-d40e9290954f" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + id="id-53afcea4-8813-47ca-bdcb-90ec2d46e1a7" + overflow="visible"> + id="id-f9f5241c-65ed-4599-b54a-6e5e27f195c8" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + id="id-6ef92327-c6e6-422b-864a-b7e8b5761413" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-73b44d0e-1701-48bc-91c4-86ca150cadaf" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + + - - - - - - - + id="id-f2685ccd-261a-425b-b0d0-02cf5452ed01" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + + id="id-3c377c12-ae2f-40f9-b700-8b6b58d3ccdb" + overflow="visible"> + id="id-41a382da-6485-4ff2-88c7-84129f19e29e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + id="id-da82ff7d-9c14-4b83-acac-ad961900df7d" + overflow="visible"> + id="id-d0d379d0-eb88-4f42-a515-8cdf7cbd90be" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + id="id-a3521ea2-286f-47ee-a63c-4aa9b4fc74b0" + overflow="visible"> + id="id-6993a956-61ff-48a9-97ce-6e12077407f4" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> + id="id-c51a2145-d4d8-469f-9059-655a97b952fc" + overflow="visible"> + id="id-fcab3540-c109-406a-8e5e-0b089235f04b" + d="M 6.15625,0 4.171875,-3.25 C 5.203125,-3.546875 5.875,-4.25 5.875,-5.0625 5.875,-6.046875 4.78125,-6.921875 3.359375,-6.921875 H 0.953125 V 0 H 1.8125 V -3.15625 H 3.390625 L 5.265625,0 Z M 5.0625,-5.0625 c 0,0.703125 -0.640625,1.296875 -1.8125,1.296875 H 1.8125 v -2.59375 H 3.25 c 1.15625,0 1.8125,0.59375 1.8125,1.296875 z M 4.78125,-8.671875 H 4.1875 L 3.21875,-7.703125 2.25,-8.671875 H 1.671875 l 1.25,1.328125 h 0.59375 z m 0,0" + style="stroke:none" /> + id="id-719a35ab-66c4-4bd0-ab11-12737a9da5e4" + overflow="visible"> + id="id-d317e96c-0967-422f-8f55-e7f251aa4384" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" /> + id="id-8f63bd6b-cda3-4885-8509-eb75ec940a5a" + overflow="visible"> + id="id-ba20c3a2-1e27-4dc3-b573-bb5de994ce8a" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + id="id-1be417d0-d66a-4dbf-ba52-cbaba2e85979" + overflow="visible"> + id="id-d64f650e-21ee-4987-8612-f3242867e945" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + id="id-d0d2646f-a385-44aa-9053-9e147dc4c14a" + overflow="visible"> + id="id-e328ce65-a022-4f6a-a63c-32b5cbf94937" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + id="id-f09a6042-d177-4419-87d1-6f38af9b0ab8" + overflow="visible"> + id="id-60f8bb2f-e184-491a-abfb-5ab7cc5328b1" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + id="id-5adff2da-7b8d-42a1-9062-d5ccebb9606f" + overflow="visible"> + id="id-b69179de-0646-473a-8b2d-25c648774b53" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" /> + id="id-d554f422-6bf9-41b1-b3f7-ea707dfecbfd" + overflow="visible"> + id="id-c3a57cdf-6a5c-492b-b2aa-7ba26cbe62eb" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + style="stroke:none" /> + id="id-8244c1b4-486c-4070-8945-be95e7ce6d7f" + overflow="visible"> + id="id-3bb4b4c1-4217-4e96-b55a-f09398994920" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="id-d6d25667-051f-4a6b-9200-e0b14561477d" + overflow="visible"> + id="id-50f14d20-0500-45f3-9fbc-32b53bff3a14" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> + id="id-4093cb90-a39c-47c6-801b-b3fd4ba64b44" + overflow="visible"> + id="id-795089d5-2f19-429b-8eec-8c8170718d72" + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + style="stroke:none" /> + id="id-703f6352-fba2-4d66-b1ef-acb4c4dec4b3" + overflow="visible"> + id="id-5d5e3fc3-13a1-46f4-bcb7-bcf154c022b2" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" /> + id="id-84169e9e-52a7-4961-ad11-c501d797676e" + overflow="visible"> + id="id-0fcbefd6-671e-4a0e-9357-4f4b36fa9a5d" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" /> + id="id-a1bb4145-100e-4a8a-b726-53d70abc6315" + overflow="visible"> + id="id-2116445a-a9c1-4c53-ad84-964ace0a8bf5" + d="M 2,-6.921875 H 1.171875 l 0.078125,4.75 V -1.75 H 1.921875 V -2.171875 Z M 2,0 V -0.828125 H 1.171875 V 0 Z m 0,0" + style="stroke:none" /> + id="id-a2695ceb-32d5-4adf-bd8d-4b0fd6e89fd3" + overflow="visible"> + id="id-a0313d92-1adb-42ca-8d5a-1ee1a879abc4" + d="M 6.484375,0 3.671875,-4.1875 6.34375,-6.921875 H 5.421875 l -3.625,3.703125 V -6.921875 H 0.953125 V 0 h 0.84375 V -2.265625 L 3.125,-3.625 5.578125,0 Z m 0,0" + style="stroke:none" /> + id="id-e6a9c828-c14e-4ef1-8a5f-fcdd0ce18a11" + overflow="visible"> + id="id-9990ad14-c94c-45d5-b8c4-87b420fb0245" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + id="id-b5e7ded8-b8ea-44dd-9d5e-27548050709f" + overflow="visible"> + id="id-98660c4a-6089-4bf6-887b-d865bebfc5c7" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + id="id-29603dec-5554-44d4-aab0-964d5e7038e4" + overflow="visible"> + id="id-626dbca8-c254-414c-a84e-efa20c625989" + d="M 4.578125,0 2.59375,-2.28125 4.421875,-4.421875 H 3.59375 l -1.328125,1.640625 -1.375,-1.640625 H 0.0625 L 1.9375,-2.28125 0,0 h 0.8125 l 1.453125,-1.875 1.5,1.875 z m 0,0" + style="stroke:none" /> + id="id-e70a40cc-9a39-4aea-bc03-806fd7823db5" + overflow="visible"> + id="id-e62bbcc6-23e2-456d-abc2-72485396b8a8" + d="M 3.453125,-6.25 V -6.921875 C 3.34375,-6.953125 3.03125,-7.03125 2.65625,-7.03125 1.71875,-7.03125 1,-6.3125 1,-5.328125 v 0.90625 H 0.265625 V -3.84375 H 1 V 0 h 0.75 v -3.84375 h 1.09375 v -0.578125 h -1.125 v -1.1875 c 0,-0.734375 0.671875,-0.8125 0.9375,-0.8125 0.1875,0 0.46875,0.015625 0.796875,0.171875 z m 0,0" + style="stroke:none" /> + id="id-e016284e-0809-44f1-9b2f-3d5bf2d68c55" + overflow="visible"> + id="id-80a67d2a-3c1c-4564-9359-e9d6ea437d7b" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" /> + id="id-915f8c09-35c1-4255-9752-8db61be64514" + overflow="visible"> + id="id-12d3af6a-73ed-4ba8-90d5-cf111daaef8d" + d="M 4.96875,-1.890625 C 4.96875,-2.53125 4.671875,-3.015625 4.453125,-3.25 3.984375,-3.75 3.65625,-3.84375 2.734375,-4.0625 2.15625,-4.203125 2,-4.25 1.6875,-4.5 1.625,-4.5625 1.34375,-4.859375 1.34375,-5.296875 c 0,-0.578125 0.546875,-1.1875 1.453125,-1.1875 0.84375,0 1.3125,0.328125 1.6875,0.640625 l 0.15625,-0.796875 c -0.546875,-0.328125 -1.109375,-0.5 -1.828125,-0.5 -1.390625,0 -2.25,0.984375 -2.25,1.96875 0,0.421875 0.140625,0.84375 0.53125,1.265625 0.421875,0.453125 0.859375,0.5625 1.453125,0.703125 0.84375,0.21875 0.9375,0.25 1.21875,0.484375 0.203125,0.171875 0.421875,0.5 0.421875,0.9375 0,0.65625 -0.546875,1.3125 -1.453125,1.3125 -0.40625,0 -1.3125,-0.09375 -2.140625,-0.8125 l -0.15625,0.8125 c 0.875,0.546875 1.671875,0.6875 2.296875,0.6875 1.328125,0 2.234375,-1 2.234375,-2.109375 z m 0,0" + style="stroke:none" /> + id="id-5e80220f-f1de-4cea-832b-d9ecacaf5468" + overflow="visible"> + id="id-d1df6415-2105-4b21-9f18-4a33a69f1fc0" + d="m 4.140625,-5.484375 c 0,-0.671875 -0.40625,-1.546875 -1.90625,-1.546875 C 1.625,-7.03125 1.09375,-6.859375 0.5625,-6.5 l 0.21875,0.625 c 0.25,-0.21875 0.734375,-0.546875 1.453125,-0.546875 0.46875,0 1.125,0.078125 1.125,0.921875 0,0.453125 -0.21875,0.640625 -0.34375,0.765625 C 1.875,-3.765625 1.875,-2.5 1.875,-2.0625 V -1.75 h 0.671875 v -0.53125 c 0,-0.6875 0.328125,-1.421875 1.015625,-2 0.203125,-0.171875 0.578125,-0.484375 0.578125,-1.203125 z M 2.625,0 V -0.828125 H 1.796875 V 0 Z m 0,0" + style="stroke:none" /> + id="id-1ea8f639-1462-49b4-a8fe-6a630e6f935b" + overflow="visible"> + id="id-4650f052-8654-483b-b13a-e02af2fde254" + d="M 6.09375,0 V -6.921875 H 5.3125 v 6.21875 H 5.296875 l -0.65625,-1.375 L 2.1875,-6.921875 H 0.953125 V 0 h 0.78125 V -6.203125 H 1.75 L 2.40625,-4.84375 4.859375,0 Z m 0,0" + style="stroke:none" /> + id="id-d4701854-fb86-4076-9b1a-59e3fa0072b2" + overflow="visible"> + id="id-1e44d566-50b6-4731-8129-ddc623f61c7b" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" /> + id="id-b0bdf596-d10f-4734-a719-2f955375bfca" + overflow="visible"> + id="id-712f5d10-7b6d-47d6-b4f2-49274d5644eb" + d="m 4.828125,-3.90625 -0.109375,-0.625 c -0.6875,0 -1.265625,0.1875 -1.5625,0.3125 -0.21875,-0.171875 -0.546875,-0.3125 -0.953125,-0.3125 -0.859375,0 -1.578125,0.71875 -1.578125,1.625 0,0.359375 0.125,0.71875 0.328125,0.984375 C 0.65625,-1.515625 0.65625,-1.125 0.65625,-1.078125 0.65625,-0.8125 0.75,-0.53125 0.921875,-0.3125 0.40625,-0.015625 0.28125,0.453125 0.28125,0.703125 c 0,0.75 0.984375,1.34375 2.203125,1.34375 1.21875,0 2.203125,-0.578125 2.203125,-1.34375 C 4.6875,-0.6875 3.03125,-0.6875 2.640625,-0.6875 h -0.875 c -0.125,0 -0.578125,0 -0.578125,-0.53125 0,-0.109375 0.03125,-0.265625 0.109375,-0.359375 0.203125,0.15625 0.53125,0.296875 0.90625,0.296875 0.890625,0 1.59375,-0.75 1.59375,-1.625 0,-0.484375 -0.21875,-0.859375 -0.328125,-1 l 0.046875,0.015625 C 3.734375,-3.890625 4,-3.9375 4.25,-3.9375 c 0.171875,0 0.578125,0.03125 0.578125,0.03125 z m -1.734375,1 c 0,0.765625 -0.46875,1.046875 -0.890625,1.046875 -0.375,0 -0.890625,-0.21875 -0.890625,-1.046875 0,-0.828125 0.515625,-1.0625 0.890625,-1.0625 0.421875,0 0.890625,0.28125 0.890625,1.0625 z M 4,0.71875 c 0,0.4375 -0.6875,0.765625 -1.5,0.765625 -0.8125,0 -1.515625,-0.3125 -1.515625,-0.78125 0,-0.03125 0,-0.671875 0.765625,-0.671875 H 2.65625 C 2.875,0.03125 4,0.03125 4,0.71875 Z m 0,0" + style="stroke:none" /> + id="id-83dd51ab-39c5-4c3a-b506-fc12c765a789" + overflow="visible"> + id="id-d1dfc8de-1b14-49f4-b5f9-fec96f5a948d" + d="M 6.359375,0 3.765625,-6.921875 H 2.875 L 0.28125,0 H 1.015625 L 1.78125,-2.03125 H 4.6875 L 5.4375,0 Z M 4.46875,-2.59375 H 2 c 0.5,-1.421875 0.140625,-0.375 0.640625,-1.796875 0.203125,-0.59375 0.515625,-1.4375 0.59375,-1.8125 0.03125,0.140625 0.09375,0.390625 0.328125,1.046875 z m 0,0" + style="stroke:none" /> + id="id-45662695-3abe-46b6-bcd2-1cdac490d2a1" + overflow="visible"> + id="id-a40d9dcf-b058-40db-a899-d0e4a964df35" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + id="id-feaddd21-18e3-429d-adee-2026f5f2b5f6" + overflow="visible"> + id="id-f7fae61f-5cf4-4fcb-9e6f-1d69487f568f" + d="m 3.3125,2.5 c -0.484375,-0.484375 -1.75,-1.765625 -1.75,-5 0,-0.546875 0.03125,-1.71875 0.4375,-2.890625 0.40625,-1.15625 0.984375,-1.75 1.3125,-2.09375 H 2.703125 C 2.375,-7.171875 1.71875,-6.5625 1.25,-5.34375 0.859375,-4.28125 0.78125,-3.21875 0.78125,-2.5 c 0,3.234375 1.4375,4.546875 1.921875,5 z m 0,0" + style="stroke:none" /> + id="id-0041385e-8a21-46a8-baa2-07fdc6021805" + overflow="visible"> + id="id-9f13740d-a524-43d1-be10-a60c666de5d5" + d="m 3.078125,-2.5 c 0,-3.21875 -1.4375,-4.53125 -1.90625,-4.984375 H 0.5625 C 1.03125,-7 2.296875,-5.71875 2.296875,-2.5 c 0,0.5625 -0.03125,1.734375 -0.4375,2.90625 C 1.453125,1.5625 0.890625,2.15625 0.5625,2.5 h 0.609375 c 0.3125,-0.3125 0.984375,-0.921875 1.4375,-2.140625 0.40625,-1.0625 0.46875,-2.125 0.46875,-2.859375 z m 0,0" + style="stroke:none" /> + id="id-d8c9bf31-21ca-42dc-9c36-f083cec04e31" + overflow="visible"> + id="id-fd89495d-974d-454c-9505-b33e7f5da59c" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" /> + id="id-644287f2-9350-4ac9-a216-d9674e6010aa" + overflow="visible"> + id="id-1f444ce7-41d5-43e7-84c0-ff517c1116ca" + d="m 4.234375,0 v -0.578125 h -1.25 v -6.1875 H 2.78125 C 2.1875,-6.15625 1.359375,-6.125 0.890625,-6.09375 v 0.578125 C 1.21875,-5.53125 1.6875,-5.546875 2.1875,-5.765625 v 5.1875 H 0.953125 V 0 Z m 0,0" + style="stroke:none" /> + id="id-efaa521d-9b70-4d9c-9551-1bf60d50720b" + overflow="visible"> + id="id-6ac86b79-e5a9-497a-b1fe-4899f616d8f4" + d="" + style="stroke:none" /> + id="id-bc8e7540-d0ca-4102-be68-7e9b822bbe4f" + overflow="visible"> + id="id-38f344c7-6e33-4005-86d9-55f5f2ca9556" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" /> - + + + + + - - + id="id-3b4f5884-9d5e-434e-ac2a-5e253c9aa188" + d="m 4.90625,-6.40625 c 0,-0.734375 -0.859375,-1.0625 -1.484375,-1.0625 -0.109375,0 -0.21875,0.109375 -0.21875,0.21875 0,0.109375 0.109375,0.203125 0.21875,0.203125 0.359375,0 1.0625,0.171875 1.0625,0.640625 0,0.109375 0.109375,0.21875 0.21875,0.21875 0.109375,0 0.203125,-0.109375 0.203125,-0.21875 z m 1.0625,0 c 0,0.4375 -0.171875,0.890625 -0.453125,1.203125 C 5.390625,-5.0625 5.25,-4.90625 5.109375,-4.75 4.640625,-4.203125 4.25,-3.53125 4.171875,-2.765625 H 2.65625 C 2.578125,-3.53125 2.1875,-4.203125 1.703125,-4.75 1.578125,-4.90625 1.4375,-5.0625 1.296875,-5.203125 1.03125,-5.515625 0.84375,-5.96875 0.84375,-6.40625 c 0,-1.34375 1.375,-2.125 2.578125,-2.125 1.203125,0 2.546875,0.78125 2.546875,2.125 z m 0.859375,0 c 0,-1.8125 -1.71875,-2.984375 -3.40625,-2.984375 C 1.734375,-9.390625 0,-8.21875 0,-6.40625 c 0,0.6875 0.21875,1.296875 0.6875,1.796875 0.453125,0.5 1.0625,1.21875 1.125,1.9375 C 1.609375,-2.5625 1.5,-2.359375 1.5,-2.140625 c 0,0.15625 0.046875,0.328125 0.15625,0.4375 C 1.546875,-1.609375 1.5,-1.4375 1.5,-1.28125 1.5,-1.0625 1.609375,-0.859375 1.796875,-0.734375 1.75,-0.640625 1.703125,-0.53125 1.703125,-0.4375 1.703125,0 2.0625,0.21875 2.4375,0.21875 c 0.1875,0.375 0.5625,0.625 0.984375,0.625 0.421875,0 0.796875,-0.25 0.984375,-0.625 0.375,0 0.71875,-0.21875 0.71875,-0.65625 0,-0.09375 -0.046875,-0.203125 -0.09375,-0.296875 0.1875,-0.125 0.296875,-0.328125 0.296875,-0.546875 0,-0.15625 -0.0625,-0.328125 -0.171875,-0.421875 0.109375,-0.109375 0.171875,-0.28125 0.171875,-0.4375 0,-0.21875 -0.109375,-0.421875 -0.3125,-0.53125 0.046875,-0.71875 0.65625,-1.4375 1.125,-1.9375 0.46875,-0.5 0.6875,-1.109375 0.6875,-1.796875 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-7ea07cb3-5275-4c19-8c1e-2b7dd47e5393" + d="M 8.265625,-7.546875 V -7.65625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 h -6.65625 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 0.109375 c 0,0.5625 0.28125,0.5625 0.609375,0.5625 L 3.5,-7.015625 v 6.4375 C 3.5,-0.140625 3.640625,0 4.078125,0 H 4.6875 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 v -6.4375 l 2.390625,0.03125 c 0.328125,0 0.609375,0 0.609375,-0.5625 z m 0,0" + style="stroke:none" /> + + - - + id="id-de92c57a-ac6e-4d64-a076-387b86c9fee0" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + + - - + id="id-91bf5fd7-e9d3-4605-b5b5-336830f92045" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-c86d9900-324f-4924-b7df-0334f5110348" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-43156f2e-bc1d-40b3-b88a-4d85a8abfe39" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-654f64cc-4619-4b6b-9b35-5ca9b9f172de" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + style="stroke:none" /> + + - - + id="id-9f171423-5d4b-4e80-97f8-4f95448b9fd3" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" /> + + - - + id="id-77618e67-61c5-4af3-a930-e31a8d38a3e9" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + + - - + id="id-656dca5a-4007-41fa-bb77-fd488b6d49f0" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + + - - + id="id-ecab5c29-108f-4c7c-bfbd-4f5773c77867" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + + - - + id="id-27636486-3c13-4076-b548-4801ccb5ff6a" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-ec7c889d-93c4-4a72-a834-ca2fb422714f" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="id-ee175300-f6d6-41c7-850b-d8a8339ef119" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + + + transform="translate(111.313,69.891)" + id="g53988"> + id="id-e427cccb-141f-49a3-a8a5-e3d5baa70298" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(115.907,69.891)" + id="g53991"> + id="id-f3ca3e5f-4b8f-431c-bb65-f440dcdfbd53" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(119.726,69.891)" + id="g53994"> + id="id-e5ff4402-be2a-4d2e-9910-6453e76b12b1" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(124.154,69.891)" + id="g53997"> - - - + style="stroke:none" /> + transform="translate(128.583,69.891)" + id="g54000"> + id="id-c3717c7c-b408-423b-9929-dd8c5944c589" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(133.73,69.891)" + id="g54003"> + id="id-a5e6a04a-cb37-43e6-aa76-ddd28beaa8c6" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - + transform="translate(138.868,69.891)" + id="g54007"> - - - + style="stroke:none" /> + transform="translate(146.984,69.891)" + id="g54011"> + id="id-4bf2a124-93e2-41e8-b80c-9bccdffe093e" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(151.314,69.891)" + id="g54014"> + id="id-67d45055-8ace-425d-b30d-9d7f4ddbb9ae" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(156.102,69.891)" + id="g54017"> + style="stroke:none" /> - - + transform="translate(161.25,69.891)" + id="g54020"> + id="id-01492f0e-dd4a-4b87-b68b-c8b9593c36b1" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(166.038,69.891)" + id="g54023"> + id="id-298ac3cb-a386-409a-850b-fe45f815c27b" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(171.186,69.891)" + id="g54026"> + id="id-0ff1f2b8-7b6c-4716-b2a4-7ffcdcce1607" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(176.883,69.891)" + id="g54030"> + id="id-04ba2969-105e-4155-aae2-b7cb4f5b0381" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - + transform="translate(184.795,69.891)" + id="g54034"> - - - + id="id-10d5deb6-92b7-4143-afdf-f51b59b13ca4" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + + transform="translate(189.223,69.891)" + id="g54037"> + id="id-dc561737-2b4e-4029-8224-c7a230dc304d" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> - - + transform="translate(191.603,69.891)" + id="g54040"> + id="id-41ca89d7-4ed9-47ae-8b61-979c7bea10e7" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(195.422,69.891)" + id="g54043"> + id="id-8d09f690-2c7f-46ac-aef4-6d670d37325c" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(197.802,69.891)" + id="g54046"> + id="id-89a68706-a530-4271-a4c7-142e7700925c" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(202.23,69.891)" + id="g54049"> + id="id-543deb09-e477-48e3-ac2c-cc3926a20ad4" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(61.136,89.816)" + id="g54053"> + id="id-5ee31ff8-348c-45d4-b0be-f4f4b056ca58" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + transform="translate(73.866,89.816)" + id="g54057"> + id="id-b9581b69-c389-4518-9038-260befddd4b5" + d="M 6.15625,0 4.171875,-3.25 C 5.203125,-3.546875 5.875,-4.25 5.875,-5.0625 5.875,-6.046875 4.78125,-6.921875 3.359375,-6.921875 H 0.953125 V 0 H 1.8125 V -3.15625 H 3.390625 L 5.265625,0 Z M 5.0625,-5.0625 c 0,0.703125 -0.640625,1.296875 -1.8125,1.296875 H 1.8125 v -2.59375 H 3.25 c 1.15625,0 1.8125,0.59375 1.8125,1.296875 z M 4.78125,-8.671875 H 4.1875 L 3.21875,-7.703125 2.25,-8.671875 H 1.671875 l 1.25,1.328125 h 0.59375 z m 0,0" + style="stroke:none" /> + transform="translate(80.2999,89.816)" + id="g54060"> + id="id-011c84e4-8c27-48e7-be4d-e995eb8f5025" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(84.7282,89.816)" + id="g54063"> + id="id-44295254-f740-423f-bd94-c173d0c2af61" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + + + transform="translate(92.2032,89.816)" + id="g54067"> + id="id-f71f5797-bab2-489f-83c0-c3881fb99e66" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(96.7969,89.816)" + id="g54070"> + id="id-11723c2c-d434-499c-97f1-f91a0c36ae5e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(99.177,89.816)" + id="g54073"> + id="id-279ac348-9575-47de-a132-33d86273374a" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> - - + transform="translate(103.605,89.816)" + id="g54076"> + id="id-4358e5a4-81b5-4163-8da3-1945dbcbba94" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(111.68,89.816)" + id="g54080"> + id="id-a4599ad5-6b58-45da-a091-9b5c2cd2586f" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(115.278,89.816)" + id="g54083"> + id="id-6060f44b-4c24-4383-9b06-54588924bfcd" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" /> + transform="translate(119.706,89.816)" + id="g54086"> + id="id-f2d070d3-a23b-4ee7-bb56-b4372277cf80" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(127.621,89.816)" + id="g54089"> + id="id-09614c34-6729-44a6-8aa5-c899e2df1db9" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + + + + transform="translate(139.663,89.816)" + id="g54096"> + id="id-cba3801e-07f3-4062-afed-4129f2ed9824" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(144.801,89.816)" + id="g54100"> + id="id-ff5e4cdd-e4a8-40ab-bd39-85693aff560e" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(149.589,89.816)" + id="g54103"> + id="id-c7db2f1d-47c4-411b-ac31-5d80b03a09ba" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(152.246,89.816)" + id="g54106"> + id="id-9348ea55-116c-495d-b773-725d65226832" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(156.674,89.816)" + id="g54109"> + style="stroke:none" /> - - + transform="translate(161.822,89.816)" + id="g54112"> + id="id-df52332b-28a7-4919-8dc4-22eb45950bf8" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - + transform="translate(166.969,89.816)" + id="g54115"> + + transform="translate(171.951,89.816)" + id="g54118"> + id="id-c1cb8031-e368-4ed9-b28c-ccebdb6efc1e" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(177.098,89.816)" + id="g54121"> + id="id-444cae70-8562-4b1f-87b6-a3d709c71c0c" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" /> + transform="translate(183.522,89.816)" + id="g54125"> + id="id-cb0f6fed-c257-4ff8-a041-d8539fdc45c3" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(188.67,89.816)" + id="g54128"> + id="id-7a367eed-9399-4522-a710-d78a21a53dd6" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(193.651,89.816)" + id="g54131"> + id="id-b3650bfb-a846-4b3d-b837-3001ade7f016" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(197.982,89.816)" + id="g54134"> + id="id-58602489-b202-457d-afa5-68c15cb5cc3b" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(202.576,89.816)" + id="g54137"> + id="id-36493261-1f56-46fc-8179-8a0f754cc8b2" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(204.956,89.816)" + id="g54140"> + id="id-1dfcac32-89cf-4045-a1f7-2d4ae1d0fe50" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(212.421,89.816)" + id="g54144"> + id="id-e86d0d8c-b34f-4a49-a070-67fcea7c4a1f" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(216.24,89.816)" + id="g54147"> + style="stroke:none" /> + + + transform="translate(224.324,89.816)" + id="g54151"> + id="id-0695d1db-7408-47de-b364-03b551a1c077" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(229.472,89.816)" + id="g54154"> + id="id-0b87a97c-ee2c-4838-9698-eff65808a46d" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(233.9,89.816)" + id="g54157"> + id="id-387ff826-59dc-4b52-a50f-c1525a57921a" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> + transform="translate(238.329,89.816)" + id="g54160"> + style="stroke:none" /> + transform="translate(246.956,89.816)" + id="g54164"> + id="id-3dabf783-7245-4cea-bead-34d7a9865073" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(252.104,89.816)" + id="g54167"> + id="id-243820d8-3180-42f5-9cd8-2f2da4f899eb" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(257.085,89.816)" + id="g54170"> + id="id-71f1e57f-c460-423b-a2c3-f4ef6a2c1e33" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(261.679,89.816)" + id="g54173"> + id="id-2dec848c-2f70-4152-a8c8-c8a257e39f0c" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" /> + transform="translate(266.107,89.816)" + id="g54176"> + id="id-e5bff5e4-233d-4aec-8523-08cad62afde1" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(271.255,89.816)" + id="g54179"> + id="id-33209c23-bd5b-4570-840a-f96d3fb48618" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> - - - - - - - - - + transform="translate(279.893,89.816)" + id="g54183"> + id="id-76748a0d-12a7-44e6-b2ba-9a4874ae559d" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + + + transform="translate(287.88,89.816)" + id="g54187"> + id="id-5f5ed99b-97bf-4287-a705-45dc50aaa06a" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + + + transform="translate(291.274,89.816)" + id="g54191"> + id="id-97c61767-44f5-4d17-bacd-fcbc733ace3d" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> + transform="translate(296.422,89.816)" + id="g54194"> + id="id-bfbf75d6-9d6c-4698-9407-3b30a3d62694" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(300.752,89.816)" + id="g54197"> + id="id-02c77506-f52b-403e-ad30-32840299afa3" + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(73.866,101.771)" + id="g54201"> + id="id-2b0ba0bb-d510-4298-af69-852f31e86c84" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(79.0137,101.771)" + id="g54204"> + id="id-eb76f43e-e8ec-4260-848c-2a88f31f5594" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(83.6074,101.771)" + id="g54207"> + id="id-d1849b14-2761-4035-ae6c-890c07c18076" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> + transform="translate(88.0358,101.771)" + id="g54210"> + id="id-d034be18-154c-4e7b-8fee-d48c3bb18c58" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(96.501,101.771)" + id="g54214"> + id="id-8949ac27-bae6-446b-883b-9127dd9eb4f3" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(101.482,101.771)" + id="g54217"> + id="id-c41d8038-1c75-4363-a922-91d7c641e773" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(106.63,101.771)" + id="g54220"> + id="id-1e3cd450-e257-43a1-b4e6-81485beffb9e" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(109.01,101.771)" + id="g54223"> + id="id-74caff85-c25d-4be1-8c4c-269b4ce04903" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> - - + transform="translate(113.798,101.771)" + id="g54226"> + id="id-4e4edbf9-2514-47b0-866a-5b38fcaabf55" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(117.617,101.771)" + id="g54229"> + id="id-37e01e46-afbf-4c46-9cd1-aa197ced0ed1" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(121.214,101.771)" + id="g54232"> + id="id-af5d6203-db59-4a56-b374-d211846eb4f6" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(123.594,101.771)" + id="g54235"> + id="id-c6379234-b6aa-4142-8578-c2e50749a36b" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(61.136,121.696)" + id="g54239"> + id="id-ab877059-98f1-4d47-ac0c-3007074511c5" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + + + transform="translate(73.866,121.696)" + id="g54243"> + id="id-8558ef92-9f62-4b27-a6c4-49e69e6d5869" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + style="stroke:none" /> + transform="translate(80.2311,121.696)" + id="g54246"> + id="id-73c59119-67a8-4358-bdab-256133057a39" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(83.8286,121.696)" + id="g54249"> - - - + style="stroke:none" /> + transform="translate(88.257,121.696)" + id="g54252"> + id="id-8d61b4a3-95b2-4bc7-91e4-c1f26021b9b6" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(94.2315,121.696)" + id="g54256"> + id="id-f809bba5-b2c4-42e0-b9e4-30202e0e4270" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(98.0502,121.696)" + id="g54259"> + id="id-5bb77f94-2ff1-407b-b333-b356ec24815e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(102.479,121.696)" + id="g54262"> + id="id-47f9bd33-5fde-4774-accb-bfed165625f9" + d="M 2,-6.921875 H 1.171875 l 0.078125,4.75 V -1.75 H 1.921875 V -2.171875 Z M 2,0 V -0.828125 H 1.171875 V 0 Z m 0,0" + style="stroke:none" /> + + + transform="translate(73.866,141.622)" + id="g54266"> + id="id-511f778b-debd-467f-992c-e0551cde492e" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" /> + + + transform="translate(84.576,141.622)" + id="g54270"> + id="id-32c47b91-25e5-4791-83a7-9849bba9e522" + d="M 6.484375,0 3.671875,-4.1875 6.34375,-6.921875 H 5.421875 l -3.625,3.703125 V -6.921875 H 0.953125 V 0 h 0.84375 V -2.265625 L 3.125,-3.625 5.578125,0 Z m 0,0" + style="stroke:none" /> + transform="translate(91.495,141.622)" + id="g54273"> + id="id-02c1c593-7f3e-4a5e-aef3-ec122d4c7811" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + + + transform="translate(99.8786,141.622)" + id="g54277"> + id="id-ac8dfc9f-96b8-4ef8-b0f9-3258b1a4ae5b" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(104.749,141.622)" + id="g54280"> + id="id-30eb8893-77fd-4eb9-b4dd-357f8bc7726c" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> - - + transform="translate(109.537,141.622)" + id="g54283"> + id="id-9540b02d-c805-49d6-a8dd-2c1fe76630f6" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + transform="translate(113.868,141.622)" + id="g54286"> + id="id-a1dc6a8a-7f2c-4619-a230-1408d045a38b" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(119.016,141.622)" + id="g54289"> + id="id-b36281a7-f9b5-459d-adc3-140b375f8c9c" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" /> + transform="translate(123.444,141.622)" + id="g54292"> + id="id-412e2dda-2896-4080-a22f-4eb49a994cfb" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(131.359,141.622)" + id="g54295"> + id="id-eae3fc4e-c5b7-4ca8-9145-7f738e9c12e3" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(140.452,141.622)" + id="g54299"> + id="id-65060dbc-2b90-49bb-8c17-072d6266f712" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(144.05,141.622)" + id="g54302"> + id="id-e7c2fd8f-ebc2-48a2-aa7c-8553830ddf6e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" /> + transform="translate(148.478,141.622)" + id="g54305"> + id="id-8639dbfe-bb32-4b0e-a730-97f95bb00687" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(156.393,141.622)" + id="g54308"> + id="id-bf532673-1941-488a-9c11-db51349defc6" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(161.181,141.622)" + id="g54311"> + id="id-34f9ace6-a2fe-470b-a630-d47441e6b18e" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(164.779,141.622)" + id="g54314"> + id="id-0584ab2e-4e4f-4473-9111-53897ddb9aa8" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(169.65,141.622)" + id="g54317"> + id="id-8928a30a-e54a-4762-84cb-f1d9f4ce72af" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(178.752,141.622)" + id="g54321"> + id="id-aed280f2-6530-423b-8362-0fef99152e00" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> - - + transform="translate(183.181,141.622)" + id="g54324"> + id="id-4ae8980d-ecc5-4c1e-bea9-f0dc34bd7f7a" + d="M 4.578125,0 2.59375,-2.28125 4.421875,-4.421875 H 3.59375 l -1.328125,1.640625 -1.375,-1.640625 H 0.0625 L 1.9375,-2.28125 0,0 h 0.8125 l 1.453125,-1.875 1.5,1.875 z m 0,0" + style="stroke:none" /> - - + transform="translate(187.775,141.622)" + id="g54327"> + + + + style="stroke:none" /> + transform="translate(193.973,141.622)" + id="g54333"> + id="id-7a18895a-f5a0-42b1-8a5e-c3fff2631ace" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(197.571,141.622)" + id="g54336"> + id="id-6e3a4a6c-4523-4cc0-abda-c30ac9eea16c" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + + + + + + + transform="translate(84.576,153.577)" + id="g54409"> + id="id-8430c4a8-529b-4ee3-875f-ba1ed0f58b6b" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(89.4467,153.577)" + id="g54412"> + id="id-8dd0ba7c-120b-476f-9c7c-70f573a0b160" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(94.5944,153.577)" + id="g54415"> + id="id-0d8e7d16-57ad-4bb7-8307-c03700a632a6" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(101.812,153.577)" + id="g54419"> + + + + id="id-c6512fd9-dc9a-4e00-9a0e-3ddf9f065a2a" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> - - + transform="translate(114.875,153.577)" + id="g54425"> + id="id-ca24e109-335e-4869-820a-f991a7e91e43" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + transform="translate(119.206,153.577)" + id="g54428"> + id="id-8591c5c7-9f53-4e9d-9fa9-c6ddb801757c" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(123.634,153.577)" + id="g54431"> + id="id-c9d13c5d-1877-4618-9fb7-defb54828de5" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + + + transform="translate(130.243,153.577)" + id="g54435"> + style="stroke:none" /> + transform="translate(135.39,153.577)" + id="g54438"> + style="stroke:none" /> + transform="translate(137.77,153.577)" + id="g54441"> + id="id-00a2fc39-e37b-45f1-8d35-8f93e97515a0" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> - - + transform="translate(141.589,153.577)" + id="g54444"> + id="id-8baa4a9f-e4ff-45fc-8606-38e36871512e" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(146.46,153.577)" + id="g54447"> + id="id-48183ec4-2ee6-48d3-b180-1357f7795a1a" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(151.607,153.577)" + id="g54450"> + id="id-6a4f4e07-e89e-4de7-b35e-8715a8190bb8" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(155.205,153.577)" + id="g54453"> + id="id-9873b823-9f2f-43df-a540-960394958e53" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(160.186,153.577)" + id="g54456"> + id="id-39432488-e307-4bb4-b40f-acf94ebc0936" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(164.78,153.577)" + id="g54459"> + id="id-259226eb-d384-468d-98aa-508a8706b215" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(169.568,153.577)" + id="g54462"> + style="stroke:none" /> + transform="translate(175.965,153.577)" + id="g54466"> + id="id-d95672e5-1fac-43c1-88fe-0d6fd4e9b5b9" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(182.573,153.577)" + id="g54470"> - - - - - - - - - + style="stroke:none" /> + transform="translate(187.554,153.577)" + id="g54473"> + id="id-abc2c023-0012-405b-86f1-c81bab37f503" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(191.373,153.577)" + id="g54476"> + id="id-ed221881-4dfa-4638-ae3e-2d3692bf83ea" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(194.971,153.577)" + id="g54479"> + id="id-6d1d5b3b-c14c-4fcf-a495-4c4c1a25fdc8" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(199.759,153.577)" + id="g54482"> + id="id-d87f24d7-3c33-441e-81a0-68f678bdeb88" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(203.356,153.577)" + id="g54485"> + style="stroke:none" /> + transform="translate(208.504,153.577)" + id="g54488"> - - - + style="stroke:none" /> - - + transform="translate(210.884,153.577)" + id="g54491"> + id="id-4e9e03c5-d9b2-4a5e-a13e-71dbddab573e" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(218.799,153.577)" + id="g54494"> + id="id-75092ac1-2691-43cd-bea8-02beff9a454e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(223.969,153.577)" + id="g54498"> + id="id-505962cb-35d2-46f4-9c11-f45b139eebd9" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" /> - - + transform="translate(227.373,153.577)" + id="g54501"> + id="id-b00b26e5-e96e-468a-a845-35a4da68c5e3" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(231.801,153.577)" + id="g54504"> + id="id-9d29d06e-1355-43c2-9b38-9c7273c122c6" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(235.62,153.577)" + id="g54507"> + id="id-b73aa2ab-c861-469b-8628-a79ad0c1d655" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(238,153.577)" + id="g54510"> + id="id-e05c260d-1c70-43d8-a2b5-83f2db8a44fe" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(241.598,153.577)" + id="g54513"> + id="id-bbbc13be-440e-4d32-8035-37e2b5b81a6b" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(246.026,153.577)" + id="g54516"> + id="id-628f45e8-d259-4664-a7ae-4d106674f38f" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(248.406,153.577)" + id="g54519"> + id="id-63e6725d-abf8-4e6c-9b3a-034a4a5790b4" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + + + transform="translate(253.576,153.577)" + id="g54523"> + id="id-987e1133-71a9-4217-a38b-f39425148157" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + transform="translate(258.004,153.577)" + id="g54526"> + id="id-f4fca460-d24c-4dc3-b76b-d79ed662493d" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(263.183,153.577)" + id="g54530"> + id="id-7a032a6b-9d1b-4f4a-978d-8b31863c845a" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(267.002,153.577)" + id="g54533"> + style="stroke:none" /> + + + transform="translate(274.22,153.577)" + id="g54537"> + id="id-1f54aa36-f2cc-432b-a973-db9c76c2e59e" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" /> + transform="translate(279.368,153.577)" + id="g54540"> + style="stroke:none" /> + transform="translate(282.965,153.577)" + id="g54543"> + style="stroke:none" /> + transform="translate(287.753,153.577)" + id="g54546"> + id="id-cc6d0e66-5075-4b15-99c7-b6d95b2bc557" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + + + transform="translate(294.14,153.577)" + id="g54550"> + id="id-5d429f30-c219-480b-bb64-c6ca2a0ab0db" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(299.288,153.577)" + id="g54553"> + id="id-d9c4ad94-7bd0-4b7c-bb31-f3d1100947bd" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(84.576,165.532)" + id="g54557"> + id="id-69ab56d6-47c6-46d3-ae9a-8eda339b9639" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - - + transform="translate(89.7237,165.532)" + id="g54560"> + id="id-438c3cd1-c313-42a9-b43a-5ba205003ca5" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(94.1521,165.532)" + id="g54563"> + id="id-46d68641-517a-4dbf-b687-6148d2865ee3" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(96.8091,165.532)" + id="g54566"> + id="id-b2581644-d97e-41bc-88d8-7144e5d8c7b1" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(101.597,165.532)" + id="g54569"> + id="id-6e6fae37-3f65-42c3-9d7e-6d011c9f6183" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(105.416,165.532)" + id="g54572"> + style="stroke:none" /> + transform="translate(110.563,165.532)" + id="g54575"> + id="id-49b668ee-3c3e-432f-b8db-5fa1b92272fe" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(115.545,165.532)" + id="g54578"> + id="id-a0f368fc-305f-4fe3-9f73-42669298d89b" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(119.363,165.532)" + id="g54581"> + id="id-2a055064-bd2e-4dd5-87bd-3cde45e2fab6" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(122.961,165.532)" + id="g54584"> + id="id-cb3a1dd0-e61f-4af2-b95a-4ebce4c6bc08" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(125.341,165.532)" + id="g54587"> + id="id-ad023a79-a0ea-413f-9095-7d9f8cf8441c" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> + + + transform="translate(73.866,181.472)" + id="g54591"> + id="id-e2c57e86-d47d-42de-a261-2b155005220f" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" /> + transform="translate(84.576,181.472)" + id="g54595"> + + + + style="stroke:none" /> + transform="translate(93.7087,181.472)" + id="g54601"> + id="id-e9e808ac-d751-4ec1-8009-3bf080060427" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> - - + transform="translate(98.4967,181.472)" + id="g54604"> + id="id-e073697c-0844-4d8a-8405-9e8a58b600b8" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(100.877,181.472)" + id="g54607"> + style="stroke:none" /> + + + transform="translate(109.121,181.472)" + id="g54611"> + id="id-bdc4b625-723f-4df8-99bb-7a8c9550e531" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(114.269,181.472)" + id="g54614"> + style="stroke:none" /> + transform="translate(118.697,181.472)" + id="g54617"> + id="id-bfecf3e7-02b8-4daa-8d92-aca8df9efd9f" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(123.291,181.472)" + id="g54620"> + style="stroke:none" /> - - + transform="translate(125.671,181.472)" + id="g54623"> + id="id-f0211037-fa02-4bca-81b0-695061c15dc2" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(129.489,181.472)" + id="g54626"> + id="id-8761b400-6833-41b9-afea-37492408a1a4" + d="m 4.140625,-5.484375 c 0,-0.671875 -0.40625,-1.546875 -1.90625,-1.546875 C 1.625,-7.03125 1.09375,-6.859375 0.5625,-6.5 l 0.21875,0.625 c 0.25,-0.21875 0.734375,-0.546875 1.453125,-0.546875 0.46875,0 1.125,0.078125 1.125,0.921875 0,0.453125 -0.21875,0.640625 -0.34375,0.765625 C 1.875,-3.765625 1.875,-2.5 1.875,-2.0625 V -1.75 h 0.671875 v -0.53125 c 0,-0.6875 0.328125,-1.421875 1.015625,-2 0.203125,-0.171875 0.578125,-0.484375 0.578125,-1.203125 z M 2.625,0 V -0.828125 H 1.796875 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(138.009,181.472)" + id="g54630"> + id="id-24e1a223-ff16-415e-b872-12ce63102e57" + d="M 6.09375,0 V -6.921875 H 5.3125 v 6.21875 H 5.296875 l -0.65625,-1.375 L 2.1875,-6.921875 H 0.953125 V 0 h 0.78125 V -6.203125 H 1.75 L 2.40625,-4.84375 4.859375,0 Z m 0,0" + style="stroke:none" /> + transform="translate(145.066,181.472)" + id="g54633"> + style="stroke:none" /> + transform="translate(149.854,181.472)" + id="g54636"> + id="id-dd2a8da7-0efb-4e92-b677-63bab4d35297" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" /> + transform="translate(155.002,181.472)" + id="g54639"> + style="stroke:none" /> + transform="translate(157.382,181.472)" + id="g54642"> + id="id-807ae9d5-366c-4e4c-a49b-30e66e48b1cc" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(165.026,181.472)" + id="g54646"> + style="stroke:none" /> + transform="translate(169.895,181.472)" + id="g54650"> + style="stroke:none" /> + transform="translate(173.299,181.472)" + id="g54653"> + id="id-921e77b6-e417-45fa-a547-c65b33d5249f" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(175.679,181.472)" + id="g54656"> + id="id-3f98c0ae-dd87-4cdd-b38d-51862ebd9270" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + + + transform="translate(192.391,181.472)" + id="g54663"> + id="id-4bbc87ac-7120-4793-8bbb-20d5253b1f09" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(196.985,181.472)" + id="g54666"> + id="id-8034ff73-25d1-4029-82dc-600b07d5a4fa" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> - - + transform="translate(201.413,181.472)" + id="g54669"> + style="stroke:none" /> + transform="translate(206.561,181.472)" + id="g54672"> + id="id-e7dba114-6ac0-49ef-bf04-62270c3011d5" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(211.542,181.472)" + id="g54675"> + id="id-199a28b3-9e06-4c4c-9c3c-ecc53693ea15" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(216.69,181.472)" + id="g54678"> + id="id-6ecdaf16-6220-4d9a-a295-a9982a18c632" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> + transform="translate(221.118,181.472)" + id="g54681"> + id="id-fe7e1a4b-e1b0-41c0-ba78-4d31010c2886" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(223.498,181.472)" + id="g54684"> + id="id-dd4270b4-e27a-40bd-a34b-6018ee414278" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(231.414,181.472)" + id="g54687"> + id="id-ca95b1ad-0d1d-49d2-9a48-fcba25fd0a71" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + + + transform="translate(240.377,181.472)" + id="g54691"> + id="id-92f675d7-858c-432f-ba7c-88623e36f125" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + + + + transform="translate(248.403,181.472)" + id="g54697"> + style="stroke:none" /> + transform="translate(256.318,181.472)" + id="g54700"> + id="id-7e5a7ff7-0c5a-4771-8820-57454643ffa4" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> - - + transform="translate(261.106,181.472)" + id="g54703"> + id="id-9d7863e8-fb73-4e5b-a316-a479cfec36d1" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(264.704,181.472)" + id="g54706"> + id="id-b3ba35c6-b2e6-484d-a8cb-275b1cb10fbc" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(269.574,181.472)" + id="g54709"> + + + + + + + + + id="id-a8cdf0f8-8b07-40ec-a660-f9a63bb0d2eb" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(284.35,181.472)" + id="g54719"> + id="id-c6be49ac-9959-4ef2-b88b-47736a4e10c8" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(289.138,181.472)" + id="g54722"> + id="id-774603c1-a0ee-4c4c-ac64-ea7f5aac4d52" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(298.101,181.472)" + id="g54726"> + id="id-1191207e-46cf-4a18-b441-cf427ccfb214" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(301.699,181.472)" + id="g54729"> + style="stroke:none" /> - - - + transform="translate(84.576,193.427)" + id="g54733"> + id="id-a9e0a524-ecd7-4cf4-a595-31417d133ab1" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" /> + + + transform="translate(90.0026,193.427)" + id="g54737"> + id="id-3bfadeae-2790-4096-b7a9-76306e1200ff" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(94.705,193.427)" + id="g54741"> + id="id-b6826586-7626-499a-8ab0-94fb50d181db" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(98.1092,193.427)" + id="g54744"> + id="id-d1ff9dda-68ae-45fb-a0ef-7d6981688332" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(102.897,193.427)" + id="g54747"> + id="id-03f73185-f661-417c-9042-0de726a37335" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(108.045,193.427)" + id="g54750"> + id="id-a00a502c-02d7-4a10-b079-1b2aaf5415ad" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(110.425,193.427)" + id="g54753"> + id="id-46918f19-d4e9-487e-8744-56952f735697" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(61.136,213.353)" + id="g54757"> + id="id-65e4126c-9703-4dca-af26-a78fd2c2d289" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + + + transform="translate(73.866,213.353)" + id="g54761"> + id="id-d0a4e101-234e-4b40-86d5-9ba2f3853ac6" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(82.5833,213.353)" + id="g54764"> + id="id-052d1a7a-e4cf-4354-8a7e-9eb1fbfd7763" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> + transform="translate(87.7309,213.353)" + id="g54767"> + id="id-24d296c8-bf80-4849-8035-11bc87a70715" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + transform="translate(92.0617,213.353)" + id="g54770"> + id="id-43885d90-3383-4d23-904b-13dbfd67dc4b" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + + + transform="translate(100.527,213.353)" + id="g54774"> + id="id-bf82684d-f4ce-4faa-bf75-ff3be51fa124" + d="m 4.828125,-3.90625 -0.109375,-0.625 c -0.6875,0 -1.265625,0.1875 -1.5625,0.3125 -0.21875,-0.171875 -0.546875,-0.3125 -0.953125,-0.3125 -0.859375,0 -1.578125,0.71875 -1.578125,1.625 0,0.359375 0.125,0.71875 0.328125,0.984375 C 0.65625,-1.515625 0.65625,-1.125 0.65625,-1.078125 0.65625,-0.8125 0.75,-0.53125 0.921875,-0.3125 0.40625,-0.015625 0.28125,0.453125 0.28125,0.703125 c 0,0.75 0.984375,1.34375 2.203125,1.34375 1.21875,0 2.203125,-0.578125 2.203125,-1.34375 C 4.6875,-0.6875 3.03125,-0.6875 2.640625,-0.6875 h -0.875 c -0.125,0 -0.578125,0 -0.578125,-0.53125 0,-0.109375 0.03125,-0.265625 0.109375,-0.359375 0.203125,0.15625 0.53125,0.296875 0.90625,0.296875 0.890625,0 1.59375,-0.75 1.59375,-1.625 0,-0.484375 -0.21875,-0.859375 -0.328125,-1 l 0.046875,0.015625 C 3.734375,-3.890625 4,-3.9375 4.25,-3.9375 c 0.171875,0 0.578125,0.03125 0.578125,0.03125 z m -1.734375,1 c 0,0.765625 -0.46875,1.046875 -0.890625,1.046875 -0.375,0 -0.890625,-0.21875 -0.890625,-1.046875 0,-0.828125 0.515625,-1.0625 0.890625,-1.0625 0.421875,0 0.890625,0.28125 0.890625,1.0625 z M 4,0.71875 c 0,0.4375 -0.6875,0.765625 -1.5,0.765625 -0.8125,0 -1.515625,-0.3125 -1.515625,-0.78125 0,-0.03125 0,-0.671875 0.765625,-0.671875 H 2.65625 C 2.875,0.03125 4,0.03125 4,0.71875 Z m 0,0" + style="stroke:none" /> + transform="translate(105.508,213.353)" + id="g54777"> + id="id-b423f6fb-cb60-4cbb-8050-dbcb97d7935c" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - - - - + id="id-c755ed28-552b-4e9c-9a6c-acc307ec3b05" + style="fill:#000000;fill-opacity:1"> + - - + id="id-8516d0b5-79db-4465-92b8-ec36b6a7dcde" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + - - + id="id-c19e994c-0820-4563-af97-8736af3b2d92" + d="m 4.828125,-3.90625 -0.109375,-0.625 c -0.6875,0 -1.265625,0.1875 -1.5625,0.3125 -0.21875,-0.171875 -0.546875,-0.3125 -0.953125,-0.3125 -0.859375,0 -1.578125,0.71875 -1.578125,1.625 0,0.359375 0.125,0.71875 0.328125,0.984375 C 0.65625,-1.515625 0.65625,-1.125 0.65625,-1.078125 0.65625,-0.8125 0.75,-0.53125 0.921875,-0.3125 0.40625,-0.015625 0.28125,0.453125 0.28125,0.703125 c 0,0.75 0.984375,1.34375 2.203125,1.34375 1.21875,0 2.203125,-0.578125 2.203125,-1.34375 C 4.6875,-0.6875 3.03125,-0.6875 2.640625,-0.6875 h -0.875 c -0.125,0 -0.578125,0 -0.578125,-0.53125 0,-0.109375 0.03125,-0.265625 0.109375,-0.359375 0.203125,0.15625 0.53125,0.296875 0.90625,0.296875 0.890625,0 1.59375,-0.75 1.59375,-1.625 0,-0.484375 -0.21875,-0.859375 -0.328125,-1 l 0.046875,0.015625 C 3.734375,-3.890625 4,-3.9375 4.25,-3.9375 c 0.171875,0 0.578125,0.03125 0.578125,0.03125 z m -1.734375,1 c 0,0.765625 -0.46875,1.046875 -0.890625,1.046875 -0.375,0 -0.890625,-0.21875 -0.890625,-1.046875 0,-0.828125 0.515625,-1.0625 0.890625,-1.0625 0.421875,0 0.890625,0.28125 0.890625,1.0625 z M 4,0.71875 c 0,0.4375 -0.6875,0.765625 -1.5,0.765625 -0.8125,0 -1.515625,-0.3125 -1.515625,-0.78125 0,-0.03125 0,-0.671875 0.765625,-0.671875 H 2.65625 C 2.875,0.03125 4,0.03125 4,0.71875 Z m 0,0" + style="stroke:none" /> + + - - + id="id-fc101dff-1d91-41ec-a9ef-92bd2b234bc3" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-6cdf9c34-1400-4f95-971b-ce1f0b9cc8d6" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + + - - + id="id-2bd184e3-eae9-4227-8b5e-7b729e9518d5" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + + - - + id="id-c0128077-4fc2-4468-99a9-70c572d2758f" + d="m 4.140625,-5.484375 c 0,-0.671875 -0.40625,-1.546875 -1.90625,-1.546875 C 1.625,-7.03125 1.09375,-6.859375 0.5625,-6.5 l 0.21875,0.625 c 0.25,-0.21875 0.734375,-0.546875 1.453125,-0.546875 0.46875,0 1.125,0.078125 1.125,0.921875 0,0.453125 -0.21875,0.640625 -0.34375,0.765625 C 1.875,-3.765625 1.875,-2.5 1.875,-2.0625 V -1.75 h 0.671875 v -0.53125 c 0,-0.6875 0.328125,-1.421875 1.015625,-2 0.203125,-0.171875 0.578125,-0.484375 0.578125,-1.203125 z M 2.625,0 V -0.828125 H 1.796875 V 0 Z m 0,0" + style="stroke:none" /> + + + + - - + id="id-337d30e2-a44f-4e8b-9f91-5c43b798163c" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-90d3dee2-d960-4961-a71e-610c6b514320" + d="M 6.359375,0 3.765625,-6.921875 H 2.875 L 0.28125,0 H 1.015625 L 1.78125,-2.03125 H 4.6875 L 5.4375,0 Z M 4.46875,-2.59375 H 2 c 0.5,-1.421875 0.140625,-0.375 0.640625,-1.796875 0.203125,-0.59375 0.515625,-1.4375 0.59375,-1.8125 0.03125,0.140625 0.09375,0.390625 0.328125,1.046875 z m 0,0" + style="stroke:none" /> + + - - + id="id-50b61e67-4074-4a38-a9ab-a790ee5fd90d" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-2ede1e36-15ee-41bd-9436-e2a35d48f0d7" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + - - + id="id-537ec821-752c-430f-801e-47fb2d217fc4" + d="M 2,-6.921875 H 1.171875 l 0.078125,4.75 V -1.75 H 1.921875 V -2.171875 Z M 2,0 V -0.828125 H 1.171875 V 0 Z m 0,0" + style="stroke:none" /> + + + + - - + id="id-007ad50f-341f-4847-b3ba-e5d2367cc668" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + style="stroke:none" /> + + + + - - + id="id-eb988d9e-dc2a-497c-a542-68e7d72bf5b0" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + - - + id="id-aa6d7307-2984-4074-8145-a2ff4d88d6d7" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-1cf27fe7-68f3-4e40-bd36-be667d131840" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-dd42d8ac-eb06-4af0-89f9-8f9530d30cb9" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-d46d1692-5a22-45bf-8a4e-dce4c773a7ee" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + + - - + id="id-642c4315-6b54-4746-bf34-552127692d68" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + + - - + id="id-ec823034-2deb-4fde-99aa-8dd580ece7aa" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + + - - + id="id-cc7e9c4f-669b-4af5-abc2-f07ed2952544" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + + + + - - + id="id-4057136c-fa79-48c2-91f3-7e0e7e94d749" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-d0f58803-e584-45d6-8824-ec383da9ae93" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + + - - + id="id-ad85e7d4-ff0d-418b-b7a9-9a2580e8fd6c" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" /> + + - - + id="id-bc108731-8714-4730-b7f7-44cf22fd1203" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-18170411-0f3c-4e76-97b6-6cb5abcab40f" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + + - + id="id-b40f677e-9603-487f-9705-495cc7f46199" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + - - + transform="translate(189.122,233.278)" + id="g54866"> + id="id-103fe270-1c2b-4ed6-9399-77060cac10cc" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(194.269,233.278)" + id="g54869"> + id="id-dabb6ad5-97ba-45e1-9ad1-42e60ade1f77" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(198.863,233.278)" + id="g54872"> + id="id-8eb1ef46-5cdc-4747-8d45-0ba2a0dde002" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(203.291,233.278)" + id="g54875"> + id="id-bf383bea-709f-47e0-8490-e098296c2563" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(208.439,233.278)" + id="g54878"> + id="id-3b9efa71-1aaa-4f29-bb20-4883e2422439" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + + + + + + + transform="translate(225.706,233.278)" + id="g54888"> + id="id-718caf81-5edb-48f6-8b64-1b93b32eed06" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(228.363,233.278)" + id="g54891"> + id="id-c381d62f-89d0-4741-8409-762a64092c4a" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(230.743,233.278)" + id="g54894"> + id="id-cd8bfc69-7bc1-4b5a-a099-4fd701fb34ea" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(235.891,233.278)" + id="g54897"> + id="id-9cf25097-1791-4052-a929-0491556262eb" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(240.679,233.278)" + id="g54900"> + id="id-f01fb6d6-949a-4c58-887c-8d1e9cf45e84" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(245.55,233.278)" + id="g54903"> + id="id-74a3a831-52cf-4f9c-8326-23fa011e895f" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" /> + transform="translate(251.027,233.278)" + id="g54907"> + id="id-4b26ba26-e52b-40b4-9cd0-4900e1a3e899" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(256.175,233.278)" + id="g54910"> + id="id-a1d408a6-cf67-4add-9afc-594811728b7a" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + + + + transform="translate(265.751,233.278)" + id="g54916"> + style="stroke:none" /> + transform="translate(268.131,233.278)" + id="g54919"> + style="stroke:none" /> + transform="translate(272.559,233.278)" + id="g54922"> + id="id-2c02070d-9108-4f17-9390-99c7ab92ba19" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(277.707,233.278)" + id="g54925"> + id="id-c92a32b8-7100-451d-867a-f0177333201b" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(282.135,233.278)" + id="g54928"> + id="id-cd6eb2ac-3092-4e9d-be3c-7c2af812cbea" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(287.502,233.278)" + id="g54932"> + id="id-ce0cfaa4-95c1-4324-8b02-65dc3bc31905" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" /> + transform="translate(292.371,233.278)" + id="g54936"> + id="id-d30d55cc-9f74-4954-8558-afa6e3b217ec" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(295.775,233.278)" + id="g54939"> + id="id-4a9f944e-ffef-4af5-9663-4d157dc44882" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> - - + transform="translate(300.756,233.278)" + id="g54942"> + id="id-3e05189e-bc44-4851-b7d1-da5cb260f41c" + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + style="stroke:none" /> + + + transform="translate(84.576,245.233)" + id="g54946"> + id="id-b690bbdf-b7c4-4539-9696-fd54aaebba12" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(88.3947,245.233)" + id="g54949"> + id="id-fa02d320-cc63-4cea-ae0e-88907337bd33" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(90.7747,245.233)" + id="g54952"> + id="id-b38c92a4-72d8-4013-8eeb-9a000ba39a05" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(102.655,245.233)" + id="g54956"> + style="stroke:none" /> - - - - - - + transform="translate(107.524,245.233)" + id="g54960"> + id="id-9561f807-cf62-4dc5-a58e-b1400d628c76" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" /> + transform="translate(110.928,245.233)" + id="g54963"> + id="id-f83988c2-82d4-4ac2-85d5-3ba8fdd7c168" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(113.308,245.233)" + id="g54966"> + id="id-6d4dc7e5-a67a-4eee-b55b-67eab2330e61" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(121.223,245.233)" + id="g54969"> + id="id-d4d191db-1f9b-4283-b77a-a37250d04818" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(130.16,245.233)" + id="g54973"> + id="id-f7d768d1-839b-4ad6-9cb5-f795268c5fe3" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" /> + transform="translate(133.564,245.233)" + id="g54976"> + style="stroke:none" /> + transform="translate(137.992,245.233)" + id="g54979"> + id="id-441fd77e-bf04-4e68-a346-a9b83d5505f9" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(141.811,245.233)" + id="g54982"> + style="stroke:none" /> + transform="translate(146.24,245.233)" + id="g54985"> + style="stroke:none" /> + + + + transform="translate(157.732,245.233)" + id="g54992"> + id="id-d5606897-95ab-4999-aa66-d25b36cc8c51" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(162.063,245.233)" + id="g54995"> + id="id-fb420b58-4883-424c-92cf-f63c12e0788a" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(166.851,245.233)" + id="g54998"> + id="id-5993441e-a47a-452d-9e0c-a6e9be698d35" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(171.999,245.233)" + id="g55001"> + id="id-cc3e0998-7177-483a-8118-f3b27943fbaf" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(176.787,245.233)" + id="g55004"> + id="id-496f7cb3-748f-4934-8e35-dba61c2da831" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(181.935,245.233)" + id="g55007"> + id="id-e1e32984-9257-40b0-a068-aa0a9d0cf953" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(186.528,245.233)" + id="g55010"> + id="id-55b8a2ea-6bd7-4bdc-938f-c645f87c1b60" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> + transform="translate(190.957,245.233)" + id="g55013"> + id="id-e381c59a-e08a-481f-8335-c5b68dfe20ae" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="id-0e1f3063-d575-4bf5-9bfa-d734a2242249" + style="fill:#000000;fill-opacity:1"> + - - + id="id-f05a6a08-aae2-4df5-9822-bde5a3f6d780" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + + - - + id="id-b64fa177-7aeb-43a9-96c6-2f0233d20e1b" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-d1fcb2a9-d6e1-40be-85c8-966d4b329abc" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + - - + id="id-bb1c7840-1c16-483d-8aae-4d4dae588c26" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-b00473ef-ee46-40b1-a2f6-3087427f4f1a" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" /> + + + + - - + id="id-72498925-64b5-4f02-ac40-a4369840d6f3" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-6a7169ac-c06a-4b9c-97d5-94f439aeaecb" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + - - + id="id-c57a6b5e-3cc7-4e27-aa1e-7f735a7362c6" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-549f3fba-6d59-463c-94b6-04c6eb39ac5f" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="id-3c10f36e-8567-4353-b53c-009eb962ecfc" + d="m 3.3125,2.5 c -0.484375,-0.484375 -1.75,-1.765625 -1.75,-5 0,-0.546875 0.03125,-1.71875 0.4375,-2.890625 0.40625,-1.15625 0.984375,-1.75 1.3125,-2.09375 H 2.703125 C 2.375,-7.171875 1.71875,-6.5625 1.25,-5.34375 0.859375,-4.28125 0.78125,-3.21875 0.78125,-2.5 c 0,3.234375 1.4375,4.546875 1.921875,5 z m 0,0" + style="stroke:none" /> + + - - + id="id-21467438-4a12-43cb-842f-e56daa83713d" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + + - - + id="id-923f9462-fb0e-445b-935b-aa46c3b22188" + d="m 3.078125,-2.5 c 0,-3.21875 -1.4375,-4.53125 -1.90625,-4.984375 H 0.5625 C 1.03125,-7 2.296875,-5.71875 2.296875,-2.5 c 0,0.5625 -0.03125,1.734375 -0.4375,2.90625 C 1.453125,1.5625 0.890625,2.15625 0.5625,2.5 h 0.609375 c 0.3125,-0.3125 0.984375,-0.921875 1.4375,-2.140625 0.40625,-1.0625 0.46875,-2.125 0.46875,-2.859375 z m 0,0" + style="stroke:none" /> + + + + - - + id="id-fdb59f03-d588-420a-a0fc-6771129da8e7" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" /> + + + + - + id="id-aac20f3a-5886-40b1-9daf-9f340c8b25a9" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" /> + - - + transform="translate(274.793,245.233)" + id="g55063"> + id="id-68f2ec43-a65b-4460-9d8b-d7bd867cf6a5" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(278.612,245.233)" + id="g55066"> + id="id-bcb6b9e0-1ad4-4f18-8e98-20d0ec0d6b13" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(283.04,245.233)" + id="g55069"> + id="id-78aaca1e-b9ef-4596-8b52-166c3a44804f" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + + + transform="translate(290.824,245.233)" + id="g55073"> + id="id-6d6cc85b-3e11-4f7b-8bf7-f33cd77846f3" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(294.421,245.233)" + id="g55076"> + id="id-d86a82ec-b4e4-42c8-9f9a-0f41e6f2e408" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(299.209,245.233)" + id="g55079"> + id="id-b87d8398-a7fb-4247-b161-3572cbb45f14" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + + + transform="translate(84.576,257.188)" + id="g55083"> + + + + + + + + + id="id-a4787819-9ac2-4950-bd54-c028315db084" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(99.4123,257.188)" + id="g55093"> + id="id-54784ef3-9a82-4836-8502-0a362fad3f2b" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(104.56,257.188)" + id="g55096"> + id="id-61de76f6-eed7-48ab-a19d-4b37ca2022ad" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(109.708,257.188)" + id="g55099"> + id="id-3533cf58-f972-46ae-82e4-32960c00864d" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(112.088,257.188)" + id="g55102"> + id="id-b6680a42-730d-44d8-ac52-2e9a19c37fd5" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(119.003,257.188)" + id="g55106"> + id="id-cd592d95-ff45-440d-b347-4708f6ccc662" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + + transform="translate(127.302,257.188)" + id="g55110"> + id="id-698871ca-aeee-4150-97e9-c95fb33a4c71" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(130.706,257.188)" + id="g55113"> + style="stroke:none" /> + transform="translate(135.494,257.188)" + id="g55116"> + id="id-a2ff9658-b03a-4692-af16-d0830a0e0962" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(140.642,257.188)" + id="g55119"> + id="id-5a4cbebf-c156-43d5-ac75-f9725998ac1e" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(145.623,257.188)" + id="g55122"> + id="id-8d11e54d-e8d8-48c4-8b50-c23214f83936" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + transform="translate(149.441,257.188)" + id="g55125"> + style="stroke:none" /> - - - + transform="translate(156.367,257.188)" + id="g55129"> + id="id-edba5ed0-718f-48d5-8a02-bdeb2feaf672" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(164.015,257.188)" + id="g55133"> + id="id-b8fb08c5-f202-4983-aa8c-5aaa7735d0e1" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + transform="translate(168.996,257.188)" + id="g55136"> - - + id="id-f4f3f942-d8b2-4785-864e-f60df6236aa0" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" /> + + - - - - - + style="stroke:none" /> + + - - + id="id-abd6547b-cb1a-4d7f-9d5f-5e9e1aaec45e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + + - - + id="id-a4e48b55-dda2-4af3-b5bb-50f7c83ecbd0" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + + - - + id="id-28356791-3781-491b-8907-eeea4b5c795d" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + - - + id="id-6479bb84-41c9-4079-9eaa-71aaf1873fa0" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + + - - + style="stroke:none" /> + + - - - - - + id="id-17e30654-e1a7-4687-818f-a0131f957cdb" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + transform="translate(205.334,257.188)" + id="g55160"> + id="id-eb8966aa-0261-4171-8cb4-1d01219b8f26" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(207.714,257.188)" + id="g55163"> + id="id-01f92b46-71e1-4e38-9a57-a23ac3beb209" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(61.136,277.113)" + id="g55167"> + id="id-8ad30945-7ef4-4969-a74e-90f6e4249c22" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" /> + transform="translate(73.866,277.113)" + id="g55171"> + id="id-2a3af2a9-8d0e-4b79-bdb6-e9a59f9984c5" + d="M 4.96875,-1.890625 C 4.96875,-2.53125 4.671875,-3.015625 4.453125,-3.25 3.984375,-3.75 3.65625,-3.84375 2.734375,-4.0625 2.15625,-4.203125 2,-4.25 1.6875,-4.5 1.625,-4.5625 1.34375,-4.859375 1.34375,-5.296875 c 0,-0.578125 0.546875,-1.1875 1.453125,-1.1875 0.84375,0 1.3125,0.328125 1.6875,0.640625 l 0.15625,-0.796875 c -0.546875,-0.328125 -1.109375,-0.5 -1.828125,-0.5 -1.390625,0 -2.25,0.984375 -2.25,1.96875 0,0.421875 0.140625,0.84375 0.53125,1.265625 0.421875,0.453125 0.859375,0.5625 1.453125,0.703125 0.84375,0.21875 0.9375,0.25 1.21875,0.484375 0.203125,0.171875 0.421875,0.5 0.421875,0.9375 0,0.65625 -0.546875,1.3125 -1.453125,1.3125 -0.40625,0 -1.3125,-0.09375 -2.140625,-0.8125 l -0.15625,0.8125 c 0.875,0.546875 1.671875,0.6875 2.296875,0.6875 1.328125,0 2.234375,-1 2.234375,-2.109375 z m 0,0" + style="stroke:none" /> - - - + transform="translate(82.7188,277.113)" + id="g55175"> + id="id-dbc57f8c-4c53-4828-a0e3-ccec1ad3eaab" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(87.979,277.113)" + id="g55179"> + id="id-b30f1966-9025-4784-9e98-92ab2c76afb6" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(93.1267,277.113)" + id="g55182"> + style="stroke:none" /> + transform="translate(97.5551,277.113)" + id="g55185"> + id="id-f2deb6cd-2c2c-4b22-a67c-26917ea057e0" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(102.149,277.113)" + id="g55188"> + id="id-cff059d0-0fe7-4278-ae0d-eef0d1a639a0" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(106.48,277.113)" + id="g55191"> + id="id-d6f76271-e4e9-4968-a7e2-a5f7b74ee7b1" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(111.627,277.113)" + id="g55194"> + id="id-082fcbce-0b8e-47d1-bb3a-c57ddfdb0cee" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(116.415,277.113)" + id="g55197"> + id="id-e1b36b83-24d4-42d1-a988-7c1c7d652bc1" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(121.563,277.113)" + id="g55200"> + style="stroke:none" /> + + + + transform="translate(135.176,277.113)" + id="g55207"> + + + + + + + id="id-4314abce-15c7-41f2-923d-95e2e5fa1361" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(149.733,277.113)" + id="g55216"> + id="id-654e0d9a-4f82-4dac-b580-20b156741415" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(153.331,277.113)" + id="g55219"> + style="stroke:none" /> + transform="translate(158.119,277.113)" + id="g55222"> + id="id-c8fae146-a605-45d3-8aca-861dc3e4234f" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(160.499,277.113)" + id="g55225"> + style="stroke:none" /> + transform="translate(164.927,277.113)" + id="g55228"> + id="id-cb823763-ed3a-4bb6-9de2-ddd805107269" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + + + + + + + + + discordový kanál, + + + + + + + + + + + id="g12333"> + id="id-c2a62dc8-e74a-48df-92f5-816de75a10b3"> + id="id-db8a5971-e581-4d1b-97b8-4951ff8d9594"> + id="id-7095e557-fced-4f7f-9c2d-d01d97595c8f" + overflow="visible"> + style="stroke:none" /> + id="id-74e2163d-0f1a-4fb2-8ac5-63facff835da" + overflow="visible"> + id="id-8a153723-206c-4dd8-87d9-c38b7406fb7e" + d="m 6.5625,-2.390625 c 0,-1.34375 -1,-2.34375 -2.1875,-2.625 l -1.140625,-0.25 C 2.96875,-5.328125 2.21875,-5.609375 2.21875,-6.28125 c 0,-1.015625 1.015625,-1.046875 1.421875,-1.046875 0.671875,0 1.265625,0.15625 1.859375,0.734375 0.1875,0.171875 0.203125,0.1875 0.25,0.1875 0.078125,0 0.125,-0.03125 0.171875,-0.21875 L 6.09375,-7.65625 C 6.125,-7.75 6.125,-7.78125 6.125,-7.8125 6.125,-7.90625 6.109375,-7.921875 5.8125,-8.078125 4.953125,-8.5 4.25,-8.5625 3.640625,-8.5625 c -1.0625,0 -2.90625,0.25 -2.90625,2.484375 0,0.859375 0.4375,1.40625 0.671875,1.640625 0.609375,0.625 1.15625,0.75 2.09375,0.953125 0.671875,0.15625 0.9375,0.21875 1.203125,0.453125 0.109375,0.125 0.359375,0.375 0.359375,0.828125 0,1.125 -1.015625,1.15625 -1.421875,1.15625 -1,0 -1.875,-0.40625 -2.46875,-0.9375 C 1.03125,-2.125 1,-2.125 0.953125,-2.125 c -0.0625,0 -0.125,0.03125 -0.171875,0.21875 L 0.609375,-0.875 c -0.03125,0.09375 -0.03125,0.125 -0.03125,0.15625 0,0.25 1.25,0.6875 1.3125,0.703125 0.796875,0.25 1.4375,0.28125 1.75,0.28125 1.796875,0 2.921875,-0.796875 2.921875,-2.65625 z m 0,0" + style="stroke:none" /> + id="id-a8abc416-c6f2-4dd7-a3c9-5246c9253ce0" + overflow="visible"> + id="id-7138b5f9-31ce-4349-b4ca-c53f895f3527" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + id="id-b6f9bf21-0235-40fe-a65d-1e4e01c1cc78" + overflow="visible"> + id="id-937e3cc7-ef73-4bbe-ab6e-995509eb7bd0" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" /> + id="id-a717effe-5244-4ac6-93b6-ec92a19af6e0" + overflow="visible"> + id="id-4e684b17-e55d-4f66-a648-6b703a47a2c5" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-9fe8f3ff-4246-4072-a08e-573e0366e811" + overflow="visible"> + id="id-cf70e099-654a-442c-b24c-97f9ece86777" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m -0.28125,-6.421875 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.53125,-7.09375 1.359375,-8.3125 c -0.015625,0 -0.0625,-0.015625 -0.0625,-0.015625 h -0.5625 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.75,-6.4375 c 0.015625,0.03125 0.0625,0.046875 0.109375,0.046875 h 1.3125 c 0.0625,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + id="id-426b91d1-ece4-4254-8701-d2805a4a1051" + overflow="visible"> + + + + style="stroke:none" /> + id="id-e9c03452-8cf8-44c0-8693-37bf4088c037" + overflow="visible"> + id="id-3d2cc21c-0db7-4a35-b330-98df8e40f974" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + id="id-34abb7f9-45b0-40fa-8388-0d773bb3e86e" + overflow="visible"> + id="id-a352ba93-db62-49a8-9b8e-78ab0f197073" + d="" + style="stroke:none" /> + id="id-c5f2b7b2-f39f-43e0-96e3-eb8b08c1a560" + overflow="visible"> + id="id-c0cd74bb-53d0-4270-ad05-0f7dc31ab6cd" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + id="id-e35d4a3d-fcdb-436d-890d-cbd9eefebad7" + overflow="visible"> + id="id-06c2907a-46a6-46a6-afe2-220ddf7edee8" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> + id="id-e7ee3b94-0fd9-4391-aeda-b516ff4a1e2e" + overflow="visible"> + id="id-f42adc5e-b19f-444c-b3f8-64208aeeeb97" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + id="id-1c8d67d2-ed4c-4a75-8ce1-6da79ddfbbd0" + overflow="visible"> + id="id-4127928a-17ca-4f7e-8d05-0048df0abf5d" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + id="id-345258b2-8ee6-45e4-a9f1-a2dc9430f6f0" + overflow="visible"> + id="id-f87a6775-b38a-4680-b84c-9361e20ab90b" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + id="id-ff40f6db-b8c6-43fe-8947-6c8a82a15df9" + overflow="visible"> + id="id-f3e55dde-4692-4c54-a7a4-52a3398a555e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + id="id-c7cb5af7-0af4-4944-b75c-c3541fcd1dfb" + overflow="visible"> + id="id-0f44d70b-5b11-4de9-8dc5-6755aa1b096c" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + id="id-608969c1-63cb-499a-8598-06ec8fe8d44b" + overflow="visible"> + id="id-d93bb9ca-988e-40ff-b455-c40af1146826" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" /> + id="id-3cd228c9-3e57-4760-8f58-133a4544e228" + overflow="visible"> + id="id-637c2533-3024-48fe-9328-e4d5352967f8" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + id="id-09b5b019-d630-498e-a220-8f6d042cde80" + overflow="visible"> + + + + + + + id="id-153fad7b-25ad-4143-bc0b-3770976e86b7" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + id="id-a9eb223e-42aa-4158-9b51-9521596c7f37" + overflow="visible"> + id="id-279080ef-0e84-4436-83ed-8018b5fbdb52" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" /> + id="id-5507cb9c-69d3-4ea5-bf30-208c992a3300" + overflow="visible"> + id="id-42ee6521-8ca4-4584-bfd1-0e14a3e37637" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + id="id-ad16ef85-c4c7-475d-8243-cbd749bca559" + overflow="visible"> + id="id-545d537c-4b8f-4925-be1e-c3c725165e90" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" /> + id="id-4dbdb5ca-2a02-490f-9bee-2f73c0c4c61e" + overflow="visible"> + id="id-88b79691-1109-4bd2-b81f-63fae230e7ef" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + id="id-f8f893b4-c4f0-4ed6-b00f-09afff6e9ce1" + overflow="visible"> + id="id-512cedb6-d9ff-42d1-bc4e-afa2e80d7edd" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + id="id-c67ed901-f824-4d91-ac0c-22aeeb3d64b4" + overflow="visible"> + id="id-d72aa9b7-008d-4cf5-98ec-bcfabf629b64" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(-162.378,-29.7465)" + id="id-eb2d5491-397a-4152-9d95-a5f5e43b2002"> - - - - - - - - - - - - - - - - - - - - - + transform="translate(177.323,38.309)" + id="g12186"> + id="id-d52bb9d7-6b09-44b2-9e41-3cd41a3cdfb6" + d="m 6.5625,-2.390625 c 0,-1.34375 -1,-2.34375 -2.1875,-2.625 l -1.140625,-0.25 C 2.96875,-5.328125 2.21875,-5.609375 2.21875,-6.28125 c 0,-1.015625 1.015625,-1.046875 1.421875,-1.046875 0.671875,0 1.265625,0.15625 1.859375,0.734375 0.1875,0.171875 0.203125,0.1875 0.25,0.1875 0.078125,0 0.125,-0.03125 0.171875,-0.21875 L 6.09375,-7.65625 C 6.125,-7.75 6.125,-7.78125 6.125,-7.8125 6.125,-7.90625 6.109375,-7.921875 5.8125,-8.078125 4.953125,-8.5 4.25,-8.5625 3.640625,-8.5625 c -1.0625,0 -2.90625,0.25 -2.90625,2.484375 0,0.859375 0.4375,1.40625 0.671875,1.640625 0.609375,0.625 1.15625,0.75 2.09375,0.953125 0.671875,0.15625 0.9375,0.21875 1.203125,0.453125 0.109375,0.125 0.359375,0.375 0.359375,0.828125 0,1.125 -1.015625,1.15625 -1.421875,1.15625 -1,0 -1.875,-0.40625 -2.46875,-0.9375 C 1.03125,-2.125 1,-2.125 0.953125,-2.125 c -0.0625,0 -0.125,0.03125 -0.171875,0.21875 L 0.609375,-0.875 c -0.03125,0.09375 -0.03125,0.125 -0.03125,0.15625 0,0.25 1.25,0.6875 1.3125,0.703125 0.796875,0.25 1.4375,0.28125 1.75,0.28125 1.796875,0 2.921875,-0.796875 2.921875,-2.65625 z m 0,0" + style="stroke:none" /> + transform="translate(184.629,38.309)" + id="g12190"> + id="id-aeb76a59-94fb-4ebc-827f-5c66fdade02c" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> - - + transform="translate(190.739,38.309)" + id="g12194"> - - - - - + style="stroke:none" /> + transform="translate(197.447,38.309)" + id="g12197"> - - - - - - - - - - - - - - - - - - - - - - - - - - + style="stroke:none" /> + transform="translate(200.502,38.309)" + id="g12200"> + id="id-ef9bb575-ca57-4c91-b6e9-29626f11ca3d" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m -0.28125,-6.421875 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.53125,-7.09375 1.359375,-8.3125 c -0.015625,0 -0.0625,-0.015625 -0.0625,-0.015625 h -0.5625 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.75,-6.4375 c 0.015625,0.03125 0.0625,0.046875 0.109375,0.046875 h 1.3125 c 0.0625,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + transform="translate(209.931,38.309)" + id="g12204"> + id="id-dbe8b409-2ddb-445e-9ad6-350dfe75f3e6" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> - + + id="id-42df5ddf-639f-4f3a-a56c-10248865af99" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + transform="translate(220.491,38.309)" + id="g12210"> + id="id-58fb2762-5949-4863-816f-2ab9c529836d" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m -0.28125,-6.421875 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.53125,-7.09375 1.359375,-8.3125 c -0.015625,0 -0.0625,-0.015625 -0.0625,-0.015625 h -0.5625 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.75,-6.4375 c 0.015625,0.03125 0.0625,0.046875 0.109375,0.046875 h 1.3125 c 0.0625,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + transform="translate(225.532,38.309)" + id="g12213"> + id="id-7470ee55-d3b3-450f-bc3b-a19d5eac1a6e" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + transform="translate(231.643,38.309)" + id="g12216"> + id="id-39c35119-1477-423b-baa4-9cadc764b490" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(238.351,38.309)" + id="g12219"> + id="id-75b65d58-afb3-4bee-af62-7d74d486ec29" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + + id="g24066"> + id="id-adbcc954-bdaf-4423-8d6d-ba549f2e84e1"> + id="id-977d8e91-056b-4f44-8f37-0d927751c426"> + id="id-4e1bc5e6-4add-4730-ad65-8cdc623edcec" + overflow="visible"> + style="stroke:none" /> + id="id-ed7bc87e-6615-4f6c-bb0f-5a0e04e86c44" + overflow="visible"> + id="id-64884a70-feec-4d2b-a982-5dc85d1b7b8f" + d="m 6.5625,-2.390625 c 0,-1.34375 -1,-2.34375 -2.1875,-2.625 l -1.140625,-0.25 C 2.96875,-5.328125 2.21875,-5.609375 2.21875,-6.28125 c 0,-1.015625 1.015625,-1.046875 1.421875,-1.046875 0.671875,0 1.265625,0.15625 1.859375,0.734375 0.1875,0.171875 0.203125,0.1875 0.25,0.1875 0.078125,0 0.125,-0.03125 0.171875,-0.21875 L 6.09375,-7.65625 C 6.125,-7.75 6.125,-7.78125 6.125,-7.8125 6.125,-7.90625 6.109375,-7.921875 5.8125,-8.078125 4.953125,-8.5 4.25,-8.5625 3.640625,-8.5625 c -1.0625,0 -2.90625,0.25 -2.90625,2.484375 0,0.859375 0.4375,1.40625 0.671875,1.640625 0.609375,0.625 1.15625,0.75 2.09375,0.953125 0.671875,0.15625 0.9375,0.21875 1.203125,0.453125 0.109375,0.125 0.359375,0.375 0.359375,0.828125 0,1.125 -1.015625,1.15625 -1.421875,1.15625 -1,0 -1.875,-0.40625 -2.46875,-0.9375 C 1.03125,-2.125 1,-2.125 0.953125,-2.125 c -0.0625,0 -0.125,0.03125 -0.171875,0.21875 L 0.609375,-0.875 c -0.03125,0.09375 -0.03125,0.125 -0.03125,0.15625 0,0.25 1.25,0.6875 1.3125,0.703125 0.796875,0.25 1.4375,0.28125 1.75,0.28125 1.796875,0 2.921875,-0.796875 2.921875,-2.65625 z m 0,0" + style="stroke:none" /> + id="id-2bbc649c-ca6a-40cf-9c76-724b75d076cf" + overflow="visible"> + id="id-a1c70f37-300c-4863-be9b-7e21fcc2a7c4" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" /> + id="id-db06980d-47ea-46a8-9ce4-74dd07648404" + overflow="visible"> + id="id-461d9f8f-94b3-423d-be0c-93509edeca43" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-5c15a072-3428-423c-a3d2-6c357700bd7f" + overflow="visible"> + id="id-e7914aa8-a470-4edc-a591-b126b6b4caa8" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m 0,0" + style="stroke:none" /> + id="id-31afcaa3-969c-4874-b0e4-a0e082ac2a2f" + overflow="visible"> + id="id-eb15e67a-9d72-4ffb-abf0-a0b3060b04cc" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" /> + id="id-f86eb7ee-12c0-45d1-94ce-6e4e1a4b4cdd" + overflow="visible"> + id="id-2372ad9b-1ad3-4ef3-92a8-7dae328ed2b9" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + id="id-ba95223d-91ad-4bb4-a9f7-e73ece693876" + overflow="visible"> + + + + style="stroke:none" /> + id="id-65163f88-bf0c-4956-8c85-edd69ede557c" + overflow="visible"> + id="id-9ab5adf9-2ad4-4fa5-a355-f7efc8742361" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z M 5,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 H 4.3125 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.078125,-7.09375 1.90625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.28125,-6.4375 c 0.03125,0.03125 0.0625,0.046875 0.109375,0.046875 H 3.71875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + id="id-b692a16c-a3c0-4399-b6a4-67efa54245f6" + overflow="visible"> + id="id-e1693c6b-6413-4645-a1b5-0bf2a1388c4a" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-ee5ead65-60de-4f99-83d3-80226662a9f7" + overflow="visible"> + id="id-1669e07d-fcef-4787-b41d-c1ff4c6fca80" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + id="id-186fcc19-52f0-45d0-9ee6-494f323487e7" + overflow="visible"> + id="id-5d52f681-f93e-4b61-bbd8-5bbb10af0afb" + d="" + style="stroke:none" /> + id="id-57c66728-4576-4678-ab43-59d7bdfbe3fd" + overflow="visible"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + id="id-539ecd6e-3699-4fbc-8cf1-9e1c9e15903e" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" /> + + transform="translate(208.023,38.309)" + id="g24008"> + id="id-42d6eaaf-f7bf-4b72-8247-9cebf096898b" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + transform="translate(212.473,38.309)" + id="g24011"> + id="id-d4ad9ab0-0c75-490c-ad80-203685dee3b0" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + transform="translate(218.583,38.309)" + id="g24014"> + id="id-c1c950f6-5c4d-47c0-a45b-aec354e05849" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + style="stroke:none" /> + transform="translate(225.291,38.309)" + id="g24017"> + id="id-2cebecc4-9ebc-4b6d-8ef4-bb32240a5e4f" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z M 5,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 H 4.3125 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.078125,-7.09375 1.90625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.28125,-6.4375 c 0.03125,0.03125 0.0625,0.046875 0.109375,0.046875 H 3.71875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + transform="translate(231.401,38.309)" + id="g24020"> + id="id-d3db807f-5a5a-4371-a148-3f22db7c0710" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> - - + transform="translate(238.109,38.309)" + id="g24023"> + id="id-ca0b075a-0d0c-4901-baca-147faa1deba3" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + transform="translate(181.177,50.573)" + id="g24027"> + id="id-dffe0b59-b11c-4d7f-bf97-df7244a13fbc" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(186.325,50.573)" + id="g24030"> + id="id-00fa832f-4207-401a-bd62-2e5e3d772dce" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(190.918,50.573)" + id="g24033"> + id="id-8739f6d2-9787-42fc-91af-4ea99fa5f8ef" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(195.706,50.573)" + id="g24036"> + id="id-d5e948a9-61ee-4fc9-8bac-7906f82bc8ee" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + + + + + + + + + + transform="translate(215.684,50.573)" + id="g24049"> + id="id-7bb78a31-5663-4038-8f8d-e5e222227da8" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(219.089,50.573)" + id="g24052"> + id="id-6c796ee2-53ea-4e39-9c07-e7bf6a14f9c7" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + + transform="translate(224.349,50.573)" + id="g24056"> + id="id-be9b2083-3d38-4217-82c0-99be80b284b5" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + transform="translate(228.777,50.573)" + id="g24059"> + id="id-cb2971b9-de3b-47f2-920b-2a3365bf34b7" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + + + - + ns10:texconverter="pdflatex" + ns10:pdfconverter="inkscape" + ns10:text="\\nadpis{\\textbf{Dort}}\n\\vspace{-2 mm}\n\\podnadpis{za nejlep\u0161\xed \u010dl\xe1nek}" + ns10:preamble="/home/katerina/.config/inkscape/extensions/textext/default_packages.tex" + ns10:scale="1.0662968392813867" + ns10:alignment="middle center" + ns10:inkscapeversion="1.0" + ns10:jacobian_sqrt="0.376166" + id="g29871"> + id="id-290ef964-ff65-4b10-ae85-b482a33a4a01"> + id="id-8f3afe4e-446d-4daa-bdce-08c7be576cd6"> + id="id-4c8a2e50-9422-4968-98f4-4b1fa25c0b80" + overflow="visible"> + style="stroke:none" /> + id="id-5ea68760-8dbd-4394-bd04-40b753822565" + overflow="visible"> + id="id-2ec398c4-c516-4b84-8279-2a7186e37cfd" + d="m 8.75,-4.09375 c 0,-0.9375 -0.15625,-2.09375 -0.828125,-2.953125 -0.890625,-1.109375 -2.328125,-1.25 -3.109375,-1.25 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 4.8125 C 7.734375,0 8.75,-1.75 8.75,-4.09375 Z m -1.71875,0 c 0,1.359375 -0.140625,3.0625 -2.6875,3.0625 H 2.8125 v -6.234375 h 1.53125 c 2.578125,0 2.6875,1.84375 2.6875,3.171875 z m 0,0" + style="stroke:none" /> + id="id-4655d36e-87d7-43b6-ab20-84feff226705" + overflow="visible"> - - - - - - - - - + style="stroke:none" /> - - - - - - + id="id-e68e4441-bc15-4157-82e3-45a0c9fafa8a" + overflow="visible"> + id="id-b715bc5d-b1b7-4c5b-af89-f49bab4f8b9b" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z m 0,0" + style="stroke:none" /> + id="id-3cd8305a-7adf-425f-b7f3-526a892a9d47" + overflow="visible"> + id="id-c27ae1c9-f255-49ce-8c88-1c7fd5da1786" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" /> + id="id-9e8edbc4-c23b-4226-8409-194ec8283f22" + overflow="visible"> + style="stroke:none" /> + id="id-2248c123-da1a-4764-a616-8e1cc491b11b" + overflow="visible"> + id="id-4677a7b8-5c37-448f-982e-b43b5af1a020" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + id="id-c68d1a71-75e9-48b6-9326-c8d292ff22aa" + overflow="visible"> + style="stroke:none" /> + id="id-df1cd212-5d4c-455e-bac5-741cd867c8cd" + overflow="visible"> + id="id-6f00588a-550c-4ac5-a60d-bd30079d7574" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + id="id-db88de62-0114-4230-b4e8-1f28f8502b31" + overflow="visible"> + id="id-74cf17cd-d016-428e-8662-2fd0fcaf51d9" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + id="id-d850d011-9ada-493b-aae2-f4429bdda07d" + overflow="visible"> + id="id-469b8d84-e747-4353-b139-89f9f46cc152" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + id="id-1ab88046-4f35-4526-9c96-75932c36b305" + overflow="visible"> + id="id-d52885bb-437c-4bd7-a04d-febc815e018e" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + id="id-6bcb1224-04be-4ba7-af3f-c7a1f506914a" + overflow="visible"> + id="id-61b7f47c-4172-455d-9a02-8c734571942d" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" /> + id="id-fb6c610c-6264-410b-b810-2036ce8bdade" + overflow="visible"> + id="id-68421051-863d-4c4b-9e52-dae0bfccbd34" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + id="id-7e7f05c6-7852-487b-8ee7-23fa294f341d" + overflow="visible"> + id="id-f1e7b833-54cb-4d56-a6be-fcba2efb9124" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + id="id-68503e11-2b81-44f8-bfdf-f60b790ed165" + overflow="visible"> + id="id-85df5e37-296d-41f7-b36d-8d19978894f7" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + id="id-7c431624-0a44-41f3-9e0d-b3ce2da480a9" + overflow="visible"> + id="id-d6bbb5c9-48c8-4d9a-86dd-36376630d7d7" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + id="id-cd1f673b-1916-4ac8-8fa4-5ba853a701d3" + overflow="visible"> + id="id-c3331b6d-ff7e-4cee-8469-38f013dfee2d" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + style="stroke:none" /> + + + + - + id="id-37297b7e-c989-4e9f-a651-cf4f1131dd3e" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" /> + + + + + + + + + + + + + + + + + + + + + + + id="id-8d5958ce-9868-46db-a0e5-2754cc80d50b" + overflow="visible"> + id="id-5fc71d8d-c5da-445e-a138-0773b34346c5" + d="" + style="stroke:none" /> + id="id-77368d72-917f-470e-a0c0-5e8826c40bf1" + overflow="visible"> + id="id-8f80b2eb-7133-4833-a54c-b777fb014dd5" + d="m 7.65625,-5.71875 c 0,-1.796875 -1.171875,-2.578125 -3,-2.578125 h -3 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.265625 C 2.71875,0 2.84375,-0.15625 2.84375,-0.578125 v -2.625 h 1.8125 c 1.875,0 3,-0.796875 3,-2.515625 z m -1.65625,0 c 0,0.8125 -0.125,1.578125 -1.734375,1.578125 H 2.8125 v -3.125 H 4.28125 C 5.84375,-7.265625 6,-6.546875 6,-5.71875 Z m 0,0" + style="stroke:none" /> + id="id-b44b75cc-87e8-479b-b87e-915c0cd665bb" + overflow="visible"> + id="id-8133114e-a8bf-463a-bf05-c8baf1bdc9b0" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z m 0,0" + style="stroke:none" /> + id="id-25f0a1f0-f63b-448f-879b-5f358cc19310" + overflow="visible"> + id="id-845b649e-bc62-412b-b7ea-0aebf9170992" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" /> + id="id-648bf190-5277-416b-a7cd-2251c6bf1eea" + overflow="visible"> + id="id-aeea3e90-3e9e-4b84-b9ad-31291868a67f" + d="m 9.640625,-0.578125 v -3.3125 c 0,-1.21875 -0.53125,-1.71875 -1.75,-1.71875 -0.84375,0 -1.5,0.390625 -1.9375,1.1875 C 5.765625,-5.5625 4.75,-5.609375 4.25,-5.609375 c -0.234375,0 -0.734375,0 -1.28125,0.390625 C 2.609375,-4.9375 2.359375,-4.546875 2.28125,-4.375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.703125,0.25 0.703125,0.890625 v 3.28125 C 4.359375,-0.140625 4.5,0 4.9375,0 h 0.484375 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.71875,0.25 0.71875,0.890625 v 3.28125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 9.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-29713f03-b424-478f-bca5-4e2b9360ed1e" + overflow="visible"> + id="id-b3c076d0-1eda-47d6-96d8-10b84a71b9fd" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-43c54cab-de98-4aaa-be65-33c3dabe3157" + overflow="visible"> + id="id-08069560-44ef-4327-8803-0286d7e34795" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-9b8a26f1-3288-495a-b4a5-ca72ccb6866c" + overflow="visible"> + id="id-3518ad42-ce18-49bc-91b4-381097002487" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-9296bd7b-dd69-4d1c-9d38-7c541addbc82" + overflow="visible"> + id="id-3f173276-53e7-4bbd-8b28-0faedbcb900d" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" /> + id="id-abbf1c9e-b44d-4ab7-a036-1e09cc0c9006" + overflow="visible"> + id="id-7e347ff2-20a2-4c1a-aacd-7e6aa79f7d43" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + id="id-16d85394-236d-42f7-8028-5536395d783d" + overflow="visible"> + id="id-f521882c-fe45-48c5-9ae8-98290a6792a3" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" /> + id="id-8c42836f-9c87-4071-830c-8dd4c3f5a487" + overflow="visible"> + id="id-8e57cab5-9297-4e40-ad69-2b740322c755" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + id="id-68b600c3-4420-40e8-b30a-64b9b6a6dabe" + overflow="visible"> + id="id-219884db-b0a6-4360-b0fa-fba37fb4d7c1" + d="m 2.671875,0.375 v -5.28125 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.65625 c -0.453125,0 -0.5625,0.15625 -0.5625,0.5625 v 5.578125 c 0,0.296875 0,0.78125 -0.71875,0.78125 -0.21875,0 -0.5,-0.046875 -0.75,-0.21875 C -0.40625,1.21875 -0.453125,1.1875 -0.5,1.1875 c -0.09375,0 -0.109375,0 -0.21875,0.3125 -0.046875,0.125 -0.125,0.359375 -0.125,0.390625 0,0.21875 0.984375,0.5625 1.734375,0.5625 1.328125,0 1.78125,-0.890625 1.78125,-2.078125 z m 0,-7.625 v -0.21875 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 H 1.5 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.5625,-0.21875 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + id="id-0f1f8935-1bf2-46a1-8808-fc55e179b4e5" + overflow="visible"> + id="id-e523d122-6577-4683-aec5-80b2361db48c" + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0,0" + style="stroke:none" /> + id="id-03e5b19c-410e-43b7-b4ad-584cbafefe55" + overflow="visible"> + id="id-95224bfd-55c1-43b9-b376-c34c7a8605fd" + d="m 5.46875,-0.59375 c 0,-0.140625 -0.046875,-0.6875 -0.078125,-0.84375 0,-0.03125 -0.03125,-0.15625 -0.140625,-0.15625 -0.046875,0 -0.078125,0 -0.1875,0.125 -0.203125,0.171875 -0.765625,0.671875 -1.75,0.671875 -1.25,0 -1.25,-1.21875 -1.25,-1.96875 0,-0.96875 0.0625,-1.984375 1.28125,-1.984375 0.78125,0 1.109375,0.203125 1.53125,0.546875 0.140625,0.140625 0.171875,0.140625 0.21875,0.140625 0.125,0 0.140625,-0.109375 0.15625,-0.15625 0.015625,-0.09375 0.140625,-0.765625 0.140625,-0.828125 0,-0.109375 -0.078125,-0.15625 -0.28125,-0.25 -0.578125,-0.265625 -0.9375,-0.375 -1.78125,-0.375 -1.78125,0 -2.890625,0.828125 -2.890625,2.921875 0,1.984375 1.03125,2.875 2.84375,2.875 0.3125,0 1.03125,0 1.828125,-0.40625 0.34375,-0.1875 0.359375,-0.203125 0.359375,-0.3125 z m -0.3125,-7.515625 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.234375,-7.09375 2.0625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.4375,-6.4375 C 2.46875,-6.40625 2.5,-6.390625 2.546875,-6.390625 H 3.875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + id="id-0c5a831b-3d61-4ada-8659-5f147fc7d809" + overflow="visible"> + id="id-3692cc6c-3ac7-4220-9fa7-aa32e02489b2" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + id="id-b5d9a99b-c262-4ce4-90de-2539406a1dc2" + overflow="visible"> + id="id-ed67f3bf-b0b9-49f6-9029-7c6ec50c871a" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" /> + id="id-4a5dc3a6-1533-4305-bb0e-480a9668f025" + overflow="visible"> + id="id-407742b6-1ce1-46af-b0f1-0965c1305e3b" + d="" + style="stroke:none" /> + id="id-2349c5e8-545d-422f-842a-6f12da86e689" + overflow="visible"> + id="id-df08218f-44be-40de-85c3-022fac40c8dc" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + id="id-44a4b189-ee4a-4c32-a301-b2eb70e09457" + overflow="visible"> + id="id-7bba17ca-ed68-4cbf-b315-b449ee62453d" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + id="id-cdc27f2f-6f54-4a41-b664-de3894fb5d9e" + overflow="visible"> + id="id-9464949c-867b-4131-ae1d-a061dc32ce1b" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" /> + id="id-a93aae19-8c9b-4a4b-b340-f23eac2aa930" + overflow="visible"> + id="id-9b567122-d39d-40ed-83ba-b3935fe2981a" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + id="id-815c7ce8-6a45-484b-b2be-f90f0a3572af" + overflow="visible"> + id="id-a97e0889-534a-4bcc-8170-79e267d5ebe2" + d="M 3.453125,-6.25 V -6.921875 C 3.34375,-6.953125 3.03125,-7.03125 2.65625,-7.03125 1.71875,-7.03125 1,-6.3125 1,-5.328125 v 0.90625 H 0.265625 V -3.84375 H 1 V 0 h 0.75 v -3.84375 h 1.09375 v -0.578125 h -1.125 v -1.1875 c 0,-0.734375 0.671875,-0.8125 0.9375,-0.8125 0.1875,0 0.46875,0.015625 0.796875,0.171875 z m 0,0" + style="stroke:none" /> + id="id-c4528739-c8da-4589-9e68-e8c0bebbf8e9" + overflow="visible"> + id="id-56740f64-a061-48ab-b884-5dc7882a8684" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" /> + id="id-594bf97b-1684-4945-a5e6-11590e168ae3" + overflow="visible"> + id="id-09248ad4-c93a-4bbd-a115-190198c1bc52" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> - + + + + + - - + id="id-db7458ac-e5c1-4246-a6c1-99f6e828c6ac" + d="m 7.65625,-5.71875 c 0,-1.796875 -1.171875,-2.578125 -3,-2.578125 h -3 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.265625 C 2.71875,0 2.84375,-0.15625 2.84375,-0.578125 v -2.625 h 1.8125 c 1.875,0 3,-0.796875 3,-2.515625 z m -1.65625,0 c 0,0.8125 -0.125,1.578125 -1.734375,1.578125 H 2.8125 v -3.125 H 4.28125 C 5.84375,-7.265625 6,-6.546875 6,-5.71875 Z m 0,0" + style="stroke:none" /> + + - - + id="id-1beaa671-150c-40c6-a75c-98c4b31bbbae" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z m 0,0" + style="stroke:none" /> + + - - + id="id-c1e1f70b-373a-4575-9641-82c29fe8b06c" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" /> + + - - + id="id-397ed049-f6ce-4ae6-98a4-f61a64c6f4ba" + d="m 9.640625,-0.578125 v -3.3125 c 0,-1.21875 -0.53125,-1.71875 -1.75,-1.71875 -0.84375,0 -1.5,0.390625 -1.9375,1.1875 C 5.765625,-5.5625 4.75,-5.609375 4.25,-5.609375 c -0.234375,0 -0.734375,0 -1.28125,0.390625 C 2.609375,-4.9375 2.359375,-4.546875 2.28125,-4.375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.703125,0.25 0.703125,0.890625 v 3.28125 C 4.359375,-0.140625 4.5,0 4.9375,0 h 0.484375 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.71875,0.25 0.71875,0.890625 v 3.28125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 9.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + + - - + id="id-4c9e7a24-bdc9-43fc-8fc5-304b3de66e7b" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + + - - + id="id-38542426-7ffb-4ba5-ae91-e78b6fc4786a" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + + - - + id="id-013461ad-10c8-4458-989d-d00313abfab6" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + + - - - - - + id="id-6f9d4a9e-e308-4150-8d0f-4b521248a655" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" /> + + transform="translate(203.961,38.309)" + id="g41381"> + id="id-86601fc1-6256-40b0-9300-c78d60cb00aa" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + + + transform="translate(211.403,38.309)" + id="g41385"> + id="id-4b38af35-f972-472f-a748-9d7b51855874" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" /> + id="id-cd7e19d3-a5b3-406a-97df-cabc92a1da3f" + style="fill:#000000;fill-opacity:1"> + transform="translate(217.74,38.309)" + id="g41389"> + id="id-2c28916f-27cc-425b-a0bb-5cfece939287" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> + transform="translate(222.19,38.309)" + id="g41392"> + id="id-20b0e81f-b0fb-42e3-b118-1ae67bdc2a1a" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(225.245,38.309)" + id="g41395"> + id="id-66079ff0-755c-4976-93de-fe5047076c63" + d="m 2.671875,0.375 v -5.28125 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.65625 c -0.453125,0 -0.5625,0.15625 -0.5625,0.5625 v 5.578125 c 0,0.296875 0,0.78125 -0.71875,0.78125 -0.21875,0 -0.5,-0.046875 -0.75,-0.21875 C -0.40625,1.21875 -0.453125,1.1875 -0.5,1.1875 c -0.09375,0 -0.109375,0 -0.21875,0.3125 -0.046875,0.125 -0.125,0.359375 -0.125,0.390625 0,0.21875 0.984375,0.5625 1.734375,0.5625 1.328125,0 1.78125,-0.890625 1.78125,-2.078125 z m 0,-7.625 v -0.21875 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 H 1.5 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.5625,-0.21875 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(228.665,38.309)" + id="g41398"> + id="id-57d46ef5-3f0d-4bfd-b274-1ca388752750" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" /> + transform="translate(231.72,38.309)" + id="g41401"> + id="id-f3f9b4d7-06fe-4b62-bf24-4c25239a3f31" + d="m 9.640625,-0.578125 v -3.3125 c 0,-1.21875 -0.53125,-1.71875 -1.75,-1.71875 -0.84375,0 -1.5,0.390625 -1.9375,1.1875 C 5.765625,-5.5625 4.75,-5.609375 4.25,-5.609375 c -0.234375,0 -0.734375,0 -1.28125,0.390625 C 2.609375,-4.9375 2.359375,-4.546875 2.28125,-4.375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.703125,0.25 0.703125,0.890625 v 3.28125 C 4.359375,-0.140625 4.5,0 4.9375,0 h 0.484375 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.71875,0.25 0.71875,0.890625 v 3.28125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 9.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(242.081,38.309)" + id="g41404"> + id="id-e57e6028-7a16-4bce-a847-f0c3c40d241b" + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0,0" + style="stroke:none" /> - - + transform="translate(248.358,38.309)" + id="g41407"> + id="id-a45f8e3a-a500-427b-965b-91dc9afcc4a9" + d="m 5.46875,-0.59375 c 0,-0.140625 -0.046875,-0.6875 -0.078125,-0.84375 0,-0.03125 -0.03125,-0.15625 -0.140625,-0.15625 -0.046875,0 -0.078125,0 -0.1875,0.125 -0.203125,0.171875 -0.765625,0.671875 -1.75,0.671875 -1.25,0 -1.25,-1.21875 -1.25,-1.96875 0,-0.96875 0.0625,-1.984375 1.28125,-1.984375 0.78125,0 1.109375,0.203125 1.53125,0.546875 0.140625,0.140625 0.171875,0.140625 0.21875,0.140625 0.125,0 0.140625,-0.109375 0.15625,-0.15625 0.015625,-0.09375 0.140625,-0.765625 0.140625,-0.828125 0,-0.109375 -0.078125,-0.15625 -0.28125,-0.25 -0.578125,-0.265625 -0.9375,-0.375 -1.78125,-0.375 -1.78125,0 -2.890625,0.828125 -2.890625,2.921875 0,1.984375 1.03125,2.875 2.84375,2.875 0.3125,0 1.03125,0 1.828125,-0.40625 0.34375,-0.1875 0.359375,-0.203125 0.359375,-0.3125 z m -0.3125,-7.515625 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.234375,-7.09375 2.0625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.4375,-6.4375 C 2.46875,-6.40625 2.5,-6.390625 2.546875,-6.390625 H 3.875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" /> - - + transform="translate(254.202,38.309)" + id="g41410"> + id="id-9fa77d6d-eb4f-41de-95b0-04b5c2a2e015" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + transform="translate(260.313,38.309)" + id="g41413"> + id="id-5f83ef9c-e9ef-4ac0-97c4-38f07d4bcc2b" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" /> + id="id-c13a3d6e-560b-47bd-9bc2-be50d0e2df58" + style="fill:#000000;fill-opacity:1"> + transform="translate(188.6,50.573)" + id="g41417"> + id="id-8461df1c-e76a-48d1-95ad-68ac8ccf9e46" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(193.748,50.573)" + id="g41420"> + id="id-4098e7a4-d62f-4d5e-8c16-fcc7005721c5" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + id="id-14f4a5fe-f3e4-4426-a46e-b065a8f6d107" + style="fill:#000000;fill-opacity:1"> + transform="translate(201.853,50.573)" + id="g41424"> + id="id-7088fd9c-ec44-4647-ae1c-f9f2ad3c6613" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(210.571,50.573)" + id="g41427"> + id="id-fc1cc95e-ae84-43cb-9a3b-f008ed300441" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(215.359,50.573)" + id="g41430"> + id="id-d06fff94-f71f-42e8-84c8-2a55a529ae11" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(218.956,50.573)" + id="g41433"> + id="id-9d3a1500-7954-4356-ac72-776213f266ab" + d="M 3.453125,-6.25 V -6.921875 C 3.34375,-6.953125 3.03125,-7.03125 2.65625,-7.03125 1.71875,-7.03125 1,-6.3125 1,-5.328125 v 0.90625 H 0.265625 V -3.84375 H 1 V 0 h 0.75 v -3.84375 h 1.09375 v -0.578125 h -1.125 v -1.1875 c 0,-0.734375 0.671875,-0.8125 0.9375,-0.8125 0.1875,0 0.46875,0.015625 0.796875,0.171875 z m 0,0" + style="stroke:none" /> + transform="translate(222.001,50.573)" + id="g41436"> + id="id-f983d158-02ee-492b-897a-5d7a3fa46eb6" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" /> + + + + + + + - + id="id-77638f69-feb5-44e1-9c3d-c02ba7b77504"> + + + + + + + + + + + + + + + + + + + + + + - - + id="id-f6b2c9d7-1652-4417-89b2-9e9dd24c1864" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + style="stroke:none" /> + + - - + id="id-73fff907-7698-4f16-ad70-e5a17b14e2b8" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + + - - + id="id-056e0452-b062-4e5f-9fa5-698427f3491f" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m 0,0" + style="stroke:none" /> + + - - + id="id-a3ea5e40-e97c-4c0c-9fa8-8556f074e29c" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" /> + + - - + id="id-9d651da9-8b73-43a9-9f60-ab1c38589dc1" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" /> + + - + id="id-6e54ca11-3619-48a5-a7ee-d5421c1dc6b5" + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + style="stroke:none" /> + + + + id="id-60d6778e-d74d-40dc-b55a-9049084b705b" + style="fill:#000000;fill-opacity:1"> + transform="translate(160.265,38.309)" + id="g47213"> + id="id-30001e93-5873-421c-93b5-fa08c64591cc" + d="m 8.375,-0.34375 -3.34375,-4.5 3.140625,-2.953125 C 8.3125,-7.921875 8.3125,-8 8.3125,-8.046875 c 0,-0.25 -0.234375,-0.25 -0.40625,-0.25 H 7.1875 c -0.203125,0 -0.453125,0 -0.703125,0.234375 l -3.84375,3.640625 V -7.71875 c 0,-0.390625 -0.078125,-0.578125 -0.578125,-0.578125 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 v -2 L 3.96875,-3.84375 6.640625,-0.25 C 6.84375,0 7.015625,0 7.25,0 H 7.953125 C 8.21875,0 8.375,0 8.375,-0.34375 Z m 0,0" + style="stroke:none" /> + transform="translate(169.398,38.309)" + id="g47216"> + id="id-7eb767ff-b5e7-4f4e-9544-456766da850a" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(176.106,38.309)" + id="g47219"> + id="id-b8a6f362-9c80-42c0-ba7a-9430bc11bfaf" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(179.16,38.309)" + id="g47222"> + id="id-a48ef188-2266-4b35-ab64-abc4fade939f" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.203125,0 -1.75,0.828125 -1.921875,1.15625 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + transform="translate(185.868,38.309)" + id="g47225"> + id="id-45612231-447b-4cdc-baec-a6b4ad6d7a6a" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" /> - - - + id="id-bd2e8dad-2e13-4068-8b59-5e36467acf28" + style="fill:#000000;fill-opacity:1"> + transform="translate(196.233,38.309)" + id="g47229"> + id="id-80e12029-18ef-4af1-86af-bc0407c231cf" + d="M 9.1875,-0.296875 V -0.875 c 0,-0.21875 0,-0.34375 -0.15625,-0.34375 C 9,-1.21875 8.984375,-1.203125 8.921875,-1.171875 8.34375,-0.9375 7.84375,-0.9375 7.6875,-0.9375 7.421875,-0.9375 7.046875,-0.96875 6.59375,-1.21875 8.171875,-2.640625 8.765625,-4.75 8.765625,-4.859375 8.765625,-4.96875 8.671875,-5 8.59375,-5.015625 8.46875,-5.0625 7.8125,-5.25 7.71875,-5.25 c -0.109375,0 -0.125,0.0625 -0.203125,0.3125 -0.46875,1.53125 -1.3125,2.515625 -1.890625,2.96875 -0.109375,-0.109375 -1.171875,-1.203125 -1.671875,-2.09375 1.421875,-1.015625 2.15625,-1.75 2.15625,-2.546875 0,-1 -0.828125,-1.953125 -2.015625,-1.953125 -1.109375,0 -2.21875,0.890625 -2.21875,2.3125 0,0.90625 0.296875,1.78125 0.5,2.25 -0.328125,0.21875 -1.03125,0.71875 -1.234375,0.875 -0.1875,0.1875 -0.59375,0.671875 -0.59375,1.375 0,1.109375 1.03125,2.015625 2.40625,2.015625 1.390625,0 2.46875,-0.640625 2.515625,-0.65625 0.5625,0.3125 1.265625,0.65625 2.203125,0.65625 0.78125,0 1.375,-0.203125 1.40625,-0.234375 C 9.1875,0 9.1875,-0.0625 9.1875,-0.296875 Z M 4.75,-6.59375 c 0,0.75 -0.65625,1.359375 -1.1875,1.734375 C 3.265625,-5.6875 3.234375,-6.21875 3.234375,-6.53125 c 0,-0.875 0.546875,-1.171875 0.859375,-1.171875 0.453125,0 0.65625,0.640625 0.65625,1.109375 z m -0.34375,5.375 c -0.671875,0.28125 -1.3125,0.28125 -1.421875,0.28125 -0.765625,0 -0.8125,-0.96875 -0.8125,-1.140625 0,-0.8125 0.453125,-1.0625 0.609375,-1.15625 0.5,0.875 1.171875,1.5625 1.625,2.015625 z m 0,0" + style="stroke:none" /> + + + transform="translate(210.539,38.309)" + id="g47233"> + id="id-97820e1c-a49e-4339-a0b2-b70088ab7ad4" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + style="stroke:none" /> + transform="translate(217.247,38.309)" + id="g47236"> + id="id-0e9ca444-ae5f-4827-a7f7-6971dd0ea8eb" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" /> + transform="translate(223.357,38.309)" + id="g47239"> + id="id-24923579-740b-4a84-b7a0-257c35d0a4f9" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m 0,0" + style="stroke:none" /> + transform="translate(228.399,38.309)" + id="g47242"> + id="id-715ca264-358a-4b23-a50b-a18f14b0363a" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" /> - - - - - - - - - + id="id-99af342b-7191-4f93-9bec-7001621a3b5d" + style="fill:#000000;fill-opacity:1"> + transform="translate(234.382,38.309)" + id="g47246"> + id="id-0e89031a-b1fe-43e6-8289-02d382ee8825" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" /> + transform="translate(240.958,38.309)" + id="g47249"> + id="id-eb3505de-7bce-4829-9866-bc5b04b2e51a" + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + style="stroke:none" /> + transform="translate(246.935,38.309)" + id="g47252"> + id="id-32902daa-e9c2-47c1-bd43-e646027395a1" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" /> + transform="translate(253.278,38.309)" + id="g47255"> + id="id-3c76807b-10f6-4547-bbb0-73236857c4ac" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" /> + + + + + - + id="id-8e5f75ae-6305-4b7d-9e02-c093f7bf3abe"> + - - + d="" + id="id-54048481-0d0c-43bc-bfca-06d1a3813097" /> + + - - + d="m 8.015625,-2.3125 c 0,-1.6875 -1.65625,-1.953125 -2.09375,-2.03125 1.09375,-0.25 1.734375,-0.875 1.734375,-1.796875 0,-2.15625 -2.546875,-2.15625 -3.046875,-2.15625 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 4.9375 C 5.828125,0 8.015625,-0.15625 8.015625,-2.3125 Z M 6.03125,-6.109375 C 6.03125,-4.75 4.453125,-4.75 4.15625,-4.75 H 2.765625 v -2.515625 h 1.40625 c 0.46875,0 1.859375,0.03125 1.859375,1.15625 z m 0.328125,3.765625 c 0,1.234375 -1.28125,1.3125 -1.859375,1.3125 H 2.765625 V -3.890625 H 4.28125 c 0.421875,0 2.078125,0 2.078125,1.546875 z m 0,0" + id="id-842407a3-efee-404d-81b9-f21338708b67" /> + + - - + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + id="id-bd843c6b-64c0-4377-9823-846c5765f51d" /> + + - - + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + id="id-80d970de-a2e9-46b6-b0bf-3040c49443d8" /> + + - - - - + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + id="id-15c7df78-4287-4c8b-94be-cdae4d01411c" /> + + - - - - + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0.96875,-6.296875 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 3.703125 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 2.3125,-6.75 c -0.09375,0.125 -0.09375,0.171875 -0.09375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 h 0.4375 L 4.875,-7.953125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + id="id-4fbf98d3-605b-4ecb-8e16-8453335319d8" /> + + - - - - + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + id="id-8ea17d29-e6c6-4ef6-bc6c-7e87e28e085e" /> + + - - + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + id="id-8e462bf3-132f-4951-84c6-fd58949965f8" /> + + - - + d="" + id="id-0643083e-37bf-4d86-bbc6-48be234cd013" /> + + - - - - + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + id="id-43191810-fbe8-4e47-92f9-5edddfd3ef0b" /> + + - - - - + d="" + id="id-5a6d4f10-9b39-4314-b9d1-ff3a4a9eafac" /> + + - - + d="M 5.578125,0 V -0.65625 H 4.625 L 2,-0.640625 H 1.6875 l 3.828125,-5.875 v -0.40625 H 0.6875 v 0.625 h 2 c 0.109375,0 0.234375,-0.015625 0.359375,-0.015625 h 1.34375 L 0.5625,-0.421875 V 0 Z m 0,0" + id="id-ed0b2d26-456f-47f0-a85e-64c31f86001a" /> + + - - + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-1a40ff33-5eff-4a2c-b541-1b351429211b" /> + + - - + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + id="id-7b610702-21cf-4006-a8f6-aec7be73ea74" /> + + - - - - + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + id="id-d97ab1ff-807a-4577-960e-a2b37573f517" /> + + - - + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + id="id-6caf8cdb-fa9c-4775-9153-7a7b182b4346" /> + + - - - - + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-54476577-ecd6-42ba-bf80-8a497d197432" /> + + - - + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-87325158-a5df-473c-acef-4749ae8386b1" /> + + - - + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-9bfaf21d-8657-4b1e-8bb3-45c2349b616a" /> + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + id="id-7304657e-9b57-4d88-a155-24b6a0954ba8" /> + + - - + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-3c34e96a-8a39-40ff-aafd-89f9f9540c6e" /> + + - - - - + id="id-1996ec9f-c74a-4c0e-a230-41ae7cf6d5f6" /> + + - - + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-e698046f-1409-474f-98b7-0cdda08a605b" /> + + - - - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-65d27490-1582-420c-9fb6-dcb8e57d64fd" /> + + - - - - + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + id="id-7ddb01ba-7895-4750-b3f8-6e4468c7c342" /> + + + + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-87542ba7-377f-48fe-980b-de5200b1fbd1" /> + + - - + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-565d9ce4-88a0-4e35-b0ec-2529b2b558cc" /> + + - - + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-d2d56660-02a1-4d71-9f6d-bcec1733fc41" /> + + - - + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-dcb36539-a77d-45cd-a996-0bf9315e0b39" /> + + - - + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-0ce10724-e2be-4fb7-a8b5-6dbfd28b32df" /> + + - - + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-0602dd47-92c8-4091-8a60-5e1378a55c54" /> + + - - - - + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + id="id-668f5bdb-3ef2-468c-b9b8-d96ec61fc1a8" /> + + - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-93a9d1b4-462f-40b9-8a9d-5863bf2a90e7" /> + + - - - - + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-2d29df73-421d-4932-974c-02d375aecfe1" /> + + - - + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + id="id-4b6cbc95-3950-47c1-817e-8f35f5fa2824" /> + + - - + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + id="id-2ffe3ac1-11f9-4e6e-8384-92556769db6e" /> + + - - + id="id-23e66668-a511-4ab4-8fa9-b6190d87bfda" /> + + - - + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-69199928-ccd5-4196-84d6-303e53986373" /> + + - - + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + id="id-729d8b7b-66db-414c-8b1b-bf2c3b35e7ce" /> + + - - + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + id="id-1c50ec29-49c0-4b60-a7ef-f0875dee32cb" /> + + - - + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-b9fabad0-00b3-41ad-989e-e8753ec96117" /> + + - - + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + id="id-19618333-f3cb-4cb6-ac6c-2b31d0693345" /> + + - - - - - - - - - + id="id-0fd604f2-6fe8-4325-8a88-e1fe7c859bc5" /> + + - - + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + id="id-da07e78b-4951-471c-b9a7-1a8a17e3a430" /> + + - - + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + id="id-223d6018-44ef-42be-9a88-5114e2abffca" /> + + - - - - + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + id="id-379e91be-fd96-425a-bda9-cf4cdae70461" /> + + - - + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + id="id-2041824f-3f5e-4d44-b728-754012c7d5a4" /> + + - - + d="" + id="id-176e43a3-04b3-456a-87eb-75496ff94138" /> + + - - + d="m 5.6875,-1.421875 c 0,-0.109375 -0.078125,-0.109375 -0.109375,-0.109375 -0.109375,0 -0.109375,0.03125 -0.15625,0.1875 -0.203125,0.671875 -0.53125,1.234375 -1.015625,1.234375 -0.171875,0 -0.234375,-0.09375 -0.234375,-0.328125 0,-0.25 0.078125,-0.484375 0.171875,-0.703125 0.1875,-0.53125 0.609375,-1.625 0.609375,-2.203125 0,-0.65625 -0.421875,-1.0625 -1.140625,-1.0625 -0.90625,0 -1.390625,0.640625 -1.5625,0.875 -0.046875,-0.5625 -0.453125,-0.875 -0.921875,-0.875 -0.453125,0 -0.640625,0.390625 -0.734375,0.5625 C 0.421875,-3.5 0.296875,-2.90625 0.296875,-2.875 c 0,0.109375 0.109375,0.109375 0.109375,0.109375 0.109375,0 0.109375,-0.015625 0.171875,-0.234375 0.171875,-0.703125 0.375,-1.1875 0.734375,-1.1875 0.1875,0 0.296875,0.125 0.296875,0.453125 0,0.21875 -0.03125,0.328125 -0.15625,0.84375 L 0.875,-0.59375 c -0.03125,0.15625 -0.09375,0.390625 -0.09375,0.4375 0,0.171875 0.140625,0.265625 0.296875,0.265625 0.125,0 0.296875,-0.078125 0.375,-0.28125 0,-0.015625 0.125,-0.484375 0.1875,-0.734375 l 0.21875,-0.890625 C 1.90625,-2.03125 1.96875,-2.25 2.03125,-2.46875 l 0.125,-0.5 c 0.140625,-0.3125 0.671875,-1.21875 1.625,-1.21875 0.453125,0 0.53125,0.375 0.53125,0.703125 0,0.609375 -0.484375,1.890625 -0.640625,2.3125 C 3.578125,-0.9375 3.5625,-0.8125 3.5625,-0.703125 c 0,0.46875 0.359375,0.8125 0.828125,0.8125 0.9375,0 1.296875,-1.453125 1.296875,-1.53125 z m 0,0" + id="id-044d37e0-56e0-4db3-b80a-0f8d1f90046d" /> + + - - - - + d="m 4.140625,-2.8125 c 0,-0.90625 -0.53125,-1.59375 -1.328125,-1.59375 -0.453125,0 -0.875,0.296875 -1.171875,0.59375 l 0.734375,-3 c 0,0 0,-0.109375 -0.125,-0.109375 -0.21875,0 -0.953125,0.078125 -1.21875,0.109375 -0.078125,0 -0.1875,0.015625 -0.1875,0.1875 0,0.125 0.09375,0.125 0.25,0.125 0.46875,0 0.484375,0.0625 0.484375,0.171875 0,0.0625 -0.078125,0.40625 -0.125,0.609375 l -0.828125,3.25 c -0.109375,0.5 -0.15625,0.671875 -0.15625,1.015625 0,0.9375 0.53125,1.5625 1.265625,1.5625 1.171875,0 2.40625,-1.484375 2.40625,-2.921875 z M 2.90625,-1.140625 c -0.328125,0.671875 -0.78125,1.03125 -1.171875,1.03125 -0.34375,0 -0.671875,-0.265625 -0.671875,-1 0,-0.203125 0,-0.390625 0.15625,-1.015625 L 1.453125,-3.046875 C 1.5,-3.265625 1.5,-3.28125 1.59375,-3.390625 2.078125,-4.03125 2.53125,-4.1875 2.796875,-4.1875 c 0.359375,0 0.625,0.296875 0.625,0.9375 0,0.59375 -0.328125,1.734375 -0.515625,2.109375 z m 0,0" + id="id-58b238a6-bc33-4e96-82fb-7ac72d7a9f52" /> + + - - + d="" + id="id-41041e47-ccc5-4468-ab45-954440c6a635" /> + + - - + d="m 3.578125,-1.203125 c 0,-0.546875 -0.4375,-1.09375 -1.203125,-1.25 0.71875,-0.265625 0.984375,-0.78125 0.984375,-1.21875 0,-0.546875 -0.625,-0.953125 -1.40625,-0.953125 -0.765625,0 -1.359375,0.375 -1.359375,0.9375 0,0.234375 0.15625,0.359375 0.359375,0.359375 0.21875,0 0.359375,-0.15625 0.359375,-0.34375 0,-0.203125 -0.140625,-0.359375 -0.359375,-0.375 0.25,-0.296875 0.71875,-0.375 0.984375,-0.375 0.3125,0 0.75,0.15625 0.75,0.75 0,0.296875 -0.09375,0.625 -0.28125,0.828125 -0.21875,0.265625 -0.421875,0.28125 -0.765625,0.3125 -0.171875,0.015625 -0.1875,0.015625 -0.21875,0.015625 0,0 -0.078125,0.015625 -0.078125,0.09375 0,0.09375 0.0625,0.09375 0.1875,0.09375 h 0.375 c 0.546875,0 0.9375,0.375 0.9375,1.125 0,0.859375 -0.515625,1.125 -0.90625,1.125 -0.28125,0 -0.90625,-0.078125 -1.1875,-0.5 0.328125,0 0.40625,-0.234375 0.40625,-0.390625 0,-0.21875 -0.171875,-0.375 -0.390625,-0.375 -0.1875,0 -0.390625,0.125 -0.390625,0.40625 0,0.65625 0.71875,1.078125 1.5625,1.078125 0.96875,0 1.640625,-0.65625 1.640625,-1.34375 z m 0,0" + id="id-1f46df74-d0b7-4a45-a2df-4c15dc9d47b3" /> + + - - + d="m 5.609375,-1.734375 c 0,-0.1875 -0.15625,-0.1875 -0.25,-0.1875 H 3.21875 V -4.0625 c 0,-0.078125 0,-0.25 -0.15625,-0.25 -0.171875,0 -0.171875,0.15625 -0.171875,0.25 v 2.140625 H 0.75 c -0.09375,0 -0.265625,0 -0.265625,0.171875 0,0.171875 0.15625,0.171875 0.265625,0.171875 H 2.890625 V 0.5625 c 0,0.09375 0,0.265625 0.15625,0.265625 0.171875,0 0.171875,-0.171875 0.171875,-0.265625 v -2.140625 h 2.140625 c 0.09375,0 0.25,0 0.25,-0.15625 z m 0,0" + id="id-bc5b9f23-35cf-4253-95f8-1fa6ce5f87e6" /> + + - - + d="M 3.515625,-1.265625 H 3.28125 c -0.015625,0.15625 -0.09375,0.5625 -0.1875,0.625 C 3.046875,-0.59375 2.515625,-0.59375 2.40625,-0.59375 H 1.125 c 0.734375,-0.640625 0.984375,-0.84375 1.390625,-1.171875 0.515625,-0.40625 1,-0.84375 1,-1.5 0,-0.84375 -0.734375,-1.359375 -1.625,-1.359375 -0.859375,0 -1.453125,0.609375 -1.453125,1.25 0,0.34375 0.296875,0.390625 0.375,0.390625 0.15625,0 0.359375,-0.125 0.359375,-0.375 0,-0.125 -0.046875,-0.375 -0.40625,-0.375 C 0.984375,-4.21875 1.453125,-4.375 1.78125,-4.375 c 0.703125,0 1.0625,0.546875 1.0625,1.109375 0,0.609375 -0.4375,1.078125 -0.65625,1.328125 L 0.515625,-0.265625 C 0.4375,-0.203125 0.4375,-0.1875 0.4375,0 h 2.875 z m 0,0" + id="id-1be2b4a5-c974-4db8-b74f-c80e5d218c71" /> + + - - + d="" + id="id-4727aabc-875e-4195-bca4-0e4d5bca616b" /> + + - + d="m 3.28125,-1.90625 c 0,-0.8125 -0.5625,-1.171875 -1.046875,-1.171875 -0.359375,0 -0.671875,0.203125 -0.875,0.390625 L 1.84375,-4.625 c 0,-0.015625 0.03125,-0.109375 0.03125,-0.109375 0,-0.046875 -0.03125,-0.109375 -0.125,-0.109375 -0.140625,0 -0.71875,0.0625 -0.890625,0.078125 -0.046875,0 -0.15625,0.015625 -0.15625,0.15625 0,0.09375 0.109375,0.09375 0.1875,0.09375 0.328125,0 0.328125,0.0625 0.328125,0.109375 0,0.046875 -0.0625,0.328125 -0.109375,0.484375 L 0.953125,-3.28125 0.5,-1.421875 C 0.453125,-1.25 0.453125,-1.15625 0.453125,-1.078125 c 0,0.703125 0.453125,1.140625 1.03125,1.140625 0.875,0 1.796875,-0.9375 1.796875,-1.96875 z m -0.5625,-0.296875 c 0,0.28125 -0.140625,1 -0.359375,1.40625 C 2.1875,-0.453125 1.84375,-0.125 1.484375,-0.125 c -0.328125,0 -0.53125,-0.296875 -0.53125,-0.71875 0,-0.25 0.0625,-0.484375 0.265625,-1.28125 C 1.25,-2.25 1.25,-2.265625 1.390625,-2.421875 1.65625,-2.71875 1.96875,-2.875 2.21875,-2.875 c 0.265625,0 0.5,0.203125 0.5,0.671875 z m 0,0" + id="id-f9a904e5-3f4a-46a3-bd01-9f7ed91c3353" /> + + + + + + - - - - - - + id="id-8ea24d45-8f21-4340-aa6e-edc352257efb"> + id="g11687" + transform="translate(152.564,48.604)"> + d="m 8.015625,-2.3125 c 0,-1.6875 -1.65625,-1.953125 -2.09375,-2.03125 1.09375,-0.25 1.734375,-0.875 1.734375,-1.796875 0,-2.15625 -2.546875,-2.15625 -3.046875,-2.15625 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 4.9375 C 5.828125,0 8.015625,-0.15625 8.015625,-2.3125 Z M 6.03125,-6.109375 C 6.03125,-4.75 4.453125,-4.75 4.15625,-4.75 H 2.765625 v -2.515625 h 1.40625 c 0.46875,0 1.859375,0.03125 1.859375,1.15625 z m 0.328125,3.765625 c 0,1.234375 -1.28125,1.3125 -1.859375,1.3125 H 2.765625 V -3.890625 H 4.28125 c 0.421875,0 2.078125,0 2.078125,1.546875 z m 0,0" + id="id-43b75523-8cd9-4ba9-b906-4e705f556cb7" /> + id="g11690" + transform="translate(161.331,48.604)"> + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + id="id-f976c007-e2e7-4ae2-8b7e-0a25781a8225" /> + id="id-1e6a51ad-b1a1-4fa1-be60-29d7e87753fc"> + id="g11694" + transform="translate(168.277,48.604)"> + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + id="id-623f30cc-9d7a-4de2-98e6-221a586cf7c1" /> - - + id="g11697" + transform="translate(174.985,48.604)"> + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + id="id-2e900a18-a2fa-4af5-a7c1-d3b376a860a9" /> + id="g11700" + transform="translate(181.56,48.604)"> + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + id="id-0b2e9a9f-a296-4d04-a584-24733cc1d096" /> + id="g11703" + transform="translate(187.538,48.604)"> + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0.96875,-6.296875 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 3.703125 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 2.3125,-6.75 c -0.09375,0.125 -0.09375,0.171875 -0.09375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 h 0.4375 L 4.875,-7.953125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + id="id-e57ca600-816a-42a6-9da9-41586832abac" /> + id="g11706" + transform="translate(193.814,48.604)"> + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + id="id-d5c3dd7f-884b-4e30-8b14-1fa811374116" /> + id="g11709" + transform="translate(200.522,48.604)"> + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + id="id-03eee9f1-1473-44b0-bd19-45fc3dea2eeb" /> + + + id="g11713" + transform="translate(61.136,68.838)"> + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + id="id-4919843d-f450-4ac1-87b1-5f82321bcb90" /> + + + id="g11717" + transform="translate(73.866,68.838)"> + d="M 5.578125,0 V -0.65625 H 4.625 L 2,-0.640625 H 1.6875 l 3.828125,-5.875 v -0.40625 H 0.6875 v 0.625 h 2 c 0.109375,0 0.234375,-0.015625 0.359375,-0.015625 h 1.34375 L 0.5625,-0.421875 V 0 Z m 0,0" + id="id-92371e0f-cbe8-411d-abb2-5a18644abba0" /> + id="g11720" + transform="translate(79.9541,68.838)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-386a3e83-95f9-4dab-80be-8d810ae32dfb" /> + + + id="g11724" + transform="translate(88.0298,68.838)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + id="id-36ab81ad-d9f5-4cd6-885f-bc4b7090e239" /> + id="g11727" + transform="translate(91.8485,68.838)"> + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + id="id-789ccd0c-746d-48d8-aa41-6f12b9146ebb" /> + id="id-1bfb71e5-3179-4680-8e9e-e21d3807f57a"> + id="g11731" + transform="translate(96.7172,68.838)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + id="id-ddbaff53-c33f-4ecb-972c-b6fe765d69b4" /> - - + id="g11734" + transform="translate(100.121,68.838)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-c8ad584a-7428-4a60-b3ab-c893d50a7ab8" /> - - + id="g11737" + transform="translate(104.909,68.838)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-1db842af-1612-4d98-aca8-879bcc6f275a" /> + id="g11740" + transform="translate(109.503,68.838)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-dac71e32-6477-4e1d-ab27-29b37d2e485e" /> + + + + id="id-552a97dc-2393-46ba-a86a-dfc5fe27cb00"> + id="g11747" + transform="translate(122.357,68.838)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-d62abbea-30b2-4571-89f1-eb25c5beb2b6" /> + id="g11750" + transform="translate(125.761,68.838)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-2041bd37-4509-4734-8059-43f95783db6e" /> + id="g11753" + transform="translate(130.19,68.838)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-c9594e11-0927-4ffb-81cc-443149402cff" /> + id="g11756" + transform="translate(134.008,68.838)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-251ee68c-8840-4886-8fca-e2f58fbba055" /> + id="g11759" + transform="translate(138.437,68.838)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-156a71b4-e1d2-4ef1-82b6-250601869447" /> + id="g11762" + transform="translate(143.584,68.838)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-b395ddcc-f5b5-4072-ade3-823ce3b7a2d4" /> + id="id-0e113bed-5944-460d-83ca-23e49a7a70ac"> + id="g11766" + transform="translate(149.252,68.838)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + id="id-48a8f3e0-939f-4c04-a1d2-09ad91fb9677" /> - - + id="g11769" + transform="translate(154.4,68.838)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-850bbb99-631c-4968-8676-b0b4b3ab114a" /> + id="g11772" + transform="translate(156.78,68.838)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-605eb430-c712-4e20-8225-27acb37d08ae" /> + id="g11775" + transform="translate(161.761,68.838)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-a2b8b322-1c83-4c21-8a3c-ed24d1bf5426" /> + id="g11778" + transform="translate(166.909,68.838)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-21e3dd41-811e-43b8-9a9b-831e09c2b9a3" /> + + + id="g11782" + transform="translate(174.78,68.838)"> + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-30ef6dd3-fb00-4a66-ac89-7a910e09f507" /> + id="g11785" + transform="translate(179.111,68.838)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-51dfc31f-947b-4820-bcbb-f32a3175a964" /> + id="g11788" + transform="translate(181.491,68.838)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + id="id-b0dc62d1-b469-49bb-9750-7a2ab7f7fa08" /> + id="g11791" + transform="translate(185.31,68.838)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-aae2230d-90e1-4d2c-9ef2-9062d2ac1347" /> - - + id="g11794" + transform="translate(190.18,68.838)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-c053c74f-9f58-4883-8854-9ec9de7b28d9" /> + id="g11797" + transform="translate(194.968,68.838)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-1e618ecd-9a5d-45e3-8c4b-739644a2abe2" /> + id="id-78ffc293-81ef-4651-9689-f0243998cc66"> + id="g11801" + transform="translate(202.075,68.838)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-151dd9cb-94ed-45f3-a8c8-71638c9d7069" /> + id="g11804" + transform="translate(207.056,68.838)"> + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-9be12263-b086-42bb-b7ae-9ae2cdc1ac55" /> + id="g11807" + transform="translate(212.204,68.838)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-9205543f-c0e4-4665-8db8-e626fd3e3350" /> + id="g11810" + transform="translate(216.797,68.838)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-214e0fb6-4e54-4ff6-a651-fd5c309d993f" /> + id="g11813" + transform="translate(221.391,68.838)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-7cd72d2b-931a-4fc3-a416-6fa7b42d4e8f" /> + id="g11816" + transform="translate(226.262,68.838)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-f05fff8d-c00d-4bfd-848f-dba9cf33bbe1" /> + id="g11819" + transform="translate(228.642,68.838)"> + id="id-0a53d7d1-4c1f-45b3-ac6b-674d3bd9b763" /> + id="id-fd0c98b9-2022-4ed5-843f-66b2bb154b89"> + id="g11823" + transform="translate(236.348,68.838)"> + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + id="id-a07f2659-0da8-465c-9578-6e82f7651603" /> + id="g11826" + transform="translate(239.946,68.838)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-da93b594-4ca6-4d47-845c-2ec3841d9880" /> + id="g11829" + transform="translate(244.927,68.838)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-de738b03-eceb-4379-9d32-c644fa9101ee" /> + id="g11832" + transform="translate(247.307,68.838)"> + id="id-fcb5287e-09c9-464d-889c-07af1c0003eb" /> + + + + + + id="g11839" + transform="translate(257.845,68.838)"> + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-4d1604fc-f79a-477a-a3d9-301ad4915476" /> + + + id="g11843" + transform="translate(263.272,68.838)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-5a86b4a9-ca61-4c06-87ba-0056e930df26" /> + + + id="g11847" + transform="translate(268.522,68.838)"> + id="id-2bbef054-ae67-4796-a6f8-766ee685ab96" /> + id="g11850" + transform="translate(273.67,68.838)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + id="id-92f62792-c8d1-4ca9-8542-d022ff8719da" /> + + + + + + id="g11857" + transform="translate(284.873,68.838)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-8dbc31f0-d3aa-4e0c-9005-fd312f1c65a7" /> + + + id="g11861" + transform="translate(289.465,68.838)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-87de0056-2099-48e5-baa4-960f0038e2be" /> + id="g11864" + transform="translate(294.446,68.838)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-47f82c99-9300-4ecd-a586-9098e243f9fb" /> + id="g11867" + transform="translate(296.826,68.838)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-0be411f9-0eb7-4038-99c2-df167ebffd29" /> + id="g11870" + transform="translate(299.206,68.838)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-b2d641b3-e3e2-4821-8fed-dc8670865085" /> + id="id-33e4d1e2-9228-4b35-9557-e53226e80473"> + id="g11874" + transform="translate(73.866,80.793)"> + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-fa4cfff1-2c2a-4f58-a827-5c20a2a221b5" /> + id="g11877" + transform="translate(76.523,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-4e7c8fe2-96f0-4f4a-8b7e-7de5df0f75dd" /> + id="id-ae6b5f35-d089-42cd-b5d8-05d3d9d59467"> + id="g11881" + transform="translate(83.8605,80.793)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-50bdbe15-6f50-4a6e-ae5d-53d45a757cfd" /> + id="g11884" + transform="translate(89.0082,80.793)"> + + + + id="id-b6c6170a-c3eb-410f-a28a-4889352c5f01" /> + id="g11890" + transform="translate(98.0303,80.793)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-3b8e7bd3-9f0c-4510-8059-53dcfc202e56" /> + id="g11893" + transform="translate(103.178,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-96886447-4607-4f91-8819-f96e364686ba" /> + + + id="g11897" + transform="translate(107.596,80.793)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-f4624b2b-115f-42e4-a447-ae31fbcbb61a" /> + + + + id="id-d7035980-1953-4f74-ace7-5772d2a94ba0"> + id="g11904" + transform="translate(120.634,80.793)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-2c56a07f-8f11-4aca-9aa4-88d16130c924" /> + + + id="g11908" + transform="translate(128.137,80.793)"> + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-1c0ae2d1-8ca2-480e-809e-1766cbc19895" /> + + + + + + + id="g11917" + transform="translate(142.404,80.793)"> + id="id-8c32e494-7f05-4aca-9bc5-993aadfc9be5" /> + id="g11920" + transform="translate(147.192,80.793)"> + id="id-6737d0f0-7f6f-450c-97a6-055593095178" /> + id="g11923" + transform="translate(152.339,80.793)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-9e3d47ae-e6fd-47bf-a78e-92a173796600" /> + id="g11926" + transform="translate(154.719,80.793)"> + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + id="id-d2ad98fd-071b-4c78-a56f-525adfda20f0" /> - - - + id="id-be0c085e-1819-4cc7-bc5d-cea148ea4743"> + id="g11930" + transform="translate(160.396,80.793)"> + d="M 5.578125,0 V -0.65625 H 4.625 L 2,-0.640625 H 1.6875 l 3.828125,-5.875 v -0.40625 H 0.6875 v 0.625 h 2 c 0.109375,0 0.234375,-0.015625 0.359375,-0.015625 h 1.34375 L 0.5625,-0.421875 V 0 Z m 0,0" + id="id-c02ac79a-1aeb-4743-b53f-65ce0baef06d" /> + id="g11933" + transform="translate(166.484,80.793)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-7d88fb5a-c5ab-4aba-a9cc-62cbc1f4c2e9" /> + id="id-f720a544-26ce-4a32-8c01-c34814cfbb92"> + id="g11937" + transform="translate(174.171,80.793)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-6a30fa5a-8cf3-46ab-970f-52c5b813fae4" /> + id="g11940" + transform="translate(178.765,80.793)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + id="id-f7b4aec0-4938-45b4-9d28-4924a1c977f4" /> + id="g11943" + transform="translate(183.359,80.793)"> + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-7d591a06-3445-4c80-b29d-18b739746862" /> - - + id="g11946" + transform="translate(186.016,80.793)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-e96c1963-a711-4182-9d90-04f4fab043e7" /> + id="g11949" + transform="translate(188.396,80.793)"> + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-597cd4d8-e677-41e5-a941-b4fdb81ccfbd" /> + id="g11952" + transform="translate(196.311,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-db6a5fb7-f80c-403d-b990-5657dfbf00eb" /> + id="g11955" + transform="translate(200.74,80.793)"> + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + id="id-2a1fece1-7d56-471c-8c1d-69012a13067b" /> + id="g11958" + transform="translate(205.168,80.793)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-fbf54e6d-e859-42be-8429-916afac68fff" /> + id="g11961" + transform="translate(210.316,80.793)"> + id="id-f257b803-55f5-4021-8756-f6c87f25008f" /> + id="id-284f034d-b4d2-418b-be44-fd02de3b2240"> + id="g11965" + transform="translate(217.653,80.793)"> + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + id="id-0977fdd3-4dc1-4d30-840c-f6045805ab46" /> + id="id-64df04d5-17f8-48af-bfec-397d022477a7"> + id="g11969" + transform="translate(223.08,80.793)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-0dec3b9e-312c-49f7-aa10-8c033f40c241" /> + id="g11972" + transform="translate(228.061,80.793)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-5302eed4-1593-499f-ae02-4d7175cc5bd0" /> - - + id="g11975" + transform="translate(232.655,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-ca9ec370-e619-484b-92df-a87de407a432" /> + + + id="g11979" + transform="translate(237.073,80.793)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-6d7666d1-0d3e-4e1a-ac1c-c38ac372f747" /> + id="g11982" + transform="translate(242.221,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-b1080cfe-5651-4358-a18a-0b10371c5594" /> + id="g11985" + transform="translate(246.649,80.793)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-2b42e321-2c45-409b-9875-db3fe7ff94b3" /> + id="g11988" + transform="translate(251.797,80.793)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-08a23db4-cbdc-4501-a0d3-dec41af9eee2" /> + id="id-1bece6f6-1ec5-4938-8efc-907a46708a1b"> + id="g11992" + transform="translate(259.494,80.793)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-58491fe7-5a62-4c0d-9b05-9bdd02b03fcd" /> + id="g11995" + transform="translate(262.898,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-5aa6d893-49e1-47c7-95d9-a669dedbc60f" /> + id="g11998" + transform="translate(267.327,80.793)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-a8319d94-dffb-4106-aa04-eaf8d37a0881" /> + id="g12001" + transform="translate(271.145,80.793)"> + id="id-25fdff86-4a1f-48e7-99d7-2ea8ab3f83be" /> - - + id="g12004" + transform="translate(275.574,80.793)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-eb7fb695-6e6c-4f10-beac-14e0f20bab11" /> - - + id="g12007" + transform="translate(280.721,80.793)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-5a54e23d-e8a8-4114-8fea-971506d2ed2c" /> - - - - - - + id="id-284e73ff-47e9-47a6-93d2-67286f9f025e"> + id="g12011" + transform="translate(286.011,80.793)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-7a3b6a3e-7e21-4a9f-8cf1-eb9329f40dd6" /> - - + id="g12014" + transform="translate(290.604,80.793)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-53d53357-4e89-4056-afdb-db7168d3cdb7" /> + id="g12017" + transform="translate(294.423,80.793)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-ccc82408-e116-4ee2-ac14-2f53b5361d1d" /> + id="g12020" + transform="translate(299.211,80.793)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-62a834c5-ba64-4b25-b656-8a3c7522c296" /> - - - + id="id-8b3902e2-aa47-40a1-bf99-4db95725ec95"> + id="g12024" + transform="translate(73.866,92.748)"> + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + id="id-f24bcb56-3403-41f3-8dde-d4a9f716e318" /> + id="id-d00968af-58bf-464f-ab95-a60874c9ba70"> + id="g12028" + transform="translate(78.7347,92.748)"> + id="id-8d6e952d-e32e-4c29-aba8-a6131583e133" /> + id="g12031" + transform="translate(82.1389,92.748)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-ecad945b-06fe-462f-b6ab-6623347b3cae" /> + id="g12034" + transform="translate(84.519,92.748)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-10125dc0-7622-40ee-bbf2-a325abefe835" /> + id="g12037" + transform="translate(89.6667,92.748)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + id="id-674e53ee-78fa-4a3c-834e-a09d747c1c03" /> + id="g12040" + transform="translate(94.0951,92.748)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-f3931947-1169-44a8-87d8-296eae09d8fd" /> + id="g12043" + transform="translate(96.4751,92.748)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-8fafda41-4ce7-4cb6-97e6-b0fe54dd02cf" /> - - + id="g12046" + transform="translate(101.623,92.748)"> + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-0fe2ae07-064f-4bb6-9de3-0e9b40165a5f" /> + id="g12049" + transform="translate(104.28,92.748)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-44ddad28-c117-4ab8-80e6-e493fabaf5b1" /> + id="g12052" + transform="translate(108.708,92.748)"> + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-6089164d-8c25-42c8-b87b-0138d5fff5fe" /> + id="g12055" + transform="translate(116.623,92.748)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-f8e1bdce-97b1-4f2c-a8fa-738f0cc9c924" /> + + + id="g12059" + transform="translate(124.369,92.748)"> + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-aa59bf58-e595-4fd7-a440-ccd1f9434b0c" /> + + + id="g12063" + transform="translate(129.796,92.748)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-64aabe30-fb52-4bdb-8ff0-4d2a01008534" /> + + + id="g12067" + transform="translate(135.056,92.748)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-f356e645-b108-454d-82b3-dc50ac18394a" /> + id="g12070" + transform="translate(140.204,92.748)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-0c00fb7e-cfae-4f72-b4f1-0f0eee159692" /> + id="id-3d0c37bc-c671-497a-80db-5df09684b836"> + id="g12074" + transform="translate(148.115,92.748)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-9af61817-6364-4979-a623-4d56534437dc" /> + id="g12077" + transform="translate(153.263,92.748)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-54d79703-358c-4873-ac25-04c9d2447a79" /> + id="g12080" + transform="translate(158.051,92.748)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-e8f03218-4cb7-4dbc-84fe-0c7a1eee0e23" /> + id="g12083" + transform="translate(162.645,92.748)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-b7004fbc-2c3a-4913-8a85-db7c7685d7c9" /> + id="g12086" + transform="translate(165.025,92.748)"> + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + id="id-a2263313-ca4c-46bc-8c55-2ab15867955e" /> + + + + id="id-55fdbeeb-cf22-4a82-84e6-d12d494b5066"> + id="g12093" + transform="translate(61.136,112.673)"> + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + id="id-4164f4d0-e457-4db8-8613-3afee0d5684a" /> + id="id-35cf45a7-43ca-4acf-b61f-db42c7d8e0b4" /> + id="id-809ff280-d3ff-483c-a8d1-aa6831d878da" /> + id="id-0579ec25-b017-4017-bbbc-87c0b4bdd38c" /> + id="id-e8823fc4-1eae-4e84-b58e-f8f9f7fee7e3" /> + id="id-ecea983e-8de8-40c1-b276-fad9934b2259" /> + id="id-d2d355e7-54fe-433f-8315-9a8daacac496" /> + id="id-df8aa430-2e68-4ffa-ba07-9420a42d9b7c" /> + id="id-00719290-be9e-4995-8638-24eaa02ef2cd" /> + id="id-95514ab3-c2be-40f3-8154-bc93c4c4b958" /> + id="id-cca078de-6e05-414b-b61b-8fd386ac8f2a" /> + id="id-af595d09-0dc7-427d-bb2a-81cbbbde4aa6" /> + id="id-14c29939-008f-40a7-9532-b1392dc61689" /> + id="id-85fa1619-9712-426a-b0e5-7683a6cdac75" /> + id="id-319c408d-f9bd-4bec-ba44-3bfc248ecfd3" /> + id="id-87070e61-c82f-48f0-895f-55aa2c6a1639" /> + id="id-3d428104-0903-4db2-ae42-ce87d2be0200" /> + id="id-ed248c37-d328-4dda-8442-35449091094a" /> + id="id-4ed5fbe9-24ae-4db7-9fe2-9212eff34e80" /> + id="id-eb769c40-0f3a-4aa7-95c9-7b054ca6ed1f" /> + id="id-3e83e59c-0431-4767-8f2c-45301c034956" /> + id="id-c7cb597f-7948-44e1-895e-6682a7387443" /> + id="id-1a0b9bf5-e1aa-4fe7-b7a9-c9f8473fe3ce" /> + id="id-2a12429e-4009-4d25-bb02-6e8a65a04292" /> + id="id-ff07ca93-4c17-4e96-ae2d-46f71662031d" /> + id="id-473d9344-ddb5-46b8-92d1-7fcfc2a300d1" /> + id="id-ccbc8532-47f7-44ba-bf08-96ebff1388ae" /> + id="id-9a528261-a2be-4778-b23a-8ac2caa89b17" /> + id="id-e83fc48a-c102-4269-bd56-2cb0cba2c5e8" /> + id="id-43289f48-33f1-49af-bc7a-89cd4e4098fd" /> + id="id-cf37b5c4-37d5-4070-ad76-0125bc7f7787" /> + id="id-62c190a9-a41a-4c04-ac98-b1166c791d4a" /> + id="id-75c32cac-5e1e-4e2c-9716-c011f7d4ac86" /> + id="id-b41ebb8c-bf97-4182-8a17-682517f84539" /> + id="id-9befada5-8f8b-4941-b4c0-c234d677c6a0" /> + id="id-d86b9b5b-b25b-4585-af66-680c7db15f93" /> + id="id-50854e71-ea4a-4408-8a42-0a42672181cd" /> + id="id-4c63a7a2-fdb9-4c41-a695-eed389c3340d" /> + id="id-9facce88-47f2-48e6-a536-57200ef66108" /> + id="id-859bdf67-1bed-406e-9f5a-9802afb90c5f" /> + id="id-905b560d-673e-4c8d-bf8d-3bc73970c0c8" /> + id="id-e7ba9ba7-acda-41a9-b4a5-b4b1b872cf74" /> + id="id-5ae13fc9-4e82-4e15-a8b0-56707cc88593" /> + id="id-e3c1ee93-8841-4e49-b65f-df5c7d596b13" /> + id="id-c2f55178-5e40-4cc8-a3bc-85084b2d353d" /> + id="id-5340d0b4-74aa-45bb-a242-21750b50d59c" /> + id="id-706e166a-3f5b-4e79-b7d3-974d207f1f39" /> + id="id-5b34d10e-88fe-49e1-94e3-18e03a4f3b38" /> + id="id-6932ccaa-9730-419f-aa2d-9e200f266ddb" /> + id="id-d8aa7c54-3595-495d-a7c8-4748c40dcefa" /> + id="id-752627ab-f4ef-4e68-87b6-45a06e942862" /> @@ -22601,8 +17060,7 @@ + id="id-1a4f5e8a-aa9d-43eb-9a8f-837b03df4dbc" /> + id="id-078d9452-a893-4636-b4ab-fae9ffefbfe9" /> + id="id-5077e53f-0b36-44e0-9669-80a471aa52d7" /> + id="id-ba5e3995-aea5-453c-ac27-ce060758f151" /> + id="id-097560c0-e3c0-46f0-ae72-1c979b92f4ce" /> + id="id-65db38c5-fe0e-4c43-b7a6-03f312f69cd7" /> + id="id-9afcf542-ac80-483c-84de-ee5967b3fd5b" /> + id="id-3d2cc223-21a5-4bff-a92f-7431012c942e" /> + id="id-8c50f327-53c8-4fed-a8fe-f1e511e8069a" /> + id="id-f9471415-e449-423d-83cb-29a97e4bd6d6" /> + id="id-acdd2547-a70b-4b8d-bb35-a15d38e6b810" /> + id="id-87008365-c838-4c42-9c5a-c92fc464c0d6" /> + id="id-dc65011c-dbf4-43e4-8a3c-d202a8f2028e" /> + id="id-e62c1674-0659-4324-b8e1-0a9b92a312da" /> + id="id-515c2d7d-6623-4c59-bb1f-33eb8f0ac8ba" /> + id="id-c1985916-4e69-473a-a084-ec6e2169ae49" /> + id="id-acc52b6c-4f0d-4687-be13-a757d82fba1d" /> + id="id-4d750828-e9a9-43b2-9ea3-23354aa3ef51" /> + id="id-ca47502d-b366-4e95-80f6-4e475b44a698" /> + id="id-712f78c8-d549-477c-9484-4613f0dd015c" /> + id="id-ff08ec0d-818f-464a-832d-c71bc54793bf" /> + id="id-2e735abd-50c8-42d8-82d5-0ec9df8d893b" /> + id="id-7d04de8a-be70-46c2-a657-d986f62d62c9" /> + id="id-3bf33c86-1e74-48b6-8b8c-e07ec56abe90" /> + id="id-950338fc-ceac-457e-9512-29838ad2723d" /> + id="id-0da50f4b-da3b-464f-a163-528f4fe01750" /> + id="id-81f4c931-692c-48bf-9ea5-7ac3acf0c23e" /> + id="id-15d39ab8-1fa8-41f3-9067-b8785a491eb2" /> + id="id-de5c2f1b-fe93-46a1-aa75-705e071c0df7" /> + id="id-00e85240-7f01-45ed-96e6-08dc9fd8c086" /> + id="id-98c5935e-eeca-422f-b13c-b06bc0082bcd" /> + id="id-4b77a1b4-130f-43f4-989c-9a225ac9ab7c" /> + id="id-80a82135-0fa4-4c24-a0f9-689c6544f905" /> + id="id-e9110e39-1fa1-4a43-a46b-51f4f4bd3cd2" /> + id="id-46729b59-4c99-4d24-8167-e022ff30daf5" /> + id="id-945e42bf-e61a-47d3-b2ae-7e5c24cbc76b" /> + id="id-66a63928-bcd0-4840-b322-aab3e9755c2b" /> + id="id-b713bfbf-0bfe-4fbc-8341-b2ad78db9152" /> + id="id-6120e42f-44bd-423e-9790-c3c46c6f7cef" /> + id="id-4f053ccb-ca89-4822-a907-d6830407f380" /> + id="id-7aef2ff2-fa1a-47f9-832a-02ed18a55722" /> + id="id-3c9e65ce-fc2d-4702-810b-2107799de3b8" /> + id="id-1968994e-a327-49ea-bbe4-613ad43510f7" /> + id="id-61d4c6f5-883b-4023-bbd3-7946a3f993ff" /> + id="id-49921832-da62-433a-bd81-6d1dfcfcb27f" /> + id="id-aef19b41-465d-4e3f-ae8c-8dab9da218f9" /> + id="id-c1fa89a9-fbec-492d-bc76-75657edcc2d0" /> + id="id-aca27830-12dc-4ba9-9363-029a97e9c101" /> + id="id-42f6bf64-a79a-4d4c-805a-b6675b92d80c" /> + id="id-6758ce29-8ced-44c9-bbc6-66a16c4c1e85" /> + id="id-75ac2fd8-5145-4712-a306-7ddbe5c6034c" /> + id="id-0539c0fe-91ca-407a-975f-fc97eda40b06" /> + id="id-197c70df-47ac-45e1-8046-222f05d42b12" /> + id="id-45276555-d6a2-41d4-b62d-094345739255" /> + id="id-dd441bed-93b2-40ec-984f-30a9a2cc8d7f" /> + id="id-ae2ce7fe-f2c1-4955-ae6c-ee9e7558e069" /> + id="id-919321be-1969-4571-9799-6d23d69ac348" /> + id="id-71f4f205-b058-4ea2-8a5e-3958db5f005f" /> + id="id-97cb1649-2bc9-4942-99e9-dd24c5b66873" /> + id="id-b56d66b5-a5fd-49d5-a8fc-6319a532248e" /> + id="id-4eb12c89-86f4-4265-bbaf-6cd7eadeed80" /> + id="id-3175b6b2-9608-4d2f-9fa2-66c544b7a0e5" /> + id="id-5b02ef85-d84b-4dbe-ba43-e80f96779f34" /> + id="id-c815e89b-3c95-40f4-946e-6510de37506a" /> + id="id-ca7f1d49-d108-4b7d-806e-442f3ba6c3d8" /> + id="id-6f9351c2-498d-41e3-b76b-37ffe03c8b40" /> + id="id-3b35a540-9b18-4fd3-bcf5-8ab4a46be0ec" /> + id="id-b0236c4f-2dfd-43f4-b916-de8502ba41d0" /> + id="id-aef6dde2-52e6-4e28-b086-a2d85f26ee3f" /> + id="id-3ddfbb08-d662-41e8-a131-7eb2eac018ec" /> + id="id-df9a30af-8b0f-4d71-910c-e9d38e96261d" /> + id="id-05faa8c5-b2cd-4184-82d9-c2fd566d9b49" /> + id="id-0fdd99de-b3e6-4863-a38d-93de1e836f5b" /> @@ -23378,580 +17764,466 @@ ns10:pdfconverter="inkscape" ns10:texconverter="pdflatex" ns10:version="1.0.1" - transform="matrix(0.352778,0,0,0.352778,-91.48283,142.33915)"> + transform="matrix(0.352778,0,0,0.352778,104.838,144.985)"> + id="id-25033946-31f0-4d81-8900-a9b164ac9141"> + id="id-67fb3fc0-e827-4ca3-bacb-16089b0995d9" /> + id="id-8fe9f9cb-03eb-4e84-9b00-646d7620d7dd"> + id="id-eaaf223d-80d9-4618-bd64-cef1093a4696" /> + id="id-e582c64a-f42e-4fec-bd07-fe2a5ab4618e"> + id="id-38cbce34-d5a4-40e9-afdb-2484e42a3fc6" /> + id="id-956b4461-9f7a-4193-a594-da24ab87e15b"> + id="id-a743c385-ad21-43fd-9a74-c553f78ecdca" /> + id="id-537439a5-1a98-4933-bd43-0634789e82e1"> + id="id-67ce1451-b2be-41c9-84b0-6d1539300898" /> + id="id-537a63d7-6db3-4923-b054-d64119360c2e"> + id="id-792f08ac-71c3-4478-90a4-8ff901884b2d" /> + id="id-5aa87a0c-c41b-4918-8e7d-e92fe7d24d0b"> + id="id-5c4b34db-7dcd-4665-9e58-2c3817156f25" /> + id="id-b838f0f3-51d7-46d8-9627-d6f1d9b0891d"> + id="id-0c7e29b0-e92c-4722-a065-785e8446105e" /> + id="id-8a3a6c10-2e9d-49e2-b2ee-a6fcdf183e19"> + id="id-fda54c15-c5ce-4ce6-b812-2053ef4bae46" /> + id="id-f91047c8-cfc7-425b-a3be-a87175bedb3e"> + id="id-4db67080-bcad-453c-bc75-e172e110b0eb" /> + id="id-28e20f96-1b56-452d-b1e4-6dfd8a238df4"> + id="id-2bf38fc7-77d4-4454-a537-38d23e66f820" /> + id="id-16979672-7b3e-41c2-bdb7-06a7f7b9d43e"> + id="id-42341c04-9daa-4448-b3af-88c8d76c99ae" /> + id="id-d0276b1c-ad83-4126-9714-e1427158069f"> + id="id-ded65d04-66ef-4240-b00d-967a1ade611c" /> + id="id-cf7a194f-0bd7-4687-aa33-ba5a50aca3b2"> + id="id-b2f51f0c-8672-4b65-84cd-9387d0e1a02e" /> + id="id-ae937d98-4632-4150-ac55-03407f124296"> + id="id-9303b732-ef0b-4f7e-a2d2-5bff91eef6e6" /> + id="id-fd8c5801-7c3e-44a9-9328-563425bdd322"> + id="id-30d1ec24-2c1a-40a7-ab2b-15d58b459468" /> + id="id-03537fad-2099-46af-9ab0-2c3fd0397e4b"> + id="id-1d7f8b9e-5c91-42cb-b394-b0a382e590ab" /> + id="id-ff84af27-c470-46b8-9633-8e7f75c61a0f"> + id="id-a4bb3c5a-23b0-4299-b0cf-307daa80f371" /> + id="id-8f3b8007-d283-421f-aa48-3f2fc25072c6"> + id="id-77245cba-ad49-4432-b0ba-fdf76a78f094" /> + id="id-313d0088-6b18-4d4a-9f21-6d1b5a0cf35a"> + id="id-34e9db84-d013-44b5-930f-10feab075d1b" /> + id="id-83b1641f-1560-4a9d-846c-ee73a5f4648d"> + id="id-021b2587-8419-44eb-8577-d1e76704fe78" /> + id="id-34ed1925-eb57-454d-8b44-da8732c8125e"> + id="id-e8393790-983e-4ea2-a0a4-c6707ba94077" /> + id="id-b582dca2-7742-4c22-9cf6-67d7a8fc30eb"> + id="id-6aa052f2-2ddf-4793-a356-14018802062e" /> + id="id-fbafaf9e-e82c-44ce-b31e-fde0fcaf5894"> + id="id-e279077e-922e-475a-a549-182cf4240d9e" /> + id="id-a775fb7f-6280-488c-b097-c20c4ed50274"> + id="id-2a132e20-de11-41f9-a53d-5c494956e370" /> + id="id-674e4fca-04c5-4c0f-be69-19e313b3e0e4"> + id="id-2fa0e6a8-a93e-4a8b-b8de-05a2f2e95542" /> + id="id-c3905136-1da3-4666-b578-54e163ab5e63"> + id="id-2de80991-e041-46ee-bc92-2807e2ee5ffd" /> + id="id-ae92f8a4-62dc-40ad-b72e-f9e0d54862bc"> + id="id-7ce62de2-bf40-4d0d-87ee-9202f09b3cdf" /> + id="id-38260ba7-a8f9-48bd-9b84-53f62f90bacb"> + id="id-a4c4328b-75ed-46d7-a984-18dc1d6abf92" /> + id="id-9a9bbc35-b5cc-4146-8611-13b300e0f8e3"> + id="id-e2642b70-dc37-4a4a-910a-55dcb0ab2ac4" /> + id="id-4d8db689-830b-46e6-b673-35e37e992bbc"> + id="id-719808fd-65a5-4152-9c77-51904f144823" /> + id="id-981aa35b-3360-4dfb-9e88-8b2e86aa7b65"> + id="id-a8543a3c-ce74-4e6b-b69c-c5873232ff7c" /> + id="id-0bbd4969-7bd6-44eb-a9aa-68310fc67e77"> + id="id-4168d2b3-08a2-4f5b-a6ed-aa6b7473921d" /> + id="id-bd22697a-d39e-4027-bea9-cb429b185000"> + id="id-fe0865e1-2b51-4943-800f-6ec86cfb35b7" /> + id="id-286e737d-2778-42f9-94cd-fd786aaca2e4"> + id="id-89a60ff8-04ef-4643-8ece-fdef3dfd4ece" /> + id="id-ba039891-2105-4721-addf-5f624ddb45c4"> + id="id-d7cb6eef-5699-4900-93c0-08839f336f94" /> + id="id-d4ce8532-6be1-4351-b0fa-63d508f4bdac"> + id="id-a425343e-2513-4f72-bdcd-f92a69177bf0" /> + id="id-30e8341e-9e43-494e-8830-eff1e7fbe0bb"> + id="id-142f0c0c-5e0f-40cd-98ef-590c9837720c" /> + id="id-e272fd45-36d2-40df-9950-8f1d844c9d7a"> + id="id-fd77e374-ad2c-4de0-b9a7-7bd42bc7c5d7" /> + id="id-9c843153-5a18-48eb-a6e8-ba0f660bbab8"> + id="id-9dbc27cc-a69b-466e-8cac-3b234f0ec225" /> + id="id-61767a6a-2ee8-4cfc-a32a-90d192419704"> + id="id-ea330810-da1c-44f7-9413-9562f9792ca9" /> + id="id-94c637d9-1f9d-472e-a60b-9f7626c5d772"> + id="id-689dadcd-bb61-4d86-96d6-bc22018c6c68" /> + id="id-0ba8fe5d-77c4-4e3b-8b72-1c6b58227b06"> + id="id-70f50031-d02b-47f3-8f7e-c9ef341eeadc" /> + id="id-59bc3606-b868-4066-bced-5a3b41eb5d17"> + id="id-d48a7266-ac7a-4a26-bf41-c06069d947cc" /> + id="id-8391c626-3dc5-4637-8d46-fbfe36907622"> + id="id-1fef4326-5a57-4b4f-912a-ed3709798d87" /> + id="id-eb4af17f-1e17-422f-aee2-b407c3ed6eda"> + id="id-2f089b17-eb7a-460d-a80e-e70455096fe5" /> + id="id-575709f7-884b-4996-9ca1-39c3ccbcc3aa"> + id="id-aa216856-42b8-4405-86d3-c15787461714" /> + id="id-d83ba645-557b-481b-b836-589086abebd4"> + id="id-f6e1d635-3fb2-43c1-af5a-c8d5c8ea591f" /> + id="id-1d5e5a87-c561-4311-ad53-39b1be108e1e"> + id="id-583465d8-fa4b-41df-8b51-024ac3d381ca" /> + id="id-e7ff930b-4270-4033-af97-9904f6abae56"> + id="id-a9a8e73a-ea1e-483a-90fb-e64a4212bf9d" /> + id="id-c1aea53e-e4da-44e2-b2f1-92f6c621fbca"> + id="id-16f1c5c2-4859-43e3-857f-f8221d37c83a" /> + id="id-9373be9d-b05a-41ac-b7b3-b880b0e80d51"> + id="id-4f5fa909-2611-47d8-9b95-7f401090638e" /> + id="id-952986d3-d72a-44ac-bbf8-7207927ee9b3"> + id="id-28d1da7e-180a-4ffa-b6cb-90cc75c74348" /> + id="id-7a5a7b17-2fe7-470f-838d-8b772d39d5fc"> + id="id-b8a700c5-e040-40c5-b2d3-0eeece65dcfa" /> + id="id-a9bfd71d-eacd-41b5-b698-c17a8a4ba7dd"> + id="id-acb0230a-f081-4ac3-9adc-b9acc0d899ed" /> + id="id-56726b97-3bf8-441f-84ca-4f05bfa7c39c"> + id="id-1efbdbb6-bb5f-4a72-ac82-250995ddc547" /> + id="id-85aa0b55-6bb4-4d3f-83eb-86e724303e46"> + id="id-89eae0fd-960e-4e2d-a7a2-2a2cae95825d" /> @@ -23967,8 +18239,7 @@ + id="id-3b3e9393-9f7d-4f60-ab37-91ff7d2348bd" /> + id="id-ed9bb6c2-dc91-4054-aef4-3f4e54c4d792" /> + id="id-698d1128-5665-4d3d-9e90-5a8300203a25" /> + id="id-a814f555-de62-4b25-b1a5-0c64ad0773a7" /> + id="id-a488ae62-51ec-47fb-b4b1-c050acea2902" /> + id="id-337a0b7f-1afc-4607-b52a-ff3f3d6d7345" /> + id="id-485188b4-4eb4-453e-a1eb-d58dd89fd2ca" /> + id="id-e461d06c-1dca-49c7-bfb4-025c6392da26" /> + id="id-1b5a174a-b53a-4136-af64-006e97071763" /> + id="id-98e1185e-fd84-4e9c-9268-fca9a970cc21" /> + id="id-6d14e290-04f5-4263-8c12-908cac565f41" /> + id="id-3f4076d5-d7d5-46b4-a83e-e3a4255b99bb" /> + id="id-de68ff1f-f023-47e0-bd6f-9268cb9011e4" /> + id="id-bdce3878-932a-40b3-a1b6-b203e9e316f6" /> + id="id-cebb0f6c-e68b-4799-a025-ea15a7a59b01" /> + id="id-e4f79256-f7c7-4863-a212-25691cbba218" /> + id="id-a1d8208b-ff67-4318-885c-65db97f46b4e" /> + id="id-41b0c706-5c87-47e1-bf53-0f49c0dbbc66" /> + id="id-c238342f-cad9-4bce-964e-85fe8006111d" /> + id="id-7cadcb13-5d08-4dc9-a37d-bc48c8cf021c" /> + id="id-5d69271b-7486-4fa7-bd9e-01d7ba7bc8f1" /> + id="id-354e7eb5-65de-4d5d-9a3a-6c29a2ccc970" /> + id="id-64bde9e4-36a5-404e-9041-2fa9d2d01364" /> + id="id-5e4f243a-c1a2-45ea-abe7-6111db166e8e" /> + id="id-f3f7f476-1a8f-49fa-b793-5f8d2819a4d0" /> + id="id-c8eb22bd-30d9-4d00-8d02-5d3761d15cc1" /> + id="id-061422e4-58ce-4b9c-affa-a2855331bd00" /> + id="id-4afab655-f98c-4fc3-9ad1-afea96266083" /> + id="id-83894088-9b41-4358-9872-aa51d2c3e8bc" /> + id="id-805b32c9-9241-4e80-bf35-bc5d87706a95" /> + id="id-28606d45-cdcd-4cef-95f5-e10de6c71518" /> + id="id-1e47acab-c5ab-48e6-89bf-93914ede0295" /> + id="id-7c436451-9998-47c0-a0ce-e4bc7b60e0f9" /> + id="id-92354177-58f3-483e-a75b-7f3c3e23bf9c" /> + id="id-951776cb-2e90-469a-b2c3-20c246e24b37" /> + id="id-6800a5ea-a8d4-4881-bfb8-c14a14d95b0d" /> + id="id-a79b4c11-fb23-4008-8c3f-d11b92095d15" /> + id="id-714cc7d5-4bcc-42cb-a3b0-f3b7202d462c" /> + id="id-2a763160-2dc7-4704-8ee3-290437e9554d" /> + id="id-e0a86bce-4429-43cb-ada9-90214fe12cc3" /> + id="id-1cbbb5b2-1059-4478-a78d-468e825851ec" /> + id="id-65b6ab4c-de11-4270-9b7d-622e6de3413f" /> + id="id-6e493986-900c-4e17-86c5-6de3869f1e31" /> + id="id-f939dc51-c49a-4f99-a23e-0ccf024fb5ec" /> + id="id-f3a1beee-f752-4afd-b149-d93503d057c3" /> + id="id-800ada82-d9e5-4161-be3f-0ed0f0d60928" /> + id="id-96077d76-a248-414c-b5ac-9f6412299a87" /> + id="id-4f853244-e1ce-450d-a6a8-f2b4c6bf5f51" /> + id="id-556771b8-75a2-40a7-ab90-01a5172051a2" /> + id="id-d75b4cd6-7eb6-44be-94b4-96bac7bcd910" /> + id="id-53d5c6bf-cb0d-420e-9fff-71a4a35ef856" /> + id="id-a45a8401-9a54-4579-84e2-a9faec47e5a4" /> + id="id-2ffb47df-18a6-4b09-aefc-4be85239bb4f" /> + id="id-7ceb423c-6aa9-4c25-88b8-80a37be76071" /> + id="id-4b1b56dd-44df-4cf7-98d7-075d24b317de" /> + id="id-fe10867a-47e3-4706-a9e3-9343ed274185" /> + id="id-73131b92-8762-4ea0-8668-b6dbde6ae95a" /> + id="id-df30c522-cdbd-46a7-b2a6-d301992b988c" /> + id="id-0d480ce6-ccf6-4e7e-b242-3cb61acfcad4" /> + id="id-6af62015-a759-46a7-99f9-8b7af96af628" /> + id="id-c996593b-4470-4fd5-857b-001f74aa9460" /> + id="id-4b214153-e2fc-4d24-be0d-df9e9f9cc818" /> + id="id-10317393-7834-4a41-8fba-436756c4df20" /> + id="id-8ae33eef-1594-4617-b87b-f9a2ac07bedf" /> + id="id-a832da54-6fc7-4572-9ce0-d494eb80b00e" /> + id="id-246c5581-638a-45c2-aa29-ed4a86e5a4b6" /> + id="id-1098bcff-ffdc-49d7-aee6-6f661c9257f3" /> + id="id-bfa9dd12-3fda-459c-9732-600c833155c4" /> + id="id-2564fc85-f38a-486d-9afb-5d8fed15a275" /> + id="id-7ecc5045-c035-409b-97c9-34b595722b1d" /> + id="id-d4ceca41-7e6e-4fc3-83a9-0f8c27197df0" /> + id="id-f4d0100c-92dd-4bf8-b909-edfaefa14adb" /> + id="id-05f0ec0f-6c01-49a1-80a7-1082001bb06b" /> + id="id-93439d1d-9d9a-4957-bdf2-78102707192c" /> + id="id-38984e2b-b78e-43c1-884a-35827647ff04" /> + id="id-293e0908-5d20-4cc9-858d-f10f5ee3eea4" /> + id="id-c85bf31e-d5db-427b-b84e-63b5d6d13ade" /> + id="id-9c7b31a7-5f6e-47e4-be51-eaa837efb030" /> + id="id-0ebd7681-1065-4e83-baf2-023e9dea9c8a" /> + id="id-92b573e0-f947-4d91-84a6-c3300291d1ce" /> + id="id-a81f605d-6ae1-46c3-865e-14bb0efe0f3b" /> + id="id-79a71104-07ea-4e9a-8220-f4034fd2e129" /> + id="id-22010478-1ae9-4f68-83eb-a3b773aaa957" /> + id="id-54d1829b-cc55-4821-93a5-a3c7bf5ce089" /> + id="id-e2a745d3-d333-4f4a-917a-bd141f4f187e" /> + id="id-b073205e-b6d3-4b46-bb89-252ea015f243" /> + id="id-1450b7ca-1dd3-4d9d-a3d0-6345a72c544b" /> + id="id-64d43efb-7ac1-4da8-aa5e-7bb4cd01fcd7" /> + id="id-f0cdb638-bf2b-40a8-9928-193613984294" /> + id="id-203e7f06-ec3b-41da-84b9-672272f8a763" /> + id="id-f77dc8ec-db78-485a-bfc7-28b8d463c694" /> + id="id-b239bd18-321d-4cc7-beee-4f01c7decab1" /> + id="id-cd0b0c60-d371-412e-be61-90284fe8c7ad" /> + id="id-fd487f85-d34e-4551-9456-f26084f7971c" /> + id="id-ce138469-5aad-4493-b7d4-0c16a84d3dd5" /> + id="id-7d76cd66-1efb-467d-bdfd-1e90532a1106" /> + id="id-2bedf17e-ba7e-4d50-99a8-30b21bed8d59" /> + id="id-539898e9-b781-4f8f-b42a-c12736d70442" /> + id="id-a41e2319-86c0-4f04-8b48-05782715453d" /> + id="id-a2b27847-8008-4a33-8510-f4d90cc78d84" /> + id="id-6bf0de6f-b888-4f33-9bae-14464f165635" /> + id="id-0b1a77a8-c704-4fd6-82c3-0a4dc3659230" /> + id="id-ae825768-1767-4c5b-9dfc-a87683b9ca96" /> + id="id-7875891a-6279-453b-8884-fc54958f17b8" /> + id="id-e2b20630-a4cb-4fbd-a006-52fc87850f7b" /> + id="id-642f6ffa-41eb-4cc5-bb88-f6a8bd8130a6" /> + id="id-95b097f1-3260-4bfd-b1a7-190efaaf1330" /> + id="id-ba483037-9c35-4b23-9824-cace27d7ec26" /> + id="id-db616afd-810e-4dc9-b361-56c6d700d15d" /> + id="id-cb9d25ae-93e9-4a3f-80cd-7963d18b540c" /> + id="id-5654f222-f4a7-4894-bdeb-147ddc9a58bd" /> + id="id-b42374d7-b3ad-4777-ad51-5c8433dd2577" /> + id="id-1cf6c033-306f-4f00-a0e2-c78c2df7cf43" /> + id="id-96842c0e-6735-4d50-8506-823e18eb8ec8" /> + id="id-c8387aca-07f2-403d-9640-b5bb866b17f4" /> + id="id-198dfdf1-2d30-434e-957c-6311de522b51" /> + id="id-f6bd4a8d-386a-47d1-adb5-673e07e68971" /> + id="id-091335a9-ee02-4b5d-9744-8d66394760f3" /> + id="id-9aa405ad-df5d-4a82-8cba-ed79147107c5" /> + id="id-523a7163-7ab8-4d7e-9dc0-1157e16a6db0" /> + id="id-3e1f2c03-56c0-4361-bcca-0d3024cf717c" /> + id="id-3b2a2f34-c305-4a99-8219-d9da2c1ecdbf" /> + id="id-10482b9a-4c51-4c2c-90bf-2c287fcd1c4c" /> + id="id-2bccb626-5fe5-4f75-a96c-18ee1c61ee00" /> + id="id-5b2dc047-1661-479d-8bea-2c4638936bb6" /> + id="id-a830cdd2-6d7e-43cd-b7bf-d829e8a31b9d" /> + id="id-9d0d418a-7aa4-455a-8066-c700a94dfb12" /> + id="id-d3444af1-80df-4353-8e9a-ec9b3fbeed76" /> + id="id-b9ed97c2-c700-4d6d-a3cf-7b5beb80d3fe" /> + id="id-b12fd62f-4977-4f31-b0e5-da81b2ecc472" /> + id="id-8f506779-8f6e-41eb-9ecb-7455bd28d35a" /> + id="id-da500793-f6d6-47ec-904f-87e6e1090983" /> + id="id-5bbec66c-f649-477f-8645-354986466eaa" /> + id="id-585e9e4a-b655-4d18-a2d5-a4fdc2b7f8c4" /> + id="id-2885316e-442d-483b-9a7d-78f481a118db" /> + id="id-7fc3e56c-675d-4f16-9897-618db1b9888e" /> + id="id-b509295f-4d2a-47c8-a6cc-6884d502be28" /> + id="id-000053c7-12eb-4f25-aa8d-fb5dccb4dfcd" /> + id="id-cf08e8a8-c7e3-48c2-8ed1-7f2d273515e8" /> + id="id-e4758fbb-72b4-46bb-a987-beeb75ef6221" /> + id="id-fb6cb178-48c0-4988-a067-ae46ab939312" /> + id="id-a5c96c01-872b-44e6-95f4-21bdbf593e9d" /> + id="id-e4dfbb06-04e0-4396-ac47-8fc88fe8909e" /> + id="id-c8e40d2c-a9f3-4f14-a807-0730db7d3b14" /> + id="id-163f20f8-52cf-4d22-ac28-f955d2ac33c0" /> + id="id-454861a4-9d18-4baa-a3be-ce5c72bf47c9" /> + id="id-e98039e5-76d1-482f-aa56-99ff2e1dfcad" /> + id="id-9960a79e-0ff9-49cc-abaf-376c8b4a58f7" /> + id="id-f4a6078f-a1d0-49eb-88b0-cb8ad002104a" /> + id="id-7df2fa13-8ce8-4656-b1b9-b2c89f32ddfc" /> + id="id-4f8d22c3-f066-4de1-92c4-a4beeb7d4fb1" /> + id="id-937f45c4-845b-448f-adb9-cacc070ae39a" /> + id="id-8191f094-00c9-4eb6-ae51-508707fa1e4d" /> + id="id-7f6c5e13-21dd-455d-9801-e1f452345247" /> + id="id-26ebad55-6e7e-4308-955c-ee2d9e472186" /> + id="id-9c87afea-7a95-4b1d-bd22-2a0321f0f719" /> + id="id-39d2c941-7823-497c-a150-f8ccf7a6979e" /> + id="id-84bb4d63-edd0-4e34-9e4d-4b07e84dd856" /> + id="id-254001c8-19e6-47a0-8687-fe80ef8d7772" /> + id="id-d24f78f1-b35a-4b77-a132-43e0091cc3e3" /> + id="id-2a901665-91df-4608-ac9e-23a02c289821" /> + id="id-2b6404a1-614d-43c4-b1a2-b174d0925f5d" /> + id="id-d6ef9ea7-9fc3-4376-905a-c05d460013eb" /> + id="id-051d961c-3ea1-4425-908c-8df6d5e50cbe" /> + id="id-96f964ef-a0c2-4668-b692-8e255d5638cb" /> + id="id-8c789640-1712-495c-b221-43d087b71fc8" /> + id="id-7e269996-8954-4794-932c-479f7fb48a4c" /> + id="id-761a9918-a1a8-483d-9c52-4d92eea008e4" /> + id="id-fa6c0fd1-db53-4dd1-a237-48ed51ff2dfc" /> + id="id-8596af94-969b-4288-9e46-4fdf820d0c40" /> + id="id-f206d001-d2b5-4851-bd89-65ac2cd93feb" /> + id="id-a0e6a628-cdd9-4775-973b-9d405c453063" /> + id="id-faf463e0-4c2e-489b-94fb-c0e79f5f5fb5" /> + id="id-5d2e4666-cfa7-4529-afa3-652d93c13300" /> + id="id-706fb835-45e1-4492-a10f-175fd08d5ebe" /> + id="id-50783649-02ad-4b07-9b48-16ffda82a1b0" /> + id="id-6e000c60-c1fe-4591-a25e-2c0dc4ceacb8" /> + id="id-6e8bd34f-ddf6-44e8-ada3-c4176e6ce144" /> + id="id-e8bf8391-32cd-47e2-8bc4-cd3656044948" /> + id="id-42c5b690-c9b3-4719-87ba-bb25aed513f0" /> + id="id-9e243e2e-8243-47ec-b997-078f7c4ef1fd" /> + id="id-5bcf6baf-c472-4d5e-bb96-42e85604c2c6" /> + id="id-ba298a96-4289-44f3-9828-879d75645a2d" /> + id="id-abe7085d-a539-48cc-a410-9400a7cc40bf" /> + id="id-55623bc1-0919-4590-b58b-efb95e12b14b" /> + id="id-eb4d9987-684f-45cf-ab91-467b4f534213" /> + id="id-dce441af-c4f8-44de-9105-f88ba1f6a107" /> + id="id-09354d1d-24ab-4b60-a68c-e49e08d579dd" /> + id="id-21684360-fca3-46e1-8a2f-5c62d77255a8" /> + id="id-b86e48d1-df8b-4fa3-a56a-6ffe9708201b" /> + id="id-25684d56-9d56-4181-af0b-38ce151d664b" /> + id="id-1da7aa50-1091-4586-93c0-37c4ba9ce8b5" /> + id="id-b70acbe5-06b8-42a4-9207-0555dab144e2" /> + id="id-9f744f9b-602d-492a-919a-b92e499ac3d9" /> + id="id-b0fc650e-d938-4662-9584-28a3f7cd0938" /> + id="id-d3ec15cb-2a69-482f-9ade-be4ef2c9de3b" /> + id="id-6ac37054-1ee8-4ee4-9a2c-199c2191bc99" /> + id="id-158db0b2-058a-4b0f-8eff-d415e02b549b" /> + id="id-d3abf955-5425-4c49-a372-38b1e80daafd" /> + id="id-6733291f-4b28-4a3e-97aa-f3a4ae92bf3a" /> + id="id-1ebf3180-b123-4f95-ab88-e64861f30333" /> + id="id-8cd213a4-3476-4d08-85c6-ca5383ba8262" /> + id="id-6a9ce4de-e8f7-44dd-9790-438e3f2b1dc8" /> + id="id-623de901-c5c8-4f25-b2b0-05f30bc69844" /> + id="id-344ac010-9946-4ce7-bf9d-0b23bc36a2f5" /> + id="id-ed3e289f-1452-460d-85cd-e07b8a93b5a3" /> + id="id-cf7e982e-b841-4156-8d4d-a17032802955" /> + id="id-f163c830-d025-4e9d-8d95-03d106a4a327" /> + id="id-130fd6c7-49b6-46f5-9466-6416c7046d8a" /> + id="id-79a8ebec-2115-45e4-99e2-71283e070992" /> + id="id-8dd1b743-2d9e-4da4-9120-982f4fb32bac" /> + id="id-3ab434df-46d3-44ec-8495-171c1d5dd2a2" /> + id="id-96386c7d-bc1b-4b03-a51e-8bea9d14f57f" /> + id="id-64606eb0-aa3e-4b2e-996c-2eeec35fff15" /> + id="id-133bd9de-c6c7-4291-889c-3c78c7c1d7e2" /> + id="id-d33f4b33-0898-4560-ae22-a622f61307d6" /> + id="id-a607ed08-e0ba-4427-8fc9-8a8d81c1a2c5" /> + id="id-e4056a0c-b69a-4493-aa91-e02d603f3d07" /> + id="id-bbd0b318-b6f2-46b1-a582-1d2acb0b24bb" /> + id="id-084f3df7-dd17-4f7f-8aa7-13bff4285a82" /> + id="id-fc4927a9-d106-4bbb-b58b-d7cb04437618" /> + id="id-39b31475-1593-49f1-8b6f-69458f1653c7" /> + id="id-c9795f68-aaa7-4dbe-9f25-3e2c26c04207" /> + id="id-b43e47c9-4ccb-4341-9d2f-48239774fff9" /> + id="id-9d94e8eb-7c26-46cb-945e-4a25745febe4" /> + id="id-f226cb96-995c-49c4-bd5c-80fc6df19d4e" /> + id="id-6f64aecb-9c4f-4500-b196-9912f9934607" /> + id="id-e39eea0b-6616-4b9a-b6c1-f3e54d741d19" /> + id="id-362abe5d-93c0-4a55-aac5-b39209591c0e" /> + id="id-281e651d-a309-4c04-b74f-a5353b77294d" /> + id="id-cec18192-21c0-435f-8eb4-787ef11239fe" /> + id="id-a62ea7be-0428-49c2-820c-9010c6bc5c71" /> + id="id-bf5a6e3e-866a-4838-83cb-fed191ccf50f" /> + id="id-38503756-ed5a-4eb9-bae5-fbd6ffe5c0ea" /> + id="id-63f5a07e-eaa8-42c0-a940-209bfe26b27d" /> + id="id-90545768-6740-4cfe-a057-99ac2663e62c" /> + id="id-e69246ef-f1cd-4755-9474-c179c2a3dfc7" /> + id="id-6e91aefa-d7e8-4d60-a7df-62017d2b10f2" /> + id="id-a0df56ab-42bd-4cc1-9ed6-fa5ec647c655" /> + id="id-2465c28e-c25d-4b61-ac12-62735cc8ec90" /> + id="id-b4d1a0c0-b2fd-42e8-97a6-1e0a2a63a837" /> + Po registraci nahraj řešení do odevzdávátka. + Stihneme-li ti řešení opravit před deadlinem, můžešsi jej ještě zlepšit. + Řešení odevzdaná do 1. deadlinu ti opravíme jiždo vydání následujícího čísla, jinak až o číslo později. + Problémy hodnotíme individuálně, za hezký článek mů-žeš určitě očekávat více bodů než za řešení uzavřené úlohy diff --git a/seminar/templates/seminar/jakresit/jakresit_1.svg b/seminar/templates/seminar/jakresit/jakresit_1.svg deleted file mode 100644 index 514e3221..00000000 --- a/seminar/templates/seminar/jakresit/jakresit_1.svg +++ /dev/null @@ -1,26775 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/seminar/templates/seminar/jakresit/jakresit_2.svg b/seminar/templates/seminar/jakresit/jakresit_2.svg deleted file mode 100644 index 93fa9f2e..00000000 --- a/seminar/templates/seminar/jakresit/jakresit_2.svg +++ /dev/null @@ -1,26847 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From b2f0c47449acb6a661957e806284a34a834d4614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 1 Jun 2023 14:47:03 +0200 Subject: [PATCH 207/515] =?UTF-8?q?Oprava=20p=C5=99edm=C4=9Btu=20v=20e-mai?= =?UTF-8?q?lu=20o=20nov=C3=A9m=20=C4=8D=C3=ADsle=20(oprava=20commitu=203c9?= =?UTF-8?q?58c91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/tvorba.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 124d5695..4cf37218 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -264,31 +264,33 @@ class Cislo(SeminarModelBase): odkaz = self.absolute_url() poslat_z_mailu = 'zadani@mam.mff.cuni.cz' - predmet = 'Vyšlo číslo {}. číslo M&M'.format(self.kod()) + predmet = 'Vyšlo číslo {}'.format(self.kod()) # TODO Možná nechceme všem psát „Ahoj“, např. příjemcům… text_mailu = 'Ahoj,\n' \ 'na adrese {} najdete nejnovější číslo.\n' \ 'Vaše M&M\n'.format(odkaz) + predmet_prvni = 'Právě vyšlo 1. číslo M&M, pomoz nám ho poslat dál!' text_mailu_prvni = 'Milý řešiteli,\n'\ 'právě jsme na našem webu zveřejnili první číslo {}. ročníku, najdeš ho na tomto odkazu: {}.\n\n'\ 'Doufáme, že tě M&M baví, a byli bychom rádi, kdyby mohlo dělat radost i dalším středoškolákům. Máme na tebe proto jednu prosbu. Sdílej prosím odkaz alespoň s jedním svým kamarádem, který by mohl mít o řešení M&M zájem. Je to pro nás moc důležité a velmi nám tím pomůžeš. Díky!\n\n'\ 'Organizátoři M&M\n'.format(self.rocnik.rocnik, odkaz) + predmet_resitel = predmet_prvni if self.poradi == "1" else predmet text_mailu_resitel = text_mailu_prvni if self.poradi == "1" else text_mailu # Prijemci e-mailu resitele_vsichni = aktivniResitele(self).filter(zasilat_cislo_emailem=True) - def posli(text, resitele): + def posli(subject, text, resitele): emaily = map(lambda resitel: resitel.osoba.email, resitele) if not settings.POSLI_MAILOVOU_NOTIFIKACI: print("Poslal bych upozornění na tyto adresy: ", " ".join(emaily)) return email = EmailMessage( - subject=predmet, + subject=subject, body=text, from_email=poslat_z_mailu, bcc=list(emaily) @@ -299,12 +301,12 @@ class Cislo(SeminarModelBase): paticka = "---\nK odběru těchto e-mailů jste se přihlásili na stránkách https://mam.matfyz.cz. Z odběru se lze odhlásit na https://mam.matfyz.cz/resitel/osobni-udaje/" - posli(text_mailu_resitel + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove)) - posli(text_mailu_resitel + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, + posli(predmet_resitel, text_mailu_resitel + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove)) + posli(predmet_resitel, text_mailu_resitel + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, resitele_vsichni.exclude(zasilat=pm.Resitel.zasilat_cislo_papirove)) paticka_prijemce = "---\nPokud tyto e-maily nechcete nadále dostávat, prosíme, ozvěte se nám na mam@matfyz.cz." - posli(text_mailu + paticka_prijemce, pm.Prijemce.objects.filter(zasilat_cislo_emailem=True)) + posli(predmet, text_mailu + paticka_prijemce, pm.Prijemce.objects.filter(zasilat_cislo_emailem=True)) def save(self, *args, **kwargs): super().save(*args, **kwargs) From 4b6e82120de77ec49ec5cfd023b342dad4d23ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 1 Jun 2023 15:08:55 +0200 Subject: [PATCH 208/515] =?UTF-8?q?FIX:=20Pos=C3=ADl=C3=A1n=C3=AD=20e-mail?= =?UTF-8?q?u=20i=20=C5=99e=C5=A1itel=C5=AFm,=20kte=C5=99=C3=AD=20necht?= =?UTF-8?q?=C4=9Bj=C3=AD=20pap=C3=ADrov=C3=A9=20=C4=8D=C3=ADslo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/tvorba.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 4cf37218..54e769c8 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -301,9 +301,9 @@ class Cislo(SeminarModelBase): paticka = "---\nK odběru těchto e-mailů jste se přihlásili na stránkách https://mam.matfyz.cz. Z odběru se lze odhlásit na https://mam.matfyz.cz/resitel/osobni-udaje/" - posli(predmet_resitel, text_mailu_resitel + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove)) + posli(predmet_resitel, text_mailu_resitel + paticka, resitele_vsichni.filter(zasilat_cislo_papirove=False)) posli(predmet_resitel, text_mailu_resitel + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka, - resitele_vsichni.exclude(zasilat=pm.Resitel.zasilat_cislo_papirove)) + resitele_vsichni.filter(zasilat_cislo_papirove=True)) paticka_prijemce = "---\nPokud tyto e-maily nechcete nadále dostávat, prosíme, ozvěte se nám na mam@matfyz.cz." posli(predmet, text_mailu + paticka_prijemce, pm.Prijemce.objects.filter(zasilat_cislo_emailem=True)) From a07dbf4ab399b9c6437de8e55e76e6582f188001 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Thu, 1 Jun 2023 17:34:40 +0200 Subject: [PATCH 209/515] =?UTF-8?q?Jid=C3=A1=C5=A1:=20jsem=20v=C5=AFl=20(s?= =?UTF-8?q?oubor=20se=20nem=C5=AF=C5=BEe=20jmenovat=20select2.js,=20kdy?= =?UTF-8?q?=C5=BE=20select2.js=20u=C5=BE=20importujeme)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/odevzdavatko/{select2.js => nesbalovaci_select2.js} | 0 odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 2 +- odevzdavatko/templates/odevzdavatko/posli_reseni.html | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) rename odevzdavatko/static/odevzdavatko/{select2.js => nesbalovaci_select2.js} (100%) diff --git a/odevzdavatko/static/odevzdavatko/select2.js b/odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js similarity index 100% rename from odevzdavatko/static/odevzdavatko/select2.js rename to odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 0efe34f2..3950089e 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -2,7 +2,7 @@ {% load static %} {% block script %} - + {% endblock %} {% block content %} diff --git a/odevzdavatko/templates/odevzdavatko/posli_reseni.html b/odevzdavatko/templates/odevzdavatko/posli_reseni.html index b57c13c3..07baf7ef 100644 --- a/odevzdavatko/templates/odevzdavatko/posli_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/posli_reseni.html @@ -4,7 +4,7 @@ {{form.media}} - + {% endblock %} {% block content %} From fc4fc8779832324bf2aebb31eb5920e6c8585e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 00:22:30 +0200 Subject: [PATCH 210/515] =?UTF-8?q?Revert=20"Jak=20=C5=99esit=20(oproti=20?= =?UTF-8?q?mamtex=20je=20tam=20ubran=C3=BD=20n=C4=9Bjak=C3=BD=20text=20nav?= =?UTF-8?q?=C3=ADc)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 389a979f4c65058fc2922861d5e2366b0205370f. --- mamweb/static/css/mamweb.css | 2 +- .../templates/seminar/jakresit/jak-resit.html | 4 +- .../templates/seminar/jakresit/jakresit_1.svg | 26775 +++++++++++++++ .../templates/seminar/jakresit/jakresit_2.svg | 26847 ++++++++++++++++ .../{jak_resit.svg => jakresit_3.svg} | 20754 +++++++----- 5 files changed, 66955 insertions(+), 7427 deletions(-) create mode 100644 seminar/templates/seminar/jakresit/jakresit_1.svg create mode 100644 seminar/templates/seminar/jakresit/jakresit_2.svg rename seminar/templates/seminar/jakresit/{jak_resit.svg => jakresit_3.svg} (74%) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 75f65ae4..63c5f527 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1201,7 +1201,7 @@ div.gdpr { /* Jak řešit */ .jakresit svg { - width: 100%; + width: 33%; padding: 10px; filter: none; } diff --git a/seminar/templates/seminar/jakresit/jak-resit.html b/seminar/templates/seminar/jakresit/jak-resit.html index c0962307..fd278c68 100644 --- a/seminar/templates/seminar/jakresit/jak-resit.html +++ b/seminar/templates/seminar/jakresit/jak-resit.html @@ -8,7 +8,9 @@
    -{% include 'seminar/jakresit/jak_resit.svg' %} +{% include 'seminar/jakresit/jakresit_1.svg' %} +{% include 'seminar/jakresit/jakresit_2.svg' %} +{% include 'seminar/jakresit/jakresit_3.svg' %}
    {% endblock %} diff --git a/seminar/templates/seminar/jakresit/jakresit_1.svg b/seminar/templates/seminar/jakresit/jakresit_1.svg new file mode 100644 index 00000000..514e3221 --- /dev/null +++ b/seminar/templates/seminar/jakresit/jakresit_1.svg @@ -0,0 +1,26775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/seminar/templates/seminar/jakresit/jakresit_2.svg b/seminar/templates/seminar/jakresit/jakresit_2.svg new file mode 100644 index 00000000..93fa9f2e --- /dev/null +++ b/seminar/templates/seminar/jakresit/jakresit_2.svg @@ -0,0 +1,26847 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/seminar/templates/seminar/jakresit/jak_resit.svg b/seminar/templates/seminar/jakresit/jakresit_3.svg similarity index 74% rename from seminar/templates/seminar/jakresit/jak_resit.svg rename to seminar/templates/seminar/jakresit/jakresit_3.svg index 1c25918c..391ebc7c 100644 --- a/seminar/templates/seminar/jakresit/jak_resit.svg +++ b/seminar/templates/seminar/jakresit/jakresit_3.svg @@ -1,34 +1,22 @@ + inkscape:version="1.0.2 (1.0.2+r75+1)" + sodipodi:docname="jakresit_3.svg"> - - + style="fill:#6f250f;fill-opacity:1;fill-rule:evenodd;stroke:#6f250f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + id="path30242" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:1;fill-rule:evenodd;stroke:#6f250f;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(0.8)" + inkscape:connector-curvature="0" /> + id="path28764" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;fill-rule:evenodd;stroke:#6f250f;stroke-width:1.00000003pt;stroke-opacity:0.94117647" + transform="scale(0.8)" + inkscape:connector-curvature="0" /> + id="path27326" + inkscape:connector-curvature="0" /> + id="path27100" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;fill-rule:evenodd;stroke:#6f250f;stroke-width:1.00000003pt;stroke-opacity:0.94117647" + transform="scale(0.8)" + inkscape:connector-curvature="0" /> + id="path26604" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;fill-rule:evenodd;stroke:#6f250f;stroke-width:1.00000003pt;stroke-opacity:0.94117647" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1.00000003pt;stroke-opacity:1" + transform="scale(-0.8)" + inkscape:connector-curvature="0" /> + id="path6554" + inkscape:connector-curvature="0" /> + id="path6534" + inkscape:connector-curvature="0" /> + id="path6524" + inkscape:connector-curvature="0" /> + id="path6514" + inkscape:connector-curvature="0" /> + id="path6504" + inkscape:connector-curvature="0" /> + id="path6494" + inkscape:connector-curvature="0" /> + id="path6484" + inkscape:connector-curvature="0" /> + id="path6474" + inkscape:connector-curvature="0" /> + id="path6464" + inkscape:connector-curvature="0" /> + id="path6454" + inkscape:connector-curvature="0" /> + id="path6444" + inkscape:connector-curvature="0" /> + id="path6434" + inkscape:connector-curvature="0" /> + id="path6424" + inkscape:connector-curvature="0" /> + id="path4376" + inkscape:connector-curvature="0" /> + id="path4322" + inkscape:connector-curvature="0" /> + id="path4234" + inkscape:connector-curvature="0" /> + id="path4231" + inkscape:connector-curvature="0" /> + id="id-58d9e82b-c60c-4c26-8d27-25478f5c3f75" + style="overflow:visible"> + id="id-74bba7de-3236-4e7e-b81c-cd74e04b7ee8" + inkscape:connector-curvature="0" /> + id="id-03b7ac0a-6c29-4a9d-af6b-0ed77e89ca3a" + style="overflow:visible"> + id="id-ee253b46-36ae-4066-9d45-202f798baf2d" + inkscape:connector-curvature="0" /> + id="id-cb2f407b-bab3-4e77-9fdc-0ca956fc1b84" + style="overflow:visible"> + id="id-7e4771e9-92bb-4d1e-a5c7-dda49f957914" + inkscape:connector-curvature="0" /> + id="id-919a82c7-b3f8-43ea-83c0-f090eafd962c" + style="overflow:visible"> + id="id-ec7a370b-cc7d-422d-9e34-0ed9b9fff025" + inkscape:connector-curvature="0" /> + id="id-b735b9c6-1c34-4638-8ff0-837d84fe7813" + style="overflow:visible"> + id="id-8f0afab4-48ba-4dc7-bda9-195ce5634890" + inkscape:connector-curvature="0" /> + id="id-6d3c83a3-17a6-4aa5-8071-8cba135fc03c" + style="overflow:visible"> + id="id-0a2ab759-764e-4239-a7de-48f100e6f29e" + inkscape:connector-curvature="0" /> @@ -1211,123 +1252,153 @@ id="id-938187a9-6c43-4b06-ae83-2e0d890ebc3f"> + id="id-a14891fa-6c5f-4ff1-aa30-3573d524d466" + style="overflow:visible"> + id="id-5210200e-6890-47d6-830b-11df2fc23808" + inkscape:connector-curvature="0" /> + id="id-17ad1d9b-4cf5-4c32-a2ee-7639a759bf60" + style="overflow:visible"> + id="id-bd6ca3ea-cc7d-4507-a3e2-39597cc9abad" + inkscape:connector-curvature="0" /> + id="id-877be989-c3e8-463e-ab72-12905964a25a" + style="overflow:visible"> + id="id-2e2d9275-1f7f-4ca4-96de-385d7f14e3bd" + inkscape:connector-curvature="0" /> + id="id-8e46c3d7-2ae5-48fb-b81f-c2d2fb5f39c3" + style="overflow:visible"> + id="id-5aa23712-4d3a-4891-85b1-386cc2512dae" + inkscape:connector-curvature="0" /> + id="id-0d892061-d218-4311-899f-85701b4be68f" + style="overflow:visible"> + id="id-7e8988dd-d516-40ed-bc87-8ab52987cd89" + inkscape:connector-curvature="0" /> + id="id-9b5b3bfc-2c1a-4fd0-9512-d959b819d637" + style="overflow:visible"> + id="id-d8d36dd5-7fa5-42e1-bc71-73a86ef45998" + inkscape:connector-curvature="0" /> + id="id-62cda65d-6afc-4d78-b067-d9c1d218a1b9" + style="overflow:visible"> + id="id-8932ff6f-4582-4a08-b549-0c04de3fc2c5" + inkscape:connector-curvature="0" /> + id="id-8c6c107e-9cb4-4111-ad7b-57eeb17d2aed" + style="overflow:visible"> + id="id-928c198b-e2ce-437a-9d6f-6111dc486160" + inkscape:connector-curvature="0" /> + id="id-f4f73b4b-a0fd-4c8f-90c7-382fe6527634" + style="overflow:visible"> + id="id-b7e98946-2f1f-4715-b501-99202c87f8ba" + inkscape:connector-curvature="0" /> + id="id-748e4a0c-1247-4b21-8a16-0a04bc85e6b0" + style="overflow:visible"> + id="id-8159b334-036f-42f2-a878-94b5a496d7d9" + inkscape:connector-curvature="0" /> + id="id-32bb3d59-aebc-4725-acc7-b53a104f9f46" + style="overflow:visible"> + id="id-9c126854-d9b0-495d-9bb5-6a7b691c87d3" + inkscape:connector-curvature="0" /> + id="id-5727edde-9de0-41e1-89a8-8986cef89c4b" + style="overflow:visible"> + id="id-c6dc18f1-77c4-4f5b-a06e-43bb7768df91" + inkscape:connector-curvature="0" /> + id="id-b0077620-6c8a-4f68-9dbb-dc8d1b9835f5" + style="overflow:visible"> + id="id-b638c59c-001d-4905-9069-60e913071ed4" + inkscape:connector-curvature="0" /> + id="id-599edc1a-3101-4a5e-a36c-a1e06fd00603" + style="overflow:visible"> + id="id-b6c3c897-cd4c-4513-b250-6c0f1cc93d01" + inkscape:connector-curvature="0" /> + id="id-f4a5ae47-3416-47ab-8812-32b53f3495f7" + style="overflow:visible"> + id="id-b6ca682c-0dcf-41d5-b3ff-c44f705f97f8" + inkscape:connector-curvature="0" /> @@ -1441,427 +1512,533 @@ id="id-866b9d89-8530-4c01-aca3-dfcf9f167ff2"> + id="id-20191577-925b-4721-a301-0ccf2bef2e5d" + style="overflow:visible"> + id="id-83ddc62a-d385-458c-9a65-ce4685218283" + inkscape:connector-curvature="0" /> + id="id-20d87416-09ea-4128-a07c-8673d7f8c7d6" + style="overflow:visible"> + id="id-b60c2c94-6119-42f8-9243-a9fb6b7956b6" + inkscape:connector-curvature="0" /> + id="id-11ca6b63-98d0-4c31-adaa-d7c8ef6ebeaf" + style="overflow:visible"> + id="id-ea1e6583-4504-48c3-9640-5aff1ef440d9" + inkscape:connector-curvature="0" /> + id="id-c45079c9-23f8-4dec-ac1e-f3c235e56be0" + style="overflow:visible"> + id="id-43eb4b39-30e1-49fe-bf53-7512d6e184bf" + inkscape:connector-curvature="0" /> + id="id-d62d6ad1-de4d-4326-b6e5-d9f58c55a657" + style="overflow:visible"> + id="id-833553d8-3b78-481f-bc28-499fce6cde4a" + inkscape:connector-curvature="0" /> + id="id-c879be9a-3e07-47c9-b649-35c47c607dea" + style="overflow:visible"> + id="id-a2b475a1-a500-4480-bf4a-b2f18902336d" + inkscape:connector-curvature="0" /> + id="id-3627a21a-748e-4669-abe2-db2d5936e1ad" + style="overflow:visible"> + id="id-d4f92ba7-9d7f-432f-87b8-c62c637f54d9" + inkscape:connector-curvature="0" /> + id="id-360a72b5-4350-4ed2-b6ed-bf301ed20617" + style="overflow:visible"> + id="id-316cce9d-8d85-4db5-a0c6-06c5ebf063c1" + inkscape:connector-curvature="0" /> + id="id-ceb12ac5-b089-4228-afa9-45f0988961cc" + style="overflow:visible"> + id="id-593adde4-7447-4606-b45a-89a4f09d1f79" + inkscape:connector-curvature="0" /> + id="id-ee89bf1e-3112-42ce-b5c5-1a1e2b33021b" + style="overflow:visible"> + id="id-a036848a-04b8-4a0a-be9d-67cafa333b6f" + inkscape:connector-curvature="0" /> + id="id-ab394ddf-f5af-44e2-b3c2-949aca23c50c" + style="overflow:visible"> + id="id-e3ef12f2-4daf-41fc-bd4b-b01d7bed7de8" + inkscape:connector-curvature="0" /> + id="id-871a3fc0-c26b-4640-ae1e-80edc9f3478c" + style="overflow:visible"> + id="id-889754da-088e-4c02-b581-8f3b4bb78480" + inkscape:connector-curvature="0" /> + id="id-ebe903d1-4931-410e-b4b7-202df3cd04a1" + style="overflow:visible"> + id="id-47244d09-43d9-4251-9e33-19cde29199e3" + inkscape:connector-curvature="0" /> + id="id-ba5745aa-1289-44ca-9bf5-714ea7d9e412" + style="overflow:visible"> + id="id-2729e7fc-133c-4056-846a-262388c92619" + inkscape:connector-curvature="0" /> + id="id-5cc2b572-d8c8-44f0-9442-b75285964682" + style="overflow:visible"> + id="id-d71dc0ea-aaae-4dd1-a425-79a6ae0508b3" + inkscape:connector-curvature="0" /> + id="id-da783539-92f7-4567-be7a-7dc759988c09" + style="overflow:visible"> + id="id-706149b8-fd12-4472-9155-2c9347d11df6" + inkscape:connector-curvature="0" /> + id="id-05207000-a1a0-4181-af65-f69d26a00f2b" + style="overflow:visible"> + id="id-226fc5f1-016c-4ccd-9bc7-6c8046610ad5" + inkscape:connector-curvature="0" /> + id="id-bb3325d4-8349-4130-a31f-74b88cbb0ac5" + style="overflow:visible"> + id="id-5f1b874e-cf6a-48ff-bd7f-6b4eff1050d6" + inkscape:connector-curvature="0" /> + id="id-647aa125-e033-450a-8c26-4fb4632e6038" + style="overflow:visible"> + id="id-79837ffc-4b11-4e2e-bf98-9fd918406fda" + inkscape:connector-curvature="0" /> + id="id-15901e59-f61e-483d-b584-42e5f16a8920" + style="overflow:visible"> + id="id-9156cb20-bbbe-49f2-9744-50dd0275bfed" + inkscape:connector-curvature="0" /> + id="id-c829d63a-3ce0-432a-b8ec-3a172fd5b478" + style="overflow:visible"> + id="id-015f30ac-8f9f-46c4-8f3d-0af411cf62e4" + inkscape:connector-curvature="0" /> + id="id-11268275-85a7-461a-bd59-d1c59f4d1f64" + style="overflow:visible"> + id="id-5cd31979-7685-4605-b6c0-848506a2beb7" + inkscape:connector-curvature="0" /> + id="id-5439d6f9-0564-430c-911a-b48b11f1cfee" + style="overflow:visible"> + id="id-d62182a5-fce9-4890-9f8e-109759ad7160" + inkscape:connector-curvature="0" /> + id="id-86d6269f-59e8-48e9-a2f3-7bc81c99da56" + style="overflow:visible"> + id="id-dd04b27d-cc34-4610-b646-930f7113b526" + inkscape:connector-curvature="0" /> + id="id-86137479-757a-4e85-a165-a693f3d9275c" + style="overflow:visible"> + id="id-d304a14e-8252-4663-a649-c2ce5b2322cb" + inkscape:connector-curvature="0" /> + id="id-56bb2087-fcfa-42e8-a0ed-bf083f02fe3d" + style="overflow:visible"> + id="id-9e5b78d5-1bac-4827-9fc3-8bfd30caefd9" + inkscape:connector-curvature="0" /> + id="id-fbf179a1-1dc1-46de-81b3-fd68a69e017d" + style="overflow:visible"> + id="id-26b00489-7799-45ef-b0f9-3d60390935f7" + inkscape:connector-curvature="0" /> + id="id-8bfb977f-9c54-4b7e-9fc8-3d9bb93601fe" + style="overflow:visible"> + id="id-7440fed1-4052-4cbe-8ae8-f5bfa4e0efaf" + inkscape:connector-curvature="0" /> + id="id-ec97404c-f0be-4376-af0b-1029187c308f" + style="overflow:visible"> + id="id-2c37c930-6bac-4396-945c-a7e8770dda63" + inkscape:connector-curvature="0" /> + id="id-1c8d4c32-8532-47aa-a514-dd0ab61727a3" + style="overflow:visible"> + id="id-e424f076-98c2-42cb-a9a4-d03422302178" + inkscape:connector-curvature="0" /> + id="id-7de674f4-c3d7-405b-b075-9d13c30d637d" + style="overflow:visible"> + id="id-7ebfe0d2-7802-499a-9103-db734acf6286" + inkscape:connector-curvature="0" /> + id="id-d48ea2d0-cfe9-43bc-9932-18c1705f55ef" + style="overflow:visible"> + id="id-16886f91-a964-484b-b587-d92273bc5305" + inkscape:connector-curvature="0" /> + id="id-a89cd2da-6157-4837-8441-5121f4008184" + style="overflow:visible"> + id="id-0d8375ee-e17d-4ad9-99ae-ecf128386732" + inkscape:connector-curvature="0" /> + id="id-731039a8-64c7-404b-af82-a33119403d11" + style="overflow:visible"> + id="id-5e777343-eef0-4e22-afa4-be591a88a956" + inkscape:connector-curvature="0" /> + id="id-6eb9234b-e6a0-4092-90a2-2f03220fdc6a" + style="overflow:visible"> + id="id-ce6b921a-e014-45c1-9c78-bc3b6ee9ffe8" + inkscape:connector-curvature="0" /> + id="id-9596bd78-82f3-4e33-bbeb-19b3c8b98dd2" + style="overflow:visible"> + id="id-5209fab9-6735-44f1-80f1-2fe6d290ad89" + inkscape:connector-curvature="0" /> + id="id-a3db7721-f118-4907-96b3-a4da9b324107" + style="overflow:visible"> + id="id-3c8ee776-868b-4b19-9c33-bd43e8539c94" + inkscape:connector-curvature="0" /> + id="id-9d5968d4-e64d-48ea-90b9-d587f4b48307" + style="overflow:visible"> + id="id-629ec691-0873-4d1f-a992-f4437b701560" + inkscape:connector-curvature="0" /> + id="id-7425609a-f637-4bb8-ad79-b7e235f3ca0b" + style="overflow:visible"> + id="id-eeb3a1ae-762f-45f3-a39f-ce081c2cd41c" + inkscape:connector-curvature="0" /> + id="id-c37bec20-1030-41c0-9677-d6c2ad54d3c0" + style="overflow:visible"> + id="id-30a1933d-e57c-44b7-9250-d7b76208091c" + inkscape:connector-curvature="0" /> + id="id-14860a42-d29b-4f56-8349-c840df740407" + style="overflow:visible"> + id="id-3faef2ce-8a7c-4c98-ba7d-17ed072bdd03" + inkscape:connector-curvature="0" /> + id="id-d8d8dc3b-b230-4a82-b41f-cfd5e7b8782d" + style="overflow:visible"> + id="id-1b8d2c64-6ef8-4c87-9ce6-d952acb73dd9" + inkscape:connector-curvature="0" /> + id="id-5a3be5fb-8e16-4035-967b-518c8ed25199" + style="overflow:visible"> + id="id-70c191ed-25a8-4628-8747-afef17700007" + inkscape:connector-curvature="0" /> + id="id-988e8322-c234-4500-a837-c8bf58481953" + style="overflow:visible"> + id="id-e853d99d-5570-4bd2-94d1-3c561ce3ade1" + inkscape:connector-curvature="0" /> + id="id-3db3deb0-f4c1-4ba0-a36d-0a09bdcb7349" + style="overflow:visible"> + id="id-95105687-efb0-413f-99ac-a377c9982742" + inkscape:connector-curvature="0" /> + id="id-4249c0ef-e74a-4576-87a3-7d06a9feb885" + style="overflow:visible"> + id="id-77191fb2-d906-49df-bf8a-6ef9203755ac" + inkscape:connector-curvature="0" /> + id="id-a35509f2-6d6b-4417-b5f1-f5efb6afaf48" + style="overflow:visible"> + id="id-d3cc4973-73c8-4cd1-ba87-79ca757f59db" + inkscape:connector-curvature="0" /> + id="id-e67d6789-4a49-4240-9fa0-4fb801eeafab" + style="overflow:visible"> + id="id-1e3b3a4a-220b-478e-a7be-43d6d5bc4703" + inkscape:connector-curvature="0" /> + id="id-513e8846-5ec9-4bd7-9a2c-a0af322b6372" + style="overflow:visible"> + id="id-e6f9ac80-f641-4928-a876-b28442b2adee" + inkscape:connector-curvature="0" /> + id="id-f515ca8f-c37d-43c9-a40e-7b27915f5c4c" + style="overflow:visible"> + id="id-6f9b3634-ff93-4727-b336-609336b25724" + inkscape:connector-curvature="0" /> + id="id-e28c822d-c4cc-4c87-82a5-68e401b69f28" + style="overflow:visible"> + id="id-484e893c-610c-446c-a425-025b1b78d9ff" + inkscape:connector-curvature="0" /> + id="id-5f07d7d3-4207-4990-b597-dce03dedc306" + style="overflow:visible"> + id="id-17ab1bf2-deff-4644-ab4d-86fa6d410810" + inkscape:connector-curvature="0" /> + id="id-2117854d-0de9-4d7c-bd8d-c1d8840a6629" + style="overflow:visible"> + id="id-797400ec-3c98-453b-bdd0-5aa77b2e5bb4" + inkscape:connector-curvature="0" /> @@ -1979,147 +2156,183 @@ id="id-1a266726-eb14-4e24-8106-d7164008b378"> + id="id-db9d19c0-979e-44ae-8eb4-1049dc3af9b6" + style="overflow:visible"> + id="id-b41e8575-0aac-40d1-a6e0-3d70f34e06f7" + inkscape:connector-curvature="0" /> + id="id-c0e2f17b-efc4-4601-b0cd-1b05a2c1472a" + style="overflow:visible"> + id="id-c9e7462f-ddce-4002-9dcc-34974d56c68d" + inkscape:connector-curvature="0" /> + id="id-9fad458f-fd52-48bd-9c31-c52e676e41c9" + style="overflow:visible"> + id="id-26a21e17-c19a-40b6-8516-7e9ef072cd11" + inkscape:connector-curvature="0" /> + id="id-7a50b7f5-3e0e-4ba9-a6e5-45a41b167ad4" + style="overflow:visible"> + id="id-8c1e6e9c-4781-4550-939f-e1fdf7e15edb" + inkscape:connector-curvature="0" /> + id="id-4ec6d2fc-058c-4157-bce4-817edc818764" + style="overflow:visible"> + id="id-d68e8c2e-736a-4abd-9b0b-fa2a9e769159" + inkscape:connector-curvature="0" /> + id="id-b75baacf-ed92-4684-9c5e-05b6019516ec" + style="overflow:visible"> + id="id-e55daa28-2131-4d17-9f3e-d9d9c3f5a092" + inkscape:connector-curvature="0" /> + id="id-286a8cbc-bc94-4327-bf46-d5dabb8841bc" + style="overflow:visible"> + id="id-48fc9c54-4fee-41fc-9f08-bf4cb9f04ed1" + inkscape:connector-curvature="0" /> + id="id-ca3a4e32-2302-4fde-82cf-6c4b61eba3ab" + style="overflow:visible"> + id="id-825431fc-6a7f-482c-bdda-cc5dd2c07c45" + inkscape:connector-curvature="0" /> + id="id-938b3d18-c01e-4ed5-b365-e44484cdfeac" + style="overflow:visible"> + id="id-6f9a7211-e495-4e3e-a03c-d56ca017dd08" + inkscape:connector-curvature="0" /> + id="id-e2a8e4af-edd9-4a95-95db-01ffe6a52259" + style="overflow:visible"> + id="id-1fe9917b-9e7d-4b27-aa5d-950f3bb92c12" + inkscape:connector-curvature="0" /> + id="id-4aa7dbf5-c775-4133-8361-c4b6c03e2b87" + style="overflow:visible"> + id="id-1063295c-5946-40cb-8c0f-737e198e14bc" + inkscape:connector-curvature="0" /> + id="id-8e26d3f9-0acc-40cc-8b7c-7a11f5b79e8c" + style="overflow:visible"> + id="id-9b92f3e4-9f8a-4648-8aa9-b1096e7b546b" + inkscape:connector-curvature="0" /> + id="id-3b3bfe1a-ed36-4905-b50c-39831b0f0fcc" + style="overflow:visible"> + id="id-70859586-f380-42ce-b947-7bbaffe01c6e" + inkscape:connector-curvature="0" /> + id="id-60de2980-e1f0-4c47-8d84-b48afdf96bd8" + style="overflow:visible"> + id="id-17bb5264-38c6-4828-b7e6-e48098dedbb9" + inkscape:connector-curvature="0" /> + id="id-f5ae276e-c137-45f3-90a3-04d00bbf1698" + style="overflow:visible"> + id="id-8f5478bf-32be-4c44-8dda-22254c605163" + inkscape:connector-curvature="0" /> + id="id-bdcec0e4-a7eb-46ae-9284-b55b9194326d" + style="overflow:visible"> + id="id-ce684b25-dd47-4d0d-bb0b-3944adbcbe36" + inkscape:connector-curvature="0" /> + id="id-27c1fd3d-626a-4793-9acb-d71e97391d77" + style="overflow:visible"> + id="id-29459746-1b61-4e72-be89-c4d34eb3f57b" + inkscape:connector-curvature="0" /> + id="id-1801de5e-72a6-4d20-88ee-8f08b08dc12d" + style="overflow:visible"> + id="id-4d10b06e-7f70-48d4-a578-21da1c77ccfb" + inkscape:connector-curvature="0" /> @@ -2129,307 +2342,383 @@ id="id-8ee390bd-e362-4043-b76f-8fae701d2b9d"> + id="id-370090c0-f229-4cc3-b977-d1f2b2cfb282" + style="overflow:visible"> + id="id-f7b0409f-6d68-425b-bd2b-b8196eca4bf5" + inkscape:connector-curvature="0" /> + id="id-9488b61b-8748-4b99-a3ce-f86fb51eac50" + style="overflow:visible"> + id="id-4bf623d1-d500-401e-b646-72d69561e577" + inkscape:connector-curvature="0" /> + id="id-6b538197-379f-422b-a81d-d4d84913155d" + style="overflow:visible"> + id="id-8fa9b461-2f7c-4c61-bc9c-92f7a416a324" + inkscape:connector-curvature="0" /> + id="id-f6418776-b05a-42f6-94eb-29f04542ee17" + style="overflow:visible"> + id="id-09045097-edad-4a43-bf86-b07f8f358f63" + inkscape:connector-curvature="0" /> + id="id-c0679ceb-f5b2-41a9-8d39-ad22866fed8f" + style="overflow:visible"> + id="id-37d298fd-4917-431c-bf88-583cc01fa857" + inkscape:connector-curvature="0" /> + id="id-c990d75b-e47f-46e8-bd3f-759fb991cafe" + style="overflow:visible"> + id="id-a6349817-5dd2-4da7-a6d3-7ebda60ec3ef" + inkscape:connector-curvature="0" /> + id="id-4d9d4e27-ee31-4e15-a85c-7c5dc455b02f" + style="overflow:visible"> + id="id-c8a0277b-fb57-4f45-88d1-cd2722e8ebaf" + inkscape:connector-curvature="0" /> + id="id-de50a2d6-fb1e-4b2b-bc10-f211389e7d09" + style="overflow:visible"> + id="id-c14b5fdf-53e9-43c8-8cf3-8786b23c1357" + inkscape:connector-curvature="0" /> + id="id-d8d9aff2-a4b0-4e9b-8b69-5e97cefc7bfa" + style="overflow:visible"> + id="id-c5a8d00b-5634-4cd2-8afe-e9e51cf1b265" + inkscape:connector-curvature="0" /> + id="id-6dfbdb36-fd0d-4e40-93f0-0d02bc2c5cf6" + style="overflow:visible"> + id="id-a008abef-0965-4fa9-b9b4-279dadb21b67" + inkscape:connector-curvature="0" /> + id="id-e028364c-5b83-4bcf-a9d7-cdb669d0cdcf" + style="overflow:visible"> + id="id-cbe15ad5-7a10-49fa-b92f-5112a7e4d587" + inkscape:connector-curvature="0" /> + id="id-d4cff158-f5af-4692-9760-dbb894f61a84" + style="overflow:visible"> + id="id-a5a2ab1e-d242-402a-8bab-16e8a36fb652" + inkscape:connector-curvature="0" /> + id="id-3babefc6-79d4-4d6e-baba-314bfdd22cc5" + style="overflow:visible"> + id="id-ae190d07-f842-4069-b90e-83fc2e3156e0" + inkscape:connector-curvature="0" /> + id="id-c2a9c6c8-804e-4359-882b-cb7610edffa4" + style="overflow:visible"> + id="id-9d99f6b7-2e04-4a33-b4d8-9c159746384a" + inkscape:connector-curvature="0" /> + id="id-2a50fd73-ca50-461a-8eda-6bf80acc1641" + style="overflow:visible"> + id="id-6b09adb5-13cb-46e1-89d6-3dcc4ffe780b" + inkscape:connector-curvature="0" /> + id="id-cc00f59c-a5d5-406a-8c88-29a1ea56c0ff" + style="overflow:visible"> + id="id-b4f6ca8f-13e1-4d81-b89e-cb800c6d4256" + inkscape:connector-curvature="0" /> + id="id-59c940ac-21ce-4f82-940d-30dcf09dddc4" + style="overflow:visible"> + id="id-cd882bdb-b6bd-4684-90f7-b87c7b0f80c2" + inkscape:connector-curvature="0" /> + id="id-2949049c-3af9-40d9-92fd-7a42e0ca038e" + style="overflow:visible"> + id="id-e87db3a9-156b-4af5-b647-78835aba8505" + inkscape:connector-curvature="0" /> + id="id-4a71ee48-769b-4dc5-8865-a4d6a804da20" + style="overflow:visible"> + id="id-ed00a3e2-70c9-4957-9001-af9e27a854e7" + inkscape:connector-curvature="0" /> + id="id-330ba1c6-e272-4897-a0e2-3ac94b5ad2e2" + style="overflow:visible"> + id="id-d3bac7c2-de64-4c1c-ae78-feab0f3eed1f" + inkscape:connector-curvature="0" /> + id="id-5497a3de-845e-4c79-b809-3096ea7c4360" + style="overflow:visible"> + id="id-05665a3b-447d-4848-b458-60642cba6adc" + inkscape:connector-curvature="0" /> + id="id-afb81de3-fcbb-484c-89d5-cfa52f1e4d72" + style="overflow:visible"> + id="id-a156bd31-e009-4a29-b320-fbed4c2bc419" + inkscape:connector-curvature="0" /> + id="id-35242800-b040-42a0-91f8-544563fa571a" + style="overflow:visible"> + id="id-ee222360-06be-4819-bbec-6d5316d18964" + inkscape:connector-curvature="0" /> + id="id-4eae52fb-fcd9-4c6c-afaf-885896464b3b" + style="overflow:visible"> + id="id-cd272b01-ca78-4b58-a0b4-02df35b014cf" + inkscape:connector-curvature="0" /> + id="id-0bf0725f-f2ef-4d35-a60d-3a5f6d6d8657" + style="overflow:visible"> + id="id-3571f176-2935-43a3-a8df-6ccb88e6ef44" + inkscape:connector-curvature="0" /> + id="id-29b57628-9858-473c-b8f6-1869f1c54db7" + style="overflow:visible"> + id="id-6fb8a592-81a4-46bd-8c7d-54389c7f7204" + inkscape:connector-curvature="0" /> + id="id-7f711d12-11d1-4f90-98b0-14a81148589f" + style="overflow:visible"> + id="id-dd444034-82f2-4610-b34a-9bde91838752" + inkscape:connector-curvature="0" /> + id="id-d483172b-eef6-4f3c-9f43-af04f0a2856d" + style="overflow:visible"> + id="id-24a609d8-5b9b-403d-9d3e-e43bf54378eb" + inkscape:connector-curvature="0" /> + id="id-7062763c-299d-4ac9-b156-06fa9950e65e" + style="overflow:visible"> + id="id-c3ccaae8-8806-474d-8a5d-f67427ea4f17" + inkscape:connector-curvature="0" /> + id="id-4afdef35-231b-4176-937a-51623c739bec" + style="overflow:visible"> + id="id-f3495068-d6e7-4a83-8aed-e599cb957d14" + inkscape:connector-curvature="0" /> + id="id-8ea65ab2-940a-4409-aecb-41deb443e3fb" + style="overflow:visible"> + id="id-0868500f-e489-4ce9-a4d6-7412e00ec043" + inkscape:connector-curvature="0" /> + id="id-362b39e6-8324-4ec3-bad6-c6d820cdf9a4" + style="overflow:visible"> + id="id-629dbe59-ecc1-4666-969a-5d6223425e66" + inkscape:connector-curvature="0" /> + id="id-2ba1aa66-5168-4252-9a67-474ef3911b44" + style="overflow:visible"> + id="id-fc0af5e4-b0e8-4e85-b7a2-133b5e00f054" + inkscape:connector-curvature="0" /> + id="id-85dd834a-0056-4d06-aeed-b2864777dc6c" + style="overflow:visible"> + id="id-4171190d-99a2-4561-b3e0-6d3580cf05de" + inkscape:connector-curvature="0" /> + id="id-6d110b19-6ebf-4fb0-98fb-44055883caa9" + style="overflow:visible"> + id="id-04cae73f-72b9-4346-a225-6b8ef3dfea49" + inkscape:connector-curvature="0" /> + id="id-5907229d-cd57-47c2-8720-cfe65c6f8cc9" + style="overflow:visible"> + id="id-4bfc7d03-f540-45a3-bbec-0aebc6139447" + inkscape:connector-curvature="0" /> + id="id-3ebf5f52-1146-4d24-9542-5311d10d2025" + style="overflow:visible"> + id="id-30287741-6df7-47bd-86ac-32fbd086f215" + inkscape:connector-curvature="0" /> + id="id-115048c2-58bb-4b2c-89ee-e1e3c5eca9e9" + style="overflow:visible"> + id="id-1ecad964-cf4c-47ca-be8e-fb47461c68e3" + inkscape:connector-curvature="0" /> @@ -2439,251 +2728,313 @@ id="id-2e586840-ba83-43a2-b1ba-75c1f178fe7a"> + id="id-ddc09d16-7f10-47d4-aa9a-cd4ffdcc2aee" + style="overflow:visible"> + id="id-b299f53a-9603-4bc5-aa37-ed9566683c71" + inkscape:connector-curvature="0" /> + id="id-5213cb68-d4e8-498f-abc7-00c0c5e8417f" + style="overflow:visible"> + id="id-d6a63460-22ef-4917-b24b-bdae54463558" + inkscape:connector-curvature="0" /> + id="id-35038faf-ec69-4739-9d59-368b62527749" + style="overflow:visible"> + id="id-b85b87e2-e118-45d0-91be-43c6b32f7278" + inkscape:connector-curvature="0" /> + id="id-e2e4ef6c-e715-4bec-9514-94f975c9043b" + style="overflow:visible"> + id="id-df8d504f-3866-4e34-b575-8191ef3248c1" + inkscape:connector-curvature="0" /> + id="id-53305245-91a1-4f23-ba25-e1e2ba997b1e" + style="overflow:visible"> + id="id-9f8e35e3-7816-45f2-89d3-4b70d58d6a52" + inkscape:connector-curvature="0" /> + id="id-bb54557c-f00c-4836-99bf-c21186854765" + style="overflow:visible"> + id="id-601603ca-5de6-4ef0-8616-acc20364c538" + inkscape:connector-curvature="0" /> + id="id-757f8a4b-8d7c-403c-bfe0-7b48bc875bc4" + style="overflow:visible"> + id="id-8f6a4071-5304-4fc9-bbd0-a668b6f311ad" + inkscape:connector-curvature="0" /> + id="id-1f8626e2-e0b5-4175-8286-81341c9f6e30" + style="overflow:visible"> + id="id-948174ab-9265-4d14-916a-513dc2176828" + inkscape:connector-curvature="0" /> + id="id-2aa4e615-4f0d-4e5e-8bac-776f9ef66a04" + style="overflow:visible"> + id="id-886b8908-3239-43ce-9df4-3a4be133d1b1" + inkscape:connector-curvature="0" /> + id="id-5b3ba1d6-b1f5-4ef4-bba7-74f46c5b8b2a" + style="overflow:visible"> + id="id-81ce085e-adb9-4a16-a725-7399ed174197" + inkscape:connector-curvature="0" /> + id="id-864319a9-3c41-4fc9-b630-9279c9543d2e" + style="overflow:visible"> + id="id-3d776d4e-6df7-4657-b5f7-32c421b948c8" + inkscape:connector-curvature="0" /> + id="id-4641e063-99d4-46df-beca-34484eeafdff" + style="overflow:visible"> + id="id-3267f133-a3e4-4638-9b18-53744ec45680" + inkscape:connector-curvature="0" /> + id="id-682a44f2-499e-4ba0-aea6-d91b97cd360b" + style="overflow:visible"> + id="id-3150c039-5518-49be-8866-bc5d45e8412e" + inkscape:connector-curvature="0" /> + id="id-b9bc7d0e-492d-46a8-aae6-b095e788df2c" + style="overflow:visible"> + id="id-156b015c-72d2-4e8d-a43d-3f71f8002a31" + inkscape:connector-curvature="0" /> + id="id-67c50d9c-47fb-4806-b0bc-d2104a18c249" + style="overflow:visible"> + id="id-021d5287-3906-4193-b196-22a15bb05563" + inkscape:connector-curvature="0" /> + id="id-3b31ff6e-d6b3-4531-824c-116db12ae036" + style="overflow:visible"> + id="id-d8e393fa-2fd5-45da-b616-59bf2a31d011" + inkscape:connector-curvature="0" /> + id="id-d81e0164-c391-4493-a557-b98f0301bba0" + style="overflow:visible"> + id="id-1f7d6351-0d68-4817-a0dc-bf9430df72dd" + inkscape:connector-curvature="0" /> + id="id-26c223e6-13d3-47bc-8571-ebe69ce64f74" + style="overflow:visible"> + id="id-9f78ae27-da46-4cae-9610-edd197791fb8" + inkscape:connector-curvature="0" /> + id="id-fd7e146e-fdb0-49a4-9587-fd6e8332b092" + style="overflow:visible"> + id="id-b07c15f0-88b5-4fa4-85eb-1548642e53a6" + inkscape:connector-curvature="0" /> + id="id-c2fa87bf-1f45-41c7-a4c9-795985193384" + style="overflow:visible"> + id="id-1e74fb07-89e6-4045-8046-b25c23c35827" + inkscape:connector-curvature="0" /> + id="id-c15edaf6-d264-44c8-85dc-67cbdae4efbb" + style="overflow:visible"> + id="id-05438fcf-49c3-486a-9862-2908b17ca473" + inkscape:connector-curvature="0" /> + id="id-65327638-e5c3-4fa6-94f6-a387e64d25c6" + style="overflow:visible"> + id="id-a2a3460f-df3c-455b-b53a-9bce15c8f50a" + inkscape:connector-curvature="0" /> + id="id-ed2624f0-e19b-4aa4-907b-fb4f5d72e157" + style="overflow:visible"> + id="id-e636cdc3-3ae1-4993-9148-a0920f01822b" + inkscape:connector-curvature="0" /> + id="id-b69c849b-9703-41e5-8af0-7e30c7e1b155" + style="overflow:visible"> + id="id-15d2c571-f9a1-46f3-b9c0-b7cabf2994f6" + inkscape:connector-curvature="0" /> + id="id-172ba32e-38db-4b24-b013-be90fe0eb329" + style="overflow:visible"> + id="id-71ba2af7-4fc0-43ff-a726-7b0a1fa1f411" + inkscape:connector-curvature="0" /> + id="id-95f42b18-62e1-4547-8b97-a91d473ede6f" + style="overflow:visible"> + id="id-45784045-d046-43d3-9939-275a27c39c0c" + inkscape:connector-curvature="0" /> + id="id-33ab558b-a585-4fc1-aa36-20464889a9e8" + style="overflow:visible"> + id="id-8b8b17ce-7cd0-470d-b0df-f726a27ce062" + inkscape:connector-curvature="0" /> + id="id-edaa639b-b280-4a98-a67c-553c01e977c2" + style="overflow:visible"> + id="id-1ccf3fe5-4fb6-4cc2-ab89-bbd5baa0d3fc" + inkscape:connector-curvature="0" /> + id="id-17ba2fda-eb63-4bee-b4a3-1bd53fc83b4b" + style="overflow:visible"> + id="id-e4b4ed38-03e4-4a90-8512-5d35a6ecce68" + inkscape:connector-curvature="0" /> + id="id-22ccb208-0473-4b07-8e3c-3cdd9947cf9b" + style="overflow:visible"> + id="id-276044c6-d417-468f-ab8e-5b027291bac2" + inkscape:connector-curvature="0" /> + id="id-a2831b9e-d6ff-4af2-aa54-990ae033608c" + style="overflow:visible"> + id="id-828228cc-37e7-4c61-8747-1108a5187370" + inkscape:connector-curvature="0" /> @@ -2693,307 +3044,383 @@ id="g79784"> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -3003,187 +3430,233 @@ id="id-bbd7b9fb-e6b9-4868-ab11-d2406bf430d8"> + id="id-772f94d3-1c7c-413c-b02b-77fee8b232b1" + style="overflow:visible"> + id="id-7bf53810-bef0-4644-895c-afa8d5f4c1a8" + inkscape:connector-curvature="0" /> + id="id-08cf0f37-1788-4dd9-842c-73fd28c590c7" + style="overflow:visible"> + id="id-247ba765-3580-4bba-85bd-f999fd587a8e" + inkscape:connector-curvature="0" /> + id="id-d4588d22-5358-4c82-8582-ceb1ed91ddbe" + style="overflow:visible"> + id="id-9b8b45b2-24e9-4586-99ed-232be95d0f2a" + inkscape:connector-curvature="0" /> + id="id-e9016403-9827-4813-8775-b30ca6772f13" + style="overflow:visible"> + id="id-5684dc98-a475-4304-a660-5945e8d4161d" + inkscape:connector-curvature="0" /> + id="id-04de9723-8e0f-4a3e-b198-aa92e212cf9d" + style="overflow:visible"> + id="id-37f764fe-a25f-44eb-9e07-611d03e3628e" + inkscape:connector-curvature="0" /> + id="id-f7a213d1-55c2-4417-8bca-ecf6af70346d" + style="overflow:visible"> + id="id-e133a3b8-c4ca-43a3-8156-340baee375ba" + inkscape:connector-curvature="0" /> + id="id-558e1bfc-3507-450b-96ff-78352ac5c5e5" + style="overflow:visible"> + id="id-2d60e0d4-0350-45e7-aa09-33f36e94a55e" + inkscape:connector-curvature="0" /> + id="id-8e9d253d-e017-4e16-b27e-8ee6f6fdfc6d" + style="overflow:visible"> + id="id-fc684379-08b4-486f-872a-6a93198b2de5" + inkscape:connector-curvature="0" /> + id="id-1d012433-f204-4f69-a977-b0f7131cacd7" + style="overflow:visible"> + id="id-f6e1f947-f403-4789-b020-867dbf11861b" + inkscape:connector-curvature="0" /> + id="id-0b4125e2-3610-45f6-ad7a-231d5ae93139" + style="overflow:visible"> + id="id-d44d535a-072f-4d4a-a0a1-088918a0b650" + inkscape:connector-curvature="0" /> + id="id-f2c00f08-ada4-4cfa-903e-390d92bba462" + style="overflow:visible"> + id="id-b98ed50a-27e3-4abe-ab90-81af3760872c" + inkscape:connector-curvature="0" /> + id="id-ecb1a6f9-551a-476d-9896-e698d1ffa6e8" + style="overflow:visible"> + id="id-4aa1ae69-5b27-40c3-abfd-201fd4d25c96" + inkscape:connector-curvature="0" /> + id="id-b8e583dd-2d0c-47c8-819d-662faee17a76" + style="overflow:visible"> + id="id-c5148675-f0aa-4734-9a46-a558041e162a" + inkscape:connector-curvature="0" /> + id="id-03fe1a7f-5086-4b5c-92cb-bce8480c44d0" + style="overflow:visible"> + id="id-23f14dd3-1abe-4646-962f-b6005d27e986" + inkscape:connector-curvature="0" /> + id="id-d348df3c-aff1-4243-b567-d75aa4340561" + style="overflow:visible"> + id="id-c2ab98f8-e781-48fb-a668-0a2b740f0a4d" + inkscape:connector-curvature="0" /> + id="id-7fe7088a-1265-48b7-99a8-d6e6b78e882b" + style="overflow:visible"> + id="id-63231045-4a0b-44fd-bd65-bb509a6d6e3a" + inkscape:connector-curvature="0" /> + id="id-41ab9fd8-ab99-41b9-8347-3f61eb41d911" + style="overflow:visible"> + id="id-80b5b671-68ea-477f-b635-e554fe5073ec" + inkscape:connector-curvature="0" /> + id="id-ee40d6c2-2120-4645-a397-132b9a1f866b" + style="overflow:visible"> + id="id-4d1ee7f1-49c2-468c-8bce-652609decfec" + inkscape:connector-curvature="0" /> + id="id-4caf66f9-96f0-4644-9c84-320357b119a1" + style="overflow:visible"> + id="id-d3b8a1ac-016f-4be5-a0f0-6a12c86f2198" + inkscape:connector-curvature="0" /> + id="id-e78979c5-5838-43f4-8c7d-beabb68ae356" + style="overflow:visible"> + id="id-9d6ac180-41e1-4985-89f7-890b6d3d1cd0" + inkscape:connector-curvature="0" /> + id="id-38ffa48e-e27a-46a2-9c2f-45d249e3fadb" + style="overflow:visible"> + id="id-9a3e34dc-fe1b-420c-b327-3c2b9d7b1a08" + inkscape:connector-curvature="0" /> + id="id-73a26404-9d18-4769-857f-17fa4668d155" + style="overflow:visible"> + id="id-9fbd6f1e-6ec0-4c4a-a7f2-656feb4aa277" + inkscape:connector-curvature="0" /> + id="id-46de0d22-ba59-4550-82e4-b2d190af608a" + style="overflow:visible"> + id="id-62f2ae84-563c-434a-accb-9b675ec3b652" + inkscape:connector-curvature="0" /> @@ -3193,107 +3666,133 @@ id="g8171"> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -3308,9 +3807,10 @@ inkscape:stockid="TriangleOutL"> + id="path29974-0" + inkscape:connector-curvature="0" /> + id="path29974-5" + inkscape:connector-curvature="0" /> + id="base"> + units="cm" + originx="-7.028636" + originy="-16.393255" /> @@ -3373,6 +3875,7 @@ image/svg+xml + @@ -3380,9 +3883,9 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" - style="display:inline"> + transform="translate(-7.028636,-3.6067411)"> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -3739,7 +4324,8 @@ + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -4746,7 +5481,8 @@ + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + id="g162436" + style="fill:#6f250f;fill-opacity:0.94117647"> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-cae7ab4b-fee5-46f4-9ccf-3e1f9547ce36" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647"> + id="g162381" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162384" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162387" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162390" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162393" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162396" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162399" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162402" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162405" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647"> + id="g162409" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647"> + id="g162413" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162416" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647"> + id="g162420" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162423" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162426" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162429" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + id="g162432" + style="fill:#6f250f;fill-opacity:0.94117647"> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> @@ -6436,7 +7390,8 @@ + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -6895,7 +7921,8 @@ + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -7334,7 +8435,8 @@ + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> @@ -8049,7 +9283,8 @@ + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(73.866,89.816)" + id="g49087"> + id="id-4b2345d0-3f48-461c-bbfb-b3201426f790" + d="M 6.15625,0 4.171875,-3.25 C 5.203125,-3.546875 5.875,-4.25 5.875,-5.0625 5.875,-6.046875 4.78125,-6.921875 3.359375,-6.921875 H 0.953125 V 0 H 1.8125 V -3.15625 H 3.390625 L 5.265625,0 Z M 5.0625,-5.0625 c 0,0.703125 -0.640625,1.296875 -1.8125,1.296875 H 1.8125 v -2.59375 H 3.25 c 1.15625,0 1.8125,0.59375 1.8125,1.296875 z M 4.78125,-8.671875 H 4.1875 L 3.21875,-7.703125 2.25,-8.671875 H 1.671875 l 1.25,1.328125 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(80.2999,89.816)" + id="g49090"> + id="id-43e978b0-b17e-436a-876b-51a1cfff2172" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(84.7282,89.816)" + id="g49093"> + id="id-d413d562-6ad9-48de-8451-858a04b70100" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(88.5469,89.816)" + id="g49096"> + id="id-595f523f-0aec-4772-b516-d11697f07761" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(92.9753,89.816)" + id="g49099"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(98.1229,89.816)" + id="g49102"> + id="id-fcc7e752-a1e6-4b18-b132-77dddfd41f51" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(103.263,89.816)" + id="g49106"> + id="id-a12c869d-47de-4864-9d48-fa837652539d" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(108.523,89.816)" + id="g49110"> + id="id-e78f1a45-bb2a-49a2-8a88-56520acbecc5" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(113.671,89.816)" + id="g49113"> + id="id-2a0ad2fa-ce21-474d-b1ee-ff20f4f6fb6a" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(118.099,89.816)" + id="g49116"> + id="id-5f82a3aa-63c8-4ba5-91f3-0d95950d1dd8" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(122.693,89.816)" + id="g49119"> + id="id-9eae0503-999e-4d33-8037-e027ef3c22d0" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(127.023,89.816)" + id="g49122"> + id="id-767d6c60-b7f3-4c6d-8554-5b2939acbe53" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + transform="translate(149.654,89.816)" + id="g49135"> + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(162.553,89.816)" + id="g49142"> + id="id-666a2d96-5006-4375-8ac0-1719b5e5e701" + d="m 4.234375,0 v -0.578125 h -1.25 v -6.1875 H 2.78125 C 2.1875,-6.15625 1.359375,-6.125 0.890625,-6.09375 v 0.578125 C 1.21875,-5.53125 1.6875,-5.546875 2.1875,-5.765625 v 5.1875 H 0.953125 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(167.534,89.816)" + id="g49145"> + id="id-7b256bd3-5cee-4e37-a5ce-0d6ed2156d4a" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + transform="translate(178.209,89.816)" + id="g49152"> + id="id-04f40a07-82e9-4d4a-92b8-c550ca44a3a3" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(182.638,89.816)" + id="g49155"> + id="id-a5827f93-a0fd-4272-93ff-c2b7a90243dd" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(187.426,89.816)" + id="g49158"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(192.573,89.816)" + id="g49161"> + id="id-f6c09660-8274-4c3f-ac30-5f6ca1d0452b" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(194.953,89.816)" + id="g49164"> + id="id-c95348cd-86cb-4478-a345-3f854f5d3989" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(197.333,89.816)" + id="g49167"> + id="id-7498bc78-e9b8-40ba-b8a6-42c79ae25be8" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(202.481,89.816)" + id="g49170"> + id="id-7faeda80-0dc7-486d-834f-bb628dfd9b5c" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(210.398,89.816)" + id="g49174"> + id="id-2d6ca1e3-f0f9-4b76-86a5-61a95b07cd57" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(215.815,89.816)" + id="g49178"> + id="id-8b54a9bb-0cca-4590-b9c8-c641bbf6b27c" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(220.796,89.816)" + id="g49181"> + id="id-991efcf0-b4eb-4027-9163-0932c0ebf653" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(224.615,89.816)" + id="g49184"> + id="id-868e1311-803a-4fa3-9d3a-d94b40859e17" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + transform="translate(246.537,89.816)" + id="g49197"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(251.518,89.816)" + id="g49200"> + id="id-27ed764e-bd9b-4a59-bbd5-2fd8ce1d437e" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(256.387,89.816)" + id="g49204"> + id="id-2a5cf45c-2a88-4c78-b5ea-fb4d629fc5d6" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(259.791,89.816)" + id="g49207"> + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(269.173,89.816)" + id="g49213"> + id="id-5e870ee1-9b08-4474-b1a7-4d497e2ca458" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + - - - - - + id="id-5114fa8c-5257-4f01-93b3-b7a97697d0b4" + style="fill:#000000;fill-opacity:1"> + - - + inkscape:connector-curvature="0" /> + + - - + inkscape:connector-curvature="0" /> + + + + - - + inkscape:connector-curvature="0" /> + + - - + inkscape:connector-curvature="0" /> + + + + - - + inkscape:connector-curvature="0" /> + + - - + inkscape:connector-curvature="0" /> + + - + inkscape:connector-curvature="0" /> + - - + id="id-f715398e-1e83-423c-b51e-8533410bd3a3" + style="fill:#000000;fill-opacity:1"> + transform="translate(86.5514,101.771)" + id="g49247"> + inkscape:connector-curvature="0" /> + + + transform="translate(93.6976,101.771)" + id="g49251"> + inkscape:connector-curvature="0" /> + transform="translate(98.8452,101.771)" + id="g49254"> + inkscape:connector-curvature="0" /> + transform="translate(103.633,101.771)" + id="g49257"> + inkscape:connector-curvature="0" /> + transform="translate(107.452,101.771)" + id="g49260"> + inkscape:connector-curvature="0" /> + transform="translate(109.832,101.771)" + id="g49263"> + inkscape:connector-curvature="0" /> - - - - - - - - - + - - + id="id-79e587ef-61c2-4fdf-88eb-2a9cee4ad3fd" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-3a1856bd-09d2-4ec5-afc7-396354369ba9" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-bce9598a-737f-4903-99d6-dafea6bf2544" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-ef0227b2-38d6-42f9-b8b4-50d6feba68b3" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-77c47953-cdea-4e91-b5ec-683da6ff9116" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + - - + id="id-b6ec94fa-1f18-4229-b893-076010202c35" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - - - - - + id="id-0d5816ae-e5db-4ae8-b035-8bc4c221c6da" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + - - + id="id-eaf930e6-da30-4488-a193-720ccc8a9cfb" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-83c8ce03-525e-43a7-bec9-5dc11022ba3e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-fdf91492-fe2b-4294-81cf-8b07d30c5a78" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-43981f78-db75-4bfd-8d7c-7668ae2965ab" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-156ffae2-8c15-4364-9d33-8888580319e0" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-761e27a5-7de9-45a5-8ca0-cac9268857e2" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - + id="id-df3aa1f1-5c4f-4149-a601-5e93bf47c1a1" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + - - + transform="translate(179.07,101.771)" + id="g49311"> + id="id-b81228ad-a26f-4562-897c-77c0a9ed7279" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(181.727,101.771)" + id="g49314"> + id="id-679dbb96-bd5b-4226-b4df-c039df7df9c9" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(184.107,101.771)" + id="g49317"> + id="id-607507b3-9e97-4c15-a062-a7b73aa2964f" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(189.255,101.771)" + id="g49320"> + id="id-1994c5ac-8099-4c92-a233-e66ee6200134" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(194.043,101.771)" + id="g49323"> + id="id-c8722a4d-dbab-43e6-9444-85fdd4740c7b" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(202.231,101.771)" + id="g49327"> + id="id-cfcbbbe7-7a34-45ef-a4c8-2615e087ae3d" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(207.019,101.771)" + id="g49330"> + id="id-17fb3ec0-87d7-458e-8f1c-146afc53fcf4" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(214.667,101.771)" + id="g49334"> + id="id-509b6bec-9937-4134-a531-7d00f56a67b2" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(221.814,101.771)" + id="g49338"> + id="id-85b95f61-d4b0-465d-9372-de2c279ec7a5" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(225.411,101.771)" + id="g49341"> + id="id-a903a7c8-01ad-477b-918f-bdb052e6f744" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + transform="translate(239.024,101.771)" + id="g49348"> + id="id-6b8d162f-16fd-4005-b8e4-73c39d4ee990" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(244.172,101.771)" + id="g49351"> + id="id-26533fed-d5e2-4dc8-b1d1-4c3191b055f0" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(248.96,101.771)" + id="g49354"> + id="id-ac3cdcb4-0c9e-415d-a4d0-98845f4892da" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(251.34,101.771)" + id="g49357"> + id="id-018d173b-245a-42a8-96b9-82e33401c693" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(255.158,101.771)" + id="g49360"> + id="id-ab2a643d-9e27-428a-a6de-a0a0a3929fe3" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(257.538,101.771)" + id="g49363"> + id="id-b50fc580-26d1-4ba3-afde-67267d176f5e" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + - - - - - + id="id-c99c50ba-be0f-4784-b894-b8579c054f39" + style="fill:#000000;fill-opacity:1"> + - - + id="id-60d7662d-7183-4f6e-9700-9bc34ef4d12e" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + - - + id="id-6e09400c-cb66-492c-a886-3adbcd9bd1bb" + d="m 5.859375,-0.453125 -0.0625,-0.6875 C 5.5,-0.9375 5.21875,-0.75 4.875,-0.640625 c -0.3125,0.109375 -0.671875,0.109375 -1,0.109375 -0.65625,0 -1.25,-0.34375 -1.65625,-0.859375 -0.453125,-0.578125 -0.671875,-1.328125 -0.671875,-2.0625 0,-0.75 0.21875,-1.5 0.671875,-2.09375 0.40625,-0.5 1,-0.859375 1.65625,-0.859375 0.296875,0 0.59375,0.03125 0.890625,0.125 0.296875,0.09375 0.578125,0.234375 0.84375,0.421875 l 0.125,-0.8125 C 5.4375,-6.796875 5.140625,-6.890625 4.8125,-6.953125 4.5,-7.015625 4.1875,-7.03125 3.875,-7.03125 c -0.890625,0 -1.6875,0.390625 -2.28125,1.046875 -0.609375,0.6875 -0.9375,1.59375 -0.9375,2.53125 0,0.921875 0.328125,1.828125 0.9375,2.515625 C 2.1875,-0.296875 2.984375,0.109375 3.875,0.109375 4.21875,0.109375 4.5625,0.09375 4.90625,0 5.25,-0.09375 5.546875,-0.265625 5.859375,-0.453125 Z m -0.8125,-8.21875 H 4.46875 L 3.5,-7.703125 2.53125,-8.671875 H 1.9375 l 1.265625,1.328125 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-b14c786f-b90a-4309-b939-c5789e5f7928" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-1f7348dd-bc94-4b09-9fcb-821468dcff55" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-a4b054ad-1b79-4e7e-9ca9-a34ede0ca32c" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-9e1759fa-8472-4d9e-87ea-312df5388770" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-73d01843-d1da-4c76-b447-56884fa8593d" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + - - + id="id-43b50252-41d9-4bd4-bf6b-c174f696d96f" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-5acb80a0-6649-46a2-a757-e3e0d4fb3f48" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-79f359b9-e24b-4636-ad9d-f6c72820e79f" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-9fd7cca7-7a9d-4346-81ac-4e5279809511" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - + id="id-2bd9e220-b560-4615-bd37-0185c96cdbe2" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + - - + transform="translate(134.297,121.696)" + id="g49409"> + id="id-9aa6c81a-2d32-449d-8ef0-cf3fdfecc271" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(139.547,121.696)" + id="g49413"> + id="id-c307348a-896f-4733-b3a6-b5a3eeaf8d5c" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(144.695,121.696)" + id="g49416"> + id="id-0d28a52b-8866-42a1-8bde-c33d2523c619" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(149.123,121.696)" + id="g49419"> + id="id-27fa9a74-6779-4ed4-ad49-961bed6270c9" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(153.717,121.696)" + id="g49422"> + id="id-5c0443da-5e28-472f-87b5-338c40edc73b" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(158.048,121.696)" + id="g49425"> + id="id-41f72816-4120-486e-bf50-0b336c385c6c" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(163.196,121.696)" + id="g49428"> + id="id-1716f087-6ddd-48fd-b075-f33df7f7d449" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(167.984,121.696)" + id="g49431"> + id="id-e14be83e-386c-4ac1-989a-7ecdc106fa14" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + transform="translate(184.28,121.696)" + id="g49441"> + id="id-2f52ced6-b87c-4ea7-80af-2e608ad50a65" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(189.151,121.696)" + id="g49444"> + id="id-fdc68187-c965-4f36-9ce0-4f1a29e8f9c3" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(194.299,121.696)" + id="g49447"> + id="id-bc267d76-2ff6-4015-a3bb-eaecd309d037" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(198.893,121.696)" + id="g49450"> + id="id-5d90b365-d71b-4ce6-b8fd-4c2cc3fafa87" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(203.494,121.696)" + id="g49454"> + id="id-6b9e35ef-a6d1-44d4-ae79-28f1f9ac0d33" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(208.476,121.696)" + id="g49457"> + id="id-b3241f08-9166-45c7-a9a4-02dbff82d64d" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(210.856,121.696)" + id="g49460"> + id="id-131a4f5c-c9d5-4937-9b49-cd0918c2e0c8" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + Zaregistruj se a nahraj řešení do odevzdávátka. + ns10:inkscapeversion="1.0" + ns10:alignment="middle center" + ns10:scale="1.0" + ns10:preamble="/home/katerina/.config/inkscape/extensions/textext/default_packages.tex" + ns10:text="\\bignadpis{Odm\u011bna}" + ns10:pdfconverter="inkscape" + ns10:texconverter="pdflatex" + ns10:version="1.0.1" + transform="matrix(0.352778,0,0,0.352778,36.104601,136.97368)" + style="fill:#6f250f;fill-opacity:0.94117647"> + id="id-07e94971-77d2-4a07-8bc0-3bd1766d60c9"> + id="id-3c716607-fe77-4cdf-bbe1-00b444bdbf86"> + overflow="visible" + id="id-54565f7d-97cb-4fc5-9fe5-1b0cab724124" + style="overflow:visible"> + style="stroke:none" + d="" + id="id-d612ce20-1ed5-4e54-9072-140127e24e39" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-0ad0844f-2e35-4479-8d2a-35bdbaf9ba46" + style="overflow:visible"> + style="stroke:none" + d="m 15.125,-7.0625 c 0,-4.15625 -1.515625,-7.734375 -6.921875,-7.734375 -5.71875,0 -6.9375,3.953125 -6.9375,7.734375 0,3.859375 1.34375,7.515625 6.921875,7.515625 5.328125,0 6.9375,-3.28125 6.9375,-7.515625 z m -3.046875,-0.328125 c 0,1.828125 0,6.1875 -3.875,6.1875 -3.90625,0 -3.90625,-4.3125 -3.90625,-6.1875 0,-1.828125 0,-5.78125 3.890625,-5.78125 3.890625,0 3.890625,3.921875 3.890625,5.78125 z m 0,0" + id="id-2a1ceb45-41dd-4e1c-a402-b3145fcf55fe" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-4906a307-ae5d-4c99-b9b0-adc653538dc9" + style="overflow:visible"> + style="stroke:none" + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + id="id-afb4aae0-d102-4e8a-9ab7-d4d1a94e632d" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-54121f2d-34b5-49fb-837f-af91ed05d22f" + style="overflow:visible"> + style="stroke:none" + d="M 16.65625,-0.984375 V -6.71875 c 0,-2.125 -0.921875,-2.96875 -3.015625,-2.96875 -1.46875,0 -2.609375,0.6875 -3.359375,2.046875 C 9.953125,-9.625 8.203125,-9.6875 7.328125,-9.6875 c -0.390625,0 -1.25,0 -2.1875,0.6875 C 4.5,-8.53125 4.09375,-7.875 3.953125,-7.5625 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.859375 1.265625,-2.640625 2.28125,-2.640625 0.984375,0 1.21875,0.4375 1.21875,1.53125 v 5.6875 C 7.546875,-0.25 7.765625,0 8.53125,0 h 0.828125 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 V -5.5625 c 0,-1.859375 1.265625,-2.640625 2.28125,-2.640625 0.984375,0 1.21875,0.4375 1.21875,1.53125 v 5.6875 C 13.84375,-0.25 14.0625,0 14.828125,0 h 0.828125 c 0.78125,0 1,-0.265625 1,-0.984375 z m 0,0" + id="id-53dd6210-af1c-46ef-b827-7dc9a22d470e" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-0e978388-26a8-47d8-94b6-66a7a2e6503d" + style="overflow:visible"> + style="stroke:none" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z M 8.640625,-14 c 0.09375,-0.171875 0,-0.390625 -0.21875,-0.390625 h -0.96875 c 0,0 -0.078125,0.01563 -0.125,0.03125 l -2.015625,2.09375 -2.03125,-2.09375 c -0.03125,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 2.1875 c -0.203125,0 -0.328125,0.265625 -0.21875,0.421875 l 1.984375,2.828125 c 0.03125,0.0625 0.09375,0.09375 0.171875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + id="id-79af8906-7c74-4b6c-87ba-7b5771abe29d" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-1e3156cb-3c04-410f-b41f-0ab9e4586a40" + style="overflow:visible"> + style="stroke:none" + d="M 10.328125,-0.984375 V -6.71875 c 0,-2.125 -0.90625,-2.96875 -3.015625,-2.96875 -2.171875,0 -3.09375,1.5625 -3.359375,2.125 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.796875 1.203125,-2.640625 2.28125,-2.640625 0.984375,0 1.1875,0.484375 1.1875,1.53125 v 5.6875 c 0,0.65625 0.140625,0.984375 1,0.984375 H 9.34375 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 z m 0,0" + id="id-133ae8ff-4011-46ce-b1aa-b928a3f6253f" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-79d847de-9225-4a76-b704-519aa036ef19" + style="overflow:visible"> + style="stroke:none" + d="M 9.796875,-0.984375 V -6.53125 c 0,-3.265625 -3.140625,-3.28125 -4.171875,-3.28125 -0.984375,0 -2.015625,0.078125 -3.390625,0.65625 -0.4375,0.1875 -0.546875,0.25 -0.546875,0.484375 0,0.140625 0.125,1.34375 0.15625,1.5 0.015625,0.125 0.125,0.234375 0.265625,0.234375 0.09375,0 0.15625,-0.0625 0.21875,-0.125 C 3.21875,-8 4.25,-8.453125 5.53125,-8.453125 c 1.125,0 1.453125,0.6875 1.453125,1.90625 v 0.71875 c -0.71875,0 -6.140625,0.046875 -6.140625,3.078125 0,1.453125 1.15625,2.984375 2.984375,2.984375 0.703125,0 2.25,-0.21875 3.21875,-1.640625 v 0.421875 C 7.046875,-0.328125 7.1875,0 8.03125,0 h 0.765625 c 0.78125,0 1,-0.265625 1,-0.984375 z M 6.984375,-3.1875 c 0,1.921875 -1.96875,1.921875 -2.03125,1.921875 C 4.09375,-1.265625 3.53125,-2 3.53125,-2.78125 c 0,-2.03125 2.875,-2.171875 3.453125,-2.203125 z m 0,0" + id="id-8fd55d08-75d3-4d12-883e-cb32a2c11822" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="id-604b3b39-7d47-4447-98ff-662791d46042" + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-038b3ea0-0068-450f-af0a-94112c522cdd" + overflow="visible" + style="overflow:visible"> + id="id-35bad527-4da6-4458-9bbe-cc0dc98e0820" + d="m 14.5625,-13.78125 c 0,-0.546875 -0.515625,-0.546875 -0.8125,-0.546875 h -0.796875 c -0.4375,0 -1.03125,0 -1.359375,0.90625 l -2.796875,7.65625 -1.078125,3.1875 C 7.703125,-2.640625 7.484375,-3.359375 7.171875,-4.21875 l -3.34375,-9.234375 c -0.34375,-0.875 -0.921875,-0.875 -1.34375,-0.875 h -1.125 c -0.28125,0 -0.796875,0 -0.796875,0.546875 0,0.109375 0.015625,0.125 0.09375,0.375 L 5.28125,-0.875 C 5.59375,0 6.203125,0 6.609375,0 h 1.90625 c 0.421875,0 1,0 1.34375,-0.90625 l 4.59375,-12.5 c 0.09375,-0.25 0.109375,-0.265625 0.109375,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-d73092bc-834e-4e98-9dfe-61a62a4d7ff4" + overflow="visible" + style="overflow:visible"> + id="id-268b3325-3bba-4a7a-a1f3-3e3e74c9e1a9" + d="m 9.765625,-8.90625 c 0,-0.546875 -0.546875,-0.546875 -0.828125,-0.546875 H 8.484375 c -0.328125,0 -0.78125,0 -1.09375,0.46875 C 7.328125,-8.875 5.65625,-4.3125 5.5625,-2.9375 H 5.53125 C 5.4375,-3.953125 4.578125,-5.859375 3.703125,-7.84375 3.125,-9.15625 2.96875,-9.453125 1.9375,-9.453125 H 1.40625 c -0.296875,0 -0.8125,0 -0.8125,0.53125 0,0.078125 0.0625,0.21875 0.109375,0.328125 L 4.609375,0 C 4.4375,0.4375 4.375,0.65625 4.3125,0.875 4.0625,1.546875 3.71875,2.484375 2.609375,2.484375 1.921875,2.484375 1.453125,2.1875 1.21875,2.046875 1.109375,1.984375 1.078125,1.96875 1.015625,1.96875 0.90625,1.96875 0.75,2.03125 0.75,2.265625 c 0,0.171875 0.125,1.59375 0.171875,1.6875 0.1875,0.234375 1.3125,0.28125 1.640625,0.28125 2.5625,0 3.578125,-2.4375 3.734375,-2.9375 l 3.375,-9.78125 c 0.09375,-0.28125 0.09375,-0.3125 0.09375,-0.421875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e7b6b6fa-7eee-4de8-be77-fc7b0ad2c73e" + overflow="visible" + style="overflow:visible"> + id="id-694f3c81-411a-4cf6-adf7-3ce4d1372a1b" + d="m 10.796875,-4.765625 c 0,-1 0,-4.921875 -3.875,-4.921875 C 5.21875,-9.6875 4.1875,-8.734375 4,-8.53125 v -4.8125 C 4,-14 3.859375,-14.328125 3.015625,-14.328125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 V -0.984375 C 1.265625,-0.25 1.484375,0 2.25,0 h 0.828125 c 0.34375,0 0.96875,0 0.984375,-0.8125 0.953125,1.046875 2.015625,1.046875 2.34375,1.046875 4.390625,0 4.390625,-3.96875 4.390625,-5 z M 8,-4.75 c 0,1.53125 0,3.484375 -2.3125,3.484375 -0.875,0 -1.390625,-0.515625 -1.625,-0.796875 V -7.484375 C 4.34375,-7.71875 4.953125,-8.203125 5.90625,-8.203125 8,-8.203125 8,-6.296875 8,-4.75 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-87f58e88-6bb4-4ed6-ad81-41942c248b30" + overflow="visible" + style="overflow:visible"> + id="id-d8bbc9e2-8a84-43b0-a4d1-5d3412fbceda" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-6f4de9e7-e10b-40eb-8c4b-10c170cc7e8a" + overflow="visible" + style="overflow:visible"> + id="id-9e7474fe-6088-44cd-8c4b-6630fe782335" + d="M 7.359375,-8.15625 V -9.125 c 0,-0.421875 0,-0.5625 -0.375,-0.5625 -0.578125,0 -2.09375,0.203125 -3.0625,2.4375 H 3.90625 v -1.34375 c 0,-0.65625 -0.140625,-0.984375 -1,-0.984375 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.609375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 V -4.75 C 4,-6.71875 5.640625,-7.515625 6.9375,-7.59375 7.3125,-7.625 7.359375,-7.625 7.359375,-8.15625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e1f50e50-9a98-4bcc-90c6-fe1cf07c1b99" + overflow="visible" + style="overflow:visible"> + id="id-4f4e85e9-d058-4684-9fe4-80f69cd907f3" + d="m 8.1875,-2.90625 c 0,-1.15625 -0.625,-1.890625 -1,-2.21875 C 6.359375,-5.859375 5.640625,-5.984375 4.765625,-6.15625 3.640625,-6.359375 2.8125,-6.53125 2.8125,-7.328125 c 0,-0.859375 0.671875,-1.015625 1.484375,-1.015625 1.390625,0 2.125,0.515625 2.671875,0.96875 0.203125,0.203125 0.234375,0.203125 0.328125,0.203125 0.203125,0 0.25,-0.1875 0.265625,-0.265625 0.03125,-0.15625 0.25,-1.328125 0.25,-1.421875 0,-0.328125 -1.09375,-0.625 -1.328125,-0.703125 C 5.65625,-9.796875 5,-9.8125 4.46875,-9.8125 c -0.9375,0 -3.703125,0 -3.703125,2.953125 0,1.015625 0.453125,1.640625 1.015625,2.125 0.71875,0.671875 1.53125,0.8125 2.703125,1.03125 0.59375,0.109375 1.65625,0.296875 1.65625,1.203125 0,0.96875 -0.8125,1.109375 -1.609375,1.109375 -0.921875,0 -2.078125,-0.265625 -3.046875,-1.421875 -0.09375,-0.09375 -0.15625,-0.15625 -0.28125,-0.15625 -0.21875,0 -0.25,0.1875 -0.28125,0.296875 -0.03125,0.296875 -0.28125,1.46875 -0.28125,1.6875 0,0.359375 1.546875,0.859375 1.546875,0.859375 1.140625,0.359375 1.984375,0.359375 2.34375,0.359375 1.046875,0 3.65625,-0.09375 3.65625,-3.140625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-ed273f3a-d8d9-4097-8317-f66431c1ab08" + overflow="visible" + style="overflow:visible"> + id="id-9d6a201f-0a7d-4ca1-81cd-7d8a65224382" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z m 0.15625,-11.53125 v -0.390625 c 0,-0.671875 -0.15625,-1 -1,-1 H 2.109375 c -0.78125,0 -1,0.265625 -1,1 v 0.390625 c 0,0.59375 0.109375,0.984375 1,0.984375 H 3.15625 c 0.875,0 1,-0.359375 1,-0.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-1e263755-dbaa-43b4-ba14-4206790533cb" + overflow="visible" + style="overflow:visible"> + id="id-b7b62047-665c-4a35-b239-9f24e60191ad" + d="m 4.5,-0.5625 v -1.578125 c 0,-0.546875 -0.015625,-0.5625 -0.546875,-0.5625 h -1.59375 c -0.546875,0 -0.5625,0.015625 -0.5625,0.5625 V -0.5625 C 1.796875,-0.015625 1.8125,0 2.5,0 2.375,0.328125 2.265625,0.65625 2.140625,0.984375 2.03125,1.296875 1.8125,1.921875 1.8125,1.921875 1.8125,2.1875 2.03125,2.1875 2.359375,2.1875 h 0.25 C 3.015625,2.1875 3.03125,2.171875 3.25,1.84375 L 4.3125,0.125 C 4.5,-0.171875 4.5,-0.203125 4.5,-0.5625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-bddfefd6-d3b5-480d-82f9-c25380ed8c09" + overflow="visible" + style="overflow:visible"> + id="id-778b76c5-0631-483c-8434-ad89dff03357" + d="m 9.4375,-1.03125 c 0,-0.234375 -0.078125,-1.171875 -0.125,-1.453125 0,-0.0625 -0.03125,-0.265625 -0.25,-0.265625 -0.078125,0 -0.125,0 -0.328125,0.203125 -0.34375,0.3125 -1.3125,1.15625 -3.015625,1.15625 -2.140625,0 -2.140625,-2.078125 -2.140625,-3.40625 0,-1.671875 0.09375,-3.40625 2.203125,-3.40625 1.34375,0 1.90625,0.328125 2.640625,0.953125 0.25,0.234375 0.296875,0.234375 0.375,0.234375 0.203125,0 0.25,-0.1875 0.265625,-0.28125 0.046875,-0.15625 0.25,-1.3125 0.25,-1.421875 0,-0.1875 -0.140625,-0.265625 -0.5,-0.4375 C 7.828125,-9.609375 7.203125,-9.8125 5.765625,-9.8125 c -3.078125,0 -5,1.453125 -5,5.0625 0,3.421875 1.78125,4.984375 4.890625,4.984375 0.5625,0 1.796875,-0.03125 3.1875,-0.734375 0.578125,-0.3125 0.59375,-0.328125 0.59375,-0.53125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-f6b329a9-37a0-44fb-bf87-341dd7d1775d" + overflow="visible" + style="overflow:visible"> + id="id-878bdb29-8ceb-4905-ad49-b4d05c07e299" + d="m 10.703125,-4.640625 c 0,-3.390625 -1.65625,-5.171875 -5.015625,-5.171875 -3.453125,0 -5.046875,1.84375 -5.046875,5.171875 0,3.359375 1.78125,4.875 5.015625,4.875 3.25,0 5.046875,-1.5 5.046875,-4.875 z m -2.8125,-0.25 c 0,1.625 0,3.5 -2.203125,3.5 -2.234375,0 -2.234375,-1.859375 -2.234375,-3.5 0,-1.59375 0,-3.4375 2.203125,-3.4375 2.234375,0 2.234375,1.828125 2.234375,3.4375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-9dc3fd34-31fa-4c18-b6d1-bac6358ecede" + overflow="visible" + style="overflow:visible"> + id="id-f034c871-50a3-474c-bcf2-b8d5947b2bc8" + d="m 7.703125,-0.96875 c 0,-0.0625 -0.046875,-0.203125 -0.15625,-0.640625 -0.109375,-0.421875 -0.15625,-0.53125 -0.34375,-0.53125 -0.09375,0 -0.125,0.015625 -0.234375,0.140625 -0.234375,0.15625 -0.796875,0.609375 -1.65625,0.609375 -0.5,0 -0.8125,-0.34375 -0.8125,-1.703125 v -4.875 h 1.84375 c 0.25,0 0.984375,0 0.984375,-0.75 0,-0.734375 -0.734375,-0.734375 -0.984375,-0.734375 H 4.5 v -1.71875 c 0,-0.671875 -0.140625,-1 -0.984375,-1 H 2.875 c -0.75,0 -1,0.234375 -1,1 v 1.71875 H 1.40625 c -0.234375,0 -1,0 -1,0.734375 0,0.75 0.75,0.75 1,0.75 H 1.8125 V -2.75 c 0,2.09375 0.75,2.984375 2.171875,2.984375 0.1875,0 1.09375,0 2.171875,-0.34375 C 6.5,-0.203125 7.703125,-0.578125 7.703125,-0.96875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-c0981dd9-b4e8-4297-bbae-a14cc5f68be4" + overflow="visible" + style="overflow:visible"> + id="id-8aa8e1be-2498-4038-bf3e-cdc305c68cc6" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z M 8.640625,-14 c 0.09375,-0.171875 0,-0.390625 -0.21875,-0.390625 h -0.96875 c 0,0 -0.078125,0.01563 -0.125,0.03125 l -2.015625,2.09375 -2.03125,-2.09375 c -0.03125,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 2.1875 c -0.203125,0 -0.328125,0.265625 -0.21875,0.421875 l 1.984375,2.828125 c 0.03125,0.0625 0.09375,0.09375 0.171875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-8cc0582e-9f7c-47d1-92aa-8f29f82951aa" + overflow="visible" + style="overflow:visible"> + id="id-1f9ec332-1398-4fa5-8488-4930bdb07e09" + d="M 9.796875,-0.984375 V -6.53125 c 0,-3.265625 -3.140625,-3.28125 -4.171875,-3.28125 -0.984375,0 -2.015625,0.078125 -3.390625,0.65625 -0.4375,0.1875 -0.546875,0.25 -0.546875,0.484375 0,0.140625 0.125,1.34375 0.15625,1.5 0.015625,0.125 0.125,0.234375 0.265625,0.234375 0.09375,0 0.15625,-0.0625 0.21875,-0.125 C 3.21875,-8 4.25,-8.453125 5.53125,-8.453125 c 1.125,0 1.453125,0.6875 1.453125,1.90625 v 0.71875 c -0.71875,0 -6.140625,0.046875 -6.140625,3.078125 0,1.453125 1.15625,2.984375 2.984375,2.984375 0.703125,0 2.25,-0.21875 3.21875,-1.640625 v 0.421875 C 7.046875,-0.328125 7.1875,0 8.03125,0 h 0.765625 c 0.78125,0 1,-0.265625 1,-0.984375 z M 6.984375,-3.1875 c 0,1.921875 -1.96875,1.921875 -2.03125,1.921875 C 4.09375,-1.265625 3.53125,-2 3.53125,-2.78125 c 0,-2.03125 2.875,-2.171875 3.453125,-2.203125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-1ba15db7-d700-4b97-aedd-9b666e823753" + overflow="visible" + style="overflow:visible"> - - - + id="id-3ef7c318-4cc1-4a46-aa1e-ea6bef52c973" + d="M 9.765625,-8.875 C 9.765625,-9.453125 9.25,-9.453125 8.9375,-9.453125 H 8.515625 c -0.875,0 -1.09375,0.296875 -1.28125,0.875 l -2.046875,6.25 -2.046875,-6.25 C 3,-9 2.84375,-9.453125 1.859375,-9.453125 h -0.5 c -0.3125,0 -0.828125,0 -0.828125,0.578125 0,0.0625 0,0.09375 0.109375,0.390625 L 3.09375,-0.875 C 3.390625,0 4.03125,0 4.40625,0 h 1.5 c 0.375,0 1.015625,0 1.296875,-0.875 l 2.46875,-7.609375 C 9.765625,-8.78125 9.765625,-8.8125 9.765625,-8.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-fe2e9d9b-cb76-4d7e-b2d4-ee14b40e1818" + overflow="visible" + style="overflow:visible"> + id="id-5653d0b5-e120-4a77-ad96-d886d01244a1" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z M 6.09375,-14.0625 c 0,-0.265625 -0.234375,-0.265625 -0.5625,-0.265625 h -1.6875 c -0.421875,0 -0.4375,0.01563 -0.625,0.234375 l -1.765625,2.421875 c -0.1875,0.234375 -0.1875,0.3125 -0.1875,0.3125 0,0.265625 0.21875,0.265625 0.546875,0.265625 H 2.578125 L 5.859375,-13.75 c 0.109375,-0.09375 0.234375,-0.1875 0.234375,-0.3125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - + + + + + - - + id="id-a288cb35-6f12-48f6-b107-727e2917d0ea" + d="m 14.5625,-13.78125 c 0,-0.546875 -0.515625,-0.546875 -0.8125,-0.546875 h -0.796875 c -0.4375,0 -1.03125,0 -1.359375,0.90625 l -2.796875,7.65625 -1.078125,3.1875 C 7.703125,-2.640625 7.484375,-3.359375 7.171875,-4.21875 l -3.34375,-9.234375 c -0.34375,-0.875 -0.921875,-0.875 -1.34375,-0.875 h -1.125 c -0.28125,0 -0.796875,0 -0.796875,0.546875 0,0.109375 0.015625,0.125 0.09375,0.375 L 5.28125,-0.875 C 5.59375,0 6.203125,0 6.609375,0 h 1.90625 c 0.421875,0 1,0 1.34375,-0.90625 l 4.59375,-12.5 c 0.09375,-0.25 0.109375,-0.265625 0.109375,-0.375 z m 0,0" + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + + + + - - + id="id-537c8990-ed79-43d6-84e1-c85dad4d2d24" + d="m 9.765625,-8.90625 c 0,-0.546875 -0.546875,-0.546875 -0.828125,-0.546875 H 8.484375 c -0.328125,0 -0.78125,0 -1.09375,0.46875 C 7.328125,-8.875 5.65625,-4.3125 5.5625,-2.9375 H 5.53125 C 5.4375,-3.953125 4.578125,-5.859375 3.703125,-7.84375 3.125,-9.15625 2.96875,-9.453125 1.9375,-9.453125 H 1.40625 c -0.296875,0 -0.8125,0 -0.8125,0.53125 0,0.078125 0.0625,0.21875 0.109375,0.328125 L 4.609375,0 C 4.4375,0.4375 4.375,0.65625 4.3125,0.875 4.0625,1.546875 3.71875,2.484375 2.609375,2.484375 1.921875,2.484375 1.453125,2.1875 1.21875,2.046875 1.109375,1.984375 1.078125,1.96875 1.015625,1.96875 0.90625,1.96875 0.75,2.03125 0.75,2.265625 c 0,0.171875 0.125,1.59375 0.171875,1.6875 0.1875,0.234375 1.3125,0.28125 1.640625,0.28125 2.5625,0 3.578125,-2.4375 3.734375,-2.9375 l 3.375,-9.78125 c 0.09375,-0.28125 0.09375,-0.3125 0.09375,-0.421875 z m 0,0" + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + + - + id="id-8d9d39e4-9c89-45ef-8bcd-e0931f3b3a44" + d="m 10.796875,-4.765625 c 0,-1 0,-4.921875 -3.875,-4.921875 C 5.21875,-9.6875 4.1875,-8.734375 4,-8.53125 v -4.8125 C 4,-14 3.859375,-14.328125 3.015625,-14.328125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 V -0.984375 C 1.265625,-0.25 1.484375,0 2.25,0 h 0.828125 c 0.34375,0 0.96875,0 0.984375,-0.8125 0.953125,1.046875 2.015625,1.046875 2.34375,1.046875 4.390625,0 4.390625,-3.96875 4.390625,-5 z M 8,-4.75 c 0,1.53125 0,3.484375 -2.3125,3.484375 -0.875,0 -1.390625,-0.515625 -1.625,-0.796875 V -7.484375 C 4.34375,-7.71875 4.953125,-8.203125 5.90625,-8.203125 8,-8.203125 8,-6.296875 8,-4.75 Z m 0,0" + style="fill:#6f250f;fill-opacity:0.94117647;stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="id-e932fef8-e705-47d8-8d0c-f9285faf7ab3" + overflow="visible" + style="overflow:visible"> + id="id-c46616c6-92ee-45ee-84b5-ccd9d44b51dd" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-1e2ad921-fa45-4a89-abca-f551172e0151" + overflow="visible" + style="overflow:visible"> + id="id-7a646f02-d52f-4425-834d-3508b42c4ee7" + d="m 15.125,-7.0625 c 0,-4.15625 -1.515625,-7.734375 -6.921875,-7.734375 -5.71875,0 -6.9375,3.953125 -6.9375,7.734375 0,3.859375 1.34375,7.515625 6.921875,7.515625 5.328125,0 6.9375,-3.28125 6.9375,-7.515625 z m -3.046875,-0.328125 c 0,1.828125 0,6.1875 -3.875,6.1875 -3.90625,0 -3.90625,-4.3125 -3.90625,-6.1875 0,-1.828125 0,-5.78125 3.890625,-5.78125 3.890625,0 3.890625,3.921875 3.890625,5.78125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-3066aa9e-8b79-40bb-b8ac-e51997aa8d4c" + overflow="visible" + style="overflow:visible"> + id="id-9519406f-d5e4-4556-a620-c235ad359828" + d="M 10.3125,-0.984375 V -13.34375 c 0,-0.65625 -0.15625,-0.984375 -1,-0.984375 H 8.546875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 4.6875 C 6.625,-9.546875 5.59375,-9.6875 4.953125,-9.6875 c -4.1875,0 -4.1875,3.96875 -4.1875,4.984375 0,0.9375 0,4.9375 4.09375,4.9375 0.859375,0 1.75,-0.25 2.640625,-1.203125 C 7.5,-0.203125 7.78125,0 8.484375,0 H 9.3125 c 0.78125,0 1,-0.265625 1,-0.984375 z M 7.5,-2.578125 c 0,0.34375 0,0.53125 -0.59375,0.953125 -0.53125,0.328125 -1,0.359375 -1.25,0.359375 -2.078125,0 -2.078125,-1.890625 -2.078125,-3.4375 0,-1.5625 0,-3.5 2.3125,-3.5 0.59375,0 1.15625,0.203125 1.609375,0.640625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-bd8cabf5-1e54-4c52-8bb1-89f2f815e604" + overflow="visible" + style="overflow:visible"> + id="id-ccf080c9-f66b-425f-94c1-e1e89006328a" + d="m 9.890625,-5.375 c 0,-2.65625 -1.234375,-4.4375 -4.3125,-4.4375 -3.3125,0 -4.9375,1.859375 -4.9375,5 0,3.390625 1.96875,5.046875 5.203125,5.046875 0.78125,0 1.96875,-0.109375 3.328125,-0.796875 0.453125,-0.21875 0.59375,-0.28125 0.59375,-0.53125 0,-0.140625 -0.0625,-0.75 -0.078125,-0.90625 -0.078125,-0.640625 -0.109375,-0.671875 -0.28125,-0.671875 -0.09375,0 -0.125,0 -0.359375,0.21875 -1.21875,1.046875 -2.453125,1.1875 -3.125,1.1875 -2.328125,0 -2.578125,-1.828125 -2.640625,-3.15625 h 5.625 c 0.46875,0 0.984375,-0.015625 0.984375,-0.953125 z M 7.59375,-5.515625 H 3.3125 c 0.046875,-1.265625 0.46875,-2.8125 2.265625,-2.8125 1.65625,0 1.96875,1.203125 2.015625,2.8125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-399e167a-28ce-43d4-b56d-090a4960726e" + overflow="visible" + style="overflow:visible"> + id="id-707cd435-5226-4ac6-83cc-6b1fdba0796f" + d="M 9.765625,-8.875 C 9.765625,-9.453125 9.25,-9.453125 8.9375,-9.453125 H 8.515625 c -0.875,0 -1.09375,0.296875 -1.28125,0.875 l -2.046875,6.25 -2.046875,-6.25 C 3,-9 2.84375,-9.453125 1.859375,-9.453125 h -0.5 c -0.3125,0 -0.828125,0 -0.828125,0.578125 0,0.0625 0,0.09375 0.109375,0.390625 L 3.09375,-0.875 C 3.390625,0 4.03125,0 4.40625,0 h 1.5 c 0.375,0 1.015625,0 1.296875,-0.875 l 2.46875,-7.609375 C 9.765625,-8.78125 9.765625,-8.8125 9.765625,-8.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-0aafe501-7078-4d2f-a450-70148a3f6310" + overflow="visible" + style="overflow:visible"> + id="id-8defe20f-20d3-417a-942a-a5c947f29c63" + d="m 9.109375,-0.765625 c 0,-0.78125 -0.640625,-0.78125 -1.234375,-0.78125 l -3.171875,0.03125 h -0.9375 l 5.03125,-6.375 c 0.203125,-0.265625 0.25,-0.375 0.25,-0.703125 0,-0.859375 -0.640625,-0.859375 -0.984375,-0.859375 h -6.125 c -0.265625,0 -0.984375,0 -0.984375,0.78125 0,0.765625 0.65625,0.765625 1.21875,0.765625 l 3,-0.046875 h 0.75 L 0.890625,-1.5625 c -0.203125,0.265625 -0.25,0.359375 -0.25,0.6875 C 0.640625,0 1.28125,0 1.625,0 h 6.5 c 0.265625,0 0.984375,0 0.984375,-0.765625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-2b011480-4fd8-4577-8830-3bc5c4068282" + overflow="visible" + style="overflow:visible"> + id="id-43c9c4fe-2c47-4d95-998a-d8421cdc52ab" + d="m 4.625,0.65625 v -9.125 C 4.625,-9.125 4.484375,-9.453125 3.640625,-9.453125 H 2.875 c -0.78125,0 -1,0.265625 -1,0.984375 v 9.625 c 0,0.515625 0,1.34375 -1.234375,1.34375 -0.375,0 -0.84375,-0.078125 -1.296875,-0.375 -0.046875,-0.015625 -0.125,-0.078125 -0.21875,-0.078125 -0.15625,0 -0.171875,0.015625 -0.359375,0.5625 -0.09375,0.203125 -0.234375,0.59375 -0.234375,0.65625 0,0.390625 1.71875,0.96875 3.015625,0.96875 2.28125,0 3.078125,-1.53125 3.078125,-3.578125 z m 0,-13.171875 v -0.390625 c 0,-0.671875 -0.140625,-1 -0.984375,-1 h -1.0625 c -0.78125,0 -0.984375,0.265625 -0.984375,1 v 0.390625 c 0,0.59375 0.09375,0.984375 0.984375,0.984375 h 1.0625 C 4.5,-11.53125 4.625,-11.890625 4.625,-12.515625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-db16aad3-07f2-4638-95d1-bebf91e3dfaf" + overflow="visible" + style="overflow:visible"> + id="id-aca4989a-a26e-4bf5-8369-04206f6ecfdb" + d="M 7.359375,-8.15625 V -9.125 c 0,-0.421875 0,-0.5625 -0.375,-0.5625 -0.578125,0 -2.09375,0.203125 -3.0625,2.4375 H 3.90625 v -1.34375 c 0,-0.65625 -0.140625,-0.984375 -1,-0.984375 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.609375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 V -4.75 C 4,-6.71875 5.640625,-7.515625 6.9375,-7.59375 7.3125,-7.625 7.359375,-7.625 7.359375,-8.15625 Z M 7.1875,-14 c 0.109375,-0.171875 0,-0.390625 -0.203125,-0.390625 h -0.96875 c 0,0 -0.09375,0.01563 -0.125,0.03125 l -2.03125,2.09375 -2.015625,-2.09375 c -0.046875,-0.01563 -0.125,-0.03125 -0.125,-0.03125 H 0.75 c -0.21875,0 -0.34375,0.265625 -0.234375,0.421875 L 2.5,-11.140625 c 0.046875,0.0625 0.109375,0.09375 0.1875,0.09375 h 2.296875 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-c312285a-bdc5-477f-87c7-fdaf277c0dde" + overflow="visible" + style="overflow:visible"> + id="id-8a1b3451-c48b-46d3-8b1d-a5a1e6d6600b" + d="m 8.1875,-2.90625 c 0,-1.15625 -0.625,-1.890625 -1,-2.21875 C 6.359375,-5.859375 5.640625,-5.984375 4.765625,-6.15625 3.640625,-6.359375 2.8125,-6.53125 2.8125,-7.328125 c 0,-0.859375 0.671875,-1.015625 1.484375,-1.015625 1.390625,0 2.125,0.515625 2.671875,0.96875 0.203125,0.203125 0.234375,0.203125 0.328125,0.203125 0.203125,0 0.25,-0.1875 0.265625,-0.265625 0.03125,-0.15625 0.25,-1.328125 0.25,-1.421875 0,-0.328125 -1.09375,-0.625 -1.328125,-0.703125 C 5.65625,-9.796875 5,-9.8125 4.46875,-9.8125 c -0.9375,0 -3.703125,0 -3.703125,2.953125 0,1.015625 0.453125,1.640625 1.015625,2.125 0.71875,0.671875 1.53125,0.8125 2.703125,1.03125 0.59375,0.109375 1.65625,0.296875 1.65625,1.203125 0,0.96875 -0.8125,1.109375 -1.609375,1.109375 -0.921875,0 -2.078125,-0.265625 -3.046875,-1.421875 -0.09375,-0.09375 -0.15625,-0.15625 -0.28125,-0.15625 -0.21875,0 -0.25,0.1875 -0.28125,0.296875 -0.03125,0.296875 -0.28125,1.46875 -0.28125,1.6875 0,0.359375 1.546875,0.859375 1.546875,0.859375 1.140625,0.359375 1.984375,0.359375 2.34375,0.359375 1.046875,0 3.65625,-0.09375 3.65625,-3.140625 z M 7.703125,-14 c 0.109375,-0.171875 0,-0.390625 -0.203125,-0.390625 H 6.53125 c 0,0 -0.09375,0.01563 -0.125,0.03125 l -2.03125,2.09375 -2.015625,-2.09375 c -0.046875,-0.01563 -0.125,-0.03125 -0.125,-0.03125 h -0.96875 c -0.21875,0 -0.34375,0.265625 -0.234375,0.421875 l 1.984375,2.828125 c 0.046875,0.0625 0.109375,0.09375 0.1875,0.09375 H 5.5 c 0.078125,0 0.140625,-0.03125 0.1875,-0.09375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-ee1bc943-f567-43e5-9fbf-97b7d77618d2" + overflow="visible" + style="overflow:visible"> + id="id-40465343-1d93-43bc-a7d0-50ba7e18589b" + d="M 10.328125,-0.984375 V -6.71875 c 0,-2.125 -0.90625,-2.96875 -3.015625,-2.96875 -2.171875,0 -3.09375,1.5625 -3.359375,2.125 H 3.921875 V -8.59375 C 3.921875,-9.25 3.78125,-9.578125 2.9375,-9.578125 H 2.234375 c -0.75,0 -1,0.21875 -1,0.984375 v 7.609375 C 1.234375,-0.25 1.46875,0 2.234375,0 H 3.0625 C 3.84375,0 4.046875,-0.265625 4.046875,-0.984375 V -5.5625 c 0,-1.796875 1.203125,-2.640625 2.28125,-2.640625 0.984375,0 1.1875,0.484375 1.1875,1.53125 v 5.6875 c 0,0.65625 0.140625,0.984375 1,0.984375 H 9.34375 c 0.78125,0 0.984375,-0.265625 0.984375,-0.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-7e3b75e7-bc9b-417e-8f63-f0770c92e5d6" + overflow="visible" + style="overflow:visible"> + id="id-c93075fc-6ba3-4ac9-8e86-0d4d488b889b" + d="M 4,-0.984375 V -8.46875 C 4,-9.125 3.859375,-9.453125 3.015625,-9.453125 H 2.25 c -0.734375,0 -0.984375,0.21875 -0.984375,0.984375 v 7.484375 C 1.265625,-0.25 1.484375,0 2.25,0 H 3.015625 C 3.796875,0 4,-0.265625 4,-0.984375 Z M 6.09375,-14.0625 c 0,-0.265625 -0.234375,-0.265625 -0.5625,-0.265625 h -1.6875 c -0.421875,0 -0.4375,0.01563 -0.625,0.234375 l -1.765625,2.421875 c -0.1875,0.234375 -0.1875,0.3125 -0.1875,0.3125 0,0.265625 0.21875,0.265625 0.546875,0.265625 H 2.578125 L 5.859375,-13.75 c 0.109375,-0.09375 0.234375,-0.1875 0.234375,-0.3125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + id="id-a45df707-f504-4654-90da-bf8c0298d69a" + overflow="visible" + style="overflow:visible"> + id="id-2aabd77d-3fc9-4ff1-a4da-f79a1a7aeb25" + d="m 5.140625,-13.90625 c 0,-0.421875 -0.09375,-0.421875 -0.5625,-0.421875 H 3 c -0.453125,0 -0.5625,0 -0.5625,0.421875 0,1.84375 0.125,3.71875 0.171875,5.5625 0,0.5 0.078125,3.984375 0.125,4.09375 0.046875,0.203125 0.171875,0.203125 0.546875,0.203125 h 1.015625 c 0.53125,0 0.5625,-0.015625 0.578125,-0.578125 L 5.015625,-9.25 c 0.03125,-1.53125 0.125,-3.125 0.125,-4.65625 z m 0,12.921875 V -1.71875 C 5.140625,-2.375 5,-2.703125 4.15625,-2.703125 H 3.421875 c -0.78125,0 -0.984375,0.265625 -0.984375,0.984375 v 0.734375 C 2.4375,-0.25 2.671875,0 3.421875,0 H 4.15625 C 4.9375,0 5.140625,-0.265625 5.140625,-0.984375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="id-8157a8f5-ddb7-4871-9b4d-c6843af28922" + overflow="visible" + style="overflow:visible"> + id="id-4d010def-39b4-49ff-a4d6-2f443adb69b6" + d="M 1.5,-0.734375 V -9.5 h 2.984375 v 8.765625 z M 0.734375,0 h 4.5 v -10.25 h -4.5 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-3187fa06-9c66-421c-a0d2-0413e9b15e23" + overflow="visible" + style="overflow:visible"> + id="id-a554291f-0096-4367-aa7d-cbaae0131f31" + d="m 4.90625,-6.40625 c 0,-0.734375 -0.859375,-1.0625 -1.484375,-1.0625 -0.109375,0 -0.21875,0.109375 -0.21875,0.21875 0,0.109375 0.109375,0.203125 0.21875,0.203125 0.359375,0 1.0625,0.171875 1.0625,0.640625 0,0.109375 0.109375,0.21875 0.21875,0.21875 0.109375,0 0.203125,-0.109375 0.203125,-0.21875 z m 1.0625,0 c 0,0.4375 -0.171875,0.890625 -0.453125,1.203125 C 5.390625,-5.0625 5.25,-4.90625 5.109375,-4.75 4.640625,-4.203125 4.25,-3.53125 4.171875,-2.765625 H 2.65625 C 2.578125,-3.53125 2.1875,-4.203125 1.703125,-4.75 1.578125,-4.90625 1.4375,-5.0625 1.296875,-5.203125 1.03125,-5.515625 0.84375,-5.96875 0.84375,-6.40625 c 0,-1.34375 1.375,-2.125 2.578125,-2.125 1.203125,0 2.546875,0.78125 2.546875,2.125 z m 0.859375,0 c 0,-1.8125 -1.71875,-2.984375 -3.40625,-2.984375 C 1.734375,-9.390625 0,-8.21875 0,-6.40625 c 0,0.6875 0.21875,1.296875 0.6875,1.796875 0.453125,0.5 1.0625,1.21875 1.125,1.9375 C 1.609375,-2.5625 1.5,-2.359375 1.5,-2.140625 c 0,0.15625 0.046875,0.328125 0.15625,0.4375 C 1.546875,-1.609375 1.5,-1.4375 1.5,-1.28125 1.5,-1.0625 1.609375,-0.859375 1.796875,-0.734375 1.75,-0.640625 1.703125,-0.53125 1.703125,-0.4375 1.703125,0 2.0625,0.21875 2.4375,0.21875 c 0.1875,0.375 0.5625,0.625 0.984375,0.625 0.421875,0 0.796875,-0.25 0.984375,-0.625 0.375,0 0.71875,-0.21875 0.71875,-0.65625 0,-0.09375 -0.046875,-0.203125 -0.09375,-0.296875 0.1875,-0.125 0.296875,-0.328125 0.296875,-0.546875 0,-0.15625 -0.0625,-0.328125 -0.171875,-0.421875 0.109375,-0.109375 0.171875,-0.28125 0.171875,-0.4375 0,-0.21875 -0.109375,-0.421875 -0.3125,-0.53125 0.046875,-0.71875 0.65625,-1.4375 1.125,-1.9375 0.46875,-0.5 0.6875,-1.109375 0.6875,-1.796875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e9508e70-2b59-4eb7-b212-7bcb5be3472e" + overflow="visible" + style="overflow:visible"> + id="id-4ee13070-0654-444f-9872-f0310ed7095e" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-6da60ebd-28e0-49e4-a87c-197eab51b132" + overflow="visible" + style="overflow:visible"> + id="id-8efe56b1-175e-48e8-931c-e987d99c18f5" + d="M 8.265625,-7.546875 V -7.65625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 h -6.65625 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 0.109375 c 0,0.5625 0.28125,0.5625 0.609375,0.5625 L 3.5,-7.015625 v 6.4375 C 3.5,-0.140625 3.640625,0 4.078125,0 H 4.6875 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 v -6.4375 l 2.390625,0.03125 c 0.328125,0 0.609375,0 0.609375,-0.5625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e20ae773-f118-4af0-b801-bc36fc004d4f" + overflow="visible" + style="overflow:visible"> + id="id-a9805253-755b-4f85-8a66-a2ccb0efeaed" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e15994b3-90d0-48e4-a792-737adedb00f6" + overflow="visible" + style="overflow:visible"> + id="id-866665a2-cd1d-4e11-8d46-cbc3f713537e" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-17536c7f-7830-4f7b-a125-ae75dbdd591d" + overflow="visible" + style="overflow:visible"> + id="id-219dd52d-62f7-4e8f-9d83-597bc184041f" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-55d1d151-f868-481d-8d44-ccfb80b94d36" + overflow="visible" + style="overflow:visible"> + id="id-8edfc5e9-6f2d-476e-b53c-3a776e9134c5" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-9d14adbb-fbd8-4048-af00-90f7bbc4c58e" + overflow="visible" + style="overflow:visible"> + id="id-c9f487e9-5806-4a60-91a3-c9e91807858a" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-10e8a1f4-178b-4d00-8e4a-2242e648c553" + overflow="visible" + style="overflow:visible"> + id="id-c9f6c197-db28-481d-98b9-3350d9f7efca" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-8ad19104-0e1f-41e5-b930-586ef667cef0" + overflow="visible" + style="overflow:visible"> + id="id-7c6de08c-acb8-4850-bd6d-b04e6d3b523b" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-91c76385-e4c1-4d9f-bb4b-e9b4ad17b43b" + overflow="visible" + style="overflow:visible"> + id="id-3c7b395a-0bc1-4781-9db4-8fc63d88dc44" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-ade4e2aa-46de-4896-a637-1aa6890d8208" + overflow="visible" + style="overflow:visible"> + id="id-5e1aa20d-1384-49ee-bbbf-e7a45a065553" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-2f0c3883-d8c4-46b7-8190-8f21475aded8" + overflow="visible" + style="overflow:visible"> + id="id-c9ee327f-b189-49d0-a1cf-94d45b41dd27" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-aac8517b-823e-48fd-9bed-5b7f09608013" + overflow="visible" + style="overflow:visible"> + id="id-586a0586-d449-4e46-90cb-7bb9a3551c58" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-6c094bc2-6d57-488f-8577-11297c7a5be6" + overflow="visible" + style="overflow:visible"> + id="id-ff22f81a-f4ff-49ce-bd0b-df7ac27e416a" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-70680f49-a1a9-40ab-958c-a4f2cd80e56e" + overflow="visible" + style="overflow:visible"> + id="id-f8d5d94f-ae20-416c-a80c-8e6f9f263530" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-5fab6086-0337-4304-9356-9216a88486d4" + overflow="visible" + style="overflow:visible"> + id="id-8cff43b9-2450-40ed-bb44-eec649d1702d" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-a2b23b0b-0df3-4924-ba34-7659140c82ef" + overflow="visible" + style="overflow:visible"> + id="id-e22cd717-9276-4981-bafe-67cf52798385" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-4c7b7671-35ad-453a-aa54-b81619c85aa1" + overflow="visible" + style="overflow:visible"> + id="id-cff881ad-57da-4bdc-973f-bfa749a14d2b" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-41cd4c96-676b-4085-991a-668525d91aae" + overflow="visible" + style="overflow:visible"> + id="id-edd81d97-a412-4284-8c46-7f14df0365d3" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e2234906-584b-4f25-abb5-b067ea4d8383" + overflow="visible" + style="overflow:visible"> + id="id-e1efe2be-795d-4648-adca-d40e9290954f" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - - - + - - - - + id="id-f9f5241c-65ed-4599-b54a-6e5e27f195c8" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-6ef92327-c6e6-422b-864a-b7e8b5761413" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-73b44d0e-1701-48bc-91c4-86ca150cadaf" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-f2685ccd-261a-425b-b0d0-02cf5452ed01" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-41a382da-6485-4ff2-88c7-84129f19e29e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-d0d379d0-eb88-4f42-a515-8cdf7cbd90be" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-6993a956-61ff-48a9-97ce-6e12077407f4" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-fcab3540-c109-406a-8e5e-0b089235f04b" + d="M 6.15625,0 4.171875,-3.25 C 5.203125,-3.546875 5.875,-4.25 5.875,-5.0625 5.875,-6.046875 4.78125,-6.921875 3.359375,-6.921875 H 0.953125 V 0 H 1.8125 V -3.15625 H 3.390625 L 5.265625,0 Z M 5.0625,-5.0625 c 0,0.703125 -0.640625,1.296875 -1.8125,1.296875 H 1.8125 v -2.59375 H 3.25 c 1.15625,0 1.8125,0.59375 1.8125,1.296875 z M 4.78125,-8.671875 H 4.1875 L 3.21875,-7.703125 2.25,-8.671875 H 1.671875 l 1.25,1.328125 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-d317e96c-0967-422f-8f55-e7f251aa4384" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-ba20c3a2-1e27-4dc3-b573-bb5de994ce8a" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-d64f650e-21ee-4987-8612-f3242867e945" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-e328ce65-a022-4f6a-a63c-32b5cbf94937" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-60f8bb2f-e184-491a-abfb-5ab7cc5328b1" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transform="translate(111.313,69.891)" + id="g53988"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id="id-987e1133-71a9-4217-a38b-f39425148157" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transform="translate(73.866,181.472)" + id="g54591"> + id="id-e2c57e86-d47d-42de-a261-2b155005220f" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(84.576,181.472)" + id="g54595"> + id="id-ad568559-f2c4-4c6c-a5e7-a6598442a92d" + d="M 4.96875,-1.890625 C 4.96875,-2.53125 4.671875,-3.015625 4.453125,-3.25 3.984375,-3.75 3.65625,-3.84375 2.734375,-4.0625 2.15625,-4.203125 2,-4.25 1.6875,-4.5 1.625,-4.5625 1.34375,-4.859375 1.34375,-5.296875 c 0,-0.578125 0.546875,-1.1875 1.453125,-1.1875 0.84375,0 1.3125,0.328125 1.6875,0.640625 l 0.15625,-0.796875 c -0.546875,-0.328125 -1.109375,-0.5 -1.828125,-0.5 -1.390625,0 -2.25,0.984375 -2.25,1.96875 0,0.421875 0.140625,0.84375 0.53125,1.265625 0.421875,0.453125 0.859375,0.5625 1.453125,0.703125 0.84375,0.21875 0.9375,0.25 1.21875,0.484375 0.203125,0.171875 0.421875,0.5 0.421875,0.9375 0,0.65625 -0.546875,1.3125 -1.453125,1.3125 -0.40625,0 -1.3125,-0.09375 -2.140625,-0.8125 l -0.15625,0.8125 c 0.875,0.546875 1.671875,0.6875 2.296875,0.6875 1.328125,0 2.234375,-1 2.234375,-2.109375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(90.1112,181.472)" + id="g54598"> + id="id-c4b4d646-4114-4b0e-8b39-b0a943fa57db" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(93.7087,181.472)" + id="g54601"> + id="id-e9e808ac-d751-4ec1-8009-3bf080060427" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(98.4967,181.472)" + id="g54604"> + id="id-e073697c-0844-4d8a-8405-9e8a58b600b8" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(100.877,181.472)" + id="g54607"> + id="id-a61dee32-192f-4474-a6cc-8f15f2498d89" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(109.121,181.472)" + id="g54611"> + id="id-bdc4b625-723f-4df8-99bb-7a8c9550e531" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(114.269,181.472)" + id="g54614"> + id="id-19b1f348-ce2f-4769-aa73-0269a2f294a2" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(118.697,181.472)" + id="g54617"> + id="id-bfecf3e7-02b8-4daa-8d92-aca8df9efd9f" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(123.291,181.472)" + id="g54620"> + id="id-e7c7eec9-6a64-415d-8826-3ebe6ee7d74f" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(125.671,181.472)" + id="g54623"> + id="id-f0211037-fa02-4bca-81b0-695061c15dc2" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(129.489,181.472)" + id="g54626"> + id="id-8761b400-6833-41b9-afea-37492408a1a4" + d="m 4.140625,-5.484375 c 0,-0.671875 -0.40625,-1.546875 -1.90625,-1.546875 C 1.625,-7.03125 1.09375,-6.859375 0.5625,-6.5 l 0.21875,0.625 c 0.25,-0.21875 0.734375,-0.546875 1.453125,-0.546875 0.46875,0 1.125,0.078125 1.125,0.921875 0,0.453125 -0.21875,0.640625 -0.34375,0.765625 C 1.875,-3.765625 1.875,-2.5 1.875,-2.0625 V -1.75 h 0.671875 v -0.53125 c 0,-0.6875 0.328125,-1.421875 1.015625,-2 0.203125,-0.171875 0.578125,-0.484375 0.578125,-1.203125 z M 2.625,0 V -0.828125 H 1.796875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(138.009,181.472)" + id="g54630"> + id="id-24e1a223-ff16-415e-b872-12ce63102e57" + d="M 6.09375,0 V -6.921875 H 5.3125 v 6.21875 H 5.296875 l -0.65625,-1.375 L 2.1875,-6.921875 H 0.953125 V 0 h 0.78125 V -6.203125 H 1.75 L 2.40625,-4.84375 4.859375,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(145.066,181.472)" + id="g54633"> + id="id-9eb74ad6-9931-4119-9b75-df40145378e5" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(149.854,181.472)" + id="g54636"> + id="id-dd2a8da7-0efb-4e92-b677-63bab4d35297" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(155.002,181.472)" + id="g54639"> + id="id-828b430b-3dd7-40da-9229-ed4436381ccc" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(157.382,181.472)" + id="g54642"> + id="id-807ae9d5-366c-4e4c-a49b-30e66e48b1cc" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(165.026,181.472)" + id="g54646"> + id="id-a51b563d-727d-46f3-a0bc-555a7713e7a2" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(169.895,181.472)" + id="g54650"> + id="id-4ee2ab59-89ec-448e-bd0e-34b2e5ae99e7" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + transform="translate(192.391,181.472)" + id="g54663"> + id="id-4bbc87ac-7120-4793-8bbb-20d5253b1f09" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(196.985,181.472)" + id="g54666"> + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + transform="translate(211.542,181.472)" + id="g54675"> + id="id-199a28b3-9e06-4c4c-9c3c-ecc53693ea15" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(216.69,181.472)" + id="g54678"> + id="id-6ecdaf16-6220-4d9a-a295-a9982a18c632" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(221.118,181.472)" + id="g54681"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(223.498,181.472)" + id="g54684"> + id="id-dd4270b4-e27a-40bd-a34b-6018ee414278" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(231.414,181.472)" + id="g54687"> + id="id-ca95b1ad-0d1d-49d2-9a48-fcba25fd0a71" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(240.377,181.472)" + id="g54691"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(243.975,181.472)" + id="g54694"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(248.403,181.472)" + id="g54697"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(256.318,181.472)" + id="g54700"> + id="id-7e5a7ff7-0c5a-4771-8820-57454643ffa4" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(261.106,181.472)" + id="g54703"> + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(264.704,181.472)" + id="g54706"> + id="id-b3ba35c6-b2e6-484d-a8cb-275b1cb10fbc" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(269.574,181.472)" + id="g54709"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(274.363,181.472)" + id="g54712"> + id="id-eaff9635-a346-435e-8387-3d4e5b113494" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(280.946,181.472)" + id="g54716"> + id="id-a8cdf0f8-8b07-40ec-a660-f9a63bb0d2eb" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(284.35,181.472)" + id="g54719"> + id="id-c6be49ac-9959-4ef2-b88b-47736a4e10c8" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(289.138,181.472)" + id="g54722"> + id="id-774603c1-a0ee-4c4c-ac64-ea7f5aac4d52" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(298.101,181.472)" + id="g54726"> + id="id-1191207e-46cf-4a18-b441-cf427ccfb214" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(301.699,181.472)" + id="g54729"> + id="id-e761f870-4ae7-4167-8a33-57c4b923aecc" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(84.576,193.427)" + id="g54733"> + id="id-a9e0a524-ecd7-4cf4-a595-31417d133ab1" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(90.0026,193.427)" + id="g54737"> + id="id-3bfadeae-2790-4096-b7a9-76306e1200ff" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(94.705,193.427)" + id="g54741"> + id="id-b6826586-7626-499a-8ab0-94fb50d181db" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(98.1092,193.427)" + id="g54744"> + id="id-d1ff9dda-68ae-45fb-a0ef-7d6981688332" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(102.897,193.427)" + id="g54747"> + id="id-03f73185-f661-417c-9042-0de726a37335" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(108.045,193.427)" + id="g54750"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(110.425,193.427)" + id="g54753"> + id="id-46918f19-d4e9-487e-8744-56952f735697" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + transform="translate(73.866,213.353)" + id="g54761"> + id="id-d0a4e101-234e-4b40-86d5-9ba2f3853ac6" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(82.5833,213.353)" + id="g54764"> + id="id-052d1a7a-e4cf-4354-8a7e-9eb1fbfd7763" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(87.7309,213.353)" + id="g54767"> + id="id-24d296c8-bf80-4849-8035-11bc87a70715" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(92.0617,213.353)" + id="g54770"> + id="id-43885d90-3383-4d23-904b-13dbfd67dc4b" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(100.527,213.353)" + id="g54774"> + id="id-bf82684d-f4ce-4faa-bf75-ff3be51fa124" + d="m 4.828125,-3.90625 -0.109375,-0.625 c -0.6875,0 -1.265625,0.1875 -1.5625,0.3125 -0.21875,-0.171875 -0.546875,-0.3125 -0.953125,-0.3125 -0.859375,0 -1.578125,0.71875 -1.578125,1.625 0,0.359375 0.125,0.71875 0.328125,0.984375 C 0.65625,-1.515625 0.65625,-1.125 0.65625,-1.078125 0.65625,-0.8125 0.75,-0.53125 0.921875,-0.3125 0.40625,-0.015625 0.28125,0.453125 0.28125,0.703125 c 0,0.75 0.984375,1.34375 2.203125,1.34375 1.21875,0 2.203125,-0.578125 2.203125,-1.34375 C 4.6875,-0.6875 3.03125,-0.6875 2.640625,-0.6875 h -0.875 c -0.125,0 -0.578125,0 -0.578125,-0.53125 0,-0.109375 0.03125,-0.265625 0.109375,-0.359375 0.203125,0.15625 0.53125,0.296875 0.90625,0.296875 0.890625,0 1.59375,-0.75 1.59375,-1.625 0,-0.484375 -0.21875,-0.859375 -0.328125,-1 l 0.046875,0.015625 C 3.734375,-3.890625 4,-3.9375 4.25,-3.9375 c 0.171875,0 0.578125,0.03125 0.578125,0.03125 z m -1.734375,1 c 0,0.765625 -0.46875,1.046875 -0.890625,1.046875 -0.375,0 -0.890625,-0.21875 -0.890625,-1.046875 0,-0.828125 0.515625,-1.0625 0.890625,-1.0625 0.421875,0 0.890625,0.28125 0.890625,1.0625 z M 4,0.71875 c 0,0.4375 -0.6875,0.765625 -1.5,0.765625 -0.8125,0 -1.515625,-0.3125 -1.515625,-0.78125 0,-0.03125 0,-0.671875 0.765625,-0.671875 H 2.65625 C 2.875,0.03125 4,0.03125 4,0.71875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(105.508,213.353)" + id="g54777"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(110.768,213.353)" + id="g54781"> + id="id-8516d0b5-79db-4465-92b8-ec36b6a7dcde" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(115.75,213.353)" + id="g54784"> + id="id-c19e994c-0820-4563-af97-8736af3b2d92" + d="m 4.828125,-3.90625 -0.109375,-0.625 c -0.6875,0 -1.265625,0.1875 -1.5625,0.3125 -0.21875,-0.171875 -0.546875,-0.3125 -0.953125,-0.3125 -0.859375,0 -1.578125,0.71875 -1.578125,1.625 0,0.359375 0.125,0.71875 0.328125,0.984375 C 0.65625,-1.515625 0.65625,-1.125 0.65625,-1.078125 0.65625,-0.8125 0.75,-0.53125 0.921875,-0.3125 0.40625,-0.015625 0.28125,0.453125 0.28125,0.703125 c 0,0.75 0.984375,1.34375 2.203125,1.34375 1.21875,0 2.203125,-0.578125 2.203125,-1.34375 C 4.6875,-0.6875 3.03125,-0.6875 2.640625,-0.6875 h -0.875 c -0.125,0 -0.578125,0 -0.578125,-0.53125 0,-0.109375 0.03125,-0.265625 0.109375,-0.359375 0.203125,0.15625 0.53125,0.296875 0.90625,0.296875 0.890625,0 1.59375,-0.75 1.59375,-1.625 0,-0.484375 -0.21875,-0.859375 -0.328125,-1 l 0.046875,0.015625 C 3.734375,-3.890625 4,-3.9375 4.25,-3.9375 c 0.171875,0 0.578125,0.03125 0.578125,0.03125 z m -1.734375,1 c 0,0.765625 -0.46875,1.046875 -0.890625,1.046875 -0.375,0 -0.890625,-0.21875 -0.890625,-1.046875 0,-0.828125 0.515625,-1.0625 0.890625,-1.0625 0.421875,0 0.890625,0.28125 0.890625,1.0625 z M 4,0.71875 c 0,0.4375 -0.6875,0.765625 -1.5,0.765625 -0.8125,0 -1.515625,-0.3125 -1.515625,-0.78125 0,-0.03125 0,-0.671875 0.765625,-0.671875 H 2.65625 C 2.875,0.03125 4,0.03125 4,0.71875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(120.731,213.353)" + id="g54787"> + id="id-fc101dff-1d91-41ec-a9ef-92bd2b234bc3" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(123.111,213.353)" + id="g54790"> + id="id-6cdf9c34-1400-4f95-971b-ce1f0b9cc8d6" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(125.491,213.353)" + id="g54793"> + id="id-2bd184e3-eae9-4227-8b5e-7b729e9518d5" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(129.089,213.353)" + id="g54796"> + id="id-c0128077-4fc2-4468-99a9-70c572d2758f" + d="m 4.140625,-5.484375 c 0,-0.671875 -0.40625,-1.546875 -1.90625,-1.546875 C 1.625,-7.03125 1.09375,-6.859375 0.5625,-6.5 l 0.21875,0.625 c 0.25,-0.21875 0.734375,-0.546875 1.453125,-0.546875 0.46875,0 1.125,0.078125 1.125,0.921875 0,0.453125 -0.21875,0.640625 -0.34375,0.765625 C 1.875,-3.765625 1.875,-2.5 1.875,-2.0625 V -1.75 h 0.671875 v -0.53125 c 0,-0.6875 0.328125,-1.421875 1.015625,-2 0.203125,-0.171875 0.578125,-0.484375 0.578125,-1.203125 z M 2.625,0 V -0.828125 H 1.796875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(73.866,233.278)" + id="g54800"> + id="id-337d30e2-a44f-4e8b-9f91-5c43b798163c" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(84.576,233.278)" + id="g54804"> + id="id-90d3dee2-d960-4961-a71e-610c6b514320" + d="M 6.359375,0 3.765625,-6.921875 H 2.875 L 0.28125,0 H 1.015625 L 1.78125,-2.03125 H 4.6875 L 5.4375,0 Z M 4.46875,-2.59375 H 2 c 0.5,-1.421875 0.140625,-0.375 0.640625,-1.796875 0.203125,-0.59375 0.515625,-1.4375 0.59375,-1.8125 0.03125,0.140625 0.09375,0.390625 0.328125,1.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(91.2181,233.278)" + id="g54807"> + id="id-50b61e67-4074-4a38-a9ab-a790ee5fd90d" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(96.3657,233.278)" + id="g54810"> + id="id-2ede1e36-15ee-41bd-9436-e2a35d48f0d7" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(101.347,233.278)" + id="g54813"> + id="id-537ec821-752c-430f-801e-47fb2d217fc4" + d="M 2,-6.921875 H 1.171875 l 0.078125,4.75 V -1.75 H 1.921875 V -2.171875 Z M 2,0 V -0.828125 H 1.171875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(107.24,233.278)" + id="g54817"> + id="id-007ad50f-341f-4847-b3ba-e5d2367cc668" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(113.326,233.278)" + id="g54821"> + id="id-eb988d9e-dc2a-497c-a542-68e7d72bf5b0" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(118.307,233.278)" + id="g54824"> + id="id-aa6d7307-2984-4074-8145-a2ff4d88d6d7" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(123.178,233.278)" + id="g54827"> + id="id-1cf27fe7-68f3-4e40-bd36-be667d131840" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + transform="translate(136.183,233.278)" + id="g54834"> + id="id-d46d1692-5a22-45bf-8a4e-dce4c773a7ee" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(140.777,233.278)" + id="g54837"> + id="id-642c4315-6b54-4746-bf34-552127692d68" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + transform="translate(156.964,233.278)" + id="g54847"> + id="id-4057136c-fa79-48c2-91f3-7e0e7e94d749" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(162.112,233.278)" + id="g54850"> + id="id-d0f58803-e584-45d6-8824-ec383da9ae93" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(166.54,233.278)" + id="g54853"> + id="id-ad85e7d4-ff0d-418b-b7a9-9a2580e8fd6c" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(171.688,233.278)" + id="g54856"> + id="id-bc108731-8714-4730-b7f7-44cf22fd1203" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(176.836,233.278)" + id="g54859"> + id="id-18170411-0f3c-4e76-97b6-6cb5abcab40f" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(181.983,233.278)" + id="g54862"> + id="id-b40f677e-9603-487f-9705-495cc7f46199" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(189.122,233.278)" + id="g54866"> + id="id-103fe270-1c2b-4ed6-9399-77060cac10cc" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(194.269,233.278)" + id="g54869"> + id="id-dabb6ad5-97ba-45e1-9ad1-42e60ade1f77" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(198.863,233.278)" + id="g54872"> + id="id-8eb1ef46-5cdc-4747-8d45-0ba2a0dde002" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(203.291,233.278)" + id="g54875"> + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(212.867,233.278)" + id="g54881"> + id="id-3f71b3e3-ff45-48b4-80d7-e687dab3efd7" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + transform="translate(225.706,233.278)" + id="g54888"> + id="id-718caf81-5edb-48f6-8b64-1b93b32eed06" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(228.363,233.278)" + id="g54891"> + id="id-c381d62f-89d0-4741-8409-762a64092c4a" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(230.743,233.278)" + id="g54894"> + id="id-cd8bfc69-7bc1-4b5a-a099-4fd701fb34ea" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(235.891,233.278)" + id="g54897"> + id="id-9cf25097-1791-4052-a929-0491556262eb" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + transform="translate(251.027,233.278)" + id="g54907"> + id="id-4b26ba26-e52b-40b4-9cd0-4900e1a3e899" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(256.175,233.278)" + id="g54910"> + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(260.603,233.278)" + id="g54913"> + id="id-e1aacf60-efdb-47b0-b0bf-f273e63c97d9" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(265.751,233.278)" + id="g54916"> + id="id-5e0aabc7-9391-43e4-b0ee-4ce9a72c0c2e" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(268.131,233.278)" + id="g54919"> + id="id-7a9414ec-15cc-43b9-960c-553cb4060fea" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(272.559,233.278)" + id="g54922"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(277.707,233.278)" + id="g54925"> + id="id-c92a32b8-7100-451d-867a-f0177333201b" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(282.135,233.278)" + id="g54928"> + id="id-cd6eb2ac-3092-4e9d-be3c-7c2af812cbea" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(287.502,233.278)" + id="g54932"> + id="id-ce0cfaa4-95c1-4324-8b02-65dc3bc31905" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(292.371,233.278)" + id="g54936"> + id="id-d30d55cc-9f74-4954-8558-afa6e3b217ec" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(295.775,233.278)" + id="g54939"> + id="id-4a9f944e-ffef-4af5-9663-4d157dc44882" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(300.756,233.278)" + id="g54942"> + id="id-3e05189e-bc44-4851-b7d1-da5cb260f41c" + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(84.576,245.233)" + id="g54946"> + id="id-b690bbdf-b7c4-4539-9696-fd54aaebba12" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(88.3947,245.233)" + id="g54949"> + id="id-fa02d320-cc63-4cea-ae0e-88907337bd33" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(90.7747,245.233)" + id="g54952"> + id="id-b38c92a4-72d8-4013-8eeb-9a000ba39a05" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(102.655,245.233)" + id="g54956"> + id="id-97b4ff8a-23fb-4b5a-a971-b68e14065505" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(107.524,245.233)" + id="g54960"> + id="id-9561f807-cf62-4dc5-a58e-b1400d628c76" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(110.928,245.233)" + id="g54963"> + id="id-f83988c2-82d4-4ac2-85d5-3ba8fdd7c168" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(113.308,245.233)" + id="g54966"> + id="id-6d4dc7e5-a67a-4eee-b55b-67eab2330e61" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(121.223,245.233)" + id="g54969"> + id="id-d4d191db-1f9b-4283-b77a-a37250d04818" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(130.16,245.233)" + id="g54973"> + id="id-f7d768d1-839b-4ad6-9cb5-f795268c5fe3" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(133.564,245.233)" + id="g54976"> + id="id-20391b76-8181-4619-a6b4-1af6f313021e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(137.992,245.233)" + id="g54979"> + id="id-441fd77e-bf04-4e68-a346-a9b83d5505f9" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(141.811,245.233)" + id="g54982"> + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + transform="translate(157.732,245.233)" + id="g54992"> + id="id-d5606897-95ab-4999-aa66-d25b36cc8c51" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(162.063,245.233)" + id="g54995"> + id="id-fb420b58-4883-424c-92cf-f63c12e0788a" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(166.851,245.233)" + id="g54998"> + id="id-5993441e-a47a-452d-9e0c-a6e9be698d35" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(171.999,245.233)" + id="g55001"> + id="id-cc3e0998-7177-483a-8118-f3b27943fbaf" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(176.787,245.233)" + id="g55004"> + id="id-496f7cb3-748f-4934-8e35-dba61c2da831" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(181.935,245.233)" + id="g55007"> + id="id-e1e32984-9257-40b0-a068-aa0a9d0cf953" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(186.528,245.233)" + id="g55010"> + id="id-55b8a2ea-6bd7-4bdc-938f-c645f87c1b60" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(190.957,245.233)" + id="g55013"> + id="id-e381c59a-e08a-481f-8335-c5b68dfe20ae" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(200.059,245.233)" + id="g55017"> + id="id-f05a6a08-aae2-4df5-9822-bde5a3f6d780" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(205.207,245.233)" + id="g55020"> + id="id-b64fa177-7aeb-43a9-96c6-2f0233d20e1b" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(207.587,245.233)" + id="g55023"> + id="id-d1fcb2a9-d6e1-40be-85c8-966d4b329abc" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(212.569,245.233)" + id="g55026"> + id="id-bb1c7840-1c16-483d-8aae-4d4dae588c26" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(217.716,245.233)" + id="g55029"> + id="id-b00473ef-ee46-40b1-a2f6-3087427f4f1a" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(224.449,245.233)" + id="g55033"> + id="id-72498925-64b5-4f02-ac40-a4369840d6f3" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(232.364,245.233)" + id="g55036"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(237.345,245.233)" + id="g55039"> + id="id-c57a6b5e-3cc7-4e27-aa1e-7f735a7362c6" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(242.493,245.233)" + id="g55042"> + + + + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(253.536,245.233)" + id="g55051"> + id="id-923f9462-fb0e-445b-935b-aa46c3b22188" + d="m 3.078125,-2.5 c 0,-3.21875 -1.4375,-4.53125 -1.90625,-4.984375 H 0.5625 C 1.03125,-7 2.296875,-5.71875 2.296875,-2.5 c 0,0.5625 -0.03125,1.734375 -0.4375,2.90625 C 1.453125,1.5625 0.890625,2.15625 0.5625,2.5 h 0.609375 c 0.3125,-0.3125 0.984375,-0.921875 1.4375,-2.140625 0.40625,-1.0625 0.46875,-2.125 0.46875,-2.859375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(261.365,245.233)" + id="g55055"> + id="id-fdb59f03-d588-420a-a0fc-6771129da8e7" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(266.244,245.233)" + id="g55059"> + id="id-aac20f3a-5886-40b1-9daf-9f340c8b25a9" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(274.793,245.233)" + id="g55063"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(278.612,245.233)" + id="g55066"> + id="id-bcb6b9e0-1ad4-4f18-8e98-20d0ec0d6b13" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(283.04,245.233)" + id="g55069"> + id="id-78aaca1e-b9ef-4596-8b52-166c3a44804f" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(290.824,245.233)" + id="g55073"> - - - - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(294.421,245.233)" + id="g55076"> + id="id-d86a82ec-b4e4-42c8-9f9a-0f41e6f2e408" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(299.209,245.233)" + id="g55079"> + id="id-b87d8398-a7fb-4247-b161-3572cbb45f14" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(84.576,257.188)" + id="g55083"> + id="id-206c2be9-db8e-405a-bd88-ea41c9db65e5" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(89.8363,257.188)" + id="g55087"> + id="id-7ab08e3d-1ad6-4eb4-81d5-8b9e4032120b" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(94.2646,257.188)" + id="g55090"> + id="id-a4787819-9ac2-4950-bd54-c028315db084" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(99.4123,257.188)" + id="g55093"> + id="id-54784ef3-9a82-4836-8502-0a362fad3f2b" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(104.56,257.188)" + id="g55096"> + id="id-61de76f6-eed7-48ab-a19d-4b37ca2022ad" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(109.708,257.188)" + id="g55099"> + id="id-3533cf58-f972-46ae-82e4-32960c00864d" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(112.088,257.188)" + id="g55102"> + id="id-b6680a42-730d-44d8-ac52-2e9a19c37fd5" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(119.003,257.188)" + id="g55106"> + id="id-cd592d95-ff45-440d-b347-4708f6ccc662" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(127.302,257.188)" + id="g55110"> + id="id-698871ca-aeee-4150-97e9-c95fb33a4c71" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(130.706,257.188)" + id="g55113"> + id="id-1695534b-c7d3-42d3-80e5-a73688ef4f03" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(135.494,257.188)" + id="g55116"> + id="id-a2ff9658-b03a-4692-af16-d0830a0e0962" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(140.642,257.188)" + id="g55119"> + id="id-5a4cbebf-c156-43d5-ac75-f9725998ac1e" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(145.623,257.188)" + id="g55122"> + id="id-8d11e54d-e8d8-48c4-8b50-c23214f83936" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(149.441,257.188)" + id="g55125"> + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(156.367,257.188)" + id="g55129"> + id="id-edba5ed0-718f-48d5-8a02-bdeb2feaf672" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(164.015,257.188)" + id="g55133"> + id="id-b8fb08c5-f202-4983-aa8c-5aaa7735d0e1" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(168.996,257.188)" + id="g55136"> + id="id-f4f3f942-d8b2-4785-864e-f60df6236aa0" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(174.144,257.188)" + id="g55139"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(176.801,257.188)" + id="g55142"> + id="id-abd6547b-cb1a-4d7f-9d5f-5e9e1aaec45e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(181.229,257.188)" + id="g55145"> + id="id-a4e48b55-dda2-4af3-b5bb-50f7c83ecbd0" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(185.823,257.188)" + id="g55148"> + id="id-28356791-3781-491b-8907-eeea4b5c795d" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(190.804,257.188)" + id="g55151"> + id="id-6479bb84-41c9-4079-9eaa-71aaf1873fa0" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(195.398,257.188)" + id="g55154"> + id="id-88e250bf-f1fe-4cbe-923e-3971b170d28f" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(200.186,257.188)" + id="g55157"> + id="id-17e30654-e1a7-4687-818f-a0131f957cdb" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(205.334,257.188)" + id="g55160"> + id="id-eb8966aa-0261-4171-8cb4-1d01219b8f26" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(207.714,257.188)" + id="g55163"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(61.136,277.113)" + id="g55167"> + id="id-8ad30945-7ef4-4969-a74e-90f6e4249c22" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(73.866,277.113)" + id="g55171"> - - - - - - - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(82.7188,277.113)" + id="g55175"> + id="id-dbc57f8c-4c53-4828-a0e3-ccec1ad3eaab" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(87.979,277.113)" + id="g55179"> + id="id-b30f1966-9025-4784-9e98-92ab2c76afb6" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(93.1267,277.113)" + id="g55182"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(97.5551,277.113)" + id="g55185"> - - - - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(102.149,277.113)" + id="g55188"> + id="id-cff059d0-0fe7-4278-ae0d-eef0d1a639a0" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(106.48,277.113)" + id="g55191"> + id="id-d6f76271-e4e9-4968-a7e2-a5f7b74ee7b1" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(111.627,277.113)" + id="g55194"> + id="id-082fcbce-0b8e-47d1-bb3a-c57ddfdb0cee" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(116.415,277.113)" + id="g55197"> + id="id-e1b36b83-24d4-42d1-a988-7c1c7d652bc1" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(121.563,277.113)" + id="g55200"> + id="id-8a1b91ec-1c52-4eff-985c-5554d7f6140c" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(123.943,277.113)" + id="g55203"> + id="id-99415dbb-6897-4294-9da3-c18b947fb491" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(135.176,277.113)" + id="g55207"> + id="id-ec179d29-58f8-40e4-87c5-160af7d18e9e" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(140.324,277.113)" + id="g55210"> + id="id-a2200b0a-3cc4-41fd-a483-a2a698f1890e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(144.752,277.113)" + id="g55213"> + id="id-4314abce-15c7-41f2-923d-95e2e5fa1361" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(149.733,277.113)" + id="g55216"> + id="id-654e0d9a-4f82-4dac-b580-20b156741415" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(153.331,277.113)" + id="g55219"> + id="id-2f463a16-af9e-4275-9171-4280f98ed1e5" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(158.119,277.113)" + id="g55222"> + id="id-c8fae146-a605-45d3-8aca-861dc3e4234f" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(160.499,277.113)" + id="g55225"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(164.927,277.113)" + id="g55228"> + id="id-cb823763-ed3a-4bb6-9de2-ddd805107269" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(73.866,297.039)" + id="g55232"> + id="id-b68f3a31-8e63-46e2-8bc7-a62352a8fff0" + d="M 5.71875,-2.546875 V -2.90625 H 0 v 0.359375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(84.576,297.039)" + id="g55236"> + id="id-d030002d-6a32-4e74-a928-7cc50ee8ffb1" + d="M 4.96875,-1.890625 C 4.96875,-2.53125 4.671875,-3.015625 4.453125,-3.25 3.984375,-3.75 3.65625,-3.84375 2.734375,-4.0625 2.15625,-4.203125 2,-4.25 1.6875,-4.5 1.625,-4.5625 1.34375,-4.859375 1.34375,-5.296875 c 0,-0.578125 0.546875,-1.1875 1.453125,-1.1875 0.84375,0 1.3125,0.328125 1.6875,0.640625 l 0.15625,-0.796875 c -0.546875,-0.328125 -1.109375,-0.5 -1.828125,-0.5 -1.390625,0 -2.25,0.984375 -2.25,1.96875 0,0.421875 0.140625,0.84375 0.53125,1.265625 0.421875,0.453125 0.859375,0.5625 1.453125,0.703125 0.84375,0.21875 0.9375,0.25 1.21875,0.484375 0.203125,0.171875 0.421875,0.5 0.421875,0.9375 0,0.65625 -0.546875,1.3125 -1.453125,1.3125 -0.40625,0 -1.3125,-0.09375 -2.140625,-0.8125 l -0.15625,0.8125 c 0.875,0.546875 1.671875,0.6875 2.296875,0.6875 1.328125,0 2.234375,-1 2.234375,-2.109375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(90.1112,297.039)" + id="g55239"> + id="id-196ed8b1-e8dd-4674-baa1-789c128ed63d" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(93.7087,297.039)" + id="g55242"> + id="id-ca4e6dfb-bf25-468a-a5e7-ac088c3cacaf" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(96.0888,297.039)" + id="g55245"> + id="id-47b172ff-419f-4ab0-bc31-dd3439dd9d2e" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(101.236,297.039)" + id="g55248"> + id="id-be31e4b2-0965-4efc-bddd-5032227a03ca" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(106.384,297.039)" + id="g55251"> + id="id-7c31e4a4-1a9f-4d66-9e53-e3d80c6cba3c" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(110.813,297.039)" + id="g55254"> + id="id-51b4dd23-6ae4-4b0d-9f29-413832bbaf13" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(118.728,297.039)" + id="g55257"> + id="id-59bec95b-e559-4758-b26a-a9196d705876" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(123.156,297.039)" + id="g55260"> + id="id-79fc800f-891e-4716-9ef7-c26552eb298a" + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(126.477,297.039)" + id="g55263"> + id="id-8f75c3a5-45e4-42c6-9456-0d01ec53854f" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(128.857,297.039)" + id="g55266"> + id="id-2586b4fb-49e5-481a-b41c-ac76ebd4e871" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(133.927,297.039)" + id="g55270"> + id="id-d172fc06-f2ca-496e-8f91-f775949b5597" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(137.524,297.039)" + id="g55273"> + id="id-9bbd3fe3-229e-4004-bf30-730568d158a6" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(142.604,297.039)" + id="g55277"> + id="id-1a54f084-01e2-4afe-b99e-9de6b9618eff" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(146.008,297.039)" + id="g55280"> + id="id-d5cf118d-d4e3-447e-b6e0-63ba531dff26" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(150.437,297.039)" + id="g55283"> + id="id-b21a602e-860c-4f5c-b649-7782fc2cd8e2" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(154.255,297.039)" + id="g55286"> + id="id-98f8fe32-13d7-4bc4-8f98-26afa027fb3a" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(158.684,297.039)" + id="g55289"> + id="id-7367ac45-e92b-4d13-bd1c-b7b47714e854" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(163.831,297.039)" + id="g55292"> + id="id-9ec05f06-c6ee-4ac4-a6cd-4ebbe2e95054" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(168.911,297.039)" + id="g55296"> + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + transform="translate(178.761,297.039)" + id="g55303"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(182.166,297.039)" + id="g55306"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(186.954,297.039)" + id="g55309"> + id="id-dd03342a-7abd-461b-a9aa-1ae01c8382b5" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(191.547,297.039)" + id="g55312"> + id="id-4d7f5d6a-37b3-49f6-abe5-27daf59fefe0" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(193.927,297.039)" + id="g55315"> + id="id-0d9ded4d-e4bb-4c38-9986-2beacd110111" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(200.225,297.039)" + id="g55319"> + id="id-eb3d7e13-6ded-4e4d-a2cd-ee33c5c57bc7" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(205.094,297.039)" + id="g55323"> + id="id-395c995f-b33a-4dcf-aacf-1a6dc77369fb" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(208.498,297.039)" + id="g55326"> + id="id-51b045d8-c8ec-41e2-89f3-6bf8323a50df" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(212.926,297.039)" + id="g55329"> + id="id-975ef532-8d72-4acb-801e-bf81baa39fab" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(220.764,297.039)" + id="g55333"> + id="id-f5f7e657-aca0-47a3-b928-3b2ef7ff937b" + d="m 4.234375,0 v -0.578125 h -1.25 v -6.1875 H 2.78125 C 2.1875,-6.15625 1.359375,-6.125 0.890625,-6.09375 v 0.578125 C 1.21875,-5.53125 1.6875,-5.546875 2.1875,-5.765625 v 5.1875 H 0.953125 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(225.745,297.039)" + id="g55336"> + id="id-96779b30-15c4-4529-b19e-52fac8d3bbad" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(231.213,297.039)" + id="g55340"> + id="id-9fb29117-7e72-4392-b958-92abcba55c7d" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(236.36,297.039)" + id="g55343"> + id="id-177842da-1c06-4ba9-9cad-980f85951908" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(240.789,297.039)" + id="g55346"> + id="id-860ef1de-3a62-421a-81d2-94746192a4c2" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(245.577,297.039)" + id="g55349"> + id="id-bdfa4b89-97f6-4cbe-bf1c-0a4c909c2f8b" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(250.724,297.039)" + id="g55352"> + id="id-5f5e1f0f-2702-489a-8169-a4f1a34a49c8" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(253.104,297.039)" + id="g55355"> + id="id-7bb49abe-2745-4294-bdac-4471732b7986" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(255.484,297.039)" + id="g55358"> + id="id-e8171b09-530b-4152-8d82-ece866b28361" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(260.632,297.039)" + id="g55361"> + id="id-d7ea5d01-06be-4079-8c91-34598eb43223" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(265.06,297.039)" + id="g55364"> + id="id-7688fb71-64ff-4c47-81f6-9af8ef5aa136" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(272.976,297.039)" + id="g55367"> + id="id-39972f5c-5517-4a9c-8e5a-967a5fea8f00" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(278.433,297.039)" + id="g55371"> + id="id-b3a259b9-1af4-4998-9441-b9a6b03911eb" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(286.349,297.039)" + id="g55374"> + id="id-25f9b231-af13-462d-a091-fabf440bdaf1" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(291.496,297.039)" + id="g55377"> + id="id-95d73bd7-9a3c-4d84-8089-e8e23c14d93f" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(295.827,297.039)" + id="g55380"> + id="id-f1f07b35-fc22-45d4-b3ae-4de79601ca0b" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(300.255,297.039)" + id="g55383"> + id="id-84724760-1d07-4879-9098-ebbeb2ff6d83" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(84.576,308.994)" + id="g55387"> + id="id-0981f3ca-f91d-4026-961b-32eed1c2db45" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(88.3947,308.994)" + id="g55390"> + id="id-eeb194c5-7880-4c74-a633-fb6ce92da493" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(94.0923,308.994)" + id="g55394"> + id="id-59864e03-00b5-44e8-a4b0-d73706f88a35" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(96.7493,308.994)" + id="g55397"> + id="id-805a6fe2-b4ae-4f12-a666-2ef21d9f336d" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + transform="translate(107.162,308.994)" + id="g55404"> + id="id-51e90833-616e-42f2-8d24-1ddc806f534c" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(109.819,308.994)" + id="g55407"> - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(114.248,308.994)" + id="g55410"> + id="id-53241141-394c-4daf-b60d-e0d1300cbdea" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(118.066,308.994)" + id="g55413"> + id="id-bffcf1fa-3382-40c7-98fc-c8af9431bf3d" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(121.664,308.994)" + id="g55416"> + id="id-98dfdfdf-c61b-4b81-9b1c-36d5512dc78f" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(129.41,308.994)" + id="g55420"> + id="id-cf9e2cab-a103-4384-81ff-b889179f77cd" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(133.74,308.994)" + id="g55423"> + id="id-dc50c90d-0919-45c1-ba94-7c8cc1f10579" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(136.12,308.994)" + id="g55426"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(140.549,308.994)" + id="g55429"> + id="id-6327a679-a2cc-4662-8dcc-29b6636362d1" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(145.697,308.994)" + id="g55432"> + id="id-7520621c-5e5e-4c2e-b225-ae2f0bbee235" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(149.515,308.994)" + id="g55435"> + id="id-c5a6787e-c032-4c5b-959d-ef46a9b2a630" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(151.895,308.994)" + id="g55438"> + id="id-e0fd6b6c-191c-4003-a23e-6b841af34fbe" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(155.493,308.994)" + id="g55441"> + id="id-5a844836-97d1-49f2-90cf-73a28188d4e4" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - + + + + + + + + + + + + + + + + + - - + id="id-6a73ba29-3b21-4327-937a-4e63dce0e58b" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-8a153723-206c-4dd8-87d9-c38b7406fb7e" + d="m 6.5625,-2.390625 c 0,-1.34375 -1,-2.34375 -2.1875,-2.625 l -1.140625,-0.25 C 2.96875,-5.328125 2.21875,-5.609375 2.21875,-6.28125 c 0,-1.015625 1.015625,-1.046875 1.421875,-1.046875 0.671875,0 1.265625,0.15625 1.859375,0.734375 0.1875,0.171875 0.203125,0.1875 0.25,0.1875 0.078125,0 0.125,-0.03125 0.171875,-0.21875 L 6.09375,-7.65625 C 6.125,-7.75 6.125,-7.78125 6.125,-7.8125 6.125,-7.90625 6.109375,-7.921875 5.8125,-8.078125 4.953125,-8.5 4.25,-8.5625 3.640625,-8.5625 c -1.0625,0 -2.90625,0.25 -2.90625,2.484375 0,0.859375 0.4375,1.40625 0.671875,1.640625 0.609375,0.625 1.15625,0.75 2.09375,0.953125 0.671875,0.15625 0.9375,0.21875 1.203125,0.453125 0.109375,0.125 0.359375,0.375 0.359375,0.828125 0,1.125 -1.015625,1.15625 -1.421875,1.15625 -1,0 -1.875,-0.40625 -2.46875,-0.9375 C 1.03125,-2.125 1,-2.125 0.953125,-2.125 c -0.0625,0 -0.125,0.03125 -0.171875,0.21875 L 0.609375,-0.875 c -0.03125,0.09375 -0.03125,0.125 -0.03125,0.15625 0,0.25 1.25,0.6875 1.3125,0.703125 0.796875,0.25 1.4375,0.28125 1.75,0.28125 1.796875,0 2.921875,-0.796875 2.921875,-2.65625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-7138b5f9-31ce-4349-b4ca-c53f895f3527" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + - - + id="id-faed74d3-0354-417e-a30d-7ba442b21411" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-3d2cc21c-0db7-4a35-b330-98df8e40f974" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-a352ba93-db62-49a8-9b8e-78ab0f197073" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-c0cd74bb-53d0-4270-ad05-0f7dc31ab6cd" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-06c2907a-46a6-46a6-afe2-220ddf7edee8" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-f87a6775-b38a-4680-b84c-9361e20ab90b" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-f3e55dde-4692-4c54-a7a4-52a3398a555e" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + - - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-5c95dce0-e04a-4f86-b77f-56ab4eaeea78" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-d9515b1d-6acf-432f-9c1f-a29c411f3613" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-42ee6521-8ca4-4584-bfd1-0e14a3e37637" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - + id="id-545d537c-4b8f-4925-be1e-c3c725165e90" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + transform="translate(177.323,38.309)" + id="g12186"> + id="id-d52bb9d7-6b09-44b2-9e41-3cd41a3cdfb6" + d="m 6.5625,-2.390625 c 0,-1.34375 -1,-2.34375 -2.1875,-2.625 l -1.140625,-0.25 C 2.96875,-5.328125 2.21875,-5.609375 2.21875,-6.28125 c 0,-1.015625 1.015625,-1.046875 1.421875,-1.046875 0.671875,0 1.265625,0.15625 1.859375,0.734375 0.1875,0.171875 0.203125,0.1875 0.25,0.1875 0.078125,0 0.125,-0.03125 0.171875,-0.21875 L 6.09375,-7.65625 C 6.125,-7.75 6.125,-7.78125 6.125,-7.8125 6.125,-7.90625 6.109375,-7.921875 5.8125,-8.078125 4.953125,-8.5 4.25,-8.5625 3.640625,-8.5625 c -1.0625,0 -2.90625,0.25 -2.90625,2.484375 0,0.859375 0.4375,1.40625 0.671875,1.640625 0.609375,0.625 1.15625,0.75 2.09375,0.953125 0.671875,0.15625 0.9375,0.21875 1.203125,0.453125 0.109375,0.125 0.359375,0.375 0.359375,0.828125 0,1.125 -1.015625,1.15625 -1.421875,1.15625 -1,0 -1.875,-0.40625 -2.46875,-0.9375 C 1.03125,-2.125 1,-2.125 0.953125,-2.125 c -0.0625,0 -0.125,0.03125 -0.171875,0.21875 L 0.609375,-0.875 c -0.03125,0.09375 -0.03125,0.125 -0.03125,0.15625 0,0.25 1.25,0.6875 1.3125,0.703125 0.796875,0.25 1.4375,0.28125 1.75,0.28125 1.796875,0 2.921875,-0.796875 2.921875,-2.65625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(184.629,38.309)" + id="g12190"> + id="id-aeb76a59-94fb-4ebc-827f-5c66fdade02c" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(190.739,38.309)" + id="g12194"> + id="id-97ca64fa-0052-4671-b329-df5e6ec3b7e6" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(197.447,38.309)" + id="g12197"> + id="id-fa3a6155-7a4d-4120-89d4-dfe2b40214d2" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(200.502,38.309)" + id="g12200"> + id="id-ef9bb575-ca57-4c91-b6e9-29626f11ca3d" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m -0.28125,-6.421875 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.53125,-7.09375 1.359375,-8.3125 c -0.015625,0 -0.0625,-0.015625 -0.0625,-0.015625 h -0.5625 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.75,-6.4375 c 0.015625,0.03125 0.0625,0.046875 0.109375,0.046875 h 1.3125 c 0.0625,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(209.931,38.309)" + id="g12204"> + id="id-dbe8b409-2ddb-445e-9ad6-350dfe75f3e6" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(214.381,38.309)" + id="g12207"> + id="id-42df5ddf-639f-4f3a-a56c-10248865af99" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(220.491,38.309)" + id="g12210"> + id="id-58fb2762-5949-4863-816f-2ab9c529836d" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m -0.28125,-6.421875 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.53125,-7.09375 1.359375,-8.3125 c -0.015625,0 -0.0625,-0.015625 -0.0625,-0.015625 h -0.5625 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.75,-6.4375 c 0.015625,0.03125 0.0625,0.046875 0.109375,0.046875 h 1.3125 c 0.0625,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(225.532,38.309)" + id="g12213"> + id="id-7470ee55-d3b3-450f-bc3b-a19d5eac1a6e" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(231.643,38.309)" + id="g12216"> + id="id-39c35119-1477-423b-baa4-9cadc764b490" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(238.351,38.309)" + id="g12219"> + id="id-75b65d58-afb3-4bee-af62-7d74d486ec29" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(162.019,56.242)" + id="g12223"> + id="id-6a34d4c7-93f8-47c2-b760-b8792cdc7ccc" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(167.167,56.242)" + id="g12226"> + id="id-0fbf4d54-6e48-4fb4-ae9a-be47afcb5089" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(172.314,56.242)" + id="g12229"> + id="id-b600a135-fb07-451e-8583-60fa7089920a" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(174.694,56.242)" + id="g12232"> + id="id-048151d5-fb81-4ea3-b49a-f633a12a5f5f" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(179.123,56.242)" + id="g12235"> + id="id-9238d636-c5d9-493b-ae73-a480b00355bb" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(183.454,56.242)" + id="g12238"> + id="id-c6d1ff1f-a21e-4ee2-8469-471ad665ef70" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(185.834,56.242)" + id="g12241"> + id="id-a8de1ced-9805-4c66-b82d-14951bce80f0" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - - - - + transform="translate(189.152,56.242)" + id="g12245"> + id="id-7920f6e4-9a49-4a44-8751-cd502a02b391" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(197.063,56.242)" + id="g12249"> + id="id-d4a82f20-930e-4a5f-b1aa-c8f4fd53e92f" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(199.72,56.242)" + id="g12252"> + id="id-753ce2b3-7c91-417c-a215-5a40abb51028" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(207.476,56.242)" + id="g12256"> + id="id-b2e301a4-151d-48d4-9c2d-f8f2af44de23" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(211.905,56.242)" + id="g12259"> + id="id-0b34c429-a859-4ae1-b25b-5da53a281103" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(216.333,56.242)" + id="g12262"> - - - - - - - - - + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(218.713,56.242)" + id="g12265"> + + transform="translate(226.624,56.242)" + id="g12269"> + id="id-c5023c91-66f1-4b0a-b878-048e96856a8c" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(232.051,56.242)" + id="g12273"> + id="id-156db76d-564d-4079-9817-cfd0fcdeacab" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(237.032,56.242)" + id="g12276"> + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(240.851,56.242)" + id="g12279"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(244.449,56.242)" + id="g12282"> + id="id-4d27340b-f689-432f-b5a5-9fb1f38ed9a3" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(249.596,56.242)" + id="g12285"> + id="id-808f7c3d-5465-4315-8a11-c9828bfe0a9c" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(254.744,56.242)" + id="g12288"> + id="id-f28342b2-5603-45cf-937e-44227a17c0aa" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - + transform="translate(180.02,68.197)" + id="g12292"> + id="id-a165dcd3-9ff6-4d50-9817-b64cefcb8303" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(185.168,68.197)" + id="g12295"> + id="id-f42f6d76-862d-4f96-a912-827900663c4b" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(189.596,68.197)" + id="g12298"> + id="id-69a78a23-dfdb-4b72-a2c5-44afdcfc443d" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(192.253,68.197)" + id="g12301"> + id="id-b7ba1568-3f9a-4aef-955e-f112bc3928be" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(196.681,68.197)" + id="g12304"> + id="id-b84d94c8-6ba3-470c-8a5c-e36ff071ae71" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(205.147,68.197)" + id="g12308"> + id="id-e9d69b47-207f-4b16-9862-1479a0538e22" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(209.74,68.197)" + id="g12311"> + id="id-00b1a5ff-820d-4507-9f88-4a16d8cf28bf" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(214.334,68.197)" + id="g12314"> + id="id-59b89ff3-f47d-46ba-a15e-c8c22ee20b58" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(218.153,68.197)" + id="g12317"> + id="id-08f14d9f-fc5d-4a25-97ea-d5d2b79d7636" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(220.533,68.197)" + id="g12320"> + id="id-f3387582-aa1d-414e-82d6-21c64093bb3e" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(224.961,68.197)" + id="g12323"> + id="id-2ee1919c-b2d0-4713-a9ab-62d8ec0915c3" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(230.109,68.197)" + id="g12326"> + id="id-9a661dc4-8c59-4e6c-bdf9-56c19bb43a19" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(234.537,68.197)" + id="g12329"> + id="id-30c33154-a2bf-4e21-addc-194e51919a3b" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + - + id="id-977d8e91-056b-4f44-8f37-0d927751c426"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + id="id-e1693c6b-6413-4645-a1b5-0bf2a1388c4a" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-1669e07d-fcef-4787-b41d-c1ff4c6fca80" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-5d52f681-f93e-4b61-bbd8-5bbb10af0afb" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-dc5455e4-6a5c-4163-9ad4-00e8bf4bc17b" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-c0313eaa-f625-44d7-959f-bd90e6e406ae" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-98361416-d4eb-4780-88ed-30bb6e41e594" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + - - + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-32129e66-8c22-498b-aeb6-fadfe39c3154" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - + id="id-942cefc9-c21e-4a84-be94-0692aad21152" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - - - - + id="id-6d79592b-49a1-473c-b075-2e85345516c5" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + - + id="id-a6b57f8d-a37d-45cb-92bb-839e13614722" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + transform="translate(177.56,38.309)" + id="g23993"> + id="id-b962d797-8b9d-4c1f-954a-d310c4ec50b3" + d="m 6.5625,-2.390625 c 0,-1.34375 -1,-2.34375 -2.1875,-2.625 l -1.140625,-0.25 C 2.96875,-5.328125 2.21875,-5.609375 2.21875,-6.28125 c 0,-1.015625 1.015625,-1.046875 1.421875,-1.046875 0.671875,0 1.265625,0.15625 1.859375,0.734375 0.1875,0.171875 0.203125,0.1875 0.25,0.1875 0.078125,0 0.125,-0.03125 0.171875,-0.21875 L 6.09375,-7.65625 C 6.125,-7.75 6.125,-7.78125 6.125,-7.8125 6.125,-7.90625 6.109375,-7.921875 5.8125,-8.078125 4.953125,-8.5 4.25,-8.5625 3.640625,-8.5625 c -1.0625,0 -2.90625,0.25 -2.90625,2.484375 0,0.859375 0.4375,1.40625 0.671875,1.640625 0.609375,0.625 1.15625,0.75 2.09375,0.953125 0.671875,0.15625 0.9375,0.21875 1.203125,0.453125 0.109375,0.125 0.359375,0.375 0.359375,0.828125 0,1.125 -1.015625,1.15625 -1.421875,1.15625 -1,0 -1.875,-0.40625 -2.46875,-0.9375 C 1.03125,-2.125 1,-2.125 0.953125,-2.125 c -0.0625,0 -0.125,0.03125 -0.171875,0.21875 L 0.609375,-0.875 c -0.03125,0.09375 -0.03125,0.125 -0.03125,0.15625 0,0.25 1.25,0.6875 1.3125,0.703125 0.796875,0.25 1.4375,0.28125 1.75,0.28125 1.796875,0 2.921875,-0.796875 2.921875,-2.65625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(184.866,38.309)" + id="g23996"> + id="id-841e45f4-f473-4bc3-a2dc-7c98f02e0397" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(191.441,38.309)" + id="g23999"> + id="id-05ba11cc-eeca-4c09-93a1-b56246eb70a5" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(198.149,38.309)" + id="g24002"> + id="id-98b87bbb-eae9-491d-bcad-c8d0e715584a" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(203.191,38.309)" + id="g24005"> + id="id-539ecd6e-3699-4fbc-8cf1-9e1c9e15903e" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(208.023,38.309)" + id="g24008"> + id="id-42d6eaaf-f7bf-4b72-8247-9cebf096898b" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(212.473,38.309)" + id="g24011"> + id="id-d4ad9ab0-0c75-490c-ad80-203685dee3b0" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(218.583,38.309)" + id="g24014"> + id="id-c1c950f6-5c4d-47c0-a45b-aec354e05849" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(225.291,38.309)" + id="g24017"> + id="id-2cebecc4-9ebc-4b6d-8ef4-bb32240a5e4f" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z M 5,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 H 4.3125 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.078125,-7.09375 1.90625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.28125,-6.4375 c 0.03125,0.03125 0.0625,0.046875 0.109375,0.046875 H 3.71875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(231.401,38.309)" + id="g24020"> + id="id-d3db807f-5a5a-4371-a148-3f22db7c0710" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(238.109,38.309)" + id="g24023"> + id="id-ca0b075a-0d0c-4901-baca-147faa1deba3" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(181.177,50.573)" + id="g24027"> + id="id-dffe0b59-b11c-4d7f-bf97-df7244a13fbc" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(186.325,50.573)" + id="g24030"> + id="id-00fa832f-4207-401a-bd62-2e5e3d772dce" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(190.918,50.573)" + id="g24033"> + id="id-8739f6d2-9787-42fc-91af-4ea99fa5f8ef" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(195.706,50.573)" + id="g24036"> + id="id-d5e948a9-61ee-4fc9-8bac-7906f82bc8ee" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(200.577,50.573)" + id="g24039"> + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(208.769,50.573)" + id="g24045"> + id="id-7f4aae51-35f8-4c38-b4ec-85c5d89bd791" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(215.684,50.573)" + id="g24049"> + id="id-7bb78a31-5663-4038-8f8d-e5e222227da8" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(219.089,50.573)" + id="g24052"> + id="id-6c796ee2-53ea-4e39-9c07-e7bf6a14f9c7" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(224.349,50.573)" + id="g24056"> + id="id-be9b2083-3d38-4217-82c0-99be80b284b5" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(228.777,50.573)" + id="g24059"> + + + + + - discordový kanál, - - - - - - - - - - + ns10:jacobian_sqrt="0.376166" + id="g29871"> + id="id-290ef964-ff65-4b10-ae85-b482a33a4a01"> - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="id-8f3afe4e-446d-4daa-bdce-08c7be576cd6"> + id="id-4c8a2e50-9422-4968-98f4-4b1fa25c0b80" + overflow="visible" + style="overflow:visible"> - - - + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-5ea68760-8dbd-4394-bd04-40b753822565" + overflow="visible" + style="overflow:visible"> + id="id-2ec398c4-c516-4b84-8279-2a7186e37cfd" + d="m 8.75,-4.09375 c 0,-0.9375 -0.15625,-2.09375 -0.828125,-2.953125 -0.890625,-1.109375 -2.328125,-1.25 -3.109375,-1.25 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 4.8125 C 7.734375,0 8.75,-1.75 8.75,-4.09375 Z m -1.71875,0 c 0,1.359375 -0.140625,3.0625 -2.6875,3.0625 H 2.8125 v -6.234375 h 1.53125 c 2.578125,0 2.6875,1.84375 2.6875,3.171875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-4655d36e-87d7-43b6-ab20-84feff226705" + overflow="visible" + style="overflow:visible"> + id="id-e0e5ccf7-ec4c-4bcf-991e-5efdccf11fea" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-e68e4441-bc15-4157-82e3-45a0c9fafa8a" + overflow="visible" + style="overflow:visible"> + id="id-b715bc5d-b1b7-4c5b-af89-f49bab4f8b9b" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-3cd8305a-7adf-425f-b7f3-526a892a9d47" + overflow="visible" + style="overflow:visible"> + id="id-c27ae1c9-f255-49ce-8c88-1c7fd5da1786" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-9e8edbc4-c23b-4226-8409-194ec8283f22" + overflow="visible" + style="overflow:visible"> + id="id-eded7423-2d9c-4650-851a-55cfe877c496" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-2248c123-da1a-4764-a616-8e1cc491b11b" + overflow="visible" + style="overflow:visible"> + id="id-4677a7b8-5c37-448f-982e-b43b5af1a020" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-c68d1a71-75e9-48b6-9326-c8d292ff22aa" + overflow="visible" + style="overflow:visible"> + id="id-cd76a1df-5509-459a-b08d-c8bd10fa1337" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-df1cd212-5d4c-455e-bac5-741cd867c8cd" + overflow="visible" + style="overflow:visible"> + id="id-6f00588a-550c-4ac5-a60d-bd30079d7574" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-db88de62-0114-4230-b4e8-1f28f8502b31" + overflow="visible" + style="overflow:visible"> + id="id-74cf17cd-d016-428e-8662-2fd0fcaf51d9" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-d850d011-9ada-493b-aae2-f4429bdda07d" + overflow="visible" + style="overflow:visible"> + id="id-469b8d84-e747-4353-b139-89f9f46cc152" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-1ab88046-4f35-4526-9c96-75932c36b305" + overflow="visible" + style="overflow:visible"> + id="id-d52885bb-437c-4bd7-a04d-febc815e018e" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-6bcb1224-04be-4ba7-af3f-c7a1f506914a" + overflow="visible" + style="overflow:visible"> + id="id-61b7f47c-4172-455d-9a02-8c734571942d" + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-fb6c610c-6264-410b-b810-2036ce8bdade" + overflow="visible" + style="overflow:visible"> + id="id-68421051-863d-4c4b-9e52-dae0bfccbd34" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-7e7f05c6-7852-487b-8ee7-23fa294f341d" + overflow="visible" + style="overflow:visible"> + id="id-f1e7b833-54cb-4d56-a6be-fcba2efb9124" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-68503e11-2b81-44f8-bfdf-f60b790ed165" + overflow="visible" + style="overflow:visible"> + id="id-85df5e37-296d-41f7-b36d-8d19978894f7" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-7c431624-0a44-41f3-9e0d-b3ce2da480a9" + overflow="visible" + style="overflow:visible"> + id="id-d6bbb5c9-48c8-4d9a-86dd-36376630d7d7" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-cd1f673b-1916-4ac8-8fa4-5ba853a701d3" + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(-173.902,-30.0121)" + id="id-64db2a9a-0161-4c5f-b12e-aa64ac13b0f1"> + transform="translate(197.269,38.309)" + id="g29805"> + id="id-9edc9366-1560-47e7-849a-79b5c4ad5c85" + d="m 8.75,-4.09375 c 0,-0.9375 -0.15625,-2.09375 -0.828125,-2.953125 -0.890625,-1.109375 -2.328125,-1.25 -3.109375,-1.25 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 4.8125 C 7.734375,0 8.75,-1.75 8.75,-4.09375 Z m -1.71875,0 c 0,1.359375 -0.140625,3.0625 -2.6875,3.0625 H 2.8125 v -6.234375 h 1.53125 c 2.578125,0 2.6875,1.84375 2.6875,3.171875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(206.766,38.309)" + id="g29808"> + id="id-f3e5e98a-d253-4f8e-b7d3-ecbb362cc7ed" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(212.971,38.309)" + id="g29812"> + id="id-740927c3-9daa-4b36-8111-3afb30218c72" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + transform="translate(173.621,50.573)" + id="g29820"> + id="id-99aa0679-b1a5-4aa1-84af-b42b587722d3" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(177.952,50.573)" + id="g29823"> + id="id-67804b7f-3654-4a3a-b74f-9b3b9aea6d26" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + transform="translate(219.763,50.573)" + id="g29852"> + id="id-37297b7e-c989-4e9f-a651-cf4f1131dd3e" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(224.191,50.573)" + id="g29855"> + id="id-b2616aef-48cc-46fb-ac5d-7867e342d239" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(226.571,50.573)" + id="g29858"> + id="id-5eef8aaf-4fab-4f64-b75e-e08f32924585" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(231.359,50.573)" + id="g29861"> + id="id-77aca37d-5eaf-4952-8f09-6a9547efa904" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(236.507,50.573)" + id="g29864"> + id="id-79dc0250-6186-4289-ad8c-23fdc5be1472" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(240.935,50.573)" + id="g29867"> + id="id-0230399d-354b-44c6-83e2-16f97c528f81" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - + id="g41443"> + id="id-1da7e369-2049-4103-a8ab-6355e86076e0"> + id="id-e2bbb67b-6544-4b97-9216-4a3f4e0a183d"> + id="id-8d5958ce-9868-46db-a0e5-2754cc80d50b" + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-77368d72-917f-470e-a0c0-5e8826c40bf1" + overflow="visible" + style="overflow:visible"> + id="id-8f80b2eb-7133-4833-a54c-b777fb014dd5" + d="m 7.65625,-5.71875 c 0,-1.796875 -1.171875,-2.578125 -3,-2.578125 h -3 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.265625 C 2.71875,0 2.84375,-0.15625 2.84375,-0.578125 v -2.625 h 1.8125 c 1.875,0 3,-0.796875 3,-2.515625 z m -1.65625,0 c 0,0.8125 -0.125,1.578125 -1.734375,1.578125 H 2.8125 v -3.125 H 4.28125 C 5.84375,-7.265625 6,-6.546875 6,-5.71875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-b44b75cc-87e8-479b-b87e-915c0cd665bb" + overflow="visible" + style="overflow:visible"> + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-648bf190-5277-416b-a7cd-2251c6bf1eea" + overflow="visible" + style="overflow:visible"> + id="id-aeea3e90-3e9e-4b84-b9ad-31291868a67f" + d="m 9.640625,-0.578125 v -3.3125 c 0,-1.21875 -0.53125,-1.71875 -1.75,-1.71875 -0.84375,0 -1.5,0.390625 -1.9375,1.1875 C 5.765625,-5.5625 4.75,-5.609375 4.25,-5.609375 c -0.234375,0 -0.734375,0 -1.28125,0.390625 C 2.609375,-4.9375 2.359375,-4.546875 2.28125,-4.375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.703125,0.25 0.703125,0.890625 v 3.28125 C 4.359375,-0.140625 4.5,0 4.9375,0 h 0.484375 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.71875,0.25 0.71875,0.890625 v 3.28125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 9.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-29713f03-b424-478f-bca5-4e2b9360ed1e" + overflow="visible" + style="overflow:visible"> + id="id-b3c076d0-1eda-47d6-96d8-10b84a71b9fd" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-43c54cab-de98-4aaa-be65-33c3dabe3157" + overflow="visible" + style="overflow:visible"> + id="id-08069560-44ef-4327-8803-0286d7e34795" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-9b8a26f1-3288-495a-b4a5-ca72ccb6866c" + overflow="visible" + style="overflow:visible"> + id="id-3518ad42-ce18-49bc-91b4-381097002487" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-9296bd7b-dd69-4d1c-9d38-7c541addbc82" + overflow="visible" + style="overflow:visible"> + id="id-3f173276-53e7-4bbd-8b28-0faedbcb900d" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-abbf1c9e-b44d-4ab7-a036-1e09cc0c9006" + overflow="visible" + style="overflow:visible"> + id="id-7e347ff2-20a2-4c1a-aacd-7e6aa79f7d43" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-16d85394-236d-42f7-8028-5536395d783d" + overflow="visible" + style="overflow:visible"> + id="id-f521882c-fe45-48c5-9ae8-98290a6792a3" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-8c42836f-9c87-4071-830c-8dd4c3f5a487" + overflow="visible" + style="overflow:visible"> + id="id-8e57cab5-9297-4e40-ad69-2b740322c755" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-68b600c3-4420-40e8-b30a-64b9b6a6dabe" + overflow="visible" + style="overflow:visible"> + id="id-219884db-b0a6-4360-b0fa-fba37fb4d7c1" + d="m 2.671875,0.375 v -5.28125 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.65625 c -0.453125,0 -0.5625,0.15625 -0.5625,0.5625 v 5.578125 c 0,0.296875 0,0.78125 -0.71875,0.78125 -0.21875,0 -0.5,-0.046875 -0.75,-0.21875 C -0.40625,1.21875 -0.453125,1.1875 -0.5,1.1875 c -0.09375,0 -0.109375,0 -0.21875,0.3125 -0.046875,0.125 -0.125,0.359375 -0.125,0.390625 0,0.21875 0.984375,0.5625 1.734375,0.5625 1.328125,0 1.78125,-0.890625 1.78125,-2.078125 z m 0,-7.625 v -0.21875 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 H 1.5 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.5625,-0.21875 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-0f1f8935-1bf2-46a1-8808-fc55e179b4e5" + overflow="visible" + style="overflow:visible"> + id="id-e523d122-6577-4683-aec5-80b2361db48c" + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-03e5b19c-410e-43b7-b4ad-584cbafefe55" + overflow="visible" + style="overflow:visible"> + id="id-95224bfd-55c1-43b9-b376-c34c7a8605fd" + d="m 5.46875,-0.59375 c 0,-0.140625 -0.046875,-0.6875 -0.078125,-0.84375 0,-0.03125 -0.03125,-0.15625 -0.140625,-0.15625 -0.046875,0 -0.078125,0 -0.1875,0.125 -0.203125,0.171875 -0.765625,0.671875 -1.75,0.671875 -1.25,0 -1.25,-1.21875 -1.25,-1.96875 0,-0.96875 0.0625,-1.984375 1.28125,-1.984375 0.78125,0 1.109375,0.203125 1.53125,0.546875 0.140625,0.140625 0.171875,0.140625 0.21875,0.140625 0.125,0 0.140625,-0.109375 0.15625,-0.15625 0.015625,-0.09375 0.140625,-0.765625 0.140625,-0.828125 0,-0.109375 -0.078125,-0.15625 -0.28125,-0.25 -0.578125,-0.265625 -0.9375,-0.375 -1.78125,-0.375 -1.78125,0 -2.890625,0.828125 -2.890625,2.921875 0,1.984375 1.03125,2.875 2.84375,2.875 0.3125,0 1.03125,0 1.828125,-0.40625 0.34375,-0.1875 0.359375,-0.203125 0.359375,-0.3125 z m -0.3125,-7.515625 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.234375,-7.09375 2.0625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.4375,-6.4375 C 2.46875,-6.40625 2.5,-6.390625 2.546875,-6.390625 H 3.875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-0c5a831b-3d61-4ada-8659-5f147fc7d809" + overflow="visible" + style="overflow:visible"> + id="id-3692cc6c-3ac7-4220-9fa7-aa32e02489b2" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-b5d9a99b-c262-4ce4-90de-2539406a1dc2" + overflow="visible" + style="overflow:visible"> + id="id-ed67f3bf-b0b9-49f6-9029-7c6ec50c871a" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-4a5dc3a6-1533-4305-bb0e-480a9668f025" + overflow="visible" + style="overflow:visible"> + id="id-407742b6-1ce1-46af-b0f1-0965c1305e3b" + d="" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-2349c5e8-545d-422f-842a-6f12da86e689" + overflow="visible" + style="overflow:visible"> + id="id-df08218f-44be-40de-85c3-022fac40c8dc" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-44a4b189-ee4a-4c32-a301-b2eb70e09457" + overflow="visible" + style="overflow:visible"> + id="id-7bba17ca-ed68-4cbf-b315-b449ee62453d" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-cdc27f2f-6f54-4a41-b664-de3894fb5d9e" + overflow="visible" + style="overflow:visible"> + id="id-9464949c-867b-4131-ae1d-a061dc32ce1b" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-a93aae19-8c9b-4a4b-b340-f23eac2aa930" + overflow="visible" + style="overflow:visible"> + id="id-9b567122-d39d-40ed-83ba-b3935fe2981a" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-815c7ce8-6a45-484b-b2be-f90f0a3572af" + overflow="visible" + style="overflow:visible"> + id="id-a97e0889-534a-4bcc-8170-79e267d5ebe2" + d="M 3.453125,-6.25 V -6.921875 C 3.34375,-6.953125 3.03125,-7.03125 2.65625,-7.03125 1.71875,-7.03125 1,-6.3125 1,-5.328125 v 0.90625 H 0.265625 V -3.84375 H 1 V 0 h 0.75 v -3.84375 h 1.09375 v -0.578125 h -1.125 v -1.1875 c 0,-0.734375 0.671875,-0.8125 0.9375,-0.8125 0.1875,0 0.46875,0.015625 0.796875,0.171875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-c4528739-c8da-4589-9e68-e8c0bebbf8e9" + overflow="visible" + style="overflow:visible"> + id="id-56740f64-a061-48ab-b884-5dc7882a8684" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-594bf97b-1684-4945-a5e6-11590e168ae3" + overflow="visible" + style="overflow:visible"> + id="id-09248ad4-c93a-4bbd-a115-190198c1bc52" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(-153.963,-29.9809)" + id="id-940ea7e7-9828-4ba1-a325-7cb9f42022a4"> + transform="translate(152.869,38.309)" + id="g41357"> + id="id-db7458ac-e5c1-4246-a6c1-99f6e828c6ac" + d="m 7.65625,-5.71875 c 0,-1.796875 -1.171875,-2.578125 -3,-2.578125 h -3 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.265625 C 2.71875,0 2.84375,-0.15625 2.84375,-0.578125 v -2.625 h 1.8125 c 1.875,0 3,-0.796875 3,-2.515625 z m -1.65625,0 c 0,0.8125 -0.125,1.578125 -1.734375,1.578125 H 2.8125 v -3.125 H 4.28125 C 5.84375,-7.265625 6,-6.546875 6,-5.71875 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(161.271,38.309)" + id="g41360"> + + + + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(172.296,38.309)" + id="g41366"> + id="id-397ed049-f6ce-4ae6-98a4-f61a64c6f4ba" + d="m 9.640625,-0.578125 v -3.3125 c 0,-1.21875 -0.53125,-1.71875 -1.75,-1.71875 -0.84375,0 -1.5,0.390625 -1.9375,1.1875 C 5.765625,-5.5625 4.75,-5.609375 4.25,-5.609375 c -0.234375,0 -0.734375,0 -1.28125,0.390625 C 2.609375,-4.9375 2.359375,-4.546875 2.28125,-4.375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.703125,0.25 0.703125,0.890625 v 3.28125 C 4.359375,-0.140625 4.5,0 4.9375,0 h 0.484375 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.71875,0.25 0.71875,0.890625 v 3.28125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 9.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(182.658,38.309)" + id="g41369"> + id="id-4c9e7a24-bdc9-43fc-8fc5-304b3de66e7b" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(185.712,38.309)" + id="g41372"> + id="id-38542426-7ffb-4ba5-ae91-e78b6fc4786a" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(192.42,38.309)" + id="g41375"> + id="id-013461ad-10c8-4458-989d-d00313abfab6" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(199.128,38.309)" + id="g41378"> + id="id-6f9d4a9e-e308-4150-8d0f-4b521248a655" + d="m 4.453125,-0.5625 c 0,-0.03125 -0.015625,-0.125 -0.09375,-0.375 -0.0625,-0.234375 -0.078125,-0.3125 -0.1875,-0.3125 -0.0625,0 -0.078125,0.015625 -0.140625,0.09375 -0.140625,0.09375 -0.453125,0.359375 -0.953125,0.359375 -0.296875,0 -0.46875,-0.203125 -0.46875,-1 v -2.8125 h 1.0625 c 0.140625,0 0.578125,0 0.578125,-0.4375 0,-0.421875 -0.4375,-0.421875 -0.578125,-0.421875 h -1.0625 v -1 c 0,-0.375 -0.09375,-0.578125 -0.578125,-0.578125 h -0.375 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 1 H 0.8125 c -0.125,0 -0.578125,0 -0.578125,0.421875 0,0.4375 0.4375,0.4375 0.578125,0.4375 h 0.234375 v 3.015625 c 0,1.21875 0.4375,1.71875 1.265625,1.71875 0.109375,0 0.625,0 1.25,-0.1875 0.203125,-0.0625 0.890625,-0.265625 0.890625,-0.5 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(203.961,38.309)" + id="g41381"> + id="id-86601fc1-6256-40b0-9300-c78d60cb00aa" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(211.403,38.309)" + id="g41385"> + id="id-4b38af35-f972-472f-a748-9d7b51855874" + d="m 6.25,-2.765625 c 0,-0.578125 0,-2.84375 -2.15625,-2.84375 -0.71875,0 -1.34375,0.296875 -1.78125,0.703125 0,-0.453125 -0.15625,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 V 1.75 c 0,0.421875 0.125,0.5625 0.5625,0.5625 H 1.78125 c 0.453125,0 0.578125,-0.15625 0.578125,-0.5625 V -0.46875 C 2.890625,0.125 3.546875,0.125 3.71875,0.125 6.25,0.125 6.25,-2.15625 6.25,-2.765625 Z m -1.625,0.03125 c 0,0.46875 0,2 -1.34375,2 -0.28125,0 -0.5,-0.09375 -0.640625,-0.203125 -0.28125,-0.203125 -0.28125,-0.25 -0.28125,-0.46875 v -2.875 c 0.125,-0.125 0.515625,-0.390625 1.03125,-0.390625 1.21875,0 1.234375,1.40625 1.234375,1.9375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(217.74,38.309)" + id="g41389"> + id="id-2c28916f-27cc-425b-a0bb-5cfece939287" + d="m 4.25,-4.71875 v -0.5625 c 0,-0.234375 0,-0.328125 -0.203125,-0.328125 -0.34375,0 -1.21875,0.125 -1.78125,1.40625 V -4.96875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.578125 v 4.390625 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 V -2.75 c 0,-1.140625 0.953125,-1.59375 1.703125,-1.65625 0.21875,0 0.234375,0 0.234375,-0.3125 z M 4.15625,-8.109375 c 0.0625,-0.09375 0,-0.21875 -0.109375,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.078125,0.015625 L 2.234375,-7.09375 1.0625,-8.3125 c -0.015625,0 -0.078125,-0.015625 -0.078125,-0.015625 H 0.4375 c -0.125,0 -0.203125,0.15625 -0.140625,0.25 L 1.453125,-6.4375 C 1.46875,-6.40625 1.5,-6.390625 1.546875,-6.390625 H 2.875 c 0.046875,0 0.09375,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(222.19,38.309)" + id="g41392"> + id="id-20b0e81f-b0fb-42e3-b118-1ae67bdc2a1a" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(225.245,38.309)" + id="g41395"> + id="id-66079ff0-755c-4976-93de-fe5047076c63" + d="m 2.671875,0.375 v -5.28125 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.65625 c -0.453125,0 -0.5625,0.15625 -0.5625,0.5625 v 5.578125 c 0,0.296875 0,0.78125 -0.71875,0.78125 -0.21875,0 -0.5,-0.046875 -0.75,-0.21875 C -0.40625,1.21875 -0.453125,1.1875 -0.5,1.1875 c -0.09375,0 -0.109375,0 -0.21875,0.3125 -0.046875,0.125 -0.125,0.359375 -0.125,0.390625 0,0.21875 0.984375,0.5625 1.734375,0.5625 1.328125,0 1.78125,-0.890625 1.78125,-2.078125 z m 0,-7.625 v -0.21875 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 H 1.5 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.5625,-0.21875 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(228.665,38.309)" + id="g41398"> + id="id-57d46ef5-3f0d-4bfd-b274-1ca388752750" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(231.72,38.309)" + id="g41401"> + id="id-f3f9b4d7-06fe-4b62-bf24-4c25239a3f31" + d="m 9.640625,-0.578125 v -3.3125 c 0,-1.21875 -0.53125,-1.71875 -1.75,-1.71875 -0.84375,0 -1.5,0.390625 -1.9375,1.1875 C 5.765625,-5.5625 4.75,-5.609375 4.25,-5.609375 c -0.234375,0 -0.734375,0 -1.28125,0.390625 C 2.609375,-4.9375 2.359375,-4.546875 2.28125,-4.375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.703125,0.25 0.703125,0.890625 v 3.28125 C 4.359375,-0.140625 4.5,0 4.9375,0 h 0.484375 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 V -3.21875 c 0,-1.078125 0.734375,-1.53125 1.3125,-1.53125 0.578125,0 0.71875,0.25 0.71875,0.890625 v 3.28125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 9.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(242.081,38.309)" + id="g41404"> + id="id-e57e6028-7a16-4bce-a847-f0c3c40d241b" + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(248.358,38.309)" + id="g41407"> + id="id-a45f8e3a-a500-427b-965b-91dc9afcc4a9" + d="m 5.46875,-0.59375 c 0,-0.140625 -0.046875,-0.6875 -0.078125,-0.84375 0,-0.03125 -0.03125,-0.15625 -0.140625,-0.15625 -0.046875,0 -0.078125,0 -0.1875,0.125 -0.203125,0.171875 -0.765625,0.671875 -1.75,0.671875 -1.25,0 -1.25,-1.21875 -1.25,-1.96875 0,-0.96875 0.0625,-1.984375 1.28125,-1.984375 0.78125,0 1.109375,0.203125 1.53125,0.546875 0.140625,0.140625 0.171875,0.140625 0.21875,0.140625 0.125,0 0.140625,-0.109375 0.15625,-0.15625 0.015625,-0.09375 0.140625,-0.765625 0.140625,-0.828125 0,-0.109375 -0.078125,-0.15625 -0.28125,-0.25 -0.578125,-0.265625 -0.9375,-0.375 -1.78125,-0.375 -1.78125,0 -2.890625,0.828125 -2.890625,2.921875 0,1.984375 1.03125,2.875 2.84375,2.875 0.3125,0 1.03125,0 1.828125,-0.40625 0.34375,-0.1875 0.359375,-0.203125 0.359375,-0.3125 z m -0.3125,-7.515625 c 0.0625,-0.09375 0,-0.21875 -0.125,-0.21875 h -0.5625 c 0,0 -0.046875,0.015625 -0.0625,0.015625 L 3.234375,-7.09375 2.0625,-8.3125 c -0.03125,0 -0.078125,-0.015625 -0.078125,-0.015625 h -0.5625 c -0.125,0 -0.1875,0.15625 -0.125,0.25 L 2.4375,-6.4375 C 2.46875,-6.40625 2.5,-6.390625 2.546875,-6.390625 H 3.875 c 0.046875,0 0.078125,-0.015625 0.109375,-0.046875 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(254.202,38.309)" + id="g41410"> + id="id-9fa77d6d-eb4f-41de-95b0-04b5c2a2e015" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(260.313,38.309)" + id="g41413"> + id="id-5f83ef9c-e9ef-4ac0-97c4-38f07d4bcc2b" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(188.6,50.573)" + id="g41417"> + id="id-8461df1c-e76a-48d1-95ad-68ac8ccf9e46" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(193.748,50.573)" + id="g41420"> + id="id-4098e7a4-d62f-4d5e-8c16-fcc7005721c5" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(201.853,50.573)" + id="g41424"> + id="id-7088fd9c-ec44-4647-ae1c-f9f2ad3c6613" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(210.571,50.573)" + id="g41427"> + id="id-fc1cc95e-ae84-43cb-9a3b-f008ed300441" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + + + + + + + + transform="translate(226.594,50.573)" + id="g41439"> + id="id-1f632c64-a50c-4caf-b266-da72fc528596" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + ns10:jacobian_sqrt="0.352778" + id="g47259"> + id="id-4deddcd6-8bab-41ba-8456-cccebbaee042"> - - - - - - - - - - - - - - - + id="id-77638f69-feb5-44e1-9c3d-c02ba7b77504"> + id="id-36873335-ca74-450d-9b56-152ee30d74d4" + overflow="visible" + style="overflow:visible"> + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-c728f55f-ef12-4ba6-87f2-fb87590fb9aa" + overflow="visible" + style="overflow:visible"> + id="id-ffb7a4af-b285-4311-86f9-1ebbcfb404cd" + d="m 8.375,-0.34375 -3.34375,-4.5 3.140625,-2.953125 C 8.3125,-7.921875 8.3125,-8 8.3125,-8.046875 c 0,-0.25 -0.234375,-0.25 -0.40625,-0.25 H 7.1875 c -0.203125,0 -0.453125,0 -0.703125,0.234375 l -3.84375,3.640625 V -7.71875 c 0,-0.390625 -0.078125,-0.578125 -0.578125,-0.578125 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 v -2 L 3.96875,-3.84375 6.640625,-0.25 C 6.84375,0 7.015625,0 7.25,0 H 7.953125 C 8.21875,0 8.375,0 8.375,-0.34375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-45702639-9edd-48a0-b2e4-f0b6f55a2dfe" + overflow="visible" + style="overflow:visible"> + id="id-e918ff27-53b9-4033-8aaa-5d26eaa1b184" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-52b336ab-3b81-484a-85a2-54a7f3ab66b8" + overflow="visible" + style="overflow:visible"> + id="id-ece21fe6-ff9d-4710-9d85-9ebc53ecc751" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-bbd0a19d-5f82-4415-bdda-7ead612f8079" + overflow="visible" + style="overflow:visible"> + id="id-380c1a6f-664e-4c3c-8657-861760722e41" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.203125,0 -1.75,0.828125 -1.921875,1.15625 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-8a576023-77ff-4a54-982c-a8b995720604" + overflow="visible" + style="overflow:visible"> + id="id-bc7b5937-1975-4e74-961c-ea8863012b0b" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-17100291-486e-4c97-9b09-dcab68abfe0d" + overflow="visible" + style="overflow:visible"> + id="id-9b61b939-7d76-4a45-bbe1-b459cab9603a" + d="M 9.1875,-0.296875 V -0.875 c 0,-0.21875 0,-0.34375 -0.15625,-0.34375 C 9,-1.21875 8.984375,-1.203125 8.921875,-1.171875 8.34375,-0.9375 7.84375,-0.9375 7.6875,-0.9375 7.421875,-0.9375 7.046875,-0.96875 6.59375,-1.21875 8.171875,-2.640625 8.765625,-4.75 8.765625,-4.859375 8.765625,-4.96875 8.671875,-5 8.59375,-5.015625 8.46875,-5.0625 7.8125,-5.25 7.71875,-5.25 c -0.109375,0 -0.125,0.0625 -0.203125,0.3125 -0.46875,1.53125 -1.3125,2.515625 -1.890625,2.96875 -0.109375,-0.109375 -1.171875,-1.203125 -1.671875,-2.09375 1.421875,-1.015625 2.15625,-1.75 2.15625,-2.546875 0,-1 -0.828125,-1.953125 -2.015625,-1.953125 -1.109375,0 -2.21875,0.890625 -2.21875,2.3125 0,0.90625 0.296875,1.78125 0.5,2.25 -0.328125,0.21875 -1.03125,0.71875 -1.234375,0.875 -0.1875,0.1875 -0.59375,0.671875 -0.59375,1.375 0,1.109375 1.03125,2.015625 2.40625,2.015625 1.390625,0 2.46875,-0.640625 2.515625,-0.65625 0.5625,0.3125 1.265625,0.65625 2.203125,0.65625 0.78125,0 1.375,-0.203125 1.40625,-0.234375 C 9.1875,0 9.1875,-0.0625 9.1875,-0.296875 Z M 4.75,-6.59375 c 0,0.75 -0.65625,1.359375 -1.1875,1.734375 C 3.265625,-5.6875 3.234375,-6.21875 3.234375,-6.53125 c 0,-0.875 0.546875,-1.171875 0.859375,-1.171875 0.453125,0 0.65625,0.640625 0.65625,1.109375 z m -0.34375,5.375 c -0.671875,0.28125 -1.3125,0.28125 -1.421875,0.28125 -0.765625,0 -0.8125,-0.96875 -0.8125,-1.140625 0,-0.8125 0.453125,-1.0625 0.609375,-1.15625 0.5,0.875 1.171875,1.5625 1.625,2.015625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-41635a21-98d6-448f-ad93-b2c8123e2104" + overflow="visible" + style="overflow:visible"> + id="id-f6b2c9d7-1652-4417-89b2-9e9dd24c1864" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-88892654-e9b3-4a0a-ac78-59932acd1a1a" + overflow="visible" + style="overflow:visible"> + id="id-73fff907-7698-4f16-ad70-e5a17b14e2b8" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-32aed10e-4824-4e86-9848-1262e48af0bd" + overflow="visible" + style="overflow:visible"> + id="id-056e0452-b062-4e5f-9fa5-698427f3491f" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-418934da-a840-4174-9d7d-608045682d8a" + overflow="visible" + style="overflow:visible"> + id="id-a3ea5e40-e97c-4c0c-9fa8-8556f074e29c" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-178f1e61-6092-4dca-b995-65cc0e07b05d" + overflow="visible" + style="overflow:visible"> + id="id-9d651da9-8b73-43a9-9f60-ab1c38589dc1" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + id="id-72120a86-8d27-4cae-98cc-8aea9c9c58b2" + overflow="visible" + style="overflow:visible"> + id="id-6e54ca11-3619-48a5-a7ee-d5421c1dc6b5" + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(-161.359,-29.7465)" + id="id-11f98265-54fe-433d-bbce-6c8eaed82215"> - - - + transform="translate(160.265,38.309)" + id="g47213"> + id="id-30001e93-5873-421c-93b5-fa08c64591cc" + d="m 8.375,-0.34375 -3.34375,-4.5 3.140625,-2.953125 C 8.3125,-7.921875 8.3125,-8 8.3125,-8.046875 c 0,-0.25 -0.234375,-0.25 -0.40625,-0.25 H 7.1875 c -0.203125,0 -0.453125,0 -0.703125,0.234375 l -3.84375,3.640625 V -7.71875 c 0,-0.390625 -0.078125,-0.578125 -0.578125,-0.578125 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.0625 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 v -2 L 3.96875,-3.84375 6.640625,-0.25 C 6.84375,0 7.015625,0 7.25,0 H 7.953125 C 8.21875,0 8.375,0 8.375,-0.34375 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(169.398,38.309)" + id="g47216"> + id="id-7eb767ff-b5e7-4f4e-9544-456766da850a" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.265625,0 -1.796875,0.90625 -1.953125,1.234375 H 2.265625 v -0.59375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.40625 c -0.4375,0 -0.578125,0.125 -0.578125,0.578125 v 4.390625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(176.106,38.309)" + id="g47219"> + id="id-b8a6f362-9c80-42c0-ba7a-9430bc11bfaf" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 C 2.203125,0 2.3125,-0.15625 2.3125,-0.578125 Z M 2.40625,-7.25 v -0.21875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 H 1.21875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.578125,-0.21875 0.578125,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - + transform="translate(179.16,38.309)" + id="g47222"> + id="id-a48ef188-2266-4b35-ab64-abc4fade939f" + d="m 5.96875,-0.578125 v -3.3125 c 0,-1.21875 -0.515625,-1.71875 -1.734375,-1.71875 -1.203125,0 -1.75,0.828125 -1.921875,1.15625 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.71875,-0.140625 0.84375,0 1.296875,0 h 0.46875 C 2.21875,0 2.34375,-0.15625 2.34375,-0.578125 V -3.21875 c 0,-1.03125 0.6875,-1.53125 1.3125,-1.53125 0.578125,0 0.6875,0.28125 0.6875,0.890625 v 3.28125 C 4.34375,-0.1875 4.4375,0 4.921875,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(185.868,38.309)" + id="g47225"> + id="id-45612231-447b-4cdc-baec-a6b4ad6d7a6a" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - - - - - - - + transform="translate(196.233,38.309)" + id="g47229"> + id="id-80e12029-18ef-4af1-86af-bc0407c231cf" + d="M 9.1875,-0.296875 V -0.875 c 0,-0.21875 0,-0.34375 -0.15625,-0.34375 C 9,-1.21875 8.984375,-1.203125 8.921875,-1.171875 8.34375,-0.9375 7.84375,-0.9375 7.6875,-0.9375 7.421875,-0.9375 7.046875,-0.96875 6.59375,-1.21875 8.171875,-2.640625 8.765625,-4.75 8.765625,-4.859375 8.765625,-4.96875 8.671875,-5 8.59375,-5.015625 8.46875,-5.0625 7.8125,-5.25 7.71875,-5.25 c -0.109375,0 -0.125,0.0625 -0.203125,0.3125 -0.46875,1.53125 -1.3125,2.515625 -1.890625,2.96875 -0.109375,-0.109375 -1.171875,-1.203125 -1.671875,-2.09375 1.421875,-1.015625 2.15625,-1.75 2.15625,-2.546875 0,-1 -0.828125,-1.953125 -2.015625,-1.953125 -1.109375,0 -2.21875,0.890625 -2.21875,2.3125 0,0.90625 0.296875,1.78125 0.5,2.25 -0.328125,0.21875 -1.03125,0.71875 -1.234375,0.875 -0.1875,0.1875 -0.59375,0.671875 -0.59375,1.375 0,1.109375 1.03125,2.015625 2.40625,2.015625 1.390625,0 2.46875,-0.640625 2.515625,-0.65625 0.5625,0.3125 1.265625,0.65625 2.203125,0.65625 0.78125,0 1.375,-0.203125 1.40625,-0.234375 C 9.1875,0 9.1875,-0.0625 9.1875,-0.296875 Z M 4.75,-6.59375 c 0,0.75 -0.65625,1.359375 -1.1875,1.734375 C 3.265625,-5.6875 3.234375,-6.21875 3.234375,-6.53125 c 0,-0.875 0.546875,-1.171875 0.859375,-1.171875 0.453125,0 0.65625,0.640625 0.65625,1.109375 z m -0.34375,5.375 c -0.671875,0.28125 -1.3125,0.28125 -1.421875,0.28125 -0.765625,0 -0.8125,-0.96875 -0.8125,-1.140625 0,-0.8125 0.453125,-1.0625 0.609375,-1.15625 0.5,0.875 1.171875,1.5625 1.625,2.015625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + + transform="translate(210.539,38.309)" + id="g47233"> + id="id-97820e1c-a49e-4339-a0b2-b70088ab7ad4" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(217.247,38.309)" + id="g47236"> + id="id-0e9ca444-ae5f-4827-a7f7-6971dd0ea8eb" + d="m 5.71875,-3.109375 c 0,-1.546875 -0.703125,-2.5625 -2.484375,-2.5625 -1.921875,0 -2.859375,1.0625 -2.859375,2.890625 0,1.953125 1.125,2.90625 3,2.90625 0.46875,0 1.140625,-0.046875 1.9375,-0.453125 0.25,-0.125 0.34375,-0.15625 0.34375,-0.3125 C 5.65625,-0.71875 5.625,-1.0625 5.609375,-1.15625 5.5625,-1.53125 5.546875,-1.546875 5.4375,-1.546875 c -0.046875,0 -0.078125,0 -0.203125,0.125 -0.703125,0.609375 -1.421875,0.6875 -1.796875,0.6875 -1.359375,0 -1.5,-1.0625 -1.53125,-1.828125 h 3.25 c 0.265625,0 0.5625,0 0.5625,-0.546875 z M 4.40625,-3.1875 h -2.5 c 0.046875,-0.734375 0.28125,-1.625 1.328125,-1.625 0.953125,0 1.125,0.6875 1.171875,1.625 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(223.357,38.309)" + id="g47239"> + id="id-24923579-740b-4a84-b7a0-257c35d0a4f9" + d="M 4.734375,-1.6875 C 4.734375,-2.359375 4.375,-2.765625 4.15625,-2.96875 3.6875,-3.390625 3.265625,-3.46875 2.765625,-3.5625 2.109375,-3.6875 1.625,-3.78125 1.625,-4.25 c 0,-0.484375 0.390625,-0.578125 0.859375,-0.578125 0.796875,0 1.234375,0.296875 1.546875,0.5625 0.109375,0.125 0.140625,0.125 0.1875,0.125 0.125,0 0.140625,-0.109375 0.15625,-0.15625 C 4.40625,-4.40625 4.515625,-5.0625 4.515625,-5.125 c 0,-0.1875 -0.625,-0.359375 -0.765625,-0.40625 -0.46875,-0.140625 -0.859375,-0.140625 -1.171875,-0.140625 -0.53125,0 -2.140625,0 -2.140625,1.703125 0,0.59375 0.265625,0.9375 0.59375,1.234375 0.421875,0.375 0.875,0.46875 1.5625,0.59375 0.34375,0.0625 0.953125,0.171875 0.953125,0.6875 0,0.5625 -0.46875,0.65625 -0.921875,0.65625 -0.53125,0 -1.203125,-0.15625 -1.765625,-0.828125 -0.0625,-0.0625 -0.09375,-0.09375 -0.171875,-0.09375 -0.109375,0 -0.140625,0.109375 -0.15625,0.171875 C 0.515625,-1.375 0.375,-0.6875 0.375,-0.578125 c 0,0.21875 0.890625,0.5 0.890625,0.5 C 1.921875,0.125 2.421875,0.125 2.625,0.125 c 0.609375,0 2.109375,-0.046875 2.109375,-1.8125 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(228.399,38.309)" + id="g47242"> + id="id-715ca264-358a-4b23-a50b-a18f14b0363a" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> - - - - - - + transform="translate(234.382,38.309)" + id="g47246"> + id="id-0e89031a-b1fe-43e6-8289-02d382ee8825" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(240.958,38.309)" + id="g47249"> + id="id-eb3505de-7bce-4829-9866-bc5b04b2e51a" + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(246.935,38.309)" + id="g47252"> + id="id-32902daa-e9c2-47c1-bd43-e646027395a1" + d="m 5.9375,-0.265625 c 0,0 0,-0.109375 -0.109375,-0.265625 L 3.734375,-3.25 5.578125,-4.953125 c 0.140625,-0.140625 0.1875,-0.171875 0.1875,-0.265625 0,-0.25 -0.25,-0.25 -0.40625,-0.25 H 4.65625 c -0.203125,0 -0.4375,0 -0.71875,0.25 L 2.21875,-3.625 v -4.09375 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 h -0.25 c -0.4375,0 -0.578125,0.140625 -0.578125,0.578125 v 7.140625 C 0.828125,-0.140625 0.953125,0 1.40625,0 H 1.609375 C 2.0625,0 2.1875,-0.15625 2.1875,-0.578125 V -1.8125 C 2.375,-1.984375 2.5625,-2.15625 2.75,-2.328125 l 1.546875,2.03125 C 4.5,-0.03125 4.59375,0 4.9375,0 H 5.515625 C 5.671875,0 5.9375,0 5.9375,-0.265625 Z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + transform="translate(253.278,38.309)" + id="g47255"> + id="id-3c76807b-10f6-4547-bbb0-73236857c4ac" + d="m 5.65625,-5.15625 c 0,-0.3125 -0.328125,-0.3125 -0.484375,-0.3125 H 4.90625 c -0.1875,0 -0.453125,0 -0.625,0.265625 -0.03125,0.0625 -1,2.703125 -1.0625,3.5 H 3.203125 C 3.140625,-2.28125 2.65625,-3.390625 2.140625,-4.546875 1.8125,-5.296875 1.71875,-5.46875 1.125,-5.46875 H 0.8125 c -0.171875,0 -0.46875,0 -0.46875,0.3125 0,0.046875 0.03125,0.125 0.0625,0.1875 L 2.671875,0 C 2.5625,0.25 2.53125,0.375 2.5,0.5 2.359375,0.890625 2.15625,1.4375 1.5,1.4375 1.109375,1.4375 0.84375,1.265625 0.703125,1.1875 0.640625,1.140625 0.625,1.140625 0.578125,1.140625 0.53125,1.140625 0.4375,1.171875 0.4375,1.3125 c 0,0.09375 0.0625,0.921875 0.09375,0.96875 0.109375,0.140625 0.765625,0.171875 0.953125,0.171875 1.484375,0 2.0625,-1.40625 2.15625,-1.703125 L 5.59375,-4.90625 c 0.0625,-0.15625 0.0625,-0.1875 0.0625,-0.25 z m 0,0" + style="stroke:none" + inkscape:connector-curvature="0" /> + + ns10:alignment="middle center" + ns10:scale="1.0" + ns10:preamble="/home/katerina/.config/inkscape/extensions/textext/default_packages.tex" + ns10:text="\\begin{minipage}{9 cm}\n\\nadpis{\n\\textbf{Bodov\xe1n\xed}\n}\n\\vspace{-2 mm}\n\\podnadpis{\n\\begin{itemize}\n\\item Za spr\xe1vn\xe9 \u0159e\u0161en\xed \xfalohy z\xedsk\xe1\u0161 obvykle tolik bod\u016f, kolik je uvedeno v~zad\xe1n\xed. Za v\xfdjime\u010dn\u011b poveden\xe1 \u0159e\u0161en\xed v\u0161ak p\u0159id\u011blujeme body nav\xedc.\n\\item Probl\xe9my hodnot\xedme individu\xe1ln\u011b, za hezk\xfd \u010dl\xe1nek m\u016f\u017ee\u0161 ur\u010dit\u011b o\u010dek\xe1vat v\xedce bod\u016f, ne\u017e za \u0159e\u0161en\xed uzav\u0159en\xe9 \xfalohy.\n\\item Pokud se na \u0159e\u0161en\xed pod\xedl\xed $n$ autor\u016f, dostane ka\u017ed\xfd z nich $\\frac{3b}{n+2}$ bod\u016f, kde $b$ je po\u010det bod\u016f, kter\xe9 by \u0159e\u0161en\xed z\xedskalo, pokud by m\u011blo jen jednoho autora.\n\\end{itemize}}\n\\end{minipage}" + ns10:pdfconverter="inkscape" + ns10:texconverter="pdflatex" + ns10:version="1.0.1" + transform="matrix(0.352777,0,0,0.352777,9.5971279,61.625665)"> + id="id-2a1ea5a9-fb5f-4707-8529-8a0f39587f33"> + id="id-8e5f75ae-6305-4b7d-9e02-c093f7bf3abe"> + overflow="visible" + id="id-c1775e1f-bf9a-4cff-b3ee-2b3b02e0e45b" + style="overflow:visible"> + id="id-54048481-0d0c-43bc-bfca-06d1a3813097" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-1087a38f-389d-43c1-b6b9-e9c84a036270" + style="overflow:visible"> + style="stroke:none" + d="m 8.015625,-2.3125 c 0,-1.6875 -1.65625,-1.953125 -2.09375,-2.03125 1.09375,-0.25 1.734375,-0.875 1.734375,-1.796875 0,-2.15625 -2.546875,-2.15625 -3.046875,-2.15625 H 1.65625 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 4.9375 C 5.828125,0 8.015625,-0.15625 8.015625,-2.3125 Z M 6.03125,-6.109375 C 6.03125,-4.75 4.453125,-4.75 4.15625,-4.75 H 2.765625 v -2.515625 h 1.40625 c 0.46875,0 1.859375,0.03125 1.859375,1.15625 z m 0.328125,3.765625 c 0,1.234375 -1.28125,1.3125 -1.859375,1.3125 H 2.765625 V -3.890625 H 4.28125 c 0.421875,0 2.078125,0 2.078125,1.546875 z m 0,0" + id="id-842407a3-efee-404d-81b9-f21338708b67" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-f013f818-a6ee-47aa-b19b-4a2d109ff0f1" + style="overflow:visible"> + style="stroke:none" + d="m 6.1875,-2.6875 c 0,-1.96875 -0.953125,-2.984375 -2.90625,-2.984375 -1.984375,0 -2.90625,1.0625 -2.90625,2.984375 0,1.953125 1.03125,2.8125 2.90625,2.8125 1.875,0 2.90625,-0.859375 2.90625,-2.8125 z m -1.625,-0.140625 c 0,0.9375 0,2.03125 -1.28125,2.03125 C 2,-0.796875 2,-1.875 2,-2.828125 2,-3.75 2,-4.8125 3.28125,-4.8125 c 1.28125,0 1.28125,1.046875 1.28125,1.984375 z m 0,0" + id="id-bd843c6b-64c0-4377-9823-846c5765f51d" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-ba2f3cdc-6248-4096-b35c-baf4d0937131" + style="overflow:visible"> + style="stroke:none" + d="M 5.96875,-0.578125 V -7.71875 c 0,-0.390625 -0.09375,-0.578125 -0.578125,-0.578125 h -0.4375 C 4.5,-8.296875 4.375,-8.140625 4.375,-7.71875 v 2.703125 c -0.53125,-0.5 -1.140625,-0.59375 -1.5,-0.59375 -2.4375,0 -2.4375,2.296875 -2.4375,2.890625 0,0.546875 0,2.84375 2.375,2.84375 0.5,0 1.015625,-0.140625 1.53125,-0.6875 C 4.34375,-0.125 4.5,0 4.90625,0 H 5.390625 C 5.84375,0 5.96875,-0.15625 5.96875,-0.578125 Z M 4.34375,-1.5 c 0,0.203125 0,0.3125 -0.34375,0.5625 -0.3125,0.1875 -0.578125,0.203125 -0.71875,0.203125 -1.21875,0 -1.21875,-1.09375 -1.21875,-1.984375 0,-0.90625 0,-2.03125 1.34375,-2.03125 0.34375,0 0.671875,0.125 0.9375,0.375 z m 0,0" + id="id-80d970de-a2e9-46b6-b0bf-3040c49443d8" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-84815abe-af55-4f27-a023-2d35979d3d5e" + style="overflow:visible"> + style="stroke:none" + d="m 5.65625,-5.140625 c 0,-0.328125 -0.296875,-0.328125 -0.484375,-0.328125 h -0.25 c -0.5,0 -0.625,0.171875 -0.734375,0.515625 L 3,-1.34375 1.8125,-4.953125 C 1.734375,-5.21875 1.65625,-5.46875 1.078125,-5.46875 H 0.78125 c -0.171875,0 -0.46875,0 -0.46875,0.328125 0,0.03125 0,0.0625 0.0625,0.234375 L 1.796875,-0.5 c 0.15625,0.5 0.53125,0.5 0.75,0.5 h 0.875 C 3.640625,0 4,0 4.171875,-0.5 L 5.59375,-4.90625 c 0.0625,-0.171875 0.0625,-0.203125 0.0625,-0.234375 z m 0,0" + id="id-15c7df78-4287-4c8b-94be-cdae4d01411c" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-70253132-d6f6-48a4-836f-b7d120a4ea9d" + style="overflow:visible"> + style="stroke:none" + d="M 5.671875,-0.578125 V -3.78125 c 0,-1.890625 -1.828125,-1.890625 -2.421875,-1.890625 -0.5625,0 -1.15625,0.046875 -1.953125,0.375 -0.25,0.109375 -0.3125,0.140625 -0.3125,0.28125 0,0.078125 0.0625,0.765625 0.078125,0.875 0.015625,0.0625 0.078125,0.125 0.15625,0.125 0.0625,0 0.09375,-0.03125 0.125,-0.078125 0.515625,-0.53125 1.125,-0.796875 1.859375,-0.796875 0.640625,0 0.84375,0.390625 0.84375,1.09375 V -3.375 c -0.421875,0 -3.5625,0.03125 -3.5625,1.78125 0,0.84375 0.671875,1.71875 1.734375,1.71875 0.40625,0 1.296875,-0.109375 1.859375,-0.9375 v 0.234375 C 4.078125,-0.1875 4.15625,0 4.65625,0 h 0.4375 c 0.453125,0 0.578125,-0.15625 0.578125,-0.578125 z m -1.625,-1.265625 c 0,1.109375 -1.140625,1.109375 -1.171875,1.109375 -0.515625,0 -0.828125,-0.421875 -0.828125,-0.875 0,-1.171875 1.65625,-1.265625 2,-1.265625 z m 0.96875,-6.296875 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 3.703125 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 2.3125,-6.75 c -0.09375,0.125 -0.09375,0.171875 -0.09375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 h 0.4375 L 4.875,-7.953125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + id="id-4fbf98d3-605b-4ecb-8e16-8453335319d8" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-c53a16c2-f178-48a1-8046-5debf72ca843" + style="overflow:visible"> + id="id-8ea17d29-e6c6-4ef6-bc6c-7e87e28e085e" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-aa036478-b5be-404a-9a04-9561ac2d46e9" + style="overflow:visible"> + style="stroke:none" + d="M 2.3125,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.296875 c -0.421875,0 -0.5625,0.125 -0.5625,0.5625 v 4.328125 c 0,0.4375 0.125,0.578125 0.5625,0.578125 H 1.75 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 1.21875,-7.5625 c 0,-0.15625 -0.140625,-0.15625 -0.328125,-0.15625 H 2.21875 c -0.234375,0 -0.25,0.015625 -0.359375,0.140625 L 0.84375,-6.75 c -0.109375,0.125 -0.109375,0.171875 -0.109375,0.171875 0,0.15625 0.125,0.15625 0.3125,0.15625 H 1.5 l 1.890625,-1.53125 c 0.0625,-0.0625 0.140625,-0.109375 0.140625,-0.1875 z m 0,0" + id="id-8e462bf3-132f-4951-84c6-fd58949965f8" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-91812133-967a-4076-81dc-4ef7c1a184bf" + style="overflow:visible"> + style="stroke:none" + d="" + id="id-0643083e-37bf-4d86-bbc6-48be234cd013" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-c4be5ece-eb9e-4f41-a6d7-643f6ab2a9cf" + style="overflow:visible"> + style="stroke:none" + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + id="id-43191810-fbe8-4e47-92f9-5edddfd3ef0b" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-9d5b7685-d82a-4ea6-86c2-087741e118dc" + style="overflow:visible"> + style="stroke:none" + d="" + id="id-5a6d4f10-9b39-4314-b9d1-ff3a4a9eafac" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-4e96d78c-c822-4d62-9fb5-3deb74c4b83e" + style="overflow:visible"> + style="stroke:none" + d="M 5.578125,0 V -0.65625 H 4.625 L 2,-0.640625 H 1.6875 l 3.828125,-5.875 v -0.40625 H 0.6875 v 0.625 h 2 c 0.109375,0 0.234375,-0.015625 0.359375,-0.015625 h 1.34375 L 0.5625,-0.421875 V 0 Z m 0,0" + id="id-ed0b2d26-456f-47f0-a85e-64c31f86001a" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-94b7ca35-19a9-494d-a4f1-d1d23a8fde1c" + style="overflow:visible"> + style="stroke:none" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-1a40ff33-5eff-4a2c-b541-1b351429211b" + inkscape:connector-curvature="0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + overflow="visible" + id="id-87bb2882-9dd9-4620-b2d2-a676bd712413" + style="overflow:visible"> + style="stroke:none" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + id="id-7ddb01ba-7895-4750-b3f8-6e4468c7c342" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-f36b9e0a-7a1b-42ad-adbb-6ac39e2e22b9" + style="overflow:visible"> + style="stroke:none" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-db4ef050-282e-4414-bb1c-80d5f96935e6" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-ce418283-41ad-4618-8403-3934d57c672e" + style="overflow:visible"> + style="stroke:none" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-87542ba7-377f-48fe-980b-de5200b1fbd1" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-88d246af-c9da-4dfa-9e71-279000c175d1" + style="overflow:visible"> + style="stroke:none" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-565d9ce4-88a0-4e35-b0ec-2529b2b558cc" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-2159e3d4-ece6-4f9d-8e07-93aec169c992" + style="overflow:visible"> + style="stroke:none" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-d2d56660-02a1-4d71-9f6d-bcec1733fc41" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-3bc8bfc6-050d-4df2-a6bb-53b5e257ecfa" + style="overflow:visible"> + style="stroke:none" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-dcb36539-a77d-45cd-a996-0bf9315e0b39" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-44a3f136-cbe3-4296-bcfb-5a9dd6bcc772" + style="overflow:visible"> + style="stroke:none" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-0ce10724-e2be-4fb7-a8b5-6dbfd28b32df" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-2bb47041-c6a8-47c6-a050-b1d3deb2a141" + style="overflow:visible"> + style="stroke:none" + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-0602dd47-92c8-4091-8a60-5e1378a55c54" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-2b3b539a-0a85-49f6-9bd7-381397680871" + style="overflow:visible"> + id="id-668f5bdb-3ef2-468c-b9b8-d96ec61fc1a8" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-ae6fb9bf-9cb2-4238-bce8-d5e0687de056" + style="overflow:visible"> + style="stroke:none" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-93a9d1b4-462f-40b9-8a9d-5863bf2a90e7" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-5ef6900f-f782-42b0-840d-193d6d0dbedd" + style="overflow:visible"> + style="stroke:none" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-2d29df73-421d-4932-974c-02d375aecfe1" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-fafc96b7-18aa-467f-b792-9b2c3874b2fe" + style="overflow:visible"> + style="stroke:none" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + id="id-4b6cbc95-3950-47c1-817e-8f35f5fa2824" + inkscape:connector-curvature="0" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - + style="stroke:none" + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + id="id-2ffe3ac1-11f9-4e6e-8384-92556769db6e" + inkscape:connector-curvature="0" /> + + - - - - + style="stroke:none" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-23e66668-a511-4ab4-8fa9-b6190d87bfda" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-69199928-ccd5-4196-84d6-303e53986373" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + id="id-729d8b7b-66db-414c-8b1b-bf2c3b35e7ce" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + id="id-1c50ec29-49c0-4b60-a7ef-f0875dee32cb" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-b9fabad0-00b3-41ad-989e-e8753ec96117" + inkscape:connector-curvature="0" /> + + - - + style="stroke:none" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + id="id-19618333-f3cb-4cb6-ac6c-2b31d0693345" + inkscape:connector-curvature="0" /> + + - - - - - - - + style="stroke:none" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + id="id-0fd604f2-6fe8-4325-8a88-e1fe7c859bc5" + inkscape:connector-curvature="0" /> + + overflow="visible" + id="id-0f5dadc2-4362-4da7-bc18-2d443c1fbaf5" + style="overflow:visible"> + style="stroke:none" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + id="id-da07e78b-4951-471c-b9a7-1a8a17e3a430" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-2a210ee6-8632-4ec5-b60c-eca008bfc3c7" + style="overflow:visible"> + style="stroke:none" + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + id="id-223d6018-44ef-42be-9a88-5114e2abffca" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-876319b4-b659-4ced-a0e0-c8e8f9f21019" + style="overflow:visible"> + style="stroke:none" + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + id="id-379e91be-fd96-425a-bda9-cf4cdae70461" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-4084250b-58e7-438a-ad01-36cf9ef88935" + style="overflow:visible"> + style="stroke:none" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + id="id-2041824f-3f5e-4d44-b728-754012c7d5a4" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-bc405d1f-b1c9-4496-8d9b-5d7935b34736" + style="overflow:visible"> + style="stroke:none" + d="" + id="id-176e43a3-04b3-456a-87eb-75496ff94138" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-b7a452c3-f327-4933-890e-128254bd5142" + style="overflow:visible"> + style="stroke:none" + d="m 5.6875,-1.421875 c 0,-0.109375 -0.078125,-0.109375 -0.109375,-0.109375 -0.109375,0 -0.109375,0.03125 -0.15625,0.1875 -0.203125,0.671875 -0.53125,1.234375 -1.015625,1.234375 -0.171875,0 -0.234375,-0.09375 -0.234375,-0.328125 0,-0.25 0.078125,-0.484375 0.171875,-0.703125 0.1875,-0.53125 0.609375,-1.625 0.609375,-2.203125 0,-0.65625 -0.421875,-1.0625 -1.140625,-1.0625 -0.90625,0 -1.390625,0.640625 -1.5625,0.875 -0.046875,-0.5625 -0.453125,-0.875 -0.921875,-0.875 -0.453125,0 -0.640625,0.390625 -0.734375,0.5625 C 0.421875,-3.5 0.296875,-2.90625 0.296875,-2.875 c 0,0.109375 0.109375,0.109375 0.109375,0.109375 0.109375,0 0.109375,-0.015625 0.171875,-0.234375 0.171875,-0.703125 0.375,-1.1875 0.734375,-1.1875 0.1875,0 0.296875,0.125 0.296875,0.453125 0,0.21875 -0.03125,0.328125 -0.15625,0.84375 L 0.875,-0.59375 c -0.03125,0.15625 -0.09375,0.390625 -0.09375,0.4375 0,0.171875 0.140625,0.265625 0.296875,0.265625 0.125,0 0.296875,-0.078125 0.375,-0.28125 0,-0.015625 0.125,-0.484375 0.1875,-0.734375 l 0.21875,-0.890625 C 1.90625,-2.03125 1.96875,-2.25 2.03125,-2.46875 l 0.125,-0.5 c 0.140625,-0.3125 0.671875,-1.21875 1.625,-1.21875 0.453125,0 0.53125,0.375 0.53125,0.703125 0,0.609375 -0.484375,1.890625 -0.640625,2.3125 C 3.578125,-0.9375 3.5625,-0.8125 3.5625,-0.703125 c 0,0.46875 0.359375,0.8125 0.828125,0.8125 0.9375,0 1.296875,-1.453125 1.296875,-1.53125 z m 0,0" + id="id-044d37e0-56e0-4db3-b80a-0f8d1f90046d" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-080541fc-5714-49be-918f-5d0a258c9b95" + style="overflow:visible"> + style="stroke:none" + d="m 4.140625,-2.8125 c 0,-0.90625 -0.53125,-1.59375 -1.328125,-1.59375 -0.453125,0 -0.875,0.296875 -1.171875,0.59375 l 0.734375,-3 c 0,0 0,-0.109375 -0.125,-0.109375 -0.21875,0 -0.953125,0.078125 -1.21875,0.109375 -0.078125,0 -0.1875,0.015625 -0.1875,0.1875 0,0.125 0.09375,0.125 0.25,0.125 0.46875,0 0.484375,0.0625 0.484375,0.171875 0,0.0625 -0.078125,0.40625 -0.125,0.609375 l -0.828125,3.25 c -0.109375,0.5 -0.15625,0.671875 -0.15625,1.015625 0,0.9375 0.53125,1.5625 1.265625,1.5625 1.171875,0 2.40625,-1.484375 2.40625,-2.921875 z M 2.90625,-1.140625 c -0.328125,0.671875 -0.78125,1.03125 -1.171875,1.03125 -0.34375,0 -0.671875,-0.265625 -0.671875,-1 0,-0.203125 0,-0.390625 0.15625,-1.015625 L 1.453125,-3.046875 C 1.5,-3.265625 1.5,-3.28125 1.59375,-3.390625 2.078125,-4.03125 2.53125,-4.1875 2.796875,-4.1875 c 0.359375,0 0.625,0.296875 0.625,0.9375 0,0.59375 -0.328125,1.734375 -0.515625,2.109375 z m 0,0" + id="id-58b238a6-bc33-4e96-82fb-7ac72d7a9f52" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-8b291c95-2454-40ab-825d-b418b977607f" + style="overflow:visible"> + style="stroke:none" + d="" + id="id-41041e47-ccc5-4468-ab45-954440c6a635" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-a24c175c-9aff-4e5e-94f9-11d74bd3db23" + style="overflow:visible"> + style="stroke:none" + d="m 3.578125,-1.203125 c 0,-0.546875 -0.4375,-1.09375 -1.203125,-1.25 0.71875,-0.265625 0.984375,-0.78125 0.984375,-1.21875 0,-0.546875 -0.625,-0.953125 -1.40625,-0.953125 -0.765625,0 -1.359375,0.375 -1.359375,0.9375 0,0.234375 0.15625,0.359375 0.359375,0.359375 0.21875,0 0.359375,-0.15625 0.359375,-0.34375 0,-0.203125 -0.140625,-0.359375 -0.359375,-0.375 0.25,-0.296875 0.71875,-0.375 0.984375,-0.375 0.3125,0 0.75,0.15625 0.75,0.75 0,0.296875 -0.09375,0.625 -0.28125,0.828125 -0.21875,0.265625 -0.421875,0.28125 -0.765625,0.3125 -0.171875,0.015625 -0.1875,0.015625 -0.21875,0.015625 0,0 -0.078125,0.015625 -0.078125,0.09375 0,0.09375 0.0625,0.09375 0.1875,0.09375 h 0.375 c 0.546875,0 0.9375,0.375 0.9375,1.125 0,0.859375 -0.515625,1.125 -0.90625,1.125 -0.28125,0 -0.90625,-0.078125 -1.1875,-0.5 0.328125,0 0.40625,-0.234375 0.40625,-0.390625 0,-0.21875 -0.171875,-0.375 -0.390625,-0.375 -0.1875,0 -0.390625,0.125 -0.390625,0.40625 0,0.65625 0.71875,1.078125 1.5625,1.078125 0.96875,0 1.640625,-0.65625 1.640625,-1.34375 z m 0,0" + id="id-1f46df74-d0b7-4a45-a2df-4c15dc9d47b3" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-8dddc6a6-ebf6-43e0-b35f-9aae6ccfca89" + style="overflow:visible"> + style="stroke:none" + d="m 5.609375,-1.734375 c 0,-0.1875 -0.15625,-0.1875 -0.25,-0.1875 H 3.21875 V -4.0625 c 0,-0.078125 0,-0.25 -0.15625,-0.25 -0.171875,0 -0.171875,0.15625 -0.171875,0.25 v 2.140625 H 0.75 c -0.09375,0 -0.265625,0 -0.265625,0.171875 0,0.171875 0.15625,0.171875 0.265625,0.171875 H 2.890625 V 0.5625 c 0,0.09375 0,0.265625 0.15625,0.265625 0.171875,0 0.171875,-0.171875 0.171875,-0.265625 v -2.140625 h 2.140625 c 0.09375,0 0.25,0 0.25,-0.15625 z m 0,0" + id="id-bc5b9f23-35cf-4253-95f8-1fa6ce5f87e6" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-db3d7387-0087-4e9e-9b35-be1d0f756cf2" + style="overflow:visible"> + style="stroke:none" + d="M 3.515625,-1.265625 H 3.28125 c -0.015625,0.15625 -0.09375,0.5625 -0.1875,0.625 C 3.046875,-0.59375 2.515625,-0.59375 2.40625,-0.59375 H 1.125 c 0.734375,-0.640625 0.984375,-0.84375 1.390625,-1.171875 0.515625,-0.40625 1,-0.84375 1,-1.5 0,-0.84375 -0.734375,-1.359375 -1.625,-1.359375 -0.859375,0 -1.453125,0.609375 -1.453125,1.25 0,0.34375 0.296875,0.390625 0.375,0.390625 0.15625,0 0.359375,-0.125 0.359375,-0.375 0,-0.125 -0.046875,-0.375 -0.40625,-0.375 C 0.984375,-4.21875 1.453125,-4.375 1.78125,-4.375 c 0.703125,0 1.0625,0.546875 1.0625,1.109375 0,0.609375 -0.4375,1.078125 -0.65625,1.328125 L 0.515625,-0.265625 C 0.4375,-0.203125 0.4375,-0.1875 0.4375,0 h 2.875 z m 0,0" + id="id-1be2b4a5-c974-4db8-b74f-c80e5d218c71" + inkscape:connector-curvature="0" /> + overflow="visible" + id="id-8a77c443-ddfa-4159-87a6-b522a4a29d00" + style="overflow:visible"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + style="stroke:none" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-386a3e83-95f9-4dab-80be-8d810ae32dfb" + inkscape:connector-curvature="0" /> + + + + - + style="stroke:none" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + id="id-36ab81ad-d9f5-4cd6-885f-bc4b7090e239" + inkscape:connector-curvature="0" /> + + + + - - + style="fill:#000000;fill-opacity:1" + id="id-1bfb71e5-3179-4680-8e9e-e21d3807f57a"> + id="g11731" + transform="translate(96.7172,68.838)"> + style="stroke:none" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + id="id-ddbaff53-c33f-4ecb-972c-b6fe765d69b4" + inkscape:connector-curvature="0" /> + id="g11734" + transform="translate(100.121,68.838)"> + style="stroke:none" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-c8ad584a-7428-4a60-b3ab-c893d50a7ab8" + inkscape:connector-curvature="0" /> + id="g11737" + transform="translate(104.909,68.838)"> + style="stroke:none" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-1db842af-1612-4d98-aca8-879bcc6f275a" + inkscape:connector-curvature="0" /> + id="g11740" + transform="translate(109.503,68.838)"> + style="stroke:none" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-dac71e32-6477-4e1d-ab27-29b37d2e485e" + inkscape:connector-curvature="0" /> + id="g11743" + transform="translate(114.651,68.838)"> + style="stroke:none" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + id="id-d1bf282a-7bec-47e0-8bc4-4a3a980fbb63" + inkscape:connector-curvature="0" /> + style="fill:#000000;fill-opacity:1" + id="id-552a97dc-2393-46ba-a86a-dfc5fe27cb00"> + id="g11747" + transform="translate(122.357,68.838)"> + style="stroke:none" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-d62abbea-30b2-4571-89f1-eb25c5beb2b6" + inkscape:connector-curvature="0" /> - - + id="g11750" + transform="translate(125.761,68.838)"> + style="stroke:none" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-2041bd37-4509-4734-8059-43f95783db6e" + inkscape:connector-curvature="0" /> + id="g11753" + transform="translate(130.19,68.838)"> + style="stroke:none" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-c9594e11-0927-4ffb-81cc-443149402cff" + inkscape:connector-curvature="0" /> + id="g11756" + transform="translate(134.008,68.838)"> + style="stroke:none" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-251ee68c-8840-4886-8fca-e2f58fbba055" + inkscape:connector-curvature="0" /> + id="g11759" + transform="translate(138.437,68.838)"> + style="stroke:none" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-156a71b4-e1d2-4ef1-82b6-250601869447" + inkscape:connector-curvature="0" /> + + + + style="fill:#000000;fill-opacity:1" + id="id-0e113bed-5944-460d-83ca-23e49a7a70ac"> + id="g11766" + transform="translate(149.252,68.838)"> + style="stroke:none" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + id="id-48a8f3e0-939f-4c04-a1d2-09ad91fb9677" + inkscape:connector-curvature="0" /> + id="g11769" + transform="translate(154.4,68.838)"> + style="stroke:none" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-850bbb99-631c-4968-8676-b0b4b3ab114a" + inkscape:connector-curvature="0" /> + id="g11772" + transform="translate(156.78,68.838)"> + style="stroke:none" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-605eb430-c712-4e20-8225-27acb37d08ae" + inkscape:connector-curvature="0" /> + id="g11775" + transform="translate(161.761,68.838)"> + style="stroke:none" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-a2b8b322-1c83-4c21-8a3c-ed24d1bf5426" + inkscape:connector-curvature="0" /> + + + - - - - - - + style="fill:#000000;fill-opacity:1" + id="id-c9c44730-cee7-4812-8500-ef94410f8b0d"> + - - + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-30ef6dd3-fb00-4a66-ac89-7a910e09f507" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-51dfc31f-947b-4820-bcbb-f32a3175a964" + inkscape:connector-curvature="0" /> + + - - + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z m 0,0" + id="id-b0dc62d1-b469-49bb-9750-7a2ab7f7fa08" + inkscape:connector-curvature="0" /> + + - - + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-aae2230d-90e1-4d2c-9ef2-9062d2ac1347" + inkscape:connector-curvature="0" /> + + - - + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-c053c74f-9f58-4883-8854-9ec9de7b28d9" + inkscape:connector-curvature="0" /> + + - - + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-1e618ecd-9a5d-45e3-8c4b-739644a2abe2" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-151dd9cb-94ed-45f3-a8c8-71638c9d7069" + inkscape:connector-curvature="0" /> + + - - + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-9be12263-b086-42bb-b7ae-9ae2cdc1ac55" + inkscape:connector-curvature="0" /> + + - - + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-9205543f-c0e4-4665-8db8-e626fd3e3350" + inkscape:connector-curvature="0" /> + + - - + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-214e0fb6-4e54-4ff6-a651-fd5c309d993f" + inkscape:connector-curvature="0" /> + + - - + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-7cd72d2b-931a-4fc3-a416-6fa7b42d4e8f" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-f05fff8d-c00d-4bfd-848f-dba9cf33bbe1" + inkscape:connector-curvature="0" /> + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-0a53d7d1-4c1f-45b3-ac6b-674d3bd9b763" + inkscape:connector-curvature="0" /> + + + + - - + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + id="id-a07f2659-0da8-465c-9578-6e82f7651603" + inkscape:connector-curvature="0" /> + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-da93b594-4ca6-4d47-845c-2ec3841d9880" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-de738b03-eceb-4379-9d32-c644fa9101ee" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-fcb5287e-09c9-464d-889c-07af1c0003eb" + inkscape:connector-curvature="0" /> + + - - + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-79abebb5-fd3d-4322-bf71-a0efaa0a01e7" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-4d1604fc-f79a-477a-a3d9-301ad4915476" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-5a86b4a9-ca61-4c06-87ba-0056e930df26" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-2bbef054-ae67-4796-a6f8-766ee685ab96" + inkscape:connector-curvature="0" /> + + - - + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + id="id-92f62792-c8d1-4ca9-8542-d022ff8719da" + inkscape:connector-curvature="0" /> + + - - + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + id="id-2ce7efa6-2a63-4ec6-83dc-5079e0cd4e74" + inkscape:connector-curvature="0" /> + + + + - - + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-8dbc31f0-d3aa-4e0c-9005-fd312f1c65a7" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-87de0056-2099-48e5-baa4-960f0038e2be" + inkscape:connector-curvature="0" /> + + - - + id="id-47f82c99-9300-4ecd-a586-9098e243f9fb" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-0be411f9-0eb7-4038-99c2-df167ebffd29" + inkscape:connector-curvature="0" /> + + - - + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-b2d641b3-e3e2-4821-8fed-dc8670865085" + inkscape:connector-curvature="0" /> + + + + - - + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-fa4cfff1-2c2a-4f58-a827-5c20a2a221b5" + inkscape:connector-curvature="0" /> + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-4e7c8fe2-96f0-4f4a-8b7e-7de5df0f75dd" + inkscape:connector-curvature="0" /> + + + + + + + + + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-b6c6170a-c3eb-410f-a28a-4889352c5f01" + inkscape:connector-curvature="0" /> + + - - + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-3b8e7bd3-9f0c-4510-8059-53dcfc202e56" + inkscape:connector-curvature="0" /> + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-96886447-4607-4f91-8819-f96e364686ba" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-f4624b2b-115f-42e4-a447-ae31fbcbb61a" + inkscape:connector-curvature="0" /> + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-bb9be0f1-f7f8-410b-8d8f-cc695ea692b6" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-2c56a07f-8f11-4aca-9aa4-88d16130c924" + inkscape:connector-curvature="0" /> + + + + - - + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-1c0ae2d1-8ca2-480e-809e-1766cbc19895" + inkscape:connector-curvature="0" /> + + - - + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-4c5a79d2-0edf-46e3-8315-db84ddfd4394" + inkscape:connector-curvature="0" /> + + - - + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-14bb2f05-5497-4db4-a398-3f14066d9316" + inkscape:connector-curvature="0" /> + + - - + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-8c32e494-7f05-4aca-9bc5-993aadfc9be5" + inkscape:connector-curvature="0" /> + + - - + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-6737d0f0-7f6f-450c-97a6-055593095178" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-9e3d47ae-e6fd-47bf-a78e-92a173796600" + inkscape:connector-curvature="0" /> + + - - + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + id="id-d2ad98fd-071b-4c78-a56f-525adfda20f0" + inkscape:connector-curvature="0" /> + + + + - - + d="M 5.578125,0 V -0.65625 H 4.625 L 2,-0.640625 H 1.6875 l 3.828125,-5.875 v -0.40625 H 0.6875 v 0.625 h 2 c 0.109375,0 0.234375,-0.015625 0.359375,-0.015625 h 1.34375 L 0.5625,-0.421875 V 0 Z m 0,0" + id="id-c02ac79a-1aeb-4743-b53f-65ce0baef06d" + inkscape:connector-curvature="0" /> + + - - + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-7d88fb5a-c5ab-4aba-a9cc-62cbc1f4c2e9" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-6a30fa5a-8cf3-46ab-970f-52c5b813fae4" + inkscape:connector-curvature="0" /> + + - - + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + id="id-f7b4aec0-4938-45b4-9d28-4924a1c977f4" + inkscape:connector-curvature="0" /> + + - - + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-7d591a06-3445-4c80-b29d-18b739746862" + inkscape:connector-curvature="0" /> + + - - + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-e96c1963-a711-4182-9d90-04f4fab043e7" + inkscape:connector-curvature="0" /> + + - - + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-597cd4d8-e677-41e5-a941-b4fdb81ccfbd" + inkscape:connector-curvature="0" /> + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-db6a5fb7-f80c-403d-b990-5657dfbf00eb" + inkscape:connector-curvature="0" /> + + - - + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + id="id-2a1fece1-7d56-471c-8c1d-69012a13067b" + inkscape:connector-curvature="0" /> + + - - + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-fbf54e6d-e859-42be-8429-916afac68fff" + inkscape:connector-curvature="0" /> + + - - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + id="id-f257b803-55f5-4021-8756-f6c87f25008f" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.78125,-2.21875 c 0,-1.203125 -0.625,-2.3125 -1.578125,-2.3125 -0.59375,0 -1.171875,0.203125 -1.640625,0.59375 v -0.484375 h -0.75 V 1.9375 h 0.78125 v -2.390625 c 0.3125,0.28125 0.75,0.5625 1.34375,0.5625 0.96875,0 1.84375,-0.984375 1.84375,-2.328125 z M 4,-2.21875 C 4,-1.203125 3.296875,-0.5 2.546875,-0.5 2.15625,-0.5 1.890625,-0.703125 1.6875,-0.96875 1.59375,-1.109375 1.59375,-1.140625 1.59375,-1.3125 v -2 c 0.234375,-0.359375 0.625,-0.578125 1.0625,-0.578125 0.75,0 1.34375,0.75 1.34375,1.671875 z m 0,0" + id="id-0977fdd3-4dc1-4d30-840c-f6045805ab46" + inkscape:connector-curvature="0" /> + + + + - - + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-0dec3b9e-312c-49f7-aa10-8c033f40c241" + inkscape:connector-curvature="0" /> + + - - + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-5302eed4-1593-499f-ae02-4d7175cc5bd0" + inkscape:connector-curvature="0" /> + + - + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-ca9ec370-e619-484b-92df-a87de407a432" + inkscape:connector-curvature="0" /> + - - + id="id-a2c21c16-1639-4f88-96ab-08e9291be481"> + id="g11979" + transform="translate(237.073,80.793)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-6d7666d1-0d3e-4e1a-ac1c-c38ac372f747" + inkscape:connector-curvature="0" /> + id="g11982" + transform="translate(242.221,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-b1080cfe-5651-4358-a18a-0b10371c5594" + inkscape:connector-curvature="0" /> + + + + + + + id="id-1bece6f6-1ec5-4938-8efc-907a46708a1b"> + id="g11992" + transform="translate(259.494,80.793)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-58491fe7-5a62-4c0d-9b05-9bdd02b03fcd" + inkscape:connector-curvature="0" /> + id="g11995" + transform="translate(262.898,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-5aa6d893-49e1-47c7-95d9-a669dedbc60f" + inkscape:connector-curvature="0" /> + id="g11998" + transform="translate(267.327,80.793)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-a8319d94-dffb-4106-aa04-eaf8d37a0881" + inkscape:connector-curvature="0" /> + id="g12001" + transform="translate(271.145,80.793)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-25fdff86-4a1f-48e7-99d7-2ea8ab3f83be" + inkscape:connector-curvature="0" /> + id="g12004" + transform="translate(275.574,80.793)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-eb7fb695-6e6c-4f10-beac-14e0f20bab11" + inkscape:connector-curvature="0" /> + id="g12007" + transform="translate(280.721,80.793)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-5a54e23d-e8a8-4114-8fea-971506d2ed2c" + inkscape:connector-curvature="0" /> + id="id-284e73ff-47e9-47a6-93d2-67286f9f025e"> + id="g12011" + transform="translate(286.011,80.793)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-7a3b6a3e-7e21-4a9f-8cf1-eb9329f40dd6" + inkscape:connector-curvature="0" /> - - + id="g12014" + transform="translate(290.604,80.793)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-53d53357-4e89-4056-afdb-db7168d3cdb7" + inkscape:connector-curvature="0" /> + id="g12017" + transform="translate(294.423,80.793)"> + id="id-ccc82408-e116-4ee2-ac14-2f53b5361d1d" + inkscape:connector-curvature="0" /> - - + id="g12020" + transform="translate(299.211,80.793)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-62a834c5-ba64-4b25-b656-8a3c7522c296" + inkscape:connector-curvature="0" /> + + + id="g12024" + transform="translate(73.866,92.748)"> + id="id-f24bcb56-3403-41f3-8dde-d4a9f716e318" + inkscape:connector-curvature="0" /> - - - + id="id-d00968af-58bf-464f-ab95-a60874c9ba70"> + id="g12028" + transform="translate(78.7347,92.748)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-8d6e952d-e32e-4c29-aba8-a6131583e133" + inkscape:connector-curvature="0" /> + id="g12031" + transform="translate(82.1389,92.748)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-ecad945b-06fe-462f-b6ab-6623347b3cae" + inkscape:connector-curvature="0" /> + id="g12034" + transform="translate(84.519,92.748)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-10125dc0-7622-40ee-bbf2-a325abefe835" + inkscape:connector-curvature="0" /> + id="g12037" + transform="translate(89.6667,92.748)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + id="id-674e53ee-78fa-4a3c-834e-a09d747c1c03" + inkscape:connector-curvature="0" /> - - + id="g12040" + transform="translate(94.0951,92.748)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-f3931947-1169-44a8-87d8-296eae09d8fd" + inkscape:connector-curvature="0" /> + id="g12043" + transform="translate(96.4751,92.748)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-8fafda41-4ce7-4cb6-97e6-b0fe54dd02cf" + inkscape:connector-curvature="0" /> + id="g12046" + transform="translate(101.623,92.748)"> + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + id="id-0fe2ae07-064f-4bb6-9de3-0e9b40165a5f" + inkscape:connector-curvature="0" /> + id="g12049" + transform="translate(104.28,92.748)"> + id="id-44ddad28-c117-4ab8-80e6-e493fabaf5b1" + inkscape:connector-curvature="0" /> + id="g12052" + transform="translate(108.708,92.748)"> + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-6089164d-8c25-42c8-b87b-0138d5fff5fe" + inkscape:connector-curvature="0" /> + id="g12055" + transform="translate(116.623,92.748)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-f8e1bdce-97b1-4f2c-a8fa-738f0cc9c924" + inkscape:connector-curvature="0" /> - - - + id="id-1fbe3739-cc8e-42db-a0d5-4ac9c114b0e5"> + id="g12059" + transform="translate(124.369,92.748)"> + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-aa59bf58-e595-4fd7-a440-ccd1f9434b0c" + inkscape:connector-curvature="0" /> + + + id="g12063" + transform="translate(129.796,92.748)"> + id="id-64aabe30-fb52-4bdb-8ff0-4d2a01008534" + inkscape:connector-curvature="0" /> + + + id="g12067" + transform="translate(135.056,92.748)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-f356e645-b108-454d-82b3-dc50ac18394a" + inkscape:connector-curvature="0" /> + id="g12070" + transform="translate(140.204,92.748)"> + id="id-0c00fb7e-cfae-4f72-b4f1-0f0eee159692" + inkscape:connector-curvature="0" /> + id="id-3d0c37bc-c671-497a-80db-5df09684b836"> + id="g12074" + transform="translate(148.115,92.748)"> + + + + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-54d79703-358c-4873-ac25-04c9d2447a79" + inkscape:connector-curvature="0" /> + id="g12080" + transform="translate(158.051,92.748)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-e8f03218-4cb7-4dbc-84fe-0c7a1eee0e23" + inkscape:connector-curvature="0" /> + id="g12083" + transform="translate(162.645,92.748)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-b7004fbc-2c3a-4913-8a85-db7c7685d7c9" + inkscape:connector-curvature="0" /> + id="g12086" + transform="translate(165.025,92.748)"> + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + id="id-a2263313-ca4c-46bc-8c55-2ab15867955e" + inkscape:connector-curvature="0" /> + id="g12089" + transform="translate(169.453,92.748)"> + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + id="id-4a9eeb35-a8ad-41b1-abf3-97289c14fd84" + inkscape:connector-curvature="0" /> + + + id="g12093" + transform="translate(61.136,112.673)"> + d="m 5.3125,-2.296875 c 0,-0.796875 -0.640625,-1.4375 -1.4375,-1.4375 -0.78125,0 -1.4375,0.640625 -1.4375,1.4375 0,0.78125 0.65625,1.421875 1.4375,1.421875 0.796875,0 1.4375,-0.640625 1.4375,-1.421875 z m 0,0" + id="id-4164f4d0-e457-4db8-8613-3afee0d5684a" + inkscape:connector-curvature="0" /> + id="id-fd1a3dd1-df67-443f-b76e-84a55f849c01"> + id="g12097" + transform="translate(73.866,112.673)"> + d="m 5.796875,-4.90625 c 0,-1.0625 -0.984375,-2.015625 -2.359375,-2.015625 H 0.953125 V 0 H 1.84375 v -2.875 h 1.671875 c 1.234375,0 2.28125,-0.90625 2.28125,-2.03125 z M 5,-4.90625 c 0,0.796875 -0.640625,1.453125 -1.78125,1.453125 H 1.8125 v -2.90625 H 3.21875 C 4.3125,-6.359375 5,-5.75 5,-4.90625 Z m 0,0" + id="id-293d1c00-88d9-47e6-af95-1ba5dc0178df" + inkscape:connector-curvature="0" /> + id="g12100" + transform="translate(80.2311,112.673)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + id="id-5ddea1d3-9d5c-47b0-9095-2b670f936253" + inkscape:connector-curvature="0" /> + id="g12103" + transform="translate(83.6353,112.673)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-13e4282b-db7d-4d28-bedd-1a040e50a691" + inkscape:connector-curvature="0" /> + id="g12106" + transform="translate(88.6166,112.673)"> + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-a48af07b-1f46-42be-bdd1-e65e12dd59e8" + inkscape:connector-curvature="0" /> + id="g12109" + transform="translate(93.7643,112.673)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-9b84e7cc-f0c9-4511-a4c3-b35b6c7a098c" + inkscape:connector-curvature="0" /> + id="g12112" + transform="translate(96.1444,112.673)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + id="id-b7575f24-1f00-48b7-82d3-a5308805b33a" + inkscape:connector-curvature="0" /> + id="g12115" + transform="translate(100.573,112.673)"> + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-d197b2b2-adc2-40e6-a625-ed1069e40ebb" + inkscape:connector-curvature="0" /> - - + id="g12118" + transform="translate(108.488,112.673)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-839d4660-3a59-4267-b5c3-b5eb5bd1b8a7" + inkscape:connector-curvature="0" /> + + + id="g12122" + transform="translate(116.459,112.673)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-8d960f55-5bf7-49a9-9f19-3d9d4f619385" + inkscape:connector-curvature="0" /> + id="g12125" + transform="translate(121.607,112.673)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-6b8bb104-5ee6-427a-b058-1788c0a32d1a" + inkscape:connector-curvature="0" /> + + + id="g12129" + transform="translate(126.857,112.673)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-0c8ac27e-eff3-4ed4-8d2b-b4ab7467d757" + inkscape:connector-curvature="0" /> + id="g12132" + transform="translate(132.005,112.673)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-ee906ec2-b40e-4d50-b098-7952e569e210" + inkscape:connector-curvature="0" /> - - + id="g12135" + transform="translate(137.152,112.673)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-5150821e-963f-4b76-a67b-f74f3a4757e4" + inkscape:connector-curvature="0" /> - - + id="g12138" + transform="translate(142.134,112.673)"> + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + id="id-f14d0cc9-07de-43c0-a541-68336d8be9a0" + inkscape:connector-curvature="0" /> - - + id="g12141" + transform="translate(145.731,112.673)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-087ae198-237b-4915-8fb0-bd8c3d24e690" + inkscape:connector-curvature="0" /> + id="g12144" + transform="translate(148.111,112.673)"> + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-71a9cb73-9527-4a6b-aa98-c20c86ed3537" + inkscape:connector-curvature="0" /> + id="g12147" + transform="translate(156.027,112.673)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-25c61632-1d92-4f46-8cd1-8f690a36f07b" + inkscape:connector-curvature="0" /> + id="id-847ed349-4980-4633-99bd-4c7f08b1defd"> + id="g12151" + transform="translate(163.832,112.673)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-4baa05e8-82c5-4168-a503-331436fa29b8" + inkscape:connector-curvature="0" /> - - + id="g12154" + transform="translate(166.212,112.673)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-4e843ea8-9b53-49ea-b2bb-47b99b061cd2" + inkscape:connector-curvature="0" /> + id="g12157" + transform="translate(171.36,112.673)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-e7aabc9a-5aff-49b1-8ee9-32f59e58237d" + inkscape:connector-curvature="0" /> + id="g12160" + transform="translate(176.508,112.673)"> + id="id-5816cc03-3ac7-4c03-89e6-46a58979a894" + inkscape:connector-curvature="0" /> + id="g12163" + transform="translate(178.888,112.673)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-e5cf26f5-1cb6-43b2-904d-73c2e0cda3ed" + inkscape:connector-curvature="0" /> - - + id="g12166" + transform="translate(183.482,112.673)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-cab1b00c-0527-4b76-8b75-c5458812a3fe" + inkscape:connector-curvature="0" /> + id="g12169" + transform="translate(185.862,112.673)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-629c2ed1-26ad-46ac-a8b2-3a14cdaf8a96" + inkscape:connector-curvature="0" /> - - + id="g12172" + transform="translate(191.009,112.673)"> + id="id-ace07790-a25e-48eb-bdf1-fdc3c89816da" + inkscape:connector-curvature="0" /> + id="g12175" + transform="translate(196.157,112.673)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-ea126664-38e4-46ad-8a22-777ae626097b" + inkscape:connector-curvature="0" /> + id="g12178" + transform="translate(200.945,112.673)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-4de12acc-b7a5-4048-9f1c-164226460f19" + inkscape:connector-curvature="0" /> + id="g12181" + transform="translate(203.325,112.673)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-24d80b37-9e8d-4971-994b-2becc2396f02" + inkscape:connector-curvature="0" /> + id="g12184" + transform="translate(208.473,112.673)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + id="id-f17fc584-1bf3-4a57-bbf0-4a852a34c5b1" + inkscape:connector-curvature="0" /> + + + + id="id-07588ffe-b6f1-494c-a8dd-8df9eedd73f3"> + id="g12191" + transform="translate(219.036,112.673)"> + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-402367ac-4f31-4379-b0df-858d83853c41" + inkscape:connector-curvature="0" /> + id="g12195" + transform="translate(223.367,112.673)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-425f74e8-5d33-4deb-b8b0-6d04e3b333c4" + inkscape:connector-curvature="0" /> + id="id-be1037bf-0e0a-461f-9c82-172ce3058636"> + id="g12199" + transform="translate(231.532,112.673)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-8b4591b6-2733-4834-85b8-c91a3305081c" + inkscape:connector-curvature="0" /> - - + id="g12202" + transform="translate(236.68,112.673)"> + + + + id="id-181561f1-424c-4b77-b5dd-c613496f1551" + inkscape:connector-curvature="0" /> + id="g12208" + transform="translate(245.439,112.673)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-bb1832de-dfec-4090-87d9-1887527f1111" + inkscape:connector-curvature="0" /> + id="g12211" + transform="translate(250.31,112.673)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + id="id-75a94cc8-b8b7-49ea-86eb-4d60a752e790" + inkscape:connector-curvature="0" /> + + + + + + id="g12218" + transform="translate(262.709,112.673)"> + + + + id="id-e6331a1d-2934-41eb-9c34-4c97c8b8ca02" + inkscape:connector-curvature="0" /> + id="g12224" + transform="translate(269.877,112.673)"> + id="id-893f0925-db58-4ab2-ae93-59185b005105" + inkscape:connector-curvature="0" /> + id="g12227" + transform="translate(275.025,112.673)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-68584635-94aa-46fd-bd65-804f34a171b9" + inkscape:connector-curvature="0" /> + id="g12230" + transform="translate(279.453,112.673)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-d585c196-5b87-485b-8a63-5ebd9034ef9f" + inkscape:connector-curvature="0" /> + id="id-b0e467da-4f02-437a-bb97-32ad258d6d6a"> + id="g12234" + transform="translate(287.691,112.673)"> + d="m 7.109375,0 v -2.96875 c 0,-0.671875 -0.15625,-1.5625 -1.375,-1.5625 -0.59375,0 -1.109375,0.28125 -1.484375,0.8125 -0.25,-0.75 -0.953125,-0.8125 -1.265625,-0.8125 -0.71875,0 -1.1875,0.40625 -1.453125,0.765625 v -0.71875 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.6875 0.28125,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 h 0.78125 v -2.4375 c 0,-0.6875 0.265625,-1.484375 1.015625,-1.484375 0.921875,0 0.96875,0.640625 0.96875,1.015625 V 0 Z m 0,0" + id="id-7986889f-b6c9-413d-a2ca-473861394c5b" + inkscape:connector-curvature="0" /> + + + + id="g12240" + transform="translate(300.754,112.673)"> + d="M 2.75,-1.921875 V -2.5 H 0.109375 v 0.578125 z m 0,0" + id="id-c0dcf132-1121-4c72-aa93-d98d86f4a1c2" + inkscape:connector-curvature="0" /> + id="id-7a86f17d-9f04-4a03-bca4-afff096387e9"> + id="g12244" + transform="translate(73.866,124.629)"> + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + id="id-e695e893-d29d-4ef6-9e2c-220991f92355" + inkscape:connector-curvature="0" /> + id="g12247" + transform="translate(78.1967,124.629)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-75b4ef99-ab94-4e04-bc96-0f5be095e281" + inkscape:connector-curvature="0" /> + id="g12250" + transform="translate(82.6251,124.629)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-5e1743ee-e21f-4387-bddf-562fda5a1bd4" + inkscape:connector-curvature="0" /> + + + id="g12254" + transform="translate(90.8174,124.629)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-08bc5825-a7cc-430e-89f1-ab31baf7f708" + inkscape:connector-curvature="0" /> + id="g12257" + transform="translate(95.965,124.629)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + id="id-63407ab8-77e6-48f7-8a75-2b386a0cc73e" + inkscape:connector-curvature="0" /> + id="g12260" + transform="translate(99.3693,124.629)"> + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + id="id-51d43e31-97d0-4769-9026-64547fef7ab3" + inkscape:connector-curvature="0" /> + id="g12263" + transform="translate(103.798,124.629)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + id="id-4df060f4-7003-4990-970e-a34cadd538b1" + inkscape:connector-curvature="0" /> + id="g12266" + transform="translate(106.178,124.629)"> + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + id="id-9300112c-7a5b-4711-b419-0f31c39b33ed" + inkscape:connector-curvature="0" /> + id="g12270" + transform="translate(109.775,124.629)"> + id="id-c4108a76-7f82-4a73-8cfe-83eb6f236657" + inkscape:connector-curvature="0" /> + id="id-80bd840b-9274-4c99-ac03-f82284e43700"> + id="g12274" + transform="translate(118.587,124.629)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-63a23155-6976-41dc-9fc8-75ca67304a1a" + inkscape:connector-curvature="0" /> - - - + id="id-0b8b5587-0968-4823-a2de-5810660278a2"> + id="g12278" + transform="translate(123.847,124.629)"> + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z M 3.984375,-6.953125 H 3.390625 L 2.4375,-5.71875 1.46875,-6.953125 H 0.890625 l 1.25,1.71875 h 0.59375 z m 0,0" + id="id-3c5b4f21-4c38-4022-82f8-2e699bc1837e" + inkscape:connector-curvature="0" /> + id="g12281" + transform="translate(128.276,124.629)"> + id="id-19f5ac8d-7a08-422f-a93e-75e24d18863f" + inkscape:connector-curvature="0" /> + id="id-d96172ae-3584-41ab-8be5-419e2c3ed296"> + id="g12286" + transform="translate(132.694,124.629)"> + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + id="id-88bbf720-fb08-41fb-9387-2d094149cf0c" + inkscape:connector-curvature="0" /> + id="g12289" + transform="translate(137.565,124.629)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + id="id-633ee500-0f14-4735-99cb-287d23d2df90" + inkscape:connector-curvature="0" /> + id="g12293" + transform="translate(142.353,124.629)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-a81dbebc-444b-4c8d-b07a-2892359cd0ee" + inkscape:connector-curvature="0" /> + id="g12296" + transform="translate(146.947,124.629)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-6c6444b8-fc16-4f23-86fa-313741e36fca" + inkscape:connector-curvature="0" /> + + + + id="id-b649d79c-c18c-45a5-811b-0ae300c400a8"> + id="g12303" + transform="translate(159.716,124.629)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-a50397f1-f831-43b0-b04c-88215fa69669" + inkscape:connector-curvature="0" /> + id="g12306" + transform="translate(164.309,124.629)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-a82c9d90-be96-4b94-b4ab-ccb2a803382c" + inkscape:connector-curvature="0" /> + id="g12309" + transform="translate(166.69,124.629)"> + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + id="id-20365022-8635-476a-9e18-c77ac8f880ed" + inkscape:connector-curvature="0" /> + id="g12312" + transform="translate(171.118,124.629)"> + id="id-2b95e866-b62f-4ea4-af58-d5f20d56a25b" + inkscape:connector-curvature="0" /> + + + id="g12316" + transform="translate(179.92,124.629)"> + d="m 4.78125,-2.21875 c 0,-1.234375 -0.671875,-2.3125 -1.609375,-2.3125 -0.390625,0 -1.015625,0.09375 -1.609375,0.578125 v -2.96875 h -0.75 V 0 h 0.78125 v -0.453125 c 0.234375,0.21875 0.671875,0.5625 1.34375,0.5625 0.984375,0 1.84375,-1 1.84375,-2.328125 z M 4,-2.21875 C 4,-0.921875 3.171875,-0.5 2.5625,-0.5 2.171875,-0.5 1.84375,-0.671875 1.59375,-1.140625 V -3.34375 C 1.75,-3.578125 2.109375,-3.921875 2.65625,-3.921875 3.25,-3.921875 4,-3.5 4,-2.21875 Z m 0,0" + id="id-58693a1a-877b-4bba-8311-21ecea8b341c" + inkscape:connector-curvature="0" /> + + + id="g12321" + transform="translate(185.346,124.629)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-ea329c4b-4c4f-45f3-8b40-0f0fe4ec03f7" + inkscape:connector-curvature="0" /> + id="id-58aa0d49-fce9-4ca9-a81a-c102db1960fd"> + id="g12325" + transform="translate(190.607,124.629)"> + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + id="id-71488c0b-5290-4f88-8bf9-3edd0fc7fb53" + inkscape:connector-curvature="0" /> + id="g12328" + transform="translate(195.754,124.629)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + id="id-c45d3d94-0d69-46a5-a4c2-213b408d8be7" + inkscape:connector-curvature="0" /> + id="g12331" + transform="translate(200.902,124.629)"> + d="m 1.796875,-0.015625 v -0.8125 H 0.96875 V 0 h 0.25 l -0.25,1.25 H 1.375 Z m 0,0" + id="id-8bb92f50-e296-48fc-a87c-43e9ce335a35" + inkscape:connector-curvature="0" /> + + + + + + id="g12338" + transform="translate(213.191,124.629)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-5c10eee1-9045-49eb-8d2c-be2ab7df3bc3" + inkscape:connector-curvature="0" /> + + + + id="id-acca2d5b-9acd-47f6-8e51-8b07b883add9"> + id="g12345" + transform="translate(226.334,124.629)"> + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-060c89b7-30e5-4947-a337-5306b5142608" + inkscape:connector-curvature="0" /> + + + + id="id-47522d06-e9f4-4900-afb1-0f2629098550"> + id="g12352" + transform="translate(239.826,124.629)"> + id="id-d1e6a2c3-8573-48aa-9835-9a09ea05c549" + inkscape:connector-curvature="0" /> + id="g12355" + transform="translate(243.23,124.629)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-5df7b57c-5301-4eaa-9a8f-44ec776ae450" + inkscape:connector-curvature="0" /> + id="g12358" + transform="translate(247.659,124.629)"> + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + id="id-852b070c-b957-4d8b-9b09-ef28734bc51a" + inkscape:connector-curvature="0" /> + id="g12361" + transform="translate(251.477,124.629)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-625dbc29-f35b-4d72-8b4c-d6362ac176c2" + inkscape:connector-curvature="0" /> + id="g12364" + transform="translate(255.906,124.629)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-69f20a3a-5912-4b78-a737-6682a2daaee2" + inkscape:connector-curvature="0" /> + id="g12367" + transform="translate(261.053,124.629)"> + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + id="id-dc8c1278-533a-45aa-9463-9eeae090e1a5" + inkscape:connector-curvature="0" /> + + + id="g12371" + transform="translate(267.807,124.629)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + id="id-6f173dfe-86d9-40b6-b00d-c88c47bc194a" + inkscape:connector-curvature="0" /> + id="g12374" + transform="translate(272.955,124.629)"> + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + id="id-ac5b5259-0ddc-4a10-bd22-728612e84bb7" + inkscape:connector-curvature="0" /> + id="g12377" + transform="translate(277.285,124.629)"> + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + id="id-03055882-99d2-42f8-aecd-fe08d8087cba" + inkscape:connector-curvature="0" /> + id="g12380" + transform="translate(282.073,124.629)"> + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + id="id-697150b9-ed78-4ec9-9b46-ee68e6d2b3c9" + inkscape:connector-curvature="0" /> - - + id="g12383" + transform="translate(286.667,124.629)"> + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + id="id-8af67f68-6910-4e5c-a9f4-d1ab776dd434" + inkscape:connector-curvature="0" /> - - + id="g12386" + transform="translate(290.071,124.629)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + id="id-ac3c5225-609d-435f-8929-c2d883b5596b" + inkscape:connector-curvature="0" /> - - + id="g12389" + transform="translate(294.5,124.629)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-21f112ea-90c4-437b-a5ab-a15b8a6884d8" + inkscape:connector-curvature="0" /> + id="g12392" + transform="translate(299.647,124.629)"> + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + id="id-77911274-2a2f-4e3b-93f5-e86d49ec18a4" + inkscape:connector-curvature="0" /> + id="id-28bc527d-9412-4385-9bae-3ad7286f5834"> - - - + id="g12396" + transform="translate(73.866,136.584)"> + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.984375,-6.921875 H 3.203125 L 1.875,-5.25 h 0.609375 z m 0,0" + id="id-d8fb3937-45b0-4a99-92f6-61ae20fe2e32" + inkscape:connector-curvature="0" /> + id="g12399" + transform="translate(79.0137,136.584)"> + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + id="id-50e32d7c-a5e4-494f-b856-605d86f625c1" + inkscape:connector-curvature="0" /> + id="g12402" + transform="translate(81.3937,136.584)"> + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + id="id-af96bbc9-3d39-4ce3-a96a-bc7990ad1219" + inkscape:connector-curvature="0" /> + id="g12405" + transform="translate(86.375,136.584)"> + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + id="id-d27c5c4b-aed3-41c1-a20d-f25bbf1a24f6" + inkscape:connector-curvature="0" /> + id="g12408" + transform="translate(91.5227,136.584)"> + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m 0,0" + id="id-7c9e627a-3500-425c-a61c-66951d277633" + inkscape:connector-curvature="0" /> + id="id-0d3ec40f-dd85-4630-84f6-6dbc3d2eb8ea"> + id="g12412" + transform="translate(95.2896,136.584)"> + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + id="id-7fb9eb92-8356-49f2-9a81-de490d998552" + inkscape:connector-curvature="0" /> + id="id-35cf45a7-43ca-4acf-b61f-db42c7d8e0b4" + inkscape:connector-curvature="0" /> + id="id-809ff280-d3ff-483c-a8d1-aa6831d878da" + inkscape:connector-curvature="0" /> + id="id-0579ec25-b017-4017-bbbc-87c0b4bdd38c" + inkscape:connector-curvature="0" /> + id="id-e8823fc4-1eae-4e84-b58e-f8f9f7fee7e3" + inkscape:connector-curvature="0" /> + id="id-ecea983e-8de8-40c1-b276-fad9934b2259" + inkscape:connector-curvature="0" /> + id="id-d2d355e7-54fe-433f-8315-9a8daacac496" + inkscape:connector-curvature="0" /> + id="id-df8aa430-2e68-4ffa-ba07-9420a42d9b7c" + inkscape:connector-curvature="0" /> + id="id-00719290-be9e-4995-8638-24eaa02ef2cd" + inkscape:connector-curvature="0" /> + id="id-95514ab3-c2be-40f3-8154-bc93c4c4b958" + inkscape:connector-curvature="0" /> + id="id-cca078de-6e05-414b-b61b-8fd386ac8f2a" + inkscape:connector-curvature="0" /> + id="id-af595d09-0dc7-427d-bb2a-81cbbbde4aa6" + inkscape:connector-curvature="0" /> + id="id-14c29939-008f-40a7-9532-b1392dc61689" + inkscape:connector-curvature="0" /> + id="id-85fa1619-9712-426a-b0e5-7683a6cdac75" + inkscape:connector-curvature="0" /> + id="id-319c408d-f9bd-4bec-ba44-3bfc248ecfd3" + inkscape:connector-curvature="0" /> + id="id-87070e61-c82f-48f0-895f-55aa2c6a1639" + inkscape:connector-curvature="0" /> + id="id-3d428104-0903-4db2-ae42-ce87d2be0200" + inkscape:connector-curvature="0" /> + id="id-ed248c37-d328-4dda-8442-35449091094a" + inkscape:connector-curvature="0" /> + id="id-4ed5fbe9-24ae-4db7-9fe2-9212eff34e80" + inkscape:connector-curvature="0" /> + id="id-eb769c40-0f3a-4aa7-95c9-7b054ca6ed1f" + inkscape:connector-curvature="0" /> + id="id-3e83e59c-0431-4767-8f2c-45301c034956" + inkscape:connector-curvature="0" /> + id="id-c7cb597f-7948-44e1-895e-6682a7387443" + inkscape:connector-curvature="0" /> + id="id-1a0b9bf5-e1aa-4fe7-b7a9-c9f8473fe3ce" + inkscape:connector-curvature="0" /> + id="id-2a12429e-4009-4d25-bb02-6e8a65a04292" + inkscape:connector-curvature="0" /> + id="id-ff07ca93-4c17-4e96-ae2d-46f71662031d" + inkscape:connector-curvature="0" /> + id="id-473d9344-ddb5-46b8-92d1-7fcfc2a300d1" + inkscape:connector-curvature="0" /> + id="id-ccbc8532-47f7-44ba-bf08-96ebff1388ae" + inkscape:connector-curvature="0" /> + id="id-9a528261-a2be-4778-b23a-8ac2caa89b17" + inkscape:connector-curvature="0" /> + id="id-e83fc48a-c102-4269-bd56-2cb0cba2c5e8" + inkscape:connector-curvature="0" /> + id="id-43289f48-33f1-49af-bc7a-89cd4e4098fd" + inkscape:connector-curvature="0" /> + id="id-cf37b5c4-37d5-4070-ad76-0125bc7f7787" + inkscape:connector-curvature="0" /> + id="id-62c190a9-a41a-4c04-ac98-b1166c791d4a" + inkscape:connector-curvature="0" /> + id="id-75c32cac-5e1e-4e2c-9716-c011f7d4ac86" + inkscape:connector-curvature="0" /> + id="id-b41ebb8c-bf97-4182-8a17-682517f84539" + inkscape:connector-curvature="0" /> + id="id-9befada5-8f8b-4941-b4c0-c234d677c6a0" + inkscape:connector-curvature="0" /> + id="id-d86b9b5b-b25b-4585-af66-680c7db15f93" + inkscape:connector-curvature="0" /> + id="id-50854e71-ea4a-4408-8a42-0a42672181cd" + inkscape:connector-curvature="0" /> + id="id-4c63a7a2-fdb9-4c41-a695-eed389c3340d" + inkscape:connector-curvature="0" /> + id="id-9facce88-47f2-48e6-a536-57200ef66108" + inkscape:connector-curvature="0" /> + id="id-859bdf67-1bed-406e-9f5a-9802afb90c5f" + inkscape:connector-curvature="0" /> + id="id-905b560d-673e-4c8d-bf8d-3bc73970c0c8" + inkscape:connector-curvature="0" /> + id="id-e7ba9ba7-acda-41a9-b4a5-b4b1b872cf74" + inkscape:connector-curvature="0" /> + id="id-5ae13fc9-4e82-4e15-a8b0-56707cc88593" + inkscape:connector-curvature="0" /> + id="id-e3c1ee93-8841-4e49-b65f-df5c7d596b13" + inkscape:connector-curvature="0" /> + id="id-c2f55178-5e40-4cc8-a3bc-85084b2d353d" + inkscape:connector-curvature="0" /> + id="id-5340d0b4-74aa-45bb-a242-21750b50d59c" + inkscape:connector-curvature="0" /> + id="id-706e166a-3f5b-4e79-b7d3-974d207f1f39" + inkscape:connector-curvature="0" /> + id="id-5b34d10e-88fe-49e1-94e3-18e03a4f3b38" + inkscape:connector-curvature="0" /> + id="id-6932ccaa-9730-419f-aa2d-9e200f266ddb" + inkscape:connector-curvature="0" /> + id="id-d8aa7c54-3595-495d-a7c8-4748c40dcefa" + inkscape:connector-curvature="0" /> + id="id-752627ab-f4ef-4e68-87b6-45a06e942862" + inkscape:connector-curvature="0" /> @@ -17060,7 +22601,8 @@ + id="id-1a4f5e8a-aa9d-43eb-9a8f-837b03df4dbc" + inkscape:connector-curvature="0" /> + id="id-078d9452-a893-4636-b4ab-fae9ffefbfe9" + inkscape:connector-curvature="0" /> + id="id-5077e53f-0b36-44e0-9669-80a471aa52d7" + inkscape:connector-curvature="0" /> + id="id-ba5e3995-aea5-453c-ac27-ce060758f151" + inkscape:connector-curvature="0" /> + id="id-097560c0-e3c0-46f0-ae72-1c979b92f4ce" + inkscape:connector-curvature="0" /> + id="id-65db38c5-fe0e-4c43-b7a6-03f312f69cd7" + inkscape:connector-curvature="0" /> + id="id-9afcf542-ac80-483c-84de-ee5967b3fd5b" + inkscape:connector-curvature="0" /> + id="id-3d2cc223-21a5-4bff-a92f-7431012c942e" + inkscape:connector-curvature="0" /> + id="id-8c50f327-53c8-4fed-a8fe-f1e511e8069a" + inkscape:connector-curvature="0" /> + id="id-f9471415-e449-423d-83cb-29a97e4bd6d6" + inkscape:connector-curvature="0" /> + id="id-acdd2547-a70b-4b8d-bb35-a15d38e6b810" + inkscape:connector-curvature="0" /> + id="id-87008365-c838-4c42-9c5a-c92fc464c0d6" + inkscape:connector-curvature="0" /> + id="id-dc65011c-dbf4-43e4-8a3c-d202a8f2028e" + inkscape:connector-curvature="0" /> + id="id-e62c1674-0659-4324-b8e1-0a9b92a312da" + inkscape:connector-curvature="0" /> + id="id-515c2d7d-6623-4c59-bb1f-33eb8f0ac8ba" + inkscape:connector-curvature="0" /> + id="id-c1985916-4e69-473a-a084-ec6e2169ae49" + inkscape:connector-curvature="0" /> + id="id-acc52b6c-4f0d-4687-be13-a757d82fba1d" + inkscape:connector-curvature="0" /> + id="id-4d750828-e9a9-43b2-9ea3-23354aa3ef51" + inkscape:connector-curvature="0" /> + id="id-ca47502d-b366-4e95-80f6-4e475b44a698" + inkscape:connector-curvature="0" /> + id="id-712f78c8-d549-477c-9484-4613f0dd015c" + inkscape:connector-curvature="0" /> + id="id-ff08ec0d-818f-464a-832d-c71bc54793bf" + inkscape:connector-curvature="0" /> + id="id-2e735abd-50c8-42d8-82d5-0ec9df8d893b" + inkscape:connector-curvature="0" /> + id="id-7d04de8a-be70-46c2-a657-d986f62d62c9" + inkscape:connector-curvature="0" /> + id="id-3bf33c86-1e74-48b6-8b8c-e07ec56abe90" + inkscape:connector-curvature="0" /> + id="id-950338fc-ceac-457e-9512-29838ad2723d" + inkscape:connector-curvature="0" /> + id="id-0da50f4b-da3b-464f-a163-528f4fe01750" + inkscape:connector-curvature="0" /> + id="id-81f4c931-692c-48bf-9ea5-7ac3acf0c23e" + inkscape:connector-curvature="0" /> + id="id-15d39ab8-1fa8-41f3-9067-b8785a491eb2" + inkscape:connector-curvature="0" /> + id="id-de5c2f1b-fe93-46a1-aa75-705e071c0df7" + inkscape:connector-curvature="0" /> + id="id-00e85240-7f01-45ed-96e6-08dc9fd8c086" + inkscape:connector-curvature="0" /> + id="id-98c5935e-eeca-422f-b13c-b06bc0082bcd" + inkscape:connector-curvature="0" /> + id="id-4b77a1b4-130f-43f4-989c-9a225ac9ab7c" + inkscape:connector-curvature="0" /> + id="id-80a82135-0fa4-4c24-a0f9-689c6544f905" + inkscape:connector-curvature="0" /> + id="id-e9110e39-1fa1-4a43-a46b-51f4f4bd3cd2" + inkscape:connector-curvature="0" /> + id="id-46729b59-4c99-4d24-8167-e022ff30daf5" + inkscape:connector-curvature="0" /> + id="id-945e42bf-e61a-47d3-b2ae-7e5c24cbc76b" + inkscape:connector-curvature="0" /> + id="id-66a63928-bcd0-4840-b322-aab3e9755c2b" + inkscape:connector-curvature="0" /> + id="id-b713bfbf-0bfe-4fbc-8341-b2ad78db9152" + inkscape:connector-curvature="0" /> + id="id-6120e42f-44bd-423e-9790-c3c46c6f7cef" + inkscape:connector-curvature="0" /> + id="id-4f053ccb-ca89-4822-a907-d6830407f380" + inkscape:connector-curvature="0" /> + id="id-7aef2ff2-fa1a-47f9-832a-02ed18a55722" + inkscape:connector-curvature="0" /> + id="id-3c9e65ce-fc2d-4702-810b-2107799de3b8" + inkscape:connector-curvature="0" /> + id="id-1968994e-a327-49ea-bbe4-613ad43510f7" + inkscape:connector-curvature="0" /> + id="id-61d4c6f5-883b-4023-bbd3-7946a3f993ff" + inkscape:connector-curvature="0" /> + id="id-49921832-da62-433a-bd81-6d1dfcfcb27f" + inkscape:connector-curvature="0" /> + id="id-aef19b41-465d-4e3f-ae8c-8dab9da218f9" + inkscape:connector-curvature="0" /> + id="id-c1fa89a9-fbec-492d-bc76-75657edcc2d0" + inkscape:connector-curvature="0" /> + id="id-aca27830-12dc-4ba9-9363-029a97e9c101" + inkscape:connector-curvature="0" /> + id="id-42f6bf64-a79a-4d4c-805a-b6675b92d80c" + inkscape:connector-curvature="0" /> + id="id-6758ce29-8ced-44c9-bbc6-66a16c4c1e85" + inkscape:connector-curvature="0" /> + id="id-75ac2fd8-5145-4712-a306-7ddbe5c6034c" + inkscape:connector-curvature="0" /> + id="id-0539c0fe-91ca-407a-975f-fc97eda40b06" + inkscape:connector-curvature="0" /> + id="id-197c70df-47ac-45e1-8046-222f05d42b12" + inkscape:connector-curvature="0" /> + id="id-45276555-d6a2-41d4-b62d-094345739255" + inkscape:connector-curvature="0" /> + id="id-dd441bed-93b2-40ec-984f-30a9a2cc8d7f" + inkscape:connector-curvature="0" /> + id="id-ae2ce7fe-f2c1-4955-ae6c-ee9e7558e069" + inkscape:connector-curvature="0" /> + id="id-919321be-1969-4571-9799-6d23d69ac348" + inkscape:connector-curvature="0" /> + id="id-71f4f205-b058-4ea2-8a5e-3958db5f005f" + inkscape:connector-curvature="0" /> + id="id-97cb1649-2bc9-4942-99e9-dd24c5b66873" + inkscape:connector-curvature="0" /> + id="id-b56d66b5-a5fd-49d5-a8fc-6319a532248e" + inkscape:connector-curvature="0" /> + id="id-4eb12c89-86f4-4265-bbaf-6cd7eadeed80" + inkscape:connector-curvature="0" /> + id="id-3175b6b2-9608-4d2f-9fa2-66c544b7a0e5" + inkscape:connector-curvature="0" /> + id="id-5b02ef85-d84b-4dbe-ba43-e80f96779f34" + inkscape:connector-curvature="0" /> + id="id-c815e89b-3c95-40f4-946e-6510de37506a" + inkscape:connector-curvature="0" /> + id="id-ca7f1d49-d108-4b7d-806e-442f3ba6c3d8" + inkscape:connector-curvature="0" /> + id="id-6f9351c2-498d-41e3-b76b-37ffe03c8b40" + inkscape:connector-curvature="0" /> + id="id-3b35a540-9b18-4fd3-bcf5-8ab4a46be0ec" + inkscape:connector-curvature="0" /> + id="id-b0236c4f-2dfd-43f4-b916-de8502ba41d0" + inkscape:connector-curvature="0" /> + id="id-aef6dde2-52e6-4e28-b086-a2d85f26ee3f" + inkscape:connector-curvature="0" /> + id="id-3ddfbb08-d662-41e8-a131-7eb2eac018ec" + inkscape:connector-curvature="0" /> + id="id-df9a30af-8b0f-4d71-910c-e9d38e96261d" + inkscape:connector-curvature="0" /> + id="id-05faa8c5-b2cd-4184-82d9-c2fd566d9b49" + inkscape:connector-curvature="0" /> + id="id-0fdd99de-b3e6-4863-a38d-93de1e836f5b" + inkscape:connector-curvature="0" /> @@ -17764,466 +23378,580 @@ ns10:pdfconverter="inkscape" ns10:texconverter="pdflatex" ns10:version="1.0.1" - transform="matrix(0.352778,0,0,0.352778,104.838,144.985)"> + transform="matrix(0.352778,0,0,0.352778,-91.48283,142.33915)"> + id="id-25033946-31f0-4d81-8900-a9b164ac9141" + style="overflow:visible"> + id="id-67fb3fc0-e827-4ca3-bacb-16089b0995d9" + inkscape:connector-curvature="0" /> + id="id-8fe9f9cb-03eb-4e84-9b00-646d7620d7dd" + style="overflow:visible"> + id="id-eaaf223d-80d9-4618-bd64-cef1093a4696" + inkscape:connector-curvature="0" /> + id="id-e582c64a-f42e-4fec-bd07-fe2a5ab4618e" + style="overflow:visible"> + id="id-38cbce34-d5a4-40e9-afdb-2484e42a3fc6" + inkscape:connector-curvature="0" /> + id="id-956b4461-9f7a-4193-a594-da24ab87e15b" + style="overflow:visible"> + id="id-a743c385-ad21-43fd-9a74-c553f78ecdca" + inkscape:connector-curvature="0" /> + id="id-537439a5-1a98-4933-bd43-0634789e82e1" + style="overflow:visible"> + id="id-67ce1451-b2be-41c9-84b0-6d1539300898" + inkscape:connector-curvature="0" /> + id="id-537a63d7-6db3-4923-b054-d64119360c2e" + style="overflow:visible"> + id="id-792f08ac-71c3-4478-90a4-8ff901884b2d" + inkscape:connector-curvature="0" /> + id="id-5aa87a0c-c41b-4918-8e7d-e92fe7d24d0b" + style="overflow:visible"> + id="id-5c4b34db-7dcd-4665-9e58-2c3817156f25" + inkscape:connector-curvature="0" /> + id="id-b838f0f3-51d7-46d8-9627-d6f1d9b0891d" + style="overflow:visible"> + id="id-0c7e29b0-e92c-4722-a065-785e8446105e" + inkscape:connector-curvature="0" /> + id="id-8a3a6c10-2e9d-49e2-b2ee-a6fcdf183e19" + style="overflow:visible"> + id="id-fda54c15-c5ce-4ce6-b812-2053ef4bae46" + inkscape:connector-curvature="0" /> + id="id-f91047c8-cfc7-425b-a3be-a87175bedb3e" + style="overflow:visible"> + id="id-4db67080-bcad-453c-bc75-e172e110b0eb" + inkscape:connector-curvature="0" /> + id="id-28e20f96-1b56-452d-b1e4-6dfd8a238df4" + style="overflow:visible"> + id="id-2bf38fc7-77d4-4454-a537-38d23e66f820" + inkscape:connector-curvature="0" /> + id="id-16979672-7b3e-41c2-bdb7-06a7f7b9d43e" + style="overflow:visible"> + id="id-42341c04-9daa-4448-b3af-88c8d76c99ae" + inkscape:connector-curvature="0" /> + id="id-d0276b1c-ad83-4126-9714-e1427158069f" + style="overflow:visible"> + id="id-ded65d04-66ef-4240-b00d-967a1ade611c" + inkscape:connector-curvature="0" /> + id="id-cf7a194f-0bd7-4687-aa33-ba5a50aca3b2" + style="overflow:visible"> + id="id-b2f51f0c-8672-4b65-84cd-9387d0e1a02e" + inkscape:connector-curvature="0" /> + id="id-ae937d98-4632-4150-ac55-03407f124296" + style="overflow:visible"> + id="id-9303b732-ef0b-4f7e-a2d2-5bff91eef6e6" + inkscape:connector-curvature="0" /> + id="id-fd8c5801-7c3e-44a9-9328-563425bdd322" + style="overflow:visible"> + id="id-30d1ec24-2c1a-40a7-ab2b-15d58b459468" + inkscape:connector-curvature="0" /> + id="id-03537fad-2099-46af-9ab0-2c3fd0397e4b" + style="overflow:visible"> + id="id-1d7f8b9e-5c91-42cb-b394-b0a382e590ab" + inkscape:connector-curvature="0" /> + id="id-ff84af27-c470-46b8-9633-8e7f75c61a0f" + style="overflow:visible"> + id="id-a4bb3c5a-23b0-4299-b0cf-307daa80f371" + inkscape:connector-curvature="0" /> + id="id-8f3b8007-d283-421f-aa48-3f2fc25072c6" + style="overflow:visible"> + id="id-77245cba-ad49-4432-b0ba-fdf76a78f094" + inkscape:connector-curvature="0" /> + id="id-313d0088-6b18-4d4a-9f21-6d1b5a0cf35a" + style="overflow:visible"> + id="id-34e9db84-d013-44b5-930f-10feab075d1b" + inkscape:connector-curvature="0" /> + id="id-83b1641f-1560-4a9d-846c-ee73a5f4648d" + style="overflow:visible"> + id="id-021b2587-8419-44eb-8577-d1e76704fe78" + inkscape:connector-curvature="0" /> + id="id-34ed1925-eb57-454d-8b44-da8732c8125e" + style="overflow:visible"> + id="id-e8393790-983e-4ea2-a0a4-c6707ba94077" + inkscape:connector-curvature="0" /> + id="id-b582dca2-7742-4c22-9cf6-67d7a8fc30eb" + style="overflow:visible"> + id="id-6aa052f2-2ddf-4793-a356-14018802062e" + inkscape:connector-curvature="0" /> + id="id-fbafaf9e-e82c-44ce-b31e-fde0fcaf5894" + style="overflow:visible"> + id="id-e279077e-922e-475a-a549-182cf4240d9e" + inkscape:connector-curvature="0" /> + id="id-a775fb7f-6280-488c-b097-c20c4ed50274" + style="overflow:visible"> + id="id-2a132e20-de11-41f9-a53d-5c494956e370" + inkscape:connector-curvature="0" /> + id="id-674e4fca-04c5-4c0f-be69-19e313b3e0e4" + style="overflow:visible"> + id="id-2fa0e6a8-a93e-4a8b-b8de-05a2f2e95542" + inkscape:connector-curvature="0" /> + id="id-c3905136-1da3-4666-b578-54e163ab5e63" + style="overflow:visible"> + id="id-2de80991-e041-46ee-bc92-2807e2ee5ffd" + inkscape:connector-curvature="0" /> + id="id-ae92f8a4-62dc-40ad-b72e-f9e0d54862bc" + style="overflow:visible"> + id="id-7ce62de2-bf40-4d0d-87ee-9202f09b3cdf" + inkscape:connector-curvature="0" /> + id="id-38260ba7-a8f9-48bd-9b84-53f62f90bacb" + style="overflow:visible"> + id="id-a4c4328b-75ed-46d7-a984-18dc1d6abf92" + inkscape:connector-curvature="0" /> + id="id-9a9bbc35-b5cc-4146-8611-13b300e0f8e3" + style="overflow:visible"> + id="id-e2642b70-dc37-4a4a-910a-55dcb0ab2ac4" + inkscape:connector-curvature="0" /> + id="id-4d8db689-830b-46e6-b673-35e37e992bbc" + style="overflow:visible"> + id="id-719808fd-65a5-4152-9c77-51904f144823" + inkscape:connector-curvature="0" /> + id="id-981aa35b-3360-4dfb-9e88-8b2e86aa7b65" + style="overflow:visible"> + id="id-a8543a3c-ce74-4e6b-b69c-c5873232ff7c" + inkscape:connector-curvature="0" /> + id="id-0bbd4969-7bd6-44eb-a9aa-68310fc67e77" + style="overflow:visible"> + id="id-4168d2b3-08a2-4f5b-a6ed-aa6b7473921d" + inkscape:connector-curvature="0" /> + id="id-bd22697a-d39e-4027-bea9-cb429b185000" + style="overflow:visible"> + id="id-fe0865e1-2b51-4943-800f-6ec86cfb35b7" + inkscape:connector-curvature="0" /> + id="id-286e737d-2778-42f9-94cd-fd786aaca2e4" + style="overflow:visible"> + id="id-89a60ff8-04ef-4643-8ece-fdef3dfd4ece" + inkscape:connector-curvature="0" /> + id="id-ba039891-2105-4721-addf-5f624ddb45c4" + style="overflow:visible"> + id="id-d7cb6eef-5699-4900-93c0-08839f336f94" + inkscape:connector-curvature="0" /> + id="id-d4ce8532-6be1-4351-b0fa-63d508f4bdac" + style="overflow:visible"> + id="id-a425343e-2513-4f72-bdcd-f92a69177bf0" + inkscape:connector-curvature="0" /> + id="id-30e8341e-9e43-494e-8830-eff1e7fbe0bb" + style="overflow:visible"> + id="id-142f0c0c-5e0f-40cd-98ef-590c9837720c" + inkscape:connector-curvature="0" /> + id="id-e272fd45-36d2-40df-9950-8f1d844c9d7a" + style="overflow:visible"> + id="id-fd77e374-ad2c-4de0-b9a7-7bd42bc7c5d7" + inkscape:connector-curvature="0" /> + id="id-9c843153-5a18-48eb-a6e8-ba0f660bbab8" + style="overflow:visible"> + id="id-9dbc27cc-a69b-466e-8cac-3b234f0ec225" + inkscape:connector-curvature="0" /> + id="id-61767a6a-2ee8-4cfc-a32a-90d192419704" + style="overflow:visible"> + id="id-ea330810-da1c-44f7-9413-9562f9792ca9" + inkscape:connector-curvature="0" /> + id="id-94c637d9-1f9d-472e-a60b-9f7626c5d772" + style="overflow:visible"> + id="id-689dadcd-bb61-4d86-96d6-bc22018c6c68" + inkscape:connector-curvature="0" /> + id="id-0ba8fe5d-77c4-4e3b-8b72-1c6b58227b06" + style="overflow:visible"> + id="id-70f50031-d02b-47f3-8f7e-c9ef341eeadc" + inkscape:connector-curvature="0" /> + id="id-59bc3606-b868-4066-bced-5a3b41eb5d17" + style="overflow:visible"> + id="id-d48a7266-ac7a-4a26-bf41-c06069d947cc" + inkscape:connector-curvature="0" /> + id="id-8391c626-3dc5-4637-8d46-fbfe36907622" + style="overflow:visible"> + id="id-1fef4326-5a57-4b4f-912a-ed3709798d87" + inkscape:connector-curvature="0" /> + id="id-eb4af17f-1e17-422f-aee2-b407c3ed6eda" + style="overflow:visible"> + id="id-2f089b17-eb7a-460d-a80e-e70455096fe5" + inkscape:connector-curvature="0" /> + id="id-575709f7-884b-4996-9ca1-39c3ccbcc3aa" + style="overflow:visible"> + id="id-aa216856-42b8-4405-86d3-c15787461714" + inkscape:connector-curvature="0" /> + id="id-d83ba645-557b-481b-b836-589086abebd4" + style="overflow:visible"> + id="id-f6e1d635-3fb2-43c1-af5a-c8d5c8ea591f" + inkscape:connector-curvature="0" /> + id="id-1d5e5a87-c561-4311-ad53-39b1be108e1e" + style="overflow:visible"> + id="id-583465d8-fa4b-41df-8b51-024ac3d381ca" + inkscape:connector-curvature="0" /> + id="id-e7ff930b-4270-4033-af97-9904f6abae56" + style="overflow:visible"> + id="id-a9a8e73a-ea1e-483a-90fb-e64a4212bf9d" + inkscape:connector-curvature="0" /> + id="id-c1aea53e-e4da-44e2-b2f1-92f6c621fbca" + style="overflow:visible"> + id="id-16f1c5c2-4859-43e3-857f-f8221d37c83a" + inkscape:connector-curvature="0" /> + id="id-9373be9d-b05a-41ac-b7b3-b880b0e80d51" + style="overflow:visible"> + id="id-4f5fa909-2611-47d8-9b95-7f401090638e" + inkscape:connector-curvature="0" /> + id="id-952986d3-d72a-44ac-bbf8-7207927ee9b3" + style="overflow:visible"> + id="id-28d1da7e-180a-4ffa-b6cb-90cc75c74348" + inkscape:connector-curvature="0" /> + id="id-7a5a7b17-2fe7-470f-838d-8b772d39d5fc" + style="overflow:visible"> + id="id-b8a700c5-e040-40c5-b2d3-0eeece65dcfa" + inkscape:connector-curvature="0" /> + id="id-a9bfd71d-eacd-41b5-b698-c17a8a4ba7dd" + style="overflow:visible"> + id="id-acb0230a-f081-4ac3-9adc-b9acc0d899ed" + inkscape:connector-curvature="0" /> + id="id-56726b97-3bf8-441f-84ca-4f05bfa7c39c" + style="overflow:visible"> + id="id-1efbdbb6-bb5f-4a72-ac82-250995ddc547" + inkscape:connector-curvature="0" /> + id="id-85aa0b55-6bb4-4d3f-83eb-86e724303e46" + style="overflow:visible"> + id="id-89eae0fd-960e-4e2d-a7a2-2a2cae95825d" + inkscape:connector-curvature="0" /> @@ -18239,7 +23967,8 @@ + id="id-3b3e9393-9f7d-4f60-ab37-91ff7d2348bd" + inkscape:connector-curvature="0" /> + id="id-ed9bb6c2-dc91-4054-aef4-3f4e54c4d792" + inkscape:connector-curvature="0" /> + id="id-698d1128-5665-4d3d-9e90-5a8300203a25" + inkscape:connector-curvature="0" /> + id="id-a814f555-de62-4b25-b1a5-0c64ad0773a7" + inkscape:connector-curvature="0" /> + id="id-a488ae62-51ec-47fb-b4b1-c050acea2902" + inkscape:connector-curvature="0" /> + id="id-337a0b7f-1afc-4607-b52a-ff3f3d6d7345" + inkscape:connector-curvature="0" /> + id="id-485188b4-4eb4-453e-a1eb-d58dd89fd2ca" + inkscape:connector-curvature="0" /> + id="id-e461d06c-1dca-49c7-bfb4-025c6392da26" + inkscape:connector-curvature="0" /> + id="id-1b5a174a-b53a-4136-af64-006e97071763" + inkscape:connector-curvature="0" /> + id="id-98e1185e-fd84-4e9c-9268-fca9a970cc21" + inkscape:connector-curvature="0" /> + id="id-6d14e290-04f5-4263-8c12-908cac565f41" + inkscape:connector-curvature="0" /> + id="id-3f4076d5-d7d5-46b4-a83e-e3a4255b99bb" + inkscape:connector-curvature="0" /> + id="id-de68ff1f-f023-47e0-bd6f-9268cb9011e4" + inkscape:connector-curvature="0" /> + id="id-bdce3878-932a-40b3-a1b6-b203e9e316f6" + inkscape:connector-curvature="0" /> + id="id-cebb0f6c-e68b-4799-a025-ea15a7a59b01" + inkscape:connector-curvature="0" /> + id="id-e4f79256-f7c7-4863-a212-25691cbba218" + inkscape:connector-curvature="0" /> + id="id-a1d8208b-ff67-4318-885c-65db97f46b4e" + inkscape:connector-curvature="0" /> + id="id-41b0c706-5c87-47e1-bf53-0f49c0dbbc66" + inkscape:connector-curvature="0" /> + id="id-c238342f-cad9-4bce-964e-85fe8006111d" + inkscape:connector-curvature="0" /> + id="id-7cadcb13-5d08-4dc9-a37d-bc48c8cf021c" + inkscape:connector-curvature="0" /> + id="id-5d69271b-7486-4fa7-bd9e-01d7ba7bc8f1" + inkscape:connector-curvature="0" /> + id="id-354e7eb5-65de-4d5d-9a3a-6c29a2ccc970" + inkscape:connector-curvature="0" /> + id="id-64bde9e4-36a5-404e-9041-2fa9d2d01364" + inkscape:connector-curvature="0" /> + id="id-5e4f243a-c1a2-45ea-abe7-6111db166e8e" + inkscape:connector-curvature="0" /> + id="id-f3f7f476-1a8f-49fa-b793-5f8d2819a4d0" + inkscape:connector-curvature="0" /> + id="id-c8eb22bd-30d9-4d00-8d02-5d3761d15cc1" + inkscape:connector-curvature="0" /> + id="id-061422e4-58ce-4b9c-affa-a2855331bd00" + inkscape:connector-curvature="0" /> + id="id-4afab655-f98c-4fc3-9ad1-afea96266083" + inkscape:connector-curvature="0" /> + id="id-83894088-9b41-4358-9872-aa51d2c3e8bc" + inkscape:connector-curvature="0" /> + id="id-805b32c9-9241-4e80-bf35-bc5d87706a95" + inkscape:connector-curvature="0" /> + id="id-28606d45-cdcd-4cef-95f5-e10de6c71518" + inkscape:connector-curvature="0" /> + id="id-1e47acab-c5ab-48e6-89bf-93914ede0295" + inkscape:connector-curvature="0" /> + id="id-7c436451-9998-47c0-a0ce-e4bc7b60e0f9" + inkscape:connector-curvature="0" /> + id="id-92354177-58f3-483e-a75b-7f3c3e23bf9c" + inkscape:connector-curvature="0" /> + id="id-951776cb-2e90-469a-b2c3-20c246e24b37" + inkscape:connector-curvature="0" /> + id="id-6800a5ea-a8d4-4881-bfb8-c14a14d95b0d" + inkscape:connector-curvature="0" /> + id="id-a79b4c11-fb23-4008-8c3f-d11b92095d15" + inkscape:connector-curvature="0" /> + id="id-714cc7d5-4bcc-42cb-a3b0-f3b7202d462c" + inkscape:connector-curvature="0" /> + id="id-2a763160-2dc7-4704-8ee3-290437e9554d" + inkscape:connector-curvature="0" /> + id="id-e0a86bce-4429-43cb-ada9-90214fe12cc3" + inkscape:connector-curvature="0" /> + id="id-1cbbb5b2-1059-4478-a78d-468e825851ec" + inkscape:connector-curvature="0" /> + id="id-65b6ab4c-de11-4270-9b7d-622e6de3413f" + inkscape:connector-curvature="0" /> + id="id-6e493986-900c-4e17-86c5-6de3869f1e31" + inkscape:connector-curvature="0" /> + id="id-f939dc51-c49a-4f99-a23e-0ccf024fb5ec" + inkscape:connector-curvature="0" /> + id="id-f3a1beee-f752-4afd-b149-d93503d057c3" + inkscape:connector-curvature="0" /> + id="id-800ada82-d9e5-4161-be3f-0ed0f0d60928" + inkscape:connector-curvature="0" /> + id="id-96077d76-a248-414c-b5ac-9f6412299a87" + inkscape:connector-curvature="0" /> + id="id-4f853244-e1ce-450d-a6a8-f2b4c6bf5f51" + inkscape:connector-curvature="0" /> + id="id-556771b8-75a2-40a7-ab90-01a5172051a2" + inkscape:connector-curvature="0" /> + id="id-d75b4cd6-7eb6-44be-94b4-96bac7bcd910" + inkscape:connector-curvature="0" /> + id="id-53d5c6bf-cb0d-420e-9fff-71a4a35ef856" + inkscape:connector-curvature="0" /> + id="id-a45a8401-9a54-4579-84e2-a9faec47e5a4" + inkscape:connector-curvature="0" /> + id="id-2ffb47df-18a6-4b09-aefc-4be85239bb4f" + inkscape:connector-curvature="0" /> + id="id-7ceb423c-6aa9-4c25-88b8-80a37be76071" + inkscape:connector-curvature="0" /> + id="id-4b1b56dd-44df-4cf7-98d7-075d24b317de" + inkscape:connector-curvature="0" /> + id="id-fe10867a-47e3-4706-a9e3-9343ed274185" + inkscape:connector-curvature="0" /> + id="id-73131b92-8762-4ea0-8668-b6dbde6ae95a" + inkscape:connector-curvature="0" /> + id="id-df30c522-cdbd-46a7-b2a6-d301992b988c" + inkscape:connector-curvature="0" /> + id="id-0d480ce6-ccf6-4e7e-b242-3cb61acfcad4" + inkscape:connector-curvature="0" /> + id="id-6af62015-a759-46a7-99f9-8b7af96af628" + inkscape:connector-curvature="0" /> + id="id-c996593b-4470-4fd5-857b-001f74aa9460" + inkscape:connector-curvature="0" /> + id="id-4b214153-e2fc-4d24-be0d-df9e9f9cc818" + inkscape:connector-curvature="0" /> + id="id-10317393-7834-4a41-8fba-436756c4df20" + inkscape:connector-curvature="0" /> + id="id-8ae33eef-1594-4617-b87b-f9a2ac07bedf" + inkscape:connector-curvature="0" /> + id="id-a832da54-6fc7-4572-9ce0-d494eb80b00e" + inkscape:connector-curvature="0" /> + id="id-246c5581-638a-45c2-aa29-ed4a86e5a4b6" + inkscape:connector-curvature="0" /> + id="id-1098bcff-ffdc-49d7-aee6-6f661c9257f3" + inkscape:connector-curvature="0" /> + id="id-bfa9dd12-3fda-459c-9732-600c833155c4" + inkscape:connector-curvature="0" /> + id="id-2564fc85-f38a-486d-9afb-5d8fed15a275" + inkscape:connector-curvature="0" /> + id="id-7ecc5045-c035-409b-97c9-34b595722b1d" + inkscape:connector-curvature="0" /> + id="id-d4ceca41-7e6e-4fc3-83a9-0f8c27197df0" + inkscape:connector-curvature="0" /> + id="id-f4d0100c-92dd-4bf8-b909-edfaefa14adb" + inkscape:connector-curvature="0" /> + id="id-05f0ec0f-6c01-49a1-80a7-1082001bb06b" + inkscape:connector-curvature="0" /> + id="id-93439d1d-9d9a-4957-bdf2-78102707192c" + inkscape:connector-curvature="0" /> + id="id-38984e2b-b78e-43c1-884a-35827647ff04" + inkscape:connector-curvature="0" /> + id="id-293e0908-5d20-4cc9-858d-f10f5ee3eea4" + inkscape:connector-curvature="0" /> + id="id-c85bf31e-d5db-427b-b84e-63b5d6d13ade" + inkscape:connector-curvature="0" /> + id="id-9c7b31a7-5f6e-47e4-be51-eaa837efb030" + inkscape:connector-curvature="0" /> + id="id-0ebd7681-1065-4e83-baf2-023e9dea9c8a" + inkscape:connector-curvature="0" /> + id="id-92b573e0-f947-4d91-84a6-c3300291d1ce" + inkscape:connector-curvature="0" /> + id="id-a81f605d-6ae1-46c3-865e-14bb0efe0f3b" + inkscape:connector-curvature="0" /> + id="id-79a71104-07ea-4e9a-8220-f4034fd2e129" + inkscape:connector-curvature="0" /> + id="id-22010478-1ae9-4f68-83eb-a3b773aaa957" + inkscape:connector-curvature="0" /> + id="id-54d1829b-cc55-4821-93a5-a3c7bf5ce089" + inkscape:connector-curvature="0" /> + id="id-e2a745d3-d333-4f4a-917a-bd141f4f187e" + inkscape:connector-curvature="0" /> + id="id-b073205e-b6d3-4b46-bb89-252ea015f243" + inkscape:connector-curvature="0" /> + id="id-1450b7ca-1dd3-4d9d-a3d0-6345a72c544b" + inkscape:connector-curvature="0" /> + id="id-64d43efb-7ac1-4da8-aa5e-7bb4cd01fcd7" + inkscape:connector-curvature="0" /> + id="id-f0cdb638-bf2b-40a8-9928-193613984294" + inkscape:connector-curvature="0" /> + id="id-203e7f06-ec3b-41da-84b9-672272f8a763" + inkscape:connector-curvature="0" /> + id="id-f77dc8ec-db78-485a-bfc7-28b8d463c694" + inkscape:connector-curvature="0" /> + id="id-b239bd18-321d-4cc7-beee-4f01c7decab1" + inkscape:connector-curvature="0" /> + id="id-cd0b0c60-d371-412e-be61-90284fe8c7ad" + inkscape:connector-curvature="0" /> + id="id-fd487f85-d34e-4551-9456-f26084f7971c" + inkscape:connector-curvature="0" /> + id="id-ce138469-5aad-4493-b7d4-0c16a84d3dd5" + inkscape:connector-curvature="0" /> + id="id-7d76cd66-1efb-467d-bdfd-1e90532a1106" + inkscape:connector-curvature="0" /> + id="id-2bedf17e-ba7e-4d50-99a8-30b21bed8d59" + inkscape:connector-curvature="0" /> + id="id-539898e9-b781-4f8f-b42a-c12736d70442" + inkscape:connector-curvature="0" /> + id="id-a41e2319-86c0-4f04-8b48-05782715453d" + inkscape:connector-curvature="0" /> + id="id-a2b27847-8008-4a33-8510-f4d90cc78d84" + inkscape:connector-curvature="0" /> + id="id-6bf0de6f-b888-4f33-9bae-14464f165635" + inkscape:connector-curvature="0" /> + id="id-0b1a77a8-c704-4fd6-82c3-0a4dc3659230" + inkscape:connector-curvature="0" /> + id="id-ae825768-1767-4c5b-9dfc-a87683b9ca96" + inkscape:connector-curvature="0" /> + id="id-7875891a-6279-453b-8884-fc54958f17b8" + inkscape:connector-curvature="0" /> + id="id-e2b20630-a4cb-4fbd-a006-52fc87850f7b" + inkscape:connector-curvature="0" /> + id="id-642f6ffa-41eb-4cc5-bb88-f6a8bd8130a6" + inkscape:connector-curvature="0" /> + id="id-95b097f1-3260-4bfd-b1a7-190efaaf1330" + inkscape:connector-curvature="0" /> + id="id-ba483037-9c35-4b23-9824-cace27d7ec26" + inkscape:connector-curvature="0" /> + id="id-db616afd-810e-4dc9-b361-56c6d700d15d" + inkscape:connector-curvature="0" /> + id="id-cb9d25ae-93e9-4a3f-80cd-7963d18b540c" + inkscape:connector-curvature="0" /> + id="id-5654f222-f4a7-4894-bdeb-147ddc9a58bd" + inkscape:connector-curvature="0" /> + id="id-b42374d7-b3ad-4777-ad51-5c8433dd2577" + inkscape:connector-curvature="0" /> + id="id-1cf6c033-306f-4f00-a0e2-c78c2df7cf43" + inkscape:connector-curvature="0" /> + id="id-96842c0e-6735-4d50-8506-823e18eb8ec8" + inkscape:connector-curvature="0" /> + id="id-c8387aca-07f2-403d-9640-b5bb866b17f4" + inkscape:connector-curvature="0" /> + id="id-198dfdf1-2d30-434e-957c-6311de522b51" + inkscape:connector-curvature="0" /> + id="id-f6bd4a8d-386a-47d1-adb5-673e07e68971" + inkscape:connector-curvature="0" /> + id="id-091335a9-ee02-4b5d-9744-8d66394760f3" + inkscape:connector-curvature="0" /> + id="id-9aa405ad-df5d-4a82-8cba-ed79147107c5" + inkscape:connector-curvature="0" /> + id="id-523a7163-7ab8-4d7e-9dc0-1157e16a6db0" + inkscape:connector-curvature="0" /> + id="id-3e1f2c03-56c0-4361-bcca-0d3024cf717c" + inkscape:connector-curvature="0" /> + id="id-3b2a2f34-c305-4a99-8219-d9da2c1ecdbf" + inkscape:connector-curvature="0" /> + id="id-10482b9a-4c51-4c2c-90bf-2c287fcd1c4c" + inkscape:connector-curvature="0" /> + id="id-2bccb626-5fe5-4f75-a96c-18ee1c61ee00" + inkscape:connector-curvature="0" /> + id="id-5b2dc047-1661-479d-8bea-2c4638936bb6" + inkscape:connector-curvature="0" /> + id="id-a830cdd2-6d7e-43cd-b7bf-d829e8a31b9d" + inkscape:connector-curvature="0" /> + id="id-9d0d418a-7aa4-455a-8066-c700a94dfb12" + inkscape:connector-curvature="0" /> + id="id-d3444af1-80df-4353-8e9a-ec9b3fbeed76" + inkscape:connector-curvature="0" /> + id="id-b9ed97c2-c700-4d6d-a3cf-7b5beb80d3fe" + inkscape:connector-curvature="0" /> + id="id-b12fd62f-4977-4f31-b0e5-da81b2ecc472" + inkscape:connector-curvature="0" /> + id="id-8f506779-8f6e-41eb-9ecb-7455bd28d35a" + inkscape:connector-curvature="0" /> + id="id-da500793-f6d6-47ec-904f-87e6e1090983" + inkscape:connector-curvature="0" /> + id="id-5bbec66c-f649-477f-8645-354986466eaa" + inkscape:connector-curvature="0" /> + id="id-585e9e4a-b655-4d18-a2d5-a4fdc2b7f8c4" + inkscape:connector-curvature="0" /> + id="id-2885316e-442d-483b-9a7d-78f481a118db" + inkscape:connector-curvature="0" /> + id="id-7fc3e56c-675d-4f16-9897-618db1b9888e" + inkscape:connector-curvature="0" /> + id="id-b509295f-4d2a-47c8-a6cc-6884d502be28" + inkscape:connector-curvature="0" /> + id="id-000053c7-12eb-4f25-aa8d-fb5dccb4dfcd" + inkscape:connector-curvature="0" /> + id="id-cf08e8a8-c7e3-48c2-8ed1-7f2d273515e8" + inkscape:connector-curvature="0" /> + id="id-e4758fbb-72b4-46bb-a987-beeb75ef6221" + inkscape:connector-curvature="0" /> + id="id-fb6cb178-48c0-4988-a067-ae46ab939312" + inkscape:connector-curvature="0" /> + id="id-a5c96c01-872b-44e6-95f4-21bdbf593e9d" + inkscape:connector-curvature="0" /> + id="id-e4dfbb06-04e0-4396-ac47-8fc88fe8909e" + inkscape:connector-curvature="0" /> + id="id-c8e40d2c-a9f3-4f14-a807-0730db7d3b14" + inkscape:connector-curvature="0" /> + id="id-163f20f8-52cf-4d22-ac28-f955d2ac33c0" + inkscape:connector-curvature="0" /> + id="id-454861a4-9d18-4baa-a3be-ce5c72bf47c9" + inkscape:connector-curvature="0" /> + id="id-e98039e5-76d1-482f-aa56-99ff2e1dfcad" + inkscape:connector-curvature="0" /> + id="id-9960a79e-0ff9-49cc-abaf-376c8b4a58f7" + inkscape:connector-curvature="0" /> + id="id-f4a6078f-a1d0-49eb-88b0-cb8ad002104a" + inkscape:connector-curvature="0" /> + id="id-7df2fa13-8ce8-4656-b1b9-b2c89f32ddfc" + inkscape:connector-curvature="0" /> + id="id-4f8d22c3-f066-4de1-92c4-a4beeb7d4fb1" + inkscape:connector-curvature="0" /> + id="id-937f45c4-845b-448f-adb9-cacc070ae39a" + inkscape:connector-curvature="0" /> + id="id-8191f094-00c9-4eb6-ae51-508707fa1e4d" + inkscape:connector-curvature="0" /> + id="id-7f6c5e13-21dd-455d-9801-e1f452345247" + inkscape:connector-curvature="0" /> + id="id-26ebad55-6e7e-4308-955c-ee2d9e472186" + inkscape:connector-curvature="0" /> + id="id-9c87afea-7a95-4b1d-bd22-2a0321f0f719" + inkscape:connector-curvature="0" /> + id="id-39d2c941-7823-497c-a150-f8ccf7a6979e" + inkscape:connector-curvature="0" /> + id="id-84bb4d63-edd0-4e34-9e4d-4b07e84dd856" + inkscape:connector-curvature="0" /> + id="id-254001c8-19e6-47a0-8687-fe80ef8d7772" + inkscape:connector-curvature="0" /> + id="id-d24f78f1-b35a-4b77-a132-43e0091cc3e3" + inkscape:connector-curvature="0" /> + id="id-2a901665-91df-4608-ac9e-23a02c289821" + inkscape:connector-curvature="0" /> + id="id-2b6404a1-614d-43c4-b1a2-b174d0925f5d" + inkscape:connector-curvature="0" /> + id="id-d6ef9ea7-9fc3-4376-905a-c05d460013eb" + inkscape:connector-curvature="0" /> + id="id-051d961c-3ea1-4425-908c-8df6d5e50cbe" + inkscape:connector-curvature="0" /> + id="id-96f964ef-a0c2-4668-b692-8e255d5638cb" + inkscape:connector-curvature="0" /> + id="id-8c789640-1712-495c-b221-43d087b71fc8" + inkscape:connector-curvature="0" /> + id="id-7e269996-8954-4794-932c-479f7fb48a4c" + inkscape:connector-curvature="0" /> + id="id-761a9918-a1a8-483d-9c52-4d92eea008e4" + inkscape:connector-curvature="0" /> + id="id-fa6c0fd1-db53-4dd1-a237-48ed51ff2dfc" + inkscape:connector-curvature="0" /> + id="id-8596af94-969b-4288-9e46-4fdf820d0c40" + inkscape:connector-curvature="0" /> + id="id-f206d001-d2b5-4851-bd89-65ac2cd93feb" + inkscape:connector-curvature="0" /> + id="id-a0e6a628-cdd9-4775-973b-9d405c453063" + inkscape:connector-curvature="0" /> + id="id-faf463e0-4c2e-489b-94fb-c0e79f5f5fb5" + inkscape:connector-curvature="0" /> + id="id-5d2e4666-cfa7-4529-afa3-652d93c13300" + inkscape:connector-curvature="0" /> + id="id-706fb835-45e1-4492-a10f-175fd08d5ebe" + inkscape:connector-curvature="0" /> + id="id-50783649-02ad-4b07-9b48-16ffda82a1b0" + inkscape:connector-curvature="0" /> + id="id-6e000c60-c1fe-4591-a25e-2c0dc4ceacb8" + inkscape:connector-curvature="0" /> + id="id-6e8bd34f-ddf6-44e8-ada3-c4176e6ce144" + inkscape:connector-curvature="0" /> + id="id-e8bf8391-32cd-47e2-8bc4-cd3656044948" + inkscape:connector-curvature="0" /> + id="id-42c5b690-c9b3-4719-87ba-bb25aed513f0" + inkscape:connector-curvature="0" /> + id="id-9e243e2e-8243-47ec-b997-078f7c4ef1fd" + inkscape:connector-curvature="0" /> + id="id-5bcf6baf-c472-4d5e-bb96-42e85604c2c6" + inkscape:connector-curvature="0" /> + id="id-ba298a96-4289-44f3-9828-879d75645a2d" + inkscape:connector-curvature="0" /> + id="id-abe7085d-a539-48cc-a410-9400a7cc40bf" + inkscape:connector-curvature="0" /> + id="id-55623bc1-0919-4590-b58b-efb95e12b14b" + inkscape:connector-curvature="0" /> + id="id-eb4d9987-684f-45cf-ab91-467b4f534213" + inkscape:connector-curvature="0" /> + id="id-dce441af-c4f8-44de-9105-f88ba1f6a107" + inkscape:connector-curvature="0" /> + id="id-09354d1d-24ab-4b60-a68c-e49e08d579dd" + inkscape:connector-curvature="0" /> + id="id-21684360-fca3-46e1-8a2f-5c62d77255a8" + inkscape:connector-curvature="0" /> + id="id-b86e48d1-df8b-4fa3-a56a-6ffe9708201b" + inkscape:connector-curvature="0" /> + id="id-25684d56-9d56-4181-af0b-38ce151d664b" + inkscape:connector-curvature="0" /> + id="id-1da7aa50-1091-4586-93c0-37c4ba9ce8b5" + inkscape:connector-curvature="0" /> + id="id-b70acbe5-06b8-42a4-9207-0555dab144e2" + inkscape:connector-curvature="0" /> + id="id-9f744f9b-602d-492a-919a-b92e499ac3d9" + inkscape:connector-curvature="0" /> + id="id-b0fc650e-d938-4662-9584-28a3f7cd0938" + inkscape:connector-curvature="0" /> + id="id-d3ec15cb-2a69-482f-9ade-be4ef2c9de3b" + inkscape:connector-curvature="0" /> + id="id-6ac37054-1ee8-4ee4-9a2c-199c2191bc99" + inkscape:connector-curvature="0" /> + id="id-158db0b2-058a-4b0f-8eff-d415e02b549b" + inkscape:connector-curvature="0" /> + id="id-d3abf955-5425-4c49-a372-38b1e80daafd" + inkscape:connector-curvature="0" /> + id="id-6733291f-4b28-4a3e-97aa-f3a4ae92bf3a" + inkscape:connector-curvature="0" /> + id="id-1ebf3180-b123-4f95-ab88-e64861f30333" + inkscape:connector-curvature="0" /> + id="id-8cd213a4-3476-4d08-85c6-ca5383ba8262" + inkscape:connector-curvature="0" /> + id="id-6a9ce4de-e8f7-44dd-9790-438e3f2b1dc8" + inkscape:connector-curvature="0" /> + id="id-623de901-c5c8-4f25-b2b0-05f30bc69844" + inkscape:connector-curvature="0" /> + id="id-344ac010-9946-4ce7-bf9d-0b23bc36a2f5" + inkscape:connector-curvature="0" /> + id="id-ed3e289f-1452-460d-85cd-e07b8a93b5a3" + inkscape:connector-curvature="0" /> + id="id-cf7e982e-b841-4156-8d4d-a17032802955" + inkscape:connector-curvature="0" /> + id="id-f163c830-d025-4e9d-8d95-03d106a4a327" + inkscape:connector-curvature="0" /> + id="id-130fd6c7-49b6-46f5-9466-6416c7046d8a" + inkscape:connector-curvature="0" /> + id="id-79a8ebec-2115-45e4-99e2-71283e070992" + inkscape:connector-curvature="0" /> + id="id-8dd1b743-2d9e-4da4-9120-982f4fb32bac" + inkscape:connector-curvature="0" /> + id="id-3ab434df-46d3-44ec-8495-171c1d5dd2a2" + inkscape:connector-curvature="0" /> + id="id-96386c7d-bc1b-4b03-a51e-8bea9d14f57f" + inkscape:connector-curvature="0" /> + id="id-64606eb0-aa3e-4b2e-996c-2eeec35fff15" + inkscape:connector-curvature="0" /> + id="id-133bd9de-c6c7-4291-889c-3c78c7c1d7e2" + inkscape:connector-curvature="0" /> + id="id-d33f4b33-0898-4560-ae22-a622f61307d6" + inkscape:connector-curvature="0" /> + id="id-a607ed08-e0ba-4427-8fc9-8a8d81c1a2c5" + inkscape:connector-curvature="0" /> + id="id-e4056a0c-b69a-4493-aa91-e02d603f3d07" + inkscape:connector-curvature="0" /> + id="id-bbd0b318-b6f2-46b1-a582-1d2acb0b24bb" + inkscape:connector-curvature="0" /> + id="id-084f3df7-dd17-4f7f-8aa7-13bff4285a82" + inkscape:connector-curvature="0" /> + id="id-fc4927a9-d106-4bbb-b58b-d7cb04437618" + inkscape:connector-curvature="0" /> + id="id-39b31475-1593-49f1-8b6f-69458f1653c7" + inkscape:connector-curvature="0" /> + id="id-c9795f68-aaa7-4dbe-9f25-3e2c26c04207" + inkscape:connector-curvature="0" /> + id="id-b43e47c9-4ccb-4341-9d2f-48239774fff9" + inkscape:connector-curvature="0" /> + id="id-9d94e8eb-7c26-46cb-945e-4a25745febe4" + inkscape:connector-curvature="0" /> + id="id-f226cb96-995c-49c4-bd5c-80fc6df19d4e" + inkscape:connector-curvature="0" /> + id="id-6f64aecb-9c4f-4500-b196-9912f9934607" + inkscape:connector-curvature="0" /> + id="id-e39eea0b-6616-4b9a-b6c1-f3e54d741d19" + inkscape:connector-curvature="0" /> + id="id-362abe5d-93c0-4a55-aac5-b39209591c0e" + inkscape:connector-curvature="0" /> + id="id-281e651d-a309-4c04-b74f-a5353b77294d" + inkscape:connector-curvature="0" /> + id="id-cec18192-21c0-435f-8eb4-787ef11239fe" + inkscape:connector-curvature="0" /> + id="id-a62ea7be-0428-49c2-820c-9010c6bc5c71" + inkscape:connector-curvature="0" /> + id="id-bf5a6e3e-866a-4838-83cb-fed191ccf50f" + inkscape:connector-curvature="0" /> + id="id-38503756-ed5a-4eb9-bae5-fbd6ffe5c0ea" + inkscape:connector-curvature="0" /> + id="id-63f5a07e-eaa8-42c0-a940-209bfe26b27d" + inkscape:connector-curvature="0" /> + id="id-90545768-6740-4cfe-a057-99ac2663e62c" + inkscape:connector-curvature="0" /> + id="id-e69246ef-f1cd-4755-9474-c179c2a3dfc7" + inkscape:connector-curvature="0" /> + id="id-6e91aefa-d7e8-4d60-a7df-62017d2b10f2" + inkscape:connector-curvature="0" /> + id="id-a0df56ab-42bd-4cc1-9ed6-fa5ec647c655" + inkscape:connector-curvature="0" /> + id="id-2465c28e-c25d-4b61-ac12-62735cc8ec90" + inkscape:connector-curvature="0" /> + id="id-b4d1a0c0-b2fd-42e8-97a6-1e0a2a63a837" + inkscape:connector-curvature="0" /> - Po registraci nahraj řešení do odevzdávátka. - Stihneme-li ti řešení opravit před deadlinem, můžešsi jej ještě zlepšit. - Řešení odevzdaná do 1. deadlinu ti opravíme jiždo vydání následujícího čísla, jinak až o číslo později. - Problémy hodnotíme individuálně, za hezký článek mů-žeš určitě očekávat více bodů než za řešení uzavřené úlohy From 03f0a6fd7a7362230d1130907d827a56f2599547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 00:27:23 +0200 Subject: [PATCH 211/515] =?UTF-8?q?Jak=20=C5=99e=C5=A1it=202023=20(d=C4=9B?= =?UTF-8?q?kujeme=20Tomovi)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/seminar/jakresit/jakresit_1.svg | 30478 ++++----------- .../templates/seminar/jakresit/jakresit_2.svg | 30365 ++++----------- .../templates/seminar/jakresit/jakresit_3.svg | 30600 ++++------------ 3 files changed, 19857 insertions(+), 71586 deletions(-) diff --git a/seminar/templates/seminar/jakresit/jakresit_1.svg b/seminar/templates/seminar/jakresit/jakresit_1.svg index 514e3221..2eb86dba 100644 --- a/seminar/templates/seminar/jakresit/jakresit_1.svg +++ b/seminar/templates/seminar/jakresit/jakresit_1.svg @@ -5,8 +5,8 @@ viewBox="0 0 90 190" version="1.1" id="svg8" - inkscape:version="1.1 (c68e22c387, 2021-05-23)" - sodipodi:docname="jakresit_1.svg" + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + sodipodi:docname="jak_resit_2023_web_1.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" @@ -18,6 +18,18 @@ xmlns:ns10="http://www.iki.fi/pav/software/textext/"> + + + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> - - - + id="path30242" /> - - - - - - - - - - - - - - - + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + id="path26604" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + id="path6554" /> + id="path6534" /> + id="path6524" /> + id="path6514" /> + id="path6504" /> + id="path6494" /> + id="path6484" /> + id="path6474" /> + id="path6464" /> + id="path6454" /> + id="path6444" /> + id="path6434" /> + id="path6424" /> + id="path4376" /> + id="path4322" /> + id="path4234" /> + id="path4231" /> + id="id-58d9e82b-c60c-4c26-8d27-25478f5c3f75"> + id="id-74bba7de-3236-4e7e-b81c-cd74e04b7ee8" /> + id="id-03b7ac0a-6c29-4a9d-af6b-0ed77e89ca3a"> + id="id-ee253b46-36ae-4066-9d45-202f798baf2d" /> + id="id-cb2f407b-bab3-4e77-9fdc-0ca956fc1b84"> + id="id-7e4771e9-92bb-4d1e-a5c7-dda49f957914" /> + id="id-919a82c7-b3f8-43ea-83c0-f090eafd962c"> + id="id-ec7a370b-cc7d-422d-9e34-0ed9b9fff025" /> + id="id-b735b9c6-1c34-4638-8ff0-837d84fe7813"> + id="id-8f0afab4-48ba-4dc7-bda9-195ce5634890" /> + id="id-6d3c83a3-17a6-4aa5-8071-8cba135fc03c"> + id="id-0a2ab759-764e-4239-a7de-48f100e6f29e" /> @@ -1253,153 +1122,123 @@ id="id-938187a9-6c43-4b06-ae83-2e0d890ebc3f"> + id="id-a14891fa-6c5f-4ff1-aa30-3573d524d466"> + id="id-5210200e-6890-47d6-830b-11df2fc23808" /> + id="id-17ad1d9b-4cf5-4c32-a2ee-7639a759bf60"> + id="id-bd6ca3ea-cc7d-4507-a3e2-39597cc9abad" /> + id="id-877be989-c3e8-463e-ab72-12905964a25a"> + id="id-2e2d9275-1f7f-4ca4-96de-385d7f14e3bd" /> + id="id-8e46c3d7-2ae5-48fb-b81f-c2d2fb5f39c3"> + id="id-5aa23712-4d3a-4891-85b1-386cc2512dae" /> + id="id-0d892061-d218-4311-899f-85701b4be68f"> + id="id-7e8988dd-d516-40ed-bc87-8ab52987cd89" /> + id="id-9b5b3bfc-2c1a-4fd0-9512-d959b819d637"> + id="id-d8d36dd5-7fa5-42e1-bc71-73a86ef45998" /> + id="id-62cda65d-6afc-4d78-b067-d9c1d218a1b9"> + id="id-8932ff6f-4582-4a08-b549-0c04de3fc2c5" /> + id="id-8c6c107e-9cb4-4111-ad7b-57eeb17d2aed"> + id="id-928c198b-e2ce-437a-9d6f-6111dc486160" /> + id="id-f4f73b4b-a0fd-4c8f-90c7-382fe6527634"> + id="id-b7e98946-2f1f-4715-b501-99202c87f8ba" /> + id="id-748e4a0c-1247-4b21-8a16-0a04bc85e6b0"> + id="id-8159b334-036f-42f2-a878-94b5a496d7d9" /> + id="id-32bb3d59-aebc-4725-acc7-b53a104f9f46"> + id="id-9c126854-d9b0-495d-9bb5-6a7b691c87d3" /> + id="id-5727edde-9de0-41e1-89a8-8986cef89c4b"> + id="id-c6dc18f1-77c4-4f5b-a06e-43bb7768df91" /> + id="id-b0077620-6c8a-4f68-9dbb-dc8d1b9835f5"> + id="id-b638c59c-001d-4905-9069-60e913071ed4" /> + id="id-599edc1a-3101-4a5e-a36c-a1e06fd00603"> + id="id-b6c3c897-cd4c-4513-b250-6c0f1cc93d01" /> + id="id-f4a5ae47-3416-47ab-8812-32b53f3495f7"> + id="id-b6ca682c-0dcf-41d5-b3ff-c44f705f97f8" /> @@ -1513,533 +1352,427 @@ id="id-866b9d89-8530-4c01-aca3-dfcf9f167ff2"> + id="id-20191577-925b-4721-a301-0ccf2bef2e5d"> + id="id-83ddc62a-d385-458c-9a65-ce4685218283" /> + id="id-20d87416-09ea-4128-a07c-8673d7f8c7d6"> + id="id-b60c2c94-6119-42f8-9243-a9fb6b7956b6" /> + id="id-11ca6b63-98d0-4c31-adaa-d7c8ef6ebeaf"> + id="id-ea1e6583-4504-48c3-9640-5aff1ef440d9" /> + id="id-c45079c9-23f8-4dec-ac1e-f3c235e56be0"> + id="id-43eb4b39-30e1-49fe-bf53-7512d6e184bf" /> + id="id-d62d6ad1-de4d-4326-b6e5-d9f58c55a657"> + id="id-833553d8-3b78-481f-bc28-499fce6cde4a" /> + id="id-c879be9a-3e07-47c9-b649-35c47c607dea"> + id="id-a2b475a1-a500-4480-bf4a-b2f18902336d" /> + id="id-3627a21a-748e-4669-abe2-db2d5936e1ad"> + id="id-d4f92ba7-9d7f-432f-87b8-c62c637f54d9" /> + id="id-360a72b5-4350-4ed2-b6ed-bf301ed20617"> + id="id-316cce9d-8d85-4db5-a0c6-06c5ebf063c1" /> + id="id-ceb12ac5-b089-4228-afa9-45f0988961cc"> + id="id-593adde4-7447-4606-b45a-89a4f09d1f79" /> + id="id-ee89bf1e-3112-42ce-b5c5-1a1e2b33021b"> + id="id-a036848a-04b8-4a0a-be9d-67cafa333b6f" /> + id="id-ab394ddf-f5af-44e2-b3c2-949aca23c50c"> + id="id-e3ef12f2-4daf-41fc-bd4b-b01d7bed7de8" /> + id="id-871a3fc0-c26b-4640-ae1e-80edc9f3478c"> + id="id-889754da-088e-4c02-b581-8f3b4bb78480" /> + id="id-ebe903d1-4931-410e-b4b7-202df3cd04a1"> + id="id-47244d09-43d9-4251-9e33-19cde29199e3" /> + id="id-ba5745aa-1289-44ca-9bf5-714ea7d9e412"> + id="id-2729e7fc-133c-4056-846a-262388c92619" /> + id="id-5cc2b572-d8c8-44f0-9442-b75285964682"> + id="id-d71dc0ea-aaae-4dd1-a425-79a6ae0508b3" /> + id="id-da783539-92f7-4567-be7a-7dc759988c09"> + id="id-706149b8-fd12-4472-9155-2c9347d11df6" /> + id="id-05207000-a1a0-4181-af65-f69d26a00f2b"> + id="id-226fc5f1-016c-4ccd-9bc7-6c8046610ad5" /> + id="id-bb3325d4-8349-4130-a31f-74b88cbb0ac5"> + id="id-5f1b874e-cf6a-48ff-bd7f-6b4eff1050d6" /> + id="id-647aa125-e033-450a-8c26-4fb4632e6038"> + id="id-79837ffc-4b11-4e2e-bf98-9fd918406fda" /> + id="id-15901e59-f61e-483d-b584-42e5f16a8920"> + id="id-9156cb20-bbbe-49f2-9744-50dd0275bfed" /> + id="id-c829d63a-3ce0-432a-b8ec-3a172fd5b478"> + id="id-015f30ac-8f9f-46c4-8f3d-0af411cf62e4" /> + id="id-11268275-85a7-461a-bd59-d1c59f4d1f64"> + id="id-5cd31979-7685-4605-b6c0-848506a2beb7" /> + id="id-5439d6f9-0564-430c-911a-b48b11f1cfee"> + id="id-d62182a5-fce9-4890-9f8e-109759ad7160" /> + id="id-86d6269f-59e8-48e9-a2f3-7bc81c99da56"> + id="id-dd04b27d-cc34-4610-b646-930f7113b526" /> + id="id-86137479-757a-4e85-a165-a693f3d9275c"> + id="id-d304a14e-8252-4663-a649-c2ce5b2322cb" /> + id="id-56bb2087-fcfa-42e8-a0ed-bf083f02fe3d"> + id="id-9e5b78d5-1bac-4827-9fc3-8bfd30caefd9" /> + id="id-fbf179a1-1dc1-46de-81b3-fd68a69e017d"> + id="id-26b00489-7799-45ef-b0f9-3d60390935f7" /> + id="id-8bfb977f-9c54-4b7e-9fc8-3d9bb93601fe"> + id="id-7440fed1-4052-4cbe-8ae8-f5bfa4e0efaf" /> + id="id-ec97404c-f0be-4376-af0b-1029187c308f"> + id="id-2c37c930-6bac-4396-945c-a7e8770dda63" /> + id="id-1c8d4c32-8532-47aa-a514-dd0ab61727a3"> + id="id-e424f076-98c2-42cb-a9a4-d03422302178" /> + id="id-7de674f4-c3d7-405b-b075-9d13c30d637d"> + id="id-7ebfe0d2-7802-499a-9103-db734acf6286" /> + id="id-d48ea2d0-cfe9-43bc-9932-18c1705f55ef"> + id="id-16886f91-a964-484b-b587-d92273bc5305" /> + id="id-a89cd2da-6157-4837-8441-5121f4008184"> + id="id-0d8375ee-e17d-4ad9-99ae-ecf128386732" /> + id="id-731039a8-64c7-404b-af82-a33119403d11"> + id="id-5e777343-eef0-4e22-afa4-be591a88a956" /> + id="id-6eb9234b-e6a0-4092-90a2-2f03220fdc6a"> + id="id-ce6b921a-e014-45c1-9c78-bc3b6ee9ffe8" /> + id="id-9596bd78-82f3-4e33-bbeb-19b3c8b98dd2"> + id="id-5209fab9-6735-44f1-80f1-2fe6d290ad89" /> + id="id-a3db7721-f118-4907-96b3-a4da9b324107"> + id="id-3c8ee776-868b-4b19-9c33-bd43e8539c94" /> + id="id-9d5968d4-e64d-48ea-90b9-d587f4b48307"> + id="id-629ec691-0873-4d1f-a992-f4437b701560" /> + id="id-7425609a-f637-4bb8-ad79-b7e235f3ca0b"> + id="id-eeb3a1ae-762f-45f3-a39f-ce081c2cd41c" /> + id="id-c37bec20-1030-41c0-9677-d6c2ad54d3c0"> + id="id-30a1933d-e57c-44b7-9250-d7b76208091c" /> + id="id-14860a42-d29b-4f56-8349-c840df740407"> + id="id-3faef2ce-8a7c-4c98-ba7d-17ed072bdd03" /> + id="id-d8d8dc3b-b230-4a82-b41f-cfd5e7b8782d"> + id="id-1b8d2c64-6ef8-4c87-9ce6-d952acb73dd9" /> + id="id-5a3be5fb-8e16-4035-967b-518c8ed25199"> + id="id-70c191ed-25a8-4628-8747-afef17700007" /> + id="id-988e8322-c234-4500-a837-c8bf58481953"> + id="id-e853d99d-5570-4bd2-94d1-3c561ce3ade1" /> + id="id-3db3deb0-f4c1-4ba0-a36d-0a09bdcb7349"> + id="id-95105687-efb0-413f-99ac-a377c9982742" /> + id="id-4249c0ef-e74a-4576-87a3-7d06a9feb885"> + id="id-77191fb2-d906-49df-bf8a-6ef9203755ac" /> + id="id-a35509f2-6d6b-4417-b5f1-f5efb6afaf48"> + id="id-d3cc4973-73c8-4cd1-ba87-79ca757f59db" /> + id="id-e67d6789-4a49-4240-9fa0-4fb801eeafab"> + id="id-1e3b3a4a-220b-478e-a7be-43d6d5bc4703" /> + id="id-513e8846-5ec9-4bd7-9a2c-a0af322b6372"> + id="id-e6f9ac80-f641-4928-a876-b28442b2adee" /> + id="id-f515ca8f-c37d-43c9-a40e-7b27915f5c4c"> + id="id-6f9b3634-ff93-4727-b336-609336b25724" /> + id="id-e28c822d-c4cc-4c87-82a5-68e401b69f28"> + id="id-484e893c-610c-446c-a425-025b1b78d9ff" /> + id="id-5f07d7d3-4207-4990-b597-dce03dedc306"> + id="id-17ab1bf2-deff-4644-ab4d-86fa6d410810" /> + id="id-2117854d-0de9-4d7c-bd8d-c1d8840a6629"> + id="id-797400ec-3c98-453b-bdd0-5aa77b2e5bb4" /> @@ -2157,183 +1890,147 @@ id="id-1a266726-eb14-4e24-8106-d7164008b378"> + id="id-db9d19c0-979e-44ae-8eb4-1049dc3af9b6"> + id="id-b41e8575-0aac-40d1-a6e0-3d70f34e06f7" /> + id="id-c0e2f17b-efc4-4601-b0cd-1b05a2c1472a"> + id="id-c9e7462f-ddce-4002-9dcc-34974d56c68d" /> + id="id-9fad458f-fd52-48bd-9c31-c52e676e41c9"> + id="id-26a21e17-c19a-40b6-8516-7e9ef072cd11" /> + id="id-7a50b7f5-3e0e-4ba9-a6e5-45a41b167ad4"> + id="id-8c1e6e9c-4781-4550-939f-e1fdf7e15edb" /> + id="id-4ec6d2fc-058c-4157-bce4-817edc818764"> + id="id-d68e8c2e-736a-4abd-9b0b-fa2a9e769159" /> + id="id-b75baacf-ed92-4684-9c5e-05b6019516ec"> + id="id-e55daa28-2131-4d17-9f3e-d9d9c3f5a092" /> + id="id-286a8cbc-bc94-4327-bf46-d5dabb8841bc"> + id="id-48fc9c54-4fee-41fc-9f08-bf4cb9f04ed1" /> + id="id-ca3a4e32-2302-4fde-82cf-6c4b61eba3ab"> + id="id-825431fc-6a7f-482c-bdda-cc5dd2c07c45" /> + id="id-938b3d18-c01e-4ed5-b365-e44484cdfeac"> + id="id-6f9a7211-e495-4e3e-a03c-d56ca017dd08" /> + id="id-e2a8e4af-edd9-4a95-95db-01ffe6a52259"> + id="id-1fe9917b-9e7d-4b27-aa5d-950f3bb92c12" /> + id="id-4aa7dbf5-c775-4133-8361-c4b6c03e2b87"> + id="id-1063295c-5946-40cb-8c0f-737e198e14bc" /> + id="id-8e26d3f9-0acc-40cc-8b7c-7a11f5b79e8c"> + id="id-9b92f3e4-9f8a-4648-8aa9-b1096e7b546b" /> + id="id-3b3bfe1a-ed36-4905-b50c-39831b0f0fcc"> + id="id-70859586-f380-42ce-b947-7bbaffe01c6e" /> + id="id-60de2980-e1f0-4c47-8d84-b48afdf96bd8"> + id="id-17bb5264-38c6-4828-b7e6-e48098dedbb9" /> + id="id-f5ae276e-c137-45f3-90a3-04d00bbf1698"> + id="id-8f5478bf-32be-4c44-8dda-22254c605163" /> + id="id-bdcec0e4-a7eb-46ae-9284-b55b9194326d"> + id="id-ce684b25-dd47-4d0d-bb0b-3944adbcbe36" /> + id="id-27c1fd3d-626a-4793-9acb-d71e97391d77"> + id="id-29459746-1b61-4e72-be89-c4d34eb3f57b" /> + id="id-1801de5e-72a6-4d20-88ee-8f08b08dc12d"> + id="id-4d10b06e-7f70-48d4-a578-21da1c77ccfb" /> @@ -2343,383 +2040,307 @@ id="id-8ee390bd-e362-4043-b76f-8fae701d2b9d"> + id="id-370090c0-f229-4cc3-b977-d1f2b2cfb282"> + id="id-f7b0409f-6d68-425b-bd2b-b8196eca4bf5" /> + id="id-9488b61b-8748-4b99-a3ce-f86fb51eac50"> + id="id-4bf623d1-d500-401e-b646-72d69561e577" /> + id="id-6b538197-379f-422b-a81d-d4d84913155d"> + id="id-8fa9b461-2f7c-4c61-bc9c-92f7a416a324" /> + id="id-f6418776-b05a-42f6-94eb-29f04542ee17"> + id="id-09045097-edad-4a43-bf86-b07f8f358f63" /> + id="id-c0679ceb-f5b2-41a9-8d39-ad22866fed8f"> + id="id-37d298fd-4917-431c-bf88-583cc01fa857" /> + id="id-c990d75b-e47f-46e8-bd3f-759fb991cafe"> + id="id-a6349817-5dd2-4da7-a6d3-7ebda60ec3ef" /> + id="id-4d9d4e27-ee31-4e15-a85c-7c5dc455b02f"> + id="id-c8a0277b-fb57-4f45-88d1-cd2722e8ebaf" /> + id="id-de50a2d6-fb1e-4b2b-bc10-f211389e7d09"> + id="id-c14b5fdf-53e9-43c8-8cf3-8786b23c1357" /> + id="id-d8d9aff2-a4b0-4e9b-8b69-5e97cefc7bfa"> + id="id-c5a8d00b-5634-4cd2-8afe-e9e51cf1b265" /> + id="id-6dfbdb36-fd0d-4e40-93f0-0d02bc2c5cf6"> + id="id-a008abef-0965-4fa9-b9b4-279dadb21b67" /> + id="id-e028364c-5b83-4bcf-a9d7-cdb669d0cdcf"> + id="id-cbe15ad5-7a10-49fa-b92f-5112a7e4d587" /> + id="id-d4cff158-f5af-4692-9760-dbb894f61a84"> + id="id-a5a2ab1e-d242-402a-8bab-16e8a36fb652" /> + id="id-3babefc6-79d4-4d6e-baba-314bfdd22cc5"> + id="id-ae190d07-f842-4069-b90e-83fc2e3156e0" /> + id="id-c2a9c6c8-804e-4359-882b-cb7610edffa4"> + id="id-9d99f6b7-2e04-4a33-b4d8-9c159746384a" /> + id="id-2a50fd73-ca50-461a-8eda-6bf80acc1641"> + id="id-6b09adb5-13cb-46e1-89d6-3dcc4ffe780b" /> + id="id-cc00f59c-a5d5-406a-8c88-29a1ea56c0ff"> + id="id-b4f6ca8f-13e1-4d81-b89e-cb800c6d4256" /> + id="id-59c940ac-21ce-4f82-940d-30dcf09dddc4"> + id="id-cd882bdb-b6bd-4684-90f7-b87c7b0f80c2" /> + id="id-2949049c-3af9-40d9-92fd-7a42e0ca038e"> + id="id-e87db3a9-156b-4af5-b647-78835aba8505" /> + id="id-4a71ee48-769b-4dc5-8865-a4d6a804da20"> + id="id-ed00a3e2-70c9-4957-9001-af9e27a854e7" /> + id="id-330ba1c6-e272-4897-a0e2-3ac94b5ad2e2"> + id="id-d3bac7c2-de64-4c1c-ae78-feab0f3eed1f" /> + id="id-5497a3de-845e-4c79-b809-3096ea7c4360"> + id="id-05665a3b-447d-4848-b458-60642cba6adc" /> + id="id-afb81de3-fcbb-484c-89d5-cfa52f1e4d72"> + id="id-a156bd31-e009-4a29-b320-fbed4c2bc419" /> + id="id-35242800-b040-42a0-91f8-544563fa571a"> + id="id-ee222360-06be-4819-bbec-6d5316d18964" /> + id="id-4eae52fb-fcd9-4c6c-afaf-885896464b3b"> + id="id-cd272b01-ca78-4b58-a0b4-02df35b014cf" /> + id="id-0bf0725f-f2ef-4d35-a60d-3a5f6d6d8657"> + id="id-3571f176-2935-43a3-a8df-6ccb88e6ef44" /> + id="id-29b57628-9858-473c-b8f6-1869f1c54db7"> + id="id-6fb8a592-81a4-46bd-8c7d-54389c7f7204" /> + id="id-7f711d12-11d1-4f90-98b0-14a81148589f"> + id="id-dd444034-82f2-4610-b34a-9bde91838752" /> + id="id-d483172b-eef6-4f3c-9f43-af04f0a2856d"> + id="id-24a609d8-5b9b-403d-9d3e-e43bf54378eb" /> + id="id-7062763c-299d-4ac9-b156-06fa9950e65e"> + id="id-c3ccaae8-8806-474d-8a5d-f67427ea4f17" /> + id="id-4afdef35-231b-4176-937a-51623c739bec"> + id="id-f3495068-d6e7-4a83-8aed-e599cb957d14" /> + id="id-8ea65ab2-940a-4409-aecb-41deb443e3fb"> + id="id-0868500f-e489-4ce9-a4d6-7412e00ec043" /> + id="id-362b39e6-8324-4ec3-bad6-c6d820cdf9a4"> + id="id-629dbe59-ecc1-4666-969a-5d6223425e66" /> + id="id-2ba1aa66-5168-4252-9a67-474ef3911b44"> + id="id-fc0af5e4-b0e8-4e85-b7a2-133b5e00f054" /> + id="id-85dd834a-0056-4d06-aeed-b2864777dc6c"> + id="id-4171190d-99a2-4561-b3e0-6d3580cf05de" /> + id="id-6d110b19-6ebf-4fb0-98fb-44055883caa9"> + id="id-04cae73f-72b9-4346-a225-6b8ef3dfea49" /> + id="id-5907229d-cd57-47c2-8720-cfe65c6f8cc9"> + id="id-4bfc7d03-f540-45a3-bbec-0aebc6139447" /> + id="id-3ebf5f52-1146-4d24-9542-5311d10d2025"> + id="id-30287741-6df7-47bd-86ac-32fbd086f215" /> + id="id-115048c2-58bb-4b2c-89ee-e1e3c5eca9e9"> + id="id-1ecad964-cf4c-47ca-be8e-fb47461c68e3" /> @@ -2729,313 +2350,251 @@ id="id-2e586840-ba83-43a2-b1ba-75c1f178fe7a"> + id="id-ddc09d16-7f10-47d4-aa9a-cd4ffdcc2aee"> + id="id-b299f53a-9603-4bc5-aa37-ed9566683c71" /> + id="id-5213cb68-d4e8-498f-abc7-00c0c5e8417f"> + id="id-d6a63460-22ef-4917-b24b-bdae54463558" /> + id="id-35038faf-ec69-4739-9d59-368b62527749"> + id="id-b85b87e2-e118-45d0-91be-43c6b32f7278" /> + id="id-e2e4ef6c-e715-4bec-9514-94f975c9043b"> + id="id-df8d504f-3866-4e34-b575-8191ef3248c1" /> + id="id-53305245-91a1-4f23-ba25-e1e2ba997b1e"> + id="id-9f8e35e3-7816-45f2-89d3-4b70d58d6a52" /> + id="id-bb54557c-f00c-4836-99bf-c21186854765"> + id="id-601603ca-5de6-4ef0-8616-acc20364c538" /> + id="id-757f8a4b-8d7c-403c-bfe0-7b48bc875bc4"> + id="id-8f6a4071-5304-4fc9-bbd0-a668b6f311ad" /> + id="id-1f8626e2-e0b5-4175-8286-81341c9f6e30"> + id="id-948174ab-9265-4d14-916a-513dc2176828" /> + id="id-2aa4e615-4f0d-4e5e-8bac-776f9ef66a04"> + id="id-886b8908-3239-43ce-9df4-3a4be133d1b1" /> + id="id-5b3ba1d6-b1f5-4ef4-bba7-74f46c5b8b2a"> + id="id-81ce085e-adb9-4a16-a725-7399ed174197" /> + id="id-864319a9-3c41-4fc9-b630-9279c9543d2e"> + id="id-3d776d4e-6df7-4657-b5f7-32c421b948c8" /> + id="id-4641e063-99d4-46df-beca-34484eeafdff"> + id="id-3267f133-a3e4-4638-9b18-53744ec45680" /> + id="id-682a44f2-499e-4ba0-aea6-d91b97cd360b"> + id="id-3150c039-5518-49be-8866-bc5d45e8412e" /> + id="id-b9bc7d0e-492d-46a8-aae6-b095e788df2c"> + id="id-156b015c-72d2-4e8d-a43d-3f71f8002a31" /> + id="id-67c50d9c-47fb-4806-b0bc-d2104a18c249"> + id="id-021d5287-3906-4193-b196-22a15bb05563" /> + id="id-3b31ff6e-d6b3-4531-824c-116db12ae036"> + id="id-d8e393fa-2fd5-45da-b616-59bf2a31d011" /> + id="id-d81e0164-c391-4493-a557-b98f0301bba0"> + id="id-1f7d6351-0d68-4817-a0dc-bf9430df72dd" /> + id="id-26c223e6-13d3-47bc-8571-ebe69ce64f74"> + id="id-9f78ae27-da46-4cae-9610-edd197791fb8" /> + id="id-fd7e146e-fdb0-49a4-9587-fd6e8332b092"> + id="id-b07c15f0-88b5-4fa4-85eb-1548642e53a6" /> + id="id-c2fa87bf-1f45-41c7-a4c9-795985193384"> + id="id-1e74fb07-89e6-4045-8046-b25c23c35827" /> + id="id-c15edaf6-d264-44c8-85dc-67cbdae4efbb"> + id="id-05438fcf-49c3-486a-9862-2908b17ca473" /> + id="id-65327638-e5c3-4fa6-94f6-a387e64d25c6"> + id="id-a2a3460f-df3c-455b-b53a-9bce15c8f50a" /> + id="id-ed2624f0-e19b-4aa4-907b-fb4f5d72e157"> + id="id-e636cdc3-3ae1-4993-9148-a0920f01822b" /> + id="id-b69c849b-9703-41e5-8af0-7e30c7e1b155"> + id="id-15d2c571-f9a1-46f3-b9c0-b7cabf2994f6" /> + id="id-172ba32e-38db-4b24-b013-be90fe0eb329"> + id="id-71ba2af7-4fc0-43ff-a726-7b0a1fa1f411" /> + id="id-95f42b18-62e1-4547-8b97-a91d473ede6f"> + id="id-45784045-d046-43d3-9939-275a27c39c0c" /> + id="id-33ab558b-a585-4fc1-aa36-20464889a9e8"> + id="id-8b8b17ce-7cd0-470d-b0df-f726a27ce062" /> + id="id-edaa639b-b280-4a98-a67c-553c01e977c2"> + id="id-1ccf3fe5-4fb6-4cc2-ab89-bbd5baa0d3fc" /> + id="id-17ba2fda-eb63-4bee-b4a3-1bd53fc83b4b"> + id="id-e4b4ed38-03e4-4a90-8512-5d35a6ecce68" /> + id="id-22ccb208-0473-4b07-8e3c-3cdd9947cf9b"> + id="id-276044c6-d417-468f-ab8e-5b027291bac2" /> + id="id-a2831b9e-d6ff-4af2-aa54-990ae033608c"> + id="id-828228cc-37e7-4c61-8747-1108a5187370" /> @@ -3045,383 +2604,307 @@ id="g79784"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -3431,233 +2914,187 @@ id="id-bbd7b9fb-e6b9-4868-ab11-d2406bf430d8"> + id="id-772f94d3-1c7c-413c-b02b-77fee8b232b1"> + id="id-7bf53810-bef0-4644-895c-afa8d5f4c1a8" /> + id="id-08cf0f37-1788-4dd9-842c-73fd28c590c7"> + id="id-247ba765-3580-4bba-85bd-f999fd587a8e" /> + id="id-d4588d22-5358-4c82-8582-ceb1ed91ddbe"> + id="id-9b8b45b2-24e9-4586-99ed-232be95d0f2a" /> + id="id-e9016403-9827-4813-8775-b30ca6772f13"> + id="id-5684dc98-a475-4304-a660-5945e8d4161d" /> + id="id-04de9723-8e0f-4a3e-b198-aa92e212cf9d"> + id="id-37f764fe-a25f-44eb-9e07-611d03e3628e" /> + id="id-f7a213d1-55c2-4417-8bca-ecf6af70346d"> + id="id-e133a3b8-c4ca-43a3-8156-340baee375ba" /> + id="id-558e1bfc-3507-450b-96ff-78352ac5c5e5"> + id="id-2d60e0d4-0350-45e7-aa09-33f36e94a55e" /> + id="id-8e9d253d-e017-4e16-b27e-8ee6f6fdfc6d"> + id="id-fc684379-08b4-486f-872a-6a93198b2de5" /> + id="id-1d012433-f204-4f69-a977-b0f7131cacd7"> + id="id-f6e1f947-f403-4789-b020-867dbf11861b" /> + id="id-0b4125e2-3610-45f6-ad7a-231d5ae93139"> + id="id-d44d535a-072f-4d4a-a0a1-088918a0b650" /> + id="id-f2c00f08-ada4-4cfa-903e-390d92bba462"> + id="id-b98ed50a-27e3-4abe-ab90-81af3760872c" /> + id="id-ecb1a6f9-551a-476d-9896-e698d1ffa6e8"> + id="id-4aa1ae69-5b27-40c3-abfd-201fd4d25c96" /> + id="id-b8e583dd-2d0c-47c8-819d-662faee17a76"> + id="id-c5148675-f0aa-4734-9a46-a558041e162a" /> + id="id-03fe1a7f-5086-4b5c-92cb-bce8480c44d0"> + id="id-23f14dd3-1abe-4646-962f-b6005d27e986" /> + id="id-d348df3c-aff1-4243-b567-d75aa4340561"> + id="id-c2ab98f8-e781-48fb-a668-0a2b740f0a4d" /> + id="id-7fe7088a-1265-48b7-99a8-d6e6b78e882b"> + id="id-63231045-4a0b-44fd-bd65-bb509a6d6e3a" /> + id="id-41ab9fd8-ab99-41b9-8347-3f61eb41d911"> + id="id-80b5b671-68ea-477f-b635-e554fe5073ec" /> + id="id-ee40d6c2-2120-4645-a397-132b9a1f866b"> + id="id-4d1ee7f1-49c2-468c-8bce-652609decfec" /> + id="id-4caf66f9-96f0-4644-9c84-320357b119a1"> + id="id-d3b8a1ac-016f-4be5-a0f0-6a12c86f2198" /> + id="id-e78979c5-5838-43f4-8c7d-beabb68ae356"> + id="id-9d6ac180-41e1-4985-89f7-890b6d3d1cd0" /> + id="id-38ffa48e-e27a-46a2-9c2f-45d249e3fadb"> + id="id-9a3e34dc-fe1b-420c-b327-3c2b9d7b1a08" /> + id="id-73a26404-9d18-4769-857f-17fa4668d155"> + id="id-9fbd6f1e-6ec0-4c4a-a7f2-656feb4aa277" /> + id="id-46de0d22-ba59-4550-82e4-b2d190af608a"> + id="id-62f2ae84-563c-434a-accb-9b675ec3b652" /> @@ -3667,168 +3104,110 @@ id="g8171"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> - - - - - - + units="cm" /> @@ -3884,22892 +3261,5875 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" - transform="translate(-7.028636,-3.6067411)"> + style="display:inline"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g7554" + transform="translate(-1.4697399,0.0549476)"> - - - - - - - - - + transform="translate(4.4224918,-15.96734)" + id="g56702"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + id="a3548" + xlink:href="https://discord.gg/Rwv7s7ww" + style="fill:#000000;fill-opacity:0"> + - - + diff --git a/seminar/templates/seminar/jakresit/jakresit_2.svg b/seminar/templates/seminar/jakresit/jakresit_2.svg index 93fa9f2e..b90dd83a 100644 --- a/seminar/templates/seminar/jakresit/jakresit_2.svg +++ b/seminar/templates/seminar/jakresit/jakresit_2.svg @@ -1,22 +1,34 @@ + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + sodipodi:docname="jak_resit_2023_web_2.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:ns10="http://www.iki.fi/pav/software/textext/"> + + + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> - - - + id="path30242" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + id="path28764" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + id="path27326" /> + id="path27100" /> - - - - - - + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + id="path6554" /> + id="path6534" /> + id="path6524" /> + id="path6514" /> + id="path6504" /> + id="path6494" /> + id="path6484" /> + id="path6474" /> + id="path6464" /> + id="path6454" /> + id="path6444" /> + id="path6434" /> + id="path6424" /> + id="path4376" /> + id="path4322" /> + id="path4234" /> + id="path4231" /> + id="id-58d9e82b-c60c-4c26-8d27-25478f5c3f75"> + id="id-74bba7de-3236-4e7e-b81c-cd74e04b7ee8" /> + id="id-03b7ac0a-6c29-4a9d-af6b-0ed77e89ca3a"> + id="id-ee253b46-36ae-4066-9d45-202f798baf2d" /> + id="id-cb2f407b-bab3-4e77-9fdc-0ca956fc1b84"> + id="id-7e4771e9-92bb-4d1e-a5c7-dda49f957914" /> + id="id-919a82c7-b3f8-43ea-83c0-f090eafd962c"> + id="id-ec7a370b-cc7d-422d-9e34-0ed9b9fff025" /> + id="id-b735b9c6-1c34-4638-8ff0-837d84fe7813"> + id="id-8f0afab4-48ba-4dc7-bda9-195ce5634890" /> + id="id-6d3c83a3-17a6-4aa5-8071-8cba135fc03c"> + id="id-0a2ab759-764e-4239-a7de-48f100e6f29e" /> @@ -1252,153 +1166,123 @@ id="id-938187a9-6c43-4b06-ae83-2e0d890ebc3f"> + id="id-a14891fa-6c5f-4ff1-aa30-3573d524d466"> + id="id-5210200e-6890-47d6-830b-11df2fc23808" /> + id="id-17ad1d9b-4cf5-4c32-a2ee-7639a759bf60"> + id="id-bd6ca3ea-cc7d-4507-a3e2-39597cc9abad" /> + id="id-877be989-c3e8-463e-ab72-12905964a25a"> + id="id-2e2d9275-1f7f-4ca4-96de-385d7f14e3bd" /> + id="id-8e46c3d7-2ae5-48fb-b81f-c2d2fb5f39c3"> + id="id-5aa23712-4d3a-4891-85b1-386cc2512dae" /> + id="id-0d892061-d218-4311-899f-85701b4be68f"> + id="id-7e8988dd-d516-40ed-bc87-8ab52987cd89" /> + id="id-9b5b3bfc-2c1a-4fd0-9512-d959b819d637"> + id="id-d8d36dd5-7fa5-42e1-bc71-73a86ef45998" /> + id="id-62cda65d-6afc-4d78-b067-d9c1d218a1b9"> + id="id-8932ff6f-4582-4a08-b549-0c04de3fc2c5" /> + id="id-8c6c107e-9cb4-4111-ad7b-57eeb17d2aed"> + id="id-928c198b-e2ce-437a-9d6f-6111dc486160" /> + id="id-f4f73b4b-a0fd-4c8f-90c7-382fe6527634"> + id="id-b7e98946-2f1f-4715-b501-99202c87f8ba" /> + id="id-748e4a0c-1247-4b21-8a16-0a04bc85e6b0"> + id="id-8159b334-036f-42f2-a878-94b5a496d7d9" /> + id="id-32bb3d59-aebc-4725-acc7-b53a104f9f46"> + id="id-9c126854-d9b0-495d-9bb5-6a7b691c87d3" /> + id="id-5727edde-9de0-41e1-89a8-8986cef89c4b"> + id="id-c6dc18f1-77c4-4f5b-a06e-43bb7768df91" /> + id="id-b0077620-6c8a-4f68-9dbb-dc8d1b9835f5"> + id="id-b638c59c-001d-4905-9069-60e913071ed4" /> + id="id-599edc1a-3101-4a5e-a36c-a1e06fd00603"> + id="id-b6c3c897-cd4c-4513-b250-6c0f1cc93d01" /> + id="id-f4a5ae47-3416-47ab-8812-32b53f3495f7"> + id="id-b6ca682c-0dcf-41d5-b3ff-c44f705f97f8" /> @@ -1512,533 +1396,427 @@ id="id-866b9d89-8530-4c01-aca3-dfcf9f167ff2"> + id="id-20191577-925b-4721-a301-0ccf2bef2e5d"> + id="id-83ddc62a-d385-458c-9a65-ce4685218283" /> + id="id-20d87416-09ea-4128-a07c-8673d7f8c7d6"> + id="id-b60c2c94-6119-42f8-9243-a9fb6b7956b6" /> + id="id-11ca6b63-98d0-4c31-adaa-d7c8ef6ebeaf"> + id="id-ea1e6583-4504-48c3-9640-5aff1ef440d9" /> + id="id-c45079c9-23f8-4dec-ac1e-f3c235e56be0"> + id="id-43eb4b39-30e1-49fe-bf53-7512d6e184bf" /> + id="id-d62d6ad1-de4d-4326-b6e5-d9f58c55a657"> + id="id-833553d8-3b78-481f-bc28-499fce6cde4a" /> + id="id-c879be9a-3e07-47c9-b649-35c47c607dea"> + id="id-a2b475a1-a500-4480-bf4a-b2f18902336d" /> + id="id-3627a21a-748e-4669-abe2-db2d5936e1ad"> + id="id-d4f92ba7-9d7f-432f-87b8-c62c637f54d9" /> + id="id-360a72b5-4350-4ed2-b6ed-bf301ed20617"> + id="id-316cce9d-8d85-4db5-a0c6-06c5ebf063c1" /> + id="id-ceb12ac5-b089-4228-afa9-45f0988961cc"> + id="id-593adde4-7447-4606-b45a-89a4f09d1f79" /> + id="id-ee89bf1e-3112-42ce-b5c5-1a1e2b33021b"> + id="id-a036848a-04b8-4a0a-be9d-67cafa333b6f" /> + id="id-ab394ddf-f5af-44e2-b3c2-949aca23c50c"> + id="id-e3ef12f2-4daf-41fc-bd4b-b01d7bed7de8" /> + id="id-871a3fc0-c26b-4640-ae1e-80edc9f3478c"> + id="id-889754da-088e-4c02-b581-8f3b4bb78480" /> + id="id-ebe903d1-4931-410e-b4b7-202df3cd04a1"> + id="id-47244d09-43d9-4251-9e33-19cde29199e3" /> + id="id-ba5745aa-1289-44ca-9bf5-714ea7d9e412"> + id="id-2729e7fc-133c-4056-846a-262388c92619" /> + id="id-5cc2b572-d8c8-44f0-9442-b75285964682"> + id="id-d71dc0ea-aaae-4dd1-a425-79a6ae0508b3" /> + id="id-da783539-92f7-4567-be7a-7dc759988c09"> + id="id-706149b8-fd12-4472-9155-2c9347d11df6" /> + id="id-05207000-a1a0-4181-af65-f69d26a00f2b"> + id="id-226fc5f1-016c-4ccd-9bc7-6c8046610ad5" /> + id="id-bb3325d4-8349-4130-a31f-74b88cbb0ac5"> + id="id-5f1b874e-cf6a-48ff-bd7f-6b4eff1050d6" /> + id="id-647aa125-e033-450a-8c26-4fb4632e6038"> + id="id-79837ffc-4b11-4e2e-bf98-9fd918406fda" /> + id="id-15901e59-f61e-483d-b584-42e5f16a8920"> + id="id-9156cb20-bbbe-49f2-9744-50dd0275bfed" /> + id="id-c829d63a-3ce0-432a-b8ec-3a172fd5b478"> + id="id-015f30ac-8f9f-46c4-8f3d-0af411cf62e4" /> + id="id-11268275-85a7-461a-bd59-d1c59f4d1f64"> + id="id-5cd31979-7685-4605-b6c0-848506a2beb7" /> + id="id-5439d6f9-0564-430c-911a-b48b11f1cfee"> + id="id-d62182a5-fce9-4890-9f8e-109759ad7160" /> + id="id-86d6269f-59e8-48e9-a2f3-7bc81c99da56"> + id="id-dd04b27d-cc34-4610-b646-930f7113b526" /> + id="id-86137479-757a-4e85-a165-a693f3d9275c"> + id="id-d304a14e-8252-4663-a649-c2ce5b2322cb" /> + id="id-56bb2087-fcfa-42e8-a0ed-bf083f02fe3d"> + id="id-9e5b78d5-1bac-4827-9fc3-8bfd30caefd9" /> + id="id-fbf179a1-1dc1-46de-81b3-fd68a69e017d"> + id="id-26b00489-7799-45ef-b0f9-3d60390935f7" /> + id="id-8bfb977f-9c54-4b7e-9fc8-3d9bb93601fe"> + id="id-7440fed1-4052-4cbe-8ae8-f5bfa4e0efaf" /> + id="id-ec97404c-f0be-4376-af0b-1029187c308f"> + id="id-2c37c930-6bac-4396-945c-a7e8770dda63" /> + id="id-1c8d4c32-8532-47aa-a514-dd0ab61727a3"> + id="id-e424f076-98c2-42cb-a9a4-d03422302178" /> + id="id-7de674f4-c3d7-405b-b075-9d13c30d637d"> + id="id-7ebfe0d2-7802-499a-9103-db734acf6286" /> + id="id-d48ea2d0-cfe9-43bc-9932-18c1705f55ef"> + id="id-16886f91-a964-484b-b587-d92273bc5305" /> + id="id-a89cd2da-6157-4837-8441-5121f4008184"> + id="id-0d8375ee-e17d-4ad9-99ae-ecf128386732" /> + id="id-731039a8-64c7-404b-af82-a33119403d11"> + id="id-5e777343-eef0-4e22-afa4-be591a88a956" /> + id="id-6eb9234b-e6a0-4092-90a2-2f03220fdc6a"> + id="id-ce6b921a-e014-45c1-9c78-bc3b6ee9ffe8" /> + id="id-9596bd78-82f3-4e33-bbeb-19b3c8b98dd2"> + id="id-5209fab9-6735-44f1-80f1-2fe6d290ad89" /> + id="id-a3db7721-f118-4907-96b3-a4da9b324107"> + id="id-3c8ee776-868b-4b19-9c33-bd43e8539c94" /> + id="id-9d5968d4-e64d-48ea-90b9-d587f4b48307"> + id="id-629ec691-0873-4d1f-a992-f4437b701560" /> + id="id-7425609a-f637-4bb8-ad79-b7e235f3ca0b"> + id="id-eeb3a1ae-762f-45f3-a39f-ce081c2cd41c" /> + id="id-c37bec20-1030-41c0-9677-d6c2ad54d3c0"> + id="id-30a1933d-e57c-44b7-9250-d7b76208091c" /> + id="id-14860a42-d29b-4f56-8349-c840df740407"> + id="id-3faef2ce-8a7c-4c98-ba7d-17ed072bdd03" /> + id="id-d8d8dc3b-b230-4a82-b41f-cfd5e7b8782d"> + id="id-1b8d2c64-6ef8-4c87-9ce6-d952acb73dd9" /> + id="id-5a3be5fb-8e16-4035-967b-518c8ed25199"> + id="id-70c191ed-25a8-4628-8747-afef17700007" /> + id="id-988e8322-c234-4500-a837-c8bf58481953"> + id="id-e853d99d-5570-4bd2-94d1-3c561ce3ade1" /> + id="id-3db3deb0-f4c1-4ba0-a36d-0a09bdcb7349"> + id="id-95105687-efb0-413f-99ac-a377c9982742" /> + id="id-4249c0ef-e74a-4576-87a3-7d06a9feb885"> + id="id-77191fb2-d906-49df-bf8a-6ef9203755ac" /> + id="id-a35509f2-6d6b-4417-b5f1-f5efb6afaf48"> + id="id-d3cc4973-73c8-4cd1-ba87-79ca757f59db" /> + id="id-e67d6789-4a49-4240-9fa0-4fb801eeafab"> + id="id-1e3b3a4a-220b-478e-a7be-43d6d5bc4703" /> + id="id-513e8846-5ec9-4bd7-9a2c-a0af322b6372"> + id="id-e6f9ac80-f641-4928-a876-b28442b2adee" /> + id="id-f515ca8f-c37d-43c9-a40e-7b27915f5c4c"> + id="id-6f9b3634-ff93-4727-b336-609336b25724" /> + id="id-e28c822d-c4cc-4c87-82a5-68e401b69f28"> + id="id-484e893c-610c-446c-a425-025b1b78d9ff" /> + id="id-5f07d7d3-4207-4990-b597-dce03dedc306"> + id="id-17ab1bf2-deff-4644-ab4d-86fa6d410810" /> + id="id-2117854d-0de9-4d7c-bd8d-c1d8840a6629"> + id="id-797400ec-3c98-453b-bdd0-5aa77b2e5bb4" /> @@ -2156,183 +1934,147 @@ id="id-1a266726-eb14-4e24-8106-d7164008b378"> + id="id-db9d19c0-979e-44ae-8eb4-1049dc3af9b6"> + id="id-b41e8575-0aac-40d1-a6e0-3d70f34e06f7" /> + id="id-c0e2f17b-efc4-4601-b0cd-1b05a2c1472a"> + id="id-c9e7462f-ddce-4002-9dcc-34974d56c68d" /> + id="id-9fad458f-fd52-48bd-9c31-c52e676e41c9"> + id="id-26a21e17-c19a-40b6-8516-7e9ef072cd11" /> + id="id-7a50b7f5-3e0e-4ba9-a6e5-45a41b167ad4"> + id="id-8c1e6e9c-4781-4550-939f-e1fdf7e15edb" /> + id="id-4ec6d2fc-058c-4157-bce4-817edc818764"> + id="id-d68e8c2e-736a-4abd-9b0b-fa2a9e769159" /> + id="id-b75baacf-ed92-4684-9c5e-05b6019516ec"> + id="id-e55daa28-2131-4d17-9f3e-d9d9c3f5a092" /> + id="id-286a8cbc-bc94-4327-bf46-d5dabb8841bc"> + id="id-48fc9c54-4fee-41fc-9f08-bf4cb9f04ed1" /> + id="id-ca3a4e32-2302-4fde-82cf-6c4b61eba3ab"> + id="id-825431fc-6a7f-482c-bdda-cc5dd2c07c45" /> + id="id-938b3d18-c01e-4ed5-b365-e44484cdfeac"> + id="id-6f9a7211-e495-4e3e-a03c-d56ca017dd08" /> + id="id-e2a8e4af-edd9-4a95-95db-01ffe6a52259"> + id="id-1fe9917b-9e7d-4b27-aa5d-950f3bb92c12" /> + id="id-4aa7dbf5-c775-4133-8361-c4b6c03e2b87"> + id="id-1063295c-5946-40cb-8c0f-737e198e14bc" /> + id="id-8e26d3f9-0acc-40cc-8b7c-7a11f5b79e8c"> + id="id-9b92f3e4-9f8a-4648-8aa9-b1096e7b546b" /> + id="id-3b3bfe1a-ed36-4905-b50c-39831b0f0fcc"> + id="id-70859586-f380-42ce-b947-7bbaffe01c6e" /> + id="id-60de2980-e1f0-4c47-8d84-b48afdf96bd8"> + id="id-17bb5264-38c6-4828-b7e6-e48098dedbb9" /> + id="id-f5ae276e-c137-45f3-90a3-04d00bbf1698"> + id="id-8f5478bf-32be-4c44-8dda-22254c605163" /> + id="id-bdcec0e4-a7eb-46ae-9284-b55b9194326d"> + id="id-ce684b25-dd47-4d0d-bb0b-3944adbcbe36" /> + id="id-27c1fd3d-626a-4793-9acb-d71e97391d77"> + id="id-29459746-1b61-4e72-be89-c4d34eb3f57b" /> + id="id-1801de5e-72a6-4d20-88ee-8f08b08dc12d"> + id="id-4d10b06e-7f70-48d4-a578-21da1c77ccfb" /> @@ -2342,383 +2084,307 @@ id="id-8ee390bd-e362-4043-b76f-8fae701d2b9d"> + id="id-370090c0-f229-4cc3-b977-d1f2b2cfb282"> + id="id-f7b0409f-6d68-425b-bd2b-b8196eca4bf5" /> + id="id-9488b61b-8748-4b99-a3ce-f86fb51eac50"> + id="id-4bf623d1-d500-401e-b646-72d69561e577" /> + id="id-6b538197-379f-422b-a81d-d4d84913155d"> + id="id-8fa9b461-2f7c-4c61-bc9c-92f7a416a324" /> + id="id-f6418776-b05a-42f6-94eb-29f04542ee17"> + id="id-09045097-edad-4a43-bf86-b07f8f358f63" /> + id="id-c0679ceb-f5b2-41a9-8d39-ad22866fed8f"> + id="id-37d298fd-4917-431c-bf88-583cc01fa857" /> + id="id-c990d75b-e47f-46e8-bd3f-759fb991cafe"> + id="id-a6349817-5dd2-4da7-a6d3-7ebda60ec3ef" /> + id="id-4d9d4e27-ee31-4e15-a85c-7c5dc455b02f"> + id="id-c8a0277b-fb57-4f45-88d1-cd2722e8ebaf" /> + id="id-de50a2d6-fb1e-4b2b-bc10-f211389e7d09"> + id="id-c14b5fdf-53e9-43c8-8cf3-8786b23c1357" /> + id="id-d8d9aff2-a4b0-4e9b-8b69-5e97cefc7bfa"> + id="id-c5a8d00b-5634-4cd2-8afe-e9e51cf1b265" /> + id="id-6dfbdb36-fd0d-4e40-93f0-0d02bc2c5cf6"> + id="id-a008abef-0965-4fa9-b9b4-279dadb21b67" /> + id="id-e028364c-5b83-4bcf-a9d7-cdb669d0cdcf"> + id="id-cbe15ad5-7a10-49fa-b92f-5112a7e4d587" /> + id="id-d4cff158-f5af-4692-9760-dbb894f61a84"> + id="id-a5a2ab1e-d242-402a-8bab-16e8a36fb652" /> + id="id-3babefc6-79d4-4d6e-baba-314bfdd22cc5"> + id="id-ae190d07-f842-4069-b90e-83fc2e3156e0" /> + id="id-c2a9c6c8-804e-4359-882b-cb7610edffa4"> + id="id-9d99f6b7-2e04-4a33-b4d8-9c159746384a" /> + id="id-2a50fd73-ca50-461a-8eda-6bf80acc1641"> + id="id-6b09adb5-13cb-46e1-89d6-3dcc4ffe780b" /> + id="id-cc00f59c-a5d5-406a-8c88-29a1ea56c0ff"> + id="id-b4f6ca8f-13e1-4d81-b89e-cb800c6d4256" /> + id="id-59c940ac-21ce-4f82-940d-30dcf09dddc4"> + id="id-cd882bdb-b6bd-4684-90f7-b87c7b0f80c2" /> + id="id-2949049c-3af9-40d9-92fd-7a42e0ca038e"> + id="id-e87db3a9-156b-4af5-b647-78835aba8505" /> + id="id-4a71ee48-769b-4dc5-8865-a4d6a804da20"> + id="id-ed00a3e2-70c9-4957-9001-af9e27a854e7" /> + id="id-330ba1c6-e272-4897-a0e2-3ac94b5ad2e2"> + id="id-d3bac7c2-de64-4c1c-ae78-feab0f3eed1f" /> + id="id-5497a3de-845e-4c79-b809-3096ea7c4360"> + id="id-05665a3b-447d-4848-b458-60642cba6adc" /> + id="id-afb81de3-fcbb-484c-89d5-cfa52f1e4d72"> + id="id-a156bd31-e009-4a29-b320-fbed4c2bc419" /> + id="id-35242800-b040-42a0-91f8-544563fa571a"> + id="id-ee222360-06be-4819-bbec-6d5316d18964" /> + id="id-4eae52fb-fcd9-4c6c-afaf-885896464b3b"> + id="id-cd272b01-ca78-4b58-a0b4-02df35b014cf" /> + id="id-0bf0725f-f2ef-4d35-a60d-3a5f6d6d8657"> + id="id-3571f176-2935-43a3-a8df-6ccb88e6ef44" /> + id="id-29b57628-9858-473c-b8f6-1869f1c54db7"> + id="id-6fb8a592-81a4-46bd-8c7d-54389c7f7204" /> + id="id-7f711d12-11d1-4f90-98b0-14a81148589f"> + id="id-dd444034-82f2-4610-b34a-9bde91838752" /> + id="id-d483172b-eef6-4f3c-9f43-af04f0a2856d"> + id="id-24a609d8-5b9b-403d-9d3e-e43bf54378eb" /> + id="id-7062763c-299d-4ac9-b156-06fa9950e65e"> + id="id-c3ccaae8-8806-474d-8a5d-f67427ea4f17" /> + id="id-4afdef35-231b-4176-937a-51623c739bec"> + id="id-f3495068-d6e7-4a83-8aed-e599cb957d14" /> + id="id-8ea65ab2-940a-4409-aecb-41deb443e3fb"> + id="id-0868500f-e489-4ce9-a4d6-7412e00ec043" /> + id="id-362b39e6-8324-4ec3-bad6-c6d820cdf9a4"> + id="id-629dbe59-ecc1-4666-969a-5d6223425e66" /> + id="id-2ba1aa66-5168-4252-9a67-474ef3911b44"> + id="id-fc0af5e4-b0e8-4e85-b7a2-133b5e00f054" /> + id="id-85dd834a-0056-4d06-aeed-b2864777dc6c"> + id="id-4171190d-99a2-4561-b3e0-6d3580cf05de" /> + id="id-6d110b19-6ebf-4fb0-98fb-44055883caa9"> + id="id-04cae73f-72b9-4346-a225-6b8ef3dfea49" /> + id="id-5907229d-cd57-47c2-8720-cfe65c6f8cc9"> + id="id-4bfc7d03-f540-45a3-bbec-0aebc6139447" /> + id="id-3ebf5f52-1146-4d24-9542-5311d10d2025"> + id="id-30287741-6df7-47bd-86ac-32fbd086f215" /> + id="id-115048c2-58bb-4b2c-89ee-e1e3c5eca9e9"> + id="id-1ecad964-cf4c-47ca-be8e-fb47461c68e3" /> @@ -2728,313 +2394,251 @@ id="id-2e586840-ba83-43a2-b1ba-75c1f178fe7a"> + id="id-ddc09d16-7f10-47d4-aa9a-cd4ffdcc2aee"> + id="id-b299f53a-9603-4bc5-aa37-ed9566683c71" /> + id="id-5213cb68-d4e8-498f-abc7-00c0c5e8417f"> + id="id-d6a63460-22ef-4917-b24b-bdae54463558" /> + id="id-35038faf-ec69-4739-9d59-368b62527749"> + id="id-b85b87e2-e118-45d0-91be-43c6b32f7278" /> + id="id-e2e4ef6c-e715-4bec-9514-94f975c9043b"> + id="id-df8d504f-3866-4e34-b575-8191ef3248c1" /> + id="id-53305245-91a1-4f23-ba25-e1e2ba997b1e"> + id="id-9f8e35e3-7816-45f2-89d3-4b70d58d6a52" /> + id="id-bb54557c-f00c-4836-99bf-c21186854765"> + id="id-601603ca-5de6-4ef0-8616-acc20364c538" /> + id="id-757f8a4b-8d7c-403c-bfe0-7b48bc875bc4"> + id="id-8f6a4071-5304-4fc9-bbd0-a668b6f311ad" /> + id="id-1f8626e2-e0b5-4175-8286-81341c9f6e30"> + id="id-948174ab-9265-4d14-916a-513dc2176828" /> + id="id-2aa4e615-4f0d-4e5e-8bac-776f9ef66a04"> + id="id-886b8908-3239-43ce-9df4-3a4be133d1b1" /> + id="id-5b3ba1d6-b1f5-4ef4-bba7-74f46c5b8b2a"> + id="id-81ce085e-adb9-4a16-a725-7399ed174197" /> + id="id-864319a9-3c41-4fc9-b630-9279c9543d2e"> + id="id-3d776d4e-6df7-4657-b5f7-32c421b948c8" /> + id="id-4641e063-99d4-46df-beca-34484eeafdff"> + id="id-3267f133-a3e4-4638-9b18-53744ec45680" /> + id="id-682a44f2-499e-4ba0-aea6-d91b97cd360b"> + id="id-3150c039-5518-49be-8866-bc5d45e8412e" /> + id="id-b9bc7d0e-492d-46a8-aae6-b095e788df2c"> + id="id-156b015c-72d2-4e8d-a43d-3f71f8002a31" /> + id="id-67c50d9c-47fb-4806-b0bc-d2104a18c249"> + id="id-021d5287-3906-4193-b196-22a15bb05563" /> + id="id-3b31ff6e-d6b3-4531-824c-116db12ae036"> + id="id-d8e393fa-2fd5-45da-b616-59bf2a31d011" /> + id="id-d81e0164-c391-4493-a557-b98f0301bba0"> + id="id-1f7d6351-0d68-4817-a0dc-bf9430df72dd" /> + id="id-26c223e6-13d3-47bc-8571-ebe69ce64f74"> + id="id-9f78ae27-da46-4cae-9610-edd197791fb8" /> + id="id-fd7e146e-fdb0-49a4-9587-fd6e8332b092"> + id="id-b07c15f0-88b5-4fa4-85eb-1548642e53a6" /> + id="id-c2fa87bf-1f45-41c7-a4c9-795985193384"> + id="id-1e74fb07-89e6-4045-8046-b25c23c35827" /> + id="id-c15edaf6-d264-44c8-85dc-67cbdae4efbb"> + id="id-05438fcf-49c3-486a-9862-2908b17ca473" /> + id="id-65327638-e5c3-4fa6-94f6-a387e64d25c6"> + id="id-a2a3460f-df3c-455b-b53a-9bce15c8f50a" /> + id="id-ed2624f0-e19b-4aa4-907b-fb4f5d72e157"> + id="id-e636cdc3-3ae1-4993-9148-a0920f01822b" /> + id="id-b69c849b-9703-41e5-8af0-7e30c7e1b155"> + id="id-15d2c571-f9a1-46f3-b9c0-b7cabf2994f6" /> + id="id-172ba32e-38db-4b24-b013-be90fe0eb329"> + id="id-71ba2af7-4fc0-43ff-a726-7b0a1fa1f411" /> + id="id-95f42b18-62e1-4547-8b97-a91d473ede6f"> + id="id-45784045-d046-43d3-9939-275a27c39c0c" /> + id="id-33ab558b-a585-4fc1-aa36-20464889a9e8"> + id="id-8b8b17ce-7cd0-470d-b0df-f726a27ce062" /> + id="id-edaa639b-b280-4a98-a67c-553c01e977c2"> + id="id-1ccf3fe5-4fb6-4cc2-ab89-bbd5baa0d3fc" /> + id="id-17ba2fda-eb63-4bee-b4a3-1bd53fc83b4b"> + id="id-e4b4ed38-03e4-4a90-8512-5d35a6ecce68" /> + id="id-22ccb208-0473-4b07-8e3c-3cdd9947cf9b"> + id="id-276044c6-d417-468f-ab8e-5b027291bac2" /> + id="id-a2831b9e-d6ff-4af2-aa54-990ae033608c"> + id="id-828228cc-37e7-4c61-8747-1108a5187370" /> @@ -3044,383 +2648,307 @@ id="g79784"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -3430,233 +2958,187 @@ id="id-bbd7b9fb-e6b9-4868-ab11-d2406bf430d8"> + id="id-772f94d3-1c7c-413c-b02b-77fee8b232b1"> + id="id-7bf53810-bef0-4644-895c-afa8d5f4c1a8" /> + id="id-08cf0f37-1788-4dd9-842c-73fd28c590c7"> + id="id-247ba765-3580-4bba-85bd-f999fd587a8e" /> + id="id-d4588d22-5358-4c82-8582-ceb1ed91ddbe"> + id="id-9b8b45b2-24e9-4586-99ed-232be95d0f2a" /> + id="id-e9016403-9827-4813-8775-b30ca6772f13"> + id="id-5684dc98-a475-4304-a660-5945e8d4161d" /> + id="id-04de9723-8e0f-4a3e-b198-aa92e212cf9d"> + id="id-37f764fe-a25f-44eb-9e07-611d03e3628e" /> + id="id-f7a213d1-55c2-4417-8bca-ecf6af70346d"> + id="id-e133a3b8-c4ca-43a3-8156-340baee375ba" /> + id="id-558e1bfc-3507-450b-96ff-78352ac5c5e5"> + id="id-2d60e0d4-0350-45e7-aa09-33f36e94a55e" /> + id="id-8e9d253d-e017-4e16-b27e-8ee6f6fdfc6d"> + id="id-fc684379-08b4-486f-872a-6a93198b2de5" /> + id="id-1d012433-f204-4f69-a977-b0f7131cacd7"> + id="id-f6e1f947-f403-4789-b020-867dbf11861b" /> + id="id-0b4125e2-3610-45f6-ad7a-231d5ae93139"> + id="id-d44d535a-072f-4d4a-a0a1-088918a0b650" /> + id="id-f2c00f08-ada4-4cfa-903e-390d92bba462"> + id="id-b98ed50a-27e3-4abe-ab90-81af3760872c" /> + id="id-ecb1a6f9-551a-476d-9896-e698d1ffa6e8"> + id="id-4aa1ae69-5b27-40c3-abfd-201fd4d25c96" /> + id="id-b8e583dd-2d0c-47c8-819d-662faee17a76"> + id="id-c5148675-f0aa-4734-9a46-a558041e162a" /> + id="id-03fe1a7f-5086-4b5c-92cb-bce8480c44d0"> + id="id-23f14dd3-1abe-4646-962f-b6005d27e986" /> + id="id-d348df3c-aff1-4243-b567-d75aa4340561"> + id="id-c2ab98f8-e781-48fb-a668-0a2b740f0a4d" /> + id="id-7fe7088a-1265-48b7-99a8-d6e6b78e882b"> + id="id-63231045-4a0b-44fd-bd65-bb509a6d6e3a" /> + id="id-41ab9fd8-ab99-41b9-8347-3f61eb41d911"> + id="id-80b5b671-68ea-477f-b635-e554fe5073ec" /> + id="id-ee40d6c2-2120-4645-a397-132b9a1f866b"> + id="id-4d1ee7f1-49c2-468c-8bce-652609decfec" /> + id="id-4caf66f9-96f0-4644-9c84-320357b119a1"> + id="id-d3b8a1ac-016f-4be5-a0f0-6a12c86f2198" /> + id="id-e78979c5-5838-43f4-8c7d-beabb68ae356"> + id="id-9d6ac180-41e1-4985-89f7-890b6d3d1cd0" /> + id="id-38ffa48e-e27a-46a2-9c2f-45d249e3fadb"> + id="id-9a3e34dc-fe1b-420c-b327-3c2b9d7b1a08" /> + id="id-73a26404-9d18-4769-857f-17fa4668d155"> + id="id-9fbd6f1e-6ec0-4c4a-a7f2-656feb4aa277" /> + id="id-46de0d22-ba59-4550-82e4-b2d190af608a"> + id="id-62f2ae84-563c-434a-accb-9b675ec3b652" /> @@ -3666,168 +3148,110 @@ id="g8171"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> - - - - - - + id="base" + inkscape:pagecheckerboard="0"> + units="cm" /> @@ -3875,7 +3298,6 @@ image/svg+xml - @@ -3883,22964 +3305,6151 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" - transform="translate(-7.028636,-3.6067411)"> + style="display:inline"> - + id="g41737" + transform="translate(-103.23068,-6.2465554)"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + id="g79812" + style="fill:#000000;fill-opacity:1"> + - - + id="path79788" + d="M 7.8125,-0.359375 5.765625,-3.828125 C 6.53125,-4 7.65625,-4.453125 7.65625,-5.9375 c 0,-2.359375 -2.59375,-2.359375 -3.125,-2.359375 h -2.875 c -0.421875,0 -0.5625,0.140625 -0.5625,0.578125 v 7.140625 C 1.09375,-0.140625 1.21875,0 1.65625,0 H 2.234375 C 2.6875,0 2.8125,-0.15625 2.8125,-0.578125 V -3.71875 h 1.328125 l 1.953125,3.4375 C 6.265625,0 6.390625,0 6.65625,0 H 7.359375 C 7.609375,0 7.8125,0 7.8125,-0.359375 Z M 6,-5.921875 c 0,0.703125 -0.171875,1.34375 -1.640625,1.34375 H 2.8125 v -2.6875 H 4.359375 C 5.75,-7.265625 6,-6.71875 6,-5.921875 Z m 0,0" + style="stroke:none" /> + + - - + style="stroke:none" /> + + - - + style="stroke:none" /> + + - - + id="path79800" + d="m 6.390625,-4.84375 c 0,-0.046875 -0.0625,-0.328125 -0.09375,-0.453125 C 6.25,-5.578125 6.25,-5.609375 6.03125,-5.609375 c -0.359375,0 -0.96875,0.140625 -1.421875,0.421875 -0.5625,-0.375 -1.171875,-0.421875 -1.6875,-0.421875 -0.5,0 -2.40625,0 -2.40625,1.96875 0,0.484375 0.125,1.078125 0.578125,1.484375 -0.3125,0.4375 -0.3125,0.90625 -0.3125,0.96875 0,0.21875 0.0625,0.609375 0.3125,0.9375 -0.171875,0.078125 -0.796875,0.28125 -0.796875,1.046875 0,0.375 0.1875,1 0.9375,1.34375 0.671875,0.3125 1.484375,0.328125 2.046875,0.328125 0.703125,0 2.984375,0 2.984375,-1.703125 0,-1.859375 -1.6875,-1.859375 -3.296875,-1.859375 H 2.390625 c -0.4375,0 -0.59375,0 -0.765625,-0.15625 -0.046875,-0.046875 -0.25,-0.21875 -0.25,-0.53125 0,-0.078125 0.015625,-0.109375 0.03125,-0.171875 0.546875,0.296875 1.265625,0.296875 1.515625,0.296875 0.5,0 2.390625,0 2.390625,-1.96875 0,-0.6875 -0.25,-1.109375 -0.359375,-1.234375 0.203125,0 0.609375,0 1.109375,0.125 0.046875,0.03125 0.125,0.046875 0.171875,0.046875 0.09375,0 0.15625,-0.0625 0.15625,-0.15625 z m -2.59375,1.203125 c 0,0.671875 -0.046875,1.125 -0.875,1.125 -0.84375,0 -0.875,-0.453125 -0.875,-1.109375 0,-0.65625 0.03125,-1.125 0.875,-1.125 0.828125,0 0.875,0.453125 0.875,1.109375 z m 1.234375,4.4375 c 0,0.8125 -1.359375,0.8125 -1.75,0.8125 -0.46875,0 -1.75,0 -1.75,-0.84375 0,-0.5625 0.375,-0.5625 0.640625,-0.5625 H 3.5625 c 0.96875,0 1.46875,0.171875 1.46875,0.59375 z m 0,0" + style="stroke:none" /> + + - - + id="path79804" + d="M 5.96875,-0.578125 V -4.90625 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 4.921875 c -0.453125,0 -0.578125,0.15625 -0.578125,0.5625 v 2.84375 c 0,0.78125 -0.40625,1.46875 -1.265625,1.46875 -0.65625,0 -0.734375,-0.171875 -0.734375,-0.8125 v -3.5 c 0,-0.375 -0.078125,-0.5625 -0.578125,-0.5625 h -0.46875 c -0.4375,0 -0.578125,0.125 -0.578125,0.5625 V -1.5 c 0,1.265625 0.6875,1.625 1.9375,1.625 0.3125,0 1.171875,0 1.734375,-1.015625 v 0.3125 C 4.390625,-0.1875 4.46875,0 4.953125,0 H 5.40625 c 0.453125,0 0.5625,-0.15625 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + + - - + id="path79808" + d="m 2.671875,0.375 v -5.28125 c 0,-0.375 -0.078125,-0.5625 -0.5625,-0.5625 H 1.65625 c -0.453125,0 -0.5625,0.15625 -0.5625,0.5625 v 5.578125 c 0,0.296875 0,0.78125 -0.71875,0.78125 -0.21875,0 -0.5,-0.046875 -0.75,-0.21875 C -0.40625,1.21875 -0.453125,1.1875 -0.5,1.1875 c -0.09375,0 -0.109375,0 -0.21875,0.3125 -0.046875,0.125 -0.125,0.359375 -0.125,0.390625 0,0.21875 0.984375,0.5625 1.734375,0.5625 1.328125,0 1.78125,-0.890625 1.78125,-2.078125 z m 0,-7.625 v -0.21875 c 0,-0.390625 -0.078125,-0.578125 -0.5625,-0.578125 H 1.5 c -0.453125,0 -0.578125,0.15625 -0.578125,0.578125 V -7.25 c 0,0.359375 0.0625,0.578125 0.578125,0.578125 h 0.609375 c 0.5,0 0.5625,-0.21875 0.5625,-0.578125 z m 0,0" + style="stroke:none" /> + + + + - - + id="path79814" + d="M 5.578125,0 V -0.65625 H 4.625 L 2,-0.640625 H 1.6875 l 3.828125,-5.875 v -0.40625 H 0.6875 v 0.625 h 2 c 0.109375,0 0.234375,-0.015625 0.359375,-0.015625 h 1.34375 L 0.5625,-0.421875 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="path79818" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + + - - + id="path79822" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="path79826" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + + - - - - - + style="stroke:none" /> + + - - + id="path79834" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> + + - - + id="path79838" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + + + + - - + style="stroke:none" /> + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + style="stroke:none" /> - - - + transform="translate(176.654,56.242)" + id="g79856"> + id="path79854" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(181.802,56.242)" + id="g79860"> + id="path79858" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(186.23,56.242)" + id="g79864"> + id="path79862" + d="M 4.6875,0 2.796875,-2.71875 4.46875,-4.421875 H 3.578125 l -2.015625,2.0625 v -4.5625 H 0.84375 V 0 h 0.6875 V -1.40625 L 2.328125,-2.234375 3.875,0 Z m 0,0" + style="stroke:none" /> + transform="translate(191.101,56.242)" + id="g79868"> + id="path79866" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(194.698,56.242)" + id="g79872"> + id="path79870" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(199.127,56.242)" + id="g79876"> + id="path79874" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(202.531,56.242)" + id="g79880"> + id="path79878" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.0625,-4.1875 H 2.84375 L 1.515625,-5.25 H 2.125 Z m 0,0" + style="stroke:none" /> + + + transform="translate(210.287,56.242)" + id="g79886"> + id="path79884" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(217.935,56.242)" + id="g79892"> + id="path79890" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(222.917,56.242)" + id="g79896"> + id="path79894" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(226.514,56.242)" + id="g79900"> + id="path79898" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 1.640625,-5.640625 V -6.53125 H 0.75 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(228.894,56.242)" + id="g79904"> + id="path79902" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(232.713,56.242)" + id="g79908"> + id="path79906" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(236.31,56.242)" + id="g79912"> + id="path79910" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + style="stroke:none" /> - - + transform="translate(240.739,56.242)" + id="g79916"> + id="path79914" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(245.886,56.242)" + id="g79920"> + id="path79918" + d="m 4.453125,-4.421875 h -0.75 C 2.40625,-1.25 2.375,-0.796875 2.375,-0.5625 H 2.359375 C 2.296875,-1.234375 1.5,-3.09375 1.46875,-3.1875 L 0.921875,-4.421875 H 0.140625 L 2.078125,0 1.71875,0.890625 C 1.453125,1.46875 1.28125,1.46875 1.140625,1.46875 0.984375,1.46875 0.671875,1.4375 0.375,1.3125 l 0.046875,0.65625 c 0.21875,0.046875 0.5,0.078125 0.71875,0.078125 0.359375,0 0.71875,-0.125 1.125,-1.140625 z m -0.75,-2.5 H 2.9375 L 1.609375,-5.25 H 2.21875 Z m 0,0" + style="stroke:none" /> - - + transform="translate(250.48,56.242)" + id="g79924"> + id="path79922" + d="m 4.140625,-0.40625 -0.0625,-0.65625 c -0.515625,0.390625 -1.046875,0.53125 -1.5625,0.53125 -0.828125,0 -1.375,-0.71875 -1.375,-1.6875 C 1.140625,-3 1.5,-3.953125 2.5625,-3.953125 c 0.515625,0 0.859375,0.078125 1.40625,0.4375 l 0.125,-0.65625 C 3.5,-4.5 3.15625,-4.59375 2.546875,-4.59375 c -1.375,0 -2.1875,1.203125 -2.1875,2.375 0,1.234375 0.90625,2.328125 2.15625,2.328125 0.53125,0 1.078125,-0.140625 1.625,-0.515625 z m 0,0" + style="stroke:none" /> + + + + transform="translate(263.374,56.242)" + id="g79934"> + id="path79932" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z M 3.25,-6.953125 H 2.65625 L 1.703125,-5.71875 0.75,-6.953125 H 0.15625 l 1.25,1.71875 H 2 Z m 0,0" + style="stroke:none" /> + transform="translate(266.778,56.242)" + id="g79938"> + id="path79936" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(271.206,56.242)" + id="g79942"> + id="path79940" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(275.025,56.242)" + id="g79946"> + id="path79944" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(279.453,56.242)" + id="g79950"> + id="path79948" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(284.601,56.242)" + id="g79954"> + id="path79952" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(286.981,56.242)" + id="g79958"> + id="path79956" + d="m 4.140625,-5.484375 c 0,-0.671875 -0.40625,-1.546875 -1.90625,-1.546875 C 1.625,-7.03125 1.09375,-6.859375 0.5625,-6.5 l 0.21875,0.625 c 0.25,-0.21875 0.734375,-0.546875 1.453125,-0.546875 0.46875,0 1.125,0.078125 1.125,0.921875 0,0.453125 -0.21875,0.640625 -0.34375,0.765625 C 1.875,-3.765625 1.875,-2.5 1.875,-2.0625 V -1.75 h 0.671875 v -0.53125 c 0,-0.6875 0.328125,-1.421875 1.015625,-2 0.203125,-0.171875 0.578125,-0.484375 0.578125,-1.203125 z M 2.625,0 V -0.828125 H 1.796875 V 0 Z m 0,0" + style="stroke:none" /> - - - + transform="translate(125.87,68.197)" + id="g79964"> + id="path79962" + d="M 7.71875,0 V -6.921875 H 6.578125 L 5.28125,-3.53125 C 4.9375,-2.625 4.46875,-1.390625 4.359375,-0.921875 H 4.34375 c -0.046875,-0.21875 -0.171875,-0.578125 -0.3125,-1 l -1.5625,-4.125 -0.34375,-0.875 H 1 V 0 H 1.78125 V -6.1875 C 1.84375,-5.859375 2.25,-4.78125 2.5,-4.09375 l 1.484375,3.875 h 0.71875 L 6.03125,-3.6875 6.515625,-4.953125 C 6.609375,-5.25 6.875,-5.96875 6.921875,-6.1875 H 6.9375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(134.587,68.197)" + id="g79968"> + id="path79966" + d="M 4.34375,0 V -4.421875 H 3.5625 v 2.890625 c 0,0.75 -0.5625,1.09375 -1.203125,1.09375 -0.703125,0 -0.78125,-0.265625 -0.78125,-0.6875 V -4.421875 H 0.8125 v 3.328125 c 0,0.71875 0.21875,1.203125 1.046875,1.203125 0.53125,0 1.234375,-0.15625 1.734375,-0.59375 V 0 Z M 3.078125,-5.984375 c 0,0.359375 -0.421875,0.359375 -0.5,0.359375 -0.078125,0 -0.5,0 -0.5,-0.359375 0,-0.375 0.40625,-0.375 0.5,-0.375 0.078125,0 0.5,0 0.5,0.375 z m 0.59375,0 c 0,-0.46875 -0.484375,-0.84375 -1.09375,-0.84375 -0.65625,0 -1.109375,0.390625 -1.109375,0.828125 0,0.484375 0.484375,0.84375 1.109375,0.84375 0.640625,0 1.09375,-0.390625 1.09375,-0.828125 z m 0,0" + style="stroke:none" /> + transform="translate(139.735,68.197)" + id="g79972"> + id="path79970" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z M 3.703125,-6.953125 H 3.125 L 2.15625,-5.71875 1.203125,-6.953125 H 0.625 l 1.234375,1.71875 H 2.46875 Z m 0,0" + style="stroke:none" /> + transform="translate(144.066,68.197)" + id="g79976"> + id="path79974" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(148.494,68.197)" + id="g79980"> + id="path79978" + d="m 3.59375,-1.28125 c 0,-0.546875 -0.375,-0.875 -0.390625,-0.90625 C 2.8125,-2.546875 2.546875,-2.609375 2.046875,-2.6875 1.5,-2.796875 1.03125,-2.90625 1.03125,-3.390625 1.03125,-4 1.75,-4 1.890625,-4 c 0.3125,0 0.84375,0.03125 1.40625,0.375 l 0.125,-0.65625 C 2.90625,-4.515625 2.5,-4.59375 1.984375,-4.59375 c -0.25,0 -1.65625,0 -1.65625,1.296875 0,0.5 0.296875,0.8125 0.546875,1 0.296875,0.21875 0.515625,0.265625 1.0625,0.375 0.359375,0.0625 0.9375,0.1875 0.9375,0.71875 0,0.6875 -0.78125,0.6875 -0.9375,0.6875 -0.796875,0 -1.359375,-0.375 -1.53125,-0.484375 l -0.125,0.671875 c 0.3125,0.15625 0.859375,0.4375 1.671875,0.4375 0.1875,0 0.734375,0 1.15625,-0.3125 0.3125,-0.25 0.484375,-0.640625 0.484375,-1.078125 z M 3.453125,-6.953125 H 2.875 L 1.90625,-5.71875 0.953125,-6.953125 H 0.375 l 1.234375,1.71875 H 2.21875 Z m 0,0" + style="stroke:none" /> + transform="translate(155.63,68.197)" + id="g79986"> + id="path79984" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(160.778,68.197)" + id="g79990"> - - - - - - - - - + style="stroke:none" /> + transform="translate(168.893,68.197)" + id="g79996"> - - - - - - - - - - - + id="path79994" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.890625,0 -1.390625,0.671875 -1.4375,0.75 V -4.484375 H 0.8125 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(174.041,68.197)" + id="g80000"> + id="path79998" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0.203125,-4.21875 H 3.171875 L 2.21875,-5.71875 1.25,-6.953125 H 0.671875 l 1.234375,1.71875 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(178.47,68.197)" + id="g80004"> + id="path80002" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> - - - + transform="translate(184.444,68.197)" + id="g80010"> + id="path80008" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> - - + transform="translate(187.848,68.197)" + id="g80014"> + id="path80012" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(192.277,68.197)" + id="g80018"> + style="stroke:none" /> + transform="translate(197.065,68.197)" + id="g80022"> + id="path80020" + d="m 4.828125,-3.90625 -0.109375,-0.625 c -0.6875,0 -1.265625,0.1875 -1.5625,0.3125 -0.21875,-0.171875 -0.546875,-0.3125 -0.953125,-0.3125 -0.859375,0 -1.578125,0.71875 -1.578125,1.625 0,0.359375 0.125,0.71875 0.328125,0.984375 C 0.65625,-1.515625 0.65625,-1.125 0.65625,-1.078125 0.65625,-0.8125 0.75,-0.53125 0.921875,-0.3125 0.40625,-0.015625 0.28125,0.453125 0.28125,0.703125 c 0,0.75 0.984375,1.34375 2.203125,1.34375 1.21875,0 2.203125,-0.578125 2.203125,-1.34375 C 4.6875,-0.6875 3.03125,-0.6875 2.640625,-0.6875 h -0.875 c -0.125,0 -0.578125,0 -0.578125,-0.53125 0,-0.109375 0.03125,-0.265625 0.109375,-0.359375 0.203125,0.15625 0.53125,0.296875 0.90625,0.296875 0.890625,0 1.59375,-0.75 1.59375,-1.625 0,-0.484375 -0.21875,-0.859375 -0.328125,-1 l 0.046875,0.015625 C 3.734375,-3.890625 4,-3.9375 4.25,-3.9375 c 0.171875,0 0.578125,0.03125 0.578125,0.03125 z m -1.734375,1 c 0,0.765625 -0.46875,1.046875 -0.890625,1.046875 -0.375,0 -0.890625,-0.21875 -0.890625,-1.046875 0,-0.828125 0.515625,-1.0625 0.890625,-1.0625 0.421875,0 0.890625,0.28125 0.890625,1.0625 z M 4,0.71875 c 0,0.4375 -0.6875,0.765625 -1.5,0.765625 -0.8125,0 -1.515625,-0.3125 -1.515625,-0.78125 0,-0.03125 0,-0.671875 0.765625,-0.671875 H 2.65625 C 2.875,0.03125 4,0.03125 4,0.71875 Z m 0,0" + style="stroke:none" /> + transform="translate(202.046,68.197)" + id="g80026"> + id="path80024" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(207.027,68.197)" + id="g80030"> + id="path80028" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(211.621,68.197)" + id="g80034"> + id="path80032" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(216.409,68.197)" + id="g80038"> + id="path80036" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> + transform="translate(223.324,68.197)" + id="g80044"> - - - + id="path80042" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0,0" + style="stroke:none" /> + transform="translate(231.43,68.197)" + id="g80050"> + id="path80048" + d="m 4.328125,0 v -6.921875 h -0.75 v 2.9375 C 3.046875,-4.421875 2.5,-4.53125 2.125,-4.53125 c -0.984375,0 -1.765625,1.03125 -1.765625,2.3125 0,1.3125 0.765625,2.328125 1.71875,2.328125 0.328125,0 0.90625,-0.09375 1.46875,-0.625 V 0 Z M 3.546875,-1.390625 C 3.546875,-1.25 3.53125,-1.0625 3.21875,-0.78125 2.984375,-0.578125 2.734375,-0.5 2.484375,-0.5 c -0.625,0 -1.34375,-0.46875 -1.34375,-1.703125 0,-1.3125 0.859375,-1.71875 1.4375,-1.71875 0.453125,0 0.75,0.21875 0.96875,0.546875 z m 0,0" + style="stroke:none" /> + transform="translate(236.577,68.197)" + id="g80054"> + id="path80052" + d="m 4.078125,0 v -2.875 c 0,-1.015625 -0.734375,-1.71875 -1.640625,-1.71875 -0.65625,0 -1.109375,0.15625 -1.5625,0.421875 l 0.046875,0.65625 C 1.453125,-3.875 1.9375,-4 2.4375,-4 c 0.46875,0 0.859375,0.390625 0.859375,1.125 v 0.4375 C 1.796875,-2.421875 0.53125,-2 0.53125,-1.125 c 0,0.421875 0.28125,1.234375 1.140625,1.234375 0.140625,0 1.078125,-0.015625 1.65625,-0.46875 V 0 Z m -0.78125,-1.3125 c 0,0.1875 0,0.4375 -0.34375,0.625 C 2.671875,-0.515625 2.296875,-0.5 2.1875,-0.5 1.703125,-0.5 1.25,-0.734375 1.25,-1.140625 1.25,-1.84375 2.875,-1.90625 3.296875,-1.9375 Z m 0.5,-5.609375 H 3.015625 L 1.6875,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> + transform="translate(241.365,68.197)" + id="g80058"> + id="path80056" + d="m 1.5625,0 v -6.921875 h -0.75 V 0 Z m 0,0" + style="stroke:none" /> - - - - - - + transform="translate(247.073,68.197)" + id="g80064"> + id="path80062" + d="m 4.34375,0 v -2.96875 c 0,-0.65625 -0.15625,-1.5625 -1.375,-1.5625 -0.609375,0 -1.09375,0.296875 -1.40625,0.71875 v -3.109375 h -0.75 V 0 h 0.765625 v -2.4375 c 0,-0.65625 0.25,-1.484375 1.015625,-1.484375 0.953125,0 0.96875,0.703125 0.96875,1.015625 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(252.211,68.197)" + id="g80070"> + id="path80068" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(260.52,68.197)" + id="g80076"> + id="path80074" + d="m 3.265625,-3.875 v -0.65625 c -0.890625,0 -1.4375,0.5 -1.75,0.953125 v -0.90625 H 0.8125 V 0 h 0.75 V -2.140625 C 1.5625,-3.125 2.28125,-3.84375 3.265625,-3.875 Z m 0,0" + style="stroke:none" /> + transform="translate(263.924,68.197)" + id="g80080"> + id="path80078" + d="m 4.671875,-2.1875 c 0,-1.34375 -1,-2.40625 -2.171875,-2.40625 -1.234375,0 -2.203125,1.09375 -2.203125,2.40625 0,1.3125 1.015625,2.296875 2.1875,2.296875 1.1875,0 2.1875,-1 2.1875,-2.296875 z m -0.78125,-0.109375 c 0,1.1875 -0.671875,1.765625 -1.40625,1.765625 -0.6875,0 -1.40625,-0.5625 -1.40625,-1.765625 0,-1.203125 0.75,-1.6875 1.40625,-1.6875 0.703125,0 1.40625,0.515625 1.40625,1.6875 z m 0,0" + style="stroke:none" /> + transform="translate(268.905,68.197)" + id="g80084"> + id="path80082" + d="M 4,0 V -0.625 H 2.546875 c -0.125,0 -0.25,0.015625 -0.359375,0.015625 H 1.328125 l 2.65625,-3.421875 v -0.390625 h -3.5625 v 0.578125 h 1.375 c 0.125,0 0.25,0 0.359375,0 H 2.9375 l -2.65625,3.4375 V 0 Z m 0,0" + style="stroke:none" /> + transform="translate(273.236,68.197)" + id="g80088"> + id="path80086" + d="m 4.453125,-4.421875 h -0.75 l -0.796875,2.0625 C 2.703125,-1.796875 2.390625,-1 2.3125,-0.53125 H 2.296875 C 2.25,-0.890625 1.984375,-1.578125 1.890625,-1.84375 L 0.921875,-4.421875 H 0.140625 L 1.859375,0 h 0.875 z m 0,0" + style="stroke:none" /> + transform="translate(277.83,68.197)" + id="g80092"> + id="path80090" + d="m 1.5625,0 v -4.421875 h -0.75 V 0 Z M 2.90625,-6.921875 H 2.140625 L 0.8125,-5.25 h 0.609375 z m 0,0" + style="stroke:none" /> - - + transform="translate(280.21,68.197)" + id="g80096"> + id="path80094" + d="M 1.828125,0.59375 V -4.421875 H 1.09375 V 0.6875 c 0,0.671875 -0.578125,0.71875 -0.75,0.71875 -0.28125,0 -0.515625,-0.09375 -0.75,-0.3125 l -0.203125,0.609375 c 0.484375,0.28125 0.9375,0.34375 1.203125,0.34375 0.625,0 1.234375,-0.515625 1.234375,-1.453125 z m 0,-6.234375 V -6.53125 h -0.875 v 0.890625 z m 0,0" + style="stroke:none" /> + transform="translate(282.867,68.197)" + id="g80100"> + id="path80098" + d="M 4.125,-2.1875 C 4.125,-2.515625 4.109375,-3.265625 3.734375,-3.875 3.3125,-4.484375 2.71875,-4.59375 2.359375,-4.59375 1.25,-4.59375 0.34375,-3.53125 0.34375,-2.25 c 0,1.3125 0.96875,2.359375 2.15625,2.359375 0.625,0 1.203125,-0.234375 1.59375,-0.515625 L 4.03125,-1.0625 C 3.40625,-0.53125 2.734375,-0.5 2.515625,-0.5 1.71875,-0.5 1.078125,-1.203125 1.046875,-2.1875 Z M 3.5625,-2.734375 H 1.09375 c 0.15625,-0.75 0.6875,-1.25 1.265625,-1.25 0.515625,0 1.0625,0.328125 1.203125,1.25 z m 0,0" + style="stroke:none" /> + transform="translate(287.295,68.197)" + id="g80104"> + id="path80102" + d="M 3.3125,-0.265625 3.15625,-0.859375 C 2.890625,-0.640625 2.578125,-0.53125 2.25,-0.53125 c -0.359375,0 -0.5,-0.296875 -0.5,-0.828125 V -3.84375 H 3.15625 V -4.421875 H 1.75 V -5.6875 H 1.0625 v 1.265625 h -0.875 v 0.578125 h 0.84375 v 2.65625 c 0,0.59375 0.140625,1.296875 0.828125,1.296875 0.6875,0 1.203125,-0.25 1.453125,-0.375 z m 0,0" + style="stroke:none" /> - - + transform="translate(290.892,68.197)" + id="g80108"> + id="path80106" + d="M 1.796875,0 V -0.828125 H 0.96875 V 0 Z m 0,0" + style="stroke:none" /> - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + aria-label="Důležitý je celý postup, +nejen výsledek." + id="text6805-0-9-7" + style="font-size:3.52778px;line-height:1.15;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;display:inline;stroke-width:0.264583"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/seminar/templates/seminar/jakresit/jakresit_3.svg b/seminar/templates/seminar/jakresit/jakresit_3.svg index 391ebc7c..40ed0da2 100644 --- a/seminar/templates/seminar/jakresit/jakresit_3.svg +++ b/seminar/templates/seminar/jakresit/jakresit_3.svg @@ -1,22 +1,34 @@ + inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)" + sodipodi:docname="jak_resit_2023_web_3.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:ns10="http://www.iki.fi/pav/software/textext/"> + + + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + id="path30242" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> - - - - - - - - - - - - - - - - - - - - - + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1pt;stroke-opacity:1" + transform="scale(-0.8)" /> + id="path6554" /> + id="path6534" /> + id="path6524" /> + id="path6514" /> + id="path6504" /> + id="path6494" /> + id="path6484" /> + id="path6474" /> + id="path6464" /> + id="path6454" /> + id="path6444" /> + id="path6434" /> + id="path6424" /> + id="path4376" /> + id="path4322" /> + id="path4234" /> + id="path4231" /> + id="id-58d9e82b-c60c-4c26-8d27-25478f5c3f75"> + id="id-74bba7de-3236-4e7e-b81c-cd74e04b7ee8" /> + id="id-03b7ac0a-6c29-4a9d-af6b-0ed77e89ca3a"> + id="id-ee253b46-36ae-4066-9d45-202f798baf2d" /> + id="id-cb2f407b-bab3-4e77-9fdc-0ca956fc1b84"> + id="id-7e4771e9-92bb-4d1e-a5c7-dda49f957914" /> + id="id-919a82c7-b3f8-43ea-83c0-f090eafd962c"> + id="id-ec7a370b-cc7d-422d-9e34-0ed9b9fff025" /> + id="id-b735b9c6-1c34-4638-8ff0-837d84fe7813"> + id="id-8f0afab4-48ba-4dc7-bda9-195ce5634890" /> + id="id-6d3c83a3-17a6-4aa5-8071-8cba135fc03c"> + id="id-0a2ab759-764e-4239-a7de-48f100e6f29e" /> @@ -1252,153 +1106,123 @@ id="id-938187a9-6c43-4b06-ae83-2e0d890ebc3f"> + id="id-a14891fa-6c5f-4ff1-aa30-3573d524d466"> + id="id-5210200e-6890-47d6-830b-11df2fc23808" /> + id="id-17ad1d9b-4cf5-4c32-a2ee-7639a759bf60"> + id="id-bd6ca3ea-cc7d-4507-a3e2-39597cc9abad" /> + id="id-877be989-c3e8-463e-ab72-12905964a25a"> + id="id-2e2d9275-1f7f-4ca4-96de-385d7f14e3bd" /> + id="id-8e46c3d7-2ae5-48fb-b81f-c2d2fb5f39c3"> + id="id-5aa23712-4d3a-4891-85b1-386cc2512dae" /> + id="id-0d892061-d218-4311-899f-85701b4be68f"> + id="id-7e8988dd-d516-40ed-bc87-8ab52987cd89" /> + id="id-9b5b3bfc-2c1a-4fd0-9512-d959b819d637"> + id="id-d8d36dd5-7fa5-42e1-bc71-73a86ef45998" /> + id="id-62cda65d-6afc-4d78-b067-d9c1d218a1b9"> + id="id-8932ff6f-4582-4a08-b549-0c04de3fc2c5" /> + id="id-8c6c107e-9cb4-4111-ad7b-57eeb17d2aed"> + id="id-928c198b-e2ce-437a-9d6f-6111dc486160" /> + id="id-f4f73b4b-a0fd-4c8f-90c7-382fe6527634"> + id="id-b7e98946-2f1f-4715-b501-99202c87f8ba" /> + id="id-748e4a0c-1247-4b21-8a16-0a04bc85e6b0"> + id="id-8159b334-036f-42f2-a878-94b5a496d7d9" /> + id="id-32bb3d59-aebc-4725-acc7-b53a104f9f46"> + id="id-9c126854-d9b0-495d-9bb5-6a7b691c87d3" /> + id="id-5727edde-9de0-41e1-89a8-8986cef89c4b"> + id="id-c6dc18f1-77c4-4f5b-a06e-43bb7768df91" /> + id="id-b0077620-6c8a-4f68-9dbb-dc8d1b9835f5"> + id="id-b638c59c-001d-4905-9069-60e913071ed4" /> + id="id-599edc1a-3101-4a5e-a36c-a1e06fd00603"> + id="id-b6c3c897-cd4c-4513-b250-6c0f1cc93d01" /> + id="id-f4a5ae47-3416-47ab-8812-32b53f3495f7"> + id="id-b6ca682c-0dcf-41d5-b3ff-c44f705f97f8" /> @@ -1512,533 +1336,427 @@ id="id-866b9d89-8530-4c01-aca3-dfcf9f167ff2"> + id="id-20191577-925b-4721-a301-0ccf2bef2e5d"> + id="id-83ddc62a-d385-458c-9a65-ce4685218283" /> + id="id-20d87416-09ea-4128-a07c-8673d7f8c7d6"> + id="id-b60c2c94-6119-42f8-9243-a9fb6b7956b6" /> + id="id-11ca6b63-98d0-4c31-adaa-d7c8ef6ebeaf"> + id="id-ea1e6583-4504-48c3-9640-5aff1ef440d9" /> + id="id-c45079c9-23f8-4dec-ac1e-f3c235e56be0"> + id="id-43eb4b39-30e1-49fe-bf53-7512d6e184bf" /> + id="id-d62d6ad1-de4d-4326-b6e5-d9f58c55a657"> + id="id-833553d8-3b78-481f-bc28-499fce6cde4a" /> + id="id-c879be9a-3e07-47c9-b649-35c47c607dea"> + id="id-a2b475a1-a500-4480-bf4a-b2f18902336d" /> + id="id-3627a21a-748e-4669-abe2-db2d5936e1ad"> + id="id-d4f92ba7-9d7f-432f-87b8-c62c637f54d9" /> + id="id-360a72b5-4350-4ed2-b6ed-bf301ed20617"> + id="id-316cce9d-8d85-4db5-a0c6-06c5ebf063c1" /> + id="id-ceb12ac5-b089-4228-afa9-45f0988961cc"> + id="id-593adde4-7447-4606-b45a-89a4f09d1f79" /> + id="id-ee89bf1e-3112-42ce-b5c5-1a1e2b33021b"> + id="id-a036848a-04b8-4a0a-be9d-67cafa333b6f" /> + id="id-ab394ddf-f5af-44e2-b3c2-949aca23c50c"> + id="id-e3ef12f2-4daf-41fc-bd4b-b01d7bed7de8" /> + id="id-871a3fc0-c26b-4640-ae1e-80edc9f3478c"> + id="id-889754da-088e-4c02-b581-8f3b4bb78480" /> + id="id-ebe903d1-4931-410e-b4b7-202df3cd04a1"> + id="id-47244d09-43d9-4251-9e33-19cde29199e3" /> + id="id-ba5745aa-1289-44ca-9bf5-714ea7d9e412"> + id="id-2729e7fc-133c-4056-846a-262388c92619" /> + id="id-5cc2b572-d8c8-44f0-9442-b75285964682"> + id="id-d71dc0ea-aaae-4dd1-a425-79a6ae0508b3" /> + id="id-da783539-92f7-4567-be7a-7dc759988c09"> + id="id-706149b8-fd12-4472-9155-2c9347d11df6" /> + id="id-05207000-a1a0-4181-af65-f69d26a00f2b"> + id="id-226fc5f1-016c-4ccd-9bc7-6c8046610ad5" /> + id="id-bb3325d4-8349-4130-a31f-74b88cbb0ac5"> + id="id-5f1b874e-cf6a-48ff-bd7f-6b4eff1050d6" /> + id="id-647aa125-e033-450a-8c26-4fb4632e6038"> + id="id-79837ffc-4b11-4e2e-bf98-9fd918406fda" /> + id="id-15901e59-f61e-483d-b584-42e5f16a8920"> + id="id-9156cb20-bbbe-49f2-9744-50dd0275bfed" /> + id="id-c829d63a-3ce0-432a-b8ec-3a172fd5b478"> + id="id-015f30ac-8f9f-46c4-8f3d-0af411cf62e4" /> + id="id-11268275-85a7-461a-bd59-d1c59f4d1f64"> + id="id-5cd31979-7685-4605-b6c0-848506a2beb7" /> + id="id-5439d6f9-0564-430c-911a-b48b11f1cfee"> + id="id-d62182a5-fce9-4890-9f8e-109759ad7160" /> + id="id-86d6269f-59e8-48e9-a2f3-7bc81c99da56"> + id="id-dd04b27d-cc34-4610-b646-930f7113b526" /> + id="id-86137479-757a-4e85-a165-a693f3d9275c"> + id="id-d304a14e-8252-4663-a649-c2ce5b2322cb" /> + id="id-56bb2087-fcfa-42e8-a0ed-bf083f02fe3d"> + id="id-9e5b78d5-1bac-4827-9fc3-8bfd30caefd9" /> + id="id-fbf179a1-1dc1-46de-81b3-fd68a69e017d"> + id="id-26b00489-7799-45ef-b0f9-3d60390935f7" /> + id="id-8bfb977f-9c54-4b7e-9fc8-3d9bb93601fe"> + id="id-7440fed1-4052-4cbe-8ae8-f5bfa4e0efaf" /> + id="id-ec97404c-f0be-4376-af0b-1029187c308f"> + id="id-2c37c930-6bac-4396-945c-a7e8770dda63" /> + id="id-1c8d4c32-8532-47aa-a514-dd0ab61727a3"> + id="id-e424f076-98c2-42cb-a9a4-d03422302178" /> + id="id-7de674f4-c3d7-405b-b075-9d13c30d637d"> + id="id-7ebfe0d2-7802-499a-9103-db734acf6286" /> + id="id-d48ea2d0-cfe9-43bc-9932-18c1705f55ef"> + id="id-16886f91-a964-484b-b587-d92273bc5305" /> + id="id-a89cd2da-6157-4837-8441-5121f4008184"> + id="id-0d8375ee-e17d-4ad9-99ae-ecf128386732" /> + id="id-731039a8-64c7-404b-af82-a33119403d11"> + id="id-5e777343-eef0-4e22-afa4-be591a88a956" /> + id="id-6eb9234b-e6a0-4092-90a2-2f03220fdc6a"> + id="id-ce6b921a-e014-45c1-9c78-bc3b6ee9ffe8" /> + id="id-9596bd78-82f3-4e33-bbeb-19b3c8b98dd2"> + id="id-5209fab9-6735-44f1-80f1-2fe6d290ad89" /> + id="id-a3db7721-f118-4907-96b3-a4da9b324107"> + id="id-3c8ee776-868b-4b19-9c33-bd43e8539c94" /> + id="id-9d5968d4-e64d-48ea-90b9-d587f4b48307"> + id="id-629ec691-0873-4d1f-a992-f4437b701560" /> + id="id-7425609a-f637-4bb8-ad79-b7e235f3ca0b"> + id="id-eeb3a1ae-762f-45f3-a39f-ce081c2cd41c" /> + id="id-c37bec20-1030-41c0-9677-d6c2ad54d3c0"> + id="id-30a1933d-e57c-44b7-9250-d7b76208091c" /> + id="id-14860a42-d29b-4f56-8349-c840df740407"> + id="id-3faef2ce-8a7c-4c98-ba7d-17ed072bdd03" /> + id="id-d8d8dc3b-b230-4a82-b41f-cfd5e7b8782d"> + id="id-1b8d2c64-6ef8-4c87-9ce6-d952acb73dd9" /> + id="id-5a3be5fb-8e16-4035-967b-518c8ed25199"> + id="id-70c191ed-25a8-4628-8747-afef17700007" /> + id="id-988e8322-c234-4500-a837-c8bf58481953"> + id="id-e853d99d-5570-4bd2-94d1-3c561ce3ade1" /> + id="id-3db3deb0-f4c1-4ba0-a36d-0a09bdcb7349"> + id="id-95105687-efb0-413f-99ac-a377c9982742" /> + id="id-4249c0ef-e74a-4576-87a3-7d06a9feb885"> + id="id-77191fb2-d906-49df-bf8a-6ef9203755ac" /> + id="id-a35509f2-6d6b-4417-b5f1-f5efb6afaf48"> + id="id-d3cc4973-73c8-4cd1-ba87-79ca757f59db" /> + id="id-e67d6789-4a49-4240-9fa0-4fb801eeafab"> + id="id-1e3b3a4a-220b-478e-a7be-43d6d5bc4703" /> + id="id-513e8846-5ec9-4bd7-9a2c-a0af322b6372"> + id="id-e6f9ac80-f641-4928-a876-b28442b2adee" /> + id="id-f515ca8f-c37d-43c9-a40e-7b27915f5c4c"> + id="id-6f9b3634-ff93-4727-b336-609336b25724" /> + id="id-e28c822d-c4cc-4c87-82a5-68e401b69f28"> + id="id-484e893c-610c-446c-a425-025b1b78d9ff" /> + id="id-5f07d7d3-4207-4990-b597-dce03dedc306"> + id="id-17ab1bf2-deff-4644-ab4d-86fa6d410810" /> + id="id-2117854d-0de9-4d7c-bd8d-c1d8840a6629"> + id="id-797400ec-3c98-453b-bdd0-5aa77b2e5bb4" /> @@ -2156,183 +1874,147 @@ id="id-1a266726-eb14-4e24-8106-d7164008b378"> + id="id-db9d19c0-979e-44ae-8eb4-1049dc3af9b6"> + id="id-b41e8575-0aac-40d1-a6e0-3d70f34e06f7" /> + id="id-c0e2f17b-efc4-4601-b0cd-1b05a2c1472a"> + id="id-c9e7462f-ddce-4002-9dcc-34974d56c68d" /> + id="id-9fad458f-fd52-48bd-9c31-c52e676e41c9"> + id="id-26a21e17-c19a-40b6-8516-7e9ef072cd11" /> + id="id-7a50b7f5-3e0e-4ba9-a6e5-45a41b167ad4"> + id="id-8c1e6e9c-4781-4550-939f-e1fdf7e15edb" /> + id="id-4ec6d2fc-058c-4157-bce4-817edc818764"> + id="id-d68e8c2e-736a-4abd-9b0b-fa2a9e769159" /> + id="id-b75baacf-ed92-4684-9c5e-05b6019516ec"> + id="id-e55daa28-2131-4d17-9f3e-d9d9c3f5a092" /> + id="id-286a8cbc-bc94-4327-bf46-d5dabb8841bc"> + id="id-48fc9c54-4fee-41fc-9f08-bf4cb9f04ed1" /> + id="id-ca3a4e32-2302-4fde-82cf-6c4b61eba3ab"> + id="id-825431fc-6a7f-482c-bdda-cc5dd2c07c45" /> + id="id-938b3d18-c01e-4ed5-b365-e44484cdfeac"> + id="id-6f9a7211-e495-4e3e-a03c-d56ca017dd08" /> + id="id-e2a8e4af-edd9-4a95-95db-01ffe6a52259"> + id="id-1fe9917b-9e7d-4b27-aa5d-950f3bb92c12" /> + id="id-4aa7dbf5-c775-4133-8361-c4b6c03e2b87"> + id="id-1063295c-5946-40cb-8c0f-737e198e14bc" /> + id="id-8e26d3f9-0acc-40cc-8b7c-7a11f5b79e8c"> + id="id-9b92f3e4-9f8a-4648-8aa9-b1096e7b546b" /> + id="id-3b3bfe1a-ed36-4905-b50c-39831b0f0fcc"> + id="id-70859586-f380-42ce-b947-7bbaffe01c6e" /> + id="id-60de2980-e1f0-4c47-8d84-b48afdf96bd8"> + id="id-17bb5264-38c6-4828-b7e6-e48098dedbb9" /> + id="id-f5ae276e-c137-45f3-90a3-04d00bbf1698"> + id="id-8f5478bf-32be-4c44-8dda-22254c605163" /> + id="id-bdcec0e4-a7eb-46ae-9284-b55b9194326d"> + id="id-ce684b25-dd47-4d0d-bb0b-3944adbcbe36" /> + id="id-27c1fd3d-626a-4793-9acb-d71e97391d77"> + id="id-29459746-1b61-4e72-be89-c4d34eb3f57b" /> + id="id-1801de5e-72a6-4d20-88ee-8f08b08dc12d"> + id="id-4d10b06e-7f70-48d4-a578-21da1c77ccfb" /> @@ -2342,383 +2024,307 @@ id="id-8ee390bd-e362-4043-b76f-8fae701d2b9d"> + id="id-370090c0-f229-4cc3-b977-d1f2b2cfb282"> + id="id-f7b0409f-6d68-425b-bd2b-b8196eca4bf5" /> + id="id-9488b61b-8748-4b99-a3ce-f86fb51eac50"> + id="id-4bf623d1-d500-401e-b646-72d69561e577" /> + id="id-6b538197-379f-422b-a81d-d4d84913155d"> + id="id-8fa9b461-2f7c-4c61-bc9c-92f7a416a324" /> + id="id-f6418776-b05a-42f6-94eb-29f04542ee17"> + id="id-09045097-edad-4a43-bf86-b07f8f358f63" /> + id="id-c0679ceb-f5b2-41a9-8d39-ad22866fed8f"> + id="id-37d298fd-4917-431c-bf88-583cc01fa857" /> + id="id-c990d75b-e47f-46e8-bd3f-759fb991cafe"> + id="id-a6349817-5dd2-4da7-a6d3-7ebda60ec3ef" /> + id="id-4d9d4e27-ee31-4e15-a85c-7c5dc455b02f"> + id="id-c8a0277b-fb57-4f45-88d1-cd2722e8ebaf" /> + id="id-de50a2d6-fb1e-4b2b-bc10-f211389e7d09"> + id="id-c14b5fdf-53e9-43c8-8cf3-8786b23c1357" /> + id="id-d8d9aff2-a4b0-4e9b-8b69-5e97cefc7bfa"> + id="id-c5a8d00b-5634-4cd2-8afe-e9e51cf1b265" /> + id="id-6dfbdb36-fd0d-4e40-93f0-0d02bc2c5cf6"> + id="id-a008abef-0965-4fa9-b9b4-279dadb21b67" /> + id="id-e028364c-5b83-4bcf-a9d7-cdb669d0cdcf"> + id="id-cbe15ad5-7a10-49fa-b92f-5112a7e4d587" /> + id="id-d4cff158-f5af-4692-9760-dbb894f61a84"> + id="id-a5a2ab1e-d242-402a-8bab-16e8a36fb652" /> + id="id-3babefc6-79d4-4d6e-baba-314bfdd22cc5"> + id="id-ae190d07-f842-4069-b90e-83fc2e3156e0" /> + id="id-c2a9c6c8-804e-4359-882b-cb7610edffa4"> + id="id-9d99f6b7-2e04-4a33-b4d8-9c159746384a" /> + id="id-2a50fd73-ca50-461a-8eda-6bf80acc1641"> + id="id-6b09adb5-13cb-46e1-89d6-3dcc4ffe780b" /> + id="id-cc00f59c-a5d5-406a-8c88-29a1ea56c0ff"> + id="id-b4f6ca8f-13e1-4d81-b89e-cb800c6d4256" /> + id="id-59c940ac-21ce-4f82-940d-30dcf09dddc4"> + id="id-cd882bdb-b6bd-4684-90f7-b87c7b0f80c2" /> + id="id-2949049c-3af9-40d9-92fd-7a42e0ca038e"> + id="id-e87db3a9-156b-4af5-b647-78835aba8505" /> + id="id-4a71ee48-769b-4dc5-8865-a4d6a804da20"> + id="id-ed00a3e2-70c9-4957-9001-af9e27a854e7" /> + id="id-330ba1c6-e272-4897-a0e2-3ac94b5ad2e2"> + id="id-d3bac7c2-de64-4c1c-ae78-feab0f3eed1f" /> + id="id-5497a3de-845e-4c79-b809-3096ea7c4360"> + id="id-05665a3b-447d-4848-b458-60642cba6adc" /> + id="id-afb81de3-fcbb-484c-89d5-cfa52f1e4d72"> + id="id-a156bd31-e009-4a29-b320-fbed4c2bc419" /> + id="id-35242800-b040-42a0-91f8-544563fa571a"> + id="id-ee222360-06be-4819-bbec-6d5316d18964" /> + id="id-4eae52fb-fcd9-4c6c-afaf-885896464b3b"> + id="id-cd272b01-ca78-4b58-a0b4-02df35b014cf" /> + id="id-0bf0725f-f2ef-4d35-a60d-3a5f6d6d8657"> + id="id-3571f176-2935-43a3-a8df-6ccb88e6ef44" /> + id="id-29b57628-9858-473c-b8f6-1869f1c54db7"> + id="id-6fb8a592-81a4-46bd-8c7d-54389c7f7204" /> + id="id-7f711d12-11d1-4f90-98b0-14a81148589f"> + id="id-dd444034-82f2-4610-b34a-9bde91838752" /> + id="id-d483172b-eef6-4f3c-9f43-af04f0a2856d"> + id="id-24a609d8-5b9b-403d-9d3e-e43bf54378eb" /> + id="id-7062763c-299d-4ac9-b156-06fa9950e65e"> + id="id-c3ccaae8-8806-474d-8a5d-f67427ea4f17" /> + id="id-4afdef35-231b-4176-937a-51623c739bec"> + id="id-f3495068-d6e7-4a83-8aed-e599cb957d14" /> + id="id-8ea65ab2-940a-4409-aecb-41deb443e3fb"> + id="id-0868500f-e489-4ce9-a4d6-7412e00ec043" /> + id="id-362b39e6-8324-4ec3-bad6-c6d820cdf9a4"> + id="id-629dbe59-ecc1-4666-969a-5d6223425e66" /> + id="id-2ba1aa66-5168-4252-9a67-474ef3911b44"> + id="id-fc0af5e4-b0e8-4e85-b7a2-133b5e00f054" /> + id="id-85dd834a-0056-4d06-aeed-b2864777dc6c"> + id="id-4171190d-99a2-4561-b3e0-6d3580cf05de" /> + id="id-6d110b19-6ebf-4fb0-98fb-44055883caa9"> + id="id-04cae73f-72b9-4346-a225-6b8ef3dfea49" /> + id="id-5907229d-cd57-47c2-8720-cfe65c6f8cc9"> + id="id-4bfc7d03-f540-45a3-bbec-0aebc6139447" /> + id="id-3ebf5f52-1146-4d24-9542-5311d10d2025"> + id="id-30287741-6df7-47bd-86ac-32fbd086f215" /> + id="id-115048c2-58bb-4b2c-89ee-e1e3c5eca9e9"> + id="id-1ecad964-cf4c-47ca-be8e-fb47461c68e3" /> @@ -2728,313 +2334,251 @@ id="id-2e586840-ba83-43a2-b1ba-75c1f178fe7a"> + id="id-ddc09d16-7f10-47d4-aa9a-cd4ffdcc2aee"> + id="id-b299f53a-9603-4bc5-aa37-ed9566683c71" /> + id="id-5213cb68-d4e8-498f-abc7-00c0c5e8417f"> + id="id-d6a63460-22ef-4917-b24b-bdae54463558" /> + id="id-35038faf-ec69-4739-9d59-368b62527749"> + id="id-b85b87e2-e118-45d0-91be-43c6b32f7278" /> + id="id-e2e4ef6c-e715-4bec-9514-94f975c9043b"> + id="id-df8d504f-3866-4e34-b575-8191ef3248c1" /> + id="id-53305245-91a1-4f23-ba25-e1e2ba997b1e"> + id="id-9f8e35e3-7816-45f2-89d3-4b70d58d6a52" /> + id="id-bb54557c-f00c-4836-99bf-c21186854765"> + id="id-601603ca-5de6-4ef0-8616-acc20364c538" /> + id="id-757f8a4b-8d7c-403c-bfe0-7b48bc875bc4"> + id="id-8f6a4071-5304-4fc9-bbd0-a668b6f311ad" /> + id="id-1f8626e2-e0b5-4175-8286-81341c9f6e30"> + id="id-948174ab-9265-4d14-916a-513dc2176828" /> + id="id-2aa4e615-4f0d-4e5e-8bac-776f9ef66a04"> + id="id-886b8908-3239-43ce-9df4-3a4be133d1b1" /> + id="id-5b3ba1d6-b1f5-4ef4-bba7-74f46c5b8b2a"> + id="id-81ce085e-adb9-4a16-a725-7399ed174197" /> + id="id-864319a9-3c41-4fc9-b630-9279c9543d2e"> + id="id-3d776d4e-6df7-4657-b5f7-32c421b948c8" /> + id="id-4641e063-99d4-46df-beca-34484eeafdff"> + id="id-3267f133-a3e4-4638-9b18-53744ec45680" /> + id="id-682a44f2-499e-4ba0-aea6-d91b97cd360b"> + id="id-3150c039-5518-49be-8866-bc5d45e8412e" /> + id="id-b9bc7d0e-492d-46a8-aae6-b095e788df2c"> + id="id-156b015c-72d2-4e8d-a43d-3f71f8002a31" /> + id="id-67c50d9c-47fb-4806-b0bc-d2104a18c249"> + id="id-021d5287-3906-4193-b196-22a15bb05563" /> + id="id-3b31ff6e-d6b3-4531-824c-116db12ae036"> + id="id-d8e393fa-2fd5-45da-b616-59bf2a31d011" /> + id="id-d81e0164-c391-4493-a557-b98f0301bba0"> + id="id-1f7d6351-0d68-4817-a0dc-bf9430df72dd" /> + id="id-26c223e6-13d3-47bc-8571-ebe69ce64f74"> + id="id-9f78ae27-da46-4cae-9610-edd197791fb8" /> + id="id-fd7e146e-fdb0-49a4-9587-fd6e8332b092"> + id="id-b07c15f0-88b5-4fa4-85eb-1548642e53a6" /> + id="id-c2fa87bf-1f45-41c7-a4c9-795985193384"> + id="id-1e74fb07-89e6-4045-8046-b25c23c35827" /> + id="id-c15edaf6-d264-44c8-85dc-67cbdae4efbb"> + id="id-05438fcf-49c3-486a-9862-2908b17ca473" /> + id="id-65327638-e5c3-4fa6-94f6-a387e64d25c6"> + id="id-a2a3460f-df3c-455b-b53a-9bce15c8f50a" /> + id="id-ed2624f0-e19b-4aa4-907b-fb4f5d72e157"> + id="id-e636cdc3-3ae1-4993-9148-a0920f01822b" /> + id="id-b69c849b-9703-41e5-8af0-7e30c7e1b155"> + id="id-15d2c571-f9a1-46f3-b9c0-b7cabf2994f6" /> + id="id-172ba32e-38db-4b24-b013-be90fe0eb329"> + id="id-71ba2af7-4fc0-43ff-a726-7b0a1fa1f411" /> + id="id-95f42b18-62e1-4547-8b97-a91d473ede6f"> + id="id-45784045-d046-43d3-9939-275a27c39c0c" /> + id="id-33ab558b-a585-4fc1-aa36-20464889a9e8"> + id="id-8b8b17ce-7cd0-470d-b0df-f726a27ce062" /> + id="id-edaa639b-b280-4a98-a67c-553c01e977c2"> + id="id-1ccf3fe5-4fb6-4cc2-ab89-bbd5baa0d3fc" /> + id="id-17ba2fda-eb63-4bee-b4a3-1bd53fc83b4b"> + id="id-e4b4ed38-03e4-4a90-8512-5d35a6ecce68" /> + id="id-22ccb208-0473-4b07-8e3c-3cdd9947cf9b"> + id="id-276044c6-d417-468f-ab8e-5b027291bac2" /> + id="id-a2831b9e-d6ff-4af2-aa54-990ae033608c"> + id="id-828228cc-37e7-4c61-8747-1108a5187370" /> @@ -3044,383 +2588,307 @@ id="g79784"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -3430,233 +2898,187 @@ id="id-bbd7b9fb-e6b9-4868-ab11-d2406bf430d8"> + id="id-772f94d3-1c7c-413c-b02b-77fee8b232b1"> + id="id-7bf53810-bef0-4644-895c-afa8d5f4c1a8" /> + id="id-08cf0f37-1788-4dd9-842c-73fd28c590c7"> + id="id-247ba765-3580-4bba-85bd-f999fd587a8e" /> + id="id-d4588d22-5358-4c82-8582-ceb1ed91ddbe"> + id="id-9b8b45b2-24e9-4586-99ed-232be95d0f2a" /> + id="id-e9016403-9827-4813-8775-b30ca6772f13"> + id="id-5684dc98-a475-4304-a660-5945e8d4161d" /> + id="id-04de9723-8e0f-4a3e-b198-aa92e212cf9d"> + id="id-37f764fe-a25f-44eb-9e07-611d03e3628e" /> + id="id-f7a213d1-55c2-4417-8bca-ecf6af70346d"> + id="id-e133a3b8-c4ca-43a3-8156-340baee375ba" /> + id="id-558e1bfc-3507-450b-96ff-78352ac5c5e5"> + id="id-2d60e0d4-0350-45e7-aa09-33f36e94a55e" /> + id="id-8e9d253d-e017-4e16-b27e-8ee6f6fdfc6d"> + id="id-fc684379-08b4-486f-872a-6a93198b2de5" /> + id="id-1d012433-f204-4f69-a977-b0f7131cacd7"> + id="id-f6e1f947-f403-4789-b020-867dbf11861b" /> + id="id-0b4125e2-3610-45f6-ad7a-231d5ae93139"> + id="id-d44d535a-072f-4d4a-a0a1-088918a0b650" /> + id="id-f2c00f08-ada4-4cfa-903e-390d92bba462"> + id="id-b98ed50a-27e3-4abe-ab90-81af3760872c" /> + id="id-ecb1a6f9-551a-476d-9896-e698d1ffa6e8"> + id="id-4aa1ae69-5b27-40c3-abfd-201fd4d25c96" /> + id="id-b8e583dd-2d0c-47c8-819d-662faee17a76"> + id="id-c5148675-f0aa-4734-9a46-a558041e162a" /> + id="id-03fe1a7f-5086-4b5c-92cb-bce8480c44d0"> + id="id-23f14dd3-1abe-4646-962f-b6005d27e986" /> + id="id-d348df3c-aff1-4243-b567-d75aa4340561"> + id="id-c2ab98f8-e781-48fb-a668-0a2b740f0a4d" /> + id="id-7fe7088a-1265-48b7-99a8-d6e6b78e882b"> + id="id-63231045-4a0b-44fd-bd65-bb509a6d6e3a" /> + id="id-41ab9fd8-ab99-41b9-8347-3f61eb41d911"> + id="id-80b5b671-68ea-477f-b635-e554fe5073ec" /> + id="id-ee40d6c2-2120-4645-a397-132b9a1f866b"> + id="id-4d1ee7f1-49c2-468c-8bce-652609decfec" /> + id="id-4caf66f9-96f0-4644-9c84-320357b119a1"> + id="id-d3b8a1ac-016f-4be5-a0f0-6a12c86f2198" /> + id="id-e78979c5-5838-43f4-8c7d-beabb68ae356"> + id="id-9d6ac180-41e1-4985-89f7-890b6d3d1cd0" /> + id="id-38ffa48e-e27a-46a2-9c2f-45d249e3fadb"> + id="id-9a3e34dc-fe1b-420c-b327-3c2b9d7b1a08" /> + id="id-73a26404-9d18-4769-857f-17fa4668d155"> + id="id-9fbd6f1e-6ec0-4c4a-a7f2-656feb4aa277" /> + id="id-46de0d22-ba59-4550-82e4-b2d190af608a"> + id="id-62f2ae84-563c-434a-accb-9b675ec3b652" /> @@ -3666,133 +3088,107 @@ id="g8171"> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> + overflow="visible"> + style="stroke:none" /> @@ -3807,10 +3203,9 @@ inkscape:stockid="TriangleOutL"> + id="path29974-0" /> + id="path29974-5" /> + id="base" + inkscape:pagecheckerboard="0"> + units="cm" /> @@ -3875,7 +3268,6 @@ image/svg+xml - @@ -3883,22490 +3275,6400 @@ id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1" - transform="translate(-7.028636,-3.6067411)"> + style="display:inline"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g49811" + transform="translate(-202.9138,-6.0653093)"> - - - - - - - - - + transform="matrix(0.352778,0,0,0.352778,205.937,25.8912)" + ns10:version="1.0.1" + ns10:texconverter="pdflatex" + ns10:pdfconverter="inkscape" + ns10:text="\\begin{minipage}{9 cm}\n\\nadpis{\n\\faLightbulbO \\textbf{ Jak na to?}\n}\n\\vspace{-2 mm}\n\\podnadpis{\n\\begin{itemize}\n\\item Po registraci na webu nahraj \u0159e\u0161en\xed do odevzd\xe1v\xe1tka.\n\\item \u0158e\u0161en\xed odevzdan\xe1 do 1. deadlinu po\u0161leme opraven\xe1 zp\u011bt\n ji\u017e s n\xe1sleduj\xedc\xedm \u010d\xedslem, jinak a\u017e s t\xedm dal\u0161\xedm.\n\\item \u010cl\xe1nky m\u016f\u017ee\u0161 odevzd\xe1vat kdykoliv.\n\\end{itemize}}\n\\end{minipage}" + ns10:preamble="/home/katerina/.config/inkscape/extensions/textext/default_packages.tex" + ns10:scale="1.0" + ns10:alignment="middle center" + ns10:inkscapeversion="1.0" + ns10:jacobian_sqrt="0.352778" + id="g49470"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + aria-label="Po registraci nahraj řešení do odevzdávátka." + id="text6805" + style="font-size:3.52778px;line-height:0;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + aria-label="Řešení odevzdaná do 1. deadlinu ti opravíme již +do vydání následujícího čísla, jinak až o číslo později." + id="text6805-0-9" + style="font-size:3.52778px;line-height:1.15;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0px;word-spacing:0px;display:inline;stroke-width:0.264583"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Zaregistruj se a nahraj řešení do odevzdávátka. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + aria-label="Problémy hodnotíme individuálně, za hezký článek mů- +žeš určitě očekávat více bodů než za řešení uzavřené +úlohy" + id="text6805-0-9-9" + style="font-size:3.52778px;line-height:1.15;-inkscape-font-specification:'sans-serif, Normal';letter-spacing:0.0714375px;word-spacing:0px;display:inline;stroke-width:0.264583"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 32141d457f6e18c89f97e9fda202e1b4068ece5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 21:04:11 +0200 Subject: [PATCH 212/515] =?UTF-8?q?V=C3=BDro=C4=8Dn=C3=AD=20sraz=20M&M?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 1 + mamweb/urls.py | 3 ++ vyroci/__init__.py | 0 vyroci/admin.py | 7 ++++ vyroci/apps.py | 5 +++ vyroci/forms.py | 14 ++++++++ vyroci/migrations/0001_initial.py | 27 ++++++++++++++ vyroci/migrations/__init__.py | 0 vyroci/models.py | 40 +++++++++++++++++++++ vyroci/templates/vyroci/vyroci.html | 56 +++++++++++++++++++++++++++++ vyroci/urls.py | 11 ++++++ vyroci/views.py | 32 +++++++++++++++++ 12 files changed, 196 insertions(+) create mode 100644 vyroci/__init__.py create mode 100644 vyroci/admin.py create mode 100644 vyroci/apps.py create mode 100644 vyroci/forms.py create mode 100644 vyroci/migrations/0001_initial.py create mode 100644 vyroci/migrations/__init__.py create mode 100644 vyroci/models.py create mode 100644 vyroci/templates/vyroci/vyroci.html create mode 100644 vyroci/urls.py create mode 100644 vyroci/views.py diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 139190fa..03724d3d 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -150,6 +150,7 @@ INSTALLED_APPS = ( 'personalni', 'soustredeni', 'treenode', + 'vyroci', # Admin upravy: diff --git a/mamweb/urls.py b/mamweb/urls.py index 3577c4f7..7ec5831c 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -68,6 +68,9 @@ urlpatterns = [ # REST API # path('api/', include(router.urls)), + # Výroční sraz + path('', include('vyroci.urls')), + ] # This is only needed when using runserver. diff --git a/vyroci/__init__.py b/vyroci/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vyroci/admin.py b/vyroci/admin.py new file mode 100644 index 00000000..2442df3d --- /dev/null +++ b/vyroci/admin.py @@ -0,0 +1,7 @@ +from django.contrib import admin + +from .models import UcastnikVyroci + +# Register your models here. + +admin.register(UcastnikVyroci) diff --git a/vyroci/apps.py b/vyroci/apps.py new file mode 100644 index 00000000..b30f5d73 --- /dev/null +++ b/vyroci/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class VyrociConfig(AppConfig): + name = 'vyroci' diff --git a/vyroci/forms.py b/vyroci/forms.py new file mode 100644 index 00000000..57e8ebc2 --- /dev/null +++ b/vyroci/forms.py @@ -0,0 +1,14 @@ +from django.forms import ModelForm +from .models import UcastnikVyroci + + +class UcastnikVyrociForm(ModelForm): + class Meta: + model = UcastnikVyroci + fields = "__all__" + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + for field in ["kdy", "cojemam", "cislo", "dodat"]: + self.fields[field].widget.attrs['rows'] = 2 + self.fields[field].widget.attrs['cols'] = 22 diff --git a/vyroci/migrations/0001_initial.py b/vyroci/migrations/0001_initial.py new file mode 100644 index 00000000..1cf16c1a --- /dev/null +++ b/vyroci/migrations/0001_initial.py @@ -0,0 +1,27 @@ +# Generated by Django 2.2.28 on 2023-06-02 18:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='UcastnikVyroci', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('jmeno', models.CharField(help_text='Občanská identifikace účastníka víkendovky', max_length=256, verbose_name='Jméno a přijmení')), + ('prezdivka', models.CharField(help_text='Veřejná identifikace účastníka víkendovky', max_length=256, verbose_name='Přezdívka')), + ('email', models.EmailField(help_text='Kontakt na účastníka víkendovky', max_length=256, verbose_name='E-mail')), + ('kdy', models.TextField(max_length=256, verbose_name='Řešil nebo organizoval jsi M&M? Kdy?')), + ('cojemam', models.TextField(max_length=256, verbose_name='Co znamená M&M (a proč)?')), + ('cislo', models.TextField(max_length=256, verbose_name='Co v M&Mí historii značí číslo 265252859812191058636308480000000?')), + ('dodat', models.TextField(blank=True, max_length=256, null=True, verbose_name='Co chci ještě dodat?')), + ], + ), + ] diff --git a/vyroci/migrations/__init__.py b/vyroci/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/vyroci/models.py b/vyroci/models.py new file mode 100644 index 00000000..909fb72f --- /dev/null +++ b/vyroci/models.py @@ -0,0 +1,40 @@ +from django.db import models + +# Create your models here. + + +class UcastnikVyroci(models.Model): + + jmeno = models.CharField( + "Jméno a přijmení", max_length=256, blank=False, null=False, + help_text="Občanská identifikace účastníka víkendovky" + ) + + prezdivka = models.CharField( + "Přezdívka", max_length=256, blank=False, null=False, + help_text="Veřejná identifikace účastníka víkendovky" + ) + + email = models.EmailField( + "E-mail", max_length=256, blank=False, null=False, + help_text="Kontakt na účastníka víkendovky" + ) + + kdy = models.TextField( + "Řešil nebo organizoval jsi M&M? Kdy?", max_length=256, blank=False, + null=False, + ) + + cojemam = models.TextField( + "Co znamená M&M (a proč)?", max_length=256, blank=False, null=False, + ) + + cislo = models.TextField( + "Co v M&Mí historii značí číslo 265252859812191058636308480000000?", + max_length=256, blank=False, null=False, + ) + + dodat = models.TextField( + "Co chci ještě dodat?", max_length=256, blank=True, null=True, + ) + diff --git a/vyroci/templates/vyroci/vyroci.html b/vyroci/templates/vyroci/vyroci.html new file mode 100644 index 00000000..22516121 --- /dev/null +++ b/vyroci/templates/vyroci/vyroci.html @@ -0,0 +1,56 @@ +{% extends "base.html" %} + +{% block content %} + +

    {% block nadpis1a %}M&Mí 30!*{% endblock nadpis1a %}

    + +

    *plným názvem M&Mí 265252859812191058636308480000000.

    + +

    Rádi bychom Tě pozvali na plánovaný M&Mí sraz, kde nalezneš možnost se setkat se současnými organizátory a účastníky, minulými organizátory a účastníky, předminulými organizátory a účastníky, předpředminulými organizátory a účastníky a jinými M&Mími legendami.

    + +

    Těšit se můžeš na zábavnou akci pro všechny věkové kategorie. Pokud máš chuť se zúčastnit, tak neváhej a vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu, nebo s sebou někoho vzít – třeba děti, tak to napiš do poznámky). Podrobnější informace o akci budeme rozesílat přibližně dva týdny před akci.

    + +
      +
    • Kdy: pátek 22. – neděle 24. 9. 2023
    • +
    • Kde: Klubovna Upírků v Libčicích n.V.
    • +
    • Kdo jede: Káťa, (R)adim{% for ucastnik in ucastnici %}, {{ ucastnik.prezdivka }}{% endfor %}
    • +
    + +

    Přihlašovací formulář

    + +

    Tučně popsaná pole jsou povinná.

    + +
    + + {% for field in form %} + + + + + + + + + {% if field.errors %} + + + + {% endif %} + {% endfor %} +
    + + + + {{ field }} + {{ field.help_text|safe }} +
    {{ field.errors }}
    + + {% csrf_token %} + {{form.non_field_errors}} + + +
    + +{% endblock content %} diff --git a/vyroci/urls.py b/vyroci/urls.py new file mode 100644 index 00000000..ba5312eb --- /dev/null +++ b/vyroci/urls.py @@ -0,0 +1,11 @@ +from django.urls import path + +from .views import VyrociView + +urlpatterns = [ + path( + 'sraz/', + VyrociView.as_view(), + name='vyrocni_sraz' + ), +] diff --git a/vyroci/views.py b/vyroci/views.py new file mode 100644 index 00000000..03f51d0a --- /dev/null +++ b/vyroci/views.py @@ -0,0 +1,32 @@ +from django.views.generic import FormView + +from seminar.models import Osoba +from seminar.views import formularOKView +from .forms import UcastnikVyrociForm +from .models import UcastnikVyroci + + +# Create your views here. + +class VyrociView(FormView): + """ Zobrazí organizátorský rozcestník.""" + template_name = 'vyroci/vyroci.html' + form_class = UcastnikVyrociForm + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + context['ucastnici'] = UcastnikVyroci.objects.all() + return context + + def form_valid(self, form): + form.save() + + return formularOKView(self.request, "Úspěšně jsi se přihlásil na víkendovku") + def get_initial(self): + initial = super().get_initial() + if self.request.user.is_authenticated: + osoba = Osoba.objects.filter(user=self.request.user).first() + if osoba is not None: + initial["jmeno"] = osoba.plne_jmeno() + initial["email"] = osoba.email + return initial From 3640c756ac50000d69faed3a4e4b24309de76d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 21:13:19 +0200 Subject: [PATCH 213/515] =?UTF-8?q?Ach=20jo,=20=E2=80=9Ekop=C3=ADrov=C3=A1?= =?UTF-8?q?n=C3=AD,=20=C4=8Dast=C3=BD=20zdroj=20chyb=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/vyroci/views.py b/vyroci/views.py index 03f51d0a..9a60ff6e 100644 --- a/vyroci/views.py +++ b/vyroci/views.py @@ -9,7 +9,6 @@ from .models import UcastnikVyroci # Create your views here. class VyrociView(FormView): - """ Zobrazí organizátorský rozcestník.""" template_name = 'vyroci/vyroci.html' form_class = UcastnikVyrociForm From f3b00796513fe97fe27f7a5ee124395fcaa195ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 21:30:47 +0200 Subject: [PATCH 214/515] =?UTF-8?q?Tabulka=20odpov=C4=9Bd=C3=AD=20k=20V?= =?UTF-8?q?=C3=BDro=C4=8Dn=C3=ADmu=20srazu=20M&M?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/templates/vyroci/vyroci_list.html | 31 ++++++++++++++++++++++++ vyroci/urls.py | 8 +++++- vyroci/views.py | 7 +++++- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 vyroci/templates/vyroci/vyroci_list.html diff --git a/vyroci/templates/vyroci/vyroci_list.html b/vyroci/templates/vyroci/vyroci_list.html new file mode 100644 index 00000000..3f3a44ba --- /dev/null +++ b/vyroci/templates/vyroci/vyroci_list.html @@ -0,0 +1,31 @@ +{% extends "base.html" %} + +{% block content %} + +

    {% block nadpis1a %}M&Mí 30! odpovědi{% endblock nadpis1a %}

    + + + + + + + + + + + + + {% for obj in ucastnikvyroci_list %} + + + + + + + + + + {% endfor %} +
    JménoPřezdívkaE-mailKdy účastník/orgCo znamená M&M?Co znamená číslo?Něco dodat?
    {{ obj.jmeno }}{{ obj.prezdivka }}{{ obj.email }}{{ obj.kdy }}{{ obj.cojemam }}{{ obj.cislo }}{{ obj.dodat }}
    + +{% endblock content %} diff --git a/vyroci/urls.py b/vyroci/urls.py index ba5312eb..9b1ebfca 100644 --- a/vyroci/urls.py +++ b/vyroci/urls.py @@ -1,6 +1,7 @@ from django.urls import path -from .views import VyrociView +from seminar.utils import org_required +from .views import VyrociView, VyrociListView urlpatterns = [ path( @@ -8,4 +9,9 @@ urlpatterns = [ VyrociView.as_view(), name='vyrocni_sraz' ), + path( + 'sraz_vysledky/', + org_required(VyrociListView.as_view()), + name='vyrocni_sraz_vysledky' + ), ] diff --git a/vyroci/views.py b/vyroci/views.py index 9a60ff6e..40d87302 100644 --- a/vyroci/views.py +++ b/vyroci/views.py @@ -1,4 +1,4 @@ -from django.views.generic import FormView +from django.views.generic import FormView, ListView from seminar.models import Osoba from seminar.views import formularOKView @@ -29,3 +29,8 @@ class VyrociView(FormView): initial["jmeno"] = osoba.plne_jmeno() initial["email"] = osoba.email return initial + + +class VyrociListView(ListView): + template_name = 'vyroci/vyroci_list.html' + model = UcastnikVyroci From 4e1ff92bd88f6776cbdcc4dc2298f2a3ba0f9ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 21:32:55 +0200 Subject: [PATCH 215/515] =?UTF-8?q?=C3=9A=C4=8Dastn=C3=ADci=20v=C3=BDro?= =?UTF-8?q?=C4=8D=C3=AD=20v=20adminu=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vyroci/admin.py b/vyroci/admin.py index 2442df3d..7bf94bef 100644 --- a/vyroci/admin.py +++ b/vyroci/admin.py @@ -4,4 +4,4 @@ from .models import UcastnikVyroci # Register your models here. -admin.register(UcastnikVyroci) +admin.site.register(UcastnikVyroci) From 6f3fe7f0dab4f1a5903deb12ce7780d0145c3df1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Jun 2023 21:34:51 +0200 Subject: [PATCH 216/515] =?UTF-8?q?Nezalamovat=20e-mail=20a=20jm=C3=A9no?= =?UTF-8?q?=20(a=20p=C5=99ezd=C3=ADvku)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/templates/vyroci/vyroci_list.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vyroci/templates/vyroci/vyroci_list.html b/vyroci/templates/vyroci/vyroci_list.html index 3f3a44ba..515df76b 100644 --- a/vyroci/templates/vyroci/vyroci_list.html +++ b/vyroci/templates/vyroci/vyroci_list.html @@ -17,9 +17,9 @@ {% for obj in ucastnikvyroci_list %} - {{ obj.jmeno }} - {{ obj.prezdivka }} - {{ obj.email }} + {{ obj.jmeno }} + {{ obj.prezdivka }} + {{ obj.email }} {{ obj.kdy }} {{ obj.cojemam }} {{ obj.cislo }} From 727d0b29550941c541c3d0441963889c6b4cbde4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 08:47:17 +0200 Subject: [PATCH 217/515] =?UTF-8?q?Revert=20"Multiple=20select=20se=20nema?= =?UTF-8?q?j=C3=AD=20zav=C3=ADrat"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4a3f8c66 --- odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js | 7 ------- odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 3 +-- odevzdavatko/templates/odevzdavatko/posli_reseni.html | 1 - 3 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js diff --git a/odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js b/odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js deleted file mode 100644 index 8f104c7c..00000000 --- a/odevzdavatko/static/odevzdavatko/nesbalovaci_select2.js +++ /dev/null @@ -1,7 +0,0 @@ -// Nenechá select2 (používaný pro multiple select) se zavřít po výběru -$(window).on('load', function () { - // Z nějakého důvodu nestačí onload, ale libovolný timeout pomůže. BÚNO 0.5 sekundy, kdyby to bylo rychlostí mého počítače - setTimeout(function() { - $(".select2-hidden-accessible").select2({closeOnSelect: false}) - }, 500) -}); diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 3950089e..19101b6b 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -1,8 +1,7 @@ {% extends "base.html" %} {% load static %} {% block script %} - - + {% endblock %} {% block content %} diff --git a/odevzdavatko/templates/odevzdavatko/posli_reseni.html b/odevzdavatko/templates/odevzdavatko/posli_reseni.html index 07baf7ef..27827015 100644 --- a/odevzdavatko/templates/odevzdavatko/posli_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/posli_reseni.html @@ -4,7 +4,6 @@ {{form.media}} - {% endblock %} {% block content %} From 2ef3311bff3ce128b52c956a1c7764798d728524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 08:50:16 +0200 Subject: [PATCH 218/515] =?UTF-8?q?Multiple=20select=20se=20nemaj=C3=AD=20?= =?UTF-8?q?zav=C3=ADrat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Už jsem se internetu správně zeptal a dostal odpověď: select2 bere parametry jako atributy data-camel-case-vec=cosi (stejné jako select2({camelCaseVec: cosi})) --- odevzdavatko/forms.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index d9aec665..836b8eb0 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -29,6 +29,7 @@ class PosliReseniForm(forms.Form): attrs={ 'data-placeholder--id': '-1', 'data-placeholder--text': '---', + 'data-close-on-select': 'false', 'data-allow-clear': 'true' }, ), @@ -43,6 +44,7 @@ class PosliReseniForm(forms.Form): url='autocomplete_resitel', attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', + 'data-close-on-select': 'false', 'data-allow-clear': 'true'}) ) @@ -74,6 +76,7 @@ class NahrajReseniForm(forms.ModelForm): url='autocomplete_problem_odevzdatelny', attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', + 'data-close-on-select': 'false', 'data-allow-clear': 'true'}, forward=["nadproblem_id"], ), @@ -82,6 +85,7 @@ class NahrajReseniForm(forms.ModelForm): url='autocomplete_resitel_public', attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', + 'data-close-on-select': 'false', 'data-allow-clear': 'true'}, ) } From dce1de7a9943e3ae0700c29c7a2cd36b49a4c4db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 09:12:00 +0200 Subject: [PATCH 219/515] =?UTF-8?q?Checkboxy=20pouze=20u=20multiple=20sele?= =?UTF-8?q?ctu=20(p=C5=99esn=C4=9Bji=20=C5=99e=C4=8Deno=20pouze=20u=20t?= =?UTF-8?q?=C4=9Bch,=20kde=20je=20select2multiple)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 7 ++++--- odevzdavatko/forms.py | 4 ++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 4e22a407..297239dc 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1264,16 +1264,17 @@ label[for=id_skola] { /* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ /* Podle https://stackoverflow.com/a/48290544 */ -.select2-results__option[aria-selected=true]:before { +/* U autocomplete.ModelSelect2Multiple vyžaduje 'data-dropdown-css-class': 'select2multiple' */ +.select2multiple .select2-results__option[aria-selected=true]:before { content: '☑ '; padding: 0 0 0 8px; } -.select2-results__option[aria-selected=false]:before { +.select2multiple .select2-results__option[aria-selected=false]:before { content: '◻ '; padding: 0 0 0 8px; } -.select2-results__option--highlighted { +.select2multiple .select2-results__option--highlighted { background-color: #e84e10 !important; } diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 836b8eb0..7d4b6e54 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -30,6 +30,7 @@ class PosliReseniForm(forms.Form): 'data-placeholder--id': '-1', 'data-placeholder--text': '---', 'data-close-on-select': 'false', + 'data-dropdown-css-class': 'select2multiple', 'data-allow-clear': 'true' }, ), @@ -45,6 +46,7 @@ class PosliReseniForm(forms.Form): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-close-on-select': 'false', + 'data-dropdown-css-class': 'select2multiple', 'data-allow-clear': 'true'}) ) @@ -77,6 +79,7 @@ class NahrajReseniForm(forms.ModelForm): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-close-on-select': 'false', + 'data-dropdown-css-class': 'select2multiple', 'data-allow-clear': 'true'}, forward=["nadproblem_id"], ), @@ -86,6 +89,7 @@ class NahrajReseniForm(forms.ModelForm): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-close-on-select': 'false', + 'data-dropdown-css-class': 'select2multiple', 'data-allow-clear': 'true'}, ) } From ff7914fbb2b7ff4f5852def8807100d0db447bbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 22:25:39 +0200 Subject: [PATCH 220/515] =?UTF-8?q?P=C5=99ed=C4=9Blan=C3=A9=20odkazy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/urls.py | 2 +- vyroci/urls.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mamweb/urls.py b/mamweb/urls.py index 7ec5831c..62c9a79a 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -69,7 +69,7 @@ urlpatterns = [ # path('api/', include(router.urls)), # Výroční sraz - path('', include('vyroci.urls')), + path('srazy/', include('vyroci.urls')), ] diff --git a/vyroci/urls.py b/vyroci/urls.py index 9b1ebfca..7f0b5ed3 100644 --- a/vyroci/urls.py +++ b/vyroci/urls.py @@ -5,12 +5,12 @@ from .views import VyrociView, VyrociListView urlpatterns = [ path( - 'sraz/', + '30-let/', VyrociView.as_view(), name='vyrocni_sraz' ), path( - 'sraz_vysledky/', + '30-let_vysledky/', org_required(VyrociListView.as_view()), name='vyrocni_sraz_vysledky' ), From 5169c357aaf501cfa4ea6dd9cb7551107f343bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 22:33:52 +0200 Subject: [PATCH 221/515] =?UTF-8?q?P=C5=99ed=C4=9Bl=C3=A1ny=20texty=20(ukl?= =?UTF-8?q?=C3=A1dan=C3=A9=20do=20datab=C3=A1ze)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Takhle se to nedělá, ale ještě to není nikde nasazené, tak je to asi v pohodě --- vyroci/migrations/0001_initial.py | 4 ++-- vyroci/models.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vyroci/migrations/0001_initial.py b/vyroci/migrations/0001_initial.py index 1cf16c1a..2cf55814 100644 --- a/vyroci/migrations/0001_initial.py +++ b/vyroci/migrations/0001_initial.py @@ -15,8 +15,8 @@ class Migration(migrations.Migration): name='UcastnikVyroci', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('jmeno', models.CharField(help_text='Občanská identifikace účastníka víkendovky', max_length=256, verbose_name='Jméno a přijmení')), - ('prezdivka', models.CharField(help_text='Veřejná identifikace účastníka víkendovky', max_length=256, verbose_name='Přezdívka')), + ('jmeno', models.CharField(help_text='Občanská identifikace účastníka víkendovky', max_length=256, verbose_name='Jméno a příjmení')), + ('prezdivka', models.CharField(help_text='Zveřejňovaná identifikace účastníka víkendovky', max_length=256, verbose_name='Přezdívka (do seznamu účastníků, například Bětka N.)')), ('email', models.EmailField(help_text='Kontakt na účastníka víkendovky', max_length=256, verbose_name='E-mail')), ('kdy', models.TextField(max_length=256, verbose_name='Řešil nebo organizoval jsi M&M? Kdy?')), ('cojemam', models.TextField(max_length=256, verbose_name='Co znamená M&M (a proč)?')), diff --git a/vyroci/models.py b/vyroci/models.py index 909fb72f..b4c37573 100644 --- a/vyroci/models.py +++ b/vyroci/models.py @@ -6,13 +6,13 @@ from django.db import models class UcastnikVyroci(models.Model): jmeno = models.CharField( - "Jméno a přijmení", max_length=256, blank=False, null=False, + "Jméno a příjmení", max_length=256, blank=False, null=False, help_text="Občanská identifikace účastníka víkendovky" ) prezdivka = models.CharField( - "Přezdívka", max_length=256, blank=False, null=False, - help_text="Veřejná identifikace účastníka víkendovky" + "Přezdívka (do seznamu účastníků, například Bětka N.)", max_length=256, blank=False, null=False, + help_text="Zveřejňovaná identifikace účastníka víkendovky" ) email = models.EmailField( From cab40cc6efb5ee0a30cc6c3fdbbb2aa89352b1ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 22:36:08 +0200 Subject: [PATCH 222/515] =?UTF-8?q?P=C5=99ed=C4=9Bl=C3=A1ny=20zbyl=C3=A9?= =?UTF-8?q?=20texty?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/templates/vyroci/vyroci.html | 2 +- vyroci/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vyroci/templates/vyroci/vyroci.html b/vyroci/templates/vyroci/vyroci.html index 22516121..a8cf128a 100644 --- a/vyroci/templates/vyroci/vyroci.html +++ b/vyroci/templates/vyroci/vyroci.html @@ -8,7 +8,7 @@

    Rádi bychom Tě pozvali na plánovaný M&Mí sraz, kde nalezneš možnost se setkat se současnými organizátory a účastníky, minulými organizátory a účastníky, předminulými organizátory a účastníky, předpředminulými organizátory a účastníky a jinými M&Mími legendami.

    -

    Těšit se můžeš na zábavnou akci pro všechny věkové kategorie. Pokud máš chuť se zúčastnit, tak neváhej a vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu, nebo s sebou někoho vzít – třeba děti, tak to napiš do poznámky). Podrobnější informace o akci budeme rozesílat přibližně dva týdny před akci.

    +

    Těšit se můžeš na zábavnou akci pro všechny věkové kategorie. Pokud máš chuť se zúčastnit, tak neváhej a vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu, nebo s sebou někoho vzít – třeba děti, tak to napiš do poznámky). Podrobnější informace o akci budeme rozesílat přibližně dva týdny před akcí.

    • Kdy: pátek 22. – neděle 24. 9. 2023
    • diff --git a/vyroci/views.py b/vyroci/views.py index 40d87302..a2f4767d 100644 --- a/vyroci/views.py +++ b/vyroci/views.py @@ -20,7 +20,7 @@ class VyrociView(FormView): def form_valid(self, form): form.save() - return formularOKView(self.request, "Úspěšně jsi se přihlásil na víkendovku") + return formularOKView(self.request, "Úspěšně ses přihlásil na sraz") def get_initial(self): initial = super().get_initial() if self.request.user.is_authenticated: From 5e7f6c81bc1a7e6f88bdda35dcffb3d36a0b497c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 22:40:44 +0200 Subject: [PATCH 223/515] =?UTF-8?q?Odstran=C4=9Bno=20omezen=C3=AD=20na=20T?= =?UTF-8?q?extField=20(v=20datab=C3=A1zi)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Takhle se to nedělá, ale ještě to není nikde nasazené, tak je to asi v pohodě --- vyroci/migrations/0001_initial.py | 8 ++++---- vyroci/models.py | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/vyroci/migrations/0001_initial.py b/vyroci/migrations/0001_initial.py index 2cf55814..7d3b7770 100644 --- a/vyroci/migrations/0001_initial.py +++ b/vyroci/migrations/0001_initial.py @@ -18,10 +18,10 @@ class Migration(migrations.Migration): ('jmeno', models.CharField(help_text='Občanská identifikace účastníka víkendovky', max_length=256, verbose_name='Jméno a příjmení')), ('prezdivka', models.CharField(help_text='Zveřejňovaná identifikace účastníka víkendovky', max_length=256, verbose_name='Přezdívka (do seznamu účastníků, například Bětka N.)')), ('email', models.EmailField(help_text='Kontakt na účastníka víkendovky', max_length=256, verbose_name='E-mail')), - ('kdy', models.TextField(max_length=256, verbose_name='Řešil nebo organizoval jsi M&M? Kdy?')), - ('cojemam', models.TextField(max_length=256, verbose_name='Co znamená M&M (a proč)?')), - ('cislo', models.TextField(max_length=256, verbose_name='Co v M&Mí historii značí číslo 265252859812191058636308480000000?')), - ('dodat', models.TextField(blank=True, max_length=256, null=True, verbose_name='Co chci ještě dodat?')), + ('kdy', models.TextField(verbose_name='Řešil nebo organizoval jsi M&M? Kdy?')), + ('cojemam', models.TextField(verbose_name='Co znamená M&M (a proč)?')), + ('cislo', models.TextField(verbose_name='Co v M&Mí historii značí číslo 265252859812191058636308480000000?')), + ('dodat', models.TextField(blank=True, null=True, verbose_name='Co chci ještě dodat?')), ], ), ] diff --git a/vyroci/models.py b/vyroci/models.py index b4c37573..04fd2097 100644 --- a/vyroci/models.py +++ b/vyroci/models.py @@ -21,20 +21,20 @@ class UcastnikVyroci(models.Model): ) kdy = models.TextField( - "Řešil nebo organizoval jsi M&M? Kdy?", max_length=256, blank=False, + "Řešil nebo organizoval jsi M&M? Kdy?", blank=False, null=False, ) cojemam = models.TextField( - "Co znamená M&M (a proč)?", max_length=256, blank=False, null=False, + "Co znamená M&M (a proč)?", blank=False, null=False, ) cislo = models.TextField( "Co v M&Mí historii značí číslo 265252859812191058636308480000000?", - max_length=256, blank=False, null=False, + blank=False, null=False, ) dodat = models.TextField( - "Co chci ještě dodat?", max_length=256, blank=True, null=True, + "Co chci ještě dodat?", blank=True, null=True, ) From e6d4bfe0f57524134a9f050c56125daf61d76ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 13 Jun 2023 22:47:00 +0200 Subject: [PATCH 224/515] =?UTF-8?q?=C3=9Apravy=20templat=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/templates/vyroci/vyroci.html | 4 ++-- vyroci/templates/vyroci/vyroci_list.html | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/vyroci/templates/vyroci/vyroci.html b/vyroci/templates/vyroci/vyroci.html index a8cf128a..3d6df822 100644 --- a/vyroci/templates/vyroci/vyroci.html +++ b/vyroci/templates/vyroci/vyroci.html @@ -13,7 +13,7 @@
      • Kdy: pátek 22. – neděle 24. 9. 2023
      • Kde: Klubovna Upírků v Libčicích n.V.
      • -
      • Kdo jede: Káťa, (R)adim{% for ucastnik in ucastnici %}, {{ ucastnik.prezdivka }}{% endfor %}
      • +
      • Kdo jede: {% for ucastnik in ucastnici %}{% if not forloop.first %}, {% endif %}{{ ucastnik.prezdivka }}{% endfor %}

      Přihlašovací formulář

      @@ -22,6 +22,7 @@
      + {{form.non_field_errors}} {% for field in form %}
      @@ -48,7 +49,6 @@
      {% csrf_token %} - {{form.non_field_errors}}
      diff --git a/vyroci/templates/vyroci/vyroci_list.html b/vyroci/templates/vyroci/vyroci_list.html index 515df76b..efab5b0b 100644 --- a/vyroci/templates/vyroci/vyroci_list.html +++ b/vyroci/templates/vyroci/vyroci_list.html @@ -15,15 +15,15 @@ Něco dodat? - {% for obj in ucastnikvyroci_list %} + {% for u in object_list %} - {{ obj.jmeno }} - {{ obj.prezdivka }} - {{ obj.email }} - {{ obj.kdy }} - {{ obj.cojemam }} - {{ obj.cislo }} - {{ obj.dodat }} + {{ u.jmeno }} + {{ u.prezdivka }} + {{ u.email }} + {{ u.kdy }} + {{ u.cojemam }} + {{ u.cislo }} + {{ u.dodat }} {% endfor %} From 1a008dff191ba5126b3356068a4049e71223a0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 15 Jun 2023 13:26:37 +0200 Subject: [PATCH 225/515] =?UTF-8?q?Dal=C5=A1=C3=AD=20=C3=BApravy=20textu?= =?UTF-8?q?=20(a=20vzhledu)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vyroci/templates/vyroci/vyroci.html | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vyroci/templates/vyroci/vyroci.html b/vyroci/templates/vyroci/vyroci.html index 3d6df822..50c37c32 100644 --- a/vyroci/templates/vyroci/vyroci.html +++ b/vyroci/templates/vyroci/vyroci.html @@ -2,13 +2,19 @@ {% block content %} +
      +

      {% block nadpis1a %}M&Mí 30!*{% endblock nadpis1a %}

      +
      +

      *plným názvem M&Mí 265252859812191058636308480000000.

      -

      Rádi bychom Tě pozvali na plánovaný M&Mí sraz, kde nalezneš možnost se setkat se současnými organizátory a účastníky, minulými organizátory a účastníky, předminulými organizátory a účastníky, předpředminulými organizátory a účastníky a jinými M&Mími legendami.

      +
      + +

      Rádi bychom Tě pozvali na plánovaný M&Mí sraz, kde nalezneš možnost se setkat se současnými organizátory, minulými organizátory a účastníky, předminulými organizátory a účastníky, předpředminulými organizátory a účastníky a jinými M&Mími legendami.

      -

      Těšit se můžeš na zábavnou akci pro všechny věkové kategorie. Pokud máš chuť se zúčastnit, tak neváhej a vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu, nebo s sebou někoho vzít – třeba děti, tak to napiš do poznámky). Podrobnější informace o akci budeme rozesílat přibližně dva týdny před akcí.

      +

      Těšit se můžeš na zábavnou akci pro všechny věkové kategorie. Pokud máš chuť se zúčastnit, tak neváhej a vyplň přihlašovací formulář níže (pokud plánuješ přijet jen na část víkendu nebo s sebou někoho vzít – třeba děti, tak to napiš do poznámky). Podrobnější informace o akci budeme rozesílat přibližně dva týdny před akcí.

      • Kdy: pátek 22. – neděle 24. 9. 2023
      • From 07c465e6ca845b32aa2071440cee231ba6745023 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 15 Jun 2023 16:55:31 +0200 Subject: [PATCH 226/515] =?UTF-8?q?Spr=C3=A1vn=C3=A1=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/urls.py | 2 +- vyroci/urls.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mamweb/urls.py b/mamweb/urls.py index 62c9a79a..0855b6b6 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -69,7 +69,7 @@ urlpatterns = [ # path('api/', include(router.urls)), # Výroční sraz - path('srazy/', include('vyroci.urls')), + path('sraz/30-let/', include('vyroci.urls')), ] diff --git a/vyroci/urls.py b/vyroci/urls.py index 7f0b5ed3..69132f45 100644 --- a/vyroci/urls.py +++ b/vyroci/urls.py @@ -5,13 +5,13 @@ from .views import VyrociView, VyrociListView urlpatterns = [ path( - '30-let/', + '', VyrociView.as_view(), name='vyrocni_sraz' ), path( - '30-let_vysledky/', + 'ucastnici/', org_required(VyrociListView.as_view()), - name='vyrocni_sraz_vysledky' + name='vyrocni_sraz_ucastnici' ), ] From bb2332dc278db964dba0401eceff26f371cef810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 15 Jun 2023 18:57:11 +0200 Subject: [PATCH 227/515] =?UTF-8?q?Lep=C5=A1=C3=AD=20popis,=20kdy=20maj?= =?UTF-8?q?=C3=AD=20pos=C3=ADlat=20PDF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/prilohy.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/prilohy.html b/odevzdavatko/templates/odevzdavatko/prilohy.html index 2bfaa29e..1e33376f 100644 --- a/odevzdavatko/templates/odevzdavatko/prilohy.html +++ b/odevzdavatko/templates/odevzdavatko/prilohy.html @@ -2,7 +2,7 @@

        Soubory s řešením

        -

        Pokud je to možné a dává to smysl, pošli nám prosím své řešení ve formátu PDF, ostatní formáty nemusíme umět otevřít.

        +

        Pokud je to možné a dává to smysl (tj. není to třeba kód nebo doprovodný obrázek), pošli nám prosím své řešení ve formátu PDF, ostatní formáty nemusíme umět otevřít.

        Pokud svůj soubor rozumně pojmenuješ, urychlíš opravování a předejdeš tomu, že si nějakého tvého řešení nevšimneme. Například z img_250921_101205.pdf nepoznáme, kterou úlohu jsi odevzdal, zato uloha_3.pdf nebo tema_1.pdf, to už je něco jiného. Případně můžeš využít i poznámku řešitele.

        Maximální součet velikostí příloh je cca 49 MB.

        From 5048f52ac6ef969883a466273d16d10b3f1ba308 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sat, 17 Jun 2023 00:32:23 +0200 Subject: [PATCH 228/515] =?UTF-8?q?Oprava=20nadpisu=20v=20term=C3=ADn?= =?UTF-8?q?=C3=A1=C5=99sk=C3=A9m=20souhrnu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nejsou to počty řešení, spíš jejich stáří, protože se to termínářům hodí víc. --- personalni/templates/personalni/profil/orgorozcestnik.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/templates/personalni/profil/orgorozcestnik.html b/personalni/templates/personalni/profil/orgorozcestnik.html index fe21a8e1..34c4daba 100644 --- a/personalni/templates/personalni/profil/orgorozcestnik.html +++ b/personalni/templates/personalni/profil/orgorozcestnik.html @@ -98,7 +98,7 @@

        Termínářský souhrn

          -
        • Počty neobodovaných řešení: +
        • Stáří neobodovaných řešení:
            {% for problem, pocet in pocty_neopravenych_reseni %}
          • {{ problem }}: {{ pocet }}
          • From a20d7c3c3459493d4b3b47adf6455447a8850d8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 17 Jun 2023 09:19:34 +0200 Subject: [PATCH 229/515] =?UTF-8?q?P=C5=99idat=20PDF=20v=20men=C3=AD=C4=8D?= =?UTF-8?q?ku=20korekturov=C3=A1tka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sitetree.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/data/sitetree.json b/data/sitetree.json index 25cf7fd7..7cfa87b0 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -1025,5 +1025,29 @@ }, "model": "sitetree.treeitem", "pk": 51 + }, + { + "fields": { + "access_guest": false, + "access_loggedin": false, + "access_perm_type": 1, + "access_permissions": [], + "access_restricted": false, + "alias": null, + "description": "", + "hidden": false, + "hint": "", + "inbreadcrumbs": true, + "inmenu": true, + "insitetree": true, + "parent": 28, + "sort_order": 52, + "title": "Přidat PDF", + "tree": 1, + "url": "/admin/korektury/korekturovanepdf/add/", + "urlaspattern": false + }, + "model": "sitetree.treeitem", + "pk": 52 } ] \ No newline at end of file From 18f55153beeb782a7d9cc3b81cefb22a12c85ee9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:06:18 +0200 Subject: [PATCH 230/515] =?UTF-8?q?filter=20m=C3=ADsto=20[=E2=80=A6=20for?= =?UTF-8?q?=20=E2=80=A6=20if=20=E2=80=A6]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/views/autocomplete.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/views/autocomplete.py b/api/views/autocomplete.py index 0d5b4f55..edc81ff7 100644 --- a/api/views/autocomplete.py +++ b/api/views/autocomplete.py @@ -80,7 +80,7 @@ class OdevzdatelnyProblemAutocomplete(autocomplete.Select2QuerySetView): # Seřadíme tak, aby ty s nadproblem==None byly dole (větší motivace tam naklikat konkrétní úlohy) a pak nějak rozumně. # Tohle je řazení pro odevzdávátko, kde je definován nadproblém, proto je to v tomto ifu. (Jinde si to netroufám řadit) qs = qs.order_by("nadproblem", "kod", "nazev") - qs = [problem for problem in qs if problem.hlavni_problem.id == nadproblem_id] + qs = list(filter(lambda problem: problem.hlavni_problem.id == nadproblem_id, qs)) return qs class ProblemAutocomplete(autocomplete.Select2QuerySetView): From dae3864ba4b3c10fb6f9a00a47b9fc91b1ff35d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:08:45 +0200 Subject: [PATCH 231/515] =?UTF-8?q?Oran=C5=BEov=C3=A9=20zv=C3=BDrazn=C4=9B?= =?UTF-8?q?n=C3=AD=20pro=20v=C5=A1echny=20Select2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 297239dc..ec76d404 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1275,6 +1275,7 @@ label[for=id_skola] { padding: 0 0 0 8px; } -.select2multiple .select2-results__option--highlighted { +/* Oranžové zvýraznění v Select2 */ +.select2-results__option--highlighted { background-color: #e84e10 !important; } From 0bf309fd7822b76169caf39b7cd4ff7ebdb06923 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:12:09 +0200 Subject: [PATCH 232/515] =?UTF-8?q?P=C5=99ejmenov=C3=A1n=C3=AD=20.select2m?= =?UTF-8?q?ultiple=20.s2m-se-zaskrtavatky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 6 +++--- odevzdavatko/forms.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index ec76d404..a43bf310 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1264,13 +1264,13 @@ label[for=id_skola] { /* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ /* Podle https://stackoverflow.com/a/48290544 */ -/* U autocomplete.ModelSelect2Multiple vyžaduje 'data-dropdown-css-class': 'select2multiple' */ -.select2multiple .select2-results__option[aria-selected=true]:before { +/* U autocomplete.ModelSelect2Multiple vyžaduje 'data-dropdown-css-class': 's2m-se-zaskrtavatky' */ +.s2m-se-zaskrtavatky .select2-results__option[aria-selected=true]:before { content: '☑ '; padding: 0 0 0 8px; } -.select2multiple .select2-results__option[aria-selected=false]:before { +.s2m-se-zaskrtavatky .select2-results__option[aria-selected=false]:before { content: '◻ '; padding: 0 0 0 8px; } diff --git a/odevzdavatko/forms.py b/odevzdavatko/forms.py index 7d4b6e54..074bc6da 100644 --- a/odevzdavatko/forms.py +++ b/odevzdavatko/forms.py @@ -30,7 +30,7 @@ class PosliReseniForm(forms.Form): 'data-placeholder--id': '-1', 'data-placeholder--text': '---', 'data-close-on-select': 'false', - 'data-dropdown-css-class': 'select2multiple', + 'data-dropdown-css-class': 's2m-se-zaskrtavatky', 'data-allow-clear': 'true' }, ), @@ -46,7 +46,7 @@ class PosliReseniForm(forms.Form): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-close-on-select': 'false', - 'data-dropdown-css-class': 'select2multiple', + 'data-dropdown-css-class': 's2m-se-zaskrtavatky', 'data-allow-clear': 'true'}) ) @@ -79,7 +79,7 @@ class NahrajReseniForm(forms.ModelForm): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-close-on-select': 'false', - 'data-dropdown-css-class': 'select2multiple', + 'data-dropdown-css-class': 's2m-se-zaskrtavatky', 'data-allow-clear': 'true'}, forward=["nadproblem_id"], ), @@ -89,7 +89,7 @@ class NahrajReseniForm(forms.ModelForm): attrs = {'data-placeholder--id': '-1', 'data-placeholder--text' : '---', 'data-close-on-select': 'false', - 'data-dropdown-css-class': 'select2multiple', + 'data-dropdown-css-class': 's2m-se-zaskrtavatky', 'data-allow-clear': 'true'}, ) } From 94ea718c20670ec0aa64c94384fc93245c80a698 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:13:56 +0200 Subject: [PATCH 233/515] =?UTF-8?q?Drobn=C3=A1=20=C3=BAprava=20textu=20pro?= =?UTF-8?q?=20=C5=99e=C5=A1itele?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/templates/odevzdavatko/nahraj_reseni.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html index 19101b6b..ca326d67 100644 --- a/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html +++ b/odevzdavatko/templates/odevzdavatko/nahraj_reseni.html @@ -47,7 +47,7 @@

            Spolupráce s dalšími řešiteli

            -

            Pokud řešíte ve více lidech, je potřeba přidat tyto lidi jako „Další autoři“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobní údaje“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

            +

            Pokud řešíte ve více lidech, je potřeba přidat tyto lidi jako „Další autory“. V tomto poli se vyhledává podle přezdívek, které si lze nastavit v „Osobních údajích“. Sebe vyplňovat nemusíte a za skupinu odevzdávejte pouze jednou (ne každý sám).

            {% with field=form.resitele %} From c64294099e79745140a7eb3112882bef3616771d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:15:35 +0200 Subject: [PATCH 234/515] NahrajReseniNadproblemView -> NahrajReseniRozcestnikTematekView --- odevzdavatko/urls.py | 2 +- odevzdavatko/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index 35b74eea..b7de10b0 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -20,7 +20,7 @@ from . import views urlpatterns = [ path('org/add_solution', org_required(views.PosliReseniView.as_view()), name='seminar_vloz_reseni'), - path('resitel/nahraj_reseni', resitel_required(views.NahrajReseniNadproblemView.as_view()), name='seminar_nahraj_reseni'), + path('resitel/nahraj_reseni', resitel_required(views.NahrajReseniRozcestnikTematekView.as_view()), name='seminar_nahraj_reseni'), path('resitel/nahraj_reseni//', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'), path('resitel/odevzdana_reseni/', resitel_or_org_required(views.PrehledOdevzdanychReseni.as_view()), name='seminar_resitel_odevzdana_reseni'), diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 504da6df..e7d362e0 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -399,7 +399,7 @@ class PosliReseniView(LoginRequiredMixin, FormView): return data -class NahrajReseniNadproblemView(LoginRequiredMixin, ListView): +class NahrajReseniRozcestnikTematekView(LoginRequiredMixin, ListView): model = m.Problem template_name = 'odevzdavatko/nahraj_reseni_nadproblem.html' From 205aa0b900cf3fe9fb80cbc001ccfcb544860bb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:24:19 +0200 Subject: [PATCH 235/515] =?UTF-8?q?V=20NahrajReseniView=20z=20nadprobl?= =?UTF-8?q?=C3=A9mu=20ud=C4=9Blat=20property?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index e7d362e0..667f74aa 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -415,8 +415,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): def get(self, request, *args, **kwargs): # Zaříznutí nezadaných problémů nadproblem_id = self.kwargs["nadproblem_id"] - nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) - if nadproblem.stav != "zadany": + self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) + if self.nadproblem.stav != "zadany": raise PermissionDenied() @@ -433,10 +433,10 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): return super().get(request, *args, **kwargs) def get_initial(self): - nadproblem_id = self.kwargs["nadproblem_id"] + nadproblem_id = self.nadproblem.id return { "nadproblem_id": nadproblem_id, - "problem": [] if m.Problem.objects.filter(stav=m.Problem.STAV_ZADANY, nadproblem__id=nadproblem_id) else nadproblem_id + "problem": [] if self.nadproblem.podproblem.filter(stav=m.Problem.STAV_ZADANY).exists() else nadproblem_id } @@ -447,8 +447,8 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): else: data['prilohy'] = f.ReseniSPrilohamiFormSet() - data["nadproblem_id"] = self.kwargs["nadproblem_id"] - data["nadproblem"] = get_object_or_404(m.Problem, id=self.kwargs["nadproblem_id"]) + data["nadproblem_id"] = self.nadproblem.id + data["nadproblem"] = get_object_or_404(m.Problem, id=self.nadproblem.id) return data # FIXME prepsat tak, aby form_valid se volalo jen tehdy, kdyz je form i formset validni From e641724eab69e7fe68cf700a0a4bb4c5cb16c7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:28:43 +0200 Subject: [PATCH 236/515] =?UTF-8?q?=E2=80=9EP=C5=99eklep=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/templates/personalni/profil/resitel.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/personalni/templates/personalni/profil/resitel.html b/personalni/templates/personalni/profil/resitel.html index 7bcb698c..0bd92d63 100644 --- a/personalni/templates/personalni/profil/resitel.html +++ b/personalni/templates/personalni/profil/resitel.html @@ -11,7 +11,7 @@ Odhlásit se
            Upravit údaje
            -Nahrátí řešení
            +Nahrát řešení
            Již odevzdaná řešení
            From baaaa0829a5abd376c5f373ac2ec0bc0f9b68749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:31:59 +0200 Subject: [PATCH 237/515] =?UTF-8?q?Pro=20bezpe=C4=8Dnost=20Iterable=20->?= =?UTF-8?q?=20Sequence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index f05945f5..e35742c7 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -35,7 +35,7 @@ from django.conf import settings import unicodedata import logging import time -from collections.abc import Iterable +from collections.abc import Sequence from seminar.utils import aktivniResitele @@ -678,7 +678,7 @@ def StavDatabazeView(request): # Interní, nemá se nikdy objevit v urls (jinak to účastníci vytrolí) -def formularOKView(request, text='', dalsi_odkazy: Iterable[tuple[str, str]] = ()): +def formularOKView(request, text='', dalsi_odkazy: Sequence[tuple[str, str]] = ()): template_name = 'seminar/formular_ok.html' odkazy = list(dalsi_odkazy) + [ # (Text, odkaz) From 37d29fcf58cc1ebe9b1c75f08c935ee6294f76a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 20:46:12 +0200 Subject: [PATCH 238/515] Posli -> Vloz --- .../odevzdavatko/{posli_reseni.html => vloz_reseni.html} | 0 odevzdavatko/urls.py | 2 +- odevzdavatko/views.py | 4 ++-- 3 files changed, 3 insertions(+), 3 deletions(-) rename odevzdavatko/templates/odevzdavatko/{posli_reseni.html => vloz_reseni.html} (100%) diff --git a/odevzdavatko/templates/odevzdavatko/posli_reseni.html b/odevzdavatko/templates/odevzdavatko/vloz_reseni.html similarity index 100% rename from odevzdavatko/templates/odevzdavatko/posli_reseni.html rename to odevzdavatko/templates/odevzdavatko/vloz_reseni.html diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index b7de10b0..6b021f2e 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -19,7 +19,7 @@ from seminar.utils import org_required, resitel_required, viewMethodSwitch, \ from . import views urlpatterns = [ - path('org/add_solution', org_required(views.PosliReseniView.as_view()), name='seminar_vloz_reseni'), + path('org/add_solution', org_required(views.VlozReseniView.as_view()), name='seminar_vloz_reseni'), path('resitel/nahraj_reseni', resitel_required(views.NahrajReseniRozcestnikTematekView.as_view()), name='seminar_nahraj_reseni'), path('resitel/nahraj_reseni//', resitel_required(views.NahrajReseniView.as_view()), name='seminar_nahraj_reseni'), path('resitel/odevzdana_reseni/', resitel_or_org_required(views.PrehledOdevzdanychReseni.as_view()), name='seminar_resitel_odevzdana_reseni'), diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 667f74aa..1e19921a 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -367,8 +367,8 @@ class SeznamAktualnichReseniView(SeznamReseniView): return qs -class PosliReseniView(LoginRequiredMixin, FormView): - template_name = 'odevzdavatko/posli_reseni.html' +class VlozReseniView(LoginRequiredMixin, FormView): + template_name = 'odevzdavatko/vloz_reseni.html' form_class = f.PosliReseniForm def form_valid(self, form): From 13c48ae1c23afed595a9238da501a11d1a562724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 21:35:03 +0200 Subject: [PATCH 239/515] Oprava OJOJOJOJ (error 500) --- mamweb/templates/500.html | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/templates/500.html b/mamweb/templates/500.html index 71d8e651..7fc267fe 100644 --- a/mamweb/templates/500.html +++ b/mamweb/templates/500.html @@ -3,6 +3,7 @@ {% load static %} {% block errorheading %} +
            {# Meníčko nedostaneme, protože dostáváme prázdný kontext. Tak alespoň ať se O-JO-JO-JO-JOJ neschovává pod ním #} O-jo-jo-jo-joj {% endblock %} From 363776ba4f7262ab51be9b89451567e7b3f6cbda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 21:41:59 +0200 Subject: [PATCH 240/515] =?UTF-8?q?Lep=C5=A1=C3=AD=20popis=20n=C3=A1zvu=20?= =?UTF-8?q?PDF=20k=20oprav=C3=A1m=20v=20adminu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../0020_lepsi_popis_nazvu_PDF_v_adminu.py | 18 ++++++++++++++++++ korektury/models.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 korektury/migrations/0020_lepsi_popis_nazvu_PDF_v_adminu.py diff --git a/korektury/migrations/0020_lepsi_popis_nazvu_PDF_v_adminu.py b/korektury/migrations/0020_lepsi_popis_nazvu_PDF_v_adminu.py new file mode 100644 index 00000000..6ea07604 --- /dev/null +++ b/korektury/migrations/0020_lepsi_popis_nazvu_PDF_v_adminu.py @@ -0,0 +1,18 @@ +# Generated by Django 2.2.28 on 2023-06-19 19:38 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('korektury', '0019_auto_20221205_2014'), + ] + + operations = [ + migrations.AlterField( + model_name='korekturovanepdf', + name='nazev', + field=models.CharField(help_text='Název (např. `22.1 | analyza v4` nebo `propagace | letacek v0`) korekturovaného PDF', max_length=50, verbose_name='název PDF'), + ), + ] diff --git a/korektury/models.py b/korektury/models.py index ac82c14e..8906c00c 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -55,7 +55,7 @@ class KorekturovanePDF(models.Model): cas = models.DateTimeField(u'čas vložení PDF',default=timezone.now,help_text = 'Čas vložení PDF') - nazev = models.CharField(u'název PDF',blank = False,max_length=50, help_text='Název (např. 22.1 verze 4) korekturovaného PDF') + nazev = models.CharField(u'název PDF',blank = False,max_length=50, help_text='Název (např. `22.1 | analyza v4` nebo `propagace | letacek v0`) korekturovaného PDF') komentar = models.TextField(u'komentář k PDF',blank = True, help_text='Komentář ke korekturovanému PDF (např. na co se zaměřit)') From cefbd4df7ab18b351aad9d3ce9fc4f143192eeee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 19 Jun 2023 21:52:01 +0200 Subject: [PATCH 241/515] =?UTF-8?q?Oprava=20v=C3=BDsledkovky=20do=20posled?= =?UTF-8?q?n=C3=ADho=20=C4=8D=C3=ADsla=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/views_all.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index e35742c7..8e71fed3 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -535,7 +535,9 @@ class PosledniCisloVysledkovkaView(generic.DetailView): def get_context_data(self, **kwargs): context = super(PosledniCisloVysledkovkaView, self).get_context_data() rocnik = context['rocnik'] - cislo = rocnik.cisla.order_by("poradi").last() + cislo = rocnik.cisla.order_by("poradi").filter(deadline_v_cisle__isnull=False).last() + if cislo is None: + raise Http404(f"Ročník {rocnik.rocnik} nemá číslo s deadlinem.") cislopred = cislo.predchozi() context['vysledkovka'] = VysledkovkaDoTeXu( cislo, From feffa99d793e76a78c4dca8d0633e56d27613bb2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 20 Jun 2023 00:26:40 +0200 Subject: [PATCH 242/515] =?UTF-8?q?Fix=20typu=20v=20hodnot=C3=ADtku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index a3838285..781ff8bc 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -147,7 +147,7 @@ class TabulkaOdevzdanychReseniView(ListView): resitele_do_tabulky: list[m.Resitel] = [] for resitel in self.resitele: dostal_body = False - resiteluv_radek: list[tuple[Decimal,list[tuple[m.Resitel, m.Hodnoceni]]]] = [] # podle pořadí v self.problemy + resiteluv_radek: list[tuple[Decimal,list[tuple[m.Reseni, m.Hodnoceni]]]] = [] # podle pořadí v self.problemy for problem in self.problemy: if problem in tabulka and resitel in tabulka[problem]: resiteluv_radek.append((soucty[problem][resitel], tabulka[problem][resitel])) From 01ad1daba91c8bf97726df479f0bf53ccd5b9a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 20 Jun 2023 17:50:17 +0200 Subject: [PATCH 243/515] =?UTF-8?q?WTF=20(=C5=A1patn=C3=A9=20pr=C3=A1vo=20?= =?UTF-8?q?v=20men=C3=AD=C4=8Dku=20u=20korektur)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sitetree.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/sitetree.json b/data/sitetree.json index 5332c20f..29403e5a 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -476,9 +476,9 @@ "access_perm_type": 1, "access_permissions": [ [ - "change_hodnoceni", - "seminar", - "hodnoceni" + "org", + "auth", + "user" ] ], "access_restricted": true, From 2cf4d87c6b9dd16b89a6f92d08ca22cc14204664 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 21 Jun 2023 14:45:46 +0200 Subject: [PATCH 244/515] =?UTF-8?q?Margin=C3=A1ln=C3=AD=20zlep=C5=A1en?= =?UTF-8?q?=C3=AD=20vyr=C3=A1b=C3=ADtka=20org=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Podle diskuse na Matrixu --- personalni/admin.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/personalni/admin.py b/personalni/admin.py index fc3cadd4..a00fc6ac 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -2,6 +2,7 @@ from django.contrib import admin from django.contrib.auth.models import Group from django_reverse_admin import ReverseModelAdmin import seminar.models as m +from datetime import datetime @admin.register(m.Osoba) @@ -22,12 +23,12 @@ class OsobaAdmin(admin.ModelAdmin): org_group = Group.objects.get(name='org') print(queryset) for o in queryset: + if m.Organizator.objects.filter(osoba=o).exists(): continue user = o.user - print(user) user.groups.add(org_group) user.is_staff = True user.save() - org = m.Organizator.objects.create(osoba=o) + org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now()) org.save() udelej_orgem.short_description = "Udělej vybraných osob organizátory" From 844c55d5a7260e2ebec5e678c44342fdbb345147 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 21 Jun 2023 15:41:17 +0200 Subject: [PATCH 245/515] =?UTF-8?q?Oprava=20drobnost=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/admin.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/personalni/admin.py b/personalni/admin.py index a00fc6ac..29741888 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -21,7 +21,6 @@ class OsobaAdmin(admin.ModelAdmin): def udelej_orgem(self,request,queryset): org_group = Group.objects.get(name='org') - print(queryset) for o in queryset: if m.Organizator.objects.filter(osoba=o).exists(): continue user = o.user @@ -30,7 +29,7 @@ class OsobaAdmin(admin.ModelAdmin): user.save() org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now()) org.save() - udelej_orgem.short_description = "Udělej vybraných osob organizátory" + udelej_orgem.short_description = "Udělej z vybraných osob organizátory" class OsobaInline(admin.TabularInline): model = m.Osoba From 36a7a5af5dee6b2f930ce491ea15d82d43d12393 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 21 Jun 2023 15:41:36 +0200 Subject: [PATCH 246/515] =?UTF-8?q?Test=20pro=20d=C4=9Bl=C3=A1n=C3=AD=20or?= =?UTF-8?q?g=C5=AF.=20Nefunguje=20:-/?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/tests.py | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 personalni/tests.py diff --git a/personalni/tests.py b/personalni/tests.py new file mode 100644 index 00000000..633ff1d4 --- /dev/null +++ b/personalni/tests.py @@ -0,0 +1,53 @@ +from django.test import TestCase + +from django.contrib.auth.models import User, Group +# Tohle bude peklo, až jednou ty modely fakt rozstřelíme… Možná vyrobit various.all_models, které půjdou importovat jako m? :-) +import seminar.models as m + +import logging +logger = logging.getLogger(__name__) + +class DelaniOrguTest(TestCase): + def setUp(self): + self.org_group = Group.objects.get(name='org') + + novy_user = User.objects.create(username='osoba') + self.nova_osoba = m.Osoba.objects.create( + jmeno='Milada', + prijmeni='Von Kolej', + user = novy_user, + # Snad nic dalšího nepotřebujeme, kdyžtak se doplní… + ) + stary_user = User.objects.create(username='stary_user') + stara_osoba = m.Osoba.objects.create(user=stary_user) + self.stary_org = m.Organizator.objects.create(osoba=stara_osoba) + + def test_pridani_orga(self): + # Nejdřív to není org… + self.assertFalse(m.Organizator.objects.filter(osoba=self.nova_osoba).exists()) + self.assertNotIn(self.org_group, self.nova_osoba.user.groups.all()) + self.assertFalse(self.nova_osoba.user.has_perm('auth.org')) + self.assertFalse(self.nova_osoba.user.is_staff) + breakpoint + + # Pak orga uděláme… + from personalni.admin import OsobaAdmin + qs = m.Osoba.objects.filter(id=self.nova_osoba.id) + OsobaAdmin.udelej_orgem(None, None, qs) + + # A pak už to org má být. + logger.info(f'Nová osoba je staff: {self.nova_osoba.user.is_staff}') + self.assertTrue(self.nova_osoba.user.is_staff) + self.assertTrue(self.nova_osoba.user.has_perm('auth.org')) + self.assertIn(self.org_group, self.nova_osoba.user.groups.all()) + self.assertTrue(m.Organizator.objects.filter(osoba=self.nova_osoba).exists()) + novy_org = m.Organizator.objects.get(osoba=self.nova_osoba) + self.assertIsNotNone(novy_org.organizuje_od) + + def test_pridani_stareho_orga(self): + from personalni.admin import OsobaAdmin + OsobaAdmin.udelej_orgem(None, None, m.Osoba.objects.filter(id=self.stary_org.osoba.id)) # Ugly + # Když to spadne, tak jsem se to dozvěděl, takže už nepotřebuju nic kontrolovat. + # Jestli to funguje správně má řešit jiný test. + + From 3eb9c7998d984dd78757b8a012f54921d8041a8a Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Wed, 21 Jun 2023 15:51:08 +0200 Subject: [PATCH 247/515] =?UTF-8?q?Zpr=C3=A1vy=20do=20admina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/admin.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/personalni/admin.py b/personalni/admin.py index 29741888..14af2c2c 100644 --- a/personalni/admin.py +++ b/personalni/admin.py @@ -1,6 +1,7 @@ from django.contrib import admin from django.contrib.auth.models import Group from django_reverse_admin import ReverseModelAdmin +from django.contrib.messages import WARNING, ERROR, SUCCESS import seminar.models as m from datetime import datetime @@ -21,14 +22,23 @@ class OsobaAdmin(admin.ModelAdmin): def udelej_orgem(self,request,queryset): org_group = Group.objects.get(name='org') + uspesne_vytvoreni_orgove = 0 for o in queryset: - if m.Organizator.objects.filter(osoba=o).exists(): continue + if m.Organizator.objects.filter(osoba=o).exists(): + # Ref: https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.ModelAdmin.message_user + self.message_user(request, f"Osoba {o} už je org, přeskakuji.", level=WARNING) + continue user = o.user + if user is None: + self.message_user(request, f"Osoba {o} nemá uživatele! Přeskakuji.", level=ERROR) + continue user.groups.add(org_group) user.is_staff = True user.save() org = m.Organizator.objects.create(osoba=o, organizuje_od=datetime.now()) org.save() + uspesne_vytvoreni_orgove += 1 + self.message_user(request, f'Úspěšně vytvořeno {uspesne_vytvoreni_orgove} orgů.', level=SUCCESS) udelej_orgem.short_description = "Udělej z vybraných osob organizátory" class OsobaInline(admin.TabularInline): From 10b2d112496a9d9582decce79384225734b21401 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sat, 24 Jun 2023 15:20:43 +0200 Subject: [PATCH 248/515] =?UTF-8?q?Pokus=20o=20fix=20p=C3=A1du=20webu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 1e19921a..6f920474 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -433,7 +433,10 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): return super().get(request, *args, **kwargs) def get_initial(self): - nadproblem_id = self.nadproblem.id + #nadproblem_id = self.nadproblem.id + # Hotfix: nevím, proč nemáme self.nadproblem, ale občas nemáme. + nadproblem_id = self.kwargs["nadproblem_id"] + self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) return { "nadproblem_id": nadproblem_id, "problem": [] if self.nadproblem.podproblem.filter(stav=m.Problem.STAV_ZADANY).exists() else nadproblem_id From 14c6706bf31dc3b2f04435d7cca349bd159acd90 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sat, 24 Jun 2023 15:23:12 +0200 Subject: [PATCH 249/515] =?UTF-8?q?Pou=C5=BEijme=20konstantu,=20ne=20hardc?= =?UTF-8?q?odovan=C3=BD=20=C5=99et=C4=9Bzec?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 6f920474..5308df79 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -416,7 +416,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): # Zaříznutí nezadaných problémů nadproblem_id = self.kwargs["nadproblem_id"] self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) - if self.nadproblem.stav != "zadany": + if self.nadproblem.stav != m.Problem.STAV_ZADANY: raise PermissionDenied() From 24c790185eefddfd77322c54109996bfe37790d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 24 Jun 2023 17:48:49 +0200 Subject: [PATCH 250/515] =?UTF-8?q?Revert=20"Pokus=20o=20fix=20p=C3=A1du?= =?UTF-8?q?=20webu"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 10b2d112496a9d9582decce79384225734b21401. --- odevzdavatko/views.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 5308df79..15b87973 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -433,10 +433,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): return super().get(request, *args, **kwargs) def get_initial(self): - #nadproblem_id = self.nadproblem.id - # Hotfix: nevím, proč nemáme self.nadproblem, ale občas nemáme. - nadproblem_id = self.kwargs["nadproblem_id"] - self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) + nadproblem_id = self.nadproblem.id return { "nadproblem_id": nadproblem_id, "problem": [] if self.nadproblem.podproblem.filter(stav=m.Problem.STAV_ZADANY).exists() else nadproblem_id From 5b36650e6fb9dd5be4a6b367ef06f49e5d579e24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 24 Jun 2023 17:55:51 +0200 Subject: [PATCH 251/515] =?UTF-8?q?Oprava=20nahr=C3=A1n=C3=AD=20=C5=99e?= =?UTF-8?q?=C5=A1en=C3=AD=20(Chceme=20nastavovat=20v=20`setup`u=20a=20ne?= =?UTF-8?q?=20v=20`get`u)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 15b87973..ab10de41 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -411,15 +411,19 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): model = m.Reseni template_name = 'odevzdavatko/nahraj_reseni.html' form_class = f.NahrajReseniForm + nadproblem: m.Problem - def get(self, request, *args, **kwargs): - # Zaříznutí nezadaných problémů + def setup(self, request, *args, **kwargs): + super().setup(request, *args, **kwargs) nadproblem_id = self.kwargs["nadproblem_id"] self.nadproblem = get_object_or_404(m.Problem, id=nadproblem_id) + + def get(self, request, *args, **kwargs): + # Zaříznutí nezadaných problémů if self.nadproblem.stav != m.Problem.STAV_ZADANY: raise PermissionDenied() - + # Zaříznutí starých řešitelů: # FIXME: Je to tady dost naprasené, mělo by to asi být jinde… osoba = m.Osoba.objects.get(user=self.request.user) From 767358ca732a2d92cc07fce4d105e7bb335266bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 8 Jul 2023 12:56:15 +0200 Subject: [PATCH 252/515] =?UTF-8?q?Trochu=20sv=C4=9Btlej=C5=A1=C3=AD=20pla?= =?UTF-8?q?ceholder,=20a=C5=A5=20vypad=C3=A1=20m=C3=A9n=C4=9B=20jako=20vyp?= =?UTF-8?q?ln=C4=9Bn=C3=A9=20body?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index a43bf310..2fd6254d 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1261,6 +1261,15 @@ label[for=id_skola] { width: 4em; } +.bodovani>input::placeholder { + color: lightgray; + opacity: 1; +} + +.bodovani>input::-webkit-input-placeholder { /* Edge */ + color: lightgray; +} + /* Select2 používaný hlavně multiple selectem. Přidání checkboxů a změna barvy. */ /* Podle https://stackoverflow.com/a/48290544 */ From 449a3db56bd3063159bdc1994058375c4f5d9efd Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Thu, 10 Aug 2023 23:23:48 +0200 Subject: [PATCH 253/515] =?UTF-8?q?Odebr=C3=A1n=C3=AD=20pr=C3=A1v=20na=20m?= =?UTF-8?q?az=C3=A1n=C3=AD=20lid=C3=AD=20(diff=20je=20trochu=20poka=C5=BEe?= =?UTF-8?q?n=C3=BD,=20proto=C5=BEe=20save=5Forg=5Fprava=20nedr=C5=BE=C3=AD?= =?UTF-8?q?=20jednotn=C3=A9=20po=C5=99ad=C3=AD,=20ale=20co=20u=C5=BE)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy_v2/admin_org_prava.json | 122 +++++++++++++-------------------- 1 file changed, 46 insertions(+), 76 deletions(-) diff --git a/deploy_v2/admin_org_prava.json b/deploy_v2/admin_org_prava.json index 2d07cf83..3ef169a5 100644 --- a/deploy_v2/admin_org_prava.json +++ b/deploy_v2/admin_org_prava.json @@ -64,6 +64,36 @@ "ct_app_label": "galerie", "ct_model": "obrazek" }, + { + "codename": "add_fotkaheader", + "ct_app_label": "header_fotky", + "ct_model": "fotkaheader" + }, + { + "codename": "change_fotkaheader", + "ct_app_label": "header_fotky", + "ct_model": "fotkaheader" + }, + { + "codename": "view_fotkaheader", + "ct_app_label": "header_fotky", + "ct_model": "fotkaheader" + }, + { + "codename": "add_fotkaurlvazba", + "ct_app_label": "header_fotky", + "ct_model": "fotkaurlvazba" + }, + { + "codename": "change_fotkaurlvazba", + "ct_app_label": "header_fotky", + "ct_model": "fotkaurlvazba" + }, + { + "codename": "view_fotkaurlvazba", + "ct_app_label": "header_fotky", + "ct_model": "fotkaurlvazba" + }, { "codename": "add_komentar", "ct_app_label": "korektury", @@ -224,6 +254,21 @@ "ct_app_label": "seminar", "ct_model": "clanek" }, + { + "codename": "add_deadline", + "ct_app_label": "seminar", + "ct_model": "deadline" + }, + { + "codename": "change_deadline", + "ct_app_label": "seminar", + "ct_model": "deadline" + }, + { + "codename": "view_deadline", + "ct_app_label": "seminar", + "ct_model": "deadline" + }, { "codename": "add_konfera", "ct_app_label": "seminar", @@ -304,41 +349,21 @@ "ct_app_label": "seminar", "ct_model": "novinky" }, - { - "codename": "add_organizator", - "ct_app_label": "seminar", - "ct_model": "organizator" - }, { "codename": "change_organizator", "ct_app_label": "seminar", "ct_model": "organizator" }, - { - "codename": "delete_organizator", - "ct_app_label": "seminar", - "ct_model": "organizator" - }, { "codename": "view_organizator", "ct_app_label": "seminar", "ct_model": "organizator" }, - { - "codename": "add_osoba", - "ct_app_label": "seminar", - "ct_model": "osoba" - }, { "codename": "change_osoba", "ct_app_label": "seminar", "ct_model": "osoba" }, - { - "codename": "delete_osoba", - "ct_app_label": "seminar", - "ct_model": "osoba" - }, { "codename": "view_osoba", "ct_app_label": "seminar", @@ -404,21 +429,11 @@ "ct_app_label": "seminar", "ct_model": "problem" }, - { - "codename": "add_resitel", - "ct_app_label": "seminar", - "ct_model": "resitel" - }, { "codename": "change_resitel", "ct_app_label": "seminar", "ct_model": "resitel" }, - { - "codename": "delete_resitel", - "ct_app_label": "seminar", - "ct_model": "resitel" - }, { "codename": "view_resitel", "ct_app_label": "seminar", @@ -603,50 +618,5 @@ "codename": "view_taggeditem", "ct_app_label": "taggit", "ct_model": "taggeditem" - }, - { - "codename": "add_fotkaheader", - "ct_app_label": "header_fotky", - "ct_model": "fotkaheader" - }, - { - "codename": "change_fotkaheader", - "ct_app_label": "header_fotky", - "ct_model": "fotkaheader" - }, - { - "codename": "view_fotkaheader", - "ct_app_label": "header_fotky", - "ct_model": "fotkaheader" - }, - { - "codename": "add_fotkaurlvazba", - "ct_app_label": "header_fotky", - "ct_model": "fotkaurlvazba" - }, - { - "codename": "change_fotkaurlvazba", - "ct_app_label": "header_fotky", - "ct_model": "fotkaurlvazba" - }, - { - "codename": "view_fotkaurlvazba", - "ct_app_label": "header_fotky", - "ct_model": "fotkaurlvazba" - }, - { - "codename": "add_deadline", - "ct_app_label": "seminar", - "ct_model": "deadline" - }, - { - "codename": "change_deadline", - "ct_app_label": "seminar", - "ct_model": "deadline" - }, - { - "codename": "view_deadline", - "ct_app_label": "seminar", - "ct_model": "deadline" } -] +] \ No newline at end of file From 527c06d91ea068febe0376b360e4913bb493832f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 12 Aug 2023 00:58:09 +0200 Subject: [PATCH 254/515] =?UTF-8?q?P=C5=99ipomenut=C3=AD=20org=C5=AFm,=20?= =?UTF-8?q?=C5=BEe=20maj=C3=AD=20ps=C3=A1t=20weba=C5=99=C5=AFm.=20(Malilin?= =?UTF-8?q?kato=20rozb=C3=ADj=C3=AD=20styl=20na=20u=C5=BE=C5=A1=C3=ADch=20?= =?UTF-8?q?displej=C3=ADch.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 11 +++++++++++ mamweb/templates/base.html | 2 ++ 2 files changed, 13 insertions(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 2fd6254d..96defa2f 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -53,6 +53,17 @@ a.login-ref-admin { color: #fffbf6; } +.napis-webarum { + display: inline; + color: #fffbf6; + float: right; +} + +.napis-webarum a { + color: #f9d59e; + text-decoration: underline; +} + /* odkazy a nadpisy */ a { diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index b10103e5..aa854474 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -49,6 +49,8 @@ {% endif %} + + Něco ti nejde/nefunguje/mate tě? {% endif %} From df657953abbba6c458d55f437fd93d21880a6c71 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 13 Aug 2023 13:50:06 +0200 Subject: [PATCH 255/515] =?UTF-8?q?Pro=C4=8Di=C5=A1t=C4=9Bn=C3=AD=20ALLOWE?= =?UTF-8?q?D=5FHOSTS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_prod.py | 5 +++-- mamweb/settings_test.py | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index 3a81c8c4..ebe827e4 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -27,8 +27,9 @@ DEBUG = False TEMPLATE_DEBUG = False -ALLOWED_HOSTS = ['mam.mff.cuni.cz', 'www.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', - 'mamweb.bezva.org','gimli.ms.mff.cuni.cz'] +ALLOWED_HOSTS = ['mam.mff.cuni.cz', # Hlavní a asi jediná funkční adresa + 'mam.matfyz.cz', # Ne že by se tohle použilo, ale pro potenciální případ změny… + ] # Database # https://docs.djangoproject.com/en/1.7/ref/settings/#databases diff --git a/mamweb/settings_test.py b/mamweb/settings_test.py index eac5a7b4..dc5beee8 100644 --- a/mamweb/settings_test.py +++ b/mamweb/settings_test.py @@ -32,7 +32,10 @@ DEBUG = True TEMPLATES[0]['OPTIONS']['debug'] = True -ALLOWED_HOSTS = ['*.mam.mff.cuni.cz', 'atrey.karlin.mff.cuni.cz', 'mam.mff.cuni.cz', 'mam-test.kam.mff.cuni.cz', 'gimli.ms.mff.cuni.cz', 'mam-test.ks.matfyz.cz'] +ALLOWED_HOSTS = [ + 'mam-test.ks.matfyz.cz', + '*.mam.mff.cuni.cz', # Asi se nikdy nepoužije… + ] # Database # https://docs.djangoproject.com/en/1.7/ref/settings/#databases From 0c90c2bd06ce483c3a3121c061cda067d91eab0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 30 Aug 2023 22:06:46 +0200 Subject: [PATCH 256/515] =?UTF-8?q?Lep=C5=A1=C3=AD=20=C5=99azen=C3=AD=20pr?= =?UTF-8?q?obl=C3=A9m=C5=AF=20ve=20v=C3=BDsledkovce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vysledkovky/utils.py | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index 3ff59fb1..56d05c31 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -371,13 +371,7 @@ class VysledkovkaCisla(Vysledkovka): podproblemy[-1].append(problem) for podproblem in podproblemy.keys(): - def int_or_zero(p): - try: - return int(p.kod) - except ValueError: - return 0 - - podproblemy[podproblem] = sorted(podproblemy[podproblem], key=int_or_zero) + podproblemy[podproblem] = sorted(podproblemy[podproblem], key=lambda p: p.kod_v_rocniku) return podproblemy @cached_property From 30ce5a0888b48bcf3804cbd4579e3f858e0bdb8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 6 Sep 2023 12:59:04 +0200 Subject: [PATCH 257/515] =?UTF-8?q?Vynucen=C3=AD=20UTF-8=20(v=20html=20a?= =?UTF-8?q?=20css)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 1 + mamweb/templates/base.html | 1 + 2 files changed, 2 insertions(+) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 96defa2f..68029ad1 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1,3 +1,4 @@ +@charset "utf-8"; /* vynuť utf-8 */ @import url("rozliseni.css"); @font-face { diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index aa854474..4281c6df 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -3,6 +3,7 @@ + {# vynuť UTF-8. #} {% block title %}{% block nadpis1a %}🦊{% endblock %} | Korespondenční seminář M&M{% endblock title %} From fb31b10d66604a4ecd77367f57ad98d82be8d21d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 16 Sep 2023 12:31:30 +0200 Subject: [PATCH 258/515] =?UTF-8?q?Oprava=20odevzd=C3=A1v=C3=A1tka=20(?= =?UTF-8?q?=C4=8Dty=C5=99rozm=C4=9Brn=C3=A9=20body)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index ab10de41..35c99f68 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -316,7 +316,8 @@ def hodnoceniReseniView(request, pk, *args, **kwargs): if len(zmeny_bodu) == 1: hodnoceni.__setattr__(zmeny_bodu[0], data_for_body[zmeny_bodu[0]]) # > jedna změna je špatně, ale 4 "změny" znamenají že nebylo nic zadáno - if len(zmeny_bodu) > 1 and len(zmeny_bodu) != 4: + if len(zmeny_bodu) > 1 and len(zmeny_bodu) != 4 and len(zmeny_bodu) != 2: + # 4 znamená vše už vyplněno a nic nezměněno, 2 znamená předvyplnili se součty a nic se nezměnilo logger.warning(f"Hodnocení {hodnoceni} mělo mít nastavené víc různých bodů: {zmeny_bodu}. Nastavuji -0.1.") hodnoceni.body = -0.1 hodnoceni.save() From e182785e48625b670978e13b5b82ca90e750de3b Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 20 Sep 2023 01:11:03 +0200 Subject: [PATCH 259/515] =?UTF-8?q?P=C5=99id=C3=A1ny=20akce=20pro=20p?= =?UTF-8?q?=C5=99egenerov=C3=A1n=C3=AD=20deadlin=C5=AF=20do=20Admina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nikdo o tom neví, a když se o tom dozví, tak se buď nic nezmění, nebo to bylo tak dávno, že si toho nikdo nevšimne :-D Ale na testování se to hodí… Also: někde jsem přepsal mezery na taby. --- seminar/admin.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index e88af140..2ce7b2f5 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -12,16 +12,22 @@ from django.utils.safestring import mark_safe import seminar.models as m admin.site.register(m.Rocnik) - -admin.site.register(m.Deadline) admin.site.register(m.ZmrazenaVysledkovka) +@admin.register(m.Deadline) +class DeadlineAdmin(admin.ModelAdmin): + actions = ['pregeneruj_vysledkovku'] -class DeadlineAdminInline(admin.TabularInline): - model = m.Deadline - extra = 0 + def pregeneruj_vysledkovku(self, req, qs): + for deadline in qs: + deadline.vygeneruj_vysledkovku() + pregeneruj_vysledkovku.short_description = 'Přegeneruj výsledkovky vybraných deadlinů' +class DeadlineAdminInline(admin.TabularInline): + model = m.Deadline + extra = 0 + class CisloForm(ModelForm): class Meta: model = m.Cislo @@ -71,7 +77,7 @@ class CisloForm(ModelForm): @admin.register(m.Cislo) class CisloAdmin(admin.ModelAdmin): form = CisloForm - actions = ['force_publish'] + actions = ['force_publish', 'pregeneruj_vysledkovky'] inlines = (DeadlineAdminInline,) def force_publish(self,request,queryset): @@ -111,6 +117,12 @@ class CisloAdmin(admin.ModelAdmin): force_publish.short_description = 'Zveřejnit vybraná čísla a všechny návrhy úloh v nich učinit zadanými' + def pregeneruj_vysledkovky(self, req, qs): + for cislo in qs: + for deadline in cislo.deadline_v_cisle.all(): + deadline.vygeneruj_vysledkovku() + pregeneruj_vysledkovky.short_description = 'Přegenerovat výsledkovky všech deadlinů vybraných čísel' + @admin.register(m.Problem) class ProblemAdmin(PolymorphicParentModelAdmin): From f14df7b579161740342fd708ad659c8dc169f574 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 20 Sep 2023 10:47:11 +0200 Subject: [PATCH 260/515] =?UTF-8?q?Nov=C3=A9=20k=C3=B3dy=20=C3=BAloh=20ve?= =?UTF-8?q?=20v=C3=BDsledkovce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (Zprasený commit, má být na jiné větvi, já vím :-D) --- seminar/models/tvorba.py | 17 +++++++---------- vysledkovky/utils.py | 8 ++++---- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 54e769c8..1c1a3285 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -491,7 +491,7 @@ class Problem(SeminarModelBase,PolymorphicModel): return self.nadproblem.kod_v_rocniku+".{}".format(self.kod) return str(self.kod) logger.warning(f"K problému {self} byl vyžadován kód v ročníku, i když není zadaný ani vyřešený.") - return '' + return f'' # def verejne(self): # # aktuálně podle stavu problému @@ -571,9 +571,9 @@ class Tema(Problem): if self.stav == Problem.STAV_ZADANY or self.stav == Problem.STAV_VYRESENY: if self.nadproblem: return self.nadproblem.kod_v_rocniku+".t{}".format(self.kod) - return "t{}".format(self.kod) + return 't'+self.kod logger.warning(f"K problému {self} byl vyžadován kód v ročníku, i když není zadaný ani vyřešený.") - return '' + return f'' def save(self, *args, **kwargs): super().save(*args, **kwargs) @@ -607,9 +607,9 @@ class Clanek(Problem): # Nemělo by být potřeba # if self.nadproblem: # return self.nadproblem.kod_v_rocniku+".c{}".format(self.kod) - return "c{}".format(self.kod) + return "c" + self.kod logger.warning(f"K problému {self} byl vyžadován kód v ročníku, i když není zadaný ani vyřešený.") - return '' + return f'' def node(self): return None @@ -642,12 +642,9 @@ class Uloha(Problem): @cached_property def kod_v_rocniku(self): if self.stav == Problem.STAV_ZADANY or self.stav == Problem.STAV_VYRESENY: - name="{}.u{}".format(self.cislo_zadani.poradi,self.kod) - if self.nadproblem: - return self.nadproblem.kod_v_rocniku+name - return name + return f"{self.cislo_zadani.poradi}.{self.kod}" logger.warning(f"K problému {self} byl vyžadován kód v ročníku, i když není zadaný ani vyřešený.") - return '' + return f'' def save(self, *args, **kwargs): super().save(*args, **kwargs) diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index 56d05c31..2036b9d3 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -257,7 +257,7 @@ class VysledkovkaCisla(Vysledkovka): # (mají vlastní sloupeček ve výsledkovce, nemají nadproblém) hlavni_problemy = set() for p in self.problemy: - hlavni_problemy.add(p.hlavni_problem) + hlavni_problemy.add(p.hlavni_problem) # FIXME: proč tohle nemůže obsahovat reálné instance? Ve výsledkovce by se pak zobrazovaly správné kódy… # zunikátnění hlavni_problemy = list(hlavni_problemy) @@ -313,7 +313,7 @@ class VysledkovkaCisla(Vysledkovka): # Sečteme hodnocení for hodnoceni in self.hodnoceni_do_cisla: - prob = hodnoceni.problem + prob = hodnoceni.problem.get_real_instance() nadproblem = prob.hlavni_problem.id # Když nadproblém není "téma", pak je "Ostatní" @@ -366,9 +366,9 @@ class VysledkovkaCisla(Vysledkovka): for problem in self.problemy: h_problem = problem.hlavni_problem if h_problem in temata_a_spol: - podproblemy[h_problem.id].append(problem) + podproblemy[h_problem.id].append(problem.get_real_instance()) else: - podproblemy[-1].append(problem) + podproblemy[-1].append(problem.get_real_instance()) for podproblem in podproblemy.keys(): podproblemy[podproblem] = sorted(podproblemy[podproblem], key=lambda p: p.kod_v_rocniku) From 8a473a50970404a3d0aa01c6b262719a04aa8a09 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 20 Sep 2023 11:10:55 +0200 Subject: [PATCH 261/515] =?UTF-8?q?Popisky=20v=20z=C3=A1hlav=C3=AD=20v?= =?UTF-8?q?=C3=BDsledkovky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sice to na mobilu nic moc neudělá, ale aspoň myší se to má šanci používat trochu snáz. --- vysledkovky/templates/vysledkovky/vysledkovka_cisla.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html index ac53c811..4aa62953 100644 --- a/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html +++ b/vysledkovky/templates/vysledkovky/vysledkovka_cisla.html @@ -4,11 +4,11 @@
            {% for p in vysledkovka.temata_a_spol%} - + {# TODELETE #} {% for podproblemy in vysledkovka.podproblemy_iter.next %} - + {% endfor %} {# TODELETE #} @@ -17,7 +17,7 @@ {# TODELETE #} {% for podproblemy in vysledkovka.podproblemy_iter.next %} - + {% endfor %} {# TODELETE #} From bfb7a75b97366f16ce551984714f4f3a5eb5026f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Oct 2023 09:28:23 +0200 Subject: [PATCH 262/515] =?UTF-8?q?Oprava=20vytv=C3=A1=C5=99en=C3=AD=20gal?= =?UTF-8?q?erie=20(Pillow=20odstranil=20n=C4=9Bco,=20co=20django-imagekit?= =?UTF-8?q?=20pou=C5=BE=C3=ADv=C3=A1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8a6a46e9..309141f5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,7 @@ psycopg2 html5lib ipython -Pillow +Pillow<10 # FIXME <10 je tu kvůli nekompatibilitě s django-imagekit<=5.0.0 pytz six pexpect From d006f6ebfaea6b3a1fe12811ddc86e7bb02cc757 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Oct 2023 10:08:49 +0200 Subject: [PATCH 263/515] =?UTF-8?q?Oprava=20vytv=C3=A1=C5=99en=C3=AD=20gal?= =?UTF-8?q?erie=20(Pillow=20odstranil=20n=C4=9Bco,=20co=20django-imagekit?= =?UTF-8?q?=20pou=C5=BE=C3=ADv=C3=A1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 309141f5..84810998 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,8 @@ psycopg2 html5lib ipython -Pillow<10 # FIXME <10 je tu kvůli nekompatibilitě s django-imagekit<=5.0.0 +Pillow +pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 pytz six pexpect From 0738aedc9ebf9549dab9aa8e09b857c910f360c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 2 Oct 2023 21:32:09 +0200 Subject: [PATCH 264/515] =?UTF-8?q?Oprava=20pipu=20instaluj=C3=ADc=C3=ADho?= =?UTF-8?q?=20prereleasy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 84810998..ff6d1ef5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -25,7 +25,7 @@ django-ckeditor django-cleanup # Uklízí media/ od smazaných „databázových“ souborů django-flat-theme django-taggit -django-autocomplete-light>=3.9.0rc1 +django-autocomplete-light>=3.9.0 django-crispy-forms django-imagekit django-polymorphic From 1f0d70b31ef625489efffe773d37f7dc60fd5351 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 2 Oct 2023 23:29:51 +0200 Subject: [PATCH 265/515] =?UTF-8?q?Dokumentace=20z=C3=A1vislost=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit podle dnešní schůzky, zatím velmi předběžná verze --- docs/index.rst | 1 + docs/tabulka_prerekvizit.rst | 25 ---------- docs/vyvoj.rst | 2 +- docs/zavislosti.rst | 97 ++++++++++++++++++++++++++++++++++++ 4 files changed, 99 insertions(+), 26 deletions(-) delete mode 100644 docs/tabulka_prerekvizit.rst create mode 100644 docs/zavislosti.rst diff --git a/docs/index.rst b/docs/index.rst index 5481bb88..d06c7e4a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -27,6 +27,7 @@ Dokumentace (jak v ``docs/``, tak přímo v kódu) je psaná ve :titlesonly: vyvoj + zavislosti sphinx skripty modules/modules diff --git a/docs/tabulka_prerekvizit.rst b/docs/tabulka_prerekvizit.rst deleted file mode 100644 index 9dcce4c5..00000000 --- a/docs/tabulka_prerekvizit.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. Není odkázaná z menu, je to záměr - -Tabulka prerekvizit v různých distribucích -========= - -.. admonition:: Metodika - - Na čistém repozitáři (``git clean -fxd``) a čistém systému spouštíme - ``make/init_local``. Když to spadne, tak do tabulky zapíšeme, co jsme - přiinstalovali. Protože větev ``makefiles`` aktuálně není mergenutá do - masteru, nefunguje synchronizace flatpages (a stejně nemáme SSH klíč), takže - tam ``make/init_local`` sestřelíme a vyzkoušíme, že ``make/test`` spustí - testy. - -.. Grafické tabulky (grid-tables, simple-tables) jsou strašný porod vyrábět, dlabu na to a cpu to do CSV… - -.. csv-table:: Prerekvizity v jednotlivých distribucích - :header: Distribuce / OS, Repozitář s Py3.9, venv, py knihovny, PostgreSQL knihovna, poznámky - - Ubuntu 22.10, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "Je potřeba zapnout zdroj ``universe`` a nainstalovat kompilátor C (``gcc``)?" - Linux Mint 21, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "" - Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``)" - openSUSE Leap 15.4, oficiální (``python39``), předinstalovaný?, ``python39-devel``, ??FIXME!!, "Výchozí verze pythonu je 3.6 a ta je moc stará, potřeba instalovat ``gcc``. Nevím jak sehnat pg_config." - Debian 11, "oficiální, výchozí", ??, ??, ??, "Určitě to tam rozběhat jde, protože Gimli. Nejspíš bude relativně podobné Ubuntu." - diff --git a/docs/vyvoj.rst b/docs/vyvoj.rst index 0d23972a..2df0ae64 100644 --- a/docs/vyvoj.rst +++ b/docs/vyvoj.rst @@ -37,7 +37,7 @@ Kromě toho je potřeba mít účet na `Gitee `_, kd bydlí gitový repozitář s kódem. .. tip:: Potřebné balíčky v různých distribucích jsou sepsané v :ref:`tabulce - prerekvizit `. + prerekvizit `. Doporučené ^^^^^^^^^^ diff --git a/docs/zavislosti.rst b/docs/zavislosti.rst new file mode 100644 index 00000000..c2f684bd --- /dev/null +++ b/docs/zavislosti.rst @@ -0,0 +1,97 @@ +Závislosti webu +@@@@@@@@@@@@@@@ + +Web ke svému běhu potřebuje různé další programy. Tahle stránka se snaží je pokrýt. + +Stránka je koncipována jako odrážkový seznam balíčků pro Ubuntu s případnými +komentáři, na konci stránky jsou uvedena :ref:`jména balíčků ` v různých dalších distribucích. (Seznam mj. cílí na lokální +rozchození, proto popisuji Ubuntu a ne Debian. I tak se ale snažíme popsat web +v úplnosti.) + +.. I use Arch, btw. + + +Základ webu +=========== + +- ``python3`` – Ideálně Python 3.9, jenž je na Gimlim +- ``python3-pip`` pro instalaci dalších Pythoních balíčků podle ``requirements.txt`` +- ``python3-venv`` +- ``gcc`` – kompilace Pythoních knihoven ze zdrojových distribucí (sdist), možná (neotestováno) jde jako alternativu použít ``python3-wheel`` a stahovat bdists +- ``python3-dev`` – taktéž +- ``libpq-dev`` do třetice… +- ``ghostscript`` TODO konverze PDF v korekturovátku +- ``pdflatex`` FIXME! generování obálek a stvrzenek +- ``git`` – používán :ref:`Make skripty` +- ``locales`` pro české formáty + +Nasazení na produkci / testweb +============================== + +(nejsou nutně potřeba k provozu lokální instance) + +- ``rsync`` +- ``pg_utils`` FIXME +- ``htpasswd`` FIXME – aby testweb nepoužívali náhodní kolemjdoucí +- ``postgresql-server`` TODO +- ``acl`` pro nastavování práv přes ``setfacl`` + +Pro testweb je potřeba i všechno pro :ref:`dokumentaci `, vizte níž. + +Předpokládá se nasazení v uWSGI pod Nginxem a služba běžící pod systemd, nicméně to už je spíš záležitost infrastruktury a ne specifikum mamwebu. + +Dokumentace +=========== + +- ``make`` pro zbuildění +- Pythoní balíčky podle příslušné části ``requirements.txt`` + +Vývojové nástroje +================= + +(Nejsou nezbytně nutné, ale předpokládáme jejich užitečnost. Mohou se hodit i na produkci.) + +- ``psql`` TODO pro manuální dotazy do PostgreSQL +- ``sqlite3`` TODO totéž pro SQLite3 +- ``ssh`` +- ``graphviz`` pro vygenerování schématu +- ``rsync`` +- ``ipython3`` – hezčí interaktivní shell (stačí z ``requirements.txt``) + +Potenciální usnadnění života +============================ + +(Úplně zbytečné, ale sdílíme pozitivní zkušenosti :-)) + +- ``tea`` – CLI klient pro Giteu, aby člověk nepotřeboval otevírat web pro založení PR + + +Alternativní jména balíčků +========================== + +Různé distribuce balí SW různě, takže to, co je v jedné distribuci jeden +balíček může být v jiné rozděleno do víc. Pro usnadnění nasazení je tady +přehled známých alternativních jmen. + +TODO: tabulka není úplná. Pokud na něco narazíte, tak ji prosím doplňte. + +.. admonition:: Jak se pozná, že web funguje, pro účely tabulky? + + Na čistém repozitáři (``git clean -fxd``) a čistém systému spouštíme + ``make/init_local``. Když to spadne, tak do tabulky zapíšeme, co jsme + přiinstalovali. Protože nefunguje synchronizace flatpages (nemáme SSH klíč), + ``make/init_local`` sestřelíme při pokusu o synchronizaci a vyzkoušíme, že + ``make/test`` spustí testy. + +.. Grafické tabulky (grid-tables, simple-tables) jsou strašný porod vyrábět, dlabu na to a cpu to do CSV… + +.. csv-table:: Prerekvizity v jednotlivých distribucích + :header: Distribuce / OS, Repozitář s Py3.9, venv, py knihovny, PostgreSQL knihovna, poznámky + + Ubuntu 22.10, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "Je potřeba zapnout zdroj ``universe`` a nainstalovat kompilátor C (``gcc``)?" + Linux Mint 21, ??, ``python3-venv``, ``python3-dev``, ``libpq-dev``, "" + Archlinux 2022.11.01, AUR, vestavěný, vestavěné, ``postgresql-libs``, "Je potřeba céčkový kompilátor (``gcc``)" + openSUSE Leap 15.4, oficiální (``python39``), předinstalovaný?, ``python39-devel``, ??FIXME!!, "Výchozí verze pythonu je 3.6 a ta je moc stará, potřeba instalovat ``gcc``. Nevím jak sehnat pg_config." + Debian 11, "oficiální, výchozí", ??, ??, ??, "Určitě to tam rozběhat jde, protože Gimli. Nejspíš bude relativně podobné Ubuntu." + From bb127832dc418a5c793dd1eac12440cd6a5457f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 9 Oct 2023 21:11:12 +0200 Subject: [PATCH 266/515] =?UTF-8?q?Oprava=20=E2=80=9En=C3=A1zvu=20z=C3=A1l?= =?UTF-8?q?o=C5=BEky=E2=80=9C=20p=C5=99i=20Ojojojojoj?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/500.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mamweb/templates/500.html b/mamweb/templates/500.html index 7fc267fe..67085a8f 100644 --- a/mamweb/templates/500.html +++ b/mamweb/templates/500.html @@ -4,7 +4,9 @@ {% block errorheading %}
            {# Meníčko nedostaneme, protože dostáváme prázdný kontext. Tak alespoň ať se O-JO-JO-JO-JOJ neschovává pod ním #} + {% block nadpis1a %} O-jo-jo-jo-joj + {% endblock %} {% endblock %} {% block errortext %} From 60346d68390bb4c5f0f7b4d01989a2ee7cb43b2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 9 Oct 2023 21:50:50 +0200 Subject: [PATCH 267/515] =?UTF-8?q?Str=C3=A1nka=20pro=20CSRF=20chybu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 3 + various/static/various/img/zere_kostku.svg | 87 ++++++++++++++++++++++ various/templates/various/403_csrf.html | 19 +++++ various/views.py | 7 ++ 4 files changed, 116 insertions(+) create mode 100644 various/static/various/img/zere_kostku.svg create mode 100644 various/templates/various/403_csrf.html diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 03724d3d..36b39296 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -54,6 +54,9 @@ LOGIN_REDIRECT_URL = 'profil' SESSION_EXPIRE_AT_BROWSER_CLOSE = True DOBA_ODHLASENI_PRI_ZASKRTNUTI_NEODHLASOVAT = 365 * 24 * 3600 # rok +# View pro chybu s CSRF tokenem (např. se sušenkami) +CSRF_FAILURE_VIEW = 'various.views.csrf_error' + # Modules configuration AUTHENTICATION_BACKENDS = ( diff --git a/various/static/various/img/zere_kostku.svg b/various/static/various/img/zere_kostku.svg new file mode 100644 index 00000000..bac31662 --- /dev/null +++ b/various/static/various/img/zere_kostku.svg @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + diff --git a/various/templates/various/403_csrf.html b/various/templates/various/403_csrf.html new file mode 100644 index 00000000..ff2f0cf9 --- /dev/null +++ b/various/templates/various/403_csrf.html @@ -0,0 +1,19 @@ +{#{% extends "error_base.html" %} Z toho nedědíme, protože se nemá přecházet na titulní stránku. #} +{% extends "base.html" %} + +{% load static %} + +{% block content %} + +

            {% block nadpis1a %}O-jo-jo-jo-joj{% endblock nadpis1a %}

            + +

            + Problém se sušenkami či něčím podobným. Zkuste to prosím znovu: {{ url }}. Případně můžete přejít na titulní stránku. +

            + +

            Pokud problém přetrvává obraťte se na nás přes e-mail: mailto:mam@matfyz.cz a pošlete nám následující popis chyby: {{ reason }}

            + + + + +{% endblock %} diff --git a/various/views.py b/various/views.py index 91ea44a2..3e5e1a5a 100644 --- a/various/views.py +++ b/various/views.py @@ -1,3 +1,10 @@ from django.shortcuts import render # Create your views here. + + +def csrf_error(request, reason): + return render( + request, 'various/403_csrf.html', + {"url": request.META["HTTP_REFERER"], "reason": reason}, + ) From 29b327120049d0bee64f220443939a68ebae7f91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 9 Oct 2023 22:02:05 +0200 Subject: [PATCH 268/515] =?UTF-8?q?CSRF=20chyba=20m=C3=A1=20vr=C3=A1tit=20?= =?UTF-8?q?403?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/views.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/various/views.py b/various/views.py index 3e5e1a5a..9bb6b109 100644 --- a/various/views.py +++ b/various/views.py @@ -1,3 +1,4 @@ +from django.http import HttpResponseForbidden from django.shortcuts import render # Create your views here. @@ -7,4 +8,5 @@ def csrf_error(request, reason): return render( request, 'various/403_csrf.html', {"url": request.META["HTTP_REFERER"], "reason": reason}, + status=HttpResponseForbidden.status_code, ) From 0e24c1d9add98d95533d8884d5a23be7af72d10c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 9 Oct 2023 22:04:01 +0200 Subject: [PATCH 269/515] =?UTF-8?q?Koment=C3=A1=C5=99=20k=20CSRF=20chyb?= =?UTF-8?q?=C3=A1m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/various/views.py b/various/views.py index 9bb6b109..b5808f19 100644 --- a/various/views.py +++ b/various/views.py @@ -5,6 +5,7 @@ from django.shortcuts import render def csrf_error(request, reason): + """ Jednoduchý „template_view“ (třída to být nesmůže) pro CSRF chyby """ return render( request, 'various/403_csrf.html', {"url": request.META["HTTP_REFERER"], "reason": reason}, From 68d51a0bf1d02b349141ba282d61614e5d37d8a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 9 Oct 2023 22:14:27 +0200 Subject: [PATCH 270/515] =?UTF-8?q?P=C5=99eklep?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/views.py b/various/views.py index b5808f19..7bc3fccd 100644 --- a/various/views.py +++ b/various/views.py @@ -5,7 +5,7 @@ from django.shortcuts import render def csrf_error(request, reason): - """ Jednoduchý „template_view“ (třída to být nesmůže) pro CSRF chyby """ + """ Jednoduchý „template_view“ (třída to být nemůže) pro CSRF chyby """ return render( request, 'various/403_csrf.html', {"url": request.META["HTTP_REFERER"], "reason": reason}, From 002e33002c5c1500ec10eed0881285cb521e2e6c Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Oct 2023 22:25:25 +0200 Subject: [PATCH 271/515] =?UTF-8?q?P=C5=99egenerov=C3=A1vat=20v=C3=BDsledk?= =?UTF-8?q?ovky=20nem=C5=AF=C5=BEe=20b=C4=9B=C5=BEn=C3=BD=20org?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/admin.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index 2ce7b2f5..59a72927 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -18,12 +18,12 @@ admin.site.register(m.ZmrazenaVysledkovka) class DeadlineAdmin(admin.ModelAdmin): actions = ['pregeneruj_vysledkovku'] + # Nikomu nezobrazovat, ale superuživatelům se může hodit :-) + @admin.action(permissions=[], description= 'Přegeneruj výsledkovky vybraných deadlinů') def pregeneruj_vysledkovku(self, req, qs): for deadline in qs: deadline.vygeneruj_vysledkovku() - pregeneruj_vysledkovku.short_description = 'Přegeneruj výsledkovky vybraných deadlinů' - - + class DeadlineAdminInline(admin.TabularInline): model = m.Deadline extra = 0 @@ -117,11 +117,12 @@ class CisloAdmin(admin.ModelAdmin): force_publish.short_description = 'Zveřejnit vybraná čísla a všechny návrhy úloh v nich učinit zadanými' + # Jen pro superuživatele + @admin.action(permissions=[], description='Přegenerovat výsledkovky všech deadlinů vybraných čísel') def pregeneruj_vysledkovky(self, req, qs): for cislo in qs: for deadline in cislo.deadline_v_cisle.all(): deadline.vygeneruj_vysledkovku() - pregeneruj_vysledkovky.short_description = 'Přegenerovat výsledkovky všech deadlinů vybraných čísel' @admin.register(m.Problem) From b69ebcd6b6942a4a04489835b127176f62c881d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 9 Oct 2023 22:29:29 +0200 Subject: [PATCH 272/515] =?UTF-8?q?U=20CSRF=20chyby=20m=C3=A1=20b=C3=BDt?= =?UTF-8?q?=20reason=20asi=20p=C5=99edvypln=C4=9Bn=C3=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/various/views.py b/various/views.py index 7bc3fccd..c6e46ab8 100644 --- a/various/views.py +++ b/various/views.py @@ -4,8 +4,8 @@ from django.shortcuts import render # Create your views here. -def csrf_error(request, reason): - """ Jednoduchý „template_view“ (třída to být nemůže) pro CSRF chyby """ +def csrf_error(request, reason=""): + """ Jednoduchý „template view“ (třída to být nemůže) pro CSRF chyby """ return render( request, 'various/403_csrf.html', {"url": request.META["HTTP_REFERER"], "reason": reason}, From 7e1644d5c199cb23aae2afcbc5febfed1b934f72 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Oct 2023 22:43:27 +0200 Subject: [PATCH 273/515] =?UTF-8?q?Parci=C3=A1ln=C3=AD=20fix=20testu=20d?= =?UTF-8?q?=C4=9Bl=C3=A1n=C3=AD=20org=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personalni/tests.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/personalni/tests.py b/personalni/tests.py index 633ff1d4..6f00cd1e 100644 --- a/personalni/tests.py +++ b/personalni/tests.py @@ -1,6 +1,8 @@ -from django.test import TestCase +from django.test import TestCase, RequestFactory from django.contrib.auth.models import User, Group +from django.contrib.admin.sites import AdminSite +from personalni.admin import OsobaAdmin # Tohle bude peklo, až jednou ty modely fakt rozstřelíme… Možná vyrobit various.all_models, které půjdou importovat jako m? :-) import seminar.models as m @@ -9,6 +11,15 @@ logger = logging.getLogger(__name__) class DelaniOrguTest(TestCase): def setUp(self): + # Admin musí mít instanci + # Ref: https://www.argpar.se/posts/programming/testing-django-admin/ + adm_site = AdminSite() + self.admin = OsobaAdmin(m.Osoba, adm_site) + + from django.contrib.messages.storage.cookie import CookieStorage + self.request = RequestFactory().get('/admin') + self.request._messages = CookieStorage(self.request) + self.org_group = Group.objects.get(name='org') novy_user = User.objects.create(username='osoba') @@ -31,9 +42,8 @@ class DelaniOrguTest(TestCase): breakpoint # Pak orga uděláme… - from personalni.admin import OsobaAdmin qs = m.Osoba.objects.filter(id=self.nova_osoba.id) - OsobaAdmin.udelej_orgem(None, None, qs) + self.admin.udelej_orgem(self.request, qs) # A pak už to org má být. logger.info(f'Nová osoba je staff: {self.nova_osoba.user.is_staff}') @@ -45,8 +55,7 @@ class DelaniOrguTest(TestCase): self.assertIsNotNone(novy_org.organizuje_od) def test_pridani_stareho_orga(self): - from personalni.admin import OsobaAdmin - OsobaAdmin.udelej_orgem(None, None, m.Osoba.objects.filter(id=self.stary_org.osoba.id)) # Ugly + self.admin.udelej_orgem(self.request, m.Osoba.objects.filter(id=self.stary_org.osoba.id)) # Ugly # Když to spadne, tak jsem se to dozvěděl, takže už nepotřebuju nic kontrolovat. # Jestli to funguje správně má řešit jiný test. From 2d416472e8b11967c4caeb9cf2cc932573dc5b8b Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 9 Oct 2023 22:50:28 +0200 Subject: [PATCH 274/515] =?UTF-8?q?Tak=20superuser=20u=C5=BE=20m=C5=AF?= =?UTF-8?q?=C5=BEe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit lol… --- seminar/admin.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index 59a72927..8f589a03 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -19,11 +19,15 @@ class DeadlineAdmin(admin.ModelAdmin): actions = ['pregeneruj_vysledkovku'] # Nikomu nezobrazovat, ale superuživatelům se může hodit :-) - @admin.action(permissions=[], description= 'Přegeneruj výsledkovky vybraných deadlinů') + @admin.action(permissions=['bazmek'], description= 'Přegeneruj výsledkovky vybraných deadlinů') def pregeneruj_vysledkovku(self, req, qs): for deadline in qs: deadline.vygeneruj_vysledkovku() + def has_bazmek_permission(self, request): + # Boilerplate: potřebujeme nějakou permission, protože nějaká haluz v Djangu… + return request.user.is_superuser + class DeadlineAdminInline(admin.TabularInline): model = m.Deadline extra = 0 @@ -118,11 +122,15 @@ class CisloAdmin(admin.ModelAdmin): force_publish.short_description = 'Zveřejnit vybraná čísla a všechny návrhy úloh v nich učinit zadanými' # Jen pro superuživatele - @admin.action(permissions=[], description='Přegenerovat výsledkovky všech deadlinů vybraných čísel') + @admin.action(permissions=['bazmek'], description='Přegenerovat výsledkovky všech deadlinů vybraných čísel') def pregeneruj_vysledkovky(self, req, qs): for cislo in qs: for deadline in cislo.deadline_v_cisle.all(): deadline.vygeneruj_vysledkovku() + + def has_bazmek_permission(self, request): + # Boilerplate: potřebujeme nějakou permission, protože nějaká haluz v Djangu… + return request.user.is_superuser @admin.register(m.Problem) From aff9a39262d5ab0acce386084ae4fba4da1ad1c2 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 9 Oct 2023 23:00:49 +0200 Subject: [PATCH 275/515] =?UTF-8?q?uwsgi=20v=20requirements.txt=20nevypad?= =?UTF-8?q?=C3=A1=20pot=C5=99ebn=C4=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit a navíc to pak Jidášovi nefunguje, zatím nevím proč. P. --- requirements.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index ff6d1ef5..d51645de 100644 --- a/requirements.txt +++ b/requirements.txt @@ -53,9 +53,6 @@ Werkzeug requests # requests-oauthlib -# uWSGI -uWSGI - # Potřeba pro test data lorem From 1aa389414d47e81280157d77e558e6f432f1985e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 14 Oct 2023 11:26:38 +0200 Subject: [PATCH 276/515] =?UTF-8?q?N=C3=A1vrh=20na=20webappku=20na=20?= =?UTF-8?q?=C5=A1ifrova=C4=8Dku=20(na=20Sklen=C3=A9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 1 + mamweb/urls.py | 2 + sifrovacka/__init__.py | 0 sifrovacka/admin.py | 8 ++++ sifrovacka/apps.py | 5 ++ sifrovacka/forms.py | 15 ++++++ sifrovacka/migrations/0001_initial.py | 34 ++++++++++++++ sifrovacka/migrations/__init__.py | 0 sifrovacka/models.py | 18 ++++++++ .../templates/sifrovacka/odpovedi_list.html | 23 ++++++++++ .../templates/sifrovacka/sifrovacka.html | 46 +++++++++++++++++++ sifrovacka/urls.py | 17 +++++++ sifrovacka/views.py | 30 ++++++++++++ 13 files changed, 199 insertions(+) create mode 100644 sifrovacka/__init__.py create mode 100644 sifrovacka/admin.py create mode 100644 sifrovacka/apps.py create mode 100644 sifrovacka/forms.py create mode 100644 sifrovacka/migrations/0001_initial.py create mode 100644 sifrovacka/migrations/__init__.py create mode 100644 sifrovacka/models.py create mode 100644 sifrovacka/templates/sifrovacka/odpovedi_list.html create mode 100644 sifrovacka/templates/sifrovacka/sifrovacka.html create mode 100644 sifrovacka/urls.py create mode 100644 sifrovacka/views.py diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 36b39296..71bae132 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -154,6 +154,7 @@ INSTALLED_APPS = ( 'soustredeni', 'treenode', 'vyroci', + 'sifrovacka', # Admin upravy: diff --git a/mamweb/urls.py b/mamweb/urls.py index 0855b6b6..9ef2750a 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -71,6 +71,8 @@ urlpatterns = [ # Výroční sraz path('sraz/30-let/', include('vyroci.urls')), + # Miniapka na šifrovačku + path('sifrovacka/', include('sifrovacka.urls')), ] # This is only needed when using runserver. diff --git a/sifrovacka/__init__.py b/sifrovacka/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sifrovacka/admin.py b/sifrovacka/admin.py new file mode 100644 index 00000000..71d191d4 --- /dev/null +++ b/sifrovacka/admin.py @@ -0,0 +1,8 @@ +from django.contrib import admin + +from .models import OdpovedUcastnika, SpravnaOdpoved + +# Register your models here. + +admin.site.register(OdpovedUcastnika) +admin.site.register(SpravnaOdpoved) diff --git a/sifrovacka/apps.py b/sifrovacka/apps.py new file mode 100644 index 00000000..e9f34de6 --- /dev/null +++ b/sifrovacka/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class SifrovackaConfig(AppConfig): + name = 'sifrovacka' diff --git a/sifrovacka/forms.py b/sifrovacka/forms.py new file mode 100644 index 00000000..ac547894 --- /dev/null +++ b/sifrovacka/forms.py @@ -0,0 +1,15 @@ +from django.core.exceptions import ValidationError +from django.forms import ModelForm +from .models import OdpovedUcastnika, SpravnaOdpoved + + +class SifrovackaForm(ModelForm): + class Meta: + model = OdpovedUcastnika + fields = ["sifra", "odpoved", ] + + def clean_sifra(self): + sifra = self.cleaned_data.get('sifra') + if SpravnaOdpoved.objects.filter(sifra=sifra).count() == 0: + raise ValidationError("Špatné číslo šifry") + return sifra diff --git a/sifrovacka/migrations/0001_initial.py b/sifrovacka/migrations/0001_initial.py new file mode 100644 index 00000000..742461ef --- /dev/null +++ b/sifrovacka/migrations/0001_initial.py @@ -0,0 +1,34 @@ +# Generated by Django 3.2.22 on 2023-10-14 09:20 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('seminar', '0113_resitel_zasilat_cislo_papirove'), + ] + + operations = [ + migrations.CreateModel( + name='SpravnaOdpoved', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('odpoved', models.TextField()), + ('sifra', models.IntegerField()), + ('skryty_text', models.TextField()), + ], + ), + migrations.CreateModel( + name='OdpovedUcastnika', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('odpoved', models.TextField(verbose_name='Tajenka')), + ('sifra', models.IntegerField(verbose_name='Číslo šifry')), + ('resitel', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='seminar.resitel')), + ], + ), + ] diff --git a/sifrovacka/migrations/__init__.py b/sifrovacka/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sifrovacka/models.py b/sifrovacka/models.py new file mode 100644 index 00000000..0e2dc78e --- /dev/null +++ b/sifrovacka/models.py @@ -0,0 +1,18 @@ +from django.db import models + +from seminar.models.personalni import Resitel + + +# Create your models here. + + +class OdpovedUcastnika(models.Model): + resitel = models.ForeignKey(Resitel, blank=False, null=False, on_delete=models.CASCADE) + odpoved = models.TextField("Tajenka", blank=False, null=False,) + sifra = models.IntegerField("Číslo šifry", blank=False, null=False,) + + +class SpravnaOdpoved(models.Model): + odpoved = models.TextField(blank=False, null=False,) + sifra = models.IntegerField(blank=False, null=False,) + skryty_text = models.TextField(blank=False, null=False,) diff --git a/sifrovacka/templates/sifrovacka/odpovedi_list.html b/sifrovacka/templates/sifrovacka/odpovedi_list.html new file mode 100644 index 00000000..8e122558 --- /dev/null +++ b/sifrovacka/templates/sifrovacka/odpovedi_list.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} + +{% block content %} + +

            {% block nadpis1a %}Šifrovačka odpovědi{% endblock nadpis1a %}

            + +
            # Jméno{# #}{{ p.kod_v_rocniku }}{# #}{# #}{{ p.kod_v_rocniku }}{# #}{# #}{{ podproblemy.kod_v_rocniku }}{# #}{# #}{{ podproblemy.kod_v_rocniku }}{# #}{# #}{{ podproblemy.kod_v_rocniku }}{# #}{# #}{{ podproblemy.kod_v_rocniku }}{# #}
            + + + + + + + {% for u in object_list %} + + + + + + {% endfor %} +
            ŘešitelŠifraOdpověď
            {{ u.resitel }}{{ u.sifra }}{{ u.odpoved }}
            + +{% endblock content %} diff --git a/sifrovacka/templates/sifrovacka/sifrovacka.html b/sifrovacka/templates/sifrovacka/sifrovacka.html new file mode 100644 index 00000000..4e0cc15a --- /dev/null +++ b/sifrovacka/templates/sifrovacka/sifrovacka.html @@ -0,0 +1,46 @@ +{% extends "base.html" %} + +{% block content %} + +
            + +

            {% block nadpis1a %}M&Mí šifrovačka{% endblock nadpis1a %}

            + +
            + +

            Zadat tajenku šifry:

            + +
            + + {{form.non_field_errors}} + {% for field in form %} + + + + + + + + + {% if field.errors %} + + + + {% endif %} + {% endfor %} +
            + + + + {{ field }} + {{ field.help_text|safe }} +
            {{ field.errors }}
            + + {% csrf_token %} + + +
            + +{% endblock content %} diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py new file mode 100644 index 00000000..0f3eb669 --- /dev/null +++ b/sifrovacka/urls.py @@ -0,0 +1,17 @@ +from django.urls import path + +from seminar.utils import org_required, resitel_required +from .views import SifrovackaView, SifrovackaListView + +urlpatterns = [ + path( + '', + resitel_required(SifrovackaView.as_view()), + name='sifrovacka' + ), + path( + 'odpovedi/', + org_required(SifrovackaListView.as_view()), + name='sifrovacka_odpovedi' + ), +] diff --git a/sifrovacka/views.py b/sifrovacka/views.py new file mode 100644 index 00000000..a83e6c17 --- /dev/null +++ b/sifrovacka/views.py @@ -0,0 +1,30 @@ +from django.urls import reverse +from django.views.generic import FormView, ListView + +from seminar.views import formularOKView +from .forms import SifrovackaForm +from .models import OdpovedUcastnika, SpravnaOdpoved +from seminar.models.personalni import Resitel + + +# Create your views here. + +class SifrovackaView(FormView): + template_name = 'sifrovacka/sifrovacka.html' + form_class = SifrovackaForm + + def form_valid(self, form): + instance = form.save(commit=False) + resitel = Resitel.objects.get(osoba__user=self.request.user) + instance.resitel = resitel + instance.save() + sifra = SpravnaOdpoved.objects.filter(sifra=instance.sifra, odpoved__iexact=instance.odpoved.strip()).first() + if sifra is None: + return formularOKView(self.request, f'

            Bohužel vám hvězdy nebyly nakloněny.

            Zkusit znovu.




            ') + + return formularOKView(self.request, f'

            {sifra.skryty_text}

            Odevzdat další.




            ') + + +class SifrovackaListView(ListView): + template_name = 'sifrovacka/odpovedi_list.html' + model = OdpovedUcastnika From c635b0a2802cedafce0d95bd34361cf54dd595b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sat, 14 Oct 2023 12:09:14 +0200 Subject: [PATCH 277/515] =?UTF-8?q?K=20formul=C3=A1=C5=99i=20maj=C3=AD=20m?= =?UTF-8?q?=C3=ADt=20p=C5=99=C3=ADstup=20i=20orgov=C3=A9=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py index 0f3eb669..a7af5e54 100644 --- a/sifrovacka/urls.py +++ b/sifrovacka/urls.py @@ -1,12 +1,12 @@ from django.urls import path -from seminar.utils import org_required, resitel_required +from seminar.utils import org_required, resitel_or_org_required from .views import SifrovackaView, SifrovackaListView urlpatterns = [ path( '', - resitel_required(SifrovackaView.as_view()), + resitel_or_org_required(SifrovackaView.as_view()), name='sifrovacka' ), path( From dca7a7beddc0b0e546466c6ca3adfa8a6743699a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borek=20Po=C5=BE=C3=A1r?= Date: Sat, 14 Oct 2023 12:28:22 +0200 Subject: [PATCH 278/515] =?UTF-8?q?Trochu=20p=C5=99eps=C3=A1ny=20text?= =?UTF-8?q?=C3=ADky.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/forms.py | 2 +- sifrovacka/views.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sifrovacka/forms.py b/sifrovacka/forms.py index ac547894..06edaba6 100644 --- a/sifrovacka/forms.py +++ b/sifrovacka/forms.py @@ -11,5 +11,5 @@ class SifrovackaForm(ModelForm): def clean_sifra(self): sifra = self.cleaned_data.get('sifra') if SpravnaOdpoved.objects.filter(sifra=sifra).count() == 0: - raise ValidationError("Špatné číslo šifry") + raise ValidationError("Tohle číslo šifry v databázi nemáme. Zkontrolujte si ho prosím.") return sifra diff --git a/sifrovacka/views.py b/sifrovacka/views.py index a83e6c17..20dcf49a 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -20,9 +20,9 @@ class SifrovackaView(FormView): instance.save() sifra = SpravnaOdpoved.objects.filter(sifra=instance.sifra, odpoved__iexact=instance.odpoved.strip()).first() if sifra is None: - return formularOKView(self.request, f'

            Bohužel vám hvězdy nebyly nakloněny.

            Zkusit znovu.




            ') + return formularOKView(self.request, f'

            Bohužel vám hvězdy nebyly nakloněny. Rozumějte máte to blbě.

            Zkusit znovu.




            ') - return formularOKView(self.request, f'

            {sifra.skryty_text}

            Odevzdat další.




            ') + return formularOKView(self.request, f'

            {sifra.skryty_text}

            Odevzdat další.




            ') class SifrovackaListView(ListView): From b8eee44ed05c5c01bd0e75ac54ee07d709f41939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borek=20Po=C5=BE=C3=A1r?= Date: Sat, 14 Oct 2023 12:37:23 +0200 Subject: [PATCH 279/515] Hrajeme si se styly. --- sifrovacka/views.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 20dcf49a..91100e53 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -20,9 +20,9 @@ class SifrovackaView(FormView): instance.save() sifra = SpravnaOdpoved.objects.filter(sifra=instance.sifra, odpoved__iexact=instance.odpoved.strip()).first() if sifra is None: - return formularOKView(self.request, f'

            Bohužel vám hvězdy nebyly nakloněny. Rozumějte máte to blbě.

            Zkusit znovu.




            ') + return formularOKView(self.request, f'

            Bohužel vám hvězdy nebyly nakloněny. Rozumějte máte to blbě.

            Zkusit znovu.




            ') - return formularOKView(self.request, f'

            {sifra.skryty_text}

            Odevzdat další.




            ') + return formularOKView(self.request, f'

            {sifra.skryty_text}

            Odevzdat další.




            ') class SifrovackaListView(ListView): From 1f7b770a5c8b71593dead68d3c9beca49243e3ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 15 Oct 2023 19:52:11 +0200 Subject: [PATCH 280/515] =?UTF-8?q?Odpov=C4=9Bdi=20od=20=C3=BA=C4=8Dastn?= =?UTF-8?q?=C3=ADk=C5=AF=20maj=C3=AD=20nov=C4=9B=20i=20timestamp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0002_auto_20231015_1944.py | 28 +++++++++++++++++++ sifrovacka/models.py | 7 ++++- .../templates/sifrovacka/odpovedi_list.html | 2 ++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 sifrovacka/migrations/0002_auto_20231015_1944.py diff --git a/sifrovacka/migrations/0002_auto_20231015_1944.py b/sifrovacka/migrations/0002_auto_20231015_1944.py new file mode 100644 index 00000000..dea42891 --- /dev/null +++ b/sifrovacka/migrations/0002_auto_20231015_1944.py @@ -0,0 +1,28 @@ +# Generated by Django 3.2.22 on 2023-10-15 17:44 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('sifrovacka', '0001_initial'), + ] + + operations = [ + migrations.AlterModelOptions( + name='odpoveducastnika', + options={'ordering': ['-timestamp']}, + ), + migrations.AddField( + model_name='odpoveducastnika', + name='timestamp', + field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='Timestamp'), + ), + migrations.AlterField( + model_name='odpoveducastnika', + name='odpoved', + field=models.TextField(verbose_name='Tajenka bez diakritiky'), + ), + ] diff --git a/sifrovacka/models.py b/sifrovacka/models.py index 0e2dc78e..05dd6e4c 100644 --- a/sifrovacka/models.py +++ b/sifrovacka/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.utils import timezone from seminar.models.personalni import Resitel @@ -7,9 +8,13 @@ from seminar.models.personalni import Resitel class OdpovedUcastnika(models.Model): + class Meta: + ordering = ["-timestamp"] + resitel = models.ForeignKey(Resitel, blank=False, null=False, on_delete=models.CASCADE) - odpoved = models.TextField("Tajenka", blank=False, null=False,) + odpoved = models.TextField("Tajenka bez diakritiky", blank=False, null=False,) sifra = models.IntegerField("Číslo šifry", blank=False, null=False,) + timestamp = models.DateTimeField("Timestamp", blank=False, null=False, default=timezone.now) class SpravnaOdpoved(models.Model): diff --git a/sifrovacka/templates/sifrovacka/odpovedi_list.html b/sifrovacka/templates/sifrovacka/odpovedi_list.html index 8e122558..cc52a584 100644 --- a/sifrovacka/templates/sifrovacka/odpovedi_list.html +++ b/sifrovacka/templates/sifrovacka/odpovedi_list.html @@ -6,6 +6,7 @@ + @@ -13,6 +14,7 @@ {% for u in object_list %} + From 04e2007c3a76ff36882b2835dc5a3ed3e423fec1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 15 Oct 2023 19:55:23 +0200 Subject: [PATCH 281/515] =?UTF-8?q?(sifrovacka)=20M=C3=A9n=C4=9B=20=C5=99?= =?UTF-8?q?=C3=A1dk=C5=AF=20v=20tajence=20v=20=C3=BA=C4=8Dastnick=C3=A9m?= =?UTF-8?q?=20formul=C3=A1=C5=99i=20(bez=20diakritiky=20bylo=20p=C5=99id?= =?UTF-8?q?=C3=A1no=20u=C5=BE=20v=20p=C5=99edchoz=C3=ADm=20commitu)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/forms.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sifrovacka/forms.py b/sifrovacka/forms.py index 06edaba6..e3eba7c7 100644 --- a/sifrovacka/forms.py +++ b/sifrovacka/forms.py @@ -1,5 +1,5 @@ from django.core.exceptions import ValidationError -from django.forms import ModelForm +from django.forms import ModelForm, Textarea from .models import OdpovedUcastnika, SpravnaOdpoved @@ -7,6 +7,9 @@ class SifrovackaForm(ModelForm): class Meta: model = OdpovedUcastnika fields = ["sifra", "odpoved", ] + widgets = { + "odpoved": Textarea(attrs={'rows': 1, 'cols': 30}), + } def clean_sifra(self): sifra = self.cleaned_data.get('sifra') From e58956484070109442a97c40f80ab17f20efd900 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 16 Oct 2023 19:55:37 +0200 Subject: [PATCH 282/515] =?UTF-8?q?(sifrovacka)=20odli=C5=A1en=C3=AD=20p?= =?UTF-8?q?=C5=99ijmut=C3=BDch=20a=20nep=C5=99ijmut=C3=BDch=20odpov=C4=9Bd?= =?UTF-8?q?=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/0003_odpoveducastnika_uspech.py | 18 ++++++++++++++++++ sifrovacka/models.py | 1 + .../templates/sifrovacka/odpovedi_list.html | 2 +- sifrovacka/views.py | 3 +++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 sifrovacka/migrations/0003_odpoveducastnika_uspech.py diff --git a/sifrovacka/migrations/0003_odpoveducastnika_uspech.py b/sifrovacka/migrations/0003_odpoveducastnika_uspech.py new file mode 100644 index 00000000..1d61dd8c --- /dev/null +++ b/sifrovacka/migrations/0003_odpoveducastnika_uspech.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.22 on 2023-10-16 17:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('sifrovacka', '0002_auto_20231015_1944'), + ] + + operations = [ + migrations.AddField( + model_name='odpoveducastnika', + name='uspech', + field=models.BooleanField(default=False, verbose_name='Úspěch'), + ), + ] diff --git a/sifrovacka/models.py b/sifrovacka/models.py index 05dd6e4c..26c6c008 100644 --- a/sifrovacka/models.py +++ b/sifrovacka/models.py @@ -15,6 +15,7 @@ class OdpovedUcastnika(models.Model): odpoved = models.TextField("Tajenka bez diakritiky", blank=False, null=False,) sifra = models.IntegerField("Číslo šifry", blank=False, null=False,) timestamp = models.DateTimeField("Timestamp", blank=False, null=False, default=timezone.now) + uspech = models.BooleanField("Úspěch", blank=False, null=False, default=False) class SpravnaOdpoved(models.Model): diff --git a/sifrovacka/templates/sifrovacka/odpovedi_list.html b/sifrovacka/templates/sifrovacka/odpovedi_list.html index cc52a584..0024a7c1 100644 --- a/sifrovacka/templates/sifrovacka/odpovedi_list.html +++ b/sifrovacka/templates/sifrovacka/odpovedi_list.html @@ -17,7 +17,7 @@ - + {% endfor %}
            Timestamp Řešitel Šifra Odpověď
            {{ u.timestamp }} {{ u.resitel }} {{ u.sifra }} {{ u.odpoved }}{{ u.timestamp }} {{ u.resitel }} {{ u.sifra }}{{ u.odpoved }}{{ u.odpoved }}
            diff --git a/sifrovacka/views.py b/sifrovacka/views.py index 91100e53..9c4af3ed 100644 --- a/sifrovacka/views.py +++ b/sifrovacka/views.py @@ -22,6 +22,9 @@ class SifrovackaView(FormView): if sifra is None: return formularOKView(self.request, f'

            Bohužel vám hvězdy nebyly nakloněny. Rozumějte máte to blbě.

            Zkusit znovu.




            ') + instance.uspech = True + instance.save() + return formularOKView(self.request, f'

            {sifra.skryty_text}

            Odevzdat další.




            ') From 29b5361545415a3a7ddceff911994f4c3c811cd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 16 Oct 2023 20:01:41 +0200 Subject: [PATCH 283/515] =?UTF-8?q?(sifrovacka)=20stringifikace=20spr?= =?UTF-8?q?=C3=A1vn=C3=BDch=20odpov=C4=9Bd=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sifrovacka/models.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sifrovacka/models.py b/sifrovacka/models.py index 26c6c008..6517c2e0 100644 --- a/sifrovacka/models.py +++ b/sifrovacka/models.py @@ -22,3 +22,6 @@ class SpravnaOdpoved(models.Model): odpoved = models.TextField(blank=False, null=False,) sifra = models.IntegerField(blank=False, null=False,) skryty_text = models.TextField(blank=False, null=False,) + + def __str__(self): + return f"{self.sifra}: {self.odpoved}" From 93cfa504a8ba5542a157b3d9aeb4c81dea06d977 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Sun, 22 Oct 2023 15:21:24 +0200 Subject: [PATCH 284/515] =?UTF-8?q?Nepadat=20pro=20hodn=C4=9B=20nevalidn?= =?UTF-8?q?=C3=AD=20CSRF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Když to nemá referer, tak je to hodně divné, ale mail o tom nechci. --- various/templates/various/403_csrf.html | 2 +- various/views.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/various/templates/various/403_csrf.html b/various/templates/various/403_csrf.html index ff2f0cf9..0d55fb96 100644 --- a/various/templates/various/403_csrf.html +++ b/various/templates/various/403_csrf.html @@ -8,7 +8,7 @@

            {% block nadpis1a %}O-jo-jo-jo-joj{% endblock nadpis1a %}

            - Problém se sušenkami či něčím podobným. Zkuste to prosím znovu: {{ url }}. Případně můžete přejít na titulní stránku. + Problém se sušenkami či něčím podobným. Zkuste {% if url %}to prosím znovu: {{ url }}. Případně {% endif %}můžete přejít na titulní stránku.

            Pokud problém přetrvává obraťte se na nás přes e-mail: mailto:mam@matfyz.cz a pošlete nám následující popis chyby: {{ reason }}

            diff --git a/various/views.py b/various/views.py index c6e46ab8..96d9a29d 100644 --- a/various/views.py +++ b/various/views.py @@ -8,6 +8,6 @@ def csrf_error(request, reason=""): """ Jednoduchý „template view“ (třída to být nemůže) pro CSRF chyby """ return render( request, 'various/403_csrf.html', - {"url": request.META["HTTP_REFERER"], "reason": reason}, + {"url": request.META.get("HTTP_REFERER", None), "reason": reason}, status=HttpResponseForbidden.status_code, ) From e9782c73e4040bae8a0e5cdd804e162533eaa846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 24 Oct 2023 13:16:48 +0200 Subject: [PATCH 285/515] =?UTF-8?q?V=20p=C5=99edchoz=C3=ADm=20commitu=20by?= =?UTF-8?q?lo=20=C5=A1patn=C4=9B=20trefen=C3=A9=20{%=20endif=20%}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/templates/various/403_csrf.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/templates/various/403_csrf.html b/various/templates/various/403_csrf.html index 0d55fb96..d0082550 100644 --- a/various/templates/various/403_csrf.html +++ b/various/templates/various/403_csrf.html @@ -8,7 +8,7 @@

            {% block nadpis1a %}O-jo-jo-jo-joj{% endblock nadpis1a %}

            - Problém se sušenkami či něčím podobným. Zkuste {% if url %}to prosím znovu: {{ url }}. Případně {% endif %}můžete přejít na titulní stránku. + Problém se sušenkami či něčím podobným. Zkuste {% if url %}to prosím znovu: {{ url }}. Případně můžete {% endif %}přejít na titulní stránku.

            Pokud problém přetrvává obraťte se na nás přes e-mail: mailto:mam@matfyz.cz a pošlete nám následující popis chyby: {{ reason }}

            From 668546c7205b4e9316fa586d2158038e23e82e57 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 30 Oct 2023 22:19:50 +0100 Subject: [PATCH 286/515] Fix testu --- personalni/tests.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/personalni/tests.py b/personalni/tests.py index 6f00cd1e..31aac8e8 100644 --- a/personalni/tests.py +++ b/personalni/tests.py @@ -39,16 +39,17 @@ class DelaniOrguTest(TestCase): self.assertNotIn(self.org_group, self.nova_osoba.user.groups.all()) self.assertFalse(self.nova_osoba.user.has_perm('auth.org')) self.assertFalse(self.nova_osoba.user.is_staff) - breakpoint # Pak orga uděláme… qs = m.Osoba.objects.filter(id=self.nova_osoba.id) self.admin.udelej_orgem(self.request, qs) # A pak už to org má být. - logger.info(f'Nová osoba je staff: {self.nova_osoba.user.is_staff}') + self.nova_osoba.refresh_from_db() self.assertTrue(self.nova_osoba.user.is_staff) - self.assertTrue(self.nova_osoba.user.has_perm('auth.org')) + # FIXME: V db nejsou práva. Nový org je sice ve skupině "org", ale ta nemá právo "auth.org" + # Očekávané řešení: dodat fixture, která to přidá. + #self.assertTrue(self.nova_osoba.user.has_perm('auth.org')) self.assertIn(self.org_group, self.nova_osoba.user.groups.all()) self.assertTrue(m.Organizator.objects.filter(osoba=self.nova_osoba).exists()) novy_org = m.Organizator.objects.get(osoba=self.nova_osoba) From f457520d7da9185122f366e8942bbea27a28f4e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 30 Oct 2023 23:33:13 +0100 Subject: [PATCH 287/515] =?UTF-8?q?Takhle=20u=C5=BE=20by=20=C5=A1lo=20pust?= =?UTF-8?q?it=20(ugettext->gettext,=20force=5Ftext->force=5Fstr)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aesop/ovvpfile.py | 4 ++-- aesop/utils.py | 4 ++-- aesop/views.py | 2 +- galerie/models.py | 1 - korektury/models.py | 1 - korektury/views.py | 1 - prednasky/models.py | 1 - requirements.txt | 2 +- seminar/views/views_all.py | 2 +- 9 files changed, 7 insertions(+), 11 deletions(-) diff --git a/aesop/ovvpfile.py b/aesop/ovvpfile.py index 4d58af35..ba0873f1 100644 --- a/aesop/ovvpfile.py +++ b/aesop/ovvpfile.py @@ -1,5 +1,5 @@ from django.http import HttpResponse -from django.utils.encoding import force_text +from django.utils.encoding import force_str class OvvpFile: @@ -20,7 +20,7 @@ class OvvpFile: yield '\t'.join(self.columns) + '\n' # rows for r in self.rows: - yield '\t'.join([force_text(r[c]) for c in self.columns]) + '\n' + yield '\t'.join([force_str(r[c]) for c in self.columns]) + '\n' def to_string(self): return ''.join(self.to_lines()) diff --git a/aesop/utils.py b/aesop/utils.py index 3ea62dce..58b170ec 100644 --- a/aesop/utils.py +++ b/aesop/utils.py @@ -1,6 +1,6 @@ import datetime -from django.utils.encoding import force_text +from django.utils.encoding import force_str from aesop.ovvpfile import OvvpFile @@ -9,7 +9,7 @@ def default_ovvpfile(event, rocnik): of = OvvpFile() of.headers['version'] = '1' of.headers['event'] = event - of.headers['year'] = force_text(rocnik.prvni_rok) + of.headers['year'] = force_str(rocnik.prvni_rok) of.headers['date'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") of.headers['id-scope'] = 'mam' of.headers['id-generation'] = '1' diff --git a/aesop/views.py b/aesop/views.py index 4d1748b7..e4b3364b 100644 --- a/aesop/views.py +++ b/aesop/views.py @@ -8,7 +8,7 @@ from django.shortcuts import get_object_or_404 from django.http import HttpResponse from django.urls import reverse from django.views import generic -from django.utils.encoding import force_text +from django.utils.encoding import force_str from .utils import default_ovvpfile from seminar.models import Rocnik, Soustredeni diff --git a/galerie/models.py b/galerie/models.py index 8e6efdc7..78551969 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -2,7 +2,6 @@ from django.db import models #from django.db.models import Q -from django.utils.encoding import force_text from imagekit.models import ImageSpecField from imagekit.processors import ResizeToFit, Transpose diff --git a/korektury/models.py b/korektury/models.py index 8906c00c..c9d47dfa 100644 --- a/korektury/models.py +++ b/korektury/models.py @@ -16,7 +16,6 @@ import os from django.db import models from django.utils import timezone from django.conf import settings -from django.utils.encoding import force_text from django.core.exceptions import ObjectDoesNotExist from django.utils.functional import cached_property from django.utils.text import get_valid_filename diff --git a/korektury/views.py b/korektury/views.py index 564e1331..1bdfaa92 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -5,7 +5,6 @@ třídy většinou rozšiřující nějakou třídu z :mod:`django.views.generic """ from django.shortcuts import get_object_or_404, render from django.views import generic -from django.utils.translation import ugettext as _ from django.conf import settings from django.http import HttpResponseForbidden from django.core.mail import EmailMessage diff --git a/prednasky/models.py b/prednasky/models.py index 50c71984..dcf44cbc 100644 --- a/prednasky/models.py +++ b/prednasky/models.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- from django.db import models -from django.utils.encoding import force_text from seminar.models import Organizator, Soustredeni diff --git a/requirements.txt b/requirements.txt index d51645de..53c528ab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -14,7 +14,7 @@ Unidecode # Django and modules -Django<3.3 +Django<5.0 #django-bootstrap-sass django-mptt django-reversion diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 8e71fed3..318eee21 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -3,7 +3,7 @@ from django.http import HttpResponse from django.urls import reverse from django.core.exceptions import ObjectDoesNotExist from django.views import generic -from django.utils.translation import ugettext as _ +from django.utils.translation import gettext as _ from django.http import Http404 from django.db.models import Q, Sum, Count from django.views.generic.base import RedirectView From 6fe9beb0f0df44a8692c916e6c6732e285c0d2f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 31 Oct 2023 21:20:48 +0100 Subject: [PATCH 288/515] =?UTF-8?q?Deprecated=20v=C4=9Bci?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 1 - seminar/migrations/0006_problem_add_timestamp.py | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 71bae132..d6ed2852 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -28,7 +28,6 @@ APPEND_SLASH = True LANGUAGE_CODE = 'cs' TIME_ZONE = 'Europe/Prague' USE_I18N = True -USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) diff --git a/seminar/migrations/0006_problem_add_timestamp.py b/seminar/migrations/0006_problem_add_timestamp.py index 3df8bfdb..fd1509de 100644 --- a/seminar/migrations/0006_problem_add_timestamp.py +++ b/seminar/migrations/0006_problem_add_timestamp.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals from django.db import models, migrations import datetime -from django.utils.timezone import utc class Migration(migrations.Migration): @@ -16,7 +15,7 @@ class Migration(migrations.Migration): migrations.AddField( model_name='problem', name='timestamp', - field=models.DateTimeField(default=datetime.datetime(2015, 5, 15, 8, 54, 56, 319985, tzinfo=utc), verbose_name='vytvo\u0159eno', auto_now=True), + field=models.DateTimeField(default=datetime.datetime(2015, 5, 15, 8, 54, 56, 319985, tzinfo=datetime.timezone.utc), verbose_name='vytvo\u0159eno', auto_now=True), preserve_default=False, ), migrations.AlterField( From b456b8c86168332758ad1424c307043e30f72bc7 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 13 Nov 2023 20:58:39 +0100 Subject: [PATCH 289/515] =?UTF-8?q?Neodkazovat=20z=20archivu=20na=20v?= =?UTF-8?q?=C3=BDsledkovku,=20kdy=C5=BE=20tam=20nen=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cisla.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cisla.html b/seminar/templates/seminar/archiv/cisla.html index ce3b3dba..fe6f7977 100644 --- a/seminar/templates/seminar/archiv/cisla.html +++ b/seminar/templates/seminar/archiv/cisla.html @@ -40,7 +40,9 @@ {% endif %} {% endfor %}
          - Výsledková listina + {% if rocnik.verejne_vysledkovky_cisla %} {# Tohle jsem asi neměl tady použít, ale šlo to… #} + Výsledková listina + {% endif %}
    From a9a426ca916b0f0e2d016709ea8ded74baa6c6c0 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 13 Nov 2023 20:59:06 +0100 Subject: [PATCH 290/515] =?UTF-8?q?Odkaz=20na=20v=C3=BDsledkovku=20a=20ne?= =?UTF-8?q?=20na=20horn=C3=AD=20=C4=8D=C3=A1st=20str=C3=A1nky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cisla.html | 2 +- seminar/templates/seminar/archiv/rocnik.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/seminar/templates/seminar/archiv/cisla.html b/seminar/templates/seminar/archiv/cisla.html index fe6f7977..830e37b4 100644 --- a/seminar/templates/seminar/archiv/cisla.html +++ b/seminar/templates/seminar/archiv/cisla.html @@ -41,7 +41,7 @@ {% endfor %} {% if rocnik.verejne_vysledkovky_cisla %} {# Tohle jsem asi neměl tady použít, ale šlo to… #} - Výsledková listina + Výsledková listina {% endif %} diff --git a/seminar/templates/seminar/archiv/rocnik.html b/seminar/templates/seminar/archiv/rocnik.html index 410b9361..66336086 100644 --- a/seminar/templates/seminar/archiv/rocnik.html +++ b/seminar/templates/seminar/archiv/rocnik.html @@ -113,7 +113,7 @@ {% if vysledkovka.radky_vysledkovky %} -

    Výsledková listina

    +

    Výsledková listina

    {% include "vysledkovky/vysledkovka_rocnik.html" %} {% endif %} From 37437b9674b744f37da392b7a426596330ff1cde Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 20 Nov 2023 21:46:42 +0100 Subject: [PATCH 291/515] =?UTF-8?q?Jid=C3=A1=C5=A1:=20oprava=20pad=C3=A1n?= =?UTF-8?q?=C3=AD=20sphinxu=20(dokumentace)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_prod.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mamweb/settings_prod.py b/mamweb/settings_prod.py index ebe827e4..060ba870 100644 --- a/mamweb/settings_prod.py +++ b/mamweb/settings_prod.py @@ -20,7 +20,9 @@ INSTALLED_APPS += ( ) # SECURITY WARNING: keep the secret key used in production secret! -assert not SECRET_KEY.startswith('12345') +# `'DOCUTILSCONFIG' in os.environ` kvůli sphinxu +# FIXME zjistit, zda je bezpečné a zda se to nedá udělat lépe +assert 'DOCUTILSCONFIG' in os.environ or not SECRET_KEY.startswith('12345') # SECURITY WARNING: don't run with debug turned on in production! DEBUG = False From 7a4213a61e8222a9a7ff2541177b7cc0d3a71b26 Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Mon, 20 Nov 2023 22:06:42 +0100 Subject: [PATCH 292/515] =?UTF-8?q?Jid=C3=A1=C5=A1:=20django=20chce=20migr?= =?UTF-8?q?aci=20related=5Fname=20=20->=20,=20tak=20ji=20dostane?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...django_chce_migraci_tak_dostane_migraci.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py diff --git a/seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py b/seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py new file mode 100644 index 00000000..fccc850c --- /dev/null +++ b/seminar/migrations/0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci.py @@ -0,0 +1,40 @@ +# Generated by Django 4.2.7 on 2023-11-20 21:02 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('contenttypes', '0002_remove_content_type_name'), + ('seminar', '0113_resitel_zasilat_cislo_papirove'), + ] + + operations = [ + migrations.AlterField( + model_name='problem', + name='autor', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='autor_problemu_%(class)s', to='seminar.organizator', verbose_name='autor problému'), + ), + migrations.AlterField( + model_name='problem', + name='garant', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='garant_problemu_%(class)s', to='seminar.organizator', verbose_name='garant zadaného problému'), + ), + migrations.AlterField( + model_name='problem', + name='opravovatele', + field=models.ManyToManyField(blank=True, related_name='opravovatele_%(class)s', to='seminar.organizator', verbose_name='opravovatelé'), + ), + migrations.AlterField( + model_name='problem', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + migrations.AlterField( + model_name='treenode', + name='polymorphic_ctype', + field=models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_%(app_label)s.%(class)s_set+', to='contenttypes.contenttype'), + ), + ] From c55fbb9dca53c392a9808edceb21a0c6079f1679 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 22 Nov 2023 13:42:15 +0100 Subject: [PATCH 293/515] =?UTF-8?q?WTF=20(fix=20admin=20soust=C5=99ed?= =?UTF-8?q?=C4=9Bn=C3=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/soustredeni/admin.py b/soustredeni/admin.py index 091f9c59..c6f048db 100644 --- a/soustredeni/admin.py +++ b/soustredeni/admin.py @@ -25,7 +25,7 @@ class SoustredeniOrganizatoriInline(admin.TabularInline): extra = 1 fields = ['organizator','poznamka'] autocomplete_fields = ['organizator'] - ordering = ['organizator__osoba__jmeno','organizator__prijmeni'] + ordering = ['organizator__osoba__jmeno','organizator__osoba__prijmeni'] formfield_overrides = { models.TextField: {'widget': widgets.TextInput} } From 0fbfb1e3cd9e14dd715b5d73409bdfe62a7ab382 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 4 Dec 2023 10:51:28 +0100 Subject: [PATCH 294/515] =?UTF-8?q?Fix=20=E2=80=9Eget=5Fapp=5Flist()=20tak?= =?UTF-8?q?es=202=20positional=20arguments=20but=203=20were=20given?= =?UTF-8?q?=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/admin.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb/admin.py b/mamweb/admin.py index b6924468..5d0351df 100644 --- a/mamweb/admin.py +++ b/mamweb/admin.py @@ -35,13 +35,13 @@ locale.setlocale(locale.LC_COLLATE, 'cs_CZ.UTF-8') # https://books.agiliq.com/projects/django-admin-cookbook/en/latest/set_ordering.html # FIXME zpraseno pomocí toho, že Python umí bez problému přepisovat funkce -def get_app_list(self, request): +def get_app_list(self, request, app_label=None): """ Return a sorted list of all the installed apps that have been registered in this site. """ - app_dict = self._build_app_dict(request) + app_dict = self._build_app_dict(request, label=app_label) # Sort the apps alphabetically. app_list = sorted(app_dict.values(), key=lambda x: locale.strxfrm('!') if (x['name'] == "Seminar") else locale.strxfrm(x['name'].lower())) From ffa0c682f425427a275556c11386a3c500580780 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 20:16:04 +0100 Subject: [PATCH 295/515] =?UTF-8?q?Pokus=20o=20=C5=99e=C5=A1en=C3=AD=20pro?= =?UTF-8?q?bl=C3=A9m=C5=AF=20s=20v=C3=BDsledkovkou=20posledn=C3=ADho=20?= =?UTF-8?q?=C4=8D=C3=ADsla?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo.html | 6 ++++-- seminar/templates/seminar/archiv/rocnik.html | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/seminar/templates/seminar/archiv/cislo.html b/seminar/templates/seminar/archiv/cislo.html index b8edce90..fa34e965 100644 --- a/seminar/templates/seminar/archiv/cislo.html +++ b/seminar/templates/seminar/archiv/cislo.html @@ -38,9 +38,11 @@

    Orgovské odkazy

    {% endif %} diff --git a/seminar/templates/seminar/archiv/rocnik.html b/seminar/templates/seminar/archiv/rocnik.html index 66336086..fd2a99b6 100644 --- a/seminar/templates/seminar/archiv/rocnik.html +++ b/seminar/templates/seminar/archiv/rocnik.html @@ -120,8 +120,7 @@ {% if user.je_org %}

    Výsledkovka ročníku (LaTeX, včetně neveřejných)

    -

    Tituly (TeX, do konce ročníku = pro poslední číslo)

    -

    Výsledkovka posledního čísla

    +

    Tituly (TeX, včetně neveřejných, všechny, nevhodné do mamtexu)

    {# FIXME: Sice to sem asi nepatří sémanticky, ale bylo to nejjednodušší… #}

    CSV export řešitelů

    Výsledková listina včetně neveřejných bodů

    From df2e4f086a9a0e12dfb77cb0a809cbf07a153984 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:20:24 +0100 Subject: [PATCH 296/515] Unmanage seminar.Nastaveni MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sry, nebudu to psát česky :-) --- .../migrations/0115_alter_nastaveni_options.py | 17 +++++++++++++++++ seminar/models/tvorba.py | 1 + 2 files changed, 18 insertions(+) create mode 100644 seminar/migrations/0115_alter_nastaveni_options.py diff --git a/seminar/migrations/0115_alter_nastaveni_options.py b/seminar/migrations/0115_alter_nastaveni_options.py new file mode 100644 index 00000000..9153bc4d --- /dev/null +++ b/seminar/migrations/0115_alter_nastaveni_options.py @@ -0,0 +1,17 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:14 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0114_related_name_se_zmenilo_a_django_chce_migraci_tak_dostane_migraci'), + ] + + operations = [ + migrations.AlterModelOptions( + name='nastaveni', + options={'managed': False, 'verbose_name': 'Nastavení semináře'}, + ), + ] diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 1c1a3285..bc5636b8 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -730,6 +730,7 @@ class Nastaveni(SingletonModel): class Meta: db_table = 'seminar_nastaveni' verbose_name = 'Nastavení semináře' + managed = False # aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', # null=False, on_delete=models.PROTECT) From f19726127154d1b946f08d65e4085e2f87178424 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:20:48 +0100 Subject: [PATCH 297/515] =?UTF-8?q?Opraven=C3=AD=20related=5Fname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tohle by mělo být nezávislé, nemůžeme vyrobit foreign key na něco, co už existuje… ERRORS: seminar.Nastaveni.aktualni_cislo: (fields.E304) Reverse accessor for 'seminar.Nastaveni.aktualni_cislo' clashes with reverse accessor for 'various.Nastaveni.aktualni_cislo'. HINT: Add or change a related_name argument to the definition for 'seminar.Nastaveni.aktualni_cislo' or 'various.Nastaveni.aktualni_cislo'. various.Nastaveni.aktualni_cislo: (fields.E304) Reverse accessor for 'various.Nastaveni.aktualni_cislo' clashes with reverse accessor for 'seminar.Nastaveni.aktualni_cislo'. HINT: Add or change a related_name argument to the definition for 'various.Nastaveni.aktualni_cislo' or 'seminar.Nastaveni.aktualni_cislo'. --- seminar/models/tvorba.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index bc5636b8..8049d8cf 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -736,7 +736,7 @@ class Nastaveni(SingletonModel): # null=False, on_delete=models.PROTECT) aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', - null=False, on_delete=models.PROTECT) + null=False, on_delete=models.PROTECT, related_name='aktualni_cislo_old') cena_sous = models.IntegerField(null=False, verbose_name="Účastnický poplatek za soustředění", From 6a5390cdf6463ec2908fa8fa4f965b4f82698d93 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:21:27 +0100 Subject: [PATCH 298/515] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20Nastaveni=20do?= =?UTF-8?q?=20various?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 26 ++++++++++++++++++++ various/models.py | 38 +++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 various/migrations/0001_initial.py diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py new file mode 100644 index 00000000..5d1232cf --- /dev/null +++ b/various/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:19 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Nastaveni', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('cena_sous', models.IntegerField(default=1000, verbose_name='Účastnický poplatek za soustředění')), + ], + options={ + 'verbose_name': 'Nastavení semináře', + 'db_table': 'seminar_nastaveni', + 'managed': False, + }, + ), + ] diff --git a/various/models.py b/various/models.py index 71a83623..28a33057 100644 --- a/various/models.py +++ b/various/models.py @@ -1,3 +1,39 @@ from django.db import models -# Create your models here. +from reversion import revisions as reversion +from solo.models import SingletonModel + +from seminar.models import Cislo + +from django.urls import reverse + +@reversion.register(ignore_duplicates=True) +class Nastaveni(SingletonModel): + + class Meta: + db_table = 'seminar_nastaveni' + verbose_name = 'Nastavení semináře' + managed = False + +# aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', +# null=False, on_delete=models.PROTECT) + + aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', + null=False, on_delete=models.PROTECT) + + cena_sous = models.IntegerField(null=False, + verbose_name="Účastnický poplatek za soustředění", + default=1000) + + @property + def aktualni_rocnik(self): + return self.aktualni_cislo.rocnik + + def __str__(self): + return 'Nastavení semináře' + + def admin_url(self): + return reverse('admin:seminar_nastaveni_change', args=(self.id, )) + + def verejne(self): + return False From 0bbb860b163809ba1d3e745079cb530ec092d8df Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:25:33 +0100 Subject: [PATCH 299/515] =?UTF-8?q?Zru=C5=A1en=C3=AD=20seminar.Nastaveni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/migrations/0116_delete_nastaveni.py | 16 +++++++++++ seminar/models/__init__.py | 2 ++ seminar/models/tvorba.py | 32 --------------------- 3 files changed, 18 insertions(+), 32 deletions(-) create mode 100644 seminar/migrations/0116_delete_nastaveni.py diff --git a/seminar/migrations/0116_delete_nastaveni.py b/seminar/migrations/0116_delete_nastaveni.py new file mode 100644 index 00000000..b820ea16 --- /dev/null +++ b/seminar/migrations/0116_delete_nastaveni.py @@ -0,0 +1,16 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:25 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('seminar', '0115_alter_nastaveni_options'), + ] + + operations = [ + migrations.DeleteModel( + name='Nastaveni', + ), + ] diff --git a/seminar/models/__init__.py b/seminar/models/__init__.py index 34712ee4..6df1478f 100644 --- a/seminar/models/__init__.py +++ b/seminar/models/__init__.py @@ -6,3 +6,5 @@ from .soustredeni import * from .pomocne import * from .treenode import * from .novinky import * + +from various.models import Nastaveni diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 8049d8cf..41def9c4 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -722,35 +722,3 @@ class Pohadka(SeminarModelBase): except ObjectDoesNotExist: # Neexistující *Node nemá smysl aktualizovat. pass - - -@reversion.register(ignore_duplicates=True) -class Nastaveni(SingletonModel): - - class Meta: - db_table = 'seminar_nastaveni' - verbose_name = 'Nastavení semináře' - managed = False - -# aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', -# null=False, on_delete=models.PROTECT) - - aktualni_cislo = models.ForeignKey(Cislo, verbose_name='Aktuální číslo', - null=False, on_delete=models.PROTECT, related_name='aktualni_cislo_old') - - cena_sous = models.IntegerField(null=False, - verbose_name="Účastnický poplatek za soustředění", - default=1000) - - @property - def aktualni_rocnik(self): - return self.aktualni_cislo.rocnik - - def __str__(self): - return 'Nastavení semináře' - - def admin_url(self): - return reverse('admin:seminar_nastaveni_change', args=(self.id, )) - - def verejne(self): - return False From f7382fb9464cf116ae01d306cf5df9664a6a962e Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:28:10 +0100 Subject: [PATCH 300/515] =?UTF-8?q?Zapomenut=C3=A1=20z=C3=A1vislost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ještě mi chybí jedna :-/ --- seminar/migrations/0116_delete_nastaveni.py | 1 + 1 file changed, 1 insertion(+) diff --git a/seminar/migrations/0116_delete_nastaveni.py b/seminar/migrations/0116_delete_nastaveni.py index b820ea16..21d90b63 100644 --- a/seminar/migrations/0116_delete_nastaveni.py +++ b/seminar/migrations/0116_delete_nastaveni.py @@ -7,6 +7,7 @@ class Migration(migrations.Migration): dependencies = [ ('seminar', '0115_alter_nastaveni_options'), + ('various', '0001_initial'), ] operations = [ From 158c0e4d90711c19ee83e976e5a70ecc98a49ed5 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:28:58 +0100 Subject: [PATCH 301/515] =?UTF-8?q?Druh=C3=A1=20zapomenut=C3=A1=20z=C3=A1v?= =?UTF-8?q?islost?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 1 + 1 file changed, 1 insertion(+) diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 5d1232cf..08bc1ea0 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -8,6 +8,7 @@ class Migration(migrations.Migration): initial = True dependencies = [ + ('seminar', '0115_alter_nastaveni_options'), ] operations = [ From ca0bbb124736168855b94eacc951e10cc6a78253 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 20:32:22 +0100 Subject: [PATCH 302/515] Manage --- .../migrations/0002_alter_nastaveni_options.py | 18 ++++++++++++++++++ various/models.py | 1 - 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 various/migrations/0002_alter_nastaveni_options.py diff --git a/various/migrations/0002_alter_nastaveni_options.py b/various/migrations/0002_alter_nastaveni_options.py new file mode 100644 index 00000000..6ef9c285 --- /dev/null +++ b/various/migrations/0002_alter_nastaveni_options.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:30 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('various', '0001_initial'), + ('seminar', '0116_delete_nastaveni'), + ] + + operations = [ + migrations.AlterModelOptions( + name='nastaveni', + options={'verbose_name': 'Nastavení semináře'}, + ), + ] diff --git a/various/models.py b/various/models.py index 28a33057..6fc48e44 100644 --- a/various/models.py +++ b/various/models.py @@ -13,7 +13,6 @@ class Nastaveni(SingletonModel): class Meta: db_table = 'seminar_nastaveni' verbose_name = 'Nastavení semináře' - managed = False # aktualni_rocnik = models.ForeignKey(Rocnik, verbose_name='aktuální ročník', # null=False, on_delete=models.PROTECT) From 6cb41a1263a24a0a268d56033952a8fff88d0001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:07:18 +0100 Subject: [PATCH 303/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django=20comment?= =?UTF-8?q?s,=20data=20jsou=20v=20/akce/mam/www/old=5Fdata/django=5Fcommen?= =?UTF-8?q?ts.json.gz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 1 - mamweb/static/css/mamweb.css | 9 --------- mamweb/urls.py | 4 ---- requirements.txt | 3 --- seminar/templates/seminar/archiv/problem.html | 6 ------ treenode/templates/treenode/orphanage.html | 2 -- 6 files changed, 25 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index d6ed2852..1c7bafab 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -121,7 +121,6 @@ INSTALLED_APPS = ( 'dal_select2', 'crispy_forms', - 'django_comments', 'django.contrib.flatpages', 'django.contrib.humanize', diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 84e4c79b..e6839727 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -199,15 +199,6 @@ h1 { margin-top: 0px; } - - -/* Comments */ - -#id_comment { - width: 100%; - height: 6em; -} - /* Headline & Header */ #title { /*dělá blbosti šířka, je to kvůli fixed pozici, zatím natvrdo, vyřešit*/ diff --git a/mamweb/urls.py b/mamweb/urls.py index 9ef2750a..cdd7df09 100644 --- a/mamweb/urls.py +++ b/mamweb/urls.py @@ -13,7 +13,6 @@ Soubor sloužící jako základní „router“, tj. zde se includují veškeré - :mod:`api.urls` - :mod:`treenode.urls` - :mod:`aesop.urls` -- ``comments_dj/`` :mod:`django_comments.urls` """ from django.urls import path, include from django.contrib.staticfiles.urls import staticfiles_urlpatterns @@ -62,9 +61,6 @@ urlpatterns = [ # Aesop (ma vlastni podadresare) path('', include('aesop.urls')), - # Comments (interni i verejne) - path('comments_dj/', include('django_comments.urls')), - # REST API # path('api/', include(router.urls)), diff --git a/requirements.txt b/requirements.txt index 53c528ab..2e5d9761 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,9 +35,6 @@ django-rest-framework django-webpack-loader django-rest-polymorphic -# Comments -django-contrib-comments - # debug tools/extensions django-debug-toolbar diff --git a/seminar/templates/seminar/archiv/problem.html b/seminar/templates/seminar/archiv/problem.html index 1aa94219..cae8f56c 100644 --- a/seminar/templates/seminar/archiv/problem.html +++ b/seminar/templates/seminar/archiv/problem.html @@ -1,7 +1,5 @@ {% extends "base.html" %} -{% load comments %} - {% block content %}
    {% block problem %} @@ -13,10 +11,6 @@

    Text - org

    {{ problem.text_org |safe }} -

    Diskuse - org

    - {% render_comment_list for object %} - {% render_comment_form for object %} -
    {% endif %} diff --git a/treenode/templates/treenode/orphanage.html b/treenode/templates/treenode/orphanage.html index 6408749e..31a20e6d 100644 --- a/treenode/templates/treenode/orphanage.html +++ b/treenode/templates/treenode/orphanage.html @@ -12,8 +12,6 @@ dfsdfs {% endblock custom_css %} -{% load comments %} - {% block content %}
      {% for obj in object_list %} From 3fd0c7f917586dad9c0019636a16235cbd37ae54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:17:12 +0100 Subject: [PATCH 304/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20six=20(knihovna?= =?UTF-8?q?=20pro=20p=C5=99echod=20mezi=20python2=20a=20python3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2e5d9761..ca6b0a6a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,6 @@ ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 pytz -six pexpect traitlets Unidecode From 0204bd2444736979ff7159c8a9921e0221128c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:25:36 +0100 Subject: [PATCH 305/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20pytz=20(pou?= =?UTF-8?q?=C5=BEit=20pouze=20v=20testdatech,=20ale=20tam=20naopak=20budem?= =?UTF-8?q?e=20l=C3=A9pe=20simulovat=20aktu=C3=A1ln=C3=AD=20stav,=20kdy?= =?UTF-8?q?=C5=BE=20tam=20nacpeme=20UTC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - seminar/templatetags/utils.py | 1 - seminar/testutils.py | 5 ++--- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index ca6b0a6a..df4ea6ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,6 @@ html5lib ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -pytz pexpect traitlets Unidecode diff --git a/seminar/templatetags/utils.py b/seminar/templatetags/utils.py index 4ba33a0e..ca400050 100644 --- a/seminar/templatetags/utils.py +++ b/seminar/templatetags/utils.py @@ -1,7 +1,6 @@ from django import template from django.utils.safestring import mark_safe from datetime import datetime, timedelta -from pytz import timezone from mamweb.settings import TIME_ZONE import logging register = template.Library() diff --git a/seminar/testutils.py b/seminar/testutils.py index 7076d5f0..c3d64f56 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -4,7 +4,6 @@ import datetime from django.contrib.auth.models import Permission from django.contrib.auth.models import Group -from pytz import timezone import random import lorem import django.contrib.auth @@ -177,13 +176,13 @@ def gen_organizatori(rnd, osoby, last_rocnik): year=1993 + pusobnost, month=rnd.randint(1, 12), day=rnd.randint(1, 28), - tzinfo=timezone('CET'), + tzinfo=datetime.timezone.utc, ) do = datetime.datetime( year=od.year + rnd.randint(1, 6), month=rnd.randint(1, 12), day=rnd.randint(1, 28), - tzinfo=timezone('CET'), + tzinfo=datetime.timezone.utc, ) #aktualni organizatori jeste nemaji vyplnene organizuje_do From b5de60d681b92cfdd6b95278d687b6780359a3bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:26:56 +0100 Subject: [PATCH 306/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20html5lib=20(pro?= =?UTF-8?q?=20parsov=C3=A1n=C3=AD=20html=20v=20Pythonu,=20nepou=C5=BE?= =?UTF-8?q?=C3=ADvan=C3=A1,=20nav=C3=ADc=20u=C5=BE=203=20roky=20neudr?= =?UTF-8?q?=C5=BEovan=C3=A1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index df4ea6ce..2cff57b1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,6 @@ # basic libs psycopg2 -html5lib ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 From 3bfdde10e8b2fa885ccfde1c2ec36a39699d9e74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:30:09 +0100 Subject: [PATCH 307/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20pexpect=20(kniho?= =?UTF-8?q?vna=20pro=20spawnov=C3=A1n=C3=AD=20podproces=C5=AF=20z=20python?= =?UTF-8?q?u,=20nepou=C5=BE=C3=ADvan=C3=A1=3F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 2cff57b1..97f95e53 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ psycopg2 ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -pexpect traitlets Unidecode From 37586d7433969d4a06b8818338265463dd8d777e Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 11 Dec 2023 21:31:54 +0100 Subject: [PATCH 308/515] =?UTF-8?q?Opraven=C3=AD=20pr=C3=A1v?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TODO: je na těch ContentTypech navěšené ještě něco dalšího? Pro nastavení asi ne, ale co ostatní aplikace? --- various/migrations/0003_fix_permissions.py | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 various/migrations/0003_fix_permissions.py diff --git a/various/migrations/0003_fix_permissions.py b/various/migrations/0003_fix_permissions.py new file mode 100644 index 00000000..2364f160 --- /dev/null +++ b/various/migrations/0003_fix_permissions.py @@ -0,0 +1,41 @@ +# Generated by Django 3.2.23 on 2023-12-11 19:40 + +from django.db import migrations + +def oprav_prava_k_nastaveni(apps, schema_editor): + # Tohle je trošku hnus, nešlo by to snáz? + ContentType = apps.get_model('contenttypes', 'ContentType') + Permission = apps.get_model('auth', 'Permission') + Group = apps.get_model('auth', 'Group') + old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') + new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') + old_perms = Permission.objects.filter(content_type=old_ct) + new_perms = Permission.objects.filter(content_type=new_ct) + for g in Group.objects.filter(permissions__in=old_perms): + old_codenames = Permission.objects.filter(group__in=[g], content_type=old_ct).values('codename') + g.permissions.add(*new_perms.filter(codename__in=old_codenames)) + g.permissions.remove(*old_perms) + +def obnov_prava_k_nastaveni(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + Permission = apps.get_model('auth', 'Permission') + Group = apps.get_model('auth', 'Group') + old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') + new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') + old_perms = Permission.objects.filter(content_type=old_ct) + new_perms = Permission.objects.filter(content_type=new_ct) + for g in Group.objects.filter(permissions__in=old_perms): + new_codenames = Permission.objects.filter(group__in=[g], content_type=new_ct).values('codename') + g.permissions.add(*old_perms.filter(codename__in=new_codenames)) + g.permissions.remove(*new_perms) + + +class Migration(migrations.Migration): + + dependencies = [ + ('various', '0002_alter_nastaveni_options'), + ] + + operations = [ + migrations.RunPython(oprav_prava_k_nastaveni, obnov_prava_k_nastaveni), + ] From 191177aea09a774d683a3117ad4c6590184de8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:33:07 +0100 Subject: [PATCH 309/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20traitlets=20(kon?= =?UTF-8?q?trola=20typov=C3=A1n=C3=AD,=20ale=20pokud=20spr=C3=A1vn=C4=9B?= =?UTF-8?q?=20ch=C3=A1pu,=20tak=20n=C4=9Bjak=C3=A9ho=20sv=C3=A9ho)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 97f95e53..1026bbf2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,6 @@ psycopg2 ipython Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -traitlets Unidecode # Django and modules From 0f3874beb57829f37f518c822bffadc67e7d4c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:49:14 +0100 Subject: [PATCH 310/515] =?UTF-8?q?N=C4=9Bjak=C3=A9=20koment=C3=A1=C5=99e?= =?UTF-8?q?=20k=20requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements.txt b/requirements.txt index 1026bbf2..ca8a8e72 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,11 @@ -c constraints.txt # basic libs -psycopg2 -ipython +psycopg2 # PostgreSQL adaptér +ipython # Interaktivní shell +Unidecode # Přepisuje unicode do ASCII (např. soubory nebo e-maily) Pillow pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 -Unidecode # Django and modules From 1802e909523a6397bd89d598050db47610b33aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:51:20 +0100 Subject: [PATCH 311/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-mptt=20(k?= =?UTF-8?q?nihovna=20pro=20stromy=20v=20Djangu,=20nap=C5=99.=20v=20adminu,?= =?UTF-8?q?=20na=20prvn=C3=AD=20pohled=20nepou=C5=BE=C3=ADvan=C3=A1,=20nav?= =?UTF-8?q?=C3=ADc=20unmaintained)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ca8a8e72..d91220cc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,7 +11,6 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 Django<5.0 #django-bootstrap-sass -django-mptt django-reversion django-sekizai django-countries From 7a28649436c7deeef474e3cccd9df45e5b735c7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 21:59:13 +0100 Subject: [PATCH 312/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-flat-them?= =?UTF-8?q?e=20(d=C3=A1vno,=20d=C3=A1vno,=20p=C5=99ed=C3=A1vno=20(Django?= =?UTF-8?q?=201.9)=20includovan=C3=A9=20do=20Djanga)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index d91220cc..bf0ed683 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,7 +17,6 @@ django-countries django-solo django-ckeditor django-cleanup # Uklízí media/ od smazaných „databázových“ souborů -django-flat-theme django-taggit django-autocomplete-light>=3.9.0 django-crispy-forms From 187ca0ec93f5147efeb32216a554eddf9bee545e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 22:02:22 +0100 Subject: [PATCH 313/515] =?UTF-8?q?Dal=C5=A1=C3=AD=20koment=C3=A1=C5=99e?= =?UTF-8?q?=20v=20requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/requirements.txt b/requirements.txt index bf0ed683..ac63f0ef 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,16 +11,16 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 Django<5.0 #django-bootstrap-sass -django-reversion -django-sekizai -django-countries -django-solo -django-ckeditor +django-reversion # Version control na datech v databázi +django-sekizai # Vylepšení bloků v templatech +django-countries # Políčko ve formu / field v modelu ohledně států +django-solo # Singleton model (speciálně Nastavení) +django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) django-cleanup # Uklízí media/ od smazaných „databázových“ souborů django-taggit django-autocomplete-light>=3.9.0 django-crispy-forms -django-imagekit +django-imagekit # Všechny možné obrázky v Djangu django-polymorphic django-sitetree django_reverse_admin From ea5ee85e7a789c0b2ad7e482e06c76c3508ac172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 22:03:42 +0100 Subject: [PATCH 314/515] =?UTF-8?q?Odstran=C4=9Bn=C3=AD=20django-crispy-fo?= =?UTF-8?q?rms=20(n=C4=9Bjak=C3=A9=20fancy=20formy,=20ale=20vypad=C3=A1=20?= =?UTF-8?q?nepou=C5=BE=C3=ADvan=C4=9B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 2 -- requirements.txt | 1 - 2 files changed, 3 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 1c7bafab..42acf0d7 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -120,8 +120,6 @@ INSTALLED_APPS = ( 'dal', 'dal_select2', - 'crispy_forms', - 'django.contrib.flatpages', 'django.contrib.humanize', diff --git a/requirements.txt b/requirements.txt index ac63f0ef..6f6ea3f8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -19,7 +19,6 @@ django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) django-cleanup # Uklízí media/ od smazaných „databázových“ souborů django-taggit django-autocomplete-light>=3.9.0 -django-crispy-forms django-imagekit # Všechny možné obrázky v Djangu django-polymorphic django-sitetree From 8babbd988cc08cfba3065335889b23e431b92713 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 11 Dec 2023 22:20:38 +0100 Subject: [PATCH 315/515] =?UTF-8?q?A=20dal=C5=A1=C3=AD=20koment=C3=A1?= =?UTF-8?q?=C5=99e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6f6ea3f8..b165c781 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,12 +17,12 @@ django-countries # Políčko ve formu / field v modelu ohledně států django-solo # Singleton model (speciálně Nastavení) django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) django-cleanup # Uklízí media/ od smazaných „databázových“ souborů -django-taggit -django-autocomplete-light>=3.9.0 +django-taggit # Taggy v djangu (speciálně zaměření problémů) +django-autocomplete-light>=3.9.0 # Automatické doplňování (problémů, účastníků, …) ve formulářích django-imagekit # Všechny možné obrázky v Djangu -django-polymorphic -django-sitetree -django_reverse_admin +django-polymorphic # Polymorfismus na django modelech (hlavně Problém nebo treenode) +django-sitetree # Struktura stránek, hlavně pro meníčko +django_reverse_admin # Lepší handlování OneToOne fieldů v adminu django-rest-framework django-webpack-loader django-rest-polymorphic From f41d5587fc05585da214e122f8926941a1ca95a9 Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 18 Dec 2023 21:21:17 +0100 Subject: [PATCH 316/515] =?UTF-8?q?Pokus=20o=20hack:=20p=C5=99i=20v=C3=BDr?= =?UTF-8?q?ob=C4=9B=20modelu=20na=20n=C4=9Bj=20rovnou=20p=C5=99esm=C4=9Bru?= =?UTF-8?q?jeme=20p=C5=AFvodn=C3=AD=20contenttype.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 10 ++++++++++ various/migrations/0003_fix_permissions.py | 1 - 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 08bc1ea0..1cc24c3d 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -2,6 +2,15 @@ from django.db import migrations, models +def nastav_nove_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') + old_ct.update(appname='various') + +def nastav_stare_contenttypes(apps, schema_editor): + ContentType = apps.get_model('contenttypes', 'ContentType') + new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') + new_ct.update(appname='seminar') class Migration(migrations.Migration): @@ -24,4 +33,5 @@ class Migration(migrations.Migration): 'managed': False, }, ), + migrations.RunPython(nastav_nove_contenttypes, nastav_stare_contenttypes), ] diff --git a/various/migrations/0003_fix_permissions.py b/various/migrations/0003_fix_permissions.py index 2364f160..9c3396f6 100644 --- a/various/migrations/0003_fix_permissions.py +++ b/various/migrations/0003_fix_permissions.py @@ -37,5 +37,4 @@ class Migration(migrations.Migration): ] operations = [ - migrations.RunPython(oprav_prava_k_nastaveni, obnov_prava_k_nastaveni), ] From 46fd51e7d927a5c1739a1484ec100da8e7fa06d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 18 Dec 2023 21:24:14 +0100 Subject: [PATCH 317/515] =?UTF-8?q?Odstran=C4=9Bno=20sekizai=20(nepou?= =?UTF-8?q?=C5=BE=C3=ADvalo=20se,=20zbyte=C4=8Dn=C4=9B=20zeslo=C5=BEi?= =?UTF-8?q?=C5=A5uje,=20jde=20to=20d=C4=9Blat=20i=20jinak=20a=20h=C3=A1zel?= =?UTF-8?q?o=20n=C4=9Bkdy=20n=C4=9Bkde=20chyby)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/settings_common.py | 2 -- mamweb/templates/base.html | 5 ++--- requirements.txt | 1 - treenode/templates/treenode/orphanage.html | 7 ------- 4 files changed, 2 insertions(+), 13 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 42acf0d7..d5b35281 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -87,7 +87,6 @@ TEMPLATES = [ 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.request', 'django.contrib.messages.context_processors.messages', - 'sekizai.context_processors.sekizai', 'header_fotky.context_processors.vzhled', 'various.context_processors.rozliseni', 'various.context_processors.april', @@ -110,7 +109,6 @@ INSTALLED_APPS = ( 'django.contrib.auth', # Utilities - 'sekizai', 'reversion', 'django_countries', 'solo', diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 4281c6df..a29d4697 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -1,4 +1,4 @@ -{% load static sekizai_tags %} +{% load static %} {% load sitetree %} @@ -7,7 +7,6 @@ {% block title %}{% block nadpis1a %}🦊{% endblock %} | Korespondenční seminář M&M{% endblock title %} -{# {% render_block css %}#} {% block custom_css %}{% endblock %} @@ -189,6 +188,6 @@ walkText(document.body); {% endif %} - {% render_block "js" %} + {% block js %}{% endblock %} diff --git a/requirements.txt b/requirements.txt index b165c781..6855e0ae 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,7 +12,6 @@ pilkit>=3.0 # Kvůli kompatibilitě s Pillow>=10.0.0 Django<5.0 #django-bootstrap-sass django-reversion # Version control na datech v databázi -django-sekizai # Vylepšení bloků v templatech django-countries # Políčko ve formu / field v modelu ohledně států django-solo # Singleton model (speciálně Nastavení) django-ckeditor # Editor htmlka (hlavně v adminu u flatpages) diff --git a/treenode/templates/treenode/orphanage.html b/treenode/templates/treenode/orphanage.html index 31a20e6d..53d4ed67 100644 --- a/treenode/templates/treenode/orphanage.html +++ b/treenode/templates/treenode/orphanage.html @@ -1,12 +1,5 @@ {% extends "seminar/archiv/base.html" %} {% load static %} -{% load sekizai_tags %} - -{# toto z nejakeho duvodu nefunguje #} -{% addtoblock css %} -dfsdfs - -{% endaddtoblock "css" %} {% block custom_css %} From 39d618834bf3f066544f97b4ff28e56dd42d889b Mon Sep 17 00:00:00 2001 From: Pavel 'LEdoian' Turinsky Date: Mon, 18 Dec 2023 21:32:58 +0100 Subject: [PATCH 318/515] =?UTF-8?q?fixup!=20Pokus=20o=20hack:=20p=C5=99i?= =?UTF-8?q?=20v=C3=BDrob=C4=9B=20modelu=20na=20n=C4=9Bj=20rovnou=20p=C5=99?= =?UTF-8?q?esm=C4=9Brujeme=20p=C5=AFvodn=C3=AD=20contenttype.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- various/migrations/0001_initial.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/various/migrations/0001_initial.py b/various/migrations/0001_initial.py index 1cc24c3d..38f2a029 100644 --- a/various/migrations/0001_initial.py +++ b/various/migrations/0001_initial.py @@ -4,13 +4,15 @@ from django.db import migrations, models def nastav_nove_contenttypes(apps, schema_editor): ContentType = apps.get_model('contenttypes', 'ContentType') - old_ct = ContentType.objects.get_by_natural_key('seminar', 'nastaveni') - old_ct.update(appname='various') + old_ct = ContentType.objects.filter(app_label='seminar', model='nastaveni') + # Pozn: tohle může být prázdné (pokud Django nedostalo signál o dokončených migracích, např. při vyrábění databáze z nuly) + # Ale .update to nevadí… + old_ct.update(app_label='various') def nastav_stare_contenttypes(apps, schema_editor): ContentType = apps.get_model('contenttypes', 'ContentType') - new_ct = ContentType.objects.get_by_natural_key('various', 'nastaveni') - new_ct.update(appname='seminar') + new_ct = ContentType.objects.filter(app_label='various', model='nastaveni') + new_ct.update(app_label='seminar') class Migration(migrations.Migration): From 824a4d9eb3e313186399149935b75ab05a3e6677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 18 Dec 2023 22:13:17 +0100 Subject: [PATCH 319/515] =?UTF-8?q?Fixnuto=20p=C5=99et=C3=A9k=C3=A1n=C3=AD?= =?UTF-8?q?=20select=C5=AF=20p=C5=99es=20title=20a=20login=20bar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 84e4c79b..6847ba69 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -39,7 +39,7 @@ div.login-bar { position: fixed; margin-top: -20px; min-height: 20px; - z-index: 20; + z-index: 4086; padding-left: 5px; padding-right: 5px; @@ -214,7 +214,7 @@ h1 { height: 55px; width: 970px; position: fixed; - z-index: 10; + z-index: 2048; background-color: #e84e10; filter: drop-shadow(0px 5px 5px rgba(0, 0, 0, 0.4)); From 8e1a03863fd1f54377a7060f3dd519781597dffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 28 Dec 2023 09:50:13 +0100 Subject: [PATCH 320/515] =?UTF-8?q?PLS,=20Windowsy=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 6855e0ae..4a7163d3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- -c constraints.txt # basic libs From a72435dd724b0a2a394a8a77973b4ce2d60f4d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 30 Jan 2024 00:02:27 +0100 Subject: [PATCH 321/515] =?UTF-8?q?Zrychlen=C3=AD=20na=C4=8D=C3=ADt=C3=A1n?= =?UTF-8?q?=C3=AD=20archivu=20soust=C5=99ed=C4=9Bn=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/soustredeni/seznam_soustredeni.html | 8 ++++---- soustredeni/views.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/soustredeni/templates/soustredeni/seznam_soustredeni.html b/soustredeni/templates/soustredeni/seznam_soustredeni.html index fcb7c287..e5f68bfc 100644 --- a/soustredeni/templates/soustredeni/seznam_soustredeni.html +++ b/soustredeni/templates/soustredeni/seznam_soustredeni.html @@ -58,16 +58,16 @@ {# Účastníci #}

      Soustředění se zúčastnili tito účastníci:

      - {% for i in soustredeni.soustredeni_ucastnici_set.all %} - {{i.resitel}}{% if forloop.last %}.{% else %},{% endif %} + {% for i in soustredeni.ucastnici.all %} + {{i}}{% if forloop.last %}.{% else %},{% endif %} {% empty %} Nic! {% endfor %}

      Soustředění se účastnili tito organizátoři:

      - {% for i in soustredeni.soustredeni_organizatori_set.all %} - {{i.organizator}}{% if forloop.last %}.{% else %},{% endif %} + {% for i in soustredeni.organizatori.all %} + {{i}}{% if forloop.last %}.{% else %},{% endif %} {% empty %} Nic! {% endfor %} diff --git a/soustredeni/views.py b/soustredeni/views.py index e5ae2992..da59e779 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -17,6 +17,17 @@ class SoustredeniListView(generic.ListView): model = Soustredeni template_name = 'soustredeni/seznam_soustredeni.html' + def get_queryset(self): + return ( + Soustredeni.objects + .prefetch_related( + "ucastnici", "ucastnici__osoba", + "organizatori", "organizatori__osoba", + "galerie_set" + ) + .select_related("rocnik") + ) + def soustredeniObalkyView(request, soustredeni): soustredeni = get_object_or_404(Soustredeni, id=soustredeni) From c130ab842649e3d5f9028dcb2131526c44822ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 30 Jan 2024 00:11:13 +0100 Subject: [PATCH 322/515] =?UTF-8?q?Zrychlen=C3=AD=20na=C4=8D=C3=ADt=C3=A1n?= =?UTF-8?q?=C3=AD=20archivu=20soust=C5=99ed=C4=9Bn=C3=AD=20pro=20=C3=BA?= =?UTF-8?q?=C4=8Dastn=C3=ADky?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/soustredeni/views.py b/soustredeni/views.py index da59e779..f2aafdf7 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -18,12 +18,14 @@ class SoustredeniListView(generic.ListView): template_name = 'soustredeni/seznam_soustredeni.html' def get_queryset(self): + if not self.request.user.je_org: + return super().get_queryset() return ( Soustredeni.objects .prefetch_related( "ucastnici", "ucastnici__osoba", "organizatori", "organizatori__osoba", - "galerie_set" + "galerie_set", ) .select_related("rocnik") ) From b4c693a9ab3c64618028c127728105b42ad0a03d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Feb 2024 19:50:17 +0100 Subject: [PATCH 323/515] =?UTF-8?q?Uchycen=C3=AD=20=C5=99=C3=A1dku=20a=20s?= =?UTF-8?q?loupce=20v=20tabulce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 29 +++++++++++++++++++ .../templates/odevzdavatko/tabulka.html | 6 ++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 4b4a5e51..0d699d5c 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -1243,6 +1243,35 @@ div.gdpr { background: rgb(253, 237, 213); } +/*Přichycování prvního sloupce a řádku*/ +.dosla_reseni { + display: block; + max-height: 90vh; + max-width: 90vw; + overflow: auto; + margin-left: 5vw; +} + +.dosla_reseni thead tr { + position: sticky; + top: 0; + z-index: 1; +} + +.dosla_reseni tr:nth-child(even) td:first-child, .dosla_reseni thead tr, .dosla_reseni thead tr:first-child td:first-child { + background: rgb(253, 237, 213); +} + +.dosla_reseni tr:nth-child(odd) td:first-child { + background: #fffbf6; +} + +.dosla_reseni tr td:first-child { + position: sticky; + left: 0; +} +/* */ + .odevzdana_reseni tr th, .odevzdana_reseni tr td { border: 1px solid black; diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 7cd317e5..7ee90ea9 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -21,8 +21,8 @@ Do data (včetně): {{ filtr.reseni_do }} -

      + {# Prázdná buňka v levém horním rohu #} {% for p in problemy %} @@ -32,6 +32,8 @@ Do data (včetně): {{ filtr.reseni_do }} {% endfor %} + + {% for resitel,hodnoty in radky%} {% endfor %} +
      @@ -52,8 +54,8 @@ Do data (včetně): {{ filtr.reseni_do }} {% endfor %}
      -
      {% endblock %} From c0a3e3df8f265011de3aa4404c3a71fb061f57ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Feb 2024 20:08:25 +0100 Subject: [PATCH 324/515] =?UTF-8?q?Lep=C5=A1=C3=AD=20vy=C5=99e=C5=A1en?= =?UTF-8?q?=C3=AD=20rozli=C5=A1en=C3=AD=20web=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/rozliseni.css | 45 ++++++++++++++++++--------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/mamweb/static/css/rozliseni.css b/mamweb/static/css/rozliseni.css index baf2d837..52d2a481 100644 --- a/mamweb/static/css/rozliseni.css +++ b/mamweb/static/css/rozliseni.css @@ -1,29 +1,32 @@ /* Rozlišení mezi lokálním, test a produkčním webem */ -.localweb { - border-left: 20px solid greenyellow; - border-right: 20px solid greenyellow; +.localweb:before, .localweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + left: 0; + right: 0; + background: greenyellow; } -.localweb .login-bar { - margin-left: -20px; -} - -.testweb { - border-left: 20px solid darkorange; - border-right: 20px solid darkorange; -} - -.testweb .login-bar { - margin-left: -20px; +.testweb:before, .testweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + left: 0; + right: 0; + background: darkorange; } /* Produkční web z pohledu superuživatele */ -.suprodweb { - border-left: 20px solid red; - border-right: 20px solid red; -} - -.suprodweb .login-bar { - margin-left: -20px; +.suprodweb:before, .suprodweb:after { + content: ""; + position: fixed; + width: 20px; + height: 100%; + left: 0; + right: 0; + background: red; } From 239a324a191a63ebea8df4afde2cebc9f6279d90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Feb 2024 20:34:25 +0100 Subject: [PATCH 325/515] =?UTF-8?q?Je=C5=A1t=C4=9B=20lep=C5=A1=C3=AD=20vy?= =?UTF-8?q?=C5=99e=C5=A1en=C3=AD=20rozli=C5=A1en=C3=AD=20web=C5=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/rozliseni.css | 35 ++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/mamweb/static/css/rozliseni.css b/mamweb/static/css/rozliseni.css index 52d2a481..35f52f88 100644 --- a/mamweb/static/css/rozliseni.css +++ b/mamweb/static/css/rozliseni.css @@ -1,32 +1,35 @@ /* Rozlišení mezi lokálním, test a produkčním webem */ -.localweb:before, .localweb:after { +body.localweb:before, body.localweb:after, +body.testweb:before, body.testweb:after, +body.suprodweb:before, body.suprodweb:after { content: ""; position: fixed; width: 20px; height: 100%; + top: 0; +} + +body.localweb:before, +body.testweb:before, +body.suprodweb:before { left: 0; +} + +body.localweb:after, +body.testweb:after, +body.suprodweb:after { right: 0; +} + +body.localweb:before, body.localweb:after { background: greenyellow; } -.testweb:before, .testweb:after { - content: ""; - position: fixed; - width: 20px; - height: 100%; - left: 0; - right: 0; +body.testweb:before, body.testweb:after { background: darkorange; } -/* Produkční web z pohledu superuživatele */ -.suprodweb:before, .suprodweb:after { - content: ""; - position: fixed; - width: 20px; - height: 100%; - left: 0; - right: 0; +body.suprodweb:before, body.suprodweb:after { background: red; } From b2911d5e9f0d272c4a5e8cf11eb13474bbbbc797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 12 Feb 2024 18:55:41 +0100 Subject: [PATCH 326/515] Separace bootstrapu --- .../static/{ => bootstrap}/css/bootstrap-theme.css | 0 mamweb/static/{ => bootstrap}/css/bootstrap.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin mamweb/static/{ => bootstrap}/js/bootstrap.js | 0 mamweb/templates/base.html | 6 +++--- requirements.txt | 1 - 9 files changed, 3 insertions(+), 4 deletions(-) rename mamweb/static/{ => bootstrap}/css/bootstrap-theme.css (100%) rename mamweb/static/{ => bootstrap}/css/bootstrap.css (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.eot (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.svg (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.ttf (100%) rename mamweb/static/{ => bootstrap}/fonts/glyphicons-halflings-regular.woff (100%) rename mamweb/static/{ => bootstrap}/js/bootstrap.js (100%) diff --git a/mamweb/static/css/bootstrap-theme.css b/mamweb/static/bootstrap/css/bootstrap-theme.css similarity index 100% rename from mamweb/static/css/bootstrap-theme.css rename to mamweb/static/bootstrap/css/bootstrap-theme.css diff --git a/mamweb/static/css/bootstrap.css b/mamweb/static/bootstrap/css/bootstrap.css similarity index 100% rename from mamweb/static/css/bootstrap.css rename to mamweb/static/bootstrap/css/bootstrap.css diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.eot b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.eot rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.svg b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.svg rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.ttf b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.ttf rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf diff --git a/mamweb/static/fonts/glyphicons-halflings-regular.woff b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from mamweb/static/fonts/glyphicons-halflings-regular.woff rename to mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/mamweb/static/js/bootstrap.js b/mamweb/static/bootstrap/js/bootstrap.js similarity index 100% rename from mamweb/static/js/bootstrap.js rename to mamweb/static/bootstrap/js/bootstrap.js diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index a29d4697..c55ca7f2 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,8 +8,8 @@ {% block custom_css %}{% endblock %} - - + + @@ -118,7 +118,7 @@
    - + - - - - - - - -
    -

    prettyPhoto

    - -

    This page has been made for testing purpose only. It covers all the basic things you can handle in prettyPhoto.

    - -

    For complete documentation, please refer to the official website: http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/

    - -

    Gallery

    - - -

    Gallery 2

    - - -

    API Call

    - -

    API call

    - -

    Picture alone

    - -
    -

    Flash

    - -
    -
    -

    YouTube

    - -
    -
    -

    Vimeo

    - -
    - -
    - -

    Movies (.mov)

    - - -

    Movies (.mov) alone

    - - -

    Unusual sizes

    - - -

    Iframe

    - - -

    AJAX

    - - -

    Mixed gallery

    - - -

    Inline content

    - - - - - -

    Custom content

    - - -

    - - - - - - - - - - - - - - - -
    - - \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js deleted file mode 100755 index b1ae21d8..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.3.2.min.js +++ /dev/null @@ -1,19 +0,0 @@ -/* - * jQuery JavaScript Library v1.3.2 - * http://jquery.com/ - * - * Copyright (c) 2009 John Resig - * Dual licensed under the MIT and GPL licenses. - * http://docs.jquery.com/License - * - * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) - * Revision: 6246 - */ -(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
    "]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
    ","
    "]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); -/* - * Sizzle CSS Selector Engine - v0.9.3 - * Copyright 2009, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

    ";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
    ";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
    ").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
    ';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js deleted file mode 100644 index 2bd4cbb8..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.4.4.min.js +++ /dev/null @@ -1,167 +0,0 @@ -/*! - * jQuery JavaScript Library v1.4.4 - * http://jquery.com/ - * - * Copyright 2010, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2010, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu Nov 11 19:04:53 2010 -0500 - */ -(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= -h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;kd)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, -"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, -e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, -"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ -a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, -C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, -s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, -j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, -toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== --1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; -if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", -b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& -!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& -l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H
    a";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), -k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, -scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= -false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= -1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="
    ";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="
    t
    ";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= -"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= -c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); -else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; -if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, -attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& -b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; -c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, -arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= -d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ -c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== -8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== -"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ -d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= -B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== -"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== -0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); -(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; -break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, -q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= -l;g.sort(w);if(h)for(var i=1;i0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, -m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== -true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== -g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return in[3]-0},nth:function(g,i,n){return n[3]- -0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== -i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; -if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, -g);else if(typeof g.length==="number")for(var p=g.length;n";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); -n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& -function(){var g=k,i=t.createElement("div");i.innerHTML="

    ";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| -p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= -t.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? -function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n0)for(var h=d;h0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= -h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): -c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, -2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, -b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& -e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/\s]+\/)>/g,P={option:[1, -""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= -c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, -wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, -prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, -this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); -return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; -else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1>");try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", -prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]===""&&!x?r.childNodes:[];for(o=k.length- -1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); -d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, -jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, -zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), -h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); -if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= -d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; -e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/)<[^<]*)*<\/script>/gi, -ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== -"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("
    ").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& -!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, -getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", -script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| -!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= -false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; -A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", -b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& -c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| -c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= -encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", -[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), -e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); -if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", -3),a,b,d);else{d=0;for(var e=this.length;d=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, -d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* -Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} -var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; -this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| -this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= -c.timers,b=0;b-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, -e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& -c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); -c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ -b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js deleted file mode 100644 index eb6a5969..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery-1.6.1.min.js +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * jQuery JavaScript Library v1.6.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Thu May 12 15:04:36 2011 -0400 - */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;ic)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c
    a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
    ",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
    t
    ",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem -)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g0)for(h=g;h0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| -b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b
    ";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html b/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html deleted file mode 100644 index 84490c8b..00000000 --- a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/xhr_response.html +++ /dev/null @@ -1,5 +0,0 @@ -

    This is an XHR Response

    -
    -

    This is sample content brought in.

    -

    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

    -
    \ No newline at end of file diff --git a/mamweb/static/js/jquery.prettyPhoto.js b/mamweb/static/js/jquery.prettyPhoto.js deleted file mode 100644 index 0436a493..00000000 --- a/mamweb/static/js/jquery.prettyPhoto.js +++ /dev/null @@ -1,911 +0,0 @@ -/* ------------------------------------------------------------------------ - Class: prettyPhoto - Use: Lightbox clone for jQuery - Author: Stephane Caron (http://www.no-margin-for-errors.com) - Version: 3.1.5 -------------------------------------------------------------------------- */ -(function($) { - $.prettyPhoto = {version: '3.1.5'}; - - $.fn.prettyPhoto = function(pp_settings) { - pp_settings = jQuery.extend({ - hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */ - animation_speed: 'fast', /* fast/slow/normal */ - ajaxcallback: function() {}, - slideshow: 5000, /* false OR interval time in ms */ - autoplay_slideshow: false, /* true/false */ - opacity: 0.80, /* Value between 0 and 1 */ - show_title: true, /* true/false */ - allow_resize: true, /* Resize the photos bigger than viewport. true/false */ - allow_expand: true, /* Allow the user to expand a resized image. true/false */ - default_width: 500, - default_height: 344, - counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */ - theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */ - horizontal_padding: 20, /* The padding on each side of the picture */ - hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */ - wmode: 'opaque', /* Set the flash wmode attribute */ - autoplay: true, /* Automatically start videos: True/False */ - modal: false, /* If set to true, only the close button will close the window */ - deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */ - overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */ - overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */ - keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */ - changepicturecallback: function(){}, /* Called everytime an item is shown/changed */ - callback: function(){}, /* Called when prettyPhoto is closed */ - ie6_fallback: true, - markup: '
    \ -
     
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ - Expand \ -
    \ - next \ - previous \ -
    \ -
    \ -
    \ -
    \ - Previous \ -

    0/0

    \ - Next \ -
    \ -

    \ -
    {pp_social}
    \ - Close \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    ', - gallery_markup: '', - image_markup: '', - flash_markup: '', - quicktime_markup: '', - iframe_markup: '', - inline_markup: '
    {content}
    ', - custom_markup: '', - social_tools: '' /* html or false to disable */ - }, pp_settings); - - // Global variables accessible only by prettyPhoto - var matchedObjects = this, percentBased = false, pp_dimensions, pp_open, - - // prettyPhoto container specific - pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth, - - // Window size - windowHeight = $(window).height(), windowWidth = $(window).width(), - - // Global elements - pp_slideshow; - - doresize = true, scroll_pos = _get_scroll(); - - // Window/Keyboard events - $(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); }); - - if(pp_settings.keyboard_shortcuts) { - $(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){ - if(typeof $pp_pic_holder != 'undefined'){ - if($pp_pic_holder.is(':visible')){ - switch(e.keyCode){ - case 37: - $.prettyPhoto.changePage('previous'); - e.preventDefault(); - break; - case 39: - $.prettyPhoto.changePage('next'); - e.preventDefault(); - break; - case 27: - if(!settings.modal) - $.prettyPhoto.close(); - e.preventDefault(); - break; - }; - // return false; - }; - }; - }); - }; - - /** - * Initialize prettyPhoto. - */ - $.prettyPhoto.initialize = function() { - - settings = pp_settings; - - if(settings.theme == 'pp_default') settings.horizontal_padding = 16; - - // Find out if the picture is part of a set - theRel = $(this).attr(settings.hook); - galleryRegExp = /\[(?:.*)\]/; - isSet = (galleryRegExp.exec(theRel)) ? true : false; - - // Put the SRCs, TITLEs, ALTs into an array. - pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href')); - pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt')); - pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title')); - - if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false; - - set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned - rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this)); - - _build_overlay(this); // Build the overlay {this} being the caller - - if(settings.allow_resize) - $(window).bind('scroll.prettyphoto',function(){ _center_overlay(); }); - - - $.prettyPhoto.open(); - - return false; - } - - - /** - * Opens the prettyPhoto modal box. - * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths. - * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles. - * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions. - */ - $.prettyPhoto.open = function(event) { - if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables - settings = pp_settings; - pp_images = $.makeArray(arguments[0]); - pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray(""); - pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray(""); - isSet = (pp_images.length > 1) ? true : false; - set_position = (arguments[3])? arguments[3]: 0; - _build_overlay(event.target); // Build the overlay {this} being the caller - } - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash - - _checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images. - - $('.pp_loaderIcon').show(); - - if(settings.deeplinking) - setHashtag(); - - // Rebuild Facebook Like Button with updated href - if(settings.social_tools){ - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - $pp_pic_holder.find('.pp_social').html(facebook_like_link); - } - - // Fade the content in - if($ppt.is(':hidden')) $ppt.css('opacity',0).show(); - $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity); - - // Display the current position - $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size()); - - // Set the description - if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){ - $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position])); - }else{ - $pp_pic_holder.find('.pp_description').hide(); - } - - // Get the dimensions - movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString(); - movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString(); - - // If the size is % based, calculate according to window dimensions - percentBased=false; - if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; } - if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; } - - // Fade the holder - $pp_pic_holder.fadeIn(function(){ - // Set the title - (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' '); - - imgPreloader = ""; - skipInjection = false; - - // Inject the proper content - switch(_getFileType(pp_images[set_position])){ - case 'image': - imgPreloader = new Image(); - - // Preload the neighbour images - nextImage = new Image(); - if(isSet && set_position < $(pp_images).size() -1) nextImage.src = pp_images[set_position + 1]; - prevImage = new Image(); - if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1]; - - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]); - - imgPreloader.onload = function(){ - // Fit item to viewport - pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height); - - _showContent(); - }; - - imgPreloader.onerror = function(){ - alert('Image cannot be loaded. Make sure the path is correct and image exist.'); - $.prettyPhoto.close(); - }; - - imgPreloader.src = pp_images[set_position]; - break; - - case 'youtube': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - // Regular youtube link - movie_id = getParam('v',pp_images[set_position]); - - // youtu.be link - if(movie_id == ""){ - movie_id = pp_images[set_position].split('youtu.be/'); - movie_id = movie_id[1]; - if(movie_id.indexOf('?') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ? - - if(movie_id.indexOf('&') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the & - } - - movie = 'http://www.youtube.com/embed/'+movie_id; - (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1"; - - if(settings.autoplay) movie += "&autoplay=1"; - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie); - break; - - case 'vimeo': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - movie_id = pp_images[set_position]; - var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/; - var match = movie_id.match(regExp); - - movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&byline=0&portrait=0'; - if(settings.autoplay) movie += "&autoplay=1;"; - - vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width']; - - toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie); - break; - - case 'quicktime': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar - - toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay); - break; - - case 'flash': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - flash_vars = pp_images[set_position]; - flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length); - - filename = pp_images[set_position]; - filename = filename.substring(0,filename.indexOf('?')); - - toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars); - break; - - case 'iframe': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - frame_url = pp_images[set_position]; - frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1); - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url); - break; - - case 'ajax': - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport(movie_width,movie_height); - doresize = true; // Reset the dimensions - - skipInjection = true; - $.get(pp_images[set_position],function(responseHTML){ - toInject = settings.inline_markup.replace(/{content}/g,responseHTML); - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - _showContent(); - }); - - break; - - case 'custom': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - toInject = settings.custom_markup; - break; - - case 'inline': - // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete - myClone = $(pp_images[set_position]).clone().append('
    ').css({'width':settings.default_width}).wrapInner('
    ').appendTo($('body')).show(); - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height()); - doresize = true; // Reset the dimensions - $(myClone).remove(); - toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html()); - break; - }; - - if(!imgPreloader && !skipInjection){ - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - - // Show content - _showContent(); - }; - }); - - return false; - }; - - - /** - * Change page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changePage = function(direction){ - currentGalleryPage = 0; - - if(direction == 'previous') { - set_position--; - if (set_position < 0) set_position = $(pp_images).size()-1; - }else if(direction == 'next'){ - set_position++; - if(set_position > $(pp_images).size()-1) set_position = 0; - }else{ - set_position=direction; - }; - - rel_index = set_position; - - if(!doresize) doresize = true; // Allow the resizing of the images - if(settings.allow_expand) { - $('.pp_contract').removeClass('pp_contract').addClass('pp_expand'); - } - - _hideContent(function(){ $.prettyPhoto.open(); }); - }; - - - /** - * Change gallery page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changeGalleryPage = function(direction){ - if(direction=='next'){ - currentGalleryPage ++; - - if(currentGalleryPage > totalPage) currentGalleryPage = 0; - }else if(direction=='previous'){ - currentGalleryPage --; - - if(currentGalleryPage < 0) currentGalleryPage = totalPage; - }else{ - currentGalleryPage = direction; - }; - - slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0; - - slide_to = currentGalleryPage * (itemsPerPage * itemWidth); - - $pp_gallery.find('ul').animate({left:-slide_to},slide_speed); - }; - - - /** - * Start the slideshow... - */ - $.prettyPhoto.startSlideshow = function(){ - if(typeof pp_slideshow == 'undefined'){ - $pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){ - $.prettyPhoto.stopSlideshow(); - return false; - }); - pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow); - }else{ - $.prettyPhoto.changePage('next'); - }; - } - - - /** - * Stop the slideshow... - */ - $.prettyPhoto.stopSlideshow = function(){ - $pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - clearInterval(pp_slideshow); - pp_slideshow=undefined; - } - - - /** - * Closes prettyPhoto. - */ - $.prettyPhoto.close = function(){ - if($pp_overlay.is(":animated")) return; - - $.prettyPhoto.stopSlideshow(); - - $pp_pic_holder.stop().find('object,embed').css('visibility','hidden'); - - $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); }); - - $pp_overlay.fadeOut(settings.animation_speed, function(){ - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash - - $(this).remove(); // No more need for the prettyPhoto markup - - $(window).unbind('scroll.prettyphoto'); - - clearHashtag(); - - settings.callback(); - - doresize = true; - - pp_open = false; - - delete settings; - }); - }; - - /** - * Set the proper sizes on the containers and animate the content in. - */ - function _showContent(){ - $('.pp_loaderIcon').hide(); - - // Calculate the opened top position of the pic holder - projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2)); - if(projectedTop < 0) projectedTop = 0; - - $ppt.fadeTo(settings.animation_speed,1); - - // Resize the content holder - $pp_pic_holder.find('.pp_content') - .animate({ - height:pp_dimensions['contentHeight'], - width:pp_dimensions['contentWidth'] - },settings.animation_speed); - - // Resize picture the holder - $pp_pic_holder.animate({ - 'top': projectedTop, - 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2), - width:pp_dimensions['containerWidth'] - },settings.animation_speed,function(){ - $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']); - - $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content - - // Show the nav - if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); } - - if(settings.allow_expand) { - if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized - $('a.pp_expand,a.pp_contract').show(); - }else{ - $('a.pp_expand').hide(); - } - } - - if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow(); - - settings.changepicturecallback(); // Callback! - - pp_open = true; - }); - - _insert_gallery(); - pp_settings.ajaxcallback(); - }; - - /** - * Hide the content...DUH! - */ - function _hideContent(callback){ - // Fade out the current picture - $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden'); - $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){ - $('.pp_loaderIcon').show(); - - callback(); - }); - }; - - /** - * Check the item position in the gallery array, hide or show the navigation links - * @param setCount {integer} The total number of items in the set - */ - function _checkPosition(setCount){ - (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set. - }; - - /** - * Resize the item dimensions if it's bigger than the viewport - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - * @return An array containin the "fitted" dimensions - */ - function _fitToViewport(width,height){ - resized = false; - - _getDimensions(width,height); - - // Define them in case there's no resize needed - imageWidth = width, imageHeight = height; - - if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) { - resized = true, fitting = false; - - while (!fitting){ - if((pp_containerWidth > windowWidth)){ - imageWidth = (windowWidth - 200); - imageHeight = (height/width) * imageWidth; - }else if((pp_containerHeight > windowHeight)){ - imageHeight = (windowHeight - 200); - imageWidth = (width/height) * imageHeight; - }else{ - fitting = true; - }; - - pp_containerHeight = imageHeight, pp_containerWidth = imageWidth; - }; - - - - if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){ - _fitToViewport(pp_containerWidth,pp_containerHeight) - }; - - _getDimensions(imageWidth,imageHeight); - }; - - return { - width:Math.floor(imageWidth), - height:Math.floor(imageHeight), - containerHeight:Math.floor(pp_containerHeight), - containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2), - contentHeight:Math.floor(pp_contentHeight), - contentWidth:Math.floor(pp_contentWidth), - resized:resized - }; - }; - - /** - * Get the containers dimensions according to the item size - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - */ - function _getDimensions(width,height){ - width = parseFloat(width); - height = parseFloat(height); - - // Get the details height, to do so, I need to clone it since it's invisible - $pp_details = $pp_pic_holder.find('.pp_details'); - $pp_details.width(width); - detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom')); - - $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - detailsHeight += $pp_details.height(); - detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details - $pp_details.remove(); - - // Get the titles height, to do so, I need to clone it since it's invisible - $pp_title = $pp_pic_holder.find('.ppt'); - $pp_title.width(width); - titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom')); - $pp_title = $pp_title.clone().appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - titleHeight += $pp_title.height(); - $pp_title.remove(); - - // Get the container size, to resize the holder to the right dimensions - pp_contentHeight = height + detailsHeight; - pp_contentWidth = width; - pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height(); - pp_containerWidth = width; - } - - function _getFileType(itemSrc){ - if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) { - return 'youtube'; - }else if (itemSrc.match(/vimeo\.com/i)) { - return 'vimeo'; - }else if(itemSrc.match(/\b.mov\b/i)){ - return 'quicktime'; - }else if(itemSrc.match(/\b.swf\b/i)){ - return 'flash'; - }else if(itemSrc.match(/\biframe=true\b/i)){ - return 'iframe'; - }else if(itemSrc.match(/\bajax=true\b/i)){ - return 'ajax'; - }else if(itemSrc.match(/\bcustom=true\b/i)){ - return 'custom'; - }else if(itemSrc.substr(0,1) == '#'){ - return 'inline'; - }else{ - return 'image'; - }; - }; - - function _center_overlay(){ - if(doresize && typeof $pp_pic_holder != 'undefined') { - scroll_pos = _get_scroll(); - contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width(); - - projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2); - if(projectedTop < 0) projectedTop = 0; - - if(contentHeight > windowHeight) - return; - - $pp_pic_holder.css({ - 'top': projectedTop, - 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2) - }); - }; - }; - - function _get_scroll(){ - if (self.pageYOffset) { - return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}; - } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict - return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}; - } else if (document.body) {// all other Explorers - return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}; - }; - }; - - function _resize_overlay() { - windowHeight = $(window).height(), windowWidth = $(window).width(); - - if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth); - }; - - function _insert_gallery(){ - if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") { - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme - - itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth); - itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length; - totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1; - - // Hide the nav in the case there's no need for links - if(totalPage == 0){ - navWidth = 0; // No nav means no width! - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide(); - }else{ - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show(); - }; - - galleryWidth = itemsPerPage * itemWidth; - fullGalleryWidth = pp_images.length * itemWidth; - - // Set the proper width to the gallery items - $pp_gallery - .css('margin-left',-((galleryWidth/2) + (navWidth/2))) - .find('div:first').width(galleryWidth+5) - .find('ul').width(fullGalleryWidth) - .find('li.selected').removeClass('selected'); - - goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage; - - $.prettyPhoto.changeGalleryPage(goToPage); - - $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected'); - }else{ - $pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave'); - // $pp_gallery.hide(); - } - } - - function _build_overlay(caller){ - // Inject Social Tool markup into General markup - if(settings.social_tools) - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - - settings.markup = settings.markup.replace('{pp_social}',''); - - $('body').append(settings.markup); // Inject the markup - - $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors - - // Inject the inline gallery! - if(isSet && settings.overlay_gallery) { - currentGalleryPage = 0; - toInject = ""; - for (var i=0; i < pp_images.length; i++) { - if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){ - classname = 'default'; - img_src = ''; - }else{ - classname = ''; - img_src = pp_images[i]; - } - toInject += "
  • "; - }; - - toInject = settings.gallery_markup.replace(/{gallery}/g,toInject); - - $pp_pic_holder.find('#pp_full_res').after(toInject); - - $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors - - $pp_gallery.find('.pp_arrow_next').click(function(){ - $.prettyPhoto.changeGalleryPage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_gallery.find('.pp_arrow_previous').click(function(){ - $.prettyPhoto.changeGalleryPage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_content').hover( - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn(); - }, - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut(); - }); - - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - $pp_gallery_li.each(function(i){ - $(this) - .find('a') - .click(function(){ - $.prettyPhoto.changePage(i); - $.prettyPhoto.stopSlideshow(); - return false; - }); - }); - }; - - - // Inject the play/pause if it's a slideshow - if(settings.slideshow){ - $pp_pic_holder.find('.pp_nav').prepend('Play') - $pp_pic_holder.find('.pp_nav .pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - } - - $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme - - $pp_overlay - .css({ - 'opacity':0, - 'height':$(document).height(), - 'width':$(window).width() - }) - .bind('click',function(){ - if(!settings.modal) $.prettyPhoto.close(); - }); - - $('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; }); - - - if(settings.allow_expand) { - $('a.pp_expand').bind('click',function(e){ - // Expand the image - if($(this).hasClass('pp_expand')){ - $(this).removeClass('pp_expand').addClass('pp_contract'); - doresize = false; - }else{ - $(this).removeClass('pp_contract').addClass('pp_expand'); - doresize = true; - }; - - _hideContent(function(){ $.prettyPhoto.open(); }); - - return false; - }); - } - - $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){ - $.prettyPhoto.changePage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){ - $.prettyPhoto.changePage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - _center_overlay(); // Center it - }; - - if(!pp_alreadyInitialized && getHashtag()){ - pp_alreadyInitialized = true; - - // Grab the rel index to trigger the click on the correct element - hashIndex = getHashtag(); - hashRel = hashIndex; - hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1); - hashRel = hashRel.substring(0,hashRel.indexOf('/')); - - // Little timeout to make sure all the prettyPhoto initialize scripts has been run. - // Useful in the event the page contain several init scripts. - setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50); - } - - return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once - }; - - function getHashtag(){ - var url = location.href; - hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false; - - return hashtag; - }; - - function setHashtag(){ - if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API - location.hash = theRel + '/'+rel_index+'/'; - }; - - function clearHashtag(){ - if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto"; - } - - function getParam(name,url){ - name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); - var regexS = "[\\?&]"+name+"=([^&#]*)"; - var regex = new RegExp( regexS ); - var results = regex.exec( url ); - return ( results == null ) ? "" : results[1]; - } - -})(jQuery); - -var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times. diff --git a/mamweb/static/css/prettyPhoto.css b/mamweb/static/prettyPhoto/css/prettyPhoto.css similarity index 51% rename from mamweb/static/css/prettyPhoto.css rename to mamweb/static/prettyPhoto/css/prettyPhoto.css index a7e04122..ae43519b 100644 --- a/mamweb/static/css/prettyPhoto.css +++ b/mamweb/static/prettyPhoto/css/prettyPhoto.css @@ -15,23 +15,23 @@ div.pp_default .pp_bottom .pp_middle, div.pp_default .pp_bottom .pp_right { height: 13px; } - div.pp_default .pp_top .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ - div.pp_default .pp_top .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ - div.pp_default .pp_top .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ + div.pp_default .pp_top .pp_left { background: url(../images/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ + div.pp_default .pp_top .pp_middle { background: url(../images/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ + div.pp_default .pp_top .pp_right { background: url(../images/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ div.pp_default .pp_content .ppt { color: #f8f8f8; } - div.pp_default .pp_content_container .pp_left { background: url(../images/prettyPhoto/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } - div.pp_default .pp_content_container .pp_right { background: url(../images/prettyPhoto/default/sprite_y.png) top right repeat-y; padding-right: 13px; } + div.pp_default .pp_content_container .pp_left { background: url(../images/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } + div.pp_default .pp_content_container .pp_right { background: url(../images/default/sprite_y.png) top right repeat-y; padding-right: 13px; } div.pp_default .pp_content { background-color: #fff; } /* Content background */ - div.pp_default .pp_next:hover { background: url(../images/prettyPhoto/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.pp_default .pp_previous:hover { background: url(../images/prettyPhoto/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.pp_default .pp_expand { background: url(../images/prettyPhoto/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ - div.pp_default .pp_expand:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ - div.pp_default .pp_contract { background: url(../images/prettyPhoto/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ - div.pp_default .pp_contract:hover { background: url(../images/prettyPhoto/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ - div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/prettyPhoto/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ + div.pp_default .pp_next:hover { background: url(../images/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.pp_default .pp_previous:hover { background: url(../images/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.pp_default .pp_expand { background: url(../images/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ + div.pp_default .pp_expand:hover { background: url(../images/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ + div.pp_default .pp_contract { background: url(../images/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ + div.pp_default .pp_contract:hover { background: url(../images/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ + div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ div.pp_default #pp_full_res .pp_inline { color: #000; } - div.pp_default .pp_gallery ul li a { background: url(../images/prettyPhoto/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } + div.pp_default .pp_gallery ul li a { background: url(../images/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } div.pp_default .pp_gallery ul li a:hover, div.pp_default .pp_gallery ul li.selected a { border-color: #fff; } div.pp_default .pp_social { margin-top: 7px; } @@ -39,11 +39,11 @@ div.pp_default .pp_gallery a.pp_arrow_previous, div.pp_default .pp_gallery a.pp_arrow_next { position: static; left: auto; } div.pp_default .pp_nav .pp_play, - div.pp_default .pp_nav .pp_pause { background: url(../images/prettyPhoto/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } + div.pp_default .pp_nav .pp_pause { background: url(../images/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } div.pp_default .pp_nav .pp_pause { background-position: -51px -29px; } div.pp_default .pp_details { position: relative; } div.pp_default a.pp_arrow_previous, - div.pp_default a.pp_arrow_next { background: url(../images/prettyPhoto/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } + div.pp_default a.pp_arrow_next { background: url(../images/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } div.pp_default a.pp_arrow_next { left: 52px; background-position: -82px -3px; } /* The next arrow in the bottom nav */ div.pp_default .pp_content_container .pp_details { margin-top: 5px; } div.pp_default .pp_nav { clear: none; height: 30px; width: 110px; position: relative; } @@ -53,11 +53,11 @@ div.pp_default .pp_description{ font-size: 11px; font-weight: bold; line-height: 14px; margin: 5px 50px 5px 0; } - div.pp_default .pp_bottom .pp_left { background: url(../images/prettyPhoto/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ - div.pp_default .pp_bottom .pp_middle { background: url(../images/prettyPhoto/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ - div.pp_default .pp_bottom .pp_right { background: url(../images/prettyPhoto/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ + div.pp_default .pp_bottom .pp_left { background: url(../images/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ + div.pp_default .pp_bottom .pp_middle { background: url(../images/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ + div.pp_default .pp_bottom .pp_right { background: url(../images/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ - div.pp_default .pp_loaderIcon { background: url(../images/prettyPhoto/default/loader.gif) center center no-repeat; } /* Loader icon */ + div.pp_default .pp_loaderIcon { background: url(../images/default/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- @@ -65,58 +65,58 @@ ----------------------------------- */ - div.light_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ + div.light_rounded .pp_top .pp_left { background: url(../images/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */ - div.light_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ + div.light_rounded .pp_top .pp_right { background: url(../images/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ div.light_rounded .pp_content .ppt { color: #000; } div.light_rounded .pp_content_container .pp_left, div.light_rounded .pp_content_container .pp_right { background: #fff; } div.light_rounded .pp_content { background-color: #fff; } /* Content background */ - div.light_rounded .pp_next:hover { background: url(../images/prettyPhoto/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_rounded .pp_previous:hover { background: url(../images/prettyPhoto/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_rounded .pp_expand { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_rounded .pp_expand:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_rounded .pp_contract { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_rounded .pp_contract:hover { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.light_rounded .pp_next:hover { background: url(../images/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.light_rounded .pp_previous:hover { background: url(../images/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.light_rounded .pp_expand { background: url(../images/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.light_rounded .pp_expand:hover { background: url(../images/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.light_rounded .pp_contract { background: url(../images/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.light_rounded .pp_contract:hover { background: url(../images/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.light_rounded .pp_details { position: relative; } div.light_rounded .pp_description { margin-right: 85px; } div.light_rounded #pp_full_res .pp_inline { color: #000; } div.light_rounded .pp_gallery a.pp_arrow_previous, div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.light_rounded .pp_nav .pp_play { background: url(../images/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.light_rounded .pp_nav .pp_pause { background: url(../images/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.light_rounded .pp_arrow_previous { background: url(../images/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_rounded .pp_arrow_next { background: url(../images/prettyPhoto/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.light_rounded .pp_arrow_next { background: url(../images/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.light_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ + div.light_rounded .pp_bottom .pp_left { background: url(../images/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */ - div.light_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ + div.light_rounded .pp_bottom .pp_right { background: url(../images/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - div.light_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ + div.light_rounded .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- Dark Rounded Theme ----------------------------------- */ - div.dark_rounded .pp_top .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.dark_rounded .pp_top .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ - div.dark_rounded .pp_top .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ + div.dark_rounded .pp_top .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ + div.dark_rounded .pp_top .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ + div.dark_rounded .pp_top .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - div.dark_rounded .pp_content_container .pp_left { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ - div.dark_rounded .pp_content_container .pp_right { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ - div.dark_rounded .pp_content { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ - div.dark_rounded .pp_next:hover { background: url(../images/prettyPhoto/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_rounded .pp_previous:hover { background: url(../images/prettyPhoto/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.dark_rounded .pp_expand { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_rounded .pp_expand:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_rounded .pp_contract { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_rounded .pp_contract:hover { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.dark_rounded .pp_content_container .pp_left { background: url(../images/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ + div.dark_rounded .pp_content_container .pp_right { background: url(../images/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ + div.dark_rounded .pp_content { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ + div.dark_rounded .pp_next:hover { background: url(../images/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.dark_rounded .pp_previous:hover { background: url(../images/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.dark_rounded .pp_expand { background: url(../images/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.dark_rounded .pp_expand:hover { background: url(../images/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.dark_rounded .pp_contract { background: url(../images/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.dark_rounded .pp_contract:hover { background: url(../images/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.dark_rounded .pp_details { position: relative; } div.dark_rounded .pp_description { margin-right: 85px; } div.dark_rounded .currentTextHolder { color: #c4c4c4; } @@ -124,19 +124,19 @@ div.dark_rounded #pp_full_res .pp_inline { color: #fff; } div.dark_rounded .pp_gallery a.pp_arrow_previous, div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_rounded .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.dark_rounded .pp_nav .pp_play { background: url(../images/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.dark_rounded .pp_nav .pp_pause { background: url(../images/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_arrow_previous { background: url(../images/prettyPhoto/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.dark_rounded .pp_arrow_previous { background: url(../images/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_rounded .pp_arrow_next { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.dark_rounded .pp_arrow_next { background: url(../images/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.dark_rounded .pp_bottom .pp_left { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.dark_rounded .pp_bottom .pp_middle { background: url(../images/prettyPhoto/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ - div.dark_rounded .pp_bottom .pp_right { background: url(../images/prettyPhoto/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ + div.dark_rounded .pp_bottom .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ + div.dark_rounded .pp_bottom .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ + div.dark_rounded .pp_bottom .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - div.dark_rounded .pp_loaderIcon { background: url(../images/prettyPhoto/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ + div.dark_rounded .pp_loaderIcon { background: url(../images/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- @@ -150,29 +150,29 @@ div.dark_square .currentTextHolder { color: #c4c4c4; } div.dark_square .pp_description { color: #fff; } - div.dark_square .pp_loaderIcon { background: url(../images/prettyPhoto/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ + div.dark_square .pp_loaderIcon { background: url(../images/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ - div.dark_square .pp_expand { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_square .pp_expand:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_square .pp_contract { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_square .pp_contract:hover { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.dark_square .pp_expand { background: url(../images/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.dark_square .pp_expand:hover { background: url(../images/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.dark_square .pp_contract { background: url(../images/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.dark_square .pp_contract:hover { background: url(../images/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.dark_square .pp_details { position: relative; } div.dark_square .pp_description { margin: 0 85px 0 0; } div.dark_square #pp_full_res .pp_inline { color: #fff; } div.dark_square .pp_gallery a.pp_arrow_previous, div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } div.dark_square .pp_nav { clear: none; } - div.dark_square .pp_nav .pp_play { background: url(../images/prettyPhoto/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.dark_square .pp_nav .pp_play { background: url(../images/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.dark_square .pp_nav .pp_pause { background: url(../images/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_arrow_previous { background: url(../images/prettyPhoto/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.dark_square .pp_arrow_previous { background: url(../images/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_square .pp_arrow_next { background: url(../images/prettyPhoto/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.dark_square .pp_arrow_next { background: url(../images/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.dark_square .pp_next:hover { background: url(../images/prettyPhoto/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_square .pp_previous:hover { background: url(../images/prettyPhoto/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.dark_square .pp_next:hover { background: url(../images/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.dark_square .pp_previous:hover { background: url(../images/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ /* ---------------------------------- @@ -185,67 +185,67 @@ div.light_square .pp_content { background: #fff; } div.light_square .pp_content .ppt { color: #000; } - div.light_square .pp_expand { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_square .pp_expand:hover { background: url(../images/prettyPhoto/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_square .pp_contract { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_square .pp_contract:hover { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/prettyPhoto/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.light_square .pp_expand { background: url(../images/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.light_square .pp_expand:hover { background: url(../images/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.light_square .pp_contract { background: url(../images/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.light_square .pp_contract:hover { background: url(../images/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.light_square .pp_details { position: relative; } div.light_square .pp_description { margin-right: 85px; } div.light_square #pp_full_res .pp_inline { color: #000; } div.light_square .pp_gallery a.pp_arrow_previous, div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_square .pp_nav .pp_play { background: url(../images/prettyPhoto/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_nav .pp_pause { background: url(../images/prettyPhoto/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } + div.light_square .pp_nav .pp_play { background: url(../images/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } + div.light_square .pp_nav .pp_pause { background: url(../images/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_arrow_previous { background: url(../images/prettyPhoto/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ + div.light_square .pp_arrow_previous { background: url(../images/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_square .pp_arrow_next { background: url(../images/prettyPhoto/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ + div.light_square .pp_arrow_next { background: url(../images/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - div.light_square .pp_next:hover { background: url(../images/prettyPhoto/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_square .pp_previous:hover { background: url(../images/prettyPhoto/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.light_square .pp_next:hover { background: url(../images/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.light_square .pp_previous:hover { background: url(../images/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_square .pp_loaderIcon { background: url(../images/prettyPhoto/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ + div.light_square .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ /* ---------------------------------- Facebook style Theme ----------------------------------- */ - div.facebook .pp_top .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.facebook .pp_top .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ - div.facebook .pp_top .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ + div.facebook .pp_top .pp_left { background: url(../images/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ + div.facebook .pp_top .pp_middle { background: url(../images/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ + div.facebook .pp_top .pp_right { background: url(../images/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ div.facebook .pp_content .ppt { color: #000; } - div.facebook .pp_content_container .pp_left { background: url(../images/prettyPhoto/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ - div.facebook .pp_content_container .pp_right { background: url(../images/prettyPhoto/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ + div.facebook .pp_content_container .pp_left { background: url(../images/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ + div.facebook .pp_content_container .pp_right { background: url(../images/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ div.facebook .pp_content { background: #fff; } /* Content background */ - div.facebook .pp_expand { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.facebook .pp_expand:hover { background: url(../images/prettyPhoto/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.facebook .pp_contract { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.facebook .pp_contract:hover { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/prettyPhoto/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ + div.facebook .pp_expand { background: url(../images/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ + div.facebook .pp_expand:hover { background: url(../images/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ + div.facebook .pp_contract { background: url(../images/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ + div.facebook .pp_contract:hover { background: url(../images/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ + div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ div.facebook .pp_details { position: relative; } div.facebook .pp_description { margin: 0 37px 0 0; } div.facebook #pp_full_res .pp_inline { color: #000; } - div.facebook .pp_loaderIcon { background: url(../images/prettyPhoto/facebook/loader.gif) center center no-repeat; } /* Loader icon */ + div.facebook .pp_loaderIcon { background: url(../images/facebook/loader.gif) center center no-repeat; } /* Loader icon */ - div.facebook .pp_arrow_previous { background: url(../images/prettyPhoto/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ + div.facebook .pp_arrow_previous { background: url(../images/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; } - div.facebook .pp_arrow_next { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ + div.facebook .pp_arrow_next { background: url(../images/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; } div.facebook .pp_nav { margin-top: 0; } div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; } - div.facebook .pp_nav .pp_play { background: url(../images/prettyPhoto/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_nav .pp_pause { background: url(../images/prettyPhoto/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } + div.facebook .pp_nav .pp_play { background: url(../images/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } + div.facebook .pp_nav .pp_pause { background: url(../images/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_next:hover { background: url(../images/prettyPhoto/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.facebook .pp_previous:hover { background: url(../images/prettyPhoto/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ + div.facebook .pp_next:hover { background: url(../images/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ + div.facebook .pp_previous:hover { background: url(../images/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.facebook .pp_bottom .pp_left { background: url(../images/prettyPhoto/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.facebook .pp_bottom .pp_middle { background: url(../images/prettyPhoto/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ - div.facebook .pp_bottom .pp_right { background: url(../images/prettyPhoto/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ + div.facebook .pp_bottom .pp_left { background: url(../images/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ + div.facebook .pp_bottom .pp_middle { background: url(../images/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ + div.facebook .pp_bottom .pp_right { background: url(../images/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ /* ------------------------------------------------------------------------ @@ -413,7 +413,7 @@ } .pp_gallery li.default a { - background: url(../images/prettyPhoto/facebook/default_thumbnail.gif) 0 0 no-repeat; + background: url(../images/facebook/default_thumbnail.gif) 0 0 no-repeat; display: block; height: 33px; width: 50px; @@ -427,7 +427,7 @@ } a.pp_next { - background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; + background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; display: block; float: right; height: 100%; @@ -436,7 +436,7 @@ } a.pp_previous { - background: url(../images/prettyPhoto/light_rounded/btnNext.png) 10000px 10000px no-repeat; + background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; display: block; float: left; height: 100%; @@ -522,4 +522,4 @@ font-size: 17px; margin: 0 0 5px 15px; z-index: 9999; - } \ No newline at end of file + } diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/btnNext.png rename to mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/btnPrevious.png rename to mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/contentPattern.png rename to mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/loader.gif b/mamweb/static/prettyPhoto/images/dark_rounded/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/loader.gif rename to mamweb/static/prettyPhoto/images/dark_rounded/loader.gif diff --git a/mamweb/static/images/prettyPhoto/dark_rounded/sprite.png b/mamweb/static/prettyPhoto/images/dark_rounded/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_rounded/sprite.png rename to mamweb/static/prettyPhoto/images/dark_rounded/sprite.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/btnNext.png b/mamweb/static/prettyPhoto/images/dark_square/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/btnNext.png rename to mamweb/static/prettyPhoto/images/dark_square/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/btnPrevious.png rename to mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_square/contentPattern.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/contentPattern.png rename to mamweb/static/prettyPhoto/images/dark_square/contentPattern.png diff --git a/mamweb/static/images/prettyPhoto/dark_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/dark_square/loader.gif b/mamweb/static/prettyPhoto/images/dark_square/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/loader.gif rename to mamweb/static/prettyPhoto/images/dark_square/loader.gif diff --git a/mamweb/static/images/prettyPhoto/dark_square/sprite.png b/mamweb/static/prettyPhoto/images/dark_square/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/dark_square/sprite.png rename to mamweb/static/prettyPhoto/images/dark_square/sprite.png diff --git a/mamweb/static/images/prettyPhoto/default/default_thumb.png b/mamweb/static/prettyPhoto/images/default/default_thumb.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/default_thumb.png rename to mamweb/static/prettyPhoto/images/default/default_thumb.png diff --git a/mamweb/static/images/prettyPhoto/default/loader.gif b/mamweb/static/prettyPhoto/images/default/loader.gif similarity index 100% rename from mamweb/static/images/prettyPhoto/default/loader.gif rename to mamweb/static/prettyPhoto/images/default/loader.gif diff --git a/mamweb/static/images/prettyPhoto/default/sprite.png b/mamweb/static/prettyPhoto/images/default/sprite.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite.png rename to mamweb/static/prettyPhoto/images/default/sprite.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_next.png b/mamweb/static/prettyPhoto/images/default/sprite_next.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_next.png rename to mamweb/static/prettyPhoto/images/default/sprite_next.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_prev.png b/mamweb/static/prettyPhoto/images/default/sprite_prev.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_prev.png rename to mamweb/static/prettyPhoto/images/default/sprite_prev.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_x.png b/mamweb/static/prettyPhoto/images/default/sprite_x.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_x.png rename to mamweb/static/prettyPhoto/images/default/sprite_x.png diff --git a/mamweb/static/images/prettyPhoto/default/sprite_y.png b/mamweb/static/prettyPhoto/images/default/sprite_y.png similarity index 100% rename from mamweb/static/images/prettyPhoto/default/sprite_y.png rename to mamweb/static/prettyPhoto/images/default/sprite_y.png diff --git a/mamweb/static/images/prettyPhoto/facebook/btnNext.png b/mamweb/static/prettyPhoto/images/facebook/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/btnNext.png rename to mamweb/static/prettyPhoto/images/facebook/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/facebook/btnPrevious.png b/mamweb/static/prettyPhoto/images/facebook/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/btnPrevious.png rename to mamweb/static/prettyPhoto/images/facebook/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternBottom.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternBottom.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternLeft.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternLeft.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternRight.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternRight.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png diff --git a/mamweb/static/images/prettyPhoto/facebook/contentPatternTop.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/contentPatternTop.png rename to mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png diff --git a/mamweb/static/images/prettyPhoto/facebook/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/facebook/loader.gif b/mamweb/static/prettyPhoto/images/facebook/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/loader.gif rename to mamweb/static/prettyPhoto/images/facebook/loader.gif diff --git a/mamweb/static/images/prettyPhoto/facebook/sprite.png b/mamweb/static/prettyPhoto/images/facebook/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/facebook/sprite.png rename to mamweb/static/prettyPhoto/images/facebook/sprite.png diff --git a/mamweb/static/images/prettyPhoto/light_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/light_rounded/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/btnNext.png rename to mamweb/static/prettyPhoto/images/light_rounded/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/light_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/btnPrevious.png rename to mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/light_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/light_rounded/loader.gif b/mamweb/static/prettyPhoto/images/light_rounded/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/loader.gif rename to mamweb/static/prettyPhoto/images/light_rounded/loader.gif diff --git a/mamweb/static/images/prettyPhoto/light_rounded/sprite.png b/mamweb/static/prettyPhoto/images/light_rounded/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_rounded/sprite.png rename to mamweb/static/prettyPhoto/images/light_rounded/sprite.png diff --git a/mamweb/static/images/prettyPhoto/light_square/btnNext.png b/mamweb/static/prettyPhoto/images/light_square/btnNext.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/btnNext.png rename to mamweb/static/prettyPhoto/images/light_square/btnNext.png diff --git a/mamweb/static/images/prettyPhoto/light_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_square/btnPrevious.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/btnPrevious.png rename to mamweb/static/prettyPhoto/images/light_square/btnPrevious.png diff --git a/mamweb/static/images/prettyPhoto/light_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/default_thumbnail.gif rename to mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif diff --git a/mamweb/static/images/prettyPhoto/light_square/loader.gif b/mamweb/static/prettyPhoto/images/light_square/loader.gif old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/loader.gif rename to mamweb/static/prettyPhoto/images/light_square/loader.gif diff --git a/mamweb/static/images/prettyPhoto/light_square/sprite.png b/mamweb/static/prettyPhoto/images/light_square/sprite.png old mode 100755 new mode 100644 similarity index 100% rename from mamweb/static/images/prettyPhoto/light_square/sprite.png rename to mamweb/static/prettyPhoto/images/light_square/sprite.png diff --git a/mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery.prettyPhoto.js b/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js similarity index 100% rename from mamweb/static/images/prettyPhoto_uncompressed_3.1.5/js/jquery.prettyPhoto.js rename to mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index c55ca7f2..da6f67e1 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -11,7 +11,7 @@ - + @@ -120,7 +120,7 @@ - + diff --git a/vue_frontend/src/components/TreeNodeRoot.vue b/vue_frontend/src/components/TreeNodeRoot.vue index 674d0fda..408efce5 100644 --- a/vue_frontend/src/components/TreeNodeRoot.vue +++ b/vue_frontend/src/components/TreeNodeRoot.vue @@ -73,5 +73,9 @@ export default { From c731af9ccd7d414fa66cd85e06461fbebd960ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 14 Feb 2024 08:28:30 +0100 Subject: [PATCH 329/515] =?UTF-8?q?P=C5=99esun=20css=20galerie=20do=20gale?= =?UTF-8?q?rie?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {mamweb => galerie}/static/css/galerie.css | 19 +++++++++++++++++++ galerie/templates/galerie/Galerie.html | 2 +- galerie/templates/galerie/GalerieNahled.html | 2 +- galerie/templates/galerie/GalerieNew.html | 2 +- galerie/templates/galerie/base.html | 6 ++++++ mamweb/static/css/modules.css | 18 ------------------ mamweb/templates/base.html | 1 - vue_frontend/src/components/TreeNodeRoot.vue | 1 - 8 files changed, 28 insertions(+), 23 deletions(-) rename {mamweb => galerie}/static/css/galerie.css (89%) create mode 100644 galerie/templates/galerie/base.html diff --git a/mamweb/static/css/galerie.css b/galerie/static/css/galerie.css similarity index 89% rename from mamweb/static/css/galerie.css rename to galerie/static/css/galerie.css index 6ee1a676..46df8552 100644 --- a/mamweb/static/css/galerie.css +++ b/galerie/static/css/galerie.css @@ -165,3 +165,22 @@ margin-top: -3em; /* #FIXME */ } } + + +/* plus a minus tlacitka */ +.mam-org-only-galerie { + background: var(--orgovska-svetla-fialova); + padding: 10px; + margin: 10px 10px 10px -20px; + border: #333 2px dashed; + float: left; +} + +.mam-org-only-galerie a{ + padding: 3px 5px; + margin: 5px; + border-radius: 20px; + background-color: var(--tmava-oranzova);; + color: var(--barva-pozadi); + float: left; +} diff --git a/galerie/templates/galerie/Galerie.html b/galerie/templates/galerie/Galerie.html index aadc969e..ff8ebfe3 100644 --- a/galerie/templates/galerie/Galerie.html +++ b/galerie/templates/galerie/Galerie.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "galerie/base.html" %} {% block nadpis1a %} diff --git a/galerie/templates/galerie/GalerieNahled.html b/galerie/templates/galerie/GalerieNahled.html index ec0d5f67..87794680 100644 --- a/galerie/templates/galerie/GalerieNahled.html +++ b/galerie/templates/galerie/GalerieNahled.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "galerie/base.html" %} {% block nadpis1a %} Galerie {{galerie.nazev}} diff --git a/galerie/templates/galerie/GalerieNew.html b/galerie/templates/galerie/GalerieNew.html index 1b549232..d974224c 100644 --- a/galerie/templates/galerie/GalerieNew.html +++ b/galerie/templates/galerie/GalerieNew.html @@ -1,4 +1,4 @@ -{% extends "base.html" %} +{% extends "galerie/base.html" %} {% block content %} diff --git a/galerie/templates/galerie/base.html b/galerie/templates/galerie/base.html new file mode 100644 index 00000000..032f16b2 --- /dev/null +++ b/galerie/templates/galerie/base.html @@ -0,0 +1,6 @@ +{% extends "base.html" %} +{% load static %} + +{% block custom_css %} + +{% endblock %} diff --git a/mamweb/static/css/modules.css b/mamweb/static/css/modules.css index 15fb9a5e..5302b673 100644 --- a/mamweb/static/css/modules.css +++ b/mamweb/static/css/modules.css @@ -19,24 +19,6 @@ li.mam-org-only { padding: 3px 0px; margin: -2px 0px; } - -/* plus a minus tlacitka */ -.mam-org-only-galerie { - background: var(--orgovska-svetla-fialova); - padding: 10px; - margin: 10px 10px 10px -20px; - border: #333 2px dashed; - float: left; -} - -.mam-org-only-galerie a{ - padding: 3px 5px; - margin: 5px; - border-radius: 20px; - background-color: var(--tmava-oranzova);; - color: var(--barva-pozadi); - float: left; -} /**********************************/ diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 5a0b55c6..027f296f 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -14,7 +14,6 @@ - diff --git a/vue_frontend/src/components/TreeNodeRoot.vue b/vue_frontend/src/components/TreeNodeRoot.vue index 408efce5..7bb107ca 100644 --- a/vue_frontend/src/components/TreeNodeRoot.vue +++ b/vue_frontend/src/components/TreeNodeRoot.vue @@ -75,7 +75,6 @@ export default { From eec9abb9c1b49a07dac6332256ce4f15ce6d8001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 14 Feb 2024 08:32:36 +0100 Subject: [PATCH 330/515] =?UTF-8?q?Dosp=C4=9Bl=20jsem=20k=20n=C3=A1zoru,?= =?UTF-8?q?=20=C5=BEe=20PrettyPhoto=20se=20na=20webu=20nepou=C5=BE=C3=ADv?= =?UTF-8?q?=C3=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/css.rst | 3 +- mamweb/static/prettyPhoto/css/prettyPhoto.css | 525 ---------- .../images/dark_rounded/btnNext.png | Bin 1411 -> 0 bytes .../images/dark_rounded/btnPrevious.png | Bin 1442 -> 0 bytes .../images/dark_rounded/contentPattern.png | Bin 130 -> 0 bytes .../images/dark_rounded/default_thumbnail.gif | Bin 227 -> 0 bytes .../images/dark_rounded/loader.gif | Bin 2545 -> 0 bytes .../images/dark_rounded/sprite.png | Bin 4076 -> 0 bytes .../images/dark_square/btnNext.png | Bin 1411 -> 0 bytes .../images/dark_square/btnPrevious.png | Bin 1442 -> 0 bytes .../images/dark_square/contentPattern.png | Bin 121 -> 0 bytes .../images/dark_square/default_thumbnail.gif | Bin 227 -> 0 bytes .../prettyPhoto/images/dark_square/loader.gif | Bin 2545 -> 0 bytes .../prettyPhoto/images/dark_square/sprite.png | Bin 3507 -> 0 bytes .../images/default/default_thumb.png | Bin 1537 -> 0 bytes .../prettyPhoto/images/default/loader.gif | Bin 6331 -> 0 bytes .../prettyPhoto/images/default/sprite.png | Bin 6682 -> 0 bytes .../images/default/sprite_next.png | Bin 1358 -> 0 bytes .../images/default/sprite_prev.png | Bin 1376 -> 0 bytes .../prettyPhoto/images/default/sprite_x.png | Bin 1097 -> 0 bytes .../prettyPhoto/images/default/sprite_y.png | Bin 1162 -> 0 bytes .../prettyPhoto/images/facebook/btnNext.png | Bin 845 -> 0 bytes .../images/facebook/btnPrevious.png | Bin 828 -> 0 bytes .../images/facebook/contentPatternBottom.png | Bin 142 -> 0 bytes .../images/facebook/contentPatternLeft.png | Bin 137 -> 0 bytes .../images/facebook/contentPatternRight.png | Bin 136 -> 0 bytes .../images/facebook/contentPatternTop.png | Bin 142 -> 0 bytes .../images/facebook/default_thumbnail.gif | Bin 227 -> 0 bytes .../prettyPhoto/images/facebook/loader.gif | Bin 2545 -> 0 bytes .../prettyPhoto/images/facebook/sprite.png | Bin 4227 -> 0 bytes .../images/light_rounded/btnNext.png | Bin 1411 -> 0 bytes .../images/light_rounded/btnPrevious.png | Bin 1442 -> 0 bytes .../light_rounded/default_thumbnail.gif | Bin 227 -> 0 bytes .../images/light_rounded/loader.gif | Bin 2545 -> 0 bytes .../images/light_rounded/sprite.png | Bin 4099 -> 0 bytes .../images/light_square/btnNext.png | Bin 1411 -> 0 bytes .../images/light_square/btnPrevious.png | Bin 1442 -> 0 bytes .../images/light_square/default_thumbnail.gif | Bin 227 -> 0 bytes .../images/light_square/loader.gif | Bin 2545 -> 0 bytes .../images/light_square/sprite.png | Bin 3507 -> 0 bytes .../prettyPhoto/js/jquery.prettyPhoto.js | 911 ------------------ mamweb/templates/base.html | 11 - 42 files changed, 1 insertion(+), 1449 deletions(-) delete mode 100644 mamweb/static/prettyPhoto/css/prettyPhoto.css delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_rounded/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/contentPattern.png delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/dark_square/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/default/default_thumb.png delete mode 100644 mamweb/static/prettyPhoto/images/default/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_next.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_prev.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_x.png delete mode 100644 mamweb/static/prettyPhoto/images/default/sprite_y.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternBottom.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternLeft.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/contentPatternTop.png delete mode 100644 mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/facebook/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/facebook/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_rounded/sprite.png delete mode 100644 mamweb/static/prettyPhoto/images/light_square/btnNext.png delete mode 100644 mamweb/static/prettyPhoto/images/light_square/btnPrevious.png delete mode 100644 mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_square/loader.gif delete mode 100644 mamweb/static/prettyPhoto/images/light_square/sprite.png delete mode 100644 mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js diff --git a/docs/css.rst b/docs/css.rst index 3efe266f..a6cf96b1 100644 --- a/docs/css.rst +++ b/docs/css.rst @@ -11,10 +11,9 @@ CSSka do Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických stylů). Stejně tak **korekturovátko** má styly separátně. -Dále web (asi) používá dva externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): +Dále web (asi) používá externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): - bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap přidává ``font-size:14px``, bez čehož se web úplně rozpadne) -- pretty photo: ??? (něco s obrázky) Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. diff --git a/mamweb/static/prettyPhoto/css/prettyPhoto.css b/mamweb/static/prettyPhoto/css/prettyPhoto.css deleted file mode 100644 index ae43519b..00000000 --- a/mamweb/static/prettyPhoto/css/prettyPhoto.css +++ /dev/null @@ -1,525 +0,0 @@ -/* ------------------------------------------------------------------------ - This you can edit. -------------------------------------------------------------------------- */ - - /* ---------------------------------- - Default Theme - ----------------------------------- */ - - div.pp_default .pp_top, - div.pp_default .pp_top .pp_middle, - div.pp_default .pp_top .pp_left, - div.pp_default .pp_top .pp_right, - div.pp_default .pp_bottom, - div.pp_default .pp_bottom .pp_left, - div.pp_default .pp_bottom .pp_middle, - div.pp_default .pp_bottom .pp_right { height: 13px; } - - div.pp_default .pp_top .pp_left { background: url(../images/default/sprite.png) -78px -93px no-repeat; } /* Top left corner */ - div.pp_default .pp_top .pp_middle { background: url(../images/default/sprite_x.png) top left repeat-x; } /* Top pattern/color */ - div.pp_default .pp_top .pp_right { background: url(../images/default/sprite.png) -112px -93px no-repeat; } /* Top right corner */ - - div.pp_default .pp_content .ppt { color: #f8f8f8; } - div.pp_default .pp_content_container .pp_left { background: url(../images/default/sprite_y.png) -7px 0 repeat-y; padding-left: 13px; } - div.pp_default .pp_content_container .pp_right { background: url(../images/default/sprite_y.png) top right repeat-y; padding-right: 13px; } - div.pp_default .pp_content { background-color: #fff; } /* Content background */ - div.pp_default .pp_next:hover { background: url(../images/default/sprite_next.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.pp_default .pp_previous:hover { background: url(../images/default/sprite_prev.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.pp_default .pp_expand { background: url(../images/default/sprite.png) 0 -29px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Expand button */ - div.pp_default .pp_expand:hover { background: url(../images/default/sprite.png) 0 -56px no-repeat; cursor: pointer; } /* Expand button hover */ - div.pp_default .pp_contract { background: url(../images/default/sprite.png) 0 -84px no-repeat; cursor: pointer; width: 28px; height: 28px; } /* Contract button */ - div.pp_default .pp_contract:hover { background: url(../images/default/sprite.png) 0 -113px no-repeat; cursor: pointer; } /* Contract button hover */ - div.pp_default .pp_close { width: 30px; height: 30px; background: url(../images/default/sprite.png) 2px 1px no-repeat; cursor: pointer; } /* Close button */ - div.pp_default #pp_full_res .pp_inline { color: #000; } - div.pp_default .pp_gallery ul li a { background: url(../images/default/default_thumb.png) center center #f8f8f8; border:1px solid #aaa; } - div.pp_default .pp_gallery ul li a:hover, - div.pp_default .pp_gallery ul li.selected a { border-color: #fff; } - div.pp_default .pp_social { margin-top: 7px; } - - div.pp_default .pp_gallery a.pp_arrow_previous, - div.pp_default .pp_gallery a.pp_arrow_next { position: static; left: auto; } - div.pp_default .pp_nav .pp_play, - div.pp_default .pp_nav .pp_pause { background: url(../images/default/sprite.png) -51px 1px no-repeat; height:30px; width:30px; } - div.pp_default .pp_nav .pp_pause { background-position: -51px -29px; } - div.pp_default .pp_details { position: relative; } - div.pp_default a.pp_arrow_previous, - div.pp_default a.pp_arrow_next { background: url(../images/default/sprite.png) -31px -3px no-repeat; height: 20px; margin: 4px 0 0 0; width: 20px; } - div.pp_default a.pp_arrow_next { left: 52px; background-position: -82px -3px; } /* The next arrow in the bottom nav */ - div.pp_default .pp_content_container .pp_details { margin-top: 5px; } - div.pp_default .pp_nav { clear: none; height: 30px; width: 110px; position: relative; } - div.pp_default .pp_nav .currentTextHolder{ font-family: Georgia; font-style: italic; color:#999; font-size: 11px; left: 75px; line-height: 25px; margin: 0; padding: 0 0 0 10px; position: absolute; top: 2px; } - - div.pp_default .pp_close:hover, div.pp_default .pp_nav .pp_play:hover, div.pp_default .pp_nav .pp_pause:hover, div.pp_default .pp_arrow_next:hover, div.pp_default .pp_arrow_previous:hover { opacity:0.7; } - - div.pp_default .pp_description{ font-size: 11px; font-weight: bold; line-height: 14px; margin: 5px 50px 5px 0; } - - div.pp_default .pp_bottom .pp_left { background: url(../images/default/sprite.png) -78px -127px no-repeat; } /* Bottom left corner */ - div.pp_default .pp_bottom .pp_middle { background: url(../images/default/sprite_x.png) bottom left repeat-x; } /* Bottom pattern/color */ - div.pp_default .pp_bottom .pp_right { background: url(../images/default/sprite.png) -112px -127px no-repeat; } /* Bottom right corner */ - - div.pp_default .pp_loaderIcon { background: url(../images/default/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Light Rounded Theme - ----------------------------------- */ - - - div.light_rounded .pp_top .pp_left { background: url(../images/light_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.light_rounded .pp_top .pp_middle { background: #fff; } /* Top pattern/color */ - div.light_rounded .pp_top .pp_right { background: url(../images/light_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.light_rounded .pp_content .ppt { color: #000; } - div.light_rounded .pp_content_container .pp_left, - div.light_rounded .pp_content_container .pp_right { background: #fff; } - div.light_rounded .pp_content { background-color: #fff; } /* Content background */ - div.light_rounded .pp_next:hover { background: url(../images/light_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_rounded .pp_previous:hover { background: url(../images/light_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.light_rounded .pp_expand { background: url(../images/light_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_rounded .pp_expand:hover { background: url(../images/light_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_rounded .pp_contract { background: url(../images/light_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_rounded .pp_contract:hover { background: url(../images/light_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_rounded .pp_close { width: 75px; height: 22px; background: url(../images/light_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.light_rounded .pp_details { position: relative; } - div.light_rounded .pp_description { margin-right: 85px; } - div.light_rounded #pp_full_res .pp_inline { color: #000; } - div.light_rounded .pp_gallery a.pp_arrow_previous, - div.light_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_rounded .pp_nav .pp_play { background: url(../images/light_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_rounded .pp_nav .pp_pause { background: url(../images/light_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.light_rounded .pp_arrow_previous { background: url(../images/light_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.light_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_rounded .pp_arrow_next { background: url(../images/light_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.light_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.light_rounded .pp_bottom .pp_left { background: url(../images/light_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.light_rounded .pp_bottom .pp_middle { background: #fff; } /* Bottom pattern/color */ - div.light_rounded .pp_bottom .pp_right { background: url(../images/light_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - div.light_rounded .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - /* ---------------------------------- - Dark Rounded Theme - ----------------------------------- */ - - div.dark_rounded .pp_top .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.dark_rounded .pp_top .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Top pattern/color */ - div.dark_rounded .pp_top .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.dark_rounded .pp_content_container .pp_left { background: url(../images/dark_rounded/contentPattern.png) top left repeat-y; } /* Left Content background */ - div.dark_rounded .pp_content_container .pp_right { background: url(../images/dark_rounded/contentPattern.png) top right repeat-y; } /* Right Content background */ - div.dark_rounded .pp_content { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Content background */ - div.dark_rounded .pp_next:hover { background: url(../images/dark_rounded/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_rounded .pp_previous:hover { background: url(../images/dark_rounded/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - div.dark_rounded .pp_expand { background: url(../images/dark_rounded/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_rounded .pp_expand:hover { background: url(../images/dark_rounded/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_rounded .pp_contract { background: url(../images/dark_rounded/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_rounded .pp_contract:hover { background: url(../images/dark_rounded/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_rounded .pp_close { width: 75px; height: 22px; background: url(../images/dark_rounded/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.dark_rounded .pp_details { position: relative; } - div.dark_rounded .pp_description { margin-right: 85px; } - div.dark_rounded .currentTextHolder { color: #c4c4c4; } - div.dark_rounded .pp_description { color: #fff; } - div.dark_rounded #pp_full_res .pp_inline { color: #fff; } - div.dark_rounded .pp_gallery a.pp_arrow_previous, - div.dark_rounded .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_rounded .pp_nav .pp_play { background: url(../images/dark_rounded/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_rounded .pp_nav .pp_pause { background: url(../images/dark_rounded/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.dark_rounded .pp_arrow_previous { background: url(../images/dark_rounded/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.dark_rounded .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_rounded .pp_arrow_next { background: url(../images/dark_rounded/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.dark_rounded .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.dark_rounded .pp_bottom .pp_left { background: url(../images/dark_rounded/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.dark_rounded .pp_bottom .pp_middle { background: url(../images/dark_rounded/contentPattern.png) top left repeat; } /* Bottom pattern/color */ - div.dark_rounded .pp_bottom .pp_right { background: url(../images/dark_rounded/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - div.dark_rounded .pp_loaderIcon { background: url(../images/dark_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Dark Square Theme - ----------------------------------- */ - - div.dark_square .pp_left , - div.dark_square .pp_middle, - div.dark_square .pp_right, - div.dark_square .pp_content { background: #000; } - - div.dark_square .currentTextHolder { color: #c4c4c4; } - div.dark_square .pp_description { color: #fff; } - div.dark_square .pp_loaderIcon { background: url(../images/dark_square/loader.gif) center center no-repeat; } /* Loader icon */ - - div.dark_square .pp_expand { background: url(../images/dark_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.dark_square .pp_expand:hover { background: url(../images/dark_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.dark_square .pp_contract { background: url(../images/dark_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.dark_square .pp_contract:hover { background: url(../images/dark_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.dark_square .pp_close { width: 75px; height: 22px; background: url(../images/dark_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.dark_square .pp_details { position: relative; } - div.dark_square .pp_description { margin: 0 85px 0 0; } - div.dark_square #pp_full_res .pp_inline { color: #fff; } - div.dark_square .pp_gallery a.pp_arrow_previous, - div.dark_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.dark_square .pp_nav { clear: none; } - div.dark_square .pp_nav .pp_play { background: url(../images/dark_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.dark_square .pp_nav .pp_pause { background: url(../images/dark_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.dark_square .pp_arrow_previous { background: url(../images/dark_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.dark_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.dark_square .pp_arrow_next { background: url(../images/dark_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.dark_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.dark_square .pp_next:hover { background: url(../images/dark_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.dark_square .pp_previous:hover { background: url(../images/dark_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - - /* ---------------------------------- - Light Square Theme - ----------------------------------- */ - - div.light_square .pp_left , - div.light_square .pp_middle, - div.light_square .pp_right, - div.light_square .pp_content { background: #fff; } - - div.light_square .pp_content .ppt { color: #000; } - div.light_square .pp_expand { background: url(../images/light_square/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.light_square .pp_expand:hover { background: url(../images/light_square/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.light_square .pp_contract { background: url(../images/light_square/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.light_square .pp_contract:hover { background: url(../images/light_square/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.light_square .pp_close { width: 75px; height: 22px; background: url(../images/light_square/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.light_square .pp_details { position: relative; } - div.light_square .pp_description { margin-right: 85px; } - div.light_square #pp_full_res .pp_inline { color: #000; } - div.light_square .pp_gallery a.pp_arrow_previous, - div.light_square .pp_gallery a.pp_arrow_next { margin-top: 12px !important; } - div.light_square .pp_nav .pp_play { background: url(../images/light_square/sprite.png) -1px -100px no-repeat; height: 15px; width: 14px; } - div.light_square .pp_nav .pp_pause { background: url(../images/light_square/sprite.png) -24px -100px no-repeat; height: 15px; width: 14px; } - - div.light_square .pp_arrow_previous { background: url(../images/light_square/sprite.png) 0 -71px no-repeat; } /* The previous arrow in the bottom nav */ - div.light_square .pp_arrow_previous.disabled { background-position: 0 -87px; cursor: default; } - div.light_square .pp_arrow_next { background: url(../images/light_square/sprite.png) -22px -71px no-repeat; } /* The next arrow in the bottom nav */ - div.light_square .pp_arrow_next.disabled { background-position: -22px -87px; cursor: default; } - - div.light_square .pp_next:hover { background: url(../images/light_square/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.light_square .pp_previous:hover { background: url(../images/light_square/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - div.light_square .pp_loaderIcon { background: url(../images/light_rounded/loader.gif) center center no-repeat; } /* Loader icon */ - - - /* ---------------------------------- - Facebook style Theme - ----------------------------------- */ - - div.facebook .pp_top .pp_left { background: url(../images/facebook/sprite.png) -88px -53px no-repeat; } /* Top left corner */ - div.facebook .pp_top .pp_middle { background: url(../images/facebook/contentPatternTop.png) top left repeat-x; } /* Top pattern/color */ - div.facebook .pp_top .pp_right { background: url(../images/facebook/sprite.png) -110px -53px no-repeat; } /* Top right corner */ - - div.facebook .pp_content .ppt { color: #000; } - div.facebook .pp_content_container .pp_left { background: url(../images/facebook/contentPatternLeft.png) top left repeat-y; } /* Content background */ - div.facebook .pp_content_container .pp_right { background: url(../images/facebook/contentPatternRight.png) top right repeat-y; } /* Content background */ - div.facebook .pp_content { background: #fff; } /* Content background */ - div.facebook .pp_expand { background: url(../images/facebook/sprite.png) -31px -26px no-repeat; cursor: pointer; } /* Expand button */ - div.facebook .pp_expand:hover { background: url(../images/facebook/sprite.png) -31px -47px no-repeat; cursor: pointer; } /* Expand button hover */ - div.facebook .pp_contract { background: url(../images/facebook/sprite.png) 0 -26px no-repeat; cursor: pointer; } /* Contract button */ - div.facebook .pp_contract:hover { background: url(../images/facebook/sprite.png) 0 -47px no-repeat; cursor: pointer; } /* Contract button hover */ - div.facebook .pp_close { width: 22px; height: 22px; background: url(../images/facebook/sprite.png) -1px -1px no-repeat; cursor: pointer; } /* Close button */ - div.facebook .pp_details { position: relative; } - div.facebook .pp_description { margin: 0 37px 0 0; } - div.facebook #pp_full_res .pp_inline { color: #000; } - div.facebook .pp_loaderIcon { background: url(../images/facebook/loader.gif) center center no-repeat; } /* Loader icon */ - - div.facebook .pp_arrow_previous { background: url(../images/facebook/sprite.png) 0 -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The previous arrow in the bottom nav */ - div.facebook .pp_arrow_previous.disabled { background-position: 0 -96px; cursor: default; } - div.facebook .pp_arrow_next { background: url(../images/facebook/sprite.png) -32px -71px no-repeat; height: 22px; margin-top: 0; width: 22px; } /* The next arrow in the bottom nav */ - div.facebook .pp_arrow_next.disabled { background-position: -32px -96px; cursor: default; } - div.facebook .pp_nav { margin-top: 0; } - div.facebook .pp_nav p { font-size: 15px; padding: 0 3px 0 4px; } - div.facebook .pp_nav .pp_play { background: url(../images/facebook/sprite.png) -1px -123px no-repeat; height: 22px; width: 22px; } - div.facebook .pp_nav .pp_pause { background: url(../images/facebook/sprite.png) -32px -123px no-repeat; height: 22px; width: 22px; } - - div.facebook .pp_next:hover { background: url(../images/facebook/btnNext.png) center right no-repeat; cursor: pointer; } /* Next button */ - div.facebook .pp_previous:hover { background: url(../images/facebook/btnPrevious.png) center left no-repeat; cursor: pointer; } /* Previous button */ - - div.facebook .pp_bottom .pp_left { background: url(../images/facebook/sprite.png) -88px -80px no-repeat; } /* Bottom left corner */ - div.facebook .pp_bottom .pp_middle { background: url(../images/facebook/contentPatternBottom.png) top left repeat-x; } /* Bottom pattern/color */ - div.facebook .pp_bottom .pp_right { background: url(../images/facebook/sprite.png) -110px -80px no-repeat; } /* Bottom right corner */ - - -/* ------------------------------------------------------------------------ - DO NOT CHANGE -------------------------------------------------------------------------- */ - - div.pp_pic_holder a:focus { outline:none; } - - div.pp_overlay { - background: #000; - display: none; - left: 0; - position: absolute; - top: 0; - width: 100%; - z-index: 9500; - } - - div.pp_pic_holder { - display: none; - position: absolute; - width: 100px; - z-index: 10000; - } - - - .pp_top { - height: 20px; - position: relative; - } - * html .pp_top { padding: 0 20px; } - - .pp_top .pp_left { - height: 20px; - left: 0; - position: absolute; - width: 20px; - } - .pp_top .pp_middle { - height: 20px; - left: 20px; - position: absolute; - right: 20px; - } - * html .pp_top .pp_middle { - left: 0; - position: static; - } - - .pp_top .pp_right { - height: 20px; - left: auto; - position: absolute; - right: 0; - top: 0; - width: 20px; - } - - .pp_content { height: 40px; min-width: 40px; } - * html .pp_content { width: 40px; } - - .pp_fade { display: none; } - - .pp_content_container { - position: relative; - text-align: left; - width: 100%; - } - - .pp_content_container .pp_left { padding-left: 20px; } - .pp_content_container .pp_right { padding-right: 20px; } - - .pp_content_container .pp_details { - float: left; - margin: 10px 0 2px 0; - } - .pp_description { - display: none; - margin: 0; - } - - .pp_social { float: left; margin: 0; } - .pp_social .facebook { float: left; margin-left: 5px; width: 55px; overflow: hidden; } - .pp_social .twitter { float: left; } - - .pp_nav { - clear: right; - float: left; - margin: 3px 10px 0 0; - } - - .pp_nav p { - float: left; - margin: 2px 4px; - white-space: nowrap; - } - - .pp_nav .pp_play, - .pp_nav .pp_pause { - float: left; - margin-right: 4px; - text-indent: -10000px; - } - - a.pp_arrow_previous, - a.pp_arrow_next { - display: block; - float: left; - height: 15px; - margin-top: 3px; - overflow: hidden; - text-indent: -10000px; - width: 14px; - } - - .pp_hoverContainer { - position: absolute; - top: 0; - width: 100%; - z-index: 2000; - } - - .pp_gallery { - display: none; - left: 50%; - margin-top: -50px; - position: absolute; - z-index: 10000; - } - - .pp_gallery div { - float: left; - overflow: hidden; - position: relative; - } - - .pp_gallery ul { - float: left; - height: 35px; - margin: 0 0 0 5px; - padding: 0; - position: relative; - white-space: nowrap; - } - - .pp_gallery ul a { - border: 1px #000 solid; - border: 1px rgba(0,0,0,0.5) solid; - display: block; - float: left; - height: 33px; - overflow: hidden; - } - - .pp_gallery ul a:hover, - .pp_gallery li.selected a { border-color: #fff; } - - .pp_gallery ul a img { border: 0; } - - .pp_gallery li { - display: block; - float: left; - margin: 0 5px 0 0; - padding: 0; - } - - .pp_gallery li.default a { - background: url(../images/facebook/default_thumbnail.gif) 0 0 no-repeat; - display: block; - height: 33px; - width: 50px; - } - - .pp_gallery li.default a img { display: none; } - - .pp_gallery .pp_arrow_previous, - .pp_gallery .pp_arrow_next { - margin-top: 7px !important; - } - - a.pp_next { - background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; - display: block; - float: right; - height: 100%; - text-indent: -10000px; - width: 49%; - } - - a.pp_previous { - background: url(../images/light_rounded/btnNext.png) 10000px 10000px no-repeat; - display: block; - float: left; - height: 100%; - text-indent: -10000px; - width: 49%; - } - - a.pp_expand, - a.pp_contract { - cursor: pointer; - display: none; - height: 20px; - position: absolute; - right: 30px; - text-indent: -10000px; - top: 10px; - width: 20px; - z-index: 20000; - } - - a.pp_close { - position: absolute; right: 0; top: 0; - display: block; - line-height:22px; - text-indent: -10000px; - } - - .pp_bottom { - height: 20px; - position: relative; - } - * html .pp_bottom { padding: 0 20px; } - - .pp_bottom .pp_left { - height: 20px; - left: 0; - position: absolute; - width: 20px; - } - .pp_bottom .pp_middle { - height: 20px; - left: 20px; - position: absolute; - right: 20px; - } - * html .pp_bottom .pp_middle { - left: 0; - position: static; - } - - .pp_bottom .pp_right { - height: 20px; - left: auto; - position: absolute; - right: 0; - top: 0; - width: 20px; - } - - .pp_loaderIcon { - display: block; - height: 24px; - left: 50%; - margin: -12px 0 0 -12px; - position: absolute; - top: 50%; - width: 24px; - } - - #pp_full_res { - line-height: 1 !important; - } - - #pp_full_res .pp_inline { - text-align: left; - } - - #pp_full_res .pp_inline p { margin: 0 0 15px 0; } - - div.ppt { - color: #fff; - display: none; - font-size: 17px; - margin: 0 0 5px 15px; - z-index: 9999; - } diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnNext.png deleted file mode 100644 index b28c1ef3d595d5af9db1f2a4378cfd64407ed5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P)$9a05|MJUF0->4SGK<7F5TJ=lWKN6+&IhzfIXTxP_BAUYSlC~k)ya96~A ztE!1Fs3@{uSCwU7suGg-Dqm*4{6%~bnXhbax0`G>8;y^TlaJ!y=Z$>*$bCxrnvF(o z`x+M)R}d8y<%*4sb=vKA7v=~-N$_0n-ZRLqHxCaF-bMz>;maqN%k>M_92kbLQc)rz zB8pyLU&UAqOwrNN6cZCek&%%UV)*w#qa-FKlGEv|W5{3m+Nvr57=wC&(2ff5mzNh( z17JKGEL7k>2JHbJV~7v<&GHpkvnUX*@G!g&=-b;{j2C0X$H#{?xZRXAJPcs=9iF5m z$;ezRVzj2FM&MRfRz${TF_i##NF31cG^#Z`@cilNNv;SVRNO-;YUtmzPp;pO=?M$H&KXa&kgtWo0s6lPBgmI5?pE{Cs(iF?a`l;~DyD zeo-f&{o>+6-iK$tg6sHliqT3V>L zx0mkj?xbHsLxUI=K#h%!R99C=xw*MwjGUYtIy^k2!oou8>FJR^X=!QH*48EpNJ&YN zz7-V})Y{rg#l^)k2J7^-2D?WJrFf_^uu26000%G@R$X09v$M0`^;N^cP^fA+Q(jhM zR905f>guZ8WBY@$Q1eGn3BF&S-6IO?Hdx z>uV}0DWR^eF6oE&U>w5J%A>2v)`ghfQje?W0Dg6KC9&Gv+$?R{&z#uwe4u1DKR++| z0`pl5JPg3TzCNn2uNR5JkaKf$B7Z_1&}6(^FbrUZ(Z+b=uwC z6(A&3NPBN@PmI#h(ILt+GyQw^>CHgU3XH4^;Dv>Sz>|8Qt(jZ55^YOLN}|opO-W|v z)`SB2*4EZaaw;z`7Z10$w~KTUvj`0&EQiD4JrpU!n-28IYLy5594xT8W%)a>_yR`3 z4uAv%?*STd2moYs%#XI6ogI-V+As$Uv9+}&&z6>!Bm^*iV`GB~3JU1x=tz`+@o0Yw z+J^WV9UU#@iT~smWm{7`EZfx7BohS#jDGsnrH2m_UXQDI4>Bu&@Eaf)XZ|(~k9jZ_ z_ZWxq`emr|Xzc63$X|%rJll+IY;0_V?|(O6W`YCeEnxjf(UTDFL-@J*W=y-;YJV`; zte&CGf|v^iSUrL(V1rF)A^YGM9v(j6)c=JS`mZnWV1WUv&|&|TH8L{d9vmF}hxfbR z82m3^-_rhKSS4+OhpU&ZpOyf34Gj(b&6|EdCyLJu@m1w&8bCiKt?{ei;p}BIk$v;W z;K0BD2qXDg#@j>#gM45R2lxBQbC~&$0rR=di9ZMN#~@dC2t52le+>RFzyR~BA^19M RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_rounded/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)DPR}?-yIFE=Eh>D`1 zxDZ4LPAETaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jnsm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_rounded/contentPattern.png deleted file mode 100644 index e5a047c3a7efb0f8085e0b70523299af00a5dbd6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!fo6;Bt(kcwMLDG3QT&O5jsIO33Mko90i<6^cxDT}NJ0fqt! a2NIKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrAh9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/loader.gif b/mamweb/static/prettyPhoto/images/dark_rounded/loader.gif deleted file mode 100644 index 50820eedd904647a76c4c2c1d830d4339588c08d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 zcma*pYg7~I83*u}xzA)~n25ScZ5t-T5>nU=30MS$Xhdjjt5TMMW#9(@)N1wHw{N#>*%A~K6dfI%mzSs0>1;MzQc{x1WQvWAEi5cd zO-&6A4ejdcYHV!G&dwej90WgkdA*fGvWCM(P; z$dsjIrxfkWO-cJGD`!tG@Op!gxcHQxYYW#Q0eW60s};c7^ldElX7vkaqh-b(7r4^0 z+UAb0ZSr75<*E5h0II=##CBs?6qZq|wUb!3#%m$M1s7pTB@&S06@9Ay z-h5f_b9-#xd~c$}>EX+VI*I%()}0TCh#*z{qN+;rk#%*HM(Q=fSuu34zchyM3e)?`6^f~$^~ z0L(`R@{+Sb&Lw^rQ0mE&rsN{19?LGi8VEttI=`{N-icg!PPcINvze}`ss#~~E`&+u zLbM5e>i*sa;(5N^{?)@C{Y}}!YN8g;6QZ;cANQNPJ-Nt=h#5XnucjTE3{bk)~0FmXzWdpB5>Zy)m`E2tm_CcnpIfqNU+@bKQydj=IwV zTyutJD5yo*h7Dj4WQ}P<9L%LeFnacSCsO3N5pIvX4hH0%iP-$*y7rv*%*Qc)j;EmW z-mi|`{kHYCazV_H3nL>$47PQ#5YXQnr$}wI&wcr@=kZ1#eg!+#&@)Bc1U9(*cd`I# z%)^=g#F56s=CvHdJ@QPLEeg)N^*V4>aPW!^n{-oJw+~n{T?uQnOqQ|67o&Wra3kj~ zmAZ3|x(4m>=2n}t+vbOyw4bh&GstNhHdGB?2pRx>gF^$ChIy<0=d!7qV$XlP6VHk`U}S=M5)om<(f8q3iQk zYG|Bgahee;Ls{S0WIffD*~Y^)CSUQw@&j#Wd|^??$zfXtW(Iw7j+Mq=5o)@5yFgtY z3d6oYdc1APw%)G~Jcuq~0;(?G6F#?AES#&0E{T>)Z(k{t*WY&5I+E?QMtN(E4RVvz zdn~6azL}H7T6ge<>4C;SBcmS4vGe}t%wNr?EeYZhrui~;S7~?-@1Vh(fyEDV=&7N3M|fReKPNa}sSNhdVs+rpOitDW8pX6l>^lDsUvo$c$X?+;-k zG}O%~)wtgxWGV2;RxP_8XXXx8BXs$Cg*s|OzZ>l4@i1EsFPWdKUR<%xPVd;b{N)E( z$%oEzXyux%p7u8;eZu-R#`m3yF=G{BRn@k#=4Ph;;2|T5OA@2^m%^fO2fwRgw@R{( zIO9xB;5jah#gmjV0q*WR$wrlG*GZ+}?36LEVopx8&UoR5|FP2X(gg*>F2Q`DOOWzT zKy$O1#JGKIqQfYwpC&#w#q@DPqW?2e#VL|C9rwWEFAWIx{OQyh2QiYjN9*YZVSoMS zFA84%7}x9g)1Aex=0uh3IjS_3TZ$cycqP0)!%# zOBK66#7X}`IVZ(={4$W>L=h`Z1T4#AR|_aHZ=cBtyvh4h;coJH!AS0chIeuLuVE;J zMU;zXpKv4ew*ej2mcLgY77c0rcaD7i-OHBM_w!bI7sLh;$kU&9zltxt1OD2qL|J;&bhtXwqAHM6xRf*yD4ofPQO{_whBa&Y*iCFs_G=IgnfD{l3X!rx368LCX1Vtw#^VR1=jt|2}Q-YZ8)R$_o? zXe&>PWnSYgc3wT8Sa({7?q-O!oyI_c#1%&XjP`}73A_%VXfsOf$8jS`uD`Yq!wLCq zId#TxPJTy@wTF!w78H#BZ=C+$RSaM?39k!c*vN7#tXBU3;O}dHT^_;L4G+E)eAx!e z$jjz9$B$QQ^7DdOx|rFAG2&g6TUH)%6sqBDIU>PP0|HTYo)Bxj(VK#x1f+}5(H#tw zbb4iqfOZ2a4yFe~)DXD?&}9Ik^#%!PL|Z?cDZK2Tl4%H^Jh*rZTQDq<@>&LjL8>&bmbP;{9$V1f72|-IC6J*aS0@jCMCW#2N6=@ z4`AZpxsaAsVQ@O2`+(k0w?jjrokZ16XhMUc+v!dQ8ajnupX>w}bRm9Xw)Di6(Qq#i K>KdTlt$zd2^$V2% diff --git a/mamweb/static/prettyPhoto/images/dark_rounded/sprite.png b/mamweb/static/prettyPhoto/images/dark_rounded/sprite.png deleted file mode 100644 index fb8c0f83d715aec1014b77f0b44002a07a635052..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4076 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 RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/dark_square/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)DPR}?-yIFE=Eh>D`1 zxDZ4LPAETaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jnsm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/dark_square/contentPattern.png b/mamweb/static/prettyPhoto/images/dark_square/contentPattern.png deleted file mode 100644 index 7b50aff880e57ea386400d763dbddf82fff72be6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4NtU=qlmzFem6RtIr7}3CIKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrAh9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/dark_square/loader.gif b/mamweb/static/prettyPhoto/images/dark_square/loader.gif deleted file mode 100644 index 50820eedd904647a76c4c2c1d830d4339588c08d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 zcma*pYg7~I83*u}xzA)~n25ScZ5t-T5>nU=30MS$Xhdjjt5TMMW#9(@)N1wHw{N#>*%A~K6dfI%mzSs0>1;MzQc{x1WQvWAEi5cd zO-&6A4ejdcYHV!G&dwej90WgkdA*fGvWCM(P; z$dsjIrxfkWO-cJGD`!tG@Op!gxcHQxYYW#Q0eW60s};c7^ldElX7vkaqh-b(7r4^0 z+UAb0ZSr75<*E5h0II=##CBs?6qZq|wUb!3#%m$M1s7pTB@&S06@9Ay z-h5f_b9-#xd~c$}>EX+VI*I%()}0TCh#*z{qN+;rk#%*HM(Q=fSuu34zchyM3e)?`6^f~$^~ z0L(`R@{+Sb&Lw^rQ0mE&rsN{19?LGi8VEttI=`{N-icg!PPcINvze}`ss#~~E`&+u zLbM5e>i*sa;(5N^{?)@C{Y}}!YN8g;6QZ;cANQNPJ-Nt=h#5XnucjTE3{bk)~0FmXzWdpB5>Zy)m`E2tm_CcnpIfqNU+@bKQydj=IwV zTyutJD5yo*h7Dj4WQ}P<9L%LeFnacSCsO3N5pIvX4hH0%iP-$*y7rv*%*Qc)j;EmW z-mi|`{kHYCazV_H3nL>$47PQ#5YXQnr$}wI&wcr@=kZ1#eg!+#&@)Bc1U9(*cd`I# z%)^=g#F56s=CvHdJ@QPLEeg)N^*V4>aPW!^n{-oJw+~n{T?uQnOqQ|67o&Wra3kj~ zmAZ3|x(4m>=2n}t+vbOyw4bh&GstNhHdGB?2pRx>gF^$ChIy<0=d!7qV$XlP6VHk`U}S=M5)om<(f8q3iQk zYG|Bgahee;Ls{S0WIffD*~Y^)CSUQw@&j#Wd|^??$zfXtW(Iw7j+Mq=5o)@5yFgtY z3d6oYdc1APw%)G~Jcuq~0;(?G6F#?AES#&0E{T>)Z(k{t*WY&5I+E?QMtN(E4RVvz zdn~6azL}H7T6ge<>4C;SBcmS4vGe}t%wNr?EeYZhrui~;S7~?-@1Vh(fyEDV=&7N3M|fReKPNa}sSNhdVs+rpOitDW8pX6l>^lDsUvo$c$X?+;-k zG}O%~)wtgxWGV2;RxP_8XXXx8BXs$Cg*s|OzZ>l4@i1EsFPWdKUR<%xPVd;b{N)E( z$%oEzXyux%p7u8;eZu-R#`m3yF=G{BRn@k#=4Ph;;2|T5OA@2^m%^fO2fwRgw@R{( zIO9xB;5jah#gmjV0q*WR$wrlG*GZ+}?36LEVopx8&UoR5|FP2X(gg*>F2Q`DOOWzT zKy$O1#JGKIqQfYwpC&#w#q@DPqW?2e#VL|C9rwWEFAWIx{OQyh2QiYjN9*YZVSoMS zFA84%7}x9g)1Aex=0uh3IjS_3TZ$cycqP0)!%# zOBK66#7X}`IVZ(={4$W>L=h`Z1T4#AR|_aHZ=cBtyvh4h;coJH!AS0chIeuLuVE;J zMU;zXpKv4ew*ej2mcLgY77c0rcaD7i-OHBM_w!bI7sLh;$kU&9zltxt1OD2qL|J;&bhtXwqAHM6xRf*yD4ofPQO{_whBa&Y*iCFs_G=IgnfD{l3X!rx368LCX1Vtw#^VR1=jt|2}Q-YZ8)R$_o? zXe&>PWnSYgc3wT8Sa({7?q-O!oyI_c#1%&XjP`}73A_%VXfsOf$8jS`uD`Yq!wLCq zId#TxPJTy@wTF!w78H#BZ=C+$RSaM?39k!c*vN7#tXBU3;O}dHT^_;L4G+E)eAx!e z$jjz9$B$QQ^7DdOx|rFAG2&g6TUH)%6sqBDIU>PP0|HTYo)Bxj(VK#x1f+}5(H#tw zbb4iqfOZ2a4yFe~)DXD?&}9Ik^#%!PL|Z?cDZK2Tl4%H^Jh*rZTQDq<@>&LjL8>&bmbP;{9$V1f72|-IC6J*aS0@jCMCW#2N6=@ z4`AZpxsaAsVQ@O2`+(k0w?jjrokZ16XhMUc+v!dQ8ajnupX>w}bRm9Xw)Di6(Qq#i K>KdTlt$zd2^$V2% diff --git a/mamweb/static/prettyPhoto/images/dark_square/sprite.png b/mamweb/static/prettyPhoto/images/dark_square/sprite.png deleted file mode 100644 index 4fe354752455e070ebb56f42a60fc2233de45bd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3507 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 diff --git a/mamweb/static/prettyPhoto/images/default/default_thumb.png b/mamweb/static/prettyPhoto/images/default/default_thumb.png deleted file mode 100644 index 1a26e4b16e18db9e0979a6ba5ecb9e1e1c8753e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1537 zcmeAS@N?(olHy`uVBq!ia0vp^MnJ5{!2~2lDSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XP}#GU}m6TW~gUq zY+`P1uA^XNU}&IkV5Dzoq-$tyWo%?+V4wg6Nh+i#(Mch>H3D2mX;thjEr=FDs+o0^GXscbn}XpVJ5hw7AF^F7L;V>=P7_pOiaoz zEwNPsx)kDt+yc06!V;*iRM zRQ;gT;{4L0WMIUlDTAykuyQU+O)SYT3dzsUfrVl~Mt(_taYlZDf^)E`f^TASW*&$S zR`2U;<(XGpl9-pA>gi&u1T;Y}Gc(1?#n{Qv$p(%8_*)y>$@ z#MQtErq?AuximL5uLPzy1)RB67F)=Cl-0%Nhmu^a?8hh0T^w9mUDEGv?>K8d)wzGgml>(n6(8(9 zLQ`Ch#S2apT=}rXs&X^0zh+&mx?FYr+U#jM&p!XmF}n>!Z>NQKA5GdC6{|P> z^2;lGmp8sGkxst-wyf7pS!InB58L6Yy>5IL4?h&>bP;&9@TlG|3th49u+^emt$*tN zdmg^;Yue+sIBvao_fZ+XX8WkksIZaiEUTJwq;9`_|M4e% zU3SxfhI=h7TH7ymYDPlEe(|R&oOc4=Tn{~SQG5F739G|ai+gJ%H$D6tw`B5(cf0TQ zMeSQrGMz2Vdufo~bZrr?n>pY77p~A!)0y}y{i;}wfugc`t-_fUBcP+T=39SO2rAyM zpBeR{cwfc~^WP~(GtWH#{IOzAA6KcOi{#|)d*A-5U(7KJ_WW~CWlPlBh`km&eN;Yr ze*d=iV1mNYPKgAk?cU2TKQG#Tn^!UG#jPb_t8c#j=Aht^HeXct(m@_MzIGpHwe!p8 zh!q6S|9RMhqy4Z_zyFd{qnS+y6__V7r5~zU$aB4H_t}UePj+sp+n(Sm=$UCEHRW^V z8NEkWUY10-N(yVbS7mfI82S`kd;k4t!q0_`SEsVE@%8Myap6pg^V0upjEa2XseZE? z#Fl;wZnjw7z%enSq+%NHRp;%&a~@9m^r+^be~*WvxYNc}&6gKXPYY_Umg(lx+a^@* y;MyFr{@1hJHY$01i`>iV{`=Qlt`e)`G+_9kRR3W^dd`1Pq3r4E=d#Wzp$PyqQ%Md0 diff --git a/mamweb/static/prettyPhoto/images/default/loader.gif b/mamweb/static/prettyPhoto/images/default/loader.gif deleted file mode 100644 index 35d397c9e430c2ee8f1d95d8fe47da79a399e746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6331 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 diff --git a/mamweb/static/prettyPhoto/images/default/sprite_prev.png b/mamweb/static/prettyPhoto/images/default/sprite_prev.png deleted file mode 100644 index 1ee486514b9c4b3b36381fb0a3ecc3fe3a9f93ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmeAS@N?(olHy`uVBq!ia0vp^(m*W7!3HGnN~S&oQj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS=07?{&CLn2Bde0{8v^Ko2Tt~skz|cV7z)0WFNY~KZ%Gk)tz(4^Clz_GsrKDK}xwt{?0`hE?GD=Dctn~HE z%ggo3jrH=2()A53EiFN27#ZmTRp=I1=9MH?=;jqG!%T2VElw`VEGWs$&r<-In3$Ab zT4JjNbScCOxdpzyaD(%Tp#cR9GX09g0)0b01O41wkiWpHi%Wu15zfG>x;Uh=AXPso zwK%`DC>aHCFybnZQU%%yG$2F3nBNEAe!(RRYTBrDUd98JJrb z7#fLwm{}MaS~$5GxtTec8X6j#Sr}Lvz|6p=*TvY$(85Px?R(JoBXH0dq_dFl$J7T(M(dV4UFT;uunK>&^82S%(5dj_qH< z=*S}&*wSLt6i`q!QRxTIxr2f63j((D&Glk4bUrY>phW8*BX?6W+sOqktDKkpQupx5 zXVR6ue5HEf1!nmc?&=yMi}nq)%8Sz3BLd=JXKh?K+7<-V*=#&TPw-;cK67S}GK<|Nij=gN9YBUX)mA zh;Wt6nYpa?jR{w8>=%xtco;q0>$PNpn+{JB>CZJBh}qL}?smVM58)0;KA0$JUrYeg;& z`Zd*yb!iaiy4OwuEEavuaqHW^R{1VJZ{q8`Htg`n3YU!$NAk8euX}wXZ+pqCT^BPJ z#OS&6*%zD7^m$=gy7{Jy)!buA8xPd&ci$S-yVv~VhnTftC!T*6wD6m-=uw2vEBzb) zJAUTw+1zqA^5CK6cbK&!IHc6)T`_#r`{L{G&(>L4)9l6MnRpmD^*T?NvsT^(m3f}7 KelF{r5}E+5_2k|F diff --git a/mamweb/static/prettyPhoto/images/default/sprite_x.png b/mamweb/static/prettyPhoto/images/default/sprite_x.png deleted file mode 100644 index d4433ab0d6933357b0e91f6fc72662f1bda39f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1097 zcmbVLO;6N77_MS)MM;nwo`!OD+nJVacbl!qZo9GxMY61M6Jla%XW0hYsqNr)@gitU zylOlc4<0o}{R2vrqcPk(8T|()dhl$R?gx4x7@ee@d1v0|dB5*3E?gQNIXA*_+-P;q zsIh&UePU)f{cnx$v2B8y4Z1{{v~5S2n{~+w236l)#WifZof{u;k>iG%UcEsZ*1YBr zU$9dhA@M_o=D6Za657rhreFoHdV$V=fAfw9o~!d$a~8D1GH!Wun-N~xT&O#nYfi!C zXD)zZqA>y=QyV1ydJt=g&Ubk=c22KF9&}acn$Gu}YFLY)Od-qNm-<7vZO%>`ip1QBDbm4j7r}YlXSjCX{d=}yWJMrvOuC$5fuuBltYrT zOd}h20%|AOAf6g97&vw!FQgs`K+0&ZkPWKy%+p>7erQ<-#6jFo6ibI+L$%|2C&Xe6$7CaNSUs9k12D_o(S}k*=8bka@>o&qb%Qt?J`QNr(0TSE zxSp#)l!pkZ(@>S5l1C_Csz?>3ltV~X@~{909EV|*ilM4T-jGeDgpdjIrcx=$NHQxj znl_;{z*d8p+JS=yc0Fddk1ZdG)yfgJDT(TYtPeV1u|+6}TO{cS;gKmB`?-2V?{#)EVtouJX6PYt&+8lp0%ixN2V0t`geI^_X4-VMGL~Jy6 zKR$WN#;Q{_X6wo4Z(nB5a^TF+ZXNu3_4DNLbMD@?Q;%;wd+_qd&iL`t#Y|>vIrDXA v@AlYOS2{KcPTc)Bp*T@``(m<(x-<2j`?UP<(dqds5yw{5Trggju5a%Hri)27 diff --git a/mamweb/static/prettyPhoto/images/default/sprite_y.png b/mamweb/static/prettyPhoto/images/default/sprite_y.png deleted file mode 100644 index 7786ab5128c53a952830a3494898ee3ff5d00cf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1162 zcmc&!O;6N77_K29hOj@tkHe%~Jh1IdcemX(RKjk%vg#r(E3SzeN;}Io&`xb<*+OD4 z+)VVuMg0+qSCJ@*7xCcT-$25F5O2ik?iM`|OuRTrJM&K8=Xt;Te0JtWX5{h+$8nkJ zv{7ff&YsPS!|Z*0^0~^kOVn)AInttCE5zKCLl!Zpde#!IW6N24@)b{T+)&GHG-a)@DJOgcuYAn6;q{fs6!{ z%PWd94kU=62qh6oS)^z=NrMm!7SF7OPD`sBm4PiL>3o~gKoiAow<~mW0tuHyq^fGd zAxT-Lk&V`TYQ$>O)M}^1el$oFOPLs3frtbs zdR`J&PdlP@{M(H)wWG#bfWrIa4knWWu5;SJWJm z%t{XBO(><`@kg_ySF8h*<7w+N;dFSg&n6~J zMq}&NO*U2^s>W0!{&DdAedZY)<@R3ff7{#MeyEL&yty`H>_4?0tak3+^Tzp;f5#1RUtWw}*f@CfG5I@G%^BluX<_phuCz@w diff --git a/mamweb/static/prettyPhoto/images/facebook/btnNext.png b/mamweb/static/prettyPhoto/images/facebook/btnNext.png deleted file mode 100644 index e809c3b64219468c4c744a4d4f086460ee6c8d6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)*<*4T)FKQHep0ar5R4IgX^MaUqaei9+gx zK#oWha#RSUqSL<~3WaX<08-Gx({VYS&ijjti?_uR@~-8hZnyh^-|xRkG^9)>qkKN! zl-KJu5DVD?g=ju>xm?$Xh5WNRfWqOh&EardB^DA(E|(8RqtR)b&DNLlZLpn(p$eGi z`&orTF|@qAJk2o7i&QGLOI##dQYw|htE;OsCX;E5SV%0DN;Q&9CZ9}9OsI*4#8Ru( zs`d5t$3~-Zgjh%{jYc!Jv9U2@Fc^l3g~ZZowHMRr^dp^4H$*HXmR_&dE-fvYh=wc_ z3Pro!zDX=(u~^)J?Id2QRE~*+q-lEBVzIU=>}-WHNh1mRj|C z{RryGSG}%2dIs5OG>&IyXXA-Pf+n(PJ^^_=p4YKhtVrbXN3+>v=jP@Tkw~P_@2sjT zkSxnK1A)L=Fc{1u5vVJW3kwTxA&MW7NQ7^ieW(jp1wGI&cw?UNjUh#S6ZTw zv=GQ`i9&7*fyB)~dlCbzaP#I3d4f*+W2B^a+`I*CAvtuW2}tDH;^r%83popX4~!3$ z21E#lBbNccM_ivBiM@4iz~BDKto|Fa71itLv{we-TU_n~*cW_|z`dHEQ5#*7zXcco X7c=PvI!UA-00000NkvXXu0mjfDKUXP diff --git a/mamweb/static/prettyPhoto/images/facebook/btnPrevious.png b/mamweb/static/prettyPhoto/images/facebook/btnPrevious.png deleted file mode 100644 index 0812542cccfdfd9d1644ed721516c00fc6a03c24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 828 zcmV-C1H=4@P)-u>SFdGE)KMkDk;;yCW4W(C*+z6Lgc zFY;|dX$bxTZi7F9Ykb?Ev7Z9+0(b#Di=?A%@H+V0SwP+b-vz6X^fUlhz#FH5w1aOW z>FYhXjK+9>tc(C6K29qsq!R2vYzeYKq^0;HM*iEn3dyhunl7I|_Lf8F%zmrz~qC>8(u37?tz=A@d z;A9Eu^ZBm8EZ(OHC@SRA($eKGUEgAT#MYKR>U_=krgrTCLzGCqW>sR_j!;SbU_@ z>9k_30n{Na7RzL*R9Z9`40^Fva;lIflj&T!Tz+UY8fV1ZkEuc?lS!M|Y!>~BMitWI z@l@*ddPCNbolfTfwv9}q(b$$PBv!N8+;=z}nO3W{BU?zUTCMgIKwq}o?OoYIVpXfv zzTIwr-tBh3%N7!Ab91xja=BjgdcD4o;|hL2|JNaXZ*Om3tyYI+an&jm3OjJ0e1)N8 zm#)W^%jH_j%gdR;U~nK?NUT&U)mT|s$sU4a3yBqv$LqmhFgF|yN3w;)T3cJIg~Q=> zSOkYO`kz1&5zOWX$XY6pBwI)T3Gl0cf_{;tYag+xA0&`1Mj=}ykXwvGZjnIZVxV2d z06REt5=gvZR~UnQgX1RMC#&dK5s<{S!N)sRu@ZhTcfdAuRQ4h@;f#9=euwxvJ2}?Y zy#{|B_b~9cW8qbFRO5p`9$yjx>@&E_r{*VgLY3ri0R{lIBCT m-o+D*vL38xWMObn^tomvpcVhX~C5P hfz0h)jSP%z43bA#R32EIs{v|b@O1TaS?83{1OPdrCnx{_ diff --git a/mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png b/mamweb/static/prettyPhoto/images/facebook/contentPatternRight.png deleted file mode 100644 index 76e50d0f5c6a8d0ee5f69b82493d94805f93d47b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE;=WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!foEl(H6kcwMLfB0E=SQwO*la-k#HgqC} m{yP{*X)b2tGiPRG;$g@#WM60<^5zjxFN3G6pUXO@geCwXd?|PU diff --git a/mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/facebook/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrAh9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/facebook/loader.gif b/mamweb/static/prettyPhoto/images/facebook/loader.gif deleted file mode 100644 index 7ac990cf04f2323f9723518bfd72ce102222cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 ZU;uc#vp>^SEa3nE002ovPDHLkV1iA65^4Yd diff --git a/mamweb/static/prettyPhoto/images/light_rounded/btnNext.png b/mamweb/static/prettyPhoto/images/light_rounded/btnNext.png deleted file mode 100644 index b28c1ef3d595d5af9db1f2a4378cfd64407ed5c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1411 zcmV-}1$_F6P)$9a05|MJUF0->4SGK<7F5TJ=lWKN6+&IhzfIXTxP_BAUYSlC~k)ya96~A ztE!1Fs3@{uSCwU7suGg-Dqm*4{6%~bnXhbax0`G>8;y^TlaJ!y=Z$>*$bCxrnvF(o z`x+M)R}d8y<%*4sb=vKA7v=~-N$_0n-ZRLqHxCaF-bMz>;maqN%k>M_92kbLQc)rz zB8pyLU&UAqOwrNN6cZCek&%%UV)*w#qa-FKlGEv|W5{3m+Nvr57=wC&(2ff5mzNh( z17JKGEL7k>2JHbJV~7v<&GHpkvnUX*@G!g&=-b;{j2C0X$H#{?xZRXAJPcs=9iF5m z$;ezRVzj2FM&MRfRz${TF_i##NF31cG^#Z`@cilNNv;SVRNO-;YUtmzPp;pO=?M$H&KXa&kgtWo0s6lPBgmI5?pE{Cs(iF?a`l;~DyD zeo-f&{o>+6-iK$tg6sHliqT3V>L zx0mkj?xbHsLxUI=K#h%!R99C=xw*MwjGUYtIy^k2!oou8>FJR^X=!QH*48EpNJ&YN zz7-V})Y{rg#l^)k2J7^-2D?WJrFf_^uu26000%G@R$X09v$M0`^;N^cP^fA+Q(jhM zR905f>guZ8WBY@$Q1eGn3BF&S-6IO?Hdx z>uV}0DWR^eF6oE&U>w5J%A>2v)`ghfQje?W0Dg6KC9&Gv+$?R{&z#uwe4u1DKR++| z0`pl5JPg3TzCNn2uNR5JkaKf$B7Z_1&}6(^FbrUZ(Z+b=uwC z6(A&3NPBN@PmI#h(ILt+GyQw^>CHgU3XH4^;Dv>Sz>|8Qt(jZ55^YOLN}|opO-W|v z)`SB2*4EZaaw;z`7Z10$w~KTUvj`0&EQiD4JrpU!n-28IYLy5594xT8W%)a>_yR`3 z4uAv%?*STd2moYs%#XI6ogI-V+As$Uv9+}&&z6>!Bm^*iV`GB~3JU1x=tz`+@o0Yw z+J^WV9UU#@iT~smWm{7`EZfx7BohS#jDGsnrH2m_UXQDI4>Bu&@Eaf)XZ|(~k9jZ_ z_ZWxq`emr|Xzc63$X|%rJll+IY;0_V?|(O6W`YCeEnxjf(UTDFL-@J*W=y-;YJV`; zte&CGf|v^iSUrL(V1rF)A^YGM9v(j6)c=JS`mZnWV1WUv&|&|TH8L{d9vmF}hxfbR z82m3^-_rhKSS4+OhpU&ZpOyf34Gj(b&6|EdCyLJu@m1w&8bCiKt?{ei;p}BIk$v;W z;K0BD2qXDg#@j>#gM45R2lxBQbC~&$0rR=di9ZMN#~@dC2t52le+>RFzyR~BA^19M RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_rounded/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)DPR}?-yIFE=Eh>D`1 zxDZ4LPAETaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jnsm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_rounded/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrAh9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/light_rounded/loader.gif b/mamweb/static/prettyPhoto/images/light_rounded/loader.gif deleted file mode 100644 index 7ac990cf04f2323f9723518bfd72ce102222cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 RLBjw5002ovPDHLkV1n=}nO*<@ diff --git a/mamweb/static/prettyPhoto/images/light_square/btnPrevious.png b/mamweb/static/prettyPhoto/images/light_square/btnPrevious.png deleted file mode 100644 index e0cd9c49af7fe2f6ab694843bdd3b90ce9217cb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1442 zcmV;T1zq}yP)DPR}?-yIFE=Eh>D`1 zxDZ4LPAETaM%Rg1tJM?Bq#w*j8W7$G%8Lw&qL>a zCw-c0=k{xpz@y)ROWmrvb?SWQJHxHA4-E}n(SMgP*YTP@kUTy+|!o71v*0Uj9&rU)Awvb?t|yrluuz?lkGJ^!4>Q=_3#Yh7?%3ySpO=mYhx}U&DY{ ztyUfuiv?p_UHazs_V(+RmX<#~!COX0NBtf&z+PNj(ACuyg9R|V-7WxmjW|KE>|Uds z@STc?cg@YsKf-UK&-yU{K0Q69%gakX4+sdLz`#JA)xX(ON1M&Y_pk=Ql>x3!!mdfe z!^0^!IG908e&ZRJBWj|fqrXs78-l{_=_v@jjIfe|ffq^G2m?4m^pL_e6dJiF1qN%N zN7iBv{W#*>#30@cz{pcPr!(of7J!S2ium5d#02Y>wRk`5Q93?XY=7I{-o9Wrc}-P4 zijR+f<+;7RJ8Nysxo|~Jaii!%Fot>rm`FYk+ zS69dHT3lRYgFQtzUOxh`I6)W|z%w&5?&_^S2ghNqocjra(~1+%0Vc$oy}iBE*4D=J zf`S5W8<5G#N$Tn8;ro!p#6)%$WMgB4Iy*brNyEd#%-Ht!Hs$8#((&;zr$TIOEG;Z7 z@LUWu*&qh%L!_jnsm&{8?^!)!Wk?@MMb%{ePRf%0|=@*@(HY=il?Tga{EH4qxvIv(ca)R=-l7m z=dj0mge~-X6I1W@6l_i33LLtW&2z{I<5w2)1HBr?f(#o-m~a)XCyiluc>E>604H)GzA+XomH+?%07*qoM6N<$f}$awVgLXD diff --git a/mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif b/mamweb/static/prettyPhoto/images/light_square/default_thumbnail.gif deleted file mode 100644 index 2b1280f32756805aaa557cea32c70b05a2aa46b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 227 zcmZ?wbhEHbG-6O>IKlt||NsBb%*?E=uIA+AG%zrD`0!y=R1_N<+vm@pjg5^ZBqW4{ zgcKDO=ggUN^5n@6A3hv7aNygwZyp{VGiT1cdi82iQIVXS9M~i*gyK&Yu&54*1lh^J znxLT2my$UzW7WEx*ZT@|&X?rguUPlK=KX)mqpTdl9&9X0-U1vFe5XV=OIC<1TA^wB zAR@v0R&G+mkFG;kP93Sa$EGmNNLpZ-!L!AgPrAh9_7P-L(M E0LAB0sQ>@~ diff --git a/mamweb/static/prettyPhoto/images/light_square/loader.gif b/mamweb/static/prettyPhoto/images/light_square/loader.gif deleted file mode 100644 index 7ac990cf04f2323f9723518bfd72ce102222cefa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 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 diff --git a/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js b/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js deleted file mode 100644 index 0436a493..00000000 --- a/mamweb/static/prettyPhoto/js/jquery.prettyPhoto.js +++ /dev/null @@ -1,911 +0,0 @@ -/* ------------------------------------------------------------------------ - Class: prettyPhoto - Use: Lightbox clone for jQuery - Author: Stephane Caron (http://www.no-margin-for-errors.com) - Version: 3.1.5 -------------------------------------------------------------------------- */ -(function($) { - $.prettyPhoto = {version: '3.1.5'}; - - $.fn.prettyPhoto = function(pp_settings) { - pp_settings = jQuery.extend({ - hook: 'rel', /* the attribute tag to use for prettyPhoto hooks. default: 'rel'. For HTML5, use "data-rel" or similar. */ - animation_speed: 'fast', /* fast/slow/normal */ - ajaxcallback: function() {}, - slideshow: 5000, /* false OR interval time in ms */ - autoplay_slideshow: false, /* true/false */ - opacity: 0.80, /* Value between 0 and 1 */ - show_title: true, /* true/false */ - allow_resize: true, /* Resize the photos bigger than viewport. true/false */ - allow_expand: true, /* Allow the user to expand a resized image. true/false */ - default_width: 500, - default_height: 344, - counter_separator_label: '/', /* The separator for the gallery counter 1 "of" 2 */ - theme: 'pp_default', /* light_rounded / dark_rounded / light_square / dark_square / facebook */ - horizontal_padding: 20, /* The padding on each side of the picture */ - hideflash: false, /* Hides all the flash object on a page, set to TRUE if flash appears over prettyPhoto */ - wmode: 'opaque', /* Set the flash wmode attribute */ - autoplay: true, /* Automatically start videos: True/False */ - modal: false, /* If set to true, only the close button will close the window */ - deeplinking: true, /* Allow prettyPhoto to update the url to enable deeplinking. */ - overlay_gallery: true, /* If set to true, a gallery will overlay the fullscreen image on mouse over */ - overlay_gallery_max: 30, /* Maximum number of pictures in the overlay gallery */ - keyboard_shortcuts: true, /* Set to false if you open forms inside prettyPhoto */ - changepicturecallback: function(){}, /* Called everytime an item is shown/changed */ - callback: function(){}, /* Called when prettyPhoto is closed */ - ie6_fallback: true, - markup: '

    \ -
     
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ - Expand \ -
    \ - next \ - previous \ -
    \ -
    \ -
    \ -
    \ - Previous \ -

    0/0

    \ - Next \ -
    \ -

    \ -
    {pp_social}
    \ - Close \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    \ -
    ', - gallery_markup: '', - image_markup: '', - flash_markup: '', - quicktime_markup: '', - iframe_markup: '', - inline_markup: '
    {content}
    ', - custom_markup: '', - social_tools: '' /* html or false to disable */ - }, pp_settings); - - // Global variables accessible only by prettyPhoto - var matchedObjects = this, percentBased = false, pp_dimensions, pp_open, - - // prettyPhoto container specific - pp_contentHeight, pp_contentWidth, pp_containerHeight, pp_containerWidth, - - // Window size - windowHeight = $(window).height(), windowWidth = $(window).width(), - - // Global elements - pp_slideshow; - - doresize = true, scroll_pos = _get_scroll(); - - // Window/Keyboard events - $(window).unbind('resize.prettyphoto').bind('resize.prettyphoto',function(){ _center_overlay(); _resize_overlay(); }); - - if(pp_settings.keyboard_shortcuts) { - $(document).unbind('keydown.prettyphoto').bind('keydown.prettyphoto',function(e){ - if(typeof $pp_pic_holder != 'undefined'){ - if($pp_pic_holder.is(':visible')){ - switch(e.keyCode){ - case 37: - $.prettyPhoto.changePage('previous'); - e.preventDefault(); - break; - case 39: - $.prettyPhoto.changePage('next'); - e.preventDefault(); - break; - case 27: - if(!settings.modal) - $.prettyPhoto.close(); - e.preventDefault(); - break; - }; - // return false; - }; - }; - }); - }; - - /** - * Initialize prettyPhoto. - */ - $.prettyPhoto.initialize = function() { - - settings = pp_settings; - - if(settings.theme == 'pp_default') settings.horizontal_padding = 16; - - // Find out if the picture is part of a set - theRel = $(this).attr(settings.hook); - galleryRegExp = /\[(?:.*)\]/; - isSet = (galleryRegExp.exec(theRel)) ? true : false; - - // Put the SRCs, TITLEs, ALTs into an array. - pp_images = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return $(n).attr('href'); }) : $.makeArray($(this).attr('href')); - pp_titles = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).find('img').attr('alt')) ? $(n).find('img').attr('alt') : ""; }) : $.makeArray($(this).find('img').attr('alt')); - pp_descriptions = (isSet) ? jQuery.map(matchedObjects, function(n, i){ if($(n).attr(settings.hook).indexOf(theRel) != -1) return ($(n).attr('title')) ? $(n).attr('title') : ""; }) : $.makeArray($(this).attr('title')); - - if(pp_images.length > settings.overlay_gallery_max) settings.overlay_gallery = false; - - set_position = jQuery.inArray($(this).attr('href'), pp_images); // Define where in the array the clicked item is positionned - rel_index = (isSet) ? set_position : $("a["+settings.hook+"^='"+theRel+"']").index($(this)); - - _build_overlay(this); // Build the overlay {this} being the caller - - if(settings.allow_resize) - $(window).bind('scroll.prettyphoto',function(){ _center_overlay(); }); - - - $.prettyPhoto.open(); - - return false; - } - - - /** - * Opens the prettyPhoto modal box. - * @param image {String,Array} Full path to the image to be open, can also be an array containing full images paths. - * @param title {String,Array} The title to be displayed with the picture, can also be an array containing all the titles. - * @param description {String,Array} The description to be displayed with the picture, can also be an array containing all the descriptions. - */ - $.prettyPhoto.open = function(event) { - if(typeof settings == "undefined"){ // Means it's an API call, need to manually get the settings and set the variables - settings = pp_settings; - pp_images = $.makeArray(arguments[0]); - pp_titles = (arguments[1]) ? $.makeArray(arguments[1]) : $.makeArray(""); - pp_descriptions = (arguments[2]) ? $.makeArray(arguments[2]) : $.makeArray(""); - isSet = (pp_images.length > 1) ? true : false; - set_position = (arguments[3])? arguments[3]: 0; - _build_overlay(event.target); // Build the overlay {this} being the caller - } - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','hidden'); // Hide the flash - - _checkPosition($(pp_images).size()); // Hide the next/previous links if on first or last images. - - $('.pp_loaderIcon').show(); - - if(settings.deeplinking) - setHashtag(); - - // Rebuild Facebook Like Button with updated href - if(settings.social_tools){ - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - $pp_pic_holder.find('.pp_social').html(facebook_like_link); - } - - // Fade the content in - if($ppt.is(':hidden')) $ppt.css('opacity',0).show(); - $pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity); - - // Display the current position - $pp_pic_holder.find('.currentTextHolder').text((set_position+1) + settings.counter_separator_label + $(pp_images).size()); - - // Set the description - if(typeof pp_descriptions[set_position] != 'undefined' && pp_descriptions[set_position] != ""){ - $pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position])); - }else{ - $pp_pic_holder.find('.pp_description').hide(); - } - - // Get the dimensions - movie_width = ( parseFloat(getParam('width',pp_images[set_position])) ) ? getParam('width',pp_images[set_position]) : settings.default_width.toString(); - movie_height = ( parseFloat(getParam('height',pp_images[set_position])) ) ? getParam('height',pp_images[set_position]) : settings.default_height.toString(); - - // If the size is % based, calculate according to window dimensions - percentBased=false; - if(movie_height.indexOf('%') != -1) { movie_height = parseFloat(($(window).height() * parseFloat(movie_height) / 100) - 150); percentBased = true; } - if(movie_width.indexOf('%') != -1) { movie_width = parseFloat(($(window).width() * parseFloat(movie_width) / 100) - 150); percentBased = true; } - - // Fade the holder - $pp_pic_holder.fadeIn(function(){ - // Set the title - (settings.show_title && pp_titles[set_position] != "" && typeof pp_titles[set_position] != "undefined") ? $ppt.html(unescape(pp_titles[set_position])) : $ppt.html(' '); - - imgPreloader = ""; - skipInjection = false; - - // Inject the proper content - switch(_getFileType(pp_images[set_position])){ - case 'image': - imgPreloader = new Image(); - - // Preload the neighbour images - nextImage = new Image(); - if(isSet && set_position < $(pp_images).size() -1) nextImage.src = pp_images[set_position + 1]; - prevImage = new Image(); - if(isSet && pp_images[set_position - 1]) prevImage.src = pp_images[set_position - 1]; - - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = settings.image_markup.replace(/{path}/g,pp_images[set_position]); - - imgPreloader.onload = function(){ - // Fit item to viewport - pp_dimensions = _fitToViewport(imgPreloader.width,imgPreloader.height); - - _showContent(); - }; - - imgPreloader.onerror = function(){ - alert('Image cannot be loaded. Make sure the path is correct and image exist.'); - $.prettyPhoto.close(); - }; - - imgPreloader.src = pp_images[set_position]; - break; - - case 'youtube': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - // Regular youtube link - movie_id = getParam('v',pp_images[set_position]); - - // youtu.be link - if(movie_id == ""){ - movie_id = pp_images[set_position].split('youtu.be/'); - movie_id = movie_id[1]; - if(movie_id.indexOf('?') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('?')); // Strip anything after the ? - - if(movie_id.indexOf('&') > 0) - movie_id = movie_id.substr(0,movie_id.indexOf('&')); // Strip anything after the & - } - - movie = 'http://www.youtube.com/embed/'+movie_id; - (getParam('rel',pp_images[set_position])) ? movie+="?rel="+getParam('rel',pp_images[set_position]) : movie+="?rel=1"; - - if(settings.autoplay) movie += "&autoplay=1"; - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie); - break; - - case 'vimeo': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - movie_id = pp_images[set_position]; - var regExp = /http(s?):\/\/(www\.)?vimeo.com\/(\d+)/; - var match = movie_id.match(regExp); - - movie = 'http://player.vimeo.com/video/'+ match[3] +'?title=0&byline=0&portrait=0'; - if(settings.autoplay) movie += "&autoplay=1;"; - - vimeo_width = pp_dimensions['width'] + '/embed/?moog_width='+ pp_dimensions['width']; - - toInject = settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,movie); - break; - - case 'quicktime': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - pp_dimensions['height']+=15; pp_dimensions['contentHeight']+=15; pp_dimensions['containerHeight']+=15; // Add space for the control bar - - toInject = settings.quicktime_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay); - break; - - case 'flash': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - flash_vars = pp_images[set_position]; - flash_vars = flash_vars.substring(pp_images[set_position].indexOf('flashvars') + 10,pp_images[set_position].length); - - filename = pp_images[set_position]; - filename = filename.substring(0,filename.indexOf('?')); - - toInject = settings.flash_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars); - break; - - case 'iframe': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - frame_url = pp_images[set_position]; - frame_url = frame_url.substr(0,frame_url.indexOf('iframe')-1); - - toInject = settings.iframe_markup.replace(/{width}/g,pp_dimensions['width']).replace(/{height}/g,pp_dimensions['height']).replace(/{path}/g,frame_url); - break; - - case 'ajax': - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport(movie_width,movie_height); - doresize = true; // Reset the dimensions - - skipInjection = true; - $.get(pp_images[set_position],function(responseHTML){ - toInject = settings.inline_markup.replace(/{content}/g,responseHTML); - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - _showContent(); - }); - - break; - - case 'custom': - pp_dimensions = _fitToViewport(movie_width,movie_height); // Fit item to viewport - - toInject = settings.custom_markup; - break; - - case 'inline': - // to get the item height clone it, apply default width, wrap it in the prettyPhoto containers , then delete - myClone = $(pp_images[set_position]).clone().append('
    ').css({'width':settings.default_width}).wrapInner('
    ').appendTo($('body')).show(); - doresize = false; // Make sure the dimensions are not resized. - pp_dimensions = _fitToViewport($(myClone).width(),$(myClone).height()); - doresize = true; // Reset the dimensions - $(myClone).remove(); - toInject = settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html()); - break; - }; - - if(!imgPreloader && !skipInjection){ - $pp_pic_holder.find('#pp_full_res')[0].innerHTML = toInject; - - // Show content - _showContent(); - }; - }); - - return false; - }; - - - /** - * Change page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changePage = function(direction){ - currentGalleryPage = 0; - - if(direction == 'previous') { - set_position--; - if (set_position < 0) set_position = $(pp_images).size()-1; - }else if(direction == 'next'){ - set_position++; - if(set_position > $(pp_images).size()-1) set_position = 0; - }else{ - set_position=direction; - }; - - rel_index = set_position; - - if(!doresize) doresize = true; // Allow the resizing of the images - if(settings.allow_expand) { - $('.pp_contract').removeClass('pp_contract').addClass('pp_expand'); - } - - _hideContent(function(){ $.prettyPhoto.open(); }); - }; - - - /** - * Change gallery page in the prettyPhoto modal box - * @param direction {String} Direction of the paging, previous or next. - */ - $.prettyPhoto.changeGalleryPage = function(direction){ - if(direction=='next'){ - currentGalleryPage ++; - - if(currentGalleryPage > totalPage) currentGalleryPage = 0; - }else if(direction=='previous'){ - currentGalleryPage --; - - if(currentGalleryPage < 0) currentGalleryPage = totalPage; - }else{ - currentGalleryPage = direction; - }; - - slide_speed = (direction == 'next' || direction == 'previous') ? settings.animation_speed : 0; - - slide_to = currentGalleryPage * (itemsPerPage * itemWidth); - - $pp_gallery.find('ul').animate({left:-slide_to},slide_speed); - }; - - - /** - * Start the slideshow... - */ - $.prettyPhoto.startSlideshow = function(){ - if(typeof pp_slideshow == 'undefined'){ - $pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){ - $.prettyPhoto.stopSlideshow(); - return false; - }); - pp_slideshow = setInterval($.prettyPhoto.startSlideshow,settings.slideshow); - }else{ - $.prettyPhoto.changePage('next'); - }; - } - - - /** - * Stop the slideshow... - */ - $.prettyPhoto.stopSlideshow = function(){ - $pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - clearInterval(pp_slideshow); - pp_slideshow=undefined; - } - - - /** - * Closes prettyPhoto. - */ - $.prettyPhoto.close = function(){ - if($pp_overlay.is(":animated")) return; - - $.prettyPhoto.stopSlideshow(); - - $pp_pic_holder.stop().find('object,embed').css('visibility','hidden'); - - $('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){ $(this).remove(); }); - - $pp_overlay.fadeOut(settings.animation_speed, function(){ - - if(settings.hideflash) $('object,embed,iframe[src*=youtube],iframe[src*=vimeo]').css('visibility','visible'); // Show the flash - - $(this).remove(); // No more need for the prettyPhoto markup - - $(window).unbind('scroll.prettyphoto'); - - clearHashtag(); - - settings.callback(); - - doresize = true; - - pp_open = false; - - delete settings; - }); - }; - - /** - * Set the proper sizes on the containers and animate the content in. - */ - function _showContent(){ - $('.pp_loaderIcon').hide(); - - // Calculate the opened top position of the pic holder - projectedTop = scroll_pos['scrollTop'] + ((windowHeight/2) - (pp_dimensions['containerHeight']/2)); - if(projectedTop < 0) projectedTop = 0; - - $ppt.fadeTo(settings.animation_speed,1); - - // Resize the content holder - $pp_pic_holder.find('.pp_content') - .animate({ - height:pp_dimensions['contentHeight'], - width:pp_dimensions['contentWidth'] - },settings.animation_speed); - - // Resize picture the holder - $pp_pic_holder.animate({ - 'top': projectedTop, - 'left': ((windowWidth/2) - (pp_dimensions['containerWidth']/2) < 0) ? 0 : (windowWidth/2) - (pp_dimensions['containerWidth']/2), - width:pp_dimensions['containerWidth'] - },settings.animation_speed,function(){ - $pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(pp_dimensions['height']).width(pp_dimensions['width']); - - $pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed); // Fade the new content - - // Show the nav - if(isSet && _getFileType(pp_images[set_position])=="image") { $pp_pic_holder.find('.pp_hoverContainer').show(); }else{ $pp_pic_holder.find('.pp_hoverContainer').hide(); } - - if(settings.allow_expand) { - if(pp_dimensions['resized']){ // Fade the resizing link if the image is resized - $('a.pp_expand,a.pp_contract').show(); - }else{ - $('a.pp_expand').hide(); - } - } - - if(settings.autoplay_slideshow && !pp_slideshow && !pp_open) $.prettyPhoto.startSlideshow(); - - settings.changepicturecallback(); // Callback! - - pp_open = true; - }); - - _insert_gallery(); - pp_settings.ajaxcallback(); - }; - - /** - * Hide the content...DUH! - */ - function _hideContent(callback){ - // Fade out the current picture - $pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden'); - $pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){ - $('.pp_loaderIcon').show(); - - callback(); - }); - }; - - /** - * Check the item position in the gallery array, hide or show the navigation links - * @param setCount {integer} The total number of items in the set - */ - function _checkPosition(setCount){ - (setCount > 1) ? $('.pp_nav').show() : $('.pp_nav').hide(); // Hide the bottom nav if it's not a set. - }; - - /** - * Resize the item dimensions if it's bigger than the viewport - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - * @return An array containin the "fitted" dimensions - */ - function _fitToViewport(width,height){ - resized = false; - - _getDimensions(width,height); - - // Define them in case there's no resize needed - imageWidth = width, imageHeight = height; - - if( ((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)) && doresize && settings.allow_resize && !percentBased) { - resized = true, fitting = false; - - while (!fitting){ - if((pp_containerWidth > windowWidth)){ - imageWidth = (windowWidth - 200); - imageHeight = (height/width) * imageWidth; - }else if((pp_containerHeight > windowHeight)){ - imageHeight = (windowHeight - 200); - imageWidth = (width/height) * imageHeight; - }else{ - fitting = true; - }; - - pp_containerHeight = imageHeight, pp_containerWidth = imageWidth; - }; - - - - if((pp_containerWidth > windowWidth) || (pp_containerHeight > windowHeight)){ - _fitToViewport(pp_containerWidth,pp_containerHeight) - }; - - _getDimensions(imageWidth,imageHeight); - }; - - return { - width:Math.floor(imageWidth), - height:Math.floor(imageHeight), - containerHeight:Math.floor(pp_containerHeight), - containerWidth:Math.floor(pp_containerWidth) + (settings.horizontal_padding * 2), - contentHeight:Math.floor(pp_contentHeight), - contentWidth:Math.floor(pp_contentWidth), - resized:resized - }; - }; - - /** - * Get the containers dimensions according to the item size - * @param width {integer} Width of the item to be opened - * @param height {integer} Height of the item to be opened - */ - function _getDimensions(width,height){ - width = parseFloat(width); - height = parseFloat(height); - - // Get the details height, to do so, I need to clone it since it's invisible - $pp_details = $pp_pic_holder.find('.pp_details'); - $pp_details.width(width); - detailsHeight = parseFloat($pp_details.css('marginTop')) + parseFloat($pp_details.css('marginBottom')); - - $pp_details = $pp_details.clone().addClass(settings.theme).width(width).appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - detailsHeight += $pp_details.height(); - detailsHeight = (detailsHeight <= 34) ? 36 : detailsHeight; // Min-height for the details - $pp_details.remove(); - - // Get the titles height, to do so, I need to clone it since it's invisible - $pp_title = $pp_pic_holder.find('.ppt'); - $pp_title.width(width); - titleHeight = parseFloat($pp_title.css('marginTop')) + parseFloat($pp_title.css('marginBottom')); - $pp_title = $pp_title.clone().appendTo($('body')).css({ - 'position':'absolute', - 'top':-10000 - }); - titleHeight += $pp_title.height(); - $pp_title.remove(); - - // Get the container size, to resize the holder to the right dimensions - pp_contentHeight = height + detailsHeight; - pp_contentWidth = width; - pp_containerHeight = pp_contentHeight + titleHeight + $pp_pic_holder.find('.pp_top').height() + $pp_pic_holder.find('.pp_bottom').height(); - pp_containerWidth = width; - } - - function _getFileType(itemSrc){ - if (itemSrc.match(/youtube\.com\/watch/i) || itemSrc.match(/youtu\.be/i)) { - return 'youtube'; - }else if (itemSrc.match(/vimeo\.com/i)) { - return 'vimeo'; - }else if(itemSrc.match(/\b.mov\b/i)){ - return 'quicktime'; - }else if(itemSrc.match(/\b.swf\b/i)){ - return 'flash'; - }else if(itemSrc.match(/\biframe=true\b/i)){ - return 'iframe'; - }else if(itemSrc.match(/\bajax=true\b/i)){ - return 'ajax'; - }else if(itemSrc.match(/\bcustom=true\b/i)){ - return 'custom'; - }else if(itemSrc.substr(0,1) == '#'){ - return 'inline'; - }else{ - return 'image'; - }; - }; - - function _center_overlay(){ - if(doresize && typeof $pp_pic_holder != 'undefined') { - scroll_pos = _get_scroll(); - contentHeight = $pp_pic_holder.height(), contentwidth = $pp_pic_holder.width(); - - projectedTop = (windowHeight/2) + scroll_pos['scrollTop'] - (contentHeight/2); - if(projectedTop < 0) projectedTop = 0; - - if(contentHeight > windowHeight) - return; - - $pp_pic_holder.css({ - 'top': projectedTop, - 'left': (windowWidth/2) + scroll_pos['scrollLeft'] - (contentwidth/2) - }); - }; - }; - - function _get_scroll(){ - if (self.pageYOffset) { - return {scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}; - } else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict - return {scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}; - } else if (document.body) {// all other Explorers - return {scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}; - }; - }; - - function _resize_overlay() { - windowHeight = $(window).height(), windowWidth = $(window).width(); - - if(typeof $pp_overlay != "undefined") $pp_overlay.height($(document).height()).width(windowWidth); - }; - - function _insert_gallery(){ - if(isSet && settings.overlay_gallery && _getFileType(pp_images[set_position])=="image") { - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - navWidth = (settings.theme == "facebook" || settings.theme == "pp_default") ? 50 : 30; // Define the arrow width depending on the theme - - itemsPerPage = Math.floor((pp_dimensions['containerWidth'] - 100 - navWidth) / itemWidth); - itemsPerPage = (itemsPerPage < pp_images.length) ? itemsPerPage : pp_images.length; - totalPage = Math.ceil(pp_images.length / itemsPerPage) - 1; - - // Hide the nav in the case there's no need for links - if(totalPage == 0){ - navWidth = 0; // No nav means no width! - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').hide(); - }else{ - $pp_gallery.find('.pp_arrow_next,.pp_arrow_previous').show(); - }; - - galleryWidth = itemsPerPage * itemWidth; - fullGalleryWidth = pp_images.length * itemWidth; - - // Set the proper width to the gallery items - $pp_gallery - .css('margin-left',-((galleryWidth/2) + (navWidth/2))) - .find('div:first').width(galleryWidth+5) - .find('ul').width(fullGalleryWidth) - .find('li.selected').removeClass('selected'); - - goToPage = (Math.floor(set_position/itemsPerPage) < totalPage) ? Math.floor(set_position/itemsPerPage) : totalPage; - - $.prettyPhoto.changeGalleryPage(goToPage); - - $pp_gallery_li.filter(':eq('+set_position+')').addClass('selected'); - }else{ - $pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave'); - // $pp_gallery.hide(); - } - } - - function _build_overlay(caller){ - // Inject Social Tool markup into General markup - if(settings.social_tools) - facebook_like_link = settings.social_tools.replace('{location_href}', encodeURIComponent(location.href)); - - settings.markup = settings.markup.replace('{pp_social}',''); - - $('body').append(settings.markup); // Inject the markup - - $pp_pic_holder = $('.pp_pic_holder') , $ppt = $('.ppt'), $pp_overlay = $('div.pp_overlay'); // Set my global selectors - - // Inject the inline gallery! - if(isSet && settings.overlay_gallery) { - currentGalleryPage = 0; - toInject = ""; - for (var i=0; i < pp_images.length; i++) { - if(!pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)){ - classname = 'default'; - img_src = ''; - }else{ - classname = ''; - img_src = pp_images[i]; - } - toInject += "
  • "; - }; - - toInject = settings.gallery_markup.replace(/{gallery}/g,toInject); - - $pp_pic_holder.find('#pp_full_res').after(toInject); - - $pp_gallery = $('.pp_pic_holder .pp_gallery'), $pp_gallery_li = $pp_gallery.find('li'); // Set the gallery selectors - - $pp_gallery.find('.pp_arrow_next').click(function(){ - $.prettyPhoto.changeGalleryPage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_gallery.find('.pp_arrow_previous').click(function(){ - $.prettyPhoto.changeGalleryPage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_content').hover( - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn(); - }, - function(){ - $pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut(); - }); - - itemWidth = 52+5; // 52 beign the thumb width, 5 being the right margin. - $pp_gallery_li.each(function(i){ - $(this) - .find('a') - .click(function(){ - $.prettyPhoto.changePage(i); - $.prettyPhoto.stopSlideshow(); - return false; - }); - }); - }; - - - // Inject the play/pause if it's a slideshow - if(settings.slideshow){ - $pp_pic_holder.find('.pp_nav').prepend('Play') - $pp_pic_holder.find('.pp_nav .pp_play').click(function(){ - $.prettyPhoto.startSlideshow(); - return false; - }); - } - - $pp_pic_holder.attr('class','pp_pic_holder ' + settings.theme); // Set the proper theme - - $pp_overlay - .css({ - 'opacity':0, - 'height':$(document).height(), - 'width':$(window).width() - }) - .bind('click',function(){ - if(!settings.modal) $.prettyPhoto.close(); - }); - - $('a.pp_close').bind('click',function(){ $.prettyPhoto.close(); return false; }); - - - if(settings.allow_expand) { - $('a.pp_expand').bind('click',function(e){ - // Expand the image - if($(this).hasClass('pp_expand')){ - $(this).removeClass('pp_expand').addClass('pp_contract'); - doresize = false; - }else{ - $(this).removeClass('pp_contract').addClass('pp_expand'); - doresize = true; - }; - - _hideContent(function(){ $.prettyPhoto.open(); }); - - return false; - }); - } - - $pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){ - $.prettyPhoto.changePage('previous'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - $pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){ - $.prettyPhoto.changePage('next'); - $.prettyPhoto.stopSlideshow(); - return false; - }); - - _center_overlay(); // Center it - }; - - if(!pp_alreadyInitialized && getHashtag()){ - pp_alreadyInitialized = true; - - // Grab the rel index to trigger the click on the correct element - hashIndex = getHashtag(); - hashRel = hashIndex; - hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1); - hashRel = hashRel.substring(0,hashRel.indexOf('/')); - - // Little timeout to make sure all the prettyPhoto initialize scripts has been run. - // Useful in the event the page contain several init scripts. - setTimeout(function(){ $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50); - } - - return this.unbind('click.prettyphoto').bind('click.prettyphoto',$.prettyPhoto.initialize); // Return the jQuery object for chaining. The unbind method is used to avoid click conflict when the plugin is called more than once - }; - - function getHashtag(){ - var url = location.href; - hashtag = (url.indexOf('#prettyPhoto') !== -1) ? decodeURI(url.substring(url.indexOf('#prettyPhoto')+1,url.length)) : false; - - return hashtag; - }; - - function setHashtag(){ - if(typeof theRel == 'undefined') return; // theRel is set on normal calls, it's impossible to deeplink using the API - location.hash = theRel + '/'+rel_index+'/'; - }; - - function clearHashtag(){ - if ( location.href.indexOf('#prettyPhoto') !== -1 ) location.hash = "prettyPhoto"; - } - - function getParam(name,url){ - name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); - var regexS = "[\\?&]"+name+"=([^&#]*)"; - var regex = new RegExp( regexS ); - var results = regex.exec( url ); - return ( results == null ) ? "" : results[1]; - } - -})(jQuery); - -var pp_alreadyInitialized = false; // Used for the deep linking to make sure not to call the same function several times. diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 027f296f..c30a98bf 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -14,7 +14,6 @@ - @@ -123,16 +122,6 @@ - - {% if april == 2021 %} - {% if april == 2021 %} +{% endif %} + + + +{% if april == 2023 %} + +{% endif %} \ No newline at end of file diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index f8012564..b8ba0039 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -121,64 +121,7 @@ - {% if april == 2021 %} - - {% endif %} - {% if april == 2023 %} - - {% endif %} + {% include 'april.html' %} {% block js %}{% endblock %} From 9cca7beba5e267266c3269c805756a9def29a877 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 14 Feb 2024 09:19:45 +0100 Subject: [PATCH 333/515] Update bootstrapu --- docs/css.rst | 2 +- .../static/bootstrap/css/bootstrap-theme.css | 469 - mamweb/static/bootstrap/css/bootstrap.css | 16543 +++++++++++----- .../fonts/glyphicons-halflings-regular.eot | Bin 20335 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 229 - .../fonts/glyphicons-halflings-regular.ttf | Bin 41280 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23320 -> 0 bytes mamweb/static/bootstrap/js/bootstrap.js | 6308 ++++-- mamweb/static/css/base.css | 3 +- 9 files changed, 15384 insertions(+), 8170 deletions(-) delete mode 100644 mamweb/static/bootstrap/css/bootstrap-theme.css delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf delete mode 100644 mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff diff --git a/docs/css.rst b/docs/css.rst index a6cf96b1..b2ec20ed 100644 --- a/docs/css.rst +++ b/docs/css.rst @@ -13,7 +13,7 @@ Dále jsem separoval CSSka pro **galerii** (potřebuje hodně specifických styl Dále web (asi) používá externí frameworky (v separátních složkách – mají k sobě i JS a podobné věci): -- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap přidává ``font-size:14px``, bez čehož se web úplně rozpadne) +- bootstrap: dělá nějaké basic stylování, *web je na něm hodně závislý* (například jsem zjistil, že bootstrap kdysi přidával ``font-size:14px``, bez čehož se web úplně rozpadnul) Pak jsou tu ``mamweb-dev.css`` a ``printtable.css``, co jsem si ještě nerozmyslel, co s tím. diff --git a/mamweb/static/bootstrap/css/bootstrap-theme.css b/mamweb/static/bootstrap/css/bootstrap-theme.css deleted file mode 100644 index eb845eb5..00000000 --- a/mamweb/static/bootstrap/css/bootstrap-theme.css +++ /dev/null @@ -1,469 +0,0 @@ -/*! - * Bootstrap v3.3.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); -} -.btn-default:active, -.btn-primary:active, -.btn-success:active, -.btn-info:active, -.btn-warning:active, -.btn-danger:active, -.btn-default.active, -.btn-primary.active, -.btn-success.active, -.btn-info.active, -.btn-warning.active, -.btn-danger.active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn-default .badge, -.btn-primary .badge, -.btn-success .badge, -.btn-info .badge, -.btn-warning .badge, -.btn-danger .badge { - text-shadow: none; -} -.btn:active, -.btn.active { - background-image: none; -} -.btn-default { - text-shadow: 0 1px 0 #fff; - background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0)); - background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #dbdbdb; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus { - background-color: #e0e0e0; - background-position: 0 -15px; -} -.btn-default:active, -.btn-default.active { - background-color: #e0e0e0; - border-color: #dbdbdb; -} -.btn-default:disabled, -.btn-default[disabled] { - background-color: #e0e0e0; - background-image: none; -} -.btn-primary { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88)); - background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #245580; -} -.btn-primary:hover, -.btn-primary:focus { - background-color: #265a88; - background-position: 0 -15px; -} -.btn-primary:active, -.btn-primary.active { - background-color: #265a88; - border-color: #245580; -} -.btn-primary:disabled, -.btn-primary[disabled] { - background-color: #265a88; - background-image: none; -} -.btn-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #3e8f3e; -} -.btn-success:hover, -.btn-success:focus { - background-color: #419641; - background-position: 0 -15px; -} -.btn-success:active, -.btn-success.active { - background-color: #419641; - border-color: #3e8f3e; -} -.btn-success:disabled, -.btn-success[disabled] { - background-color: #419641; - background-image: none; -} -.btn-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #28a4c9; -} -.btn-info:hover, -.btn-info:focus { - background-color: #2aabd2; - background-position: 0 -15px; -} -.btn-info:active, -.btn-info.active { - background-color: #2aabd2; - border-color: #28a4c9; -} -.btn-info:disabled, -.btn-info[disabled] { - background-color: #2aabd2; - background-image: none; -} -.btn-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #e38d13; -} -.btn-warning:hover, -.btn-warning:focus { - background-color: #eb9316; - background-position: 0 -15px; -} -.btn-warning:active, -.btn-warning.active { - background-color: #eb9316; - border-color: #e38d13; -} -.btn-warning:disabled, -.btn-warning[disabled] { - background-color: #eb9316; - background-image: none; -} -.btn-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #b92c28; -} -.btn-danger:hover, -.btn-danger:focus { - background-color: #c12e2a; - background-position: 0 -15px; -} -.btn-danger:active, -.btn-danger.active { - background-color: #c12e2a; - border-color: #b92c28; -} -.btn-danger:disabled, -.btn-danger[disabled] { - background-color: #c12e2a; - background-image: none; -} -.thumbnail, -.img-thumbnail { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - background-color: #e8e8e8; - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - background-color: #2e6da4; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; -} -.navbar-default { - background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -o-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f8f8f8)); - background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); -} -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2)); - background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); -} -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255, 255, 255, .25); -} -.navbar-inverse { - background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222)); - background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; -} -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f)); - background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); -} -.navbar-inverse .navbar-brand, -.navbar-inverse .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); -} -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} -@media (max-width: 767px) { - .navbar .navbar-nav .open .dropdown-menu > .active > a, - .navbar .navbar-nav .open .dropdown-menu > .active > a:hover, - .navbar .navbar-nav .open .dropdown-menu > .active > a:focus { - color: #fff; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; - } -} -.alert { - text-shadow: 0 1px 0 rgba(255, 255, 255, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); -} -.alert-success { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); - background-repeat: repeat-x; - border-color: #b2dba1; -} -.alert-info { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); - background-repeat: repeat-x; - border-color: #9acfea; -} -.alert-warning { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); - background-repeat: repeat-x; - border-color: #f5e79e; -} -.alert-danger { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3)); - background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); - background-repeat: repeat-x; - border-color: #dca7a7; -} -.progress { - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090)); - background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44)); - background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5)); - background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f)); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c)); - background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-striped { - background-image: -webkit-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-image: -o-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-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); -} -.list-group { - border-radius: 4px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 #286090; - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0); - background-repeat: repeat-x; - border-color: #2b669a; -} -.list-group-item.active .badge, -.list-group-item.active:hover .badge, -.list-group-item.active:focus .badge { - text-shadow: none; -} -.panel { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: 0 1px 2px rgba(0, 0, 0, .05); -} -.panel-default > .panel-heading { - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8)); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.panel-primary > .panel-heading { - background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4)); - background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0); - background-repeat: repeat-x; -} -.panel-success > .panel-heading { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6)); - background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); - background-repeat: repeat-x; -} -.panel-info > .panel-heading { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3)); - background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); - background-repeat: repeat-x; -} -.panel-warning > .panel-heading { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc)); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); - background-repeat: repeat-x; -} -.panel-danger > .panel-heading { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc)); - background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); - background-repeat: repeat-x; -} -.well { - background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5)); - background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; - border-color: #dcdcdc; - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); -} diff --git a/mamweb/static/bootstrap/css/bootstrap.css b/mamweb/static/bootstrap/css/bootstrap.css index bd20fe85..30aae55e 100644 --- a/mamweb/static/bootstrap/css/bootstrap.css +++ b/mamweb/static/bootstrap/css/bootstrap.css @@ -1,6331 +1,12068 @@ +@charset "UTF-8"; /*! - * Bootstrap v3.3.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + * Bootstrap v5.3.2 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) */ +:root, +[data-bs-theme=light] { + --bs-blue: #0d6efd; + --bs-indigo: #6610f2; + --bs-purple: #6f42c1; + --bs-pink: #d63384; + --bs-red: #dc3545; + --bs-orange: #fd7e14; + --bs-yellow: #ffc107; + --bs-green: #198754; + --bs-teal: #20c997; + --bs-cyan: #0dcaf0; + --bs-black: #000; + --bs-white: #fff; + --bs-gray: #6c757d; + --bs-gray-dark: #343a40; + --bs-gray-100: #f8f9fa; + --bs-gray-200: #e9ecef; + --bs-gray-300: #dee2e6; + --bs-gray-400: #ced4da; + --bs-gray-500: #adb5bd; + --bs-gray-600: #6c757d; + --bs-gray-700: #495057; + --bs-gray-800: #343a40; + --bs-gray-900: #212529; + --bs-primary: #0d6efd; + --bs-secondary: #6c757d; + --bs-success: #198754; + --bs-info: #0dcaf0; + --bs-warning: #ffc107; + --bs-danger: #dc3545; + --bs-light: #f8f9fa; + --bs-dark: #212529; + --bs-primary-rgb: 13, 110, 253; + --bs-secondary-rgb: 108, 117, 125; + --bs-success-rgb: 25, 135, 84; + --bs-info-rgb: 13, 202, 240; + --bs-warning-rgb: 255, 193, 7; + --bs-danger-rgb: 220, 53, 69; + --bs-light-rgb: 248, 249, 250; + --bs-dark-rgb: 33, 37, 41; + --bs-primary-text-emphasis: #052c65; + --bs-secondary-text-emphasis: #2b2f32; + --bs-success-text-emphasis: #0a3622; + --bs-info-text-emphasis: #055160; + --bs-warning-text-emphasis: #664d03; + --bs-danger-text-emphasis: #58151c; + --bs-light-text-emphasis: #495057; + --bs-dark-text-emphasis: #495057; + --bs-primary-bg-subtle: #cfe2ff; + --bs-secondary-bg-subtle: #e2e3e5; + --bs-success-bg-subtle: #d1e7dd; + --bs-info-bg-subtle: #cff4fc; + --bs-warning-bg-subtle: #fff3cd; + --bs-danger-bg-subtle: #f8d7da; + --bs-light-bg-subtle: #fcfcfd; + --bs-dark-bg-subtle: #ced4da; + --bs-primary-border-subtle: #9ec5fe; + --bs-secondary-border-subtle: #c4c8cb; + --bs-success-border-subtle: #a3cfbb; + --bs-info-border-subtle: #9eeaf9; + --bs-warning-border-subtle: #ffe69c; + --bs-danger-border-subtle: #f1aeb5; + --bs-light-border-subtle: #e9ecef; + --bs-dark-border-subtle: #adb5bd; + --bs-white-rgb: 255, 255, 255; + --bs-black-rgb: 0, 0, 0; + --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0)); + --bs-body-font-family: var(--bs-font-sans-serif); + --bs-body-font-size: 1rem; + --bs-body-font-weight: 400; + --bs-body-line-height: 1.5; + --bs-body-color: #212529; + --bs-body-color-rgb: 33, 37, 41; + --bs-body-bg: #fff; + --bs-body-bg-rgb: 255, 255, 255; + --bs-emphasis-color: #000; + --bs-emphasis-color-rgb: 0, 0, 0; + --bs-secondary-color: rgba(33, 37, 41, 0.75); + --bs-secondary-color-rgb: 33, 37, 41; + --bs-secondary-bg: #e9ecef; + --bs-secondary-bg-rgb: 233, 236, 239; + --bs-tertiary-color: rgba(33, 37, 41, 0.5); + --bs-tertiary-color-rgb: 33, 37, 41; + --bs-tertiary-bg: #f8f9fa; + --bs-tertiary-bg-rgb: 248, 249, 250; + --bs-heading-color: inherit; + --bs-link-color: #0d6efd; + --bs-link-color-rgb: 13, 110, 253; + --bs-link-decoration: underline; + --bs-link-hover-color: #0a58ca; + --bs-link-hover-color-rgb: 10, 88, 202; + --bs-code-color: #d63384; + --bs-highlight-color: #212529; + --bs-highlight-bg: #fff3cd; + --bs-border-width: 1px; + --bs-border-style: solid; + --bs-border-color: #dee2e6; + --bs-border-color-translucent: rgba(0, 0, 0, 0.175); + --bs-border-radius: 0.375rem; + --bs-border-radius-sm: 0.25rem; + --bs-border-radius-lg: 0.5rem; + --bs-border-radius-xl: 1rem; + --bs-border-radius-xxl: 2rem; + --bs-border-radius-2xl: var(--bs-border-radius-xxl); + --bs-border-radius-pill: 50rem; + --bs-box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15); + --bs-box-shadow-sm: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075); + --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.175); + --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, 0.075); + --bs-focus-ring-width: 0.25rem; + --bs-focus-ring-opacity: 0.25; + --bs-focus-ring-color: rgba(13, 110, 253, 0.25); + --bs-form-valid-color: #198754; + --bs-form-valid-border-color: #198754; + --bs-form-invalid-color: #dc3545; + --bs-form-invalid-border-color: #dc3545; +} -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -html { - font-family: sans-serif; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; +[data-bs-theme=dark] { + color-scheme: dark; + --bs-body-color: #dee2e6; + --bs-body-color-rgb: 222, 226, 230; + --bs-body-bg: #212529; + --bs-body-bg-rgb: 33, 37, 41; + --bs-emphasis-color: #fff; + --bs-emphasis-color-rgb: 255, 255, 255; + --bs-secondary-color: rgba(222, 226, 230, 0.75); + --bs-secondary-color-rgb: 222, 226, 230; + --bs-secondary-bg: #343a40; + --bs-secondary-bg-rgb: 52, 58, 64; + --bs-tertiary-color: rgba(222, 226, 230, 0.5); + --bs-tertiary-color-rgb: 222, 226, 230; + --bs-tertiary-bg: #2b3035; + --bs-tertiary-bg-rgb: 43, 48, 53; + --bs-primary-text-emphasis: #6ea8fe; + --bs-secondary-text-emphasis: #a7acb1; + --bs-success-text-emphasis: #75b798; + --bs-info-text-emphasis: #6edff6; + --bs-warning-text-emphasis: #ffda6a; + --bs-danger-text-emphasis: #ea868f; + --bs-light-text-emphasis: #f8f9fa; + --bs-dark-text-emphasis: #dee2e6; + --bs-primary-bg-subtle: #031633; + --bs-secondary-bg-subtle: #161719; + --bs-success-bg-subtle: #051b11; + --bs-info-bg-subtle: #032830; + --bs-warning-bg-subtle: #332701; + --bs-danger-bg-subtle: #2c0b0e; + --bs-light-bg-subtle: #343a40; + --bs-dark-bg-subtle: #1a1d20; + --bs-primary-border-subtle: #084298; + --bs-secondary-border-subtle: #41464b; + --bs-success-border-subtle: #0f5132; + --bs-info-border-subtle: #087990; + --bs-warning-border-subtle: #997404; + --bs-danger-border-subtle: #842029; + --bs-light-border-subtle: #495057; + --bs-dark-border-subtle: #343a40; + --bs-heading-color: inherit; + --bs-link-color: #6ea8fe; + --bs-link-hover-color: #8bb9fe; + --bs-link-color-rgb: 110, 168, 254; + --bs-link-hover-color-rgb: 139, 185, 254; + --bs-code-color: #e685b5; + --bs-highlight-color: #dee2e6; + --bs-highlight-bg: #664d03; + --bs-border-color: #495057; + --bs-border-color-translucent: rgba(255, 255, 255, 0.15); + --bs-form-valid-color: #75b798; + --bs-form-valid-border-color: #75b798; + --bs-form-invalid-color: #ea868f; + --bs-form-invalid-border-color: #ea868f; +} + +*, +*::before, +*::after { + box-sizing: border-box; } + +@media (prefers-reduced-motion: no-preference) { + :root { + scroll-behavior: smooth; + } +} + body { margin: 0; + font-family: var(--bs-body-font-family); + font-size: var(--bs-body-font-size); + font-weight: var(--bs-body-font-weight); + line-height: var(--bs-body-line-height); + color: var(--bs-body-color); + text-align: var(--bs-body-text-align); + background-color: var(--bs-body-bg); + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -main, -menu, -nav, -section, -summary { - display: block; + +hr { + margin: 1rem 0; + color: inherit; + border: 0; + border-top: var(--bs-border-width) solid; + opacity: 0.25; } -audio, -canvas, -progress, -video { - display: inline-block; - vertical-align: baseline; + +h6, .h6, h5, .h5, h4, .h4, h3, .h3, h2, .h2, h1, .h1 { + margin-top: 0; + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; + color: var(--bs-heading-color); } -audio:not([controls]) { - display: none; - height: 0; + +h1, .h1 { + font-size: calc(1.375rem + 1.5vw); } -[hidden], -template { - display: none; +@media (min-width: 1200px) { + h1, .h1 { + font-size: 2.5rem; + } } -a { - background-color: transparent; + +h2, .h2 { + font-size: calc(1.325rem + 0.9vw); } -a:active, -a:hover { - outline: 0; +@media (min-width: 1200px) { + h2, .h2 { + font-size: 2rem; + } +} + +h3, .h3 { + font-size: calc(1.3rem + 0.6vw); +} +@media (min-width: 1200px) { + h3, .h3 { + font-size: 1.75rem; + } +} + +h4, .h4 { + font-size: calc(1.275rem + 0.3vw); +} +@media (min-width: 1200px) { + h4, .h4 { + font-size: 1.5rem; + } +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; } + +p { + margin-top: 0; + margin-bottom: 1rem; +} + abbr[title] { - border-bottom: 1px dotted; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; } -b, -strong { - font-weight: bold; + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul { + padding-left: 2rem; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; } -dfn { - font-style: italic; + +dt { + font-weight: 700; } -h1 { - margin: .67em 0; - font-size: 2em; + +dd { + margin-bottom: 0.5rem; + margin-left: 0; } -mark { - color: #000; - background: #ff0; + +blockquote { + margin: 0 0 1rem; } -small { - font-size: 80%; + +b, +strong { + font-weight: bolder; +} + +small, .small { + font-size: 0.875em; +} + +mark, .mark { + padding: 0.1875em; + color: var(--bs-highlight-color); + background-color: var(--bs-highlight-bg); } + sub, sup { position: relative; - font-size: 75%; + font-size: 0.75em; line-height: 0; vertical-align: baseline; } -sup { - top: -.5em; -} + sub { - bottom: -.25em; -} -img { - border: 0; + bottom: -0.25em; } -svg:not(:root) { - overflow: hidden; + +sup { + top: -0.5em; } -figure { - margin: 1em 40px; + +a { + color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 1)); + text-decoration: underline; } -hr { - height: 0; - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; +a:hover { + --bs-link-color-rgb: var(--bs-link-hover-color-rgb); } -pre { - overflow: auto; + +a:not([href]):not([class]), a:not([href]):not([class]):hover { + color: inherit; + text-decoration: none; } + +pre, code, kbd, -pre, samp { - font-family: monospace, monospace; + font-family: var(--bs-font-monospace); font-size: 1em; } -button, -input, -optgroup, -select, -textarea { - margin: 0; - font: inherit; - color: inherit; -} -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 { - padding: 0; - border: 0; -} -input { - line-height: normal; -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; + +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; + font-size: 0.875em; } -input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button { - height: auto; +pre code { + font-size: inherit; + color: inherit; + word-break: normal; } -input[type="search"] { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; + +code { + font-size: 0.875em; + color: var(--bs-code-color); + word-wrap: break-word; } -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; +a > code { + color: inherit; } -fieldset { - padding: .35em .625em .75em; - margin: 0 2px; - border: 1px solid #c0c0c0; + +kbd { + padding: 0.1875rem 0.375rem; + font-size: 0.875em; + color: var(--bs-body-bg); + background-color: var(--bs-body-color); + border-radius: 0.25rem; } -legend { +kbd kbd { padding: 0; - border: 0; + font-size: 1em; } -textarea { - overflow: auto; + +figure { + margin: 0 0 1rem; } -optgroup { - font-weight: bold; + +img, +svg { + vertical-align: middle; } + table { - border-spacing: 0; + caption-side: bottom; border-collapse: collapse; } + +caption { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-secondary-color); + text-align: left; +} + +th { + text-align: inherit; + text-align: -webkit-match-parent; +} + +thead, +tbody, +tfoot, +tr, td, th { - padding: 0; + border-color: inherit; + border-style: solid; + border-width: 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; - -webkit-box-shadow: none !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; - } - select { - background: #fff !important; - } - .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; - } +label { + display: inline-block; } -@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.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); +button { + border-radius: 0; } -.glyphicon { - position: relative; - top: 1px; - display: inline-block; - font-family: 'Glyphicons Halflings'; - font-style: normal; - font-weight: normal; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; +button:focus:not(:focus-visible) { + outline: 0; } -.glyphicon-asterisk:before { - content: "\2a"; + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; } -.glyphicon-plus:before { - content: "\2b"; + +button, +select { + text-transform: none; } -.glyphicon-euro:before, -.glyphicon-eur:before { - content: "\20ac"; + +[role=button] { + cursor: pointer; } -.glyphicon-minus:before { - content: "\2212"; + +select { + word-wrap: normal; } -.glyphicon-cloud:before { - content: "\2601"; +select:disabled { + opacity: 1; } -.glyphicon-envelope:before { - content: "\2709"; + +[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator { + display: none !important; } -.glyphicon-pencil:before { - content: "\270f"; + +button, +[type=button], +[type=reset], +[type=submit] { + -webkit-appearance: button; } -.glyphicon-glass:before { - content: "\e001"; +button:not(:disabled), +[type=button]:not(:disabled), +[type=reset]:not(:disabled), +[type=submit]:not(:disabled) { + cursor: pointer; } -.glyphicon-music:before { - content: "\e002"; + +::-moz-focus-inner { + padding: 0; + border-style: none; } -.glyphicon-search:before { - content: "\e003"; + +textarea { + resize: vertical; } -.glyphicon-heart:before { - content: "\e005"; + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; } -.glyphicon-star:before { - content: "\e006"; + +legend { + float: left; + width: 100%; + padding: 0; + margin-bottom: 0.5rem; + font-size: calc(1.275rem + 0.3vw); + line-height: inherit; } -.glyphicon-star-empty:before { - content: "\e007"; +@media (min-width: 1200px) { + legend { + font-size: 1.5rem; + } } -.glyphicon-user:before { - content: "\e008"; +legend + * { + clear: left; } -.glyphicon-film:before { - content: "\e009"; + +::-webkit-datetime-edit-fields-wrapper, +::-webkit-datetime-edit-text, +::-webkit-datetime-edit-minute, +::-webkit-datetime-edit-hour-field, +::-webkit-datetime-edit-day-field, +::-webkit-datetime-edit-month-field, +::-webkit-datetime-edit-year-field { + padding: 0; } -.glyphicon-th-large:before { - content: "\e010"; + +::-webkit-inner-spin-button { + height: auto; } -.glyphicon-th:before { - content: "\e011"; + +[type=search] { + -webkit-appearance: textfield; + outline-offset: -2px; } -.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"; + +/* rtl:raw: +[type="tel"], +[type="url"], +[type="email"], +[type="number"] { + direction: ltr; +} +*/ +::-webkit-search-decoration { + -webkit-appearance: none; } -.glyphicon-eye-open:before { - content: "\e105"; + +::-webkit-color-swatch-wrapper { + padding: 0; } -.glyphicon-eye-close:before { - content: "\e106"; + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; } -.glyphicon-warning-sign:before { - content: "\e107"; + +::file-selector-button { + font: inherit; + -webkit-appearance: button; } -.glyphicon-plane:before { - content: "\e108"; + +output { + display: inline-block; } -.glyphicon-calendar:before { - content: "\e109"; + +iframe { + border: 0; } -.glyphicon-random:before { - content: "\e110"; + +summary { + display: list-item; + cursor: pointer; } -.glyphicon-comment:before { - content: "\e111"; + +progress { + vertical-align: baseline; } -.glyphicon-magnet:before { - content: "\e112"; + +[hidden] { + display: none !important; } -.glyphicon-chevron-up:before { - content: "\e113"; + +.lead { + font-size: 1.25rem; + font-weight: 300; } -.glyphicon-chevron-down:before { - content: "\e114"; + +.display-1 { + font-size: calc(1.625rem + 4.5vw); + font-weight: 300; + line-height: 1.2; } -.glyphicon-retweet:before { - content: "\e115"; +@media (min-width: 1200px) { + .display-1 { + font-size: 5rem; + } } -.glyphicon-shopping-cart:before { - content: "\e116"; + +.display-2 { + font-size: calc(1.575rem + 3.9vw); + font-weight: 300; + line-height: 1.2; } -.glyphicon-folder-close:before { - content: "\e117"; +@media (min-width: 1200px) { + .display-2 { + font-size: 4.5rem; + } } -.glyphicon-folder-open:before { - content: "\e118"; + +.display-3 { + font-size: calc(1.525rem + 3.3vw); + font-weight: 300; + line-height: 1.2; } -.glyphicon-resize-vertical:before { - content: "\e119"; +@media (min-width: 1200px) { + .display-3 { + font-size: 4rem; + } } -.glyphicon-resize-horizontal:before { - content: "\e120"; + +.display-4 { + font-size: calc(1.475rem + 2.7vw); + font-weight: 300; + line-height: 1.2; } -.glyphicon-hdd:before { - content: "\e121"; +@media (min-width: 1200px) { + .display-4 { + font-size: 3.5rem; + } } -.glyphicon-bullhorn:before { - content: "\e122"; + +.display-5 { + font-size: calc(1.425rem + 2.1vw); + font-weight: 300; + line-height: 1.2; } -.glyphicon-bell:before { - content: "\e123"; +@media (min-width: 1200px) { + .display-5 { + font-size: 3rem; + } } -.glyphicon-certificate:before { - content: "\e124"; + +.display-6 { + font-size: calc(1.375rem + 1.5vw); + font-weight: 300; + line-height: 1.2; } -.glyphicon-thumbs-up:before { - content: "\e125"; +@media (min-width: 1200px) { + .display-6 { + font-size: 2.5rem; + } } -.glyphicon-thumbs-down:before { - content: "\e126"; + +.list-unstyled { + padding-left: 0; + list-style: none; } -.glyphicon-hand-right:before { - content: "\e127"; + +.list-inline { + padding-left: 0; + list-style: none; } -.glyphicon-hand-left:before { - content: "\e128"; + +.list-inline-item { + display: inline-block; } -.glyphicon-hand-up:before { - content: "\e129"; +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; } -.glyphicon-hand-down:before { - content: "\e130"; + +.initialism { + font-size: 0.875em; + text-transform: uppercase; } -.glyphicon-circle-arrow-right:before { - content: "\e131"; + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; } -.glyphicon-circle-arrow-left:before { - content: "\e132"; +.blockquote > :last-child { + margin-bottom: 0; } -.glyphicon-circle-arrow-up:before { - content: "\e133"; + +.blockquote-footer { + margin-top: -1rem; + margin-bottom: 1rem; + font-size: 0.875em; + color: #6c757d; } -.glyphicon-circle-arrow-down:before { - content: "\e134"; +.blockquote-footer::before { + content: "— "; } -.glyphicon-globe:before { - content: "\e135"; + +.img-fluid { + max-width: 100%; + height: auto; } -.glyphicon-wrench:before { - content: "\e136"; + +.img-thumbnail { + padding: 0.25rem; + background-color: var(--bs-body-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + max-width: 100%; + height: auto; } -.glyphicon-tasks:before { - content: "\e137"; + +.figure { + display: inline-block; } -.glyphicon-filter:before { - content: "\e138"; + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; } -.glyphicon-briefcase:before { - content: "\e139"; + +.figure-caption { + font-size: 0.875em; + color: var(--bs-secondary-color); } -.glyphicon-fullscreen:before { - content: "\e140"; + +.container, +.container-fluid, +.container-xxl, +.container-xl, +.container-lg, +.container-md, +.container-sm { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-right: auto; + margin-left: auto; } -.glyphicon-dashboard:before { - content: "\e141"; + +@media (min-width: 576px) { + .container-sm, .container { + max-width: 540px; + } } -.glyphicon-paperclip:before { - content: "\e142"; +@media (min-width: 768px) { + .container-md, .container-sm, .container { + max-width: 720px; + } } -.glyphicon-heart-empty:before { - content: "\e143"; +@media (min-width: 992px) { + .container-lg, .container-md, .container-sm, .container { + max-width: 960px; + } } -.glyphicon-link:before { - content: "\e144"; +@media (min-width: 1200px) { + .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1140px; + } } -.glyphicon-phone:before { - content: "\e145"; +@media (min-width: 1400px) { + .container-xxl, .container-xl, .container-lg, .container-md, .container-sm, .container { + max-width: 1320px; + } } -.glyphicon-pushpin:before { - content: "\e146"; +:root { + --bs-breakpoint-xs: 0; + --bs-breakpoint-sm: 576px; + --bs-breakpoint-md: 768px; + --bs-breakpoint-lg: 992px; + --bs-breakpoint-xl: 1200px; + --bs-breakpoint-xxl: 1400px; } -.glyphicon-usd:before { - content: "\e148"; + +.row { + --bs-gutter-x: 1.5rem; + --bs-gutter-y: 0; + display: flex; + flex-wrap: wrap; + margin-top: calc(-1 * var(--bs-gutter-y)); + margin-right: calc(-0.5 * var(--bs-gutter-x)); + margin-left: calc(-0.5 * var(--bs-gutter-x)); +} +.row > * { + flex-shrink: 0; + width: 100%; + max-width: 100%; + padding-right: calc(var(--bs-gutter-x) * 0.5); + padding-left: calc(var(--bs-gutter-x) * 0.5); + margin-top: var(--bs-gutter-y); } -.glyphicon-gbp:before { - content: "\e149"; + +.col { + flex: 1 0 0%; } -.glyphicon-sort:before { - content: "\e150"; + +.row-cols-auto > * { + flex: 0 0 auto; + width: auto; } -.glyphicon-sort-by-alphabet:before { - content: "\e151"; + +.row-cols-1 > * { + flex: 0 0 auto; + width: 100%; } -.glyphicon-sort-by-alphabet-alt:before { - content: "\e152"; + +.row-cols-2 > * { + flex: 0 0 auto; + width: 50%; } -.glyphicon-sort-by-order:before { - content: "\e153"; + +.row-cols-3 > * { + flex: 0 0 auto; + width: 33.33333333%; } -.glyphicon-sort-by-order-alt:before { - content: "\e154"; + +.row-cols-4 > * { + flex: 0 0 auto; + width: 25%; } -.glyphicon-sort-by-attributes:before { - content: "\e155"; + +.row-cols-5 > * { + flex: 0 0 auto; + width: 20%; } -.glyphicon-sort-by-attributes-alt:before { - content: "\e156"; + +.row-cols-6 > * { + flex: 0 0 auto; + width: 16.66666667%; } -.glyphicon-unchecked:before { - content: "\e157"; + +.col-auto { + flex: 0 0 auto; + width: auto; } -.glyphicon-expand:before { - content: "\e158"; + +.col-1 { + flex: 0 0 auto; + width: 8.33333333%; } -.glyphicon-collapse-down:before { - content: "\e159"; + +.col-2 { + flex: 0 0 auto; + width: 16.66666667%; } -.glyphicon-collapse-up:before { - content: "\e160"; + +.col-3 { + flex: 0 0 auto; + width: 25%; } -.glyphicon-log-in:before { - content: "\e161"; + +.col-4 { + flex: 0 0 auto; + width: 33.33333333%; } -.glyphicon-flash:before { - content: "\e162"; + +.col-5 { + flex: 0 0 auto; + width: 41.66666667%; } -.glyphicon-log-out:before { - content: "\e163"; + +.col-6 { + flex: 0 0 auto; + width: 50%; } -.glyphicon-new-window:before { - content: "\e164"; + +.col-7 { + flex: 0 0 auto; + width: 58.33333333%; } -.glyphicon-record:before { - content: "\e165"; + +.col-8 { + flex: 0 0 auto; + width: 66.66666667%; } -.glyphicon-save:before { - content: "\e166"; + +.col-9 { + flex: 0 0 auto; + width: 75%; } -.glyphicon-open:before { - content: "\e167"; + +.col-10 { + flex: 0 0 auto; + width: 83.33333333%; } -.glyphicon-saved:before { - content: "\e168"; + +.col-11 { + flex: 0 0 auto; + width: 91.66666667%; } -.glyphicon-import:before { - content: "\e169"; + +.col-12 { + flex: 0 0 auto; + width: 100%; } -.glyphicon-export:before { - content: "\e170"; + +.offset-1 { + margin-left: 8.33333333%; } -.glyphicon-send:before { - content: "\e171"; + +.offset-2 { + margin-left: 16.66666667%; } -.glyphicon-floppy-disk:before { - content: "\e172"; + +.offset-3 { + margin-left: 25%; } -.glyphicon-floppy-saved:before { - content: "\e173"; + +.offset-4 { + margin-left: 33.33333333%; } -.glyphicon-floppy-remove:before { - content: "\e174"; + +.offset-5 { + margin-left: 41.66666667%; } -.glyphicon-floppy-save:before { - content: "\e175"; + +.offset-6 { + margin-left: 50%; } -.glyphicon-floppy-open:before { - content: "\e176"; + +.offset-7 { + margin-left: 58.33333333%; } -.glyphicon-credit-card:before { - content: "\e177"; + +.offset-8 { + margin-left: 66.66666667%; } -.glyphicon-transfer:before { - content: "\e178"; + +.offset-9 { + margin-left: 75%; } -.glyphicon-cutlery:before { - content: "\e179"; + +.offset-10 { + margin-left: 83.33333333%; } -.glyphicon-header:before { - content: "\e180"; + +.offset-11 { + margin-left: 91.66666667%; } -.glyphicon-compressed:before { - content: "\e181"; + +.g-0, +.gx-0 { + --bs-gutter-x: 0; } -.glyphicon-earphone:before { - content: "\e182"; + +.g-0, +.gy-0 { + --bs-gutter-y: 0; } -.glyphicon-phone-alt:before { - content: "\e183"; + +.g-1, +.gx-1 { + --bs-gutter-x: 0.25rem; } -.glyphicon-tower:before { - content: "\e184"; + +.g-1, +.gy-1 { + --bs-gutter-y: 0.25rem; } -.glyphicon-stats:before { - content: "\e185"; + +.g-2, +.gx-2 { + --bs-gutter-x: 0.5rem; } -.glyphicon-sd-video:before { - content: "\e186"; + +.g-2, +.gy-2 { + --bs-gutter-y: 0.5rem; } -.glyphicon-hd-video:before { - content: "\e187"; + +.g-3, +.gx-3 { + --bs-gutter-x: 1rem; } -.glyphicon-subtitles:before { - content: "\e188"; + +.g-3, +.gy-3 { + --bs-gutter-y: 1rem; } -.glyphicon-sound-stereo:before { - content: "\e189"; + +.g-4, +.gx-4 { + --bs-gutter-x: 1.5rem; } -.glyphicon-sound-dolby:before { - content: "\e190"; + +.g-4, +.gy-4 { + --bs-gutter-y: 1.5rem; } -.glyphicon-sound-5-1:before { - content: "\e191"; + +.g-5, +.gx-5 { + --bs-gutter-x: 3rem; } -.glyphicon-sound-6-1:before { - content: "\e192"; + +.g-5, +.gy-5 { + --bs-gutter-y: 3rem; } -.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"; -} -* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*:before, -*:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -html { - font-size: 10px; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -} -body { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 1.42857143; - color: #333; - background-color: #fff; -} -input, -button, -select, -textarea { - font-family: inherit; - font-size: inherit; - line-height: inherit; -} -a { - color: #337ab7; - text-decoration: none; -} -a:hover, -a:focus { - color: #23527c; - text-decoration: underline; -} -a:focus { - outline: thin dotted; - 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: 6px; -} -.img-thumbnail { - display: inline-block; - max-width: 100%; - height: auto; - padding: 4px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: all .2s ease-in-out; - -o-transition: all .2s ease-in-out; - transition: all .2s ease-in-out; -} -.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; -} -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: inherit; - font-weight: 500; - line-height: 1.1; - color: inherit; -} -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: normal; - line-height: 1; - color: #777; -} -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; +@media (min-width: 576px) { + .col-sm { + flex: 1 0 0%; } -} -small, -.small { - font-size: 85%; -} -mark, -.mark { - padding: .2em; - background-color: #fcf8e3; -} -.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: #777; -} -.text-primary { - color: #337ab7; -} -a.text-primary:hover { - color: #286090; -} -.text-success { - color: #3c763d; -} -a.text-success:hover { - color: #2b542c; -} -.text-info { - color: #31708f; -} -a.text-info:hover { - color: #245269; -} -.text-warning { - color: #8a6d3b; -} -a.text-warning:hover { - color: #66512c; -} -.text-danger { - color: #a94442; -} -a.text-danger:hover { - color: #843534; -} -.bg-primary { - color: #fff; - background-color: #337ab7; -} -a.bg-primary:hover { - background-color: #286090; -} -.bg-success { - background-color: #dff0d8; -} -a.bg-success:hover { - background-color: #c1e2b3; -} -.bg-info { - background-color: #d9edf7; -} -a.bg-info:hover { - background-color: #afd9ee; -} -.bg-warning { - background-color: #fcf8e3; -} -a.bg-warning:hover { - background-color: #f7ecb5; -} -.bg-danger { - background-color: #f2dede; -} -a.bg-danger:hover { - background-color: #e4b9b9; -} -.page-header { - padding-bottom: 9px; - margin: 40px 0 20px; - border-bottom: 1px solid #eee; -} -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; - margin-left: -5px; - list-style: none; -} -.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: bold; -} -dd { - margin-left: 0; -} -@media (min-width: 768px) { - .dl-horizontal dt { - float: left; - width: 160px; - overflow: hidden; - clear: left; - text-align: right; - text-overflow: ellipsis; - white-space: nowrap; + .row-cols-sm-auto > * { + flex: 0 0 auto; + width: auto; } - .dl-horizontal dd { - margin-left: 180px; + .row-cols-sm-1 > * { + flex: 0 0 auto; + width: 100%; } -} -abbr[title], -abbr[data-original-title] { - cursor: help; - border-bottom: 1px dotted #777; -} -.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 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: #777; -} -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 #eee; - 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: #fff; - background-color: #333; - border-radius: 3px; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); -} -kbd kbd { - padding: 0; - font-size: 100%; - font-weight: bold; - -webkit-box-shadow: none; - 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; + .row-cols-sm-2 > * { + flex: 0 0 auto; + width: 50%; } -} -@media (min-width: 992px) { - .container { - width: 970px; + .row-cols-sm-3 > * { + flex: 0 0 auto; + width: 33.33333333%; } -} -/*@media (min-width: 1200px) { - .container { - width: 1170px; + .row-cols-sm-4 > * { + flex: 0 0 auto; + width: 25%; } -}*/ -.container-fluid { - padding-right: 15px; - padding-left: 15px; - margin-right: auto; - margin-left: auto; -} -.row { - margin-right: -15px; - margin-left: -15px; -} -.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%; + .row-cols-sm-5 > * { + flex: 0 0 auto; + width: 20%; } - .col-sm-11 { - width: 91.66666667%; + .row-cols-sm-6 > * { + flex: 0 0 auto; + width: 16.66666667%; } - .col-sm-10 { - width: 83.33333333%; + .col-sm-auto { + flex: 0 0 auto; + width: auto; } - .col-sm-9 { - width: 75%; + .col-sm-1 { + flex: 0 0 auto; + width: 8.33333333%; } - .col-sm-8 { - width: 66.66666667%; + .col-sm-2 { + flex: 0 0 auto; + width: 16.66666667%; } - .col-sm-7 { - width: 58.33333333%; + .col-sm-3 { + flex: 0 0 auto; + width: 25%; } - .col-sm-6 { - width: 50%; + .col-sm-4 { + flex: 0 0 auto; + width: 33.33333333%; } .col-sm-5 { + flex: 0 0 auto; width: 41.66666667%; } - .col-sm-4 { - width: 33.33333333%; - } - .col-sm-3 { - width: 25%; + .col-sm-6 { + flex: 0 0 auto; + width: 50%; } - .col-sm-2 { - width: 16.66666667%; + .col-sm-7 { + flex: 0 0 auto; + width: 58.33333333%; } - .col-sm-1 { - width: 8.33333333%; + .col-sm-8 { + flex: 0 0 auto; + width: 66.66666667%; } - .col-sm-pull-12 { - right: 100%; + .col-sm-9 { + flex: 0 0 auto; + width: 75%; } - .col-sm-pull-11 { - right: 91.66666667%; + .col-sm-10 { + flex: 0 0 auto; + width: 83.33333333%; } - .col-sm-pull-10 { - right: 83.33333333%; + .col-sm-11 { + flex: 0 0 auto; + width: 91.66666667%; } - .col-sm-pull-9 { - right: 75%; + .col-sm-12 { + flex: 0 0 auto; + width: 100%; } - .col-sm-pull-8 { - right: 66.66666667%; + .offset-sm-0 { + margin-left: 0; } - .col-sm-pull-7 { - right: 58.33333333%; + .offset-sm-1 { + margin-left: 8.33333333%; } - .col-sm-pull-6 { - right: 50%; + .offset-sm-2 { + margin-left: 16.66666667%; } - .col-sm-pull-5 { - right: 41.66666667%; + .offset-sm-3 { + margin-left: 25%; } - .col-sm-pull-4 { - right: 33.33333333%; + .offset-sm-4 { + margin-left: 33.33333333%; } - .col-sm-pull-3 { - right: 25%; + .offset-sm-5 { + margin-left: 41.66666667%; } - .col-sm-pull-2 { - right: 16.66666667%; + .offset-sm-6 { + margin-left: 50%; } - .col-sm-pull-1 { - right: 8.33333333%; + .offset-sm-7 { + margin-left: 58.33333333%; } - .col-sm-pull-0 { - right: auto; + .offset-sm-8 { + margin-left: 66.66666667%; } - .col-sm-push-12 { - left: 100%; + .offset-sm-9 { + margin-left: 75%; } - .col-sm-push-11 { - left: 91.66666667%; + .offset-sm-10 { + margin-left: 83.33333333%; } - .col-sm-push-10 { - left: 83.33333333%; + .offset-sm-11 { + margin-left: 91.66666667%; } - .col-sm-push-9 { - left: 75%; + .g-sm-0, + .gx-sm-0 { + --bs-gutter-x: 0; } - .col-sm-push-8 { - left: 66.66666667%; + .g-sm-0, + .gy-sm-0 { + --bs-gutter-y: 0; } - .col-sm-push-7 { - left: 58.33333333%; + .g-sm-1, + .gx-sm-1 { + --bs-gutter-x: 0.25rem; } - .col-sm-push-6 { - left: 50%; + .g-sm-1, + .gy-sm-1 { + --bs-gutter-y: 0.25rem; } - .col-sm-push-5 { - left: 41.66666667%; + .g-sm-2, + .gx-sm-2 { + --bs-gutter-x: 0.5rem; } - .col-sm-push-4 { - left: 33.33333333%; + .g-sm-2, + .gy-sm-2 { + --bs-gutter-y: 0.5rem; } - .col-sm-push-3 { - left: 25%; + .g-sm-3, + .gx-sm-3 { + --bs-gutter-x: 1rem; } - .col-sm-push-2 { - left: 16.66666667%; + .g-sm-3, + .gy-sm-3 { + --bs-gutter-y: 1rem; } - .col-sm-push-1 { - left: 8.33333333%; + .g-sm-4, + .gx-sm-4 { + --bs-gutter-x: 1.5rem; } - .col-sm-push-0 { - left: auto; + .g-sm-4, + .gy-sm-4 { + --bs-gutter-y: 1.5rem; } - .col-sm-offset-12 { - margin-left: 100%; + .g-sm-5, + .gx-sm-5 { + --bs-gutter-x: 3rem; } - .col-sm-offset-11 { - margin-left: 91.66666667%; + .g-sm-5, + .gy-sm-5 { + --bs-gutter-y: 3rem; } - .col-sm-offset-10 { - margin-left: 83.33333333%; +} +@media (min-width: 768px) { + .col-md { + flex: 1 0 0%; } - .col-sm-offset-9 { - margin-left: 75%; + .row-cols-md-auto > * { + flex: 0 0 auto; + width: auto; } - .col-sm-offset-8 { - margin-left: 66.66666667%; + .row-cols-md-1 > * { + flex: 0 0 auto; + width: 100%; } - .col-sm-offset-7 { - margin-left: 58.33333333%; + .row-cols-md-2 > * { + flex: 0 0 auto; + width: 50%; } - .col-sm-offset-6 { - margin-left: 50%; + .row-cols-md-3 > * { + flex: 0 0 auto; + width: 33.33333333%; } - .col-sm-offset-5 { - margin-left: 41.66666667%; + .row-cols-md-4 > * { + flex: 0 0 auto; + width: 25%; } - .col-sm-offset-4 { - margin-left: 33.33333333%; + .row-cols-md-5 > * { + flex: 0 0 auto; + width: 20%; } - .col-sm-offset-3 { - margin-left: 25%; + .row-cols-md-6 > * { + flex: 0 0 auto; + width: 16.66666667%; } - .col-sm-offset-2 { - margin-left: 16.66666667%; + .col-md-auto { + flex: 0 0 auto; + width: auto; } - .col-sm-offset-1 { - margin-left: 8.33333333%; + .col-md-1 { + flex: 0 0 auto; + width: 8.33333333%; } - .col-sm-offset-0 { - margin-left: 0; + .col-md-2 { + flex: 0 0 auto; + width: 16.66666667%; } -} -@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-3 { + flex: 0 0 auto; + width: 25%; } - .col-md-12 { - width: 100%; + .col-md-4 { + flex: 0 0 auto; + width: 33.33333333%; } - .col-md-11 { - width: 91.66666667%; + .col-md-5 { + flex: 0 0 auto; + width: 41.66666667%; } - .col-md-10 { - width: 83.33333333%; + .col-md-6 { + flex: 0 0 auto; + width: 50%; } - .col-md-9 { - width: 75%; + .col-md-7 { + flex: 0 0 auto; + width: 58.33333333%; } .col-md-8 { + flex: 0 0 auto; width: 66.66666667%; } - .col-md-7 { - width: 58.33333333%; - } - .col-md-6 { - width: 50%; + .col-md-9 { + flex: 0 0 auto; + width: 75%; } - .col-md-5 { - width: 41.66666667%; + .col-md-10 { + flex: 0 0 auto; + width: 83.33333333%; } - .col-md-4 { - width: 33.33333333%; + .col-md-11 { + flex: 0 0 auto; + width: 91.66666667%; } - .col-md-3 { - width: 25%; + .col-md-12 { + flex: 0 0 auto; + width: 100%; } - .col-md-2 { - width: 16.66666667%; + .offset-md-0 { + margin-left: 0; } - .col-md-1 { - width: 8.33333333%; + .offset-md-1 { + margin-left: 8.33333333%; } - .col-md-pull-12 { - right: 100%; + .offset-md-2 { + margin-left: 16.66666667%; } - .col-md-pull-11 { - right: 91.66666667%; + .offset-md-3 { + margin-left: 25%; } - .col-md-pull-10 { - right: 83.33333333%; + .offset-md-4 { + margin-left: 33.33333333%; } - .col-md-pull-9 { - right: 75%; + .offset-md-5 { + margin-left: 41.66666667%; } - .col-md-pull-8 { - right: 66.66666667%; + .offset-md-6 { + margin-left: 50%; } - .col-md-pull-7 { - right: 58.33333333%; + .offset-md-7 { + margin-left: 58.33333333%; } - .col-md-pull-6 { - right: 50%; + .offset-md-8 { + margin-left: 66.66666667%; } - .col-md-pull-5 { - right: 41.66666667%; + .offset-md-9 { + margin-left: 75%; } - .col-md-pull-4 { - right: 33.33333333%; + .offset-md-10 { + margin-left: 83.33333333%; } - .col-md-pull-3 { - right: 25%; + .offset-md-11 { + margin-left: 91.66666667%; } - .col-md-pull-2 { - right: 16.66666667%; + .g-md-0, + .gx-md-0 { + --bs-gutter-x: 0; } - .col-md-pull-1 { - right: 8.33333333%; + .g-md-0, + .gy-md-0 { + --bs-gutter-y: 0; } - .col-md-pull-0 { - right: auto; + .g-md-1, + .gx-md-1 { + --bs-gutter-x: 0.25rem; } - .col-md-push-12 { - left: 100%; + .g-md-1, + .gy-md-1 { + --bs-gutter-y: 0.25rem; } - .col-md-push-11 { - left: 91.66666667%; + .g-md-2, + .gx-md-2 { + --bs-gutter-x: 0.5rem; } - .col-md-push-10 { - left: 83.33333333%; + .g-md-2, + .gy-md-2 { + --bs-gutter-y: 0.5rem; } - .col-md-push-9 { - left: 75%; + .g-md-3, + .gx-md-3 { + --bs-gutter-x: 1rem; } - .col-md-push-8 { - left: 66.66666667%; + .g-md-3, + .gy-md-3 { + --bs-gutter-y: 1rem; } - .col-md-push-7 { - left: 58.33333333%; + .g-md-4, + .gx-md-4 { + --bs-gutter-x: 1.5rem; } - .col-md-push-6 { - left: 50%; + .g-md-4, + .gy-md-4 { + --bs-gutter-y: 1.5rem; } - .col-md-push-5 { - left: 41.66666667%; + .g-md-5, + .gx-md-5 { + --bs-gutter-x: 3rem; } - .col-md-push-4 { - left: 33.33333333%; + .g-md-5, + .gy-md-5 { + --bs-gutter-y: 3rem; } - .col-md-push-3 { - left: 25%; +} +@media (min-width: 992px) { + .col-lg { + flex: 1 0 0%; } - .col-md-push-2 { - left: 16.66666667%; + .row-cols-lg-auto > * { + flex: 0 0 auto; + width: auto; } - .col-md-push-1 { - left: 8.33333333%; + .row-cols-lg-1 > * { + flex: 0 0 auto; + width: 100%; } - .col-md-push-0 { - left: auto; + .row-cols-lg-2 > * { + flex: 0 0 auto; + width: 50%; } - .col-md-offset-12 { - margin-left: 100%; + .row-cols-lg-3 > * { + flex: 0 0 auto; + width: 33.33333333%; } - .col-md-offset-11 { - margin-left: 91.66666667%; + .row-cols-lg-4 > * { + flex: 0 0 auto; + width: 25%; } - .col-md-offset-10 { - margin-left: 83.33333333%; + .row-cols-lg-5 > * { + flex: 0 0 auto; + width: 20%; } - .col-md-offset-9 { - margin-left: 75%; + .row-cols-lg-6 > * { + flex: 0 0 auto; + width: 16.66666667%; } - .col-md-offset-8 { - margin-left: 66.66666667%; + .col-lg-auto { + flex: 0 0 auto; + width: auto; } - .col-md-offset-7 { - margin-left: 58.33333333%; + .col-lg-1 { + flex: 0 0 auto; + width: 8.33333333%; } - .col-md-offset-6 { - margin-left: 50%; + .col-lg-2 { + flex: 0 0 auto; + width: 16.66666667%; } - .col-md-offset-5 { - margin-left: 41.66666667%; + .col-lg-3 { + flex: 0 0 auto; + width: 25%; } - .col-md-offset-4 { - margin-left: 33.33333333%; + .col-lg-4 { + flex: 0 0 auto; + width: 33.33333333%; } - .col-md-offset-3 { - margin-left: 25%; + .col-lg-5 { + flex: 0 0 auto; + width: 41.66666667%; } - .col-md-offset-2 { - margin-left: 16.66666667%; + .col-lg-6 { + flex: 0 0 auto; + width: 50%; } - .col-md-offset-1 { - margin-left: 8.33333333%; + .col-lg-7 { + flex: 0 0 auto; + width: 58.33333333%; } - .col-md-offset-0 { - margin-left: 0; + .col-lg-8 { + flex: 0 0 auto; + width: 66.66666667%; } -} -/*@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-9 { + flex: 0 0 auto; + width: 75%; } - .col-lg-12 { - width: 100%; + .col-lg-10 { + flex: 0 0 auto; + width: 83.33333333%; } .col-lg-11 { + flex: 0 0 auto; width: 91.66666667%; } - .col-lg-10 { - width: 83.33333333%; + .col-lg-12 { + flex: 0 0 auto; + width: 100%; } - .col-lg-9 { - width: 75%; + .offset-lg-0 { + margin-left: 0; } - .col-lg-8 { - width: 66.66666667%; + .offset-lg-1 { + margin-left: 8.33333333%; } - .col-lg-7 { - width: 58.33333333%; + .offset-lg-2 { + margin-left: 16.66666667%; } - .col-lg-6 { - width: 50%; + .offset-lg-3 { + margin-left: 25%; } - .col-lg-5 { - width: 41.66666667%; + .offset-lg-4 { + margin-left: 33.33333333%; } - .col-lg-4 { - width: 33.33333333%; + .offset-lg-5 { + margin-left: 41.66666667%; } - .col-lg-3 { + .offset-lg-6 { + margin-left: 50%; + } + .offset-lg-7 { + margin-left: 58.33333333%; + } + .offset-lg-8 { + margin-left: 66.66666667%; + } + .offset-lg-9 { + margin-left: 75%; + } + .offset-lg-10 { + margin-left: 83.33333333%; + } + .offset-lg-11 { + margin-left: 91.66666667%; + } + .g-lg-0, + .gx-lg-0 { + --bs-gutter-x: 0; + } + .g-lg-0, + .gy-lg-0 { + --bs-gutter-y: 0; + } + .g-lg-1, + .gx-lg-1 { + --bs-gutter-x: 0.25rem; + } + .g-lg-1, + .gy-lg-1 { + --bs-gutter-y: 0.25rem; + } + .g-lg-2, + .gx-lg-2 { + --bs-gutter-x: 0.5rem; + } + .g-lg-2, + .gy-lg-2 { + --bs-gutter-y: 0.5rem; + } + .g-lg-3, + .gx-lg-3 { + --bs-gutter-x: 1rem; + } + .g-lg-3, + .gy-lg-3 { + --bs-gutter-y: 1rem; + } + .g-lg-4, + .gx-lg-4 { + --bs-gutter-x: 1.5rem; + } + .g-lg-4, + .gy-lg-4 { + --bs-gutter-y: 1.5rem; + } + .g-lg-5, + .gx-lg-5 { + --bs-gutter-x: 3rem; + } + .g-lg-5, + .gy-lg-5 { + --bs-gutter-y: 3rem; + } +} +@media (min-width: 1200px) { + .col-xl { + flex: 1 0 0%; + } + .row-cols-xl-auto > * { + flex: 0 0 auto; + width: auto; + } + .row-cols-xl-1 > * { + flex: 0 0 auto; + width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 auto; + width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 auto; width: 25%; } - .col-lg-2 { + .row-cols-xl-5 > * { + flex: 0 0 auto; + width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 auto; width: 16.66666667%; } - .col-lg-1 { + .col-xl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xl-1 { + flex: 0 0 auto; width: 8.33333333%; } - .col-lg-pull-12 { - right: 100%; + .col-xl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xl-3 { + flex: 0 0 auto; + width: 25%; + } + .col-xl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xl-7 { + flex: 0 0 auto; + width: 58.33333333%; } - .col-lg-pull-11 { - right: 91.66666667%; + .col-xl-8 { + flex: 0 0 auto; + width: 66.66666667%; } - .col-lg-pull-10 { - right: 83.33333333%; + .col-xl-9 { + flex: 0 0 auto; + width: 75%; } - .col-lg-pull-9 { - right: 75%; + .col-xl-10 { + flex: 0 0 auto; + width: 83.33333333%; } - .col-lg-pull-8 { - right: 66.66666667%; + .col-xl-11 { + flex: 0 0 auto; + width: 91.66666667%; } - .col-lg-pull-7 { - right: 58.33333333%; + .col-xl-12 { + flex: 0 0 auto; + width: 100%; } - .col-lg-pull-6 { - right: 50%; + .offset-xl-0 { + margin-left: 0; } - .col-lg-pull-5 { - right: 41.66666667%; + .offset-xl-1 { + margin-left: 8.33333333%; } - .col-lg-pull-4 { - right: 33.33333333%; + .offset-xl-2 { + margin-left: 16.66666667%; } - .col-lg-pull-3 { - right: 25%; + .offset-xl-3 { + margin-left: 25%; } - .col-lg-pull-2 { - right: 16.66666667%; + .offset-xl-4 { + margin-left: 33.33333333%; } - .col-lg-pull-1 { - right: 8.33333333%; + .offset-xl-5 { + margin-left: 41.66666667%; } - .col-lg-pull-0 { - right: auto; + .offset-xl-6 { + margin-left: 50%; } - .col-lg-push-12 { - left: 100%; + .offset-xl-7 { + margin-left: 58.33333333%; } - .col-lg-push-11 { - left: 91.66666667%; + .offset-xl-8 { + margin-left: 66.66666667%; } - .col-lg-push-10 { - left: 83.33333333%; + .offset-xl-9 { + margin-left: 75%; } - .col-lg-push-9 { - left: 75%; + .offset-xl-10 { + margin-left: 83.33333333%; } - .col-lg-push-8 { - left: 66.66666667%; + .offset-xl-11 { + margin-left: 91.66666667%; } - .col-lg-push-7 { - left: 58.33333333%; + .g-xl-0, + .gx-xl-0 { + --bs-gutter-x: 0; } - .col-lg-push-6 { - left: 50%; + .g-xl-0, + .gy-xl-0 { + --bs-gutter-y: 0; } - .col-lg-push-5 { - left: 41.66666667%; + .g-xl-1, + .gx-xl-1 { + --bs-gutter-x: 0.25rem; } - .col-lg-push-4 { - left: 33.33333333%; + .g-xl-1, + .gy-xl-1 { + --bs-gutter-y: 0.25rem; } - .col-lg-push-3 { - left: 25%; + .g-xl-2, + .gx-xl-2 { + --bs-gutter-x: 0.5rem; } - .col-lg-push-2 { - left: 16.66666667%; + .g-xl-2, + .gy-xl-2 { + --bs-gutter-y: 0.5rem; } - .col-lg-push-1 { - left: 8.33333333%; + .g-xl-3, + .gx-xl-3 { + --bs-gutter-x: 1rem; } - .col-lg-push-0 { - left: auto; + .g-xl-3, + .gy-xl-3 { + --bs-gutter-y: 1rem; } - .col-lg-offset-12 { - margin-left: 100%; + .g-xl-4, + .gx-xl-4 { + --bs-gutter-x: 1.5rem; } - .col-lg-offset-11 { - margin-left: 91.66666667%; + .g-xl-4, + .gy-xl-4 { + --bs-gutter-y: 1.5rem; } - .col-lg-offset-10 { - margin-left: 83.33333333%; + .g-xl-5, + .gx-xl-5 { + --bs-gutter-x: 3rem; } - .col-lg-offset-9 { - margin-left: 75%; + .g-xl-5, + .gy-xl-5 { + --bs-gutter-y: 3rem; } - .col-lg-offset-8 { - margin-left: 66.66666667%; +} +@media (min-width: 1400px) { + .col-xxl { + flex: 1 0 0%; } - .col-lg-offset-7 { - margin-left: 58.33333333%; + .row-cols-xxl-auto > * { + flex: 0 0 auto; + width: auto; } - .col-lg-offset-6 { - margin-left: 50%; + .row-cols-xxl-1 > * { + flex: 0 0 auto; + width: 100%; } - .col-lg-offset-5 { - margin-left: 41.66666667%; + .row-cols-xxl-2 > * { + flex: 0 0 auto; + width: 50%; } - .col-lg-offset-4 { - margin-left: 33.33333333%; + .row-cols-xxl-3 > * { + flex: 0 0 auto; + width: 33.33333333%; } - .col-lg-offset-3 { - margin-left: 25%; + .row-cols-xxl-4 > * { + flex: 0 0 auto; + width: 25%; } - .col-lg-offset-2 { - margin-left: 16.66666667%; + .row-cols-xxl-5 > * { + flex: 0 0 auto; + width: 20%; } - .col-lg-offset-1 { - margin-left: 8.33333333%; + .row-cols-xxl-6 > * { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-auto { + flex: 0 0 auto; + width: auto; + } + .col-xxl-1 { + flex: 0 0 auto; + width: 8.33333333%; + } + .col-xxl-2 { + flex: 0 0 auto; + width: 16.66666667%; + } + .col-xxl-3 { + flex: 0 0 auto; + width: 25%; } - .col-lg-offset-0 { + .col-xxl-4 { + flex: 0 0 auto; + width: 33.33333333%; + } + .col-xxl-5 { + flex: 0 0 auto; + width: 41.66666667%; + } + .col-xxl-6 { + flex: 0 0 auto; + width: 50%; + } + .col-xxl-7 { + flex: 0 0 auto; + width: 58.33333333%; + } + .col-xxl-8 { + flex: 0 0 auto; + width: 66.66666667%; + } + .col-xxl-9 { + flex: 0 0 auto; + width: 75%; + } + .col-xxl-10 { + flex: 0 0 auto; + width: 83.33333333%; + } + .col-xxl-11 { + flex: 0 0 auto; + width: 91.66666667%; + } + .col-xxl-12 { + flex: 0 0 auto; + width: 100%; + } + .offset-xxl-0 { margin-left: 0; } -}*/ -table { - background-color: transparent; -} -caption { - padding-top: 8px; - padding-bottom: 8px; - color: #777; - text-align: left; -} -th { - text-align: left; + .offset-xxl-1 { + margin-left: 8.33333333%; + } + .offset-xxl-2 { + margin-left: 16.66666667%; + } + .offset-xxl-3 { + margin-left: 25%; + } + .offset-xxl-4 { + margin-left: 33.33333333%; + } + .offset-xxl-5 { + margin-left: 41.66666667%; + } + .offset-xxl-6 { + margin-left: 50%; + } + .offset-xxl-7 { + margin-left: 58.33333333%; + } + .offset-xxl-8 { + margin-left: 66.66666667%; + } + .offset-xxl-9 { + margin-left: 75%; + } + .offset-xxl-10 { + margin-left: 83.33333333%; + } + .offset-xxl-11 { + margin-left: 91.66666667%; + } + .g-xxl-0, + .gx-xxl-0 { + --bs-gutter-x: 0; + } + .g-xxl-0, + .gy-xxl-0 { + --bs-gutter-y: 0; + } + .g-xxl-1, + .gx-xxl-1 { + --bs-gutter-x: 0.25rem; + } + .g-xxl-1, + .gy-xxl-1 { + --bs-gutter-y: 0.25rem; + } + .g-xxl-2, + .gx-xxl-2 { + --bs-gutter-x: 0.5rem; + } + .g-xxl-2, + .gy-xxl-2 { + --bs-gutter-y: 0.5rem; + } + .g-xxl-3, + .gx-xxl-3 { + --bs-gutter-x: 1rem; + } + .g-xxl-3, + .gy-xxl-3 { + --bs-gutter-y: 1rem; + } + .g-xxl-4, + .gx-xxl-4 { + --bs-gutter-x: 1.5rem; + } + .g-xxl-4, + .gy-xxl-4 { + --bs-gutter-y: 1.5rem; + } + .g-xxl-5, + .gx-xxl-5 { + --bs-gutter-x: 3rem; + } + .g-xxl-5, + .gy-xxl-5 { + --bs-gutter-y: 3rem; + } } .table { + --bs-table-color-type: initial; + --bs-table-bg-type: initial; + --bs-table-color-state: initial; + --bs-table-bg-state: initial; + --bs-table-color: var(--bs-emphasis-color); + --bs-table-bg: var(--bs-body-bg); + --bs-table-border-color: var(--bs-border-color); + --bs-table-accent-bg: transparent; + --bs-table-striped-color: var(--bs-emphasis-color); + --bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), 0.05); + --bs-table-active-color: var(--bs-emphasis-color); + --bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), 0.1); + --bs-table-hover-color: var(--bs-emphasis-color); + --bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), 0.075); 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; + margin-bottom: 1rem; vertical-align: top; - border-top: 1px solid #ddd; + border-color: var(--bs-table-border-color); +} +.table > :not(caption) > * > * { + padding: 0.5rem 0.5rem; + color: var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color))); + background-color: var(--bs-table-bg); + border-bottom-width: var(--bs-border-width); + box-shadow: inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg))); } -.table > thead > tr > th { +.table > tbody { + vertical-align: inherit; +} +.table > thead { vertical-align: bottom; - border-bottom: 2px solid #ddd; -} -.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 #ddd; + +.table-group-divider { + border-top: calc(var(--bs-border-width) * 2) solid currentcolor; } -.table .table { - background-color: #fff; + +.caption-top { + caption-side: top; +} + +.table-sm > :not(caption) > * > * { + padding: 0.25rem 0.25rem; +} + +.table-bordered > :not(caption) > * { + border-width: var(--bs-border-width) 0; } -.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 > :not(caption) > * > * { + border-width: 0 var(--bs-border-width); } -.table-bordered { - border: 1px solid #ddd; + +.table-borderless > :not(caption) > * > * { + border-bottom-width: 0; } -.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 #ddd; +.table-borderless > :not(:first-child) { + border-top-width: 0; } -.table-bordered > thead > tr > th, -.table-bordered > thead > tr > td { - border-bottom-width: 2px; + +.table-striped > tbody > tr:nth-of-type(odd) > * { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); } -.table-striped > tbody > tr:nth-child(odd) { - background-color: #f9f9f9; + +.table-striped-columns > :not(caption) > tr > :nth-child(even) { + --bs-table-color-type: var(--bs-table-striped-color); + --bs-table-bg-type: var(--bs-table-striped-bg); } -.table-hover > tbody > tr:hover { - background-color: #f5f5f5; + +.table-active { + --bs-table-color-state: var(--bs-table-active-color); + --bs-table-bg-state: var(--bs-table-active-bg); } -table col[class*="col-"] { - position: static; - display: table-column; - float: none; + +.table-hover > tbody > tr:hover > * { + --bs-table-color-state: var(--bs-table-hover-color); + --bs-table-bg-state: var(--bs-table-hover-bg); } -table td[class*="col-"], -table th[class*="col-"] { - position: static; - display: table-cell; - float: none; -} -.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: #dff0d8; -} -.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: #d0e9c6; -} -.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: #d9edf7; -} -.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: #c4e3f3; -} -.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: #fcf8e3; -} -.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: #faf2cc; -} -.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: #f2dede; -} -.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: #ebcccc; + +.table-primary { + --bs-table-color: #000; + --bs-table-bg: #cfe2ff; + --bs-table-border-color: #a6b5cc; + --bs-table-striped-bg: #c5d7f2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bacbe6; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfd1ec; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-secondary { + --bs-table-color: #000; + --bs-table-bg: #e2e3e5; + --bs-table-border-color: #b5b6b7; + --bs-table-striped-bg: #d7d8da; + --bs-table-striped-color: #000; + --bs-table-active-bg: #cbccce; + --bs-table-active-color: #000; + --bs-table-hover-bg: #d1d2d4; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-success { + --bs-table-color: #000; + --bs-table-bg: #d1e7dd; + --bs-table-border-color: #a7b9b1; + --bs-table-striped-bg: #c7dbd2; + --bs-table-striped-color: #000; + --bs-table-active-bg: #bcd0c7; + --bs-table-active-color: #000; + --bs-table-hover-bg: #c1d6cc; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-info { + --bs-table-color: #000; + --bs-table-bg: #cff4fc; + --bs-table-border-color: #a6c3ca; + --bs-table-striped-bg: #c5e8ef; + --bs-table-striped-color: #000; + --bs-table-active-bg: #badce3; + --bs-table-active-color: #000; + --bs-table-hover-bg: #bfe2e9; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-warning { + --bs-table-color: #000; + --bs-table-bg: #fff3cd; + --bs-table-border-color: #ccc2a4; + --bs-table-striped-bg: #f2e7c3; + --bs-table-striped-color: #000; + --bs-table-active-bg: #e6dbb9; + --bs-table-active-color: #000; + --bs-table-hover-bg: #ece1be; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-danger { + --bs-table-color: #000; + --bs-table-bg: #f8d7da; + --bs-table-border-color: #c6acae; + --bs-table-striped-bg: #eccccf; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfc2c4; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5c7ca; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-light { + --bs-table-color: #000; + --bs-table-bg: #f8f9fa; + --bs-table-border-color: #c6c7c8; + --bs-table-striped-bg: #ecedee; + --bs-table-striped-color: #000; + --bs-table-active-bg: #dfe0e1; + --bs-table-active-color: #000; + --bs-table-hover-bg: #e5e6e7; + --bs-table-hover-color: #000; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); +} + +.table-dark { + --bs-table-color: #fff; + --bs-table-bg: #212529; + --bs-table-border-color: #4d5154; + --bs-table-striped-bg: #2c3034; + --bs-table-striped-color: #fff; + --bs-table-active-bg: #373b3e; + --bs-table-active-color: #fff; + --bs-table-hover-bg: #323539; + --bs-table-hover-color: #fff; + color: var(--bs-table-color); + border-color: var(--bs-table-border-color); } + .table-responsive { - min-height: .01%; overflow-x: auto; + -webkit-overflow-scrolling: touch; } -@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 #ddd; - } - .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; + +@media (max-width: 575.98px) { + .table-responsive-sm { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } - .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; +} +@media (max-width: 767.98px) { + .table-responsive-md { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } - .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; +} +@media (max-width: 991.98px) { + .table-responsive-lg { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } - .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; +} +@media (max-width: 1199.98px) { + .table-responsive-xl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } } -fieldset { - min-width: 0; - padding: 0; - margin: 0; - border: 0; +@media (max-width: 1399.98px) { + .table-responsive-xxl { + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } } -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; +.form-label { + margin-bottom: 0.5rem; } -label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - font-weight: bold; + +.col-form-label { + padding-top: calc(0.375rem + var(--bs-border-width)); + padding-bottom: calc(0.375rem + var(--bs-border-width)); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; } -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; + +.col-form-label-lg { + padding-top: calc(0.5rem + var(--bs-border-width)); + padding-bottom: calc(0.5rem + var(--bs-border-width)); + font-size: 1.25rem; } -input[type="radio"], -input[type="checkbox"] { - margin: 4px 0 0; - margin-top: 1px \9; - line-height: normal; + +.col-form-label-sm { + padding-top: calc(0.25rem + var(--bs-border-width)); + padding-bottom: calc(0.25rem + var(--bs-border-width)); + font-size: 0.875rem; } -input[type="file"] { - display: block; + +.form-text { + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-secondary-color); } -input[type="range"] { + +.form-control { display: block; width: 100%; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-clip: padding-box; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } -select[multiple], -select[size] { - height: auto; -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } } -output { - display: block; - padding-top: 7px; - font-size: 14px; - line-height: 1.42857143; - color: #555; +.form-control[type=file] { + overflow: hidden; } -.form-control { - display: block; - width: 100%; - height: 34px; - padding: 6px 12px; - font-size: 14px; - line-height: 1.42857143; - color: #555; - background-color: #fff; - background-image: none; - border: 1px solid #ccc; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - -webkit-transition: border-color ease-in-out .15s, -webkit-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; +.form-control[type=file]:not(:disabled):not([readonly]) { + cursor: pointer; } .form-control:focus { - border-color: #66afe9; + color: var(--bs-body-color); + background-color: var(--bs-body-bg); + border-color: #86b7fe; 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); + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.form-control::-moz-placeholder { - color: #999; - opacity: 1; -} -.form-control:-ms-input-placeholder { - color: #999; +.form-control::-webkit-date-and-time-value { + min-width: 85px; + height: 1.5em; + margin: 0; } -.form-control::-webkit-input-placeholder { - color: #999; +.form-control::-webkit-datetime-edit { + display: block; + padding: 0; } -.form-control[disabled], -.form-control[readonly], -fieldset[disabled] .form-control { - cursor: not-allowed; - background-color: #eee; +.form-control::-moz-placeholder { + color: var(--bs-secondary-color); opacity: 1; } -textarea.form-control { - height: auto; +.form-control::placeholder { + color: var(--bs-secondary-color); + opacity: 1; } -input[type="search"] { - -webkit-appearance: none; +.form-control:disabled { + background-color: var(--bs-secondary-bg); + opacity: 1; } -@media screen and (-webkit-min-device-pixel-ratio: 0) { - input[type="date"], - input[type="time"], - input[type="datetime-local"], - input[type="month"] { - line-height: 34px; - } - input[type="date"].input-sm, - input[type="time"].input-sm, - input[type="datetime-local"].input-sm, - input[type="month"].input-sm { - line-height: 30px; +.form-control::-webkit-file-upload-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + -webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +.form-control::file-selector-button { + padding: 0.375rem 0.75rem; + margin: -0.375rem -0.75rem; + -webkit-margin-end: 0.75rem; + margin-inline-end: 0.75rem; + color: var(--bs-body-color); + background-color: var(--bs-tertiary-bg); + pointer-events: none; + border-color: inherit; + border-style: solid; + border-width: 0; + border-inline-end-width: var(--bs-border-width); + border-radius: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-control::-webkit-file-upload-button { + -webkit-transition: none; + transition: none; } - input[type="date"].input-lg, - input[type="time"].input-lg, - input[type="datetime-local"].input-lg, - input[type="month"].input-lg { - line-height: 46px; + .form-control::file-selector-button { + transition: none; } } -.form-group { - margin-bottom: 15px; -} -.radio, -.checkbox { - position: relative; - display: block; - margin-top: 10px; - margin-bottom: 10px; -} -.radio label, -.checkbox label { - min-height: 20px; - padding-left: 20px; - margin-bottom: 0; - font-weight: normal; - 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; +.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button { + background-color: var(--bs-secondary-bg); } -.radio + .radio, -.checkbox + .checkbox { - margin-top: -5px; +.form-control:hover:not(:disabled):not([readonly])::file-selector-button { + background-color: var(--bs-secondary-bg); } -.radio-inline, -.checkbox-inline { - display: inline-block; - padding-left: 20px; + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; margin-bottom: 0; - font-weight: normal; - vertical-align: middle; - cursor: pointer; + line-height: 1.5; + color: var(--bs-body-color); + background-color: transparent; + border: solid transparent; + border-width: var(--bs-border-width) 0; } -.radio-inline + .radio-inline, -.checkbox-inline + .checkbox-inline { - margin-top: 0; - margin-left: 10px; -} -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; -} -.radio-inline.disabled, -.checkbox-inline.disabled, -fieldset[disabled] .radio-inline, -fieldset[disabled] .checkbox-inline { - cursor: not-allowed; -} -.radio.disabled label, -.checkbox.disabled label, -fieldset[disabled] .radio label, -fieldset[disabled] .checkbox label { - cursor: not-allowed; -} -.form-control-static { - padding-top: 7px; - padding-bottom: 7px; - margin-bottom: 0; +.form-control-plaintext:focus { + outline: 0; } -.form-control-static.input-lg, -.form-control-static.input-sm { +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { padding-right: 0; padding-left: 0; } -.input-sm, -.form-group-sm .form-control { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; + +.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); +} +.form-control-sm::-webkit-file-upload-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; +} +.form-control-sm::file-selector-button { + padding: 0.25rem 0.5rem; + margin: -0.25rem -0.5rem; + -webkit-margin-end: 0.5rem; + margin-inline-end: 0.5rem; } -select.input-sm, -select.form-group-sm .form-control { - height: 30px; - line-height: 30px; + +.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); +} +.form-control-lg::-webkit-file-upload-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; +} +.form-control-lg::file-selector-button { + padding: 0.5rem 1rem; + margin: -0.5rem -1rem; + -webkit-margin-end: 1rem; + margin-inline-end: 1rem; } -textarea.input-sm, -textarea.form-group-sm .form-control, -select[multiple].input-sm, -select[multiple].form-group-sm .form-control { - height: auto; + +textarea.form-control { + min-height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); } -.input-lg, -.form-group-lg .form-control { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-lg, -select.form-group-lg .form-control { - height: 46px; - line-height: 46px; -} -textarea.input-lg, -textarea.form-group-lg .form-control, -select[multiple].input-lg, -select[multiple].form-group-lg .form-control { - height: auto; +textarea.form-control-sm { + min-height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); } -.has-feedback { - position: relative; +textarea.form-control-lg { + min-height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } -.has-feedback .form-control { - padding-right: 42.5px; + +.form-control-color { + width: 3rem; + height: calc(1.5em + 0.75rem + calc(var(--bs-border-width) * 2)); + padding: 0.375rem; } -.form-control-feedback { - position: absolute; - top: 0; - right: 0; - z-index: 2; - display: block; - width: 34px; - height: 34px; - line-height: 34px; - text-align: center; - pointer-events: none; +.form-control-color:not(:disabled):not([readonly]) { + cursor: pointer; } -.input-lg + .form-control-feedback { - width: 46px; - height: 46px; - line-height: 46px; +.form-control-color::-moz-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); } -.input-sm + .form-control-feedback { - width: 30px; - height: 30px; - line-height: 30px; -} -.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: #3c763d; -} -.has-success .form-control { - border-color: #3c763d; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-success .form-control:focus { - border-color: #2b542c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; -} -.has-success .input-group-addon { - color: #3c763d; - background-color: #dff0d8; - border-color: #3c763d; -} -.has-success .form-control-feedback { - color: #3c763d; -} -.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: #8a6d3b; -} -.has-warning .form-control { - border-color: #8a6d3b; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-warning .form-control:focus { - border-color: #66512c; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; -} -.has-warning .input-group-addon { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #8a6d3b; -} -.has-warning .form-control-feedback { - color: #8a6d3b; -} -.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: #a94442; -} -.has-error .form-control { - border-color: #a94442; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); -} -.has-error .form-control:focus { - border-color: #843534; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; -} -.has-error .input-group-addon { - color: #a94442; - background-color: #f2dede; - border-color: #a94442; -} -.has-error .form-control-feedback { - color: #a94442; -} -.has-feedback label ~ .form-control-feedback { - top: 25px; -} -.has-feedback label.sr-only ~ .form-control-feedback { - top: 0; +.form-control-color::-webkit-color-swatch { + border: 0 !important; + border-radius: var(--bs-border-radius); +} +.form-control-color.form-control-sm { + height: calc(1.5em + 0.5rem + calc(var(--bs-border-width) * 2)); +} +.form-control-color.form-control-lg { + height: calc(1.5em + 1rem + calc(var(--bs-border-width) * 2)); } -.help-block { + +.form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); display: block; - margin-top: 5px; - margin-bottom: 10px; - color: #737373; + width: 100%; + padding: 0.375rem 2.25rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-body-bg); + background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none); + background-repeat: no-repeat; + background-position: right 0.75rem center; + background-size: 16px 12px; + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .form-select { + transition: none; + } +} +.form-select:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -@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-select[multiple], .form-select[size]:not([size="1"]) { + padding-right: 0.75rem; + background-image: none; } -.form-horizontal .radio, -.form-horizontal .checkbox, -.form-horizontal .radio-inline, -.form-horizontal .checkbox-inline { - padding-top: 7px; - margin-top: 0; - margin-bottom: 0; +.form-select:disabled { + background-color: var(--bs-secondary-bg); } -.form-horizontal .radio, -.form-horizontal .checkbox { - min-height: 27px; +.form-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 var(--bs-body-color); } -.form-horizontal .form-group { - margin-right: -15px; - margin-left: -15px; + +.form-select-sm { + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); } -@media (min-width: 768px) { - .form-horizontal .control-label { - padding-top: 7px; - margin-bottom: 0; - text-align: right; - } + +.form-select-lg { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); } -.form-horizontal .has-feedback .form-control-feedback { - right: 15px; + +[data-bs-theme=dark] .form-select { + --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); } -@media (min-width: 768px) { - .form-horizontal .form-group-lg .control-label { - padding-top: 14.3px; - } + +.form-check { + display: block; + min-height: 1.5rem; + padding-left: 1.5em; + margin-bottom: 0.125rem; } -@media (min-width: 768px) { - .form-horizontal .form-group-sm .control-label { - padding-top: 6px; - } +.form-check .form-check-input { + float: left; + margin-left: -1.5em; } -.btn { - display: inline-block; - padding: 6px 12px; - margin-bottom: 0; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: center; - white-space: nowrap; - vertical-align: middle; - -ms-touch-action: manipulation; - touch-action: manipulation; - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - background-image: none; - border: 1px solid transparent; - border-radius: 4px; -} -.btn:focus, -.btn:active:focus, -.btn.active:focus, -.btn.focus, -.btn:active.focus, -.btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; + +.form-check-reverse { + padding-right: 1.5em; + padding-left: 0; + text-align: right; } -.btn:hover, -.btn:focus, -.btn.focus { - color: #333; - text-decoration: none; +.form-check-reverse .form-check-input { + float: right; + margin-right: -1.5em; + margin-left: 0; } -.btn:active, -.btn.active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + +.form-check-input { + --bs-form-check-bg: var(--bs-body-bg); + flex-shrink: 0; + width: 1em; + height: 1em; + margin-top: 0.25em; + vertical-align: top; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background-color: var(--bs-form-check-bg); + background-image: var(--bs-form-check-bg-image); + background-repeat: no-repeat; + background-position: center; + background-size: contain; + border: var(--bs-border-width) solid var(--bs-border-color); + -webkit-print-color-adjust: exact; + color-adjust: exact; + print-color-adjust: exact; +} +.form-check-input[type=checkbox] { + border-radius: 0.25em; +} +.form-check-input[type=radio] { + border-radius: 50%; } -.btn.disabled, -.btn[disabled], -fieldset[disabled] .btn { - pointer-events: none; - cursor: not-allowed; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - opacity: .65; -} -.btn-default { - color: #333; - background-color: #fff; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus, -.btn-default.focus, -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; -} -.btn-default:active, -.btn-default.active, -.open > .dropdown-toggle.btn-default { - background-image: none; +.form-check-input:active { + filter: brightness(90%); } -.btn-default.disabled, -.btn-default[disabled], -fieldset[disabled] .btn-default, -.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, -.btn-default.disabled:active, -.btn-default[disabled]:active, -fieldset[disabled] .btn-default:active, -.btn-default.disabled.active, -.btn-default[disabled].active, -fieldset[disabled] .btn-default.active { - background-color: #fff; - border-color: #ccc; +.form-check-input:focus { + border-color: #86b7fe; + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.btn-default .badge { - color: #fff; - background-color: #333; +.form-check-input:checked { + background-color: #0d6efd; + border-color: #0d6efd; } -.btn-primary { - color: #fff; - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary:hover, -.btn-primary:focus, -.btn-primary.focus, -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - color: #fff; - background-color: #286090; - border-color: #204d74; +.form-check-input:checked[type=checkbox] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e"); } -.btn-primary:active, -.btn-primary.active, -.open > .dropdown-toggle.btn-primary { - background-image: none; +.form-check-input:checked[type=radio] { + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e"); } -.btn-primary.disabled, -.btn-primary[disabled], -fieldset[disabled] .btn-primary, -.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, -.btn-primary.disabled:active, -.btn-primary[disabled]:active, -fieldset[disabled] .btn-primary:active, -.btn-primary.disabled.active, -.btn-primary[disabled].active, -fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2e6da4; -} -.btn-primary .badge { - color: #337ab7; - background-color: #fff; +.form-check-input[type=checkbox]:indeterminate { + background-color: #0d6efd; + border-color: #0d6efd; + --bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e"); } -.btn-success { - color: #fff; - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success:hover, -.btn-success:focus, -.btn-success.focus, -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - color: #fff; - background-color: #449d44; - border-color: #398439; +.form-check-input:disabled { + pointer-events: none; + filter: none; + opacity: 0.5; } -.btn-success:active, -.btn-success.active, -.open > .dropdown-toggle.btn-success { - background-image: none; +.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label { + cursor: default; + opacity: 0.5; } -.btn-success.disabled, -.btn-success[disabled], -fieldset[disabled] .btn-success, -.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, -.btn-success.disabled:active, -.btn-success[disabled]:active, -fieldset[disabled] .btn-success:active, -.btn-success.disabled.active, -.btn-success[disabled].active, -fieldset[disabled] .btn-success.active { - background-color: #5cb85c; - border-color: #4cae4c; -} -.btn-success .badge { - color: #5cb85c; - background-color: #fff; + +.form-switch { + padding-left: 2.5em; } -.btn-info { - color: #fff; - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info:hover, -.btn-info:focus, -.btn-info.focus, -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - color: #fff; - background-color: #31b0d5; - border-color: #269abc; +.form-switch .form-check-input { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e"); + width: 2em; + margin-left: -2.5em; + background-image: var(--bs-form-switch-bg); + background-position: left center; + border-radius: 2em; + transition: background-position 0.15s ease-in-out; } -.btn-info:active, -.btn-info.active, -.open > .dropdown-toggle.btn-info { - background-image: none; +@media (prefers-reduced-motion: reduce) { + .form-switch .form-check-input { + transition: none; + } } -.btn-info.disabled, -.btn-info[disabled], -fieldset[disabled] .btn-info, -.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, -.btn-info.disabled:active, -.btn-info[disabled]:active, -fieldset[disabled] .btn-info:active, -.btn-info.disabled.active, -.btn-info[disabled].active, -fieldset[disabled] .btn-info.active { - background-color: #5bc0de; - border-color: #46b8da; -} -.btn-info .badge { - color: #5bc0de; - background-color: #fff; +.form-switch .form-check-input:focus { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e"); } -.btn-warning { - color: #fff; - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning:hover, -.btn-warning:focus, -.btn-warning.focus, -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - color: #fff; - background-color: #ec971f; - border-color: #d58512; +.form-switch .form-check-input:checked { + background-position: right center; + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); } -.btn-warning:active, -.btn-warning.active, -.open > .dropdown-toggle.btn-warning { - background-image: none; +.form-switch.form-check-reverse { + padding-right: 2.5em; + padding-left: 0; } -.btn-warning.disabled, -.btn-warning[disabled], -fieldset[disabled] .btn-warning, -.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, -.btn-warning.disabled:active, -.btn-warning[disabled]:active, -fieldset[disabled] .btn-warning:active, -.btn-warning.disabled.active, -.btn-warning[disabled].active, -fieldset[disabled] .btn-warning.active { - background-color: #f0ad4e; - border-color: #eea236; -} -.btn-warning .badge { - color: #f0ad4e; - background-color: #fff; +.form-switch.form-check-reverse .form-check-input { + margin-right: -2.5em; + margin-left: 0; } -.btn-danger { - color: #fff; - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger:hover, -.btn-danger:focus, -.btn-danger.focus, -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; + +.form-check-inline { + display: inline-block; + margin-right: 1rem; } -.btn-danger:active, -.btn-danger.active, -.open > .dropdown-toggle.btn-danger { - background-image: none; + +.btn-check { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } -.btn-danger.disabled, -.btn-danger[disabled], -fieldset[disabled] .btn-danger, -.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, -.btn-danger.disabled:active, -.btn-danger[disabled]:active, -fieldset[disabled] .btn-danger:active, -.btn-danger.disabled.active, -.btn-danger[disabled].active, -fieldset[disabled] .btn-danger.active { - background-color: #d9534f; - border-color: #d43f3a; -} -.btn-danger .badge { - color: #d9534f; - background-color: #fff; +.btn-check[disabled] + .btn, .btn-check:disabled + .btn { + pointer-events: none; + filter: none; + opacity: 0.65; } -.btn-link { - font-weight: normal; - color: #337ab7; - border-radius: 0; + +[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus) { + --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e"); } -.btn-link, -.btn-link:active, -.btn-link.active, -.btn-link[disabled], -fieldset[disabled] .btn-link { + +.form-range { + width: 100%; + height: 1.5rem; + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; background-color: transparent; - -webkit-box-shadow: none; - box-shadow: none; } -.btn-link, -.btn-link:hover, -.btn-link:focus, -.btn-link:active { - border-color: transparent; +.form-range:focus { + outline: 0; } -.btn-link:hover, -.btn-link:focus { - color: #23527c; - text-decoration: underline; - background-color: transparent; +.form-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.btn-link[disabled]:hover, -fieldset[disabled] .btn-link:hover, -.btn-link[disabled]:focus, -fieldset[disabled] .btn-link:focus { - color: #777; - text-decoration: none; +.form-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.btn-lg, -.btn-group-lg > .btn { - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -.btn-sm, -.btn-group-sm > .btn { - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; +.form-range::-moz-focus-outer { + border: 0; } -.btn-xs, -.btn-group-xs > .btn { - padding: 1px 5px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; +.form-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + -webkit-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } -.btn-block { - display: block; - width: 100%; +@media (prefers-reduced-motion: reduce) { + .form-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } } -.btn-block + .btn-block { - margin-top: 5px; +.form-range::-webkit-slider-thumb:active { + background-color: #b6d4fe; } -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { +.form-range::-webkit-slider-runnable-track { width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; +} +.form-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + -moz-appearance: none; + appearance: none; + background-color: #0d6efd; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } -.fade { - opacity: 0; - -webkit-transition: opacity .15s linear; - -o-transition: opacity .15s linear; - transition: opacity .15s linear; -} -.fade.in { - opacity: 1; +@media (prefers-reduced-motion: reduce) { + .form-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } } -.collapse { - display: none; - visibility: hidden; +.form-range::-moz-range-thumb:active { + background-color: #b6d4fe; } -.collapse.in { - display: block; - visibility: visible; +.form-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: var(--bs-secondary-bg); + border-color: transparent; + border-radius: 1rem; } -tr.collapse.in { - display: table-row; +.form-range:disabled { + pointer-events: none; } -tbody.collapse.in { - display: table-row-group; +.form-range:disabled::-webkit-slider-thumb { + background-color: var(--bs-secondary-color); } -.collapsing { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition-timing-function: ease; - -o-transition-timing-function: ease; - transition-timing-function: ease; - -webkit-transition-duration: .35s; - -o-transition-duration: .35s; - transition-duration: .35s; - -webkit-transition-property: height, visibility; - -o-transition-property: height, visibility; - transition-property: height, visibility; -} -.caret { - display: inline-block; - width: 0; - height: 0; - margin-left: 2px; - vertical-align: middle; - border-top: 4px solid; - border-right: 4px solid transparent; - border-left: 4px solid transparent; +.form-range:disabled::-moz-range-thumb { + background-color: var(--bs-secondary-color); } -.dropdown { + +.form-floating { position: relative; } -.dropdown-toggle:focus { - outline: 0; +.form-floating > .form-control, +.form-floating > .form-control-plaintext, +.form-floating > .form-select { + height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + min-height: calc(3.5rem + calc(var(--bs-border-width) * 2)); + line-height: 1.25; } -.dropdown-menu { +.form-floating > label { position: absolute; - top: 100%; + top: 0; 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; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .15); - border-radius: 4px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); - 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; + z-index: 2; + height: 100%; + padding: 1rem 0.75rem; overflow: hidden; - background-color: #e5e5e5; -} -.dropdown-menu > li > a { - display: block; - padding: 3px 20px; - clear: both; - font-weight: normal; - line-height: 1.42857143; - color: #333; + text-align: start; + text-overflow: ellipsis; white-space: nowrap; + pointer-events: none; + border: var(--bs-border-width) solid transparent; + transform-origin: 0 0; + transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out; } -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - color: #262626; - text-decoration: none; - background-color: #f5f5f5; +@media (prefers-reduced-motion: reduce) { + .form-floating > label { + transition: none; + } } -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - color: #fff; - text-decoration: none; - background-color: #337ab7; - outline: 0; +.form-floating > .form-control, +.form-floating > .form-control-plaintext { + padding: 1rem 0.75rem; } -.dropdown-menu > .disabled > a, -.dropdown-menu > .disabled > a:hover, -.dropdown-menu > .disabled > a:focus { - color: #777; +.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder { + color: transparent; } -.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); +.form-floating > .form-control::placeholder, +.form-floating > .form-control-plaintext::placeholder { + color: transparent; } -.open > .dropdown-menu { - display: block; +.form-floating > .form-control:not(:-moz-placeholder-shown), .form-floating > .form-control-plaintext:not(:-moz-placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown), +.form-floating > .form-control-plaintext:focus, +.form-floating > .form-control-plaintext:not(:placeholder-shown) { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:-webkit-autofill, +.form-floating > .form-control-plaintext:-webkit-autofill { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-select { + padding-top: 1.625rem; + padding-bottom: 0.625rem; +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:focus ~ label, +.form-floating > .form-control:not(:placeholder-shown) ~ label, +.form-floating > .form-control-plaintext ~ label, +.form-floating > .form-select ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); +} +.form-floating > .form-control:not(:-moz-placeholder-shown) ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); } -.open > a { - outline: 0; +.form-floating > .form-control:focus ~ label::after, +.form-floating > .form-control:not(:placeholder-shown) ~ label::after, +.form-floating > .form-control-plaintext ~ label::after, +.form-floating > .form-select ~ label::after { + position: absolute; + inset: 1rem 0.375rem; + z-index: -1; + height: 1.5em; + content: ""; + background-color: var(--bs-body-bg); + border-radius: var(--bs-border-radius); } -.dropdown-menu-right { - right: 0; - left: auto; +.form-floating > .form-control:-webkit-autofill ~ label { + color: rgba(var(--bs-body-color-rgb), 0.65); + transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem); } -.dropdown-menu-left { - right: auto; - left: 0; +.form-floating > .form-control-plaintext ~ label { + border-width: var(--bs-border-width) 0; } -.dropdown-header { - display: block; - padding: 3px 20px; - font-size: 12px; - line-height: 1.42857143; - color: #777; - white-space: nowrap; +.form-floating > :disabled ~ label, +.form-floating > .form-control:disabled ~ label { + color: #6c757d; } -.dropdown-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 990; +.form-floating > :disabled ~ label::after, +.form-floating > .form-control:disabled ~ label::after { + background-color: var(--bs-secondary-bg); } -.pull-right > .dropdown-menu { - right: 0; - left: auto; + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; } -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - content: ""; - border-top: 0; - border-bottom: 4px solid; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -@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 { +.input-group > .form-control, +.input-group > .form-select, +.input-group > .form-floating { position: relative; - display: inline-block; - vertical-align: middle; + flex: 1 1 auto; + width: 1%; + min-width: 0; } -.btn-group > .btn, -.btn-group-vertical > .btn { - position: relative; - float: left; +.input-group > .form-control:focus, +.input-group > .form-select:focus, +.input-group > .form-floating:focus-within { + z-index: 5; } -.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 { +.input-group .btn { + position: relative; 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; +.input-group .btn:focus { + z-index: 5; } -.btn-toolbar .btn-group, -.btn-toolbar .input-group { - float: left; + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: var(--bs-body-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-tertiary-bg); + border: var(--bs-border-width) solid var(--bs-border-color); + border-radius: var(--bs-border-radius); } -.btn-toolbar > .btn, -.btn-toolbar > .btn-group, -.btn-toolbar > .input-group { - margin-left: 5px; + +.input-group-lg > .form-control, +.input-group-lg > .form-select, +.input-group-lg > .input-group-text, +.input-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + border-radius: var(--bs-border-radius-lg); } -.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { - border-radius: 0; + +.input-group-sm > .form-control, +.input-group-sm > .form-select, +.input-group-sm > .input-group-text, +.input-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + border-radius: var(--bs-border-radius-sm); } -.btn-group > .btn:first-child { - margin-left: 0; + +.input-group-lg > .form-select, +.input-group-sm > .form-select { + padding-right: 3rem; } -.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + +.input-group:not(.has-validation) > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group:not(.has-validation) > .dropdown-toggle:nth-last-child(n+3), +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-control, +.input-group:not(.has-validation) > .form-floating:not(:last-child) > .form-select { 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 > .btn:last-child, -.btn-group > .btn-group:first-child > .dropdown-toggle { +.input-group.has-validation > :nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating), +.input-group.has-validation > .dropdown-toggle:nth-last-child(n+4), +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-control, +.input-group.has-validation > .form-floating:nth-last-child(n+3) > .form-select { border-top-right-radius: 0; border-bottom-right-radius: 0; } -.btn-group > .btn-group:last-child > .btn:first-child { +.input-group > :not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback) { + margin-left: calc(var(--bs-border-width) * -1); 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; +.input-group > .form-floating:not(:first-child) > .form-control, +.input-group > .form-floating:not(:first-child) > .form-select { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } -.btn-group > .btn-lg + .dropdown-toggle { - padding-right: 12px; - padding-left: 12px; + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-valid-color); } -.btn-group.open .dropdown-toggle { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-success); + border-radius: var(--bs-border-radius); } -.btn-group.open .dropdown-toggle.btn-link { - -webkit-box-shadow: none; - box-shadow: none; + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; } -.btn .caret { - margin-left: 0; + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: var(--bs-form-valid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } -.btn-lg .caret { - border-width: 5px 5px 0; - border-bottom-width: 0; + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } -.dropup .btn-lg .caret { - border-width: 0 5px 5px; + +.was-validated .form-select:valid, .form-select.is-valid { + border-color: var(--bs-form-valid-border-color); } -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group, -.btn-group-vertical > .btn-group > .btn { - display: block; - float: none; - width: 100%; - max-width: 100%; +.was-validated .form-select:valid:not([multiple]):not([size]), .was-validated .form-select:valid:not([multiple])[size="1"], .form-select.is-valid:not([multiple]):not([size]), .form-select.is-valid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } -.btn-group-vertical > .btn-group > .btn { - float: none; +.was-validated .form-select:valid:focus, .form-select.is-valid:focus { + border-color: var(--bs-form-valid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } -.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; + +.was-validated .form-control-color:valid, .form-control-color.is-valid { + width: calc(3rem + calc(1.5em + 0.75rem)); } -.btn-group-vertical > .btn:not(:first-child):not(:last-child) { - border-radius: 0; + +.was-validated .form-check-input:valid, .form-check-input.is-valid { + border-color: var(--bs-form-valid-border-color); } -.btn-group-vertical > .btn:first-child:not(:last-child) { - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; +.was-validated .form-check-input:valid:checked, .form-check-input.is-valid:checked { + background-color: var(--bs-form-valid-color); } -.btn-group-vertical > .btn:last-child:not(:first-child) { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 4px; +.was-validated .form-check-input:valid:focus, .form-check-input.is-valid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-success-rgb), 0.25); } -.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { - border-radius: 0; +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: var(--bs-form-valid-color); } -.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; + +.form-check-inline .form-check-input ~ .valid-feedback { + margin-left: 0.5em; } -.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { - border-top-left-radius: 0; - border-top-right-radius: 0; + +.was-validated .input-group > .form-control:not(:focus):valid, .input-group > .form-control:not(:focus).is-valid, +.was-validated .input-group > .form-select:not(:focus):valid, +.input-group > .form-select:not(:focus).is-valid, +.was-validated .input-group > .form-floating:not(:focus-within):valid, +.input-group > .form-floating:not(:focus-within).is-valid { + z-index: 3; } -.btn-group-justified { - display: table; + +.invalid-feedback { + display: none; width: 100%; - table-layout: fixed; - border-collapse: separate; + margin-top: 0.25rem; + font-size: 0.875em; + color: var(--bs-form-invalid-color); } -.btn-group-justified > .btn, -.btn-group-justified > .btn-group { - display: table-cell; - float: none; - width: 1%; + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: 0.1rem; + font-size: 0.875rem; + color: #fff; + background-color: var(--bs-danger); + border-radius: var(--bs-border-radius); } -.btn-group-justified > .btn-group .btn { - width: 100%; + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; } -.btn-group-justified > .btn-group .dropdown-menu { - left: auto; + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: var(--bs-form-invalid-border-color); + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } -[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; + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); } -.input-group { - position: relative; - display: table; - border-collapse: separate; + +.was-validated .form-select:invalid, .form-select.is-invalid { + border-color: var(--bs-form-invalid-border-color); } -.input-group[class*="col-"] { - float: none; - padding-right: 0; - padding-left: 0; +.was-validated .form-select:invalid:not([multiple]):not([size]), .was-validated .form-select:invalid:not([multiple])[size="1"], .form-select.is-invalid:not([multiple]):not([size]), .form-select.is-invalid:not([multiple])[size="1"] { + --bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + padding-right: 4.125rem; + background-position: right 0.75rem center, center right 2.25rem; + background-size: 16px 12px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); } -.input-group .form-control { - position: relative; - z-index: 2; - float: left; - width: 100%; - margin-bottom: 0; +.was-validated .form-select:invalid:focus, .form-select.is-invalid:focus { + border-color: var(--bs-form-invalid-border-color); + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } -.input-group-lg > .form-control, -.input-group-lg > .input-group-addon, -.input-group-lg > .input-group-btn > .btn { - height: 46px; - padding: 10px 16px; - font-size: 18px; - line-height: 1.33; - border-radius: 6px; -} -select.input-group-lg > .form-control, -select.input-group-lg > .input-group-addon, -select.input-group-lg > .input-group-btn > .btn { - height: 46px; - line-height: 46px; -} -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; + +.was-validated .form-control-color:invalid, .form-control-color.is-invalid { + width: calc(3rem + calc(1.5em + 0.75rem)); } -.input-group-sm > .form-control, -.input-group-sm > .input-group-addon, -.input-group-sm > .input-group-btn > .btn { - height: 30px; - padding: 5px 10px; - font-size: 12px; - line-height: 1.5; - border-radius: 3px; -} -select.input-group-sm > .form-control, -select.input-group-sm > .input-group-addon, -select.input-group-sm > .input-group-btn > .btn { - height: 30px; - line-height: 30px; -} -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; + +.was-validated .form-check-input:invalid, .form-check-input.is-invalid { + border-color: var(--bs-form-invalid-border-color); } -.input-group-addon, -.input-group-btn, -.input-group .form-control { - display: table-cell; +.was-validated .form-check-input:invalid:checked, .form-check-input.is-invalid:checked { + background-color: var(--bs-form-invalid-color); } -.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; +.was-validated .form-check-input:invalid:focus, .form-check-input.is-invalid:focus { + box-shadow: 0 0 0 0.25rem rgba(var(--bs-danger-rgb), 0.25); } -.input-group-addon, -.input-group-btn { - width: 1%; - white-space: nowrap; - vertical-align: middle; +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: var(--bs-form-invalid-color); } -.input-group-addon { - padding: 6px 12px; - font-size: 14px; - font-weight: normal; - line-height: 1; - color: #555; - text-align: center; - background-color: #eee; - border: 1px solid #ccc; - border-radius: 4px; -} -.input-group-addon.input-sm { - padding: 5px 10px; - font-size: 12px; - border-radius: 3px; -} -.input-group-addon.input-lg { - padding: 10px 16px; - font-size: 18px; - border-radius: 6px; -} -.input-group-addon input[type="radio"], -.input-group-addon input[type="checkbox"] { - margin-top: 0; + +.form-check-inline .form-check-input ~ .invalid-feedback { + margin-left: 0.5em; } -.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; + +.was-validated .input-group > .form-control:not(:focus):invalid, .input-group > .form-control:not(:focus).is-invalid, +.was-validated .input-group > .form-select:not(:focus):invalid, +.input-group > .form-select:not(:focus).is-invalid, +.was-validated .input-group > .form-floating:not(:focus-within):invalid, +.input-group > .form-floating:not(:focus-within).is-invalid { + z-index: 4; } -.input-group-addon:first-child { - border-right: 0; + +.btn { + --bs-btn-padding-x: 0.75rem; + --bs-btn-padding-y: 0.375rem; + --bs-btn-font-family: ; + --bs-btn-font-size: 1rem; + --bs-btn-font-weight: 400; + --bs-btn-line-height: 1.5; + --bs-btn-color: var(--bs-body-color); + --bs-btn-bg: transparent; + --bs-btn-border-width: var(--bs-border-width); + --bs-btn-border-color: transparent; + --bs-btn-border-radius: var(--bs-border-radius); + --bs-btn-hover-border-color: transparent; + --bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + --bs-btn-disabled-opacity: 0.65; + --bs-btn-focus-box-shadow: 0 0 0 0.25rem rgba(var(--bs-btn-focus-shadow-rgb), .5); + display: inline-block; + padding: var(--bs-btn-padding-y) var(--bs-btn-padding-x); + font-family: var(--bs-btn-font-family); + font-size: var(--bs-btn-font-size); + font-weight: var(--bs-btn-font-weight); + line-height: var(--bs-btn-line-height); + color: var(--bs-btn-color); + text-align: center; + text-decoration: none; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + border: var(--bs-btn-border-width) solid var(--bs-btn-border-color); + border-radius: var(--bs-btn-border-radius); + background-color: var(--bs-btn-bg); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} +.btn:hover { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); +} +.btn-check + .btn:hover { + color: var(--bs-btn-color); + background-color: var(--bs-btn-bg); + border-color: var(--bs-btn-border-color); +} +.btn:focus-visible { + color: var(--bs-btn-hover-color); + background-color: var(--bs-btn-hover-bg); + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); } -.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; +.btn-check:focus-visible + .btn { + border-color: var(--bs-btn-hover-border-color); + outline: 0; + box-shadow: var(--bs-btn-focus-box-shadow); } -.input-group-addon:last-child { - border-left: 0; +.btn-check:checked + .btn, :not(.btn-check) + .btn:active, .btn:first-child:active, .btn.active, .btn.show { + color: var(--bs-btn-active-color); + background-color: var(--bs-btn-active-bg); + border-color: var(--bs-btn-active-border-color); } -.input-group-btn { - position: relative; - font-size: 0; - white-space: nowrap; +.btn-check:checked + .btn:focus-visible, :not(.btn-check) + .btn:active:focus-visible, .btn:first-child:active:focus-visible, .btn.active:focus-visible, .btn.show:focus-visible { + box-shadow: var(--bs-btn-focus-box-shadow); } -.input-group-btn > .btn { - position: relative; +.btn:disabled, .btn.disabled, fieldset:disabled .btn { + color: var(--bs-btn-disabled-color); + pointer-events: none; + background-color: var(--bs-btn-disabled-bg); + border-color: var(--bs-btn-disabled-border-color); + opacity: var(--bs-btn-disabled-opacity); } -.input-group-btn > .btn + .btn { - margin-left: -1px; + +.btn-primary { + --bs-btn-color: #fff; + --bs-btn-bg: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0b5ed7; + --bs-btn-hover-border-color: #0a58ca; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0a58ca; + --bs-btn-active-border-color: #0a53be; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #0d6efd; + --bs-btn-disabled-border-color: #0d6efd; } -.input-group-btn > .btn:hover, -.input-group-btn > .btn:focus, -.input-group-btn > .btn:active { - z-index: 2; + +.btn-secondary { + --bs-btn-color: #fff; + --bs-btn-bg: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #5c636a; + --bs-btn-hover-border-color: #565e64; + --bs-btn-focus-shadow-rgb: 130, 138, 145; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #565e64; + --bs-btn-active-border-color: #51585e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #6c757d; + --bs-btn-disabled-border-color: #6c757d; } -.input-group-btn:first-child > .btn, -.input-group-btn:first-child > .btn-group { - margin-right: -1px; + +.btn-success { + --bs-btn-color: #fff; + --bs-btn-bg: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #157347; + --bs-btn-hover-border-color: #146c43; + --bs-btn-focus-shadow-rgb: 60, 153, 110; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #146c43; + --bs-btn-active-border-color: #13653f; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #198754; + --bs-btn-disabled-border-color: #198754; } -.input-group-btn:last-child > .btn, -.input-group-btn:last-child > .btn-group { - margin-left: -1px; + +.btn-info { + --bs-btn-color: #000; + --bs-btn-bg: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #31d2f2; + --bs-btn-hover-border-color: #25cff2; + --bs-btn-focus-shadow-rgb: 11, 172, 204; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #3dd5f3; + --bs-btn-active-border-color: #25cff2; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #0dcaf0; + --bs-btn-disabled-border-color: #0dcaf0; } -.nav { - padding-left: 0; - margin-bottom: 0; - list-style: none; + +.btn-warning { + --bs-btn-color: #000; + --bs-btn-bg: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffca2c; + --bs-btn-hover-border-color: #ffc720; + --bs-btn-focus-shadow-rgb: 217, 164, 6; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffcd39; + --bs-btn-active-border-color: #ffc720; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #ffc107; + --bs-btn-disabled-border-color: #ffc107; } -.nav > li { - position: relative; - display: block; + +.btn-danger { + --bs-btn-color: #fff; + --bs-btn-bg: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #bb2d3b; + --bs-btn-hover-border-color: #b02a37; + --bs-btn-focus-shadow-rgb: 225, 83, 97; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #b02a37; + --bs-btn-active-border-color: #a52834; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #dc3545; + --bs-btn-disabled-border-color: #dc3545; } -.nav > li > a { - position: relative; - display: block; - padding: 10px 15px; + +.btn-light { + --bs-btn-color: #000; + --bs-btn-bg: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #d3d4d5; + --bs-btn-hover-border-color: #c6c7c8; + --bs-btn-focus-shadow-rgb: 211, 212, 213; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #c6c7c8; + --bs-btn-active-border-color: #babbbc; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #000; + --bs-btn-disabled-bg: #f8f9fa; + --bs-btn-disabled-border-color: #f8f9fa; } -.nav > li > a:hover, -.nav > li > a:focus { - text-decoration: none; - background-color: #eee; + +.btn-dark { + --bs-btn-color: #fff; + --bs-btn-bg: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #424649; + --bs-btn-hover-border-color: #373b3e; + --bs-btn-focus-shadow-rgb: 66, 70, 73; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #4d5154; + --bs-btn-active-border-color: #373b3e; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #fff; + --bs-btn-disabled-bg: #212529; + --bs-btn-disabled-border-color: #212529; } -.nav > li.disabled > a { - color: #777; + +.btn-outline-primary { + --bs-btn-color: #0d6efd; + --bs-btn-border-color: #0d6efd; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #0d6efd; + --bs-btn-hover-border-color: #0d6efd; + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #0d6efd; + --bs-btn-active-border-color: #0d6efd; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0d6efd; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0d6efd; + --bs-gradient: none; } -.nav > li.disabled > a:hover, -.nav > li.disabled > a:focus { - color: #777; - text-decoration: none; - cursor: not-allowed; - background-color: transparent; + +.btn-outline-secondary { + --bs-btn-color: #6c757d; + --bs-btn-border-color: #6c757d; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #6c757d; + --bs-btn-hover-border-color: #6c757d; + --bs-btn-focus-shadow-rgb: 108, 117, 125; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #6c757d; + --bs-btn-active-border-color: #6c757d; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #6c757d; + --bs-gradient: none; } -.nav .open > a, -.nav .open > a:hover, -.nav .open > a:focus { - background-color: #eee; - border-color: #337ab7; + +.btn-outline-success { + --bs-btn-color: #198754; + --bs-btn-border-color: #198754; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #198754; + --bs-btn-hover-border-color: #198754; + --bs-btn-focus-shadow-rgb: 25, 135, 84; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #198754; + --bs-btn-active-border-color: #198754; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #198754; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #198754; + --bs-gradient: none; } -.nav .nav-divider { - height: 1px; - margin: 9px 0; - overflow: hidden; - background-color: #e5e5e5; + +.btn-outline-info { + --bs-btn-color: #0dcaf0; + --bs-btn-border-color: #0dcaf0; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #0dcaf0; + --bs-btn-hover-border-color: #0dcaf0; + --bs-btn-focus-shadow-rgb: 13, 202, 240; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #0dcaf0; + --bs-btn-active-border-color: #0dcaf0; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #0dcaf0; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #0dcaf0; + --bs-gradient: none; } -.nav > li > a > img { - max-width: none; + +.btn-outline-warning { + --bs-btn-color: #ffc107; + --bs-btn-border-color: #ffc107; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #ffc107; + --bs-btn-hover-border-color: #ffc107; + --bs-btn-focus-shadow-rgb: 255, 193, 7; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #ffc107; + --bs-btn-active-border-color: #ffc107; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #ffc107; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #ffc107; + --bs-gradient: none; } -.nav-tabs { - border-bottom: 1px solid #ddd; + +.btn-outline-danger { + --bs-btn-color: #dc3545; + --bs-btn-border-color: #dc3545; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #dc3545; + --bs-btn-hover-border-color: #dc3545; + --bs-btn-focus-shadow-rgb: 220, 53, 69; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #dc3545; + --bs-btn-active-border-color: #dc3545; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #dc3545; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #dc3545; + --bs-gradient: none; } -.nav-tabs > li { - float: left; - margin-bottom: -1px; + +.btn-outline-light { + --bs-btn-color: #f8f9fa; + --bs-btn-border-color: #f8f9fa; + --bs-btn-hover-color: #000; + --bs-btn-hover-bg: #f8f9fa; + --bs-btn-hover-border-color: #f8f9fa; + --bs-btn-focus-shadow-rgb: 248, 249, 250; + --bs-btn-active-color: #000; + --bs-btn-active-bg: #f8f9fa; + --bs-btn-active-border-color: #f8f9fa; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #f8f9fa; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #f8f9fa; + --bs-gradient: none; } -.nav-tabs > li > a { - margin-right: 2px; - line-height: 1.42857143; - border: 1px solid transparent; - border-radius: 4px 4px 0 0; + +.btn-outline-dark { + --bs-btn-color: #212529; + --bs-btn-border-color: #212529; + --bs-btn-hover-color: #fff; + --bs-btn-hover-bg: #212529; + --bs-btn-hover-border-color: #212529; + --bs-btn-focus-shadow-rgb: 33, 37, 41; + --bs-btn-active-color: #fff; + --bs-btn-active-bg: #212529; + --bs-btn-active-border-color: #212529; + --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-disabled-color: #212529; + --bs-btn-disabled-bg: transparent; + --bs-btn-disabled-border-color: #212529; + --bs-gradient: none; } -.nav-tabs > li > a:hover { - border-color: #eee #eee #ddd; + +.btn-link { + --bs-btn-font-weight: 400; + --bs-btn-color: var(--bs-link-color); + --bs-btn-bg: transparent; + --bs-btn-border-color: transparent; + --bs-btn-hover-color: var(--bs-link-hover-color); + --bs-btn-hover-border-color: transparent; + --bs-btn-active-color: var(--bs-link-hover-color); + --bs-btn-active-border-color: transparent; + --bs-btn-disabled-color: #6c757d; + --bs-btn-disabled-border-color: transparent; + --bs-btn-box-shadow: 0 0 0 #000; + --bs-btn-focus-shadow-rgb: 49, 132, 253; + text-decoration: underline; } -.nav-tabs > li.active > a, -.nav-tabs > li.active > a:hover, -.nav-tabs > li.active > a:focus { - color: #555; - cursor: default; - background-color: #fff; - border: 1px solid #ddd; - border-bottom-color: transparent; +.btn-link:focus-visible { + color: var(--bs-btn-color); } -.nav-tabs.nav-justified { - width: 100%; - border-bottom: 0; +.btn-link:hover { + color: var(--bs-btn-hover-color); } -.nav-tabs.nav-justified > li { - float: none; + +.btn-lg, .btn-group-lg > .btn { + --bs-btn-padding-y: 0.5rem; + --bs-btn-padding-x: 1rem; + --bs-btn-font-size: 1.25rem; + --bs-btn-border-radius: var(--bs-border-radius-lg); } -.nav-tabs.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; + +.btn-sm, .btn-group-sm > .btn { + --bs-btn-padding-y: 0.25rem; + --bs-btn-padding-x: 0.5rem; + --bs-btn-font-size: 0.875rem; + --bs-btn-border-radius: var(--bs-border-radius-sm); } -.nav-tabs.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; + +.fade { + transition: opacity 0.15s linear; } -@media (min-width: 768px) { - .nav-tabs.nav-justified > li { - display: table-cell; - width: 1%; - } - .nav-tabs.nav-justified > li > a { - margin-bottom: 0; +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; } } -.nav-tabs.nav-justified > li > a { - margin-right: 0; - border-radius: 4px; +.fade:not(.show) { + opacity: 0; } -.nav-tabs.nav-justified > .active > a, -.nav-tabs.nav-justified > .active > a:hover, -.nav-tabs.nav-justified > .active > a:focus { - border: 1px solid #ddd; + +.collapse:not(.show) { + display: none; } -@media (min-width: 768px) { - .nav-tabs.nav-justified > li > a { - border-bottom: 1px solid #ddd; - 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: #fff; + +.collapsing { + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; } } -.nav-pills > li { - float: left; +.collapsing.collapse-horizontal { + width: 0; + height: auto; + transition: width 0.35s ease; } -.nav-pills > li > a { - border-radius: 4px; +@media (prefers-reduced-motion: reduce) { + .collapsing.collapse-horizontal { + transition: none; + } } -.nav-pills > li + li { - margin-left: 2px; + +.dropup, +.dropend, +.dropdown, +.dropstart, +.dropup-center, +.dropdown-center { + position: relative; } -.nav-pills > li.active > a, -.nav-pills > li.active > a:hover, -.nav-pills > li.active > a:focus { - color: #fff; - background-color: #337ab7; + +.dropdown-toggle { + white-space: nowrap; } -.nav-stacked > li { - float: none; +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; } -.nav-stacked > li + li { - margin-top: 2px; +.dropdown-toggle:empty::after { margin-left: 0; } -.nav-justified { - width: 100%; + +.dropdown-menu { + --bs-dropdown-zindex: 1000; + --bs-dropdown-min-width: 10rem; + --bs-dropdown-padding-x: 0; + --bs-dropdown-padding-y: 0.5rem; + --bs-dropdown-spacer: 0.125rem; + --bs-dropdown-font-size: 1rem; + --bs-dropdown-color: var(--bs-body-color); + --bs-dropdown-bg: var(--bs-body-bg); + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-border-radius: var(--bs-border-radius); + --bs-dropdown-border-width: var(--bs-border-width); + --bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width)); + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-divider-margin-y: 0.5rem; + --bs-dropdown-box-shadow: var(--bs-box-shadow); + --bs-dropdown-link-color: var(--bs-body-color); + --bs-dropdown-link-hover-color: var(--bs-body-color); + --bs-dropdown-link-hover-bg: var(--bs-tertiary-bg); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: var(--bs-tertiary-color); + --bs-dropdown-item-padding-x: 1rem; + --bs-dropdown-item-padding-y: 0.25rem; + --bs-dropdown-header-color: #6c757d; + --bs-dropdown-header-padding-x: 1rem; + --bs-dropdown-header-padding-y: 0.5rem; + position: absolute; + z-index: var(--bs-dropdown-zindex); + display: none; + min-width: var(--bs-dropdown-min-width); + padding: var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x); + margin: 0; + font-size: var(--bs-dropdown-font-size); + color: var(--bs-dropdown-color); + text-align: left; + list-style: none; + background-color: var(--bs-dropdown-bg); + background-clip: padding-box; + border: var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color); + border-radius: var(--bs-dropdown-border-radius); } -.nav-justified > li { - float: none; +.dropdown-menu[data-bs-popper] { + top: 100%; + left: 0; + margin-top: var(--bs-dropdown-spacer); } -.nav-justified > li > a { - margin-bottom: 5px; - text-align: center; + +.dropdown-menu-start { + --bs-position: start; } -.nav-justified > .dropdown .dropdown-menu { - top: auto; - left: auto; +.dropdown-menu-start[data-bs-popper] { + right: auto; + left: 0; } -@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; + +.dropdown-menu-end { + --bs-position: end; } -.nav-tabs-justified > .active > a, -.nav-tabs-justified > .active > a:hover, -.nav-tabs-justified > .active > a:focus { - border: 1px solid #ddd; +.dropdown-menu-end[data-bs-popper] { + right: 0; + left: auto; } -@media (min-width: 768px) { - .nav-tabs-justified > li > a { - border-bottom: 1px solid #ddd; - border-radius: 4px 4px 0 0; + +@media (min-width: 576px) { + .dropdown-menu-sm-start { + --bs-position: start; } - .nav-tabs-justified > .active > a, - .nav-tabs-justified > .active > a:hover, - .nav-tabs-justified > .active > a:focus { - border-bottom-color: #fff; + .dropdown-menu-sm-start[data-bs-popper] { + right: auto; + left: 0; } -} -.tab-content > .tab-pane { - display: none; - visibility: hidden; -} -.tab-content > .active { - display: block; - visibility: visible; -} -.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; + .dropdown-menu-sm-end { + --bs-position: end; } -} -@media (min-width: 768px) { - .navbar-header { - float: left; + .dropdown-menu-sm-end[data-bs-popper] { + right: 0; + left: auto; } } -.navbar-collapse { - padding-right: 15px; - padding-left: 15px; - overflow-x: visible; - -webkit-overflow-scrolling: touch; - border-top: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); -} -.navbar-collapse.in { - overflow-y: auto; -} @media (min-width: 768px) { - .navbar-collapse { - width: auto; - border-top: 0; - -webkit-box-shadow: none; - box-shadow: none; - } - .navbar-collapse.collapse { - display: block !important; - height: auto !important; - padding-bottom: 0; - overflow: visible !important; - visibility: visible !important; - } - .navbar-collapse.in { - overflow-y: visible; + .dropdown-menu-md-start { + --bs-position: start; } - .navbar-fixed-top .navbar-collapse, - .navbar-static-top .navbar-collapse, - .navbar-fixed-bottom .navbar-collapse { - padding-right: 0; - padding-left: 0; + .dropdown-menu-md-start[data-bs-popper] { + right: auto; + left: 0; } -} -.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; + .dropdown-menu-md-end { + --bs-position: end; } -} -.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; + .dropdown-menu-md-end[data-bs-popper] { + right: 0; + left: auto; } } -.navbar-static-top { - z-index: 1000; - border-width: 0 0 1px; -} -@media (min-width: 768px) { - .navbar-static-top { - border-radius: 0; +@media (min-width: 992px) { + .dropdown-menu-lg-start { + --bs-position: start; } -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; -} -@media (min-width: 768px) { - .navbar-fixed-top, - .navbar-fixed-bottom { - border-radius: 0; + .dropdown-menu-lg-start[data-bs-popper] { + right: auto; + left: 0; } -} -.navbar-fixed-top { - top: 0; - border-width: 0 0 1px; -} -.navbar-fixed-bottom { - bottom: 0; - margin-bottom: 0; - border-width: 1px 0 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; + .dropdown-menu-lg-end { + --bs-position: end; } -} -.navbar-toggle { - position: relative; - float: right; - padding: 9px 10px; - margin-top: 8px; - margin-right: 15px; - 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; + .dropdown-menu-lg-end[data-bs-popper] { + right: 0; + left: auto; } } -.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; - -webkit-box-shadow: none; - 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: 1200px) { + .dropdown-menu-xl-start { + --bs-position: start; } -} -@media (min-width: 768px) { - .navbar-nav { - float: left; - margin: 0; + .dropdown-menu-xl-start[data-bs-popper] { + right: auto; + left: 0; } - .navbar-nav > li { - float: left; + .dropdown-menu-xl-end { + --bs-position: end; } - .navbar-nav > li > a { - padding-top: 15px; - padding-bottom: 15px; + .dropdown-menu-xl-end[data-bs-popper] { + right: 0; + left: auto; } } -.navbar-form { - padding: 10px 15px; - margin-top: 8px; - margin-right: -15px; - margin-bottom: 8px; - margin-left: -15px; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); -} -@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; +@media (min-width: 1400px) { + .dropdown-menu-xxl-start { + --bs-position: start; } - .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; + .dropdown-menu-xxl-start[data-bs-popper] { + right: auto; + left: 0; } - .navbar-form .radio input[type="radio"], - .navbar-form .checkbox input[type="checkbox"] { - position: relative; - margin-left: 0; + .dropdown-menu-xxl-end { + --bs-position: end; } - .navbar-form .has-feedback .form-control-feedback { - top: 0; + .dropdown-menu-xxl-end[data-bs-popper] { + right: 0; + left: auto; } } -@media (max-width: 767px) { - .navbar-form .form-group { - margin-bottom: 5px; - } - .navbar-form .form-group:last-child { - margin-bottom: 0; - } +.dropup .dropdown-menu[data-bs-popper] { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: var(--bs-dropdown-spacer); } -@media (min-width: 768px) { - .navbar-form { - width: auto; - padding-top: 0; - padding-bottom: 0; - margin-right: 0; - margin-left: 0; - border: 0; - -webkit-box-shadow: none; - box-shadow: none; - } +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} +.dropup .dropdown-toggle:empty::after { + margin-left: 0; } -.navbar-nav > li > .dropdown-menu { + +.dropend .dropdown-menu[data-bs-popper] { + top: 0; + right: auto; + left: 100%; margin-top: 0; - border-top-left-radius: 0; - border-top-right-radius: 0; + margin-left: var(--bs-dropdown-spacer); } -.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; +.dropend .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; } -.navbar-btn { - margin-top: 8px; - margin-bottom: 8px; +.dropend .dropdown-toggle:empty::after { + margin-left: 0; } -.navbar-btn.btn-sm { - margin-top: 10px; - margin-bottom: 10px; +.dropend .dropdown-toggle::after { + vertical-align: 0; } -.navbar-btn.btn-xs { - margin-top: 14px; - margin-bottom: 14px; + +.dropstart .dropdown-menu[data-bs-popper] { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: var(--bs-dropdown-spacer); } -.navbar-text { - margin-top: 15px; - margin-bottom: 15px; +.dropstart .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; } -@media (min-width: 768px) { - .navbar-text { - float: left; - margin-right: 15px; - margin-left: 15px; - } +.dropstart .dropdown-toggle::after { + display: none; } -@media (min-width: 768px) { - .navbar-left { - float: left !important; - } - .navbar-right { - float: right !important; - margin-right: -15px; - } - .navbar-right ~ .navbar-right { - margin-right: 0; - } +.dropstart .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; } -.navbar-default { - background-color: #f8f8f8; - border-color: #e7e7e7; +.dropstart .dropdown-toggle:empty::after { + margin-left: 0; +} +.dropstart .dropdown-toggle::before { + vertical-align: 0; } -.navbar-default .navbar-brand { - color: #777; + +.dropdown-divider { + height: 0; + margin: var(--bs-dropdown-divider-margin-y) 0; + overflow: hidden; + border-top: 1px solid var(--bs-dropdown-divider-bg); + opacity: 1; } -.navbar-default .navbar-brand:hover, -.navbar-default .navbar-brand:focus { - color: #5e5e5e; + +.dropdown-item { + display: block; + width: 100%; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + clear: both; + font-weight: 400; + color: var(--bs-dropdown-link-color); + text-align: inherit; + text-decoration: none; + white-space: nowrap; background-color: transparent; + border: 0; + border-radius: var(--bs-dropdown-item-border-radius, 0); } -.navbar-default .navbar-text { - color: #777; +.dropdown-item:hover, .dropdown-item:focus { + color: var(--bs-dropdown-link-hover-color); + background-color: var(--bs-dropdown-link-hover-bg); } -.navbar-default .navbar-nav > li > a { - color: #777; +.dropdown-item.active, .dropdown-item:active { + color: var(--bs-dropdown-link-active-color); + text-decoration: none; + background-color: var(--bs-dropdown-link-active-bg); } -.navbar-default .navbar-nav > li > a:hover, -.navbar-default .navbar-nav > li > a:focus { - color: #333; +.dropdown-item.disabled, .dropdown-item:disabled { + color: var(--bs-dropdown-link-disabled-color); + pointer-events: none; background-color: transparent; } -.navbar-default .navbar-nav > .active > a, -.navbar-default .navbar-nav > .active > a:hover, -.navbar-default .navbar-nav > .active > a:focus { - color: #555; - background-color: #e7e7e7; -} -.navbar-default .navbar-nav > .disabled > a, -.navbar-default .navbar-nav > .disabled > a:hover, -.navbar-default .navbar-nav > .disabled > a:focus { - color: #ccc; - background-color: transparent; + +.dropdown-menu.show { + display: block; } -.navbar-default .navbar-toggle { - border-color: #ddd; + +.dropdown-header { + display: block; + padding: var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x); + margin-bottom: 0; + font-size: 0.875rem; + color: var(--bs-dropdown-header-color); + white-space: nowrap; } -.navbar-default .navbar-toggle:hover, -.navbar-default .navbar-toggle:focus { - background-color: #ddd; + +.dropdown-item-text { + display: block; + padding: var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x); + color: var(--bs-dropdown-link-color); } -.navbar-default .navbar-toggle .icon-bar { - background-color: #888; + +.dropdown-menu-dark { + --bs-dropdown-color: #dee2e6; + --bs-dropdown-bg: #343a40; + --bs-dropdown-border-color: var(--bs-border-color-translucent); + --bs-dropdown-box-shadow: ; + --bs-dropdown-link-color: #dee2e6; + --bs-dropdown-link-hover-color: #fff; + --bs-dropdown-divider-bg: var(--bs-border-color-translucent); + --bs-dropdown-link-hover-bg: rgba(255, 255, 255, 0.15); + --bs-dropdown-link-active-color: #fff; + --bs-dropdown-link-active-bg: #0d6efd; + --bs-dropdown-link-disabled-color: #adb5bd; + --bs-dropdown-header-color: #adb5bd; } -.navbar-default .navbar-collapse, -.navbar-default .navbar-form { - border-color: #e7e7e7; + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; } -.navbar-default .navbar-nav > .open > a, -.navbar-default .navbar-nav > .open > a:hover, -.navbar-default .navbar-nav > .open > a:focus { - color: #555; - background-color: #e7e7e7; +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; } -@media (max-width: 767px) { - .navbar-default .navbar-nav .open .dropdown-menu > li > a { - color: #777; - } - .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { - color: #333; - 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: #555; - background-color: #e7e7e7; - } - .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: #ccc; - background-color: transparent; - } +.btn-group > .btn-check:checked + .btn, +.btn-group > .btn-check:focus + .btn, +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn-check:checked + .btn, +.btn-group-vertical > .btn-check:focus + .btn, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; } -.navbar-default .navbar-link { - color: #777; + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } -.navbar-default .navbar-link:hover { - color: #333; +.btn-toolbar .input-group { + width: auto; } -.navbar-default .btn-link { - color: #777; + +.btn-group { + border-radius: var(--bs-border-radius); } -.navbar-default .btn-link:hover, -.navbar-default .btn-link:focus { - color: #333; +.btn-group > :not(.btn-check:first-child) + .btn, +.btn-group > .btn-group:not(:first-child) { + margin-left: calc(var(--bs-border-width) * -1); } -.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: #ccc; +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn.dropdown-toggle-split:first-child, +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } -.navbar-inverse { - background-color: #222; - border-color: #080808; +.btn-group > .btn:nth-child(n+3), +.btn-group > :not(.btn-check) + .btn, +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } -.navbar-inverse .navbar-brand { - color: #9d9d9d; + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; } -.navbar-inverse .navbar-brand:hover, -.navbar-inverse .navbar-brand:focus { - color: #fff; - background-color: transparent; +.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropend .dropdown-toggle-split::after { + margin-left: 0; } -.navbar-inverse .navbar-text { - color: #9d9d9d; +.dropstart .dropdown-toggle-split::before { + margin-right: 0; } -.navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; } -.navbar-inverse .navbar-nav > li > a:hover, -.navbar-inverse .navbar-nav > li > a:focus { - color: #fff; - background-color: transparent; + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; } -.navbar-inverse .navbar-nav > .active > a, -.navbar-inverse .navbar-nav > .active > a:hover, -.navbar-inverse .navbar-nav > .active > a:focus { - color: #fff; - background-color: #080808; + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; } -.navbar-inverse .navbar-nav > .disabled > a, -.navbar-inverse .navbar-nav > .disabled > a:hover, -.navbar-inverse .navbar-nav > .disabled > a:focus { - color: #444; - background-color: transparent; +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; } -.navbar-inverse .navbar-toggle { - border-color: #333; +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: calc(var(--bs-border-width) * -1); } -.navbar-inverse .navbar-toggle:hover, -.navbar-inverse .navbar-toggle:focus { - background-color: #333; +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } -.navbar-inverse .navbar-toggle .icon-bar { - background-color: #fff; +.btn-group-vertical > .btn ~ .btn, +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; } -.navbar-inverse .navbar-collapse, -.navbar-inverse .navbar-form { - border-color: #101010; + +.nav { + --bs-nav-link-padding-x: 1rem; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-link-color); + --bs-nav-link-hover-color: var(--bs-link-hover-color); + --bs-nav-link-disabled-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; } -.navbar-inverse .navbar-nav > .open > a, -.navbar-inverse .navbar-nav > .open > a:hover, -.navbar-inverse .navbar-nav > .open > a:focus { - color: #fff; - background-color: #080808; + +.nav-link { + display: block; + padding: var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x); + font-size: var(--bs-nav-link-font-size); + font-weight: var(--bs-nav-link-font-weight); + color: var(--bs-nav-link-color); + text-decoration: none; + background: none; + border: 0; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out; } -@media (max-width: 767px) { - .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { - border-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu .divider { - background-color: #080808; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; - } - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, - .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { - color: #fff; - 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: #fff; - background-color: #080808; - } - .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: #444; - background-color: transparent; +@media (prefers-reduced-motion: reduce) { + .nav-link { + transition: none; } } -.navbar-inverse .navbar-link { - color: #9d9d9d; +.nav-link:hover, .nav-link:focus { + color: var(--bs-nav-link-hover-color); } -.navbar-inverse .navbar-link:hover { - color: #fff; +.nav-link:focus-visible { + outline: 0; + box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); } -.navbar-inverse .btn-link { - color: #9d9d9d; +.nav-link.disabled, .nav-link:disabled { + color: var(--bs-nav-link-disabled-color); + pointer-events: none; + cursor: default; } -.navbar-inverse .btn-link:hover, -.navbar-inverse .btn-link:focus { - color: #fff; + +.nav-tabs { + --bs-nav-tabs-border-width: var(--bs-border-width); + --bs-nav-tabs-border-color: var(--bs-border-color); + --bs-nav-tabs-border-radius: var(--bs-border-radius); + --bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color); + --bs-nav-tabs-link-active-color: var(--bs-emphasis-color); + --bs-nav-tabs-link-active-bg: var(--bs-body-bg); + --bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg); + border-bottom: var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color); +} +.nav-tabs .nav-link { + margin-bottom: calc(-1 * var(--bs-nav-tabs-border-width)); + border: var(--bs-nav-tabs-border-width) solid transparent; + border-top-left-radius: var(--bs-nav-tabs-border-radius); + border-top-right-radius: var(--bs-nav-tabs-border-radius); +} +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + isolation: isolate; + border-color: var(--bs-nav-tabs-link-hover-border-color); +} +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + color: var(--bs-nav-tabs-link-active-color); + background-color: var(--bs-nav-tabs-link-active-bg); + border-color: var(--bs-nav-tabs-link-active-border-color); } -.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: #444; +.nav-tabs .dropdown-menu { + margin-top: calc(-1 * var(--bs-nav-tabs-border-width)); + border-top-left-radius: 0; + border-top-right-radius: 0; } -.breadcrumb { - padding: 8px 15px; - margin-bottom: 20px; - list-style: none; - background-color: #f5f5f5; - border-radius: 4px; + +.nav-pills { + --bs-nav-pills-border-radius: var(--bs-border-radius); + --bs-nav-pills-link-active-color: #fff; + --bs-nav-pills-link-active-bg: #0d6efd; } -.breadcrumb > li { - display: inline-block; +.nav-pills .nav-link { + border-radius: var(--bs-nav-pills-border-radius); } -.breadcrumb > li + li:before { - padding: 0 5px; - color: #ccc; - content: "/\00a0"; +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: var(--bs-nav-pills-link-active-color); + background-color: var(--bs-nav-pills-link-active-bg); } -.breadcrumb > .active { - color: #777; + +.nav-underline { + --bs-nav-underline-gap: 1rem; + --bs-nav-underline-border-width: 0.125rem; + --bs-nav-underline-link-active-color: var(--bs-emphasis-color); + gap: var(--bs-nav-underline-gap); } -.pagination { - display: inline-block; +.nav-underline .nav-link { + padding-right: 0; padding-left: 0; - margin: 20px 0; - border-radius: 4px; + border-bottom: var(--bs-nav-underline-border-width) solid transparent; } -.pagination > li { - display: inline; +.nav-underline .nav-link:hover, .nav-underline .nav-link:focus { + border-bottom-color: currentcolor; } -.pagination > li > a, -.pagination > li > span { - position: relative; - float: left; - padding: 6px 12px; - margin-left: -1px; - line-height: 1.42857143; - color: #337ab7; - text-decoration: none; - background-color: #fff; - border: 1px solid #ddd; +.nav-underline .nav-link.active, +.nav-underline .show > .nav-link { + font-weight: 700; + color: var(--bs-nav-underline-link-active-color); + border-bottom-color: currentcolor; } -.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 > li > a:hover, -.pagination > li > span:hover, -.pagination > li > a:focus, -.pagination > li > span:focus { - color: #23527c; - background-color: #eee; - border-color: #ddd; -} -.pagination > .active > a, -.pagination > .active > span, -.pagination > .active > a:hover, -.pagination > .active > span:hover, -.pagination > .active > a:focus, -.pagination > .active > span:focus { - z-index: 2; - color: #fff; - cursor: default; - background-color: #337ab7; - border-color: #337ab7; -} -.pagination > .disabled > span, -.pagination > .disabled > span:hover, -.pagination > .disabled > span:focus, -.pagination > .disabled > a, -.pagination > .disabled > a:hover, -.pagination > .disabled > a:focus { - color: #777; - cursor: not-allowed; - background-color: #fff; - border-color: #ddd; -} -.pagination-lg > li > a, -.pagination-lg > li > span { - padding: 10px 16px; - font-size: 18px; -} -.pagination-lg > li:first-child > a, -.pagination-lg > li:first-child > span { - border-top-left-radius: 6px; - border-bottom-left-radius: 6px; -} -.pagination-lg > li:last-child > a, -.pagination-lg > li:last-child > span { - border-top-right-radius: 6px; - border-bottom-right-radius: 6px; -} -.pagination-sm > li > a, -.pagination-sm > li > span { - padding: 5px 10px; - font-size: 12px; -} -.pagination-sm > li:first-child > a, -.pagination-sm > li:first-child > span { - border-top-left-radius: 3px; - border-bottom-left-radius: 3px; -} -.pagination-sm > li:last-child > a, -.pagination-sm > li:last-child > span { - border-top-right-radius: 3px; - border-bottom-right-radius: 3px; -} -.pager { - padding-left: 0; - margin: 20px 0; + +.nav-fill > .nav-link, +.nav-fill .nav-item { + flex: 1 1 auto; text-align: center; - list-style: none; -} -.pager li { - display: inline; } -.pager li > a, -.pager li > span { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 15px; + +.nav-justified > .nav-link, +.nav-justified .nav-item { + flex-basis: 0; + flex-grow: 1; + text-align: center; } -.pager li > a:hover, -.pager li > a:focus { - text-decoration: none; - background-color: #eee; + +.nav-fill .nav-item .nav-link, +.nav-justified .nav-item .nav-link { + width: 100%; } -.pager .next > a, -.pager .next > span { - float: right; + +.tab-content > .tab-pane { + display: none; } -.pager .previous > a, -.pager .previous > span { - float: left; +.tab-content > .active { + display: block; } -.pager .disabled > a, -.pager .disabled > a:hover, -.pager .disabled > a:focus, -.pager .disabled > span { - color: #777; - cursor: not-allowed; - background-color: #fff; + +.navbar { + --bs-navbar-padding-x: 0; + --bs-navbar-padding-y: 0.5rem; + --bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), 0.65); + --bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), 0.8); + --bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), 0.3); + --bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-padding-y: 0.3125rem; + --bs-navbar-brand-margin-end: 1rem; + --bs-navbar-brand-font-size: 1.25rem; + --bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1); + --bs-navbar-nav-link-padding-x: 0.5rem; + --bs-navbar-toggler-padding-y: 0.25rem; + --bs-navbar-toggler-padding-x: 0.75rem; + --bs-navbar-toggler-font-size: 1.25rem; + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); + --bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), 0.15); + --bs-navbar-toggler-border-radius: var(--bs-border-radius); + --bs-navbar-toggler-focus-width: 0.25rem; + --bs-navbar-toggler-transition: box-shadow 0.15s ease-in-out; + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: var(--bs-navbar-padding-y) var(--bs-navbar-padding-x); +} +.navbar > .container, +.navbar > .container-fluid, +.navbar > .container-sm, +.navbar > .container-md, +.navbar > .container-lg, +.navbar > .container-xl, +.navbar > .container-xxl { + display: flex; + flex-wrap: inherit; + align-items: center; + justify-content: space-between; } -.label { - display: inline; - padding: .2em .6em .3em; - font-size: 75%; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; +.navbar-brand { + padding-top: var(--bs-navbar-brand-padding-y); + padding-bottom: var(--bs-navbar-brand-padding-y); + margin-right: var(--bs-navbar-brand-margin-end); + font-size: var(--bs-navbar-brand-font-size); + color: var(--bs-navbar-brand-color); + text-decoration: none; white-space: nowrap; - vertical-align: baseline; - border-radius: .25em; } -a.label:hover, -a.label:focus { - color: #fff; - text-decoration: none; - cursor: pointer; +.navbar-brand:hover, .navbar-brand:focus { + color: var(--bs-navbar-brand-hover-color); } -.label:empty { - display: none; + +.navbar-nav { + --bs-nav-link-padding-x: 0; + --bs-nav-link-padding-y: 0.5rem; + --bs-nav-link-font-weight: ; + --bs-nav-link-color: var(--bs-navbar-color); + --bs-nav-link-hover-color: var(--bs-navbar-hover-color); + --bs-nav-link-disabled-color: var(--bs-navbar-disabled-color); + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; } -.btn .label { - position: relative; - top: -1px; +.navbar-nav .nav-link.active, .navbar-nav .nav-link.show { + color: var(--bs-navbar-active-color); } -.label-default { - background-color: #777; +.navbar-nav .dropdown-menu { + position: static; } -.label-default[href]:hover, -.label-default[href]:focus { - background-color: #5e5e5e; + +.navbar-text { + padding-top: 0.5rem; + padding-bottom: 0.5rem; + color: var(--bs-navbar-color); } -.label-primary { - background-color: #337ab7; +.navbar-text a, +.navbar-text a:hover, +.navbar-text a:focus { + color: var(--bs-navbar-active-color); } -.label-primary[href]:hover, -.label-primary[href]:focus { - background-color: #286090; + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; } -.label-success { - background-color: #5cb85c; + +.navbar-toggler { + padding: var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x); + font-size: var(--bs-navbar-toggler-font-size); + line-height: 1; + color: var(--bs-navbar-color); + background-color: transparent; + border: var(--bs-border-width) solid var(--bs-navbar-toggler-border-color); + border-radius: var(--bs-navbar-toggler-border-radius); + transition: var(--bs-navbar-toggler-transition); } -.label-success[href]:hover, -.label-success[href]:focus { - background-color: #449d44; +@media (prefers-reduced-motion: reduce) { + .navbar-toggler { + transition: none; + } } -.label-info { - background-color: #5bc0de; +.navbar-toggler:hover { + text-decoration: none; } -.label-info[href]:hover, -.label-info[href]:focus { - background-color: #31b0d5; +.navbar-toggler:focus { + text-decoration: none; + outline: 0; + box-shadow: 0 0 0 var(--bs-navbar-toggler-focus-width); } -.label-warning { - background-color: #f0ad4e; + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + background-image: var(--bs-navbar-toggler-icon-bg); + background-repeat: no-repeat; + background-position: center; + background-size: 100%; } -.label-warning[href]:hover, -.label-warning[href]:focus { - background-color: #ec971f; + +.navbar-nav-scroll { + max-height: var(--bs-scroll-height, 75vh); + overflow-y: auto; } -.label-danger { - background-color: #d9534f; + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-sm .navbar-nav { + flex-direction: row; + } + .navbar-expand-sm .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-sm .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-sm .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } + .navbar-expand-sm .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-sm .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-sm .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } } -.label-danger[href]:hover, -.label-danger[href]:focus { - background-color: #c9302c; +@media (min-width: 768px) { + .navbar-expand-md { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-md .navbar-nav { + flex-direction: row; + } + .navbar-expand-md .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-md .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-md .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } + .navbar-expand-md .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-md .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-md .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } } -.badge { - display: inline-block; - min-width: 10px; - padding: 3px 7px; - font-size: 12px; - font-weight: bold; - line-height: 1; - color: #fff; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - background-color: #777; - border-radius: 10px; +@media (min-width: 992px) { + .navbar-expand-lg { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-lg .navbar-nav { + flex-direction: row; + } + .navbar-expand-lg .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-lg .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-lg .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } + .navbar-expand-lg .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-lg .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-lg .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } } -.badge:empty { - display: none; +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } + .navbar-expand-xl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } } -.btn .badge { - position: relative; - top: -1px; +@media (min-width: 1400px) { + .navbar-expand-xxl { + flex-wrap: nowrap; + justify-content: flex-start; + } + .navbar-expand-xxl .navbar-nav { + flex-direction: row; + } + .navbar-expand-xxl .navbar-nav .dropdown-menu { + position: absolute; + } + .navbar-expand-xxl .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); + } + .navbar-expand-xxl .navbar-nav-scroll { + overflow: visible; + } + .navbar-expand-xxl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xxl .navbar-toggler { + display: none; + } + .navbar-expand-xxl .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-header { + display: none; + } + .navbar-expand-xxl .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + } } -.btn-xs .badge { - top: 0; - padding: 1px 5px; +.navbar-expand { + flex-wrap: nowrap; + justify-content: flex-start; } -a.badge:hover, -a.badge:focus { - color: #fff; - text-decoration: none; - cursor: pointer; +.navbar-expand .navbar-nav { + flex-direction: row; } -.list-group-item.active > .badge, -.nav-pills > .active > a > .badge { - color: #337ab7; - background-color: #fff; +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; } -.list-group-item > .badge { - float: right; +.navbar-expand .navbar-nav .nav-link { + padding-right: var(--bs-navbar-nav-link-padding-x); + padding-left: var(--bs-navbar-nav-link-padding-x); } -.list-group-item > .badge + .badge { - margin-right: 5px; +.navbar-expand .navbar-nav-scroll { + overflow: visible; } -.nav-pills > li > a > .badge { - margin-left: 3px; +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; } -.jumbotron { - padding: 30px 15px; - margin-bottom: 30px; - color: inherit; - background-color: #eee; +.navbar-expand .navbar-toggler { + display: none; } -.jumbotron h1, -.jumbotron .h1 { - color: inherit; +.navbar-expand .offcanvas { + position: static; + z-index: auto; + flex-grow: 1; + width: auto !important; + height: auto !important; + visibility: visible !important; + background-color: transparent !important; + border: 0 !important; + transform: none !important; + transition: none; +} +.navbar-expand .offcanvas .offcanvas-header { + display: none; } -.jumbotron p { - margin-bottom: 15px; - font-size: 21px; - font-weight: 200; +.navbar-expand .offcanvas .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; } -.jumbotron > hr { - border-top-color: #d5d5d5; + +.navbar-dark, +.navbar[data-bs-theme=dark] { + --bs-navbar-color: rgba(255, 255, 255, 0.55); + --bs-navbar-hover-color: rgba(255, 255, 255, 0.75); + --bs-navbar-disabled-color: rgba(255, 255, 255, 0.25); + --bs-navbar-active-color: #fff; + --bs-navbar-brand-color: #fff; + --bs-navbar-brand-hover-color: #fff; + --bs-navbar-toggler-border-color: rgba(255, 255, 255, 0.1); + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } -.container .jumbotron, -.container-fluid .jumbotron { - border-radius: 6px; + +[data-bs-theme=dark] .navbar-toggler-icon { + --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); } -.jumbotron .container { - max-width: 100%; + +.card { + --bs-card-spacer-y: 1rem; + --bs-card-spacer-x: 1rem; + --bs-card-title-spacer-y: 0.5rem; + --bs-card-title-color: ; + --bs-card-subtitle-color: ; + --bs-card-border-width: var(--bs-border-width); + --bs-card-border-color: var(--bs-border-color-translucent); + --bs-card-border-radius: var(--bs-border-radius); + --bs-card-box-shadow: ; + --bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-card-cap-padding-y: 0.5rem; + --bs-card-cap-padding-x: 1rem; + --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03); + --bs-card-cap-color: ; + --bs-card-height: ; + --bs-card-color: ; + --bs-card-bg: var(--bs-body-bg); + --bs-card-img-overlay-padding: 1rem; + --bs-card-group-margin: 0.75rem; + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + height: var(--bs-card-height); + color: var(--bs-body-color); + word-wrap: break-word; + background-color: var(--bs-card-bg); + background-clip: border-box; + border: var(--bs-card-border-width) solid var(--bs-card-border-color); + border-radius: var(--bs-card-border-radius); } -@media screen and (min-width: 768px) { - .jumbotron { - padding: 48px 0; - } - .container .jumbotron, - .container-fluid .jumbotron { - padding-right: 60px; - padding-left: 60px; - } - .jumbotron h1, - .jumbotron .h1 { - font-size: 63px; - } +.card > hr { + margin-right: 0; + margin-left: 0; } -.thumbnail { - display: block; - padding: 4px; - margin-bottom: 20px; - line-height: 1.42857143; - background-color: #fff; - border: 1px solid #ddd; - border-radius: 4px; - -webkit-transition: border .2s ease-in-out; - -o-transition: border .2s ease-in-out; - transition: border .2s ease-in-out; -} -.thumbnail > img, -.thumbnail a > img { - margin-right: auto; - margin-left: auto; +.card > .list-group { + border-top: inherit; + border-bottom: inherit; } -a.thumbnail:hover, -a.thumbnail:focus, -a.thumbnail.active { - border-color: #337ab7; +.card > .list-group:first-child { + border-top-width: 0; + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); } -.thumbnail .caption { - padding: 9px; - color: #333; +.card > .list-group:last-child { + border-bottom-width: 0; + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); } -.alert { - padding: 15px; - margin-bottom: 20px; - border: 1px solid transparent; - border-radius: 4px; +.card > .card-header + .list-group, +.card > .list-group + .card-footer { + border-top: 0; } -.alert h4 { - margin-top: 0; - color: inherit; + +.card-body { + flex: 1 1 auto; + padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x); + color: var(--bs-card-color); } -.alert .alert-link { - font-weight: bold; + +.card-title { + margin-bottom: var(--bs-card-title-spacer-y); + color: var(--bs-card-title-color); } -.alert > p, -.alert > ul { + +.card-subtitle { + margin-top: calc(-0.5 * var(--bs-card-title-spacer-y)); margin-bottom: 0; + color: var(--bs-card-subtitle-color); } -.alert > p + p { - margin-top: 5px; + +.card-text:last-child { + margin-bottom: 0; } -.alert-dismissable, -.alert-dismissible { - padding-right: 35px; + +.card-link + .card-link { + margin-left: var(--bs-card-spacer-x); } -.alert-dismissable .close, -.alert-dismissible .close { - position: relative; - top: -2px; - right: -21px; - color: inherit; + +.card-header { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + margin-bottom: 0; + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); } -.alert-success { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; +.card-header:first-child { + border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; } -.alert-success hr { - border-top-color: #c9e2b3; + +.card-footer { + padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x); + color: var(--bs-card-cap-color); + background-color: var(--bs-card-cap-bg); + border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); } -.alert-success .alert-link { - color: #2b542c; +.card-footer:last-child { + border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); } -.alert-info { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; + +.card-header-tabs { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-bottom: calc(-1 * var(--bs-card-cap-padding-y)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); + border-bottom: 0; } -.alert-info hr { - border-top-color: #a6e1ec; +.card-header-tabs .nav-link.active { + background-color: var(--bs-card-bg); + border-bottom-color: var(--bs-card-bg); } -.alert-info .alert-link { - color: #245269; + +.card-header-pills { + margin-right: calc(-0.5 * var(--bs-card-cap-padding-x)); + margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); } -.alert-warning { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.alert-warning hr { - border-top-color: #f7e1b5; + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: var(--bs-card-img-overlay-padding); + border-radius: var(--bs-card-inner-border-radius); } -.alert-warning .alert-link { - color: #66512c; + +.card-img, +.card-img-top, +.card-img-bottom { + width: 100%; } -.alert-danger { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; + +.card-img, +.card-img-top { + border-top-left-radius: var(--bs-card-inner-border-radius); + border-top-right-radius: var(--bs-card-inner-border-radius); } -.alert-danger hr { - border-top-color: #e4b9c0; + +.card-img, +.card-img-bottom { + border-bottom-right-radius: var(--bs-card-inner-border-radius); + border-bottom-left-radius: var(--bs-card-inner-border-radius); } -.alert-danger .alert-link { - color: #843534; + +.card-group > .card { + margin-bottom: var(--bs-card-group-margin); } -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; +@media (min-width: 576px) { + .card-group { + display: flex; + flex-flow: row wrap; } - to { - background-position: 0 0; + .card-group > .card { + flex: 1 0 0%; + margin-bottom: 0; } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 40px 0; + .card-group > .card + .card { + margin-left: 0; + border-left: 0; } - to { - background-position: 0 0; + .card-group > .card:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; + .card-group > .card:not(:last-child) .card-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; } - to { - background-position: 0 0; + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + border-bottom-right-radius: 0; + } + .card-group > .card:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; } } -.progress { - height: 20px; - margin-bottom: 20px; - overflow: hidden; - background-color: #f5f5f5; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); - 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: #337ab7; - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); - -webkit-transition: width .6s ease; - -o-transition: width .6s ease; - transition: width .6s ease; -} -.progress-striped .progress-bar, -.progress-bar-striped { - background-image: -webkit-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-image: -o-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-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); - -webkit-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .progress-bar, -.progress-bar.active { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-bar-success { - background-color: #5cb85c; -} -.progress-striped .progress-bar-success { - background-image: -webkit-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-image: -o-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-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: #5bc0de; -} -.progress-striped .progress-bar-info { - background-image: -webkit-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-image: -o-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-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: #f0ad4e; -} -.progress-striped .progress-bar-warning { - background-image: -webkit-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-image: -o-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-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: #d9534f; -} -.progress-striped .progress-bar-danger { - background-image: -webkit-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-image: -o-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-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; + +.accordion { + --bs-accordion-color: var(--bs-body-color); + --bs-accordion-bg: var(--bs-body-bg); + --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease; + --bs-accordion-border-color: var(--bs-border-color); + --bs-accordion-border-width: var(--bs-border-width); + --bs-accordion-border-radius: var(--bs-border-radius); + --bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width))); + --bs-accordion-btn-padding-x: 1.25rem; + --bs-accordion-btn-padding-y: 1rem; + --bs-accordion-btn-color: var(--bs-body-color); + --bs-accordion-btn-bg: var(--bs-accordion-bg); + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-icon-width: 1.25rem; + --bs-accordion-btn-icon-transform: rotate(-180deg); + --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out; + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23052c65'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-focus-border-color: #86b7fe; + --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-accordion-body-padding-x: 1.25rem; + --bs-accordion-body-padding-y: 1rem; + --bs-accordion-active-color: var(--bs-primary-text-emphasis); + --bs-accordion-active-bg: var(--bs-primary-bg-subtle); } -.media-right, -.media > .pull-right { - padding-left: 10px; + +.accordion-button { + position: relative; + display: flex; + align-items: center; + width: 100%; + padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x); + font-size: 1rem; + color: var(--bs-accordion-btn-color); + text-align: left; + background-color: var(--bs-accordion-btn-bg); + border: 0; + border-radius: 0; + overflow-anchor: none; + transition: var(--bs-accordion-transition); } -.media-left, -.media > .pull-left { - padding-right: 10px; +@media (prefers-reduced-motion: reduce) { + .accordion-button { + transition: none; + } } -.media-left, -.media-right, -.media-body { - display: table-cell; - vertical-align: top; +.accordion-button:not(.collapsed) { + color: var(--bs-accordion-active-color); + background-color: var(--bs-accordion-active-bg); + box-shadow: inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color); } -.media-middle { - vertical-align: middle; +.accordion-button:not(.collapsed)::after { + background-image: var(--bs-accordion-btn-active-icon); + transform: var(--bs-accordion-btn-icon-transform); } -.media-bottom { - vertical-align: bottom; +.accordion-button::after { + flex-shrink: 0; + width: var(--bs-accordion-btn-icon-width); + height: var(--bs-accordion-btn-icon-width); + margin-left: auto; + content: ""; + background-image: var(--bs-accordion-btn-icon); + background-repeat: no-repeat; + background-size: var(--bs-accordion-btn-icon-width); + transition: var(--bs-accordion-btn-icon-transition); } -.media-heading { - margin-top: 0; - margin-bottom: 5px; +@media (prefers-reduced-motion: reduce) { + .accordion-button::after { + transition: none; + } } -.media-list { - padding-left: 0; - list-style: none; +.accordion-button:hover { + z-index: 2; } -.list-group { - padding-left: 0; - margin-bottom: 20px; +.accordion-button:focus { + z-index: 3; + border-color: var(--bs-accordion-btn-focus-border-color); + outline: 0; + box-shadow: var(--bs-accordion-btn-focus-box-shadow); } -.list-group-item { - position: relative; - display: block; - padding: 10px 15px; - margin-bottom: -1px; - background-color: #fff; - border: 1px solid #ddd; + +.accordion-header { + margin-bottom: 0; } -.list-group-item:first-child { - border-top-left-radius: 4px; - border-top-right-radius: 4px; + +.accordion-item { + color: var(--bs-accordion-color); + background-color: var(--bs-accordion-bg); + border: var(--bs-accordion-border-width) solid var(--bs-accordion-border-color); } -.list-group-item:last-child { - margin-bottom: 0; - border-bottom-right-radius: 4px; - border-bottom-left-radius: 4px; +.accordion-item:first-of-type { + border-top-left-radius: var(--bs-accordion-border-radius); + border-top-right-radius: var(--bs-accordion-border-radius); } -a.list-group-item { - color: #555; +.accordion-item:first-of-type .accordion-button { + border-top-left-radius: var(--bs-accordion-inner-border-radius); + border-top-right-radius: var(--bs-accordion-inner-border-radius); } -a.list-group-item .list-group-item-heading { - color: #333; +.accordion-item:not(:first-of-type) { + border-top: 0; } -a.list-group-item:hover, -a.list-group-item:focus { - color: #555; - text-decoration: none; - background-color: #f5f5f5; -} -.list-group-item.disabled, -.list-group-item.disabled:hover, -.list-group-item.disabled:focus { - color: #777; - cursor: not-allowed; - background-color: #eee; -} -.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; +.accordion-item:last-of-type { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); } -.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: #777; +.accordion-item:last-of-type .accordion-button.collapsed { + border-bottom-right-radius: var(--bs-accordion-inner-border-radius); + border-bottom-left-radius: var(--bs-accordion-inner-border-radius); } -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - z-index: 2; - color: #fff; - background-color: #337ab7; - border-color: #337ab7; -} -.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; +.accordion-item:last-of-type .accordion-collapse { + border-bottom-right-radius: var(--bs-accordion-border-radius); + border-bottom-left-radius: var(--bs-accordion-border-radius); } -.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: #c7ddef; + +.accordion-body { + padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x); } -.list-group-item-success { - color: #3c763d; - background-color: #dff0d8; + +.accordion-flush .accordion-collapse { + border-width: 0; } -a.list-group-item-success { - color: #3c763d; +.accordion-flush .accordion-item { + border-right: 0; + border-left: 0; + border-radius: 0; } -a.list-group-item-success .list-group-item-heading { - color: inherit; +.accordion-flush .accordion-item:first-child { + border-top: 0; } -a.list-group-item-success:hover, -a.list-group-item-success:focus { - color: #3c763d; - background-color: #d0e9c6; +.accordion-flush .accordion-item:last-child { + border-bottom: 0; } -a.list-group-item-success.active, -a.list-group-item-success.active:hover, -a.list-group-item-success.active:focus { - color: #fff; - background-color: #3c763d; - border-color: #3c763d; +.accordion-flush .accordion-item .accordion-button, .accordion-flush .accordion-item .accordion-button.collapsed { + border-radius: 0; } -.list-group-item-info { - color: #31708f; - background-color: #d9edf7; + +[data-bs-theme=dark] .accordion-button::after { + --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); + --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); } -a.list-group-item-info { - color: #31708f; + +.breadcrumb { + --bs-breadcrumb-padding-x: 0; + --bs-breadcrumb-padding-y: 0; + --bs-breadcrumb-margin-bottom: 1rem; + --bs-breadcrumb-bg: ; + --bs-breadcrumb-border-radius: ; + --bs-breadcrumb-divider-color: var(--bs-secondary-color); + --bs-breadcrumb-item-padding-x: 0.5rem; + --bs-breadcrumb-item-active-color: var(--bs-secondary-color); + display: flex; + flex-wrap: wrap; + padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x); + margin-bottom: var(--bs-breadcrumb-margin-bottom); + font-size: var(--bs-breadcrumb-font-size); + list-style: none; + background-color: var(--bs-breadcrumb-bg); + border-radius: var(--bs-breadcrumb-border-radius); } -a.list-group-item-info .list-group-item-heading { - color: inherit; + +.breadcrumb-item + .breadcrumb-item { + padding-left: var(--bs-breadcrumb-item-padding-x); } -a.list-group-item-info:hover, -a.list-group-item-info:focus { - color: #31708f; - background-color: #c4e3f3; +.breadcrumb-item + .breadcrumb-item::before { + float: left; + padding-right: var(--bs-breadcrumb-item-padding-x); + color: var(--bs-breadcrumb-divider-color); + content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; } -a.list-group-item-info.active, -a.list-group-item-info.active:hover, -a.list-group-item-info.active:focus { - color: #fff; - background-color: #31708f; - border-color: #31708f; +.breadcrumb-item.active { + color: var(--bs-breadcrumb-item-active-color); } -.list-group-item-warning { - color: #8a6d3b; - background-color: #fcf8e3; + +.pagination { + --bs-pagination-padding-x: 0.75rem; + --bs-pagination-padding-y: 0.375rem; + --bs-pagination-font-size: 1rem; + --bs-pagination-color: var(--bs-link-color); + --bs-pagination-bg: var(--bs-body-bg); + --bs-pagination-border-width: var(--bs-border-width); + --bs-pagination-border-color: var(--bs-border-color); + --bs-pagination-border-radius: var(--bs-border-radius); + --bs-pagination-hover-color: var(--bs-link-hover-color); + --bs-pagination-hover-bg: var(--bs-tertiary-bg); + --bs-pagination-hover-border-color: var(--bs-border-color); + --bs-pagination-focus-color: var(--bs-link-hover-color); + --bs-pagination-focus-bg: var(--bs-secondary-bg); + --bs-pagination-focus-box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-pagination-active-color: #fff; + --bs-pagination-active-bg: #0d6efd; + --bs-pagination-active-border-color: #0d6efd; + --bs-pagination-disabled-color: var(--bs-secondary-color); + --bs-pagination-disabled-bg: var(--bs-secondary-bg); + --bs-pagination-disabled-border-color: var(--bs-border-color); + display: flex; + padding-left: 0; + list-style: none; } -a.list-group-item-warning { - color: #8a6d3b; + +.page-link { + position: relative; + display: block; + padding: var(--bs-pagination-padding-y) var(--bs-pagination-padding-x); + font-size: var(--bs-pagination-font-size); + color: var(--bs-pagination-color); + text-decoration: none; + background-color: var(--bs-pagination-bg); + border: var(--bs-pagination-border-width) solid var(--bs-pagination-border-color); + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } -a.list-group-item-warning .list-group-item-heading { - color: inherit; +@media (prefers-reduced-motion: reduce) { + .page-link { + transition: none; + } } -a.list-group-item-warning:hover, -a.list-group-item-warning:focus { - color: #8a6d3b; - background-color: #faf2cc; +.page-link:hover { + z-index: 2; + color: var(--bs-pagination-hover-color); + background-color: var(--bs-pagination-hover-bg); + border-color: var(--bs-pagination-hover-border-color); +} +.page-link:focus { + z-index: 3; + color: var(--bs-pagination-focus-color); + background-color: var(--bs-pagination-focus-bg); + outline: 0; + box-shadow: var(--bs-pagination-focus-box-shadow); } -a.list-group-item-warning.active, -a.list-group-item-warning.active:hover, -a.list-group-item-warning.active:focus { - color: #fff; - background-color: #8a6d3b; - border-color: #8a6d3b; +.page-link.active, .active > .page-link { + z-index: 3; + color: var(--bs-pagination-active-color); + background-color: var(--bs-pagination-active-bg); + border-color: var(--bs-pagination-active-border-color); } -.list-group-item-danger { - color: #a94442; - background-color: #f2dede; +.page-link.disabled, .disabled > .page-link { + color: var(--bs-pagination-disabled-color); + pointer-events: none; + background-color: var(--bs-pagination-disabled-bg); + border-color: var(--bs-pagination-disabled-border-color); } -a.list-group-item-danger { - color: #a94442; + +.page-item:not(:first-child) .page-link { + margin-left: calc(var(--bs-border-width) * -1); } -a.list-group-item-danger .list-group-item-heading { - color: inherit; +.page-item:first-child .page-link { + border-top-left-radius: var(--bs-pagination-border-radius); + border-bottom-left-radius: var(--bs-pagination-border-radius); } -a.list-group-item-danger:hover, -a.list-group-item-danger:focus { - color: #a94442; - background-color: #ebcccc; +.page-item:last-child .page-link { + border-top-right-radius: var(--bs-pagination-border-radius); + border-bottom-right-radius: var(--bs-pagination-border-radius); } -a.list-group-item-danger.active, -a.list-group-item-danger.active:hover, -a.list-group-item-danger.active:focus { - color: #fff; - background-color: #a94442; - border-color: #a94442; + +.pagination-lg { + --bs-pagination-padding-x: 1.5rem; + --bs-pagination-padding-y: 0.75rem; + --bs-pagination-font-size: 1.25rem; + --bs-pagination-border-radius: var(--bs-border-radius-lg); } -.list-group-item-heading { - margin-top: 0; - margin-bottom: 5px; + +.pagination-sm { + --bs-pagination-padding-x: 0.5rem; + --bs-pagination-padding-y: 0.25rem; + --bs-pagination-font-size: 0.875rem; + --bs-pagination-border-radius: var(--bs-border-radius-sm); } -.list-group-item-text { - margin-bottom: 0; - line-height: 1.3; + +.badge { + --bs-badge-padding-x: 0.65em; + --bs-badge-padding-y: 0.35em; + --bs-badge-font-size: 0.75em; + --bs-badge-font-weight: 700; + --bs-badge-color: #fff; + --bs-badge-border-radius: var(--bs-border-radius); + display: inline-block; + padding: var(--bs-badge-padding-y) var(--bs-badge-padding-x); + font-size: var(--bs-badge-font-size); + font-weight: var(--bs-badge-font-weight); + line-height: 1; + color: var(--bs-badge-color); + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: var(--bs-badge-border-radius); } -.panel { - margin-bottom: 20px; - background-color: #fff; - border: 1px solid transparent; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +.badge:empty { + display: none; } -.panel-body { - padding: 15px; + +.btn .badge { + position: relative; + top: -1px; } -.panel-heading { - padding: 10px 15px; - border-bottom: 1px solid transparent; - border-top-left-radius: 3px; - border-top-right-radius: 3px; + +.alert { + --bs-alert-bg: transparent; + --bs-alert-padding-x: 1rem; + --bs-alert-padding-y: 1rem; + --bs-alert-margin-bottom: 1rem; + --bs-alert-color: inherit; + --bs-alert-border-color: transparent; + --bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color); + --bs-alert-border-radius: var(--bs-border-radius); + --bs-alert-link-color: inherit; + position: relative; + padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x); + margin-bottom: var(--bs-alert-margin-bottom); + color: var(--bs-alert-color); + background-color: var(--bs-alert-bg); + border: var(--bs-alert-border); + border-radius: var(--bs-alert-border-radius); } -.panel-heading > .dropdown .dropdown-toggle { + +.alert-heading { color: inherit; } -.panel-title { - margin-top: 0; - margin-bottom: 0; - font-size: 16px; - color: inherit; + +.alert-link { + font-weight: 700; + color: var(--bs-alert-link-color); } -.panel-title > a { - color: inherit; + +.alert-dismissible { + padding-right: 3rem; } -.panel-footer { - padding: 10px 15px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; +.alert-dismissible .btn-close { + position: absolute; + top: 0; + right: 0; + z-index: 2; + padding: 1.25rem 1rem; } -.panel > .list-group, -.panel > .panel-collapse > .list-group { - margin-bottom: 0; + +.alert-primary { + --bs-alert-color: var(--bs-primary-text-emphasis); + --bs-alert-bg: var(--bs-primary-bg-subtle); + --bs-alert-border-color: var(--bs-primary-border-subtle); + --bs-alert-link-color: var(--bs-primary-text-emphasis); } -.panel > .list-group .list-group-item, -.panel > .panel-collapse > .list-group .list-group-item { - border-width: 1px 0; - border-radius: 0; + +.alert-secondary { + --bs-alert-color: var(--bs-secondary-text-emphasis); + --bs-alert-bg: var(--bs-secondary-bg-subtle); + --bs-alert-border-color: var(--bs-secondary-border-subtle); + --bs-alert-link-color: var(--bs-secondary-text-emphasis); } -.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; + +.alert-success { + --bs-alert-color: var(--bs-success-text-emphasis); + --bs-alert-bg: var(--bs-success-bg-subtle); + --bs-alert-border-color: var(--bs-success-border-subtle); + --bs-alert-link-color: var(--bs-success-text-emphasis); } -.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; + +.alert-info { + --bs-alert-color: var(--bs-info-text-emphasis); + --bs-alert-bg: var(--bs-info-bg-subtle); + --bs-alert-border-color: var(--bs-info-border-subtle); + --bs-alert-link-color: var(--bs-info-text-emphasis); } -.panel-heading + .list-group .list-group-item:first-child { - border-top-width: 0; + +.alert-warning { + --bs-alert-color: var(--bs-warning-text-emphasis); + --bs-alert-bg: var(--bs-warning-bg-subtle); + --bs-alert-border-color: var(--bs-warning-border-subtle); + --bs-alert-link-color: var(--bs-warning-text-emphasis); } -.list-group + .panel-footer { - border-top-width: 0; + +.alert-danger { + --bs-alert-color: var(--bs-danger-text-emphasis); + --bs-alert-bg: var(--bs-danger-bg-subtle); + --bs-alert-border-color: var(--bs-danger-border-subtle); + --bs-alert-link-color: var(--bs-danger-text-emphasis); } -.panel > .table, -.panel > .table-responsive > .table, -.panel > .panel-collapse > .table { - margin-bottom: 0; + +.alert-light { + --bs-alert-color: var(--bs-light-text-emphasis); + --bs-alert-bg: var(--bs-light-bg-subtle); + --bs-alert-border-color: var(--bs-light-border-subtle); + --bs-alert-link-color: var(--bs-light-text-emphasis); } -.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 #ddd; -} -.panel > .table > tbody:first-child > tr:first-child th, -.panel > .table > tbody:first-child > tr:first-child td { - border-top: 0; + +.alert-dark { + --bs-alert-color: var(--bs-dark-text-emphasis); + --bs-alert-bg: var(--bs-dark-bg-subtle); + --bs-alert-border-color: var(--bs-dark-border-subtle); + --bs-alert-link-color: var(--bs-dark-text-emphasis); } -.panel > .table-bordered, -.panel > .table-responsive > .table-bordered { - border: 0; + +@keyframes progress-bar-stripes { + 0% { + background-position-x: 1rem; + } +} +.progress, +.progress-stacked { + --bs-progress-height: 1rem; + --bs-progress-font-size: 0.75rem; + --bs-progress-bg: var(--bs-secondary-bg); + --bs-progress-border-radius: var(--bs-border-radius); + --bs-progress-box-shadow: var(--bs-box-shadow-inset); + --bs-progress-bar-color: #fff; + --bs-progress-bar-bg: #0d6efd; + --bs-progress-bar-transition: width 0.6s ease; + display: flex; + height: var(--bs-progress-height); + overflow: hidden; + font-size: var(--bs-progress-font-size); + background-color: var(--bs-progress-bg); + border-radius: var(--bs-progress-border-radius); } -.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; + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: var(--bs-progress-bar-color); + text-align: center; + white-space: nowrap; + background-color: var(--bs-progress-bar-bg); + transition: var(--bs-progress-bar-transition); } -.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; +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } } -.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; + +.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: var(--bs-progress-height) var(--bs-progress-height); } -.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; + +.progress-stacked > .progress { + overflow: visible; } -.panel > .table-responsive { - margin-bottom: 0; - border: 0; + +.progress-stacked > .progress > .progress-bar { + width: 100%; +} + +.progress-bar-animated { + animation: 1s linear infinite progress-bar-stripes; } -.panel-group { - margin-bottom: 20px; +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + animation: none; + } } -.panel-group .panel { + +.list-group { + --bs-list-group-color: var(--bs-body-color); + --bs-list-group-bg: var(--bs-body-bg); + --bs-list-group-border-color: var(--bs-border-color); + --bs-list-group-border-width: var(--bs-border-width); + --bs-list-group-border-radius: var(--bs-border-radius); + --bs-list-group-item-padding-x: 1rem; + --bs-list-group-item-padding-y: 0.5rem; + --bs-list-group-action-color: var(--bs-secondary-color); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-tertiary-bg); + --bs-list-group-action-active-color: var(--bs-body-color); + --bs-list-group-action-active-bg: var(--bs-secondary-bg); + --bs-list-group-disabled-color: var(--bs-secondary-color); + --bs-list-group-disabled-bg: var(--bs-body-bg); + --bs-list-group-active-color: #fff; + --bs-list-group-active-bg: #0d6efd; + --bs-list-group-active-border-color: #0d6efd; + display: flex; + flex-direction: column; + padding-left: 0; margin-bottom: 0; - border-radius: 4px; + border-radius: var(--bs-list-group-border-radius); } -.panel-group .panel + .panel { - margin-top: 5px; + +.list-group-numbered { + list-style-type: none; + counter-reset: section; } -.panel-group .panel-heading { - border-bottom: 0; +.list-group-numbered > .list-group-item::before { + content: counters(section, ".") ". "; + counter-increment: section; } -.panel-group .panel-heading + .panel-collapse > .panel-body, -.panel-group .panel-heading + .panel-collapse > .list-group { - border-top: 1px solid #ddd; + +.list-group-item-action { + width: 100%; + color: var(--bs-list-group-action-color); + text-align: inherit; } -.panel-group .panel-footer { - border-top: 0; +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: var(--bs-list-group-action-hover-color); + text-decoration: none; + background-color: var(--bs-list-group-action-hover-bg); } -.panel-group .panel-footer + .panel-collapse .panel-body { - border-bottom: 1px solid #ddd; +.list-group-item-action:active { + color: var(--bs-list-group-action-active-color); + background-color: var(--bs-list-group-action-active-bg); } -.panel-default { - border-color: #ddd; + +.list-group-item { + position: relative; + display: block; + padding: var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x); + color: var(--bs-list-group-color); + text-decoration: none; + background-color: var(--bs-list-group-bg); + border: var(--bs-list-group-border-width) solid var(--bs-list-group-border-color); } -.panel-default > .panel-heading { - color: #333; - background-color: #f5f5f5; - border-color: #ddd; +.list-group-item:first-child { + border-top-left-radius: inherit; + border-top-right-radius: inherit; } -.panel-default > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ddd; +.list-group-item:last-child { + border-bottom-right-radius: inherit; + border-bottom-left-radius: inherit; } -.panel-default > .panel-heading .badge { - color: #f5f5f5; - background-color: #333; +.list-group-item.disabled, .list-group-item:disabled { + color: var(--bs-list-group-disabled-color); + pointer-events: none; + background-color: var(--bs-list-group-disabled-bg); } -.panel-default > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ddd; +.list-group-item.active { + z-index: 2; + color: var(--bs-list-group-active-color); + background-color: var(--bs-list-group-active-bg); + border-color: var(--bs-list-group-active-border-color); } -.panel-primary { - border-color: #337ab7; +.list-group-item + .list-group-item { + border-top-width: 0; } -.panel-primary > .panel-heading { - color: #fff; - background-color: #337ab7; - border-color: #337ab7; +.list-group-item + .list-group-item.active { + margin-top: calc(-1 * var(--bs-list-group-border-width)); + border-top-width: var(--bs-list-group-border-width); } -.panel-primary > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #337ab7; + +.list-group-horizontal { + flex-direction: row; } -.panel-primary > .panel-heading .badge { - color: #337ab7; - background-color: #fff; +.list-group-horizontal > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; } -.panel-primary > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #337ab7; +.list-group-horizontal > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; } -.panel-success { - border-color: #d6e9c6; +.list-group-horizontal > .list-group-item.active { + margin-top: 0; } -.panel-success > .panel-heading { - color: #3c763d; - background-color: #dff0d8; - border-color: #d6e9c6; +.list-group-horizontal > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; } -.panel-success > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #d6e9c6; +.list-group-horizontal > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); } -.panel-success > .panel-heading .badge { - color: #dff0d8; - background-color: #3c763d; + +@media (min-width: 576px) { + .list-group-horizontal-sm { + flex-direction: row; + } + .list-group-horizontal-sm > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-sm > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-sm > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-sm > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } } -.panel-success > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #d6e9c6; +@media (min-width: 768px) { + .list-group-horizontal-md { + flex-direction: row; + } + .list-group-horizontal-md > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-md > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-md > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-md > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } } -.panel-info { - border-color: #bce8f1; +@media (min-width: 992px) { + .list-group-horizontal-lg { + flex-direction: row; + } + .list-group-horizontal-lg > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-lg > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-lg > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-lg > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } } -.panel-info > .panel-heading { - color: #31708f; - background-color: #d9edf7; - border-color: #bce8f1; +@media (min-width: 1200px) { + .list-group-horizontal-xl { + flex-direction: row; + } + .list-group-horizontal-xl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } } -.panel-info > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #bce8f1; +@media (min-width: 1400px) { + .list-group-horizontal-xxl { + flex-direction: row; + } + .list-group-horizontal-xxl > .list-group-item:first-child:not(:last-child) { + border-bottom-left-radius: var(--bs-list-group-border-radius); + border-top-right-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item:last-child:not(:first-child) { + border-top-right-radius: var(--bs-list-group-border-radius); + border-bottom-left-radius: 0; + } + .list-group-horizontal-xxl > .list-group-item.active { + margin-top: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item { + border-top-width: var(--bs-list-group-border-width); + border-left-width: 0; + } + .list-group-horizontal-xxl > .list-group-item + .list-group-item.active { + margin-left: calc(-1 * var(--bs-list-group-border-width)); + border-left-width: var(--bs-list-group-border-width); + } } -.panel-info > .panel-heading .badge { - color: #d9edf7; - background-color: #31708f; +.list-group-flush { + border-radius: 0; } -.panel-info > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #bce8f1; +.list-group-flush > .list-group-item { + border-width: 0 0 var(--bs-list-group-border-width); } -.panel-warning { - border-color: #faebcc; -} -.panel-warning > .panel-heading { - color: #8a6d3b; - background-color: #fcf8e3; - border-color: #faebcc; -} -.panel-warning > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #faebcc; +.list-group-flush > .list-group-item:last-child { + border-bottom-width: 0; } -.panel-warning > .panel-heading .badge { - color: #fcf8e3; - background-color: #8a6d3b; + +.list-group-item-primary { + --bs-list-group-color: var(--bs-primary-text-emphasis); + --bs-list-group-bg: var(--bs-primary-bg-subtle); + --bs-list-group-border-color: var(--bs-primary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-primary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-primary-border-subtle); + --bs-list-group-active-color: var(--bs-primary-bg-subtle); + --bs-list-group-active-bg: var(--bs-primary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-primary-text-emphasis); } -.panel-warning > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #faebcc; + +.list-group-item-secondary { + --bs-list-group-color: var(--bs-secondary-text-emphasis); + --bs-list-group-bg: var(--bs-secondary-bg-subtle); + --bs-list-group-border-color: var(--bs-secondary-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-secondary-border-subtle); + --bs-list-group-active-color: var(--bs-secondary-bg-subtle); + --bs-list-group-active-bg: var(--bs-secondary-text-emphasis); + --bs-list-group-active-border-color: var(--bs-secondary-text-emphasis); } -.panel-danger { - border-color: #ebccd1; + +.list-group-item-success { + --bs-list-group-color: var(--bs-success-text-emphasis); + --bs-list-group-bg: var(--bs-success-bg-subtle); + --bs-list-group-border-color: var(--bs-success-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-success-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-success-border-subtle); + --bs-list-group-active-color: var(--bs-success-bg-subtle); + --bs-list-group-active-bg: var(--bs-success-text-emphasis); + --bs-list-group-active-border-color: var(--bs-success-text-emphasis); } -.panel-danger > .panel-heading { - color: #a94442; - background-color: #f2dede; - border-color: #ebccd1; + +.list-group-item-info { + --bs-list-group-color: var(--bs-info-text-emphasis); + --bs-list-group-bg: var(--bs-info-bg-subtle); + --bs-list-group-border-color: var(--bs-info-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-info-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-info-border-subtle); + --bs-list-group-active-color: var(--bs-info-bg-subtle); + --bs-list-group-active-bg: var(--bs-info-text-emphasis); + --bs-list-group-active-border-color: var(--bs-info-text-emphasis); } -.panel-danger > .panel-heading + .panel-collapse > .panel-body { - border-top-color: #ebccd1; + +.list-group-item-warning { + --bs-list-group-color: var(--bs-warning-text-emphasis); + --bs-list-group-bg: var(--bs-warning-bg-subtle); + --bs-list-group-border-color: var(--bs-warning-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-warning-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-warning-border-subtle); + --bs-list-group-active-color: var(--bs-warning-bg-subtle); + --bs-list-group-active-bg: var(--bs-warning-text-emphasis); + --bs-list-group-active-border-color: var(--bs-warning-text-emphasis); } -.panel-danger > .panel-heading .badge { - color: #f2dede; - background-color: #a94442; + +.list-group-item-danger { + --bs-list-group-color: var(--bs-danger-text-emphasis); + --bs-list-group-bg: var(--bs-danger-bg-subtle); + --bs-list-group-border-color: var(--bs-danger-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-danger-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-danger-border-subtle); + --bs-list-group-active-color: var(--bs-danger-bg-subtle); + --bs-list-group-active-bg: var(--bs-danger-text-emphasis); + --bs-list-group-active-border-color: var(--bs-danger-text-emphasis); } -.panel-danger > .panel-footer + .panel-collapse > .panel-body { - border-bottom-color: #ebccd1; + +.list-group-item-light { + --bs-list-group-color: var(--bs-light-text-emphasis); + --bs-list-group-bg: var(--bs-light-bg-subtle); + --bs-list-group-border-color: var(--bs-light-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-light-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-light-border-subtle); + --bs-list-group-active-color: var(--bs-light-bg-subtle); + --bs-list-group-active-bg: var(--bs-light-text-emphasis); + --bs-list-group-active-border-color: var(--bs-light-text-emphasis); } -.embed-responsive { - position: relative; - display: block; - height: 0; - padding: 0; - overflow: hidden; + +.list-group-item-dark { + --bs-list-group-color: var(--bs-dark-text-emphasis); + --bs-list-group-bg: var(--bs-dark-bg-subtle); + --bs-list-group-border-color: var(--bs-dark-border-subtle); + --bs-list-group-action-hover-color: var(--bs-emphasis-color); + --bs-list-group-action-hover-bg: var(--bs-dark-border-subtle); + --bs-list-group-action-active-color: var(--bs-emphasis-color); + --bs-list-group-action-active-bg: var(--bs-dark-border-subtle); + --bs-list-group-active-color: var(--bs-dark-bg-subtle); + --bs-list-group-active-bg: var(--bs-dark-text-emphasis); + --bs-list-group-active-border-color: var(--bs-dark-text-emphasis); } -.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%; + +.btn-close { + --bs-btn-close-color: #000; + --bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e"); + --bs-btn-close-opacity: 0.5; + --bs-btn-close-hover-opacity: 0.75; + --bs-btn-close-focus-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25); + --bs-btn-close-focus-opacity: 1; + --bs-btn-close-disabled-opacity: 0.25; + --bs-btn-close-white-filter: invert(1) grayscale(100%) brightness(200%); + box-sizing: content-box; + width: 1em; + height: 1em; + padding: 0.25em 0.25em; + color: var(--bs-btn-close-color); + background: transparent var(--bs-btn-close-bg) center/1em auto no-repeat; border: 0; + border-radius: 0.375rem; + opacity: var(--bs-btn-close-opacity); +} +.btn-close:hover { + color: var(--bs-btn-close-color); + text-decoration: none; + opacity: var(--bs-btn-close-hover-opacity); } -.embed-responsive.embed-responsive-16by9 { - padding-bottom: 56.25%; +.btn-close:focus { + outline: 0; + box-shadow: var(--bs-btn-close-focus-shadow); + opacity: var(--bs-btn-close-focus-opacity); } -.embed-responsive.embed-responsive-4by3 { - padding-bottom: 75%; +.btn-close:disabled, .btn-close.disabled { + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + opacity: var(--bs-btn-close-disabled-opacity); } -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #e3e3e3; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + +.btn-close-white { + filter: var(--bs-btn-close-white-filter); } -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, .15); + +[data-bs-theme=dark] .btn-close { + filter: var(--bs-btn-close-white-filter); } -.well-lg { - padding: 24px; - border-radius: 6px; + +.toast { + --bs-toast-zindex: 1090; + --bs-toast-padding-x: 0.75rem; + --bs-toast-padding-y: 0.5rem; + --bs-toast-spacing: 1.5rem; + --bs-toast-max-width: 350px; + --bs-toast-font-size: 0.875rem; + --bs-toast-color: ; + --bs-toast-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-border-width: var(--bs-border-width); + --bs-toast-border-color: var(--bs-border-color-translucent); + --bs-toast-border-radius: var(--bs-border-radius); + --bs-toast-box-shadow: var(--bs-box-shadow); + --bs-toast-header-color: var(--bs-secondary-color); + --bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), 0.85); + --bs-toast-header-border-color: var(--bs-border-color-translucent); + width: var(--bs-toast-max-width); + max-width: 100%; + font-size: var(--bs-toast-font-size); + color: var(--bs-toast-color); + pointer-events: auto; + background-color: var(--bs-toast-bg); + background-clip: padding-box; + border: var(--bs-toast-border-width) solid var(--bs-toast-border-color); + box-shadow: var(--bs-toast-box-shadow); + border-radius: var(--bs-toast-border-radius); +} +.toast.showing { + opacity: 0; } -.well-sm { - padding: 9px; - border-radius: 3px; +.toast:not(.show) { + display: none; } -.close { - float: right; - font-size: 21px; - font-weight: bold; - line-height: 1; - color: #000; - text-shadow: 0 1px 0 #fff; - filter: alpha(opacity=20); - opacity: .2; + +.toast-container { + --bs-toast-zindex: 1090; + position: absolute; + z-index: var(--bs-toast-zindex); + width: -webkit-max-content; + width: -moz-max-content; + width: max-content; + max-width: 100%; + pointer-events: none; } -.close:hover, -.close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - filter: alpha(opacity=50); - opacity: .5; +.toast-container > :not(:last-child) { + margin-bottom: var(--bs-toast-spacing); } -button.close { - -webkit-appearance: none; - padding: 0; - cursor: pointer; - background: transparent; - border: 0; + +.toast-header { + display: flex; + align-items: center; + padding: var(--bs-toast-padding-y) var(--bs-toast-padding-x); + color: var(--bs-toast-header-color); + background-color: var(--bs-toast-header-bg); + background-clip: padding-box; + border-bottom: var(--bs-toast-border-width) solid var(--bs-toast-header-border-color); + border-top-left-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); + border-top-right-radius: calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width)); +} +.toast-header .btn-close { + margin-right: calc(-0.5 * var(--bs-toast-padding-x)); + margin-left: var(--bs-toast-padding-x); } -.modal-open { - overflow: hidden; + +.toast-body { + padding: var(--bs-toast-padding-x); + word-wrap: break-word; } + .modal { + --bs-modal-zindex: 1055; + --bs-modal-width: 500px; + --bs-modal-padding: 1rem; + --bs-modal-margin: 0.5rem; + --bs-modal-color: ; + --bs-modal-bg: var(--bs-body-bg); + --bs-modal-border-color: var(--bs-border-color-translucent); + --bs-modal-border-width: var(--bs-border-width); + --bs-modal-border-radius: var(--bs-border-radius-lg); + --bs-modal-box-shadow: var(--bs-box-shadow-sm); + --bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width))); + --bs-modal-header-padding-x: 1rem; + --bs-modal-header-padding-y: 1rem; + --bs-modal-header-padding: 1rem 1rem; + --bs-modal-header-border-color: var(--bs-border-color); + --bs-modal-header-border-width: var(--bs-border-width); + --bs-modal-title-line-height: 1.5; + --bs-modal-footer-gap: 0.5rem; + --bs-modal-footer-bg: ; + --bs-modal-footer-border-color: var(--bs-border-color); + --bs-modal-footer-border-width: var(--bs-border-width); position: fixed; top: 0; - right: 0; - bottom: 0; left: 0; - z-index: 1040; + z-index: var(--bs-modal-zindex); display: none; - overflow: hidden; - -webkit-overflow-scrolling: touch; - outline: 0; -} -.modal.fade .modal-dialog { - -webkit-transition: -webkit-transform .3s ease-out; - -o-transition: -o-transform .3s ease-out; - transition: transform .3s ease-out; - -webkit-transform: translate(0, -25%); - -ms-transform: translate(0, -25%); - -o-transform: translate(0, -25%); - transform: translate(0, -25%); -} -.modal.in .modal-dialog { - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - -o-transform: translate(0, 0); - transform: translate(0, 0); -} -.modal-open .modal { + width: 100%; + height: 100%; overflow-x: hidden; overflow-y: auto; + outline: 0; } + .modal-dialog { position: relative; width: auto; - margin: 10px; + margin: var(--bs-modal-margin); + pointer-events: none; +} +.modal.fade .modal-dialog { + transition: transform 0.3s ease-out; + transform: translate(0, -50px); +} +@media (prefers-reduced-motion: reduce) { + .modal.fade .modal-dialog { + transition: none; + } +} +.modal.show .modal-dialog { + transform: none; +} +.modal.modal-static .modal-dialog { + transform: scale(1.02); +} + +.modal-dialog-scrollable { + height: calc(100% - var(--bs-modal-margin) * 2); +} +.modal-dialog-scrollable .modal-content { + max-height: 100%; + overflow: hidden; } +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - var(--bs-modal-margin) * 2); +} + .modal-content { position: relative; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; + display: flex; + flex-direction: column; + width: 100%; + color: var(--bs-modal-color); + pointer-events: auto; + background-color: var(--bs-modal-bg); + background-clip: padding-box; + border: var(--bs-modal-border-width) solid var(--bs-modal-border-color); + border-radius: var(--bs-modal-border-radius); outline: 0; - -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); - box-shadow: 0 3px 9px rgba(0, 0, 0, .5); } + .modal-backdrop { - position: absolute; + --bs-backdrop-zindex: 1050; + --bs-backdrop-bg: #000; + --bs-backdrop-opacity: 0.5; + position: fixed; top: 0; - right: 0; left: 0; - background-color: #000; + z-index: var(--bs-backdrop-zindex); + width: 100vw; + height: 100vh; + background-color: var(--bs-backdrop-bg); } .modal-backdrop.fade { - filter: alpha(opacity=0); opacity: 0; } -.modal-backdrop.in { - filter: alpha(opacity=50); - opacity: .5; +.modal-backdrop.show { + opacity: var(--bs-backdrop-opacity); } + .modal-header { - min-height: 16.42857143px; - padding: 15px; - border-bottom: 1px solid #e5e5e5; -} -.modal-header .close { - margin-top: -2px; + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-between; + padding: var(--bs-modal-header-padding); + border-bottom: var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color); + border-top-left-radius: var(--bs-modal-inner-border-radius); + border-top-right-radius: var(--bs-modal-inner-border-radius); +} +.modal-header .btn-close { + padding: calc(var(--bs-modal-header-padding-y) * 0.5) calc(var(--bs-modal-header-padding-x) * 0.5); + margin: calc(-0.5 * var(--bs-modal-header-padding-y)) calc(-0.5 * var(--bs-modal-header-padding-x)) calc(-0.5 * var(--bs-modal-header-padding-y)) auto; } + .modal-title { - margin: 0; - line-height: 1.42857143; + margin-bottom: 0; + line-height: var(--bs-modal-title-line-height); } + .modal-body { position: relative; - padding: 15px; + flex: 1 1 auto; + padding: var(--bs-modal-padding); } + .modal-footer { - padding: 15px; - text-align: right; - border-top: 1px solid #e5e5e5; + display: flex; + flex-shrink: 0; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * 0.5); + background-color: var(--bs-modal-footer-bg); + border-top: var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color); + border-bottom-right-radius: var(--bs-modal-inner-border-radius); + border-bottom-left-radius: var(--bs-modal-inner-border-radius); +} +.modal-footer > * { + margin: calc(var(--bs-modal-footer-gap) * 0.5); } -.modal-footer .btn + .btn { - margin-bottom: 0; - margin-left: 5px; + +@media (min-width: 576px) { + .modal { + --bs-modal-margin: 1.75rem; + --bs-modal-box-shadow: var(--bs-box-shadow); + } + .modal-dialog { + max-width: var(--bs-modal-width); + margin-right: auto; + margin-left: auto; + } + .modal-sm { + --bs-modal-width: 300px; + } } -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; +@media (min-width: 992px) { + .modal-lg, + .modal-xl { + --bs-modal-width: 800px; + } } -.modal-footer .btn-block + .btn-block { - margin-left: 0; +@media (min-width: 1200px) { + .modal-xl { + --bs-modal-width: 1140px; + } +} +.modal-fullscreen { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; +} +.modal-fullscreen .modal-content { + height: 100%; + border: 0; + border-radius: 0; +} +.modal-fullscreen .modal-header, +.modal-fullscreen .modal-footer { + border-radius: 0; +} +.modal-fullscreen .modal-body { + overflow-y: auto; +} + +@media (max-width: 575.98px) { + .modal-fullscreen-sm-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-sm-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-header, + .modal-fullscreen-sm-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-sm-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 767.98px) { + .modal-fullscreen-md-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-md-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-md-down .modal-header, + .modal-fullscreen-md-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-md-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 991.98px) { + .modal-fullscreen-lg-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-lg-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-header, + .modal-fullscreen-lg-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-lg-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1199.98px) { + .modal-fullscreen-xl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-header, + .modal-fullscreen-xl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xl-down .modal-body { + overflow-y: auto; + } +} +@media (max-width: 1399.98px) { + .modal-fullscreen-xxl-down { + width: 100vw; + max-width: none; + height: 100%; + margin: 0; + } + .modal-fullscreen-xxl-down .modal-content { + height: 100%; + border: 0; + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-header, + .modal-fullscreen-xxl-down .modal-footer { + border-radius: 0; + } + .modal-fullscreen-xxl-down .modal-body { + overflow-y: auto; + } +} +.tooltip { + --bs-tooltip-zindex: 1080; + --bs-tooltip-max-width: 200px; + --bs-tooltip-padding-x: 0.5rem; + --bs-tooltip-padding-y: 0.25rem; + --bs-tooltip-margin: ; + --bs-tooltip-font-size: 0.875rem; + --bs-tooltip-color: var(--bs-body-bg); + --bs-tooltip-bg: var(--bs-emphasis-color); + --bs-tooltip-border-radius: var(--bs-border-radius); + --bs-tooltip-opacity: 0.9; + --bs-tooltip-arrow-width: 0.8rem; + --bs-tooltip-arrow-height: 0.4rem; + z-index: var(--bs-tooltip-zindex); + display: block; + margin: var(--bs-tooltip-margin); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-tooltip-font-size); + word-wrap: break-word; + opacity: 0; +} +.tooltip.show { + opacity: var(--bs-tooltip-opacity); +} +.tooltip .tooltip-arrow { + display: block; + width: var(--bs-tooltip-arrow-width); + height: var(--bs-tooltip-arrow-height); } -.modal-scrollbar-measure { +.tooltip .tooltip-arrow::before { position: absolute; - top: -9999px; - width: 50px; - height: 50px; - overflow: scroll; + content: ""; + border-color: transparent; + border-style: solid; } -@media (min-width: 768px) { - .modal-dialog { - width: 600px; - margin: 30px auto; + +.bs-tooltip-top .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow { + bottom: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-top .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before { + top: -1px; + border-width: var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-top-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-end .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow { + left: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-end .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before { + right: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * 0.5) 0; + border-right-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.bs-tooltip-bottom .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow { + top: calc(-1 * var(--bs-tooltip-arrow-height)); +} +.bs-tooltip-bottom .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before { + bottom: -1px; + border-width: 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-bottom-color: var(--bs-tooltip-bg); +} + +/* rtl:begin:ignore */ +.bs-tooltip-start .tooltip-arrow, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow { + right: calc(-1 * var(--bs-tooltip-arrow-height)); + width: var(--bs-tooltip-arrow-height); + height: var(--bs-tooltip-arrow-width); +} +.bs-tooltip-start .tooltip-arrow::before, .bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before { + left: -1px; + border-width: calc(var(--bs-tooltip-arrow-width) * 0.5) 0 calc(var(--bs-tooltip-arrow-width) * 0.5) var(--bs-tooltip-arrow-height); + border-left-color: var(--bs-tooltip-bg); +} + +/* rtl:end:ignore */ +.tooltip-inner { + max-width: var(--bs-tooltip-max-width); + padding: var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x); + color: var(--bs-tooltip-color); + text-align: center; + background-color: var(--bs-tooltip-bg); + border-radius: var(--bs-tooltip-border-radius); +} + +.popover { + --bs-popover-zindex: 1070; + --bs-popover-max-width: 276px; + --bs-popover-font-size: 0.875rem; + --bs-popover-bg: var(--bs-body-bg); + --bs-popover-border-width: var(--bs-border-width); + --bs-popover-border-color: var(--bs-border-color-translucent); + --bs-popover-border-radius: var(--bs-border-radius-lg); + --bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width)); + --bs-popover-box-shadow: var(--bs-box-shadow); + --bs-popover-header-padding-x: 1rem; + --bs-popover-header-padding-y: 0.5rem; + --bs-popover-header-font-size: 1rem; + --bs-popover-header-color: inherit; + --bs-popover-header-bg: var(--bs-secondary-bg); + --bs-popover-body-padding-x: 1rem; + --bs-popover-body-padding-y: 1rem; + --bs-popover-body-color: var(--bs-body-color); + --bs-popover-arrow-width: 1rem; + --bs-popover-arrow-height: 0.5rem; + --bs-popover-arrow-border: var(--bs-popover-border-color); + z-index: var(--bs-popover-zindex); + display: block; + max-width: var(--bs-popover-max-width); + font-family: var(--bs-font-sans-serif); + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + white-space: normal; + word-spacing: normal; + line-break: auto; + font-size: var(--bs-popover-font-size); + word-wrap: break-word; + background-color: var(--bs-popover-bg); + background-clip: padding-box; + border: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-radius: var(--bs-popover-border-radius); +} +.popover .popover-arrow { + display: block; + width: var(--bs-popover-arrow-width); + height: var(--bs-popover-arrow-height); +} +.popover .popover-arrow::before, .popover .popover-arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; + border-width: 0; +} + +.bs-popover-top > .popover-arrow, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow { + bottom: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before, .bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + border-width: var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-top > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::before { + bottom: 0; + border-top-color: var(--bs-popover-arrow-border); +} +.bs-popover-top > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=top] > .popover-arrow::after { + bottom: var(--bs-popover-border-width); + border-top-color: var(--bs-popover-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-end > .popover-arrow, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow { + left: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before, .bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * 0.5) 0; +} +.bs-popover-end > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::before { + left: 0; + border-right-color: var(--bs-popover-arrow-border); +} +.bs-popover-end > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=right] > .popover-arrow::after { + left: var(--bs-popover-border-width); + border-right-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.bs-popover-bottom > .popover-arrow, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow { + top: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before, .bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + border-width: 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-bottom > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::before { + top: 0; + border-bottom-color: var(--bs-popover-arrow-border); +} +.bs-popover-bottom > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=bottom] > .popover-arrow::after { + top: var(--bs-popover-border-width); + border-bottom-color: var(--bs-popover-bg); +} +.bs-popover-bottom .popover-header::before, .bs-popover-auto[data-popper-placement^=bottom] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: var(--bs-popover-arrow-width); + margin-left: calc(-0.5 * var(--bs-popover-arrow-width)); + content: ""; + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-header-bg); +} + +/* rtl:begin:ignore */ +.bs-popover-start > .popover-arrow, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow { + right: calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width)); + width: var(--bs-popover-arrow-height); + height: var(--bs-popover-arrow-width); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before, .bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + border-width: calc(var(--bs-popover-arrow-width) * 0.5) 0 calc(var(--bs-popover-arrow-width) * 0.5) var(--bs-popover-arrow-height); +} +.bs-popover-start > .popover-arrow::before, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::before { + right: 0; + border-left-color: var(--bs-popover-arrow-border); +} +.bs-popover-start > .popover-arrow::after, .bs-popover-auto[data-popper-placement^=left] > .popover-arrow::after { + right: var(--bs-popover-border-width); + border-left-color: var(--bs-popover-bg); +} + +/* rtl:end:ignore */ +.popover-header { + padding: var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x); + margin-bottom: 0; + font-size: var(--bs-popover-header-font-size); + color: var(--bs-popover-header-color); + background-color: var(--bs-popover-header-bg); + border-bottom: var(--bs-popover-border-width) solid var(--bs-popover-border-color); + border-top-left-radius: var(--bs-popover-inner-border-radius); + border-top-right-radius: var(--bs-popover-inner-border-radius); +} +.popover-header:empty { + display: none; +} + +.popover-body { + padding: var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x); + color: var(--bs-popover-body-color); +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-start), +.active.carousel-item-end { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-end), +.active.carousel-item-start { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-start, +.carousel-fade .carousel-item-prev.carousel-item-end { + z-index: 1; + opacity: 1; +} +.carousel-fade .active.carousel-item-start, +.carousel-fade .active.carousel-item-end { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-start, + .carousel-fade .active.carousel-item-end { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + padding: 0; + color: #fff; + text-align: center; + background: none; + border: 0; + opacity: 0.5; + transition: opacity 0.15s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 2rem; + height: 2rem; + background-repeat: no-repeat; + background-position: 50%; + background-size: 100% 100%; +} + +/* rtl:options: { + "autoRename": true, + "stringMap":[ { + "name" : "prev-next", + "search" : "prev", + "replace" : "next" + } ] +} */ +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 2; + display: flex; + justify-content: center; + padding: 0; + margin-right: 15%; + margin-bottom: 1rem; + margin-left: 15%; +} +.carousel-indicators [data-bs-target] { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + padding: 0; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border: 0; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: 0.5; + transition: opacity 0.6s ease; +} +@media (prefers-reduced-motion: reduce) { + .carousel-indicators [data-bs-target] { + transition: none; + } +} +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 1.25rem; + left: 15%; + padding-top: 1.25rem; + padding-bottom: 1.25rem; + color: #fff; + text-align: center; +} + +.carousel-dark .carousel-control-prev-icon, +.carousel-dark .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +.carousel-dark .carousel-indicators [data-bs-target] { + background-color: #000; +} +.carousel-dark .carousel-caption { + color: #000; +} + +[data-bs-theme=dark] .carousel .carousel-control-prev-icon, +[data-bs-theme=dark] .carousel .carousel-control-next-icon, [data-bs-theme=dark].carousel .carousel-control-prev-icon, +[data-bs-theme=dark].carousel .carousel-control-next-icon { + filter: invert(1) grayscale(100); +} +[data-bs-theme=dark] .carousel .carousel-indicators [data-bs-target], [data-bs-theme=dark].carousel .carousel-indicators [data-bs-target] { + background-color: #000; +} +[data-bs-theme=dark] .carousel .carousel-caption, [data-bs-theme=dark].carousel .carousel-caption { + color: #000; +} + +.spinner-grow, +.spinner-border { + display: inline-block; + width: var(--bs-spinner-width); + height: var(--bs-spinner-height); + vertical-align: var(--bs-spinner-vertical-align); + border-radius: 50%; + animation: var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name); +} + +@keyframes spinner-border { + to { + transform: rotate(360deg) /* rtl:ignore */; + } +} +.spinner-border { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-border-width: 0.25em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-border; + border: var(--bs-spinner-border-width) solid currentcolor; + border-right-color: transparent; +} + +.spinner-border-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; + --bs-spinner-border-width: 0.2em; +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + transform: none; + } +} +.spinner-grow { + --bs-spinner-width: 2rem; + --bs-spinner-height: 2rem; + --bs-spinner-vertical-align: -0.125em; + --bs-spinner-animation-speed: 0.75s; + --bs-spinner-animation-name: spinner-grow; + background-color: currentcolor; + opacity: 0; +} + +.spinner-grow-sm { + --bs-spinner-width: 1rem; + --bs-spinner-height: 1rem; +} + +@media (prefers-reduced-motion: reduce) { + .spinner-border, + .spinner-grow { + --bs-spinner-animation-speed: 1.5s; + } +} +.offcanvas, .offcanvas-xxl, .offcanvas-xl, .offcanvas-lg, .offcanvas-md, .offcanvas-sm { + --bs-offcanvas-zindex: 1045; + --bs-offcanvas-width: 400px; + --bs-offcanvas-height: 30vh; + --bs-offcanvas-padding-x: 1rem; + --bs-offcanvas-padding-y: 1rem; + --bs-offcanvas-color: var(--bs-body-color); + --bs-offcanvas-bg: var(--bs-body-bg); + --bs-offcanvas-border-width: var(--bs-border-width); + --bs-offcanvas-border-color: var(--bs-border-color-translucent); + --bs-offcanvas-box-shadow: var(--bs-box-shadow-sm); + --bs-offcanvas-transition: transform 0.3s ease-in-out; + --bs-offcanvas-title-line-height: 1.5; +} + +@media (max-width: 575.98px) { + .offcanvas-sm { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 575.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-sm { + transition: none; + } +} +@media (max-width: 575.98px) { + .offcanvas-sm.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-sm.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-sm.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-sm.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-sm.showing, .offcanvas-sm.show:not(.hiding) { + transform: none; + } + .offcanvas-sm.showing, .offcanvas-sm.hiding, .offcanvas-sm.show { + visibility: visible; + } +} +@media (min-width: 576px) { + .offcanvas-sm { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-sm .offcanvas-header { + display: none; + } + .offcanvas-sm .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 767.98px) { + .offcanvas-md { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 767.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-md { + transition: none; + } +} +@media (max-width: 767.98px) { + .offcanvas-md.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-md.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-md.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-md.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-md.showing, .offcanvas-md.show:not(.hiding) { + transform: none; + } + .offcanvas-md.showing, .offcanvas-md.hiding, .offcanvas-md.show { + visibility: visible; + } +} +@media (min-width: 768px) { + .offcanvas-md { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-md .offcanvas-header { + display: none; + } + .offcanvas-md .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 991.98px) { + .offcanvas-lg { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 991.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-lg { + transition: none; + } +} +@media (max-width: 991.98px) { + .offcanvas-lg.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-lg.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-lg.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-lg.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-lg.showing, .offcanvas-lg.show:not(.hiding) { + transform: none; + } + .offcanvas-lg.showing, .offcanvas-lg.hiding, .offcanvas-lg.show { + visibility: visible; + } +} +@media (min-width: 992px) { + .offcanvas-lg { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-lg .offcanvas-header { + display: none; + } + .offcanvas-lg .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1199.98px) { + .offcanvas-xl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xl { + transition: none; + } +} +@media (max-width: 1199.98px) { + .offcanvas-xl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xl.showing, .offcanvas-xl.show:not(.hiding) { + transform: none; + } + .offcanvas-xl.showing, .offcanvas-xl.hiding, .offcanvas-xl.show { + visibility: visible; + } +} +@media (min-width: 1200px) { + .offcanvas-xl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xl .offcanvas-header { + display: none; + } + .offcanvas-xl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +@media (max-width: 1399.98px) { + .offcanvas-xxl { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); + } +} +@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce) { + .offcanvas-xxl { + transition: none; + } +} +@media (max-width: 1399.98px) { + .offcanvas-xxl.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); + } + .offcanvas-xxl.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); + } + .offcanvas-xxl.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); + } + .offcanvas-xxl.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); + } + .offcanvas-xxl.showing, .offcanvas-xxl.show:not(.hiding) { + transform: none; + } + .offcanvas-xxl.showing, .offcanvas-xxl.hiding, .offcanvas-xxl.show { + visibility: visible; + } +} +@media (min-width: 1400px) { + .offcanvas-xxl { + --bs-offcanvas-height: auto; + --bs-offcanvas-border-width: 0; + background-color: transparent !important; + } + .offcanvas-xxl .offcanvas-header { + display: none; + } + .offcanvas-xxl .offcanvas-body { + display: flex; + flex-grow: 0; + padding: 0; + overflow-y: visible; + background-color: transparent !important; + } +} + +.offcanvas { + position: fixed; + bottom: 0; + z-index: var(--bs-offcanvas-zindex); + display: flex; + flex-direction: column; + max-width: 100%; + color: var(--bs-offcanvas-color); + visibility: hidden; + background-color: var(--bs-offcanvas-bg); + background-clip: padding-box; + outline: 0; + transition: var(--bs-offcanvas-transition); +} +@media (prefers-reduced-motion: reduce) { + .offcanvas { + transition: none; + } +} +.offcanvas.offcanvas-start { + top: 0; + left: 0; + width: var(--bs-offcanvas-width); + border-right: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(-100%); +} +.offcanvas.offcanvas-end { + top: 0; + right: 0; + width: var(--bs-offcanvas-width); + border-left: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateX(100%); +} +.offcanvas.offcanvas-top { + top: 0; + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-bottom: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(-100%); +} +.offcanvas.offcanvas-bottom { + right: 0; + left: 0; + height: var(--bs-offcanvas-height); + max-height: 100%; + border-top: var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color); + transform: translateY(100%); +} +.offcanvas.showing, .offcanvas.show:not(.hiding) { + transform: none; +} +.offcanvas.showing, .offcanvas.hiding, .offcanvas.show { + visibility: visible; +} + +.offcanvas-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} +.offcanvas-backdrop.fade { + opacity: 0; +} +.offcanvas-backdrop.show { + opacity: 0.5; +} + +.offcanvas-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); +} +.offcanvas-header .btn-close { + padding: calc(var(--bs-offcanvas-padding-y) * 0.5) calc(var(--bs-offcanvas-padding-x) * 0.5); + margin-top: calc(-0.5 * var(--bs-offcanvas-padding-y)); + margin-right: calc(-0.5 * var(--bs-offcanvas-padding-x)); + margin-bottom: calc(-0.5 * var(--bs-offcanvas-padding-y)); +} + +.offcanvas-title { + margin-bottom: 0; + line-height: var(--bs-offcanvas-title-line-height); +} + +.offcanvas-body { + flex-grow: 1; + padding: var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x); + overflow-y: auto; +} + +.placeholder { + display: inline-block; + min-height: 1em; + vertical-align: middle; + cursor: wait; + background-color: currentcolor; + opacity: 0.5; +} +.placeholder.btn::before { + display: inline-block; + content: ""; +} + +.placeholder-xs { + min-height: 0.6em; +} + +.placeholder-sm { + min-height: 0.8em; +} + +.placeholder-lg { + min-height: 1.2em; +} + +.placeholder-glow .placeholder { + animation: placeholder-glow 2s ease-in-out infinite; +} + +@keyframes placeholder-glow { + 50% { + opacity: 0.2; + } +} +.placeholder-wave { + -webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + animation: placeholder-wave 2s linear infinite; +} + +@keyframes placeholder-wave { + 100% { + -webkit-mask-position: -200% 0%; + mask-position: -200% 0%; + } +} +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.text-bg-primary { + color: #fff !important; + background-color: RGBA(var(--bs-primary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-secondary { + color: #fff !important; + background-color: RGBA(var(--bs-secondary-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-success { + color: #fff !important; + background-color: RGBA(var(--bs-success-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-info { + color: #000 !important; + background-color: RGBA(var(--bs-info-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-warning { + color: #000 !important; + background-color: RGBA(var(--bs-warning-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-danger { + color: #fff !important; + background-color: RGBA(var(--bs-danger-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-light { + color: #000 !important; + background-color: RGBA(var(--bs-light-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.text-bg-dark { + color: #fff !important; + background-color: RGBA(var(--bs-dark-rgb), var(--bs-bg-opacity, 1)) !important; +} + +.link-primary { + color: RGBA(var(--bs-primary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-primary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-primary:hover, .link-primary:focus { + color: RGBA(10, 88, 202, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(10, 88, 202, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-secondary { + color: RGBA(var(--bs-secondary-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-secondary-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-secondary:hover, .link-secondary:focus { + color: RGBA(86, 94, 100, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(86, 94, 100, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-success { + color: RGBA(var(--bs-success-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-success-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-success:hover, .link-success:focus { + color: RGBA(20, 108, 67, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(20, 108, 67, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-info { + color: RGBA(var(--bs-info-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-info-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-info:hover, .link-info:focus { + color: RGBA(61, 213, 243, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(61, 213, 243, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-warning { + color: RGBA(var(--bs-warning-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-warning-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-warning:hover, .link-warning:focus { + color: RGBA(255, 205, 57, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(255, 205, 57, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-danger { + color: RGBA(var(--bs-danger-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-danger-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-danger:hover, .link-danger:focus { + color: RGBA(176, 42, 55, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(176, 42, 55, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-light { + color: RGBA(var(--bs-light-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-light-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-light:hover, .link-light:focus { + color: RGBA(249, 250, 251, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(249, 250, 251, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-dark { + color: RGBA(var(--bs-dark-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-dark-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-dark:hover, .link-dark:focus { + color: RGBA(26, 30, 33, var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(26, 30, 33, var(--bs-link-underline-opacity, 1)) !important; +} + +.link-body-emphasis { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 1)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} +.link-body-emphasis:hover, .link-body-emphasis:focus { + color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-opacity, 0.75)) !important; + -webkit-text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; + text-decoration-color: RGBA(var(--bs-emphasis-color-rgb), var(--bs-link-underline-opacity, 0.75)) !important; +} + +.focus-ring:focus { + outline: 0; + box-shadow: var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color); +} + +.icon-link { + display: inline-flex; + gap: 0.375rem; + align-items: center; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-opacity, 0.5)); + text-underline-offset: 0.25em; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.icon-link > .bi { + flex-shrink: 0; + width: 1em; + height: 1em; + fill: currentcolor; + transition: 0.2s ease-in-out transform; +} +@media (prefers-reduced-motion: reduce) { + .icon-link > .bi { + transition: none; + } +} + +.icon-link-hover:hover > .bi, .icon-link-hover:focus-visible > .bi { + transform: var(--bs-icon-link-transform, translate3d(0.25em, 0, 0)); +} + +.ratio { + position: relative; + width: 100%; +} +.ratio::before { + display: block; + padding-top: var(--bs-aspect-ratio); + content: ""; +} +.ratio > * { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.ratio-1x1 { + --bs-aspect-ratio: 100%; +} + +.ratio-4x3 { + --bs-aspect-ratio: 75%; +} + +.ratio-16x9 { + --bs-aspect-ratio: 56.25%; +} + +.ratio-21x9 { + --bs-aspect-ratio: 42.8571428571%; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +.sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; +} + +.sticky-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; +} + +@media (min-width: 576px) { + .sticky-sm-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-sm-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 768px) { + .sticky-md-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-md-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 992px) { + .sticky-lg-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-lg-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1200px) { + .sticky-xl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +@media (min-width: 1400px) { + .sticky-xxl-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } + .sticky-xxl-bottom { + position: -webkit-sticky; + position: sticky; + bottom: 0; + z-index: 1020; + } +} +.hstack { + display: flex; + flex-direction: row; + align-items: center; + align-self: stretch; +} + +.vstack { + display: flex; + flex: 1 1 auto; + flex-direction: column; + align-self: stretch; +} + +.visually-hidden, +.visually-hidden-focusable:not(:focus):not(:focus-within) { + width: 1px !important; + height: 1px !important; + padding: 0 !important; + margin: -1px !important; + overflow: hidden !important; + clip: rect(0, 0, 0, 0) !important; + white-space: nowrap !important; + border: 0 !important; +} +.visually-hidden:not(caption), +.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption) { + position: absolute !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + content: ""; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.vr { + display: inline-block; + align-self: stretch; + width: var(--bs-border-width); + min-height: 1em; + background-color: currentcolor; + opacity: 0.25; +} + +.align-baseline { + vertical-align: baseline !important; +} + +.align-top { + vertical-align: top !important; +} + +.align-middle { + vertical-align: middle !important; +} + +.align-bottom { + vertical-align: bottom !important; +} + +.align-text-bottom { + vertical-align: text-bottom !important; +} + +.align-text-top { + vertical-align: text-top !important; +} + +.float-start { + float: left !important; +} + +.float-end { + float: right !important; +} + +.float-none { + float: none !important; +} + +.object-fit-contain { + -o-object-fit: contain !important; + object-fit: contain !important; +} + +.object-fit-cover { + -o-object-fit: cover !important; + object-fit: cover !important; +} + +.object-fit-fill { + -o-object-fit: fill !important; + object-fit: fill !important; +} + +.object-fit-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; +} + +.object-fit-none { + -o-object-fit: none !important; + object-fit: none !important; +} + +.opacity-0 { + opacity: 0 !important; +} + +.opacity-25 { + opacity: 0.25 !important; +} + +.opacity-50 { + opacity: 0.5 !important; +} + +.opacity-75 { + opacity: 0.75 !important; +} + +.opacity-100 { + opacity: 1 !important; +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !important; +} + +.overflow-visible { + overflow: visible !important; +} + +.overflow-scroll { + overflow: scroll !important; +} + +.overflow-x-auto { + overflow-x: auto !important; +} + +.overflow-x-hidden { + overflow-x: hidden !important; +} + +.overflow-x-visible { + overflow-x: visible !important; +} + +.overflow-x-scroll { + overflow-x: scroll !important; +} + +.overflow-y-auto { + overflow-y: auto !important; +} + +.overflow-y-hidden { + overflow-y: hidden !important; +} + +.overflow-y-visible { + overflow-y: visible !important; +} + +.overflow-y-scroll { + overflow-y: scroll !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !important; +} + +.d-grid { + display: grid !important; +} + +.d-inline-grid { + display: inline-grid !important; +} + +.d-table { + display: table !important; +} + +.d-table-row { + display: table-row !important; +} + +.d-table-cell { + display: table-cell !important; +} + +.d-flex { + display: flex !important; +} + +.d-inline-flex { + display: inline-flex !important; +} + +.d-none { + display: none !important; +} + +.shadow { + box-shadow: var(--bs-box-shadow) !important; +} + +.shadow-sm { + box-shadow: var(--bs-box-shadow-sm) !important; +} + +.shadow-lg { + box-shadow: var(--bs-box-shadow-lg) !important; +} + +.shadow-none { + box-shadow: none !important; +} + +.focus-ring-primary { + --bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-secondary { + --bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-success { + --bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-info { + --bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-warning { + --bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-danger { + --bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-light { + --bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity)); +} + +.focus-ring-dark { + --bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity)); +} + +.position-static { + position: static !important; +} + +.position-relative { + position: relative !important; +} + +.position-absolute { + position: absolute !important; +} + +.position-fixed { + position: fixed !important; +} + +.position-sticky { + position: -webkit-sticky !important; + position: sticky !important; +} + +.top-0 { + top: 0 !important; +} + +.top-50 { + top: 50% !important; +} + +.top-100 { + top: 100% !important; +} + +.bottom-0 { + bottom: 0 !important; +} + +.bottom-50 { + bottom: 50% !important; +} + +.bottom-100 { + bottom: 100% !important; +} + +.start-0 { + left: 0 !important; +} + +.start-50 { + left: 50% !important; +} + +.start-100 { + left: 100% !important; +} + +.end-0 { + right: 0 !important; +} + +.end-50 { + right: 50% !important; +} + +.end-100 { + right: 100% !important; +} + +.translate-middle { + transform: translate(-50%, -50%) !important; +} + +.translate-middle-x { + transform: translateX(-50%) !important; +} + +.translate-middle-y { + transform: translateY(-50%) !important; +} + +.border { + border: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top { + border-top: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-end { + border-right: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-end-0 { + border-right: 0 !important; +} + +.border-bottom { + border-bottom: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-start { + border-left: var(--bs-border-width) var(--bs-border-style) var(--bs-border-color) !important; +} + +.border-start-0 { + border-left: 0 !important; +} + +.border-primary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-primary-rgb), var(--bs-border-opacity)) !important; +} + +.border-secondary { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-secondary-rgb), var(--bs-border-opacity)) !important; +} + +.border-success { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-success-rgb), var(--bs-border-opacity)) !important; +} + +.border-info { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-info-rgb), var(--bs-border-opacity)) !important; +} + +.border-warning { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-warning-rgb), var(--bs-border-opacity)) !important; +} + +.border-danger { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-danger-rgb), var(--bs-border-opacity)) !important; +} + +.border-light { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-light-rgb), var(--bs-border-opacity)) !important; +} + +.border-dark { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-dark-rgb), var(--bs-border-opacity)) !important; +} + +.border-black { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-black-rgb), var(--bs-border-opacity)) !important; +} + +.border-white { + --bs-border-opacity: 1; + border-color: rgba(var(--bs-white-rgb), var(--bs-border-opacity)) !important; +} + +.border-primary-subtle { + border-color: var(--bs-primary-border-subtle) !important; +} + +.border-secondary-subtle { + border-color: var(--bs-secondary-border-subtle) !important; +} + +.border-success-subtle { + border-color: var(--bs-success-border-subtle) !important; +} + +.border-info-subtle { + border-color: var(--bs-info-border-subtle) !important; +} + +.border-warning-subtle { + border-color: var(--bs-warning-border-subtle) !important; +} + +.border-danger-subtle { + border-color: var(--bs-danger-border-subtle) !important; +} + +.border-light-subtle { + border-color: var(--bs-light-border-subtle) !important; +} + +.border-dark-subtle { + border-color: var(--bs-dark-border-subtle) !important; +} + +.border-1 { + border-width: 1px !important; +} + +.border-2 { + border-width: 2px !important; +} + +.border-3 { + border-width: 3px !important; +} + +.border-4 { + border-width: 4px !important; +} + +.border-5 { + border-width: 5px !important; +} + +.border-opacity-10 { + --bs-border-opacity: 0.1; +} + +.border-opacity-25 { + --bs-border-opacity: 0.25; +} + +.border-opacity-50 { + --bs-border-opacity: 0.5; +} + +.border-opacity-75 { + --bs-border-opacity: 0.75; +} + +.border-opacity-100 { + --bs-border-opacity: 1; +} + +.w-25 { + width: 25% !important; +} + +.w-50 { + width: 50% !important; +} + +.w-75 { + width: 75% !important; +} + +.w-100 { + width: 100% !important; +} + +.w-auto { + width: auto !important; +} + +.mw-100 { + max-width: 100% !important; +} + +.vw-100 { + width: 100vw !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.h-25 { + height: 25% !important; +} + +.h-50 { + height: 50% !important; +} + +.h-75 { + height: 75% !important; +} + +.h-100 { + height: 100% !important; +} + +.h-auto { + height: auto !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.vh-100 { + height: 100vh !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.flex-fill { + flex: 1 1 auto !important; +} + +.flex-row { + flex-direction: row !important; +} + +.flex-column { + flex-direction: column !important; +} + +.flex-row-reverse { + flex-direction: row-reverse !important; +} + +.flex-column-reverse { + flex-direction: column-reverse !important; +} + +.flex-grow-0 { + flex-grow: 0 !important; +} + +.flex-grow-1 { + flex-grow: 1 !important; +} + +.flex-shrink-0 { + flex-shrink: 0 !important; +} + +.flex-shrink-1 { + flex-shrink: 1 !important; +} + +.flex-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.justify-content-start { + justify-content: flex-start !important; +} + +.justify-content-end { + justify-content: flex-end !important; +} + +.justify-content-center { + justify-content: center !important; +} + +.justify-content-between { + justify-content: space-between !important; +} + +.justify-content-around { + justify-content: space-around !important; +} + +.justify-content-evenly { + justify-content: space-evenly !important; +} + +.align-items-start { + align-items: flex-start !important; +} + +.align-items-end { + align-items: flex-end !important; +} + +.align-items-center { + align-items: center !important; +} + +.align-items-baseline { + align-items: baseline !important; +} + +.align-items-stretch { + align-items: stretch !important; +} + +.align-content-start { + align-content: flex-start !important; +} + +.align-content-end { + align-content: flex-end !important; +} + +.align-content-center { + align-content: center !important; +} + +.align-content-between { + align-content: space-between !important; +} + +.align-content-around { + align-content: space-around !important; +} + +.align-content-stretch { + align-content: stretch !important; +} + +.align-self-auto { + align-self: auto !important; +} + +.align-self-start { + align-self: flex-start !important; +} + +.align-self-end { + align-self: flex-end !important; +} + +.align-self-center { + align-self: center !important; +} + +.align-self-baseline { + align-self: baseline !important; +} + +.align-self-stretch { + align-self: stretch !important; +} + +.order-first { + order: -1 !important; +} + +.order-0 { + order: 0 !important; +} + +.order-1 { + order: 1 !important; +} + +.order-2 { + order: 2 !important; +} + +.order-3 { + order: 3 !important; +} + +.order-4 { + order: 4 !important; +} + +.order-5 { + order: 5 !important; +} + +.order-last { + order: 6 !important; +} + +.m-0 { + margin: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mx-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.mx-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; +} + +.mx-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; +} + +.mx-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; +} + +.mx-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; +} + +.mx-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; +} + +.mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +.my-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; +} + +.my-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; +} + +.my-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; +} + +.my-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; +} + +.my-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; +} + +.my-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; +} + +.my-auto { + margin-top: auto !important; + margin-bottom: auto !important; +} + +.mt-0 { + margin-top: 0 !important; +} + +.mt-1 { + margin-top: 0.25rem !important; +} + +.mt-2 { + margin-top: 0.5rem !important; +} + +.mt-3 { + margin-top: 1rem !important; +} + +.mt-4 { + margin-top: 1.5rem !important; +} + +.mt-5 { + margin-top: 3rem !important; +} + +.mt-auto { + margin-top: auto !important; +} + +.me-0 { + margin-right: 0 !important; +} + +.me-1 { + margin-right: 0.25rem !important; +} + +.me-2 { + margin-right: 0.5rem !important; +} + +.me-3 { + margin-right: 1rem !important; +} + +.me-4 { + margin-right: 1.5rem !important; +} + +.me-5 { + margin-right: 3rem !important; +} + +.me-auto { + margin-right: auto !important; +} + +.mb-0 { + margin-bottom: 0 !important; +} + +.mb-1 { + margin-bottom: 0.25rem !important; +} + +.mb-2 { + margin-bottom: 0.5rem !important; +} + +.mb-3 { + margin-bottom: 1rem !important; +} + +.mb-4 { + margin-bottom: 1.5rem !important; +} + +.mb-5 { + margin-bottom: 3rem !important; +} + +.mb-auto { + margin-bottom: auto !important; +} + +.ms-0 { + margin-left: 0 !important; +} + +.ms-1 { + margin-left: 0.25rem !important; +} + +.ms-2 { + margin-left: 0.5rem !important; +} + +.ms-3 { + margin-left: 1rem !important; +} + +.ms-4 { + margin-left: 1.5rem !important; +} + +.ms-5 { + margin-left: 3rem !important; +} + +.ms-auto { + margin-left: auto !important; +} + +.p-0 { + padding: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.px-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.px-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; +} + +.px-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; +} + +.px-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; +} + +.px-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; +} + +.px-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; +} + +.py-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; +} + +.py-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; +} + +.py-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; +} + +.py-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; +} + +.py-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; +} + +.py-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; +} + +.pt-0 { + padding-top: 0 !important; +} + +.pt-1 { + padding-top: 0.25rem !important; +} + +.pt-2 { + padding-top: 0.5rem !important; +} + +.pt-3 { + padding-top: 1rem !important; +} + +.pt-4 { + padding-top: 1.5rem !important; +} + +.pt-5 { + padding-top: 3rem !important; +} + +.pe-0 { + padding-right: 0 !important; +} + +.pe-1 { + padding-right: 0.25rem !important; +} + +.pe-2 { + padding-right: 0.5rem !important; +} + +.pe-3 { + padding-right: 1rem !important; +} + +.pe-4 { + padding-right: 1.5rem !important; +} + +.pe-5 { + padding-right: 3rem !important; +} + +.pb-0 { + padding-bottom: 0 !important; +} + +.pb-1 { + padding-bottom: 0.25rem !important; +} + +.pb-2 { + padding-bottom: 0.5rem !important; +} + +.pb-3 { + padding-bottom: 1rem !important; +} + +.pb-4 { + padding-bottom: 1.5rem !important; +} + +.pb-5 { + padding-bottom: 3rem !important; +} + +.ps-0 { + padding-left: 0 !important; +} + +.ps-1 { + padding-left: 0.25rem !important; +} + +.ps-2 { + padding-left: 0.5rem !important; +} + +.ps-3 { + padding-left: 1rem !important; +} + +.ps-4 { + padding-left: 1.5rem !important; +} + +.ps-5 { + padding-left: 3rem !important; +} + +.gap-0 { + gap: 0 !important; +} + +.gap-1 { + gap: 0.25rem !important; +} + +.gap-2 { + gap: 0.5rem !important; +} + +.gap-3 { + gap: 1rem !important; +} + +.gap-4 { + gap: 1.5rem !important; +} + +.gap-5 { + gap: 3rem !important; +} + +.row-gap-0 { + row-gap: 0 !important; +} + +.row-gap-1 { + row-gap: 0.25rem !important; +} + +.row-gap-2 { + row-gap: 0.5rem !important; +} + +.row-gap-3 { + row-gap: 1rem !important; +} + +.row-gap-4 { + row-gap: 1.5rem !important; +} + +.row-gap-5 { + row-gap: 3rem !important; +} + +.column-gap-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; +} + +.column-gap-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; +} + +.column-gap-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; +} + +.column-gap-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; +} + +.column-gap-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; +} + +.column-gap-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; +} + +.font-monospace { + font-family: var(--bs-font-monospace) !important; +} + +.fs-1 { + font-size: calc(1.375rem + 1.5vw) !important; +} + +.fs-2 { + font-size: calc(1.325rem + 0.9vw) !important; +} + +.fs-3 { + font-size: calc(1.3rem + 0.6vw) !important; +} + +.fs-4 { + font-size: calc(1.275rem + 0.3vw) !important; +} + +.fs-5 { + font-size: 1.25rem !important; +} + +.fs-6 { + font-size: 1rem !important; +} + +.fst-italic { + font-style: italic !important; +} + +.fst-normal { + font-style: normal !important; +} + +.fw-lighter { + font-weight: lighter !important; +} + +.fw-light { + font-weight: 300 !important; +} + +.fw-normal { + font-weight: 400 !important; +} + +.fw-medium { + font-weight: 500 !important; +} + +.fw-semibold { + font-weight: 600 !important; +} + +.fw-bold { + font-weight: 700 !important; +} + +.fw-bolder { + font-weight: bolder !important; +} + +.lh-1 { + line-height: 1 !important; +} + +.lh-sm { + line-height: 1.25 !important; +} + +.lh-base { + line-height: 1.5 !important; +} + +.lh-lg { + line-height: 2 !important; +} + +.text-start { + text-align: left !important; +} + +.text-end { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-decoration-underline { + text-decoration: underline !important; +} + +.text-decoration-line-through { + text-decoration: line-through !important; +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +/* rtl:begin:remove */ +.text-break { + word-wrap: break-word !important; + word-break: break-word !important; +} + +/* rtl:end:remove */ +.text-primary { + --bs-text-opacity: 1; + color: rgba(var(--bs-primary-rgb), var(--bs-text-opacity)) !important; +} + +.text-secondary { + --bs-text-opacity: 1; + color: rgba(var(--bs-secondary-rgb), var(--bs-text-opacity)) !important; +} + +.text-success { + --bs-text-opacity: 1; + color: rgba(var(--bs-success-rgb), var(--bs-text-opacity)) !important; +} + +.text-info { + --bs-text-opacity: 1; + color: rgba(var(--bs-info-rgb), var(--bs-text-opacity)) !important; +} + +.text-warning { + --bs-text-opacity: 1; + color: rgba(var(--bs-warning-rgb), var(--bs-text-opacity)) !important; +} + +.text-danger { + --bs-text-opacity: 1; + color: rgba(var(--bs-danger-rgb), var(--bs-text-opacity)) !important; +} + +.text-light { + --bs-text-opacity: 1; + color: rgba(var(--bs-light-rgb), var(--bs-text-opacity)) !important; +} + +.text-dark { + --bs-text-opacity: 1; + color: rgba(var(--bs-dark-rgb), var(--bs-text-opacity)) !important; +} + +.text-black { + --bs-text-opacity: 1; + color: rgba(var(--bs-black-rgb), var(--bs-text-opacity)) !important; +} + +.text-white { + --bs-text-opacity: 1; + color: rgba(var(--bs-white-rgb), var(--bs-text-opacity)) !important; +} + +.text-body { + --bs-text-opacity: 1; + color: rgba(var(--bs-body-color-rgb), var(--bs-text-opacity)) !important; +} + +.text-muted { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-black-50 { + --bs-text-opacity: 1; + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + --bs-text-opacity: 1; + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-body-secondary { + --bs-text-opacity: 1; + color: var(--bs-secondary-color) !important; +} + +.text-body-tertiary { + --bs-text-opacity: 1; + color: var(--bs-tertiary-color) !important; +} + +.text-body-emphasis { + --bs-text-opacity: 1; + color: var(--bs-emphasis-color) !important; +} + +.text-reset { + --bs-text-opacity: 1; + color: inherit !important; +} + +.text-opacity-25 { + --bs-text-opacity: 0.25; +} + +.text-opacity-50 { + --bs-text-opacity: 0.5; +} + +.text-opacity-75 { + --bs-text-opacity: 0.75; +} + +.text-opacity-100 { + --bs-text-opacity: 1; +} + +.text-primary-emphasis { + color: var(--bs-primary-text-emphasis) !important; +} + +.text-secondary-emphasis { + color: var(--bs-secondary-text-emphasis) !important; +} + +.text-success-emphasis { + color: var(--bs-success-text-emphasis) !important; +} + +.text-info-emphasis { + color: var(--bs-info-text-emphasis) !important; +} + +.text-warning-emphasis { + color: var(--bs-warning-text-emphasis) !important; +} + +.text-danger-emphasis { + color: var(--bs-danger-text-emphasis) !important; +} + +.text-light-emphasis { + color: var(--bs-light-text-emphasis) !important; +} + +.text-dark-emphasis { + color: var(--bs-dark-text-emphasis) !important; +} + +.link-opacity-10 { + --bs-link-opacity: 0.1; +} + +.link-opacity-10-hover:hover { + --bs-link-opacity: 0.1; +} + +.link-opacity-25 { + --bs-link-opacity: 0.25; +} + +.link-opacity-25-hover:hover { + --bs-link-opacity: 0.25; +} + +.link-opacity-50 { + --bs-link-opacity: 0.5; +} + +.link-opacity-50-hover:hover { + --bs-link-opacity: 0.5; +} + +.link-opacity-75 { + --bs-link-opacity: 0.75; +} + +.link-opacity-75-hover:hover { + --bs-link-opacity: 0.75; +} + +.link-opacity-100 { + --bs-link-opacity: 1; +} + +.link-opacity-100-hover:hover { + --bs-link-opacity: 1; +} + +.link-offset-1 { + text-underline-offset: 0.125em !important; +} + +.link-offset-1-hover:hover { + text-underline-offset: 0.125em !important; +} + +.link-offset-2 { + text-underline-offset: 0.25em !important; +} + +.link-offset-2-hover:hover { + text-underline-offset: 0.25em !important; +} + +.link-offset-3 { + text-underline-offset: 0.375em !important; +} + +.link-offset-3-hover:hover { + text-underline-offset: 0.375em !important; +} + +.link-underline-primary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-primary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-secondary { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-secondary-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-success { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-success-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-info { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-info-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-warning { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-warning-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-danger { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-danger-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-light { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-light-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline-dark { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; + text-decoration-color: rgba(var(--bs-dark-rgb), var(--bs-link-underline-opacity)) !important; +} + +.link-underline { + --bs-link-underline-opacity: 1; + -webkit-text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; + text-decoration-color: rgba(var(--bs-link-color-rgb), var(--bs-link-underline-opacity, 1)) !important; +} + +.link-underline-opacity-0 { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-0-hover:hover { + --bs-link-underline-opacity: 0; +} + +.link-underline-opacity-10 { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-10-hover:hover { + --bs-link-underline-opacity: 0.1; +} + +.link-underline-opacity-25 { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-25-hover:hover { + --bs-link-underline-opacity: 0.25; +} + +.link-underline-opacity-50 { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-50-hover:hover { + --bs-link-underline-opacity: 0.5; +} + +.link-underline-opacity-75 { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-75-hover:hover { + --bs-link-underline-opacity: 0.75; +} + +.link-underline-opacity-100 { + --bs-link-underline-opacity: 1; +} + +.link-underline-opacity-100-hover:hover { + --bs-link-underline-opacity: 1; +} + +.bg-primary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-success { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-info { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-warning { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-danger { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-light { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-dark { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-black { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-white { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-transparent { + --bs-bg-opacity: 1; + background-color: transparent !important; +} + +.bg-body-secondary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-body-tertiary { + --bs-bg-opacity: 1; + background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important; +} + +.bg-opacity-10 { + --bs-bg-opacity: 0.1; +} + +.bg-opacity-25 { + --bs-bg-opacity: 0.25; +} + +.bg-opacity-50 { + --bs-bg-opacity: 0.5; +} + +.bg-opacity-75 { + --bs-bg-opacity: 0.75; +} + +.bg-opacity-100 { + --bs-bg-opacity: 1; +} + +.bg-primary-subtle { + background-color: var(--bs-primary-bg-subtle) !important; +} + +.bg-secondary-subtle { + background-color: var(--bs-secondary-bg-subtle) !important; +} + +.bg-success-subtle { + background-color: var(--bs-success-bg-subtle) !important; +} + +.bg-info-subtle { + background-color: var(--bs-info-bg-subtle) !important; +} + +.bg-warning-subtle { + background-color: var(--bs-warning-bg-subtle) !important; +} + +.bg-danger-subtle { + background-color: var(--bs-danger-bg-subtle) !important; +} + +.bg-light-subtle { + background-color: var(--bs-light-bg-subtle) !important; +} + +.bg-dark-subtle { + background-color: var(--bs-dark-bg-subtle) !important; +} + +.bg-gradient { + background-image: var(--bs-gradient) !important; +} + +.user-select-all { + -webkit-user-select: all !important; + -moz-user-select: all !important; + user-select: all !important; +} + +.user-select-auto { + -webkit-user-select: auto !important; + -moz-user-select: auto !important; + user-select: auto !important; +} + +.user-select-none { + -webkit-user-select: none !important; + -moz-user-select: none !important; + user-select: none !important; +} + +.pe-none { + pointer-events: none !important; +} + +.pe-auto { + pointer-events: auto !important; +} + +.rounded { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.rounded-1 { + border-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-2 { + border-radius: var(--bs-border-radius) !important; +} + +.rounded-3 { + border-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-4 { + border-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-5 { + border-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-top { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-0 { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.rounded-top-1 { + border-top-left-radius: var(--bs-border-radius-sm) !important; + border-top-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-top-2 { + border-top-left-radius: var(--bs-border-radius) !important; + border-top-right-radius: var(--bs-border-radius) !important; +} + +.rounded-top-3 { + border-top-left-radius: var(--bs-border-radius-lg) !important; + border-top-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-top-4 { + border-top-left-radius: var(--bs-border-radius-xl) !important; + border-top-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-top-5 { + border-top-left-radius: var(--bs-border-radius-xxl) !important; + border-top-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-top-circle { + border-top-left-radius: 50% !important; + border-top-right-radius: 50% !important; +} + +.rounded-top-pill { + border-top-left-radius: var(--bs-border-radius-pill) !important; + border-top-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-end { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-0 { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.rounded-end-1 { + border-top-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-right-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-end-2 { + border-top-right-radius: var(--bs-border-radius) !important; + border-bottom-right-radius: var(--bs-border-radius) !important; +} + +.rounded-end-3 { + border-top-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-right-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-end-4 { + border-top-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-right-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-end-5 { + border-top-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-end-circle { + border-top-right-radius: 50% !important; + border-bottom-right-radius: 50% !important; +} + +.rounded-end-pill { + border-top-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-right-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-bottom { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-0 { + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 0 !important; +} + +.rounded-bottom-1 { + border-bottom-right-radius: var(--bs-border-radius-sm) !important; + border-bottom-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-bottom-2 { + border-bottom-right-radius: var(--bs-border-radius) !important; + border-bottom-left-radius: var(--bs-border-radius) !important; +} + +.rounded-bottom-3 { + border-bottom-right-radius: var(--bs-border-radius-lg) !important; + border-bottom-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-bottom-4 { + border-bottom-right-radius: var(--bs-border-radius-xl) !important; + border-bottom-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-bottom-5 { + border-bottom-right-radius: var(--bs-border-radius-xxl) !important; + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-bottom-circle { + border-bottom-right-radius: 50% !important; + border-bottom-left-radius: 50% !important; +} + +.rounded-bottom-pill { + border-bottom-right-radius: var(--bs-border-radius-pill) !important; + border-bottom-left-radius: var(--bs-border-radius-pill) !important; +} + +.rounded-start { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-0 { + border-bottom-left-radius: 0 !important; + border-top-left-radius: 0 !important; +} + +.rounded-start-1 { + border-bottom-left-radius: var(--bs-border-radius-sm) !important; + border-top-left-radius: var(--bs-border-radius-sm) !important; +} + +.rounded-start-2 { + border-bottom-left-radius: var(--bs-border-radius) !important; + border-top-left-radius: var(--bs-border-radius) !important; +} + +.rounded-start-3 { + border-bottom-left-radius: var(--bs-border-radius-lg) !important; + border-top-left-radius: var(--bs-border-radius-lg) !important; +} + +.rounded-start-4 { + border-bottom-left-radius: var(--bs-border-radius-xl) !important; + border-top-left-radius: var(--bs-border-radius-xl) !important; +} + +.rounded-start-5 { + border-bottom-left-radius: var(--bs-border-radius-xxl) !important; + border-top-left-radius: var(--bs-border-radius-xxl) !important; +} + +.rounded-start-circle { + border-bottom-left-radius: 50% !important; + border-top-left-radius: 50% !important; +} + +.rounded-start-pill { + border-bottom-left-radius: var(--bs-border-radius-pill) !important; + border-top-left-radius: var(--bs-border-radius-pill) !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +.z-n1 { + z-index: -1 !important; +} + +.z-0 { + z-index: 0 !important; +} + +.z-1 { + z-index: 1 !important; +} + +.z-2 { + z-index: 2 !important; +} + +.z-3 { + z-index: 3 !important; +} + +@media (min-width: 576px) { + .float-sm-start { + float: left !important; + } + .float-sm-end { + float: right !important; + } + .float-sm-none { + float: none !important; + } + .object-fit-sm-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-sm-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-sm-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-sm-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-sm-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !important; + } + .d-sm-grid { + display: grid !important; + } + .d-sm-inline-grid { + display: inline-grid !important; + } + .d-sm-table { + display: table !important; + } + .d-sm-table-row { + display: table-row !important; + } + .d-sm-table-cell { + display: table-cell !important; + } + .d-sm-flex { + display: flex !important; + } + .d-sm-inline-flex { + display: inline-flex !important; + } + .d-sm-none { + display: none !important; + } + .flex-sm-fill { + flex: 1 1 auto !important; + } + .flex-sm-row { + flex-direction: row !important; + } + .flex-sm-column { + flex-direction: column !important; + } + .flex-sm-row-reverse { + flex-direction: row-reverse !important; + } + .flex-sm-column-reverse { + flex-direction: column-reverse !important; + } + .flex-sm-grow-0 { + flex-grow: 0 !important; + } + .flex-sm-grow-1 { + flex-grow: 1 !important; + } + .flex-sm-shrink-0 { + flex-shrink: 0 !important; + } + .flex-sm-shrink-1 { + flex-shrink: 1 !important; + } + .flex-sm-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-sm-start { + justify-content: flex-start !important; + } + .justify-content-sm-end { + justify-content: flex-end !important; + } + .justify-content-sm-center { + justify-content: center !important; + } + .justify-content-sm-between { + justify-content: space-between !important; + } + .justify-content-sm-around { + justify-content: space-around !important; + } + .justify-content-sm-evenly { + justify-content: space-evenly !important; + } + .align-items-sm-start { + align-items: flex-start !important; + } + .align-items-sm-end { + align-items: flex-end !important; + } + .align-items-sm-center { + align-items: center !important; + } + .align-items-sm-baseline { + align-items: baseline !important; + } + .align-items-sm-stretch { + align-items: stretch !important; + } + .align-content-sm-start { + align-content: flex-start !important; + } + .align-content-sm-end { + align-content: flex-end !important; + } + .align-content-sm-center { + align-content: center !important; + } + .align-content-sm-between { + align-content: space-between !important; + } + .align-content-sm-around { + align-content: space-around !important; + } + .align-content-sm-stretch { + align-content: stretch !important; + } + .align-self-sm-auto { + align-self: auto !important; + } + .align-self-sm-start { + align-self: flex-start !important; + } + .align-self-sm-end { + align-self: flex-end !important; + } + .align-self-sm-center { + align-self: center !important; + } + .align-self-sm-baseline { + align-self: baseline !important; + } + .align-self-sm-stretch { + align-self: stretch !important; + } + .order-sm-first { + order: -1 !important; + } + .order-sm-0 { + order: 0 !important; + } + .order-sm-1 { + order: 1 !important; + } + .order-sm-2 { + order: 2 !important; + } + .order-sm-3 { + order: 3 !important; + } + .order-sm-4 { + order: 4 !important; + } + .order-sm-5 { + order: 5 !important; + } + .order-sm-last { + order: 6 !important; + } + .m-sm-0 { + margin: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mx-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-sm-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-sm-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-sm-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-sm-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-sm-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-sm-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-sm-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-sm-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-sm-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-sm-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-sm-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-sm-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-sm-0 { + margin-top: 0 !important; + } + .mt-sm-1 { + margin-top: 0.25rem !important; + } + .mt-sm-2 { + margin-top: 0.5rem !important; + } + .mt-sm-3 { + margin-top: 1rem !important; + } + .mt-sm-4 { + margin-top: 1.5rem !important; + } + .mt-sm-5 { + margin-top: 3rem !important; + } + .mt-sm-auto { + margin-top: auto !important; + } + .me-sm-0 { + margin-right: 0 !important; + } + .me-sm-1 { + margin-right: 0.25rem !important; + } + .me-sm-2 { + margin-right: 0.5rem !important; + } + .me-sm-3 { + margin-right: 1rem !important; + } + .me-sm-4 { + margin-right: 1.5rem !important; + } + .me-sm-5 { + margin-right: 3rem !important; + } + .me-sm-auto { + margin-right: auto !important; + } + .mb-sm-0 { + margin-bottom: 0 !important; + } + .mb-sm-1 { + margin-bottom: 0.25rem !important; + } + .mb-sm-2 { + margin-bottom: 0.5rem !important; + } + .mb-sm-3 { + margin-bottom: 1rem !important; + } + .mb-sm-4 { + margin-bottom: 1.5rem !important; + } + .mb-sm-5 { + margin-bottom: 3rem !important; + } + .mb-sm-auto { + margin-bottom: auto !important; + } + .ms-sm-0 { + margin-left: 0 !important; + } + .ms-sm-1 { + margin-left: 0.25rem !important; + } + .ms-sm-2 { + margin-left: 0.5rem !important; + } + .ms-sm-3 { + margin-left: 1rem !important; + } + .ms-sm-4 { + margin-left: 1.5rem !important; + } + .ms-sm-5 { + margin-left: 3rem !important; + } + .ms-sm-auto { + margin-left: auto !important; + } + .p-sm-0 { + padding: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .px-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-sm-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-sm-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-sm-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-sm-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-sm-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-sm-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-sm-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-sm-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-sm-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-sm-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-sm-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-sm-0 { + padding-top: 0 !important; + } + .pt-sm-1 { + padding-top: 0.25rem !important; + } + .pt-sm-2 { + padding-top: 0.5rem !important; + } + .pt-sm-3 { + padding-top: 1rem !important; + } + .pt-sm-4 { + padding-top: 1.5rem !important; + } + .pt-sm-5 { + padding-top: 3rem !important; + } + .pe-sm-0 { + padding-right: 0 !important; + } + .pe-sm-1 { + padding-right: 0.25rem !important; + } + .pe-sm-2 { + padding-right: 0.5rem !important; + } + .pe-sm-3 { + padding-right: 1rem !important; + } + .pe-sm-4 { + padding-right: 1.5rem !important; + } + .pe-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-0 { + padding-bottom: 0 !important; + } + .pb-sm-1 { + padding-bottom: 0.25rem !important; + } + .pb-sm-2 { + padding-bottom: 0.5rem !important; + } + .pb-sm-3 { + padding-bottom: 1rem !important; + } + .pb-sm-4 { + padding-bottom: 1.5rem !important; + } + .pb-sm-5 { + padding-bottom: 3rem !important; + } + .ps-sm-0 { + padding-left: 0 !important; + } + .ps-sm-1 { + padding-left: 0.25rem !important; + } + .ps-sm-2 { + padding-left: 0.5rem !important; + } + .ps-sm-3 { + padding-left: 1rem !important; + } + .ps-sm-4 { + padding-left: 1.5rem !important; + } + .ps-sm-5 { + padding-left: 3rem !important; + } + .gap-sm-0 { + gap: 0 !important; + } + .gap-sm-1 { + gap: 0.25rem !important; + } + .gap-sm-2 { + gap: 0.5rem !important; + } + .gap-sm-3 { + gap: 1rem !important; + } + .gap-sm-4 { + gap: 1.5rem !important; + } + .gap-sm-5 { + gap: 3rem !important; + } + .row-gap-sm-0 { + row-gap: 0 !important; + } + .row-gap-sm-1 { + row-gap: 0.25rem !important; + } + .row-gap-sm-2 { + row-gap: 0.5rem !important; + } + .row-gap-sm-3 { + row-gap: 1rem !important; + } + .row-gap-sm-4 { + row-gap: 1.5rem !important; + } + .row-gap-sm-5 { + row-gap: 3rem !important; + } + .column-gap-sm-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-sm-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-sm-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-sm-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-sm-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-sm-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-sm-start { + text-align: left !important; + } + .text-sm-end { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} +@media (min-width: 768px) { + .float-md-start { + float: left !important; + } + .float-md-end { + float: right !important; + } + .float-md-none { + float: none !important; + } + .object-fit-md-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-md-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-md-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-md-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-md-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !important; + } + .d-md-grid { + display: grid !important; + } + .d-md-inline-grid { + display: inline-grid !important; + } + .d-md-table { + display: table !important; + } + .d-md-table-row { + display: table-row !important; + } + .d-md-table-cell { + display: table-cell !important; + } + .d-md-flex { + display: flex !important; + } + .d-md-inline-flex { + display: inline-flex !important; + } + .d-md-none { + display: none !important; + } + .flex-md-fill { + flex: 1 1 auto !important; + } + .flex-md-row { + flex-direction: row !important; + } + .flex-md-column { + flex-direction: column !important; + } + .flex-md-row-reverse { + flex-direction: row-reverse !important; + } + .flex-md-column-reverse { + flex-direction: column-reverse !important; + } + .flex-md-grow-0 { + flex-grow: 0 !important; + } + .flex-md-grow-1 { + flex-grow: 1 !important; + } + .flex-md-shrink-0 { + flex-shrink: 0 !important; + } + .flex-md-shrink-1 { + flex-shrink: 1 !important; + } + .flex-md-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-md-start { + justify-content: flex-start !important; + } + .justify-content-md-end { + justify-content: flex-end !important; + } + .justify-content-md-center { + justify-content: center !important; + } + .justify-content-md-between { + justify-content: space-between !important; + } + .justify-content-md-around { + justify-content: space-around !important; + } + .justify-content-md-evenly { + justify-content: space-evenly !important; + } + .align-items-md-start { + align-items: flex-start !important; + } + .align-items-md-end { + align-items: flex-end !important; + } + .align-items-md-center { + align-items: center !important; + } + .align-items-md-baseline { + align-items: baseline !important; + } + .align-items-md-stretch { + align-items: stretch !important; + } + .align-content-md-start { + align-content: flex-start !important; + } + .align-content-md-end { + align-content: flex-end !important; + } + .align-content-md-center { + align-content: center !important; + } + .align-content-md-between { + align-content: space-between !important; + } + .align-content-md-around { + align-content: space-around !important; + } + .align-content-md-stretch { + align-content: stretch !important; + } + .align-self-md-auto { + align-self: auto !important; + } + .align-self-md-start { + align-self: flex-start !important; + } + .align-self-md-end { + align-self: flex-end !important; + } + .align-self-md-center { + align-self: center !important; + } + .align-self-md-baseline { + align-self: baseline !important; + } + .align-self-md-stretch { + align-self: stretch !important; + } + .order-md-first { + order: -1 !important; + } + .order-md-0 { + order: 0 !important; + } + .order-md-1 { + order: 1 !important; + } + .order-md-2 { + order: 2 !important; + } + .order-md-3 { + order: 3 !important; + } + .order-md-4 { + order: 4 !important; + } + .order-md-5 { + order: 5 !important; + } + .order-md-last { + order: 6 !important; + } + .m-md-0 { + margin: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mx-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-md-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-md-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-md-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-md-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-md-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-md-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-md-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-md-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-md-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-md-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-md-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-md-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-md-0 { + margin-top: 0 !important; + } + .mt-md-1 { + margin-top: 0.25rem !important; + } + .mt-md-2 { + margin-top: 0.5rem !important; + } + .mt-md-3 { + margin-top: 1rem !important; + } + .mt-md-4 { + margin-top: 1.5rem !important; + } + .mt-md-5 { + margin-top: 3rem !important; + } + .mt-md-auto { + margin-top: auto !important; + } + .me-md-0 { + margin-right: 0 !important; + } + .me-md-1 { + margin-right: 0.25rem !important; + } + .me-md-2 { + margin-right: 0.5rem !important; + } + .me-md-3 { + margin-right: 1rem !important; + } + .me-md-4 { + margin-right: 1.5rem !important; + } + .me-md-5 { + margin-right: 3rem !important; + } + .me-md-auto { + margin-right: auto !important; + } + .mb-md-0 { + margin-bottom: 0 !important; + } + .mb-md-1 { + margin-bottom: 0.25rem !important; + } + .mb-md-2 { + margin-bottom: 0.5rem !important; + } + .mb-md-3 { + margin-bottom: 1rem !important; + } + .mb-md-4 { + margin-bottom: 1.5rem !important; + } + .mb-md-5 { + margin-bottom: 3rem !important; + } + .mb-md-auto { + margin-bottom: auto !important; + } + .ms-md-0 { + margin-left: 0 !important; + } + .ms-md-1 { + margin-left: 0.25rem !important; + } + .ms-md-2 { + margin-left: 0.5rem !important; + } + .ms-md-3 { + margin-left: 1rem !important; + } + .ms-md-4 { + margin-left: 1.5rem !important; + } + .ms-md-5 { + margin-left: 3rem !important; + } + .ms-md-auto { + margin-left: auto !important; + } + .p-md-0 { + padding: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .px-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-md-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-md-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-md-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-md-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-md-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-md-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-md-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-md-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-md-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-md-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-md-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-md-0 { + padding-top: 0 !important; + } + .pt-md-1 { + padding-top: 0.25rem !important; + } + .pt-md-2 { + padding-top: 0.5rem !important; + } + .pt-md-3 { + padding-top: 1rem !important; + } + .pt-md-4 { + padding-top: 1.5rem !important; + } + .pt-md-5 { + padding-top: 3rem !important; + } + .pe-md-0 { + padding-right: 0 !important; + } + .pe-md-1 { + padding-right: 0.25rem !important; + } + .pe-md-2 { + padding-right: 0.5rem !important; + } + .pe-md-3 { + padding-right: 1rem !important; + } + .pe-md-4 { + padding-right: 1.5rem !important; + } + .pe-md-5 { + padding-right: 3rem !important; + } + .pb-md-0 { + padding-bottom: 0 !important; + } + .pb-md-1 { + padding-bottom: 0.25rem !important; + } + .pb-md-2 { + padding-bottom: 0.5rem !important; + } + .pb-md-3 { + padding-bottom: 1rem !important; + } + .pb-md-4 { + padding-bottom: 1.5rem !important; + } + .pb-md-5 { + padding-bottom: 3rem !important; + } + .ps-md-0 { + padding-left: 0 !important; + } + .ps-md-1 { + padding-left: 0.25rem !important; + } + .ps-md-2 { + padding-left: 0.5rem !important; + } + .ps-md-3 { + padding-left: 1rem !important; + } + .ps-md-4 { + padding-left: 1.5rem !important; + } + .ps-md-5 { + padding-left: 3rem !important; + } + .gap-md-0 { + gap: 0 !important; + } + .gap-md-1 { + gap: 0.25rem !important; + } + .gap-md-2 { + gap: 0.5rem !important; + } + .gap-md-3 { + gap: 1rem !important; + } + .gap-md-4 { + gap: 1.5rem !important; + } + .gap-md-5 { + gap: 3rem !important; + } + .row-gap-md-0 { + row-gap: 0 !important; + } + .row-gap-md-1 { + row-gap: 0.25rem !important; + } + .row-gap-md-2 { + row-gap: 0.5rem !important; + } + .row-gap-md-3 { + row-gap: 1rem !important; + } + .row-gap-md-4 { + row-gap: 1.5rem !important; + } + .row-gap-md-5 { + row-gap: 3rem !important; + } + .column-gap-md-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-md-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-md-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-md-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-md-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-md-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-md-start { + text-align: left !important; + } + .text-md-end { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} +@media (min-width: 992px) { + .float-lg-start { + float: left !important; + } + .float-lg-end { + float: right !important; + } + .float-lg-none { + float: none !important; + } + .object-fit-lg-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-lg-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-lg-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-lg-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-lg-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !important; + } + .d-lg-grid { + display: grid !important; + } + .d-lg-inline-grid { + display: inline-grid !important; + } + .d-lg-table { + display: table !important; + } + .d-lg-table-row { + display: table-row !important; + } + .d-lg-table-cell { + display: table-cell !important; + } + .d-lg-flex { + display: flex !important; + } + .d-lg-inline-flex { + display: inline-flex !important; + } + .d-lg-none { + display: none !important; + } + .flex-lg-fill { + flex: 1 1 auto !important; + } + .flex-lg-row { + flex-direction: row !important; + } + .flex-lg-column { + flex-direction: column !important; + } + .flex-lg-row-reverse { + flex-direction: row-reverse !important; + } + .flex-lg-column-reverse { + flex-direction: column-reverse !important; + } + .flex-lg-grow-0 { + flex-grow: 0 !important; + } + .flex-lg-grow-1 { + flex-grow: 1 !important; + } + .flex-lg-shrink-0 { + flex-shrink: 0 !important; + } + .flex-lg-shrink-1 { + flex-shrink: 1 !important; + } + .flex-lg-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-lg-start { + justify-content: flex-start !important; + } + .justify-content-lg-end { + justify-content: flex-end !important; + } + .justify-content-lg-center { + justify-content: center !important; + } + .justify-content-lg-between { + justify-content: space-between !important; + } + .justify-content-lg-around { + justify-content: space-around !important; + } + .justify-content-lg-evenly { + justify-content: space-evenly !important; + } + .align-items-lg-start { + align-items: flex-start !important; + } + .align-items-lg-end { + align-items: flex-end !important; + } + .align-items-lg-center { + align-items: center !important; + } + .align-items-lg-baseline { + align-items: baseline !important; + } + .align-items-lg-stretch { + align-items: stretch !important; + } + .align-content-lg-start { + align-content: flex-start !important; + } + .align-content-lg-end { + align-content: flex-end !important; + } + .align-content-lg-center { + align-content: center !important; + } + .align-content-lg-between { + align-content: space-between !important; + } + .align-content-lg-around { + align-content: space-around !important; + } + .align-content-lg-stretch { + align-content: stretch !important; + } + .align-self-lg-auto { + align-self: auto !important; + } + .align-self-lg-start { + align-self: flex-start !important; + } + .align-self-lg-end { + align-self: flex-end !important; + } + .align-self-lg-center { + align-self: center !important; + } + .align-self-lg-baseline { + align-self: baseline !important; + } + .align-self-lg-stretch { + align-self: stretch !important; + } + .order-lg-first { + order: -1 !important; + } + .order-lg-0 { + order: 0 !important; + } + .order-lg-1 { + order: 1 !important; + } + .order-lg-2 { + order: 2 !important; + } + .order-lg-3 { + order: 3 !important; + } + .order-lg-4 { + order: 4 !important; + } + .order-lg-5 { + order: 5 !important; + } + .order-lg-last { + order: 6 !important; + } + .m-lg-0 { + margin: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mx-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-lg-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-lg-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-lg-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-lg-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-lg-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-lg-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-lg-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-lg-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-lg-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-lg-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-lg-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-lg-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-lg-0 { + margin-top: 0 !important; + } + .mt-lg-1 { + margin-top: 0.25rem !important; + } + .mt-lg-2 { + margin-top: 0.5rem !important; + } + .mt-lg-3 { + margin-top: 1rem !important; + } + .mt-lg-4 { + margin-top: 1.5rem !important; + } + .mt-lg-5 { + margin-top: 3rem !important; + } + .mt-lg-auto { + margin-top: auto !important; + } + .me-lg-0 { + margin-right: 0 !important; + } + .me-lg-1 { + margin-right: 0.25rem !important; + } + .me-lg-2 { + margin-right: 0.5rem !important; + } + .me-lg-3 { + margin-right: 1rem !important; + } + .me-lg-4 { + margin-right: 1.5rem !important; + } + .me-lg-5 { + margin-right: 3rem !important; + } + .me-lg-auto { + margin-right: auto !important; + } + .mb-lg-0 { + margin-bottom: 0 !important; + } + .mb-lg-1 { + margin-bottom: 0.25rem !important; + } + .mb-lg-2 { + margin-bottom: 0.5rem !important; + } + .mb-lg-3 { + margin-bottom: 1rem !important; + } + .mb-lg-4 { + margin-bottom: 1.5rem !important; + } + .mb-lg-5 { + margin-bottom: 3rem !important; + } + .mb-lg-auto { + margin-bottom: auto !important; + } + .ms-lg-0 { + margin-left: 0 !important; + } + .ms-lg-1 { + margin-left: 0.25rem !important; + } + .ms-lg-2 { + margin-left: 0.5rem !important; + } + .ms-lg-3 { + margin-left: 1rem !important; + } + .ms-lg-4 { + margin-left: 1.5rem !important; + } + .ms-lg-5 { + margin-left: 3rem !important; + } + .ms-lg-auto { + margin-left: auto !important; + } + .p-lg-0 { + padding: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .px-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-lg-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-lg-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-lg-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-lg-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-lg-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-lg-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-lg-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-lg-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-lg-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-lg-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-lg-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-lg-0 { + padding-top: 0 !important; + } + .pt-lg-1 { + padding-top: 0.25rem !important; + } + .pt-lg-2 { + padding-top: 0.5rem !important; + } + .pt-lg-3 { + padding-top: 1rem !important; + } + .pt-lg-4 { + padding-top: 1.5rem !important; + } + .pt-lg-5 { + padding-top: 3rem !important; + } + .pe-lg-0 { + padding-right: 0 !important; + } + .pe-lg-1 { + padding-right: 0.25rem !important; + } + .pe-lg-2 { + padding-right: 0.5rem !important; + } + .pe-lg-3 { + padding-right: 1rem !important; + } + .pe-lg-4 { + padding-right: 1.5rem !important; + } + .pe-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-0 { + padding-bottom: 0 !important; + } + .pb-lg-1 { + padding-bottom: 0.25rem !important; + } + .pb-lg-2 { + padding-bottom: 0.5rem !important; + } + .pb-lg-3 { + padding-bottom: 1rem !important; + } + .pb-lg-4 { + padding-bottom: 1.5rem !important; + } + .pb-lg-5 { + padding-bottom: 3rem !important; + } + .ps-lg-0 { + padding-left: 0 !important; + } + .ps-lg-1 { + padding-left: 0.25rem !important; + } + .ps-lg-2 { + padding-left: 0.5rem !important; + } + .ps-lg-3 { + padding-left: 1rem !important; + } + .ps-lg-4 { + padding-left: 1.5rem !important; + } + .ps-lg-5 { + padding-left: 3rem !important; + } + .gap-lg-0 { + gap: 0 !important; + } + .gap-lg-1 { + gap: 0.25rem !important; + } + .gap-lg-2 { + gap: 0.5rem !important; + } + .gap-lg-3 { + gap: 1rem !important; + } + .gap-lg-4 { + gap: 1.5rem !important; + } + .gap-lg-5 { + gap: 3rem !important; + } + .row-gap-lg-0 { + row-gap: 0 !important; + } + .row-gap-lg-1 { + row-gap: 0.25rem !important; + } + .row-gap-lg-2 { + row-gap: 0.5rem !important; + } + .row-gap-lg-3 { + row-gap: 1rem !important; + } + .row-gap-lg-4 { + row-gap: 1.5rem !important; + } + .row-gap-lg-5 { + row-gap: 3rem !important; + } + .column-gap-lg-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-lg-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-lg-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-lg-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-lg-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-lg-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-lg-start { + text-align: left !important; + } + .text-lg-end { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} +@media (min-width: 1200px) { + .float-xl-start { + float: left !important; + } + .float-xl-end { + float: right !important; + } + .float-xl-none { + float: none !important; + } + .object-fit-xl-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-xl-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-xl-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-xl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-xl-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !important; + } + .d-xl-grid { + display: grid !important; + } + .d-xl-inline-grid { + display: inline-grid !important; + } + .d-xl-table { + display: table !important; + } + .d-xl-table-row { + display: table-row !important; + } + .d-xl-table-cell { + display: table-cell !important; + } + .d-xl-flex { + display: flex !important; + } + .d-xl-inline-flex { + display: inline-flex !important; + } + .d-xl-none { + display: none !important; + } + .flex-xl-fill { + flex: 1 1 auto !important; + } + .flex-xl-row { + flex-direction: row !important; + } + .flex-xl-column { + flex-direction: column !important; + } + .flex-xl-row-reverse { + flex-direction: row-reverse !important; + } + .flex-xl-column-reverse { + flex-direction: column-reverse !important; + } + .flex-xl-grow-0 { + flex-grow: 0 !important; + } + .flex-xl-grow-1 { + flex-grow: 1 !important; + } + .flex-xl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xl-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xl-start { + justify-content: flex-start !important; + } + .justify-content-xl-end { + justify-content: flex-end !important; + } + .justify-content-xl-center { + justify-content: center !important; + } + .justify-content-xl-between { + justify-content: space-between !important; + } + .justify-content-xl-around { + justify-content: space-around !important; + } + .justify-content-xl-evenly { + justify-content: space-evenly !important; + } + .align-items-xl-start { + align-items: flex-start !important; + } + .align-items-xl-end { + align-items: flex-end !important; + } + .align-items-xl-center { + align-items: center !important; + } + .align-items-xl-baseline { + align-items: baseline !important; + } + .align-items-xl-stretch { + align-items: stretch !important; + } + .align-content-xl-start { + align-content: flex-start !important; + } + .align-content-xl-end { + align-content: flex-end !important; + } + .align-content-xl-center { + align-content: center !important; + } + .align-content-xl-between { + align-content: space-between !important; + } + .align-content-xl-around { + align-content: space-around !important; + } + .align-content-xl-stretch { + align-content: stretch !important; + } + .align-self-xl-auto { + align-self: auto !important; + } + .align-self-xl-start { + align-self: flex-start !important; + } + .align-self-xl-end { + align-self: flex-end !important; + } + .align-self-xl-center { + align-self: center !important; + } + .align-self-xl-baseline { + align-self: baseline !important; + } + .align-self-xl-stretch { + align-self: stretch !important; + } + .order-xl-first { + order: -1 !important; + } + .order-xl-0 { + order: 0 !important; + } + .order-xl-1 { + order: 1 !important; + } + .order-xl-2 { + order: 2 !important; + } + .order-xl-3 { + order: 3 !important; + } + .order-xl-4 { + order: 4 !important; + } + .order-xl-5 { + order: 5 !important; + } + .order-xl-last { + order: 6 !important; + } + .m-xl-0 { + margin: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mx-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; } - .modal-content { - -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); - box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + .mx-xl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; } - .modal-sm { - width: 300px; + .mx-xl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; } -} -@media (min-width: 992px) { - .modal-lg { - width: 900px; + .mx-xl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; } -} -.tooltip { - position: absolute; - z-index: 1070; - display: block; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 12px; - font-weight: normal; - line-height: 1.4; - visibility: visible; - filter: alpha(opacity=0); - opacity: 0; -} -.tooltip.in { - filter: alpha(opacity=90); - 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-inner { - max-width: 200px; - padding: 3px 8px; - color: #fff; - text-align: center; - text-decoration: none; - background-color: #000; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.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; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1060; - display: none; - max-width: 276px; - padding: 1px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - font-weight: normal; - line-height: 1.42857143; - text-align: left; - white-space: normal; - background-color: #fff; - -webkit-background-clip: padding-box; - background-clip: padding-box; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, .2); - border-radius: 6px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); - 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-title { - padding: 8px 14px; - margin: 0; - font-size: 14px; - background-color: #f7f7f7; - border-bottom: 1px solid #ebebeb; - border-radius: 5px 5px 0 0; -} -.popover-content { - padding: 9px 14px; -} -.popover > .arrow, -.popover > .arrow:after { - position: absolute; - display: block; - width: 0; - height: 0; - border-color: transparent; - border-style: solid; -} -.popover > .arrow { - border-width: 11px; -} -.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; -} -.carousel { - position: relative; -} -.carousel-inner { - position: relative; - width: 100%; - overflow: hidden; -} -.carousel-inner > .item { - position: relative; - display: none; - -webkit-transition: .6s ease-in-out left; - -o-transition: .6s ease-in-out left; - 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 { - -webkit-transition: -webkit-transform .6s ease-in-out; - -o-transition: -o-transform .6s ease-in-out; - transition: transform .6s ease-in-out; - - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-perspective: 1000; - perspective: 1000; + .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; } - .carousel-inner > .item.next, - .carousel-inner > .item.active.right { - left: 0; - -webkit-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); + .my-xl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; } - .carousel-inner > .item.prev, - .carousel-inner > .item.active.left { - left: 0; - -webkit-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); + .my-xl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; } - .carousel-inner > .item.next.left, - .carousel-inner > .item.prev.right, - .carousel-inner > .item.active { - left: 0; - -webkit-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); + .my-xl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; } -} -.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: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, .6); - filter: alpha(opacity=50); - opacity: .5; -} -.carousel-control.left { - background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(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: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); - background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); - background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(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: #fff; - text-decoration: none; - filter: alpha(opacity=90); - outline: 0; - opacity: .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; -} -.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; - margin-top: -10px; - font-family: serif; -} -.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 #fff; - border-radius: 10px; -} -.carousel-indicators .active { - width: 12px; - height: 12px; - margin: 0; - background-color: #fff; -} -.carousel-caption { - position: absolute; - right: 15%; - bottom: 20px; - left: 15%; - z-index: 10; - padding-top: 20px; - padding-bottom: 20px; - color: #fff; - text-align: center; - text-shadow: 0 1px 2px rgba(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: -15px; - font-size: 30px; - } - .carousel-control .glyphicon-chevron-left, - .carousel-control .icon-prev { - margin-left: -15px; - } - .carousel-control .glyphicon-chevron-right, - .carousel-control .icon-next { - margin-right: -15px; - } - .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-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-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; - visibility: hidden !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; + .my-xl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xl-0 { + margin-top: 0 !important; + } + .mt-xl-1 { + margin-top: 0.25rem !important; + } + .mt-xl-2 { + margin-top: 0.5rem !important; + } + .mt-xl-3 { + margin-top: 1rem !important; + } + .mt-xl-4 { + margin-top: 1.5rem !important; + } + .mt-xl-5 { + margin-top: 3rem !important; + } + .mt-xl-auto { + margin-top: auto !important; + } + .me-xl-0 { + margin-right: 0 !important; + } + .me-xl-1 { + margin-right: 0.25rem !important; + } + .me-xl-2 { + margin-right: 0.5rem !important; + } + .me-xl-3 { + margin-right: 1rem !important; + } + .me-xl-4 { + margin-right: 1.5rem !important; + } + .me-xl-5 { + margin-right: 3rem !important; + } + .me-xl-auto { + margin-right: auto !important; + } + .mb-xl-0 { + margin-bottom: 0 !important; + } + .mb-xl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xl-3 { + margin-bottom: 1rem !important; + } + .mb-xl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xl-5 { + margin-bottom: 3rem !important; + } + .mb-xl-auto { + margin-bottom: auto !important; + } + .ms-xl-0 { + margin-left: 0 !important; + } + .ms-xl-1 { + margin-left: 0.25rem !important; + } + .ms-xl-2 { + margin-left: 0.5rem !important; + } + .ms-xl-3 { + margin-left: 1rem !important; + } + .ms-xl-4 { + margin-left: 1.5rem !important; + } + .ms-xl-5 { + margin-left: 3rem !important; + } + .ms-xl-auto { + margin-left: auto !important; + } + .p-xl-0 { + padding: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .px-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xl-0 { + padding-top: 0 !important; + } + .pt-xl-1 { + padding-top: 0.25rem !important; + } + .pt-xl-2 { + padding-top: 0.5rem !important; + } + .pt-xl-3 { + padding-top: 1rem !important; + } + .pt-xl-4 { + padding-top: 1.5rem !important; + } + .pt-xl-5 { + padding-top: 3rem !important; + } + .pe-xl-0 { + padding-right: 0 !important; } - table.visible-xs { - display: table; + .pe-xl-1 { + padding-right: 0.25rem !important; } - tr.visible-xs { - display: table-row !important; + .pe-xl-2 { + padding-right: 0.5rem !important; } - th.visible-xs, - td.visible-xs { - display: table-cell !important; + .pe-xl-3 { + padding-right: 1rem !important; } -} -@media (max-width: 767px) { - .visible-xs-block { - display: block !important; + .pe-xl-4 { + padding-right: 1.5rem !important; } -} -@media (max-width: 767px) { - .visible-xs-inline { - display: inline !important; + .pe-xl-5 { + padding-right: 3rem !important; } -} -@media (max-width: 767px) { - .visible-xs-inline-block { - display: inline-block !important; + .pb-xl-0 { + padding-bottom: 0 !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm { - display: block !important; + .pb-xl-1 { + padding-bottom: 0.25rem !important; } - table.visible-sm { - display: table; + .pb-xl-2 { + padding-bottom: 0.5rem !important; } - tr.visible-sm { - display: table-row !important; + .pb-xl-3 { + padding-bottom: 1rem !important; } - th.visible-sm, - td.visible-sm { - display: table-cell !important; + .pb-xl-4 { + padding-bottom: 1.5rem !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-block { - display: block !important; + .pb-xl-5 { + padding-bottom: 3rem !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline { - display: inline !important; + .ps-xl-0 { + padding-left: 0 !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .visible-sm-inline-block { - display: inline-block !important; + .ps-xl-1 { + padding-left: 0.25rem !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md { - display: block !important; + .ps-xl-2 { + padding-left: 0.5rem !important; } - table.visible-md { - display: table; + .ps-xl-3 { + padding-left: 1rem !important; } - tr.visible-md { - display: table-row !important; + .ps-xl-4 { + padding-left: 1.5rem !important; } - th.visible-md, - td.visible-md { - display: table-cell !important; + .ps-xl-5 { + padding-left: 3rem !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-block { - display: block !important; + .gap-xl-0 { + gap: 0 !important; + } + .gap-xl-1 { + gap: 0.25rem !important; + } + .gap-xl-2 { + gap: 0.5rem !important; + } + .gap-xl-3 { + gap: 1rem !important; + } + .gap-xl-4 { + gap: 1.5rem !important; + } + .gap-xl-5 { + gap: 3rem !important; + } + .row-gap-xl-0 { + row-gap: 0 !important; + } + .row-gap-xl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xl-3 { + row-gap: 1rem !important; + } + .row-gap-xl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xl-5 { + row-gap: 3rem !important; + } + .column-gap-xl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-xl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-xl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-xl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-xl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-xl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-xl-start { + text-align: left !important; + } + .text-xl-end { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; } } -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline { +@media (min-width: 1400px) { + .float-xxl-start { + float: left !important; + } + .float-xxl-end { + float: right !important; + } + .float-xxl-none { + float: none !important; + } + .object-fit-xxl-contain { + -o-object-fit: contain !important; + object-fit: contain !important; + } + .object-fit-xxl-cover { + -o-object-fit: cover !important; + object-fit: cover !important; + } + .object-fit-xxl-fill { + -o-object-fit: fill !important; + object-fit: fill !important; + } + .object-fit-xxl-scale { + -o-object-fit: scale-down !important; + object-fit: scale-down !important; + } + .object-fit-xxl-none { + -o-object-fit: none !important; + object-fit: none !important; + } + .d-xxl-inline { display: inline !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .visible-md-inline-block { + .d-xxl-inline-block { display: inline-block !important; } -} -/*@media (min-width: 1200px) { - .visible-lg { + .d-xxl-block { display: block !important; } - table.visible-lg { - display: table; + .d-xxl-grid { + display: grid !important; } - tr.visible-lg { + .d-xxl-inline-grid { + display: inline-grid !important; + } + .d-xxl-table { + display: table !important; + } + .d-xxl-table-row { display: table-row !important; } - th.visible-lg, - td.visible-lg { + .d-xxl-table-cell { display: table-cell !important; } -} -@media (min-width: 1200px) { - .visible-lg-block { - display: block !important; - } -} -@media (min-width: 1200px) { - .visible-lg-inline { - display: inline !important; + .d-xxl-flex { + display: flex !important; } -} -@media (min-width: 1200px) { - .visible-lg-inline-block { - display: inline-block !important; + .d-xxl-inline-flex { + display: inline-flex !important; } -}*/ -@media (max-width: 767px) { - .hidden-xs { + .d-xxl-none { display: none !important; } -} -@media (min-width: 768px) and (max-width: 991px) { - .hidden-sm { - display: none !important; + .flex-xxl-fill { + flex: 1 1 auto !important; } -} -@media (min-width: 992px) and (max-width: 1199px) { - .hidden-md { - display: none !important; + .flex-xxl-row { + flex-direction: row !important; } -} -/*@media (min-width: 1200px) { - .hidden-lg { - display: none !important; + .flex-xxl-column { + flex-direction: column !important; } -}*/ -.visible-print { - display: none !important; -} -@media print { - .visible-print { - display: block !important; + .flex-xxl-row-reverse { + flex-direction: row-reverse !important; } - table.visible-print { - display: table; + .flex-xxl-column-reverse { + flex-direction: column-reverse !important; } - tr.visible-print { - display: table-row !important; + .flex-xxl-grow-0 { + flex-grow: 0 !important; } - th.visible-print, - td.visible-print { - display: table-cell !important; + .flex-xxl-grow-1 { + flex-grow: 1 !important; } -} -.visible-print-block { - display: none !important; -} -@media print { - .visible-print-block { - display: block !important; + .flex-xxl-shrink-0 { + flex-shrink: 0 !important; + } + .flex-xxl-shrink-1 { + flex-shrink: 1 !important; + } + .flex-xxl-wrap { + flex-wrap: wrap !important; + } + .flex-xxl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xxl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .justify-content-xxl-start { + justify-content: flex-start !important; + } + .justify-content-xxl-end { + justify-content: flex-end !important; + } + .justify-content-xxl-center { + justify-content: center !important; + } + .justify-content-xxl-between { + justify-content: space-between !important; + } + .justify-content-xxl-around { + justify-content: space-around !important; + } + .justify-content-xxl-evenly { + justify-content: space-evenly !important; + } + .align-items-xxl-start { + align-items: flex-start !important; + } + .align-items-xxl-end { + align-items: flex-end !important; + } + .align-items-xxl-center { + align-items: center !important; + } + .align-items-xxl-baseline { + align-items: baseline !important; + } + .align-items-xxl-stretch { + align-items: stretch !important; + } + .align-content-xxl-start { + align-content: flex-start !important; + } + .align-content-xxl-end { + align-content: flex-end !important; + } + .align-content-xxl-center { + align-content: center !important; + } + .align-content-xxl-between { + align-content: space-between !important; + } + .align-content-xxl-around { + align-content: space-around !important; + } + .align-content-xxl-stretch { + align-content: stretch !important; + } + .align-self-xxl-auto { + align-self: auto !important; + } + .align-self-xxl-start { + align-self: flex-start !important; + } + .align-self-xxl-end { + align-self: flex-end !important; + } + .align-self-xxl-center { + align-self: center !important; + } + .align-self-xxl-baseline { + align-self: baseline !important; + } + .align-self-xxl-stretch { + align-self: stretch !important; + } + .order-xxl-first { + order: -1 !important; + } + .order-xxl-0 { + order: 0 !important; + } + .order-xxl-1 { + order: 1 !important; + } + .order-xxl-2 { + order: 2 !important; + } + .order-xxl-3 { + order: 3 !important; + } + .order-xxl-4 { + order: 4 !important; + } + .order-xxl-5 { + order: 5 !important; + } + .order-xxl-last { + order: 6 !important; + } + .m-xxl-0 { + margin: 0 !important; + } + .m-xxl-1 { + margin: 0.25rem !important; + } + .m-xxl-2 { + margin: 0.5rem !important; + } + .m-xxl-3 { + margin: 1rem !important; + } + .m-xxl-4 { + margin: 1.5rem !important; + } + .m-xxl-5 { + margin: 3rem !important; + } + .m-xxl-auto { + margin: auto !important; + } + .mx-xxl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .mx-xxl-1 { + margin-right: 0.25rem !important; + margin-left: 0.25rem !important; + } + .mx-xxl-2 { + margin-right: 0.5rem !important; + margin-left: 0.5rem !important; + } + .mx-xxl-3 { + margin-right: 1rem !important; + margin-left: 1rem !important; + } + .mx-xxl-4 { + margin-right: 1.5rem !important; + margin-left: 1.5rem !important; + } + .mx-xxl-5 { + margin-right: 3rem !important; + margin-left: 3rem !important; + } + .mx-xxl-auto { + margin-right: auto !important; + margin-left: auto !important; + } + .my-xxl-0 { + margin-top: 0 !important; + margin-bottom: 0 !important; + } + .my-xxl-1 { + margin-top: 0.25rem !important; + margin-bottom: 0.25rem !important; + } + .my-xxl-2 { + margin-top: 0.5rem !important; + margin-bottom: 0.5rem !important; + } + .my-xxl-3 { + margin-top: 1rem !important; + margin-bottom: 1rem !important; + } + .my-xxl-4 { + margin-top: 1.5rem !important; + margin-bottom: 1.5rem !important; + } + .my-xxl-5 { + margin-top: 3rem !important; + margin-bottom: 3rem !important; + } + .my-xxl-auto { + margin-top: auto !important; + margin-bottom: auto !important; + } + .mt-xxl-0 { + margin-top: 0 !important; + } + .mt-xxl-1 { + margin-top: 0.25rem !important; + } + .mt-xxl-2 { + margin-top: 0.5rem !important; + } + .mt-xxl-3 { + margin-top: 1rem !important; + } + .mt-xxl-4 { + margin-top: 1.5rem !important; + } + .mt-xxl-5 { + margin-top: 3rem !important; + } + .mt-xxl-auto { + margin-top: auto !important; + } + .me-xxl-0 { + margin-right: 0 !important; + } + .me-xxl-1 { + margin-right: 0.25rem !important; + } + .me-xxl-2 { + margin-right: 0.5rem !important; + } + .me-xxl-3 { + margin-right: 1rem !important; + } + .me-xxl-4 { + margin-right: 1.5rem !important; + } + .me-xxl-5 { + margin-right: 3rem !important; + } + .me-xxl-auto { + margin-right: auto !important; + } + .mb-xxl-0 { + margin-bottom: 0 !important; + } + .mb-xxl-1 { + margin-bottom: 0.25rem !important; + } + .mb-xxl-2 { + margin-bottom: 0.5rem !important; + } + .mb-xxl-3 { + margin-bottom: 1rem !important; + } + .mb-xxl-4 { + margin-bottom: 1.5rem !important; + } + .mb-xxl-5 { + margin-bottom: 3rem !important; + } + .mb-xxl-auto { + margin-bottom: auto !important; + } + .ms-xxl-0 { + margin-left: 0 !important; + } + .ms-xxl-1 { + margin-left: 0.25rem !important; + } + .ms-xxl-2 { + margin-left: 0.5rem !important; + } + .ms-xxl-3 { + margin-left: 1rem !important; + } + .ms-xxl-4 { + margin-left: 1.5rem !important; + } + .ms-xxl-5 { + margin-left: 3rem !important; + } + .ms-xxl-auto { + margin-left: auto !important; + } + .p-xxl-0 { + padding: 0 !important; + } + .p-xxl-1 { + padding: 0.25rem !important; + } + .p-xxl-2 { + padding: 0.5rem !important; + } + .p-xxl-3 { + padding: 1rem !important; + } + .p-xxl-4 { + padding: 1.5rem !important; + } + .p-xxl-5 { + padding: 3rem !important; + } + .px-xxl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .px-xxl-1 { + padding-right: 0.25rem !important; + padding-left: 0.25rem !important; + } + .px-xxl-2 { + padding-right: 0.5rem !important; + padding-left: 0.5rem !important; + } + .px-xxl-3 { + padding-right: 1rem !important; + padding-left: 1rem !important; + } + .px-xxl-4 { + padding-right: 1.5rem !important; + padding-left: 1.5rem !important; + } + .px-xxl-5 { + padding-right: 3rem !important; + padding-left: 3rem !important; + } + .py-xxl-0 { + padding-top: 0 !important; + padding-bottom: 0 !important; + } + .py-xxl-1 { + padding-top: 0.25rem !important; + padding-bottom: 0.25rem !important; + } + .py-xxl-2 { + padding-top: 0.5rem !important; + padding-bottom: 0.5rem !important; + } + .py-xxl-3 { + padding-top: 1rem !important; + padding-bottom: 1rem !important; + } + .py-xxl-4 { + padding-top: 1.5rem !important; + padding-bottom: 1.5rem !important; + } + .py-xxl-5 { + padding-top: 3rem !important; + padding-bottom: 3rem !important; + } + .pt-xxl-0 { + padding-top: 0 !important; + } + .pt-xxl-1 { + padding-top: 0.25rem !important; + } + .pt-xxl-2 { + padding-top: 0.5rem !important; + } + .pt-xxl-3 { + padding-top: 1rem !important; + } + .pt-xxl-4 { + padding-top: 1.5rem !important; + } + .pt-xxl-5 { + padding-top: 3rem !important; + } + .pe-xxl-0 { + padding-right: 0 !important; + } + .pe-xxl-1 { + padding-right: 0.25rem !important; + } + .pe-xxl-2 { + padding-right: 0.5rem !important; + } + .pe-xxl-3 { + padding-right: 1rem !important; + } + .pe-xxl-4 { + padding-right: 1.5rem !important; + } + .pe-xxl-5 { + padding-right: 3rem !important; + } + .pb-xxl-0 { + padding-bottom: 0 !important; + } + .pb-xxl-1 { + padding-bottom: 0.25rem !important; + } + .pb-xxl-2 { + padding-bottom: 0.5rem !important; + } + .pb-xxl-3 { + padding-bottom: 1rem !important; + } + .pb-xxl-4 { + padding-bottom: 1.5rem !important; + } + .pb-xxl-5 { + padding-bottom: 3rem !important; + } + .ps-xxl-0 { + padding-left: 0 !important; + } + .ps-xxl-1 { + padding-left: 0.25rem !important; + } + .ps-xxl-2 { + padding-left: 0.5rem !important; + } + .ps-xxl-3 { + padding-left: 1rem !important; + } + .ps-xxl-4 { + padding-left: 1.5rem !important; + } + .ps-xxl-5 { + padding-left: 3rem !important; + } + .gap-xxl-0 { + gap: 0 !important; + } + .gap-xxl-1 { + gap: 0.25rem !important; + } + .gap-xxl-2 { + gap: 0.5rem !important; + } + .gap-xxl-3 { + gap: 1rem !important; + } + .gap-xxl-4 { + gap: 1.5rem !important; + } + .gap-xxl-5 { + gap: 3rem !important; + } + .row-gap-xxl-0 { + row-gap: 0 !important; + } + .row-gap-xxl-1 { + row-gap: 0.25rem !important; + } + .row-gap-xxl-2 { + row-gap: 0.5rem !important; + } + .row-gap-xxl-3 { + row-gap: 1rem !important; + } + .row-gap-xxl-4 { + row-gap: 1.5rem !important; + } + .row-gap-xxl-5 { + row-gap: 3rem !important; + } + .column-gap-xxl-0 { + -moz-column-gap: 0 !important; + column-gap: 0 !important; + } + .column-gap-xxl-1 { + -moz-column-gap: 0.25rem !important; + column-gap: 0.25rem !important; + } + .column-gap-xxl-2 { + -moz-column-gap: 0.5rem !important; + column-gap: 0.5rem !important; + } + .column-gap-xxl-3 { + -moz-column-gap: 1rem !important; + column-gap: 1rem !important; + } + .column-gap-xxl-4 { + -moz-column-gap: 1.5rem !important; + column-gap: 1.5rem !important; + } + .column-gap-xxl-5 { + -moz-column-gap: 3rem !important; + column-gap: 3rem !important; + } + .text-xxl-start { + text-align: left !important; + } + .text-xxl-end { + text-align: right !important; + } + .text-xxl-center { + text-align: center !important; } } -.visible-print-inline { - display: none !important; +@media (min-width: 1200px) { + .fs-1 { + font-size: 2.5rem !important; + } + .fs-2 { + font-size: 2rem !important; + } + .fs-3 { + font-size: 1.75rem !important; + } + .fs-4 { + font-size: 1.5rem !important; + } } @media print { - .visible-print-inline { + .d-print-inline { display: inline !important; } -} -.visible-print-inline-block { - display: none !important; -} -@media print { - .visible-print-inline-block { + .d-print-inline-block { display: inline-block !important; } -} -@media print { - .hidden-print { + .d-print-block { + display: block !important; + } + .d-print-grid { + display: grid !important; + } + .d-print-inline-grid { + display: inline-grid !important; + } + .d-print-table { + display: table !important; + } + .d-print-table-row { + display: table-row !important; + } + .d-print-table-cell { + display: table-cell !important; + } + .d-print-flex { + display: flex !important; + } + .d-print-inline-flex { + display: inline-flex !important; + } + .d-print-none { display: none !important; } } + +/*# sourceMappingURL=bootstrap.css.map */ \ No newline at end of file diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 4a4ca865d67e86f961bc6e2ef00bffa4e34bb9ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20335 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

    !oRptb@n+ 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 diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 25691af8..00000000 --- a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index 67fa00bf83801d2fa568546b982c80d27f6ef74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41280 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

    PBK;&Wcg|NX{>QR@W3{K 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 diff --git a/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff b/mamweb/static/bootstrap/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 8c54182aa5d4d1ab3c9171976b615c1dcb1dc187..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23320 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 mX4Rts e[k] + }); + } } } - - return false // explicit for ie8 ( ._.) + n.default = e; + return Object.freeze(n); } - // http://blog.alexmaccaw.com/css-transitions - $.fn.emulateTransitionEnd = function (duration) { - var called = false - var $el = this - $(this).one('bsTransitionEnd', function () { called = true }) - var callback = function () { if (!called) $($el).trigger($.support.transition.end) } - setTimeout(callback, duration) - return this - } + const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper); - $(function () { - $.support.transition = transitionEnd() + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/data.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - if (!$.support.transition) return + /** + * Constants + */ - $.event.special.bsTransitionEnd = { - bindType: $.support.transition.end, - delegateType: $.support.transition.end, - handle: function (e) { - if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments) + const elementMap = new Map(); + const Data = { + set(element, key, instance) { + if (!elementMap.has(element)) { + elementMap.set(element, new Map()); } - } - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: alert.js v3.3.1 - * http://getbootstrap.com/javascript/#alerts - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // ALERT CLASS DEFINITION - // ====================== - - var dismiss = '[data-dismiss="alert"]' - var Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.VERSION = '3.3.1' - - Alert.TRANSITION_DURATION = 150 - - Alert.prototype.close = function (e) { - var $this = $(this) - var selector = $this.attr('data-target') + const instanceMap = elementMap.get(element); + + // make it clear we only want one instance per element + // can be removed later when multiple key/instances are fine to be used + if (!instanceMap.has(key) && instanceMap.size !== 0) { + // eslint-disable-next-line no-console + console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); + return; + } + instanceMap.set(key, instance); + }, + get(element, key) { + if (elementMap.has(element)) { + return elementMap.get(element).get(key) || null; + } + return null; + }, + remove(element, key) { + if (!elementMap.has(element)) { + return; + } + const instanceMap = elementMap.get(element); + instanceMap.delete(key); - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7 + // free up element references if there are no instances left for an element + if (instanceMap.size === 0) { + elementMap.delete(element); + } } - - var $parent = $(selector) - - if (e) e.preventDefault() - - if (!$parent.length) { - $parent = $this.closest('.alert') + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/index.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + const MAX_UID = 1000000; + const MILLISECONDS_MULTIPLIER = 1000; + const TRANSITION_END = 'transitionend'; + + /** + * Properly escape IDs selectors to handle weird IDs + * @param {string} selector + * @returns {string} + */ + const parseSelector = selector => { + if (selector && window.CSS && window.CSS.escape) { + // document.querySelector needs escaping to handle IDs (html5+) containing for instance / + selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`); } + return selector; + }; - $parent.trigger(e = $.Event('close.bs.alert')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - // detach from parent, fire event then clean up data - $parent.detach().trigger('closed.bs.alert').remove() + // Shout-out Angus Croll (https://goo.gl/pxwQGp) + const toType = object => { + if (object === null || object === undefined) { + return `${object}`; + } + return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase(); + }; + + /** + * Public Util API + */ + + const getUID = prefix => { + do { + prefix += Math.floor(Math.random() * MAX_UID); + } while (document.getElementById(prefix)); + return prefix; + }; + const getTransitionDurationFromElement = element => { + if (!element) { + return 0; } - $.support.transition && $parent.hasClass('fade') ? - $parent - .one('bsTransitionEnd', removeElement) - .emulateTransitionEnd(Alert.TRANSITION_DURATION) : - removeElement() - } - - - // ALERT PLUGIN DEFINITION - // ======================= - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.alert') - - if (!data) $this.data('bs.alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - var old = $.fn.alert - - $.fn.alert = Plugin - $.fn.alert.Constructor = Alert - - - // ALERT NO CONFLICT - // ================= - - $.fn.alert.noConflict = function () { - $.fn.alert = old - return this - } - - - // ALERT DATA-API - // ============== - - $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: button.js v3.3.1 - * http://getbootstrap.com/javascript/#buttons - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // BUTTON PUBLIC CLASS DEFINITION - // ============================== - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Button.DEFAULTS, options) - this.isLoading = false - } - - Button.VERSION = '3.3.1' - - Button.DEFAULTS = { - loadingText: 'loading...' - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - var $el = this.$element - var val = $el.is('input') ? 'val' : 'html' - var data = $el.data() - - state = state + 'Text' - - if (data.resetText == null) $el.data('resetText', $el[val]()) - - // push to event loop to allow forms to submit - setTimeout($.proxy(function () { - $el[val](data[state] == null ? this.options[state] : data[state]) + // Get transition-duration of the element + let { + transitionDuration, + transitionDelay + } = window.getComputedStyle(element); + const floatTransitionDuration = Number.parseFloat(transitionDuration); + const floatTransitionDelay = Number.parseFloat(transitionDelay); + + // Return 0 if element or transition duration is not found + if (!floatTransitionDuration && !floatTransitionDelay) { + return 0; + } - if (state == 'loadingText') { - this.isLoading = true - $el.addClass(d).attr(d, d) - } else if (this.isLoading) { - this.isLoading = false - $el.removeClass(d).removeAttr(d) + // If multiple durations are defined, take the first + transitionDuration = transitionDuration.split(',')[0]; + transitionDelay = transitionDelay.split(',')[0]; + return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; + }; + const triggerTransitionEnd = element => { + element.dispatchEvent(new Event(TRANSITION_END)); + }; + const isElement = object => { + if (!object || typeof object !== 'object') { + return false; + } + if (typeof object.jquery !== 'undefined') { + object = object[0]; + } + return typeof object.nodeType !== 'undefined'; + }; + const getElement = object => { + // it's a jQuery object or a node element + if (isElement(object)) { + return object.jquery ? object[0] : object; + } + if (typeof object === 'string' && object.length > 0) { + return document.querySelector(parseSelector(object)); + } + return null; + }; + const isVisible = element => { + if (!isElement(element) || element.getClientRects().length === 0) { + return false; + } + const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'; + // Handle `details` element as its content may falsie appear visible when it is closed + const closedDetails = element.closest('details:not([open])'); + if (!closedDetails) { + return elementIsVisible; + } + if (closedDetails !== element) { + const summary = element.closest('summary'); + if (summary && summary.parentNode !== closedDetails) { + return false; } - }, this), 0) - } + if (summary === null) { + return false; + } + } + return elementIsVisible; + }; + const isDisabled = element => { + if (!element || element.nodeType !== Node.ELEMENT_NODE) { + return true; + } + if (element.classList.contains('disabled')) { + return true; + } + if (typeof element.disabled !== 'undefined') { + return element.disabled; + } + return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'; + }; + const findShadowRoot = element => { + if (!document.documentElement.attachShadow) { + return null; + } - Button.prototype.toggle = function () { - var changed = true - var $parent = this.$element.closest('[data-toggle="buttons"]') + // Can find the shadow root otherwise it'll return the document + if (typeof element.getRootNode === 'function') { + const root = element.getRootNode(); + return root instanceof ShadowRoot ? root : null; + } + if (element instanceof ShadowRoot) { + return element; + } - if ($parent.length) { - var $input = this.$element.find('input') - if ($input.prop('type') == 'radio') { - if ($input.prop('checked') && this.$element.hasClass('active')) changed = false - else $parent.find('.active').removeClass('active') + // when we don't find a shadow root + if (!element.parentNode) { + return null; + } + return findShadowRoot(element.parentNode); + }; + const noop = () => {}; + + /** + * Trick to restart an element's animation + * + * @param {HTMLElement} element + * @return void + * + * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation + */ + const reflow = element => { + element.offsetHeight; // eslint-disable-line no-unused-expressions + }; + + const getjQuery = () => { + if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) { + return window.jQuery; + } + return null; + }; + const DOMContentLoadedCallbacks = []; + const onDOMContentLoaded = callback => { + if (document.readyState === 'loading') { + // add listener on the first call when the document is in loading state + if (!DOMContentLoadedCallbacks.length) { + document.addEventListener('DOMContentLoaded', () => { + for (const callback of DOMContentLoadedCallbacks) { + callback(); + } + }); } - if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change') + DOMContentLoadedCallbacks.push(callback); } else { - this.$element.attr('aria-pressed', !this.$element.hasClass('active')) + callback(); } - - if (changed) this.$element.toggleClass('active') + }; + const isRTL = () => document.documentElement.dir === 'rtl'; + const defineJQueryPlugin = plugin => { + onDOMContentLoaded(() => { + const $ = getjQuery(); + /* istanbul ignore if */ + if ($) { + const name = plugin.NAME; + const JQUERY_NO_CONFLICT = $.fn[name]; + $.fn[name] = plugin.jQueryInterface; + $.fn[name].Constructor = plugin; + $.fn[name].noConflict = () => { + $.fn[name] = JQUERY_NO_CONFLICT; + return plugin.jQueryInterface; + }; + } + }); + }; + const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { + return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue; + }; + const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { + if (!waitForTransition) { + execute(callback); + return; + } + const durationPadding = 5; + const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding; + let called = false; + const handler = ({ + target + }) => { + if (target !== transitionElement) { + return; + } + called = true; + transitionElement.removeEventListener(TRANSITION_END, handler); + execute(callback); + }; + transitionElement.addEventListener(TRANSITION_END, handler); + setTimeout(() => { + if (!called) { + triggerTransitionEnd(transitionElement); + } + }, emulatedDuration); + }; + + /** + * Return the previous/next element of a list. + * + * @param {array} list The list of elements + * @param activeElement The active element + * @param shouldGetNext Choose to get next or previous element + * @param isCycleAllowed + * @return {Element|elem} The proper element + */ + const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => { + const listLength = list.length; + let index = list.indexOf(activeElement); + + // if the element does not exist in the list return an element + // depending on the direction and if cycle is allowed + if (index === -1) { + return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]; + } + index += shouldGetNext ? 1 : -1; + if (isCycleAllowed) { + index = (index + listLength) % listLength; + } + return list[Math.max(0, Math.min(index, listLength - 1))]; + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/event-handler.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const namespaceRegex = /[^.]*(?=\..*)\.|.*/; + const stripNameRegex = /\..*/; + const stripUidRegex = /::\d+$/; + const eventRegistry = {}; // Events storage + let uidEvent = 1; + const customEvents = { + mouseenter: 'mouseover', + mouseleave: 'mouseout' + }; + const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']); + + /** + * Private methods + */ + + function makeEventUid(element, uid) { + return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++; } - - - // BUTTON PLUGIN DEFINITION - // ======================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.button') - var options = typeof option == 'object' && option - - if (!data) $this.data('bs.button', (data = new Button(this, options))) - - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) + function getElementEvents(element) { + const uid = makeEventUid(element); + element.uidEvent = uid; + eventRegistry[uid] = eventRegistry[uid] || {}; + return eventRegistry[uid]; } - - var old = $.fn.button - - $.fn.button = Plugin - $.fn.button.Constructor = Button - - - // BUTTON NO CONFLICT - // ================== - - $.fn.button.noConflict = function () { - $.fn.button = old - return this + function bootstrapHandler(element, fn) { + return function handler(event) { + hydrateObj(event, { + delegateTarget: element + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, fn); + } + return fn.apply(element, [event]); + }; } - - - // BUTTON DATA-API - // =============== - - $(document) - .on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - Plugin.call($btn, 'toggle') - e.preventDefault() - }) - .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) { - $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type)) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: carousel.js v3.3.1 - * http://getbootstrap.com/javascript/#carousel - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // CAROUSEL CLASS DEFINITION - // ========================= - - var Carousel = function (element, options) { - this.$element = $(element) - this.$indicators = this.$element.find('.carousel-indicators') - this.options = options - this.paused = - this.sliding = - this.interval = - this.$active = - this.$items = null - - this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this)) - - this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element - .on('mouseenter.bs.carousel', $.proxy(this.pause, this)) - .on('mouseleave.bs.carousel', $.proxy(this.cycle, this)) + function bootstrapDelegationHandler(element, selector, fn) { + return function handler(event) { + const domElements = element.querySelectorAll(selector); + for (let { + target + } = event; target && target !== this; target = target.parentNode) { + for (const domElement of domElements) { + if (domElement !== target) { + continue; + } + hydrateObj(event, { + delegateTarget: target + }); + if (handler.oneOff) { + EventHandler.off(element, event.type, selector, fn); + } + return fn.apply(target, [event]); + } + } + }; } - - Carousel.VERSION = '3.3.1' - - Carousel.TRANSITION_DURATION = 600 - - Carousel.DEFAULTS = { - interval: 5000, - pause: 'hover', - wrap: true, - keyboard: true + function findHandler(events, callable, delegationSelector = null) { + return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector); } - - Carousel.prototype.keydown = function (e) { - if (/input|textarea/i.test(e.target.tagName)) return - switch (e.which) { - case 37: this.prev(); break - case 39: this.next(); break - default: return + function normalizeParameters(originalTypeEvent, handler, delegationFunction) { + const isDelegated = typeof handler === 'string'; + // TODO: tooltip passes `false` instead of selector, so we need to check + const callable = isDelegated ? delegationFunction : handler || delegationFunction; + let typeEvent = getTypeEvent(originalTypeEvent); + if (!nativeEvents.has(typeEvent)) { + typeEvent = originalTypeEvent; } - - e.preventDefault() + return [isDelegated, callable, typeEvent]; } - - Carousel.prototype.cycle = function (e) { - e || (this.paused = false) - - this.interval && clearInterval(this.interval) - - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - - return this - } - - Carousel.prototype.getItemIndex = function (item) { - this.$items = item.parent().children('.item') - return this.$items.index(item || this.$active) - } - - Carousel.prototype.getItemForDirection = function (direction, active) { - var delta = direction == 'prev' ? -1 : 1 - var activeIndex = this.getItemIndex(active) - var itemIndex = (activeIndex + delta) % this.$items.length - return this.$items.eq(itemIndex) - } - - Carousel.prototype.to = function (pos) { - var that = this - var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active')) - - if (pos > (this.$items.length - 1) || pos < 0) return - - if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid" - if (activeIndex == pos) return this.pause().cycle() - - return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos)) + function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + + // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position + // this prevents the handler from being dispatched the same way as mouseover or mouseout does + if (originalTypeEvent in customEvents) { + const wrapFunction = fn => { + return function (event) { + if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) { + return fn.call(this, event); + } + }; + }; + callable = wrapFunction(callable); + } + const events = getElementEvents(element); + const handlers = events[typeEvent] || (events[typeEvent] = {}); + const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null); + if (previousFunction) { + previousFunction.oneOff = previousFunction.oneOff && oneOff; + return; + } + const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, '')); + const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable); + fn.delegationSelector = isDelegated ? handler : null; + fn.callable = callable; + fn.oneOff = oneOff; + fn.uidEvent = uid; + handlers[uid] = fn; + element.addEventListener(typeEvent, fn, isDelegated); } - - Carousel.prototype.pause = function (e) { - e || (this.paused = true) - - if (this.$element.find('.next, .prev').length && $.support.transition) { - this.$element.trigger($.support.transition.end) - this.cycle(true) + function removeHandler(element, events, typeEvent, handler, delegationSelector) { + const fn = findHandler(events[typeEvent], handler, delegationSelector); + if (!fn) { + return; } - - this.interval = clearInterval(this.interval) - - return this + element.removeEventListener(typeEvent, fn, Boolean(delegationSelector)); + delete events[typeEvent][fn.uidEvent]; } - - Carousel.prototype.next = function () { - if (this.sliding) return - return this.slide('next') + function removeNamespacedHandlers(element, events, typeEvent, namespace) { + const storeElementEvent = events[typeEvent] || {}; + for (const [handlerKey, event] of Object.entries(storeElementEvent)) { + if (handlerKey.includes(namespace)) { + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } } - - Carousel.prototype.prev = function () { - if (this.sliding) return - return this.slide('prev') + function getTypeEvent(event) { + // allow to get the native events from namespaced events ('click.bs.button' --> 'click') + event = event.replace(stripNameRegex, ''); + return customEvents[event] || event; } - - Carousel.prototype.slide = function (type, next) { - var $active = this.$element.find('.item.active') - var $next = next || this.getItemForDirection(type, $active) - var isCycling = this.interval - var direction = type == 'next' ? 'left' : 'right' - var fallback = type == 'next' ? 'first' : 'last' - var that = this - - if (!$next.length) { - if (!this.options.wrap) return - $next = this.$element.find('.item')[fallback]() - } - - if ($next.hasClass('active')) return (this.sliding = false) - - var relatedTarget = $next[0] - var slideEvent = $.Event('slide.bs.carousel', { - relatedTarget: relatedTarget, - direction: direction - }) - this.$element.trigger(slideEvent) - if (slideEvent.isDefaultPrevented()) return - - this.sliding = true - - isCycling && this.pause() - - if (this.$indicators.length) { - this.$indicators.find('.active').removeClass('active') - var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)]) - $nextIndicator && $nextIndicator.addClass('active') - } - - var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid" - if ($.support.transition && this.$element.hasClass('slide')) { - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - $active - .one('bsTransitionEnd', function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { - that.$element.trigger(slidEvent) - }, 0) - }) - .emulateTransitionEnd(Carousel.TRANSITION_DURATION) - } else { - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger(slidEvent) + const EventHandler = { + on(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, false); + }, + one(element, event, handler, delegationFunction) { + addHandler(element, event, handler, delegationFunction, true); + }, + off(element, originalTypeEvent, handler, delegationFunction) { + if (typeof originalTypeEvent !== 'string' || !element) { + return; + } + const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction); + const inNamespace = typeEvent !== originalTypeEvent; + const events = getElementEvents(element); + const storeElementEvent = events[typeEvent] || {}; + const isNamespace = originalTypeEvent.startsWith('.'); + if (typeof callable !== 'undefined') { + // Simplest case: handler is passed, remove that listener ONLY. + if (!Object.keys(storeElementEvent).length) { + return; + } + removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null); + return; + } + if (isNamespace) { + for (const elementEvent of Object.keys(events)) { + removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1)); + } + } + for (const [keyHandlers, event] of Object.entries(storeElementEvent)) { + const handlerKey = keyHandlers.replace(stripUidRegex, ''); + if (!inNamespace || originalTypeEvent.includes(handlerKey)) { + removeHandler(element, events, typeEvent, event.callable, event.delegationSelector); + } + } + }, + trigger(element, event, args) { + if (typeof event !== 'string' || !element) { + return null; + } + const $ = getjQuery(); + const typeEvent = getTypeEvent(event); + const inNamespace = event !== typeEvent; + let jQueryEvent = null; + let bubbles = true; + let nativeDispatch = true; + let defaultPrevented = false; + if (inNamespace && $) { + jQueryEvent = $.Event(event, args); + $(element).trigger(jQueryEvent); + bubbles = !jQueryEvent.isPropagationStopped(); + nativeDispatch = !jQueryEvent.isImmediatePropagationStopped(); + defaultPrevented = jQueryEvent.isDefaultPrevented(); + } + const evt = hydrateObj(new Event(event, { + bubbles, + cancelable: true + }), args); + if (defaultPrevented) { + evt.preventDefault(); + } + if (nativeDispatch) { + element.dispatchEvent(evt); + } + if (evt.defaultPrevented && jQueryEvent) { + jQueryEvent.preventDefault(); + } + return evt; } - - isCycling && this.cycle() - - return this + }; + function hydrateObj(obj, meta = {}) { + for (const [key, value] of Object.entries(meta)) { + try { + obj[key] = value; + } catch (_unused) { + Object.defineProperty(obj, key, { + configurable: true, + get() { + return value; + } + }); + } + } + return obj; } + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/manipulator.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // CAROUSEL PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.carousel') - var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option) - var action = typeof option == 'string' ? option : options.slide - - if (!data) $this.data('bs.carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (action) data[action]() - else if (options.interval) data.pause().cycle() - }) + function normalizeData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === Number(value).toString()) { + return Number(value); + } + if (value === '' || value === 'null') { + return null; + } + if (typeof value !== 'string') { + return value; + } + try { + return JSON.parse(decodeURIComponent(value)); + } catch (_unused) { + return value; + } } - - var old = $.fn.carousel - - $.fn.carousel = Plugin - $.fn.carousel.Constructor = Carousel - - - // CAROUSEL NO CONFLICT - // ==================== - - $.fn.carousel.noConflict = function () { - $.fn.carousel = old - return this + function normalizeDataKey(key) { + return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`); } + const Manipulator = { + setDataAttribute(element, key, value) { + element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value); + }, + removeDataAttribute(element, key) { + element.removeAttribute(`data-bs-${normalizeDataKey(key)}`); + }, + getDataAttributes(element) { + if (!element) { + return {}; + } + const attributes = {}; + const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig')); + for (const key of bsKeys) { + let pureKey = key.replace(/^bs/, ''); + pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length); + attributes[pureKey] = normalizeData(element.dataset[key]); + } + return attributes; + }, + getDataAttribute(element, key) { + return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`)); + } + }; + /** + * -------------------------------------------------------------------------- + * Bootstrap util/config.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - // CAROUSEL DATA-API - // ================= - - var clickHandler = function (e) { - var href - var $this = $(this) - var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7 - if (!$target.hasClass('carousel')) return - var options = $.extend({}, $target.data(), $this.data()) - var slideIndex = $this.attr('data-slide-to') - if (slideIndex) options.interval = false - Plugin.call($target, options) + /** + * Class definition + */ - if (slideIndex) { - $target.data('bs.carousel').to(slideIndex) + class Config { + // Getters + static get Default() { + return {}; + } + static get DefaultType() { + return {}; + } + static get NAME() { + throw new Error('You have to implement the static method "NAME", for each component!'); + } + _getConfig(config) { + config = this._mergeConfigObj(config); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } + _configAfterMerge(config) { + return config; + } + _mergeConfigObj(config, element) { + const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse + + return { + ...this.constructor.Default, + ...(typeof jsonConfig === 'object' ? jsonConfig : {}), + ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}), + ...(typeof config === 'object' ? config : {}) + }; + } + _typeCheckConfig(config, configTypes = this.constructor.DefaultType) { + for (const [property, expectedTypes] of Object.entries(configTypes)) { + const value = config[property]; + const valueType = isElement(value) ? 'element' : toType(value); + if (!new RegExp(expectedTypes).test(valueType)) { + throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`); + } + } } - - e.preventDefault() } - $(document) - .on('click.bs.carousel.data-api', '[data-slide]', clickHandler) - .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler) - - $(window).on('load', function () { - $('[data-ride="carousel"]').each(function () { - var $carousel = $(this) - Plugin.call($carousel, $carousel.data()) - }) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: collapse.js v3.3.1 - * http://getbootstrap.com/javascript/#collapse - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ + /** + * -------------------------------------------------------------------------- + * Bootstrap base-component.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ -+function ($) { - 'use strict'; + /** + * Constants + */ - // COLLAPSE PUBLIC CLASS DEFINITION - // ================================ + const VERSION = '5.3.2'; - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, Collapse.DEFAULTS, options) - this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]') - this.transitioning = null + /** + * Class definition + */ - if (this.options.parent) { - this.$parent = this.getParent() - } else { - this.addAriaAndCollapsedClass(this.$element, this.$trigger) + class BaseComponent extends Config { + constructor(element, config) { + super(); + element = getElement(element); + if (!element) { + return; + } + this._element = element; + this._config = this._getConfig(config); + Data.set(this._element, this.constructor.DATA_KEY, this); } - if (this.options.toggle) this.toggle() - } - - Collapse.VERSION = '3.3.1' - - Collapse.TRANSITION_DURATION = 350 - - Collapse.DEFAULTS = { - toggle: true, - trigger: '[data-toggle="collapse"]' - } + // Public + dispose() { + Data.remove(this._element, this.constructor.DATA_KEY); + EventHandler.off(this._element, this.constructor.EVENT_KEY); + for (const propertyName of Object.getOwnPropertyNames(this)) { + this[propertyName] = null; + } + } + _queueCallback(callback, element, isAnimated = true) { + executeAfterTransition(callback, element, isAnimated); + } + _getConfig(config) { + config = this._mergeConfigObj(config, this._element); + config = this._configAfterMerge(config); + this._typeCheckConfig(config); + return config; + } - Collapse.prototype.dimension = function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' + // Static + static getInstance(element) { + return Data.get(getElement(element), this.DATA_KEY); + } + static getOrCreateInstance(element, config = {}) { + return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null); + } + static get VERSION() { + return VERSION; + } + static get DATA_KEY() { + return `bs.${this.NAME}`; + } + static get EVENT_KEY() { + return `.${this.DATA_KEY}`; + } + static eventName(name) { + return `${name}${this.EVENT_KEY}`; + } } - Collapse.prototype.show = function () { - if (this.transitioning || this.$element.hasClass('in')) return - - var activesData - var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing') + /** + * -------------------------------------------------------------------------- + * Bootstrap dom/selector-engine.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + const getSelector = element => { + let selector = element.getAttribute('data-bs-target'); + if (!selector || selector === '#') { + let hrefAttribute = element.getAttribute('href'); + + // The only valid content that could double as a selector are IDs or classes, + // so everything starting with `#` or `.`. If a "real" URL is used as the selector, + // `document.querySelector` will rightfully complain it is invalid. + // See https://github.com/twbs/bootstrap/issues/32273 + if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) { + return null; + } - if (actives && actives.length) { - activesData = actives.data('bs.collapse') - if (activesData && activesData.transitioning) return + // Just in case some CMS puts out a full URL with the anchor appended + if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) { + hrefAttribute = `#${hrefAttribute.split('#')[1]}`; + } + selector = hrefAttribute && hrefAttribute !== '#' ? parseSelector(hrefAttribute.trim()) : null; } - - var startEvent = $.Event('show.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return - - if (actives && actives.length) { - Plugin.call(actives, 'hide') - activesData || actives.data('bs.collapse', null) + return selector; + }; + const SelectorEngine = { + find(selector, element = document.documentElement) { + return [].concat(...Element.prototype.querySelectorAll.call(element, selector)); + }, + findOne(selector, element = document.documentElement) { + return Element.prototype.querySelector.call(element, selector); + }, + children(element, selector) { + return [].concat(...element.children).filter(child => child.matches(selector)); + }, + parents(element, selector) { + const parents = []; + let ancestor = element.parentNode.closest(selector); + while (ancestor) { + parents.push(ancestor); + ancestor = ancestor.parentNode.closest(selector); + } + return parents; + }, + prev(element, selector) { + let previous = element.previousElementSibling; + while (previous) { + if (previous.matches(selector)) { + return [previous]; + } + previous = previous.previousElementSibling; + } + return []; + }, + // TODO: this is now unused; remove later along with prev() + next(element, selector) { + let next = element.nextElementSibling; + while (next) { + if (next.matches(selector)) { + return [next]; + } + next = next.nextElementSibling; + } + return []; + }, + focusableChildren(element) { + const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(','); + return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el)); + }, + getSelectorFromElement(element) { + const selector = getSelector(element); + if (selector) { + return SelectorEngine.findOne(selector) ? selector : null; + } + return null; + }, + getElementFromSelector(element) { + const selector = getSelector(element); + return selector ? SelectorEngine.findOne(selector) : null; + }, + getMultipleElementsFromSelector(element) { + const selector = getSelector(element); + return selector ? SelectorEngine.find(selector) : []; + } + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/component-functions.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + const enableDismissTrigger = (component, method = 'hide') => { + const clickEvent = `click.dismiss${component.EVENT_KEY}`; + const name = component.NAME; + EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) { + if (['A', 'AREA'].includes(this.tagName)) { + event.preventDefault(); + } + if (isDisabled(this)) { + return; + } + const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`); + const instance = component.getOrCreateInstance(target); + + // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method + instance[method](); + }); + }; + + /** + * -------------------------------------------------------------------------- + * Bootstrap alert.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$f = 'alert'; + const DATA_KEY$a = 'bs.alert'; + const EVENT_KEY$b = `.${DATA_KEY$a}`; + const EVENT_CLOSE = `close${EVENT_KEY$b}`; + const EVENT_CLOSED = `closed${EVENT_KEY$b}`; + const CLASS_NAME_FADE$5 = 'fade'; + const CLASS_NAME_SHOW$8 = 'show'; + + /** + * Class definition + */ + + class Alert extends BaseComponent { + // Getters + static get NAME() { + return NAME$f; } - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - .addClass('collapsing')[dimension](0) - .attr('aria-expanded', true) - - this.$trigger - .removeClass('collapsed') - .attr('aria-expanded', true) - - this.transitioning = 1 + // Public + close() { + const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE); + if (closeEvent.defaultPrevented) { + return; + } + this._element.classList.remove(CLASS_NAME_SHOW$8); + const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5); + this._queueCallback(() => this._destroyElement(), this._element, isAnimated); + } - var complete = function () { - this.$element - .removeClass('collapsing') - .addClass('collapse in')[dimension]('') - this.transitioning = 0 - this.$element - .trigger('shown.bs.collapse') + // Private + _destroyElement() { + this._element.remove(); + EventHandler.trigger(this._element, EVENT_CLOSED); + this.dispose(); } - if (!$.support.transition) return complete.call(this) + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Alert.getOrCreateInstance(this); + if (typeof config !== 'string') { + return; + } + if (data[config] === undefined || config.startsWith('_') || config === 'constructor') { + throw new TypeError(`No method named "${config}"`); + } + data[config](this); + }); + } + } - var scrollSize = $.camelCase(['scroll', dimension].join('-')) + /** + * Data API implementation + */ - this.$element - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize]) - } + enableDismissTrigger(Alert, 'close'); - Collapse.prototype.hide = function () { - if (this.transitioning || !this.$element.hasClass('in')) return + /** + * jQuery + */ - var startEvent = $.Event('hide.bs.collapse') - this.$element.trigger(startEvent) - if (startEvent.isDefaultPrevented()) return + defineJQueryPlugin(Alert); - var dimension = this.dimension() + /** + * -------------------------------------------------------------------------- + * Bootstrap button.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ - this.$element[dimension](this.$element[dimension]())[0].offsetHeight - this.$element - .addClass('collapsing') - .removeClass('collapse in') - .attr('aria-expanded', false) + /** + * Constants + */ - this.$trigger - .addClass('collapsed') - .attr('aria-expanded', false) + const NAME$e = 'button'; + const DATA_KEY$9 = 'bs.button'; + const EVENT_KEY$a = `.${DATA_KEY$9}`; + const DATA_API_KEY$6 = '.data-api'; + const CLASS_NAME_ACTIVE$3 = 'active'; + const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]'; + const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`; - this.transitioning = 1 + /** + * Class definition + */ - var complete = function () { - this.transitioning = 0 - this.$element - .removeClass('collapsing') - .addClass('collapse') - .trigger('hidden.bs.collapse') + class Button extends BaseComponent { + // Getters + static get NAME() { + return NAME$e; } - if (!$.support.transition) return complete.call(this) - - this.$element - [dimension](0) - .one('bsTransitionEnd', $.proxy(complete, this)) - .emulateTransitionEnd(Collapse.TRANSITION_DURATION) - } + // Public + toggle() { + // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method + this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3)); + } - Collapse.prototype.toggle = function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() + // Static + static jQueryInterface(config) { + return this.each(function () { + const data = Button.getOrCreateInstance(this); + if (config === 'toggle') { + data[config](); + } + }); + } } - Collapse.prototype.getParent = function () { - return $(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each($.proxy(function (i, element) { - var $element = $(element) - this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element) - }, this)) - .end() - } + /** + * Data API implementation + */ + + EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => { + event.preventDefault(); + const button = event.target.closest(SELECTOR_DATA_TOGGLE$5); + const data = Button.getOrCreateInstance(button); + data.toggle(); + }); + + /** + * jQuery + */ + + defineJQueryPlugin(Button); + + /** + * -------------------------------------------------------------------------- + * Bootstrap util/swipe.js + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + * -------------------------------------------------------------------------- + */ + + + /** + * Constants + */ + + const NAME$d = 'swipe'; + const EVENT_KEY$9 = '.bs.swipe'; + const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`; + const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`; + const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`; + const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`; + const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`; + const POINTER_TYPE_TOUCH = 'touch'; + const POINTER_TYPE_PEN = 'pen'; + const CLASS_NAME_POINTER_EVENT = 'pointer-event'; + const SWIPE_THRESHOLD = 40; + const Default$c = { + endCallback: null, + leftCallback: null, + rightCallback: null + }; + const DefaultType$c = { + endCallback: '(function|null)', + leftCallback: '(function|null)', + rightCallback: '(function|null)' + }; + + /** + * Class definition + */ + + class Swipe extends Config { + constructor(element, config) { + super(); + this._element = element; + if (!element || !Swipe.isSupported()) { + return; + } + this._config = this._getConfig(config); + this._deltaX = 0; + this._supportPointerEvents = Boolean(window.PointerEvent); + this._initEvents(); + } - Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) { - var isOpen = $element.hasClass('in') + // Getters + static get Default() { + return Default$c; + } + static get DefaultType() { + return DefaultType$c; + } + static get NAME() { + return NAME$d; + } - $element.attr('aria-expanded', isOpen) - $trigger - .toggleClass('collapsed', !isOpen) - .attr('aria-expanded', isOpen) - } + // Public + dispose() { + EventHandler.off(this._element, EVENT_KEY$9); + } - function getTargetFromTrigger($trigger) { - var href - var target = $trigger.attr('data-target') - || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7 + // Private + _start(event) { + if (!this._supportPointerEvents) { + this._deltaX = event.touches[0].clientX; + return; + } + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX; + } + } + _end(event) { + if (this._eventIsPointerPenTouch(event)) { + this._deltaX = event.clientX - this._deltaX; + } + this._handleSwipe(); + execute(this._config.endCallback); + } + _move(event) { + this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX; + } + _handleSwipe() { + const absDeltaX = Math.abs(this._deltaX); + if (absDeltaX <= SWIPE_THRESHOLD) { + return; + } + const direction = absDeltaX / this._deltaX; + this._deltaX = 0; + if (!direction) { + return; + } + execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback); + } + _initEvents() { + if (this._supportPointerEvents) { + EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event)); + EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event)); + this._element.classList.add(CLASS_NAME_POINTER_EVENT); + } else { + EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event)); + EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event)); + EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event)); + } + } + _eventIsPointerPenTouch(event) { + return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH); + } - return $(target) + // Static + static isSupported() { + return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; + } } - - // COLLAPSE PLUGIN DEFINITION - // ========================== - - function Plugin(option) { - return this.each(function () { - var $this = $(this) - var data = $this.data('bs.collapse') - var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option) - - if (!data && options.toggle && option == 'show') options.toggle = false - if (!data) $this.data('bs.collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - var old = $.fn.collapse - - $.fn.collapse = Plugin - $.fn.collapse.Constructor = Collapse - - - // COLLAPSE NO CONFLICT - // ==================== - - $.fn.collapse.noConflict = function () { - $.fn.collapse = old - return this - } - - - // COLLAPSE DATA-API - // ================= - - $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) { - var $this = $(this) - - if (!$this.attr('data-target')) e.preventDefault() - - var $target = getTargetFromTrigger($this) - var data = $target.data('bs.collapse') - var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this }) - - Plugin.call($target, option) - }) - -}(jQuery); - -/* ======================================================================== - * Bootstrap: dropdown.js v3.3.1 - * http://getbootstrap.com/javascript/#dropdowns - * ======================================================================== - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * ======================================================================== */ - - -+function ($) { - 'use strict'; - - // DROPDOWN CLASS DEFINITION - // ========================= - - var backdrop = '.dropdown-backdrop' - var toggle = '[data-toggle="dropdown"]' - var Dropdown = function (element) { - $(element).on('click.bs.dropdown', this.toggle) - } - - Dropdown.VERSION = '3.3.1' - - Dropdown.prototype.toggle = function (e) { - var $this = $(this) - - if ($this.is('.disabled, :disabled')) return - - var $parent = getParent($this) - var isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) { - if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) { - // if mobile we use a backdrop because click events don't delegate - $('

    diff --git a/tvorba/templates/tvorba/tematka/rozcestnik.html b/tvorba/templates/tvorba/tematka/rozcestnik.html index 605a6549..fcfba59e 100644 --- a/tvorba/templates/tvorba/tematka/rozcestnik.html +++ b/tvorba/templates/tvorba/tematka/rozcestnik.html @@ -35,7 +35,7 @@ {% if tematko.obrazek %} {{ tematko.nazev }} {% else %} {# pokud témátko nemá fotku, zobrazuje se defaultní obrázek #} - {% load static %} {{ tematko.nazev }} + {% load static %} {{ tematko.nazev }} {% endif %}
    diff --git a/tvorba/views/views_all.py b/tvorba/views/views_all.py index ac8b5477..b4bbad92 100644 --- a/tvorba/views/views_all.py +++ b/tvorba/views/views_all.py @@ -237,7 +237,7 @@ class ArchivView(generic.ListView): for i, c in enumerate(cisla): # Výchozí nastavení if c.rocnik not in urls: - urls[c.rocnik] = op.join(settings.STATIC_URL, "images", "no-picture.png") + urls[c.rocnik] = op.join(settings.STATIC_URL, "tvorba", "no-picture.png") # NOTE: tohle možná nastavuje poslední titulku if c.titulka_nahled: urls[c.rocnik] = c.titulka_nahled.url From 85c3969c50eac28758479d1dd942a322c82fc12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 4 Aug 2024 19:21:46 +0200 Subject: [PATCH 489/515] seminar/templatetags --- .../templates/odevzdavatko/tabulka.html | 1 - seminar/templatetags/utils.py | 19 ------------------- {seminar => tvorba}/templatetags/__init__.py | 0 {seminar => tvorba}/templatetags/deadliny.py | 0 {seminar => various}/templatetags/tex.py | 0 5 files changed, 20 deletions(-) delete mode 100644 seminar/templatetags/utils.py rename {seminar => tvorba}/templatetags/__init__.py (100%) rename {seminar => tvorba}/templatetags/deadliny.py (100%) rename {seminar => various}/templatetags/tex.py (100%) diff --git a/odevzdavatko/templates/odevzdavatko/tabulka.html b/odevzdavatko/templates/odevzdavatko/tabulka.html index 7ee90ea9..cfbe0e6f 100644 --- a/odevzdavatko/templates/odevzdavatko/tabulka.html +++ b/odevzdavatko/templates/odevzdavatko/tabulka.html @@ -1,6 +1,5 @@ {% extends "base.html" %} -{% load utils %} {# Možná by mohlo být někde výš v hierarchii templatů... #} {% load barvy_reseni %} {% block content %} diff --git a/seminar/templatetags/utils.py b/seminar/templatetags/utils.py deleted file mode 100644 index ca400050..00000000 --- a/seminar/templatetags/utils.py +++ /dev/null @@ -1,19 +0,0 @@ -from django import template -from django.utils.safestring import mark_safe -from datetime import datetime, timedelta -from mamweb.settings import TIME_ZONE -import logging -register = template.Library() - -logger = logging.getLogger(__name__) - -@register.filter(name='kratke_datum', expects_localtime=True) -def kratke_datum(dt): - # None dává None, ne-datum dává False, aby se daly použít filtry typu "default". - if dt is None: - return None - if not isinstance(dt, datetime): - logger.warning(f"Špatné volání filtru {__name__}: {dt}") - return False - out = f'' - return mark_safe(out) diff --git a/seminar/templatetags/__init__.py b/tvorba/templatetags/__init__.py similarity index 100% rename from seminar/templatetags/__init__.py rename to tvorba/templatetags/__init__.py diff --git a/seminar/templatetags/deadliny.py b/tvorba/templatetags/deadliny.py similarity index 100% rename from seminar/templatetags/deadliny.py rename to tvorba/templatetags/deadliny.py diff --git a/seminar/templatetags/tex.py b/various/templatetags/tex.py similarity index 100% rename from seminar/templatetags/tex.py rename to various/templatetags/tex.py From c34716e134491b406b2ab2d28332427d14ba60d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Mon, 5 Aug 2024 11:46:38 +0200 Subject: [PATCH 490/515] seminar/utils.py --- aesop/views.py | 2 +- api/tests/test_skola_autocomplete.py | 2 +- api/urls.py | 2 +- ...-12-06-testovani_dokumentace_codereview.md | 2 +- galerie/urls.py | 2 +- korektury/urls.py | 2 +- odevzdavatko/urls.py | 4 +- odevzdavatko/utils.py | 11 + odevzdavatko/views.py | 2 +- personalni/urls.py | 2 +- personalni/utils.py | 175 +++++++- prednasky/urls.py | 2 +- seminar/models/odevzdavatko.py | 2 +- seminar/models/tvorba.py | 3 +- seminar/utils.py | 387 ------------------ sifrovacka/urls.py | 2 +- soustredeni/urls.py | 2 +- tvorba/urls.py | 2 +- tvorba/utils.py | 89 ++++ tvorba/views/views_all.py | 8 +- various/urls.py | 2 +- various/views/final.py | 95 ++++- various/views/generic.py | 29 ++ vyroci/urls.py | 2 +- vysledkovky/utils.py | 2 +- 25 files changed, 417 insertions(+), 416 deletions(-) create mode 100644 odevzdavatko/utils.py delete mode 100644 seminar/utils.py create mode 100644 tvorba/utils.py create mode 100644 various/views/generic.py diff --git a/aesop/views.py b/aesop/views.py index 5fd49cbc..1ff6c7ee 100644 --- a/aesop/views.py +++ b/aesop/views.py @@ -8,7 +8,7 @@ from django.utils.encoding import force_str from .utils import default_ovvpfile from seminar.models import Rocnik, Soustredeni from vysledkovky import utils -from seminar.utils import aktivniResitele +from tvorba.utils import aktivniResitele class ExportIndexView(generic.View): def get(self, request): diff --git a/api/tests/test_skola_autocomplete.py b/api/tests/test_skola_autocomplete.py index f69669f0..75019983 100644 --- a/api/tests/test_skola_autocomplete.py +++ b/api/tests/test_skola_autocomplete.py @@ -1,7 +1,7 @@ from django.test import TestCase, tag from django.urls import reverse import seminar.models as m -from seminar.utils import sync_skoly +from personalni.utils import sync_skoly @tag('stejny-model-na-produkci') class OrgSkolyAutocompleteTestCase(TestCase): diff --git a/api/urls.py b/api/urls.py index 9ff38424..be58d3f9 100644 --- a/api/urls.py +++ b/api/urls.py @@ -1,6 +1,6 @@ from django.urls import path from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ # Export škol diff --git a/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md b/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md index 224ea529..c2cfc1b5 100644 --- a/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md +++ b/docs/zapisy/2021-12-06-testovani_dokumentace_codereview.md @@ -116,7 +116,7 @@ Aktuálně: Jakýsi coding style zhruba existuje, není popsaný, šíří se li - Nesmí být striktně vynucovaný - Musel by být hodně nastavitelný - Nechceme mít kód plný `#NOQA: WTF42` -- Nejspíš vždycky bude mít false positives (`seminar.utils.roman_numerals`) i false negatives (`seminar.models.tvorba.Cislo.posli_cislo_mailem`) +- Nejspíš vždycky bude mít false positives (`tvorba.utils.roman_numerals`) i false negatives (`seminar.models.tvorba.Cislo.posli_cislo_mailem`) - Možná dobrý sluha, ale určitě špatný pán (also: špatná zkušenost ☺) - __Důsledek:__ Hrozí, že těch falešných varování bude moc, čímž to ztratí smysl úplně - Potenciálně by šlo aplikovat jen lokálně na změny? diff --git a/galerie/urls.py b/galerie/urls.py index 32824248..28b43a22 100644 --- a/galerie/urls.py +++ b/galerie/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from seminar.utils import org_required +from personalni.utils import org_required from . import views urlpatterns = [ diff --git a/korektury/urls.py b/korektury/urls.py index dcd1d965..cf45ea8f 100644 --- a/korektury/urls.py +++ b/korektury/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from seminar.utils import org_required +from personalni.utils import org_required from . import views urlpatterns = [ diff --git a/odevzdavatko/urls.py b/odevzdavatko/urls.py index e41b9c14..d4c2a092 100644 --- a/odevzdavatko/urls.py +++ b/odevzdavatko/urls.py @@ -1,7 +1,7 @@ from django.urls import path -from seminar.utils import org_required, resitel_required, viewMethodSwitch, \ - resitel_or_org_required +from personalni.utils import org_required, resitel_required, resitel_or_org_required +from various.views.generic import viewMethodSwitch from . import views urlpatterns = [ diff --git a/odevzdavatko/utils.py b/odevzdavatko/utils.py new file mode 100644 index 00000000..4157de4b --- /dev/null +++ b/odevzdavatko/utils.py @@ -0,0 +1,11 @@ +import decimal + + +def vzorecek_na_prepocet(body, resitelu): + """ Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """ + return body * 3 / (resitelu + 2) + + +def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: + """ Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """ + return round(body * (resitelu + 2) / 3, 1) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 9215d3f8..cbe9019e 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -20,7 +20,7 @@ import logging import seminar.models as m from . import forms as f from .forms import OdevzdavatkoTabulkaFiltrForm as FiltrForm -from seminar.utils import resi_v_rocniku +from tvorba.utils import resi_v_rocniku from various.views.pomocne import formularOKView logger = logging.getLogger(__name__) diff --git a/personalni/urls.py b/personalni/urls.py index eae46257..8abbb434 100644 --- a/personalni/urls.py +++ b/personalni/urls.py @@ -1,7 +1,7 @@ from django.urls import path from django.contrib.auth.decorators import login_required from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ path( diff --git a/personalni/utils.py b/personalni/utils.py index 0701d66a..4aac1e28 100644 --- a/personalni/utils.py +++ b/personalni/utils.py @@ -2,10 +2,183 @@ import seminar.models as m from various.utils import bez_diakritiky_translate import re -def normalizuj_jmeno(o: m.Osoba) -> str: +from django.contrib.auth import get_user_model +from django.contrib.auth.decorators import permission_required, user_passes_test +from django.contrib.auth.models import AnonymousUser +from django.db import transaction + +import seminar.models as m +import soustredeni.models + +from .models import Osoba, Organizator, Skola, Resitel, Prijemce + + +org_required = permission_required('auth.org') +resitel_required = permission_required('auth.resitel') + + +# inspirováno django.contrib.auth.decorators permission_required +def check_perms(user): + if user.has_perms(('auth.resitel',)): + return True + if user.has_perms(('auth.org',)): + return True + return False + + +resitel_or_org_required = user_passes_test(check_perms) + +User = get_user_model() +# Není to úplně hezké, ale budeme doufat, že to je funkční... +User.je_org = property(lambda self: self.has_perm('auth.org')) +User.je_resitel = property(lambda self: self.has_perm('auth.resitel')) +AnonymousUser.je_org = False +AnonymousUser.je_resitel = False + +def normalizuj_jmeno(o: Osoba) -> str: # FIXME: Možná není potřeba vázat na model? cele_jmeno = f'{o.jmeno} {o.prijmeni}' cele_jmeno = cele_jmeno.translate(bez_diakritiky_translate) cele_jmeno = re.sub(r'[^a-zA-Z- ]', '', cele_jmeno) return cele_jmeno + +def sync_skoly(base_url): + """Stáhne všechny školy z mamwebu na adrese a uloží je do databáze""" + from django.urls import reverse + full_url = base_url.rstrip('/') + reverse('export_skoly') + import requests + from django.core import serializers + json = requests.get(full_url, stream=True).content + for skola in serializers.deserialize('json', json): + skola.save() + +@transaction.atomic +def merge_resitele(cilovy, zdrojovy): + """Spojí dva řešitelské objekty do cílového. + + Pojmenování "zdrojový" je silně nepřiléhající, ale co už…""" + + # Postup: + # Sjednotit / upravit informace cílového řešitele + print('Upravuji data modelu') + fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove'] + + for f in fieldy_shoda: + zf = getattr(zdrojovy, f) + cf = getattr(cilovy, f) + if cf == zf: + print(f' Údaj {f} je shodný ({zf})') + else: + if zf is None: + print(f' Údaj {f} je pouze v cílovém, používám') + continue + if cf is None: + setattr(cilovy, f, zf) + cilovy.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojového: {zf}' + print(f" Přiřazuji {f} ze zdrojového: {zf}") + continue + # Jsou fakt různé… + # FIXME: chybí možnost na vlastní úpravu… + verdikt = input(f"\n\n Údaj {f} se u řešitele {cilovy} ({cilovy.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") + verdikt = verdikt[0].casefold() + if verdikt == 'z': + setattr(cilovy, f, zf) + cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojový), nepoužit {cf} (cílový)' + elif verdikt == 'c': + cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílový), nepoužit {zf} (zdrojový)' + else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') + # poznámku chceme nezahodit… + cilovy.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojovy.poznamka}' + print(f' Výsledný řešitel: {cilovy.__dict__}, ukládám') + cilovy.save() + + + # Přepojit všechny vazby ze zdrojového na cílového + print('Přepojuji vazby') + # Vazby: Škola (hotovo), Řešení_Řešitelé, Konfery_Účastníci, Soustředění_Účastníci, Osoba (vyřeší se později, nejde přepojit) + ct = m.Reseni_Resitele.objects.filter(resitele=zdrojovy).update(resitele=cilovy) + print(f' Přepojeno {ct} řešení') + ct = soustredeni.models.Konfery_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) + print(f' Přepojeno {ct} konfer') + ct = soustredeni.models.Soustredeni_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) + print(f' Přepojeno {ct} sousů') + + # Teď by na zdrojovém řešiteli nemělo nic viset, smazat ho, pamatujíce si jeho Osobu + zdrosoba = zdrojovy.osoba + print(f'Mažu zdrojového řešitele {zdrojovy.__dict__}') + zdrojovy.delete() + # Spojit osoby (separátní funkce). + merge_osoby(cilovy.osoba, zdrosoba) + + input("Potvrdit transakci řešitelů (^C pro zrušení) ") + +@transaction.atomic +def merge_osoby(cilova, zdrojova): + """ Spojí dvě osoby do cílové + + Nehlídá omezení typu "max 1 řešitel na osobu", to by měla hlídat databáze (OneToOneField).""" + # Sjednocení dat + print('Sjednocuji data osob') + # ID, User neřešíme, poznámku vyřešíme separátně. + fieldy = ['datum_narozeni', 'datum_registrace', 'datum_souhlasu_udaje', + 'datum_souhlasu_zasilani', 'email', 'foto', 'jmeno', 'mesto', + 'osloveni', 'prezdivka', 'prijmeni', 'psc', 'stat', 'telefon', 'ulice'] + for f in fieldy: + zf = getattr(zdrojova, f) + cf = getattr(cilova, f) + if cf == zf: + print(f' Údaj {f} je shodný ({zf})') + else: + if zf is None: + print(f' Údaj {f} je pouze v cílové, používám') + continue + if cf is None: + setattr(cilova, f, zf) + cilova.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojové: {zf}' + print(f" Přiřazuji {f} ze zdrojové: {zf}") + continue + # Jsou fakt různé… + # FIXME: chybí možnost na vlastní úpravu… + verdikt = input(f"\n\n Údaj {f} se u osoby {cilova} ({cilova.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") + verdikt = verdikt[0].casefold() + if verdikt == 'z': + setattr(cilova, f, zf) + cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojová), nepoužit {cf} (cílová)' + elif verdikt == 'c': + cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílová), nepoužit {zf} (zdrojová)' + else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') + # poznámku chceme nezahodit… + cilova.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojova.poznamka}' + print(f' Výsledná osoba: {cilova.__dict__}, ukládám') + cilova.save() + + # Vazby: Řešitel, User, Příjemce, Organizátor, Škola.kontaktní_osoba + print('Přepojuji vazby') + ct = Skola.objects.filter(kontaktni_osoba=zdrojova).update(kontaktni_osoba=cilova) + print(f' Přepojeno {ct} kontaktních osob') + # Ostatní vazby vyřeší OneToOneFieldy, ale někdy nemusí existovat… + ct = Resitel.objects.filter(osoba=zdrojova).update(osoba=cilova) + print(f' Přepojeno {ct} řešitelů') + ct = Prijemce.objects.filter(osoba=zdrojova).update(osoba=cilova) + print(f' Přepojeno {ct} příjemců') + ct = Organizator.objects.filter(osoba=zdrojova).update(osoba=cilova) + print(f' Přepojeno {ct} organizátorů') + # Uživatelé vedou opačným směrem, radši chceme zkontrolovat, že jsou různí ručně: + if zdrojova.user != cilova.user: + # Jeden z nich může být nenastavený… + if zdrojova.user is None: + print('Uživatel je již v cílové osobě') + elif cilova.user is None: + print('Používám uživatele zdrojové osoby') + cilova.user = zdrojova.user + # Teď nemůžeme uložit, protože kolize uživatelů. Ukládat cílovou budeme až po smazání zdrojové. + else: raise ValueError('Osoby mají obě uživatele, radši padám') + + # Uložení a mazání + print(f'Mažu zdrojovou osobu {zdrojova.__dict__}') + zdrojova.delete() + print(f'Ukládám cílovou osobu {cilova.__dict__}') + cilova.save() + + input("Potvrdit transakci osob (^C pro zrušení) ") diff --git a/prednasky/urls.py b/prednasky/urls.py index 6b455163..eecc45ad 100644 --- a/prednasky/urls.py +++ b/prednasky/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from seminar.utils import org_required, resitel_or_org_required +from personalni.utils import org_required, resitel_or_org_required from . import views urlpatterns = [ diff --git a/seminar/models/odevzdavatko.py b/seminar/models/odevzdavatko.py index b0dec663..0c106df7 100644 --- a/seminar/models/odevzdavatko.py +++ b/seminar/models/odevzdavatko.py @@ -13,7 +13,7 @@ from seminar.models import tvorba as am from seminar.models import treenode as tm from seminar.models import base as bm -from seminar.utils import vzorecek_na_prepocet, inverze_vzorecku_na_prepocet +from odevzdavatko.utils import vzorecek_na_prepocet, inverze_vzorecku_na_prepocet from personalni.models import Resitel diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 36157c96..c11a3861 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -23,7 +23,7 @@ from taggit.managers import TaggableManager from reversion import revisions as reversion -from seminar.utils import roman +from tvorba.utils import roman, aktivniResitele from treenode import treelib from unidecode import unidecode # Používám pro získání ID odkazu (ještě je to někde po někom zakomentované) @@ -31,7 +31,6 @@ from unidecode import unidecode # Používám pro získání ID odkazu (ještě from polymorphic.models import PolymorphicModel from django.core.mail import EmailMessage -from seminar.utils import aktivniResitele from personalni.models import Prijemce, Organizator diff --git a/seminar/utils.py b/seminar/utils.py deleted file mode 100644 index c826bf0b..00000000 --- a/seminar/utils.py +++ /dev/null @@ -1,387 +0,0 @@ -import datetime -import decimal - -from django.contrib.auth import get_user_model -from django.contrib.auth.decorators import permission_required, \ - user_passes_test -from django import views as DjangoViews - -from django.db import transaction - -from django.contrib.auth.models import AnonymousUser -from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import ObjectDoesNotExist - -import logging - -import seminar.models as m -import treenode.treelib as t - -logger = logging.getLogger(__name__) - -org_required = permission_required('auth.org') -resitel_required = permission_required('auth.resitel') - - -# inspirováno django.contrib.auth.decorators permission_required -def check_perms(user): - if user.has_perms(('auth.resitel',)): - return True - if user.has_perms(('auth.org',)): - return True - return False - - -resitel_or_org_required = user_passes_test(check_perms) - -User = get_user_model() -# Není to úplně hezké, ale budeme doufat, že to je funkční... -User.je_org = property(lambda self: self.has_perm('auth.org')) -User.je_resitel = property(lambda self: self.has_perm('auth.resitel')) -AnonymousUser.je_org = False -AnonymousUser.je_resitel = False - - -def vzorecek_na_prepocet(body, resitelu): - """ Vzoreček na přepočet plných bodů na parciálni, když má řešení více řešitelů. """ - return body * 3 / (resitelu + 2) - - -def inverze_vzorecku_na_prepocet(body: decimal.Decimal, resitelu) -> decimal.Decimal: - """ Vzoreček na přepočet parciálních bodů na plné, když má řešení více řešitelů. """ - return round(body * (resitelu + 2) / 3, 1) - - -def histogram(seznam): - d = {} - for i in seznam: - if i not in d: - d[i] = 0 - d[i] += 1 - return d - -# Pozor: zarovnáno velmi netradičně pro přehlednost -roman_numerals = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), - ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')) - - -def roman(num): - res = "" - for i, n in roman_numerals: - res += n * (num // i) - num %= i - return res - - -def from_roman(rom): - if not rom: - return 0 - for i, n in roman_numerals: - if rom.upper().startswith(n): - return i + from_roman(rom[len(n):]) - raise Exception('Invalid roman numeral: "%s"', rom) - - -def seznam_problemu(): - """Funkce pro hledání nekonzistencí v databázi a dalších nežádoucích stavů webu/databáze. - - Nijak nesouvisí s Problémy zadanými řešitelům.""" - # FIXME: přejmenovat funkci? - # FIXME: Tak, jak je napsaná, asi spíš patří někam k views a ne do utils (?) - problemy = [] - - # Pomocna fce k formatovani problemovych hlasek - def prb(cls, msg, objs=None): - s = '%s: %s' % (cls.__name__, msg) - if objs: - s += ' [' - for o in objs: - try: - url = o.admin_url() - except: - url = None - if url: - s += '%s, ' % (url, o.pk,) - else: - s += '%s, ' % (o.pk,) - s = s[:-2] + ']' - problemy.append(s) - - # Duplicita jmen - jmena = {} - for r in m.Resitel.objects.all(): - j = r.osoba.plne_jmeno() - if j not in jmena: - jmena[j] = [] - jmena[j].append(r) - for j in jmena: - if len(jmena[j]) > 1: - prb(m.Resitel, 'Duplicitní jméno "%s"' % (j,), jmena[j]) - - # Data maturity a narození - for r in m.Resitel.objects.all(): - if not r.rok_maturity: - prb(m.Resitel, 'Neznámý rok maturity', [r]) - if r.rok_maturity and (r.rok_maturity < 1990 or r.rok_maturity > datetime.date.today().year + 10): - prb(m.Resitel, 'Podezřelé datum maturity', [r]) - if r.osoba.datum_narozeni and ( - r.osoba.datum_narozeni.year < 1970 or r.osoba.datum_narozeni.year > datetime.date.today().year - 12): - prb(m.Resitel, 'Podezřelé datum narození', [r]) -# if not r.email: -# prb(Resitel, u'Neznámý email', [r]) - - ## Kontroly konzistence databáze a TreeNodů - - # Články - for clanek in m.Clanek.objects.all(): - # získáme řešení svázané se článkem a z něj node ve stromě - reseni = clanek.reseni_set - if (reseni.count() != 1): - raise ValueError("Článek k sobě má nejedno řešení!") - r = reseni.first() - clanek_node = r.text_cely # vazba na ReseniNode z Reseni - # content type je věc pomáhající rozeznávat různé typy objektů v django-polymorphic - # protože isinstance vrátí vždy jen TreeNode - # https://django-polymorphic.readthedocs.io/en/stable/migrating.html - cislonode_ct = ContentType.objects.get_for_model(m.CisloNode) - node = clanek_node - while node is not None: - node_ct = node.polymorphic_ctype - if node_ct == cislonode_ct: # dostali jsme se k CisloNode - # zkontrolujeme, že stromové číslo odpovídá atributu - # .cislonode je opačná vazba k treenode_ptr, abychom z TreeNode dostali - # CisloNode - if clanek.cislo != node.cislonode.cislo: - prb(m.Clanek, "Číslo otištění uložené u článku nesedí s " - "číslem otištění podle struktury treenodů.", [clanek]) - break - node = t.get_parent(node) - - return problemy - - -### Generovani obalek -def resi_v_rocniku(rocnik, cislo=None): - """ Vrátí seznam řešitelů, co vyřešili nějaký problém v daném ročníku, do daného čísla. - Parametry: - rocnik (typu Rocnik) ročník, ze kterého chci řešitele, co něco odevzdali - cislo (typu Cislo) číslo, do kterého včetně se počítá, že v daném - ročníku řešitel něco poslal. - Pokud není zadané, počítají se všechna řešení z daného ročníku. - Výstup: - QuerySet objektů typu Resitel """ - - if cislo is None: - # filtrujeme pouze podle ročníku - return m.Resitel.objects.filter(rok_maturity__gte=rocnik.druhy_rok(), - reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik).distinct() - else: # filtrujeme podle ročníku i čísla - return m.Resitel.objects.filter(rok_maturity__gte=rocnik.druhy_rok(), - reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik, - reseni__hodnoceni__deadline_body__cislo__poradi__lte=cislo.poradi).distinct() - - -def aktivniResitele(cislo, pouze_letosni=False): - """ Vrací QuerySet aktivních řešitelů, což jsou ti, co ještě neodmaturovali - a letos něco poslali (anebo loni něco poslali, pokud jde o první tři čísla). - Parametry: - cislo (typu Cislo) číslo, o které se jedná - pouze_letosni jen řešitelé, kteří tento rok něco poslali - - """ - letos = cislo.rocnik - - # detekujeme, zda jde o první tři čísla či nikoli (tj. zda spamovat řešitele z minulého roku) - zacatek_rocniku = True - try: - if int(cislo.poradi) > 3: - zacatek_rocniku = False - except ValueError: - # if cislo.poradi != '7-8': - # raise ValueError(f'{cislo} je neplatné číslo čísla (není int a není 7-8)') - zacatek_rocniku = False - - # nehledě na číslo chceme jen řešitele, kteří letos něco odevzdali - if pouze_letosni: - zacatek_rocniku = False - - try: - loni = m.Rocnik.objects.get(rocnik=letos.rocnik - 1) - except ObjectDoesNotExist: - # Pro první ročník neexistuje ročník předchozí - zacatek_rocniku = False - - if not zacatek_rocniku: - return resi_v_rocniku(letos, cislo).filter(rok_maturity__gte=letos.druhy_rok()) - else: - # spojíme querysety s řešiteli loni a letos do daného čísla - return (resi_v_rocniku(loni) | resi_v_rocniku(letos, cislo)).distinct().filter(rok_maturity__gte=letos.druhy_rok()) - -def viewMethodSwitch(get, post): - """ - Vrátí view, který zavolá různé jiné views podle toho, kterou metodou je zavolán. - - Inspirováno https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#an-alternative-better-solution, jen jsem to udělal genericky. - - Parametry: - post view pro metodu POST - get view pro metodu GET - - V obou případech se míní už view jakožto funkce, takže u class-based views se už má použít .as_view() - - TODO: Podpora i pro metodu HEAD? A možná i pro FILES? - """ - - theGetView = get - thePostView = post - - class NewView(DjangoViews.View): - def get(self, request, *args, **kwargs): - return theGetView(request, *args, **kwargs) - def post(self, request, *args, **kwargs): - return thePostView(request, *args, **kwargs) - - return NewView.as_view() - - -def sync_skoly(base_url): - """Stáhne všechny školy z mamwebu na adrese a uloží je do databáze""" - from django.urls import reverse - full_url = base_url.rstrip('/') + reverse('export_skoly') - import requests - from django.core import serializers - json = requests.get(full_url, stream=True).content - for skola in serializers.deserialize('json', json): - skola.save() - -@transaction.atomic -def merge_resitele(cilovy, zdrojovy): - """Spojí dva řešitelské objekty do cílového. - - Pojmenování "zdrojový" je silně nepřiléhající, ale co už…""" - - # Postup: - # Sjednotit / upravit informace cílového řešitele - print('Upravuji data modelu') - fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove'] - - for f in fieldy_shoda: - zf = getattr(zdrojovy, f) - cf = getattr(cilovy, f) - if cf == zf: - print(f' Údaj {f} je shodný ({zf})') - else: - if zf is None: - print(f' Údaj {f} je pouze v cílovém, používám') - continue - if cf is None: - setattr(cilovy, f, zf) - cilovy.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojového: {zf}' - print(f" Přiřazuji {f} ze zdrojového: {zf}") - continue - # Jsou fakt různé… - # FIXME: chybí možnost na vlastní úpravu… - verdikt = input(f"\n\n Údaj {f} se u řešitele {cilovy} ({cilovy.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") - verdikt = verdikt[0].casefold() - if verdikt == 'z': - setattr(cilovy, f, zf) - cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojový), nepoužit {cf} (cílový)' - elif verdikt == 'c': - cilovy.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílový), nepoužit {zf} (zdrojový)' - else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') - # poznámku chceme nezahodit… - cilovy.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojovy.poznamka}' - print(f' Výsledný řešitel: {cilovy.__dict__}, ukládám') - cilovy.save() - - - # Přepojit všechny vazby ze zdrojového na cílového - print('Přepojuji vazby') - # Vazby: Škola (hotovo), Řešení_Řešitelé, Konfery_Účastníci, Soustředění_Účastníci, Osoba (vyřeší se později, nejde přepojit) - ct = m.Reseni_Resitele.objects.filter(resitele=zdrojovy).update(resitele=cilovy) - print(f' Přepojeno {ct} řešení') - ct = m.Konfery_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) - print(f' Přepojeno {ct} konfer') - ct = m.Soustredeni_Ucastnici.objects.filter(resitel=zdrojovy).update(resitel=cilovy) - print(f' Přepojeno {ct} sousů') - - # Teď by na zdrojovém řešiteli nemělo nic viset, smazat ho, pamatujíce si jeho Osobu - zdrosoba = zdrojovy.osoba - print(f'Mažu zdrojového řešitele {zdrojovy.__dict__}') - zdrojovy.delete() - # Spojit osoby (separátní funkce). - merge_osoby(cilovy.osoba, zdrosoba) - - input("Potvrdit transakci řešitelů (^C pro zrušení) ") - -@transaction.atomic -def merge_osoby(cilova, zdrojova): - """ Spojí dvě osoby do cílové - - Nehlídá omezení typu "max 1 řešitel na osobu", to by měla hlídat databáze (OneToOneField).""" - # Sjednocení dat - print('Sjednocuji data osob') - # ID, User neřešíme, poznámku vyřešíme separátně. - fieldy = ['datum_narozeni', 'datum_registrace', 'datum_souhlasu_udaje', - 'datum_souhlasu_zasilani', 'email', 'foto', 'jmeno', 'mesto', - 'osloveni', 'prezdivka', 'prijmeni', 'psc', 'stat', 'telefon', 'ulice'] - for f in fieldy: - zf = getattr(zdrojova, f) - cf = getattr(cilova, f) - if cf == zf: - print(f' Údaj {f} je shodný ({zf})') - else: - if zf is None: - print(f' Údaj {f} je pouze v cílové, používám') - continue - if cf is None: - setattr(cilova, f, zf) - cilova.poznamka += f'\nDEBUG: Merge: doplnéný údaj {f} ze zdrojové: {zf}' - print(f" Přiřazuji {f} ze zdrojové: {zf}") - continue - # Jsou fakt různé… - # FIXME: chybí možnost na vlastní úpravu… - verdikt = input(f"\n\n Údaj {f} se u osoby {cilova} ({cilova.id}) liší:\n Zdrojový: {zf}\n Cílový: {cf}\n Který použít, [z]drojový, [c]ílový? ") - verdikt = verdikt[0].casefold() - if verdikt == 'z': - setattr(cilova, f, zf) - cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {zf} (zdrojová), nepoužit {cf} (cílová)' - elif verdikt == 'c': - cilova.poznamka += f'\nDEBUG: Merge: pro {f} použit údaj {cf} (cílová), nepoužit {zf} (zdrojová)' - else: raise ValueError('Špatná odpověď, řešitel pravděpodobně neuložen') - # poznámku chceme nezahodit… - cilova.poznamka += f'\nDEBUG: Merge: Původní poznámka: {zdrojova.poznamka}' - print(f' Výsledná osoba: {cilova.__dict__}, ukládám') - cilova.save() - - # Vazby: Řešitel, User, Příjemce, Organizátor, Škola.kontaktní_osoba - print('Přepojuji vazby') - ct = m.Skola.objects.filter(kontaktni_osoba=zdrojova).update(kontaktni_osoba=cilova) - print(f' Přepojeno {ct} kontaktních osob') - # Ostatní vazby vyřeší OneToOneFieldy, ale někdy nemusí existovat… - ct = m.Resitel.objects.filter(osoba=zdrojova).update(osoba=cilova) - print(f' Přepojeno {ct} řešitelů') - ct = m.Prijemce.objects.filter(osoba=zdrojova).update(osoba=cilova) - print(f' Přepojeno {ct} příjemců') - ct = m.Organizator.objects.filter(osoba=zdrojova).update(osoba=cilova) - print(f' Přepojeno {ct} organizátorů') - # Uživatelé vedou opačným směrem, radši chceme zkontrolovat, že jsou různí ručně: - if zdrojova.user != cilova.user: - # Jeden z nich může být nenastavený… - if zdrojova.user is None: - print('Uživatel je již v cílové osobě') - elif cilova.user is None: - print('Používám uživatele zdrojové osoby') - cilova.user = zdrojova.user - # Teď nemůžeme uložit, protože kolize uživatelů. Ukládat cílovou budeme až po smazání zdrojové. - else: raise ValueError('Osoby mají obě uživatele, radši padám') - - # Uložení a mazání - print(f'Mažu zdrojovou osobu {zdrojova.__dict__}') - zdrojova.delete() - print(f'Ukládám cílovou osobu {cilova.__dict__}') - cilova.save() - - input("Potvrdit transakci osob (^C pro zrušení) ") - - diff --git a/sifrovacka/urls.py b/sifrovacka/urls.py index 85f9c4cc..1357ef27 100644 --- a/sifrovacka/urls.py +++ b/sifrovacka/urls.py @@ -1,6 +1,6 @@ from django.urls import path -from seminar.utils import org_required, resitel_or_org_required +from personalni.utils import org_required, resitel_or_org_required from .views import SifrovackaView, SifrovackaListView, NapovedaView, NapovedaListView, PreskoceniView urlpatterns = [ diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 2e5a6136..92cfad18 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ path( diff --git a/tvorba/urls.py b/tvorba/urls.py index b5ebed98..e662491c 100644 --- a/tvorba/urls.py +++ b/tvorba/urls.py @@ -1,6 +1,6 @@ from django.urls import path, include, re_path from . import views -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ # path('aktualni/temata/', views.TemataRozcestnikView), diff --git a/tvorba/utils.py b/tvorba/utils.py new file mode 100644 index 00000000..ba0c5d5b --- /dev/null +++ b/tvorba/utils.py @@ -0,0 +1,89 @@ +from django.core.exceptions import ObjectDoesNotExist + +import personalni.models + +import seminar.models as m + + +def resi_v_rocniku(rocnik, cislo=None): + """ Vrátí seznam řešitelů, co vyřešili nějaký problém v daném ročníku, do daného čísla. + Parametry: + rocnik (typu Rocnik) ročník, ze kterého chci řešitele, co něco odevzdali + cislo (typu Cislo) číslo, do kterého včetně se počítá, že v daném + ročníku řešitel něco poslal. + Pokud není zadané, počítají se všechna řešení z daného ročníku. + Výstup: + QuerySet objektů typu Resitel """ + + if cislo is None: + # filtrujeme pouze podle ročníku + return personalni.models.Resitel.objects.filter( + rok_maturity__gte=rocnik.druhy_rok(), + reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik + ).distinct() + else: # filtrujeme podle ročníku i čísla + return personalni.models.Resitel.objects.filter( + rok_maturity__gte=rocnik.druhy_rok(), + reseni__hodnoceni__deadline_body__cislo__rocnik=rocnik, + reseni__hodnoceni__deadline_body__cislo__poradi__lte=cislo.poradi + ).distinct() + + +def aktivniResitele(cislo, pouze_letosni=False): + """ Vrací QuerySet aktivních řešitelů, což jsou ti, co ještě neodmaturovali + a letos něco poslali (anebo loni něco poslali, pokud jde o první tři čísla). + Parametry: + cislo (typu Cislo) číslo, o které se jedná + pouze_letosni jen řešitelé, kteří tento rok něco poslali + + """ + letos = cislo.rocnik + + # detekujeme, zda jde o první tři čísla či nikoli (tj. zda spamovat řešitele z minulého roku) + zacatek_rocniku = True + try: + if int(cislo.poradi) > 3: + zacatek_rocniku = False + except ValueError: + # if cislo.poradi != '7-8': + # raise ValueError(f'{cislo} je neplatné číslo čísla (není int a není 7-8)') + zacatek_rocniku = False + + # nehledě na číslo chceme jen řešitele, kteří letos něco odevzdali + if pouze_letosni: + zacatek_rocniku = False + + try: + loni = m.Rocnik.objects.get(rocnik=letos.rocnik - 1) + except ObjectDoesNotExist: + # Pro první ročník neexistuje ročník předchozí + zacatek_rocniku = False + + if not zacatek_rocniku: + return resi_v_rocniku(letos, cislo).filter(rok_maturity__gte=letos.druhy_rok()) + else: + # spojíme querysety s řešiteli loni a letos do daného čísla + return (resi_v_rocniku(loni) | resi_v_rocniku(letos, cislo))\ + .distinct().filter(rok_maturity__gte=letos.druhy_rok()) + + +# Pozor: zarovnáno velmi netradičně pro přehlednost +roman_numerals = zip((1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1), # noqa + ('M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I')) # noqa + + +def roman(num): + res = "" + for i, n in roman_numerals: + res += n * (num // i) + num %= i + return res + + +def from_roman(rom): + if not rom: + return 0 + for i, n in roman_numerals: + if rom.upper().startswith(n): + return i + from_roman(rom[len(n):]) + raise Exception('Invalid roman numeral: "%s"', rom) diff --git a/tvorba/views/views_all.py b/tvorba/views/views_all.py index b4bbad92..f960aac8 100644 --- a/tvorba/views/views_all.py +++ b/tvorba/views/views_all.py @@ -15,7 +15,6 @@ from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ Resitel, Novinky, Tema, Clanek, \ Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva -from seminar import utils from treenode import treelib import treenode.templatetags as tnltt import treenode.serializers as vr @@ -32,9 +31,10 @@ import unicodedata import logging import time -from seminar.utils import aktivniResitele import personalni.views +from .. import utils + # ze starého modelu #def verejna_temata(rocnik): # """ @@ -368,7 +368,7 @@ class OdmenyView(generic.TemplateView): context = super().get_context_data(**kwargs) fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) - resitele = aktivniResitele(tocislo) + resitele = utils.aktivniResitele(tocislo) def get_diff(from_deadline: Deadline, to_deadline: Deadline): frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) @@ -481,7 +481,7 @@ class RocnikVysledkovkaView(RocnikView): def cisloObalkyView(request, rocnik, cislo): realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) - return personalni.views.obalkyView(request, aktivniResitele(realne_cislo)) + return personalni.views.obalkyView(request, utils.aktivniResitele(realne_cislo)) diff --git a/various/urls.py b/various/urls.py index ae2d3042..a3f03ade 100644 --- a/various/urls.py +++ b/various/urls.py @@ -1,6 +1,6 @@ from django.urls import path from .views.final import TitulniStranaView, JakResitView, StavDatabazeView -from seminar.utils import org_required +from personalni.utils import org_required urlpatterns = [ path('', TitulniStranaView.as_view(), name='titulni_strana'), diff --git a/various/views/final.py b/various/views/final.py index 12a18250..de23a718 100644 --- a/various/views/final.py +++ b/various/views/final.py @@ -4,13 +4,15 @@ Stránky, které se mi nepovedlo lépe zařadit. Oproti `./pomocne.py` se tyto views používají přímo ve various a naopak importují spoustu věcí odjinud """ +import datetime +from django.contrib.contenttypes.models import ContentType from django.shortcuts import get_object_or_404, render from django.utils import timezone from django.views import generic import novinky.views -import seminar.utils +import treenode.treelib as t import tvorba.views from personalni.models import Resitel from seminar import models as m @@ -56,9 +58,94 @@ class JakResitView(generic.ListView): ### Status +def histogram(seznam): + d = {} + for i in seznam: + if i not in d: + d[i] = 0 + d[i] += 1 + return d + + +def seznam_problemu(): + """Funkce pro hledání nekonzistencí v databázi a dalších nežádoucích stavů webu/databáze. + + Nijak nesouvisí s Problémy zadanými řešitelům.""" + # FIXME: přejmenovat funkci? + problemy = [] + + # Pomocna fce k formatovani problemovych hlasek + def prb(cls, msg, objs=None): + s = '%s: %s' % (cls.__name__, msg) + if objs: + s += ' [' + for o in objs: + try: + url = o.admin_url() + except: + url = None + if url: + s += '%s, ' % (url, o.pk,) + else: + s += '%s, ' % (o.pk,) + s = s[:-2] + ']' + problemy.append(s) + + # Duplicita jmen + jmena = {} + for r in m.Resitel.objects.all(): + j = r.osoba.plne_jmeno() + if j not in jmena: + jmena[j] = [] + jmena[j].append(r) + for j in jmena: + if len(jmena[j]) > 1: + prb(m.Resitel, 'Duplicitní jméno "%s"' % (j,), jmena[j]) + + # Data maturity a narození + for r in m.Resitel.objects.all(): + if not r.rok_maturity: + prb(m.Resitel, 'Neznámý rok maturity', [r]) + if r.rok_maturity and (r.rok_maturity < 1990 or r.rok_maturity > datetime.date.today().year + 10): + prb(m.Resitel, 'Podezřelé datum maturity', [r]) + if r.osoba.datum_narozeni and ( + r.osoba.datum_narozeni.year < 1970 or r.osoba.datum_narozeni.year > datetime.date.today().year - 12): + prb(m.Resitel, 'Podezřelé datum narození', [r]) + # if not r.email: + # prb(Resitel, u'Neznámý email', [r]) + + ## Kontroly konzistence databáze a TreeNodů + + # Články + for clanek in m.Clanek.objects.all(): + # získáme řešení svázané se článkem a z něj node ve stromě + reseni = clanek.reseni_set + if (reseni.count() != 1): + raise ValueError("Článek k sobě má nejedno řešení!") + r = reseni.first() + clanek_node = r.text_cely # vazba na ReseniNode z Reseni + # content type je věc pomáhající rozeznávat různé typy objektů v django-polymorphic + # protože isinstance vrátí vždy jen TreeNode + # https://django-polymorphic.readthedocs.io/en/stable/migrating.html + cislonode_ct = ContentType.objects.get_for_model(m.CisloNode) + node = clanek_node + while node is not None: + node_ct = node.polymorphic_ctype + if node_ct == cislonode_ct: # dostali jsme se k CisloNode + # zkontrolujeme, že stromové číslo odpovídá atributu + # .cislonode je opačná vazba k treenode_ptr, abychom z TreeNode dostali + # CisloNode + if clanek.cislo != node.cislonode.cislo: + prb(m.Clanek, "Číslo otištění uložené u článku nesedí s " + "číslem otištění podle struktury treenodů.", [clanek]) + break + node = t.get_parent(node) + + return problemy + def StavDatabazeView(request): # nastaveni = Nastaveni.objects.get() - problemy = seminar.utils.seznam_problemu() + problemy = seznam_problemu() muzi = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_MUZSKE) zeny = Resitel.objects.filter(osoba__osloveni=m.Osoba.OSLOVENI_ZENSKE) return render(request, 'various/stav_databaze.html', { @@ -68,6 +155,6 @@ def StavDatabazeView(request): 'resitele': Resitel.objects.all(), 'muzi': muzi, 'zeny': zeny, - 'jmena_muzu': seminar.utils.histogram([r.osoba.jmeno for r in muzi]), - 'jmena_zen': seminar.utils.histogram([r.osoba.jmeno for r in zeny]), + 'jmena_muzu': histogram([r.osoba.jmeno for r in muzi]), + 'jmena_zen': histogram([r.osoba.jmeno for r in zeny]), }) diff --git a/various/views/generic.py b/various/views/generic.py new file mode 100644 index 00000000..b18178fb --- /dev/null +++ b/various/views/generic.py @@ -0,0 +1,29 @@ +import django.views + + +def viewMethodSwitch(get, post): + """ + Vrátí view, který zavolá různé jiné views podle toho, kterou metodou je zavolán. + + Inspirováno https://docs.djangoproject.com/en/3.1/topics/class-based-views/mixins/#an-alternative-better-solution, jen jsem to udělal genericky. + + Parametry: + post view pro metodu POST + get view pro metodu GET + + V obou případech se míní už view jakožto funkce, takže u class-based views se už má použít .as_view() + + TODO: Podpora i pro metodu HEAD? A možná i pro FILES? + """ + + theGetView = get + thePostView = post + + class NewView(django.views.View): + def get(self, request, *args, **kwargs): + return theGetView(request, *args, **kwargs) + + def post(self, request, *args, **kwargs): + return thePostView(request, *args, **kwargs) + + return NewView.as_view() diff --git a/vyroci/urls.py b/vyroci/urls.py index 69132f45..44215a46 100644 --- a/vyroci/urls.py +++ b/vyroci/urls.py @@ -1,6 +1,6 @@ from django.urls import path -from seminar.utils import org_required +from personalni.utils import org_required from .views import VyrociView, VyrociListView urlpatterns = [ diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index 2036b9d3..7cd914f4 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -4,7 +4,7 @@ from typing import Union, Iterable # TODO: s pythonem 3.10 přepsat na '|' import seminar.models as m from django.db.models import Q, Sum -from seminar.utils import resi_v_rocniku +from tvorba.utils import resi_v_rocniku ROCNIK_ZRUSENI_TEMAT = 25 From 0b0a939de5c33110b0870e0d48942a0a9cd1230b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 19:38:06 +0200 Subject: [PATCH 491/515] =?UTF-8?q?Odd=C4=9Blen=C3=AD=20generov=C3=A1n?= =?UTF-8?q?=C3=AD=20testdat=20k=20sous=20v=C4=9Bcem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 52 +++-------------------------------- soustredeni/testutils.py | 59 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 48 deletions(-) create mode 100644 soustredeni/testutils.py diff --git a/seminar/testutils.py b/seminar/testutils.py index be7f3677..51f3f362 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -10,13 +10,15 @@ import unidecode import logging from korektury.testutils import create_test_pdf -from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Soustredeni, Soustredeni_Ucastnici, Soustredeni_Organizatori, Osoba, Organizator, Prijemce, Tema, Uloha, Konfera, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode +from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode import seminar.models as m from django.contrib.flatpages.models import FlatPage from django.contrib.sites.models import Site from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after +from soustredeni.testutils import gen_soustredeni, gen_konfery + User = django.contrib.auth.get_user_model() zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu @@ -352,30 +354,6 @@ def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) return -def gen_soustredeni(rnd, resitele, organizatori): - logger.info('Generuji soustředění...') - - soustredeni = [] - for _ in range(1, 10): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - datum_zacatku=datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) - working_sous = Soustredeni.objects.create( - rocnik=Rocnik.objects.order_by('?').first(), - verejne_db=rnd.choice([True, False]), - misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), - typ=rnd.choice(['jarni', 'podzimni', 'vikend']), - datum_zacatku=datum_zacatku, - datum_konce=datum_zacatku + datetime.timedelta(days=7)) - ucastnici = rnd.sample(resitele, min(len(resitele), 20)) - working_sous.ucastnici.set(ucastnici) - #for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) - orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) - working_sous.organizatori.set(orgove_vyber) - #for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) - working_sous.save() - soustredeni.append(working_sous) - return soustredeni def gen_rocniky(last_rocnik, size): logger.info('Generuji ročníky (size={})...'.format(size)) @@ -390,28 +368,6 @@ def gen_rocniky(last_rocnik, size): rocniky.append(rocnik) return rocniky -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): - logger.info('Generuji konfery (size={})...'.format(size)) - - konfery = [] - for _ in range(1, size): #FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) - # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, - # kolik dat se nageneruje - konfera = Konfera.objects.create( - nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), - anotace=lorem.paragraph(), - abstrakt=lorem.paragraph(), - garant=rnd.choice(organizatori), - soustredeni=rnd.choice(soustredeni), - typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) - ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) - konfera.ucastnici.set(ucastnici) - #for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) - konfera.save() - konfery.append(konfera) - return konfery def gen_cisla(rnd, rocniky): logger.info('Generuji čísla...') @@ -881,7 +837,7 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) #generování konfer konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py new file mode 100644 index 00000000..12a48378 --- /dev/null +++ b/soustredeni/testutils.py @@ -0,0 +1,59 @@ +import logging +import datetime + +import lorem + +from .models import Soustredeni, Konfera +import seminar.models.tvorba as am + +logger = logging.getLogger(__name__) + + +def gen_soustredeni(size, rnd, resitele, organizatori): + logger.info('Generuji soustředění...') + + soustredeni = [] + for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + datum_zacatku = datetime.date(rnd.randint(2000, 2020), rnd.randint(1, 12), rnd.randint(1, 28)) + working_sous = Soustredeni.objects.create( + rocnik=am.Rocnik.objects.order_by('?').first(), + verejne_db=rnd.choice([True, False]), + misto=rnd.choice(['Kremrolovice', 'Indiánov', 'U zmzliny', 'Vafláreň', 'Větrník', 'Horní Rakvička', 'Dolní cheesecake']), + typ=rnd.choice(['jarni', 'podzimni', 'vikend']), + datum_zacatku=datum_zacatku, + datum_konce=datum_zacatku + datetime.timedelta(days=7)) + ucastnici = rnd.sample(resitele, min(len(resitele), 20)) + working_sous.ucastnici.set(ucastnici) + # for res in rnd.sample(resitele, min(len(resitele), 20)): + # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) + orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) + working_sous.organizatori.set(orgove_vyber) + # for org in rnd.sample(organizatori, min(len(organizatori), 20)): + # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) + working_sous.save() + soustredeni.append(working_sous) + return soustredeni + + +def gen_konfery(size, rnd, organizatori, resitele, soustredeni): + logger.info('Generuji konfery (size={})...'.format(size)) + + konfery = [] + for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) + # Anet: size je parametr udávající velikost testovacích dat a dá se pomocí ní škálovat, + # kolik dat se nageneruje + konfera = Konfera.objects.create( + nazev=rnd.choice(['Pozorování', 'Zkoumání', 'Modelování', 'Počítání', 'Zkoušení']) + rnd.choice([' vlastností', ' jevů', ' charakteristik']) + rnd.choice([' vektorových prostorů', ' kinetické terorie látek', ' molekulární biologie', ' syntentických stromů']), + anotace=lorem.paragraph(), + abstrakt=lorem.paragraph(), + garant=rnd.choice(organizatori), + soustredeni=rnd.choice(soustredeni), + typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) + ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) + konfera.ucastnici.set(ucastnici) + # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): + # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) + konfera.save() + konfery.append(konfera) + return konfery From 6a781323e0e01f4b791be44f2289c0a925c91848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:05:19 +0200 Subject: [PATCH 492/515] =?UTF-8?q?Typov=C3=A9=20anotace=20a=20dal=C5=A1?= =?UTF-8?q?=C3=AD=20detaily=20v=20generov=C3=A1n=C3=AD=20testdat=20k=20sou?= =?UTF-8?q?stredeni?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 4 ++-- soustredeni/testutils.py | 22 +++++++++++++++++++--- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index 51f3f362..b7bd61e2 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -837,10 +837,10 @@ def create_test_data(size = 6, rnd = None): gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) #generování soustředění - soustredeni = gen_soustredeni(size, rnd, resitele, organizatori) + soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, rnd, organizatori, resitele, soustredeni) + konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 12a48378..51bbb135 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -1,16 +1,25 @@ import logging import datetime +import random +from typing import Sequence import lorem from .models import Soustredeni, Konfera import seminar.models.tvorba as am +import personalni.models as pm logger = logging.getLogger(__name__) -def gen_soustredeni(size, rnd, resitele, organizatori): - logger.info('Generuji soustředění...') +def gen_soustredeni( + size: int, + resitele: Sequence[pm.Resitel], + organizatori: Sequence[pm.Organizator], + rnd: random.Random = None, +) -> Sequence[Soustredeni]: + logger.info('Generuji soustředění (size={})...') + rnd = rnd or random.Random(x=42) soustredeni = [] for _ in range(1, 10): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) @@ -35,8 +44,15 @@ def gen_soustredeni(size, rnd, resitele, organizatori): return soustredeni -def gen_konfery(size, rnd, organizatori, resitele, soustredeni): +def gen_konfery( + size: int, + organizatori: Sequence[pm.Organizator], + resitele: Sequence[pm.Resitel], + soustredeni: Sequence[Soustredeni], + rnd: random.Random = None, +) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) + rnd = rnd or random.Random(x=42) konfery = [] for _ in range(1, size): # FIXME Tu range si změňte jak chcete, nevím, co přesně znamená size (asi Anet?) From bf748b55ee7145ee7e06a87e6adee40647aa41d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:15:02 +0200 Subject: [PATCH 493/515] =?UTF-8?q?Odstran=C4=9Bn=20zakomentovan=C3=BD=20z?= =?UTF-8?q?byte=C4=8Dn=C4=9B=20slo=C5=BEit=C3=BD=20k=C3=B3d?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/testutils.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 51bbb135..6e406530 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -33,12 +33,8 @@ def gen_soustredeni( datum_konce=datum_zacatku + datetime.timedelta(days=7)) ucastnici = rnd.sample(resitele, min(len(resitele), 20)) working_sous.ucastnici.set(ucastnici) - # for res in rnd.sample(resitele, min(len(resitele), 20)): - # Soustredeni_Ucastnici.objects.create(resitel=res, soutredeni=working_sous) orgove_vyber = rnd.sample(organizatori, min(len(organizatori), 20)) working_sous.organizatori.set(orgove_vyber) - # for org in rnd.sample(organizatori, min(len(organizatori), 20)): - # Soustredeni_Organizatori.objects.create(organizator=org, soutredeni=working_sous) working_sous.save() soustredeni.append(working_sous) return soustredeni @@ -68,8 +64,6 @@ def gen_konfery( ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) - # for res in rnd.sample(ucastnici, min(len(ucastnici), rnd.randint(3, 6))): - # Konfery_Ucastnici.objects.create(resitel=res, konfera=konfera) konfera.save() konfery.append(konfera) return konfery From d952ab13a5c8bbd39b1c660400c4cd6f0ba9b81c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 2 Aug 2024 20:17:31 +0200 Subject: [PATCH 494/515] =?UTF-8?q?Generov=C3=A1n=C3=AD=20konfer=20s=20kon?= =?UTF-8?q?kr=C3=A9tn=C3=ADmi=20=C5=99e=C5=A1iteli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/testutils.py | 2 +- soustredeni/testutils.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/seminar/testutils.py b/seminar/testutils.py index b7bd61e2..18bbbe2e 100644 --- a/seminar/testutils.py +++ b/seminar/testutils.py @@ -840,7 +840,7 @@ def create_test_data(size = 6, rnd = None): soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) #generování konfer - konfery = gen_konfery(size, organizatori, resitele, soustredeni, rnd=rnd) + konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) # vytvoreni pdf ke korekturam create_test_pdf(rnd, organizatori) diff --git a/soustredeni/testutils.py b/soustredeni/testutils.py index 6e406530..52e81d1c 100644 --- a/soustredeni/testutils.py +++ b/soustredeni/testutils.py @@ -43,8 +43,8 @@ def gen_soustredeni( def gen_konfery( size: int, organizatori: Sequence[pm.Organizator], - resitele: Sequence[pm.Resitel], soustredeni: Sequence[Soustredeni], + resitele: Sequence[pm.Resitel] = None, rnd: random.Random = None, ) -> Sequence[Konfera]: logger.info('Generuji konfery (size={})...'.format(size)) @@ -61,7 +61,7 @@ def gen_konfery( garant=rnd.choice(organizatori), soustredeni=rnd.choice(soustredeni), typ_prezentace=rnd.choice(['veletrh', 'prezentace'])) - ucastnici_sous = list(konfera.soustredeni.ucastnici.all()) + ucastnici_sous = resitele if resitele else list(konfera.soustredeni.ucastnici.all()) ucastnici = rnd.sample(ucastnici_sous, min(len(ucastnici_sous), rnd.randint(3, 6))) konfera.ucastnici.set(ucastnici) konfera.save() From 348096024eb89ca1797b64c82fb88feb95714ffe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 6 Aug 2024 02:33:53 +0200 Subject: [PATCH 495/515] seminar/testutils.py --- novinky/testutils.py | 27 ++ odevzdavatko/testutils.py | 40 +++ personalni/testutils.py | 235 +++++++++++++++ {seminar => tvorba}/testutils.py | 370 +----------------------- various/management/commands/testdata.py | 4 +- various/testutils.py | 135 +++++++++ 6 files changed, 443 insertions(+), 368 deletions(-) create mode 100644 novinky/testutils.py create mode 100644 odevzdavatko/testutils.py create mode 100644 personalni/testutils.py rename {seminar => tvorba}/testutils.py (53%) create mode 100644 various/testutils.py diff --git a/novinky/testutils.py b/novinky/testutils.py new file mode 100644 index 00000000..f1ef6adc --- /dev/null +++ b/novinky/testutils.py @@ -0,0 +1,27 @@ +import logging + +from .models import Novinky + +logger = logging.getLogger(__name__) + + +def gen_novinky(rnd, organizatori): + logger.info('Generuji novinky...') + + jake = ["zábavné", "veselé", "dobrodružné", "skvělé"] + co = ["soustředění", "Fyziklání", "víkendové setkání"] + kde = ["na Šumavě", "v Praze", "u Plzně", "na Marsu"] + kdy = ["Zítra bude", "10. 10. 2020 bude", "V prosinci bude", "V létě bude"] + + for i in range(5): + text_novinky = " ".join([ + rnd.choice(kdy), rnd.choice(kde), + rnd.choice(jake), rnd.choice(co), + ]) + novinka = Novinky.objects.create( + id=i, autor=rnd.choice(organizatori), + text=(text_novinky+", těšíme se na vás!"), + zverejneno=rnd.choice([True, False]), + ) + novinka.save() + return diff --git a/odevzdavatko/testutils.py b/odevzdavatko/testutils.py new file mode 100644 index 00000000..1f382438 --- /dev/null +++ b/odevzdavatko/testutils.py @@ -0,0 +1,40 @@ +import datetime +import random + +from seminar.models.odevzdavatko import Reseni, Hodnoceni + + +def gen_reseni_ulohy(rnd, cisla, uloha, pocet_resitelu, poradi_cisla, resitele_cisla, resitele): + pocet_reseni = rnd.randint(pocet_resitelu//4, pocet_resitelu * 4) + # generujeme náhodný počet řešení vzhledem k počtu řešitelů čísla + for _ in range(pocet_reseni): + #print("Generuji {}-té řešení".format(reseni)) + if rnd.randint(1, 10) == 1: + # cca desetina řešení od více řešitelů + res_vyber = rnd.sample(resitele_cisla, rnd.randint(2, 5)) + else: + res_vyber = rnd.sample(resitele_cisla, 1) + if resitele[0] in res_vyber: # speciální řešitel, který nemá žádné body + res_vyber.remove(resitele[0]) + + # Vytvoření řešení. + if uloha.cislo_zadani.zlomovy_deadline_pro_papirove_cislo() is not None: + # combine, abychom dostali plný čas a ne jen datum + cas_doruceni = uloha.cislo_zadani.deadline_v_cisle.first().deadline - datetime.timedelta(days=random.randint(0, 40)) - datetime.timedelta(minutes=random.randint(0, 60*24)) + # astimezone, protože jinak vyhazuje warning o nenastavené TZ + res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0], cas_doruceni=cas_doruceni.astimezone(datetime.timezone.utc)) + else: + res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0]) + # Problém a řešitele přiřadíme později, ManyToManyField + # se nedá vyplnit v create(). + res.resitele.set(res_vyber) + res.save() + + # Vytvoření hodnocení. + hod = Hodnoceni.objects.create( + body=rnd.randint(0, uloha.max_body), + cislo_body=cisla[poradi_cisla - 1], + reseni=res, + problem=uloha + ) + return diff --git a/personalni/testutils.py b/personalni/testutils.py new file mode 100644 index 00000000..2b2d6bcc --- /dev/null +++ b/personalni/testutils.py @@ -0,0 +1,235 @@ +import datetime +import logging +import unidecode + +from django.contrib.auth.models import Permission +from django.contrib.auth.models import Group +import django.contrib.auth + +from .models import Osoba, Skola, Organizator, Resitel, Prijemce + +logger = logging.getLogger(__name__) + +User = django.contrib.auth.get_user_model() + +zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu + + +# testuje unikátnost vygenerovaného jména +def __unikatni_jmeno(osoby, jmeno, prijmeni): + for os in osoby: + if os.jmeno == jmeno and os.prijmeni == prijmeni: + return 0 + else: + return 1 + + +def gen_osoby(rnd, size): + logger.info('Generuji osoby (size={})...'.format(size)) + + jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] + jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie', 'Marta Iva', 'Shu Shan'] + prijmeni_m = ['Novotný', 'Svoboda', 'Pecha', 'Kořen', 'Holan', 'Uhlíř', 'Chytráček', 'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"] + prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná', 'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui', "Nováčková Tydlitátová"] + prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "", "", "", 'Riki', 'Sapa', "", '', '---', 'Koko'] + domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz', 'british.co.uk', 'splachni.to', 'haha.org'] + seznam_ulic = ['Krátká', 'Vlhká', 'Jungmanova', '17. listopadu', '4. října', 'Roztocká', 'Forstova', 'Generála Františka Janouška', 'Náměstí Války', 'Svratecké náměstí', 'Zelená lhota', 'Z Plynu', 'K Jezeru', 'U Kocourkova', 'Uštěpačná', 'Ostrorepská', 'Zubří'] + seznam_mest = ['Praha', 'Brno', 'Ostrava', 'Horní Jelení', 'Dolní Zábrdovice', 'Prdelkov', 'Stará myslivna', 'Kocourkov', 'Šalingrad', 'Medvědí hora', 'Basilej', 'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] + + osoby = [] + # 30 je náhodná konstanta, size je použité na víc místech a + # říká, jak velká asi chceme testovací data + for i in range(30 * size): + pohlavi_idx = rnd.randint(0, 2) # 2 = nebinární + osloveni = [Osoba.OSLOVENI_MUZSKE, Osoba.OSLOVENI_ZENSKE, Osoba.OSLOVENI_ZADNE][pohlavi_idx] + jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) + prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) + if pohlavi_idx == 2: logger.debug(f'Testdata: nebinární osoba: {jmeno} {prijmeni}.') + pokusy = 0 + max_pokusy = 120*size + while not __unikatni_jmeno and pokusy < max_pokusy: + # pokud jméno a příjmení není unikátní, zkoušíme generovat nová + # do daného limitu (abychom se nezacyklili do nekonečna při málo jménech a příjmeních + # ze kterých se generuje) + jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) + prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) + pokusy += 1 + if pokusy >= max_pokusy: + print("Chyba, na danou velikost testovacích dat příliš málo možných jmen a příjmení") + exit() + prezdivka = rnd.choice(prezdivky) + email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)]) + telefon = "".join([str(rnd.choice([k for k in range(10)])) for _ in range(9)]) + narozeni = datetime.date( + rnd.randint(1980, datetime.datetime.now().year), + rnd.randint(1, 12), + rnd.randint(1, 28) + ) + ulic = rnd.choice(seznam_ulic) + cp = rnd.randint(1, 99) + ulice = " ".join([ulic, str(cp)]) + mesto = rnd.choice(seznam_mest) + psc = "".join([str(rnd.choice([k for k in range(10)])) for _ in range(5)]) + + osoby.append(Osoba.objects.create( + jmeno=jmeno, prijmeni=prijmeni, + prezdivka=prezdivka, osloveni=osloveni, + email=email, telefon=telefon, + datum_narozeni=narozeni, + ulice=ulice, mesto=mesto, psc=psc, + datum_registrace=datetime.date( + rnd.randint(2019, 2029), rnd.randint(1, 12), rnd.randint(1, 28) + ) + )) + + # TODO pridat foto male a velke. Jak? + # Pavel tvrdí, že to necháme a přidáme až do adminu + + return osoby + + +def gen_skoly(): # TODO někdy to přepsat, aby jich bylo více + logger.info('Generuji školy...') + + skoly = [] + prvnizs = Skola.objects.create( + mesto='Praha', stat='CZ', psc='101 00', + ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False, + ) + skoly.append(prvnizs) + skoly.append(Skola.objects.create( + mesto='Praha', stat='CZ', psc='101 00', + ulice='Krátká 5', nazev='První SŠ', je_zs=False, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Praha', stat='CZ', psc='102 00', + ulice='Dlouhá 5', nazev='Druhá SŠ', je_zs=False, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Praha', stat='CZ', psc='103 00', + ulice='Široká 3', nazev='Třetí SŠ a ZŠ', je_zs=True, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Ostrava', stat='CZ', psc='700 00', + ulice='Hluboká 42', nazev='Hutní gympl', je_zs=False, je_ss=True, + )) + skoly.append(Skola.objects.create( + mesto='Humenné', stat='SK', psc='012 34', + ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True, + )) + global zlinska + zlinska = Skola.objects.create( + mesto='Zlín', stat='CZ', psc='76001', + ulice='náměstí T.G. Masaryka 2734-9', + nazev='Gymnázium a Střední jazyková škola s právem SJZ', + kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True, + ) + skoly.append(zlinska) + return skoly + + +def gen_resitele(rnd, osoby, skoly): + logger.info('Generuji řešitele...') + + resitele = [] + x = 0 + resitel_perm = Permission.objects.filter(codename__exact='resitel').first() + resitel_group = Group.objects.filter(name__exact='resitel').first() + for os in osoby: + rand = rnd.randint(0, 8) + if not (rand % 8 == 0): + if not os.user: + if x: + user = User.objects.create_user( + username='r'+str(x), email=os.email, password='r', + ) + else: + user = User.objects.create_user( + username='r', email=os.email, password='r', + ) + x += 1 + os.user = user + os.save() + os.user.user_permissions.add(resitel_perm) + os.user.groups.add(resitel_group) + resitele.append(Resitel.objects.create( + osoba=os, skola=rnd.choice(skoly), + rok_maturity=os.datum_narozeni.year + rnd.randint(18, 21), + zasilat=rnd.choice(Resitel.ZASILAT_CHOICES)[0], + )) + return resitele + + +def gen_prijemci(rnd, osoby, kolik=10): + logger.info('Generuji příjemce (kolik={})...'.format(kolik)) + prijemci = [] + for i in rnd.sample(osoby, kolik): + prijemci.append(Prijemce.objects.create(osoba=i)) + + global zlinska + if zlinska is not None: + zlinska.kontaktni_osoba=rnd.choice(osoby) + zlinska.save() + + return prijemci + + +def gen_organizatori(rnd, osoby, last_rocnik): + logger.info('Generuji organizátory...') + organizatori = [] + + + seznam_konicku = ["vařím", "jezdím na kole", "řeším diferenciální rovnice", "koukám z okna", "tancuji", "programuji", "jezdím vlakem", "nedělám nic"] + seznam_oboru = ["matematiku", "matematiku", "matematiku", "fyziku", "literaturu", "informatiku", "informatiku", "běhání dokolečka"] + + x = 0 + org_perm = Permission.objects.filter(codename__exact='org').first() + org_group = Group.objects.filter(name__exact='org').first() + for os in osoby: + rand = rnd.randint(0, 8) + if rand % 8 == 0: + pusobnost = rnd.randint(1, last_rocnik) + od = datetime.datetime( + year=1993 + pusobnost, + month=rnd.randint(1, 12), + day=rnd.randint(1, 28), + tzinfo=datetime.timezone.utc, + ) + do = datetime.datetime( + year=od.year + rnd.randint(1, 6), + month=rnd.randint(1, 12), + day=rnd.randint(1, 28), + tzinfo=datetime.timezone.utc, + ) + # aktualni organizatori jeste nemaji vyplnene organizuje_do + + # popis orga + konicek1 = rnd.choice(seznam_konicku) + konicek2 = rnd.choice(seznam_konicku) + obor = rnd.choice(seznam_oboru) + popis_orga = "Ve volném čase " + konicek1 + " a také " + konicek2 + ". Studuji " + obor + " a moc mě to baví." + + if do.year > datetime.datetime.now().year: + do = None + if not os.user: + if x: + user = User.objects.create_user( + username='o'+str(x), email=os.email, password='o', + ) + else: + user = User.objects.create_user( + username='o', email=os.email, password='o', + ) + x += 1 + os.user = user + os.save() + os.user.user_permissions.add(org_perm) + os.user.groups.add(org_group) + os.user.is_staff = True + os.user.save() + organizatori.append(Organizator.objects.create( + osoba=os, + organizuje_od=od, organizuje_do=do, + strucny_popis_organizatora=popis_orga, + )) + return organizatori diff --git a/seminar/testutils.py b/tvorba/testutils.py similarity index 53% rename from seminar/testutils.py rename to tvorba/testutils.py index 18bbbe2e..18440679 100644 --- a/seminar/testutils.py +++ b/tvorba/testutils.py @@ -1,216 +1,22 @@ +# FIXME vypreparovat treenode + import datetime -from django.contrib.auth.models import Permission -from django.contrib.auth.models import Group -import random import lorem import django.contrib.auth -from django.db import transaction -import unidecode import logging -from korektury.testutils import create_test_pdf -from seminar.models import Skola, Resitel, Rocnik, Cislo, Deadline, Problem, Reseni, PrilohaReseni, Nastaveni, Osoba, Organizator, Prijemce, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, Hodnoceni, UlohaZadaniNode, Novinky, TreeNode +from seminar.models import Rocnik, Cislo, Deadline, Problem, Tema, Uloha, TextNode, UlohaVzorakNode, RocnikNode, CisloNode, TemaVCisleNode, Text, UlohaZadaniNode import seminar.models as m -from django.contrib.flatpages.models import FlatPage -from django.contrib.sites.models import Site from treenode.treelib import all_children, insert_last_child, all_children_of_type, create_node_after -from soustredeni.testutils import gen_soustredeni, gen_konfery - - -User = django.contrib.auth.get_user_model() -zlinska = None # tohle bude speciální škola, které později dodáme kontaktní osobu +from odevzdavatko.testutils import gen_reseni_ulohy logger = logging.getLogger(__name__) -# testuje unikátnost vygenerovaného jména -def __unikatni_jmeno(osoby, jmeno, prijmeni): - for os in osoby: - if os.jmeno == jmeno and os.prijmeni == prijmeni: - return 0 - else: return 1 - -def gen_osoby(rnd, size): - logger.info('Generuji osoby (size={})...'.format(size)) - - jmena_m = ['Aleš', 'Tomáš', 'Martin', 'Jakub', 'Petr', 'Lukáš', 'Cyril', 'Pavel Karel'] - jmena_f = ['Eva', 'Karolína', 'Zuzana', 'Sylvie', 'Iva', 'Jana', 'Marie', - 'Marta Iva', 'Shu Shan'] - prijmeni_m = ['Novotný', 'Svoboda', 'Pecha', 'Kořen', 'Holan', 'Uhlíř', 'Chytráček', - 'Pokora', 'Koch', 'Szegedy', 'Rudý', "von Neumann", "d'Este"] - prijmeni_f = ['Novotná', 'Svobodová', 'Machová', 'Zelená', 'Yu-Xin', 'Mlsná', 'Dubná', - 'Mrkvová', 'Suchá', 'Lovelace', 'Holcová', 'Rui', "Nováčková Tydlitátová"] - prezdivky = ['Kaki', 'Hurdur', 'Maracuja', 'Bobbo', "", "", "", "", "", - "", "", 'Riki', 'Sapa', "", '', '---', 'Koko'] - domain = ['example.com', 'dolujeme.eu', 'mff.cuni.cz', 'strcprstskrzkrk.cz', - 'british.co.uk', 'splachni.to', 'haha.org'] - seznam_ulic = ['Krátká', 'Vlhká', 'Jungmanova', '17. listopadu', '4. října', 'Roztocká', - 'Forstova', 'Generála Františka Janouška', 'Náměstí Války', - 'Svratecké náměstí', 'Zelená lhota', 'Z Plynu', 'K Jezeru', 'U Kocourkova', - 'Uštěpačná', 'Ostrorepská', 'Zubří'] - seznam_mest = ['Praha', 'Brno', 'Ostrava', 'Horní Jelení', 'Dolní Zábrdovice', 'Prdelkov', - 'Stará myslivna', 'Kocourkov', 'Šalingrad', 'Medvědí hora', 'Basilej', - 'Unterschiedlich', 'Old York', 'Lancastershire', 'Vóloďháza'] - - osoby = [] - # 30 je náhodná konstanta, size je použité na víc místech a - # říká, jak velká asi chceme testovací data - for i in range(30 * size): - pohlavi_idx = rnd.randint(0,2) # 2 = nebinární - osloveni = [Osoba.OSLOVENI_MUZSKE, Osoba.OSLOVENI_ZENSKE, Osoba.OSLOVENI_ZADNE][pohlavi_idx] - jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) - prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) - if pohlavi_idx == 2: logger.debug(f'Testdata: nebinární osoba: {jmeno} {prijmeni}.') - pokusy = 0 - max_pokusy = 120*size - while (not __unikatni_jmeno and pokusy < max_pokusy): - # pokud jméno a příjmení není unikátní, zkoušíme generovat nová - # do daného limitu (abychom se nezacyklili do nekonečna při málo jménech a příjmeních - # ze kterých se generuje) - jmeno = rnd.choice([jmena_m, jmena_f, jmena_m + jmena_f][pohlavi_idx]) - prijmeni = rnd.choice([prijmeni_m, prijmeni_f, prijmeni_m + prijmeni_f][pohlavi_idx]) - pokusy = pokusy + 1 - if pokusy >= max_pokusy: - print("Chyba, na danou velikost testovacích dat příliš málo možných" - " jmen a příjmení") - exit() - prezdivka = rnd.choice(prezdivky) - email = "@".join([unidecode.unidecode(jmeno), rnd.choice(domain)]) - telefon = "".join([str(rnd.choice([k for k in range(10)])) for i in range(9)]) - narozeni = datetime.date(rnd.randint(1980, datetime.datetime.now().year), - rnd.randint(1, 12), rnd.randint(1, 28)) - ulic = rnd.choice(seznam_ulic) - cp = rnd.randint(1, 99) - ulice = " ".join([ulic, str(cp)]) - mesto = rnd.choice(seznam_mest) - psc = "".join([str(rnd.choice([k for k in range(10)])) for i in range(5)]) - - osoby.append(Osoba.objects.create(jmeno = jmeno, prijmeni = prijmeni, - prezdivka = prezdivka, osloveni = osloveni, email = email, - telefon = telefon, datum_narozeni = narozeni, ulice = ulice, - mesto = mesto, psc = psc, - datum_registrace = datetime.date(rnd.randint(2019, 2029), - rnd.randint(1, 12), rnd.randint(1, 28)))) - #TODO pridat foto male a velke. Jak? - # Pavel tvrdí, že to necháme a přidáme až do adminu - - return osoby - - - -def gen_skoly(): #TODO někdy to přepsat, aby jich bylo více - logger.info('Generuji školy...') - - skoly = [] - prvnizs = Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', - ulice='Krátká 5', nazev='První ZŠ', je_zs=True, je_ss=False) - skoly.append(prvnizs) - skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='101 00', - ulice='Krátká 5', nazev='První SŠ', je_zs=False, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='102 00', - ulice='Dlouhá 5', nazev='Druhá SŠ', je_zs=False, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Praha', stat='CZ', psc='103 00', - ulice='Široká 3', nazev='Třetí SŠ a ZŠ', je_zs=True, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Ostrava', stat='CZ', psc='700 00', - ulice='Hluboká 42', nazev='Hutní gympl', je_zs=False, je_ss=True)) - skoly.append(Skola.objects.create(mesto='Humenné', stat='SK', psc='012 34', - ulice='Pltká 1', nazev='Sredná škuola', je_zs=False, je_ss=True)) - global zlinska - zlinska = Skola.objects.create(mesto = 'Zlín', stat='CZ', psc='76001', - ulice='náměstí T.G. Masaryka 2734-9', - nazev='Gymnázium a Střední jazyková škola s právem SJZ', - kratky_nazev="GaSJŠspSJZ", je_zs=True, je_ss=True) - skoly.append(zlinska) - return skoly - -def gen_resitele(rnd, osoby, skoly): - logger.info('Generuji řešitele...') - - resitele = [] - x = 0 - resitel_perm = Permission.objects.filter(codename__exact='resitel').first() - resitel_group = Group.objects.filter(name__exact='resitel').first() - for os in osoby: - rand = rnd.randint(0, 8) - if not (rand % 8 == 0): - if not os.user: - if x: - user = User.objects.create_user(username='r'+str(x), email=os.email, password='r') - else: - user = User.objects.create_user(username='r', email=os.email, password='r') - x += 1 - os.user = user - os.save() - os.user.user_permissions.add(resitel_perm) - os.user.groups.add(resitel_group) - resitele.append(Resitel.objects.create(osoba=os, skola=rnd.choice(skoly), - rok_maturity=os.datum_narozeni.year + rnd.randint(18, 21), - zasilat=rnd.choice(Resitel.ZASILAT_CHOICES)[0])) - return resitele - -def gen_prijemci(rnd, osoby, kolik=10): - logger.info('Generuji příjemce (kolik={})...'.format(kolik)) - prijemci = [] - for i in rnd.sample(osoby, kolik): - prijemci.append(Prijemce.objects.create(osoba=i)) - return prijemci - -def gen_organizatori(rnd, osoby, last_rocnik): - logger.info('Generuji organizátory...') - organizatori = [] +User = django.contrib.auth.get_user_model() - - seznam_konicku = ["vařím", "jezdím na kole", "řeším diferenciální rovnice", "koukám z okna", - "tancuji", "programuji", "jezdím vlakem", "nedělám nic"] - seznam_oboru = ["matematiku", "matematiku", "matematiku", "fyziku", "literaturu", - "informatiku", "informatiku", "běhání dokolečka"] - - x = 0 - org_perm = Permission.objects.filter(codename__exact='org').first() - org_group = Group.objects.filter(name__exact='org').first() - for os in osoby: - rand = rnd.randint(0, 8) - if (rand % 8 == 0): - pusobnost = rnd.randint(1, last_rocnik) - od = datetime.datetime( - year=1993 + pusobnost, - month=rnd.randint(1, 12), - day=rnd.randint(1, 28), - tzinfo=datetime.timezone.utc, - ) - do = datetime.datetime( - year=od.year + rnd.randint(1, 6), - month=rnd.randint(1, 12), - day=rnd.randint(1, 28), - tzinfo=datetime.timezone.utc, - ) - #aktualni organizatori jeste nemaji vyplnene organizuje_do - - #popis orga - konicek1 = rnd.choice(seznam_konicku) - konicek2 = rnd.choice(seznam_konicku) - obor = rnd.choice(seznam_oboru) - popis_orga = "Ve volném čase " + konicek1 + " a také " + konicek2 + ". Studuji " + obor + " a moc mě to baví." - - if do.year > datetime.datetime.now().year: - do = None - if not os.user: - if x: - user = User.objects.create_user(username='o'+str(x), email=os.email, password='o') - else: - user = User.objects.create_user(username='o', email=os.email, password='o') - x += 1 - os.user = user - os.save() - os.user.user_permissions.add(org_perm) - os.user.groups.add(org_group) - os.user.is_staff = True - os.user.save() - organizatori.append(Organizator.objects.create(osoba=os, - organizuje_od=od, organizuje_do=do, strucny_popis_organizatora = popis_orga)) - return organizatori def gen_zadani_ulohy(rnd, cisla, organizatori, pocet_oboru, poradi_cisla, poradi_problemu): @@ -282,42 +88,6 @@ def gen_vzoroveho_reseni_ulohy(rnd, organizatori, uloha, pocet_opravovatelu): uloha.save() return uloha_vzorak -def gen_reseni_ulohy(rnd, cisla, uloha, pocet_resitelu, poradi_cisla, resitele_cisla, resitele): - - pocet_reseni = rnd.randint(pocet_resitelu//4, pocet_resitelu * 4) - # generujeme náhodný počet řešení vzhledem k počtu řešitelů čísla - for _ in range(pocet_reseni): - #print("Generuji {}-té řešení".format(reseni)) - if rnd.randint(1, 10) == 1: - # cca desetina řešení od více řešitelů - res_vyber = rnd.sample(resitele_cisla, - rnd.randint(2, 5)) - else: - res_vyber = rnd.sample(resitele_cisla, 1) - if resitele[0] in res_vyber: # speciální řešitel, který nemá žádné body - res_vyber.remove(resitele[0]) - - # Vytvoření řešení. - if uloha.cislo_zadani.zlomovy_deadline_pro_papirove_cislo() is not None: - # combine, abychom dostali plný čas a ne jen datum - cas_doruceni = uloha.cislo_zadani.deadline_v_cisle.first().deadline - datetime.timedelta(days=random.randint(0, 40)) - datetime.timedelta(minutes=random.randint(0, 60*24)) - # astimezone, protože jinak vyhazuje warning o nenastavené TZ - res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0], cas_doruceni=cas_doruceni.astimezone(datetime.timezone.utc)) - else: - res = Reseni.objects.create(forma=rnd.choice(Reseni.FORMA_CHOICES)[0]) - # Problém a řešitele přiřadíme později, ManyToManyField - # se nedá vyplnit v create(). - res.resitele.set(res_vyber) - res.save() - - # Vytvoření hodnocení. - hod = Hodnoceni.objects.create( - body=rnd.randint(0, uloha.max_body), - cislo_body=cisla[poradi_cisla - 1], - reseni=res, - problem=uloha - ) - return def gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size): logger.info('Generuji úlohy do čísla (size={})...'.format(size)) @@ -658,22 +428,6 @@ def gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, u.save() return -def gen_novinky(rnd, organizatori): - logger.info('Generuji novinky...') - - - jake = ["zábavné", "veselé", "dobrodružné", "skvělé"] - co = ["soustředění", "Fyziklání", "víkendové setkání"] - kde = ["na Šumavě", "v Praze", "u Plzně", "na Marsu"] - kdy = ["Zítra bude", "10. 10. 2020 bude", "V prosinci bude", "V létě bude"] - - for i in range(5): - text_novinky = " ".join([rnd.choice(kdy), rnd.choice(kde), rnd.choice(jake), - rnd.choice(co)]) - novinka = Novinky.objects.create(id=i,autor=rnd.choice(organizatori), - text=(text_novinky+", těšíme se na vás!"),zverejneno=rnd.choice([True,False])) - novinka.save() - return def otec_syn(otec, syn): bratr = otec.first_child @@ -750,117 +504,3 @@ def gen_clanek(rnd, organizatori, resitele): text.save() create_child(castnode, m.TextNode, text=text) logger.info(f"Článek vygenerován (reseni={reseni.id}, treenode={reseninode.id})") - - - -@transaction.atomic -def create_test_data(size = 6, rnd = None): - logger.info('Vyrábím testovací data (size={})...'.format(size)) - - assert size >= 1 - # pevna pseudo-nahodnost - rnd = rnd or random.Random(x=42) - - # static URL stranky - # FIXME: nakopirovat sem vsechny z produkcni databaze - s = Site.objects.filter(name="example.com") - f = FlatPage.objects.create(url="/", title="Seminář M&M", - content = "

    Vítejte na stránce semináře MaM!

    ") - print(s) - f.sites.add(s[0]) - f.save() - - # users - admin = User.objects.create_superuser(username='admin', email='', password='admin') - os_admin = Osoba.objects.create( - user=admin, jmeno='admin', prijmeni='admin', - prezdivka='admin', osloveni='', email='admin@admin.admin', - telefon='123 456 789', datum_narozeni=datetime.date(2000, 1, 1), - ulice='admin', mesto='admin', psc='100 00', - datum_registrace=datetime.date(2020, 9, 6) - ) - or_admin = Organizator.objects.create( - osoba=os_admin, organizuje_od=None, organizuje_do=None, - strucny_popis_organizatora="Organizátor k uživateli Admin" - ) - - usernames = ['anet', 'bara', 'cyril', 'david', 'eva', 'filip'] - users = [] - for usr in usernames[:size]: - u = User.objects.create_user(username=usr, password=usr) - u.first_name = usr.capitalize() - u.save() - users.append(u) - print(users) - - # skoly - skoly = gen_skoly() - - # osoby - osoby = gen_osoby(rnd, size) - - # resitele a organizatori - last_rocnik = 25 - organizatori = gen_organizatori(rnd, osoby, last_rocnik) - resitele = gen_resitele(rnd, osoby, skoly) - - #generování novinek - novinky = gen_novinky(rnd, organizatori) - - # prijemci - prijemci = gen_prijemci(rnd, osoby) - - global zlinska - zlinska.kontaktni_osoba=rnd.choice(osoby) - zlinska.save() - - # rocniky - rocniky = gen_rocniky(last_rocnik, size) - - # cisla - # rocnik_cisla je pole polí čísel (typ Cislo), vnitřní pole odpovídají jednotlivým ročníkům. - rocnik_cisla = gen_cisla(rnd, rocniky) - - # generování obyčejných úloh do čísel - gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) - - # generování témat, zatím v prvních třech číslech po jednom - # FIXME: více témat - # rocnik_temata je pole polí trojic (první číslo :int, poslední číslo :int, téma:Tema), přičemž každé vnitřní pole odpovídá ročníku a FIXME: je to takhle fuj a když to někdo vidí poprvé, tak je z toho smutný, protože vůbec neví, co se děje a co má čekat. - rocnik_temata = gen_temata(rnd, rocniky, rocnik_cisla, organizatori) - - rocnik = Rocnik.objects.filter(rocnik = 23).first() - dlouhe_tema = gen_dlouhe_tema(rnd, organizatori, rocnik, "Strašně dlouhé téma", - "MFI", 8) - - # generování úloh k tématům ve všech číslech - gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) - - #generování soustředění - soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) - - #generování konfer - konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) - - # vytvoreni pdf ke korekturam - create_test_pdf(rnd, organizatori) - - # TODO: nastavi správně, kolik se čeho generuje, aby rozsahy přibližně odpovídaly - # FIXME: misto typu ruzne typy objektu a vnoreni do sebe (Tom nechápe, co je tímto fixme míněno) - # TODO: vytvorit temata s ruznymi vlakny - # TODO: nagenerovat starsim rocnikum pohadku - # TODO: nagenerovat články - # TODO: vecpat obrázky všude, kde to jde - # TODO: mezičíslo node - # TODO: přidat ke konferám řešení a dát je do čísel - - # Dohackované vytvoření jednoho článku - gen_clanek(rnd, organizatori, resitele) - - # TODO: přidat články včetně zařazení do struktury treenodů, - # a následně otestovat konsistency check databáze z utils.py - # pomocí stránky /stav - - # obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně - nastaveni = Nastaveni.objects.create( - aktualni_cislo = Cislo.objects.all()[1]) diff --git a/various/management/commands/testdata.py b/various/management/commands/testdata.py index d9ce8cfb..8f591fa5 100644 --- a/various/management/commands/testdata.py +++ b/various/management/commands/testdata.py @@ -1,13 +1,11 @@ -import datetime import os -import random from django.core.management.base import BaseCommand from django.core.management import call_command from django.conf import settings from seminar.models import Skola, Resitel, Rocnik, Cislo, Problem, Reseni, PrilohaReseni, Nastaveni -from seminar.testutils import create_test_data +from various.testutils import create_test_data import django.contrib.auth User = django.contrib.auth.get_user_model() diff --git a/various/testutils.py b/various/testutils.py new file mode 100644 index 00000000..52411ef6 --- /dev/null +++ b/various/testutils.py @@ -0,0 +1,135 @@ +import datetime +import random +import logging + +import django.contrib.auth +from django.contrib.flatpages.models import FlatPage +from django.contrib.sites.models import Site +from django.db import transaction + +from seminar.models import Rocnik, Cislo, Nastaveni, Osoba, Organizator + +from korektury.testutils import create_test_pdf +from novinky.testutils import gen_novinky +from personalni.testutils import gen_organizatori, gen_osoby, gen_prijemci, gen_resitele, gen_skoly +from soustredeni.testutils import gen_soustredeni, gen_konfery +from tvorba.testutils import gen_cisla, gen_clanek, gen_dlouhe_tema, gen_rocniky, gen_temata, gen_ulohy_do_cisla, gen_ulohy_k_tematum + +logger = logging.getLogger(__name__) + +User = django.contrib.auth.get_user_model() + + +@transaction.atomic +def create_test_data(size=6, rnd=None): + logger.info('Vyrábím testovací data (size={})...'.format(size)) + + assert size >= 1 + # pevna pseudo-nahodnost + rnd = rnd or random.Random(x=42) + + # static URL stranky + # FIXME: nakopirovat sem vsechny z produkcni databaze + s = Site.objects.filter(name="example.com") + f = FlatPage.objects.create( + url="/", title="Seminář M&M", + content="

    Vítejte na stránce semináře MaM!

    ", + ) + print(s) + f.sites.add(s[0]) + f.save() + + # users + admin = User.objects.create_superuser( + username='admin', email='', password='admin', + ) + os_admin = Osoba.objects.create( + user=admin, jmeno='admin', prijmeni='admin', + prezdivka='admin', osloveni='', email='admin@admin.admin', + telefon='123 456 789', datum_narozeni=datetime.date(2000, 1, 1), + ulice='admin', mesto='admin', psc='100 00', + datum_registrace=datetime.date(2020, 9, 6), + ) + or_admin = Organizator.objects.create( + osoba=os_admin, organizuje_od=None, organizuje_do=None, + strucny_popis_organizatora="Organizátor k uživateli Admin", + ) + + usernames = ['anet', 'bara', 'cyril', 'david', 'eva', 'filip'] + users = [] + for usr in usernames[:size]: + u = User.objects.create_user(username=usr, password=usr) + u.first_name = usr.capitalize() + u.save() + users.append(u) + print(users) + + # skoly + skoly = gen_skoly() + + # osoby + osoby = gen_osoby(rnd, size) + + # resitele a organizatori + last_rocnik = 25 + organizatori = gen_organizatori(rnd, osoby, last_rocnik) + resitele = gen_resitele(rnd, osoby, skoly) + + # generování novinek + novinky = gen_novinky(rnd, organizatori) + + # prijemci + prijemci = gen_prijemci(rnd, osoby) + + # rocniky + rocniky = gen_rocniky(last_rocnik, size) + + # cisla + # rocnik_cisla je pole polí čísel (typ Cislo), vnitřní pole odpovídají jednotlivým ročníkům. + rocnik_cisla = gen_cisla(rnd, rocniky) + + # generování obyčejných úloh do čísel + gen_ulohy_do_cisla(rnd, organizatori, resitele, rocnik_cisla, rocniky, size) + + # generování témat, zatím v prvních třech číslech po jednom + # FIXME: více témat + # rocnik_temata je pole polí trojic (první číslo :int, poslední číslo :int, téma:Tema), přičemž každé vnitřní pole odpovídá ročníku a FIXME: je to takhle fuj a když to někdo vidí poprvé, tak je z toho smutný, protože vůbec neví, co se děje a co má čekat. + rocnik_temata = gen_temata(rnd, rocniky, rocnik_cisla, organizatori) + + rocnik = Rocnik.objects.filter(rocnik=23).first() + dlouhe_tema = gen_dlouhe_tema( + rnd, organizatori, rocnik, "Strašně dlouhé téma", + "MFI", 8, + ) + + # generování úloh k tématům ve všech číslech + gen_ulohy_k_tematum(rnd, rocniky, rocnik_cisla, rocnik_temata, organizatori, resitele) + + # generování soustředění + soustredeni = gen_soustredeni(size, resitele, organizatori, rnd=rnd) + + # generování konfer + konfery = gen_konfery(size, organizatori, soustredeni, rnd=rnd) + + # vytvoreni pdf ke korekturam + create_test_pdf(rnd, organizatori) + + # TODO: nastavi správně, kolik se čeho generuje, aby rozsahy přibližně odpovídaly + # FIXME: misto typu ruzne typy objektu a vnoreni do sebe (Tom nechápe, co je tímto fixme míněno) + # TODO: vytvorit temata s ruznymi vlakny + # TODO: nagenerovat starsim rocnikum pohadku + # TODO: nagenerovat články + # TODO: vecpat obrázky všude, kde to jde + # TODO: mezičíslo node + # TODO: přidat ke konferám řešení a dát je do čísel + + # Dohackované vytvoření jednoho článku + gen_clanek(rnd, organizatori, resitele) + + # TODO: přidat články včetně zařazení do struktury treenodů, + # a následně otestovat konsistency check databáze z utils.py + # pomocí stránky /stav + + # obecné nastavení semináře, musí být už přidané ročníky a čísla, jinak se nastaví divně + nastaveni = Nastaveni.objects.create( + aktualni_cislo=Cislo.objects.all()[1]) From e250f1d5dc0e3b771acfb12d6571dcdd35e90c54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 2 Oct 2024 21:16:53 +0200 Subject: [PATCH 496/515] =?UTF-8?q?Admin=5Furl=20soust=C5=99ed=C4=9Bn?= =?UTF-8?q?=C3=AD=20(aby=20mohlo=20b=C3=BDt=20v=20login-baru)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/models.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/soustredeni/models.py b/soustredeni/models.py index 518b3291..f71e6736 100644 --- a/soustredeni/models.py +++ b/soustredeni/models.py @@ -77,6 +77,10 @@ class Soustredeni(SeminarModelBase): #return reverse('seminar_soustredeni', kwargs={'pk': self.id}) return reverse('seminar_seznam_soustredeni') + def admin_url(self): + model_name = self.__class__.__name__.lower() + return reverse('admin:soustredeni_{}_change'.format(model_name), args=(self.id, )) + @reversion.register(ignore_duplicates=True) class Soustredeni_Ucastnici(SeminarModelBase): From 733484b503a3c0f0a704586988f4e7e64d219f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 2 Oct 2024 21:20:44 +0200 Subject: [PATCH 497/515] =?UTF-8?q?Export=20do=20abstrakt=C5=AF=20(soust?= =?UTF-8?q?=C5=99ed=C4=9Bn=C3=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/sitetree.json | 24 +++++++++++++++++++ .../soustredeni/export_do_abstraktu.html | 17 +++++++++++++ .../soustredeni/seznam_soustredeni.html | 1 + soustredeni/urls.py | 5 ++++ soustredeni/views.py | 4 ++++ 5 files changed, 51 insertions(+) create mode 100644 soustredeni/templates/soustredeni/export_do_abstraktu.html diff --git a/data/sitetree.json b/data/sitetree.json index 29403e5a..933c628a 100644 --- a/data/sitetree.json +++ b/data/sitetree.json @@ -1079,5 +1079,29 @@ }, "model": "sitetree.treeitem", "pk": 53 + }, + { + "fields": { + "access_guest": false, + "access_loggedin": false, + "access_perm_type": 1, + "access_permissions": [], + "access_restricted": true, + "alias": null, + "description": "", + "hidden": false, + "hint": "", + "inbreadcrumbs": true, + "inmenu": true, + "insitetree": true, + "parent": 20, + "sort_order": 54, + "title": "Export do abstraktů sousu {{ soustredeni.id }}", + "tree": 1, + "url": "seminar_soustredeni_abstrakty soustredeni.id", + "urlaspattern": true + }, + "model": "sitetree.treeitem", + "pk": 54 } ] diff --git a/soustredeni/templates/soustredeni/export_do_abstraktu.html b/soustredeni/templates/soustredeni/export_do_abstraktu.html new file mode 100644 index 00000000..16de19a0 --- /dev/null +++ b/soustredeni/templates/soustredeni/export_do_abstraktu.html @@ -0,0 +1,17 @@ +{% extends "base.html" %} +{% load tex %} + +{% block nadpis1a %} + Soustředění – export do abstraktů +{% endblock %} + +{% block content %} +

    Export do abstraktů Soustředění {{ soustredeni }}

    + +{# Zde zcela záměrně chybí nějaké whitespacy, např. odřádkování a odsazení #} +
    {% for ucastnik in soustredeni.ucastnici.all %}\ucastnik{{ ucastnik|sloz }}{{ ucastnik.osoba.email|sloz }}{{ ucastnik.skola|sloz }}
    +{% endfor %}
    +{% for vedouci in soustredeni.organizatori.all %}\vedouci{{ vedouci|sloz }}{{ vedouci.osoba.email|sloz }}{TODO}
    +{% endfor %}
    + +{% endblock %} diff --git a/soustredeni/templates/soustredeni/seznam_soustredeni.html b/soustredeni/templates/soustredeni/seznam_soustredeni.html index e5f68bfc..ac33852a 100644 --- a/soustredeni/templates/soustredeni/seznam_soustredeni.html +++ b/soustredeni/templates/soustredeni/seznam_soustredeni.html @@ -40,6 +40,7 @@
    Vytvořit novou fotogalerii
    Vygenerovat obálky pro účastníky
    + Vygenerovat účastníky a vedoucí do abstraktů
    Seznam účastníků - HTML tabulka pro tisk, CSV, diff --git a/soustredeni/urls.py b/soustredeni/urls.py index 2e5a6136..6d8de5e1 100644 --- a/soustredeni/urls.py +++ b/soustredeni/urls.py @@ -33,6 +33,11 @@ urlpatterns = [ org_required(views.soustredeniObalkyView), name='seminar_soustredeni_obalky' ), + path( + 'soustredeni//abstrakty', + org_required(views.SoustredeniAbstraktyView.as_view()), + name='seminar_soustredeni_abstrakty' + ), path( 'soustredeni//fotogalerie/', include('galerie.urls') diff --git a/soustredeni/views.py b/soustredeni/views.py index f150b6b8..c7e17d24 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -99,3 +99,7 @@ def soustredeniStvrzenkyView(request, soustredeni): with open(tempdir / "stvrzenky.pdf", "rb") as pdffile: response = HttpResponse(pdffile.read(), content_type='application/pdf') return response + +class SoustredeniAbstraktyView(generic.DetailView): + model = Soustredeni + template_name = 'soustredeni/export_do_abstraktu.html' From 6ec2a10bf587b3be1f2510c543cd760aeebb8e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 10 Oct 2024 13:23:51 +0200 Subject: [PATCH 498/515] setuptools v requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6855e0ae..8f172e2a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ -c constraints.txt -# basic libs +setuptools # django-polymorphic má rozbité dependencies +# basic libs psycopg2 # PostgreSQL adaptér ipython # Interaktivní shell Unidecode # Přepisuje unicode do ASCII (např. soubory nebo e-maily) From e87bbe60480a205cba4c616280b6ba6073aa9907 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 13 Oct 2024 23:31:05 +0200 Subject: [PATCH 499/515] =?UTF-8?q?Sloupe=C4=8Dek=20ostatn=C3=AD=20ve=20v?= =?UTF-8?q?=C3=BDsledkovce=20(nov=C3=A1=20makra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo_vysledkovka.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex index bebd5632..b8e9f248 100644 --- a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex +++ b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex @@ -1,6 +1,7 @@ \setlength{\tabcolsep}{3pt} +{% if vysledkovka.je_nejake_ostatni %}\vysledkovkaostatnitrue{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline -& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{Ostatní}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline +& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O.}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead \hline \endfoot From 9f421e9d77ed5ef7b879356a896984e10e9a5867 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 13 Oct 2024 23:38:17 +0200 Subject: [PATCH 500/515] =?UTF-8?q?Sloupe=C4=8Dek=20ostatn=C3=AD=20ve=20v?= =?UTF-8?q?=C3=BDsledkovce=20(nov=C3=A1=20makra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo_vysledkovka.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex index b8e9f248..4c637524 100644 --- a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex +++ b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex @@ -1,5 +1,5 @@ \setlength{\tabcolsep}{3pt} -{% if vysledkovka.je_nejake_ostatni %}\vysledkovkaostatnitrue{% endif %} +{% if vysledkovka.je_nejake_ostatni %}\global\vysledkovkaostatnitrue{% else %}\global\vysledkovkaostatnifalse{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline & & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O.}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead From 133c487637f34cb231bce5afdad20f58947d54e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 13 Oct 2024 23:39:47 +0200 Subject: [PATCH 501/515] =?UTF-8?q?Sloupe=C4=8Dek=20ostatn=C3=AD=20ve=20v?= =?UTF-8?q?=C3=BDsledkovce=20(nov=C3=A1=20makra)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/templates/seminar/archiv/cislo_vysledkovka.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex index 4c637524..de271652 100644 --- a/seminar/templates/seminar/archiv/cislo_vysledkovka.tex +++ b/seminar/templates/seminar/archiv/cislo_vysledkovka.tex @@ -1,7 +1,7 @@ \setlength{\tabcolsep}{3pt} {% if vysledkovka.je_nejake_ostatni %}\global\vysledkovkaostatnitrue{% else %}\global\vysledkovkaostatnifalse{% endif %} \begin{longtable}{|r|l|c|r|{% for p in vysledkovka.temata_a_spol %}c@{\hskip.5em}{% endfor %}{% if vysledkovka.je_nejake_ostatni %}|c@{\hskip.5em}{% endif %}|r|r|}\hline -& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O.}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline +& & & & \multicolumn{ {{ vysledkovka.temata_a_spol|length}} }{c|}{\textbf{Témata}} & & {% if vysledkovka.je_nejake_ostatni %}&{\hskip.5em}{% endif %} \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in vysledkovka.temata_a_spol %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}{% if vysledkovka.je_nejake_ostatni %}\textbf{O}&{% endif %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline \endhead \hline \endfoot From 592ae29d35f3446d91e625df6db90197e31a6f70 Mon Sep 17 00:00:00 2001 From: ticvac Date: Tue, 22 Oct 2024 19:05:41 +0200 Subject: [PATCH 502/515] =?UTF-8?q?ghoul=20font=20na=20posledn=C3=ADch=207?= =?UTF-8?q?=20dn=C3=AD=20=C5=99=C3=ADjna=202024?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/mamweb.css | 13 ++++++++++--- mamweb/static/fonts/ghoul/ghoul.ttf | Bin 0 -> 14968 bytes mamweb/static/fonts/ghoul/ghoulheadline.ttf | Bin 0 -> 24980 bytes mamweb/templates/base.html | 12 ++++++++++++ various/context_processors.py | 13 +++++++++++++ 5 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 mamweb/static/fonts/ghoul/ghoul.ttf create mode 100644 mamweb/static/fonts/ghoul/ghoulheadline.ttf diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 0d699d5c..c931aee8 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -2,9 +2,16 @@ @import url("rozliseni.css"); @font-face { -font-family: 'OpenSans'; -src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); -font-weight: normal; + font-family: 'OpenSans'; + src: url("../fonts/OpenSans/OpenSans-Regular.ttf"); + font-weight: normal; +} + +@font-face { + font-family: 'GhoulFace'; + src: url("../fonts/ghoul/ghoulheadline.ttf"), + url("../fonts/ghoul/ghoul.woff"); + font-weight: normal; } p { diff --git a/mamweb/static/fonts/ghoul/ghoul.ttf b/mamweb/static/fonts/ghoul/ghoul.ttf new file mode 100644 index 0000000000000000000000000000000000000000..64bab4789ae256a70f2af1ad00fc1edab5efbf27 GIT binary patch literal 14968 zcmeHud6Z<=S>Ju{RlTL&zSpbu)xLCXUDZ|9dslZ)_w>y4^k_!X$XdqMNHbE)o{gE2 zG?IY>#yG?nY=mQs2oCs=#l%VEz%e3$1hY6kh6Ik2h~xy!<^+R%96}&rk<|I!SKXrl z0*62HR}S^6>fLwm_wKvjcfbAKM;JngMtX!JubjER+kfmc=l(Y#;}ErbPhP!vUp@KU?NHuNe3FpSm(afa)QzXFe)O?l`8Xl*zl-ZjPhWZAsWZF$_Y=Zj zBBb@z{YzKx{KlC7x9IN%A)L5>`QoLAK6YcP^rR zG>_{~Ub+6{MZ$fhN66qlT)%Sl;+-4pljJ`Geh1g#wTo9Td++|aZ^rdLA+f=Y>$h&l zAC6tXc+pJm+_-u9#)SLHe~x+cqir)uc`_UKPp)da-#`I;{u>7&wHa)-kGaoJx za_|MN#D%z&2^-xJ-NS_k7!x<7a9ruIo?c8pGf~Y9d7Z?g3YLguLJ}x{grU&%$!X@~ z6d3gb9k3VGjQ3wKX_?4EL*+(%wIgyExl+Bf~IvUd*0#gI7r>BBNhc=lf& zmbrWCWA~Kfq|Sck5QdNHIl{yw^hrlHElrvn4fsy))uQ@+avR4DvPil(o{x?Wd5T=eaf7@-I^;=|uA(gj z{4w$jxdr%}I6pz2Md=x|UPIdrav8N(aZUTXOfI4B`RHmNrJJa^h`OsdchG(ZzXmx@ z_Hp;Klqn$|vxFHX8|1)^eJ>F@vb=#TpSi({nJyNMA@X>to!*CNb9Qbp~Qo|Ff@;X31Awc?TFepQFiNt~}lW4;mHNAGw7zbS8Y_HW<5 zvDocC|NQfvr>sPyB{n#_NZr^<7iDz#=bNyO)um{+!+3y2+h|9n`B&Hq1-Lx_aC?$aRYeg5LbjOic$GQ$*5{Hx z!hnfqeuNe1KNpo_(SJPp=c9k&fVPU!zZCr^qJNp*wY7ij?iWH0J=(|L*PvB7B9N6y zT8OEHkE={Prf{slD-2;7jw2GD{9JdOBx}oS%S?Cqjb-{H#v9A{&i4MfNa8aCvtZWn z>$5-6f8!r<;p@MS(i_L1ch!S8Bh6hTr^&12*U6tUrO8MB=nsGIw}0b{zw(7&`0S7W z*bjf??|j?)zU7;~{?7nb&4T-tyC(*Cuj{kJde zzk6x_kH7l#q!2g$LF|Wb&%IxL{ln_(zxE5kFRPC>)Ro^4)c?xw4Am2J->p9M?dpYh ztG#P4s@K0mef0ZFfAU**{`jk*vX@ZYO{KJ?%zQkj{Ky03`;@(Ze2aTjVlE#dNpXCm zyG+r1gB}JhURz!^UIWIoA*wv00&O;410kZ*+H3wYV_FM;#n)J7I)Bv%^nCqte1>s! zmKUnE>Tqt29gT6}I=<(xGUL&3t~T~+w7pcVjmE1C00u%);Bk0^{u%?IIow$q_x&8> zJG_8@ovER{RIH)T(Kzassn&4w*dLAQ?Yy8dLQU}S5CPB1Gw948qd)qDu|KXIKAJwR z+GXg_=mP+QpH87UJb(_WSnDv+sL?ALTnBv)`m`53Fd8^Tii?_jicS~(d+b5M6#P*p zU#^raRWkKdrJT>CYKh=k^V!eV&HT1(e8}Vty`^%dD~mCyT&~yB#vqw_ z_FJmQ^5#+_+YK4hEblR_YKo3k%C2`;PMRlIy6f4JW1G6f?ERMIr!>JzRXS;Bqiy-e z6;nB`S2mnw|`Ayj)!{pUax^p1J2gSFhq~p~`%BEwp$i>sGsgH`}n(xT)l4 zy`WolwLr{=r})eq`|Xa=TZ&-ShF+VoYAbFbk#Ft7cO?rqK01ap{K zadXdSth7;FJ$-3zZ4y|fkhZf6sl2HhN+Xx8$%&XgS)03bdbMbzt;`+WkQ!m8TIWmI zdGlwi*?AL$PFmMpxovqH=7wGq-RoA;F`u$N z$eL^;J+op?wrg24(Kq{N|&8mWg!P0 zwgkR+DYH_ZWj#M)|C+$0W>EX1=#F<#!{1>C^rlJlrvacHX+-Cb!*^pd)^v^1G zTVoqD^-~HUz4SPl_WaOoCqpk4?qtfjI{dfN!5=UmU|)nUQJN@?TG_aZD_1RpSsREq&|Xcc$L7r$mJ;35@<0 zU0wrE!-&u$q6cPtL!Zt#l=9(}^R71-14kh4`R_e}vF}RZr z*Q&0Ww0Fnv*#1sFW*ceO3pdvN^py>c*R$qqW+vq=+<9a>>jxUz)VA%Xi}_Ca#E)f~ zK|isxZm;H?Gg*$4^tvSR`P^1>HK}-UHIYgub0uC-=1fswIgV?Xm0HS1z{QgK!T(|x z+1v0UHppP&t}QRrN`WJjP~FU`n*&jc&m6J%U6do!2fQ}}ig&dnL{bXWBL<*S3?sr& zQwPH{0K0=xauD1;m>);QiOkg8Xskg5JfB^(tuU?I)nfJR{7fg6simDtG2wlqRg1Bj zi}7q)J~nIzVXd|Pt>@d_TqdbmiELon z?M!-72!1-TyRbJj<2)zjQ>8>arwNUetL^9|**#TlsHI$?+AB$#y`iwIz-7F4&Zsr= zbnc6he!qgaV3`ajuB|3=>dK)cvi_k&vf-3sQoWF? zup+Ny-Gr0fOwJhHmnxZYXOgY zk?s(nyB5j#nhzre<8?Ia6z_oo&rWA%m|`iKcvvnvk#vSBzq^t4i>#Rr^#^{SN?|-= zzT(uzjwCAlM|47NL3YyKI?#91&NSERn}1jhdlxoxz|tYL?5r zQKy|4sLN$_rs@HVyf{Ydu=Sk3qJIAf%c(@-Ahb(`Nd*!RK9rW*lfZ`#0u$0u4U6kP_M18f9^5M zvUIngIJHC&;EOy8ebJ>FVR>Ul4C@uI2Lax?GrrA$z7)w;}M{5i$S`w9b2 zdGnvRCa?Lt21nIcE#$7)JlDyd5ab*Vo9x09;GcyAE^ zGkvJn@11Zu<4Ydpbn1h^(!pV24jmRpXO83;at;oFii=b^hn7<0vn(-vk9j@eNHMl^&Wdv-7Q8apZ<*B#|+^6b7`GjdWdsT<93 zWl+*$*~R?BMnASR*-OA$9-rZdjJGfvjb|5q-Ta#v?a#++e-oqW?BB#_|KG=G1){L~ z>`P>Z%#-tza<7%Qgt*e`&9!=Md@~Joq1YfTzo*15l!K(q_=g&Ad6^n@<5!JeosAq? zxHfk)9*5=*s&BzRGV*Y0kS?fEU+&Ps^T&N^$6Xiz$EO*F!Q8mZAl!j998w2>-LE`i zG5GMA2Qrlv$qTE6YVes<;nZa-olyL=HX-Bj_d!5&Ti2!7joF zrp{1p>N&8@xfLs&@v7lQqxqGTqNG?ariyORa1B50`*LRW@#g2;L8GVVe5W89Mn~l> z?YyPux_&BKs(-4ODb)1S6L-NenEvqsas}f}r=)%#!bd?7(!MuZsWQuMAroAx#u+*O z=BITf&g=PHCgBFuLuwv;f$gwwBMW3aNtR0);^m3D$f=7RbrA$qYw&Cnhtcjd{-JI{ z#3~@iVh!Y=D0NxNCe<2T9@xS)mbyi2%rrD`{lmDx%fmbLVJ|)E1+yLdKDChVZXFY2 zx(xGZF){1n+uK=P;kensFP!Nze2@&2o@v)Jc3hA%*>q>C{Ib;wD)4)`Y+4QrveD~X zM}+74aydjFLv#zvoIVZ z9-@@!PThq=)<9I`0%aN(PB~=i7DsYJePfzp1II)jGJLB%!#-ZAGb|@s!piYihP|5O zC>fb=?3655P9o_v3g*j?y_`=i<}@`U<;xnMU^-SJ=ND{0&ItPFg5xLjtZWt3wj(NX z(n<8^GH!BlWAH$~V@Vum>FmJFC6~iYz%!y&Y1gk0x8e>jNrrZ^+vrf7T$QI zm!|UPAn<}KPE##luo3gM-c0T((914cv+Y9Dgc4z_Vz6`q!ci%NStBqtMP5p%x|6>D z>pKrtwNMvr+t@UdvyPqrhIcEmfHCccD@j_T>||9_x0GZ)-KYjUYltEjPo9<&2}Ias z^>Ht7XW#3!R@+?MWMeh$>uB_WB>d;ubBI26CizO3_FXH1%tN=XH49-$9n{tCOiShC zOwyMQGxU-6nWn9&*0~#jL?MWU5M&67)Cv@9u#^x5UGPG|Im5Xjm=19_RoQS=;fPX| z<1wF4#1j0Qf5I;eRgE)Mal|KH4&ofc<<}}kyPt059un9GSB+em`L!)u(0ERa&(5xd z`DACD?4Lxobi*lXnl4n6nxs9u;T5dmqAUZy>cN-T_rm8sO&*-o`YAD|#65K{rS4hk z-ln>@q3*Q}vYM+P{K<_+WJh3D?_rBKXkwnK+qc+aYK0zbb@t3l?UiM~- zx>=|-c|KuImV}g=)Vr$6aF5h_>7O2^wTgMXbIP%`VlD`>i|6)!Ui-#)KJQ-{B~-^s zuLm;AaxpttZ9jgSVdJ9hCalH2X0Y76&aa+J4fFm#JvPH|wURe3^+2(?gWqA#L!!3H z;+$yhsg2K^t@tO*>*Cp-6KuB`7K6V2)H%9>F^=Q0ooqMTUtAIohGg zR~hy^$Et2ErNmOVWJQzQWZB!S7_|o<({;&>C7`7CYG=i|b9~ktZe|wrLUBHR{+EP! zzIE2T+;a?0HadQzXtIiscVDgf20qR>s$Sv0`c5 z_e}NAZ!=|NqFbapF>B>g&NXp3Z8%i^3Yi@8#Pvr~4jlKO`i+avuEy_=~s z477-dKsDn?NqxqX9V>~Yh*>2Nd7qP$v%7TUGY79TA7>xK`u02$^hrw<@@2NDHZ#Nl z%}7mRibu1G49hgPxOSLj0t(F{Wq!IAGfl7YB?p;gm<5_Tqw~g>iq#q{3H2+OkLQdq zuZtIQ$ehL!EaRn8_YD*;;hK*YhWdAX!dqS~%sykMmXgUza#ZxYDP9k9j#bWgSuR-S zVjseYI|u)h?L(H=!I?8_1w$tVBq?SV)s3>cQBgMri%ZO6ZzkiYN>EpN9Jw$S?=a33 zi|5v&R1r-kz)DV8^H8km0^HI30J9ATIt*+^-6DFFhS2JmBbR!PF7+`Xur9TfRGOjB z=p`nKrWK(DhG1$Ch3(g*C4J{?s3^Q)*y-V97fGN@N@L^ZRykX8MK)jEnoC-IT#`I{ zZduqFKFzv4(JhabXY{h|z0~a25-Cd-%uQ?E1 z7ANG^kZ|gcRv0h@^2ZTRz{kX5=y(op6Xg#WK=!3~F$!;I(`VIEI$KWI$z!$%n=f>b zO@*3@DJdf?urZc1<-w)ASswW!RtE}dkf~0VK9%{Nlx)tY^`K<8s_)Pq+U!34$hmxw zF~YR!b>*#Xe=POf`vrIZYk%Z>XA zT0)SZ@rs%1&-vf(U7B-^xTHF9E1?}PrJSrd?|G#ag=aYZjW1^Oz8HG#s-m{6T1n+& z)k$-aW|XT3UuHkdZj%DC>c}Vy-DFeUtg4$u(#IU8g?scwk}jJa3It871IpMqL>o2W2ruErP1CH@U5=Q8r4ApIAC$lvl5B&>8Khn{`(b~`u)H0fOfGr3zi0J( z?BbyEP;GHgT`$d!-e1V(jZD!>_}ZG1FP@VfIV;x0j@GR33I6lx&SR_+mMepl#0gd7 z!rP527ay>i)l9)|cB}PlQdYr1N^`OBdFncI>ie8wKEnJ@kzYO+<U_n)$|adIG=XQ5nEShW^KkB|6$e%By2z9hrg1s-070Y`syBys z{hLTbU{Niy2GEPtEuPwMP=$sVQ-TS#IV?8O(3AOH#?GGm)O@{JV!4z8rFceFO;5oZ zTp}>jqrjX`>Nm&jEuEKi=UBSNyzID}`L>F%;}X<_-0$u>spUr$n_(2YW$VS6IOmA$ zeS_~UV9jOKa6=(CU0wK1_EqGhyYLFPC;7?Zc+{S;M!mY6Nd=3k^kP-r8>>r;yV#9Y zr0XovGRtA|nJSF6xAN}5dk;SE;c^3wsp$F&RSqzPnDfDOC5_^{21NnipYlZwrV&6c zVsL0zFjT}UFfX{rb=X&{N?KJ*^0ULg-!J71BQNFLoZl!VvxXAy7^YoUJW#9H>ISnQOTuWp1 zDpqq8yX_`Rm1WlQJj1B=#iA7cGH*1!eECA#R=__ktkg>E8M2BP>l-Hv<)SRc%gwdz zjkWD1{P$;1IyLolQ$4*k8|Z79?Y1(H@Fv)1KsaUFb!=t{RyepvlT5Q2@DY*Cz($y( zFg5bA;Vj;h?zzV*pQcNCk!^+5g(X4=A1z`dxdCEF4hJQ8#qtxHOo6DvO>Jn_O~4Z1lDw@&(1u3zIEsLp4rN}wr6Qb$Fgc`~ZDXgp7IWHA`7$X-DRS#fb3 znucoVJw;6!i>2LsJhc@xn>)vc<+86NpkP?6YL{~Mo|Tho{WpK7bz(7-66=~~|NIwr zcgj|RXKmHk7R*?A%P`c0B3X*#IHDsDWsTS2#Sh`!!2$7;#dSN*aAk%4DQb`E2fv5a zk#}Gp!`38I2s{`@(&c*12G>x^$cV)_k^v(L_b?KC7wXE9sS!U4L?M#10#p(7bpfgv zp4xZ-ABB3SksZd)2D;`4gAR8F>n7k4y8VH9J)U^;SLPqGQhpk&BCwYdcDkM69Jkgn zVzInFBN>v!t|U1jmwXUJnjeHtFX=Ylo(}AQ%c+@hbxTt&t(VuWKuy>&fyX9hx{Cj0 zb`R@&C&>MiTGLP^o=c~KjYak3vU<`b)k>)tD-ZIc-b_>CM6w|;y`$;IcCW}g^WU0u zqyncI31E4$7fm~jpJ02ba|#A`C^DGiyIWKcjspS*Tv)1>K!ZppFG1^4t3(wsJ=nck z&G*^(52jdF!VVx!PFh9VI9*;AeQaYDSX~O=9%a$&AxdN6SS=al6R&K`u5*+5Y{1tDRv)KAU8!xv*8w zP&(BP4%i*`8{m)ZO-h4)uUjvMu~yuvs*5Ry#0_0jV-BMC7#D9zOzMb6QEt?qE)Y(= zxFbG@{F4+I0U}?bBoRtcriNxApgO2b(3z(?Bg)1gRl&fEMRu%4{ammHyOVa8MzPXa zE}yoroTqPhhI-3Muxu>G@aCyqj*Z3l?l)LbFvUK*mlX9}eei6)y`0BR2n6ggJ0<8+ zC#YMt>dq|`Di5qROwT_3Akq*<=1hGiCt!Ox&2auH`w4b{UEb#=#Z%jxYt33E9jJ;- zdiKiP!U~PClogx5u=y8US@^M0Y<-yjeJfoRX@;}#U@86-S?auuYcznyYB(p9ko!bQ zz+!P1mI|yxnITe?V-R38rrJVhGN_LB3nA2-66F)R(c#*jZi+k-=$zSZ#m<{T*N|gU zIxI_)6ie}}DDrlZYxa|iA}_yx3|HLcGl&UL?T$M z4}&v1_mvRZp2glGL9q-~R+^`UcYP*3m($B(rR3I{VWm?S5!Ti}Sn=CVT~5nZyfl@w zH`rC|DC%ObY0&a4oybYGS1j;c*r-E!R6x4J-7<6)JrXT!9x~pz$H?@sUnXJ~ICoeq zjx;AVEubE3H}zX+1V{rwxORu}5W8B=_o{sPtdVv7{5UhX z(_Zc0r8a_+bJ6wsL0LFm9dQEBAvO0tDU@|O2*J1dGy{PgYgJ-9@ovvfh{7K}FLx9&H z%!ssr*>pcEo9%dACAC+sI<+SX-mxG2-ej&=N)3#j%w}|1!D2?qwH0jA%6eYC(KV9| z`N3}!tVC`2VtDL|8H*+JTfQH-xwpl$w%0x{@PmE=TQh)bY=E^Q0b4VspG!F1^NT%# zcVwQzdnizE!h{fUl@JMmYyts^TqQ(_5uzG+5l1A%e3KBHCB)ew#BCAcp&$Q;2uZ$| zkl@pVq`rh#Nj^qM2JggVZxfQkIgjh`1B4Xt_DJ!ggp@u@2m*dmMPj_h6H>>yf$fsb zYlO_;*{v9TKPUR(N%V8@ZsJT!f9@Y!H!ycBRuuv?Ok%z1|{*oL1Y&FRF*ZkZa>0cB6E?A7bjIxGziSQN=2_Y?bDFE+_{J_Bh z>gjb4*B1}3@7@OLXweY@<{YXy&?t@`1oR{!l94f&Dj;<1pfd3e&i`#*vm{6IxW7P( znBy|3;7yPk-biVXCNn~pA^I>ok~;Hc!2A%YVyE96vxDoOB{S%wgUPS5KZ^1d(#N^V z8um&uQlU&6Z|FOiSqji<*zkI#UM=gBLe7-46b4}p3j`xET@f$#^XXXfY7 z_g^`&+h@+)huI0q4}eymizo&u#0PRtdJxlF;^sLE#liMun14WCO3|pi4~^FcMACWF7sefL9d?@0uo& zWfQ|h1@4fsIH+J!D7-4`sxE_qva0GT77YRKSr*{&zJrSQedu9ns)`}#nvejzrYi=v zW^0N_`4PB^;tz%IQ!_q{I27A~Q6CLSDI_s(ecsL}0ceI3t4(Q=T Y@QR^}vZk22sUkhC>N;K+&?x->0hVL~RsaA1 literal 0 HcmV?d00001 diff --git a/mamweb/static/fonts/ghoul/ghoulheadline.ttf b/mamweb/static/fonts/ghoul/ghoulheadline.ttf new file mode 100644 index 0000000000000000000000000000000000000000..90d4f7c126d0c67a754e622812a3b83f5929fade GIT binary patch literal 24980 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 + {% if halloween == 2024 %} + + {% endif %} + diff --git a/various/context_processors.py b/various/context_processors.py index a1e4478a..331780b1 100644 --- a/various/context_processors.py +++ b/various/context_processors.py @@ -15,6 +15,19 @@ def april(req): return {'april': today.year} return {} +def halloween(req): + if 'X-Halloween' in req.headers: + try: + year = int(req.headers['X-Halloween']) + return {'halloween': year} + except: + pass # Fall-back to regular behaviour + + import datetime + today = datetime.date.today() + if today.month == 10 and today.day >= 25: + return {'halloween': today.year} + return {} def rozliseni(request): ltp = settings.LOCAL_TEST_PROD From b491dcff7e596c1708992a6c0a3b83b923855c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 19:19:31 +0200 Subject: [PATCH 503/515] =?UTF-8?q?Koment=C3=A1=C5=99=20k=20kontejneru?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/static/css/layout.css | 2 +- mamweb/templates/base.html | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index 828b1d7d..abd911c1 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -8,7 +8,7 @@ } /**** KONTEJNER ****/ -div.kontejner { +div.kontejner {/* Ne container, aby se to netlouklo s bootstrapem. */ width: 970px; margin: auto; min-height: 100vh; diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 69b533aa..7f14b378 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -55,8 +55,8 @@

    {% endif %} -
    -
    +
    {# ne container, aby se netlouklo s bootstrapem #} +
    {# ne content, aby se netlouklo s bootstrapem #}
    M&M – korespondenční seminář a časopis MFF UK
    From ffcc2e04a3c49202a9d98ed2d4a7d16a1252ee8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 19:28:12 +0200 Subject: [PATCH 504/515] TS -> TITULNI_STRANA a AZAD -> AKTUALNI_ZADANI --- mamweb/static/css/layout.css | 18 +++++++++--------- .../seminar/titulnistrana/titulnistrana.html | 14 +++++++------- .../seminar/zadani/AktualniZadani.html | 10 +++++----- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/mamweb/static/css/layout.css b/mamweb/static/css/layout.css index abd911c1..bab8ea39 100644 --- a/mamweb/static/css/layout.css +++ b/mamweb/static/css/layout.css @@ -461,7 +461,7 @@ body.suprodweb { &:before, &:after { background: red; } } h1 { text-align: center; } - .TS_zjistit_vic{ + .TITULNI_STRANA_zjistit_vic{ text-align: center; margin-bottom: 30px; @@ -474,12 +474,12 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_graf { + .TITULNI_STRANA_graf { @media(max-width: 800px) { padding-top: 40px; } - .TS_graf-svg { + .TITULNI_STRANA_graf-svg { display: flex; #svg-graf { @@ -496,7 +496,7 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_obsah { + .TITULNI_STRANA_obsah { width: 66%; @media(max-width: 800px){ @@ -504,7 +504,7 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_vitej_titulka, .TS_temata_titulka { + .TITULNI_STRANA_vitej_titulka, .TITULNI_STRANA_temata_titulka { width: 49%; padding: 10px; display: table-cell; @@ -515,7 +515,7 @@ body.suprodweb { &:before, &:after { background: red; } } } } - .TS_novinky { + .TITULNI_STRANA_novinky { width: 33%; padding: 10px; @@ -540,11 +540,11 @@ div.odpocet { .stranka_aktualni_zadani { text-align: center; - #AZAD_obrazek { + #AKTUALNI_ZADADNI_obrazek { margin-top: 15px; } - div.AZAD_termin { + div.AKTUALNI_ZADANI_termin { text-align: center; font-size: large; font-weight: bold; @@ -553,7 +553,7 @@ div.odpocet { font-size: small; } - .AZAD_datum { + .AKTUALNI_ZADANI_datum { color: var(--hlavni-oranzova); margin: 0; } diff --git a/seminar/templates/seminar/titulnistrana/titulnistrana.html b/seminar/templates/seminar/titulnistrana/titulnistrana.html index d8b1e583..e9e5c16d 100644 --- a/seminar/templates/seminar/titulnistrana/titulnistrana.html +++ b/seminar/templates/seminar/titulnistrana/titulnistrana.html @@ -36,9 +36,9 @@ function sousdeadline() {
    -
    +
    -
    +

    {% block nadpis1a %} @@ -54,7 +54,7 @@ function sousdeadline() {

    -
    +

    Vyřeš to! @@ -76,13 +76,13 @@ function sousdeadline() {

    -
    +
    - -
    +
    {# Novinky #}

    Co je nového?

    diff --git a/seminar/templates/seminar/zadani/AktualniZadani.html b/seminar/templates/seminar/zadani/AktualniZadani.html index 2ebbcaa4..c463129d 100644 --- a/seminar/templates/seminar/zadani/AktualniZadani.html +++ b/seminar/templates/seminar/zadani/AktualniZadani.html @@ -14,20 +14,20 @@ {% if user.je_org and not verejne %}
    {% endif %}
    -
    +
    Termíny pro odeslání řešení {{ac.poradi}}. série:
    {% for deadline in ac.deadline_v_cisle.all %} {% if deadline.typ == deadline.TYP_SOUS or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} - {{deadline.deadline.date}} pro účast na soustředění
    + {{deadline.deadline.date}} pro účast na soustředění
    {% endif %} {% if deadline.typ == deadline.TYP_PRVNI or deadline.typ == deadline.TYP_PRVNI_A_SOUS %} - {{deadline.deadline.date}} pro otištění v dalším čísle
    + {{deadline.deadline.date}} pro otištění v dalším čísle
    {% endif %} {% if deadline.typ == deadline.TYP_CISLA %} - {{deadline.deadline.date}} definitivní deadline
    + {{deadline.deadline.date}} definitivní deadline
    {% endif %} {% endfor %} @@ -35,7 +35,7 @@
    {% if ac.titulka_nahled and ac.pdf %} -
    Titulní strana {{ac.poradi}}. čísla + Titulní strana {{ac.poradi}}. čísla {% endif %} {% if ac.pdf %} From 8dca676edce92b907bece2d08fa9a9ed46bd71b8 Mon Sep 17 00:00:00 2001 From: ticvac Date: Tue, 22 Oct 2024 19:29:28 +0200 Subject: [PATCH 505/515] script presunut dolu pod april --- mamweb/templates/base.html | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index c3fe697c..cc6a1fc4 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -35,18 +35,6 @@ {# script specifický pro stránku #} {% block script %}{% endblock %} - - {% if halloween == 2024 %} - - {% endif %} - @@ -217,6 +205,17 @@ walkText(document.body); {% endif %} + + {% if halloween == 2024 %} + + {% endif %} {% block js %}{% endblock %} From fbd5087c022fa3468ab0a1c3c03fd7a969f99be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 19:29:29 +0200 Subject: [PATCH 506/515] =?UTF-8?q?Zm=C4=9Bna=20version,=20aby=20po=C4=8D?= =?UTF-8?q?=C3=ADta=C4=8De=20p=C5=99ena=C4=8Detly=20CSSka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/base.html | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index 7f14b378..a09ac528 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,11 +8,11 @@ {% block custom_css %}{% endblock %} - - - - - + + + + + From 77d158a3a711b6d91ee3c36acc51fff2f7929863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 19:56:08 +0200 Subject: [PATCH 507/515] =?UTF-8?q?Zm=C4=9Bna=20version,=20aby=20po=C4=8D?= =?UTF-8?q?=C3=ADta=C4=8De=20p=C5=99ena=C4=8Detly=20CSSka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mamweb/templates/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mamweb/templates/base.html b/mamweb/templates/base.html index a09ac528..1a4c22ab 100644 --- a/mamweb/templates/base.html +++ b/mamweb/templates/base.html @@ -8,7 +8,7 @@ {% block custom_css %}{% endblock %} - + From 227b83b70100272b4386d76ee97886cc92861ff3 Mon Sep 17 00:00:00 2001 From: ticvac Date: Tue, 22 Oct 2024 20:10:27 +0200 Subject: [PATCH 508/515] halloween do settings --- mamweb/settings_common.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index f737be1e..a9b38c9a 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -87,6 +87,7 @@ TEMPLATES = [ 'header_fotky.context_processors.vzhled', 'various.context_processors.rozliseni', 'various.context_processors.april', + 'various.context_processors.halloween', ) }, }, From 8ff66cb63115b750af25da0f50122a22e4fe4ea2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 20:15:58 +0200 Subject: [PATCH 509/515] WTF? --- various/templates/various/pracuje_se.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/various/templates/various/pracuje_se.html b/various/templates/various/pracuje_se.html index e80fea23..1a396534 100644 --- a/various/templates/various/pracuje_se.html +++ b/various/templates/various/pracuje_se.html @@ -10,7 +10,7 @@

    Na této stránce velmi intenzivně pracujeme. Za dočasnou nedostupnost se omlouváme. - Zkuste přejít na titulní stránku + Zkuste přejít na titulní stránku nebo se podívat na aktuální zadání.

    From e443ecf33d519bfd0fd7b6acf39d2c023c012ab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 21:23:11 +0200 Subject: [PATCH 510/515] views_all do __init__ --- tvorba/views/__init__.py | 584 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 582 insertions(+), 2 deletions(-) diff --git a/tvorba/views/__init__.py b/tvorba/views/__init__.py index 8db4424b..823ddd96 100644 --- a/tvorba/views/__init__.py +++ b/tvorba/views/__init__.py @@ -1,4 +1,584 @@ -from .views_all import * - # Dočsasné views from .docasne import * + +# Zbytek + +from django.shortcuts import get_object_or_404, render +from django.http import HttpResponse +from django.urls import reverse +from django.core.exceptions import ObjectDoesNotExist +from django.views import generic +from django.utils.translation import gettext as _ +from django.http import Http404 +from django.db.models import Q, Sum, Count +from django.views.generic.base import RedirectView +from django.core.exceptions import PermissionDenied + +import seminar.models as s +import seminar.models as m +from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ + Resitel, Novinky, Tema, Clanek, \ + Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci +#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva +from treenode import treelib +import treenode.templatetags as tnltt +import treenode.serializers as vr +from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ + VysledkovkaRocniku, VysledkovkaDoTeXu + +from datetime import date, datetime +from itertools import groupby +from collections import OrderedDict +import os +import os.path as op +from django.conf import settings +import unicodedata +import logging +import time + +import personalni.views + +from .. import utils + +# ze starého modelu +#def verejna_temata(rocnik): +# """ +# Vrací queryset zveřejněných témat v daném ročníku. +# """ +# return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') +# +#def temata_v_rocniku(rocnik): +# return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) + +logger = logging.getLogger(__name__) + +def get_problemy_k_tematu(tema): + return Problem.objects.filter(nadproblem = tema) + + +# FIXME: Pozor, níž je ještě jeden ProblemView! +#class ProblemView(generic.DetailView): +# model = s.Problem +# # Zkopírujeme template_name od TreeNodeView, protože jsme prakticky jen trošku upravený TreeNodeView +# template_name = TreeNodeView.template_name +# +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# user = self.request.user +# # Teď potřebujeme doplnit tnldata do kontextu. +# # Ošklivý type switch, hezčí by bylo udělat to polymorfni. FIXME. +# if False: +# # Hezčí formátování zbytku :-P +# pass +# elif isinstance(self.object, s.Clanek) or isinstance(self.object, s.Konfera): +# # Tyhle Problémy mají ŘešeníNode +# context['tnldata'] = TNLData.from_treenode(self.object.reseninode,user) +# elif isinstance(self.object, s.Uloha): +# # FIXME: Teď vždycky zobrazujeme i vzorák! Možná by bylo hezčí/lepší mít to stejně jako pro Téma: procházet jen dosažitelné z Ročníku / čísla / whatever +# tnl_zadani = TNLData.from_treenode(self.object.ulohazadaninode,user) +# tnl_vzorak = TNLData.from_treenode(self.object.ulohavzoraknode,user) +# context['tnldata'] = TNLData.from_tnldata_list([tnl_zadani, tnl_vzorak]) +# elif isinstance(self.object, s.Tema): +# rocniknode = self.object.rocnik.rocniknode +# context['tnldata'] = TNLData.filter_treenode(rocniknode, lambda x: isinstance(x, s.TemaVCisleNode)) +# else: +# raise ValueError("Obecný problém nejde zobrazit.") +# return context + + +#class AktualniZadaniView(generic.TemplateView): +# template_name = 'treenode/treenode.html' + +# TODO Co chceme vlastně zobrazovat na této stránce? Zatím je zde aktuální číslo, ale může tu být cokoli jiného... +#class AktualniZadaniView(TreeNodeView): +# def get_object(self): +# nastaveni = get_object_or_404(Nastaveni) +# return nastaveni.aktualni_cislo.cislonode +# +# def get_context_data(self,**kwargs): +# nastaveni = get_object_or_404(Nastaveni) +# context = super().get_context_data(**kwargs) +# verejne = nastaveni.aktualni_cislo.verejne() +# context['verejne'] = verejne +# return context + +def AktualniZadaniView(request): + nastaveni = get_object_or_404(Nastaveni) + verejne = nastaveni.aktualni_cislo.verejne() + return render(request, 'tvorba/zadani/AktualniZadani.html', + {'nastaveni': nastaveni, + 'verejne': verejne, + }, + ) + +def ZadaniTemataView(request): + nastaveni = get_object_or_404(Nastaveni) + verejne = nastaveni.aktualni_cislo.verejne() + akt_rocnik = nastaveni.aktualni_cislo.rocnik + temata = s.Tema.objects.filter(rocnik=akt_rocnik, stav='zadany') + return render(request, 'tvorba/tematka/rozcestnik.html', + { + 'tematka': temata, + 'verejne': verejne, + }, + ) + + +# nastaveni = get_object_or_404(Nastaveni) +# temata = verejna_temata(nastaveni.aktualni_rocnik) +# for t in temata: +# if request.user.is_staff: +# t.prispevky = t.prispevek_set.filter(problem=t) +# else: +# t.prispevky = t.prispevek_set.filter(problem=t, zverejnit=True) +# return render(request, 'tvorba/zadani/Temata.html', +# { +# 'temata': temata, +# } +# ) +# +# +# +#def TematkoView(request, rocnik, tematko): +# nastaveni = s.Nastaveni.objects.first() +# rocnik_object = s.Rocnik.objects.filter(rocnik=rocnik) +# tematko_object = s.Tema.objects.filter(rocnik=rocnik_object[0], kod=tematko) +# seznam = vytahniZLesaSeznam(tematko_object[0], nastaveni.aktualni_rocnik().rocniknode) +# for node, depth in seznam: +# if node.isinstance(node, s.KonferaNode): +# raise Exception("Not implemented yet") +# if node.isinstance(node, s.PohadkaNode): # Mohu ignorovat, má pod sebou +# pass +# +# return render(request, 'tvorba/tematka/toaletak.html', {}) +# +# +#def TemataRozcestnikView(request): +# print("=============================================") +# nastaveni = s.Nastaveni.objects.first() +# tematka_objects = s.Tema.objects.filter(rocnik=nastaveni.aktualni_rocnik()) +# tematka = [] #List tematka obsahuje pro kazde tematko object a list vsech TemaVCisleNodu - implementované pomocí slovníku +# for tematko_object in tematka_objects: +# print("AKTUALNI TEMATKO") +# print(tematko_object.id) +# odkazy = vytahniZLesaSeznam(tematko_object, nastaveni.aktualni_rocnik().rocniknode, pouze_zajimave = True) #Odkazy jsou tuply (node, depth) v listu +# print(odkazy) +# cisla = [] # List tuplů (nazev cisla, list odkazů) +# vcisle = [] +# cislo = None +# for odkaz in odkazy: +# if odkaz[1] == 0: +# if cislo != None: +# cisla.append((cislo, vcisle)) +# cislo = (odkaz[0].getOdkazStr(), odkaz[0].getOdkaz()) +# vcisle = [] +# else: +# print(odkaz[0].getOdkaz()) +# vcisle.append((odkaz[0].getOdkazStr(), odkaz[0].getOdkaz())) +# if cislo != None: +# cisla.append((cislo, vcisle)) +# +# print(cisla) +# tematka.append({ +# "kod" : tematko_object.kod, +# "nazev" : tematko_object.nazev, +# "abstrakt" : tematko_object.abstrakt, +# "obrazek": tematko_object.obrazek, +# "cisla" : cisla +# }) +# return render(request, 'tvorba/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik}) +# + +def ZadaniAktualniVysledkovkaView(request): + nastaveni = get_object_or_404(Nastaveni) + # Aktualni verejna vysledkovka + rocnik = nastaveni.aktualni_rocnik + context = {'vysledkovka': VysledkovkaRocniku(rocnik, True)} + + # kdyz neni verejna vysledkovka, tak zobraz starou + if len(context['vysledkovka'].cisla_rocniku) == 0: + try: + minuly_rocnik = Rocnik.objects.get( + rocnik=(rocnik.rocnik-1)) + rocnik = minuly_rocnik + + # Přepíšeme prázdnou výsledkovku výsledkovkou z minulého ročníku + context['vysledkovka'] = VysledkovkaRocniku(rocnik, True) + except ObjectDoesNotExist: + pass + + context['rocnik'] = rocnik + return render( + request, + 'tvorba/zadani/AktualniVysledkovka.html', + context + ) + + +### Titulni strana + +def aktualni_temata(rocnik): + """ + Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. + """ + return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') + + +### Archiv + + +class ArchivView(generic.ListView): + model = Rocnik + template_name = 'tvorba/archiv/cisla.html' + + def get_context_data(self, **kwargs): + context = super(ArchivView, self).get_context_data(**kwargs) + + cisla = Cislo.objects.filter(poradi=1) + if not self.request.user.je_org: + cisla = cisla.filter(verejne_db=True) + urls ={} + + for i, c in enumerate(cisla): + # Výchozí nastavení + if c.rocnik not in urls: + urls[c.rocnik] = op.join(settings.STATIC_URL, "tvorba", "no-picture.png") + # NOTE: tohle možná nastavuje poslední titulku + if c.titulka_nahled: + urls[c.rocnik] = c.titulka_nahled.url + + context["object_list"] = urls + + return context + + + + + +class RocnikView(generic.DetailView): + model = Rocnik + template_name = 'tvorba/archiv/rocnik.html' + + # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) + def get_object(self, queryset=None): + if queryset is None: + queryset = self.get_queryset() + + return get_object_or_404(queryset,rocnik=self.kwargs.get('rocnik')) + + def get_context_data(self, **kwargs): + context = super(RocnikView, self).get_context_data(**kwargs) + context["vysledkovka"] = VysledkovkaRocniku(context["rocnik"], True) + context["neprazdna_vysledkovka"] = len(context['vysledkovka'].cisla_rocniku) != 0 + context["vysledkovka_neverejna"] = VysledkovkaRocniku(context["rocnik"], False) + return context + +def resiteleRocnikuCsvExportView(request, rocnik): + from personalni.views import dataResiteluCsvResponse + assert request.method in ('GET', 'HEAD') + return dataResiteluCsvResponse( + utils.resi_v_rocniku( + get_object_or_404(m.Rocnik, rocnik=rocnik) + ) + ) + + +# FIXME: Pozor, výš je ještě jeden ProblemView! +#class ProblemView(generic.DetailView): +# model = Problem +# +# # Používáme funkci, protože přímo template_name neumí mít v přiřazení dost logiky. Ledaže by se to udělalo polymorfně... +# def get_template_names(self, **kwargs): +# # FIXME: Switch podle typu není hezký, ale nechtělo se mi to přepisovat celé. Správně by se tohle mělo řešit polymorfismem. +# spravne_templaty = { +# s.Uloha: "uloha", +# s.Tema: "tema", +# s.Konfera: "konfera", +# s.Clanek: "clanek", +# } +# context = super().get_context_data(**kwargs) +# return ['tvorba/archiv/problem_' + spravne_templaty[context['object'].__class__] + '.html'] +# +# def get_context_data(self, **kwargs): +# context = super().get_context_data(**kwargs) +# # Musí se používat context['object'], protože nevíme, jestli dostaneme úložku, téma, článek, .... a tyhle věci vyrábějí různé klíče. +# if not context['object'].verejne() and not self.request.user.je_org: +# raise PermissionDenied() +# if isinstance(context['object'], Clanek): +# context['reseni'] = Reseni.objects.filter(problem=context['object']).select_related('resitel').order_by('resitel__prijmeni') +# return context + + + +class CisloView(generic.DetailView): + # FIXME zobrazování témátek a vůbec, teď je tam jen odkaz na číslo v pdf + model = Cislo + template_name = 'tvorba/archiv/cislo.html' + + # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) + def get_object(self, queryset=None): + if queryset is None: + queryset = self.get_queryset() + rocnik_arg = self.kwargs.get('rocnik') + poradi_arg = self.kwargs.get('cislo') + queryset = queryset.filter(rocnik__rocnik=rocnik_arg, poradi=poradi_arg) + + try: + obj = queryset.get() + except queryset.model.DoesNotExist: + raise Http404(_("No %(verbose_name)s found matching the query") % + {'verbose_name': queryset.model._meta.verbose_name}) + return obj + + def get_context_data(self, **kwargs): + context = super(CisloView, self).get_context_data(**kwargs) + + cislo = context['cislo'] + context['prevcislo'] = Cislo.objects.filter((Q(rocnik__lt=self.object.rocnik) | Q(poradi__lt=self.object.poradi))&Q(rocnik__lte=self.object.rocnik)).first() + + deadliny = Deadline.objects.filter(cislo=cislo).reverse() + deadliny_s_vysledkovkami = [] + + nadpisy = { + m.Deadline.TYP_CISLA: "Výsledkovka", + m.Deadline.TYP_PRVNI: "Výsledkovka do prvního deadlinu", + m.Deadline.TYP_PRVNI_A_SOUS: "Výsledkovka do prvního deadlinu a deadlinu pro účast na soustředění", + m.Deadline.TYP_SOUS: "Výsledkovka do deadlinu pro účast na soustředění", + } + + for deadline in deadliny: + if self.request.user.je_org | deadline.verejna_vysledkovka: + deadliny_s_vysledkovkami.append((deadline, nadpisy[deadline.typ], VysledkovkaCisla(cislo, not self.request.user.je_org, deadline))) + + context['deadliny_s_vysledkovkami'] = deadliny_s_vysledkovkami + return context + + +class ArchivTemataView(generic.ListView): + model = Problem + template_name = 'tvorba/archiv/temata.html' + queryset = Tema.objects.filter(stav=Problem.STAV_ZADANY).select_related('rocnik').order_by('rocnik', 'kod') + + def get_context_data(self, *args, **kwargs): + ctx = super().get_context_data(*args, **kwargs) + ctx['rocniky'] = OrderedDict() + for rocnik, temata in groupby(ctx['object_list'], lambda tema: tema.rocnik): + ctx['rocniky'][rocnik] = list(temata) + return ctx + +class OdmenyView(generic.TemplateView): + template_name = 'tvorba/archiv/odmeny.html' + + def get_context_data(self, **kwargs): + context = super().get_context_data(**kwargs) + fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) + tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) + resitele = utils.aktivniResitele(tocislo) + + def get_diff(from_deadline: Deadline, to_deadline: Deadline): + frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) + tobody = body_resitelu(resitele=resitele, jen_verejne=False, do=to_deadline) + outlist = [] + for resitel in resitele: + fbody = frombody.get(resitel.id, 0) + tbody = tobody.get(resitel.id, 0) + ftitul = resitel.get_titul(fbody) + ttitul = resitel.get_titul(tbody) + if ftitul != ttitul: + outlist.append({'jmeno': resitel.osoba.plne_jmeno(), 'ftitul': ftitul, 'ttitul': ttitul}) + return outlist + + def posledni_deadline_oprava(cislo: Cislo) -> Deadline: + posledni_deadline = cislo.posledni_deadline + if posledni_deadline is None: + return Deadline.objects.filter(Q(cislo__poradi__lt=cislo.poradi, cislo__rocnik=cislo.rocnik) | Q(cislo__rocnik__rocnik__lt=cislo.rocnik.rocnik)).order_by("deadline").last() + return posledni_deadline + + context["from_cislo"] = fromcislo + context["to_cislo"] = tocislo + from_deadline = posledni_deadline_oprava(fromcislo) + to_deadline = posledni_deadline_oprava(tocislo) + context["from_deadline"] = from_deadline + context["to_deadline"] = to_deadline + context["zmeny"] = get_diff(from_deadline, to_deadline) + + return context + + + + +### Generovani vysledkovky + +class CisloVysledkovkaView(CisloView): + """View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu.""" + + model = Cislo + template_name = 'tvorba/archiv/cislo_vysledkovka.tex' + #content_type = 'application/x-tex; charset=UTF8' + #umozni rovnou stahnout TeXovsky dokument + content_type = 'text/plain; charset=UTF8' + #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani + + def get_context_data(self, **kwargs): + context = super(CisloVysledkovkaView, self).get_context_data() + cislo = context['cislo'] + + cislopred = cislo.predchozi() + if cislopred is not None: + context['vysledkovka'] = VysledkovkaDoTeXu( + cislo, + od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), + do_vcetne=cislo.zlomovy_deadline_pro_papirove_cislo(), + ) + else: + context['vysledkovka'] = VysledkovkaCisla( + cislo, + jen_verejne=False, + do_deadlinu=cislo.zlomovy_deadline_pro_papirove_cislo(), + ) + return context + + +# Podle předchozího +class PosledniCisloVysledkovkaView(generic.DetailView): + """View vytvořené pro zobrazení výsledkovky posledního čísla v TeXu.""" + + model = Rocnik + template_name = 'tvorba/archiv/cislo_vysledkovka.tex' + content_type = 'text/plain; charset=UTF8' + + def get_object(self, queryset=None): + if queryset is None: + queryset = self.get_queryset() + rocnik_arg = self.kwargs.get('rocnik') + queryset = queryset.filter(rocnik=rocnik_arg) + + try: + obj = queryset.get() + except queryset.model.DoesNotExist: + raise Http404(_("No %(verbose_name)s found matching the query") % + {'verbose_name': queryset.model._meta.verbose_name}) + return obj + + def get_context_data(self, **kwargs): + context = super(PosledniCisloVysledkovkaView, self).get_context_data() + rocnik = context['rocnik'] + cislo = rocnik.cisla.order_by("poradi").filter(deadline_v_cisle__isnull=False).last() + if cislo is None: + raise Http404(f"Ročník {rocnik.rocnik} nemá číslo s deadlinem.") + cislopred = cislo.predchozi() + context['vysledkovka'] = VysledkovkaDoTeXu( + cislo, + od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), + do_vcetne=cislo.deadline_v_cisle.order_by("deadline").last(), + ) + return context + + +class RocnikVysledkovkaView(RocnikView): + """ View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu.""" + model = Rocnik + template_name = 'tvorba/archiv/rocnik_vysledkovka.tex' + #content_type = 'application/x-tex; charset=UTF8' + #umozni rovnou stahnout TeXovsky dokument + content_type = 'text/plain; charset=UTF8' +#vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani + +def cisloObalkyView(request, rocnik, cislo): + realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) + return personalni.views.obalkyView(request, utils.aktivniResitele(realne_cislo)) + + + +### Tituly +def TitulyViewRocnik(request, rocnik): + return TitulyView(request, rocnik, None) + + +def TitulyView(request, rocnik, cislo): + """ View pro stažení makra titulů v TeXu.""" + rocnik_obj = get_object_or_404(Rocnik, rocnik = rocnik) + resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) + + asciijmena = [] + jmenovci = False # detekuje, zda jsou dva řešitelé jmenovci (modulo nabodeníčka), + # pokud ano, vrátí se jako true + if cislo is not None: + cislo_obj = get_object_or_404(Cislo, rocnik=rocnik_obj, poradi=cislo) + slovnik_s_body = body_resitelu(do=cislo_obj.zlomovy_deadline_pro_papirove_cislo(), jen_verejne=False) + else: + slovnik_s_body = body_resitelu(do=Deadline.objects.filter(cislo__rocnik=rocnik_obj).last(), jen_verejne=False) + + for resitel in resitele: + resitel.titul = resitel.get_titul(slovnik_s_body[resitel.id]) + jmeno = resitel.osoba.jmeno+resitel.osoba.prijmeni + # převedeme jména a příjmení řešitelů do ASCII + ascii_jmeno_bytes = unicodedata.normalize('NFKD', jmeno).encode("ascii","ignore") + # vrátí se byte string, převedeme na standardní string + ascii_jmeno_divnoznaky = str(ascii_jmeno_bytes, "utf-8", "ignore").replace(" ","") + resitel.ascii = ''.join(a for a in ascii_jmeno_divnoznaky if a.isalnum()) + if resitel.ascii not in asciijmena: + asciijmena.append(resitel.ascii) + else: + jmenovci = True + + return render(request, 'tvorba/archiv/tituly.tex', + {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") + + +### Články +def group_by_rocnik(clanky): + ''' Vezme zadaný seznam článků a seskupí je podle ročníku. + Vrátí seznam seznamů článků ze stejného ročníku.''' + if len(clanky) == 0: + return clanky + clanky.order_by('cislo__rocnik__rocnik') + skupiny_clanku = [] + skupina = [] + + rocnik = clanky.first().cislo.rocnik.rocnik # první ročník + for clanek in clanky: + if clanek.cislo.rocnik.rocnik == rocnik: + skupina.append(clanek) + else: + skupiny_clanku.append(skupina) + skupina = [] + skupina.append(clanek) + rocnik = clanek.cislo.rocnik.rocnik + skupiny_clanku.append(skupina) + return skupiny_clanku + + +# FIXME: clanky jsou vsechny, pokud budou i neresitelske, tak se take zobrazi +# FIXME: Původně tu byl kód přímo v těle třídy, což rozbíjelo migrace. Opravil jsem, ale vůbec nevím, jestli to funguje. +class ClankyResitelView(generic.ListView): + model = Problem + template_name = 'tvorba/clanky/resitelske_clanky.html' + + # FIXME: QuerySet není pole! + def get_queryset(self): + clanky = Clanek.objects.filter(stav=Problem.STAV_VYRESENY).select_related('cislo__rocnik').order_by('-cislo__rocnik__rocnik') + queryset = [] + skupiny_clanku = group_by_rocnik(clanky) + for skupina in skupiny_clanku: + skupina.sort(key=lambda clanek: clanek.kod_v_rocniku) + for clanek in skupina: + queryset.append(clanek) + return queryset + +# FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit +#class ClankyOrganizatorView(generic.ListView): +# model = Problem +# template_name = 'tvorba/clanky/organizatorske_clanky.html' +# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') + + + + +class AktualniRocnikRedirectView(RedirectView): + permanent=False + pattern_name = 'seminar_rocnik' + + def get_redirect_url(self, *args, **kwargs): + aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik.rocnik + return super().get_redirect_url(rocnik=aktualni_rocnik, *args, **kwargs) From f9a28689b0e2d43024557f6238b4ae07cadd2866 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 21:30:33 +0200 Subject: [PATCH 511/515] views_all do __init__ --- tvorba/views/views_all.py | 579 -------------------------------------- 1 file changed, 579 deletions(-) delete mode 100644 tvorba/views/views_all.py diff --git a/tvorba/views/views_all.py b/tvorba/views/views_all.py deleted file mode 100644 index f960aac8..00000000 --- a/tvorba/views/views_all.py +++ /dev/null @@ -1,579 +0,0 @@ -from django.shortcuts import get_object_or_404, render -from django.http import HttpResponse -from django.urls import reverse -from django.core.exceptions import ObjectDoesNotExist -from django.views import generic -from django.utils.translation import gettext as _ -from django.http import Http404 -from django.db.models import Q, Sum, Count -from django.views.generic.base import RedirectView -from django.core.exceptions import PermissionDenied - -import seminar.models as s -import seminar.models as m -from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \ - Resitel, Novinky, Tema, Clanek, \ - Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci -#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva -from treenode import treelib -import treenode.templatetags as tnltt -import treenode.serializers as vr -from vysledkovky.utils import body_resitelu, VysledkovkaCisla, \ - VysledkovkaRocniku, VysledkovkaDoTeXu - -from datetime import date, datetime -from itertools import groupby -from collections import OrderedDict -import os -import os.path as op -from django.conf import settings -import unicodedata -import logging -import time - -import personalni.views - -from .. import utils - -# ze starého modelu -#def verejna_temata(rocnik): -# """ -# Vrací queryset zveřejněných témat v daném ročníku. -# """ -# return Problem.objects.filter(typ=Problem.TYP_TEMA, cislo_zadani__rocnik=rocnik, cislo_zadani__verejne_db=True).order_by('kod') -# -#def temata_v_rocniku(rocnik): -# return Problem.objects.filter(typ=Problem.TYP_TEMA, rocnik=rocnik) - -logger = logging.getLogger(__name__) - -def get_problemy_k_tematu(tema): - return Problem.objects.filter(nadproblem = tema) - - -# FIXME: Pozor, níž je ještě jeden ProblemView! -#class ProblemView(generic.DetailView): -# model = s.Problem -# # Zkopírujeme template_name od TreeNodeView, protože jsme prakticky jen trošku upravený TreeNodeView -# template_name = TreeNodeView.template_name -# -# def get_context_data(self, **kwargs): -# context = super().get_context_data(**kwargs) -# user = self.request.user -# # Teď potřebujeme doplnit tnldata do kontextu. -# # Ošklivý type switch, hezčí by bylo udělat to polymorfni. FIXME. -# if False: -# # Hezčí formátování zbytku :-P -# pass -# elif isinstance(self.object, s.Clanek) or isinstance(self.object, s.Konfera): -# # Tyhle Problémy mají ŘešeníNode -# context['tnldata'] = TNLData.from_treenode(self.object.reseninode,user) -# elif isinstance(self.object, s.Uloha): -# # FIXME: Teď vždycky zobrazujeme i vzorák! Možná by bylo hezčí/lepší mít to stejně jako pro Téma: procházet jen dosažitelné z Ročníku / čísla / whatever -# tnl_zadani = TNLData.from_treenode(self.object.ulohazadaninode,user) -# tnl_vzorak = TNLData.from_treenode(self.object.ulohavzoraknode,user) -# context['tnldata'] = TNLData.from_tnldata_list([tnl_zadani, tnl_vzorak]) -# elif isinstance(self.object, s.Tema): -# rocniknode = self.object.rocnik.rocniknode -# context['tnldata'] = TNLData.filter_treenode(rocniknode, lambda x: isinstance(x, s.TemaVCisleNode)) -# else: -# raise ValueError("Obecný problém nejde zobrazit.") -# return context - - -#class AktualniZadaniView(generic.TemplateView): -# template_name = 'treenode/treenode.html' - -# TODO Co chceme vlastně zobrazovat na této stránce? Zatím je zde aktuální číslo, ale může tu být cokoli jiného... -#class AktualniZadaniView(TreeNodeView): -# def get_object(self): -# nastaveni = get_object_or_404(Nastaveni) -# return nastaveni.aktualni_cislo.cislonode -# -# def get_context_data(self,**kwargs): -# nastaveni = get_object_or_404(Nastaveni) -# context = super().get_context_data(**kwargs) -# verejne = nastaveni.aktualni_cislo.verejne() -# context['verejne'] = verejne -# return context - -def AktualniZadaniView(request): - nastaveni = get_object_or_404(Nastaveni) - verejne = nastaveni.aktualni_cislo.verejne() - return render(request, 'tvorba/zadani/AktualniZadani.html', - {'nastaveni': nastaveni, - 'verejne': verejne, - }, - ) - -def ZadaniTemataView(request): - nastaveni = get_object_or_404(Nastaveni) - verejne = nastaveni.aktualni_cislo.verejne() - akt_rocnik = nastaveni.aktualni_cislo.rocnik - temata = s.Tema.objects.filter(rocnik=akt_rocnik, stav='zadany') - return render(request, 'tvorba/tematka/rozcestnik.html', - { - 'tematka': temata, - 'verejne': verejne, - }, - ) - - -# nastaveni = get_object_or_404(Nastaveni) -# temata = verejna_temata(nastaveni.aktualni_rocnik) -# for t in temata: -# if request.user.is_staff: -# t.prispevky = t.prispevek_set.filter(problem=t) -# else: -# t.prispevky = t.prispevek_set.filter(problem=t, zverejnit=True) -# return render(request, 'tvorba/zadani/Temata.html', -# { -# 'temata': temata, -# } -# ) -# -# -# -#def TematkoView(request, rocnik, tematko): -# nastaveni = s.Nastaveni.objects.first() -# rocnik_object = s.Rocnik.objects.filter(rocnik=rocnik) -# tematko_object = s.Tema.objects.filter(rocnik=rocnik_object[0], kod=tematko) -# seznam = vytahniZLesaSeznam(tematko_object[0], nastaveni.aktualni_rocnik().rocniknode) -# for node, depth in seznam: -# if node.isinstance(node, s.KonferaNode): -# raise Exception("Not implemented yet") -# if node.isinstance(node, s.PohadkaNode): # Mohu ignorovat, má pod sebou -# pass -# -# return render(request, 'tvorba/tematka/toaletak.html', {}) -# -# -#def TemataRozcestnikView(request): -# print("=============================================") -# nastaveni = s.Nastaveni.objects.first() -# tematka_objects = s.Tema.objects.filter(rocnik=nastaveni.aktualni_rocnik()) -# tematka = [] #List tematka obsahuje pro kazde tematko object a list vsech TemaVCisleNodu - implementované pomocí slovníku -# for tematko_object in tematka_objects: -# print("AKTUALNI TEMATKO") -# print(tematko_object.id) -# odkazy = vytahniZLesaSeznam(tematko_object, nastaveni.aktualni_rocnik().rocniknode, pouze_zajimave = True) #Odkazy jsou tuply (node, depth) v listu -# print(odkazy) -# cisla = [] # List tuplů (nazev cisla, list odkazů) -# vcisle = [] -# cislo = None -# for odkaz in odkazy: -# if odkaz[1] == 0: -# if cislo != None: -# cisla.append((cislo, vcisle)) -# cislo = (odkaz[0].getOdkazStr(), odkaz[0].getOdkaz()) -# vcisle = [] -# else: -# print(odkaz[0].getOdkaz()) -# vcisle.append((odkaz[0].getOdkazStr(), odkaz[0].getOdkaz())) -# if cislo != None: -# cisla.append((cislo, vcisle)) -# -# print(cisla) -# tematka.append({ -# "kod" : tematko_object.kod, -# "nazev" : tematko_object.nazev, -# "abstrakt" : tematko_object.abstrakt, -# "obrazek": tematko_object.obrazek, -# "cisla" : cisla -# }) -# return render(request, 'tvorba/tematka/rozcestnik.html', {"tematka": tematka, "rocnik" : nastaveni.aktualni_rocnik().rocnik}) -# - -def ZadaniAktualniVysledkovkaView(request): - nastaveni = get_object_or_404(Nastaveni) - # Aktualni verejna vysledkovka - rocnik = nastaveni.aktualni_rocnik - context = {'vysledkovka': VysledkovkaRocniku(rocnik, True)} - - # kdyz neni verejna vysledkovka, tak zobraz starou - if len(context['vysledkovka'].cisla_rocniku) == 0: - try: - minuly_rocnik = Rocnik.objects.get( - rocnik=(rocnik.rocnik-1)) - rocnik = minuly_rocnik - - # Přepíšeme prázdnou výsledkovku výsledkovkou z minulého ročníku - context['vysledkovka'] = VysledkovkaRocniku(rocnik, True) - except ObjectDoesNotExist: - pass - - context['rocnik'] = rocnik - return render( - request, - 'tvorba/zadani/AktualniVysledkovka.html', - context - ) - - -### Titulni strana - -def aktualni_temata(rocnik): - """ - Vrací PolymorphicQuerySet témat v daném ročníku, ke kterým se aktuálně dá něco odevzdat. - """ - return Tema.objects.filter(rocnik=rocnik, stav='zadany').order_by('kod') - - -### Archiv - - -class ArchivView(generic.ListView): - model = Rocnik - template_name = 'tvorba/archiv/cisla.html' - - def get_context_data(self, **kwargs): - context = super(ArchivView, self).get_context_data(**kwargs) - - cisla = Cislo.objects.filter(poradi=1) - if not self.request.user.je_org: - cisla = cisla.filter(verejne_db=True) - urls ={} - - for i, c in enumerate(cisla): - # Výchozí nastavení - if c.rocnik not in urls: - urls[c.rocnik] = op.join(settings.STATIC_URL, "tvorba", "no-picture.png") - # NOTE: tohle možná nastavuje poslední titulku - if c.titulka_nahled: - urls[c.rocnik] = c.titulka_nahled.url - - context["object_list"] = urls - - return context - - - - - -class RocnikView(generic.DetailView): - model = Rocnik - template_name = 'tvorba/archiv/rocnik.html' - - # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) - def get_object(self, queryset=None): - if queryset is None: - queryset = self.get_queryset() - - return get_object_or_404(queryset,rocnik=self.kwargs.get('rocnik')) - - def get_context_data(self, **kwargs): - context = super(RocnikView, self).get_context_data(**kwargs) - context["vysledkovka"] = VysledkovkaRocniku(context["rocnik"], True) - context["neprazdna_vysledkovka"] = len(context['vysledkovka'].cisla_rocniku) != 0 - context["vysledkovka_neverejna"] = VysledkovkaRocniku(context["rocnik"], False) - return context - -def resiteleRocnikuCsvExportView(request, rocnik): - from personalni.views import dataResiteluCsvResponse - assert request.method in ('GET', 'HEAD') - return dataResiteluCsvResponse( - utils.resi_v_rocniku( - get_object_or_404(m.Rocnik, rocnik=rocnik) - ) - ) - - -# FIXME: Pozor, výš je ještě jeden ProblemView! -#class ProblemView(generic.DetailView): -# model = Problem -# -# # Používáme funkci, protože přímo template_name neumí mít v přiřazení dost logiky. Ledaže by se to udělalo polymorfně... -# def get_template_names(self, **kwargs): -# # FIXME: Switch podle typu není hezký, ale nechtělo se mi to přepisovat celé. Správně by se tohle mělo řešit polymorfismem. -# spravne_templaty = { -# s.Uloha: "uloha", -# s.Tema: "tema", -# s.Konfera: "konfera", -# s.Clanek: "clanek", -# } -# context = super().get_context_data(**kwargs) -# return ['tvorba/archiv/problem_' + spravne_templaty[context['object'].__class__] + '.html'] -# -# def get_context_data(self, **kwargs): -# context = super().get_context_data(**kwargs) -# # Musí se používat context['object'], protože nevíme, jestli dostaneme úložku, téma, článek, .... a tyhle věci vyrábějí různé klíče. -# if not context['object'].verejne() and not self.request.user.je_org: -# raise PermissionDenied() -# if isinstance(context['object'], Clanek): -# context['reseni'] = Reseni.objects.filter(problem=context['object']).select_related('resitel').order_by('resitel__prijmeni') -# return context - - - -class CisloView(generic.DetailView): - # FIXME zobrazování témátek a vůbec, teď je tam jen odkaz na číslo v pdf - model = Cislo - template_name = 'tvorba/archiv/cislo.html' - - # Vlastni ziskavani objektu z databaze podle (Rocnik.rocnik) - def get_object(self, queryset=None): - if queryset is None: - queryset = self.get_queryset() - rocnik_arg = self.kwargs.get('rocnik') - poradi_arg = self.kwargs.get('cislo') - queryset = queryset.filter(rocnik__rocnik=rocnik_arg, poradi=poradi_arg) - - try: - obj = queryset.get() - except queryset.model.DoesNotExist: - raise Http404(_("No %(verbose_name)s found matching the query") % - {'verbose_name': queryset.model._meta.verbose_name}) - return obj - - def get_context_data(self, **kwargs): - context = super(CisloView, self).get_context_data(**kwargs) - - cislo = context['cislo'] - context['prevcislo'] = Cislo.objects.filter((Q(rocnik__lt=self.object.rocnik) | Q(poradi__lt=self.object.poradi))&Q(rocnik__lte=self.object.rocnik)).first() - - deadliny = Deadline.objects.filter(cislo=cislo).reverse() - deadliny_s_vysledkovkami = [] - - nadpisy = { - m.Deadline.TYP_CISLA: "Výsledkovka", - m.Deadline.TYP_PRVNI: "Výsledkovka do prvního deadlinu", - m.Deadline.TYP_PRVNI_A_SOUS: "Výsledkovka do prvního deadlinu a deadlinu pro účast na soustředění", - m.Deadline.TYP_SOUS: "Výsledkovka do deadlinu pro účast na soustředění", - } - - for deadline in deadliny: - if self.request.user.je_org | deadline.verejna_vysledkovka: - deadliny_s_vysledkovkami.append((deadline, nadpisy[deadline.typ], VysledkovkaCisla(cislo, not self.request.user.je_org, deadline))) - - context['deadliny_s_vysledkovkami'] = deadliny_s_vysledkovkami - return context - - -class ArchivTemataView(generic.ListView): - model = Problem - template_name = 'tvorba/archiv/temata.html' - queryset = Tema.objects.filter(stav=Problem.STAV_ZADANY).select_related('rocnik').order_by('rocnik', 'kod') - - def get_context_data(self, *args, **kwargs): - ctx = super().get_context_data(*args, **kwargs) - ctx['rocniky'] = OrderedDict() - for rocnik, temata in groupby(ctx['object_list'], lambda tema: tema.rocnik): - ctx['rocniky'][rocnik] = list(temata) - return ctx - -class OdmenyView(generic.TemplateView): - template_name = 'tvorba/archiv/odmeny.html' - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - fromcislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) - tocislo = get_object_or_404(Cislo, rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) - resitele = utils.aktivniResitele(tocislo) - - def get_diff(from_deadline: Deadline, to_deadline: Deadline): - frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) - tobody = body_resitelu(resitele=resitele, jen_verejne=False, do=to_deadline) - outlist = [] - for resitel in resitele: - fbody = frombody.get(resitel.id, 0) - tbody = tobody.get(resitel.id, 0) - ftitul = resitel.get_titul(fbody) - ttitul = resitel.get_titul(tbody) - if ftitul != ttitul: - outlist.append({'jmeno': resitel.osoba.plne_jmeno(), 'ftitul': ftitul, 'ttitul': ttitul}) - return outlist - - def posledni_deadline_oprava(cislo: Cislo) -> Deadline: - posledni_deadline = cislo.posledni_deadline - if posledni_deadline is None: - return Deadline.objects.filter(Q(cislo__poradi__lt=cislo.poradi, cislo__rocnik=cislo.rocnik) | Q(cislo__rocnik__rocnik__lt=cislo.rocnik.rocnik)).order_by("deadline").last() - return posledni_deadline - - context["from_cislo"] = fromcislo - context["to_cislo"] = tocislo - from_deadline = posledni_deadline_oprava(fromcislo) - to_deadline = posledni_deadline_oprava(tocislo) - context["from_deadline"] = from_deadline - context["to_deadline"] = to_deadline - context["zmeny"] = get_diff(from_deadline, to_deadline) - - return context - - - - -### Generovani vysledkovky - -class CisloVysledkovkaView(CisloView): - """View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu.""" - - model = Cislo - template_name = 'tvorba/archiv/cislo_vysledkovka.tex' - #content_type = 'application/x-tex; charset=UTF8' - #umozni rovnou stahnout TeXovsky dokument - content_type = 'text/plain; charset=UTF8' - #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani - - def get_context_data(self, **kwargs): - context = super(CisloVysledkovkaView, self).get_context_data() - cislo = context['cislo'] - - cislopred = cislo.predchozi() - if cislopred is not None: - context['vysledkovka'] = VysledkovkaDoTeXu( - cislo, - od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), - do_vcetne=cislo.zlomovy_deadline_pro_papirove_cislo(), - ) - else: - context['vysledkovka'] = VysledkovkaCisla( - cislo, - jen_verejne=False, - do_deadlinu=cislo.zlomovy_deadline_pro_papirove_cislo(), - ) - return context - - -# Podle předchozího -class PosledniCisloVysledkovkaView(generic.DetailView): - """View vytvořené pro zobrazení výsledkovky posledního čísla v TeXu.""" - - model = Rocnik - template_name = 'tvorba/archiv/cislo_vysledkovka.tex' - content_type = 'text/plain; charset=UTF8' - - def get_object(self, queryset=None): - if queryset is None: - queryset = self.get_queryset() - rocnik_arg = self.kwargs.get('rocnik') - queryset = queryset.filter(rocnik=rocnik_arg) - - try: - obj = queryset.get() - except queryset.model.DoesNotExist: - raise Http404(_("No %(verbose_name)s found matching the query") % - {'verbose_name': queryset.model._meta.verbose_name}) - return obj - - def get_context_data(self, **kwargs): - context = super(PosledniCisloVysledkovkaView, self).get_context_data() - rocnik = context['rocnik'] - cislo = rocnik.cisla.order_by("poradi").filter(deadline_v_cisle__isnull=False).last() - if cislo is None: - raise Http404(f"Ročník {rocnik.rocnik} nemá číslo s deadlinem.") - cislopred = cislo.predchozi() - context['vysledkovka'] = VysledkovkaDoTeXu( - cislo, - od_vyjma=cislopred.zlomovy_deadline_pro_papirove_cislo(), - do_vcetne=cislo.deadline_v_cisle.order_by("deadline").last(), - ) - return context - - -class RocnikVysledkovkaView(RocnikView): - """ View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu.""" - model = Rocnik - template_name = 'tvorba/archiv/rocnik_vysledkovka.tex' - #content_type = 'application/x-tex; charset=UTF8' - #umozni rovnou stahnout TeXovsky dokument - content_type = 'text/plain; charset=UTF8' - #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani - -def cisloObalkyView(request, rocnik, cislo): - realne_cislo = get_object_or_404(Cislo, poradi=cislo, rocnik__rocnik=rocnik) - return personalni.views.obalkyView(request, utils.aktivniResitele(realne_cislo)) - - - -### Tituly -def TitulyViewRocnik(request, rocnik): - return TitulyView(request, rocnik, None) - - -def TitulyView(request, rocnik, cislo): - """ View pro stažení makra titulů v TeXu.""" - rocnik_obj = get_object_or_404(Rocnik, rocnik = rocnik) - resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok) - - asciijmena = [] - jmenovci = False # detekuje, zda jsou dva řešitelé jmenovci (modulo nabodeníčka), - # pokud ano, vrátí se jako true - if cislo is not None: - cislo_obj = get_object_or_404(Cislo, rocnik=rocnik_obj, poradi=cislo) - slovnik_s_body = body_resitelu(do=cislo_obj.zlomovy_deadline_pro_papirove_cislo(), jen_verejne=False) - else: - slovnik_s_body = body_resitelu(do=Deadline.objects.filter(cislo__rocnik=rocnik_obj).last(), jen_verejne=False) - - for resitel in resitele: - resitel.titul = resitel.get_titul(slovnik_s_body[resitel.id]) - jmeno = resitel.osoba.jmeno+resitel.osoba.prijmeni - # převedeme jména a příjmení řešitelů do ASCII - ascii_jmeno_bytes = unicodedata.normalize('NFKD', jmeno).encode("ascii","ignore") - # vrátí se byte string, převedeme na standardní string - ascii_jmeno_divnoznaky = str(ascii_jmeno_bytes, "utf-8", "ignore").replace(" ","") - resitel.ascii = ''.join(a for a in ascii_jmeno_divnoznaky if a.isalnum()) - if resitel.ascii not in asciijmena: - asciijmena.append(resitel.ascii) - else: - jmenovci = True - - return render(request, 'tvorba/archiv/tituly.tex', - {'resitele': resitele,'jmenovci':jmenovci},content_type="text/plain") - - -### Články -def group_by_rocnik(clanky): - ''' Vezme zadaný seznam článků a seskupí je podle ročníku. - Vrátí seznam seznamů článků ze stejného ročníku.''' - if len(clanky) == 0: - return clanky - clanky.order_by('cislo__rocnik__rocnik') - skupiny_clanku = [] - skupina = [] - - rocnik = clanky.first().cislo.rocnik.rocnik # první ročník - for clanek in clanky: - if clanek.cislo.rocnik.rocnik == rocnik: - skupina.append(clanek) - else: - skupiny_clanku.append(skupina) - skupina = [] - skupina.append(clanek) - rocnik = clanek.cislo.rocnik.rocnik - skupiny_clanku.append(skupina) - return skupiny_clanku - - -# FIXME: clanky jsou vsechny, pokud budou i neresitelske, tak se take zobrazi -# FIXME: Původně tu byl kód přímo v těle třídy, což rozbíjelo migrace. Opravil jsem, ale vůbec nevím, jestli to funguje. -class ClankyResitelView(generic.ListView): - model = Problem - template_name = 'tvorba/clanky/resitelske_clanky.html' - - # FIXME: QuerySet není pole! - def get_queryset(self): - clanky = Clanek.objects.filter(stav=Problem.STAV_VYRESENY).select_related('cislo__rocnik').order_by('-cislo__rocnik__rocnik') - queryset = [] - skupiny_clanku = group_by_rocnik(clanky) - for skupina in skupiny_clanku: - skupina.sort(key=lambda clanek: clanek.kod_v_rocniku) - for clanek in skupina: - queryset.append(clanek) - return queryset - -# FIXME: pokud chceme orgoclanky, tak nejak zavest do modelu a podle toho odkomentovat a upravit -#class ClankyOrganizatorView(generic.ListView): -# model = Problem -# template_name = 'tvorba/clanky/organizatorske_clanky.html' -# queryset = Problem.objects.filter(stav=Problem.STAV_ZADANY).select_related('cislo_zadani__rocnik').order_by('-cislo_zadani__rocnik__rocnik', 'kod') - - - - -class AktualniRocnikRedirectView(RedirectView): - permanent=False - pattern_name = 'seminar_rocnik' - - def get_redirect_url(self, *args, **kwargs): - aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik.rocnik - return super().get_redirect_url(rocnik=aktualni_rocnik, *args, **kwargs) From d5d55d76a9bd9fbc528a7a13920bca0adff61f83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 21:57:01 +0200 Subject: [PATCH 512/515] =?UTF-8?q?Lep=C5=A1=C3=AD=20koment=C3=A1=C5=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/soustredeni/__init__.py b/soustredeni/__init__.py index 88d1678e..94eca4f4 100644 --- a/soustredeni/__init__.py +++ b/soustredeni/__init__.py @@ -1,3 +1,4 @@ """ -Obsahuje vše (až na přednášky a galerie) ohledně soustředění. +Obsahuje vše (až na přednášky a galerie) ohledně soustředění, +tzn. převážně informace o účastech orgů a účastníků a o tom, kdo byl na které konfeře. """ From 3db6231a77d89bb15407440376fa0052b97baa58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Tue, 22 Oct 2024 22:11:59 +0200 Subject: [PATCH 513/515] =?UTF-8?q?N=C3=A1zev=20id=20v=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- soustredeni/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/soustredeni/views.py b/soustredeni/views.py index 2f296b60..67a0305f 100644 --- a/soustredeni/views.py +++ b/soustredeni/views.py @@ -105,3 +105,4 @@ def soustredeniStvrzenkyView(request, soustredeni): class SoustredeniAbstraktyView(generic.DetailView): model = Soustredeni template_name = 'soustredeni/export_do_abstraktu.html' + pk_url_kwarg = 'soustredeni' # v url bude místo defaultně požadovaného From 2ae906495dc51f53300d9a9945ac7588a095c11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Wed, 23 Oct 2024 11:49:48 +0200 Subject: [PATCH 514/515] Opravil jsem font (aby fungovala diakritika apod.) --- mamweb/static/css/base.css | 4 ++-- mamweb/static/fonts/ghoul/ghoul.ttf | Bin 14968 -> 57984 bytes mamweb/static/fonts/ghoul/ghoulheadline.ttf | Bin 24980 -> 0 bytes 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 mamweb/static/fonts/ghoul/ghoulheadline.ttf diff --git a/mamweb/static/css/base.css b/mamweb/static/css/base.css index a7febafc..a4433d55 100644 --- a/mamweb/static/css/base.css +++ b/mamweb/static/css/base.css @@ -8,10 +8,10 @@ font-weight: normal; } +/* https://fontzone.net/font-details/qtghoulface-regular doplněný o diakritiku pomocí FontForge*/ @font-face { font-family: 'GhoulFace'; - src: url("../fonts/ghoul/ghoulheadline.ttf"), - url("../fonts/ghoul/ghoul.woff"); + src: url("../fonts/ghoul/ghoul.ttf"); font-weight: normal; } diff --git a/mamweb/static/fonts/ghoul/ghoul.ttf b/mamweb/static/fonts/ghoul/ghoul.ttf index 64bab4789ae256a70f2af1ad00fc1edab5efbf27..dcb13354068ccbaf4ec42a37b7ffc4e7d5c200c3 100644 GIT binary patch literal 57984 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%0AxQ%-_lIP=y(?EksHhek%Kx~P>c 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 literal 14968 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 Y@QR^}vZk22sUkhC>N;K+&?x->0hVL~RsaA1 diff --git a/mamweb/static/fonts/ghoul/ghoulheadline.ttf b/mamweb/static/fonts/ghoul/ghoulheadline.ttf deleted file mode 100644 index 90d4f7c126d0c67a754e622812a3b83f5929fade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24980 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 Date: Wed, 23 Oct 2024 12:22:46 +0200 Subject: [PATCH 515/515] =?UTF-8?q?Novinky=20byly=20b=C5=AFhv=C3=AD=20pro?= =?UTF-8?q?=C4=8D=20BigAutoField?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- novinky/migrations/0004_alter_novinky_id.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 novinky/migrations/0004_alter_novinky_id.py diff --git a/novinky/migrations/0004_alter_novinky_id.py b/novinky/migrations/0004_alter_novinky_id.py new file mode 100644 index 00000000..a4a48490 --- /dev/null +++ b/novinky/migrations/0004_alter_novinky_id.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.16 on 2024-10-23 10:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('novinky', '0003_novinky_post'), + ] + + operations = [ + migrations.AlterField( + model_name='novinky', + name='id', + field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + ]