From e887878f03c1e059740f38472e3c9e502fd4fb58 Mon Sep 17 00:00:00 2001 From: tomtom5152 Date: Wed, 5 Nov 2014 23:01:15 +0000 Subject: [PATCH] Added Venue views, urls and templates --- RIGS/models.py | 2 + RIGS/templates/RIGS/venue_detail.html | 52 ++++++++++++++++++++ RIGS/templates/RIGS/venue_form.html | 68 ++++++++++++++++++++++++++ RIGS/templates/RIGS/venue_list.html | 68 ++++++++++++++++++++++++++ RIGS/urls.py | 14 ++++++ RIGS/views.py | 49 +++++++++++++++++++ db.sqlite3 | Bin 1169408 -> 1192960 bytes 7 files changed, 253 insertions(+) create mode 100644 RIGS/templates/RIGS/venue_detail.html create mode 100644 RIGS/templates/RIGS/venue_form.html create mode 100644 RIGS/templates/RIGS/venue_list.html diff --git a/RIGS/models.py b/RIGS/models.py index 394c9d18..c082e9c0 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -86,6 +86,8 @@ class Venue(models.Model, RevisionMixin): three_phase_available = models.BooleanField(default=False) notes = models.TextField(blank=True, null=True) + address = models.TextField(blank=True, null=True) + def __str__(self): string = self.name if self.notes and len(self.notes) > 0: diff --git a/RIGS/templates/RIGS/venue_detail.html b/RIGS/templates/RIGS/venue_detail.html new file mode 100644 index 00000000..73511815 --- /dev/null +++ b/RIGS/templates/RIGS/venue_detail.html @@ -0,0 +1,52 @@ +{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %} +{% load widget_tweaks %} + +{% block title %}{{ object.name }}{% endblock %} + +{% block content %} +
+ {% if not request.is_ajax %} +

{{ object.name }}

+
+ Edit +
+ {% endif %} +
+
+
+
Name
+
{{ object.name }}
+ +
Phone
+
{{ object.phone }}
+ +
Email
+
{{ object.email }}
+ +
Address
+
{{ object.address|linebreaksbr }}
+ +
Notes
+
{{ object.notes|linebreaksbr }}
+
+
+
+
+{% endblock %} + +{% if request.is_ajax %} + {% block footer %} +
+
+ Lasted edited at {{ object.last_edited_at|date:"SHORT_DATE_FORMAT" }} by {{ object.last_edited_by }} +
+
+
+ Edit +
+
+
+ {% endblock %} +{% endif %} \ No newline at end of file diff --git a/RIGS/templates/RIGS/venue_form.html b/RIGS/templates/RIGS/venue_form.html new file mode 100644 index 00000000..d24a0a22 --- /dev/null +++ b/RIGS/templates/RIGS/venue_form.html @@ -0,0 +1,68 @@ +{% extends request.is_ajax|yesno:'base_ajax.html,base.html' %} +{% load widget_tweaks %} + +{% block title %}{{ object.pk|yesno:"Edit,Add" }} Venue{% endblock %} + +{% block content %} +
+

{{ object.pk|yesno:"Edit,Add" }} Venue

+ +
{% csrf_token %} +
+
+ {% include 'form_errors.html' %} +
+ + +
+ {% render_field form.name class+="form-control" placeholder=form.name.label %} +
+
+ +
+ + +
+ {% render_field form.phone class+="form-control" type="tel" placeholder=form.phone.label %} +
+
+ + +
+ + +
+ {% render_field form.email class+="form-control" type="email" placeholder=form.email.label %} +
+
+ +
+ + +
+ {% render_field form.address class+="form-control" placeholder=form.address.label %} +
+
+
+ +
+
+ + +
+ {% render_field form.notes class+="form-control" placeholder=form.notes.label %} +
+
+
+
+
+ +
+
+
+{% endblock %} \ No newline at end of file diff --git a/RIGS/templates/RIGS/venue_list.html b/RIGS/templates/RIGS/venue_list.html new file mode 100644 index 00000000..2d787a7a --- /dev/null +++ b/RIGS/templates/RIGS/venue_list.html @@ -0,0 +1,68 @@ +{% extends request.is_ajax|yesno:"base_ajax.html,base.html" %} +{% load widget_tweaks %} +{% load paginator from filters %} +{% load url_replace from filters %} +{% load orderby from filters %} + +{% block title %}Venues{% endblock %} + +{% block content %} +
+
+
+

Venues

