From 145d29c40f4f3be9060d11ead7825d2816e15fc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADt=20Tlust=C3=BD?= Date: Wed, 26 May 2021 17:03:23 +0200 Subject: [PATCH] =?UTF-8?q?opraven=C3=AD=20gitu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/kinoostrov.iml | 2 +- .idea/misc.xml | 2 +- akce/forms.py | 9 +++++ akce/migrations/0001_initial.py | 26 ++++++++++++++ akce/templates/akce/akce.html | 30 ++++++++++++++++ akce/templates/akce/formular_akce.html | 31 +++++++++++++++++ akce/urls.py | 10 ++++++ galerie/migrations/0001_initial.py | 31 +++++++++++++++++ galerie/migrations/0002_alter_album_datum.py | 18 ++++++++++ galerie/migrations/0003_alter_album_datum.py | 18 ++++++++++ galerie/migrations/0004_alter_album_datum.py | 20 +++++++++++ galerie/migrations/0005_auto_20210518_2013.py | 32 ++++++++++++++++++ galerie/templates/galerie/alba.html | 13 +++++++ galerie/templates/galerie/galerie.html | 24 +++++++++++++ galerie/urls.py | 9 +++++ .../kinoostrov/img/Ghoul_2015_film_poster.jpg | Bin 0 -> 28779 bytes kolotoc/forms.py | 9 +++++ .../migrations/0007_alter_kolotoc_obrazek.py | 20 +++++++++++ kolotoc/templates/kolotoc/formular.html | 26 ++++++++++++++ kolotoc/templatetags/add_css.py | 20 +++++++++++ kolotoc/urls.py | 9 +++++ 21 files changed, 357 insertions(+), 2 deletions(-) create mode 100644 akce/forms.py create mode 100644 akce/migrations/0001_initial.py create mode 100644 akce/templates/akce/akce.html create mode 100644 akce/templates/akce/formular_akce.html create mode 100644 akce/urls.py create mode 100644 galerie/migrations/0001_initial.py create mode 100644 galerie/migrations/0002_alter_album_datum.py create mode 100644 galerie/migrations/0003_alter_album_datum.py create mode 100644 galerie/migrations/0004_alter_album_datum.py create mode 100644 galerie/migrations/0005_auto_20210518_2013.py create mode 100644 galerie/templates/galerie/alba.html create mode 100644 galerie/templates/galerie/galerie.html create mode 100644 galerie/urls.py create mode 100644 kinoostrov/static/kinoostrov/img/Ghoul_2015_film_poster.jpg create mode 100644 kolotoc/forms.py create mode 100644 kolotoc/migrations/0007_alter_kolotoc_obrazek.py create mode 100644 kolotoc/templates/kolotoc/formular.html create mode 100644 kolotoc/templatetags/add_css.py create mode 100644 kolotoc/urls.py diff --git a/.idea/kinoostrov.iml b/.idea/kinoostrov.iml index cdbba06..b99792b 100644 --- a/.idea/kinoostrov.iml +++ b/.idea/kinoostrov.iml @@ -16,7 +16,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index ffe629d..0f0a89c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/akce/forms.py b/akce/forms.py new file mode 100644 index 0000000..eb4b41c --- /dev/null +++ b/akce/forms.py @@ -0,0 +1,9 @@ +from django import forms + +from akce.models import Akce + + +class Formular(forms.ModelForm): + class Meta: + model = Akce + fields = ["nazev","popis","datum","ofilmu","rezie","obrazek",] diff --git a/akce/migrations/0001_initial.py b/akce/migrations/0001_initial.py new file mode 100644 index 0000000..ed0cc4c --- /dev/null +++ b/akce/migrations/0001_initial.py @@ -0,0 +1,26 @@ +# Generated by Django 3.2 on 2021-05-13 19:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Akce', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nazev', models.CharField(max_length=64, verbose_name='Název')), + ('popis', models.CharField(max_length=256, verbose_name='Popis')), + ('datum', models.DateTimeField(verbose_name='Datum+Čas')), + ('ofilmu', models.CharField(max_length=256, verbose_name='O filmu')), + ('rezie', models.CharField(max_length=32, verbose_name='Režie')), + ('obrazek', models.ImageField(upload_to='akce', verbose_name='Obrázek')), + ], + ), + ] diff --git a/akce/templates/akce/akce.html b/akce/templates/akce/akce.html new file mode 100644 index 0000000..7b4c732 --- /dev/null +++ b/akce/templates/akce/akce.html @@ -0,0 +1,30 @@ +{% extends "kinoostrov/base.html" %} +{% load static %} + + + +{% block content %} +
+ {% for item in dotazy %} + +
+
+ {% if item.obrazek %} + ... + {% endif %} +
+
{{ item.nazev }}
+

{{ item.popis }}

+
+
    +
  • {{ item.ofilmu }}
  • +
  • Datum a čas promítání: {{ item.datum }}
  • +
  • Režie: {{ item.rezie }}
  • + +
