From 5b8d24f2a6c551d74e537b5942af115f8f656a8d Mon Sep 17 00:00:00 2001 From: Adrian Stephens Date: Wed, 29 Apr 2026 09:16:46 +0100 Subject: [PATCH] added day name to sidebar listing --- README.md | 9 +++++++- code/calendar-plugin.php | 2 +- code/src/Plugin.php | 4 ++-- compatibility-layer/e2e_wp_emulation.php | 13 ++++++++++++ package/calendar-plugin-1.0.2.manifest.sha256 | 20 ++++++++++++++++++ package/calendar-plugin-1.0.2.zip | Bin 0 -> 55480 bytes .../calendar-plugin/calendar-plugin.php | 2 +- .../staging/calendar-plugin/src/Plugin.php | 4 ++-- 8 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 package/calendar-plugin-1.0.2.manifest.sha256 create mode 100644 package/calendar-plugin-1.0.2.zip diff --git a/README.md b/README.md index 393880e..e9c37c6 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,11 @@ 6. Updating an events description via caldav creates weird sequences, e.g. a space ends up as: text/html,%C2%A0": 7. In a private window, Click on event from not-logged-in calendar page shows event as a dialog box, it should show it as a panel with a subset of the edit event panel - i.e. the title, category, location, start and end and description. - -8. Thunderbird cutting/pasting/moving events is - TBD. +8. Thunderbird cutting/pasting/moving events is - TBD.# + + +## Enhancements + +Calendar sidebar, hide description if there is one, but present an expansion "caret". + +List mode view, list or configure data range of display. diff --git a/code/calendar-plugin.php b/code/calendar-plugin.php index b37b95d..dd771ff 100644 --- a/code/calendar-plugin.php +++ b/code/calendar-plugin.php @@ -3,7 +3,7 @@ * Plugin Name: Calendar Plugin * Plugin URI: https://chezstephens.org.uk * Description: Provides a single shared calendar for WordPress with public display, authenticated event editing, user approval workflow, ICS publishing, and CalDAV read/write sync. Supports recurring events, single-occurrence exceptions, admin setup and diagnostics pages, and shortcode rendering for full calendar and upcoming-events sidebar views. - * Version: 1.0.1 + * Version: 1.0.2 * Requires at least: 6.0 * Requires PHP: 8.1 * Author: Adrian Stephens (with AI assistance) diff --git a/code/src/Plugin.php b/code/src/Plugin.php index cc66c90..4896357 100644 --- a/code/src/Plugin.php +++ b/code/src/Plugin.php @@ -1019,7 +1019,7 @@ HTML $end = (string) ($item['occurrence_end'] ?? ''); $startDt = $this->toSidebarDateTime($start, $sidebarTz); $endDt = $this->toSidebarDateTime($end, $sidebarTz); - $dateLabel = $startDt !== null ? $startDt->format('j F Y') : substr($start, 0, 10); + $dateLabel = $startDt !== null ? $startDt->format('l j F Y') : substr($start, 0, 10); $timeLabel = ''; if ($startDt !== null && $endDt !== null) { $startTime = $startDt->format('H:i'); @@ -1422,7 +1422,7 @@ HTML return [ 'status' => 'ok', 'plugin' => 'calendar-plugin', - 'version' => '1.0.1', + 'version' => '1.0.2', 'db_prefix' => $this->db->getPrefix(), ]; }, diff --git a/compatibility-layer/e2e_wp_emulation.php b/compatibility-layer/e2e_wp_emulation.php index 471c044..0c3d393 100755 --- a/compatibility-layer/e2e_wp_emulation.php +++ b/compatibility-layer/e2e_wp_emulation.php @@ -340,7 +340,20 @@ $sluggedCalendarHtml = do_shortcode('[calendar]'); assert_true(str_contains($sluggedCalendarHtml, 'href="/events/calendar.ics"'), 'calendar shortcode should use slugged ICS path'); assert_true(str_contains($sluggedCalendarHtml, 'href="/events/caldav/"'), 'calendar shortcode should use slugged CalDAV path'); +unwrap( + request('POST', '/calendar/v1/events', [ + 'title' => 'Sidebar Weekday Event', + 'description' => 'sidebar date label', + 'start_datetime' => '2026-05-03T09:00:00+01:00', + 'end_datetime' => '2026-05-03T10:00:00+01:00', + 'repeat_type' => 'none', + 'repeat_interval' => 1, + 'repeat_range_mode' => 'none', + ]), + 'create sidebar weekday event' +); $sidebarHtml = do_shortcode('[calendar_sidebar_upcoming]'); assert_true(str_contains($sidebarHtml, '
l0cD(QZ@ zS0XP33<3%89~+otj`n{Z{67;s05*V;fwhUPv4JCvy|s&(g)N0?EnI=>HNeKGgUBR~Od*fF^8bWAOi$$d~>1e<~6ApUe9L zfGruMjopxfXaNoY(1rs5!0_)u6-|s>934$;jZ8$`?G0>=O&n?M&F%m5Zn(M4{;N~9 zXxP|ovcmt|=m`MZlF&UEnqB*oI0P0>hviRdHsf~EK0}KZBGxdHh$~~)P5bTMiy%@+ z`dY9Ng`?cx?DssnbMVOBF6h$X`$jVzoKQ!3x9VReA1zMY6|WY#OFSTdg7geC6adcb zjE>j{^YuukvKR6z9D(!5k(q-c%5>1 zihU7I{&}7l5sI|nZ`?`44V23idF>DV3O<3>>3K79;OKIHHFSMHX?rz~%$17;kbp;J zb2uu>HUQHz5b!}IK}G;PJ)j=4V#a?BW}HohgHc6*NnG{{ZIZb}W4?(=dPo>bnxagV@Ng$!%_+kOnzVL6M3eAQBx8;fmrb|2%SY`;5`&fkT@0GY6I_ z8B<^i@iXy_o#tpf4>WN|+CQ6V>3HN?TAh#9Z&spQm)i*vL& z!WinyZL)~Al2d|MTtjI zb7)Y14dlX|v6V4}s2unf)3AF0voXLa4TBTTuEigD$a%G6L8`XGzpaB&G|hXRxoQ;~ zs53T@E#dd=({7n{l+R*j@(4xt*PP(9qejSkE;r48ySIHz>T$5Mn?G6>5)#2lzw$pT zX^C}x$lWVNTiko}9&Tu=Q}-!V+`XBRe zkU6AMcf-F1M0H7%w<#1Z-`W%HYUmpXivn6n*_)nf1-BBx9X#3VW{v}F0zrv~MW)zO zJKoxz;?XUwBU5gpqXrzMUV#nIdgA6^?FC{i+Xi$8wPKe)9K&OOR<2xdVMIw-`DXGT zs1xl8?%(GZHvAk|{1e^uzn;$3t6>GYutqOUi`F}aB1SUx6!+zA%_k-ud4k@k zxzJ2SE>ZbQftyl&prIl64eEL@f|{FktTJD*!I1j?)}%&*zB=zyhCK*V-zL5~Km0cg z{j@qjJqOqpHZ-5wIfv}fY~XC-jT}9Otm*zu{p;>C>xR(EvA_<$_ws^n$FU>{zM+e} z&5G}LTsg5-0g&9_@6jg~yK(&xi7_FbSkX!?*Ie-$-C#S!@=ZYND`c#z?b2TvtphCa zpT#qrV1<|8_u6l9L@n2BiJ)wF%G(l~AEh0EG9_TG-WI8%hqMiQw=f%fRllevZ-AI` z-j+rm!enb*LE%`5>vvS{#V#=@S8Q(Aw9<`NEy^URT>2&^I&cdCs6ho&f6NzbYrYDrvPP?n6FBJR$JgYX(IcNQQBg3~2b_$YO0PWmIw zFc83rZ)(Yo7OpjyNZ5Gx`+Klp%Z?x%)d`zKm-T$j8~rhdsm<9C{4{hn2}G+uq#^zg z4%tbhia54V2r>_{#i1P=+(lV1f-;NPaPzw=0JV64R&i z9~o=uVrg>JTDNev0|a`ps=U)Tjm9Gsuk@>^t1GJ^GBg(ahM`?Q0bm2dxNjPCbP|01 zJtpC>!!B`bfJDsuev;6Kp?x3adXPikhW% zB;LpXUY?NS>QC;!&OyIjKQGRY{wHS~ z98#v_4V{KJx3L(nViQN8`9Ai~lYYH-RUx*}8 z@Y+q1rl0weP}cq?YiqjejMGrE5k%2ajfQsys|LFeH~|Ms`hpZpV0Oy5N@1N1ro?u) z(;ONSCe={}iQSN?Vc%vs2gKl=!hfVei5e-j`t71q9PAd0WP@%|q5kvoP?W6 zyHx$XN-G;>)$mpND3OcHtdcQFBOf0{eGKQGVy?BhN;#;+Nvu}{E9Y~!OVRqXH(1#G zbOnEwdNQwzUOIR)f0>(7QgQbW*qpyOlBkg7*}ig)VOWn+QsDbn`fi(O__x&rceOoS zhL=_HEQNutU#VVdX^_tKxZ4Zdmn#IIHLBz)JlT7ZX!6XMFpObIg1y;qX?&xfE+3l`mWuwb2mr6<;B- z+4gu|lwP02boQf+&Fb47j~I?!U24(wp}hP% z`1-Tu@)DA<2Za$0$A*3w%kc#w{xQbPc)5AfPvC*kMfQCavOr&6S2M87k$mG6SWPye zf3*TSl!@havzc(ob_IF#lJ0`WN7@JQUu>ZD4;yR+wOT%Z&4L||_ghDfR+f^11F+-agHOj}s6|l#fr7zRYI+!{9JGzs4wh;gI;W)doCublk zCT2KKf%O$w681Ztv>>l1Dr%Da-935ciySaAkYxv_R3i6XV1^g>y@T%_gXhn;hip?4 z$WI1P8=5zIcL~~jbncWX=-kNY;cqbn_j(+hS@yJ zTvGIhLFTYjpp`i71gibtwUE6HiS)8Oi-o8KxuDy=m|g&kXuoDZiAT4u04{fh zMf!n1?z3B&&++WJMTy612wu&4R?r!eFPn)ItkL@*vPRj3{jmYL_*SrWEgOuPNbU}v z6l1?Z@dnYgA!h?_}%Qq731CI-eO@Gru24PX}*PpU-iU)gF|FpU6ICmEEopw`U18+-Vcdi z?Jrj(XpB_qvZTpx91#_8yMDw2DRH`StP3=W*`$VMd-!GZ)PF6`IFEmL-0WXV9$ZC* z9^Tf?m*n&??j8*X;7g_#lc&CnCtO4{XhA+LQuN^+1f!Yx=vsPiNq|87EusaQ6*KTa zEE0}};~0>sA-)kMBt$!jTPR4+fuQdl!8XeJ6(5($0Vni*T1pB(qsnSY^@eJ~HZI{d z^xhC!kK=p36@O(C7XZ4c@^l;&uO)2EgdT48zP{Sp%*1x)?=OR1%g}(KxOijSWSYz| z=jR@sW*8|9H@6g%a3{aJ^|Kc;gq%TMU%uYCr3MUfCffm!^H#SMdQdA3ab1;Ss`{qr zQ`11s>DHYQaGr2*r&EVU>Qals#x|71jHGj@AH%IdeFZtWpe@ni>UvhE?Ymqwve zoq_T?k;E0W5=f=Hyh6O|vgh;IcEQGO(fXi?j^A2=?W4jAkMkyq>a4^yn`(i-I>crAY1FN6%nD*JR~1Q>cLR<3r+PE z4}J`HGT{`Q3xniS9f0!U-H?(33vyW6a zV-*k#Swp|B30Jm|#32487h?#|a70QD!@B&5#?qFmzUhJDW!t0r=&u=z5;WV2N85cu zWS4NVgM|It1e1r78~-qoG@rx*pqS0?d=?U9_iAyPrZ5n@k6O)bUKCDXA9BE*_3IQy5HL$PR{4 zN7RWw**q>OE%-$&TosUV=+w-gFlpYt%@q&89-H_H(yIzGRx-D@d6P5L##&}KV9zRd z+TSC{F!)CWTWP(33Pxd!-{|22CG^18>M82$uTo&GQ=}yD9Q=rgsK?xz#YmYm>ug#H zvWytsZqOeX6ZHJ*C9w5j5YS_OXPM8E3aqGQ6v=jq9W!VR49rd(bTqjnZpeO6*!G3^ z2?BGVJfOm>{jIv2>gpQP^H7{Wn_fqUSnVe;WCy^vGf7>gI;$*Q?!HobR#{?hBcb1} zm^5_wGXrsZZ~@>1yQ}SazX_-J9H3L^jP(B7WqjAM_*mR&CssjijhP-DVxlxs4%y34 z4J)kD;gGs~kA3ZNV)5C??_k?eDm=Y9-It_ZIvJabiba57r`P(s(U2&+f0|$#QN*x~d`f z!I&k*Y-gtT4kck1fOVr)5IWtLwPMRcP$?gE9Bu6iXjAkFeU)%8aF)T_jq5EB%z_N~ zn*qW_L@RtDHRjRZcfcGHN4$!RVW9d!*n!J|vf)$v(QiuhT!mgctukB$F%;t_6Jy0Y zd{xdSO=)=-P;ztx!;!Ap2%Uk>tYQQ!aXLEt-3tL*@Ma=IP|XpoQ(LXwaPUFrW`z1b z{#cRhW;a2Phl__pP~p3Evpc;6e$3FqbIP$7j8%mgpFArz z_PO&Mx{8+wU4Ea(Z&&ERuek4OZ~EfUuS*wKj7-H)Xs69@_=$alE=Qq!Hn3*2s=LE| z0;z-W5d;M!8p}}4W~5F&k{!h@-;{fB?nUz;)>hvtEo;P*u61W!FwIUY$SvKd{E z($``(1kJ#Tv3J<6$G5ybC(x5Ck%DCQj9lXZYoNqy-S*-AE`UbMY3|o^E<1YIhD2}k zKh!V{QCHkYDlH2$Tcof696#HDofNF7jvnb&P(e6q&KsXpFtba*rAr=3fBn4;nKs5L z@1|I+x=M(UHE^)hB3pEd45)7J(O(^stG68XOV`td*1Kess}?jN6_=)JI$HyWuDM#5 zi~ZVCvn!qRHFJKENoq=*{SQ+I5#Km$U&o@T^aHK! z8er!SQx*G;UVNc!W9IUcp1{H+O^E0t`nz5CjP1fK5vEl#kq)FM&wN+Z5Y+I^Hvi$H zs+C0a4rZo;8pmt5`sMZqOGxvhRWP+=VJGJsE3F0Tx@M752v8q7z@}1A& z;^4QDA_&Z4Et{#xtmA8zG@Gugm~7`*p^M#PbNb@18hBNPMEP$MS*!b+2pvQ8f&L(Q zkYT`qSgOFCnRMB(7>(i07SQAo*l@%hN@9}stw+Zt&0WUN= zI}5dUOX6erB2QGE_+W3f`VG3kZnX0pry}s~g$m-Yk`Uf+xB`mpl~^yeQWLXUgwHqS+S(Q-<+QGssB@yeILt54Mv@hd?c&3r8ApwVs31OTUp=#8*BO`@_z%XtZ z$akodqG`I{c$Jmr&u1n|dMbZI5y=cfHk#mk_h?vLFrK+2sUF#%pO5Rcrtb)6JOyzJaGydB4^R1wDgdP-O@p%MP>6r3P#9m(jd zkI;Bad^j5SgKuXd!MSmb<>sXv=H1DwO2#OFH@_kF44dBuVypV>a@lx zre>szG;{A|n?^XELW|7#g7n(n5?sWGSJR775T~X<42(>sWvS+}CZ0nnTO3y`1Hj%U zsHV!)b-upuvgpa#u(bj~)JFS;&o!BmlfR?3-Eai-W+{Mn8HZWOHs*Tym<@JZRErgx zMASN=;hefIu~PCu2>WgM>~6$IBLqm2#*iF_Hpe)0vPuQ3bSjZFSMV#lAC~P-P?Mmd zC?iXb`$Sui`cI?B*L3+EP?cg*bJKEh*jR~?m$N9L1Dhz;N8gY?9b7XgkRkD)RBJPw~_MScBo8sIaf zmdE_47!Wcvw@)v`n>WO`Q$FplBqMX43#_ZvyMswGLaNAJnKgou(PGk+vvfPVg2t;= z&$O77t{TOFfspK~KR?-!NXa{SyzjnUt0ZLME?}RW zzS5s=4bKvgDIdq#KKGmj7^{HD(=^9#J+2J3p*uy>w}w2%Ql6vY%7#iO^<0$7=L@}G z=YJp?C=X~eZznxMH45uNdftEXIe3~jWX8@DA>)!sX74X1mr> zMBT7!G*aPMC{+o2A)YQ}?fWzBaHYg2I7&q%QelSp=`3dy9lm)PS0L2e5v!WNXp^qM zVY7e1zyup#_?HB9I8#^CNGP~}fD*&|~iX%CoiUr0X|snO!vpO?f0~vDBZ|Y#-Eb!F=`1w(&lV1{6eE zMSGLwE6n>gNXuRbZE7lfMm(-esljWpfY$~`b0xDp)hi}*Q>Z(Af_bzcQMOBr=WI-I4g}Z(7PwukZ<*L~+G8OcO~r+#VL1ujXwjnC=;WVXrmozY8kuo+NW}va56sxds4rX5#%os}D;pZvQsOL7qk}6j zga|SLPsC}yu={siMwmf#@)Hb)m%!||{p6>zMGstUQRAwGFN%l)lWWT8pz(l&#;NnT zCZ$AQh%w{q%}n4r4NPA^N3-lIf?r74$9U;UI$OYzhC(9$Kh{tLL=C~m8!UfJ2hzN06Qos1FD`J`6V5G!U z<0Z;_voh8b@3?+aWoCw0twdc?iK8V&Mu^dOh*k5=4#>i2e3_o1j{Pz_kv>i2QDWc) zgLz@So2;G9ABEFz+t+-z=2aYVqW#0yo&k&BxALa48&F%rmB>mMU}d$RkyabLmmrt-`la8D62R@kTWXUh&@Y)lTD)VXzXo#oBBTO<%jjs~=J zg}0>k&Lw%vQbY2~Z8>?CrS2qgPX;mLfwY;hjwFK4=5XOaStmOa*q4Ly&S32dW%#Zq}_kdXAc! zh51~trx|p6$n<(z0C@d89X!y6m2BA>2s`{z*h@Nv@+)pr*}v28c<)nyEEpOZD+UQt zs=^c@@!>-!rfTZ18UW&`9;Nx(9VF6Y}o;;8c%1fqtJk}x6G za|1|hp~H7u(#nEp!2-PF3l6qskj~W6mBPPcFhLPXf*J+iwep7;QhrDYaCcqa4`wd5Pe`Y$90y|5H7dc3#Q8`_#~Mc zoTP_*Gxl*yekV}gViu4lM2GPpLL^OG}zs-{RgHKwJePP6H)ZC1wt(ukqm4=d#d zDC+?vCZE2!vAvZr(PbYLYKa$=&72`J+@ga|r(L5{pEVn`5r{Nqv_zhck(|Pj7tPk& z25KKy>-1*ONY*X^Xb73>foqq@9~YvBF4Vk&a?nn4^yZ1PlQj225v{N0p>?2t)UKac zvSB}>8nU+q=1o>oVoV*W{X-g>@3^O>0+vkFFJm^Z8tj8bU7f&T7!J{^*4C99dDInvfQ6k4iaweozg20 zem&9-m9fe?9!zx?(CrA+N;niZhgl-^;v{ac+*gl^s4P57!4b+TjaEI#GlgF&<&XgZ zl{P9zq+1)6%gTV2|CTVRais*g&-bH(GN0T3N`cApUd1e2Ne{$>gYU^s+V)wo7+mXv zW|;DwfJWT&CZjJ3sml_j_O;ioIE8h_Jz-iNH3+3Zb;y0e^s)d8IT^{$3mU)``ZAJ0 zjRi&-e60E4P8gS4ZsvhuI(r1V+y?;nZF=ai=f}6Nt<6#nbbx#Dd7%|=ymi;gck0Ej z>NnqESQHM{)A8jbzweULD^NS1zj>&+99sRlp<(}ubP)sJmG^>0U%NAoi6NNX zCA_e>lk%7FTO+_j16)1BCxIPfP0Arf05G){lgeYupL%aDcHZahpmhg^HKKPN z$J4!xf1hUhF?u$Ne+~a`^W>ywgC;9wK+Y8`WdN(tP5cSvLRlT6vQ!U(2Ji;+!Nmk3 zbqEfPxo4tQK#cpmqbmArTH&c8RcHqp-(X**P~!p(&Vo65hi?o<(lmz1GbR(>%pB`Y zArMCpf{9!LF#fhA2Ed~{2XOwf?c)Gp&Azfj0j}(^BV1IuI_Nw<-JwXE{>xVZOHWnu z7nX6rgwSfql``%P@gE}9CWqI~@1Qu!okA5Hd~^02_uS)&F@}dHtUQZkG+Nv-P%MKW_N}UOZNb~&z z3`{UQN)+@eza!xOGu(R70b}DFeFIJ!LV-tuY9OP|a@EhLC53wZbyzy=^B#+JTjjB% zfrt9=0RW(kg6d?Pkqg1lBw{UMU>ZhElm0NOiGFe$#;*~}oY)6#>X#&-3TP^mg8 zVX`Lqyf%nK+T^E)*muHR%y$5>$BMkS3780;h$I_7WA0ScEJ{&?7yTTUQO~%=Tt7$e z$QUKPfdEqn}Kb)c5$YIBjPUGH^|XRNPs z1|$*VYBe1<{S;ofSItpbjG925WG62-DG^@Qd_t6_kqquC3oXca(rhjLt->Seurx?u z^*zLvht8f_?&@v-H9b)g2QO4<$Y={SUXy}%J8DqhiMtjokQP1FfDr2! zAFx>vVnb{DPg++w6aohIVE>Q+63}^j>R=Ec8Wjoo?k9Ae!w!sOBOK*8l|sc4*bME5f1`(?6ju{NZp;kiq8qNJ6!YRJgKI+gPqy zd7`_lx0lwTAW-gHI`k^!uxSwl?i9Y_5Dd@gk^5a`Nyt!z;{r1GOWY$y@dwe2%S)jg>PC z6*j!G8MpEvR|Z8mh_kqHVJ=*RSIk0-l}jkb+WI>+BRTBaDp7zJdr`JV^pe5>RC~(b z={IctCR{GB6A_wAM+*~&R2G0g>i$x+@(Hzg%0+t zrh~CU==f`ah$`&FNI3*s8>O=ca2d5@)sPj(_$C{NyK>f+p$>*6%_PMe&OwW`nhHyp zchTIWo!nZ*1x;mW5O$lGt9L1=T2x>>5AlGteCZ~RJBh7 z*|)dHW%xZ2BCbWef-MrP|AZ!`LJ<9%O?Fk8-T6Qi9Mex+NWwdEex}f;1{ILs0;&z5 zDDV04^6oS=!hzr(+G1}^&q0z8rq@REEI4j95_YTpV%QE_rHeu>6BK17v8=vT$c5DI z+k$d+hduZ-&O1S=wlj}XZ)eaTK8kB-J0CM5!sNVePb0eA*~jjl|-qnj^x{7(cErf#>_{ z_v^A|RLc9suC8f_c-Q=!%C3gYd}!se4mx@)fX*X!21eI$M1q$(tC*}B5`btYXU zc=r2}xr4>R0zxejO!J?ViHMRQHB?!KgQSy})jQJ7^9dOzcdC)^uld)SFjC@7-Zj*A zRh=!W7Id4YxxA+16d@p=iy)eWNS_}VgbQ+Xid`M->g?<)*31X$_i}#U8ym~&`>nIj z(wt{K@9C-572M?*SF&Gntn^%=MMNP=^rvy9<9aNmqZ183g^tPua?GGC=kbv9VqEsQ zi;}`>(;!Z5K062EQRGnD9lXHjjB}P=ghD1;!@639-UAn_cH} zYmloPx zjfv8fU2Mn^N$QW|P!mbj#UD2#2j9dVjoGC!w%o1WYdTjzQ2O^nKp&27E}fk&R6`aC zOYF8AoN}8UUJZlOGuBT>D>aN72c{{-=sa?e+NKiUo$7f<$D2Kt8Al`q>TI&>kCoP! z#5P%NUJ_Z@WH7#|Bvq)ZbdnFNf#P0*>*5r=Q)zD_jvb`VA%9Zd8o38re7k~2O_h&KgZ`G;#wr@x`1FO`0&Wa*tYOl&Y{y~9bsOE3;0kTa z5A7Bawt<-mb#YPLB2g|GfyB&tWx~2zb&IU7!XcTU+taaQm4xuWr6W?!L50m3W!))7 z2sH^AaCu!-m~;BQoS zP86>YNJZh=vQ0F=TP(7xE-{nHvnWASQy zIofO28fvF7%A?JDHlF@jE&}N{-Rr-mzwZPeJRcu>%TiBGo5pEp%L6+xEq&qR<=9 znoD2m>0k-2+5_=;hSRTp>wIhAO0IKe>p2WHXA$$7wni$a49XXnvJ-Bg9kx!;B1FwG ze_a%uGjkFXmJCffSkm4^92Jx$P%q{aFWeia{^((sgih8~m@r_u5+Orrh#^o!>=bP4 zIA^D6mAwgRlbNW}oQ|Q<*dDAqGXsHtC84J$q2&BR@3Yuey5txx3m#oW@Yaw6E>eB87XMBbCUC4Ib@GVM0GrMqa4?HVm1@vV%w?t{nUaO%OeuFa zw$=1jh*zZ;YWfM0j4Dc0?f8n8W{;-Q$x~Zy6F8X!|9sogM*X-IdjNTFDBTSp<`uQk z{bf4vU2pm@?jhc3rXwv{vm_Sg#61s1Vhe)!9&^zZx}-9pg=xu0G|MO=jh;&*mzS)< z)se6g8aeK?m}gLE5mAXr1l2H!Uw+jciCC;12jC($;O_@T2ZTXx2TwLWXu-x4KU)w@ zCUH!i2y+t&U(X`(gYqa96wvu*}*rU4bslTmdVmplgX2*s>Cox znuDpANU$+PI>t0#d`0h@{rJ4dPJn5YnS-sLCEgwuomjUxMZh{U;#BETdd$^E(o1Cj zXl{2`EiF^Q!D?i$ddER9@+ksqY~zoXwIjf@Ens8}6%-jp5fbSZGdT|rn@x_Kl7z4b zB??NT9W+0s&?%E?nAg}j8uLhKLyHb<(aVgVASa7@aBE!ainZLbZqzpb(~zvOTnn7E z^vA0?fM&DES%gSOe7{(*7@jhYpr~X%PbPo>0{Z9uuDFQG|K}GJ_;_ScX%6bvGDX|N z_9;1r?MBo7f@3$Km?)Qb@k5!8p3CWP-#ZK zKvVJO`MYydnBW{9M?En+!+juq^vC~iZLf| zzcZmJ31o)vkpsp_I=B?OD=xxQqsWEPp|3Ph*d8AHgFns z#4{y?V&~jSRX4HoPeli?>F(%_sppg`hu33aalE)u0y4}^_zzrvLYjKi2bzTJi+_2| z+YEZc`8wW~(9=YwGL(4&7)@P$y%wDMq7^;3quqNdqp1E zh_0h6xjpX4C5!SNjCPSMf53AaU`cdB5cOLD3T8Zze%m2yaYGZhlbw{~rhIKJ2BGEl zN{Bu^Jq&!Md|S9C`17RBLBNPZVlUqrC|$RT_!{v;KjM!5P9$10{|;nlR{`Mck%bXX zX}^t4ugb?JH!S}?ralPcYI$!&3$(({(On?1b@99p+*;Akry1IMmt*Df?*2kc!tZlvDHVb7RdY!VD(?jS+W z7&T+ym@;VK7_-5y=swPD#&QH?-Gxnf()0e&cxhlPVU+{czc4R?4QLWaVY<}bBhQ#I z_(wE%>o_3OZwVM`8!!C%VjLqV@wo(Lbeb?H7cD)X* zr)?rrhsoAmUUr+g1%L8diJ%94d%uacyQ^$sTd7_QyjQ`|M}1rhyzD8vAu7*0z2m#h z1{}id*#t4rXKrfuA+L?N4b~i^V+kEF)67O)Gt}7rfFKRSuB--7 zIi?D{rBs)JYb{mdMbiz68NktQj6YuqV=-y#L)l>45QR%(TO*izZYp02kZQiI#=Zv@0P;VkuaEXj#nIA$Kw1E~+1CZ_Q79Ua!m0i4GmZ{|Ei1l%;z~1?*Rg4E3 z+w#l!Bve4pNg{rs=viM7YG*?6fBvI(1s1lM9%^9Pm6Y$xR65gZ3mXrRGO*wftSX?x zN5|Q+H<{fHPZ}#o#WyFHm93aY(qC3FIL(Qx5GGhbw>f0|y-mnuwx;?2ZUxuY}@bCyqBof9COuZbC|| z;xSLFXmkTz!5NLbe}^b3n6&Nej6RS~v50UMuqHWKSXN|?p(QAHouvp%L02h7Y#j(^ zf#M>f{1@TfNOzKH)inR)V4oAkUkCzQNZ4Nyp}WKa%GWMltFiD--gn$QoirTNx4oW5 z?;0cgGwgh6&G5Lrl`$FOPLr|EAVrVzbmDeA(C)IVkN)?d<+76Jn<$is)F=f)i8i$AUE}1@k<#_-3O4|;s z{Bx<-|e@IL;&6!cM4_#B@&cKE%%&a$s6szJ*zX=0$aO z7(U^>Dk$tbR?g9mRS`J|^jT&LqG91ghqih8Y9qPFPyD{;y zzx*A%wpJX#bpje1kYT3<;QYe^Rv?VS*$-&ghqy4HPaQ|mEt^(GxG#oabvD{WIZMql z(u({C7~@inJtjdDCd72t10jgES#!o==}6CY1rqS*PGSN(Cyn#NcEgyZ8ct_boD;$I zt(~09JCyJ`*;S}HXQGetK(+(C;3l~d%_A(X1IL-W0@%z?rf-o!jNyG?MT{UeA7qm@ zvY|yiX+K790E--ZNv()hYT<>&k3uAt=N7utp*&HZ#9JYm5gyJ+=@ILklJ$6A%_F?!rxc+9ir|c=(mToQ zjlH5zr(_v1mdIRL5De4#@oJxrks=Z}HKsJBmWaRCtH^XN%mMxj8DprzYwaBOnUCe- zLl$@6iD|+2K4FyeKtq8ZEy!%uaE0>a4C5>fd6z)>NpC-L=dN>A>eo#vx0(HGjHQHEr|+eVQi=Ge|p*6CRm8l4_CB5&pPaSp7x5R3qW zLwIRq)uG>hb4h79DnxcYXD$lH#BwIls{f?K>QljEvd;P;N`A&AQUTr@tS58b0Q=@p zRIqcbC-@u_895jAL&kKb8j3o5S`b&_l>nC~$!Dp(`lj(|wr>)gcu2+lt(H*Cy0t-9Vl9P3S zP?<`?P%Sk{w(%=l{^`%d>yNHi%b?4k?&8y2r6fgv~}5E>mJOdo+hz+~lVq~lSc`}_T;I6MYq ziqETgQ=b%pEEjo9vdkv>92X$;`zT2PPnUX9m~@^_*fNjyf<^ASan{PIO{gar4JTRf z4w&o^L^&xEE5K^tty7Oi{3@dyvTt1C=Z&?PUiNI8XPF5cTj4c4Ywn`FMbvkeH-wC4 zT)i+no{hP<-kI}{Nz^m}U129@(t5El6VM_RosxD7u=a%Vs2a2H-r;k$$71j#aASwx zAr&&>(VvmgsIf#7TAd&&j0zM4>XK!{nVGb%4B>~NpmVaP#jzxC*C2D>%Dk5hP^DKm-g8?70Fiu+su@26U8u zfpbs2WNkoq)i%aixV2HRWfeTGJufVhiK#=!V%y2VA7naG&!RHQ5m_lzILSjp?Luq$ z15_gflb#CAgIeBW#>h{n=4wuv$lfKIC=I&XiL*xbmIFWt-A**EW8lOdpc~61%m|SN zg^c`tE*pEU&3*1BO}`%gi3R=Z4ShJ`Bt17D82s|i#LB1aW?visg*q4tjC>gRXN#h; z?q@6F@^8)i1;9**zqHrYE~B?~k>z|EvAZ!V>lO`ONE-y_QVC4#XR8+u1hZHmur6x4 z*-UzkjAoclyKsM=%49CE%v>*I-Log6egZbkJL(|G&*Cq&XW+)!&Xi|}>V)ZzUmx49 z$16Tvee*Z)<5-ymnH~MzQBAgig}!oC+J4{Vy)2SST%ip~P1Xv+saXhF-^h@8-eX(9 ziq%7q=DPV?GENs_?jN6+6GVml^!|9hwDA~|_V(X4-52+4HPFG+GkM#)vhCf-**G=a zDvo3q*SN1luCpYSm45sBuis!~=p9T3&(E5jpI@|keObC-VBg2fauRH`om*i0{LHqk z&%)7>9o^FWyl&4HHR#HnMLO*@rW*zaX+_L&oc77q^SwQ>FR7Ydgl32z{YmA(0bB)R zJwTP+iFGN6P8g8D&~mDgk!#X`jay3{SJMBq_YO5@*~zj<<*oPiQj9v9CgP2P7(uNM zusl5DZj`IT!3t(Y%EYB1eo*=-XA<*9g-zNk#fg4GXC)778Y$Iw#Zexd9{Rlu6m(UXP8yBP&G<&-iJC@+!kiv zg-*G-=W-b@H?CG0jP}1s`^M@oM^+YAqdv0OYp~fk98U&6OJi1>Bb4NoK}J zczraAR^#XgSCdadww1}Qbr-kg2WW#Hp_FmsGsl!zr*Q=CQ~JIPM2@@eZ5lR9tX)rL z1zaKj%Zr1u{~?aIdG32R-;HCX^%~5jBIE0P$MTtmU5bwkc0yN^?efCXBYf+C!%_vG ziEW#I7DmDcrcWY0Vhn6Omjr*p(GL%s9>}A>=O3JX3#>Ba10gH3AoAskd^f z?T#bzXg!j6fO!lOc%>TZZ+In*u=Dof$@#@V0>95?L$?NisP;iEV?yP_iFus5Pf1}X z_lNWQX!;oR!1a$qSjsCzh5~!{MV8_hDPr3lZH?>mXJN&tEJTLv&YgE_%!MN+$FfyJ z$7=W+^T}r~y^6_JY|Esxlw0mJlV>RWMTfyK?NbE!C60Xd&bTgTVC2gc|n<>^wnhEZx*sT!D@jazB!&sJq2^y)fRZ)Iw2crI6K!ex)bXx z>?fV;SSUl%A(Y)-B!F)`LJ)p=hZ$=;mUz4f826oouCpAso1=xrQx|XxI7e~}rJAA1 z`J3<~l@66=w;NEKyup_m-I;Pm)Di5E&#w&hZM+a% znA26;4Fkadr9PCQoxRSS=!?yMRgIdi7TX2jXj2&?7e`TOpyI|D`Nb9WoUO}*U}Qe^ zOR=Z1W7)8YKvr+TnEBOf4bGV?gsdGloGF8*O>xv#$8^NGM4h0_`k*|E^nespfcUo! zd+h@9SQ<0+3X+QG+@HmVWnbrFyxTF{(QZnF%~r;_l|Y;FYr7c(BsYp1k%0s^Z0gu> zgnQ_$YaTw8TyXeg3RXZ5vd2>WnrD{sE^@)U!G1i7Cdlx*_~}^L;p#Q;PPM7h;_+ra zd*nrTx6LgZJ7yU|shjFC2)31bz-{~z2kF71K;^ZcYN2`3HT-4vT^6-h^y*p%y+os4Bcg?nX^!LxQw3eOrTcVpenbRuRi+hw_ zaS_naN(D_U7z5hw3+J9}&{Oxdw{^^s_~kp6W}5X}cKhOBzOE0KNl-2kFSm>PWuJeU z`utZB8=!#yEEYrbH$=F&wXwaPgQLBZfuobX(Z4FuBq#l?Xw1JJuKQ1i)BNuaSFy1- zl(RQ-aQN421e5>vntz>R2mZcB-g!He;|BmhDIfrV@c->K|9+vEqoXaqp`NYdU-W8H z{`;r&il?{fr-Ki2`3lEE=Np$>ZY~wj8V^351)<=$l&m$kyzndwr2O>A3Ir|};8tBe z+kV+z^Y#vVFHI!4iZx3QtV&jhj+@u#@lY5)@KX?yz73D=o^8I+J~|xa}_`vDy*ZpVvj+Pnyw4T2oV0i-ENdPt-Nkdh+KM5(T@D-$fPh zq8g=Q;WS}ZidxYR0An&<%W9wVgh}uM&jB%YgmsD5ozHeIb(nJZ6F0&;Xo*YD^=GCspc9~32tSi`x+*}R#YyFgR1$OxGq4pAJJ#~$=Sf;81Z;&WHay`o%z|%A5G46g> z(#GQ=ErK z7L6`w0{q0VtfT00@)M>RdQHAHJD-%*FKF|>*l|7gteIxTKJ!^yvY7mCV+7P3D_tPZ1V%cJ)<`5(uB-;KC8~1 zx2TROL;1zE(t6f{-v50Ac1m5tVWS!GdyI#V zTSj>5RiQ=N#9U>XoB_*%QnFfzY>NHb79TNwR*qQEw?1k4s|(6kC3cbIAmpAuIdp4C z|7BxHe@|ySFyeN%mn1rbNS_W@K4ila2XUF*Mh6%B)m2`@hk6U zh7kI(Zr~u4%M+aN{|iBdG7MXvJp;}(e`=)Cl!HxyzpwCW)KZ?JqDTNuJYyGVgYRWP&bhyUo#B| zLmW2Sqv5Za5N%`7C1Jp-6;+@bAbW>n1bK8iNRmRCY~kRl zQ`2ST0W+E?|X$`)~4D8d!qsa?|lGH zH&t<4c>b9h4yHIMull;4J2)@a?FI*bP9B_xf01g)i2o{f-h@ISAHa1j#pnJbQ#_I%Y%FZ1jc|C*2zuGZi$ zhxaX|%U-#E_0*#UV$FFBxw#;%%8{cBU|#Z+mP8cN>upBjM!YwxXas+EP*`@=VPxlr z?%rX8f|sj_{0&)Vdx@4>xZKu;Ym5y-z>WpXW64H?Q^$bQ8;v^{C)gNUDG+|(=GF`e zq46Hw<-bX$Z-j>4`#c@Qein(il3o4lXXOOdl52o;A`sGX)9xID%;~j^C+qc&^9bIY z&9SJVT#FWN7v8f^59?9xr~#;_SOjyznKMfx8fJ;^-2N8%7i#+oU6TGb`DZ*dh8Gs1 zyW6{WH`k(z|Nf`y8ccm($~uCfK;@H1RR|#2Mka6E)6X-yrPj>-boyI7zLa|LZY5hY z{UU=Y04G&3m~{H9ldt!}_BkzDstmM;H$=1tO$QSAeu`ZL8N6q}2H|WsogVAQmRM?r zI0@=@gL13}q6LPdZ%M%wW8YQQZinqrh z%HCoooepdEm+H8RP#4f~Meq`$=7NURpQ`HT&5p?!W4X1+N zGz8^lCq{d2uy%qN^_hnk__y|8nDqzR#)))7zAEw8-NdgS(_OK#e(yES@{_|DlSl&j zZQf!ID=Ao_C;BanreZd(R z>>54{tPkYf@mrDrKxUH>5DeVA{8!B{L6%4;yQDb#Tr|tyonz(W1O2t*9jiJT_8KjN z=BdAhFjy0loEY)k45PE2gb44w=G|6ze_yGB;v+v!GgW7a5(=n@b9uPwaA6_fXG22T zqH>y^gG`g{YZng10{;+XEN!wcDTyWMPcJEL0S6R;e+KHtmq%cw3YV|pqzhTus`FxP z4dIwcM)9WsEQX++$7o886)PnyvOF+>p)gw)`zdwbDGwI)h$>8Y2q+!UyWlW-y#gC{ z$8q{)l*_C`g>6Gp*(0?&U2=`!Tp(!!->i6&0=8jRp#sW2lhd{YU=GX)6`C;UDK}YK zljIvzUwR3e%8ZPbP&GDn8c;4wW;**dB~+u^tR%%ud=$1t{_a3+;Yk`nJBp%m+R=U* z2_8d)7cV5mQc%msHGoT$f>qaMWg??ju1oY|v-W`hUKgdZ*n&!h9mzrWnVJ}~**@X6 zbrbH76Ic6`IRX2NgJ9Afh%stfg)4!DY1E-})9qibgTT8|D7vo0^`;@>F^j2Ye~!`d~$&b8@uL5w3Cz zOw(xk3x4^r6(Z?bL5C18^eA#J8oq|0ih~|zJ=Nt9y!=pXY<35q4RRQ6UpxVo`Vnnc zy_A@_MJVwZxXQ|s9JWl9x@Vgv)W+owRix58JBDMZMbesH^5MdcyGb&1jL7s0b+huSn@LnDYz_32-gNCu zdW>F8L(1nd%l?5^*jEI= z!;&mOS&UPfrSS`&t~(iOXq1@8Foo>0jdd9zpyi9b%|UKP4=*U$W!B7FW4>tuyF=5X zD6@%erjwr^SHQw~hNjtA{v-1-tZ>Q8s(sX5u<-QRMiN9u?o^|Jo>Q-)edM#M4^HWB z!ypo=-8#llT6FiigP4t3CcW}VHw5B5PXnno(pBkx`P-7?Dx%p_5G8&)MF4h0OA(!C zi~D&>4=ji)<;8V*D4#R7RY$tu7vz{CF}n#KmNC`5e03m9luq4|B@B| zO=)5kH)Z|JR|MX8hgS&+`jVu%e3glYd2y~UnBV&PS6QawiV`>N+Ab&uK^Gm&!nSbUx zRWPpA6qPZ6$nb|g^oxo$x+NFi0OcNUAC_dn5j3K($iIqL=U$8RNp<;{NYxY-LrZ5G zUa;DIhNF9K8T0`jCuk$msp$ZbT%fX{S!4GA7zV1`275nJ-c(C%T z;P{+Czlzh}g7|HdExu)MvVf#biiRDWak z|LkXDp5)Q3Z#`xIZ(p+`7#3y390ve zSUdLZqByoVxn?FhG(!~Wib)*d&C;0|&iUW@%$O@shru%`K=|sJ+2T?6myd`hx}WnA z6ZKj7GAc`?q4ExMP8KwyXwd8r(5+HHlDbqU>Elm-qBLeHJ7}m&tbjFwVyKMI z$-o0LU8=t8vu<~wy#*1veAJ*7@~Q+s8s#8}+v}hVyLKmft44g}i??EJG%?;$bpM6o{0C4^JWt{pzk$m5?E?1y(ft3J zar&>;|C>PL6h#mDjaA|IO#N^g}~&#KcH;2shTs^3;ywtT8Vq z5w_4081s>FBI5Z=^(j1Z=A;K{3a~SYfad-v4D11R6KxIFE%!2n=HkNjGUUwxjS%`> zl9B;=xlb7t8UFSJc&p~74GRIFIAad;PI6hLHG7sdhPe#iA2a)bsvim+oL$H#d;glx z83$okgaNz3pq$)aE1-}La}$I8BRdD5FzfPou(R|RS(krlL!iv;|Nb^p`?r}0{>DuD zHa3pmT?jqf|4^U(@8h7+Hy8)M>G^Lk5>Yex)t@h^bDa)lxN3vbXI+EVn`IJ55PrIp zR9R1Og!l!1Ly_?X?hZcabk<#vT#?kIVLAsv(W3&BK;dyck?Xb3G2Qk?K_niqRe@zq z?NqXM4dw@_)9OI58bui=8%%XTjhS<$H1XvYSfd;_W=tOAtU1 z-bEcL`rIjwH(cXk6`v(Ow9#^KefySO+lJTJ z*I@tg=Ko_qL0gu+hlU9Nz`PhBz~B9m$^FZ!f`2#Y-)t+m7Lxe>3%0^seXUCSnRIf`r` z3e$BdnA150<-gpM^ttAB)0bZ$_`%#yu4~K`w#)+~nl*eohLl2WdWw`_J~EhBE$sg? zZ9lBp+64U&)r0F{jSSBS>BFrq@<0^viU1>{^;+vUSc`iUC}b!h;4a&^B7eApbTk>0 zdJ^o?&vAze92e#wpnSrlTIb%YLUk_U;>*cAz{!`jK(2p%`7;+!5OdKltKFH8uTPRu z9rSTUR$I3V&J_LgEqMyiAJ9!wlcAvRqc%YYBZ@axU>X2djKlyAt}r(pOtpPVbKi8A zP_Gn%QnotB^!5bIQkbwj4FK0n^hTEKCi;6~%*V&^j|7(4M)9Sa&C(ifGJa+c2QM$T z2P-=d=le;SKRtvWoNhkq)&Bm};h&|uwT=Xb-m7PA$BiqN+KeG^@;a^+H4Aph`R4vk zv!r~ZDYcFKaJv-3Lgy+gdIun3(<**SsIc{A zY;|@S!44VQmV9<7jRPSrT`>Zu%RT_?J_qGT!frjLV7J0dkRRoev=70?V!G^$gh`ds z;)rSm5qJE(AjT1c3K0o~3J%m5zWO$Z{Pf}lfg{FsHH1fzdJ^pz9bE&l)+kgkM4>Yn z23hXfhJ(ph55A8?4yFdVRb0k)lS%`OBN+mZ>+O$KWlY}FrOZj0zlL-I3Jga`ol-{> zr!?XiG0kzg4CW!J*G+I)4937S0KgoF1xz!0J)?)=K4g!xU)DxL3(7tSrP9Ezi<@cm z&Yo@3tdS&8yWpyT)#W5b32YD9;73;X-J`X%IBL+XonHa#n4>Wmt_>mS(L~zr3v{#E zDANU>r-7&iRR478gNdpQQiNR6<@k%GC9$`M?_dUSn8M?blyj1?R9)9Fqw=D}YD^Kw zv9Cnx&>s7_gk|+Bt&BoMucaeIcnQ?-iRRULoyk&*v|zdE{y}<)6yW@vo6Vdo2r{so zTXq#GXu-EcZ=Ew`lH6-KAQm~sQ|HjV0vloERkY~9en_#J4Teh=ZE2cQy=dCd?NZeD z&SsnZnB34^F6cptbztcHRZWPD3{F8b$cb)o&V+K@-cqs`ctpr#r%UR<&4;+apdoK1 zabh^s$)^~4mF$@HnAWan7Q^tF&*)F1wu~^s(401rZ*}YLjYll91z$hp;2?u`=!yZ{ zTYxBXEivLCTX*!cG`Gc6z>{TcAvEN%PeX*M6NyHjCY4i7&P7e+6#S-pD8r@X$fH*) zzB+uDxvo=k}4M6jGRNNi+fcE9|KUqFe;XqEcWz{sqMl zL~{1~qT!(1k$U&YCOL{+P!M?1<{Z!Ti8g#%wr~`&iVDfOI#XyC^N(sAZHO`PQEHB$ zn<5)`{42G(7>6J7m-+gMB%qqihbS-t2pI%Js^|<0rl#;Er23c>wv^0x_Weja-=gV-EU71){^SmU2g}FAwdyQ-u%rq+ zgE}x)^w{PY4_g7$E@u`glXm#ocQZv|rE2Iu&000Een9Doy;^qF4b|3A*yXd2kc(>@ zl(OwaQ>XymSGp4|dQ88H&`FuF0`lK?A&4AqP^uO|OJ+d@QAjb-%Fro5nRy_r+NVEE zG`|q1Q$_kU^McAiLauht3VwT!nhwXjnL(U(M#eTYHiLTz;##~SSSQyc)Ar86k_HL z#fV=Xv*QQCv27_r6V(>t0iL`ol_GygqM9wch3f0?SrS)a(TWUJe@OTC3bW0&iIjqZ z41keY2F%Gzz2a~dy8!$OD4#zCWFGT4cKCWaH8v-k0B2%?mJr4x62kpc$G!=u&=uJ?_CxAp$gWe@oB{A8y9?m9-f5^8AT-A57m))xP z104JO0Licc6&m}ff#(xA2MYjgSKmPkDO17X4{8nTZY2f856+64AP(=G+mg0^Rdq^V=_;N(KV6J$v;@C_}d6 zlQI{O9|%5vv^P;rc4z6|4$wZlV zoM(Kn--2pFR5svg#uxEwbDjX%KkWUnbMmHhb3;0@AZzvLOEYF}b$%um#3qRO0QBz8 zsq1)F&~G<0?kSoo+NU_m6wjg*f(br8qAKiSAHZQr)uPnzoaHW1VEkoQ43@0re6O**KhB5M?*q;sA8*g{EyTDBSa6O>h=9T_7fe`=1ucG?T8&j zQo<_5*PLCCv%&-emMGuHaJHlA?AEZU>QZLIpNmv{GzLC>mJ*T9311sqH_X93E$GDa zDgo9fyK8+9UY@2(hzJj9NtV+jwkoIIt~5XZjfq7H{W|#F=v_SI6=B&6z8HVXnM-sr z=XQl%nDN}@2-c%rDDvgEgTmMH`z0|&_->Xcc^IVeG0Yf}5YvxMy$Kws)YUsojen^f zQ0p$k^QzyqgM`kj{oJ&jtpkGjl(f&Xw3Ra^hyxeUo62Onoq)nOoo_qw6%u))nrl{( z9S))XL^MQKl&C?`zcFes=GyT~iw4#s66C1+0E5l2V8L~n=BFG2F!oDEcgrzj_#qOj zbHw%q(U(f0EKFjnOnRP48J0XbnmMh0pg?mtlrdaGT(^W_;oTX8{fP_0C*Dk8esS+8 zxY+@O5K4UeJ4X^T*|;7Lo-bm`h=_aPPC%Wz-k?*9=&Br(F#6W>{LhdTEXP!EXNPfaDLsk0 zSIhlJSdis7HYy2;dfsOAk54iG9N9THk^6XQiJ;qT3(IcjUaEuKjvH6|CwaE3qtI-xu6wIWRmBEvAiatONXbl5=Df?ayWzX zJNgvTeT`JMPSc=sOrflK1i@@LF;&^MJ$;d1wI8C0JDJ<~>R1}L527-XLjBAiBU#Cm zqOdw_jhdB-aYLP3ie^A?&WbejLZ_D9hCg@3?fp-ok^Joq&)Gt`+%1HrMn?e}@}GQ% z^CP^V+X4rS+}BolOLZ39cb8$Vlsv(3zSf zy)ZzP&2L)4QplhbD1S}E>bVr&oOpfgm0`U|7PrN_HU{0eXG?Fu6QEkWo$J zc6_p1X)3?IzBu^Ey}$P3;VFHd&*r)QwPW=|!=`?w?&iE`p09l;Eyxpbpt=r`B9&K{ z!is#`7fm7U)#+7J0SI8(v93@LW{?MV$lgK^*4E;i8U{MsLmn^(c%wr_qyYjsgq`S% znR6DZ%J*_4IyP;!D=N1nxQ_gsYvV0bH+53o>i~Paqxb&RM;)i(HJSE#%}h@6i$!$8 zQ7yDlKmSwU=))kfavy6cB3N7=v8Y4rbGKj5NbfR@)Td>z(7r+Gj5wvj3NJTo-764o zLyI~s-Ch2W#teJa1`ro$1X(6)}nuq zw#~cX6cMC-^c*zLU27V?*^R50$|h;3h>NGRRtERNa6-;?Tj%Pf`m@shNNU@k0*M-g zX6I2e10>>mhE~_$H9LiwXKz>Cd2k+&C9uZc8MlBrb9NRwwTA0RSPMzciSh}!*fPG? zYTrIYp~u~hIybWi1%}WVF~q}mQ(gu~Tq>S3ZTv<1-b(7#=3#q+wjM&3L9y*c`?_Sk z_0H-{10~}HspI2R!zGWnORoXUvJg2Y>SpZyzT=J>6X7`UE2sGY$J6i1_3G`)73(?4 zf=qyNe7S@7W!|fy%dt*A`LgVNePPq3&^La{xk!EVy6v4;W$0jY>Q~RVbhXg$?KYdT z;2U>Et;*p0DJLKIft0Nc#TuZ`*&A8jSN9B$^C4NS3k#^PnQYxq8bjT5^C{v=>^LF#aAXCh2#E~*~ zO^%NfHuum7Yj9E1ZcRK4sM3%?t*BQj1+$}_wHxT>DjlW!26;7efFu4Y?WT7i?L+dNpg9FU93ejTo+d1? zxl;RXHt|8<;D`;2i*KZeVs?Y;fB*DhbOaN-zMXh|njXH|RVV1tRwW7uGPOGSvx?oh zTik@j;mSp#lw>uOdK}>%C{wa_MuiT~BQi{xl*B9{C0|)0X2H~3p+e3m8MkIWcy&`$ z4QCibso%TIrtFECHHKdEZKylq@A)XjC}>H2}|G^g=y*WN~V*Y32$QsC1yAVm=kkG$fwT9wAGU6L?CQ|heN`t6b#-{ zf~5sfz%mMT%?Tf1ng&&D`QEFnMsWvFTmKO@u&9BsYZ40BJAd~1yy$7EJ}Xy}eI zZgb8%Z-(#FP2$HMazn(c3)?fi>_e?J-hx&89^ZhDUP^8hrduHAI%c4Aw_=VGQh z_xfChLuvp!aMM+{)rB-8|DF$gQ*R4M=vJM_GgMbt1G>z)^NCuDm@m|v^KIqI1rRv> zT^J*iqsNCA$CAxKfX45OwaX19V$8qJ93s-4lbcMOW8&SHrI5A8(_!)(>?_ys zIXDN_yFVt+n-!P$k!+EV4P_x5>goz7ohVj3vbw|zs_I%kJ_2NFQuLzZw;!4@7+o@q zU-r$+24mO+UZ!y+lx|6J$pdvh;zj>l9gA$PNrM-5xfZ)Y-+gEPhNz=T1b21%XAK(J zBd6|=`vDDtnn*FN48HJCkWLVHUM5~~w-wV$bD<7tIf-rI`|Uw^)~Nuul4*SE!Jh;E*Q@W27)#s=4y{6wBmKB?Wzu@Z?J4 z;31(5_=Uy$$fAb%RAA{Bf5|wEpbleC#N(VrOgRB*b+>X33061=F_57pBgoN#`DaVu zKa@Uu149xDZEy}TQ>INqy(PzHt{#~XD`$$MXpG(L_`RiB0nrrPwRmHFV&Xg8JpPfI zo;GhPk~*HR5+a1#BICvo=CQU`uqiKwD;f~);NJaGJb9$c?>-&X=Wo`Xp!*R`n5Qz& z{rV#)K7gQ@S*|V&2@Gpxxf)rwIe(4+d_W_LgFt%s_gnxoxQ~Z29|Enk7`8kHg|LDe z>mPW5uy|yd-}bZ-s=R@fZoW>?zw`R`6T#%8jfjfLeYXXR(T}N;1lZ%Ls&7=%H4EgS z9a9l@K|Obl=l7z5O4IEi?cu7zK#=OCjhA4$nGg&{jN}iRiPM^ZK=ZcMh?ucYR+2RH z>|0Apa}U87SLd1x9iNDPV$^CzC=G8AM>_~CyHHu}B?HIU6cdhtU?%(5(t zyPY$d!_s8`nWhvVHXMA3RcIF~hrczafjH%22P9Z>mVghe6Alf+?xsQ;X3udL*ZVak zO~z_*FyTye>WSPV^At)(TWi*s{H47Eh< zVj_73kl!9q#q1VvqkH@<7Utla2^c53Bv4A@N-EgvkVhRh>8o_pZ|kG*G}iMX**a8q zur}*_mhq3~Y@TP6KX2iMR)VmHCA{Obx-+#d*=U4!Jc)idR{=$7!~emTrAI#rEC_=+ zXv~j-SXu%=MTS18)%uqGw)v$RV+}pYHtTB-#7usD-ki$B8pa~jws-=W(ey)rDE&*KmCV-n>$DPcaNxpldOV2gx>SoW~zrr+q+of zd+NnFc^y!e!NjP{byBq3y$-5C5h1B?22-?1>dTkU%h&OE$6-^2E5GJW)bMSb>%{v`le_5Ql9P3c@w=_^Zh9h7#TQxcW`O#MNuE#p{U(8heY?VKl zLP5yd@}kS<=iN2vy;K zm~ssrVKH2lXO2_%EvFuE z-~cUBO63Q84Q&e@K>rC}*IX7@LR#e?y{-u?OHTWVp!yclBPT}d1Q|{YBYZ<2z-Mdv zwr8hix?~x*}-nDGmpH zp>#=IXtdsUrFrSxqBzg}T%G|_djg|tsuKO8txsC+Nr0W0C}FfAYyV09E4^gFP|hNc zFCh+X{CB~sqHkHl0X1y%0BP;k9L*!yz)nvTsLQ4S+|)xb1$J5LD>n($@i9y6V9YSr zSTVZMa7&%^Z(ZCScr9rYs>fcOq?24f$1OpcC-idr?rkA)Qigl$WmgGpI@@P2&mD-| zl{ez-pbiq@WMxS%s1<#LarS`l2?x?XGgc{JV6ia;Zd07!rW%`wK#EmeQ^n`MG}R|T*qGz_X6Bv#zaX#8vE zI_KNVG&iA#9YGGnrrz!IkQS06kuM-V8vIo{e|YEvt#N*kjn*fz%`80F9Sr=U%4%|r z8#x~zrfLtWn*+k;F!!X$d4i;<)C(*1-58C9J8?`&Ty1R@j*dkmt zKFB#E`eg)4EG3r(-PI(omzf-oYu6XLPoo_Bn9*=AtR_=$;jq*us?t6hFfEdM7W*As z;;fbnR1~};FBZ(8Vgc!1t`D)pY9grZSb$pDT9KJo7uoN8=~+1W2x7=(Cp_LOSz7e{ z&cl-Uu=Q#?d%>CC=4$Ir8_lj=dq59*VPe+g63SHLR;{hJsp&no zW;Yr`Yg%#%w;Un8vo}qmi-4yfXsVQ_z0I72TVKw1ss} zAVW?XIWuDc6|`G>bt1kDXX-~ui8yiqH*?fJNY}lWkvgzEXe8Xk1Glb z_`(7=#(f_z zMr02D3V|B@$iV2GiLtrnf_W10@IW49*dMK~iHXKLd^3aR9xZLP8e z`OToANyF3-f!rB)r{Fy*B_`l{b+j`SRzLbsLQBkmW0)yszu_z6wV(UBC2CZ<2}fCk z8{t$Jl>P$l;hvb4D!j+toT7QsU;=#&nS#Yiz3A{pR$@Sdk?vL)Gj5v}6R?6pav@rF zz)gO6QvQ@K`;OVLCR$U2%>@C$h6o4?v3Ctzk^{Yl1b3akoJnw*z7ra*5vzbu<%mBjZ%-yg`r9s1s}#`hL5vsY97xR#b^&FhafWM4cFeCqQ)c`vWypO zy7zRHTb);cw_k~6LdF0BifXCi=%0IekTr76crF-ZZ%1O9H-J}fwr3||1IvS zJ0u9sRzu#|dD&`K(z$n^yYW@<0gkshpPz$af>+a`ie-r&dI>NJEn|z+@RSYZRO|=N z83)rd8#6p%dk6>eq(w{I=ibP%$csl-1?4PUN6#6B#%3YAc)Tix1D$MCvdHlq5o5*F zJlOWV@yCnF*jhn@=#vZ%oNNErxe5dAtqo81&*9+f^QMtklP)N+0-J4q*h>if7G|H{ zBH}N7QanLTYs{$USToKUssUTWShG!lRP$A&cH6#gZlQD27Sd?%nvNrG_X}<+g3D`b z>3)?L-_l25b6UP*GSn-a=q6CSKCkq@7uIs>AX1mzAIkeD!~Y1q;uvNIMre+9%uz@0TBagD+TX#I}O(nGlhcU4MNaB-XVED{F@!O-$ zgfQZhj8{62y_Gk89-Nz>bS(X{G=wl3Px97CNVyC>sFXVXEnHy83=Ikt7Kdl}M$Dap z9C^9VN!4&lBoX)yG(!WK74OE;*_jhFuh>D$e*KXqvLtf zrB}fPau(B#TzIKaQ3My>E@jC6CfRm8YWrI@wK}-jpn*AS_(mlbj#U8vlUcU-Mh)4O zWeXD)tH~gMOU8VvScx-U&xHu1x>srz^ua++oNgV9FQELcczGTsQmh`R^hc+&1*jNr z7SKp32FxNgLd1IN5P4vV^ad*&C2%h*bybJd$SvV(vXYf(G}!yYu+gvR@cUtbrTn*1 zX(mLkz2IhD;3bv{%hy!p3#N`i-#8qO7(a-{akv796QU$-48QWs>2|Ch3Q#bhA!K7o zy!g%?IeKF0kQF=97gZCi_^n>`B4j(b79X^-G@>wp)8U!V9CJ~MN~s*% zX|MxH<+hPH48h}cS?EJ&x`HYrKfJ2$@$*^XrH-8eE6Ot^pn?|C;IiW_JIWazR((sn z_rBD>nZMc)+t3^i%qFx@@df(2aXjFASIQywd6EW3W;&$Ao0U*^9DXRaP!&+${fw(mSrQ1Sg<5#CZ=(J2uk04yvub(*G zSejHMa;_rr!FBJFO+^6cSif3E*VHJTVc6v=lytgNZ3$an9z+EAtMP%#Qc{&}7c@W*EE`IF0U^Akce=2X5m|pO2iul=J|(qI;NBg+mcpoY$ZgrX^^fm@tro zCHf*L7g_dqj{Ypnfz1?LR&8LulLVVzFae9tf{ttIrxiE2pm{Y6h!zY%V)zJ>D-7f7 z_~*EA;*$>Eurz+PdDW8ZI$+O~#Gk&aea+~l)tPN1;CsK;>(U(djOjkVe8(cS)bXKEYdM%zvED8|%3XYcnuEO%dy+9X|r zL-YeM&gNuUBFWt55p-&K8z}yK^;bR)yg;e%P;>91XxTGLR<@#ff4{qXZq^C0g21JSd)NaJ z;2MbcTEn;Kpy2-iVL+b0JN@I25BrZjuWrDsOWE~jVc2ra9BKNNBap2#iDq4N?y!o@ z4<_;{3B;9A80PGANCs_7=}&m)L^g^07+ksZfp>j#t+TrF{r4856EB4<>1e#?I#Puj z+JB<-iX{?88s$GUU16h(n@Fx8rj~!Wn2m;=-;n)6e+Hbx{nomO^Nuk;x`A=!F3P+s z;c`=J+TEDqHbj%e2m1wW+3r*P+?ovhWa5gU|LPM-0-j&;Iu0U}+4^LHt(9i;S+{<@ zJv(*5?jzp?yLFqH1Mg>fzFCfMmfo8s_tsN;v&`Nsu{X==&GLD(T;42=ckRRmj{D}I znsqn0&EGIsT#XZG8e9_^YRb|LP4DssD~v16jLv?{Tfy- zv<1%ysbE*8WM9VGm64~bjT4BWZ58r2ef(JDUs53T%?$21F^d_ge|2&S`2Kup0^BfX z1~C-d4C-J!%DW%1a~-#zEgV$G9iMa`%JYcE=){(Yic9xyTQong=2zI;9=@ftJZ8|{ zzu09UuMVCcCU_;pK2>V4x|S2sjJ##rK0E+-v-a>``N}Ml=R2((r7D51*9duKjfbLL z)lOMMMZ3zj)r}erCy`_r>zg&az|5bNoX0lU8P>Bgtp~PcYFv(`rQ^{PzX#5YQo|zu zI6wG9SE7X*D}~8MVZbz!y9;m*h3k|s&y#81X7%i-Yqh4V+sh*J?y^Yb!#A=QX?b=q zpFOppXD~9+q33cFUAK2#^$O1I+Fk?}ALV5zEXcHEbkV)c&f8>3(iAyu=Dayn5MWGn zTR>N@Mo$XQ5{p~PjB4Ux;Cx`$OC{;}4np&>|1HrSJpz9L2Ba@cme=VFpaPQ+494Ow zK8lu{=EGHU1&0jZsB>3EbY5|t2A2h*)LIo9WlWQE6wT9nPaLA7_n$rrh13BJV@kau z5>ko5EDExS&ZwBrPevuG>Noz(hu+CAIIU=&RkRynZ#a$$&$RhY1>S(NS}Q9n=7~%%sTpShuSamzkNffD zpT)#hSz%SwS)3qLQ#Q!Tj~Ln56y~$AO{z1JCEqEzm7Xc4r0)YK=JT@>D^Cn433lsf z`{|cXv9D;#KRd-T%3GXbjSSuQm|`oC)6VYm-J@MaPl40sYMul1;9$RS{#i1C+n;}P zdU-~J>rStmPyO>wHQyCTgd3`IT6^prl<;)Vd&dS_nz%0#=&zmspoG}WEC_9H0tD>d z!bEvjWU1kzkU|ZT+tUyjpgZTt6?VTcy+#TIHyZ33Uh_T!4!0SsHXWnGO7r$)Co^@k$rlgd)3sX{<&X5H52awp=ot65j7U%Lx1q@fP z2bQ=nw6QF<(RrdJ+|ey4Zk9&z=xIR7Mo%`-Me_43ui-9#$&$XZd*m6zt@Y^P!aZWw zncD;_X+SZ{UJ*()-t+@$-i29YB~7>bGpeNBEy=xT?Z6W?E(i7nc?~H%&xYF zQCPK*TbBY6^K+dJh`LpJfD@^SdvYW`0VV0xbjYrew)e>|(=kTMiCm4aMDb;la=Sp& z@en38p7xlhv&X%ztSwAOtHE!oISBb_yL$QRdq-^F*uUf8@#rGQ6T0Cr9lu$L07rQq zQPKAic`0r8q8%5p%^1@m)C0h-A!S^b5Oxrc5#`EQv@kP{fIqcMZXCZV85_SDqljVS)Tu!8rkw%8^g< ztx!X4q2iHXT^kH*)fGN2c{G}M#vMe>`-akSsPt76YOS}~`NfUju_&kCVL+2acq=;A z<|>Nnz25fL^PR0>TX0!fU80L_8`kF3a9-X)|ao~ z(caG1-$XG|;e4fD9*QF4+<1RtE*BO+6P?Y+eOi7@C?BSSAfRvKzP$E>B<;R|>IhCkQUn{ULx#3Os^6awjD%dV%JPdllNa)B{XhuSEuq54SmuuFA1?o`Jd z;S!$q+}B$N6@126<9ybR zllil$|2KRC`M4=xJsXYYbd5(etuh1~Wl5Czg)@&|sHb-lz)PS)&S#0gWNMc56Vo6}N!W+AM@R_Nn?FQrkF41i zC19FYow=3O^=elp0MUIP05KUH&WajB(bUP(^%a~n7;0}450rT3O}3&(Kvk+lH zj@&DQjGCr+t#5N#6z!8NvSeu4>rp%gkiCp#Vs5{+auOF8vJ#@+FqxMYUzbN5@>rfGn@sEGI?WLq?TI zjbmpF$O*e*xn(?#a1Jl-bGLwtcGewMfMXk-$vv?EgT5636Oq8eYI>MMkGT%R&J-Sj z6Y_zw*Rayr*?mw@V>^w81f@|l54K?r2GIoQTilaLfif{gWXph>m#9*ost%`{OlY87NLNjzhe- z=F?#>2RRY|D_>UtrJn{O`3wKdE&_l9g)1}z3PcZ6N9Q@+x)p$Lm#P3*(`S0g7>Q;; zz=1m@GYQyN>IARCs;|}2%eCt9t0`=c(=iynz*q2M^D%I$f*}M7vyr?>l1XSZCjkai zK`mi?ydlUl#H#q|k7U54^g(=Sn!L8VmXC;ODif;1#^DkFPL85btFAla_#g4|zgL(4 z+&hsD4Y#MvvEjB`xltON{oGcw^bfIJ2Tst-T+npoZoBL#*b#K$`lg|%XKV@&k{o%l zq$Wl@%=FbD8S17xB?SV3`m48fT+iO%Y72Lbx@YRHN*6Ujk;WWYD>kS_)l)AlL%i{& z$O2mE;b&7zBFmAV7yGRFvWL%3-L+IALU8+SQ9y)4=_R4X#US>1f0HY<#2+O~ZrYho2 znA)mhiEe%$udZt8ZOjcN0?T)EWVV}$*+HWpg37Mdlhq%>JrR-o#eGr80%d{jdo?T; zA$&v13iCjKc#8*ymze`&K`MuA8$mXJBh@RSVj_asNk6H(kSH3<0|(7N;5(?LftgSa zPE(DxSq2y!uy@2>Es93HCN1tYYK`ZTaT?<~Q4v}zC{QlIzrb^j45JC`5!ER~0k3jE z&ZrO==Bn}nQjo|vM!KXg?7Rvl#mBTe%!I?`DffBbEwj{mfBJ5fC1^89eMRR8)|)!d z(8qUMvAJb>Qj4Y;0-xZi@bQe@1ii67!!vyj{JP9r+s}~8fY}9QhqS+QhUxq<+7vm= zvUI>91FCIo$HSeiU)s;M4ez79|qCZ z#85$boDZQgd&pUySm^O=HuckPp{YeI0of*HZlnZ**GCmtU(0BH)iz!oJdY0HTg2pl zCFIE3952F_yG>j;_Msa8M1a=s9N*ZZzwuD$I&_GX={n4viSey@D@s<*SE6-{K4Tt* ze7#LSqVx1^lJhs>?3b8|6<{a491r%o`5fqm>M|OtwGAU;75%{Q&+MYooVd{V(LAS=FGdCsmN&wjI|=u;r-eAwG9x1B6C)j_MK7>K3@CgibR+ee z`1hJq#aKN^`q^lNdkl!zbe5_mk_vJMJrl&GjnQZuqsuW$1+6gLr@#!%Vl~ld^62s+ zW%fmmmOhlF%n!FU8L;fwfvF8-<6ET3L@4jvNnircoCR5(&w!;4L8ENzL*QD|Z)(g! za#SMd{RaCL9YC@5HiKY8ay1+ipwNsE+?HO}g4$-ox)o$Y zzddyBgUONY(ZmGRlj?Pvy^}<~#qf8f)kfmPL(xFsT7&*=?^%5xxznkl{O}K*k5`Kts znGR{fR$3=QXTPe$mo)5WPfew%q}C$ftJS6*8a1O zP;y%Z~g=V7^{rKJDNlmx3aD}<^};#3CSHt=5M42>DV6bcmia)KBrXzM>Vh=Glc zM-5aBVxUUg7jxTT3`U3i_$Clo?%6=brW*BoDfg+_hhZcddF^#iWN7iQd43GfXw`_F zU;~~QE*wiikkxJy{F3{Uye=*%(e0wmHU_ES*p53q1dW;OK$o14!`l#x>}(K7nGUb| z#)cn#+-n%bUiKz{J65qG>K*``&x!pe5a|HAWdLiq>DXfk`>Fxw@6TTf)`?8UR-Avn&2 z*dcG)=aHRpXn)hTA=nSghNyuVpOd#>LqL+6eBFWB!6SQeJl=)sG%HLOZg6YlE=h*HeM<`?1Ch-r=Hc(XN2Pr&mdQ(Ci)EzA^v4maItta{>{?jzT+bDP4b8+qj&D{(0aW`>{(M}C;RdrWt{EYo>uanp;v zlZBt~ZWeo6#FMyUWcY0b6W|_NZ-d4P@)gi$&f6zx$(j?6jEnZ49oL7bI2&wOy(DKz zVPR?WsMrp{Ffe{*F&La#En2NIv#JJHl2~zRav^!c)6bG*fOqaJ9I+rPe)fok;-1`Q z!~%NUP*8{#J^m8TRz-q9u2f}0gTq)|)PmS^uaCppdcI6Cymy9s%y|A-T!p&vY=?Vk zFE%Lki~Pk>$e1r9A!X#_Ek-x&H^20g!}o4wH`t<7$Fk{XM>wDdz$=IOBnEEweT~vg z;P^EEWwX?QsZd_v%o0bf*j!ZhIaudxLY@ci>Q_ounrk)r7K5Q;q1#>+?=wfgR_AaW zPx6aw))26b%G}ZaYKkEdG}7LDI>cjocts-$iIvI4WRuGY`-qFE-qZFKzUf^~NDOq5 z(s6H$vO+U0Q&W`n4GsavJcKEpD)oquz?jHQ=4g&fMeD^hIa3>gI7-EYH9W8#!HpgM zB+^j1-i|%)(2n8hF6)I<&-@Jt|M7Y<+Ss-CWpdowCHE=r%k!xwN2ut(UKo}(0I_&U zWiM^`IGQyt9u9PXImbq3&vQ*Ua?1wx}KN46WM9mA4mO*c$z1(?tFH({HJ;WfE`fEvpmJB z0B1IXhDY%HF&Hz$LsygGR1S*S}G353TfkWNTqA*fcg|8$?S zlI?FDJ+;?$n)g^c4XVA!0ecqKPfd1}{-O4IETvcA8W8cUpC533Wjo5$j2E_6Z?9Z} z5L$jS23FB#TS1PV4Xb^c4ALpA(9ot)EBbbI?Rs69vI8U`xb-$$J8f6}XEwDsYICi9 zAkSusfQs1J+dq1?_wvx|Wfn_!YdFj5COjSW{*1UI_0=j8ZT2*GGkSuZI zF@8(MImGKvPzggXEF+?{(xpceKCXaI8DZQPIg*Kp}xtcCsN}FRvl<@PojzKc|YzDJM zoD@vgJwrF$9&}$2E}4Nid?@h$@%69!y+Mo1UODnR4R?b>N7%0MEaB^r-UrbgjJ#6lfm|z5`xDL1D#=q#uue zou+i?49G=bKjMgWs7DkR(NX$*-PLm8*%a=SH%UC)nA5l!dqtXt&%tW0g*%FAx)bDm zol_zRll`5oAcaC3gr#*arRa%cepQ0Zp4PjYK|K1avd zuE@z#l6|J?0=84p6fRxaDefh|QD^85ka0XL=*stA6=kxbm5W^YrLJ?#$Fqymk@RMos)v-GG2{c1*) zdin`;ra~^pFSrqmtQD20P4`of-*@h7E1H6I3d6`3(=yrQEuu{>Al^t{r1xKCj*>a- zX59ZIp`#y=@MY<&rtlOWkN7;=j^v&63s=U;y(L5AhGu+jviptWf3#1&66+G60_x7E z!$Cq@pDKjR2gt;sv&}1^mMsCrb~(#6uXffy*Io@pnwNGTHei){cq?A*FLi38j{NwbvO)~*w;@QS*WZyyQHx3_GT7yo=tz;7 z!yCA+k#qNEHg&K?WGGe|orR+B^o`d{HFTl>#xy8w=1q4_izt3E$A4wW2<_PSBuZ5HrAz`U>o2}_yo;u`Fb;QO=AAC z!2b2{Hd&jN2|2T`%g`h!zQ71rh>MlDD++lWUk(O`qY@RF+!thUe+kTw^`8C&ciCB1 ztWO!Q!{S;$$;SAtG0PB(L~1WrNw5@C9oQ@fH5^>t<>1)W8VhJRXLGe= zCp0+<*p(ClToAJXEh{;lpC4s!lCj3aVm!sNquw;g(&Kqn^i4@9(VJ0`;7;TcJJ(2n zY;}tbpJy~9I0gB<2pG#B;st|5Q9rR~wt(dIj`0KSbgw-%5x(eL_C-Vkj|a%b=zzVR z$fUs_wG0d_HapCZtW8l-fB2TMAFDSt=NQy`qCGGs&Ib6Eh2!T7XW?urX$3WW4A*20 zMVl_y;H*m`@5=7&@D@2ACfss{LY+}eg)&yKJRjL68}wHm@CEV!n#r#^T(J)4d%Bb-M6^P~@*x*GJ5LU^at*b=XL2|_M4hd|!`;Kf zXL~PuM@P?lhr8Q*FLw@$DA4H50$S8ec&m6fx3la`nwaqZ1GN|+d#HV1IarzRV`kDE zUJ_wVBhA~BX*S{#tU+94!?-b(j7U@O}%8^h2k)8?8?&GV?-=pE$Y--5}6?JR{Id<3+|NX z*BEch3%bK|t7Y@=E1Ec+r$gzo4r}D48NtE|IdFQs9Fv9qKO5*eUFi6A;GDOB5N^vr zXSi5^Fs@+{7!m*d{0=xHbKjO`zQZf0D<;0HjieO)wAUh z77c4+XD_pHvH-X-6fc2k`&=!SGnosP6IPrAeH7?c<|Gvq6xdRiWQivoB81p3^*e*i*TzS)>|1^9*4zY>er-V(#T-l#a8fr-|@N=(REJ~-`t7xDq(>< zgH3hC>+7n%U#r^p^b1+kBj{0je&;*bpTb)DG&-WP-j$|kr`XWT+={v=0dhONy2@D4 zY^kL$Xd^JPTl6QnS7iBpN!Rit->UC;VSlj|QHz9T;HcDDY?KZ=juomcg7e%)$4VYUB2}>uutqbqJoRs?$C98EqC>TF6z5>OBcAJOUX;a z1iU)OJE`f)*nEBpNN(g8@fz)bG+WVXD_Z-3-4?4|u(~vi^BIsl9g>3TA~ncPD;h*E zqQ6B?J86es!x;Vi;;60(!P2YM{DeG9-p$%#%oVPc+&zlVI}zR8jbrqbcn)J&7K7kL z^>O*SgtuYR<&o2D*x{EZwlIaxGSGf^?a``pcO>Gm0_W6jabt8Ismt8x7n9wgyB7h* z);Y^1<-79j>Cw@C?-l&&ZT-Ca^2m1!BU?$YDo1!*Oi_s+fO0gA@fKtmq-^OTTn}Ml zi+#6L8yq@&O-L|b;$V9*j#foG(BQ3d>gHLYzsM1a%?DNE#A5IUJ_7#Hh1l}1zy7+s zrHO`4^i!Mze*yt99Cd4g=ODk@+4`ksGv;#c{%$m^!rbfY#Lzd^Im4!)2+5(>+v4$h zo0Y3S_HjXLp7|}lm~h84x6XVT*V+NfNIi;kaSNR(TNV)+(=5X!P~l2NjdEc@j{E5( z9&WRHaZ`2;H^IWIFy;HaUH4VP!af))(n?XZqo@sAx2)Vid}NvgTieUVTdRx=)rJt4Ne4} zdW-_9wzpU-m0%kaT?xKXqgoq_p{ZYlots?9+KPVOg@5*6!9UDl)QT7}xwgk$UetQ~ zj0@U<2XE3bt5jDgr2DeHG4nR_!q1hnrUEy`T8ozsO<+;Lky)^g-aPm6azcaV9XpM4 zx>%cEqU^!h%{Lk=Z!&s?X=wBCE~L3V=; zu+>1*Ejl3d*;h+-1Q)Lq`+jR(RMAz&UnNypD__uHO^1*f1A z`tKg~BFcOLtH!~wz*rE)H!%{uc>2*Q#C`1sYYcHq-;!jW5gpn4(`<4ESVFGx*U_*+ z09ujGu58w#ae_~@iheYva>BdZ!>-;y+bb3wi;0TGkiGAMA>4bxtEZnA+p-%yHUGDa z{VIa$VPnPcEtLPmy${)TT_gONTW-xK@r<|(WU@M=%?Ge=ydKOm}TnIy5tv`tBQt;;lg?qSSeHU&Y;C43qeq4X-J#} z!(pC1>Aj#lC`Edad77pa;LE+2yA`0`>^x1$SsFxP;LY_8&fM_OOmPr|QzgLr7L1p_ zW~{tt{gyar6C9OpkF4JCQ zL5*{jOiBTe0JjTQaJb;a$tG-+4=6rUypPOV>*msLiH+a5RF)CDj+jSYEkIsDDHe*h z#`r~&Q1{r^NlGchb2d_0As>UQvOvIE5Go0Mcd>FzTtj+#`&*fiD-p3yz`Ub@f{PI8 zA_Te^ao&=s=cmL%o~&CrRrLi*h_Bo=@)0ka@&Ntbf}!A3(7k-|4z%sXEF+GI8*R>e zjlu6df$g`kDSsEn;3!7BCMWmGs}>BwJ|3iSsP07vDy>q z@Q2jAVmADUR(*XFRK4hJGQ}fx-P+p9YAvF}HBhBnBh9b2xnTwsp_;bSp~G8TwgZfD z-r4EaFx;WWe{Mtl>9~_7v$GDJWX(J9q62T(ple>RVoo;T`^7XlBUKXB$b6FY(|AZq zX+zt=Z$-N=k9vQ7@q8`%NMHZ=tG%OLppyElqbI1hGPROJ1E}c6#D0tKp>7cEqeBS` zDvY)_5Sa1a2VjuqlVSWG{WBXZYCgg_!n*n^Usaw0a2bydEXzqRL5M~i3*n<3Y|rgl znOz}0a?H!NO;lt-S8~&4eEzdE%$~gHvv)nfLvap@237Zup8&) z=a4ryp?2@6?mb_TQ6(a@%~itdyacAd{B7@v|1mL(_cXCojH zG{lK}!)(BV2*=Q^{j&QDG*xR8?=7usH)xJU)Mi0Lur81dHopw+?X^t$9)lzoGuC2> znMKl(7s==pSTrVa2JJZsG4&=URGaI$DUzqGH7%!LycQ36h>*jXNSvF1L{zcT#0L3|gEsOZq zZz)vC+zR5xXfO&u;a!9nWtEQSNu{U*o;u3xkP#v0*;Yf=W*$V*BiB6@P&%x17h$;g z>b6;}__!>$U04#NohNlBA+5n z`wev&bx=a+EQ~b7FUkw{g?Ur&g1F0x`V$fJ?Gy2RQ?mmyt&9kFG*QaJ?gI`Xx8Md% zE&HZ9mHstPrtgJL$lkU+m2c33NIiP{jc}dCbzLmdgr^k4X_aYIr$LG=Bv|!7(eV(+ zWC|KZ7@+k$yQCz1P-2#0jKj1cKIBqUkSHdmeE))0FRyt zoq0m-_NU1RdJ_*L9B$rl{N%9YF@r7Mu^0_A z=nZJelQi-4ykHiBQHTz~Y#5%hL?d65i9xbSh& z_h({2ZpW!7eEbKM?3x{`aO08hl#32mtk^#OZ8)t3YAZ9z=^k23*2BW=`9xO7CrHv( z6rKgeInWdc1$9j#^NFV4(wZq|K&E8&@SmG53v7NeP0o9C*Gr?`rc-pUU*~`9;y<;< z@#^xQkN*AllZVY(JFT}g`L&eOc{-yubhcXE#D9pLTGx{>$HSxSS)MhP^5ZpM(Bl%c z=q;ZF$_s=s;rKQl&Vf$ZkF#_*qw7+!NJ~pu&xK|>YesY6at+qa7Bwzzp!3rhqE`gY zrdH@Z9>60;fQP}#lgV2$&reh4P${3aCfuAOB&jI3&jr%@Z^V&1w?3X4Tt9CcUH zNeqO!u0a38hyEj)=5SmeN|joLE)xgGhV%3m9fO)xj`xLB4=SqEYhBJ%-Q_SlR0WsU z_Tt!H$B_MEt~(!5aHGO96`2l>N&Q;VWJult#%9rJJWV1_hz+pjM4zHlFeKhI0~UmC zJR>W0Ow)pkuT1K*5d}*=dYR3lCoJ8GEZ{+Z5KaD;oYhe@U!iUkO&j$oAk%$a3izE> zCI4v^mi)rLub^`3i#j8K9!^=04BQ^*7P-8tz;7Iu!r)S_2u1}n-)e?ip8T8vK{bKDpE>DLQ)M{lzE z>UBqkn^M$$J6>oNY!h-sPP5Bv>})RO32C6ZmZR--B23!k%r0Gx1#7OD+lkqwNAJK< zf3%WwP)S32VyVa8g|GTk-Mg{2iYi0}kAobBSS%g7R>rCo?wp`r6wFdYPKNXIbWHR? z;CN_3BCn_k&9*Xn!kSicL}i-jgw0S z;P2TO`1Px!Z70EoFiO)gtcYh%d2bf-_h!7hyHs=|CX@0fFDDw z0CZ<`qD}7tpo|9Q%FTNjtcB`Zd$d7S5q%46+TCyuN+8iL z=)>vFyv?E|tK1D5lDCwWwEY}L@xU7Tb>zKV0*X;G}>v8LR9Na=+ zKQ#SVb%t^}^oH4aqke2D7$?UJUni8A<#N)~?|~FuZ2>JoAw0BAXy~@eUmm57OBYLQxi~ zHLbwF^g9661V;59GY)$M1v#Pak9bT{dL)t2tg|h}qC1!=FRr!? z8Ue@73;fgxeRVr5DZ2#9#5cmF9ITx3tT3M1*vG=^Y_7c3*{kB}Y>K_rc}}as>WVVF zAk^y;Fd9+$0qIm10%ZsISoaJgWqC=?rXuF2JJDi10%Yb<&(&fNDi#xD^ZTT!(3;^( zT?XJWHpUjY%=(Gjh=Y5&~b8!XcG1ozxCPeyGReGhQQdT zi3A1C8|hSOn9s&<;~{XqnKs;&y0`aEllsh;HIBhm6y77`yH@waFKqJp8FYsBZh1;X zv~__2h)cSA$-92SZ*^+1+ll2D=D(+(O5A7-DPN>)2Az!Tha+UqrWsC}BG(mT03_9D z`dNKzgLanLbp;lS>m~2fe3n1qZTsbmD=+JZPxpR}j<$Y!4mSGpXMfp^{y;tg9D~ot z#94-FtVxsW-MICiQn~VV`zX7OPS3K^E+1vhXv5##iVK~D4qE^s5|n}FYkHR1jM|!C zIUKUp8#!h)n4LB12fHt~UhJ}AMZf(a|1CP&qrYN4oDnL>jO+H;tz`{qqW74^*wfVI zmZT?_y@%HyuTo-s#Dh^f-UnPAUL->mb3IFE!$dKAbUQqqje-esmd5d0I&nHk-$IG^ z!=zigOb4@z&Z9@GlXs768|xR}iWei8k952|%O;&wcq31`GXb>TzW8=yeeTQPHB2|w zV+tbe*8DkoX*3jhQ>U*hlZ(mb1n-Zx404P|pHFz&-r5Ff%j@lUW4#TH+-=K@i;0%e zHpo9w%bH0j+t;j#f?l*?KGxeXx%!5$+z!M^?+@cVhe@Bt6P)ZdGl?>zCmx}IFP#=N z!r{kJJ7>e>-Q)9k(s}e9kPry5^YJpp=FppElGcw|Bn8r65lF1iSrdf?HM8#EsPunJ z9A7!$Qm8DU)qrI@In9es^}_u1uo}uU5cDGC!@N&jsB{dzhy{axI#B~klAM88rCV3r zj4nPJBf6`N7ZE1U3(;i{mE6A40>5^H0Hs~p*7(;ckcVI=jS3J>Pw~vvtthfBx#{XD@ps$a{xJyDxkrV-3lHg)4`Y zYX_5Z<}hy(b;XExUBzpP{x*^Z>Lw(3)8YR*?G~*JGwNmO5DQN z*#N&dA7-cVFj~5t3{EZMoNprFn)&z?h=gpOqoa}q`D1s7!TqNp3vU$_zLn@Na=$Q8zhe7XXePK^O z)w+g*U)I&mL)9-QR!CyVH39~#h&51VHkz(Nzd6)Opi%E=5jIcLA^Pb-l)>SsM$ul8 zx+)GE;|KaM)p`$1_+B}#!G2J1szon&T$cfAUA1s~yo4u=RkA|`BTUco>+upzFW$op zM$Bb49h{gr|0&MX{uT^<8)O^~KOW{)a86)_qR#FEWblg}dZCz>rFpf9*@6Z5HX-Fz z^|#>+()PF#`0I2jFirT%H5aKy8RsZRd5D8}ozN^5zelyz#FkXPfo<|s_(E*)SFMON zUk1#hAIesgfZ{b7n->=X;8bPP^xrYlpo5-R0nfiy-PY_&v$kFxJ>5Ha_V+Ekc))YE zq^LO-4nRU)0>vXt2($MJo_K-+1kd$#$f_&t+rqN@zsizff3?|dR6FdQ13hktl}5w* z6bUQ}Dj~;pQZM~peik}~8Xz93`r$hfOC{X>td&;ugL~;RSD&P?=AfFg=PK5Rzk+Ub zuGP)sr8%y4T$IVX$q+jTkXn%f{K(@^RKz>irU$^3uh}xu6k4+(m*OaqI`-l2;UQ3Q zZ+ma=FVA-EMa<}wy*s9gGN47^*?Jo^;&qRWUCA%1`&srTO`d)d7Gt$l!f06Of+cT) z^YfWdlQy?us48bO725RL0j{ntiTZK9W%iTBlTYH*5ohplO6s?)+^x5`aY*IOMIn04 z_amq>KW=>8-4g_7kr{zKUOi!uiP)|S-A~7?fwceySJdZWky#6Tn^3Oy40!sLK%}3D zL@k(dFSE^YJ5UQpN%N<(*(4WCMH^F&>55pFJWQj-d*~cN0#Zn){0Pu29VK86z{Hr@c=%rJ-&g>E5b|`!O^4_4ySjTW zC+H3xCh^oiU;Zh&MLgHtV_qH{FGt`0u)6w%pwmW1(2Xo^?K7C;ArG+BB#ZT$S!CJS zS%?{i+{;VA4lm>B07DBh+K0A1YeA0v*WQ!8gI~7}c6N7q`v-eRd+K6U+mNvu@tcn> zV{Xwls8N@*X7<(PagsZVBE&9mX7k|TOfQC9Oqst*9J81h9{1FIYJN5{PH~H(4RfzX zfG*TVp(^U4G`>!|?Y34pz5?frmJA}e^NW{!?Ifr3b5hju08w**L6`Z~^XGfN_I7rE zdi8VfXzwq(FAwWP>*eKWZq=y5a%Vh{4whe%X?n)*c~x=e%&@H}haNbSeL3loduNew z^S9WM_phcyFDY;q`c~^L?y<97F!T;?N-LQGV$m#J+`^m2mvambVzJ?DFdAL`5AUrR zM96VqGCV@o`{+Fw=aFbHiu){>%q&~m2YHbv(c6M5(L6`|;?SaDI)2l6J$^m@pfGWT zzx4^?`L`OFrmCM!-nS=lK1-S%tVOS&Moo63gai9=88RMtCXPjRVD$!ixPQ*#k6YT7 zC*PRWe%p+awd>cUd7rfEAtl)je&ZMTc{qduOZ&h0t6&?Fl@j`{fLXo(_qosLAOYkt zSLf$keR%MD7FvAuwpv|O@J<$&3|o;tJ!;EdS6kNm=n~|gN|%C5!@Jm4a4`|K#ajCy zN4?0h!O7dgu#l|@NYuCSkgG7BIlR`Sk>6sW9pZv%rTCRy<}~$hAhTc>=8d;@jA{Mp z5EeBw<|aKY9MMxsMyhimS|SJU1is^}#C*nFlER~=R1`R|UAhx}VAFYp^z$}NF7e5H zF{;6!=6!Z5Nx3Zwwr3vryc|dwg>DWy1jW*$1RY#K$Fn-`Wja4Jpbgi(rH(j>Lsu-B z5`)!|DH+3VE^3Oo8C0ac7?xO1WWpC53B8{8N1P$|dV5%#k9|1Q++ghJGmKe3hYsWR z@3~g=46p-TDqZV9iyY*Un3x=LCUPeMW_#H{04YEh)YK`L0sp8LL)1$Xtk{|``0 z0|XQR000O8kTHK;Y@MBbJk)m_z`s)09c?5nED0~WTpLqZVQq)=RO;lJYq_0c7ai`w z)1*Yn&_sm`S!9%TDx*dkS~Hq^wQD2~%~U9LQKN|V`|Wi7es|}v^LlZ-UcT?o_xpMH z-tVvX&<7(AAO%v`LI8B-Xpp!}29wR9hK5RvJwJQ5FkovBH(C`aEgVn=;JL!5u>=N_$2L@nIWU+#!oP4+HZ#XxhBUccA{;@ z*^N2GjmeuBb)4ALx(g*K1Gw}qkNfSm25E(5je*921HNvto;gY1RITu`yi##)MH}X# zjlFPvVbmcb*P>?^Z{UlTl2c>O6JtwN`pwiv>ut78oy7>Ub$oTbCRBcnT);aR)wX=; zvi2wWqShf_j~x#DN~N(#J-f!ozmsaQc7qmmCQk9!DZ85rf49Q+Tq5@AeripqSVIW8 zi4DB8{5IzWua5QAYpx(JBAFl5d(5L?&_I>9^Sfi7)FY|ffLo*2bg$7C6D(iX*nWL7 zFMfP#Hzu`3Eo-gT-h*fL`d)tdZnc`(z2Q;w^sF@HuMM7m$?DxP;_6tST|o06ZE?NG zyBuy4$#1}3Rv)0$>`$g|AHJd4+RifPUKuIvJJP+WyytF1qYAz)hh2qRw#3I^96w_1 zV=*3GfYGs@(y)l_np`lkU*{i$XdU)FIYp`0j6lWn8Zx~Z$|)WiHI&W_q_RE=pOf^- zbNh}k;pggcV|<^2k?(GA9p9IsYFnbDV|=E(_-M9E+kGbOb-DLWmAcJJImLVUa3BMx~zN{A5&>j zbyUmSsC#pv$&q4VTZk}-yn%g71-CGRc@~qftCyTm8#|PqD7s$OpuaS)l3yQL{MC-l2H!X;i&oy0>A3-Er+G5!y> z{Y5T)ey_5h+4{qlfKK0#JiJ3-|H@~JSMYZHbU1wpsM1i{X*4P{Biu@G*MFY>_?@Hg zd4?SFH>x;gs}oli#ARq+AfB!G1j`oHl)OA)9}wxKbG-cT`jd~BKhd(@W#gvt_a0lv zJ(a0}1zkzan7y1k2hu(@U(*!))H3&VvgQ~GBg!PLd5~8Up?$BJakF9c0#R$MqkpZs zJ+JmJUwp#VwoK}#RQ@kkb@`=B>7wt)ubnK%)-6;W}jZ%pHr6Ox+G@KDRceF3zTz~ zbQ~^iJ8NCHcAu}`?IeE8wKIbDN4i@_W1{K4s}Hw~wCtL^{9(rwG>eoLtWp-6FyVrN zd~A}JI?$SauMQ@O@LQ>JGWGOW1eE2BB1NleqE>a0vnrcKo72h}2jfxkzK>ctXNHyS z!*)XgRWabRyk_YsDh^!}`e!Uy>5@oUdH$FNV=(~Lx&W9>1E7Wjl?jg(1Gdv?To#MY zq|r&y;Z$be8)YkWVo^~7MOg38_fiNOlNXdglYJOUjR^`{kCn{>d}7o4a;I}R3}!HU z+7~OnG$7{jh!#ame~8(Yc94V5{@bK@(yDKl38>%Y}19R z6IP7MMT#2{)?d3t_8hW;IPV==OqnlI0!J8kC5-~huoZ-|E-9X(+WH&44GP5& z1AsFs6kF$c?p_j#l!a9ijv!lMIB?d>Z4Tt9K;e*}lW{_Yb7J%V4F_!{l|(aRX^8XG z2^IZ{vMpwJpc$26000pc4c>L0(YP{#SyT=qjOj{cQiBl#G=8R5cv~)LTe|on6VL59 zuX%LL=F6{rLn1PoWf4-vBN;bx_p%7OhXBxlz8X~l JxO)Ts?OzBxDY*au literal 0 HcmV?d00001 diff --git a/package/staging/calendar-plugin/calendar-plugin.php b/package/staging/calendar-plugin/calendar-plugin.php index b37b95d..dd771ff 100644 --- a/package/staging/calendar-plugin/calendar-plugin.php +++ b/package/staging/calendar-plugin/calendar-plugin.php @@ -3,7 +3,7 @@ * Plugin Name: Calendar Plugin * Plugin URI: https://chezstephens.org.uk * Description: Provides a single shared calendar for WordPress with public display, authenticated event editing, user approval workflow, ICS publishing, and CalDAV read/write sync. Supports recurring events, single-occurrence exceptions, admin setup and diagnostics pages, and shortcode rendering for full calendar and upcoming-events sidebar views. - * Version: 1.0.1 + * Version: 1.0.2 * Requires at least: 6.0 * Requires PHP: 8.1 * Author: Adrian Stephens (with AI assistance) diff --git a/package/staging/calendar-plugin/src/Plugin.php b/package/staging/calendar-plugin/src/Plugin.php index cc66c90..4896357 100644 --- a/package/staging/calendar-plugin/src/Plugin.php +++ b/package/staging/calendar-plugin/src/Plugin.php @@ -1019,7 +1019,7 @@ HTML $end = (string) ($item['occurrence_end'] ?? ''); $startDt = $this->toSidebarDateTime($start, $sidebarTz); $endDt = $this->toSidebarDateTime($end, $sidebarTz); - $dateLabel = $startDt !== null ? $startDt->format('j F Y') : substr($start, 0, 10); + $dateLabel = $startDt !== null ? $startDt->format('l j F Y') : substr($start, 0, 10); $timeLabel = ''; if ($startDt !== null && $endDt !== null) { $startTime = $startDt->format('H:i'); @@ -1422,7 +1422,7 @@ HTML return [ 'status' => 'ok', 'plugin' => 'calendar-plugin', - 'version' => '1.0.1', + 'version' => '1.0.2', 'db_prefix' => $this->db->getPrefix(), ]; },