+
+
+ New +
+
+
+
+ +
+
+
+
+
{% paginator %}
+
+ + + + + + + + + + + + + {% for object in object_list %} + + + + + + + + + {% empty %} + + + + + {% endfor %} + +
NameEmailPhoneNotes
{{ object.pk }}{{ object.name }}{{ object.email }}{{ object.phone }}{{ object.notes|yesno|capfirst }} + + + + +
No venues found
+
+
{% paginator %}
+
+{% endblock %} \ No newline at end of file diff --git a/RIGS/urls.py b/RIGS/urls.py index 65bd7bc7..eb7d1398 100644 --- a/RIGS/urls.py +++ b/RIGS/urls.py @@ -38,5 +38,19 @@ urlpatterns = patterns('', url(r'^organisations/(?P\d+)/edit/$', permission_required_with_403('RIGS.change_organisation')(views.OrganisationUpdate.as_view()), name='organisation_update'), + + # Venues + url(r'^venues/$', + permission_required_with_403('RIGS.view_venue')(views.VenueList.as_view()), + name='venue_list'), + url(r'^venues/add/$', + permission_required_with_403('RIGS.add_venue')(views.VenueCreate.as_view()), + name='venue_create'), + url(r'^venues/(?P\d+)/$', + permission_required_with_403('RIGS.view_venue')(views.VenueDetail.as_view()), + name='venue_detail'), + url(r'^venues/(?P\d+)/edit/$', + permission_required_with_403('RIGS.change_venue')(views.VenueUpdate.as_view()), + name='venue_update'), ) diff --git a/RIGS/views.py b/RIGS/views.py index 8484754f..60222db0 100644 --- a/RIGS/views.py +++ b/RIGS/views.py @@ -12,18 +12,23 @@ def login(request, **kwargs): return HttpResponseRedirect(request.REQUEST.get('next', '/')) else: from django.contrib.auth.views import login + return login(request) + """ Called from a modal window (e.g. when an item is submitted to an event/invoice). May optionally also include some javascript in a success message to cause a load of the new information onto the page. """ + + class CloseModal(generic.TemplateView): template_name = 'closemodal.html' def get_context_data(self, **kwargs): from django.contrib import messages + return {'messages', messages.get_messages(self.request)} @@ -42,9 +47,11 @@ class PersonList(generic.ListView): object_list = object_list.order_by(orderBy) return object_list + class PersonDetail(generic.DetailView): model = models.Person + class PersonCreate(generic.CreateView): model = models.Person @@ -53,6 +60,7 @@ class PersonCreate(generic.CreateView): 'pk': self.object.pk, }) + class PersonUpdate(generic.UpdateView): model = models.Person @@ -77,9 +85,11 @@ class OrganisationList(generic.ListView): object_list = object_list.order_by(orderBy) return object_list + class OrganisationDetail(generic.DetailView): model = models.Organisation + class OrganisationCreate(generic.CreateView): model = models.Organisation @@ -88,10 +98,49 @@ class OrganisationCreate(generic.CreateView): 'pk': self.object.pk, }) + class OrganisationUpdate(generic.UpdateView): model = models.Organisation def get_success_url(self): return reverse_lazy('organisation_detail', kwargs={ 'pk': self.object.pk, + }) + + +class VenueList(generic.ListView): + model = models.Venue + paginate_by = 20 + + def get_queryset(self): + q = self.request.GET.get('q', "") + if len(q) >= 3: + object_list = self.model.objects.filter(Q(name__icontains=q) | Q(address__icontains=q)) + else: + object_list = self.model.objects.all() + orderBy = self.request.GET.get('orderBy', "") + if orderBy is not "": + object_list = object_list.order_by(orderBy) + return object_list + + +class VenueDetail(generic.DetailView): + model = models.Venue + + +class VenueCreate(generic.CreateView): + model = models.Venue + + def get_success_url(self): + return reverse_lazy('venue_detail', kwargs={ + 'pk': self.object.pk, + }) + + +class VenueUpdate(generic.UpdateView): + model = models.Venue + + def get_success_url(self): + return reverse_lazy('venue_detail', kwargs={ + 'pk': self.object.pk, }) \ No newline at end of file diff --git a/db.sqlite3 b/db.sqlite3 index c9bb615e5acea1ec68e93f5f510553eaa6fa2b52..4845327bef55a58c2a1a1484e85fccde9f6e463a 100644 GIT binary patch delta 18946 zcmaKU33wdUm2NGv-R@R*SE*aQXf5rQE!mPS;{`C*X34fB%W5xd#x6-^sd1}Y^kQ3p zX=-U83khHzm4z=MLlQ_x2nh+!Oh|y4Oft#vLLmDB7?PPuGR!1Ql9>r1%=_=XRV~4L z-_u9SxVrn+z2~0upZ`Dily7}(9An&T?&a8npAw%s|8#TP=RX${D?hK|W2^8IK7Hc+_rzXN;!5Y&R49Duyxeze z+g526SKZq`wRa@Z)6?5~{Ir%XXvfvr*{qh!ZSLvq>+bFC?%Aqr-n?_`)}32-Z0zaV zv19Y*$Dgb?A$o;Zgy)5?iuVW)Judg163*Z4jYLF~i{NhW_&NVo@8f*W`5S!AeEj^q zzIMLv{8xNKyku0~R>|L1Dcn{m-d0(0Tji=JDpyzZ*cG2yCG#;`@pwLK|J`R+)z~jy zwtBai^!DAZT)rBwHF$aOT6;mc-22MOAnsPd-NWI(XZc?X7qBwp!u=ojwh0$5{H=E{ z|HQ-Iir9sUm@ivlzxf5P=fW*t_Zo>4&K$$A%?lhSF5*?h3-%R1gxAA(eF?9xzU{-t4fey2Oo-D}67B z_w-fVUNP#!tMZ|WQGZWm1@|n+zbK4|w{g#6?w{MtE6&`=A4cH%HPNOf!PN5VbV?&z z#kOhr|0>Sd7oYL|Fw&(oJ6qSROR`J3aPO#-42Tx)a9--A- zb#I@S3klVw!!5jUN$)lxd3`REzUHRp#Z%2Y66oKBwB zvbkh_Ntsl$r^u!A&ril<_;VtY&nMG!^XdY*Ix(_M**rC5-~C`^t9|u@m6sk$XYyJO z!!{o*B=ef0D!BzUl~S^q%)&7%eMwf!*V|_vz*Y0ty4F%uo@Z8MDu(M*uZWvwlto`Fua8NAV zyX8W|Lh#i<`QB`dTQNrY6218sgKu;!U+Jl^E1nMKFPyy?ykmKF%>r+xkMn&OE>Y$0REg*KYI{vy z{*%C0-`yVqc&!z@Jr`;V@;@!FA8V)>%z35ndVBE+xuU|`6TWI9uC z^?SH&9JiL^hQ|j7l>s$6lGVhwt@PI_T1gW*%!k}{ep zBjIMhZ?)|6uCqox+&KA|z4jHUsaS38^>7{ZYx~uF zQtQYm^JGpzYoB{x+(8*FOh>H!?(~l)Q>jd0Zhm@68BdqnA zn_e8nCzV8AJELavOmb0(BC^h-&tVs{Im43*6CLo7> zE!IH~H%QHGzvh=~8)R$B9cGjO4{n-ku@dw{Sl#glli zwdCAJLv%C>e@X?bg*EZZG}F(RqT7qh#%q1^eE1S@vzQuJLd)^j-UkHhIGnPr}2+F!yD9 z&3~_1f4-{k_O%`N_N?Y=`~7R}XFl!^$y;{z^z7WcedD&ity_D0I_}+M_kLJzy0H2g z`K_u7Nq`e8cL{Z(pa_7GpYZmH@A@U_?O*ct*t<jcgcr0-dnm9zu!};!|!)l8T`&z*WmXZ7QDLRb_-rvahrJ~ewWOv z@Y^!Ub<-p%)G&Gc)(vo#id&7{_+2!}^;>k@v*Mh7Eq>pulksoT0h|>#p2n}GN&Gt7 zRrF(88@O2{XYm#B@5L`6YTu9OO^SnJw-^@J2)`3v0#A8H_@Z!LC?e9Y76yckLWKVx z{@?i@@n7ce=Pf?NAK`cKao*3p!TpB&KKBgwIClrPgkkAVsEdX)f_Fs_`8RmDC|5;x zb~u;Q&UUVMLdyQ@AzyQ`veQF28s1H3(we-EdIm-q$R_h@I-OL*9d2Y!X*0N%!oH_c zfp!lUr(YY~+M`Sk$Zf7m4N>pkH#p^O^>8x%$mBpni-!aIz_=sGpLsfjlF2FwTl$oL zO{%up!)>7-oziA!llhr>WgwYdV3|7FfJDr1*E6ePly3PfV#9}6!&nYun z8h{k6rTBqm97ruKEGE_J8uxPp*^D|nry?v6vyr$vi2+T^As&^%`9gMPzAEN~)k$t_ zq<4pMD2rhuQTM|MElma(1U;G7vU0>V>4D8kDwCegq@`*a=(zt-7C4*CYE@x6;@b?{ z81iuNLafa`c%MI7^i{c`ec;ewKz287&wzqm@=5NS6Px;_pbI1e*ki(assru<5$&^C zKs++VNzLb{-@8f(B8n|S$(yfg3ClU%08%@;qTTlAq%~51NHu{)0lP@5*Vla|pn~*B6AVb-c zuS$_?i47yjrk!;3(Ly(D=x%2flJVP8BHX75d7FNnqk*y_gp_p?Bb&F3?(1wpvPX_{ z?yzH!Mp8A{0n5-UJVRTO!6q8%t;_MW4vYi29Xa&%ulk#g$3ajWN`tLD2`V$|E+w?v zwQGM0@xxF?1_fdxP7Wyj`E0VVAcH3166`;c$>g+Icw6)39udcv zrGGkeT5G-3@mc$UulegIgF9U!F{EjW@Yv`M*S-_WK1|}PcDoC0?{L6*cwomi54WG* zcI{JsWo`QDW{SP z)0q@JDX`fMdNzsrUI+c`N1yUXijf|7!xIo=$(fu3SJEaIZr}y8$&9isw9$p!{aOkz zMLoBs+l{gQY&w&g1u%iSFpMTK)XvRu;vd9cAm!a5&Wn@cC1Q=ZT6kUfvGBLTXM~S# z6z)bCO$b|r7_!}e@IU9j!GE6r2!9K|z>o1e`C0_hZ@8avf5&|e9Qm9r{UKOg44-xv zI+3MbM^#;Q!F4MaBuJ^`Nh(vw&!5p?R!R%WZez3Mr0dAUFQ`fl&AS`K z@J~5dP-nw))K*x}k$sAGLm|1ifFKN?bgwc(eM+Mr_GvD(<1W$Jcla5-J#HPJal`O% zI;}1s2nRtWle3vjHa_hd`)wqde6vAy7GxicNzt`UCtU3L*c<+uV&!p4MKDdGJ$%=> z#yz5@!^hmY!Zc@+$UW4zirx;Q8n1_wC^8{_S%?XaVq1 z%=d_zO+vtUp%xgUn&>Bi)y!STiT@&gSNx**AVNzMhr~|NBmArIkHW*k?ck8t3Oj{} z!11r~&+||5kMTC2O^)f-r|FQ|jPFq1gxOVYt#>glv;)*HBFOH2og zVLLRK0Us%3bDA=iDWvDLCLMH!rYrl!-at(;qJzh@aC=T3Wkn)454vxbdYP^uj zCl{fz={DpVbTAxv9zJRx*cFKQ6df#wS=fGVS0LuA*Lk{Ah&fySLa@4{M#ra_>l3yy znAOg7DHDY>xI!k~SS$n9uC0M+Yy1}1B@#3j13TSZ+<2}$=`DfS+NPUbyFa-Fc8}lW zev#Y+@>yBuxOivqMrvtH=y3W}I&&snv*b<)AE8CP6*T><3-@H4y%UFqrzVCEHAT<3 z2I=in94;`DMHVMP)50Asa^jD~uZxd}9}(Xr=0z2ils>T?NvT43Rd`N#Lby-3SvVye z7Wycudz$|^e>;CYYBEs>z?YDRzQDa7s_Ur3=QyrW2R)#B#P#-&Bz+QIr;yn1Qc~E_ zOgf~4F}My8!m^ablzOA8=->@>L+lM&Aigc2gD%ABjzI-1YN?nGiopEL;Sc!?7&zgD zjXLN8yQ#hV-GOLRSO;NXVKtbUNxKZFM+aFrM#i)s)dHOeY;XibCm7X54Ut`=gB`Ff zFO#k=#qskR9aMq6*}DZRLSCYJW+;mqYg`9$V3;ro?AMe_&z#b_52U-PCYAIW_Z|+cZf@7(Zu!T4`FNm#Ry3Np z1Sh^G{tSmXe}!0D5U&zjg?|@*E__>fM6iXMgo8pq>KCu@f5$)0f0)0CKL$SMJPyRo3MK{?u`BcnU1^VY8fS^=}jm2^ zV)Z)mI!l-KrVD}UFN?t5ttg@(UU1gaf0|U1 zBl>RFrD22&b$|I@|TE2W1nIw{ChN(A!w0-{8X8 z7&(5U`E|1n4MzRN{?-eD4X^@a7_$ON0!jjDsab~<>!$-r-wV|G>U2mk=BV}qF9*U~ zs&yzaR*l%ROy!bUzYaylLWC-ddL4qy3DjGE8h{AZp}<(i1w75T1uj{K3S*Nf6Qhtm zM@Cj@kQ}z@sp^krNo3dAXcFS{<83O;X&b? zFoPgz;osta$Uni~$DiU4@R#yY6utk6`zH4>&f=2zI%J}gHaIS9AOW(CSjqQd1~MRH zPvZsXH&7E$lsr+tH3sq^TpKJ%^#?=V76YkpkUGgZf3WWAS_2u7K{h!%%PGk;Auh?R zGQ6basthDUcbC$6Et`V1YK)j`#K}x9Pfn|53#6b6;9P1lqHZYu)*r0dDI3sJD}4lo zthfOk#ZYKDJAm!wP_0~NKvRv=`Rxt_n>N%N&```5>CqVIR31I;XJQoPocGMWqO)S{o?ln*&1BwCVL{pj_38)#e7ezqZn~5@to=SuFzV|z)_4f>5=RW^Bj)3n_KK*8 z8Wrx8SI|wuHtP-OBxWl{7XX8A|0ZM;Tda#$4jHUzHz1&x(N+-3b#$0c#lSq7(WK`C z@qNVc9nJn7@nP|9@ka4Fv0qfg0E%JXhwk{0U<%g>!#MYe!ufv%&He%YR(^)x%WvRA zU`_wV{Rjo+`?x&S>`ftKw~Hxk-u*aFP#X;-I>%=J`>%XaUyFg{=IqGRhk~`mn1O`G z!h&k~P3dx5M94sDYoYdq`vL(dOY#|)x@;AMq}tf&!sSHfG@%1HUd8WfV~2ZPgU>26 zM14bi*BTHtER-m`+E0uJ16M^2C>v%}0)61;B)&*Vy2gO8VK!Y62Hi|oR2vXE469wv zLvTlFHK1|;2=M0j4+QId?FLlNUgjuY-WzNvh78CYwlbvCZsa{eBO^wy3zev`p~8w| zAPN;>1KNfmit}-Wd_HVI*5LA5sBbLK)mRY&T823tt=++H39LlRHyhn7_wbxOF$mj- z4Ja80saA-gxB>mbLVr&RgbG6|)0qsdM%5ZnG0c7})=<+Ru{MVSR(iI^fTUs8S|AwL zopp}s2q&vCplaBgEWZ@f$~r8auB9_*bhz2a!RiJB;)cd*Ij=AxPR~sajt|xtkUGxZ zEbo}oL9}j1+-P+dLHQ~DQl2m*Egd!>e%kO=L~cSoomo<5l4)&04I2~8tm5p(6^XH;;?=iw0`X`*C(t zDg06RA%g9b!d(z3^JuJSL)rOX_( z8%UpQlge`)C?r#}0RI-_gd1e2LD_tb6y1`mH;_3QuwYGPvZJ_PYBsKOi^h)I*!&SO zbSP#Zi?RT9rK}qql5wp|lu#F?XMk}7B8g3lmF8B6fCdBlh=H$qOE5ZKX+RlO)38XO zgdH{@ikS5g?(n%8dQMqmKnJm1US24PGNMU43@D=gWC;72TY}0JaRYh?w?{~%)GRzd zw+K>)mJ58L+JH1dwBkML5u2D7rdtdsBnOh3z7&jhC^)%_7*I(ph^BBZL%oM8j}GIY zd&jGaLFFpRfIea}ZIT?TsyVI7fHYzWd8&|`pCLzRTF8JtVj+LvEYZnSR`7%>ZJ#H>V&Mlj+KiZk^F1QOfbcaSi0TC8R3 z42UE)j{CL2%)&xWNi5~^8e((AHS(SmRVi2pKyzVHO)o_ah$o;UCY318YiPhA#WjlW zQ3EQ90Vl1(WTAjmS~3V5L+(7sHFAWUL)}wN#|>yI<{!lTv^MB&M8JT&Vi}hm_SGBx zt~FdPd>D02@E%8ilekj2cXQ&8#V17@?Cq>LCyt6+#5&=(!ViScLiU%0Jwmq-=U)eZ z`zrrwB(WSA+$DSqlGy)1`d{Ea%Do#cO9R`hOr%e?ZB$262dg&WTMXh^)dr%2oZD?O ziXQG7Y7=|$+rbV%Iy4d6-*HWy&748u2R#hNIhR=-Ra2+bX|N2x0dW+iZa7W=Ph1H0 zZ3!AsN^F`Ae-9bZNz9z6A7-4Id7H6N=8d}^4c50t4X7pNe^Aa;VUdUc#;-S^mk!bi z-gR@ZWn0*QUSe@WyU9j?2wHZj%7AKOo4%ai>kMcnC+H?W84T|X7!XX%GuaA!2DDO$ zu3+EPXuyC@!rLUB&~A`sW7gRRyZ2nMwmoh@BQdW}6!PRaeISE=mh>F{x6Ob+VwPMy z2W~)ox*qIWd=wsC5NE`_IHUB@gOo2ov=>nfJ|=7u8U!DI5v1%szQCX0Bit|G$@g<- zpg+ekfcqnx&?0PG1~hdBtt@IbWI~8A(~@m*4AE>tgTQsbE^X;0%sFO4gkbZrC^z`r zu_zv;Lr+y#YrBs>F9n9Fv z;=aLz_@G&VyYDx_h_Bs*@Yu_~)$p&u25*B2wLw2%Pre+Cde@my8(1VJy7+RiX`^I9 zT`-Rx$`)uA3YgFrY(vIqv&se&`XWKU^W@9H)}qgZzF_+YA|aa)6tEKJIz_umP{OG( z{mY2xke~rVf(XM4na~x?g!{A`-7}+z330*vy+4M@ z42IcGJ-yv+2cf5*>r4m^won{V#_Yd57F=7DOo$G)TGYAIq(dcYLUu5GE_X`d6bmdk zXhMImxN;6G8qErqkYkRSQ#kTs=eS*{c&E?8AHyaD2m%F@r3sHp#v9cGrhwgyucB|* zmwhj|=cpfE)<`_{*C;c65-ns);xTcD7!rPk=CQ8;eeV{Qgrsl)tfoou@;~LD;P^y`@#sk_*0g8wrlqz!_!=aLzvOWCi@ogu9&0TW`tagz=;iKa{wI>5mp zwUAQhv}zOlpW#0#e~u%$Q4g3hx56AOvc?MwB%!;ks7vWj+j~2tOSbt;=m6$r16NPg znot33MNHb;0jsgjWvvaneu{xA)hBRwjqH$nVafT}qKB}&Eq;ETb4 zS1}b=OF#BvFn)d51n*}{T&V*|eAIEHq|NfDIF!f=zsKVr-@{?VyM)uiUZG2^&LkH|wbOmJ!zYC~CdX$FX@;KXwPEf$&ddJ}}2@e6=+OTA=*K{H(L z@9o3g7PUqby!leHO8fo5Z*Q9kvOGdD>am#A(B(5hkr_OovpHxEy4W+ME&zIRH=6^% zm>k__o4;JjRqiwUaV5wM_m^E#e=%n6cC++K*CVBL$-Kgy5j!{AwoNioeQ{DHZH-MF zCQjPK9U>=Z-xWWHI#6CbjylkKoD}>KCD6YCxksw@b(`R=N7=k@IWM)1R+?a{)%3z4Nae5zp31;( z|M(zKp0#*|O^{Upk-7@wlWOXnIN>z zNUzUJ;dQkp2rY|>) zqE2H@yKyw8GGtY7KtGb1okcCiL>+@|F-jNou$hSUTJwZ6A6wlkg)gr%QN3uQHlz(x zv|p;mM9E?~7lQRG>)aXv2n6aDSP^#9KDgc!DmIv?Ry0@P8Qve9J$(ypPahC1aaKGi?h-ph4t)K2)O8*d-Y?uLsKO2* z*2n)R2>V~-`b94cP)+(zQz47?(~Z84H80i7MQoQIS+hO3a_uTz_;0jl`Urq z&~9m3>+H3_zK>Je*uVU1sk1$9#meC@pp;RL3fd+M9GoUl`{_?hHNJKW^m{M+@~^)r zHTdc+@NXw}Z}^f_orqcB-^eyd;HgY@!CJ*M#YqPmZ3-r92 zetr~v`mzOD&TFHwsTa!g$lv)#23I@4;gyCuyr-rSJ#gCukOY1kHlI$AnR#N2uoi#J|Y@Jw(I1`DwJVZ{C zu&girLW*qLad3Y=tBE(T!V2<>dMpb;F`z4%+WZj%LBK*NnL;YZY$H|i>?lE4>f@E-j03kl0rB0G3Kj?9bRaOspHsdsHXd&ocWkEc= z&8~2r4hyPbKa0LDJeEqZ9x;T8Ob#91}^!<*x zh0BGMxLdqhyaCNnUlCtKjq`)PRtq`ML7G=C#RGinEo4bbV>$b?JLP78FmfuJGaks( z&{t0mL$_H-zo)4A?BhG+P2L9Ugu94;ljUeJY9WoYSYdVl5potWPcpfM?9YJW9hGSm zNM|c8a0Z6G1kPd>hy~l(!;|i@C+S1gvT+L>gt_JzkIJipC@UTb1o- z5Zb|U&ZlNd=~_3 zf}iJ2{z3km{BHz7s0V8A6OIdu!h1k{zAU^T{D-(2T}OR*wr~jrqDRD^!VO=5w}42q z?IKl`70NJZfrHmN+eMx+LB<42XAnYW&2nv(1yav0EH|tvBF6_ycV;NoZ0R0NFuR`((V+*t1aa6WCiG6D1uI$tS6~j~ z(nv=x*Ox#nn0d+sY2CQ}+V!$`OfG?oFuG8F@*`3LVdXF0yl?r9@e*hli+9(^V;cUM0wSNfN?>e= zUc&Hhy-9BMwUof{2HAy2Zj@`+`+<%!{}Yb?3DD33w>%=;Abec-hVZIbAvTML#Vo4p zpFmaSRXmdWIetgD1kT7pWPqi# z-#;qXwZ}@JwrtCo!=k+EWT>7JSnx46Rb|S*uGm-tPiEm(ULdJ6EQfr&1e)!b!ab0u zwP?(wu>^L`zD>4*wq$KW4TV0HNYh+x34|U13@-z>ThLM(hz4zbCZ(^QwIv7uIv;z( z?ed0p$OFdc*QxYOpQ0>1xaw>!L09y%srTL^*A#svC=aA%3_US%C|ZI{VU9kKoI@!) z<31g$l%Qx>WC3usc=X`sn2 zvAsu>aL)G%YRwM`x1pwX7>{k$@qgx@!#`EDWZ|5IKc7SGWY4$XwyT3>YG;MUI*`l|T`%VT*t5@8yoYO(oDn z##-EPDj$$fs;85wWF{RgfhaPQkfxHcBv67qe%n+6O>{WV`<|5J#c&Bck==G8ap;KS zfJ(enW{bT)(DuFjLkVp)) zE6!r&5@@3v@6J=poh4Al1JvEg!&3I*7i6EWp#-kT#4wl87oIr9v+MG*Zj0`cxG$^))5(p#v z0-A8qctW_*dZ1kSaTd7*2I;H3szL0Mzfkd((9V^LoF<%KZ65b0GLB4M&fjQDK z?ORH6bVsNJ#>h}ARg!b8fhw|9l#hFTCD27@)&oNX=e)wl$O-tv;+<&W z+APL}KjVqu=Wuc5kKOp%Dg*xp$$#>`4W(h{sD)KV?3bRGrQ+Jsko!bHcYSHl%?B=L zV{FPvzqO?ScP;KedF#R^7xvXKA;4Zb(dU1Wh+YIF2siAJMTN z`;IL6x=L3p1N(DwYg??eivlTv^$1 zuLkZ*H?4a@`J(cLbC=q?KJ|&DQu{YLWAdkN!^20mpZm5lpoG|C=c=o;bCKkw^q8hR=&4Zxwp3J-r9AK)UL1ER`n`LV{Z)yKI=Z-v#!Z~ z>e}@;C@1B)*J``g<8L+o*5I%2qPENb+=-C$W_sZ4XKhTnenexc)=_mlHLz^eB@al`mq{pOCuDr7NlvZEdoBO;MlD7^|aR z{Xh9z?k~>jD)%92L(Rpzn>JY8 zwLGMC%Ioo1m2+#qt9JLkULKLR$Vs_I`ZwwCrO!(5mEI(smTs1=k+w-KQi%PQ{VV%E z`xJX0d$Swvtcs7+_gAw4#%kDLKAX$TYGdh4MoZ1i=W>}yUp4FCZ%r6yw8Qg;Ud$V{ zz11wiUmGbDjI%wPtJy(3bMO0s+MeF9shY+3d)Zvp2=`R8R{mrtpDyazY+8?YSFQ?Hiu*byhQ#e_(Q`xucrxWX#80 z>BE8eazlGHyWG3p>}wg#{Jqq?u{dw!XDd_E#FV-*AMGel zn(kO@HQPj=%`F&b@L@wUG6kc)MFeKt$QE;1Z8n|7wY7XMx6ssF&30hfYuv}5Qsc{Y zP1UTMF0h!(7Yo`9zK}P9jn%A?kM>|@X<;#~*ENVw4drwC?3`XSv>`nos~0yPGK>Ph z&G39FKQpf;t63YrgWUT6S`tjJ})Z#H}r}0>Aj{z=Tvhlj|f*ru)vsMO=-?aAO@r%|* zJbuPnkH-(0GkAQ5If%zMnqfpySzf}!;uIco{r8S-xOc4fk+DG4HlHFr#iXa?QN>l? z7AT?iZ;>uOwG`;S?&dyLWXjK#e^UNd`K)q5d8<-ZPATKc4y9Fz%Ks%lFFy-3`;z|+9r_3W&63}~A%mV62^gpZ|$!t!kdhCa3e@2GaL z&TE+Ryz+hMjth#bSjz3nq_RnoSS%I769T*Wa3?UG`Pu`5Uw1EM^sG8AXkh5d%d~!Nd@z-2-Cxai zRS`r!^V2|5i|?!8t1(k7fx84zYkRBN_4wEWWU#l{48jFtKk%nAmpqvG;F3qDk! zy|%~untKr6t7#vpX2ae^;#Uq6t<~)oh|h6bz_zgz9u^Z>A-C?KYIXqh=RW?N+IDkt zu$pb5AF7QFp=(7(4HmS)>D+0f;?91_IdUp_7-*rE?43b&*k4#OB9BzxB5wRKAu8H*@&13bVr$uZg z@^lgJ8YPi=71W@KC5s~PYnO6Q+Q`hR1(Drj5DzEt$~CivSe`-%d>9)UJUlhBb$n#v z@WF}NQ=;mQA+rkpMWJ|xHXdrrd1>~*kJUzBQ`TD!=Dyexj5UN7MAD7xCyhdS)@aF8 zMAfCbU}8CVQe@q5E|WoZHs4PA6-AIM73a?w5ZWB+sO*ps;k3wco;jp5BlBV*Jq*+i zmGs%@9EHZmj_%WpQ>FCc0?IOaLcDmeROADpPwIX{$S`DfeD;-DNH@k!lQW_)k7Tp@ z0?KkYm(QnXbGdwSS_F2iG&c_j=Gp6&XR|Km;huUjl&AsZa-e~d^atygHykGu;A0~P zhKK#H7Lh!vXQQ`@F(Mjg(ol+g2+>!Gg-&_WnHDa7ix}%(xP-Kx)l#{cv{77&+$_S8 zn$h#qxqJ=-Q*RQB%;Cr=YDY1r`Wr$vr_6t^{_90E8RSkO^P1c0!jYOt=$T z+&>d(|K=~+Wh*@1a+mnr0er4TdyNQq_GfCt=H#8?Tm13| z(r2|EA)7V@@1Pj_*pckXZ0=02q55!ES9rPiG1N z6Doz;8$%gzVIgcnryx;0eYzVHF0`0XDwG2Q+qh;pk#lc%Zl*p(?q@0 zn@}(OJ@>vB)adb~3Hd@{ngqcZ+9IVop+}1e2}47fH1a2M)Wp#Sc`F4G<;9*bA!%q9 zW4X+Np-rZZeBM~hWs8@a{ngCiH>v))+V5*N`$QdF_j5Hd8ZmoC5QmnuO0fsb%_2k| z3B=7!qNrBeBO33!G?_gfa=GV!uEw{=%x)nbgpCo}G-PfRNL0~&EoN6GwC_FzArLV; z#V`omc$F8IYRrym7Q)Ec7QcyB7PVgv4-Lo6Hi1s5A#JzUbeck|C2VQ}WQH;&V-a~< z44JLs&Z(k)0)d-V%@)BAmF1qE@n4kYgMYZ3%Br1>qXmMtgrgLcX=OLst#SDU`DytL z@;&m5d|2Kkx5$$8jPxmV4)2qerB_LNrR|a`N$hD9)Mwb+naR>@yupNSpypd87J|Sz z%*9Md2NV%U8$F-p22Y#HE$0?urY@#d`IeW8^(Hg~WfA<*X@jRU$i&ENgWIoCO$Z8N zyghp=nH4diE2uVvF!I0^0)vEzR_UdYnkZ;9| z?XQFN0}-<#F^~$CR$17D#vpVjCeKPb`O0fnCxyar$l^5&Mq2xE`nCY zbdz~VFsi%tVlZ}dojEC#@xEgzZFFfNs~6yzYR!XmOCLLs%gxL;m=hIqBRX*+xp?q= zCVZ#L#|t@Zj@K{~gGZ6y_wnFpvety>q_LAY-)O>eawp{8@^7kkRnmmhq`Dr?bD)~! zKm`^r8kw*O-${{!7|9#FVc2NGb6&x3^uSJ~t}kf9Z&I9uDh!&iob7t*((zdj&YQcl_U;d1Ji#^QV z!7P?Xv%hm+zyeznw1TWK)0hQvCayrCu1Wv6RUzp$V8yYj$pT4pCFH*4cWV6lxCN3X zGOyr<0F-(Qcc*e#14uoTe4AP=P_>sRHz=WGx8DRm6Ljo0vH=tH?1BHl0J`ZLO^~wZ zSzq<*VC!<&1TE8g98K%cJcWX;nc!xg$)&~cuGTr#p7ie2WJifi8TvtUbe*gQ=GT7wkL zW~t&XzW!`5J`gpF6c_{f9cxteUWN1RLYIGe8n9 z<_Am|J4zkt*J>|ro)gjF%%G(}N^K?_-XM>L`_-p|4gN+G7LT&kJ^xIwZd;uRhexgc zJ*xsRov$_F^r%1xahgmRJ-*J&z2|$u*mBf_vm<5&GtN|6-C+~%&MOY;i9kz5Oqe@F z8dl!3L%cMD<_S>|TwY+6RnrhtTh$`9=ByY2i3*>J*<*68o3BK7(&`kTLD;16?-af1 zMJ@0mMJuJB&Mj#(>8!D!M=ek!y;?~DZFpdy-D>k1RBUW&jLb)&PdloY&dwun(9yIV z60<;@o0j=VNA$H;CT4*?seoT;aiSJTlwZ|Xr{aa z*~j-~RyZ%W&~7z)BXmFdlG@~Juo^rNcE9%Q^u>+ZTpSda8=lX30spwXsabHm@h)(Rlb1WE1*%@ZNZ2gptSt@ z(uSD(uI|tVUy}vDb3kcb=`QqXs3k9bZxZo!%nCi3Bc$JO({7D$vZD23(}|JHDBVWFUMigoWy_unnH3!teI~cC zsArer7RVLBL|)DtCwK>J7OEP%hj9xeOHtmP=irScgy6#BMJU4HhgEY1@@4oY39J4uoos#x1xh3LKw4;hG0) z^%l&O2X-stLc^YhT4%vn(QPVQpd8k<4hzm|gs+bK%vh+&*JZ(4?d5s+#DA%+%MlCC zie?4K?+4@Zq>fpzRHUrYLIh+Y83>G`7Q7W@miVy7KOMEU(yL%sOs(SRVivp97Y)3j>$drgJ$!fSzx#HVb^a z^s-vFx8B+$!m_|Ivp+9({<#vYw|c~TB9*ir%#sGaDQI;I&J$Apk=>!Ho|-$Q7LZR> z$!!^1_Z9cMnb5E@dT#Jy%R=af!Tp@`+F6zk z6GeL#yREzAURjl1kiI5;7$rL=jf3No(gyZB_7p76!|b(?z1!4|j<}T(i;anqJmB$0 zfHzs7`$L2v-~U9YeS6db-&6E?&l4NjfV2FPYJv3$+gFje(E{gtdSdcIsP4*u1;VH5 zNgdI~O4EJ|T<>M=)L6g*&*M!-$2@JxNO!A6+5O3S75auwKLbCPP(;$!$#*92Wr+7MWQv6s|B(707G1;MFK(Zrf)!@2aL9sFqfkupQy#!-)q+W*ESV}5=4bf!pb@d) z)Ts0ip5>;#Fpo1FwH6#&f{%OT?2M6Vvc?6@y6;&E#e9v{elN4!XXQxj!aah;+F&x3 zf5g7$!%9iHRoSO>C_ed@@-y<+Rn{o`&pOl4hhKG@p~wdiDeC z@I1)wWv94LUHMaQgP;Z9h}s|Gwa+0fV%Lgs?=$Y`o)fLym<^()(5$qGsLk1AgRzlj zKDIh@4XV1RmjL6%CL6R(Stz{7#>###ZEkeiU~x~(U=ujnF* zoIvtiY0zFLz(wp+wb)f2|G3K=BFVO>4V#9f0&H?aOUmmGeZrREim6uJYrh@Zvt6|% zv2tW?DY@!wxHFGvyv;tH+6-GPn6z7PMfdTlNDrVLHjUQzfT7Rk&Y&}e^HLVP8fiJ~ zL7mj6A!BMS*fm=6-MP61J!HYE(G<0k*DZ}%aAp+RX(Kb2*U>uR$Xd`Wm@_UDv3dSS zdpBsmhR$*W*Ji<|Q5n1c`>{~N@t_53M#g&z!Zw{Rge-V7y4`px)#oKStQl@c=X%y0 zwn|vAXefOIOkbpvU3(6ALZj1yO&g_RTlh?bMX~B!i^MD#HJXEQ4rCt%n6+6v=%D&yYAzm<_n(=^$6bsG53P< zEXv@0%6-b5GK!s;Kgd6m--}(C5%57Zj>|nGJt2KidL1@8Z$%Nb;;7s=*yq>>*xRtT zb7DorRVty@23^wPAieZ#o!uu^o=h2S4Po0YY2V^;B`_pCJL~B;(Gv38;7Wi!!Zt7v zvB8uyotYfeegO-Ky*?WhN$`fP5f1SrTe@wKqnG+SUJhygb{j@)n1cNH%b~_)&4%%! z)t}Te925~)1`69ST9gh$ zhCYMydwM=%!)4L!c{&IxZL?vpi22N#NMlFBhNmK`SrKT$PxRQZR|l!kY9j5vtv2k{ zt^DZ=HIYsJJ$4c$?Bj!K^F^+2QEj*>!rs*$Mzak|Mf~%?PeXBEmkm3$mw)5DFVgC7 zwqc>@UH9%Eh2s8h8}7+liU)rj()vO+>=V_@?tF=;E?~n!0X4AKL}qle4GWdx&)x6+ zOQ=Kh+ptT-_^`}j8~zCK03^~;I&4fla4B^5;@M|IuiG&dKB@(;?R$_JFw z%1z3+{1U{?H_*;{r+h-bPHvO_9d6_sFz~ly6Xg5sYwUx-@FKpp@@JDhR*^4!|JMDp z(eQ?*kUc6!J~*%)q`zpi*l-V?Ps$C36aG$nglY?V^-V+J=1qQkw;1`6sfnNshd|}I zTVK%UjKZDv5Mo{6b8)3z;evm!J%|@VJd}4uBSZTWHk<%0;@XVh$P}_+2Rz`Rt;!uc zLN=^`7gjnJnmV%Ch8sW_aaQfh%eZVwxW69=`??!!c!A4#c-KHH1g<`d)b6t339y(L z(p%E&T6~w=umuL5yI-k|^e?yBumgmM$6!K?dA<+nF-D)Z-h9#icOqH+|4#B@hDfQVf2*)Us+B(8rw?u7t1EQ@FJYsUhBF|( z=JoVSaT2iM4`?!IVDd8pHk<*u8(I=?^G==-dc>1-mS*H9*`Hu1z(ARe=v&tdb zK=_0FefgsNpq#~i+*Ua({TEX3FVRi?U)asQ5m>rW;s=kPWS?b!#$Mxw&j*?YV>Z+= z!G5J>?uEL^hC(LV=g3sRh;^9O6?AH}A(%Y@{mc1q-ExBs!AucKtsLIX8w+rETefUz zvyIAvq7NVr4A635dvg?Ne&xuXhz(Iqc(dZ>jC`F9X-$h*IZ}fRKu61ltfp9w^9DE4 zV_CyS)@W{a*2qR}T_7B~AaqigOUMQr@|wn%FL}p;@GiuO#@|$J2yMb2I?zDp8R~7Q z>y`C_+0c3_ntfA)4T+75tseYzZ`xe5;l^eg0vo6Vj#=$5qM=ebfdmpFw69^%m(U1M z3YFcJunoCQX?YAiP~wIr8w#6Nz-_%L90S@yW1~=USIz4oAgAe^OuG%4&56f-V>r^} z@3*0>Z=!^J%`M@L?Qt8*n$jtCCcVH9X4A=NBj092R}-AS9F8>l+id7*syp}lQ{jed z>uhLgFZ!Mq_xd178&aBtdTIf|TibDOwjrw#0D$W81L64PVH={FX0_7zsI#G|>7py1 zmFw0v8>*Uy@`M^`)Z;c(wKrtIcWHXX{WRE+*R+nW>}qK}si94^_C6s6c!#D?Z|@aL zxI3>e%^(*wY`PBNph+%!VLaS3&MT>dWw=v)0#5av%H2u^r$eq*>g3}B>N>`izk<|FGHn?qP z!hyUdv>x;}&iXact%^II%;skw3OH-80X*A_NT$5%tP|;dG&g%v$ElCgg$@T&djz+3 z{f&|4;i%(D?HaaUFQ%b-sH#GaEN%}^s`2K2$dSY=V>mgKK`J#lP})38-E3ndz8top zuxS$GP&@?PNgFB~`2r{TijFM$kg5%>O@$|bjvxKAA+~9S`TibK9Eu5T%^qw7U$rS_ zLwXZhai7B>QR~50?WQIh0vw}&HE{oMe>mprv!T3?@nPLv7umRbgAI{Qkv6HWM z#&UdXv>~!RxLw@5p>8r}Ltj%I2D3BhnL+dI;cdl;ovENGy06+nG#h7(xP4NLYwZyj z47kz0y>iu0o(k7pI2-m_u5IivgGT>?@)2xL&nd^0Ym_!c##xVx5I1RgzuXUQc?tFK zSJEf3KXF!iHMpf0o6}Y7$Lue$HC;yg=kSWoVF?EkosyPk_K=Y|!G8}yoj<3d*2nOx z13+cxn9f05b)eQMF@(!NVr+CE)A!R#JpD|#)u%a7>eurnzONg1+9(Cji+2TN+L#n};xdYz{$M@DbZQ|-H>%>17b|A`EN*&}G@AS9d5w_ zK%#pKaOyKyfP@2$?yWji@ai6Fy#uvQ+{#grH&wJ7xD4Yxy?_JdUeB)zErc9xaG=}Q zObvjrI<*c5BAyo(TY*fi2gjx0fO0*#j7C53Dr|~4(DoEtzQ!|o9q5~HaiH#JQUu3Jb;vL=Z%~nD}M(E`!1X%OrfvYgMI90uy^<8IKcjT z`A&IM*5q~4i_$lxPv9KkYowFX5oxo;*iYDZ*(LT6&O$A(Y2|b~;K&0!XWXYkscNVU!Z zKN1xa=tHRjuWJiNw*y~-5n-XW(=KguBEfNqyy99;d4>XPnU50%2IYZa4#M?zxW^F zX5WAV@1i5}IGP`KpZ+y+HsHXvQ1&4WO6di^1E)eDGPygIa9~qt8HUj-I*slYe1=w- z&n>DB9Lrj`Lb&4&915|)s;Q;3R$UIP3f0Zg$zv~cS-;9{>Za}94pW@B%*Z={Hw` z5_LScf&(YH>D=s+wjW)QLY)J*LaDJ@Y`~+Wvz2bme@izDQ$;6zQ>RL3ASInGVpN9* z#Siba>S^z{bQgXU?%NYU@wBpOF19`oVks*#FfCUo?Me)LdH*QCU%nf^{MaQ|;iUVQ zrH@PJrF&60Q_{8A!}~3Jj(wSZn%QjnzQHDcivu#`@xiwKZZ+ZC;(!cq!8-EpLZkcf zj!0m(&H)k91bDJf!A5hbd@|~Q3MqHTJe#N;%x0G24tNkt1!WCUfn)D^+5?{)Qk}F| z*TW;jf=zoJ7^5Rpulonp&gG~BCq$Q=G72*#elv9b;tu=}t^Nukdq=F24!n?87W}7@ zxE0@WpG4;>mvCT#D8G(OR#Y|rtp^UoIx|APa1qwvObbYa^h@#I@l-yI{^e}k(Z!uT z{21l?!QACEJFq}RCg_07X?qJ9e&^Noz0!dTI!O~dzEj=W8gbx&sJw>IV8%gJzKOfZ zf%Q2=vH#fBYP-L~f#o3tcAvXOZSr5{z~ao%``34=y}m97zJ@2e`_V_$)|0AplL#n! z6`(0DPy7yi4b|90YAWo&$`JbDrs(=2vFjb!8ILWDY%l5J-u(vOW5q8l9atMuN|jey z9eA2u{Dy6hs`b8h2cBk_KmFb3)TXAe14~1fujt1@y8}CePoO7^Pxu=hSQt-fJswo+ zF4U>p$tSe4C8j*Bd>OLd38wyzL>atAD_vomiX3S#gQ{q}S8s-u>nww$L_sgB z%{%JKpeai0)t@dv8b!;sA_w>5%tKmaYI}KucP-|A^bWPr-&^*toOQcX?Ho&%VK^ui z_ds|K0&(x#BVo z6Ww#Y9xKCT5Ebz%TonM}vLcpYWg1OoxuPDPyIqYf$IFta$;!_ZL~Btk!*CGRa*2*Z z(l|X;=fHKWRQrnaNH}mF6y_=XpaRsWZ4~|KfCJ+}I6q!GfuF&u4on9wy7IHOc^r+8 zJ1`qm!<7R8UI}X<2X2G1ZesNE0d2>PqX}n8+^G^u-mT@gtaIQzXlQ$J7GS0*)~3~g z1)((kW*4-S=D>RZs38J^N7Z_0DYy<#OFeTG(MULO9W;}b^$=%XR0pPm!a>b4n2~%@ zb>KJXH6C^^#exn@2l2CrMci4e%nl8*HRqgKot$9dLpW@oEoghQ?k_tc(GOOQt98l= z=}NcyHuYimky*J>`kedZZR&Ap)5R-w^=lF3HBzHnT~vSL21nM_xG#RiA9Zj0s=w-D zYe{`Bm=1seG=A>&Ys$xz`|+!%!$AM_@(<iMxw`u5R!*mqAMedhYoV zU%WM1?iZB;&2ScyhwN2Lxlb_et}T(Iuel8O!N24l-x5hAYs)Yml=tHXTzhjFzJuO< z3*K!Gm*G3Sk>C)2QJXIn+sm*Xyoi~*@E)~s#$Sf}AcO;rG?!sGXhcLdC!hdkP6Flt zu(ZDzDZ_bC>8(PuR#%4Qpe*u^gJ9tNJjjl6yLZ-(xy=u%+x-3Iwo2#c;)CkO<%TkR z28m~n1%)>#A}fyUkCZEpLu~AkGbzJycmP@1vGSK;I=s;j?QSSnoCY1$0z09Hg{=*0 zNVS&XG2uoljC;?A)pZx&_+j-- zus;L z=D#^B(1Ea_o-!0RN(!*_?ysqBU=WCFXdeXPp0BH&ory9OHDC!pqoBR#)qk?0uMBN{ zj6V5;C)6$w8HDvHJx_dDZN9##3}KDYLfYd8AAoWG+YfAuK@st8Mzjp6O`_`H3{*B& zk*lgL<((w-aQo-Kq;~tXG9)%ov&Q{FU!vRu*CE4{j&q1>!7r*CQ~Ls#=Ua!>U~>VOZB)r0_V?vEtu z)G{PA!7VJS81EyGsZ~`N}HeyO?#|AflJO81{`bqD@TZM(SsarNa$RY=y5PH(|U YPg%o1O!8aFz3m~j{^HIj)xVMc8;(?^=Kufz