+
+
+ + {% endfor %} +
+{% endblock %} \ No newline at end of file diff --git a/akce/templates/akce/formular_akce.html b/akce/templates/akce/formular_akce.html new file mode 100644 index 0000000..5e304f3 --- /dev/null +++ b/akce/templates/akce/formular_akce.html @@ -0,0 +1,31 @@ +{% extends "kinoostrov/base.html" %} +{%load add_css %} + +{% block content %} +
+ {% csrf_token %} + {% for field in form %} + {% if field.field.widget.input_type == "radio" %} +
+ {{ field|add_css:"form-check-input" }} + +
+ {% else %} + {{ field.errors }} +
+ {{ field.label_tag }} + {{ field|add_css:"form-control" }} +
+ {% endif %} + {% endfor %} +
+
+ +
+
+ + + + + +{% endblock %} \ No newline at end of file diff --git a/akce/urls.py b/akce/urls.py new file mode 100644 index 0000000..6c9d68d --- /dev/null +++ b/akce/urls.py @@ -0,0 +1,10 @@ + +from django.contrib import admin +from django.urls import path +from akce import views + +urlpatterns = [ + path("", views.akce,name="akce"), + path("formular/",views.form,name="formular_akce") +] + diff --git a/galerie/migrations/0001_initial.py b/galerie/migrations/0001_initial.py new file mode 100644 index 0000000..6b38763 --- /dev/null +++ b/galerie/migrations/0001_initial.py @@ -0,0 +1,31 @@ +# Generated by Django 3.2 on 2021-05-17 11:36 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Album', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('nazev', models.CharField(max_length=64, verbose_name='Název alba')), + ('datum', models.DateTimeField(verbose_name='Datum+Čas')), + ('obrazek', models.ImageField(upload_to='album', verbose_name='Obrázek')), + ], + ), + migrations.CreateModel( + name='Foto', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='galerie.album')), + ], + ), + ] diff --git a/galerie/migrations/0002_alter_album_datum.py b/galerie/migrations/0002_alter_album_datum.py new file mode 100644 index 0000000..66b2162 --- /dev/null +++ b/galerie/migrations/0002_alter_album_datum.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2 on 2021-05-17 11:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='album', + name='datum', + field=models.DateTimeField(blank=True), + ), + ] diff --git a/galerie/migrations/0003_alter_album_datum.py b/galerie/migrations/0003_alter_album_datum.py new file mode 100644 index 0000000..bced06b --- /dev/null +++ b/galerie/migrations/0003_alter_album_datum.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2 on 2021-05-17 11:44 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0002_alter_album_datum'), + ] + + operations = [ + migrations.AlterField( + model_name='album', + name='datum', + field=models.DateTimeField(blank=True, null=True), + ), + ] diff --git a/galerie/migrations/0004_alter_album_datum.py b/galerie/migrations/0004_alter_album_datum.py new file mode 100644 index 0000000..e691b67 --- /dev/null +++ b/galerie/migrations/0004_alter_album_datum.py @@ -0,0 +1,20 @@ +# Generated by Django 3.2 on 2021-05-17 11:45 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0003_alter_album_datum'), + ] + + operations = [ + migrations.AlterField( + model_name='album', + name='datum', + field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), + preserve_default=False, + ), + ] diff --git a/galerie/migrations/0005_auto_20210518_2013.py b/galerie/migrations/0005_auto_20210518_2013.py new file mode 100644 index 0000000..d30f4f1 --- /dev/null +++ b/galerie/migrations/0005_auto_20210518_2013.py @@ -0,0 +1,32 @@ +# Generated by Django 3.2 on 2021-05-18 18:13 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('galerie', '0004_alter_album_datum'), + ] + + operations = [ + migrations.AddField( + model_name='foto', + name='autor', + field=models.CharField(default=django.utils.timezone.now, max_length=64, verbose_name='Autor Fotky'), + preserve_default=False, + ), + migrations.AddField( + model_name='foto', + name='obrazek', + field=models.ImageField(default=django.utils.timezone.now, upload_to='album', verbose_name='Obrázek'), + preserve_default=False, + ), + migrations.AddField( + model_name='foto', + name='popisek', + field=models.CharField(default=django.utils.timezone.now, max_length=64, verbose_name='Popisek'), + preserve_default=False, + ), + ] diff --git a/galerie/templates/galerie/alba.html b/galerie/templates/galerie/alba.html new file mode 100644 index 0000000..ce80bc0 --- /dev/null +++ b/galerie/templates/galerie/alba.html @@ -0,0 +1,13 @@ +{% extends "kinoostrov/base.html" %} +{% load static %} + + + +{% block content %} + {% for foto in item.foto_set.all %} + {% if foto.obrazek %} + + {% endif %} + {% endfor %} + +{% endblock %} \ No newline at end of file diff --git a/galerie/templates/galerie/galerie.html b/galerie/templates/galerie/galerie.html new file mode 100644 index 0000000..68ab53c --- /dev/null +++ b/galerie/templates/galerie/galerie.html @@ -0,0 +1,24 @@ +{% extends "kinoostrov/base.html" %} +{% load static %} + + + +{% block content %} +
+ {% for item in dotazy %} + +
+
+ {% if item.obrazek %} + ... + {% endif %} +
+
{{ item.nazev }}
+
+ +
+
+ + {% endfor %} +
+{% endblock %} \ No newline at end of file diff --git a/galerie/urls.py b/galerie/urls.py new file mode 100644 index 0000000..d8b094e --- /dev/null +++ b/galerie/urls.py @@ -0,0 +1,9 @@ +from django.urls import path +from galerie import views + +urlpatterns = [ + path("", views.galerie,name="galerie"), + path('alba/', views.alba, name="alba"), + +] + diff --git a/kinoostrov/static/kinoostrov/img/Ghoul_2015_film_poster.jpg b/kinoostrov/static/kinoostrov/img/Ghoul_2015_film_poster.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a675a67ca3195620541f3359f78827c668b77ab GIT binary patch literal 28779 zcmeFZWmFx@);8K};qDsT-95OwdvI95g5WN}o!}PS-CaU(m*63R5S#!B1PK}fcV(Y_ z&VJu<@BMMd`2O8f&FG$8J!{r{W_7QAdR8}2AD^}WY-M>Rc>n|g0gA8%c-jU+pbIF@|mb6qw~d zt^eMFi@^WZ01+3#{YUorqx!Usl3?%Y=_>FmK_Y2#uA;jngb;`Ft2<>cnz;sit` zd|fTA9U-1nRuDU=vlz{fxBWC!P#ZBC1Aa9wHCGvkJyg-(9iro}u50b@Xf13*BOy*D z>MP>wEq+W;ls<};%>*uEi5d|$;HFT!@~~KVE6EI_O$e6clMzD zw*^^a=f7NXwRiD!@vwJs{g3hg6@mX8{woeNRR7r* z(RH_U_HcrFc)$#6Lu?`L5NB(M7>%F$O9d}3T}6L&7cFZqh^MThlL8GV3=QYsaQ=w@ ziHkVZf6IR(@ZSjhHv<2Sz<(p~-w6EwF9QECD~L0UPWixi6Yz8bSZMy6mr(I?Z~;Qn zN^0xM%bVWH8zX2Eb%sI{^RxiFN$dhW@WM*j0I^g^rS7xOq99XPfH7 zhfh0bw@NZH=9=0X@=B_5FfIxJXor7vVMYNbXHR!+1!*cnBV#J0PcV}C3?KmL07^@1 z57)o!{qNNulKFSJ{_q#&1eVzUR50I)eQCVVYw(r6-8u=GJz;X&pL+LywVn7&{vT~UA=WT^sGni==-yrsSYN1r;u7uS`KK+~ zAN=^%uI_*22$(ErZEp$FLF52dV3+7wLoVAy`_rL1k|7;KdQ~(RW2S@-4fEHi^*a03u5O@wq z0&;*dpaJLtMt~V$4cG%tfIHv=1OlNz6c7(20~tULPzaO()j$K#0(1hsz#uRNOat@4 z3a}1r0sFu=;0(A1e!-q;kU$t9JP-+p5=0MT1@VA{K;j@dkSa(UWCXGR*@2uvUZ6lw zI4B;J3d#W$gQ`Kzpl;A0XcDvl`UKhr9f2-D_h2|MIv5{J4rTyzf`!0RU=^?~*c5CB zb_4r^BfyE^H{cR*9k>HL2%ZM7fVaTkz*lep92y)U95oy}oDiH0oCcgRoGqL?To7Cw zTqaxzTmxJW+&J74+!ow-xI1`6cszJ2cy{>b@QUzy@Ye8d@Imme;d9`t;5*<);FsXH z;m_b75ik(Q5LgjJ5R?!M5$q6r5TXz=5h@Vc5k?VK5cUzS5fKpy5g8E$5fu@Q5FHQ$ z5MLwaBQ_!qATA*8B3>aOA(0@lB8eesAXy@LB1Iu(Bh?}GBP}BBBi$mSAyXprAj=~g zBReC9A!j1jAon3JB7a5xg@TPjk0OGifntN=hmwR+hSGyFhq90I3l#^I5mgLT7u5kZ z6!i^i1L`R1XVgnHG&CACVKgl?C|U^G8?+|03AAmrJ9J!h7IYbO6Lc^1MD$AZ0rXGk zmlzlr3>cCa#u%O$i5S%w!x&#MZZYvNIWUzlZ7_o|b1^$G7cozEyvC`)nZ!B7MZ#skmBY2cjleC% z9md_ogTtf6lfkpb3&$(N8^znlN5p5uSHgF|kH@dae~*7gfJ?wfpikgSkW286V2cor zkbzK%@FigqVGH30!h0feA}JyWQ7lmd(IU|e@iSscVhC{@aU<~x@jVF@i5!U|NeW3P z$p$GrDGR9zl{}k# znEX2hA%!G`14TMTAH@+R9;G-Xlro*NpYoWBfJ%z$CDj|M5vnt4GHOL?FY03I_td{= z7-{rq!e|<4HfT|4g=lSQ(`koj&*&)W)aU}~YU$SKQRs!}?dh}V$LVhv7#R#0q8U0F z4jG9Vl^FdQYZ*T?VK7NBxiOV6Ei)rB3o$z~=QGc{)VI=2*e30<2KheAWdv z1U6wdXSNcyRd#fCDRyu6TJ~)YLJn1qFpf@+Q%*WgW6l)Lan46Bey*2XWnAmrxZKLz zVcb337d$LH);zg9%e)x8^1Q*kUA*Uftb7o@0=|#@c>HSo(fmXFzXb#Z+yxp0js)oh zEd=ufSB3C}G=*LZO$Z|hOA7}J_X^*M2#9!!w21t8&i>r-dCl`fQASaSXqo7)7>$^v zSh3iaIF-1Cc#-&)1hs^vM2W4WQF8cDP}1LsXD1sX)bAZ>2~QG84;ORG6S-3 zvI??svhU?^<@DroK$D^)96q)(=v?bc>n7>0>oMth=?&>)>6_?R>)#m28l)O*8FCuFGMqLdHG&#-86z3% z8&?=#y^wp6@nYYE-z3W9gDIn_uj!;2so6`jcjj2;mgcP%2o?qwH5Lz+8kQxNS5`_^ zc~)oEGS*qv-)tmp(ru0)VvtnGS6eaLRNF&4F}pOoBYO$^O#AOp8E6jl+(FTy(BZ~W z!?Duw>7~KTMkiz^3#V>pTxUn;5f=&wW8^@6+mw-W`P-oHEmKEOI)D3CfZG;sTs)T`nk zP>@y7P%v$9MDTuyLP%98YN%uAY#3KqYS_ohm&p{bz=G#$+a6W?>d;mRHu+8`U>m*>u^-*$+APIV-u+xs7>bd9isn z`8N5B1(F2~h2(|th4)3!qL0N2#T_LKC7Gp&rQW3nW%^~~V3w{rJT&-0%4w;XRPd#QVK-x0h^>O<{|=zHq-@4p&w z9r!+IH@G`wKD0h;IJ`WfHS&H`WprXper$MLYP^3!Y@&BkWU_loXsUBsV7g<5f2Mtw zf42R-!26Cl!MUz^;rX5g(S^Q6iN(Ps*`={%rRC`r^_7JWdLKTnnyhYpwE1}W>E);M zHSe`w>mi>JKF4ifZ)AQU`%<#WyxF)Vu=Q?Rc6(+=XJ>uadiUF&$KJz!!~w=Z=2yzE z)rUNXy+`s#^T#ia_rJM*`}IBQ1m`60lw zt)`@v|J1>{(fn6e z|Ke?b$^V02{x3Jc|FnZ61OPZ*7<(=Ir_QAW0EDh!^~oMkJE}h|Wwdpv{zn|x|C6?( z(uYEPpw4zM{LVJezfy%z=RfT2pD_Kep8pT*{Nv|8oY@oN3*(hAKV4k?+@W^%o>WTC zo)C9u%Re4jzWi%+-2eFK;o|NI^>SjP;^E>F1^^FRUY@^P0-?*oXx`@2(}`Gw2G~qZ#b$jM;11C+->)ZyYUn}XE*qSF_P5smaN{O6(tXv z(m;8MSManVS_UzzF=d(SSg4MMXcTb`q`1Srt8Hi&EZJGKQ%5+c#%RPK#IUh3hp*Wm zyrIZ0$j*xztvF?_jk7GD@tBJF3Z|hNPF;rY5B(8_3C8+DBT9FF=RD?gO6v<1>;yVG}VTd}ahpP`O>sc+X z$fgLzBx9${C#ZfVi9M=~vpubS$&xchAfTt_;1I8DwPln++BIqqC1>V(Rs)wK6QZl^ zn!`|D6Vs%xtO>m|ZVF`hfYZ=Zfpt{BRqgB$D^Ch_aj2Q9F`dtsbS{}$p2S9}sb8r6 z&XT!}5=(%i z2NkUOSiR5P-Iqvqqohh;&=`72g=0I^<2D~|a=}_`V%%HNp*wjZC>j4kA3yz~A$=w+ zGQ3zP9ejj;%(Pc+$|3trzOcN(t`+ZNk>O~4q}JvKH9D`6>!zImlq!nL1j|v2b!R^_JE^HYX0z!< zcrld9s^Qz?MJ(mZ8>SyH2S~QyvBovLZSbhB37D$wu1Kt&vNqenm{v07p(oSQabP9& zGC<=0Sk>FqD~X_zI?^tZOzy8<)0tNP-`6~tB8wiL-i4)nX?@-&hZKP+;jA) z5loHjkFwVr^T#IW9pjjx4s!eF#7nc(AD0}!1~v0bbzM#VmA-IAWJLose9hX%As)5d zPxpOH1-m}+inFDzf32%yffwofwz+YzAb;EuLajIdM-qpCR^6W^Uq|&VYR9&Ey)<0u zT0#;na3gAPj&hGJ?rY{$H&+~|8ua*;!uf`%^}p0+=RD&(uE9ED8PS^@YE5nV$cNx1 z`$B(J^ONyL@AF_j%VP=ztRlZFM{kSGcD$&Sg;vDNgAbJIuE{^TM1C4W1f9_D`|=D1 zJHf+^Hdrra^}c34Tj%e##7nIqxXd{@kyQ`3u^W{}(zXR58~ zSaar28tO5zK)#f6l(*9_Jzy$^A8<+qI#aLz)V_I6b6o@PoGg9SfT3aZUgwdd@p;jL z*w=9Rt6&Kk>sg^4)_fb+w~AsOvQ|7r$OGh{?)2qobcfNVvgPO4#=YS_ILek4xnlg_ z`~ZfD4Y;~bZ|@!UzF04boX2^2c_wVU*jog2=VO^f=VVBFy+i&kYNrjC7@=Oe5J7i-Tcwkn)$%jKur^zVi^I;J;1l1U&Yigp zQ&rf8Xz!i86q}H`zPbgRTJ;#Gm@Pajsnby>HzVkXMjj4&qKZKfh7r)8iJX($kXiIsTAW$E z^bj2KoHV}3(;T+p^^a!d_O__Wq<(3EAEH!_-=%{iOOB&gk}0D4CLVv{HMTx4v6c5{ z=~*zcF#d)XtC>d~`wQ)#jB?%I=x{ruY=(G|R7dt0gyfj2O|eL|=?2UB6cP0lb5sZI zOEBX^bmf&a-K49P;Ag9wkz*Q=+p~KojH9c63Yth0a^=V z$4uot&BLfIQKrNyD5avN@hk)GaRqQ~VXeSH4gyuY&Fa+F6WBCJ`HQn2*9eJe&iQphw4-!V0qu&+{U#NyqOX zPs?I{3!QefV&BX+)5C30`fbU+WlvAvUL%!Ku?ZVdGj{TLlxm!&1XNOMdpTk`bNULR zDNuw%v81*crWgsoZ!d|;=*~HWT`Iko0=+!>@bEc(v;rwP2~esyoxMb@GEiJ*IuC0y@1|faCWL}PZUqW{hUi)I-HA+ zYjhiJ5h)NvlDB!H5??w1Zt}e@Ebh1pt`DfZjgFYRUv4oaPKco6O21}tpMp!ZIJe+h zB*vgFvB-(CpdKYNv`VK<0dfgBiwedHaaqR4MM7|f?d^0io2i9?2z4{ zUz1rzh<{8>UDhOn&eyg0!<$v5eC^h1o`o+Y|NVmChi7s%Y%fKn+U4HL8H3ICx8qf^ z1%99z%TO;&RQ7)FxLI;qhbO#rpY-^YZSfdCLb1|8GbD~-(@vLJMY_c{mb@ZK{{kH` z88(uN7F_eNvN&!f39%0x;c4r!L5IYcQ(vs5l7={x>S#jPC54q`GRr4cU?&oqlD&?S zWqBFjN=ZEd)bh%JAoET75^nQ8^HxQAO}%V8?uvfVN~!iDX*mI_gR${4=~ZB|ISti- z1z~z-I$;ECN#~<4XXisF$|Z6{z1e4&d={fu*tc(uD9^W{%$DU@48<5UaqNDi59TS+ zTbbJJ*K}}z@22HYjOVVth~J~Xz+H7FEpnIbNRP@hEJcXqs>sNiVPk8nYSzasS#n;T z?krd*FsX25i`=7i2J>W}CdaeZR#_P01Wc*5wN#_fMa$Rlr?*$LYnNx^j>HBIOl7ls zS~pp6Wu~{4ms6MUwNYcBsK~SPK^5N%(W;gZp9!4dk3}dDyrF;rY(9Jgtz783tf1MMpto=h1Xwss;aB}ZjaxB>AOgVbe+ z$@4jF)a4i`4$AWmZi93q@b)NdVOO4kEqAJ8q@`Hc6Ds7*G{zR*i)UC4G-j+iDS8ndTH0ZQOZ3tc)3ZNmu+> z4yN=H+BtRZcu%&1{hd3=n@#p~e)mf1p|YLBcJ zjgDT(Oc#7InOGuon@pF&%1h+OQ$=9lTpV{GrFY?woA7?YtQ1<|)Z9mm-|hPjpG8 zA*{Vm?Jj@KE~rI=|0BzMQRu7MlvS@TuF?Bg%@$=H6K8y8j~!y982oo~2eczE+D}?r zHX&U}n|4VaZJ+T3Hbi?zKeI4VclDs)D&;Wfhq_m>EtvFD$7fa@L)v8_#p(-6V_(cm zKi~VjP-PH*0zy=4j5=}@C*HR2-@f$-l_^|lI^E}OP`6&^EN|}W=!)}oK0Q9YftP}I zZ8oTVwfvm8-QgLrshAfxL(8MruGkp(73#&{n7)FhiTpnHfUwkHHU(L4fa6Pql7NzS zlos1g>|?w)e^0wU?v`#9HX1V%GyN$lkLf~O*&65JNocw;ZE89@Za)!1P+V?#5LrH# zQ*FPVO`1U6#lm-J-4>~8$a!g6*u==07Bsh#BYmP|m8roCr&`ih>a#9>&%z0jpRwai zSED!-_2m%J1jh>QXO=Zgl{P8{mB^?*2Z9~^ZL*yFI=h!|UEfIC`wTRTB)$cMOR~=$ z`P`Z7c-O*Gb{69GSd+E1K*hqs7WeSlZv&C&r~vFN-#6v$n^tkG+7Hx>oPK5`a9S+8 zGavM|6OHSa=Hz;CaG58$*NJxUi%9u`i9Rhca-$ycF!LL*Ak=f?F>gk4Ji`c|wS;|IOenwGH1? ziB%eo2aTSkBN?N^8oV?D8#Pm^YzfM{t!WxszdCy5F~d{g8r_uYY+B4af_E{`Mw*6H{>ifWY{1LR_aS@zfpS64?l@P*pME<_PkyH%UZ>pBLN;fJw1=& zi9uMIF7=$Yes=1jtAS`)WJvaVgHFnRZ51ZB!{g;?tm*PNEBp&~`Fdm>?Qjk4OnD}C zHkFtJKZ2Pu;ZuUCxD=;rcMdu^wru$n+8nxzrQ(AZ00$0U=BW~fh};mZ1~0R|Vv4B- z3qO+tOFQp6&GE3dOgV)HX>!<(asdXklqB4Ul_oAjbjqkb-;Kn7>9yswE8N$rk=P39 zqo46oAh?Dt1vStdAGNN-vh_#aO-AFE^CijmuN}V0(+M-B>X(c5Tuj!5q|-5t<*Dw= zNw*vKC2@s7q^Fi6nX1Apj2x7(z=lQidX}DE%VlDehyl>`*@!IZ@m3j0QXULeLn}$r z4`9MwO$R-5F65oe*96Q3A_fMg+KMb3?Y=Giq5+gWh#|bi6FpU}!!^~lMObD0RTkQyDGH1oNOeHx@REk)}cDaxIJQye{v6mZGM#bQ}}? zd=1YsjpINYJ$*Vl!gENyX@G9%4VDYXJ#S1Pj9!)&bL3brBw$NozNU}JgpX(t#=Q?~ zp+812;#9_K%x!dt3cB?Z>E~)8H#4Sdvgh^Fi(Cj}B9PZDa;IlV;+3tIT;Y^Yp0oa_ zbtLn!VUH5@id{uzv3S2iDvYUNnRwZI=jX}(!+5S}K;qPQvOxTY@y{Awzs%Dvnn$De zZ~Fh@?XYyI1n3Ef+*jlOg|cjqR|S)~)n17_0cz$>og3CiW?3*I_)~1;C|LRz(yQO7 z^L$H6q=-4tiX3RAL$F21{K%41M~V}5$GS_`q1G=19|d#r@TT@(Qta0TCm+6K{c@=& zdjj6I{?!{SKPv&cCwk1UXYXG->3EFn+z4)2cY+W2KJtT|sGJ38PLk>Tf+Q^&ef-xSParntb?gtszn&t)jv%38$}$1S~yY_o>d z_>xG0l&h1re7Q9Zwl6ONkDMx%1L1w0`WxqbA~Lxh%`XM37TX#>R@Y;uFRAe@nYa6Y zld9LT$m7|BL{Yx@&moE+e7a~~Z@k;yKG7aLdDkVS<9QbNJsQ9e9)tsT3zWan7x^jZm9B~}zpQl!F zvC&RG{2}>NT;|q95RV$-Sa07V`kAFeIn+3YUoY^@9sd>zHxozr((EXqbv`OsKj*QN z#)Iq#SBF%hac?Ngyi(t)FAt7(>(q%(Xi`fuh?I!DPv(t5hBziZ1@mk0!4u$>8N3nQ ziFA0odUr{qT%xs`1a~bmE7}q$q!%KD_*Sp3Na=vgyV}Sw>5_<)E<@{LQjB`3IhBOK zxpXf@_X#K($>OQmOPZ3y4GMa9H>ez?Gg299Wu#yIfuDfX+r(x!2Ws#r$hk$DN~fDm zx}p*NW&5#s<(EeM&ap)P(r=k!eCw(pte6LiuGL?haluFr}N;=se3OMYX=h9fq2}gldd6IL0h0#wsHge8}^?YdZk+_(3&(v~seaduS>z ztyX!gR(RbHi(Wwo*I5CvoxWhy?#dB;ns=;+CemDKvw9LbYF(1T*7x6j&-GUanuC9y zR9^N9ox2TCllzAh<_ig1;9!-C6q;cwm30>3TFA?o+K+x=#2dhHyzqxl_S)Jj%u=STD`W67S7>Wzy`fV-M!O%eTCyZ# z+>8@lj%TWnboJI)yDC*0LmRWrimxJ8v4|pp`yy34T$7-op8Fy#4lhojDDZnwYI?mn zHx4z+swV$x{O--I_jUg=i@HPg)+@>%$U&d3Yo`1nR_7MN3z1Bo0Dj}1i3!k!U1KcP z&3Hoaa-jGLm_^J?Zr}8I4p>bHypZTM{vqeV`1WiuQNoc;&Aw40e)aCe9CX9asnM&P zmLn0mn^*@uyK9Pg0=Ngy0+GIK-}qjmHd27*qtE z)5=Hrxw6wB-oB7n^B_~ATWE|_yLB5}74wU-wQ4bPFFpLLhJv}lrB|Rx62-LgYE4fF zX`f}47RB5f3tZ%#tL<~BWCPv#m2DnY?RH~T;E-?O*XDZC46~H`4Fp^X`z+(L+jm&j zl^>^c>-5xFE;$L(5gQf)mXnQCu<@-R|?wQwsy;z5)rl{YR!a`7*AfkzSCMF4=l(t zKIy7gVwOP6$nJ)|jwA>~8mzD}AaGz|I&Rn5x~gdCokDt_>bpRypsyTsOBnpBqQ~0& zRNNnei*SsOcIy|NCtuVzP(O#!Vw+pVPvpHW1?9B6 z>IV#>7&tmsx;vH4ZX zcO4`bH9ios=pI_H|CSG5j@bPH1UJ~ZHSVmFTN@%f|n zP;m4WaRr9@q3-yK2KaR=iN8v1d(;^%SK^;Gs8SKuDCuXB;6*vW`PPV7HqhW~qg!sQ zwGh!Ll97Sx&jVVhty=CYQuy@AQN*g?bAaR58w@>DW(8AmiaG?mco6f}Ve$Q2&CCqO zy<#`uw9(@zjSth^fZS2fi|*$(*76uB@3d->cd) zj$Tzvxfwmp3F({lVVJlHS&*qhlKsjrhQ@L^{#UHU7g#X>X1!Uwej!p#t+_cvI@WC` zY{Yt@cU?LL8v2c)5Lr}LblT;G?QskeHD3|EE27fv8zGe_KKdr;zxNjaQR6Z zr?tE)9B|v}S6i#9kqur=W`yM_IZK?m3RFHK!qW74H|IOCdm7S%E8Ssgv?^ z4Hj&4rkwHfUQlmb^P*p1#;T3qGEcsXLSWU9oYMF>s|4Rp&#W9SLXC2H=#{z0P*BZM zt4PGG$A7KpTUV_4|ZhVo6obo-Z6}46dGeZXGR~f>y&TRJHS7Q5YXn<`T#!Hp^p(?!8hh zzH62mUYXYn%=f5Wxfi)vSy?)D{goHs%8}tOMu~eL{yV3SGtx{+jrgb`F&5?vr2uQu zoycxu?QiEiatHgd@PjKgh5LA&$M_Eoy*&@Z*OcuCkDLnShGUJ|KRI<2PDEBaTQ{Tc zBi>OWy3bR}dtF+u+@)RmLmORen!G$gcMpY_E2KRV21AAKkAF69>b)|=EH_>_G_4!8XVT9wWc$Lg3p z3ul+V^2qsr82tY7Sz>wolrrlJdF}b54{XAp7aKO?51Z1571+c-?DY^d5Dq}iEv04Y z7MfDrJb1Q%y?su_C8=rQ8j@VpG%&yQH$w$UP-ET8nMr)BR~~<)5$U_r;xc%oywGPc zd;*%S9~EHqbyP?B2^eH(3f>Vj>Z<79nq=pwLKS>Ol-Q?y6rw5Dcmke10pah|rU=31 z#MQyuxjP^GFOptH(v?2KsheCq0d|i{hHQ~m^4^=68#zUaSw2Gu3(9@KJT(X!krT7A5J0?vaUP(KFG z)EKtt5TceBx0}fanOPfMwX;HOOGz)uN@KUJuYJsP>7S(afxcGE2=SCrMytHH+8I(a@&2x6}Ei> zBCKw-o&Z|bd^uUeL@2*6K{vZ#)5qIV9RHR6E&iqo=Vkt7jR#9Jo?qXyB#uNs^#%_F z4+`4Gbv}4E>6db^Y3a9Y;yu3b>NQ>Y?As`6u7=x&^xH;x*@2I_WWSiqDC_rw#1KtR0_gx~=ps%)Mnyi;c@d+`Lg=sT)f1wH|{&$9Fb=5_UN-JSrH(ctmM$KjQF zokv9_F`qN$v*|E{q2TRp9F#sbAn9NZk?>`|f#w3w@GBg0iIVr>MU7{oAIw-u%<7f_ zVVt|liwcFHI>m&q7_Ql|Td>(KuG|~DmnXeA<^*YRB6!tbjmBkZ)hdNgO1k{on877vzksBaYe**Bm zNrU&l^~E2R+U-dOPFc+yS(U2B$sH0?P9E1sRW~jl~8DSpZ(Qh0C2FKBU z8B@4t4|`6CMvO(Pi%JDa-`_HHU@=R(fd5#uuW%egpX^a|$E3&Q0w@KoX^u~&Xg>i- z>F+lmP=6nPY?J_Bw3vY3F6+A6Uw`_jS?TjI&iL^902cVL^}Zd%+{%)qJ}<**lJjnV`3AVdI`Z7cPC1(U)Fc$dl&CLi zA>F4l*V4MM6@KviS8bOA0}2scI+@&={ACF%; z{e#cgnN7W&NYqWrmBTj%qkL~RB6iax^j=DP9=ztGI4b7dAB4t zN^=2E=)NIb)A$RPf>5m2P=<^OatiYE9kB=QdK(a*Hna`N5mm_VtLLg8BbWd_->x;6h3aB9Y$0=r&<$LBNEIsamspjAU+0&!iJXilg$YV^t2I2 zqNe@_Qzzb@w>YzKB6oE69<-}4l2kWkU*#7PbD8M*xjMEfq9O@l>XtBCTbJiMo zvs;n~?SEf5)rW}$Kc_K$SBc8wDr)%o)0_0^-kxtST9VyLu?BCOMAZYrE9cnnn(Wgj zPt9*PY}1Be7e9T9SF@D4^ypNtW!AwNplufH`PTlGz9R=A+S)8F3T zBBUQnpOM-siX?jC;GGE#!u0wJLPM}fpIrQ>#9HkSDfK=F{cjJ-yzExkEfq$0BGKoz zN_QWr5-QQf9S3E;KLI(~o3GN}yL2|~^Be3-7a^*i(cc|As0mz<7 z%9!?nDxI{CNT(?)rV`&`JEvgdtJ_K)w5ywU_%doYvMeRlMqi%c;l9C*GJXsiPYd_3 zi^dLY{-5xdgZwT9D;wG^(X^DYS?uS?Lllz zYa*&{Z}1GyG?A{T=6N8C*m$^rXLKrb_vNO&XEhQ{kBd;yYSe-K4=ueU@!WKi_$&za zouOsL8zeM_so~*+gJj;3w-1_F#0tr#?XBGFhsX>Jr2?WKSSNDnYaR^hrF2FMB=%-L z&#^+Pm2pwZ^XC~U32lhA_?YHnpMclkT-=MXEhg!pq&O!UxtxqGn=ceckxX?;GR6%3 z!*Sd~d!-}yjrG`MV)LU!A3s`2x=Q=Y9bE(+FA}~OVf*ebNm`KDhz!5^;G-3aveQPJ zBeU}QTuM|AnaVl`e9M~hngd(*PmA3Y$;eho z`|@8mW|o`E!Z$D_)3BmEp8x|rQT*LR9+ej7;?wC!#6az+XlHwxv+l6r^V1eP>wwza zf_O5KMr_eGdt9;~{C0NaYl(+a=XwZj83UG-N)@h6hO-J?EPGA3iM7+HE-#E?d2v?2 znc#_-uVJy#Mq3i61wZf-}^PCh%U*-20{38 z%ry8^I0Z*1W+Fo?Ju4Em`;wf+zej|pQySzeB(Z3@UF_7e@F3^5L|B0?&i!MZ$5HWG zhX(l$;TurSE_EQY`=aw~ldHM7)2CUtZF5X=R#|O&qO6zF33Ppzt6&~icm8H(whi7s*Tt(W#M5odf`EE*EYE)DVVFvok=AU-Oa!91nQQGXuyqES)O0lTq$t` z*=0sHZej**;OG7L7Y$5l$FQ$&Xx{l2d}E6XCA!6dd=%xnRFJR^e#=7YduA|ZzG55t zIb*@JShg2WeHr;e=Yw5{jIT^AC;0+jo=W`5H9K9mE@5Cx_*i-LSnW>EFa3O7q}h@F zsN}>CCOyBoEk!qM$go65C1b|CZDU78#_=nMJ?0)+7e8i)#b<(WHu`Z!U83K8W!2JZ z5~98|7k8bZKAp_3*r9}7)%$NuZ}d3LXnPKy3DD?%5Pk4p#~JQaUOQXbDfW9w(1-v} z?zBi7nM^fP7cfWhJqTre+?S`;h*NJcUW)AZirPRb>O6Xh`?DP4!58BeV#TW$UksQb zXG0R;%Vdy%i;&zMYyB2d&DiAQoS*IiW?XIde$$6nVjpm;sead9qSbr9#}x@^UACjc zrD()}`(9EM#81R~V?^saXE3IQVHKGnetf=tI@c8}Ae`#tYgoM}&O|JDaO5?hzvb5S z0^M8KnHPKb#*JhkdC6NPWxB9YP_{$tt;?L1JRYr|MAVSx?dv+AIXpl|SxfO;NhOc@ zxX<)XwuTC6ah#baBM*#2g;!DoMN z)+{SWFoES2K@Rr?N}ZTc5SzW$$O#G=&TY$waevWt@-O#{qT&t(_m?(=3cPxF<@{@U zC>-79R=VL9K~^&%Y{->6*x)tRLB?*5 zmCnJf3;y?IZ@A?ZX7C07cj^tLvx{85;SEqBP9oZ|O5P*ur0wcX>2iTVTOk1)&*Xl3 ztS%Zxs{AIAO6<9!O~B&)>z0vy>wB#^9ake-X72UToa@)8(WLe$ZYRx__!nm08YQqx zqsa3?JNWo4+^x58V@bel?apC${6~!q!dsy>su4~%zB8K(!EV1e?eIk6w`BdoR@o9h zZ(Gd9cZyKq0BsR_2#ptn+Gr>A|T&7NW!#uXB>}j?c}Y?*dnFFpstyg?G+ql678d)GUM zid>^VIxoGPsU*5UZt5nvXIC9}`+MC_cs*3iD4?bM&2f|0T~qD`1&%?#fDb0~PR>_~ zMu+J427$VwfwOr9cO~COn$*%YAse{T;+dl^6rc5tZ+b$0{-ae!2s-6<>E4^cJ}l_jyw1B%3jIk zvbK~hi<7+_|3Ph@VSjRg^RxToo)P+}AeQ;&@HETe+taM(@!GwVQ&s}$Gxv;%wb49c z^>?%G2X_WS%{y$vQgc0}E#IrB4395WIWxFP(Nbm)gL8a4XFl4v8AyEfOBN&* z-YwTt4Yt`zGFe!PSL4HFImP5=Ye}k?RPFn?m!>ukeCjUTaJgniO7vx=_hbKF*2ugf z`Y~Fqq3GL&`i~8=}??XHJ8p(UZ$30G5<%q`ZV>hW`1U0b7-LA-D5&&LH7d zc5d*edC4r2&y9HAh~kHHzVfG+T?2za2K7R}9QeO!OaLl0VSJCvY)d=j(I| zt>Ea40I!ez2oYw=q6ez*N(@&hRpkgPODb?A6Ti5skSR(gM$yDf?3of8N3SXH2CDy7 z9e53(+seka<%AEZPSA-+`nJUY=pz=Pf=bEGvJPFn421kT1kJ_o-I4YzJ`Ps=${5Bv z!&wpits8z5&}K!9f_8`BIz-qnaE!igDAh2^^zOwEAe^rg_6mK83(^81*ZpQFLEje7 zLZn+!+jF6K?6#E9PNI1&IvS;JI*Mcpqhayf_J(mm1!iZKAwC8@+aWt*yCpI z`Bjb>LqUS#-1RF1!RTL|!FyYrnzXQVgm+U3r?^MY*3sn(?(X3@!SH5IGTU$3pg$=< zoIl_CzyTmI0_+1P*grZz0RcGF+}N-jAeGx$N@#KO!r=D#|1AahXPzJXQgm)GdTY*m zbF}ZzoOu7k#k2(QE7{Npk_r10kVpzfG&)#6{j&>u^k!?FX_=Nl9Pfr?O4;qqdCauT zjeWAqh7>>wBiLZ6uPB((;Da!v;KvgX6u3E_X=In{vNbJn2Z@Xv?==Y+-6I%jr@Kqn+x8gM+<;;1ccl3HZM5RA1kR^u>KW zaQw`!;onsDC#*QN}V4pEJ#yJj?jD*ljFGNO6o>8+N>8If!}NHY`B6vzzCO zn^|ie<0)I_`M&R&C6-wjT$m4=i-}BwiHCBF)t@%wE?F|-8rYoL7tPwmmS?$V;LAK; zGUM03z!{CR;pgVgIcztEIdMF9I=x9`+iuu-hyMT_{5uS;S#7PLh1I`X1ZQ@IzU;^U z09^cAXN`tL^M=^TxBmc!fA|^9^)JWZ+n>gN^C!Q;&)|LdzI=Uu0sjEY|Jncu0Rj;L zKM?$DmZN>r6Yy=n{nF#`ZMNHK7TYrnGTUvk+S=P~rM~at)w4BsWZCB1ZNG)fZTuT= zyKTRKZ>#CWj~i{a+v9Dw-SdAQ+il02>8bN={5x;s+im<@-2M#nZMX1e;eYrqyna2m z-fUpA-L~Jt{tdRUh^=&QR#h&Nl&&S7#1&G%~@#foQj7c|E^Pl~TBf`%Yek@DwS?3ds z+i#_pU;NL&xdF1vGs8Y^P&WHnYxK4u!|x(^A3oNG#&~DwxjhS6wpj_bT_i`J18no= zd9wR0VXcwzHb;D(OAWG12o6sW_a;s<2ZDKAb(W73%p(rG>y}!1oY|}ek}E>b(h|j^ zCh2$p^W5eM+^3j#o<6~2=FY)`Anjt<;~cq!vTusGE*}H+g`;?Y_jMVwmBZWk@T6VhK4FPm2_k)$^H{CSr7g{-W@VEfs{k@mQN z{8)U>eqlGOr$XrFYdW=gu+HFoT71~-vuzhP`?mPMgP%E_o@6`&d4%f2+y_t zcCyvLzl*Oqw%`5@$DMn#_%zt@o8gbGudE+=AFK}9^nA}V&OiF^;NouE3oMhHBiua8 zC;tGO*Z%+}Bd@@9@6U&Ed{4hWi0=Q|00;pA00BP`E(V}$#gb)tts94$L+w|^?&Zdl zU&S#lQy%;r)h2awf}O|?{MPZsWu{va;r{>$w@>&>AMx<0*;Ly90QevHz?b->Ihx_D z;mtLz1;wYy0cH{qeY6`0vh<|u6Lc73styiZ*p{V*Ogrw#5`DK2KQ(JLUDcJ(8)r6g z#m_b~=EB_{=B8Jh-~4$00F1l!V7vIE$4Iw!BuyuJOmdNpy+s(k5QK{kxwO@|6Ev7T(f29jjrY{!p^1_zES&&3q)p6b^F-Hcqt?(to9wBU()smJ8iB7NCr zaoSb_IikawzCx-Fol+dVtoKClUuPCe7e@DDXy?UySg~U1wKDp--qaGA3j!~84C+1Q z+yJjQ&x@iO+$ZxwWN~pe3Y`p5fHb4kWa^~s*^LN3D56wHizwkiaA%4vxN|~ai01c4 zs`50Y(#=!^K+aheV?X&iWo`DiFV6j_g5}22Rx|5O-iQh$EH650>-|Ts+vR`Cs&v@F=8#w~mJz(SYqu%jCoUFijgs z5uIhpB;X3Pl4w1)>j8c>1OEUQ10p|nT|XC)l~O^AJVR2TmXcx38Th_l>=OrhS70b3 z`mUeD7H8&$DaAtqY95aA&JfgE; z9gZj(oYrX3*-gZVI=M3Ei@%Kcuza>RP8xHlwp~mK+v13zC^jjKr3{=^SY8QUc!rt3 z{j5{9WF9OL=HO=zYJe13B_ad5D~6gEX`?>{1OnxN%5jIsxWuODu3H#hFAJWlkW2AX=R^zJ#Q;bVmB;e0ng{!# z5NxmVtiOINkrkQ5`l@urI12gVu3S&5OY$n@t;7f2ndSJ4znf+I@m#QJeb?Tl3 zB+{6IW$d6!JF_%;`LY;@rV6tsiwVa+ReX~4`m8*&dROs4h0m+a#Pb$wgiux&n+8TO48hSf4Q- zsDpU%bTg4U@OiMMNqyLK$=8ZID50eB^Ww=4jt?iVHA%uwcaNHaaUL4nIaVowd{FtN ztKyFF;)Rh}Aik>_?SOw3o4=dGnz=Xf__MrH3*U&N2inCDn+W6NEXX4Bk-XDVc=Hv^ zMmrV~9T7M}dg8VOWue$h$iH;yi|$OvhE*P>zwo#VT)r3Pw-Y9FYWFHB>OI$c1=uV} z-}ZVg4Ao=sEav`1<|;o6AG|3a|%F+ z;{Aiw?Fxa%c{U7jK#+I0t-D3dIO>HG2rOMXG$B$xC4ir+#&mwD&4#*!pkOO16fhm# zC{e*CjR$N5FqeZF=9nY`qolI12h38rzq%5dpLci{PP2r5lVg(m>VOoQSm-Ih0Vk49 z1mzmUs!J3AF9Si5A%Ub%rja)sn2BG-0&IpLh9D0KWTcO}HY4iHK~y+B({SAMRb+?N z7?NKxVXTd5!{qKZ#KOWeI-xvGNgkf6_zNjKRss*J@t$bM6%rKF)U@o|Gy@N8k%Nf+ zNQIOc;^XXx-C`jD9~DtBRxY8X3KE$zwuBy}1S}UUTtE1)1|GqY(H;UivZCV>uBj5I zgurB}A%)RuI+&HoA?88A5)m9z!m0M$%ZL4`xXQy(St$@8>-bqX52wHUBq|Kc%FT6_ z0rPuj(Lwl@F9bZ7ZVc*>f_%++=jyo}SQuw>V~qH!qz2cW`c%UoS05(wW4*C1DJ5YC zv>OV@43#Q;q{4HQ2(?rvIl_7dwG1l;q^#9(#pbrj!U6*Z1$%uXFc5Is^T40sRQLR4 z)PdSEJy&t!(BOFr88~F7U+Ag?M*^zH5z9;Az9gLIhxVuo5$#b}x5A5vPbf@yOUS(} zco_M77Q+rleU6bCX}iN#XG0D{n#4M#?~r*RgES# zR-~hss3u-twM(B7#JIjapMM zKoP?CyE%FhPBMsOn2O;E9;lR=vJua85`g)$0%zu=I*u~)ED`4FN$98`M^n7IFB}#Z zhdR(X9L&XQ!^}l*OxdP8W@?HpO_*d>8gbQvKZ*n>iiZkhRL?Z-OYC-s#j-pyeBPzm z0hS!9dklD`n0nBQFo7Zr$tNB2gfwJO2?LSKX1GX^c;f{1vAc38rjbGt^8>gix+asl zP~nJBlEEC&$2qJSB;dFq2TG-{Ndi^Of_+t*q(Y=a-XoYfxm{FDnZX{HJ2eu+&n;^h zOIUzToU?K)@iuTmX_YhIHarh4v$|?i91#$=WLV#hcG%ySe8haiVmSf&4eOxz{J%A zodlx@#!)Y~&1bm53(JUFKw{R+dmiSq#_pU8oO=g_<9$l#bG<3ilUSqsNMK zCp^Ve`41IbBjDQSAoDgV@7)>GEO*6?5vP7@I1R|X*|d)g+>^&_@Kvb`*F!>Q?L(tS zx`qNTGhV0^3=!T(!fP{3DaesMKuk;pOQ#@VgYSXzxPN~xDIvig1rbD7WymlO0Ab?8 z#N3vLQt2bFn#Yc^G=(^Ec!We(&q5@YXaRsoNW``j1X3QrAPY0Jo>0+D4Z_i?r_G5> zEnOvj(adz%ESY~wVTapOZ}`HU$1^ysus^oBguT?UXg%Gnc$SV~_$uTmt_CKzUu7^M z`>y~yal*5<^%pEv)k`HklmR^ec=~?q)bPE+3A2m7Y&rr%3ga(bb?Wjr^ObQx9C>n7>r8)5?<^yEkx}zhJ44?Hh?vVa&mLiwOPl{_CRx2%l zCHA1#R24&X53Ki7k_AaFNABiV41?vWs;AAx3EIvuBci@0V~MMhb-*k`BgCSRIRxyX zkvUiygR49w=erP3A6JMz4Je32M4XEqbx}1pgdZLHsf2(w0T0<@-GW2Yb~9d1rpr%g zzP5U=i?0_<%)Yv?Gmq-b3SDzQi?;?2>d_RPl&FB2m1K8yl^?`bc;)UXF&EVtcKNK> zKNOQ2^;qOt!fZ{nx|<>sIrUyQK_vcq?&a$bVxn^=ad7@;FB=C4Yx{|}&{b$enu24!bF?z9MKO1Wz=RIds zeCC4*sAdR>Uf-%{>N1$=j~^5XhmnE3SFc{GXkCIpD-PyS2X*b(b?9}m#${-Kkdy0u zQU*j>K{+Q1T>z5IFl&|#a)bUxvO)PM4l?68qm^Z`X1*-RiHu9hDhbVn4jNI2t0I+P z5D&%NJyI>U5yP(eoaQX!+-Q#~nH9NR*_>uNM@To{xXMz zkq3cj*fS|m&G(u?3^iI9EGfdplkRYAtc@Mf_N2d;lqa4snjCPeEDdhaU?br9q%zrc2Fovxpe0VI$~+-Iu`PzcBld*5Z)CyEGa=k~QhR>pF8PZ@Y9 z0V78a!PlOg*J1!*GE9fnWYo(X{nai@_wt^~-R;V6X}Ai$J&=Dqi<*!(c}SkuPwC=ZVxnyqH7ZT@GM zyShXb&aTXMJwZ&e5}$l0fZV09`S~}K%%8;sDI`!36Bsz@#M6m{LNhAIQAu~fYoaNl zawmvuscMoD$A&raLWM|k!SUv-mz^W%29scRSB3A-78MRqmIKL0CIVC-a=SQFwj;|7 zE^__f7cOKlA1IRX`N$jT2L&gvSw5abdH#?(s- zUWg!#M7kr;erv0N)H1$b)dZtN@=sCUR}Ekp zJEc0M=WNYHB1ADP>LOZon{sr8c@d|`%_-7rNipl)dj!WZ6@_8OACGzYupQ8Zvs96R zoKjslCPJm069GjJuQGb7APlXHB;)1ZS9uSS_f{~xf*umB)ZvA)ZxKUeee;(h6_3f& zR<(ct)c3Yd@=}D8tXPtDJhkxU!1NS3T%Vq9f$93ZzgaPkK=L~)AqRGEvdtT0Vd?_; zXn&wV*oi_A&pPK$5m6XKssb36CMBkP1dm|jzU272ycKa^o9-!MCD%+2C<-E7X0udv zT1QI*q;~Z&Vu&8Fe5R~&N}DO#yZ-=pP)Q|c&G%+$SyvtNSW+Yj#P&X@Sp^48igX29TkVdlj!ctfPVv-+eCjX;?=Y*0RI zd!O#2g}v}^?ubCSIAD|UMeWqckfwT{)gp|{hHgmd_7sc-Q zNX*Ags>C4yWjI10lJQ~bEh1cO!)#<+9WEe~=2*QoV2$dMK!6+$0ndK!Rp+Efpu>Ca zf*}xrz-1$v#thsu9$eLG078+$S>kZAZgeNhjQ;51x_WNh0nR66NuN_n#vPY0#Z4-R zr1LFR@0$Mr8GsOdbsx;w*|Ea+dCI39(hC_cgU6aQW%}!yFBp8%lFn#;_y!XAOFoJ+ zcD6AD{{Vk9jfXinp$UmSc%}GB-x5mnB>pKH5RqIg9*SVO8%Y;_Knu_a!qesznK}8Y zIEnB}qP*nq9aJ9zDK=RAI>E}>Nr6R|CsVT}?IZD3A(N>rHlt77L+fgQr!rY1^w1;7 zBj2XY)VLnaMua$VORx!?;G`q2QZPK-u%EiVQEzuEq$YzJ60n4(K@vPrL7NMVo+wFS zvPzVJ6d-~3LNgz{PVbAi2ber)e>&A+;gHhL7$lIrJ03IUs6#7hSAL%Pni&f)1F$22 z?6bZ!p*#mR84Rwj7l~4Qips5y#GYe{fCePU3LYjYt)Q&P2ewSI5N(L*$=c6!$p{5N zgwLtUVW0&Ph}i0iGe}W%MnCeEbfE}*eS&YRG;lNr#0Om2sH8?1@yWBj<>&mQ3Y^3K ztPjXTXPl22ky&L5QOnt6Ybz#@`YcSsLX*eyG|@8mf%lg&p@$QM&)svBoDxLn_@xyH zDGqw`QIT-ul%WTczx6~3#RMB4G>I|+{{UXB0fxJKMF5=QDu{wM6gkarfGbqnTI@%#54Aq27+43NpA}ecKyn_gBP8a8J<=Fc5i2uv2!mIj znrh6xcBQ~wjhdk_k^cbO1TsH?M2CsZX>r7A%!-K?^B0@|k!-$hl24J991kBfRc=z0 z@N|ed=7Yr|JVBOT{ykHWXPxfJX?QU939LftI-fQ7ZvcdmXMpuxaLEwJk;Ka%p6m{{ zkmn{5Byh8 z-*wzp1KY{@(!HJsI6WGN%p93I9~DVo0mrYObdSFtH^oe_&WdR#4^0Y094{(5L%}RS zU4jAbCY&fdvosvV-7Me+#}WInfxD1z=Bz$B46RH#AhCX@yUxxOo|(c zLa{i%rl96@Wgm&4aAAo9I-YBQ%oM=l9~2g)VjB~_Dg+9en)`_L73fYeI>eY?^NT)% zED^|(hPgheAsm#L5F#E1JY1Bo2sUFs7I8s|7*6BGMWEmgA0HPuI13Tj`I>P~X-V`k z@kIfEJteFFbUP!Tn$&!eX8W?{b%BhV6$GB3&3NQWCSSi)@juTsvn3}BRmNkes*)e) z;;_h(!lf36jX4Dj0t9b=O$Zqg1`kwZ(n|xcdt{UbS(1EE@PtAT&W!$QV;Jr%M+|5l zVJOWmoT2c3XiXAeP|lGHvyar>PZELUkk5+pmlPPV1SeG^Hz%G0@nd;3 z?aK&E^l4tFARu}IHb26qRTmv>_P%5C**F^Ec7jPS=J1pVKs2vcm-b0A14}i5VYqmF2<8KhG8*#G?d}PNa*3cK-lw zBlTj1&*I9oSV*2|B~V^MGv~z)9Ny-oCq+kU?X_pyuTEYIaiR6j4UEk3j#M+!NgdK zzzH$Ul4E?`pt{_&{k7_cOm8Okux9(%234iNtU6>vzIeX9b%^rKjjA1VFRf-W4kD#oz; z{U|tu%7dD3CBX0n6@p$4N4j!5LR0?$lw?9X6Jn1Enql`G{8t3z2#`;U8&rUiC;FuX zVt@erOD%we!W@|+!@m|%lyX20{{V})Wd&izt(^%zr9TuS+A~1$$mIkKw+Wt!!@+st zDoK~q^=B*r3dnno{{U7gMFJ4&m4a9~^GvidWD(`x&23PCBwrm+g|HJT;P~ciWj9iX zlyjfeYp9Hjnq01o2uuF}p6b+!G86GN zazpEej(uxAxk$k6-}9%ONzN^ph@c%uU7k39RN2OTH+v-XVV9M-@k zck$K1MaCoYHlje8M1(}g7i2t1GCL=e`Kn52O+lt{2kOm3NF@~Gd%~fNlR9>>EFPm; zrP3t)Ii(3I#A~=wL0kbUeeXThmI>((&zk&5N-VQE<*yQ4D1IskIG%D^TQFoYP8`Kh zi4T+G#UO;nIU~VBlOe(*P26!@nNZ-GUPSn^qb>-gC^3c!mLP%=9O>@FI3`V+gzQl? zbK<749#PDNs5P z{{X72kPI05*er=CCe~b!;-iitqzC=hGt$I28Q1>O8i;X{MRI;@Q^+t!oQUu7R0^Xd z$Io_oEN3SZ;)4XEpdmfKi!=yfP&pOJ^R;p-kY)SzQpQd&k8sodA^6Ycoux4q&x7X5 zsmmre%+L~$zz%h;wd07f7&!CJfBRP@3?%U9*ENX|RzQEN#3<-UXl2RK zI}~doW#E1&0bMdX_2Rj#r6Ym&K`$sH63j{dG~6^!3(o%lnMYxaN;AIzeruR!z|-TM zSrD>`uD4Y~fg*bla!K&Ao@Sbqnaw>>CM6?;+x9u2IF;FQpd#b1CCA|w1i zijhK{kiR!coFGB}0NW{&CoWbY0UVMC{aFQ4VGb5RA|9wQ!Qtk(IB}7pc}SOwlQQ_S zq;r z3FIYs-M7827Nu#_i^A^$?|32D(r$EPt^%ZaHH+N6p1R~8c!T` zM*!$T@;w$P%yGtil_4hFlAcG9JW$QFgwvcy`?yD@7_kdqI zJY6H&79jwX=Po*|{8&O;7$V5pyu?*m1^3lBXr)>D{{VH)7|+Yy)Bww-JWmZBC*iPyTso}!s79dw03NP6Akg6T>b(VzXX^4R zA_&3#-!()|{!S}onoJPUNd$pQ#+3-lh4oq8RgIDoYRrw83^-a4EHEcHrA!V!xx6_) zQ~`+~>$@U7SKZ3hO9dDSIkbU*hdJnwXi@-^F|OEAN}t83^=mGsqvs z#15JE-btWjmKOIngpU-EeKq2`8!_Ab;;WU}QcewFy(kQQT$jwAqH3Tq6uXKC$Oq#q k5>(uO7muZC*Pb4#u}>KMSD&lJI7V+dRvhs`4C + {% csrf_token %} + {% for field in form %} + {% if field.field.widget.input_type == "radio" %} +
+ {{ field|add_css:"form-check-input" }} + +
+ {% else %} + {{ field.errors }} +
+ {{ field.label_tag }} + {{ field|add_css:"form-control" }} +
+ {% endif %} + {% endfor %} +
+ +
+ +{% endblock %} \ No newline at end of file diff --git a/kolotoc/templatetags/add_css.py b/kolotoc/templatetags/add_css.py new file mode 100644 index 0000000..e17a385 --- /dev/null +++ b/kolotoc/templatetags/add_css.py @@ -0,0 +1,20 @@ +from django import template + +register = template.Library() + + +@register.filter(name='add_css') +def add_css(field, arg): + css_classes = field.field.widget.attrs.get('class', '') + + if css_classes: + css_classes = css_classes.split(' ') + else: + css_classes = [] + + args = arg.split(' ') + for a in args: + if a not in css_classes: + css_classes.append(a) + + return field.as_widget(attrs={'class': ' '.join(css_classes)}) diff --git a/kolotoc/urls.py b/kolotoc/urls.py new file mode 100644 index 0000000..a319555 --- /dev/null +++ b/kolotoc/urls.py @@ -0,0 +1,9 @@ +from django.urls import path +from kolotoc import views + +urlpatterns = [ + path("", views.formular,name="formular_kolotoc"), + + +] +