Porovnat revize
228 Commity
doug
...
a23f7b89e6
| Autor | SHA1 | Datum | |
|---|---|---|---|
|
|
a23f7b89e6 | ||
|
|
868f34a378 | ||
|
|
1aa5ac3c8b | ||
|
|
30893d3f34 | ||
|
|
a895d12a09 | ||
|
|
007889e48c | ||
|
|
404e2c05bd | ||
|
|
f94bd81da7 | ||
|
|
19ed58f579 | ||
|
|
e2b3d8600c | ||
|
|
9ffd380755 | ||
|
|
8dca642d0f | ||
|
|
0386b3313e | ||
|
|
a1d95603a0 | ||
|
|
ecb2df60f4 | ||
|
|
4542ed1303 | ||
|
|
5bd0596281 | ||
|
|
db7fcbfc3c | ||
|
|
9050304a30 | ||
|
|
e15beb74d1 | ||
|
|
7883ac1ae6 | ||
|
|
0028302b5a | ||
| ee43e98385 | |||
|
|
ecc56281bb | ||
|
|
9ffdeaa036 | ||
|
|
97435bb8a2 | ||
|
|
fce78f0def | ||
|
|
fb153a6309 | ||
|
|
09a4deb0d1 | ||
|
|
4435f33e0b | ||
|
|
f6decb14ed | ||
|
|
1fc2062eb5 | ||
|
|
95d1cdf741 | ||
|
|
9d52c03cc8 | ||
|
|
45ea9077a4 | ||
|
|
529c12ded6 | ||
|
|
86b2e8e21e | ||
|
|
84d8fe3e3e | ||
|
|
38b99f4147 | ||
|
|
efdf661a78 | ||
|
|
f7fdb2c2cf | ||
|
|
98825cc9b6 | ||
|
|
cc65354e3a | ||
|
|
b7b1fe8e93 | ||
|
|
a0f5abe478 | ||
|
|
f39f23f6f0 | ||
|
|
9b65f908f7 | ||
|
|
e087eb3de6 | ||
|
|
ad0f334fd4 | ||
|
|
961d5d00ea | ||
|
|
5cd1151d46 | ||
|
|
cf2fb60676 | ||
|
|
07f81bc2c1 | ||
|
|
8df229268e | ||
|
|
a58257e495 | ||
|
|
3022868867 | ||
|
|
dc20172029 | ||
|
|
a0558b9330 | ||
|
|
a114a15d85 | ||
|
|
2300744f8d | ||
|
|
7d1c3fe870 | ||
|
|
885f4e0512 | ||
|
|
09d501686c | ||
|
|
f0ee8e8de3 | ||
|
|
26f9fa1c45 | ||
|
|
09d0ac69d1 | ||
|
|
c9124de1c4 | ||
|
|
201517071f | ||
|
|
cb3e07578d | ||
|
|
74adf37ab3 | ||
|
|
632c631c9f | ||
|
|
8eda15bf62 | ||
|
|
c011693ad6 | ||
|
|
06a6f08da7 | ||
|
|
a8b8b2615d | ||
|
|
7d9586a6f2 | ||
|
|
6b352135cf | ||
|
|
a9db4b982a | ||
|
|
d35ae29014 | ||
|
|
2dc354707f | ||
|
|
d204ca3135 | ||
|
|
4f70139eb8 | ||
|
|
170458b014 | ||
|
|
a1a9ce97ac | ||
|
|
6fee2c2be5 | ||
|
|
61d16815fc | ||
|
|
12f1097214 | ||
|
|
3726814e11 | ||
|
|
e04e12e8f9 | ||
|
|
164385f3e8 | ||
|
|
64c91ea57a | ||
|
|
a475a809d0 | ||
|
|
25234e9c08 | ||
|
|
75e44fa9fd | ||
|
|
b27a73e95c | ||
|
|
9fe3cfec42 | ||
|
|
fb14588521 | ||
|
|
33a1cc2e7f | ||
|
|
ffa1ba62ea | ||
|
|
2b666756a5 | ||
|
|
99d69e6af8 | ||
|
|
a76b8e034a | ||
|
|
27a6205595 | ||
|
|
d61c48e084 | ||
|
|
a93e39d984 | ||
|
|
8a9df4871f | ||
|
|
0eda537713 | ||
|
|
6379e65e0e | ||
|
|
09a5ca76ef | ||
|
|
47901cea2d | ||
|
|
14adfbe5fb | ||
|
|
69e4f10fa0 | ||
|
|
bb377c3846 | ||
|
|
106a4595b8 | ||
|
|
56724dd166 | ||
|
|
e592f6cd17 | ||
|
|
af4794bc14 | ||
|
|
68d3b31645 | ||
|
|
36659f1674 | ||
|
|
ae93b5a708 | ||
|
|
d1d02c194f | ||
|
|
ab50435291 | ||
|
|
8001dd34f3 | ||
|
|
abe98b67d4 | ||
|
|
d6a4098fc9 | ||
|
|
8a82fab4f5 | ||
|
|
c992116269 | ||
|
|
a885c6c8fb | ||
|
|
0ed957ac27 | ||
|
|
f063ad1eb0 | ||
|
|
3665e66245 | ||
|
|
64e0cc290c | ||
|
|
2c625d0eff | ||
|
|
cde179783d | ||
|
|
617a049307 | ||
|
|
75c21087f3 | ||
|
|
ec00736a2d | ||
|
|
1d44a3a2ac | ||
|
|
6313043715 | ||
|
|
1dae0b9e0f | ||
|
|
9cb0860f48 | ||
|
|
d6936514ef | ||
|
|
069fc6853c | ||
|
|
1fd751171e | ||
|
|
4bd5075613 | ||
|
|
897d0c0045 | ||
|
|
6cea3e4941 | ||
|
|
43e142a1d4 | ||
|
|
c2333fa042 | ||
|
|
c40231c102 | ||
|
|
ff3fe1c626 | ||
|
|
74ac231fbe | ||
|
|
93ce255deb | ||
|
|
9844c179ab | ||
|
|
9b7492c6f1 | ||
|
|
18643b2bf1 | ||
|
|
63a97fbee3 | ||
|
|
e59f43d190 | ||
|
|
12f4bb6210 | ||
|
|
a78ffee688 | ||
|
|
cabdaca639 | ||
|
|
fdc32df32a | ||
|
|
22b2bb771d | ||
|
|
d6f11317db | ||
|
|
f3bf59d66f | ||
|
|
b24b55e455 | ||
|
|
ea764dc07d | ||
|
|
a9d03b63fe | ||
|
|
ab5c6cf3fb | ||
|
|
40d372c22b | ||
|
|
88dd8cc849 | ||
|
|
b71fa47cde | ||
|
|
a888fdbe6d | ||
|
|
d420488652 | ||
|
|
db9272f2c5 | ||
|
|
fd5382f7c4 | ||
|
|
c8a431a060 | ||
|
|
26109e98f1 | ||
|
|
8abfd2df41 | ||
|
|
442321a103 | ||
|
|
ed50944ce7 | ||
|
|
4f767445d8 | ||
|
|
53c7e8ea1b | ||
|
|
692af60d52 | ||
|
|
3ccb8e8030 | ||
|
|
e5ffdf2af4 | ||
|
|
c600f71159 | ||
|
|
429ee57ffd | ||
|
|
9ebcbbac56 | ||
|
|
e72f8f4e64 | ||
|
|
f6c0e97ed4 | ||
|
|
bfd56cf769 | ||
|
|
4dee90c643 | ||
|
|
90ee4b4009 | ||
|
|
0bf79cb0c8 | ||
|
|
567bb0f5e8 | ||
|
|
783262182f | ||
|
|
6bd941ec4e | ||
|
|
e3e1a4fcec | ||
|
|
1b9176a325 | ||
|
|
bf5cc2a492 | ||
|
|
4abf92e5c4 | ||
|
|
2433eb4bc3 | ||
|
|
9363b63bf7 | ||
|
|
350cd85a43 | ||
|
|
ec5f837d7d | ||
|
|
457c184c7c | ||
|
|
b25e5dd1ee | ||
|
|
c5db3e4177 | ||
|
|
90f04bd96b | ||
|
|
33504e121a | ||
|
|
d0a0d5ca13 | ||
|
|
164085243e | ||
|
|
f40c325e3b | ||
|
|
8baf0aef8e | ||
|
|
8e51237e41 | ||
|
|
eb6cbc492b | ||
|
|
60ef499c6e | ||
|
|
fcfccda5e6 | ||
|
|
a636620ba2 | ||
|
|
61d4054340 | ||
|
|
3013b69280 | ||
|
|
126b1b0ed4 | ||
|
|
9c56f1ec79 | ||
|
|
374920ce0b | ||
|
|
c619287338 | ||
|
|
33596e5976 | ||
| 4c32d8b7a5 |
5
.gitignore
vendorováno
@@ -1,3 +1,8 @@
|
||||
*.un~
|
||||
*.swp
|
||||
*.sh
|
||||
thsf.log
|
||||
thsf_venv
|
||||
build/
|
||||
src/thsf.egg-info/
|
||||
thsf.pid
|
||||
|
||||
6
.prettierrc
Normální soubor
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"arrowParens": "always",
|
||||
"singleQuote": true,
|
||||
"trailingComma": "es5",
|
||||
"bracketSpacing": false
|
||||
}
|
||||
2
.vscode/settings.json
vendorováno
Normální soubor
@@ -0,0 +1,2 @@
|
||||
{
|
||||
}
|
||||
6
MANIFEST.in
Normální soubor
@@ -0,0 +1,6 @@
|
||||
global-exclude *.pyc
|
||||
global-exclude build
|
||||
global-exclude __pycache__
|
||||
|
||||
include src/thsf/templates/*.*
|
||||
include src/thsf/static/**/*.*
|
||||
50
Makefile
@@ -1,4 +1,50 @@
|
||||
.PHONY: install
|
||||
.PHONY: clean distclean install run stop all docker-build docker-run docker-stop docker-all
|
||||
|
||||
install:
|
||||
echo "We Make P0RN"
|
||||
set -e ;\
|
||||
python -m venv thsf_venv; \
|
||||
. thsf_venv/bin/activate; \
|
||||
pip install -r requirements.txt ;\
|
||||
pip install . ;\
|
||||
pip install gunicorn;
|
||||
|
||||
run:
|
||||
set -e ;\
|
||||
THSF_DIR=$$(pwd); \
|
||||
. thsf_venv/bin/activate; \
|
||||
thsf_venv/bin/gunicorn -p thsf.pid -w 4 -b 0.0.0.0:8042 'thsf:app'
|
||||
|
||||
debug:
|
||||
set -e ;\
|
||||
THSF_DIR=$$(pwd); \
|
||||
. thsf_venv/bin/activate; \
|
||||
thsf_venv/bin/gunicorn -p thsf.pid -w 4 -b 0.0.0.0:8042 'thsf:app'
|
||||
|
||||
stop:
|
||||
-set -e;\
|
||||
THSF_DIR=$$(pwd); \
|
||||
kill -15 $$(cat $$THSF_DIR/thsf.pid); \
|
||||
rm thsf.pid
|
||||
|
||||
clean:
|
||||
-set -e ;\
|
||||
THSF_DIR=$$(pwd); \
|
||||
rm -Rf ./build ./src/thsf.egg-info ./thsf.pid ./thsf.log; \
|
||||
. thsf_venv/bin/activate; \
|
||||
pip uninstall thsf -y
|
||||
|
||||
distclean: clean
|
||||
rm -Rf thsf_venv/
|
||||
|
||||
all: stop clean install run
|
||||
|
||||
docker-build:
|
||||
docker-compose build
|
||||
|
||||
docker-run:
|
||||
docker-compose up -d
|
||||
|
||||
docker-stop:
|
||||
-docker-compose down
|
||||
|
||||
docker-all: docker-stop docker-build docker-run
|
||||
|
||||
84
NOTE.md
Normální soubor
@@ -0,0 +1,84 @@
|
||||
# API
|
||||
|
||||
## Récupérer l'évènement
|
||||
|
||||
```bash
|
||||
curl -s -X GET -H "Authorization: Token <TOKEN>" https://23.thsf.net/api/events/
|
||||
```
|
||||
|
||||
Réponse:
|
||||
|
||||
```json
|
||||
[{"name":{"en":"Toulouse HackerSpace Factory","fr":"Toulouse HackerSpace Factory"},"slug":"thsf-2023","is_public":true,"date_from":"2023-05-26","date_to":"2023-05-28","timezone":"Europe/Paris","urls":{"base":"https://23.thsf.net/thsf-2023/","schedule":"https://23.thsf.net/thsf-2023/schedule/","login":"https://23.thsf.net/thsf-2023/login/","feed":"https://23.thsf.net/thsf-2023/schedule/feed.xml"}}]
|
||||
```
|
||||
|
||||
## Récupérer la liste des intervenants
|
||||
|
||||
```bash
|
||||
curl -s -X GET -H "Authorization: Token <TOKEN>" https://23.thsf.net/api/speakes/
|
||||
```
|
||||
|
||||
## Récupérer la liste des salles
|
||||
|
||||
curl -s -X GET -H "Authorization: Token <TOKEN>" https://23.thsf.net/api/events/thsf-2023/rooms/
|
||||
|
||||
## Récupérer les versions des plannings de l'évènement
|
||||
|
||||
```bash
|
||||
curl -s -X GET -H "Authorization: Token <TOKEN>" https://23.thsf.net/api/events/<EVENT>/schedules/
|
||||
```
|
||||
|
||||
Réponse:
|
||||
|
||||
```json
|
||||
{"count":6,"next":null,"previous":null,"results":[{"version":"wip","published":null},{"version":"0.5","published":"2023-04-03T12:14:39.675671+02:00"},{"version":"0.4","published":"2023-04-03T10:07:41.632059+02:00"},{"version":"0.3","published":"2023-03-25T12:34:17.704819+01:00"},{"version":"0.2","published":"2023-03-25T12:21:23.464899+01:00"},{"version":"0.1","published":"2023-03-25T12:14:10.460100+01:00"}]}
|
||||
```
|
||||
|
||||
### Récupérer un planning spécifique
|
||||
|
||||
```bash
|
||||
curl -s -X GET -H "Authorization: Token <TOKEN>" https://23.thsf.net/api/events/thsf-2023/schedules/<version>/
|
||||
```
|
||||
|
||||
Reponse:
|
||||
|
||||
```json
|
||||
{
|
||||
"slots": [
|
||||
{
|
||||
"code": "JHCFVE",
|
||||
"speakers": [
|
||||
{
|
||||
"code": "BT9CDU",
|
||||
"name": "Youssr Youssef",
|
||||
"biography": "",
|
||||
"avatar": "https://23.thsf.net/media/avatars/YoussrYoussef_408QSEG.jpeg"
|
||||
}
|
||||
],
|
||||
"title": "René Carmille, un hacker sous l'Occupation",
|
||||
"submission_type": {
|
||||
"en": "Screening",
|
||||
"fr": "Projection"
|
||||
},
|
||||
"track": null,
|
||||
"state": "confirmed",
|
||||
"abstract": "Entre collaboration et résistance, confronté aux premiers enjeux modernes de la collecte de données en masse, la trajectoire étonnante de René Carmille n'a encore jamais été racontée... Son héritage est pourtant majeur, les questions qu'il soulève le sont tout autant. \r\nSous l’Occupation, le polytechnicien René Carmille est le précurseur de l'usage massif des données en France : c'est lui qui a mis en place et dirigé le Service national de statistiques (SNS) qui deviendra plus tard l'INSEE, c'est aussi lui qui a inventé notre numéro de sécurité sociale.\r\n\r\nLa projection du documentaire sera suivie d'une rencontre en visioconférence avec la réalisatrice.",
|
||||
"description": "",
|
||||
"duration": 80,
|
||||
"slot_count": 1,
|
||||
"do_not_record": false,
|
||||
"is_featured": true,
|
||||
"content_locale": "fr",
|
||||
"slot": {
|
||||
"room": {
|
||||
"en": "Salle 1 Cinema",
|
||||
"fr": "Salle 1 Cinema"
|
||||
},
|
||||
"start": "2023-05-27T11:30:00+02:00",
|
||||
"end": "2023-05-27T12:50:00+02:00"
|
||||
},
|
||||
"image": "https://23.thsf.net/media/thsf-2023/submissions/JHCFVE/Carmille-1-scaled_p0gxA6D.jpeg",
|
||||
"resources": []
|
||||
},
|
||||
...
|
||||
```
|
||||
82
README.md
@@ -1,36 +1,66 @@
|
||||
# THSF.NET
|
||||
|
||||
Le site du THSF
|
||||
Le site du **THSF**
|
||||
|
||||
## Modifier le site
|
||||
## Fonctionnement du site
|
||||
|
||||
Il n'est **pas possible** de pousser directement des modifcations sur la branche `master`.
|
||||
Le site du **THSF** est une application *Python Flask* configurée à partir du fichier `config.yml` situé à la racine du dépôt.
|
||||
|
||||
Il n'est généralement pas nécessaire de modifier ce fichier de configuration, cependant il ets possible d'augmenter le niveau de *log* en modifiant la clef de configuration `log::root::level` en la passant à `DEBUG` (valeur en production: `INFO`).
|
||||
|
||||
### Conteneur
|
||||
|
||||
Un fichier `thsf.Dockerfile` ainsi que le fichier `docker-compose.yml` correspondant permettront de rapidement démarrer localement une instance du site du **THSF**.
|
||||
|
||||
### Démarrer une instance du site du **THSF**
|
||||
|
||||
Assurez vous d'avoir l'environnement de conteneurisation adéquat (i.e: *docker* + *docker-compose*) puis exécuter directement les commandes suivantes depuis la racine du dépôt:
|
||||
|
||||
```shell
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
Le site du **THSF** écoutera alors sur le port *TCP/8042*:
|
||||
|
||||
`http://127.0.0.1:8042`
|
||||
|
||||
### Arrêter une instance du site du **THSF**
|
||||
|
||||
```shell
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
## Apporter des modifications au site
|
||||
|
||||
**Important**: Avant d'apporter la moindre modification, pensez à créer une nouvelle branche à l'aide de la commande suivante en remplaçant `ma_branche` par le nom de votre branche:
|
||||
|
||||
```shell
|
||||
git checkout -b ma_branche
|
||||
```
|
||||
|
||||
Le code de l'application *Python Flask* se situe dans le répertoire `src` et une fois votre branche créée, vous pouvez apporter toutes les modification souhaitées.
|
||||
|
||||
### Créer un patch contenant toutes vos modifications
|
||||
|
||||
Une fois satisfaits de vos modifications vous pouvez créer un *patch* regroupant l'ensemble de vos modifications à l'aide la commande suivante
|
||||
|
||||
```shell
|
||||
git diff -u --patch master..ma_branche > mes_modifications.patch
|
||||
```
|
||||
|
||||
Vous pouvez faire parvenir votre fichier de *patch* à **contact@tetalab.org** pour que vos modifications soient incorporées au site après vérification.
|
||||
|
||||
### Publication automatisée des modifications
|
||||
|
||||
**Note**: Cette partie ne concerne que les personnes ayant un accès en écriture sur le dépôt *Git*.
|
||||
|
||||
Il n'est **pas possible** de pousser directement des modifications sur la branche `master`.
|
||||
|
||||
Pour modifier le site, il est nécessaire de créer une branche spécifique et d'y pousser vos modifications.
|
||||
|
||||
## Publication du site
|
||||
|
||||
Lorsque vous êtes satisfaits de vos modifications, vous pouvez créer [une demande d'ajout](https://git.tetalab.org/tetalab/thsf.net/pulls) de votre branche sur la branche `master`.
|
||||
|
||||
Lorsque la demande de fusion sera acceptée (vous pouvez auto-accepter vos demandes de fusion), vos modifications seront automatiquement publiées sur [le site du THSF](https://www.thsf.net).
|
||||
Lorsque la demande de fusion sera acceptée, vos modifications seront automatiquement publiées sur [le site du THSF](https://www.thsf.net).
|
||||
|
||||
### Personnalisation de la publication
|
||||
|
||||
Afin de rendre le processus plus souple, il est possible de personnaliser la livraison en plaçant **à la racine du dépôt** un fichier `Makefile` contenant une cible `install` qui sera systématiquement executée.
|
||||
|
||||
C'est dans cette cible `install` que vous pourrez mettre toutes vos commandes personnalisées, typiquement l'installation de modules `npm`.
|
||||
|
||||
Le processus de publication est le suivant:
|
||||
|
||||
1. Le site actuellement en production est **supprimé**
|
||||
|
||||
2. La branche `master` du présent dépôt est cloné sur le serveur hébergeant le site du **THSF**
|
||||
|
||||
3. Si un fichier `Makefile` se trouve **à la racine du dépôt**, la cible `install` (i.e: `make install`) est automatiquement exécutée.
|
||||
|
||||
|
||||
## Contrôle de qualité et tests
|
||||
|
||||
Aucun contrôle de qualité ou de tests n'est mis en place. Vous êtes seuls sur le coup.
|
||||
|
||||
Soyez responsable et **testez vos modifications sur votre machine locale avant de fusionner votre branche** sur la branche `master`.
|
||||
Vous pouvez auto-accepter vos demandes de fusion si vous faites partie des développeurs autorisés.
|
||||
|
||||
65
config.yml
Normální soubor
@@ -0,0 +1,65 @@
|
||||
---
|
||||
log:
|
||||
version: 1
|
||||
formatters:
|
||||
default:
|
||||
format: '[%(asctime)-20s][%(levelname)-8s][%(funcName)-20s]: %(message)s'
|
||||
handlers:
|
||||
wsgi:
|
||||
class: logging.FileHandler
|
||||
filename: thsf.log
|
||||
formatter: default
|
||||
loggers:
|
||||
thsf:
|
||||
handlers: [wsgi]
|
||||
propagate: no
|
||||
root:
|
||||
level: INFO
|
||||
handlers: [wsgi]
|
||||
app:
|
||||
secret_key: xxx
|
||||
languages:
|
||||
- fr
|
||||
name: THSF
|
||||
real_url: https://www.thsf.net
|
||||
pretalx:
|
||||
url: https://23.thsf.net
|
||||
apiprefix: api
|
||||
apikey: bb770a53b15467dfb67c03d178004aca9e4819d6
|
||||
event: thsf-2023
|
||||
schedule: wip
|
||||
navbar:
|
||||
items:
|
||||
- name: Home
|
||||
classes: fa-solid fa-house
|
||||
url: /
|
||||
- name: Programme
|
||||
classes: fa-regular fa-calendar
|
||||
url: /planning
|
||||
- name: Lieu
|
||||
classes: fa-solid fa-map-location-dot
|
||||
url: /place
|
||||
- name: Restauration
|
||||
classes: fa-solid fa-burger
|
||||
url: /food
|
||||
- name: Goodies
|
||||
classes: fa-solid fa-shirt
|
||||
url: /goodies
|
||||
- name: Concerts & DJ Sets
|
||||
classes: fa-solid fa-guitar
|
||||
url: /concerts
|
||||
- name: Ateliers
|
||||
classes: fa-solid fa-screwdriver-wrench
|
||||
url: /workshops
|
||||
- name: Projections
|
||||
classes: fa-solid fa-film
|
||||
url: /screenings
|
||||
- name: Tables rondes
|
||||
classes: fa-solid fa-users-line
|
||||
url: /discussions
|
||||
- name: Installation
|
||||
classes: fa-solid fa-palette
|
||||
url: /exhibitions
|
||||
- name: Présentations
|
||||
classes: fa-solid fa-person-chalkboard
|
||||
url: /talks
|
||||
12
docker-compose.yml
Normální soubor
@@ -0,0 +1,12 @@
|
||||
version: "2"
|
||||
services:
|
||||
thsf:
|
||||
build:
|
||||
dockerfile: thsf.Dockerfile
|
||||
context: .
|
||||
extra_hosts:
|
||||
- "23.thsf.net:192.168.122.26"
|
||||
ports:
|
||||
- "127.0.0.1:8042:8042"
|
||||
image: thsf:latest
|
||||
container_name: thsf
|
||||
binární
images/affiche_v1.png
|
Před Šířka: | Výška: | Velikost: 81 KiB |
34
index.html
@@ -1,34 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='zxx'>
|
||||
<head>
|
||||
<title>THSF 2023: Extractivisme</title>
|
||||
<meta name="viewport" content="initial-scale=1.0" />
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<link rel="stylesheet" type="text/css" href="./styles/main.css" />
|
||||
<link rel="icon" type="image/png" href="/images/favicon.png" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ul>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li>Extraction in progress...</li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li>Extraction in progress...</li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li>Extraction in progress...</li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li>Extraction in progress...</li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
<li></li>
|
||||
</ul>
|
||||
</body>
|
||||
</html>
|
||||
10
pyproject.toml
Normální soubor
@@ -0,0 +1,10 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=62",
|
||||
"build",
|
||||
"wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
pythonpath = [
|
||||
"src"
|
||||
]
|
||||
7
requirements.txt
Normální soubor
@@ -0,0 +1,7 @@
|
||||
build
|
||||
wheel
|
||||
flask
|
||||
Flask-Minify
|
||||
gunicorn
|
||||
pyYAML
|
||||
requests
|
||||
611
resources/THSF23_WEBSITE_BANNER.svg
Normální soubor
@@ -0,0 +1,611 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 27.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 756 611.76" style="enable-background:new 0 0 756 611.76;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#E5006D;}
|
||||
.st1{fill:#FFFFFF;}
|
||||
.st2{fill:url(#SVGID_1_);}
|
||||
.st3{fill:url(#SVGID_00000080208031039852088860000012736015428469503665_);}
|
||||
</style>
|
||||
<g id="Calque_2_00000062903287396250667820000015008425281140850568_">
|
||||
<rect x="-10.25" y="-9.84" class="st0" width="776.35" height="632.15"/>
|
||||
</g>
|
||||
<g id="Calque_1_00000168107049754406420960000008902215559746130366_">
|
||||
<g>
|
||||
<path d="M366.84,248.03c0,0-1.98-15.18-13.55-29.89l-19.59,33.94c6.6,3.81,12.93,8.09,18.92,12.76
|
||||
C356.17,261.41,363.92,253.08,366.84,248.03z"/>
|
||||
<path d="M315.4,219.95c0,0-9.31-12.16-26.68-19.11v39.19c7.62,0,15.25,0.54,22.77,1.59C312.84,236.87,315.4,225.78,315.4,219.95z"
|
||||
/>
|
||||
<path d="M256.81,221.35c0,0-14.14-5.88-32.66-3.21l19.59,33.94c6.6-3.81,13.47-7.16,20.51-10.01
|
||||
C263.06,237.28,259.73,226.4,256.81,221.35z"/>
|
||||
<path d="M206.77,251.86c0,0-15.18,1.98-29.89,13.55L210.82,285c3.81-6.6,8.09-12.93,12.76-18.92
|
||||
C220.15,262.53,211.82,254.78,206.77,251.86z"/>
|
||||
<path d="M178.69,303.3c0,0-12.16,9.31-19.11,26.68h39.19c0-7.62,0.54-15.25,1.59-22.77C195.61,305.86,184.52,303.3,178.69,303.3z"
|
||||
/>
|
||||
<path d="M180.09,361.89c0,0-5.88,14.14-3.21,32.66l33.94-19.59c-3.81-6.6-7.16-13.47-10.01-20.51
|
||||
C196.03,355.64,185.14,358.97,180.09,361.89z"/>
|
||||
<path d="M210.6,411.93c0,0,1.98,15.18,13.55,29.89l19.59-33.94c-6.6-3.81-12.93-8.09-18.92-12.76
|
||||
C221.28,398.55,213.52,406.88,210.6,411.93z"/>
|
||||
<path d="M262.04,440.01c0,0,9.31,12.16,26.68,19.11v-39.19c-7.62,0-15.25-0.54-22.77-1.59
|
||||
C264.6,423.09,262.04,434.18,262.04,440.01z"/>
|
||||
<path d="M320.63,438.61c0,0,14.14,5.88,32.66,3.21l-19.59-33.94c-6.6,3.81-13.47,7.16-20.51,10.01
|
||||
C314.38,422.67,317.72,433.56,320.63,438.61z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M554.34,395.12c-5.99,4.67-12.32,8.95-18.92,12.76l19.59,33.94c11.57-14.7,13.55-29.89,13.55-29.89
|
||||
C565.65,406.88,557.89,398.55,554.34,395.12z"/>
|
||||
<path d="M513.21,418.34c-7.52,1.05-15.14,1.59-22.77,1.59v39.19c17.37-6.95,26.68-19.11,26.68-19.11
|
||||
C517.12,434.18,514.57,423.09,513.21,418.34z"/>
|
||||
<path d="M465.98,417.88c-7.04-2.85-13.91-6.19-20.51-10.01l-19.59,33.94c18.52,2.67,32.66-3.21,32.66-3.21
|
||||
C461.45,433.56,464.78,422.67,465.98,417.88z"/>
|
||||
<path d="M426.55,264.84c5.99-4.67,12.32-8.95,18.92-12.76l-19.59-33.94c-11.57,14.7-13.55,29.89-13.55,29.89
|
||||
C415.24,253.08,423,261.41,426.55,264.84z"/>
|
||||
<path d="M467.68,241.62c7.52-1.05,15.14-1.59,22.77-1.59v-39.19c-17.37,6.95-26.68,19.11-26.68,19.11
|
||||
C463.77,225.78,466.32,236.87,467.68,241.62z"/>
|
||||
<path d="M514.91,242.07c7.04,2.85,13.91,6.19,20.51,10.01l19.59-33.94c-18.52-2.67-32.66,3.21-32.66,3.21
|
||||
C519.44,226.4,516.11,237.28,514.91,242.07z"/>
|
||||
<path d="M555.58,266.08c4.67,5.99,8.95,12.32,12.76,18.92l33.94-19.59c-14.7-11.57-29.89-13.55-29.89-13.55
|
||||
C567.34,254.78,559.02,262.53,555.58,266.08z"/>
|
||||
<path d="M578.8,307.21c1.05,7.52,1.59,15.14,1.59,22.77h39.19c-6.95-17.37-19.11-26.68-19.11-26.68
|
||||
C594.64,303.3,583.55,305.86,578.8,307.21z"/>
|
||||
<path d="M578.35,354.44c-2.85,7.04-6.19,13.91-10.01,20.51l33.94,19.59c2.67-18.52-3.21-32.66-3.21-32.66
|
||||
C594.02,358.97,583.14,355.64,578.35,354.44z"/>
|
||||
</g>
|
||||
<path class="st0" d="M490.45,424.51c-6.39,0-12.79-0.65-19.03-1.92c-6.08-1.24-12.06-3.1-17.78-5.52
|
||||
c-5.6-2.37-11.01-5.3-16.07-8.72c-5-3.38-9.7-7.26-13.97-11.53l-34.02-34.02l-34.02,34.02c-4.27,4.27-8.97,8.15-13.97,11.53
|
||||
c-5.06,3.42-10.46,6.35-16.07,8.72c-5.72,2.42-11.7,4.27-17.78,5.52c-6.23,1.27-12.63,1.92-19.03,1.92s-12.79-0.65-19.03-1.92
|
||||
c-6.08-1.24-12.06-3.1-17.78-5.52c-5.6-2.37-11.01-5.3-16.07-8.72c-5-3.38-9.7-7.26-13.97-11.53s-8.15-8.97-11.53-13.98
|
||||
c-3.41-5.05-6.35-10.46-8.72-16.07c-2.42-5.71-4.27-11.69-5.52-17.78c-1.27-6.23-1.92-12.63-1.92-19.03c0-0.03,0-0.05,0-0.08
|
||||
c0.01-6.38,0.65-12.75,1.92-18.95c1.25-6.08,3.1-12.06,5.52-17.78c2.37-5.6,5.3-11.01,8.72-16.07c3.38-5,7.26-9.7,11.53-13.97
|
||||
s8.97-8.15,13.97-11.53c5.06-3.42,10.46-6.35,16.07-8.72c5.72-2.42,11.7-4.27,17.78-5.52c6.2-1.27,12.6-1.91,19.03-1.91
|
||||
s12.83,0.64,19.03,1.91c6.08,1.24,12.06,3.1,17.78,5.52c5.61,2.37,11.01,5.31,16.07,8.72c5,3.38,9.7,7.26,13.97,11.53
|
||||
c0,0,24.25,24.25,34.02,34.02l34.02-34.02c4.27-4.27,8.97-8.15,13.97-11.53c5.06-3.42,10.46-6.35,16.07-8.72
|
||||
c5.72-2.42,11.7-4.27,17.78-5.52c6.23-1.27,12.63-1.92,19.03-1.92s12.8,0.65,19.03,1.92c6.08,1.24,12.06,3.1,17.78,5.52
|
||||
c5.61,2.37,11.01,5.3,16.07,8.72c5,3.38,9.7,7.26,13.97,11.53c4.27,4.27,8.15,8.98,11.53,13.97c3.41,5.05,6.35,10.46,8.72,16.07
|
||||
c2.42,5.71,4.27,11.69,5.52,17.78c1.27,6.23,1.92,12.63,1.92,19.02c0,6.4-0.65,12.8-1.92,19.03c-1.25,6.09-3.1,12.07-5.52,17.78
|
||||
c-2.38,5.61-5.31,11.02-8.72,16.07c-3.38,5-7.26,9.7-11.53,13.97s-8.97,8.15-13.97,11.53c-5.06,3.42-10.46,6.35-16.07,8.72
|
||||
c-5.72,2.42-11.7,4.27-17.78,5.52C503.24,423.86,496.84,424.51,490.45,424.51z M288.72,281.87c-3.28,0-6.55,0.33-9.72,0.98
|
||||
c-3.08,0.63-6.11,1.57-9,2.79c-2.84,1.2-5.59,2.69-8.16,4.43c-2.55,1.72-4.95,3.71-7.14,5.89c-2.18,2.18-4.16,4.58-5.89,7.14
|
||||
c-1.74,2.57-3.23,5.31-4.43,8.16c-1.22,2.89-2.16,5.92-2.79,9c-0.65,3.17-0.98,6.44-0.98,9.72s0.33,6.55,0.98,9.72
|
||||
c0.63,3.08,1.57,6.11,2.79,9c1.2,2.85,2.69,5.59,4.43,8.16c1.72,2.55,3.71,4.95,5.89,7.14c2.18,2.18,4.58,4.16,7.14,5.89
|
||||
c2.57,1.74,5.32,3.23,8.16,4.43c2.89,1.22,5.92,2.16,9,2.79c3.15,0.65,6.42,0.97,9.72,0.97s6.57-0.33,9.72-0.97
|
||||
c3.08-0.63,6.11-1.57,9-2.79c2.85-1.2,5.59-2.7,8.16-4.43c1.69-1.14,4.97-3.91,7.22-5.98l33.93-33.93l-34.02-34.02
|
||||
c-2.18-2.18-4.58-4.16-7.14-5.89c-2.57-1.74-5.32-3.23-8.16-4.43c-2.89-1.22-5.92-2.16-9-2.79
|
||||
C295.27,282.2,292,281.87,288.72,281.87z M456.43,364c2.18,2.18,4.58,4.16,7.14,5.89c2.57,1.74,5.32,3.23,8.16,4.43
|
||||
c2.89,1.22,5.92,2.16,9,2.79c3.16,0.65,6.43,0.97,9.72,0.97s6.57-0.33,9.72-0.97c3.08-0.63,6.1-1.57,9-2.79
|
||||
c2.84-1.2,5.59-2.69,8.17-4.43c2.55-1.73,4.95-3.71,7.13-5.89c2.18-2.18,4.17-4.58,5.89-7.14c1.74-2.57,3.23-5.32,4.43-8.16
|
||||
c1.22-2.9,2.16-5.92,2.79-9c0.65-3.17,0.98-6.44,0.98-9.72s-0.33-6.55-0.98-9.72c-0.63-3.07-1.57-6.1-2.79-9
|
||||
c-1.2-2.85-2.7-5.59-4.43-8.16c-1.73-2.56-3.71-4.96-5.89-7.14c-2.18-2.18-4.58-4.17-7.14-5.89c-2.57-1.74-5.32-3.23-8.16-4.43
|
||||
c-2.89-1.22-5.92-2.16-9-2.79c-3.16-0.65-6.43-0.97-9.72-0.97s-6.57,0.33-9.72,0.97c-3.08,0.63-6.1,1.57-9,2.79
|
||||
c-2.85,1.2-5.59,2.69-8.16,4.43c-2.54,1.72-4.94,3.7-7.13,5.88l-34.03,34.03L456.43,364z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path class="st1" d="M410.96,43.04c-2.16,0-3.88,0.88-5.14,2.63c-1.27,1.75-1.9,4.57-1.9,8.46l-5.69-1.05
|
||||
c0-4.97,1.06-8.79,3.17-11.47c2.11-2.68,5.35-4.04,9.7-4.11c4.54,0,7.79,1.32,9.75,3.97s2.94,6.14,2.94,10.48
|
||||
c0,2.81-0.27,5.41-0.79,7.8c-0.53,2.39-1.42,4.8-2.66,7.23l-15.67,32.25h18.66v5.35h-25v-5.26l17.35-35.64
|
||||
c0.87-1.85,1.45-3.74,1.73-5.69c0.28-1.94,0.42-3.97,0.42-6.07c0-1.08-0.08-2.16-0.23-3.25c-0.15-1.08-0.48-2.04-0.97-2.87
|
||||
c-0.49-0.83-1.19-1.5-2.08-2.01C413.63,43.3,412.44,43.04,410.96,43.04z"/>
|
||||
<path class="st1" d="M457.56,93.02c0,2.04-0.34,3.82-1.02,5.35s-1.6,2.8-2.74,3.82c-1.15,1.02-2.48,1.78-4,2.29
|
||||
s-3.11,0.76-4.79,0.76s-3.27-0.26-4.79-0.76c-1.52-0.51-2.85-1.27-4-2.29c-1.15-1.02-2.06-2.29-2.74-3.82s-1.02-3.31-1.02-5.35
|
||||
V49.83c0-1.97,0.34-3.74,1.02-5.3c0.68-1.56,1.6-2.85,2.74-3.87c1.15-1.02,2.48-1.8,4-2.34s3.11-0.81,4.79-0.81
|
||||
c3.53,0,6.51,1.05,8.92,3.15c2.42,2.1,3.63,5.16,3.63,9.17L457.56,93.02L457.56,93.02z M451.87,49.65c0-2.04-0.63-3.65-1.9-4.83
|
||||
s-2.89-1.77-4.86-1.77c-2.04,0-3.71,0.59-5,1.77c-1.3,1.18-1.95,2.79-1.95,4.83V93.3c0,2.04,0.65,3.65,1.95,4.83
|
||||
c1.3,1.18,2.96,1.77,5,1.77c1.98,0,3.6-0.59,4.86-1.77c1.27-1.18,1.9-2.79,1.9-4.83V49.65z"/>
|
||||
<path class="st1" d="M479.44,43.04c-2.16,0-3.88,0.88-5.14,2.63c-1.27,1.75-1.9,4.57-1.9,8.46l-5.69-1.05
|
||||
c0-4.97,1.06-8.79,3.17-11.47c2.11-2.68,5.35-4.04,9.7-4.11c4.54,0,7.79,1.32,9.75,3.97s2.94,6.14,2.94,10.48
|
||||
c0,2.81-0.27,5.41-0.79,7.8c-0.53,2.39-1.42,4.8-2.66,7.23l-15.67,32.25h18.66v5.35h-25v-5.26l17.35-35.64
|
||||
c0.87-1.85,1.45-3.74,1.73-5.69c0.28-1.94,0.42-3.97,0.42-6.07c0-1.08-0.08-2.16-0.23-3.25c-0.15-1.08-0.48-2.04-0.97-2.87
|
||||
c-0.49-0.83-1.19-1.5-2.08-2.01C482.11,43.3,480.92,43.04,479.44,43.04z"/>
|
||||
<path class="st1" d="M525.95,91.66c0,4.59-1.17,8.01-3.5,10.24c-2.33,2.23-5.43,3.35-9.28,3.35c-4.29,0-7.46-1.21-9.52-3.63
|
||||
c-2.05-2.42-3.02-5.92-2.89-10.51l5.69-1.15c-0.13,3.06,0.33,5.48,1.35,7.26c1.03,1.78,2.88,2.68,5.55,2.68
|
||||
c1.99,0,3.65-0.61,4.99-1.82c1.34-1.22,2.01-3.26,2.01-6.14V81.3c0-3.07-0.61-5.26-1.82-6.57s-3-1.97-5.36-1.97h-2.71v-5.35
|
||||
h2.89c2.24,0,3.97-0.6,5.18-1.81s1.82-3.27,1.82-6.19v-8.95c0-1.02-0.11-1.97-0.33-2.85c-0.22-0.89-0.59-1.67-1.12-2.33
|
||||
c-0.53-0.67-1.21-1.2-2.05-1.62c-0.84-0.41-1.88-0.62-3.13-0.62c-2.55,0-4.4,0.91-5.55,2.72c-1.15,1.82-1.73,4.16-1.73,7.02
|
||||
c-0.19-0.06-0.55-0.13-1.07-0.19c-0.53-0.06-1.12-0.14-1.77-0.24c-0.65-0.1-1.25-0.19-1.77-0.29c-0.53-0.1-0.89-0.14-1.07-0.14
|
||||
c0.06-2.1,0.37-4.03,0.93-5.78s1.4-3.26,2.52-4.54c1.12-1.27,2.5-2.28,4.15-3.01s3.56-1.1,5.74-1.1c2.24,0,4.12,0.33,5.64,1
|
||||
s2.75,1.59,3.69,2.77c0.93,1.18,1.6,2.56,2.01,4.15c0.4,1.59,0.61,3.31,0.61,5.15v7.73c0,1.21-0.06,2.39-0.19,3.53
|
||||
c-0.13,1.15-0.39,2.21-0.79,3.2c-0.41,0.99-0.98,1.89-1.73,2.72s-1.74,1.53-2.99,2.1v0.19c1.31,0.51,2.33,1.16,3.08,1.96
|
||||
c0.75,0.8,1.32,1.72,1.73,2.78c0.4,1.05,0.65,2.22,0.75,3.49c0.09,1.28,0.14,2.65,0.14,4.11L525.95,91.66z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M250.72,114.74v21.1h-1.35v-21.1h-4.14v-1.25h9.62v1.25H250.72z"/>
|
||||
<path class="st1" d="M259.74,119.91c1.15,0,2.03,0.22,2.64,0.67c0.61,0.45,1.03,1.02,1.26,1.7c0.1,0.28,0.18,0.65,0.24,1.11
|
||||
c0.05,0.46,0.09,0.96,0.13,1.51c0.03,0.55,0.05,1.1,0.05,1.67s0,1.1,0,1.59v0.48c0,0.56-0.01,1.12-0.02,1.7
|
||||
c-0.01,0.58-0.05,1.21-0.11,1.89c-0.06,0.75-0.24,1.37-0.52,1.86s-0.63,0.88-1.04,1.17s-0.85,0.49-1.34,0.61
|
||||
c-0.48,0.12-0.95,0.18-1.42,0.18c-1.26,0-2.2-0.26-2.82-0.79s-1.04-1.19-1.27-2.01c-0.06-0.26-0.12-0.58-0.16-0.98
|
||||
c-0.04-0.4-0.07-0.83-0.09-1.3c-0.02-0.47-0.03-0.95-0.03-1.45c0-0.49,0-0.95,0-1.38c0-0.58,0-1.15,0.02-1.72
|
||||
c0.01-0.57,0.03-1.11,0.06-1.62s0.08-0.98,0.14-1.4s0.14-0.75,0.22-1.01c0.27-0.75,0.73-1.35,1.38-1.81
|
||||
C257.71,120.14,258.61,119.91,259.74,119.91z M259.68,121.16c-0.55,0-1.07,0.11-1.58,0.34c-0.5,0.22-0.88,0.66-1.13,1.3
|
||||
c-0.17,0.43-0.27,1.1-0.32,2.01c-0.04,0.91-0.06,1.96-0.06,3.16v0.8c0,1.03,0.02,1.89,0.05,2.6s0.11,1.25,0.24,1.64
|
||||
c0.19,0.58,0.51,1.02,0.96,1.33c0.45,0.31,1.07,0.47,1.84,0.47c0.69,0,1.29-0.19,1.8-0.58c0.5-0.39,0.84-0.92,1.01-1.61
|
||||
c0.08-0.36,0.14-0.94,0.17-1.73s0.05-1.64,0.05-2.54c0-0.47-0.01-0.97-0.02-1.51c-0.01-0.53-0.02-1.05-0.03-1.54
|
||||
s-0.04-0.94-0.08-1.33s-0.09-0.7-0.16-0.92c-0.19-0.64-0.53-1.12-1.02-1.43C260.9,121.32,260.33,121.16,259.68,121.16z"/>
|
||||
<path class="st1" d="M273.77,134.07h-0.09c-0.36,0.62-0.83,1.11-1.41,1.46c-0.59,0.35-1.24,0.53-1.98,0.53
|
||||
c-0.71,0-1.31-0.11-1.79-0.34c-0.48-0.22-0.86-0.53-1.14-0.92c-0.28-0.39-0.49-0.83-0.61-1.35s-0.19-1.06-0.19-1.64V120.1h1.35
|
||||
v11.27c0,0.49,0.04,0.94,0.13,1.35c0.08,0.41,0.23,0.75,0.43,1.04c0.2,0.29,0.48,0.52,0.83,0.69c0.36,0.17,0.81,0.26,1.36,0.26
|
||||
c0.48,0,0.92-0.1,1.31-0.3s0.71-0.47,0.98-0.8c0.26-0.33,0.47-0.71,0.61-1.14c0.15-0.43,0.22-0.87,0.22-1.32V120.1h1.35v15.73
|
||||
h-1.35L273.77,134.07L273.77,134.07z"/>
|
||||
<path class="st1" d="M278.03,112.52h1.35v19.62c0,0.81,0.13,1.46,0.39,1.94s0.79,0.72,1.58,0.72h0.38v1.25h-0.47
|
||||
c-1.05,0-1.84-0.26-2.4-0.77c-0.55-0.51-0.83-1.46-0.83-2.83L278.03,112.52L278.03,112.52z"/>
|
||||
<path class="st1" d="M287.36,119.91c1.15,0,2.03,0.22,2.64,0.67c0.61,0.45,1.03,1.02,1.26,1.7c0.1,0.28,0.18,0.65,0.24,1.11
|
||||
c0.05,0.46,0.09,0.96,0.13,1.51c0.03,0.55,0.05,1.1,0.05,1.67s0,1.1,0,1.59v0.48c0,0.56-0.01,1.12-0.02,1.7
|
||||
c-0.01,0.58-0.05,1.21-0.11,1.89c-0.06,0.75-0.24,1.37-0.52,1.86s-0.63,0.88-1.04,1.17s-0.85,0.49-1.34,0.61
|
||||
c-0.48,0.12-0.95,0.18-1.42,0.18c-1.26,0-2.2-0.26-2.82-0.79s-1.04-1.19-1.27-2.01c-0.06-0.26-0.12-0.58-0.16-0.98
|
||||
s-0.07-0.83-0.09-1.3s-0.03-0.95-0.03-1.45c0-0.49,0-0.95,0-1.38c0-0.58,0-1.15,0.02-1.72c0.01-0.57,0.03-1.11,0.06-1.62
|
||||
s0.08-0.98,0.14-1.4c0.06-0.42,0.14-0.75,0.22-1.01c0.27-0.75,0.73-1.35,1.38-1.81C285.33,120.14,286.23,119.91,287.36,119.91z
|
||||
M287.3,121.16c-0.55,0-1.07,0.11-1.58,0.34c-0.5,0.22-0.88,0.66-1.13,1.3c-0.17,0.43-0.27,1.1-0.32,2.01
|
||||
c-0.04,0.91-0.06,1.96-0.06,3.16v0.8c0,1.03,0.02,1.89,0.05,2.6s0.11,1.25,0.24,1.64c0.19,0.58,0.51,1.02,0.96,1.33
|
||||
c0.45,0.31,1.07,0.47,1.84,0.47c0.69,0,1.29-0.19,1.8-0.58c0.5-0.39,0.84-0.92,1.01-1.61c0.08-0.36,0.14-0.94,0.17-1.73
|
||||
s0.05-1.64,0.05-2.54c0-0.47-0.01-0.97-0.02-1.51c-0.01-0.53-0.02-1.05-0.03-1.54s-0.04-0.94-0.08-1.33s-0.09-0.7-0.16-0.92
|
||||
c-0.19-0.64-0.53-1.12-1.02-1.43C288.52,121.32,287.95,121.16,287.3,121.16z"/>
|
||||
<path class="st1" d="M301.39,134.07h-0.09c-0.36,0.62-0.83,1.11-1.41,1.46c-0.59,0.35-1.24,0.53-1.98,0.53
|
||||
c-0.71,0-1.31-0.11-1.79-0.34c-0.48-0.22-0.86-0.53-1.14-0.92c-0.28-0.39-0.49-0.83-0.61-1.35s-0.19-1.06-0.19-1.64V120.1h1.35
|
||||
v11.27c0,0.49,0.04,0.94,0.13,1.35c0.08,0.41,0.23,0.75,0.43,1.04c0.2,0.29,0.48,0.52,0.83,0.69c0.36,0.17,0.81,0.26,1.36,0.26
|
||||
c0.48,0,0.92-0.1,1.31-0.3s0.71-0.47,0.98-0.8c0.26-0.33,0.47-0.71,0.61-1.14c0.15-0.43,0.22-0.87,0.22-1.32V120.1h1.35v15.73
|
||||
h-1.35L301.39,134.07L301.39,134.07z"/>
|
||||
<path class="st1" d="M306.25,131.85c0,0.9,0.25,1.62,0.74,2.15c0.49,0.54,1.18,0.8,2.06,0.8c1.11,0,1.88-0.27,2.3-0.8
|
||||
c0.42-0.54,0.63-1.29,0.63-2.25c0-0.47-0.04-0.87-0.11-1.21c-0.07-0.33-0.21-0.63-0.42-0.9c-0.21-0.27-0.5-0.51-0.88-0.74
|
||||
c-0.38-0.22-0.88-0.46-1.5-0.69c-0.81-0.32-1.48-0.64-2.01-0.97c-0.52-0.32-0.92-0.66-1.21-1.01c-0.28-0.35-0.48-0.72-0.58-1.11
|
||||
c-0.1-0.39-0.16-0.79-0.16-1.22c0-1.18,0.33-2.14,1-2.9s1.72-1.13,3.17-1.13c1.32,0,2.34,0.34,3.06,1.03
|
||||
c0.72,0.68,1.08,1.68,1.08,2.99l-1.41,0.23c0-0.96-0.25-1.7-0.74-2.22s-1.18-0.77-2.06-0.77c-0.55,0-1,0.08-1.36,0.24
|
||||
c-0.36,0.16-0.64,0.37-0.84,0.63c-0.2,0.26-0.34,0.55-0.43,0.87c-0.08,0.32-0.13,0.65-0.13,1c0,0.34,0.04,0.65,0.13,0.93
|
||||
c0.08,0.28,0.25,0.54,0.49,0.79s0.59,0.49,1.03,0.72c0.44,0.24,1.01,0.48,1.71,0.74c0.8,0.3,1.43,0.61,1.9,0.93
|
||||
c0.46,0.32,0.82,0.67,1.06,1.05c0.24,0.38,0.4,0.78,0.47,1.22s0.11,0.92,0.11,1.43c0,0.64-0.07,1.23-0.22,1.77
|
||||
s-0.39,1-0.72,1.38c-0.34,0.39-0.77,0.69-1.31,0.9c-0.54,0.21-1.19,0.32-1.97,0.32c-1.34,0-2.38-0.33-3.1-0.98
|
||||
s-1.11-1.65-1.15-3L306.25,131.85z"/>
|
||||
<path class="st1" d="M319.71,119.91c1.25,0,2.22,0.33,2.92,0.98s1.08,1.59,1.14,2.81c0.02,0.24,0.03,0.47,0.03,0.69
|
||||
s0,0.46,0,0.69v3.11h-7.15v1.03c0,0.68,0.02,1.4,0.05,2.13s0.11,1.29,0.24,1.65c0.19,0.56,0.49,1,0.91,1.32s0.98,0.48,1.69,0.48
|
||||
c0.94,0,1.64-0.28,2.08-0.83c0.45-0.56,0.71-1.24,0.77-2.05l1.35,0.26c-0.1,1.26-0.53,2.23-1.28,2.89s-1.72,1-2.9,1
|
||||
c-0.62,0-1.17-0.08-1.64-0.24s-0.86-0.37-1.17-0.63c-0.31-0.26-0.56-0.55-0.75-0.88s-0.32-0.68-0.41-1.04
|
||||
c-0.06-0.26-0.11-0.59-0.16-1c-0.04-0.41-0.07-0.84-0.08-1.3c-0.01-0.46-0.02-0.94-0.03-1.43c-0.01-0.49-0.02-0.95-0.02-1.38
|
||||
c0-0.58,0-1.16,0.02-1.73c0.01-0.58,0.03-1.12,0.06-1.64c0.03-0.51,0.08-0.98,0.14-1.41c0.06-0.43,0.14-0.77,0.22-1.03
|
||||
c0.27-0.75,0.72-1.34,1.34-1.78C317.71,120.13,318.59,119.91,319.71,119.91z M317,122.84c-0.15,0.37-0.24,0.91-0.27,1.63
|
||||
c-0.03,0.72-0.06,1.58-0.08,2.57h5.83v-1.97c0-0.5-0.03-0.98-0.08-1.45s-0.18-0.89-0.38-1.26s-0.49-0.66-0.87-0.87
|
||||
s-0.88-0.32-1.51-0.32c-0.53,0-1.03,0.12-1.51,0.35C317.65,121.75,317.28,122.2,317,122.84z"/>
|
||||
<path class="st1" d="M340.45,135.84v-10.82h-6.96v10.82h-1.35v-22.35h1.35v10.28h6.96v-10.28h1.35v22.35H340.45z"/>
|
||||
<path class="st1" d="M344.69,122.51c0.29-0.81,0.78-1.45,1.47-1.91c0.69-0.46,1.58-0.69,2.67-0.69c1.32,0,2.33,0.31,3.04,0.92
|
||||
c0.71,0.61,1.07,1.7,1.07,3.26v11.75h-1.35v-1.41h-0.03c-0.5,0.71-1.07,1.15-1.71,1.33s-1.26,0.27-1.87,0.27
|
||||
c-0.69,0-1.27-0.12-1.74-0.37s-0.85-0.57-1.14-0.98c-0.29-0.41-0.51-0.87-0.64-1.4c-0.14-0.52-0.2-1.08-0.2-1.65
|
||||
c0-0.6,0.07-1.19,0.2-1.78c0.14-0.59,0.37-1.12,0.71-1.61c0.33-0.48,0.78-0.87,1.33-1.17c0.55-0.3,1.25-0.45,2.08-0.45h3.01
|
||||
v-2.52c0-0.43-0.04-0.82-0.13-1.18c-0.08-0.35-0.23-0.66-0.44-0.92c-0.21-0.26-0.5-0.46-0.86-0.61
|
||||
c-0.37-0.15-0.83-0.23-1.4-0.23c-0.61,0-1.18,0.15-1.72,0.45c-0.54,0.3-0.9,0.75-1.07,1.35L344.69,122.51z M348.86,127.87
|
||||
c-0.46,0-0.89,0.06-1.29,0.19s-0.74,0.34-1.03,0.65c-0.29,0.3-0.52,0.69-0.69,1.18c-0.17,0.48-0.25,1.07-0.25,1.76
|
||||
c0,0.86,0.21,1.6,0.64,2.21c0.43,0.61,1.18,0.92,2.24,0.92c0.9,0,1.64-0.25,2.23-0.76c0.58-0.51,0.88-1.25,0.88-2.24v-3.9
|
||||
L348.86,127.87L348.86,127.87z"/>
|
||||
<path class="st1" d="M359.78,119.91c1.31,0,2.31,0.35,3,1.06s1.03,1.73,1.03,3.08c-0.23,0.04-0.45,0.08-0.67,0.11
|
||||
c-0.23,0.03-0.45,0.07-0.67,0.11c0.02-0.98-0.21-1.75-0.69-2.3s-1.17-0.82-2.07-0.82c-0.56,0-1.07,0.13-1.52,0.38
|
||||
c-0.45,0.26-0.81,0.7-1.08,1.32c-0.17,0.41-0.27,1.1-0.31,2.09c-0.04,0.98-0.06,2.12-0.06,3.4v0.42c0,0.39,0,0.78,0.02,1.19
|
||||
c0.01,0.41,0.03,0.8,0.05,1.19s0.05,0.74,0.08,1.06c0.03,0.32,0.08,0.58,0.14,0.77c0.19,0.58,0.5,1.03,0.94,1.35
|
||||
s1,0.48,1.69,0.48c0.86,0,1.54-0.24,2.05-0.72s0.77-1.26,0.77-2.33l1.35,0.26c-0.04,1.35-0.43,2.36-1.16,3.03
|
||||
s-1.74,1.01-3.03,1.01c-0.63,0-1.17-0.08-1.64-0.24s-0.86-0.37-1.17-0.63s-0.56-0.55-0.75-0.88s-0.32-0.68-0.41-1.04
|
||||
c-0.06-0.26-0.11-0.59-0.16-1c-0.04-0.41-0.07-0.84-0.08-1.32c-0.01-0.47-0.02-0.95-0.03-1.43s-0.02-0.94-0.02-1.36
|
||||
c0-0.58,0-1.16,0.02-1.73c0.01-0.58,0.03-1.12,0.06-1.64c0.03-0.51,0.08-0.98,0.14-1.4c0.06-0.42,0.14-0.75,0.22-1.01
|
||||
c0.27-0.75,0.72-1.35,1.34-1.8C357.78,120.13,358.66,119.91,359.78,119.91z"/>
|
||||
<path class="st1" d="M367.35,129.41h0.03l5.67-9.25h1.5l-3.57,5.78l4.42,9.89h-1.5l-3.76-8.61l-2.79,4.53v4.08H366v-23.31h1.35
|
||||
V129.41z"/>
|
||||
<path class="st1" d="M381.04,119.91c1.25,0,2.22,0.33,2.92,0.98s1.08,1.59,1.14,2.81c0.02,0.24,0.03,0.47,0.03,0.69
|
||||
s0,0.46,0,0.69v3.11h-7.15v1.03c0,0.68,0.02,1.4,0.05,2.13s0.11,1.29,0.24,1.65c0.19,0.56,0.49,1,0.91,1.32s0.98,0.48,1.69,0.48
|
||||
c0.94,0,1.63-0.28,2.09-0.83c0.45-0.56,0.71-1.24,0.77-2.05l1.35,0.26c-0.1,1.26-0.53,2.23-1.28,2.89s-1.72,1-2.9,1
|
||||
c-0.62,0-1.17-0.08-1.64-0.24s-0.86-0.37-1.17-0.63s-0.56-0.55-0.75-0.88s-0.32-0.68-0.41-1.04c-0.06-0.26-0.11-0.59-0.16-1
|
||||
c-0.04-0.41-0.07-0.84-0.08-1.3c-0.01-0.46-0.02-0.94-0.03-1.43c-0.01-0.49-0.02-0.95-0.02-1.38c0-0.58,0-1.16,0.02-1.73
|
||||
c0.01-0.58,0.03-1.12,0.06-1.64c0.03-0.51,0.08-0.98,0.14-1.41c0.06-0.43,0.14-0.77,0.22-1.03c0.27-0.75,0.72-1.34,1.34-1.78
|
||||
C379.04,120.13,379.91,119.91,381.04,119.91z M378.33,122.84c-0.15,0.37-0.24,0.91-0.27,1.63c-0.03,0.72-0.06,1.58-0.08,2.57
|
||||
h5.83v-1.97c0-0.5-0.03-0.98-0.08-1.45c-0.05-0.47-0.18-0.89-0.38-1.26s-0.49-0.66-0.87-0.87s-0.88-0.32-1.51-0.32
|
||||
c-0.53,0-1.03,0.12-1.51,0.35C378.98,121.75,378.6,122.2,378.33,122.84z"/>
|
||||
<path class="st1" d="M393.53,121.51c-0.13-0.02-0.26-0.04-0.39-0.05c-0.14-0.01-0.27-0.02-0.39-0.02
|
||||
c-1.04,0-1.85,0.36-2.43,1.09c-0.58,0.73-0.86,1.77-0.86,3.12v10.18h-1.35v-15.7h1.35v2.15h0.06c0.33-0.83,0.78-1.44,1.35-1.81
|
||||
c0.56-0.38,1.24-0.56,2.04-0.56c0.1,0,0.21,0,0.31,0s0.21,0.01,0.31,0.03V121.51z"/>
|
||||
<path class="st1" d="M410.08,129.99c0,0.92-0.08,1.75-0.25,2.5s-0.44,1.39-0.81,1.91s-0.88,0.93-1.5,1.22s-1.41,0.43-2.34,0.43
|
||||
c-0.88,0-1.62-0.12-2.23-0.37c-0.62-0.25-1.12-0.58-1.52-1.01s-0.68-0.93-0.86-1.51s-0.28-1.21-0.3-1.89l1.35-0.29
|
||||
c0,0.49,0.06,0.97,0.19,1.43c0.13,0.46,0.33,0.86,0.61,1.2s0.65,0.62,1.1,0.82c0.45,0.2,1,0.3,1.65,0.3
|
||||
c0.78,0,1.4-0.13,1.87-0.39s0.83-0.6,1.09-1.03c0.25-0.43,0.42-0.93,0.49-1.51s0.11-1.18,0.11-1.8c0-0.75-0.04-1.38-0.11-1.88
|
||||
c-0.07-0.5-0.23-0.94-0.47-1.32c-0.24-0.37-0.6-0.72-1.07-1.03s-1.11-0.65-1.93-1.01c-1.05-0.47-1.88-0.93-2.51-1.38
|
||||
s-1.1-0.9-1.43-1.36c-0.32-0.46-0.53-0.95-0.63-1.46c-0.09-0.51-0.14-1.08-0.14-1.7c0-0.81,0.09-1.56,0.28-2.25
|
||||
c0.19-0.68,0.48-1.27,0.88-1.77c0.4-0.49,0.9-0.88,1.5-1.16c0.6-0.28,1.33-0.42,2.19-0.42c0.94,0,1.71,0.14,2.33,0.42
|
||||
c0.61,0.28,1.1,0.64,1.47,1.09c0.36,0.45,0.62,0.95,0.77,1.49c0.15,0.55,0.22,1.09,0.22,1.62l-1.35,0.35
|
||||
c0-0.51-0.06-0.99-0.17-1.43c-0.12-0.44-0.31-0.82-0.58-1.16c-0.27-0.33-0.64-0.59-1.09-0.79s-1-0.29-1.65-0.29
|
||||
c-0.71,0-1.3,0.13-1.75,0.4c-0.45,0.27-0.8,0.61-1.06,1.03c-0.25,0.42-0.42,0.87-0.5,1.37c-0.08,0.49-0.13,0.97-0.13,1.44
|
||||
c0,0.56,0.05,1.04,0.16,1.46c0.1,0.42,0.3,0.81,0.6,1.17c0.29,0.36,0.71,0.72,1.25,1.06s1.28,0.72,2.2,1.12
|
||||
c0.94,0.41,1.68,0.82,2.23,1.24c0.54,0.42,0.95,0.87,1.22,1.35s0.44,1.03,0.52,1.64C410.05,128.5,410.08,129.2,410.08,129.99z"
|
||||
/>
|
||||
<path class="st1" d="M417.06,119.94c0.37,0,0.77,0.05,1.19,0.16s0.8,0.3,1.16,0.58c0.35,0.28,0.66,0.66,0.92,1.14
|
||||
c0.26,0.48,0.42,1.1,0.48,1.85c0.06,0.69,0.1,1.34,0.11,1.97c0.01,0.63,0.02,1.25,0.02,1.85v0.45c0,1.22-0.02,2.31-0.06,3.28
|
||||
c-0.04,0.96-0.18,1.79-0.41,2.47c-0.23,0.66-0.62,1.23-1.17,1.69c-0.55,0.46-1.37,0.69-2.45,0.69c-0.83,0-1.52-0.2-2.06-0.59
|
||||
s-0.89-0.79-1.06-1.17h-0.06v7.77h-1.35v-21.9h1.35v1.48h0.06c0.35-0.54,0.79-0.95,1.29-1.25S416.21,119.94,417.06,119.94z
|
||||
M416.75,121.26c-0.94,0-1.68,0.31-2.25,0.93s-0.84,1.43-0.84,2.44v6.49c0,0.47,0.06,0.93,0.19,1.36
|
||||
c0.12,0.44,0.31,0.82,0.56,1.16c0.25,0.33,0.56,0.6,0.94,0.8c0.37,0.2,0.81,0.3,1.31,0.3c0.62,0,1.17-0.17,1.65-0.51
|
||||
c0.48-0.34,0.8-0.85,0.97-1.51c0.06-0.21,0.11-0.51,0.14-0.88c0.03-0.37,0.06-0.79,0.08-1.25s0.03-0.94,0.03-1.45
|
||||
c0-0.5,0-1,0-1.49c0-1.01-0.02-1.9-0.05-2.68s-0.1-1.35-0.2-1.72c-0.21-0.75-0.52-1.27-0.94-1.56
|
||||
C417.92,121.4,417.39,121.26,416.75,121.26z"/>
|
||||
<path class="st1" d="M423.35,122.51c0.29-0.81,0.78-1.45,1.47-1.91c0.69-0.46,1.58-0.69,2.67-0.69c1.32,0,2.33,0.31,3.04,0.92
|
||||
c0.71,0.61,1.07,1.7,1.07,3.26v11.75h-1.35v-1.41h-0.03c-0.5,0.71-1.07,1.15-1.71,1.33s-1.26,0.27-1.87,0.27
|
||||
c-0.69,0-1.27-0.12-1.74-0.37s-0.85-0.57-1.14-0.98c-0.29-0.41-0.51-0.87-0.64-1.4s-0.2-1.08-0.2-1.65c0-0.6,0.07-1.19,0.2-1.78
|
||||
s0.37-1.12,0.71-1.61c0.33-0.48,0.78-0.87,1.33-1.17s1.25-0.45,2.08-0.45h3.01v-2.52c0-0.43-0.04-0.82-0.12-1.18
|
||||
c-0.08-0.35-0.23-0.66-0.44-0.92c-0.21-0.26-0.5-0.46-0.86-0.61s-0.83-0.23-1.39-0.23c-0.61,0-1.18,0.15-1.72,0.45
|
||||
c-0.54,0.3-0.9,0.75-1.07,1.35L423.35,122.51z M427.52,127.87c-0.46,0-0.89,0.06-1.29,0.19s-0.74,0.34-1.04,0.65
|
||||
c-0.29,0.3-0.52,0.69-0.69,1.18c-0.17,0.48-0.25,1.07-0.25,1.76c0,0.86,0.21,1.6,0.64,2.21s1.18,0.92,2.24,0.92
|
||||
c0.9,0,1.64-0.25,2.23-0.76s0.88-1.25,0.88-2.24v-3.9L427.52,127.87L427.52,127.87z"/>
|
||||
<path class="st1" d="M438.44,119.91c1.31,0,2.31,0.35,3,1.06s1.03,1.73,1.03,3.08c-0.22,0.04-0.45,0.08-0.67,0.11
|
||||
s-0.45,0.07-0.67,0.11c0.02-0.98-0.21-1.75-0.69-2.3s-1.17-0.82-2.07-0.82c-0.56,0-1.07,0.13-1.52,0.38
|
||||
c-0.45,0.26-0.81,0.7-1.08,1.32c-0.17,0.41-0.27,1.1-0.31,2.09s-0.06,2.12-0.06,3.4v0.42c0,0.39,0,0.78,0.02,1.19
|
||||
c0.01,0.41,0.03,0.8,0.05,1.19s0.05,0.74,0.08,1.06c0.03,0.32,0.08,0.58,0.14,0.77c0.19,0.58,0.5,1.03,0.94,1.35
|
||||
s1,0.48,1.69,0.48c0.86,0,1.54-0.24,2.05-0.72c0.51-0.48,0.77-1.26,0.77-2.33l1.35,0.26c-0.04,1.35-0.43,2.36-1.16,3.03
|
||||
s-1.74,1.01-3.03,1.01c-0.62,0-1.17-0.08-1.64-0.24s-0.86-0.37-1.17-0.63s-0.56-0.55-0.75-0.88s-0.32-0.68-0.41-1.04
|
||||
c-0.06-0.26-0.12-0.59-0.16-1s-0.07-0.84-0.08-1.32c-0.01-0.47-0.02-0.95-0.03-1.43s-0.02-0.94-0.02-1.36
|
||||
c0-0.58,0-1.16,0.02-1.73c0.01-0.58,0.03-1.12,0.06-1.64s0.08-0.98,0.14-1.4c0.06-0.42,0.14-0.75,0.22-1.01
|
||||
c0.27-0.75,0.72-1.35,1.34-1.8C436.44,120.13,437.32,119.91,438.44,119.91z"/>
|
||||
<path class="st1" d="M448.79,119.91c1.25,0,2.22,0.33,2.92,0.98s1.08,1.59,1.14,2.81c0.02,0.24,0.03,0.47,0.03,0.69
|
||||
s0,0.46,0,0.69v3.11h-7.15v1.03c0,0.68,0.02,1.4,0.05,2.13s0.11,1.29,0.24,1.65c0.19,0.56,0.49,1,0.91,1.32s0.98,0.48,1.69,0.48
|
||||
c0.94,0,1.63-0.28,2.08-0.83c0.45-0.56,0.71-1.24,0.77-2.05l1.35,0.26c-0.1,1.26-0.53,2.23-1.28,2.89s-1.72,1-2.9,1
|
||||
c-0.62,0-1.17-0.08-1.64-0.24s-0.86-0.37-1.17-0.63s-0.56-0.55-0.75-0.88s-0.32-0.68-0.41-1.04c-0.06-0.26-0.11-0.59-0.16-1
|
||||
c-0.04-0.41-0.07-0.84-0.08-1.3c-0.01-0.46-0.02-0.94-0.03-1.43c-0.01-0.49-0.02-0.95-0.02-1.38c0-0.58,0-1.16,0.02-1.73
|
||||
c0.01-0.58,0.03-1.12,0.06-1.64s0.08-0.98,0.14-1.41c0.06-0.43,0.14-0.77,0.22-1.03c0.27-0.75,0.72-1.34,1.34-1.78
|
||||
C446.79,120.13,447.66,119.91,448.79,119.91z M446.08,122.84c-0.15,0.37-0.24,0.91-0.27,1.63c-0.03,0.72-0.06,1.58-0.08,2.57
|
||||
h5.83v-1.97c0-0.5-0.03-0.98-0.08-1.45c-0.05-0.47-0.18-0.89-0.38-1.26s-0.49-0.66-0.87-0.87s-0.88-0.32-1.51-0.32
|
||||
c-0.53,0-1.03,0.12-1.51,0.35C446.73,121.75,446.35,122.2,446.08,122.84z"/>
|
||||
<path class="st1" d="M461.25,135.84v-22.35h8.87v1.25h-7.52v8.99h6.65v1.25h-6.65v10.85L461.25,135.84L461.25,135.84z"/>
|
||||
<path class="st1" d="M470.97,122.51c0.29-0.81,0.78-1.45,1.47-1.91c0.69-0.46,1.58-0.69,2.67-0.69c1.32,0,2.33,0.31,3.04,0.92
|
||||
c0.71,0.61,1.07,1.7,1.07,3.26v11.75h-1.35v-1.41h-0.03c-0.5,0.71-1.07,1.15-1.71,1.33s-1.26,0.27-1.87,0.27
|
||||
c-0.69,0-1.27-0.12-1.74-0.37s-0.85-0.57-1.14-0.98c-0.29-0.41-0.51-0.87-0.64-1.4s-0.2-1.08-0.2-1.65c0-0.6,0.07-1.19,0.2-1.78
|
||||
s0.37-1.12,0.71-1.61c0.33-0.48,0.78-0.87,1.33-1.17s1.25-0.45,2.08-0.45h3.01v-2.52c0-0.43-0.04-0.82-0.12-1.18
|
||||
c-0.08-0.35-0.23-0.66-0.44-0.92c-0.21-0.26-0.5-0.46-0.86-0.61s-0.83-0.23-1.39-0.23c-0.61,0-1.18,0.15-1.72,0.45
|
||||
c-0.54,0.3-0.9,0.75-1.07,1.35L470.97,122.51z M475.14,127.87c-0.46,0-0.89,0.06-1.29,0.19s-0.74,0.34-1.04,0.65
|
||||
c-0.29,0.3-0.52,0.69-0.69,1.18c-0.17,0.48-0.25,1.07-0.25,1.76c0,0.86,0.21,1.6,0.64,2.21s1.18,0.92,2.24,0.92
|
||||
c0.9,0,1.64-0.25,2.23-0.76s0.88-1.25,0.88-2.24v-3.9L475.14,127.87L475.14,127.87z"/>
|
||||
<path class="st1" d="M486.07,119.91c1.31,0,2.31,0.35,3,1.06s1.03,1.73,1.03,3.08c-0.22,0.04-0.45,0.08-0.67,0.11
|
||||
s-0.45,0.07-0.67,0.11c0.02-0.98-0.21-1.75-0.69-2.3s-1.17-0.82-2.07-0.82c-0.56,0-1.07,0.13-1.52,0.38
|
||||
c-0.45,0.26-0.81,0.7-1.08,1.32c-0.17,0.41-0.27,1.1-0.31,2.09s-0.06,2.12-0.06,3.4v0.42c0,0.39,0,0.78,0.02,1.19
|
||||
c0.01,0.41,0.03,0.8,0.05,1.19s0.05,0.74,0.08,1.06c0.03,0.32,0.08,0.58,0.14,0.77c0.19,0.58,0.5,1.03,0.94,1.35
|
||||
s1,0.48,1.69,0.48c0.86,0,1.54-0.24,2.05-0.72c0.51-0.48,0.77-1.26,0.77-2.33l1.35,0.26c-0.04,1.35-0.43,2.36-1.16,3.03
|
||||
s-1.74,1.01-3.03,1.01c-0.62,0-1.17-0.08-1.64-0.24s-0.86-0.37-1.17-0.63s-0.56-0.55-0.75-0.88s-0.32-0.68-0.41-1.04
|
||||
c-0.06-0.26-0.12-0.59-0.16-1s-0.07-0.84-0.08-1.32c-0.01-0.47-0.02-0.95-0.03-1.43s-0.02-0.94-0.02-1.36
|
||||
c0-0.58,0-1.16,0.02-1.73c0.01-0.58,0.03-1.12,0.06-1.64s0.08-0.98,0.14-1.4c0.06-0.42,0.14-0.75,0.22-1.01
|
||||
c0.27-0.75,0.72-1.35,1.34-1.8C484.07,120.13,484.94,119.91,486.07,119.91z"/>
|
||||
<path class="st1" d="M491.54,120.13h1.76v-4.3h1.35v4.3h2.32v1.16h-2.32v10.86c0,0.79,0.16,1.39,0.49,1.81
|
||||
c0.32,0.42,0.87,0.62,1.65,0.62h0.35v1.25h-0.6c-2.15,0-3.23-1.17-3.23-3.52v-11.02h-1.76L491.54,120.13L491.54,120.13z"/>
|
||||
<path class="st1" d="M503.44,119.91c1.15,0,2.03,0.22,2.64,0.67c0.61,0.45,1.03,1.02,1.26,1.7c0.1,0.28,0.18,0.65,0.24,1.11
|
||||
c0.05,0.46,0.09,0.96,0.13,1.51s0.05,1.1,0.05,1.67s0,1.1,0,1.59v0.48c0,0.56-0.01,1.12-0.02,1.7
|
||||
c-0.01,0.58-0.05,1.21-0.11,1.89c-0.06,0.75-0.24,1.37-0.52,1.86s-0.63,0.88-1.04,1.17s-0.85,0.49-1.34,0.61
|
||||
c-0.48,0.12-0.95,0.18-1.42,0.18c-1.26,0-2.2-0.26-2.82-0.79c-0.62-0.52-1.04-1.19-1.27-2.01c-0.06-0.26-0.12-0.58-0.16-0.98
|
||||
s-0.07-0.83-0.09-1.3s-0.03-0.95-0.03-1.45c0-0.49,0-0.95,0-1.38c0-0.58,0-1.15,0.02-1.72c0.01-0.57,0.03-1.11,0.06-1.62
|
||||
s0.08-0.98,0.14-1.4c0.06-0.42,0.14-0.75,0.22-1.01c0.27-0.75,0.73-1.35,1.38-1.81C501.41,120.14,502.3,119.91,503.44,119.91z
|
||||
M503.37,121.16c-0.55,0-1.07,0.11-1.58,0.34c-0.5,0.22-0.88,0.66-1.13,1.3c-0.17,0.43-0.27,1.1-0.32,2.01s-0.06,1.96-0.06,3.16
|
||||
v0.8c0,1.03,0.02,1.89,0.05,2.6s0.11,1.25,0.24,1.64c0.19,0.58,0.51,1.02,0.96,1.33c0.45,0.31,1.07,0.47,1.84,0.47
|
||||
c0.69,0,1.29-0.19,1.8-0.58c0.5-0.39,0.84-0.92,1.01-1.61c0.08-0.36,0.14-0.94,0.17-1.73s0.05-1.64,0.05-2.54
|
||||
c0-0.47,0-0.97-0.02-1.51c-0.01-0.53-0.02-1.05-0.03-1.54s-0.04-0.94-0.08-1.33s-0.09-0.7-0.16-0.92
|
||||
c-0.19-0.64-0.53-1.12-1.02-1.43C504.6,121.32,504.02,121.16,503.37,121.16z"/>
|
||||
<path class="st1" d="M516.06,121.51c-0.13-0.02-0.26-0.04-0.39-0.05c-0.14-0.01-0.27-0.02-0.39-0.02
|
||||
c-1.04,0-1.85,0.36-2.43,1.09c-0.58,0.73-0.86,1.77-0.86,3.12v10.18h-1.35v-15.7h1.35v2.15h0.06c0.33-0.83,0.78-1.44,1.35-1.81
|
||||
c0.56-0.38,1.24-0.56,2.04-0.56c0.1,0,0.21,0,0.31,0s0.21,0.01,0.31,0.03L516.06,121.51L516.06,121.51z"/>
|
||||
<path class="st1" d="M521.26,133.65c0.29-1.09,0.57-2.22,0.85-3.39c0.27-1.17,0.54-2.31,0.82-3.42l1.72-6.71h1.38l-4.61,17.63
|
||||
c-0.17,0.68-0.36,1.32-0.56,1.89c-0.23,0.73-0.6,1.33-1.11,1.81s-1.2,0.72-2.05,0.72h-0.47v-1.25h0.38
|
||||
c0.67,0,1.18-0.25,1.54-0.74s0.64-1.18,0.85-2.05c0.1-0.41,0.2-0.81,0.3-1.2c0.09-0.4,0.19-0.8,0.3-1.2
|
||||
c-0.69-2.61-1.37-5.21-2.05-7.79c-0.68-2.59-1.35-5.19-2.02-7.82h1.44l1.63,6.74l1.63,6.78H521.26z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M250.36,148.01c-0.38,0-0.72,0.15-1,0.44c-0.29,0.29-0.43,0.79-0.43,1.48l-0.71-0.12c0.02-0.83,0.22-1.45,0.6-1.85
|
||||
c0.38-0.4,0.9-0.61,1.57-0.61c0.77,0,1.32,0.23,1.65,0.68s0.5,1.05,0.5,1.79c0,0.54-0.05,1-0.15,1.4s-0.25,0.8-0.46,1.21
|
||||
L249,158.5h3.43v0.66h-4.22v-0.67l3.15-6.5c0.17-0.36,0.29-0.71,0.34-1.06c0.05-0.35,0.08-0.72,0.08-1.11
|
||||
c0-0.22-0.02-0.45-0.06-0.67s-0.11-0.41-0.21-0.58s-0.25-0.3-0.43-0.41C250.91,148.06,250.67,148.01,250.36,148.01z"/>
|
||||
<path d="M256.22,153.01c0.12-0.12,0.28-0.23,0.48-0.31s0.4-0.13,0.6-0.13c0.59,0,1.06,0.18,1.41,0.53s0.53,0.85,0.53,1.49v2.65
|
||||
c0,0.35-0.06,0.65-0.17,0.9c-0.11,0.25-0.27,0.46-0.46,0.63s-0.42,0.29-0.67,0.38c-0.26,0.08-0.53,0.13-0.81,0.13
|
||||
c-0.29,0-0.56-0.04-0.81-0.13s-0.48-0.21-0.67-0.38s-0.35-0.38-0.46-0.63s-0.17-0.55-0.17-0.9v-2.17c0-0.37,0.02-0.69,0.07-0.95
|
||||
s0.12-0.51,0.21-0.73l2.22-5.92h0.71c-0.08,0.19-0.18,0.46-0.3,0.8c-0.13,0.34-0.26,0.72-0.41,1.12s-0.3,0.82-0.45,1.23
|
||||
c-0.15,0.42-0.29,0.8-0.42,1.14s-0.23,0.63-0.31,0.86s-0.13,0.36-0.14,0.38L256.22,153.01z M258.54,154.56
|
||||
c0-0.42-0.13-0.74-0.39-0.98c-0.26-0.24-0.6-0.35-1.01-0.35c-0.23,0-0.43,0.05-0.61,0.14c-0.18,0.1-0.33,0.22-0.45,0.37
|
||||
c-0.12,0.15-0.21,0.33-0.27,0.52s-0.09,0.4-0.09,0.6v2.42c0,0.42,0.13,0.74,0.4,0.98c0.27,0.24,0.61,0.35,1.02,0.35
|
||||
s0.75-0.12,1.01-0.35c0.26-0.24,0.39-0.56,0.39-0.98V154.56z"/>
|
||||
<path d="M267.74,148.01c-0.38,0-0.72,0.15-1,0.44c-0.29,0.29-0.43,0.79-0.43,1.48l-0.71-0.12c0.02-0.83,0.22-1.45,0.6-1.85
|
||||
c0.38-0.4,0.9-0.61,1.57-0.61c0.77,0,1.32,0.23,1.65,0.68s0.5,1.05,0.5,1.79c0,0.54-0.05,1-0.15,1.4s-0.25,0.8-0.46,1.21
|
||||
l-2.93,6.07h3.43v0.66h-4.22v-0.67l3.15-6.5c0.17-0.36,0.29-0.71,0.34-1.06c0.05-0.35,0.08-0.72,0.08-1.11
|
||||
c0-0.22-0.02-0.45-0.06-0.67s-0.11-0.41-0.21-0.58s-0.25-0.3-0.43-0.41C268.29,148.06,268.05,148.01,267.74,148.01z"/>
|
||||
<path d="M276.63,151.31c0,0.45-0.09,0.82-0.28,1.11s-0.42,0.52-0.71,0.67c0.28,0.16,0.52,0.38,0.71,0.67s0.28,0.66,0.28,1.09
|
||||
v2.39c0,0.35-0.06,0.65-0.17,0.9c-0.11,0.25-0.27,0.46-0.46,0.63s-0.42,0.29-0.67,0.38s-0.53,0.13-0.81,0.13
|
||||
c-0.29,0-0.56-0.04-0.81-0.13s-0.48-0.21-0.67-0.38s-0.35-0.38-0.46-0.63s-0.17-0.55-0.17-0.9v-2.39c0-0.44,0.09-0.8,0.27-1.09
|
||||
s0.42-0.52,0.71-0.67c-0.3-0.16-0.53-0.38-0.71-0.67s-0.27-0.66-0.27-1.11v-1.92c0-0.34,0.06-0.63,0.17-0.88
|
||||
c0.12-0.25,0.27-0.46,0.46-0.64c0.19-0.17,0.42-0.3,0.67-0.39s0.53-0.13,0.81-0.13s0.56,0.04,0.81,0.13s0.48,0.21,0.67,0.39
|
||||
c0.19,0.17,0.35,0.39,0.46,0.64c0.12,0.25,0.17,0.55,0.17,0.88V151.31z M275.92,149.34c0-0.42-0.13-0.74-0.39-0.98
|
||||
s-0.6-0.35-1.01-0.35s-0.75,0.12-1.02,0.35c-0.27,0.24-0.4,0.56-0.4,0.98v2.05c0,0.42,0.13,0.74,0.4,0.98
|
||||
c0.27,0.24,0.61,0.36,1.02,0.36s0.75-0.12,1.01-0.36s0.39-0.57,0.39-0.98V149.34z M275.92,154.76c0-0.41-0.13-0.73-0.39-0.98
|
||||
s-0.6-0.38-1.01-0.39c-0.41,0-0.75,0.12-1.02,0.37s-0.4,0.58-0.4,1v2.53c0,0.42,0.13,0.74,0.4,0.98
|
||||
c0.27,0.24,0.61,0.35,1.02,0.35s0.75-0.12,1.01-0.35s0.39-0.56,0.39-0.98V154.76z"/>
|
||||
<path d="M289.34,149.49c-0.2,0.57-0.4,1.14-0.61,1.69s-0.42,1.12-0.62,1.69l-1.33,3.57h-0.49c-0.22-0.59-0.44-1.18-0.65-1.77
|
||||
c-0.21-0.58-0.43-1.17-0.65-1.75l-1.2-3.35h-0.07v9.59h-0.71v-11.71h0.72c0.25,0.67,0.5,1.34,0.73,1.99
|
||||
c0.24,0.66,0.47,1.32,0.72,1.99l1.33,3.75h0.05l1.36-3.77c0.03-0.08,0.09-0.22,0.16-0.43c0.08-0.21,0.16-0.44,0.25-0.71
|
||||
c0.09-0.26,0.19-0.55,0.3-0.85s0.21-0.59,0.31-0.85c0.1-0.26,0.18-0.5,0.25-0.71s0.12-0.35,0.16-0.43h0.72v11.71h-0.71v-9.68
|
||||
h-0.02L289.34,149.49L289.34,149.49z"/>
|
||||
<path d="M297.26,159.17l-0.66-3.06h-3.19l-0.66,3.06h-0.67l2.51-11.71h0.81l2.56,11.71H297.26z M294.99,148.52l-0.61,2.93
|
||||
l-0.85,4h2.94l-0.85-4.04l-0.59-2.89H294.99z"/>
|
||||
<path d="M300.15,159.17v-11.71h0.71v11.71H300.15z"/>
|
||||
<path d="M309.67,148.01c-0.38,0-0.72,0.15-1,0.44c-0.29,0.29-0.43,0.79-0.43,1.48l-0.71-0.12c0.02-0.83,0.22-1.45,0.6-1.85
|
||||
c0.38-0.4,0.9-0.61,1.57-0.61c0.77,0,1.32,0.23,1.65,0.68s0.5,1.05,0.5,1.79c0,0.54-0.05,1-0.15,1.4s-0.25,0.8-0.46,1.21
|
||||
l-2.93,6.07h3.43v0.66h-4.22v-0.67l3.15-6.5c0.17-0.36,0.29-0.71,0.34-1.06c0.05-0.35,0.08-0.72,0.08-1.11
|
||||
c0-0.22-0.02-0.45-0.06-0.67s-0.11-0.41-0.21-0.58s-0.25-0.3-0.43-0.41C310.22,148.06,309.98,148.01,309.67,148.01z"/>
|
||||
<path d="M318.55,157.25c0,0.35-0.06,0.65-0.17,0.9c-0.11,0.25-0.27,0.46-0.46,0.63s-0.42,0.29-0.67,0.38
|
||||
c-0.26,0.08-0.53,0.13-0.81,0.13c-0.29,0-0.56-0.04-0.81-0.13c-0.26-0.08-0.48-0.21-0.67-0.38s-0.35-0.38-0.46-0.63
|
||||
s-0.17-0.55-0.17-0.9v-7.86c0-0.34,0.06-0.63,0.17-0.88c0.12-0.25,0.27-0.46,0.46-0.64c0.19-0.17,0.42-0.3,0.67-0.39
|
||||
s0.53-0.13,0.81-0.13c0.3,0,0.57,0.04,0.83,0.13s0.48,0.21,0.67,0.39c0.19,0.17,0.34,0.39,0.45,0.64
|
||||
c0.11,0.25,0.16,0.55,0.16,0.88V157.25z M317.85,149.36c0-0.42-0.13-0.75-0.39-0.99s-0.6-0.36-1.01-0.36s-0.75,0.12-1.02,0.36
|
||||
s-0.4,0.57-0.4,0.99v7.92c0,0.42,0.13,0.75,0.4,0.99s0.61,0.36,1.02,0.36s0.75-0.12,1.01-0.36s0.39-0.57,0.39-0.99V149.36z"/>
|
||||
<path d="M323.24,148.01c-0.38,0-0.72,0.15-1,0.44c-0.29,0.29-0.43,0.79-0.43,1.48l-0.71-0.12c0.02-0.83,0.22-1.45,0.6-1.85
|
||||
c0.38-0.4,0.9-0.61,1.57-0.61c0.77,0,1.32,0.23,1.65,0.68s0.5,1.05,0.5,1.79c0,0.54-0.05,1-0.15,1.4s-0.25,0.8-0.46,1.21
|
||||
l-2.93,6.07h3.43v0.66h-4.22v-0.67l3.15-6.5c0.17-0.36,0.29-0.71,0.34-1.06c0.05-0.35,0.08-0.72,0.08-1.11
|
||||
c0-0.22-0.02-0.45-0.06-0.67s-0.11-0.41-0.21-0.58s-0.25-0.3-0.43-0.41C323.79,148.06,323.55,148.01,323.24,148.01z"/>
|
||||
<path d="M330.06,147.36c0.4,0,0.73,0.05,0.99,0.16c0.26,0.11,0.48,0.26,0.63,0.45c0.16,0.2,0.27,0.43,0.34,0.71
|
||||
c0.07,0.27,0.1,0.57,0.1,0.9v1.55c-0.01,0.2-0.03,0.4-0.06,0.59s-0.08,0.37-0.16,0.55c-0.08,0.17-0.18,0.33-0.31,0.46
|
||||
s-0.31,0.24-0.53,0.32v0.02c0.24,0.09,0.43,0.21,0.58,0.35c0.14,0.15,0.25,0.32,0.32,0.51s0.12,0.41,0.13,0.65
|
||||
c0.02,0.24,0.02,0.48,0.02,0.72v1.73c0,0.71-0.18,1.26-0.54,1.66c-0.36,0.4-0.9,0.6-1.62,0.6c-0.62,0-1.12-0.18-1.51-0.55
|
||||
c-0.39-0.37-0.59-0.95-0.59-1.76l0.71-0.2c0,0.57,0.1,1.02,0.3,1.35s0.57,0.5,1.09,0.5c0.42,0,0.76-0.12,1.03-0.35
|
||||
s0.41-0.64,0.41-1.22v-1.96c0-0.63-0.13-1.07-0.39-1.32s-0.58-0.37-0.98-0.37h-0.44v-0.69h0.48c0.38,0,0.7-0.12,0.95-0.35
|
||||
c0.25-0.23,0.38-0.64,0.38-1.24v-1.67c0-0.42-0.11-0.76-0.33-1.03s-0.58-0.4-1.08-0.4s-0.87,0.17-1.09,0.5
|
||||
c-0.22,0.34-0.34,0.76-0.34,1.28c-0.12-0.02-0.24-0.04-0.35-0.06c-0.12-0.02-0.23-0.04-0.35-0.06c0.01-0.71,0.2-1.28,0.56-1.71
|
||||
C328.79,147.57,329.34,147.36,330.06,147.36z"/>
|
||||
<path d="M338.5,154.69V154h3.84v0.69H338.5z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path class="st1" d="M354.1,147.36c0.47,0,0.88,0.07,1.22,0.2c0.34,0.13,0.62,0.32,0.85,0.56c0.22,0.24,0.39,0.52,0.49,0.85
|
||||
c0.1,0.33,0.16,0.69,0.16,1.08l-1.73,0.45c0-0.43-0.08-0.77-0.24-1.04c-0.16-0.27-0.41-0.4-0.76-0.4
|
||||
c-0.21,0-0.38,0.04-0.51,0.13s-0.23,0.21-0.3,0.35c-0.07,0.14-0.12,0.29-0.15,0.46c-0.03,0.16-0.04,0.32-0.04,0.46v5.95
|
||||
c0,0.11,0.01,0.24,0.03,0.37c0.02,0.13,0.07,0.26,0.14,0.38s0.17,0.22,0.29,0.29c0.12,0.08,0.29,0.12,0.48,0.12
|
||||
c0.65,0,0.98-0.48,0.99-1.45c0.3,0.06,0.59,0.1,0.89,0.14c0.3,0.04,0.59,0.08,0.89,0.13c-0.02,0.89-0.26,1.59-0.71,2.1
|
||||
c-0.45,0.52-1.13,0.77-2.01,0.77c-0.94,0-1.64-0.24-2.09-0.73s-0.67-1.2-0.67-2.15v-5.84c0-0.44,0.05-0.85,0.14-1.24
|
||||
c0.09-0.39,0.25-0.73,0.47-1.02c0.22-0.29,0.51-0.52,0.86-0.69C353.15,147.44,353.58,147.36,354.1,147.36z"/>
|
||||
<path class="st1" d="M359.11,159.17v-11.71h1.77v11.71H359.11z"/>
|
||||
<path class="st1" d="M365.35,152.35v6.81h-1.77v-11.71h1.59l1.38,3.48c0.11,0.29,0.22,0.58,0.33,0.86s0.22,0.57,0.35,0.86
|
||||
l0.58,1.62c0.02,0,0.04,0,0.04-0.01c0.01,0,0.02-0.01,0.04-0.01v-6.8h1.74v11.71h-1.55l-1.38-3.47
|
||||
c-0.22-0.57-0.43-1.13-0.65-1.68c-0.21-0.55-0.42-1.1-0.63-1.67L365.35,152.35L365.35,152.35z"/>
|
||||
<path class="st1" d="M372.27,159.17v-11.71h5.08v1.7h-3.3v3.2h2.88v1.73h-2.88v3.38h3.3v1.7L372.27,159.17L372.27,159.17z
|
||||
M373.5,146.21l2.53-2.04l1.05,1.26l-2.94,1.65L373.5,146.21z"/>
|
||||
<path class="st1" d="M382.83,156.61l-0.82-2.17l-0.7-2.05h-0.08v6.78h-1.77v-11.71h1.73l1.24,3.33l0.9,2.54h0.08l0.92-2.61
|
||||
l1.23-3.26h1.71v11.71h-1.77v-6.75h-0.07l-0.72,2.09l-0.8,2.1H382.83z"/>
|
||||
<path class="st1" d="M394,159.17l-0.44-2.44h-2.1c-0.08,0.4-0.15,0.81-0.22,1.22s-0.14,0.82-0.21,1.22h-1.81
|
||||
c0.38-1.96,0.77-3.92,1.15-5.86s0.77-3.89,1.15-5.86h1.97l2.32,11.71L394,159.17L394,159.17z M392.46,150.17
|
||||
c-0.11,0.81-0.22,1.61-0.34,2.42c-0.12,0.8-0.25,1.62-0.39,2.45h1.56l-0.74-4.86L392.46,150.17L392.46,150.17z"/>
|
||||
<path class="st1" d="M407.64,147.47v8.7c0,1.02-0.22,1.79-0.66,2.31s-1.14,0.78-2.11,0.78s-1.66-0.25-2.1-0.75
|
||||
s-0.66-1.22-0.66-2.16v-8.88h1.77v8.92c0,0.3,0.07,0.58,0.22,0.82s0.4,0.36,0.76,0.36s0.62-0.13,0.77-0.38s0.23-0.56,0.23-0.92
|
||||
v-8.8L407.64,147.47L407.64,147.47z"/>
|
||||
<path class="st1" d="M413.08,149.16v10.01h-1.77v-10.01h-1.84v-1.7h5.46v1.7H413.08z"/>
|
||||
<path class="st1" d="M422.28,156.17c0,1.02-0.22,1.79-0.67,2.31s-1.15,0.78-2.11,0.78s-1.66-0.25-2.1-0.75s-0.66-1.22-0.66-2.16
|
||||
v-5.89c0-0.46,0.05-0.88,0.16-1.26c0.1-0.38,0.26-0.71,0.48-0.98c0.22-0.27,0.5-0.49,0.86-0.64c0.35-0.15,0.78-0.23,1.27-0.23
|
||||
c0.52,0,0.96,0.07,1.32,0.21c0.36,0.14,0.64,0.35,0.85,0.61c0.21,0.27,0.37,0.59,0.46,0.98c0.09,0.38,0.14,0.81,0.14,1.29
|
||||
V156.17z M420.51,150.32c0-0.33-0.07-0.62-0.21-0.88c-0.14-0.26-0.4-0.39-0.78-0.39c-0.21,0-0.38,0.05-0.51,0.14
|
||||
s-0.23,0.21-0.3,0.35c-0.07,0.14-0.12,0.3-0.15,0.47s-0.04,0.33-0.04,0.48v5.89c0,0.3,0.07,0.58,0.22,0.82s0.4,0.36,0.76,0.36
|
||||
c0.36,0,0.62-0.13,0.77-0.38s0.23-0.56,0.23-0.92L420.51,150.32L420.51,150.32z"/>
|
||||
<path class="st1" d="M427.42,147.46c1.05,0,1.82,0.28,2.31,0.84s0.73,1.46,0.73,2.71c0,0.55-0.05,1.05-0.15,1.5
|
||||
s-0.27,0.83-0.51,1.15c-0.24,0.32-0.56,0.57-0.94,0.75s-0.88,0.27-1.47,0.27h-0.72v4.49h-1.77v-11.71H427.42z M426.67,149.16
|
||||
v3.79h0.62c0.55,0,0.93-0.16,1.14-0.48c0.21-0.32,0.32-0.8,0.32-1.45c0-0.57-0.1-1.03-0.3-1.36c-0.2-0.33-0.58-0.5-1.12-0.5
|
||||
H426.67z"/>
|
||||
<path class="st1" d="M432.68,159.17v-11.71h1.77v11.71H432.68z"/>
|
||||
<path class="st1" d="M441.31,159.17l-0.44-2.44h-2.1c-0.08,0.4-0.15,0.81-0.22,1.22s-0.14,0.82-0.21,1.22h-1.81
|
||||
c0.38-1.96,0.77-3.92,1.15-5.86s0.77-3.89,1.15-5.86h1.97l2.32,11.71L441.31,159.17L441.31,159.17z M439.76,150.17
|
||||
c-0.11,0.81-0.22,1.61-0.34,2.42c-0.12,0.8-0.25,1.62-0.39,2.45h1.56l-0.74-4.86L439.76,150.17L439.76,150.17z"/>
|
||||
<path class="st1" d="M453.63,153.04c0.5,0.17,0.85,0.49,1.04,0.96s0.28,1.01,0.28,1.62c0,1.22-0.25,2.12-0.76,2.69
|
||||
s-1.29,0.86-2.34,0.86h-2.37v-11.71h2.5c1.01,0,1.74,0.27,2.19,0.82c0.46,0.54,0.68,1.33,0.68,2.36c0,0.54-0.09,1.01-0.27,1.41
|
||||
c-0.18,0.4-0.5,0.71-0.95,0.91V153.04z M453.15,150.67c0-0.54-0.1-0.92-0.31-1.16s-0.55-0.35-1.04-0.35h-0.56v3.03h0.58
|
||||
c0.46,0,0.8-0.13,1.01-0.39S453.15,151.17,453.15,150.67z M453.25,155.47c0-0.55-0.1-0.96-0.29-1.23
|
||||
c-0.2-0.27-0.54-0.4-1.04-0.4h-0.67v3.63h0.71c0.29,0,0.51-0.05,0.68-0.16c0.17-0.11,0.3-0.25,0.39-0.43
|
||||
c0.09-0.18,0.15-0.39,0.18-0.64S453.25,155.74,453.25,155.47z"/>
|
||||
<path class="st1" d="M462.96,156.17c0,1.02-0.22,1.79-0.67,2.31s-1.15,0.78-2.11,0.78s-1.66-0.25-2.1-0.75s-0.66-1.22-0.66-2.16
|
||||
v-5.89c0-0.46,0.05-0.88,0.16-1.26c0.1-0.38,0.26-0.71,0.48-0.98c0.22-0.27,0.5-0.49,0.86-0.64c0.35-0.15,0.78-0.23,1.27-0.23
|
||||
c0.52,0,0.96,0.07,1.32,0.21c0.36,0.14,0.64,0.35,0.85,0.61c0.21,0.27,0.37,0.59,0.46,0.98c0.09,0.38,0.14,0.81,0.14,1.29
|
||||
V156.17z M461.19,150.32c0-0.33-0.07-0.62-0.21-0.88c-0.14-0.26-0.4-0.39-0.78-0.39c-0.21,0-0.38,0.05-0.51,0.14
|
||||
s-0.23,0.21-0.3,0.35c-0.07,0.14-0.12,0.3-0.15,0.47s-0.04,0.33-0.04,0.48v5.89c0,0.3,0.07,0.58,0.22,0.82s0.4,0.36,0.76,0.36
|
||||
c0.36,0,0.62-0.13,0.77-0.38s0.23-0.56,0.23-0.92L461.19,150.32L461.19,150.32z"/>
|
||||
<path class="st1" d="M468.18,147.46c0.93,0,1.66,0.27,2.19,0.8s0.79,1.4,0.79,2.6c0,0.74-0.1,1.37-0.3,1.88
|
||||
c-0.2,0.51-0.56,0.91-1.08,1.2l1.69,5.23h-1.81l-1.48-4.85h-0.84v4.85h-1.77v-11.71H468.18z M467.35,149.16v3.43h0.72
|
||||
c0.46,0,0.8-0.14,1.02-0.41c0.22-0.28,0.33-0.72,0.33-1.32c0-0.54-0.11-0.96-0.32-1.25c-0.21-0.3-0.57-0.45-1.06-0.45
|
||||
L467.35,149.16L467.35,149.16z"/>
|
||||
<path class="st1" d="M476.46,147.46c0.68,0,1.21,0.12,1.61,0.36c0.39,0.24,0.67,0.65,0.82,1.22c0.12,0.42,0.18,0.98,0.19,1.71
|
||||
s0.01,1.57,0.01,2.55c0,0.97-0.01,1.79-0.02,2.49c-0.01,0.7-0.08,1.25-0.21,1.65c-0.21,0.66-0.54,1.12-0.99,1.36
|
||||
s-0.97,0.37-1.55,0.37h-2.69v-11.71H476.46z M477.3,150.53c0-0.43-0.08-0.76-0.24-1s-0.46-0.36-0.91-0.36h-0.76v8.31h0.76
|
||||
c0.44,0,0.74-0.12,0.9-0.36s0.25-0.58,0.25-1.03V150.53z"/>
|
||||
<path class="st1" d="M481.75,159.17v-11.71h5.08v1.7h-3.3v3.2h2.88v1.73h-2.88v3.38h3.3v1.7L481.75,159.17L481.75,159.17z"/>
|
||||
<path class="st1" d="M491.6,147.46c0.93,0,1.66,0.27,2.19,0.8s0.79,1.4,0.79,2.6c0,0.74-0.1,1.37-0.3,1.88
|
||||
c-0.2,0.51-0.56,0.91-1.08,1.2l1.69,5.23h-1.81l-1.48-4.85h-0.84v4.85h-1.77v-11.71H491.6z M490.76,149.16v3.43h0.72
|
||||
c0.46,0,0.8-0.14,1.02-0.41c0.22-0.28,0.33-0.72,0.33-1.32c0-0.54-0.11-0.96-0.32-1.25c-0.21-0.3-0.57-0.45-1.06-0.45
|
||||
L490.76,149.16L490.76,149.16z"/>
|
||||
<path class="st1" d="M502.47,156.17c0,1.02-0.22,1.79-0.67,2.31s-1.15,0.78-2.11,0.78s-1.66-0.25-2.1-0.75s-0.66-1.22-0.66-2.16
|
||||
v-5.89c0-0.46,0.05-0.88,0.16-1.26c0.1-0.38,0.26-0.71,0.48-0.98c0.22-0.27,0.5-0.49,0.86-0.64c0.35-0.15,0.78-0.23,1.27-0.23
|
||||
c0.52,0,0.96,0.07,1.32,0.21c0.36,0.14,0.64,0.35,0.85,0.61c0.21,0.27,0.37,0.59,0.46,0.98c0.09,0.38,0.14,0.81,0.14,1.29
|
||||
V156.17z M500.7,150.32c0-0.33-0.07-0.62-0.21-0.88c-0.14-0.26-0.4-0.39-0.78-0.39c-0.21,0-0.38,0.05-0.51,0.14
|
||||
s-0.23,0.21-0.3,0.35c-0.07,0.14-0.12,0.3-0.15,0.47s-0.04,0.33-0.04,0.48v5.89c0,0.3,0.07,0.58,0.22,0.82s0.4,0.36,0.76,0.36
|
||||
c0.36,0,0.62-0.13,0.77-0.38s0.23-0.56,0.23-0.92L500.7,150.32L500.7,150.32z"/>
|
||||
<path class="st1" d="M510.56,147.47v8.7c0,1.02-0.22,1.79-0.66,2.31s-1.14,0.78-2.11,0.78s-1.66-0.25-2.1-0.75
|
||||
s-0.66-1.22-0.66-2.16v-8.88h1.77v8.92c0,0.3,0.07,0.58,0.22,0.82s0.4,0.36,0.76,0.36s0.62-0.13,0.77-0.38s0.23-0.56,0.23-0.92
|
||||
v-8.8L510.56,147.47L510.56,147.47z"/>
|
||||
<path class="st1" d="M515.93,159.27c-0.94,0-1.64-0.24-2.09-0.73s-0.67-1.2-0.67-2.15v-5.84c0-0.44,0.05-0.85,0.15-1.24
|
||||
c0.1-0.39,0.26-0.73,0.49-1.02s0.51-0.52,0.86-0.69s0.78-0.25,1.28-0.25c0.93,0,1.62,0.24,2.05,0.73
|
||||
c0.44,0.49,0.66,1.13,0.66,1.92v0.13l-1.74,0.35c0-0.43-0.08-0.77-0.23-1.04c-0.16-0.27-0.41-0.4-0.75-0.4
|
||||
c-0.21,0-0.37,0.04-0.5,0.13c-0.13,0.09-0.23,0.21-0.3,0.35s-0.12,0.29-0.15,0.46c-0.03,0.16-0.04,0.32-0.04,0.46v5.95
|
||||
c0,0.12,0.02,0.24,0.05,0.35c0.03,0.2,0.11,0.39,0.23,0.56s0.34,0.25,0.65,0.25s0.56-0.08,0.75-0.25s0.28-0.4,0.28-0.69v-2.3
|
||||
h-1.04v-1.58h2.81v3.74c0,0.92-0.25,1.62-0.76,2.09C517.41,159.03,516.75,159.27,515.93,159.27z"/>
|
||||
<path class="st1" d="M521.19,159.17v-11.71h5.08v1.7h-3.3v3.2h2.88v1.73h-2.88v3.38h3.3v1.7L521.19,159.17L521.19,159.17z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M263.69,50.5v54.08H251V50.5h-9.98V38.08h32.65V50.5H263.69z"/>
|
||||
<path d="M299.8,104.58V77.06h-8.12v27.52h-12.69v-66.5h12.69v26.37h8.12V38.08h12.69v66.5H299.8z"/>
|
||||
<path d="M354.1,84.99c0,3.06-0.27,5.83-0.79,8.31c-0.53,2.48-1.43,4.6-2.71,6.35s-3,3.11-5.18,4.06
|
||||
c-2.18,0.96-4.91,1.43-8.21,1.43c-2.99,0-5.55-0.45-7.7-1.35c-2.15-0.9-3.89-2.13-5.22-3.71c-1.34-1.57-2.32-3.4-2.94-5.48
|
||||
s-0.93-4.3-0.93-6.66l12.78-2.48c0.12,2.42,0.48,4.24,1.06,5.45s1.67,1.82,3.28,1.82c0.92,0,1.64-0.22,2.17-0.67
|
||||
c0.52-0.44,0.92-1.02,1.2-1.72c0.28-0.7,0.46-1.53,0.55-2.48c0.09-0.95,0.14-1.91,0.14-2.86c0-1.33-0.09-2.45-0.28-3.34
|
||||
s-0.51-1.65-0.98-2.29s-1.1-1.19-1.91-1.67c-0.81-0.48-1.8-0.97-2.99-1.48c-3.17-1.33-5.72-2.72-7.65-4.15s-3.41-2.96-4.43-4.58
|
||||
c-1.03-1.62-1.7-3.34-2.01-5.15c-0.31-1.81-0.47-3.8-0.47-5.96c0-2.73,0.31-5.26,0.93-7.58s1.6-4.31,2.94-5.96
|
||||
c1.34-1.65,3.08-2.96,5.22-3.91c2.15-0.95,4.74-1.43,7.79-1.43c3.23,0,5.91,0.53,8.02,1.58c2.11,1.05,3.78,2.39,4.99,4.01
|
||||
s2.07,3.43,2.57,5.4c0.5,1.98,0.75,3.89,0.75,5.73L341.6,57c0-0.96-0.05-1.85-0.14-2.68c-0.09-0.83-0.29-1.58-0.6-2.25
|
||||
s-0.72-1.19-1.24-1.58c-0.52-0.38-1.25-0.57-2.17-0.57c-0.86,0-1.54,0.21-2.03,0.62s-0.88,0.92-1.15,1.53
|
||||
c-0.28,0.61-0.46,1.29-0.55,2.05s-0.14,1.5-0.14,2.2c0,0.89,0.06,1.69,0.18,2.39s0.43,1.37,0.93,2.01s1.22,1.26,2.18,1.86
|
||||
c0.96,0.61,2.31,1.26,4.04,1.96c2.97,1.21,5.32,2.48,7.06,3.82c1.73,1.34,3.05,2.8,3.95,4.4c0.9,1.59,1.49,3.39,1.76,5.4
|
||||
S354.1,82.45,354.1,84.99z"/>
|
||||
<path d="M374.34,50.5v14.14h14.93v12.42h-14.93v27.52h-12.69v-66.5h29.76V50.5H374.34z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M364.78,329.98l24.81-24.81l-38.03-38.03c-4.02-4.02-8.44-7.66-13.14-10.84c-4.75-3.21-9.83-5.97-15.1-8.2
|
||||
c-5.37-2.27-10.99-4.02-16.7-5.19c-11.71-2.4-24.07-2.4-35.78,0c-5.71,1.17-11.33,2.91-16.7,5.19c-5.27,2.23-10.35,4.99-15.1,8.2
|
||||
c-4.7,3.18-9.12,6.82-13.14,10.84s-7.66,8.44-10.84,13.14c-3.21,4.75-5.97,9.83-8.2,15.1c-2.27,5.37-4.02,10.99-5.19,16.7
|
||||
c-1.2,5.85-1.81,11.87-1.81,17.89c0,0.01,0,0.01,0,0.02c0,4.92,0.55,9.72,1.6,14.35c1.05,4.64,2.59,9.12,4.58,13.39
|
||||
c1.99,4.27,4.42,8.32,7.25,12.11c2.82,3.79,6.04,7.33,9.6,10.56c3.56,3.23,7.45,6.15,11.63,8.71c4.18,2.56,8.65,4.77,13.35,6.58
|
||||
s9.64,3.21,14.75,4.16c5.12,0.95,10.41,1.45,15.84,1.45c5.92,0,11.7-0.48,17.29-1.38s10.97-2.24,16.1-3.96s10.01-3.82,14.57-6.26
|
||||
s8.81-5.22,12.69-8.29l113.32-89.46c-0.56,0.51,0.53-0.54,0,0c2.44-2.44,5.12-4.65,7.97-6.58c2.88-1.94,5.95-3.61,9.13-4.96
|
||||
c3.24-1.37,6.63-2.42,10.07-3.13c7.09-1.45,14.63-1.45,21.71,0c3.44,0.7,6.83,1.76,10.07,3.13c3.18,1.35,6.25,3.01,9.13,4.96
|
||||
c2.85,1.93,5.53,4.14,7.97,6.58c2.44,2.44,4.65,5.12,6.58,7.97c1.94,2.87,3.61,5.95,4.96,9.13c1.37,3.24,2.42,6.63,3.13,10.07
|
||||
c0.72,3.54,1.09,7.2,1.09,10.86c0,3.66-0.37,7.31-1.09,10.86c-0.71,3.45-1.76,6.83-3.13,10.07c-1.35,3.18-3.01,6.26-4.96,9.13
|
||||
c-1.93,2.85-4.14,5.53-6.58,7.97s-5.12,4.65-7.97,6.58c-2.87,1.94-5.95,3.61-9.13,4.96c-3.24,1.37-6.63,2.42-10.07,3.13
|
||||
c-7.09,1.45-14.62,1.45-21.71,0c-3.44-0.7-6.83-1.76-10.07-3.13c-3.18-1.35-6.25-3.01-9.13-4.95c-2.85-1.93-5.53-4.14-7.97-6.58
|
||||
l-38.03-38.03l0,0l-24.81,24.81l0,0l38.03,38.03c4.02,4.02,8.44,7.66,13.14,10.84c4.75,3.21,9.83,5.97,15.1,8.2
|
||||
c5.37,2.27,10.99,4.02,16.7,5.19c5.85,1.2,11.87,1.81,17.89,1.81s12.04-0.61,17.89-1.81c5.71-1.17,11.33-2.91,16.7-5.19
|
||||
c5.27-2.23,10.35-4.99,15.1-8.2c4.7-3.18,9.12-6.82,13.14-10.84s7.66-8.44,10.84-13.14c3.21-4.75,5.97-9.83,8.2-15.1
|
||||
c2.27-5.37,4.02-10.99,5.19-16.7c1.2-5.85,1.8-11.87,1.8-17.89l0,0c0-4.92-0.55-9.73-1.6-14.37c-1.05-4.64-2.59-9.12-4.58-13.39
|
||||
c-1.99-4.27-4.42-8.32-7.25-12.11c-2.82-3.79-6.04-7.33-9.6-10.56s-7.45-6.15-11.63-8.71s-8.65-4.77-13.35-6.58
|
||||
c-4.7-1.8-9.64-3.21-14.75-4.16c-5.12-0.95-10.41-1.45-15.84-1.45c-5.92,0-11.7,0.47-17.29,1.38c-5.58,0.9-10.97,2.24-16.1,3.96
|
||||
s-10.01,3.82-14.57,6.26s-8.81,5.22-12.69,8.29l-113.32,89.46c-1.98,1.82-5.75,5.07-7.97,6.58c-2.87,1.94-5.95,3.61-9.13,4.96
|
||||
c-3.24,1.37-6.63,2.42-10.07,3.13c-7.09,1.45-14.62,1.45-21.71,0c-3.44-0.71-6.83-1.76-10.07-3.13c-3.18-1.35-6.25-3.01-9.13-4.96
|
||||
c-2.85-1.93-5.53-4.14-7.97-6.58c-2.44-2.44-4.65-5.12-6.58-7.97c-1.94-2.87-3.61-5.95-4.96-9.13c-1.37-3.24-2.42-6.63-3.13-10.07
|
||||
c-0.73-3.54-1.09-7.2-1.09-10.86c0-3.66,0.37-7.31,1.09-10.86c0.7-3.44,1.76-6.83,3.13-10.07c1.35-3.18,3.01-6.25,4.95-9.13
|
||||
c1.93-2.85,4.14-5.53,6.58-7.97s5.12-4.65,7.97-6.58c2.88-1.94,5.95-3.61,9.13-4.96c3.24-1.37,6.63-2.42,10.07-3.13
|
||||
c3.54-0.73,7.2-1.09,10.86-1.09c3.66,0,7.31,0.37,10.86,1.09c3.44,0.7,6.83,1.76,10.07,3.13c3.18,1.35,6.25,3.01,9.13,4.96
|
||||
c2.85,1.93,5.53,4.14,7.97,6.58L364.78,329.98L364.78,329.98z"/>
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="604.435" y1="427.5899" x2="392.7685" y2="639.2565" gradientTransform="matrix(1 0 0 1 0 -230)">
|
||||
<stop offset="0.1074" style="stop-color:#E5006D"/>
|
||||
<stop offset="1" style="stop-color:#000000"/>
|
||||
</linearGradient>
|
||||
<path class="st2" d="M452.77,270.26c4.56-2.44,9.44-4.54,14.57-6.26s10.52-3.05,16.1-3.96c5.58-0.9,11.36-1.38,17.29-1.38
|
||||
c5.43,0,10.72,0.5,15.84,1.45s10.05,2.35,14.75,4.16c4.7,1.8,9.17,4.01,13.35,6.58c4.18,2.56,8.08,5.48,11.63,8.71
|
||||
c3.56,3.23,6.77,6.76,9.6,10.56c2.82,3.79,5.26,7.85,7.25,12.11c1.99,4.27,3.53,8.74,4.58,13.39c1.05,4.64,1.6,9.45,1.6,14.37
|
||||
c0-6.02-0.61-12.04-1.8-17.89c-1.17-5.71-2.91-11.33-5.19-16.7c-2.23-5.27-4.99-10.35-8.2-15.1
|
||||
c-3.18-4.7-6.82-9.12-10.84-13.14c-4.02-4.02-8.44-7.66-13.14-10.84c-4.75-3.21-9.83-5.97-15.1-8.2
|
||||
c-5.37-2.27-10.99-4.02-16.7-5.19c-5.85-1.2-11.87-1.81-17.89-1.81c-6.02,0-12.04,0.61-17.89,1.81
|
||||
c-5.71,1.17-11.33,2.91-16.7,5.19c-5.27,2.23-10.35,4.98-15.1,8.2c-4.7,3.18-9.12,6.82-13.14,10.84l-38.03,38.03L364.8,330
|
||||
l-38.03,38.03c-0.54,0.54-1.09,1.05-1.64,1.57l114.97-91.03C443.95,275.48,448.2,272.7,452.77,270.26z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
|
||||
<linearGradient id="SVGID_00000049196946087679940990000002865169276270721946_" gradientUnits="userSpaceOnUse" x1="631.6329" y1="-164.8441" x2="419.9663" y2="46.8224" gradientTransform="matrix(-1 0 0 -1 806.3674 297.5265)">
|
||||
<stop offset="0.1074" style="stop-color:#E5006D"/>
|
||||
<stop offset="1" style="stop-color:#000000"/>
|
||||
</linearGradient>
|
||||
<path style="fill:url(#SVGID_00000049196946087679940990000002865169276270721946_);" d="M326.4,389.7
|
||||
c-4.56,2.44-9.44,4.54-14.57,6.26s-10.52,3.05-16.1,3.96c-5.58,0.9-11.36,1.38-17.29,1.38c-5.43,0-10.72-0.5-15.84-1.45
|
||||
s-10.05-2.35-14.75-4.16c-4.7-1.8-9.17-4.01-13.35-6.58c-4.18-2.56-8.08-5.48-11.63-8.71c-3.56-3.23-6.77-6.76-9.6-10.56
|
||||
c-2.82-3.79-5.26-7.85-7.25-12.11c-1.99-4.27-3.53-8.74-4.58-13.39c-1.05-4.64-1.6-9.45-1.6-14.37c0,6.02,0.61,12.04,1.8,17.89
|
||||
c1.17,5.71,2.91,11.33,5.19,16.7c2.23,5.27,4.99,10.35,8.2,15.1c3.18,4.7,6.82,9.12,10.84,13.14
|
||||
c4.02,4.02,8.44,7.66,13.14,10.84c4.75,3.21,9.83,5.97,15.1,8.2c5.37,2.27,10.99,4.02,16.7,5.19c5.85,1.2,11.87,1.81,17.89,1.81
|
||||
s12.04-0.61,17.89-1.81c5.71-1.17,11.33-2.91,16.7-5.19c5.27-2.23,10.35-4.98,15.1-8.2c4.7-3.18,9.12-6.82,13.14-10.84
|
||||
l38.03-38.03l24.81-24.81l38.03-38.03c0.54-0.54,1.09-1.05,1.64-1.57l-114.97,91.03C335.21,384.48,330.96,387.26,326.4,389.7z"
|
||||
/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M411.61,538.22c1.81-2.21,4.52-3.65,7.6-3.65c3.08,0,5.79,1.44,7.6,3.65c-2.33,1-4.9,1.56-7.6,1.56
|
||||
C416.51,539.77,413.94,539.22,411.61,538.22z M409.47,537.12l3.07-4.86c1.73-2.73,1.17-6.32-1.29-8.4l-4.02-3.39h5.66
|
||||
c3.24,0,6.14-2.42,6.31-5.66c0.18-3.45-2.56-6.3-5.97-6.3h-9.16l0,0c-0.91,1.16-1.67,2.43-2.32,3.76
|
||||
c-0.06,0.13-0.12,0.25-0.18,0.38c-0.14,0.31-0.26,0.63-0.39,0.96c-0.09,0.24-0.18,0.47-0.26,0.71c-0.1,0.29-0.19,0.58-0.27,0.87
|
||||
c-0.08,0.3-0.16,0.59-0.23,0.9c-0.06,0.26-0.12,0.53-0.17,0.79c-0.07,0.37-0.12,0.74-0.17,1.12c-0.03,0.22-0.06,0.43-0.08,0.65
|
||||
c-0.06,0.6-0.09,1.21-0.09,1.83C399.9,527.57,403.75,533.77,409.47,537.12z M423.85,522.68c0,2.49,2.02,4.52,4.52,4.52h1.61v6.74
|
||||
c0,0.78,0.21,1.5,0.56,2.14c4.83-3.51,7.98-9.19,7.98-15.61c0-0.78-0.06-1.54-0.15-2.3h-10
|
||||
C425.87,518.17,423.85,520.19,423.85,522.68z M427.58,516.43h2.78h7.73c-0.73-3.44-2.39-6.54-4.69-9.03h-5.82
|
||||
c-2.49,0-4.52,2.02-4.52,4.52S425.08,516.43,427.58,516.43z M430.48,504.81c-3.17-2.29-7.06-3.66-11.28-3.66s-8.1,1.37-11.28,3.66
|
||||
H430.48z"/>
|
||||
<g>
|
||||
<path d="M480.41,519.99l-1.17-2.83l-1.17-2.83l-1.17-2.83l-1.17-2.83l0,0c-0.14-0.33-0.34-0.63-0.59-0.88s-0.55-0.45-0.88-0.59
|
||||
c-0.33-0.14-0.69-0.22-1.07-0.22h-1.6h-1.6h-1.6h-1.6c-0.38,0-0.74,0.08-1.07,0.22c-0.33,0.14-0.63,0.34-0.88,0.59
|
||||
s-0.45,0.55-0.59,0.88l0,0l-1.17,2.83l-1.17,2.83l-1.17,2.83l-1.17,2.83c-0.05,0.12-0.07,0.24-0.07,0.36s0.03,0.24,0.07,0.35
|
||||
c0.05,0.11,0.11,0.21,0.19,0.3c0.08,0.08,0.19,0.15,0.3,0.2l0.2,0.08l0.2,0.08l0.2,0.08l0.2,0.08c0.12,0.05,0.24,0.07,0.36,0.07
|
||||
s0.24-0.03,0.35-0.07c0.11-0.05,0.21-0.11,0.3-0.2c0.09-0.08,0.16-0.19,0.2-0.3l1.17-2.83l1.17-2.83l1.07-2.59
|
||||
c0.22,0.12,0.43,0.26,0.61,0.43c0.22,0.22,0.4,0.48,0.52,0.78c0.11,0.26,0.17,0.54,0.18,0.84v3.43l-4.11,22.88h2.93l4.38-17.47
|
||||
l4.38,17.47h2.93l-4.11-22.88v-3.43c0.01-0.3,0.07-0.58,0.18-0.84c0.12-0.29,0.3-0.55,0.52-0.78c0.18-0.18,0.39-0.32,0.61-0.43
|
||||
l1.07,2.59l1.17,2.83l1.17,2.83c0.05,0.12,0.12,0.22,0.2,0.3c0.09,0.08,0.19,0.15,0.3,0.2s0.23,0.07,0.35,0.07
|
||||
s0.24-0.02,0.36-0.07l0.2-0.08l0.2-0.08l0.2-0.08l0.2-0.08c0.12-0.05,0.22-0.12,0.3-0.2c0.08-0.09,0.15-0.19,0.2-0.3
|
||||
c0.04-0.11,0.07-0.23,0.07-0.35C480.48,520.23,480.46,520.11,480.41,519.99z"/>
|
||||
<path d="M470.06,505.61c2.29,0,4.15-1.86,4.15-4.15s-1.86-4.15-4.15-4.15s-4.15,1.86-4.15,4.15
|
||||
C465.9,503.75,467.76,505.61,470.06,505.61z"/>
|
||||
</g>
|
||||
<path d="M261.64,503.71v-0.75c0-1.65-1.35-2.99-2.99-2.99h-3.99c-1.65,0-2.99,1.35-2.99,2.99v0.75c-1.65,0-2.99,1.35-2.99,2.99
|
||||
v31.4c0,1.65,1.35,2.99,2.99,2.99h9.98c1.65,0,2.99-1.35,2.99-2.99v-31.4C264.63,505.05,263.29,503.71,261.64,503.71z
|
||||
M261.99,536.57c0,1.1-0.9,2-2,2h-6.67c-1.1,0-2-0.9-2-2v-7.25h10.67V536.57z M261.21,510.99c-0.25,0.25-0.6,0.41-0.99,0.41h-2.17
|
||||
v2.18c0,0.39-0.16,0.74-0.41,0.99s-0.6,0.41-0.99,0.41c-0.39,0-0.74-0.16-0.99-0.41s-0.41-0.61-0.41-0.99v-2.18h-2.18
|
||||
c-0.39,0-0.74-0.16-0.99-0.41s-0.41-0.6-0.41-0.99c0-0.39,0.16-0.74,0.41-0.99s0.6-0.41,0.99-0.41h2.18v-2.17
|
||||
c0-0.39,0.16-0.74,0.41-0.99s0.6-0.41,0.99-0.41s0.74,0.16,0.99,0.41s0.41,0.61,0.41,0.99v2.17h2.17c0.39,0,0.74,0.16,0.99,0.41
|
||||
s0.41,0.6,0.41,0.99S261.47,510.74,261.21,510.99z M259.91,532.52c0.25,0.25,0.41,0.61,0.41,0.99s-0.16,0.74-0.41,0.99
|
||||
s-0.6,0.41-0.99,0.41h-2.27h-2.27c-0.39,0-0.74-0.16-0.99-0.41s-0.41-0.6-0.41-0.99s0.16-0.74,0.41-0.99s0.6-0.41,0.99-0.41h2.27
|
||||
h2.27C259.31,532.11,259.66,532.27,259.91,532.52z"/>
|
||||
<g>
|
||||
<path d="M298.48,505.8c2.29,0,4.15-1.86,4.15-4.15s-1.86-4.15-4.15-4.15s-4.15,1.86-4.15,4.15
|
||||
C294.32,503.94,296.18,505.8,298.48,505.8z"/>
|
||||
<path d="M308.91,519.83c0,0-0.44-1.06-0.78-1.89l0,0c-0.21-0.52-0.39-0.94-0.39-0.94l-1.17-2.83l-1.17-2.83l-1.17-2.83l0,0
|
||||
c-0.14-0.33-0.34-0.63-0.59-0.88s-0.55-0.45-0.88-0.59c-0.33-0.14-0.69-0.22-1.07-0.22h-1.6h-1.6h-1.6h-1.6
|
||||
c-0.38,0-0.74,0.08-1.07,0.22c-0.33,0.14-0.63,0.34-0.88,0.59s-0.45,0.55-0.59,0.88l0,0l-1.17,2.83l-1.17,2.83l-1.17,2.83
|
||||
l-1.17,2.83c-0.05,0.12-0.07,0.24-0.07,0.36s0.03,0.24,0.07,0.35s0.11,0.21,0.2,0.3c0.08,0.08,0.19,0.15,0.3,0.2l0.2,0.08
|
||||
l0.2,0.08l0.2,0.08l0.2,0.08c0.12,0.05,0.24,0.07,0.36,0.07s0.24-0.03,0.35-0.07c0.11-0.05,0.21-0.11,0.3-0.2
|
||||
c0.09-0.08,0.16-0.19,0.2-0.3l1.17-2.83l1.17-2.83l1.17-2.83l0.04-0.1c0.28,0.14,0.54,0.31,0.75,0.52
|
||||
c0.25,0.25,0.46,0.55,0.6,0.88s0.22,0.69,0.22,1.08v1.84l-2.83,10.13c-0.28,0.89,0.11,1.62,0.89,1.62h1.88l1.41,12.62h2.93
|
||||
l1.41-12.62h1.91c0.77,0,1.17-0.73,0.89-1.62l-2.86-10.13v-1.84c0-0.38,0.08-0.74,0.22-1.08c0.14-0.33,0.34-0.63,0.6-0.88
|
||||
c0.22-0.22,0.47-0.39,0.75-0.52l0.04,0.1l1.17,2.83l1.17,2.83l1.17,2.83c0.05,0.12,0.12,0.22,0.2,0.3
|
||||
c0.09,0.08,0.19,0.15,0.3,0.2s0.23,0.07,0.35,0.07s0.24-0.02,0.36-0.07l0.2-0.08l0.2-0.08l0.2-0.08l0.2-0.08
|
||||
c0.12-0.05,0.22-0.12,0.3-0.2c0.08-0.09,0.15-0.19,0.2-0.3c0.05-0.11,0.07-0.23,0.07-0.35
|
||||
C308.98,520.06,308.96,519.94,308.91,519.83z"/>
|
||||
</g>
|
||||
<path d="M501.08,524.93c0.38-0.38,0.92-0.62,1.5-0.62h23.71c0.15,0,0.29,0.01,0.43,0.04c0.97,0.2,1.7,1.05,1.7,2.08l0,0
|
||||
c0,1.03-0.73,1.88-1.7,2.08c-0.14,0.03-0.28,0.04-0.43,0.04v5.17l-23.71,2.75v-7.92c-0.59,0-1.12-0.24-1.5-0.62
|
||||
c-0.19-0.19-0.35-0.42-0.46-0.68c-0.05-0.13-0.1-0.26-0.12-0.4c-0.03-0.14-0.04-0.28-0.04-0.43l0,0
|
||||
C500.46,525.85,500.7,525.31,501.08,524.93z M528.42,514.26c0-1.03-0.73-1.88-1.7-2.08c-0.14-0.03-0.28-0.04-0.43-0.04h-23.71
|
||||
c-0.88,0-1.64,0.54-1.96,1.3c-0.11,0.25-0.17,0.53-0.17,0.83c0,1.17,0.95,2.12,2.12,2.12v7.92l23.71-2.75v-5.17
|
||||
c0.15,0,0.29-0.01,0.43-0.04C527.69,516.14,528.42,515.29,528.42,514.26z M500.62,537.78c-0.11,0.25-0.17,0.53-0.17,0.83
|
||||
c0,0.29,0.06,0.57,0.17,0.83c0.32,0.76,1.08,1.3,1.96,1.3h23.71c0.15,0,0.29-0.01,0.43-0.04c0.97-0.2,1.7-1.05,1.7-2.08
|
||||
s-0.73-1.88-1.7-2.08c-0.14-0.03-0.28-0.04-0.43-0.04h-23.71C501.7,536.48,500.95,537.01,500.62,537.78z M526.29,504.21
|
||||
c0.15,0,0.29-0.01,0.43-0.04c0.97-0.2,1.7-1.05,1.7-2.08s-0.73-1.88-1.7-2.08c-0.14-0.03-0.28-0.04-0.43-0.04h-23.71
|
||||
c-0.88,0-1.64,0.54-1.96,1.3c-0.11,0.25-0.17,0.53-0.17,0.83s0.06,0.57,0.17,0.83c0.32,0.76,1.08,1.3,1.96,1.3v7.92l23.71-2.75
|
||||
V504.21z"/>
|
||||
<path d="M359.68,535.12h4.63v2.27H343.9v-2.27h4.63v-3.96h11.15V535.12z M354.26,515.8c-0.82,0-1.49,0.67-1.49,1.49
|
||||
s0.67,1.49,1.49,1.49c0.82,0,1.49-0.67,1.49-1.49C355.76,516.47,355.09,515.8,354.26,515.8z M374.51,505.68v23.22h-40.5v-23.22
|
||||
L374.51,505.68L374.51,505.68z M361.1,517.29c0-3.77-3.07-6.83-6.83-6.83c-3.77,0-6.83,3.06-6.83,6.83c0,3.77,3.07,6.83,6.83,6.83
|
||||
c1.35,0,2.65-0.39,3.78-1.14l-0.84-1.26c-0.87,0.58-1.89,0.89-2.94,0.89c-2.93,0-5.32-2.39-5.32-5.32s2.39-5.32,5.32-5.32
|
||||
s5.32,2.39,5.32,5.32c0,0.51-0.07,1.01-0.22,1.49h-2.51c0.26-0.44,0.41-0.95,0.41-1.49c0-1.66-1.35-3.01-3.01-3.01
|
||||
s-3.01,1.35-3.01,3.01c0,1.66,1.35,3.01,3.01,3.01h6.15l0.19-0.48C360.93,519.01,361.1,518.16,361.1,517.29z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path d="M257.18,326.38c-0.64-0.33-1.28-0.57-1.94-0.73s-1.35-0.24-2.08-0.24c-2.1,0-3.15,0.38-3.15,1.12
|
||||
c0,0.26,0.1,0.45,0.31,0.58c0.21,0.13,0.5,0.22,0.88,0.29s0.84,0.11,1.38,0.14c0.54,0.03,1.16,0.08,1.85,0.15
|
||||
c0.74,0.07,1.38,0.17,1.94,0.3c0.55,0.13,1.01,0.3,1.38,0.52c0.36,0.22,0.64,0.5,0.82,0.82c0.18,0.33,0.27,0.73,0.27,1.2
|
||||
c0,1.02-0.45,1.8-1.35,2.35s-2.22,0.83-3.96,0.83c-2.43,0-4.38-0.55-5.83-1.66l1-1.31c0.65,0.45,1.37,0.79,2.17,1.02
|
||||
c0.8,0.23,1.68,0.35,2.63,0.35c1.1,0,1.93-0.14,2.5-0.41c0.57-0.27,0.85-0.63,0.85-1.08c0-0.51-0.36-0.87-1.08-1.06
|
||||
c-0.52-0.14-1.14-0.22-1.85-0.23s-1.52-0.06-2.42-0.14c-1.17-0.11-2.03-0.36-2.58-0.75s-0.83-0.96-0.83-1.72
|
||||
c0-0.9,0.44-1.62,1.31-2.15s2.12-0.79,3.75-0.79c2.13,0,3.86,0.46,5.18,1.38L257.18,326.38z"/>
|
||||
<path d="M279.64,333.66h-2.11l7.14-11.29h2.09L279.64,333.66z"/>
|
||||
<path class="st1" d="M306.39,333.5v-9.46h9.83v1.66h-7.98v2.06h5.55v1.66h-5.55v2.42h8.34v1.66L306.39,333.5L306.39,333.5z"/>
|
||||
<path class="st1" d="M346.07,333.5l-3.77-3.71l-3.77,3.71h-2.32l4.92-4.8l-4.75-4.66h2.32l3.6,3.57l3.6-3.57h2.32l-4.75,4.66
|
||||
l4.92,4.8H346.07z"/>
|
||||
<path class="st1" d="M373.81,325.7v7.8h-1.85v-7.8h-4.52v-1.66h10.89v1.66H373.81z"/>
|
||||
<path class="st1" d="M407.66,333.5l-2.48-3.48h-4.69v3.48h-1.85v-9.46h7.65c0.5,0,0.96,0.07,1.36,0.22s0.75,0.35,1.04,0.61
|
||||
s0.51,0.58,0.66,0.95c0.15,0.37,0.23,0.78,0.23,1.23c0,0.77-0.2,1.4-0.6,1.88c-0.4,0.49-0.98,0.82-1.75,0.99l2.55,3.58H407.66z
|
||||
M406.01,328.37c1.12,0,1.68-0.43,1.68-1.29c0-0.48-0.14-0.83-0.43-1.04c-0.29-0.22-0.74-0.33-1.35-0.33h-5.42v2.66H406.01z"/>
|
||||
<path class="st1" d="M439.64,333.5l-1.09-2.03h-6.35l-1.09,2.03h-2.03l5.15-9.46h2.29l5.15,9.46H439.64z M435.38,325.63
|
||||
l-2.26,4.18h4.51L435.38,325.63z"/>
|
||||
<path class="st1" d="M461.83,333.5v-9.46h1.85v9.46H461.83z"/>
|
||||
<path class="st1" d="M494.38,333.5l-2.48-3.48h-4.69v3.48h-1.85v-9.46h7.65c0.5,0,0.96,0.07,1.36,0.22s0.75,0.35,1.04,0.61
|
||||
s0.51,0.58,0.66,0.95c0.15,0.37,0.23,0.78,0.23,1.23c0,0.77-0.2,1.4-0.6,1.88c-0.4,0.49-0.98,0.82-1.75,0.99l2.55,3.58H494.38z
|
||||
M492.74,328.37c1.12,0,1.68-0.43,1.68-1.29c0-0.48-0.14-0.83-0.43-1.04c-0.29-0.22-0.74-0.33-1.35-0.33h-5.42v2.66H492.74z"/>
|
||||
<path class="st1" d="M517.58,333.5v-9.46h9.83v1.66h-7.98v2.06h5.55v1.66h-5.55v2.42h8.34v1.66L517.58,333.5L517.58,333.5z"/>
|
||||
</g>
|
||||
<path d="M359.68,535.12h4.63v2.27H343.9v-2.27h4.63v-3.96h11.15V535.12z M354.26,515.8c-0.82,0-1.49,0.67-1.49,1.49
|
||||
s0.67,1.49,1.49,1.49c0.82,0,1.49-0.67,1.49-1.49C355.76,516.47,355.09,515.8,354.26,515.8z M374.51,505.68v23.22h-40.5v-23.22
|
||||
L374.51,505.68L374.51,505.68z M361.1,517.29c0-3.77-3.07-6.83-6.83-6.83c-3.77,0-6.83,3.06-6.83,6.83c0,3.77,3.07,6.83,6.83,6.83
|
||||
c1.35,0,2.65-0.39,3.78-1.14l-0.84-1.26c-0.87,0.58-1.89,0.89-2.94,0.89c-2.93,0-5.32-2.39-5.32-5.32s2.39-5.32,5.32-5.32
|
||||
s5.32,2.39,5.32,5.32c0,0.51-0.07,1.01-0.22,1.49h-2.51c0.26-0.44,0.41-0.95,0.41-1.49c0-1.66-1.35-3.01-3.01-3.01
|
||||
s-3.01,1.35-3.01,3.01c0,1.66,1.35,3.01,3.01,3.01h6.15l0.19-0.48C360.93,519.01,361.1,518.16,361.1,517.29z"/>
|
||||
<g>
|
||||
<g>
|
||||
<polygon points="361.86,564.75 346.67,564.75 354.26,557.07 354.26,557.07 "/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Za Šířka: | Výška: | Velikost: 59 KiB |
50
setup.cfg
Normální soubor
@@ -0,0 +1,50 @@
|
||||
[metadata]
|
||||
version = 0.0.1
|
||||
classifiers =
|
||||
Programming Language :: Python :: 3
|
||||
License :: OSI Approved :: MIT License
|
||||
Operating System :: OS Independent
|
||||
url = https://git.tetalab.org/tetalab/thsf.net
|
||||
description = "THSF website"
|
||||
name = thsf
|
||||
long_description = file: README.md
|
||||
long_description_content_type = text/markdown
|
||||
author = Doug Le Tough
|
||||
author_email = doug@redatomik.org
|
||||
|
||||
[options]
|
||||
package_dir =
|
||||
= src
|
||||
packages = find:
|
||||
include_package_data = True
|
||||
python_requires = >=3.7
|
||||
install_requires =
|
||||
flask
|
||||
Flask-Minify
|
||||
gunicorn
|
||||
pyYAML
|
||||
requests
|
||||
|
||||
[options.packages.find]
|
||||
where = src
|
||||
|
||||
[options.extras_require]
|
||||
dev =
|
||||
twine
|
||||
build
|
||||
wheel>=0.37.0
|
||||
flake8>=4.0.1
|
||||
flake8-breakpoint>=1.1.0
|
||||
flake8-builtins>=1.5.3
|
||||
flake8-print>=4.0.0
|
||||
flake8-return>=1.1.3
|
||||
pep8-naming>=0.8.2
|
||||
setuptools>=60.9.2
|
||||
pylint>=2.12.2
|
||||
|
||||
[flake8]
|
||||
ignore = E111
|
||||
exclude = .git,__pycache__,build,dist, thot-cli-venv
|
||||
max-line-length = 160
|
||||
use-flake8-tabs = true
|
||||
tab-width = 2
|
||||
3
setup.py
Normální soubor
@@ -0,0 +1,3 @@
|
||||
import setuptools
|
||||
|
||||
setuptools.setup()
|
||||
203
src/thsf/__init__.py
Normální soubor
@@ -0,0 +1,203 @@
|
||||
import re
|
||||
import sys
|
||||
import json
|
||||
import logging
|
||||
from logging import config
|
||||
import yaml
|
||||
from flask import Flask, render_template, redirect, request, url_for
|
||||
from flask_minify import minify
|
||||
from thsf.backend import Backend
|
||||
from thsf.schedule import Schedule
|
||||
from thsf.navbar import Navbar
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Configuration
|
||||
# ------------------------------------------------------------------------------
|
||||
class AppConfig:
|
||||
""" Flask application config """
|
||||
CONFIG_FILENAME = "config.yml"
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Application
|
||||
# ------------------------------------------------------------------------------
|
||||
logger = logging.getLogger('wsgi')
|
||||
app = Flask(__name__)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Local configuration
|
||||
# ------------------------------------------------------------------------------
|
||||
app.config.from_object(__name__ + '.AppConfig')
|
||||
try:
|
||||
with open(app.config["CONFIG_FILENAME"], mode="r", encoding="utf-8") as local_config_file:
|
||||
app.local_config = yaml.load(local_config_file, Loader=yaml.SafeLoader)
|
||||
app.config["SECRET_KEY"] = app.local_config["app"]["secret_key"]
|
||||
app.config["LANGUAGES"] = app.local_config["app"]["languages"]
|
||||
config.dictConfig(app.local_config["log"])
|
||||
backend = Backend(url=app.local_config["pretalx"]["url"],
|
||||
apiprefix=app.local_config["pretalx"]["apiprefix"],
|
||||
apikey=app.local_config["pretalx"]["apikey"])
|
||||
schedule = Schedule()
|
||||
navbar = Navbar(config=app.local_config["navbar"])
|
||||
except Exception as err:
|
||||
logger.critical("[{}] {}".format(err.__class__, str(err)))
|
||||
sys.exit(1)
|
||||
|
||||
if app.local_config["log"]["root"]["level"] != "DEBUG":
|
||||
minify(app=app, html=True, js=True, cssless=True)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Tools
|
||||
# ------------------------------------------------------------------------------
|
||||
@app.errorhandler(404)
|
||||
def page_not_found(err):
|
||||
return redirect(url_for('index'))
|
||||
|
||||
def get_slots():
|
||||
return backend.get(endpoint=f"events/{app.local_config['pretalx']['event']}/schedules/{app.local_config['pretalx']['schedule']}/").json()
|
||||
|
||||
def get_speaker_biography(name):
|
||||
try:
|
||||
speaker_info = backend.get(endpoint=f"events/{app.local_config['pretalx']['event']}/speakers/", params={"q": name}).json()
|
||||
logger.debug(speaker_info)
|
||||
return speaker_info["results"][0]["biography"].strip()
|
||||
except Exception as err:
|
||||
logger.warning(f"UnknownSpeakerError: {name}")
|
||||
return None
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Custom filters
|
||||
# ------------------------------------------------------------------------------
|
||||
@app.template_filter('date2dmyhm')
|
||||
def date2dmyhm(date):
|
||||
splitted_date = date.split("-")
|
||||
splitted_time = splitted_date[2].split("T")[1].split(":")
|
||||
year, month, day = (splitted_date[0],
|
||||
splitted_date[1],
|
||||
splitted_date[2].split("T")[0])
|
||||
hour, minutes = (splitted_time[0], splitted_time[1].split("+")[0])
|
||||
return f"{day}/{month} {hour}:{minutes}"
|
||||
|
||||
@app.template_filter('date2dayclass')
|
||||
def date2dayclass(date):
|
||||
classes = {"26/05": "bg1",
|
||||
"27/05": "bg2",
|
||||
"28/05": "bg3",}
|
||||
splitted_date = date.split("-")
|
||||
month, day = (splitted_date[1],
|
||||
splitted_date[2].split("T")[0])
|
||||
return classes[f"{day}/{month}"]
|
||||
|
||||
@app.template_filter('toicon')
|
||||
def date2dmyhm(slot_type):
|
||||
slot_types = {"Projection": "fa-solid fa-film",
|
||||
"Presentation Courte": "fa-solid fa-person-chalkboard",
|
||||
"DJ Set": "fa-solid fa-guitar",
|
||||
"Concert": "fa-solid fa-guitar",
|
||||
"Présentation": "fa-solid fa-person-chalkboard",
|
||||
"Table Ronde": "fa-solid fa-users-line",
|
||||
"Atelier": "fa-solid fa-screwdriver-wrench",
|
||||
"Installation": "fa-solid fa-palette"}
|
||||
return slot_types[slot_type]
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Routes
|
||||
# ------------------------------------------------------------------------------
|
||||
@app.route('/favicon.ico', methods=['GET'])
|
||||
def favicon():
|
||||
return redirect(url_for('static', filename='images/favicon.png'))
|
||||
|
||||
|
||||
@app.route('/', methods=['GET'])
|
||||
def index():
|
||||
return render_template("index.html",
|
||||
navbar=navbar.get_from_page(page="/"))
|
||||
|
||||
@app.route('/planning', methods=['GET'])
|
||||
def planning():
|
||||
slots = get_slots()
|
||||
for slot in slots.get("slots"):
|
||||
for speaker in slot.get("speakers"):
|
||||
speaker["biography"] = get_speaker_biography(speaker.get("name"))
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/planning"),
|
||||
filter=["concert", "dj set", "panel discussion", "talk", "screening"])
|
||||
|
||||
@app.route('/place', methods=['GET'])
|
||||
def place():
|
||||
return render_template("place.html",
|
||||
navbar=navbar.get_from_page(page="/place"))
|
||||
|
||||
@app.route('/food', methods=['GET'])
|
||||
def food():
|
||||
return render_template("food.html",
|
||||
navbar=navbar.get_from_page(page="/food"))
|
||||
|
||||
@app.route('/goodies', methods=['GET'])
|
||||
def goodies():
|
||||
return render_template("goodies.html",
|
||||
navbar=navbar.get_from_page(page="/goodies"))
|
||||
|
||||
@app.route('/concerts', methods=['GET'])
|
||||
def concerts():
|
||||
slots = get_slots()
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/concerts"),
|
||||
filter=["concert", "dj set"])
|
||||
|
||||
@app.route('/workshops', methods=['GET'])
|
||||
def workshops():
|
||||
slots = get_slots()
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/workshops"),
|
||||
filter=["workshop"])
|
||||
|
||||
@app.route('/screenings', methods=['GET'])
|
||||
def screenings():
|
||||
slots = get_slots()
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/screenings"),
|
||||
filter=["screening"])
|
||||
|
||||
@app.route('/discussions', methods=['GET'])
|
||||
def discussions():
|
||||
slots = get_slots()
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/discussions"),
|
||||
filter=["panel discussion"])
|
||||
|
||||
@app.route('/exhibitions', methods=['GET'])
|
||||
def exhibitions():
|
||||
slots = get_slots()
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/exhibitions"),
|
||||
filter=["installation"])
|
||||
|
||||
@app.route('/talks', methods=['GET'])
|
||||
def talks():
|
||||
slots = get_slots()
|
||||
return render_template("planning.html",
|
||||
slots=sorted(slots.get("slots"),
|
||||
key=lambda slot: slot.get("slot").get("start")),
|
||||
navbar=navbar.get_from_page(page="/talks"),
|
||||
filter=["talk", "light talk"])
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# -- Main
|
||||
# ------------------------------------------------------------------------------
|
||||
if __name__ == '__main__':
|
||||
app.run(host='127.0.0.1', port=5000, debug=True)
|
||||
15
src/thsf/backend/__init__.py
Normální soubor
@@ -0,0 +1,15 @@
|
||||
import requests
|
||||
import logging
|
||||
|
||||
class Backend:
|
||||
def __init__(self, url, apiprefix, apikey):
|
||||
self.url = url
|
||||
self.apiprefix = apiprefix
|
||||
self.apikey = apikey
|
||||
self.session = requests.Session()
|
||||
|
||||
def get(self, endpoint, params=None):
|
||||
url = f"{self.url}/{self.apiprefix}/{endpoint}"
|
||||
headers = {"Authorization": f"Token {self.apikey}",
|
||||
"Accept": "application/json"}
|
||||
return self.session.get(url, params=params, headers=headers)
|
||||
6
src/thsf/navbar/__init__.py
Normální soubor
@@ -0,0 +1,6 @@
|
||||
class Navbar:
|
||||
def __init__(self, config):
|
||||
self.config = config
|
||||
|
||||
def get_from_page(self, page):
|
||||
return [item for item in self.config["items"] if item["url"] != page]
|
||||
6
src/thsf/schedule/__init__.py
Normální soubor
@@ -0,0 +1,6 @@
|
||||
class Schedule:
|
||||
def __init__(self):
|
||||
self.slots = list()
|
||||
|
||||
def set_slots(self, slots):
|
||||
self.slots = slots
|
||||
49
src/thsf/static/css/colors.css
Normální soubor
@@ -0,0 +1,49 @@
|
||||
@font-face {
|
||||
font-family: pfdintextcomppromedium;
|
||||
src: url(../fonts/PFDinTextCompPro-Medium.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: pfdintextcompprothin;
|
||||
src: url(../fonts/PFDinTextCompPro-Thin.ttf);
|
||||
}
|
||||
|
||||
:root {
|
||||
--main-bg-color: #e6007e;
|
||||
--alt-bg-color: #E59730;
|
||||
--alt2-bg-color: #9EBF43;
|
||||
--alt3-bg-color: #3096E5;
|
||||
--main-color: #ffffff;
|
||||
--alt-main-color: #1A000D;
|
||||
}
|
||||
|
||||
.white {
|
||||
color: var(--main-color);
|
||||
}
|
||||
|
||||
.black {
|
||||
color: var(--alt-main-color);
|
||||
}
|
||||
|
||||
.thin {
|
||||
font-family: pfdintextcompprothin;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-family: pfdintextcomppromedium;
|
||||
}
|
||||
|
||||
.bg1 {
|
||||
background-color: var(--alt-bg-color);
|
||||
border-color: var(--alt-bg-color);
|
||||
}
|
||||
|
||||
.bg2 {
|
||||
background-color: var(--alt2-bg-color);
|
||||
border-color: var(--alt2-bg-color);
|
||||
}
|
||||
|
||||
.bg3 {
|
||||
background-color: var(--alt3-bg-color);
|
||||
border-color: var(--alt3-bg-color);
|
||||
}
|
||||
109
src/thsf/static/css/custom.css
Normální soubor
@@ -0,0 +1,109 @@
|
||||
@media screen and (min-width: 45em) {
|
||||
.header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
gap: 0;
|
||||
text-align: center;
|
||||
font-size: 9.75em;
|
||||
font-weight: bold;
|
||||
padding: 0;
|
||||
}
|
||||
.logo {
|
||||
width: inherit;
|
||||
}
|
||||
.header > span {
|
||||
margin: 0;
|
||||
}
|
||||
.subheader {
|
||||
margin: -1em 0 0 0;
|
||||
font-size: 3.47em;
|
||||
}
|
||||
.place {
|
||||
margin: 0;
|
||||
font-size: 2.145em;
|
||||
}
|
||||
.important {
|
||||
font-family: pfdintextcomppromedium;
|
||||
}
|
||||
.left {
|
||||
float: left;
|
||||
margin-right: 0.5em;
|
||||
}
|
||||
.right {
|
||||
float: right;
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
.logo_partner {
|
||||
max-width: 250px;
|
||||
max-height: 250px;
|
||||
margin: 1em;
|
||||
}
|
||||
.button {
|
||||
font-size: 2.5em;
|
||||
transition-property: color;
|
||||
transition-duration: 1s;
|
||||
}
|
||||
.button:hover {
|
||||
color: var(--main-color);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 44em) {
|
||||
.header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
gap: 0;
|
||||
text-align: center;
|
||||
font-size: 6.75em;
|
||||
font-weight: bold;
|
||||
padding: 0;
|
||||
}
|
||||
.header > span {
|
||||
margin: 0;
|
||||
}
|
||||
.logo {
|
||||
width: inherit;
|
||||
}
|
||||
.subheader {
|
||||
margin: -1em 0 0 0;
|
||||
font-size: 2.30em;
|
||||
}
|
||||
.place {
|
||||
margin: 0;
|
||||
font-size: 1.2em;
|
||||
}
|
||||
.important {
|
||||
font-family: pfdintextcomppromedium;
|
||||
}
|
||||
.left {
|
||||
float: left;
|
||||
margin-right: 0.25em;
|
||||
}
|
||||
.right {
|
||||
float: right;
|
||||
margin-left: 0.25em;
|
||||
}
|
||||
.logo_partner {
|
||||
max-width: 125px;
|
||||
max-height: 125px;
|
||||
margin: 0.25em;
|
||||
}
|
||||
.button {
|
||||
font-size: 1.2em;
|
||||
transition-property: color;
|
||||
transition-duration: 1s;
|
||||
}
|
||||
.button:hover {
|
||||
color: var(--main-color);
|
||||
cursor: pointer;
|
||||
}
|
||||
.goodies {
|
||||
text-align: justify;
|
||||
}
|
||||
.goodies_pic {
|
||||
max-width: 5em;
|
||||
}
|
||||
}
|
||||
19
src/thsf/static/css/elements.css
Normální soubor
@@ -0,0 +1,19 @@
|
||||
a {
|
||||
font-family: pfdintextcomppromedium;
|
||||
font-weight: 250;
|
||||
color: var(--alt-main-color);
|
||||
transition-property: color;
|
||||
transition-duration: 1s;
|
||||
text-decoration: wavy;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: var(--main-color);
|
||||
cursor: pointer;
|
||||
text-shadow: -1px -1px 0 var(--alt-main-color), 1px -1px 0 var(--alt-main-color), -1px 1px 0 var(--alt-main-color), 1px 1px 0 var(--alt-main-color);
|
||||
}
|
||||
|
||||
.content > p,
|
||||
.content > h2 {
|
||||
margin-top: 1.5em;
|
||||
}
|
||||
82
src/thsf/static/css/slot.css
Normální soubor
@@ -0,0 +1,82 @@
|
||||
.slot {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
margin-bottom: 1em;
|
||||
width: 20em;
|
||||
}
|
||||
|
||||
.slot_header {
|
||||
margin: 0;
|
||||
width: 20em;
|
||||
font-family: pfdintextcompprothin;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.slot_title {
|
||||
border-radius: 1em 0 0 0;
|
||||
color: var(--main-color);
|
||||
padding: 0.5em;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-start;
|
||||
align-content: flex-start;
|
||||
align-items: flex-start;
|
||||
width: 20em;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.slot_title .title{
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
|
||||
.slot_info {
|
||||
background-color: var(--main-color);
|
||||
color: var(--alt-main-color);
|
||||
margin: 0;
|
||||
padding: 0.5em;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
align-content: flex-start;
|
||||
align-items: flex-start;
|
||||
border-radius: 0 0 0 1em;
|
||||
}
|
||||
|
||||
.speaker {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.speakers > .speaker > .name > span {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.speaker_details,
|
||||
.slot_details {
|
||||
visibility: hidden;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.speaker_img,
|
||||
.slot_img {
|
||||
width: 18em;
|
||||
}
|
||||
|
||||
.abstract a,
|
||||
.speaker_biography a {
|
||||
color: var(--main-bg-color);
|
||||
}
|
||||
|
||||
.abstract a:hover,
|
||||
.speaker_biography a:hover {
|
||||
color: var(--alt-color);
|
||||
text-shadow: -1px -1px 0 var(--main-bg-color), 1px -1px 0 var(--main-bg-color), -1px 1px 0 var(--main-bg-color), 1px 1px 0 var(--main-bg-color);
|
||||
}
|
||||
|
||||
.abstract strong,
|
||||
.speaker_biography strong {
|
||||
font-family: pfdintextcomppromedium;
|
||||
}
|
||||
15
src/thsf/static/css/style.css
Normální soubor
@@ -0,0 +1,15 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: var(--main-bg-color);
|
||||
font-family: pfdintextcomppromedium;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
text-align: center;
|
||||
/* background-color: yellow; */
|
||||
}
|
||||
57
src/thsf/static/css/tooltip.css
Normální soubor
@@ -0,0 +1,57 @@
|
||||
.tooltip,
|
||||
.slot_tooltip {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tooltip .tooltiptext {
|
||||
visibility: hidden;
|
||||
background-color: var(--alt-main-color);
|
||||
color: var(--main-color);
|
||||
text-align: center;
|
||||
border-radius: 6px;
|
||||
padding: 5px 0;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
transform: translateX(-25%) translateY(-2em);
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.slot_tooltip .slot_tooltiptext {
|
||||
visibility: hidden;
|
||||
background-color: var(--main-color);
|
||||
color: var(--alt-main-color);
|
||||
text-align: center;
|
||||
border-radius: 6px;
|
||||
padding: 5px 0;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
opacity: 0;
|
||||
transform: translateX(2em);
|
||||
transition: opacity 1s;
|
||||
}
|
||||
|
||||
.tooltip .tooltiptext::after,
|
||||
.slot_tooltip .slot_tooltiptext::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
border-width: 5px;
|
||||
}
|
||||
|
||||
.tooltip:hover .tooltiptext,
|
||||
.slot_tooltip:hover .slot_tooltiptext {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
font-size: 0.7em;
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
|
||||
72
src/thsf/static/css/wemakeporn.css
Normální soubor
@@ -0,0 +1,72 @@
|
||||
@media screen and (min-width: 45em) {
|
||||
.wemakeporn {
|
||||
background-color: #FFD036;
|
||||
color: #000000;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-radius: 1em;
|
||||
border-width: 1em;
|
||||
border-style: solid;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
padding: 0.5em;
|
||||
transform: rotate(-20deg) translate(2em, -6em);
|
||||
visibility: hidden;
|
||||
position: fixed;
|
||||
}
|
||||
.wemakeporn:hover{
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.wemake {
|
||||
font-size: 7em;
|
||||
font-weight: bold;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
}
|
||||
|
||||
.porn {
|
||||
font-size: 12em;
|
||||
font-weight: bold;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 44em) {
|
||||
.wemakeporn {
|
||||
background-color: #FFD036;
|
||||
color: #000000;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
border-radius: 0.5em;
|
||||
border-width: 0.5em;
|
||||
border-style: solid;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
padding: 0.5em;
|
||||
transform: rotate(-20deg) translate(-1.5em, 8em);
|
||||
visibility: hidden;
|
||||
position: fixed;
|
||||
}
|
||||
.wemakeporn:hover{
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.wemake {
|
||||
font-size: 3.5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.porn {
|
||||
font-size: 6em;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
125
src/thsf/static/css/wrappers.css
Normální soubor
@@ -0,0 +1,125 @@
|
||||
@media screen and (min-width: 45em) {
|
||||
.page_wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
text-align: center;
|
||||
padding-bottom: 5em;
|
||||
/* background-color: green; */
|
||||
}
|
||||
.center_wrapper,
|
||||
.header_wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
.logo_wrapper {
|
||||
margin: 1em 0 1em 0;
|
||||
width: 40em;
|
||||
}
|
||||
.navbar_wrapper {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
padding: 1em 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1.4em;
|
||||
background-color: var(--main-bg-color);
|
||||
width: 40em;
|
||||
transform: translateZ(2);
|
||||
}
|
||||
.content {
|
||||
font-size: 2em;
|
||||
font-family: pfdintextcompprothin;
|
||||
color: var(--main-color);
|
||||
width: 20em;
|
||||
text-align:justify;
|
||||
text-justify: inter-word;
|
||||
}
|
||||
.partners {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
.subpartners {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 44em) {
|
||||
.page_wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
align-content: center;
|
||||
text-align: center;
|
||||
padding-bottom: 2em;
|
||||
width: 21em;
|
||||
/* background-color: green; */
|
||||
}
|
||||
.center_wrapper ,
|
||||
.header_wrapper {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
width: 21em;
|
||||
/* background-color: orangered; */
|
||||
}
|
||||
.logo_wrapper {
|
||||
margin-top: 0.5em;
|
||||
width: 21em;
|
||||
/* background-color: red; */
|
||||
}
|
||||
.navbar_wrapper {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
padding: 0.5em 0;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 1em;
|
||||
background-color: var(--main-bg-color);
|
||||
width: 21em;
|
||||
transform: translateZ(2);
|
||||
/* background-color: white; */
|
||||
}
|
||||
.content {
|
||||
font-size: 1em;
|
||||
font-family: pfdintextcompprothin;
|
||||
color: var(--main-color);
|
||||
width: 21em;
|
||||
text-align:justify;
|
||||
text-justify: inter-word;
|
||||
}
|
||||
.partners {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
.subpartners {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
binární
src/thsf/static/images/antistatik.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 9.2 KiB |
binární
src/thsf/static/images/bg.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 24 KiB |
binární
src/thsf/static/images/clutch.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 7.1 KiB |
|
Před Šířka: | Výška: | Velikost: 31 KiB Za Šířka: | Výška: | Velikost: 31 KiB |
binární
src/thsf/static/images/fmr.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 8.4 KiB |
301
src/thsf/static/images/logo.svg
Normální soubor
|
Za Šířka: | Výška: | Velikost: 20 KiB |
binární
src/thsf/static/images/pretalx-header.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 57 KiB |
binární
src/thsf/static/images/stickers.webp
Normální soubor
|
Za Šířka: | Výška: | Velikost: 8.0 KiB |
binární
src/thsf/static/images/sweatshirt.webp
Normální soubor
|
Za Šířka: | Výška: | Velikost: 4.9 KiB |
binární
src/thsf/static/images/terranova.jpg
Normální soubor
|
Za Šířka: | Výška: | Velikost: 37 KiB |
binární
src/thsf/static/images/tetalab.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 41 KiB |
binární
src/thsf/static/images/tetaneutral.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 9.7 KiB |
binární
src/thsf/static/images/totebag.webp
Normální soubor
|
Za Šířka: | Výška: | Velikost: 2.6 KiB |
binární
src/thsf/static/images/tshirt.webp
Normální soubor
|
Za Šířka: | Výška: | Velikost: 5.2 KiB |
binární
src/thsf/static/images/tv-bruits.png
Normální soubor
|
Za Šířka: | Výška: | Velikost: 16 KiB |
14
src/thsf/static/scripts/thsf23.js
Normální soubor
@@ -0,0 +1,14 @@
|
||||
function switch_visibility(item){
|
||||
console.log(item.style.visibility);
|
||||
console.log(item.style.display);
|
||||
if (item.style.visibility == "hidden" || item.style.display == "none") {
|
||||
item.style.visibility = "visible";
|
||||
item.style.display = "block";
|
||||
} else if (item.style.visibility == "" && item.style.display == "") {
|
||||
item.style.visibility = "visible";
|
||||
item.style.display = "block";
|
||||
} else {
|
||||
item.style.visibility = "hidden";
|
||||
item.style.display = "none";
|
||||
}
|
||||
}
|
||||
107
src/thsf/templates/base.html
Normální soubor
@@ -0,0 +1,107 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='zxx'>
|
||||
<head>
|
||||
<title>THSF 2023: S/Extraire</title>
|
||||
<meta name="viewport" content="initial-scale=1.0">
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
<script src="{{ url_for('static', filename='scripts/thsf23.js') }}"></script>
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/colors.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/wemakeporn.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/wrappers.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/custom.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/elements.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/style.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/tooltip.css') }}">
|
||||
<link rel="stylesheet"
|
||||
href="{{ url_for('static', filename='css/slot.css') }}">
|
||||
<link rel="icon"
|
||||
type="image/svg+xml"
|
||||
href="{{ url_for('static', filename='images/logo.svg') }}">
|
||||
<link rel="stylesheet"
|
||||
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
||||
{% block headers %}
|
||||
{% endblock %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page_wrapper">
|
||||
<div class="center_wrapper">
|
||||
<div class="header_wrapper">
|
||||
<div class="header">
|
||||
<span class="black bold">THSF</span>
|
||||
<span class="white thin">2023</span>
|
||||
</div>
|
||||
<div class="subheader">
|
||||
<span class="white thin">Toulouse Hacker Space Factory</span>
|
||||
</div>
|
||||
<div class="place">
|
||||
<span class="black thin">26 28 mai 2023 - </span>
|
||||
<span class="white bold">CINÉMA UTOPIA BORDEROUGE</span>
|
||||
</div>
|
||||
</div>
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
<div class="partners">
|
||||
<div class="subpartners">
|
||||
<a href="https://www.tetalab.org/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/tetalab.png')}}"
|
||||
alt="Tetalab"
|
||||
title="Tetalab"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
<a href="https://www.librairie-terranova.fr/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/terranova.jpg')}}"
|
||||
alt="Librairie Terra Nova"
|
||||
title="Librairie Terra Nova"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
</div>
|
||||
<div class="subpartners">
|
||||
<a href="https://www.tvbruits.org/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/tv-bruits.png')}}"
|
||||
alt="TV Bruits"
|
||||
title="TV Bruits"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
<a href="https://www.tetaneutral.net/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/tetaneutral.png')}}"
|
||||
alt="Tetaneutral"
|
||||
title="Tetaneutral"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
<a href="https://www.radio-fmr.net/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/fmr.png')}}"
|
||||
alt="Radio FMR"
|
||||
title="Radio FMR"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
</div>
|
||||
<div class="subpartners">
|
||||
<a href="https://clutchmag.fr/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/clutch.png')}}"
|
||||
alt="Clutch"
|
||||
title="Clutch"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
<a href="https://www.antistatik.store/" target="_new">
|
||||
<img src="{{ url_for('static', filename='images/antistatik.png')}}"
|
||||
alt="Antistatik"
|
||||
title="Antistatik"
|
||||
class="logo_partner">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% block navbar %}
|
||||
{% include "navbar.html" %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
14
src/thsf/templates/food.html
Normální soubor
@@ -0,0 +1,14 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="logo_wrapper">
|
||||
<img class="logo"
|
||||
src="{{ url_for('static', filename='images/logo.svg') }}"
|
||||
alt="THSF 2023 - S/Extraire"
|
||||
title="THSF 2023 - S/Extraire">
|
||||
</div>
|
||||
<div class="content">
|
||||
<h2>Restauration</h2>
|
||||
<p>La restauration sur place est prévue.</p>
|
||||
<p>Détails à venir...</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
33
src/thsf/templates/goodies.html
Normální soubor
@@ -0,0 +1,33 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="logo_wrapper">
|
||||
<img class="logo"
|
||||
src="{{ url_for('static', filename='images/logo.svg') }}"
|
||||
alt="THSF 2023 - S/Extraire"
|
||||
title="THSF 2023 - S/Extraire">
|
||||
</div>
|
||||
<div class="content" class="goodies">
|
||||
<h2>Nous avons besoin de votre soutien</h2>
|
||||
<p class="goodies">
|
||||
<img class="left"
|
||||
src="{{ url_for('static', filename='images/stickers.webp') }}"
|
||||
alt="Stickers"
|
||||
title="Stickers">
|
||||
Pour faire du <strong>Toulouse Hacker Space Factory</strong> un événement toujours différent des autres festivals <a href="https://www.leetchi.com/c/thsf23" target="_new">votre soutien financier</a> est nécessaire.
|
||||
</p>
|
||||
<p class="goodies">
|
||||
<img class="right"
|
||||
src="{{ url_for('static', filename='images/tshirt.webp') }}"
|
||||
alt="T-Shirt"
|
||||
title="T-Shirt">
|
||||
Pour faciliter la collecte des dons et vous remercier de votre participation, nous avons mis en place <a href="https://www.leetchi.com/c/thsf23" target="_new">une cagnote Leetchi</a> qui nous permettra de recenser les dons et vous permettra de suivre l'évolution du financement de notre festival.
|
||||
</p>
|
||||
<p class="goodies">
|
||||
<img class="left"
|
||||
src="{{ url_for('static', filename='images/sweatshirt.webp') }}"
|
||||
alt="Sweat shirt"
|
||||
title="Sweat shirt">
|
||||
Nous sommes également conscients que la situation actuelle est particulièrement difficile. C'est pourquoi nous nous engageons à ce que <span class="important">toutes les sommes qui dépasseront notre objectif de financement de 2 000 € seront reversées aux caisses des grévistes de la réforme des retraites</span>. Ainsi, votre contribution permettra également de soutenir une cause importante et de <span class="important">faire une différence dans la vie de ceux qui se battent pour nos droits</span>.
|
||||
</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
27
src/thsf/templates/index.html
Normální soubor
@@ -0,0 +1,27 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="logo_wrapper">
|
||||
<img class="logo"
|
||||
src="{{ url_for('static', filename='images/logo.svg') }}"
|
||||
alt="THSF 2023 - S/Extraire"
|
||||
title="THSF 2023 - S/Extraire"
|
||||
onclick="document.getElementById('wemakeporn').style.visibility='visible';">
|
||||
<div id="wemakeporn" class="wemakeporn"
|
||||
onclick="document.getElementById('wemakeporn').style.visibility='hidden';">
|
||||
<div class="wemake">WE MAKE</div>
|
||||
<div class="porn">PORN</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h2>Le THSF est enfin de retour !</h2>
|
||||
<p>Nous vous invitons à passer un week-end de 3 jours à <a href="https://www.cinemas-utopia.org/toulouse/" target="_new">Utopia Borderouge Toulouse</a> pour partager avec vous nos projets, nos réflexions, nos performances, nos poésies et nos doutes sur la technologie.</p>
|
||||
|
||||
<p>Après avoir été soutenu et accueilli pendant 10 ans par <a href="https://vive.mixart-myrys.org/" target="_new">Mix'Art Myrys</a>, le <strong>Toulouse HackerSpace Factory</strong> se tient désormais dans un autre lieu où l'utopie nécessaire est inscrite au programme.</p>
|
||||
|
||||
<p>Cette année nous mettons en avant des réflexions sur <a href="https://fr.wikipedia.org/wiki/Extractivisme" target="_new">l'extractivisme des ressources</a> planétaires, des données et du produit du travail.</p>
|
||||
|
||||
<p>Comme toujours, notre objectif est de créer un festival qui poétise les bifurcations de nos idées communes et qui réinvente le sens de certains schémas imposés par notre époque. Rejoignez-nous pour une expérience enrichissante et pleine de surprises !</p>
|
||||
|
||||
<p>Retrouvez <a href="/planning">le programme du THSF</a> avec ses <a href="/workshops">ateliers</a>, ses <a href="/exhibitions">expositions et installations</a> mais également ses <a href="/concerts">concerts</a>, ses <a href="/projections">projections</a>, ses <a href="/talks">présentations</a> et ses <a href="/discussions">tables rondes</a>.</p>
|
||||
</div>
|
||||
{% endblock %}
|
||||
8
src/thsf/templates/navbar.html
Normální soubor
@@ -0,0 +1,8 @@
|
||||
<div class="navbar_wrapper">
|
||||
{% for item in navbar %}
|
||||
<i class="button tooltip black {{ item.classes }}"
|
||||
onclick="document.location='{{item.url}}'">
|
||||
<span class="tooltiptext thin">{{item.name}}</span>
|
||||
</i>
|
||||
{% endfor %}
|
||||
</div>
|
||||
34
src/thsf/templates/place.html
Normální soubor
@@ -0,0 +1,34 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="logo_wrapper">
|
||||
<img class="logo"
|
||||
src="{{ url_for('static', filename='images/logo.svg') }}"
|
||||
alt="THSF 2023 - S/Extraire"
|
||||
title="THSF 2023 - S/Extraire"
|
||||
onclick="document.getElementById('wemakeporn').style.visibility='visible';">
|
||||
<div id="wemakeporn" class="wemakeporn"
|
||||
onclick="document.getElementById('wemakeporn').style.visibility='hidden';">
|
||||
<div class="wemake">WE MAKE</div>
|
||||
<div class="porn">PORN</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<h2>Toujours plus d'utopies</h2>
|
||||
<p>
|
||||
La fermeture administrative imposée à <a href="https://vive.mixart-myrys.org/" target="_new">Mix'Art Myrys</a>, terre d'accueil des 10 éditions antérieures du THSF, nous montre qu'il est plus que jamais important de continuer à bâtir, consolider et faire vivre nos utopies face à la repression systémique qu'on voudrait nous imposer.
|
||||
</p>
|
||||
<p>
|
||||
Connu pour sa programmation alternative et engagée, ainsi que pour son ambiance conviviale et chaleureuse, le cinéma d'art et d'essai indépendant <a href="https://www.cinemas-utopia.org/toulouse/">Utopia Borderouge</a>, dont l'utopie est naturellement au programme, s'est proposé pour accueillir le <strong>THSF 2023</strong>.
|
||||
</p>
|
||||
<h3>Plan d'accès</h3>
|
||||
<ul>
|
||||
<li><strong>Adresse:</strong> 59, avenue Maurice Bourgès-Maunoury, Les Izards - Toulouse</li>
|
||||
<li><strong>GPS:</strong> 43°38'22.7"N 1°27'07.3"E</li>
|
||||
<li><strong>Métro:</strong> Ligne B - Borderouge</li>
|
||||
<li><strong>Velooz:</strong> Station 175 - Métro Borderouge - Maunoury</li>
|
||||
</ul>
|
||||
<div class="map">
|
||||
<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=1.4502596855163576%2C43.63879667815726%2C1.4538002014160158%2C43.64046408342326&layer=mapnik&marker=43.639631357124614%2C1.4520299434661865" style="border: 1px solid black"></iframe><br/><small><a href="https://www.openstreetmap.org/?mlat=43.63963&mlon=1.45203#map=19/43.63963/1.45203">Afficher une carte plus grande</a></small>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
15
src/thsf/templates/planning.html
Normální soubor
@@ -0,0 +1,15 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<div class="content">
|
||||
{% for slot in slots %}
|
||||
{% set loop_index = loop.index %}
|
||||
{% if filter %}
|
||||
{% if slot.submission_type.en | lower in filter %}
|
||||
{% include "slot.html" %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% include "slot.html" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endblock %}
|
||||
64
src/thsf/templates/slot.html
Normální soubor
@@ -0,0 +1,64 @@
|
||||
<div class="slot">
|
||||
<div class="slot_header">
|
||||
<div class="slot_title {{ slot.slot.start | date2dayclass}}"
|
||||
onclick="switch_visibility(document.getElementById('{{slot.code}}_{{loop_index}}'))">
|
||||
<i class="black {{slot.submission_type.fr | toicon }}"></i>
|
||||
<span class="title">{{slot.title}}</span>
|
||||
</div>
|
||||
<div class="slot_info">
|
||||
{% if slot.slot.room.fr != "Workshops" %}
|
||||
<div class="start">
|
||||
<i class="fa-solid fa-caret-right"></i>
|
||||
{{slot.slot.start | date2dmyhm}} - {{slot.duration}} minutes ({{slot.content_locale | capitalize}})
|
||||
</div>
|
||||
<div class="room">
|
||||
<i class="fa-solid fa-caret-right"></i>
|
||||
{{slot.slot.room.fr}}
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="speakers">
|
||||
{% for speaker in slot.speakers %}
|
||||
<div class="speaker">
|
||||
<div class="name" onclick="switch_visibility(document.getElementById('{{speaker.code}}_{{loop_index}}'))">
|
||||
<i class="fa-solid fa-user"></i>
|
||||
<span>{{speaker.name | title}}</span>
|
||||
</div>
|
||||
{% if speaker.avatar or speaker.biography %}
|
||||
<div id="{{speaker.code}}_{{loop_index}}" class="speaker_details">
|
||||
{% if speaker.avatar %}
|
||||
<div class="speaker_avatar">
|
||||
<img class="speaker_img"
|
||||
src="{{speaker.avatar}}"
|
||||
alt="{{speaker.name | title}}"
|
||||
title="{{speaker.name | title}}">
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if speaker.biography %}
|
||||
<div class="speaker_biography">
|
||||
{{ speaker.biography | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div id="{{slot.code}}_{{loop_index}}" class="slot_details">
|
||||
<div class="abstract">
|
||||
{% if slot.image %}
|
||||
<img class="slot_img"
|
||||
src="{{slot.image}}"
|
||||
alt="{{slot.name}}"
|
||||
title="{{slot.name}}">
|
||||
{% endif %}
|
||||
{% if slot.abstract %}
|
||||
<p>{{slot.abstract | safe }}</p>
|
||||
{% endif %}
|
||||
{% if slot.description %}
|
||||
<p>{{slot.description | safe }}</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
5
src/thsf_wsgi.py
Normální soubor
@@ -0,0 +1,5 @@
|
||||
from thsf import app
|
||||
|
||||
if __name__ == "__main__":
|
||||
application = app
|
||||
application.run(host="127.0.0.1", port=8043)
|
||||
139
styles/main.css
@@ -1,139 +0,0 @@
|
||||
@font-face {
|
||||
font-family: pfdintextcomppro;
|
||||
src: url(../fonts/PFDinTextCompPro-Medium.ttf);
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
font-family: pfdintextcomppro;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #e6007e;
|
||||
background-image: url('../images/affiche_v1.png');
|
||||
background-repeat: no-repeat;
|
||||
background-size: auto;
|
||||
background-position-x: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
ul {
|
||||
overflow: hidden;
|
||||
perspective: 900px;
|
||||
list-style: none;
|
||||
height: 100vh;
|
||||
max-height: 800px;
|
||||
min-height: 400px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@keyframes width-sway {
|
||||
0%, 100% {
|
||||
width: 500px;
|
||||
}
|
||||
50% {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
li {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
margin: auto;
|
||||
width: 100%;
|
||||
transform: translateY(100vh);
|
||||
font-size: 6rem;
|
||||
font-family: pfdintextcomppro;
|
||||
font-weight: bold;
|
||||
color: #ffffdd;
|
||||
animation: 5.3333333333s spiral-staircase linear infinite;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
li:nth-child(1) {
|
||||
animation-delay: 0.3333333333s;
|
||||
}
|
||||
|
||||
li:nth-child(2) {
|
||||
animation-delay: 0.6666666667s;
|
||||
}
|
||||
|
||||
li:nth-child(3) {
|
||||
animation-delay: 1s;
|
||||
}
|
||||
|
||||
li:nth-child(4) {
|
||||
animation-delay: 1.3333333333s;
|
||||
}
|
||||
|
||||
li:nth-child(5) {
|
||||
animation-delay: 1.6666666667s;
|
||||
}
|
||||
|
||||
li:nth-child(6) {
|
||||
animation-delay: 2s;
|
||||
}
|
||||
|
||||
li:nth-child(7) {
|
||||
animation-delay: 2.3333333333s;
|
||||
}
|
||||
|
||||
li:nth-child(8) {
|
||||
animation-delay: 2.6666666667s;
|
||||
}
|
||||
|
||||
li:nth-child(9) {
|
||||
animation-delay: 3s;
|
||||
}
|
||||
|
||||
li:nth-child(10) {
|
||||
animation-delay: 3.3333333333s;
|
||||
}
|
||||
|
||||
li:nth-child(11) {
|
||||
animation-delay: 3.6666666667s;
|
||||
}
|
||||
|
||||
li:nth-child(12) {
|
||||
animation-delay: 4s;
|
||||
}
|
||||
|
||||
li:nth-child(13) {
|
||||
animation-delay: 4.3333333333s;
|
||||
}
|
||||
|
||||
li:nth-child(14) {
|
||||
animation-delay: 4.6666666667s;
|
||||
}
|
||||
|
||||
li:nth-child(15) {
|
||||
animation-delay: 5s;
|
||||
}
|
||||
|
||||
li:nth-child(16) {
|
||||
animation-delay: 5.3333333333s;
|
||||
}
|
||||
|
||||
@keyframes spiral-staircase {
|
||||
0% {
|
||||
transform: rotateY(90deg) translateY(105vh) rotate(0deg) scale(0);
|
||||
opacity: 0;
|
||||
}
|
||||
40% {
|
||||
transform: rotateY(90deg) translateY(61vh) rotate(0deg) scale(0);
|
||||
opacity: 0;
|
||||
}
|
||||
50% {
|
||||
transform: rotateY(0deg) translateY(55vh) rotate(0deg) scale(0.50);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
transform: rotateY(-60deg) translateY(27.5vh) rotate(0deg) scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
100% {
|
||||
transform: rotateY(-90deg) translateY(-5vh) rotate(0deg) scale(1.2);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
15
thsf.Dockerfile
Normální soubor
@@ -0,0 +1,15 @@
|
||||
ARG PRETALX_HOSTS_ENTRY
|
||||
FROM python:3.9.16-bullseye as thsf_base
|
||||
RUN apt-get update -y && \
|
||||
apt-get install -y bash make python3-pip && \
|
||||
useradd -m -d /home/thsf -s /bin/bash thsf
|
||||
|
||||
from thsf_base as thsf_build
|
||||
COPY . /home/thsf/
|
||||
RUN chown -R thsf:thsf /home/thsf/
|
||||
USER thsf
|
||||
WORKDIR /home/thsf/
|
||||
|
||||
from thsf_build
|
||||
RUN make install
|
||||
CMD ["make", "run"]
|
||||
8
thsf.net.code-workspace
Normální soubor
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||