From d71b27b78b29a2ed725a6e631bf8085bde257f18 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sat, 7 Sep 2019 00:41:48 +0200 Subject: [PATCH 1/5] Shifts: Save time as worklog if past shift gets deleted --- includes/controller/shifts_controller.php | 1 + includes/model/Shifts_model.php | 2 +- includes/model/UserWorkLog_model.php | 35 +++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/includes/controller/shifts_controller.php b/includes/controller/shifts_controller.php index caf124ba..a4d44151 100644 --- a/includes/controller/shifts_controller.php +++ b/includes/controller/shifts_controller.php @@ -220,6 +220,7 @@ function shift_delete_controller() // Schicht löschen bestätigt if ($request->hasPostData('delete')) { + UserWorkLog_from_shift($shift_id); Shift_delete($shift_id); engelsystem_log( diff --git a/includes/model/Shifts_model.php b/includes/model/Shifts_model.php index 6bb17cf2..2408eb49 100644 --- a/includes/model/Shifts_model.php +++ b/includes/model/Shifts_model.php @@ -508,8 +508,8 @@ function Shift_delete_by_psid($shift_psid) */ function Shift_delete($shift_id) { - DB::delete('DELETE FROM `Shifts` WHERE `SID`=?', [$shift_id]); mail_shift_delete(Shift($shift_id)); + DB::delete('DELETE FROM `Shifts` WHERE `SID`=?', [$shift_id]); } /** diff --git a/includes/model/UserWorkLog_model.php b/includes/model/UserWorkLog_model.php index 7b766c5e..c450d901 100644 --- a/includes/model/UserWorkLog_model.php +++ b/includes/model/UserWorkLog_model.php @@ -121,6 +121,41 @@ function UserWorkLog_create($userWorkLog) return $result; } +/** + * @param array|int $shift + */ +function UserWorkLog_from_shift($shift) +{ + $shift = is_array($shift) ? $shift : Shift($shift); + + if ($shift['start'] > time()) { + return; + } + + $room = Room($shift['RID']); + foreach ($shift['ShiftEntry'] as $entry) { + if ($entry['freeloaded']) { + continue; + } + $type = AngelType($entry['TID']); + + UserWorkLog_create([ + 'user_id' => $entry['UID'], + 'work_timestamp' => $shift['start'], + 'work_hours' => ($shift['end'] - $shift['start']) / 60 / 60, + 'comment' => sprintf( + '%s (%s as %s) in %s, %s-%s', + $shift['name'], + $shift['title'], + $type['name'], + $room['Name'], + Carbon::createFromTimestamp($shift['start'])->format(__('m/d/Y h:i a')), + Carbon::createFromTimestamp($shift['end'])->format(__('m/d/Y h:i a')) + ), + ]); + } +} + /** * New user work log entry * From 85e440339267859f9d3f70183c32f9443ca9a27a Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sat, 7 Sep 2019 01:44:15 +0200 Subject: [PATCH 2/5] Rooms: Save times as Worklog and notify on room deletion --- includes/model/Shifts_model.php | 7 +++++-- includes/pages/admin_rooms.php | 9 ++++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/includes/model/Shifts_model.php b/includes/model/Shifts_model.php index 2408eb49..01295fbc 100644 --- a/includes/model/Shifts_model.php +++ b/includes/model/Shifts_model.php @@ -80,12 +80,15 @@ function Shifts_from_frab() } /** - * @param array $room + * @param array|int $room * @return array[] */ function Shifts_by_room($room) { - return DB::select('SELECT * FROM `Shifts` WHERE `RID`=? ORDER BY `start`', [$room['RID']]); + return DB::select( + 'SELECT * FROM `Shifts` WHERE `RID`=? ORDER BY `start`', + [is_array($room) ? $room['RID'] : $room] + ); } /** diff --git a/includes/pages/admin_rooms.php b/includes/pages/admin_rooms.php index bc0eb651..c55eb227 100644 --- a/includes/pages/admin_rooms.php +++ b/includes/pages/admin_rooms.php @@ -179,9 +179,16 @@ function admin_rooms() ]); } elseif ($request->input('show') == 'delete') { if ($request->hasPostData('ack')) { + $shifts = Shifts_by_room($room_id); + foreach ($shifts as $shift) { + $shift = Shift($shift['SID']); + + UserWorkLog_from_shift($shift); + mail_shift_delete($shift); + } + Room_delete($room_id); - engelsystem_log('Room deleted: ' . $name); success(sprintf(__('Room %s deleted.'), $name)); redirect(page_link_to('admin_rooms')); } From c5dd21cbd6d0d8f3fe8e003e6b75b3b46a54fa00 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Wed, 18 Sep 2019 04:38:49 +0200 Subject: [PATCH 3/5] Deleted shift: Added message about worklog entry --- includes/mailer/shifts_mailer.php | 7 ++++++- resources/lang/de_DE/default.mo | Bin 46206 -> 46468 bytes resources/lang/de_DE/default.po | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/includes/mailer/shifts_mailer.php b/includes/mailer/shifts_mailer.php index 37b26838..b496a007 100644 --- a/includes/mailer/shifts_mailer.php +++ b/includes/mailer/shifts_mailer.php @@ -94,7 +94,12 @@ function mail_shift_delete($shift) foreach ($users as $user) { $user = (new User())->forceFill($user); if ($user->settings->email_shiftinfo) { - engelsystem_email_to_user($user, __('Your Shift was deleted'), $message, true); + $userMessage = $message; + if ($shift['start'] < time() && !$user['freeloaded']) { + $userMessage .= "\n" . __('Since the deleted shift was already done, we added a worklog entry instead, to keep your work hours correct.') . "\n"; + } + + engelsystem_email_to_user($user, __('Your Shift was deleted'), $userMessage, true); } } } diff --git a/resources/lang/de_DE/default.mo b/resources/lang/de_DE/default.mo index fb93d59098f243fc9f3d8f04dc65da27eb7ce8d5..be387d9c0d395824073d3b564c18dbff8f5cb920 100644 GIT binary patch delta 11467 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 delta 11186 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 U)2m0%AqCxg6l~kH_4{J~19$xD)&Kwi diff --git a/resources/lang/de_DE/default.po b/resources/lang/de_DE/default.po index 091e1114..3c1e0d15 100644 --- a/resources/lang/de_DE/default.po +++ b/resources/lang/de_DE/default.po @@ -674,6 +674,9 @@ msgstr "Eine deiner Schichten wurde gelöscht:" msgid "Your Shift was deleted" msgstr "Deine Schicht wurde gelöscht" +msgid "Since the deleted shift was already done, we added a worklog entry instead, to keep your work hours correct." +msgstr "Da die gelöschte Schicht bereits vergangen ist, haben wir einen entsprechenden Arbeitseinsatz hinzugefügt." + #: includes/mailer/shifts_mailer.php:114 msgid "You have been assigned to a Shift:" msgstr "Du wurdest in eine Schicht eingetragen:" From 4154e97f3ffa6ecbbf8f6228599742cd23001f95 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sun, 13 Oct 2019 20:28:34 +0200 Subject: [PATCH 4/5] Deleted shift: Multiply with night shifts multiplier for worklog entry --- includes/model/UserWorkLog_model.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/includes/model/UserWorkLog_model.php b/includes/model/UserWorkLog_model.php index c450d901..cc7686cf 100644 --- a/includes/model/UserWorkLog_model.php +++ b/includes/model/UserWorkLog_model.php @@ -127,6 +127,7 @@ function UserWorkLog_create($userWorkLog) function UserWorkLog_from_shift($shift) { $shift = is_array($shift) ? $shift : Shift($shift); + $nightShifts = config('night_shifts'); if ($shift['start'] > time()) { return; @@ -137,12 +138,26 @@ function UserWorkLog_from_shift($shift) if ($entry['freeloaded']) { continue; } + $type = AngelType($entry['TID']); + $nightShiftMultiplier = 1; + $shiftStart = Carbon::createFromTimestamp($shift['start']); + $shiftEnd = Carbon::createFromTimestamp($shift['end']); + if ( + $nightShifts['enabled'] + && ( + $shiftStart->hour >= $nightShifts['start'] && $shiftStart->hour < $nightShifts['end'] + || $shiftEnd->hour >= $nightShifts['start'] && $shiftEnd->hour < $nightShifts['end'] + ) + ) { + $nightShiftMultiplier = $nightShifts['multiplier']; + } + UserWorkLog_create([ 'user_id' => $entry['UID'], 'work_timestamp' => $shift['start'], - 'work_hours' => ($shift['end'] - $shift['start']) / 60 / 60, + 'work_hours' => (($shift['end'] - $shift['start']) / 60 / 60) * $nightShiftMultiplier, 'comment' => sprintf( '%s (%s as %s) in %s, %s-%s', $shift['name'], From 52b8b6b45c68dff281e101bc27375347f296ba5e Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Mon, 21 Oct 2019 09:11:29 +0200 Subject: [PATCH 5/5] Removed .mo files --- resources/lang/de_DE/default.mo | Bin 46468 -> 0 bytes resources/lang/en_US/default.mo | Bin 770 -> 0 bytes resources/lang/pt_BR/default.mo | Bin 41129 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 resources/lang/de_DE/default.mo delete mode 100644 resources/lang/en_US/default.mo delete mode 100644 resources/lang/pt_BR/default.mo diff --git a/resources/lang/de_DE/default.mo b/resources/lang/de_DE/default.mo deleted file mode 100644 index be387d9c0d395824073d3b564c18dbff8f5cb920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46468 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

T*hI%oK4` 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 JyN8X!{{ux1OFsYr diff --git a/resources/lang/en_US/default.mo b/resources/lang/en_US/default.mo deleted file mode 100644 index 7ef9c3b2c086aec2c1c210507ed820614e9f409d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 770 zcmY+C&2G~`5XTLaOAZ{kAvg>-5UjCH1<8h72q{FQV6`dYfD}!WslCP7b$8b(zVQ-V zcoELrc?Qlr2IE-4bfurh>-o>lhvxU~y>9`ZJ?0+sg1O0jVwzJjx0nm&4)c|1bl;hu z*Mi^&+aspF9t3yU{$ktc{;*|taD!>yZVvwn0<3%hQ6m&bv{B6~oo*naXCm5%a4mz>Sh7yqOzQ0XBobF_~9=wyB%`kl_Ac4uV8L@&)s=}bcZRQcXV@tQPQ z^u|g^4Xu=iIP8aU%&zt>-csGn#LblR5*EXZe3Niz7uuMzQ@=z&?3ETm^8k`Qk z3p^P79C#r3-vPIt?d8k{RnJOrTd)FBWwH^R23`ps3cfAiz2KI_9}oCPQ1$-}+zQ;X zCrO?MZV&DZ?hNh<&H&Y}z7Rhh+>Q8!;6Y#;d_MS2P~YDa@cp3L@j-AK@J=uVKL@IR zKLYiA(wiiE0yDt9zy+ZC@nTSPDuZ-Ac|EA_?gG`1he4J5Ls0GcC8%=#1*+cN=Xk#9 zpvs#GicZIZ>faLZ1>lQAJOf3Cjo|j+rQmkpo4~EX_k{EhfEus6!KL8+pxU$3T&L5X zpxQMPRDJV7)w2Lpxy!&y!Sg`T>rrqA@W-I)|2?=L_*YQ%?l#Zs+aKJU_*`&Da2YrQ zyZ}_b*MJ&_tHIsDw}7JC2SL^U9Z=sr2C83w3h`vV(_<%4^&bRo0nQFM4^;b(0@dDA zK=t=@Q2jg;+yy*8U>y{nUk0kb9{@#%yFrc5=L3EpJdpSk;4$DHheI=P6$nX_O(A|8 zSR(!q2&*PX9FZg^fF)4h-w29N#zOq3AYDtgJkr~F45)UT7~(5H{|<^?p8@s#gP{8RC@A{<927mC07b9Ag3A9-P~UHNl+%4bP~{#99t<7{?gm~E z-Zwy%|0+=V-U#jjUJt6gJ3x)!J>Yx6uY#(#cC^#80gAp?gL{D2ff}EWfGY3fpuYcn zNdG!0e)%q_?|uZT{f~$E??KW3AE3TJjKL8e1*-oGLFHcts@zrJ8Q@Dm(e-vv{r?K6 z^8X7IoqrC}^yIf8{h(u!UBu^t;+IQ7(dT`j_~3z%{sgH0?B3_?-Vc-brBm=Yki4YF|IN6IcPoFRujEt~Y`^ zgYNC^v=a1lC;J?6q!97m&a*qJj&jp~$J0sxv;9TNsLAB>y;O^l2 zLAB#EpxW^@P~-K(5dRsdc02*@0d9Yi*LyIi?@j_$|5@N1unryu-UuQJlCOe2;B#Qs z6r2NUJXV4FE(4ir$!owp!B2y;z;Apbh<_MVd0z%4zy1(# z%TpM8;`@T4(=j2wI>hUs=y4UO{(c-(`@Rio{{0D5xz9V*RDt9$Q2jj*6df)D&jjxP z)$gakt-#|>b6gZ~8K`-(8r%|mDY!M5f#SCssP8t0^h-gF=arz^adU`&3>5!80L}z| z7}B>~>U_07cmV0MLDjbsd?|PyxC#6esQM2--TAc-RQV@@;@edLF94rUd?a8E6#umX zUJi=i-v;gnUJt6=Pk`d@dqB;*2SM@EPr$9gCqb3-e*w2&=Ka|p)cDT>H7}NdD(5^< z-;ad&D?pWdH7I#-BdGE|1Wp4#3+ns(LAB>$Q2qO1z~2RY3fzYD9nWxn*&9?nb3v7} zB;YDg-=7bvo(iaOx&&1JF9$`ZD?!!wrttn+@Oi{<0G02(pz6C7RQVqTRnBKY(dCQa z4Df3q{RvQf{0~s`c&Ft~j{`xbR5A}70$bn_;G>}C^NuTA|2PFi^dy&qnwMiBOHT3^ zQ1f!$N}qS@z*)qv24RilZczO76u3RO^D1ZoP6stlhrv_9D?stnH^3KxOPK^!@MiEL zaEG&eKD`<|ocImkZ15pai_RR=@TzIJ4qOt^FmPV?g7O& zhl9I;M}xvHQV3@DHHMKkOw=mkYtU#H-*5;0+*4UGf8PA8=nfrSUih z6x|kqqT{Kc#$`FEaX%Xr-;@G2K=to3P<;4SP<(eCsPAq7_1yztG2hA5iV;1y$}5puRsT#Fu~v6F)P=HwL^MRK7QZ`u^=9 z{axS-h~El|ukHfXj{8CNA}Fo}lP? zDEQOo&~8wCwo|{$sRf|Q9R!uX8Su5>p~SBP4*|ab&H^6~xa)xTb3woi6y2@~_-;_; zeh54o{0u0*e*#p$W)6Bk=78$|k)YB~2Dbs1f_s9i!F|CBxGQ)in1VNeniuzi;;Y9% z(Pih%anFGJgKEb?pxSphsB#y98s7`R{lJZ&`2Jc@^WhFq^Y%-iAFUL4Y|2Q@Aq0L6bF0o9%{P~|@as$KsBs-C}rTY@_eJ3s6ND*tS7 zEATi_bXWvx9=sS_43@#?gC7p>?*i4XuYlsyhe754DX4Zl0d4}f8u9O54XXcFfNJjz zp!#tusB-QD)xK|ohk(BYRo-r8pXUdI8n^R6wSN#49oK<#z{^18zY|n{z6h$^Z-Z*j zPeAqS&)_!THVCsVz+D3F3F`a(z~_Ozpz4_qD*v&d+P?@?z2||dw*hKg-V2Hjp8?g6 z`@y}z$H1B3KfwjyjCIcUgP`Qto4^_110bR@`2%Yh8u*-x z9A5zH`#r$tg402@>mYCycno+bcqOA7zYS`9w`qER<_0_(Jc#rK;39AURK8omUBIt{W$>rq*TFMdKCkv^`#2v2_K>~` z)cC#<6g{p5hrsuN8kcG7z1{;s_2W=*EAV)5J8&_mew`KY0#I}u0!9A{sBvnB^bH~X z6`=ZmdBC@UTN8gjsPgUr_5CM6)pt*b-v=t+*Ffca7*xN10xI8D8+^QX0JkN+Ylx@d z&ctT~JO&h~!7>R6h;?#cxM|dx7VI zdxK3-<-QR-5WEpQ0vrQX&)>ks;M|vcybaDGeg~*>9syJEkKnQ3&X>6SIs=?Xd@U&c zemAIce*&Hi?)D0wH!lXyB7QqK2mBW(I`zEL`TGKJKJlx-x!~u(eZk*>uLie$6}l++ zhJbrr>il#IxIgI+f~xP=pw^vUJ~|RS2UI!Nfct^Bfs)hrgUa_?P~*1SYrGvNgKFO> zDEV*`D8BtFD7ya%RQtBM%>8|Rpz>V;s+?QFA@DokGVr*|osX^nHIJ?V#SiZWHIF|C zYM$I3@E%ZnaX%=&eJJ1$K-K>XP~-70P<*(@Ykl002G#DRp!&NB6hB=H9su4B+I$2n z#2*IfO0wv6-k$rwEr>q^ijN)v)!tu$YR~_I&j+`-!f_fXe%cXK{^{VB;NjrjU|)!z z4XU3PfO~>va3AnBpvu1i6kmTBRC)J-8mC7`SyIh_h%-!8}Z{o@&8$%@(+Wm z=e3~b|64)Lt6M;|?@mzd`%;KM2#P*G0#)9hK;_^1N^k$}p!jMYsP$?UsQed#qJI-q zyWaqA1Kt8|1%4#pC%~m9gTfEijyd9|e4h0VdPXTuZF9OxR%Rznj9#DMs32zr;!gDv9cgX-ruL5DX4s(2gMIx236j-K#kX<;4a{=L6!SdNZ;y4&%Xz#@k>F~ zGY8xsTmq`xL2y@a9jJ0I1(p9QP~&}lh~Eg#BK~1;JMen}e*vnTKZ9F<{{U4^a+CAN zG;klH`+#cS(E(2cRnDoP_~>jSai@(EoC;IC5 z5}q~2rxN~03H&ya_Bw)Sx5`q`MFW0=^q2E|2Y3VFTEZEG*OGPt;Q_)5;`+@A_(^a! z@sAOX=lL~y$?rMg{r?6$jI`e?FX0nB?*VQ__!r>@&Lfn0*6%Y8`QKwh`hSC0ka{6_HsQO3*XOyAgTxOl#P#?nX`cfJ zz{d#Bc`m*e@L&QWIJr=n3cn?!BZ`vu6Mjbcad`Jd@I{2Z2|pw}MVLq4_#?;}JYP=u zGS6=!JVmGxen`;o7XeM!5`PKd&w9ac4&hV0|7*zeGjMUt&$}H7hZ27{q}>bt7vUqM zw+Q;ZA-ww*&z}j;yW1Pqq!3s1J3Mb9yqRz=@vXtDL%!p{=M#RQJm6QsuYx-hK2G=* z@x4IUGTDJ={a#0SAK^&iA16px_-A;>WB$8}wBw2Ogm<3>f1bZ(UF7*d!d%jiDx_V9dP=okwNBW)MD+q7l`SpZMFZkWb^X~|6=Xp!;9>OA?zXyIw z8Th@8a6duoqkgX<{E6^igd@mz3OEb=FyW1a(}?T$SBK<_q#aGzBgF6LIsSI#c~8Rk zNSGGV2g1vfz()!9hWHS8Het&UZ-BQF-a$Bo@O#2HDdQ%>E3CnoC34AA^_J)&%-=_i}0=xU(WMw1pSV6NVXu}R-Tal2Rx zMnX#1k+ffeKL?Kl_X1xAzL#(Sp+xu?X}f|i1!sU?08b^v--md3Kk>H{9_IPS;5Wm| zL7smao-g8gHQ@)ucLN^;Zvj^l{+;jy@vA}oE(cEu&-01Tv{dX1(*Dl#YQnqqe#T%r zl2t~tMq10V!ECUT(9Bbs=|H_URBlwW!E~tJNK3WhtkT*vnx!+Ey~&K`Am9AXYo35&4rDm448k^G6aH(ADP3Fy?ePk$inWN9NCE;q?T|LNmM2{Jo5`jX9O-9XmC ztdg~|L9z~rL%dkUU?V=GiDy2H!Q?qu!mg zQ63&?d1AW>(=fz2Hz+H88K2o$CUQeBnP^3_aG17MDhlaBu@hzTs4{s{f)S)Y%W7%0 z)L2Kkbh<=e*JqS5WrjwB41=4=p<$d@%&=0^R!?)J+-McQ){9zw{2LWARBzYvihL*= z&aKV%z(Ce)4z(-OLra?@^>$^D0UyX{URr9UVxm@>&KS&RPOMe)s+n#WDG!X;1WZe# zqmBCdQl-gQtKR{X&lAE-j4TlfvedzP)~p@UO0$h{TH%Fg+}r?rI;0o1v!>W6rbF)j zP2nZah1Vi*sge$sTGSpQFiwl|%L9Dw0}wH1B2QM&kpLkReA!%=wnnn_w5+r~s}XIM zhilXaSDB1R7Dh_JKP6)mn>h%f0ngSCHJvHaH5629SNq{g%_Yj<8Gx%=X}M-(u^y+b z5>#p;T?gA0^<+`0ku0iLki*TarAELQi|W;CR%=B}XG%;{Xd}%w!Ak%D3|)lTghs}t&y0wmTgdvy}WuY6crP?%e9!z6wi-zQoTxnkVxJ# zZCJcy(VAqj7+Qa3r;FP@k^6{mN*0@-4It+5gpSxNq~(QsTCMyvG+Lb1SVi(dSe!X) zNS+s-)A~@lw%(tr)v7+vq!*e#yks3-TsJm?E|torbVCU~l5|FVGkJKL(L8Z8c{VGx zr}{9c1*$;oGIb3xW8T-N$?vP1mFt?pR4oV@MFm@r%C&(?d(b8yWVP95jK**crrG+8 zRl82+MmkzX7>j_)gET8mT|;qPS_lW~4Hh<5 zmnF<5ij0^JQiw((l!8=~ptLp8^9(oY?NNW!q)w4w?EhLZ-oEh(Hk0kWNhW*BHBa=( zgwV$yDQAT>+7lYtMeQ`MsbTfZc-&nLa)TEgiy-dd(Ee#_# zJll)1iY*<>AqB}H)fjy^M9{H(3Gpw8LL953Ti^9GTVIO#!-BJ9qjWE^s<+5U)9g); zFQp@mZ0LjoW;732P+r8M?BqRuPH92PZ0ve}`s$S{itkJ78A%haGm*wpXxC-gC@ac9 zBWum}IkKTla#tw~dxlhje@dfezSyL?X7whgEIczgg#r=S z1TFkD6pR71fzz@|Me=<%rW`8B0Gfmp3dR*#RCWGz3GK4aH7R{I8g0DO^dU^IPF2w5 zY-!0#RjFO*V0@{s=T5Qyofax)2kSOWNTqub->~*Qd zvNVJTAq;kNdP=?Cc8X|^%3x6AP;F_KjOWo&76!MN+D#Ehx}0k?^usG){FnMPUs?-V zxA?nKnT;)rwZK_jjM}1vkUZybNx?_DYO7#-6E3yp=X)tc|dV_yxdVpeamGO5rD)~E85y)f($%SRB zL5MNm;6c~BPy&?A)sMicmbS6w{YhsGBrBNL_QytJMLk(jPZ!$I>nSo}a0-yJTJnCi znCI+K<&cWWq%)rZ(I_|zNgbsz%$8xTIkc^gB_w{`Sgp+22=g1|Wx=j5vuG(pE#nU! zj9`2hp3|AD5P#UzeMr7p$qKiRnPpKxrB+KSzF9di&>k(-1~w%t5rQ4k+VUARcoxZ( zqpXCn{mo=09A9(^x*IW_1Hmh_I>VPCV-5jk!_!PwMLRM+kkiajlLdYGd$~(crqKxV zj6r2vHKHDej(M+3mGSYk;FXA3O$gC>BUIs&m_C?|;!12cI)!g0rMm*tp_uY=FCYTM zCB5nL(k9jtq+Y3_<#ChyVGwG;iCD;AoE9#@S$!F^ad}-9*GAhe<^!>PK{w%vjX1?u zYfb1Bd<-lBu8rq)Fe@~cxMN)0q$cwXOv3=7g$!_ON8z3S34g#TC*ya*7W+Esk?#ij1bGKf|)|@l?&l z10f3DSXt>11Q%qfvW~^5AJ;Hbznd1%@LM`M?#uq72g@vsaT#1wkW!@$of z)s7ajus@T=jIT161u_b)QPBa1uw=ny03}RuL}&^zgTxa?kXYM5X|yy@Zk4mnw07c5 z+Qq!SNjur~NuY*PNBt}rA^v}ffbE?1bt!P>WR*&U@wATi=hHDPLvGV(k;@0q41!WW zD~k<{F{%GQwZwkaLuDXYEtwsBzQ8P}Jal#7MS z^av}uPoAh?jLWIXYfFTv-t?Ij3>s;4q`2!|Kg;E7ITaEGn8;*rXA0~H8+pN|$gBEqhL;FX(4_RP6Xo_3JlMDXQnS*s`iQPBa z>M7T7C3R}*DqeHJtZ0>=>!N0*HLR*mnY|{s#`_&yw!oNibA=j-;pRi+7{8w7TbpMg zBNF`)&*lb#CAdc5FM}$o^gc^z`d_gnJ~TvSC+?*rtMQoFANP|?reCaPr5G4V9Gn1s z#7rzQd7Q~Kxr^pSy3jonB>H|({*Z=N8rx`y1}F;cAjHk|Ol^k8BwI)|^pH7NE1o&0 zghyG#n=*@Htjn76M7&9CfmTA6M!QyHJ)FabFp=lzYMpyKJ7t<3=lR?oitTRt*CtQ` zr7fE!L{hucpRw?7{gY0Sdg>ZqE5TCL`C`wNXjKMDtD^MS+4EeDqu6$FnpSIKRv(V- z)yU;!wN?rL%Sg8S*TQaKRY3`1W4-g#OxE;R6(9vRS|=uJO6#yFx-A54i!{WgQ3pxZ zxWQo9oO3!GMg?)K)Nb{wD}_oCyD&V1_Vj+P4I|o>j|N?EVa&23O4{AWe;5RwHey9k zcZ*|Kp_ynqCGIk!5g>?q>OEM?3GxVjC1HsImZgmE!kusTvT762w^2^Yjzx;!sMvhM$-d6|^FntSHG|3zKTbVA{qx8BbB=%`X-)RUVWsJ2#Mjq*;o) zHmt~6{(Kef@m18XyVAj;4Qcb-e;v|IJztd=1*G>m~wd>zuh3py<8mM!dZklU#X z|F}OJC`lKM;-he=Dx9K_55;N=e#^qSi#g6Cb9~iskEzuj_!Y{!d+e067M>h^-sbmA z8QI7TN{~%bg{JgHF1k>o^hg(}?*5@gv^Bgmo00ss0a2Azii?tBZ2!oeW^37|bB#KD zW9^bEUhu5Rl7KU#LBOeskXdRmoPiQ8LWUziYp_=m{jq*VLyHv7$N68TN_`zfr)e&_ z!}ji)1{_{3x1iUdp~K?>r%|xj zBPROxeSRDiF<(N$+0Q9^WIJVHhudl~VHKU=F1a9$Yy#%#q`O&2h0ul|S%?I3bi7 zo6xD+*BLF3`AB*vau(=lraH`5s;yIj)AQHGH9jw*Gp=#Ec_+lPU8}CXKs3S5+N{lG znYRz77XO7|RBth9hx{G3JBK`Nqqr~wDMt^?tnJ5Ilmj@w?gS z+BO@-u5TUCbHG$JwHTLRyJ}dw>oCrZ3ahQ;!6=8ajWjyA`jo8^237(;sL{pb!l86e zj)z&5-$pR3l;N%I0&U{_do|yZ8lTfP*lDkGfy}_zQt7|L7_|Ay7%Q_naOccUNBvln zEulD-N9>5P(Z~l5-k#)O8dZhX24;E|Ulb`f&b8ac8cYfEl*uzH-cn*4etJWv!5fHCU!V}j|4K|S=E7!&@mHa30hF1Ln@n+uwF!Du&N0b z%Sdmn-XofuyErDqf@6+WkLi9%KPS%_%Bq|NY@|e*~e8vQbC%K5$ zHrXHhZXBm2u zFR^oo;gpL#`#B!|9W2hL*nza9I%jasx#>t>IV~kx=e5eqJWB8=jca^T*O3HHQ71kd z1DN85FVz#{T&P1~?k>cX_0uo!@IJc9SGhfD8kDW-I*{kPS3FqT+?bqd(>sdP3 za}JXN`O(MqBs}3w7f|zi=T2L-a!t=7Id*y5vltD&FP%Sk-qAgCkLa0yWIFfAzWIkA zHh2D9W$ZbNodcE9$#+c8ym>wIk51>#?VEq>VRPq^PiK32%sS$%QN7WJiBs(_rNp9AwhXfaV!Axi7u&IMf$a81cedy*}E>eR8SEIg8dvU)tL{$NrnPs=_`# z1A`IW>`QB-7Hys||2V|B-kdPAmM%!=%{s1A%4$}mfou_yjK1`x-kH2b?m=HgEj@Fo zXIg>~>-xcwg*dHsntTVjtlvj6pRPXgp^X$&hjY7c%)aZb*nL$ZPH;h zS#|!>p8SK5f=!=|-HJ@tH{5+&Gj^LSWlEyNc7umf1wmXQ+WqmN=^5;Ta?|E%^DV87 z-7!#pCMB*JyQ9^vJfobUvzu+AZpDqgukP34Sj2`(>-j6LlN)zE&JUh+VTBHlC}TAG z;WYCIq~;Llyf;U{*=XuU7&HUcdrm41jNP8%?!p<8MzavA4Asji+ri}_P7w~)@fAFa z@7RYQwvQH$-Aco_XH;I#Uq%)Qr)MrH33PR?3~g&Au1duxKe(ZsG@@Lc{6*OZrTDTW z@u?~bi9uZ#aVV`cS})VAVqNWKd+g>0qs!Tl0s|(i+|nMqJ2U=^Uux;Cw8!okqK{w71guI8}?4j;nxEzTqRwr+1U3nRvo*eR;K;PfX-2#HBi$@r#^_$MzzC+^tDN@a}6b!1N!R1-C7t- zU)VchT@hwBLuVYt?SQ6yDTS;)N6h`kWQc{RNNsk~h*rrT*cszqO4b-g(JHZ>sF(Qv zAv2Rj1MV;AS$IJv79ta8oFvnjP&>}0u{(4bk7X5!5?*lAiX8QJ;Bj@=-ZVo1K`QBVVou(`NgYCJ(qfd`gz8OKLWxgTvxbPs0Lc-@ z;c58@7vlbH;0CKGdl0t}0>>&$+FnY z8@QYC0wrU{SOOy|KjTQLBLQL-J0{y*2)xbQ)9r7@9g{@Uk9&RAc<%!hqQDj`4X25wQ@I=bSgf*ArUFhsiwkJHRE#HnR57Z8j< zW9&AxUc_Cz=2x;w_c=<4 z79Qxhf`>Si#jnBzKWka>8F33~x%g75jHowu)F!Z1@l7xDNDC&aYQ+{{$u=fozIrjB zNLk%5n>6Dftzz!UjjL4&5t6ShT?)z+pGRIXPnI#@lr?p-Iztz!5Erj0YB6bRRal!g zpNm5PVNv4{l$OV`=C{|`%s8#*JeBGMA4Hx;J1iMCtWQNH4dY~^_cZNxi-pm6RwQON zWNS;l#5BfF@(y`zoXupUX$X>LslwlJ?*rwcQaSEz{JQg63;@UEBe}ees7A<@B;i_I z3$o>>nx}SO6|_a2RRA$*9)T9?w{GpxK&DK1GCFf~k(Gav61@R2?{K3%T8|O@p%VG5 zdR`>55*5K3{kkv7n-jp z#|qu>g2`;JTz3VE(RA!KRxNFAkfR1GjNQy>-x9ous;Rxh*A(@ER>8~&jaV646Zh(n0)89OCV6L!O+2dVpu!fa&5K}hlvQIz*i9e? zR6ifaN4bKTXA79yMh1>3nGPAxUS!ZNo(u1 z_>>wPpu;jaMd?x{!`($jBE0gui!AjTW8F}MEPRK`;|p9!LXsp)s-tC!8Puc+*P6m2 zsQZk`8Rhj{Jdj?9%UsV|@+HAtJ%~>Cbmqc>o?v$wQ5!-(5MdgEXK<@=F&FcL0`50o zvSCg$Cg(6yZLZ^p2=_~E=-8CbDxI0tw862As7<&k83b(x!n36cYHD+uvjT+VU`8zs zrZS$zb#@IWf!!vgt&)NoHFU{`#cUjE=@v8k#9u=NND0Wj(ysEQCB`RMh@(0h3~@I? zf5@g8#PL3BBWI8s6r&~FR^I3ba3{b*mEl54x}2^*(o^#5058PBz+mzrv$CO*wl|_l zDr04E?9#y^6(wIeu#O4FGh(&B0&L&aUqh;KR)kZX?*Tzy7pqa!r#rZ3#D>x{n*Vq>mb`$n!u1IHA|*Ns%`NQlM7yt z@&tj7h-90FeguhT)6N}uCJx~xTYyURkXhKdaA{?jnl*Mi<4v7$eHu3c@e(FIV|BC&!nI2!5oMe8^f_l0&6*|8ttF$X6u6Lr? z@^!B3`f6oriC@sM|V;gXWMlQ7U~5^HfSL8KK_KzS^D-3wf9q&K^%MPtLq%pvJ)@jC`278=%#&O5a` zR2Z9`uj#n~7EaJvCoOZ-LOORteXhB86oJF=(8pMIqCT4A2TxGp*>8zrW8g<+;pLua z?x>0DF^dszx$dbuqR#!RHGV9rt@1F#xY~3Ttvb20AXyw%#}w^>b8URBg}93qifXi9 z8s*NYS*6f@CH*R&igBC$1WO6AHfq8u-` z1iRKRT`XNCT}KWyC9XxLntKr*>U`wmfGm$*xz0=_$y%q8V8zxUh0b@K%4{vOtEQei z7DUxHnbF~jWlmm*mKR(2!r(9@42$GlDfJtv#qZE0WlD-ss}kXIWxSqsZ-YfI~eJi_IR zQ4?)a%Um=2m;INVe`X^sxon12>C;rZJ^IGzTgZonfyT({kK96aj(g;Bg_vqtC>Czt z6^kssgauHUr+S+!5GD<$&c$ZG@7Rsc*WJx7$s1;Hq0r4_j?%&I;{~#zP0A(}c_rv3 z^=TGLFA#iE!BET^iO!;eH745^rNXvLCnuF(6buZ8rl8HxIOrHqIa_shzW5h#a$dly zlHM%^BCZhTk&v&VCg&e4<%^q2T0eFN`;%s1c1qAGE>={(By3!#ue5(QfuZc0aL3im zY%rCs;58|12{ zCqEh=ZyB2(8I1+8>6Xh`cDFcecy`%c@r@ZOZ16~$GK{5o?!ew_$2lr4$*L*N8JLMp z&Y()73;Hnwnf@@^q-;;iwc(%pPUMsIv?!Y}RnmnTKQpH!WaW(IGwwRIeAB%%#&}3A z8L!#cov`yDN|tnDTprdgxDxSX>~IkdExN>^DmE`J&R@%S5c{6agG3**Az#R z2FA*Y#{{CWflVC+U6)$u|TMbQljhzGXLz4^|J0k_z6NOTT zS62pkoCuJ@QNwk!bVrFSO}@z zRTN_dK2lv>uZ)6SbmO(nywKKh>kqSfqD^Znlin=1{h-2jsTI;J2(mR^UOdAQ5%+bo z$>|IHGI*(5V|T*3_Q;DUvf@L=c1iF`&>ih84Ri28|N6gA z1v}kQoDY(F(d`hI|4v1nwXMV{C+%|haVv(bV`_wrU#3n;8(daJyt}RAdI&MJ;|V;8 z2$Uboxl-P&q0+@RH&I7T)UiY2%9GA{vImIQF&vuZ-v=eXu5fGHwAdXv$>MHtw7e&J ze7e41ufUFPNpTEk?TpV^`~4(di3?DwkAsA&urS^1bQDrFzg13_;$^V>4j8N2#1n!X z2#ETHspU++aFyG25-Hd=C3TFz)io5QynoZQe^YAMhKOG4O1HV-HUEPY=ZRP0x>?Y^ zCpJXapQh5@3Ke1+nD@ye3V{R^JfwCI-584laJ;s~R!9$c`ogKTmh;@XTix5IFoqJYgDz1s|@lvFc7 z!uGWHA@E0TvAC2r#)R4H939|~I|})ydW-gXvc`{hM`Tx*JwjdO?nrtX$8~NyhNBY> zQd0a{x1aWcS+a(mp;0GjBQYrl%EQ1(=V^>TwC#twwf6cUZ@O89Zr4a4_a@dQ&QFd@lGzi zj7E*7irzuLP`XWb1hrhw@kDml$i&L{)b^nY^#}6X5ZZzGJg=8f*dAKV>D@M`Fwh_e z!!AoWCPBYhaJ0G3zeXX~LYPh(C$=cL2JXsyG@O0zpc06%!3EwaLLD7f2qjKgiu7nU zV2TnzrhPq~rkg_&Jf_F`1dp3kHl?*vgh>uXR#Hv_rvgm0A?tU#h!9WYM7j+WZ-4s|k%y%8Qat4`B zqb0A@OqjQHan?97B>8$ZjB>00QH7cvUN3aw`%LOh2Io}goXfukR84$OUy_CPiNQR< z*g&UA3Pdo^LS*xT>KwVxwm~IDnPdeXeHKO5yFR4(Mdt1hW&*~A1OJ`!I3>Z&1t$ZiVnS?P*_(aynE9%$g1pOxZVV{ z(VkP8ZV5`O4l9O^YN~P3BE&hU9WQsSJI~wI6}wr{HK*8gLDPXX@FQoqv0*`VN(b+C z-hl&JzInz!GJ~MzsNghs&LmSdhx&cujn}236UAB0ZCc%lLzKJ3D0H#Fpl}1NiFN_& zWthA;enQ;{5vw1=&R^KD8RD z%3m0ClbX*|pR{AyoaHff$j<}Ig76FUPT=5ngF<$Pp8GAP6UWU*yH5}G`R5*Ne;=0` z+LaFO85_y6ACOmV`n1*2(#XZGS{^@BIUL^dBbGtUO)u!VAkuKMW*`xwKZMPy;Dnf@ z0mvz}z~n(RF-#vaEy(3W*jJYBrnS>WjmeArsvADH;tLbRC_)QeIM~j*PxE*n#^jHs z^N+~qms-2>q&ZdWIp0jS+*%lwfrVBxGhUjSuYTEG{7jee=|;2Q z?BRsF8#Yec8G|FVOn;5Uc1i-Zs9shhqn_7!3erU9`=s<2*Bbr@4<_~sG9oX)&ZnDg zGtfrmFCM#=)<^4OrFVf7#KQ-5VCwE}O0e$7o??8&A-* zBWW~Rc4x|_g#H1R3c50fhJzGf6_@y2oF8NCO}KW3TA2jjHxJ=hRpH66t0XdwVNB*7 z#MEq@(M-bH2yJw!Dc6#dMz)s2my{bHVi}Ve@kyAfQ%pVkhXg1p)8&it4Ty$hJ@LuK z(qJcz5VN=T1-S zD<{PhJ$Bx2xg8>&R6g+U4RE>*S!(hp6Pfg{^s?6L3S%D2+b#V?)O0Hrs=M;(xvd?1 UT)6FvIMERxof*)@;U?k#0R=vo82|tP