From d24fa47ec8bdeb1f1dbcbd7b3cc9f513763c38c4 Mon Sep 17 00:00:00 2001 From: Kwesi Banson Jnr Date: Mon, 9 Mar 2026 22:23:34 +0000 Subject: [PATCH] Fix: refactored permit show for new API --- php_code/.env | 2 +- .../app/Http/Controllers/AdminController.php | 1 - .../Http/Controllers/PermitsController.php | 36 +++++-- .../Http/Controllers/UserloginController.php | 6 ++ .../app/Http/Controllers/UsersController.php | 43 +++++--- php_code/app/Mail/UserAccountsMail.php | 58 +++++++++++ .../images/grey-map-with-location-pin.jpg | Bin 0 -> 32759 bytes .../assets/images/locator-icon-vector.jpeg | Bin 0 -> 43593 bytes php_code/public/assets/js/l4lfunctions.js | 2 +- php_code/public/assets/js/usermgt.js | 42 ++++---- .../jquery-confirm/jquery-confirm.min.css | 9 ++ .../libs/jquery-confirm/jquery-confirm.min.js | 10 ++ php_code/resources/views/admin/home.blade.php | 2 +- .../resources/views/emails/new-user.blade.php | 15 +++ .../views/permits/dashboard.blade.php | 3 + .../resources/views/permits/index.blade.php | 1 + .../permits/partials/pdf-modal.blade.php | 14 +++ .../resources/views/permits/show.blade.php | 92 +++++++++++++----- .../resources/views/user-auth/login.blade.php | 6 +- php_code/routes/web.php | 11 ++- 20 files changed, 276 insertions(+), 77 deletions(-) create mode 100644 php_code/app/Mail/UserAccountsMail.php create mode 100644 php_code/public/assets/images/grey-map-with-location-pin.jpg create mode 100644 php_code/public/assets/images/locator-icon-vector.jpeg create mode 100644 php_code/public/assets/libs/jquery-confirm/jquery-confirm.min.css create mode 100644 php_code/public/assets/libs/jquery-confirm/jquery-confirm.min.js create mode 100644 php_code/resources/views/permits/partials/pdf-modal.blade.php diff --git a/php_code/.env b/php_code/.env index 30ef6a99..25a8a2df 100644 --- a/php_code/.env +++ b/php_code/.env @@ -29,7 +29,7 @@ MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null -MAIL_FROM_ADDRESS=null +MAIL_FROM_ADDRESS=lupmis@luspa.gov.gh MAIL_FROM_NAME="${APP_NAME}" AWS_ACCESS_KEY_ID= diff --git a/php_code/app/Http/Controllers/AdminController.php b/php_code/app/Http/Controllers/AdminController.php index 6e66b192..fa478418 100644 --- a/php_code/app/Http/Controllers/AdminController.php +++ b/php_code/app/Http/Controllers/AdminController.php @@ -8,7 +8,6 @@ use Illuminate\Http\Request; class AdminController extends Controller { public function index(){ - $users_url = "user_mgt/get_all_users.php"; $data = ['api_token' => env('LUPMISAPIKEY')]; $result = ApiCalls::CurlPost(json_encode($data), $users_url); diff --git a/php_code/app/Http/Controllers/PermitsController.php b/php_code/app/Http/Controllers/PermitsController.php index 06ca6ac5..18af5513 100644 --- a/php_code/app/Http/Controllers/PermitsController.php +++ b/php_code/app/Http/Controllers/PermitsController.php @@ -4,6 +4,8 @@ namespace App\Http\Controllers; use App\Utilities\ApiCalls; use Session; use Illuminate\Http\Request; +use Storage; +use Response; class PermitsController extends Controller { @@ -11,13 +13,14 @@ class PermitsController extends Controller $url = "permit/get_applications_by_district.php"; $data = json_encode([ - 'district_id' => 176, + 'district_id' => 80, 'api_token' => env('LUPMISAPIKEY') ]); $result = ApiCalls::CurlPost($data, $url); - // dd($result); + dump($result); $result = json_decode($result, true); // dd(is_array($result['data'])); + $data = [ 'page_title' => 'Permits Dashboard', 'permits_arr' => $result @@ -28,13 +31,16 @@ class PermitsController extends Controller public function statusIndex($status){ $url = "permit/get_applications_by_district.php"; $data = json_encode([ - 'district_id' => 176, + 'district_id' => 80, 'api_token' => env('LUPMISAPIKEY') ]); $result = ApiCalls::CurlPost($data, $url); $result = json_decode($result, true); // dump($result); - + if ($result['success'] && $result['data'] == null) { + Session::flash('error_message', 'Your request could not be handled at this time. Try again later'); + return redirect()->back(); + } $data = [ 'page_title' => 'Permits Page', 'permits_arr' => $result, @@ -43,7 +49,8 @@ class PermitsController extends Controller return view('permits.index', $data); } public function show($id){ - $url = "permit/get_applications_by_application_code.php"; + // dump(session('current_user')); + $url = "permit/get_applications_with_applicant_by_application_code.php"; $data = json_encode([ 'application_code' => $id, @@ -51,13 +58,30 @@ class PermitsController extends Controller ]); $result = ApiCalls::CurlPost($data, $url); $result = json_decode($result, true); - // dump($result['data']); + // dump($result); $data = [ 'page_title' => 'Permits Details', 'permit_arr' => $result['data'][0], ]; return view('permits.show', $data); } + public function statusUpdate($id){ + + } + public function viewPdf($filename){ + // Ensure the file exists and is in the correct storage sub-directory + $path = storage_path('app/public/site_plans/' . $filename); + + if (!Storage::disk('public')->exists('site_plans/' . $filename)) { + abort(404); + } + + // Return the file with an inline content disposition to display in the browser + return Response::make(file_get_contents($path), 200, [ + 'Content-Type' => 'application/pdf', + 'Content-Disposition' => 'inline; filename="' . $filename . '"' // 'inline' displays it in the browser/iframe + ]); + } } diff --git a/php_code/app/Http/Controllers/UserloginController.php b/php_code/app/Http/Controllers/UserloginController.php index 1c82e922..62ba61c5 100644 --- a/php_code/app/Http/Controllers/UserloginController.php +++ b/php_code/app/Http/Controllers/UserloginController.php @@ -58,6 +58,12 @@ class UserloginController extends Controller $user_id = session('current_user.id'); $username = session('current_user.name'); + + $logout_user_url = 'auth/logout_user.php'; + $data = ['user_id' => $user_id, 'api_token' => env('LUPMISAPIKEY')]; + $result = ApiCalls::CurlPost(json_encode($data), $logout_user_url); + // dd($result); + $request->session()->forget('current_user'); $request->session()->flush(); $request->session()->regenerate(true); diff --git a/php_code/app/Http/Controllers/UsersController.php b/php_code/app/Http/Controllers/UsersController.php index f65eb5ce..314d0166 100644 --- a/php_code/app/Http/Controllers/UsersController.php +++ b/php_code/app/Http/Controllers/UsersController.php @@ -4,10 +4,13 @@ namespace App\Http\Controllers; use App\Utilities\ApiCalls; use Session; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Mail; +use App\Mail\UserAccountsMail; class UsersController extends Controller { public function index(){ + $data = [ 'page_title' => 'Users Page ' ]; @@ -78,34 +81,48 @@ class UsersController extends Controller $result = ApiCalls::CurlPost($data, $url); $result = json_decode($result, true); \Log::info("Your Password is $password"); + + $recipientEmail = 'recipient@example.com'; + Mail::to($recipientEmail)->send(new UserAccountsMail($password, $request->username)); + //dd('Email sent!'); + if (request()->expectsJson()) { return response()->json($result); } } public function update(Request $request){ - $url = "user_mgt/update_usr_user.php"; + $url = "user_mgt/update_usr_user.php"; // return ['success' => true]; - + // dd($request->all()); $data = json_encode([ - 'full_name' => $params['full_name'], - 'username' => $params['username'], - 'ua_position' => $params['ua_position'], - 'email' => $params['email'], - 'title' => $params['title'], - 'allowed_apps' => implode(", ", $params['allowed_apps']), + 'full_name' => $request['full_name'], + 'username' => $request['username'], + 'ua_position' => $request['ua_position'], + 'user_id' => $request['user_id'], + 'email' => $request['email'], + 'title' => $request['title'], + 'allowed_apps' => implode(", ", $request['allowed_apps']), // 'password_hint' => '', - 'phone' => $params['phone'], - 'gender' => $params['gender'], + 'phone' => $request['phone'], + 'gender' => $request['gender'], 'user_type' => 'District User', - 'api_token' => env('LUPMISAPIKEY'), // + 'api_token' => env('LUPMISAPIKEY'), ]); - - + /* + if (json_decode($data) === null && json_last_error() !== JSON_ERROR_NONE) { + dump('not json'); + } else { + // IS valid JSON + dump('is valid json'); + } + */ + // dd($data); $result = ApiCalls::CurlPost($data, $url); $result = json_decode($result, true); + // dd($result); if (request()->expectsJson()) { return response()->json($result); } diff --git a/php_code/app/Mail/UserAccountsMail.php b/php_code/app/Mail/UserAccountsMail.php new file mode 100644 index 00000000..4e81e8d0 --- /dev/null +++ b/php_code/app/Mail/UserAccountsMail.php @@ -0,0 +1,58 @@ +password = $password; + $this->username = $username; + } + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + //from: new Address('example@example.com', 'Test Sender'), // Optional, overrides global MAIL_FROM_ADDRESS + subject: 'Lupmis User Credentials', + ); + } + + /** + * Get the message content definition. + */ + public function content(): Content + { + return new Content( + view: 'emails.new-user', + ); + } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/php_code/public/assets/images/grey-map-with-location-pin.jpg b/php_code/public/assets/images/grey-map-with-location-pin.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9587ac69e0c755a70f65c902a29dd180b9fd5a03 GIT binary patch literal 32759 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 literal 0 HcmV?d00001 diff --git a/php_code/public/assets/images/locator-icon-vector.jpeg b/php_code/public/assets/images/locator-icon-vector.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..276415da419bcecd34f81be1601e795fc048b73e GIT binary patch literal 43593 zcmeFY2{csy|37~1S;xLJA}MQ<2pN(sm9$VOb)Wm=xx99UccxLWX|VeZ z0629DPzC^C7r@RW2(TbmOvn$wBnhzn?HT}VnWX;X+KFl3Kki`$0A`{8yg$|*VExDa z$TRjtpWka9IFQHmpHIwV{^t`}KwuY(9P+~?4=@Wbu?R5jv@*RwiV$pnf5U&0fxIUx8#~7? zPA+bKfSHMfg_)Iwjg1v4JTTq;Q%YbJU=!S}Y0NHUbCpBhSNLFL>hoO+$10jc&i0b` zXkEJ<#mOZqCN3eVxL0Z4e&s{jhjnz1=$RZhH8Z!cJaO*)1zWp|mo7VBce&x}=I-I= z9}pN69C9c6-u;-^xCilR>5nopvmQUmevx1B@>O9`amm}ts_L5Bckk<(TUy)NJ3f8> z($_yQ_-{=uQ=wW7MWnty` zLk|;k5OT5zu(IveWEV8H;kfE6B!4h+m+-OF=M_zy3R-8$BG+#Ba*6IaG_6SaL(<|c4(HCde_33mD zx3!7l_x#cca~D@GzV$;dZ9qYl-%*UWAaNZFDRHcB9i58BxF+degnG;D*_j>po8{z( z#QRp`z3sw}%1XJPNsfuYl$NN_t9Af)5Hiq$xk4z{EPoOrzlTdeR||7@XSTO`T#ibi z&VSgHb6(3VCSl`oVgw?72Oyu@0g{uH=&HCBL*4oqAA%=e<3HdrtgQF_egN?i^S#m0!MJSS*v_&wNIw|X`ku~L%mmp8d z({C)>EiW2q(_mXl3|cBo#D$_jT#xf#7luHaQ`EZ5bU&Gif=;-#Lez}TdxsYgwlV!5 zJ;9y-Rou{M!>9zkd`8BoY>-qD{0*#X{~#NiHypmENZZn>RkXD7ycm11Yj1zG830s@ znBD-;Cq3^>W=(gg-}Q6IRnb?`%?(X>FyS1(FaK=!+Ul{Ak|@hP02?R?lF$1<`n5#s zkEKu7?_tQ+N7bihTpvtdl232l;_IBIxf^{vyj-tH7#(3Pj+bRo`P5*yfoLaN(hd+E zh4H{c%IdX#Z7fNXb|E-5Y(MQtFt;P6dfq6*-<}gM%EVZ@tf(T0T0dfg zZ3F=fu@4QY)V6!N1!zbug-b%7p8Liz)AEC1pW_1!opNO6`@p)nUF-1x>{Ntb+xiHS zuZy)lUC~{DGHAz^vcqV`!Ttok&tcCNq@1i)u9-JB{lwo)fO-7LQm?Nw@-_O$V1c+E z_{TmLIyJvkU}(#I77uAI%$$0rRoj9Yl{!73i2dbW5`5cAyyv@x&ufbgh9CYbHhGHd zwoVrrA~MRdagqK#JoFRQDf1X|vPY+M6UVu^<^3*cn7aEZuiRLE$NAKmo;Qxho!Hi) z#xc?nN76H*(;D53txAc|-T_!9-?v(pFKu4p^qt(Bddvbdn)KxE%7V;%gkdw|;SS&f zjxJC|C>!+SjEt~=l3=~19H-^c?wiAtY>Tyr-}=<%++|Iz(Z50*+G^SXSZffmeh6o$ z-+XEfnId8q>i24t2~NBFuw^DeW(OG7IVcOfGuKc|RYD(e-@SZk#s)jzW^tMg02>Lh zbmRQsQuA7hSgbmc(2rNRRPJ4VU9jcQX(l^!Y(_?`T(MkoOid|0Y6l>uV9B>Iq^ro1 zwG?f9biffM%2dRw7lUBP z;f||9uM%d&s~ODnn;B+;%k4i-F+&G;{?`C? zL*=YbJ1z!WS=fx_54#O@mNq>Pwr~EfcYYmi)m+$>+UI^ zhD^OVfHQ3Je&+^q9l^^u@-YH*ICjRIG$xxxvk4zY!WS8A=A;~cTDaTu?zz^7i87QQ z>``s+7&`z;nIg)=k2NPL-l)Q2tn3oMXzwz4YVl$B$BS54BZ7^%p2 zb;{>8osQeYK8c-39NI?WVv{b0*gG|xLUpg{hvmYDgVN~NC-Vob6-cNQ#?HVf9MTZR2 zyH~CB1;1ME{ov0d2~5+O$V1Z$%^DmdbPQyjw**UktNJzKRp=hrJ2Kkb_(1qXQT`%Z zUepLl^;x*sn#s1> zZImL`$A?&>`3`V(YE;AO1I2X}4A5vIh@Lo^;K{!7fqmY3t-9*oXP^2A-i8E0ut#(j z{hcAq1na94;PtU@g&*DqxTsjn1zW)_SuZpWRb4#@%b(vJ%+&KoCD zUYmvo*wMa*-Gn5_3DjiBw}_60R;I^LB9Q&XxR%gY9%mkq=1))Ur@b!ZNj~uDqlnxl zc0L1nL1cw!R|7v9-`Fy`8nbGVm8%As<&*T19~!?K4AU27U+{YG`Bb}Sd;M3c#`bv8 z!H1|Hfrpq0<{0GiE1sm$9Y7olDS&hl`$Gz;tH^loPHsPl(fwEbNOK7CDM3m)Fs0o$tsMvM)ojo$c1J>-$UL3I;^853ocLH53_L*ef|pD9BxUP zli-lK@Mz9aoZXD=BD1EEY{frB{ZEnqtG_vR{+DuI75WguL(&waa(}%Ym&5{dR+6pG zDm5Fj)Lm-8YS&L|^LlGNs=C&2$kr%n`L|cp!Ye9 zkDqRv%XUA#5aiscrMV~f$2WFm-Bsmo-7Z`FBmt5WqYIiiAgjEBzuUCTmb&Lbr-u7TDA`MYh5ZZ>+618w!2L8>&LN z0|%?K?qwb+%YW!Rmj>Hf-9EDLN$c%w26F_aKu?7}Zg?1MS^=wLY6A?w%G#!$UC@nz z^tm0td)(3UV9_erJKCgk=azYO*b_8eRs)fZ+ogu})g6GTwnRqKM-{faN}wzw4)MIQ z3VqCw3z69>wtD`7pD?=0x*5e8ocj%U?XU9mgD7^ZQj_4Y9T6e>(e7s|jUTzQA0%7t z0Haj6qbXNw5FaiG<*ouX;i~6jK2P=OLnGx825eg5oCa)54^d0%@x{(}U5hWZ6}fMe zeLMMl)?co4zcjzOc$KsQ){YcmjAOhWP(|Hx`t6^X7j}B}$qb=&z`fWsVGHcAdJC&YjM_YiNHg9tzR_XU} zLnVDOCRPLGb5#wM?~GN&_)ou-J)&?kKYzdSmyc0=C=u8M0U21j;K3aL=DbR~EDteD z?1j!D=^f?_xw_^0Q`>PVJ3FUW(uRHy+X^FcW>^Tl7k@pW@r>?nb!WE)n?!ZS6Makk@S!};|B0r=&i_gQszHH@gBa83 z5j$!irIw^H+e9!Y8$P&O?r2tCJ!iG=va#T;@DQ$hPI{?E=y@c6;J6h&=|!^un~Zid zGU)sLUCA9y3A?YXmOpxG-*`Ur7vffOEq2$A8jb8Z>%4Baai=u?Cng>vWMEH8pK*-~ zSB17o_-ee6M^JY4ua;k#%iFfub~`|%emXS7`N55)fQ*T1u%@8fC9x4I z<^1sd^@Z?nv{;_h`xkf5GEQ1PdzKCF0*SqtVY4x6I-~IyYBZ?ha?q%OKKXK=J`L0a z14l_~(5e}VT3)a@CeX5+iMDlQ1GM?S}@!Vl27ACc7U^t7YMd@ zw5MS#-hQ>MdFT~NIpMpB(tZM@m%9GPJXRKAt3LIxaxijjgfJ$x4% z#mF@{!@^>x&aJDpHI7{ohBvP1B2e)u7rTWBtcxWhT!EDF?HZ8s5XmN#65Ap8A?03G zx?15qe}2&Km3z1Gg7neWu?w#i4Jv_rfey)i9K8gxZ3?6@M0$Yu6{8`a1_kZ$Tz1Gt z0sR&-Kl$ESco~H%I$1BdW__{rEL|!&IZ>g~F@Y5EF#$j)=2=YmLzFZ9>xzGja>v_w9AV z6m6?Acn4^7W7*_g*87EhfMYjQrwdVpf-$q^_XEIP%M`|njK>#G?u?GIb0xaSt)5*c zm1!WQGmmMBPBr`-oq#E`76Qt%&Dw+mymSw!&hVS4K|GIrLs-C}PYnk_>^G&gFD zzusK@h$b1EhM+#CBx89A?wET{(h!LpWRqe?u8sc*X{#OF&}x0yT_54HoJ%Q=U?|oKtXhy-V z)N)347zfQF*fg@A?wdF4=__Z@Lj80vMikMUy?b>K`>{R&Y|H*FBL9iX|N4pg-)Nkw z{Jw>NlzNQ25~P60@o638`m%Fw87&-UTIi;GF4o@a_R!{m*|qsm-LcV=LHK2T332=; zlIKN_H>!7n6f6<*QTNr?%Z90?EB#7a@RX`3MRT@xWa`Eov;p+Gdc4zMEV^>Nij;7;zVk?&B6e zE8amYQt8_Vyole&0_{iM_6q_pUu@@Qs;uIFpYOtw$)>APTgo6 z`X=xs`(#X1hct7&%hQ|~?JQ-wjUBj$6zXhqWx1?7x|SVT?#J0e5=2&{Wlljf)rp_B?4XT+R~YFA6o@R|HMl`;S1%tr8l#7B_+!qZPBdzWp}KsfO(gk z-S2j=DHJ4*@|sZPzXfQFu25w|Cp@Q33-15Q;hOFm+yP<->%OK$Y>uciXL|J?KhUT3 z>bDT%$O_7dyp}%WCArcvx+*X+JawG9b$C-QZU6I!UjF_D2kX+xP-lFN(8LSUk7vq; zR)*+e_AuwPE26FlT#Jf>YKcMju4NcVm9bL9?q{F2=&NQPyZX5kU3oHX%;o)6e&^0B z;YJ-s=tW)xLb-xXrUATG))X9F$aO|>J%^DaovTbvc{W~llIU@`cvYrvPQdtx``8j= z(++w8Hc5kS<<`^-$V$({_@Q2xTVCbmVdq>5J^1*(9b#N+Yze?Q7;8O5NgyG6ErQGQ z@MwS;qlo4A1fq5M;Pp=H(P)@cY&M1elF7U$j{8S+yI#lziH+5itYA*!J=&hP?`62< zDIYt2OQ@ravFr8}pXr5ISR?EJMXcFcv}3_tc3(oz?+gu1BU2ri&s*d5iPgGd)nQBs{>wRE7E2*5cud_)_wcbS+jAK_Yi@2^xQPI%||FqV@Rm8 zkvv%%^3p+R%cU~oIY?DL#M@Ip(CWcA}cOsaLl8wzF| zwm#~NaVENEtq7b}^-rlY!ANdI4nwt+i%ww~Ik2i(k+y!PkD$BOJ8ZUvnp68l<0Fen z29L#I1#FW;0OJk9@)ZKwA1ewEU^u`VjJ;R)z&vF5dAXDF!{a`$t)+dRcbIWrlaip7 z6^bihT7UX86~COCSPJU(ILzmq&2dS=W%+fiviUcpbrXg{c@W0xL~^Suzt9}^tAAba zraW_HDeNOOJ)N$N`~^NB@E_8MnUs~PM)NP*W;>Q_cLm9};!2T>Gh}6-LUpZGsP9|d z0p-YkmY0BgFQUlpMiZX&^B}PX%{K!f=FaBI$ZJsWK|e~G^|G@$zgk@U#pgWgN+oc# z0!wnn<08LwzYT+Z+-5Y{tvHk2-p)__d8is(Q!f-UtlOEPmMp=G{dpBG=MIHu{Y; zs)C<3OLk}5y_!a+2Xhd;BJp#tb*T77q)>33az>Bp`NXdAgKz3wsxaLO*p-lHe4g}o1mXssMFT;w#F9Ex zg4~>eIZ;M^I$4u87Fs`c8^iYC$X16309zq`inKtNihVsA90YSal11Uowa+C}_8LC9 zE7o=QK|6fwWd=LquC2pNtD#efAhjVj3Om(WnHSRm%Wh85YWgPIq!-8!p8m=Fy-W7% zE?F6|37-vY1HhCHx^yK?ei{8X2E1EDoLSP1c@FP7fQ&kJA>m_?%PBZSX-AIZPv(-7lk>l2Xv zlu2A-BGo1itq6fl2#kAVVhMl8j%rNzqkhjfD!fH19a97y5Y{(Bzx=gfr>TatYvGS8@6VcdY$nHawOeS}Y^M^noAG<(RNeS5+M;bBB^0#oRM>(pDl z-eoZ7Zq3)5q|+cO%WBaFPB5^Ox>!F+QTQeG@IohS* zDMTbMjxFaN7?7O1a_&)eb>gn_@^nU=oW%^*Jj@TJ(MCrXL3__a*w7;XHNA|MSLQ}{rDO~qD z{PXZunyJ7JKya&K`n`nh^`T1^KX>$)BHQ=e&!X-CK_~m^=6*`F@`8zD7|IeGsK+&e zUy*`&evl7Pbm$`B1O z30Hfdz4&_t6b_R4tV*cNshNWpp*tTF%DrhUk-RS+9!u|dvfCoE-Qf(!5{EJNA(m_d zLh2fHp)HsbchxYJQrf0)iBj@vF>H6uljhQkmzSTtevH z;<6sa!SS_?E`#ptnV0tHKY8+WPg=;H+=6c$+f43Lc$3*p_m6{HQ!d zUVEcsq9OlEMLOJ(%|W}sh=4y%k4NB6-zWuf{qVDXdZ!%9OlJf8DQg(nI7(M1NHg@S1@k<{>Xzf;OA#<&iMjr3*Kxb?!jvPAGtjS(Y!_b4? zB;L%Oa{Trh+yB|qk~Bn_Izm@*hI#TBnGHetj&x_n8@h>)_N&NHwygX9g|{xKuPLOy z*5Haxi~}M~{5#()7uYSY(`7cvr)Ots>4JLJadrN?ann5s{z*6N7Hvn@yZSHQHR$~G zIE8Bd5&$!7H|=v}zvCOU@t2^4lMmZ`ot3SH@E81#oHe{>%VsG9fFDpF*B?llxBEmJ z3PPXrQhsWPxz&YNavWg{{^UI97fDyw=lZ2bS40GK6XSN3hV(t^2_Ub2j-(H^cEz}|G*)Al?R0D81xFd zR%|ulIWm&8OS?Yi-S?{ceVsZnK6~}Yf4kRv-AioEXAFz~cJ+8%3l?U$cwXL{K66xg z)?~Cebf~y%>%IC?(h=d|JvdpuviwKZs3;L4?{oDc2D|%TS zI7o5z`yKV?x3AaLkwsSS<~EHJQ(uj1j`+N}04&@x@* z7HT^A2A-G{&VJ=)b*NoU(D~V~ac{;{&7tdwZx75_3NsPU=Mm@A;(^Ls;O8rmF1-)+ zMD*$ig+_fz8Nl-F0It>?9`K+eE?G;!1Rh!c7W7%>P3VqlI}4r zV8t5uxT84?MS`OKtVgMQB3U+KizIg?RBQ)TPr!L0|?E9?9oX;oWd zTL;HG6&MR?H^#r-{fws~&La9D#%&kE6&$31Yv(;HmFjbMrhZq${u>_*+P}NlhdjEg zcC!0!CZXdx|D7|;Lt8i`F+CP02lrB3JJyqHDd&`%`Laq#r{* zJ>jlgG}2K$I=&Z2(V7XJ7#sDtqVl<5DKow_z*q8(LU&M_F7Z>l4uMy4=(j`gW=G>e z2sbl^s8rbTL7#vLzY9-ZYiRu9j;(v2Yqs2Hwcpiwtu-6o#1N^dk*71Fqkui>k=P4x|I{0hgr$iG2Q`K7W)w9@+$G{5YmyS7w>&`m;_J!D zkyOW*(S|o!#aKF@oIOqRjWRMc!4HFw4sAvbaztz*lYuj^$|1N@^xP#7#I!rkXutxXm|J$u`dWg@yO%xFm49G!z$jwPe=PdHdSd?j zV`+_i3?y54IaT397s4Y&Wdzd>PU=*UH&00&O@3TXO*)HIT~!i1b!$%&4~$+PmN(g& zFh9h!l@x9dHkp9LiXGq$mM)}W`Vj7g)y*lpW4o)#jj1)8m*1cJ)b`FrU_Uz0a&%ue zpOk_K{Q%a?x~F*^2&;EVkl42_KeRD+7xXK3I6C(; z>Ci?+$exF5t~Zt~mrvjI;6I>gWhAm}vGNYOOP-xUx8cPu1+z>$-7gBxavX3lb$_*F z+vnuiz3`%g=R|kMuo~zxMLwkgY4y)qx5Xiz`T@d8o34NcmKR@aP06p5_V}$F#5*{Q z&scdnB+3*o7;XD02%gws%*@d0G^@(dp?JDR(dck#PAT=*{oHTq!`$~1VG-(}cGe*# zm^n@Tv&2!p{m%FSq$8u2vf8P!3L<7?4t*vc_(cs;o>XXN#Ck_!@O?6yn~kd=Ud8Vbgg6~o$KvG#B%{GlG9yXTx34+ zPea@Q6S2&O+~MCE1=2raWx|y5p%&BhJtLln&rBKD)0+0$o@uFIQK-JtCd@=%qI)8q z_%cXL!ilRd45}KUvBByavt_wbgRjd|!SN{9T-I&XE1`Cu(G+%Ty5NK13W`o^>ZyUy{Q)j7{86t$a^(6K3_m>RJOUB1{?*MniB_}zy z4_yznTeEBGiNvxITzk0ik%p|0l{wivR^rP=w@hU4A$n!*V^INZR(tgVI?G7#KkJKo z%})R@A4sGUMjs%m8au^~an4b9_*^_W2@%dF&=TCy!)2eT&PS(Yi&W^FrCWY5pE;wf zgXDwA$QQ~gcMp28b)0;>B3Q?2^!5YUWG;uBN4ctJ9ds3dnAv!`LLRpWj5y|#;7C6# zp#*dOCP!2Kvin!45+KbW*|EhzjK^o==mg)J} z;zcb#yxwZN9aDBsCh3*?r4Myx3K4r^*i&*}Myz8=*Gh!hoPe1K1Ke!v$DVsrRawm> zXJTQ;QTG1UNnr}_`>Fx|&f%68gX1x>iDhLapO#G&fG;M1`Gz&c9OkKH#2K8TF#8CE zDML9kJ)Da=d>5Al&3%eOPJnaI?06JzMcguIQXt;$!j2>fGeI;2aIYaR`KQupNFZh( z_Vt)z2~%T~&ye%1W^zJZ)=FAkWzVf%B*p5=PbiG*-W{YP<3~;FSYEH!hGK9JK{OEj zq;r1A|AF`&CsTK2)R&PJS_A$E4Mxe5g@P+#PLl%Yh2lbUqkdn21fN#i%i8)Xg+-@e zX!{Ju@9TfS0!+bFTBlgIVMk^^g2Gw^SP;p=FXNst)~m<%yhlctDxIdV=@_yJCJslg z!Vpu@l~eKNd(mu5qnD2K(4!uWpg(=|{FQ2d2w487hW{6SWBxnCkt%ce(N1bVBMZFR z6U#AENV1uA)M^?v9+#utBrJ*f$a0&z-;8|q{?Y!PEG~WLXU?gR6jBV5MpzhBy$EZXw&Ww;Ot;spt#8azPUd5um z0NDLRpaLs0-4<;R`e=-ucb_~8tqX-oLg3xGFY4NlC8`tNRpQ3oN6d}v);@F|J76Lg z{)ma*<0dJJpSgQ&tff)5>K$P~pNVou2rIzW zh>;9y(1JUFmsD{$A7ps*M7DGL+u-D716Q=G&%{Xd$FH;kC$c0=0*N_OWHX;(1(-AA zMFFm|@SZ|en>8vuXy${n*IM;06n5%hB(qL1>HEGhmfLAs*b-&~o*NOEqlBwiXfMYq zQoLhDQcQB}YAG>6MsogQSn0%#;I{S(@R=yhbavkCSj(*kfyZOlT|$lv|)BvKO&UqzoJxD@SS!7^Q5gyp?Jrjn0K0a}&H1e(e7PFMDH6!4CaR1nmMHNy! zEJYx0?f_$vVG3mHX~OF6>H3)X9iXi?y6rOErdHw9n;Y?c`wyo+%3k;y2HqKP{vLtp zCOCfor6I69ba}o~%VA>jlwxbYh2NgE6G2*Mh>BNDcC0}|feUvhhd4>aEc0}(#tV;^A1KGv%N8mkCOX3d9Oh~?h> zt9Ovv=_(S|)V^Pc84|nm@sf>%xmo;UwJ_fq2$@IZR)BX^P%5nw z7=bx1h07Hb+;0x-m;>gOmasRfLYwvy%lF588-Q>Xut~pBFYMqw@2B=;jyTfuS>24X zy&K)Si?raG2u#Z>WLyCC>lvb2CmZDp6G38PI4^k?H5qJWKjfde0N-&sy1_8CujtqT zia@IqBlww4nCAtQ;#D5riV+PLE;bCmKkGjzb64#Ao7y;Z>qs@|?)#1P(Z8_O1pM!e ze(nJB7)Z~2#;cIpk3%OCNznP1-vIs?FMt8420_hSN-~QfP_h}Bhb?bn%Rj$e;vIiq&q;r};Vnfh@O*U;N zGu9RF4s(!`pU;S^trM-{L@DZOYFF;2F*jb*Zil)LmgOb#Yr?Oqm>{IM`KRq1jaV%a z2a-=+Tn%$3f+(=rnZnM-s}xT^F1WUF1kso09aSbb^3rQR8>{!Re1f{dr!uI82 zy2ie~AN|>x0gd$$MjHt+XvhF*E{e!%K$b+**j7`G{d(B`TVYx=N{L}pBU$%8yQ)yf zc)Otvh57e3fATlIPgBy83@cjhM~ER&hhj^pNGRJq zLnJ*nWl8IJ!}6XgVnQ0NB4}4XK2KV(e1mJcK!J#~3wz&LJ#ZPAVBrot(0tVXdB-dJ zIl2lidDMz_{zGG3@ZiQZt^;j%v({$6d3Eb=e&n!Ylpn37-}m~ejG22OLxGimlvbw8 zo$8@>Li6M9;D^odp=&LCv6h)9R4;}TEV3!i^!bZWSX_g{7qJt z^d;;}7ot14j9MJbh3FugG?YX$a?i5%ohH;EQ2_F_-+j)!pWx^H<%3u^Fn%zZ<;yVs z=O0VXAoz$Qs2#~7kP2FY8eJny&A^pnV#xQc=J3cFY%%TnO0s!|+nyF4uhe`henXt) z{g2#N5u${X1Y!!N!m)?+r|u|&)VsCE$0UBLkWK}l_#f&zN}Wc#)w3cy6`o3lD1!v~ zczV}DHTZmiE&NJM0{<$EpVOL-1()k58rDrDm9VRzt zAG)#7a8?1erZM~i{9YGq?q84rWGZZtDfhpRF1^*BkZoy|)czh_(ymzb;XW~2t2fQK zD&@Jf?FR(!aex91B6rDC9oa)I44c{sx2&zhLegHHqn~?8LD7IILYY2!8{Aly+*{XM!oTH5(o#U)yeARh4Kq%1EJALX5D4B ziZ-zLON|@Tz`x}B{>9-`6&3rz)t|h|vlj{aS8I~y{1#J-Z_pn}4&srmg!xnaPp5V0 zLOZ~0P;1c}#a;up8U1&s1L18I&TQ>P-%P+&`V0pYA7)BP+G@qhu7n#5T1n;joOwT> zI2m-9R?L%>9+{rr!~8BMLlJ?52r6rONZ=i_fjTH#GgLs&Ea|!X{#*h@Gkf{m@4Jb1 z+loUJEE48Vh3V_LuG&#TXF3y+o)^?7bI4E+nR^~?Q^&9bdeYA1F<0QLu@#+jY)(0j zHTVss4H4gJZp9U4RB_wwpgz*jk69RTgVZ~~^6I)_|9hE0i^t<1?rewNxv)I@r(go6 z{B{w8yBzNW!sl(ecnHgn4mT=I>D}zh!z!Ifyd0=A#MJp2 zi7q0YZk2hBF&(NS*_`x}rWU+FwTEIimckG9sUMo%CvkXFZ=Q3&chh*ErQL+--Q7W; zr%NsAU_oe|kJtN-m#6piAUep6Y%n!MK|@5bHiA$X3d*>7Gt6{a=Ipw~KzR?n@?GV_ zR-){z@-1`LEAg9`;ZKO)qi8@%BakM|0Sclnl4Wr}fHu(LbVj{`y$GHp_1*BNOcupWD zg0*W|e@qsuMaX^H+Qo_%cIa;`$gsL3GwJkvKD2icqw zbMKjuUC9T(lzKQ_@*qk@OORgeyWTi^2doUGhW=lFT#&qpnEZ5JT|XLvLxU-k9! zloYX6V?Al*v^)^HhAR)abIv78Mo=-4c93j()=_ymOf}D3oR(i6j^yf1S1{faVld}RB+716 zI!F@KxS>`nw{2|9wRBvSXYH3xuXe+$VqL!Sl*iNF5Q4i$5SLm)Am$x_hmrVSPlyiR z^+Csw7gA0S_8!>J7|4F_;&uAU(c{n6KA=W68YE%olC{E;<w;(5vTYsz?K0k@1MmK~tt1{QgN`br;>f-I??%criPM;4c5_Xw;Sp~35xsR9>h0mWo z#iP5KbMELtUn9ZZ3(obmk5jozXK97nfA6VaKH0;3abyf#4o9{}CFt<0k2!|Rplt6s z!=dh(#Y(VQ@(CEssKgH8=(4foMJN>JI!6TKzNJhAKmB+(zC-55+r|cy9pGWMGJGsQ z4>j%s9p0MR1^ua=6hbnkop1@whR`?l3=6OFrEb7dKc%uK+kyjORKg?$d-3v!% z7(~N$J#E19#(veRM@=2{d+Vffdui~t+3Yt-Mkjs_4WlF}W5LKsp=Kdud(dwtMaKOw zUp^et;u92v%L^7Ve3FOSApDsmWw;WEeN#-eNHLF?=)_0i)}SZdnXfO&T*9f7%FKV% zL=j$eIsJZJKvT@W!Y7_QxzKCwH%ibX5bqI?*fjlTQUr~3J$krOtGb9ZnKOyb@Uf3m z;f>*-B!javdBCYqdT<&I3RQEBPBWX zEwLe96`i$5b4;`-&B3QDV@s!dr8=YB3H3hcUqz&zM_&@Y?RpABDS?;+`|cS%DJg;>%*%f{>BT7J(|{=BF&(s5^MMO|Re!{mdl0d1~M?<6aI zJH?TbUqqTEd@+w_@E*~}&U+>9yJev4{VhJN?tL4Uh9`G_H(Qubx^}m8pmZOp!=p<} zxr)0*K=f%Y@-LFw#>H~mw=qYCg(=d0*-jS2dFclYn2 zwYJTnpU$4{|%4_Pc7<77D?6y6|bMWv%`P7IN>};VcabFnQ%jN8a)=&~pOt_bWpMfT@dW%8sM zgiqxPAyaBvub%p_(jBvxxBXcJ>^)OE;p{S_*`Dz%iKC7`+Ly2h&i@?i<@ z)qz#Wj^lM^`7SrMbIPb4*B?5RT{|8;eETJuryvN~P&Vd8t#rL14)z3JFrUv8aP-QV zdORb0-waimTngFE1{06$`yvXdyCsvemCy7x@ja}(zfIYB=5V?`^; z)gwdCu$ZsTW2qXs>{OhSe0>`2f(2eZd*+7fhPCp>s7u0AiVgUBw;t_+2G`1+7{co@$dzavv*l5DzkBeUc*FY}=}fi; zMISjLfFBR_X5RTk*L4^AQnak2)?8CHe$Wmr+s_3ToRzSEFEEaRO^CaDa~@MwONuNH z3!$8P@{a7&oKPw?cPU12!8YjO#kSN9+`g2m!&)&(9AtSE@Hhay7&@n2{ zEE-<9z2LdW^vKkXoAmy-(oo+MzmU1lik}?byXRPMU9x_JBBGW~@)i4S>XnSXOWxyG zV|Yh&OPub;+=_L3``GbQn>_k%e90{Q`!&J(1I?xOX#`hgyU}WI#W{LuQiSDhfie7- zaF-j?h$;7&QGbd|T)N!h;*nW#cR+lb1|MSb_)|R5TSn??>OPEoTpHd9{uE*=)B{tIiAFfC>NA&`H z)o3O{=V#Kf1@l3#U!mq3bJYQ9howaVehB>3h7q8{+u(YYf}V!&Q-n^itd3H1Jd0YQ zaTAVaZuCK9G7d9BB|vVk$XW@X)!bN?b&^fO%~v86Q)XBki>WN8WtsOWNSE zb1AwMBE+KcSy)*J+&XNyIEJ2Jk=wR=A+PEozz(dcXq@S5o4)h{RCe2}K!%|!q+P6i zjil$QY3{W0M+pHO@<+~Opnr8`MKwl89aVm{w5Rp|YVW(lnu@kPgNR5M5J6fL5Kurw zn$iL)AR=O;2x3G~q>FTggd$anq7*?12#A6bsi8^eQ9zO2ArwJ+f)I`*InMUI@6DV0 z-ktmI_05}^Z@&41FCT=Q?6cR|d$09dzx7)gd}+TBcPa-v^rf}$704goJ2z0siDo-aN7FqNCHNYK2`cE0pFO%<$_zHq1LJUNNrqBcYe2^ks!l z##wI6Eb7~p;m_H&#YY((lQ!z}&+Lz1fYx*i^Q|p*OWn!3&ZmEnpwVS_!anT|);tg4 zr7ZecBy*dnqMK2x#_R77?qkZ8K71{mspY|KxyCsRa`V-5R(a=6w8-xXyom~I&a}my zrFd^$Hh0B-<-*gqP>mrPO63yF>EqKg?t@IW>lt@b-CYkhTs&)>#dQ}>cwHa><7acX0*@>XGh;1>jjsgNEMk=4*YGW9I@5)@Y8{>8^}W@do7JC z_vdkr9BHGcI?svB>+?fy)9@7>wD}-0dkhWiLa{&%nx0@1u@3JX$V>fQpQa?Vm(od* zb5Fj}^$MM|)zB*2<)4|_R_O{@NZ#|)ZnqIq zy!T44kdtb$rRf0q1Jvl~Eel%c^am&XzU6CQXsz%9SM&if$Ar@}Hyv*-U5?{NpFxkh zL7j!k$RDgvej!X+uqXcMOcB&V4*An+-!qH##D;eUiBTW=Y}VOKX?yY;WsSa(&aS;` zcNnvti8->16L#{zC|MVp6t(1)*)V8Cha|EIov3{KL|f%#Y?$tc@2p$Lzyi96CBG!m zt}v_YnJJk4Xf?f^5K+<6-mWv*^_?wAdFTM=T?EeC_EYE&;kcyjzA#SIV@ff5UE>#G z>s%i!facS22qYuL=V8^J@zXbppWLfeDjwMPX1FQ4fjmIphHc;?l3!*DgGf3Z(=;vt zJ!5N*YRTM{q$}96YfJ?0_EfST5}%RPGfj(rY%4PM!FWuKg)XL1r55Fz6|+lK{)fMZ zHgETxoY2Rlciu{3Cf_OrwtwlW4Rl<&vqHZY8Zq5FV176?kcG>ID?$Gd{YaGzZ`3QV z3kKO&JBDg5$B3(m&w*9LcT!){S3pFX`=mnCw-v{WbVtKsk%*a`{IxeSnSryKsud19W0zQl`Olr} z)*rPd->C3duZeyo%f3T3j%QZxs^6#(}a7*%Iif7jYEpd%^Y8j%k`!+u7C-f0q(#_hAxO$ zo0w5S22@}3;UI@8|6snxl&&`ErxRmEXY=>L3q!j*NNoNE`;o`8_@Yj&h^#|c=!buT~z%M{NluLkui7D=* zPkjwBAq#DlAC*S$b0XT9xU&1iU5uNQ*_gcCQoAv<;ck^vHDhBXLYH|>;UdWSt{1dSCC=QYPkc-9uw3hE^O5bb zpQ>Xg<(zY#8Y@;Rj`$nR^_}ZS*T=3a(6`scaW6Z5JH33haejb$d@yb|E%p*XpX+#+ zFgrpNod;ZnJEd}{pW+Gp(Dmzz)=Oo$M<$zE@+{fx6Xw5JZ3fg+O2%y@4q%LvI2-KMzC|shQcZ zB-EYD@kk0*;rfW>{GB>d3Lv?FTreobnh1#kdUDW#0g&<9mNlV15fWse$ibX{=a!cV zV$R^!a`-^kSC(%BTOd*0@NQxkb`p@`!wxbI^*Fi@NJ>-=sJ;1e@2HEF>OPX2p`tHr zBm`$*DK|;Y22*^HY-a*2an@ToN+;O&5Z`I#w{C55*n!jE)L592tdG-e{_)yfzCW$J zQD7uv$xDgR#;rt(4N~kj*QUBK>jdQrmN(!j-%mk?YSF^aR)6SND#z_7oRjL4Hme}y@`g>x@Sh&j8T|UZtc-fB zUDp$mjasJWxnMLufTM&5-k;{fC#0aUpAa+1OlQz`e6bw;93CxseaC4Mc`o&W$zHI0 zVW#E45xe?SjW3eNcONZz9+sai*{6#=grm50GK7?2F>RU_ddPIDC`%TKr`#JCJK#LB zxs@1IT+)rTbj2v;?epQ+mgp9R3%>s|KpQL1a%>(w1K6Jd>qY zbb2zXsWtTkr4m5&Ib(s2T!kAFpF6_kCw{EFkK4wJt>A;SY+=r9;8L1{LY*d6hCGpu zYR1O-ZHnFr$Pk>b=GC}%)uBM`7lOLXQNJjiJtl-rKKm@luRd!hqk0J=$W7IF$f~$)*I= z{m=T4(~Rg*Th>)w|pLCUsWn|pUDR&9Oh(GJv;3;h?~m{)lmYk{a~w=peugo z;pwAgcqpsad^cjF75iit%}MB)4JIhYH_GUnv|!?%O1!DRek0}I(Mpf=MN94~hC<0^ zuJ!3@m)zf3UmZLn?r}+?-mLFWd-#4QBHgR`&*P~_Wb^In7 zPniUxPYTjPasZ%sLR?SuWV4N2Vvw=Z&en<17VObhuMv56iPx;t2ZEc_nN(nmM4SMp z9o&W7In%Bx7o~pRXKXDV=N@^L+rQ)LTu&^_X5lxm@eMdr4vdqMfcF!Y2KCeni#Gwl zc=O|%9#xxbLuXKH!Wp1|q{)3{9KQ7)ln~)6iPL$yiXP{yr6u3C`cFD$E5PEp2 z?>WJ4fWW8n3-NW4Sxt1uML(oqY1+^`s(V5wWTYcev=CYv7o5~~#dsm792;R;>^IuW zqKTr>Cu2pn520R(Lk-;5k}N6+?AW(`ILJSWFc zZk{{gzF!Dl|En+dV5Kkj5Zn_lb{8EO} zacGfp|ALuq)3rlA?>2O`7W9$~?uHIXLsz`ZzfL~xEkqay0eX5BeuW70fRt`nNg_u; z(IU(dNF`k!$#=bI_68Dg9{Cna2|qBN$uVhpb4P$xh|Cp4`{|b85?UiB zAotcu!e1tK>X=e{rdqa~F`|@|46gzgP4hToPq&B>*23ehy$0;MT z2E5ZOs&b4QmYj-aRY%aY)E>Fi=~jj?O2$G;hMcSDdG>9iU-Yg!svNe+0gT{JR*c<5 z+B%d7b_Q8yG2;r|BIx9pTY7Ed#OWS?k3_TXcd)IiBbo0p#%Uj7t+bBC1=7+=$V~{* z%VEZ09am!}2*S%Ka_5l4OUg_6?euEw{+x!Bs4Z~F1mTUTnA6~0MJ$r2&K-X zVYXqu5U`Z<_&8Dfa%y7ppiUw;NuK#FF|tX4Ltj^P>$1RIRB!IhJ2Lj@q2#}+&nN_I z;V5@KL#82LaH9p#5K817FRep?&+6`Z)KL}Nw*GINpd_J(w2lkQLAOlYXw!y7#S8kMhMP+sW z6HR8VbE*+ou-GIObZ43G)ga|Leh2k$xI?8Eg;9RTVrnTn%xH9xe13a;5_^$@-9=Jr4KGZQJgkI#DEWR z`k2nCPXt(?Q)JPm0Jo}mf=e9sdw>ywE&AY(M2aV0Qz@kh-ua1wY)bl}^d&~GfC17f z15YOS7=B*A5dC19%k^h&rTk8c{_P)DIqNQ;F|2uI*G8H{b!kn+@*E-gWXnHQ7UhS% zJtmzkZUrr38}5OXAv(bjn5Iqi261KCq5$ngx@ChBO|Z^qh|8!W5I24cd+RKz)RQfy*IsZU=kS{^`zx=S?%_bFn6*4E-kL^FV}Xsq z&KH*Nf}@xsN1V=4H=}Q*m`7n$)_lxGu4En7Yh0z*G#fl`cbw}uzdI$dBaWY_4%erE zs0^tYIt@LO%)bpwJTZs+MAJKP4s_wv*%(Imi9jRNbJW-{$7ck_4ch<`ZF!me;A^g8 znt^vn%BXVxM)k$*7;i*S%Voz_YMI4rRi0%0Q^)`ysu~U zxE?X%@__o{NWAg++R7Viqjq-3ldfFNG}TT5l4YxqvNA)+$_8Bi6+B#>7{^fYJsPA+ z@k%wOL_7&9pcPmBP`;uSb9m5m=BD%zl43Pwh`6-2NW;TBwZZMzfc>8Q8by$OOjh1C zq6v)8p5}`eu@irbbudB1b{v^kS_*Hwc2}_D5$m@p;y#^&lb*Yvx#lfwSnYl%jhw=T z0sbq4LnGNqt`DD$IV8w`z58XU!Q!&OIfM{Q!ck6vNJKdjMNUB$OFpJ}+|JG*Y0(dt zPjh{TJykD0L(sKM#>Gx;6RFoW;gRig7Tbp`y2txC55k@yd|kJ_?Y6WmmB1CCG|g|g z`-1%Ccz%q9AuDGVVh5XBuUGHWf6;IFi&v|kWU#BO;&}22P$7kVs?ms}*JsS%*dIAo zn$mrnGKZSnAN9l8JAt5t?@X91Iypzs77QxoP*TFlf~hOYfou;NNtuX}cN z#D|MFxry0AHR#{D2vt2PY~uhhl0Sn7ddg^j3vo3K2#U{be!eN3rp23>PXCkYqd(Nk zg{6SaH<8hA^5HfjE6l&=*g%kNaN+W`yJ|HkxzJ_W!Y_noH9QRpz9wSKuyhkJ=F_~W zVjbl-E+Z_H=kk5tJN-h)6r-EQfRX2L@12@{g5q`%%^NvrczseAvl9n9^69nyK0EuxbBoumBLSw7__2)9?yv^43^(lQJz$X@A zrR-+W{X5g^$T^U~X7|H3NZC`AW2V6r=LT`~MEBGhc=JRhEW1y$D6Lv6`c+4=OnMyI zpTUW`Ut9%bwK!cy3YoL8DnlIdq#Fb&4#1p@Yu#D>3{Wx0u|9UD&Fg9U_#~&+%=I@7 zZ6%K`hZt<%hH3>0Vc_)JJ_CX8+)iYcGEC_j5b;Y*H|sCN?Er6!M_#YLZ*Ko7u#T)f zEAomp^w1IU>yP+8n^+ygj|6~8uf~<1MN&=!7k+zQ!jxf;-e7urw_vT;w9jq&jZoU449*bDh6|g)181=*A0sKGpD?dKtxhc zy6+;uwuaKxi_v9fUyEp?#V7J3pM4cSd>R2iCz896kWB5kE_EG8xr~fYzoTUwnFq9m zb>FpldB0})Hi{0pmsepUlCeE-TD~{_p%OatAWvN^#F(WM-0Fd;jO>5q`D_<|RP^nVP^hDo{I`v>J4v=(bj~ zwS>s{flMr0H7e3|%N*Z^gbsU#I6$dja-x~pI?7U>YqdgeT)>~o(%{j2%563T_MsAZ zERajaz{}_lI_Virq!=PYx1Nr+=UXq>nErTyR2|sJmOz;N2SLog4SfDsJoXpjAP&-AoKg+w zfw|c4PoBT4BQeP%XwvGPsAh@__}qF~N;x(;+keS$!`r}1(zf%~506!k|>{QETpX5k{^ z5s}=7j=CE#2Xk3a=4?nSK?-?`TeYK(Y;b3KpE-Gx(>S{Y`)>KK`ig(e1rvg-z#{@O zV_~M>ffukkIKHS)iFj9w-W|mI#3hrrHn{kiEC+p&L!7d|#*p)d<>s_0v}U zK^lm3)PRcl29DE}FfKwB%B6`$W_TUQ>nm>zyxXM1?)bP`(&BNb<)t2>hv@GTV0{Bd zZv!hvD#(P|0V*8ugZ@oC?-sOTQ>er!pR&)rC0Q)K3bwwpmi7@<3Huyn6tiuQmH?sF zoF;HE(&{PggQG>SZ?3UrN7VMndcBtyBRIv^+}@_k+El$7TmBHu7vR!uy0|$1vZ8_z z;oq*JSqZ? z(|#@vzsd6k%1e8K?_YAAPaHu_)H<7;%z-S0DIYS1rraxqY7^e8`MdjRYI5$=PXk(8TOiRWI>{emnY zTg|O_*Lvb`z((p>VnsY+bHoRbf=kb>v)ug$bpiSQOfR(-OADheVL9vA0@|mZE|(~C zf4`SdxPLyPgb--L(3lNDHQUk_p=do7%rH(^Pf4yr$9!7%z6HY}Q#wL5$oPRo+nYam9N+PcGDz+jr7aI){lp z{8sK*HY~*fMBLBb0fmGUj4O9U#cC#a=Z~md<)>M%-g*Mq(YrGBR9c7Ojn{wORe!YW zp4Ic9^H2*Vl^g{gl}Q!o^HjWaqm2<&c%-~=&`pVu`Ed5j$7i~cw^_U8@j{R~{WRQ( zDzkjyRTzYzPDIsux!xL)OKsYEQIRKZ*2CT3eT+SpR`Bm|35B%826(rfCoEvtqhtt) z2yYV-2)V}?{Oq&---Xlv?FRQh{>~1yVH@fvc%vFue{V+sreh&2OCE5y^-xJ%j+P>V zs3@Ir7r(#-^HL#y;02%=dyp1X6dE#RD7;)4326;VPHI}GOQJYo^ljFyQ@@jCnEgnA z1~fP^*s=&)cp+yk+7r2B^y;92hd?%JL|$?RV8VR0t_*8niD)pH*vTs(mIs70yg+!_ zXHdU(_KR0&!D+?Bc@-hJ$Hn_2EsM+NA0$L$|AdmKuttKpe5u?)016B{1Ao1CSVxfj z;hc~c3M_|p$e`e4@RN8QzNX|r3&Mh9#V!pyi&(pNly;c*Ossrhm zQd!LEmW+1hk%`71fnL(kuWk@0=j8$1>vbi7c>Y&UDdk=gITAm9O%#WH0eKy?b!uXoHd z23dxS+ej1xdGdGtc)v|q8B_yj@ensAMzkRD4CRnKYoDF~!vV^pAX`(20vK+9K2q|d z-OjmhC`qoEioK4yQ_^TruUjvz&a{F-JRHEc{D}e-U9D)Jx|iydA&kUp&(vGVMMecj zP=TCWf%PIE11ycCpWSu+xjmP(?<+g~0HzU5LE|7Blu`K)8$H7DeQZHhQtP)Bj~=ZG8?9U zSa-EyLZGwUY(!zfM&`>P;wPn5_CfK2OnAFN|D{;C02T?dgxslx4JlauI)2w-|Cn0T z>sNF$W7DdHmHwL>CN~tLC~7R<)&8y}c=`xX!sxojLq7rcB1=h2FUVF`(qnsQKk7!--w{Xk&XNb-oL=_nSkPVg>Pl# z6gte@UOtja;527LFI9@qd}XH*UQdiTr`(+wHxWNlAFr4w?QU`ETa0dqgt-e0oN*5v zbR58t5pq+~ams9>b58U~o#|i3JD05GK zs$3HK^u@VG_dDxA9SgwJ9uOsJg{c>h_y;&$?b*0MD00g;F+#1z{z3$#MfP%iM=%N* zil6|KIAk@Ix?D~_8-SwOLC0@z+N?g@*twMBlX%beRABnld6nqv(P|}l9oI58X zwk`O-G+apf__m_r+uft3pT)KgwqW;Q2{?wtCOr`Tiu457Z))xkV=txe<3XVr179V- z(+QVnXC2q1xIbivI>y&6tUU_S0HJ&o-T9N#6lxcA3-tiz zuRLUHL5*BA8CD&a&|&qP^WY48+$81{MV@BLV(lj&=}s_*FvomeJ<3Tr%I}D4an=Y<#~YzI9%)uX+C= z;@yh-jKsy$xt!mdzJ{V#WA$}iCliN%cV58L`7z_y#69`oJ~Z!o;-1sRY0DdXv)9zM z&)*Bwd@r)%z#4bxBfEIGJ`z~VV)#fdKYD_1nGT%(Yc3UQcF+XO(Me@pHVu~waA@V; zqmQ6JaygQ9>B}CqlraSIo(rsray1_mqqQ(2b!=c>W&wdNJqU z%1Ck8(p&fLL-@oE(C+_McD#VSzB)obVP-|U3?=3TBvFiKJ97hZxB8Y-t5RC8KPf2M zIle2q)gl^CWxqLMn<+|_B~0?TOf+Zit-+c1x{Wy!s>_qJGKH_ji$|YS;BEE+-TH>a zpPmw#QZn1!VLhEvWt*wZ zTh1)R08hXh&k*FJwYw^F2GlfrQl7L5E0mYvgm;${jv|g0qvw`7j@}6~iZxzFo=2cw zZXNpYuCIKf%s=I#;`_GjuCHNlbMF|4I|$wQOHb~f6eEhzt=BXtQB8OrJE)yh{o>Wb zoO$Xq4^Mo4!tn6!YpXI57uaid$+NzGNqmYM8G(7hV-n_%=~xT~-6L?zxV;Pu57B+Y zSLl*af?MV5ug5)(9dgfpCIVEOrUXh{>Fq)15w_bX<5jBQtZRWYT@ur=dLt! zN~dp1O~&02iL>p3-qH1dDYc%)1n?-i5=Sw^L2}sPb!EVUb@yOcI4A3ge2t=|ysPD2 z3V8Wb>5Eoy-sCk<*gZ`HTTeI%>xz2FYw}6tw6cQweEHAUYD{ z9$7gq9czk(RcE}9#*e*;tBI6n?Z>DF-G_$g#?bKGlsTz$j|;3aP!uA7cGXO}cJ8vz z`EJ1n=*bHa7wQpKagSrG3o9b8eq|F)(qhUoqln}rH03;y)$_|iFrQ(>7i>}u>};h<^AfQ|-0&Oel&%8ZkQt65cXWnH^2WBeq6nJ_hl8B`_|jns%7|`c z8sDZ&?RCN>Wqe9X{^B4jV++H}*adx}pMX{dCZp;Txm++us64A%@!F@$lUBafFPt#q z7}kD%-D=|@ofGWMFK`vgt!#|+~DKIKfITlMUu;B}{cf&{Mu;yL)^b28Ebl79Xgyfd{hE$Gy zql-;+Vu*jBvgrZPy1^CJKpVjMrqw-aX+Jv|0nYvJiT1w`N@ zL!?|%4#D!y{LJdr!A?#eojxAPHJA&$f&B^tbKfv;!KDPSx0OM-pUBwV1B&OR>E{+Y za{^Qwh{M$pqg}S2e5KD;`?lE{J#OCHuG@5qT}0xecnBXYWjp`lYu;4bsm;dKPz*;6 zluS)+wsDFG(!S18)m!fRdTIGar&;$Iiygrq@jqZ@4eGZPL`?eXNDxQ^fYuV*_4bx= zQ%O^(-O05d4z`Lai2Oo$aV22;P4DE>!^M9gB(Y@!%Z2pIm?6w@&*+JAxrB18*g{QO z<5qIJj%7n}G9kjRiSv%0b&ka}NKm|tS_Xz@e*l9sgEeKb0b5)Y<4a9MC*BpCQ_j16 z;XQfkii4)$^4x>a3$2{(39e8jpiGeKfG>IpJF>ZqK|-n1pK6sSxjuXhQk^{S^G^Mx z+sy-mpLH9lF9@nxkOAm;t=_2aSo zVuxEBISzZsdUrX*9&mD4DlpH=;?)C@!!N}3RY(mFa~`0d(@g}?y|Z~SLzq%tKSsEW zbnE|iZA5XuFaNzGRq5>L6;ZgCXs--u&|wa+Ml$#WhXah^J;rfvu^-hzi!t|J85846 zY(;Fj$8_H8dS(UR6X!-?Gtf)FX*v2}mwN&%d!oPH4&tJ$Eetdg(xjV*C*jZC+axt* zN_c*R+_yDWVELkg9@bnE1LvP7<`bGTo&W~rktl=?y3n69+sD+#nKVuj@BngLRLkvJBe138eUe)+66&z>*Z@+`X6Z?A77v3et) zCCUtxUdGs&{40{@h2Etn9>6|Dia1=$PDL5Mr|yZsWZI3tcr#+??|df;a*VZbv|lpx zD?87==1dO)w~>RTnB#^G@j7U_^3`#M2-UE4UZ;?IK~$zh661O>*Xn^}h;8TY+ge7h zPze*@0pw8}P?=bgAJ~Ek8#e+z0jQtm-J%6lK1Y<4w;6(M!sq zW{#E;?B4)ZC{O()Sa$J^@yW6`BKr~sU-!D>K^MqsaK#7UF)_nJ@+Yn?qQ!#PJYPYt z$l_3H(*#wq?<8*8DK7BRqhmpF3oF2hPA|)6H3j?&9_XHfB z-|BmwVzuAgXl(}Z6xG;tsOgc{wJZ9_SLpYfj6Iq#r!+7+R1-Eq^MD>=owH9gBu14B zGIMe?{kC;a-#c|Rv}$r~X5Ah=j9LPo1p6~gCvF$qLdK6Q)^AE8dT}l$fR?w?tA_PY z>5Hi)7z|xnHZI3L7fv;c$DTm|{b1zK041qnh-YAMZ?T8k9aLj)9FruauI1tgyDKAc-tX|Yn1BYo(e z(DChFvG98$SQ9$lv|30{DF{jT47kxbRrHXzMXNmFvx05Bk%8Y%;?2rKDi7Aka!9pj z0L$!=jb$V;BT(c@6vYe_YFn3dfzEmQDQTDQ5D z`ZO*P#2UxVM>=6%kb4b_#`N5nYs8jbw#2d3DywQmb&o9D%oM+G9jNoYAUR&(o*mHu zOC7_1n&oep~San*R4KAr0a*17b}w%7N(3A)=c-`@;kO*0!XWK@HluF z@12wz4g$v9J`V+)5Pu2bS`j-)W?!AZ7T2#Ns*UNb+ZkfTP`^9iTG6_hwK`|VrI~N_ z_5&Yb+e!5g$-U#(aJQFse*TbqLOb9b2U5l%94*k>QI)l`{Z_6*x@T%a`TE=vi7t-m zMOFAGpeF6$c0IO!9nUvKo$5aAw~`cY21VSDsf-=t5aCmhx=+SBeE(qON za~QujShg3rslv}3eEED=fG-I(G_mxXfKu_>|G-sW)|e>4H3h3S`OhPh4;L+Xsyp|_ z9Z90y{juzk$GUwxqktU*h@QCjRt!-hxVS3wy(nlSx@SEa=7fxb-+Bg_?}fVqI?)Pe zPn1TYO`o{s`Z#nG%O(bmVV=9dVD>QSq5V{6v=%D^O$~m{$IO|^Dz(o2(4ht1eYrfJ zsO#iQ;^`;m0z^#kWVaeXx*y+8S1;2@u`DRIZSWL{J@!&x=z>K6i++7Q0>S3Ce|q=Q z#or@n0(@Un5P^b zt5X=jP6|`LWKW^?uhccTE0LZc$FT=Z-H}&s5F5aGG1eKqK_A1Of7GtN+?>k0+?Reb z$sBY5(gk<3{c&%ysMRWN3B>k00P7Bf9`3Yas?0SW6c0oCu0=x46tjQl4IoXPVK!RD zIwQp|i0w4cM}`T}@|R+OMQKccU3l^d@^N8+ufwPADRR1G=WIv3x{vhB zgR{ifd^-Zf8gRTpN;k>asA|KMh#cpxpOzJ(zSTA(`na(K`No&ZS?2*NMINAW04My2 zl!NQEIV4YNMsysRYlQhc*k6vi2=1H9@`*%l-fZQ;-o%ywCG#Gz3p}VjTqn$YQYSet z$!!^bqq3$fDwsLE|D&+*-PFpA$Bet;J|ZIc;-Ko1sJQd2^E=t!DgAB8=m%k04gjE^ zQ5DFLk;%km19Ci)Br4o-am1qBq=R>wjr=I_D2EE^nV@t6XxYk22Xww?6Wet>y#l9k zgRCTf$(_VXr^i9sQ~FzxDUK*#shT*k8Xs2p-hnQ;O8kmsx|JFWERQ7cF$APx&fojS zYIQn#*nhG$JO6fZmG#CVLY+s_;Q2wiT^%%~)aQ`Vo+@$PYBu(BrV4tM_-6hdrqo^| zwV+9&rMyw(TkK^kVO^lruS9Yn)e0`7AW@udqa+&A}Ceeud$yt{adm#3HDNyUqJ?zjZj zgO?h%gJO}Zuj|$6Ep%RN18L$nE$i;^K$Dhoyzmrz#PU<4bmh3@jngmVjfAdO{t#H% z^{`RO?3*&<#}tvBW7|{j?hup}76773V88c&Nr>r*+XFhhpx%2j!~p8Cy_FeaSX4tsu^LVz_t++5q0eWhjh$PfrgfIh!Q4 zA$b`Txex2_O}d`I(qX~8&QOF-Qt)KYuq9YLXfI_pW73>&{=2}4S+|lyX<3Z%rc{gt z(8B#*c7B@>`#S_ncgo*p5C1J@@xQ$HC)&e~k8@w&_~-6C=$TM(Qh~{NM^oeG@IZr-A8q=4*M_d1Y~@4aNdKe3kw32MnS}eNiV;5@3bA;&Y5{Z@4#f}L z0h#=}kOUw~-(}`8yx9SeM{m?3#+8pe-(J%7cBVGX2}(2KZ5H|Y;(fsm6NJ@9Hhm|y zA>$XKJgTKQA0pAdQ_XOVV|#**cdd7)XO>MrDSly6Mrd0T(V6j)2Q5aQr29v$zYuy> z=4!1JS6dZ(B$x2c6VPwZAb>j*i6uu*P|g9xoBGl|y=@FsIj%Y7VIpMWi-*z{!HHY< zABmgl^#FkPGW8VY!z0IDflYEn<6US0VR8*RA^|-`d~m+!!zkmk4Sf>bSEFRViN8Dr7Q6EWrZxN$y69 zQ9}PUZ7|dbhQ1bK1T=9oV#wNzcZefXTz?|cE#{LWkEtZ47_ld=jJItsi?eMkc#P+K zt?^nC)Nvz$)Kl9;Dc=%`E)Tbi^C#BhN(dok=yvOpNkt_U{?c)EI*FPhB{NoGuf5-j) z34P#y$GHCFJN{H);7`8mzxp$Of=K>XkLgdZ|G%#F&Hwo|^d~OMpU&HV_2>RGdfflj ZWBW(1|NqaI|MP3(ui5PXsqbutton{margin-bottom:4px;margin-left:2px;margin-right:2px}.jconfirm .jconfirm-box .jconfirm-buttons button{display:inline-block;padding:6px 12px;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:4px;min-height:1em;-webkit-transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,background .1s ease,-webkit-box-shadow .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease;transition:opacity .1s ease,background-color .1s ease,color .1s ease,box-shadow .1s ease,background .1s ease,-webkit-box-shadow .1s ease;-webkit-tap-highlight-color:transparent;border:0;background-image:none}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue{background-color:#3498db;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-blue:hover{background-color:#2980b9;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green{background-color:#2ecc71;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-green:hover{background-color:#27ae60;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red{background-color:#e74c3c;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-red:hover{background-color:#c0392b;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange{background-color:#f1c40f;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-orange:hover{background-color:#f39c12;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default{background-color:#ecf0f1;color:#000;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-default:hover{background-color:#bdc3c7;color:#000}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple{background-color:#9b59b6;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-purple:hover{background-color:#8e44ad;color:#FFF}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark{background-color:#34495e;color:#FFF;text-shadow:none;-webkit-transition:background .2s;transition:background .2s}.jconfirm .jconfirm-box .jconfirm-buttons button.btn-dark:hover{background-color:#2c3e50;color:#FFF}.jconfirm .jconfirm-box.jconfirm-type-red .jconfirm-title-c .jconfirm-icon-c{color:#e74c3c!important}.jconfirm .jconfirm-box.jconfirm-type-blue .jconfirm-title-c .jconfirm-icon-c{color:#3498db!important}.jconfirm .jconfirm-box.jconfirm-type-green .jconfirm-title-c .jconfirm-icon-c{color:#2ecc71!important}.jconfirm .jconfirm-box.jconfirm-type-purple .jconfirm-title-c .jconfirm-icon-c{color:#9b59b6!important}.jconfirm .jconfirm-box.jconfirm-type-orange .jconfirm-title-c .jconfirm-icon-c{color:#f1c40f!important}.jconfirm .jconfirm-box.jconfirm-type-dark .jconfirm-title-c .jconfirm-icon-c{color:#34495e!important}.jconfirm .jconfirm-clear{clear:both}.jconfirm.jconfirm-rtl{direction:rtl}.jconfirm.jconfirm-rtl div.jconfirm-closeIcon{left:5px;right:auto}.jconfirm.jconfirm-white .jconfirm-bg,.jconfirm.jconfirm-light .jconfirm-bg{background-color:#444;opacity:.2}.jconfirm.jconfirm-white .jconfirm-box,.jconfirm.jconfirm-light .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);border-radius:5px}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#333}.jconfirm.jconfirm-white .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-light .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#ddd}.jconfirm.jconfirm-white.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-light.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-black .jconfirm-bg,.jconfirm.jconfirm-dark .jconfirm-bg{background-color:darkslategray;opacity:.4}.jconfirm.jconfirm-black .jconfirm-box,.jconfirm.jconfirm-dark .jconfirm-box{-webkit-box-shadow:0 2px 6px rgba(0,0,0,0.2);box-shadow:0 2px 6px rgba(0,0,0,0.2);background:#444;border-radius:5px;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons{float:right}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button{border:0;background-image:none;text-transform:uppercase;font-size:14px;font-weight:bold;text-shadow:none;-webkit-transition:background .1s;transition:background .1s;color:white}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default{-webkit-box-shadow:none;box-shadow:none;color:#fff;background:0}.jconfirm.jconfirm-black .jconfirm-box .jconfirm-buttons button.btn-default:hover,.jconfirm.jconfirm-dark .jconfirm-box .jconfirm-buttons button.btn-default:hover{background:#666}.jconfirm.jconfirm-black.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c,.jconfirm.jconfirm-dark.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-shake{-webkit-animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:shake .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.jconfirm .jconfirm-box.hilight.jconfirm-hilight-glow{-webkit-animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;animation:glow .82s cubic-bezier(0.36,0.07,0.19,0.97) both;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}@-webkit-keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@keyframes shake{10%,90%{-webkit-transform:translate3d(-2px,0,0);transform:translate3d(-2px,0,0)}20%,80%{-webkit-transform:translate3d(4px,0,0);transform:translate3d(4px,0,0)}30%,50%,70%{-webkit-transform:translate3d(-8px,0,0);transform:translate3d(-8px,0,0)}40%,60%{-webkit-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}}@-webkit-keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}@keyframes glow{0%,100%{-webkit-box-shadow:0 0 0 red;box-shadow:0 0 0 red}50%{-webkit-box-shadow:0 0 30px red;box-shadow:0 0 30px red}}.jconfirm{-webkit-perspective:400px;perspective:400px}.jconfirm .jconfirm-box{opacity:1;-webkit-transition-property:all;transition-property:all}.jconfirm .jconfirm-box.jconfirm-animation-top,.jconfirm .jconfirm-box.jconfirm-animation-left,.jconfirm .jconfirm-box.jconfirm-animation-right,.jconfirm .jconfirm-box.jconfirm-animation-bottom,.jconfirm .jconfirm-box.jconfirm-animation-opacity,.jconfirm .jconfirm-box.jconfirm-animation-zoom,.jconfirm .jconfirm-box.jconfirm-animation-scale,.jconfirm .jconfirm-box.jconfirm-animation-none,.jconfirm .jconfirm-box.jconfirm-animation-rotate,.jconfirm .jconfirm-box.jconfirm-animation-rotatex,.jconfirm .jconfirm-box.jconfirm-animation-rotatey,.jconfirm .jconfirm-box.jconfirm-animation-scaley,.jconfirm .jconfirm-box.jconfirm-animation-scalex{opacity:0}.jconfirm .jconfirm-box.jconfirm-animation-rotate{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.jconfirm .jconfirm-box.jconfirm-animation-rotatex{-webkit-transform:rotateX(90deg);transform:rotateX(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatexr{-webkit-transform:rotateX(-90deg);transform:rotateX(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotatey{-webkit-transform:rotatey(90deg);transform:rotatey(90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-rotateyr{-webkit-transform:rotatey(-90deg);transform:rotatey(-90deg);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scaley{-webkit-transform:scaley(1.5);transform:scaley(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-scalex{-webkit-transform:scalex(1.5);transform:scalex(1.5);-webkit-transform-origin:center;transform-origin:center}.jconfirm .jconfirm-box.jconfirm-animation-top{-webkit-transform:translate(0px,-100px);transform:translate(0px,-100px)}.jconfirm .jconfirm-box.jconfirm-animation-left{-webkit-transform:translate(-100px,0px);transform:translate(-100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-right{-webkit-transform:translate(100px,0px);transform:translate(100px,0px)}.jconfirm .jconfirm-box.jconfirm-animation-bottom{-webkit-transform:translate(0px,100px);transform:translate(0px,100px)}.jconfirm .jconfirm-box.jconfirm-animation-zoom{-webkit-transform:scale(1.2);transform:scale(1.2)}.jconfirm .jconfirm-box.jconfirm-animation-scale{-webkit-transform:scale(0.5);transform:scale(0.5)}.jconfirm .jconfirm-box.jconfirm-animation-none{visibility:hidden}.jconfirm.jconfirm-supervan .jconfirm-bg{background-color:rgba(54,70,93,0.95)}.jconfirm.jconfirm-supervan .jconfirm-box{background-color:transparent}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-blue{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-green{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-red{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-orange{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-purple{border:0}.jconfirm.jconfirm-supervan .jconfirm-box.jconfirm-type-dark{border:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-closeIcon{color:white}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c{text-align:center;color:white;font-size:28px;font-weight:normal}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c>*{padding-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content-pane{margin-bottom:25px}.jconfirm.jconfirm-supervan .jconfirm-box div.jconfirm-content{text-align:center;color:white}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-supervan .jconfirm-box .jconfirm-buttons button{font-size:16px;border-radius:2px;background:#303f53;text-shadow:none;border:0;color:white;padding:10px;min-width:100px}.jconfirm.jconfirm-supervan.jconfirm-rtl .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-material .jconfirm-bg{background-color:rgba(0,0,0,0.67)}.jconfirm.jconfirm-material .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 25px 10px 25px}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold}.jconfirm.jconfirm-material .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons{text-align:right}.jconfirm.jconfirm-material .jconfirm-box .jconfirm-buttons button{text-transform:uppercase;font-weight:500}.jconfirm.jconfirm-material.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-bootstrap .jconfirm-bg{background-color:rgba(0,0,0,0.21)}.jconfirm.jconfirm-bootstrap .jconfirm-box{background-color:white;-webkit-box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);box-shadow:0 3px 8px 0 rgba(0,0,0,0.2);border:solid 1px rgba(0,0,0,0.4);padding:15px 0 0}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{margin-right:8px;margin-left:0}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87)}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:22px;font-weight:bold;padding-left:15px;padding-right:15px}.jconfirm.jconfirm-bootstrap .jconfirm-box div.jconfirm-content{color:rgba(0,0,0,0.87);padding:0 15px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons{text-align:right;padding:10px;margin:-5px 0 0;border-top:solid 1px #ddd;overflow:hidden;border-radius:0 0 4px 4px}.jconfirm.jconfirm-bootstrap .jconfirm-box .jconfirm-buttons button{font-weight:500}.jconfirm.jconfirm-bootstrap.jconfirm-rtl .jconfirm-title-c .jconfirm-icon-c{margin-left:8px;margin-right:0}.jconfirm.jconfirm-modern .jconfirm-bg{background-color:slategray;opacity:.6}.jconfirm.jconfirm-modern .jconfirm-box{background-color:white;-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);box-shadow:0 7px 8px -4px rgba(0,0,0,0.2),0 13px 19px 2px rgba(0,0,0,0.14),0 5px 24px 4px rgba(0,0,0,0.12);padding:30px 30px 15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-closeIcon{color:rgba(0,0,0,0.87);top:15px;right:15px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c{color:rgba(0,0,0,0.87);font-size:24px;font-weight:bold;text-align:center;margin-bottom:10px}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-title-c .jconfirm-icon-c{-webkit-transition:-webkit-transform .5s;transition:-webkit-transform .5s;transition:transform .5s;transition:transform .5s,-webkit-transform .5s;-webkit-transform:scale(0);transform:scale(0);display:block;margin-right:0;margin-left:0;margin-bottom:10px;font-size:69px;color:#aaa}.jconfirm.jconfirm-modern .jconfirm-box div.jconfirm-content{text-align:center;font-size:15px;color:#777;margin-bottom:25px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons{text-align:center}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button{font-weight:bold;text-transform:uppercase;-webkit-transition:background .1s;transition:background .1s;padding:10px 20px}.jconfirm.jconfirm-modern .jconfirm-box .jconfirm-buttons button+button{margin-left:4px}.jconfirm.jconfirm-modern.jconfirm-open .jconfirm-box .jconfirm-title-c .jconfirm-icon-c{-webkit-transform:scale(1);transform:scale(1)} \ No newline at end of file diff --git a/php_code/public/assets/libs/jquery-confirm/jquery-confirm.min.js b/php_code/public/assets/libs/jquery-confirm/jquery-confirm.min.js new file mode 100644 index 00000000..4cf8123e --- /dev/null +++ b/php_code/public/assets/libs/jquery-confirm/jquery-confirm.min.js @@ -0,0 +1,10 @@ +/*! + * jquery-confirm v3.3.4 (http://craftpip.github.io/jquery-confirm/) + * Author: Boniface Pereira + * Website: www.craftpip.com + * Contact: hey@craftpip.com + * + * Copyright 2013-2019 jquery-confirm + * Licensed under MIT (https://github.com/craftpip/jquery-confirm/blob/master/LICENSE) + */ +(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory);}else{if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(jQuery===undefined){if(typeof window!=="undefined"){jQuery=require("jquery");}else{jQuery=require("jquery")(root);}}factory(jQuery);return jQuery;};}else{factory(jQuery);}}}(function($){var w=window;$.fn.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}$(this).each(function(){var $this=$(this);if($this.attr("jc-attached")){console.warn("jConfirm has already been attached to this element ",$this[0]);return;}$this.on("click",function(e){e.preventDefault();var jcOption=$.extend({},options);if($this.attr("data-title")){jcOption.title=$this.attr("data-title");}if($this.attr("data-content")){jcOption.content=$this.attr("data-content");}if(typeof jcOption.buttons==="undefined"){jcOption.buttons={};}jcOption["$target"]=$this;if($this.attr("href")&&Object.keys(jcOption.buttons).length===0){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];jcOption.buttons=buttons;jcOption.buttons[firstBtn].action=function(){location.href=$this.attr("href");};}jcOption.closeIcon=false;var instance=$.confirm(jcOption);});$this.attr("jc-attached",true);});return $(this);};$.confirm=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});options.buttons=buttons;}return w.jconfirm(options);};$.alert=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false};}var putDefaultButtons=!(options.buttons===false);if(typeof options.buttons!=="object"){options.buttons={};}if(Object.keys(options.buttons).length===0&&putDefaultButtons){var buttons=$.extend(true,{},w.jconfirm.pluginDefaults.defaultButtons,(w.jconfirm.defaults||{}).defaultButtons||{});var firstBtn=Object.keys(buttons)[0];options.buttons[firstBtn]=buttons[firstBtn];}return w.jconfirm(options);};$.dialog=function(options,option2){if(typeof options==="undefined"){options={};}if(typeof options==="string"){options={content:options,title:(option2)?option2:false,closeIcon:function(){}};}options.buttons={};if(typeof options.closeIcon==="undefined"){options.closeIcon=function(){};}options.confirmKeys=[13];return w.jconfirm(options);};w.jconfirm=function(options){if(typeof options==="undefined"){options={};}var pluginOptions=$.extend(true,{},w.jconfirm.pluginDefaults);if(w.jconfirm.defaults){pluginOptions=$.extend(true,pluginOptions,w.jconfirm.defaults);}pluginOptions=$.extend(true,{},pluginOptions,options);var instance=new w.Jconfirm(pluginOptions);w.jconfirm.instances.push(instance);return instance;};w.Jconfirm=function(options){$.extend(this,options);this._init();};w.Jconfirm.prototype={_init:function(){var that=this;if(!w.jconfirm.instances.length){w.jconfirm.lastFocused=$("body").find(":focus");}this._id=Math.round(Math.random()*99999);this.contentParsed=$(document.createElement("div"));if(!this.lazyOpen){setTimeout(function(){that.open();},0);}},_buildHTML:function(){var that=this;this._parseAnimation(this.animation,"o");this._parseAnimation(this.closeAnimation,"c");this._parseBgDismissAnimation(this.backgroundDismissAnimation);this._parseColumnClass(this.columnClass);this._parseTheme(this.theme);this._parseType(this.type);var template=$(this.template);template.find(".jconfirm-box").addClass(this.animationParsed).addClass(this.backgroundDismissAnimationParsed).addClass(this.typeParsed);if(this.typeAnimated){template.find(".jconfirm-box").addClass("jconfirm-type-animated");}if(this.useBootstrap){template.find(".jc-bs3-row").addClass(this.bootstrapClasses.row);template.find(".jc-bs3-row").addClass("justify-content-md-center justify-content-sm-center justify-content-xs-center justify-content-lg-center");template.find(".jconfirm-box-container").addClass(this.columnClassParsed);if(this.containerFluid){template.find(".jc-bs3-container").addClass(this.bootstrapClasses.containerFluid);}else{template.find(".jc-bs3-container").addClass(this.bootstrapClasses.container);}}else{template.find(".jconfirm-box").css("width",this.boxWidth);}if(this.titleClass){template.find(".jconfirm-title-c").addClass(this.titleClass);}template.addClass(this.themeParsed);var ariaLabel="jconfirm-box"+this._id;template.find(".jconfirm-box").attr("aria-labelledby",ariaLabel).attr("tabindex",-1);template.find(".jconfirm-content").attr("id",ariaLabel);if(this.bgOpacity!==null){template.find(".jconfirm-bg").css("opacity",this.bgOpacity);}if(this.rtl){template.addClass("jconfirm-rtl");}this.$el=template.appendTo(this.container);this.$jconfirmBoxContainer=this.$el.find(".jconfirm-box-container");this.$jconfirmBox=this.$body=this.$el.find(".jconfirm-box");this.$jconfirmBg=this.$el.find(".jconfirm-bg");this.$title=this.$el.find(".jconfirm-title");this.$titleContainer=this.$el.find(".jconfirm-title-c");this.$content=this.$el.find("div.jconfirm-content");this.$contentPane=this.$el.find(".jconfirm-content-pane");this.$icon=this.$el.find(".jconfirm-icon-c");this.$closeIcon=this.$el.find(".jconfirm-closeIcon");this.$holder=this.$el.find(".jconfirm-holder");this.$btnc=this.$el.find(".jconfirm-buttons");this.$scrollPane=this.$el.find(".jconfirm-scrollpane");that.setStartingPoint();this._contentReady=$.Deferred();this._modalReady=$.Deferred();this.$holder.css({"padding-top":this.offsetTop,"padding-bottom":this.offsetBottom,});this.setTitle();this.setIcon();this._setButtons();this._parseContent();this.initDraggable();if(this.isAjax){this.showLoading(false);}$.when(this._contentReady,this._modalReady).then(function(){if(that.isAjaxLoading){setTimeout(function(){that.isAjaxLoading=false;that.setContent();that.setTitle();that.setIcon();setTimeout(function(){that.hideLoading(false);that._updateContentMaxHeight();},100);if(typeof that.onContentReady==="function"){that.onContentReady();}},50);}else{that._updateContentMaxHeight();that.setTitle();that.setIcon();if(typeof that.onContentReady==="function"){that.onContentReady();}}if(that.autoClose){that._startCountDown();}}).then(function(){that._watchContent();});if(this.animation==="none"){this.animationSpeed=1;this.animationBounce=1;}this.$body.css(this._getCSS(this.animationSpeed,this.animationBounce));this.$contentPane.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBg.css(this._getCSS(this.animationSpeed,1));this.$jconfirmBoxContainer.css(this._getCSS(this.animationSpeed,1));},_typePrefix:"jconfirm-type-",typeParsed:"",_parseType:function(type){this.typeParsed=this._typePrefix+type;},setType:function(type){var oldClass=this.typeParsed;this._parseType(type);this.$jconfirmBox.removeClass(oldClass).addClass(this.typeParsed);},themeParsed:"",_themePrefix:"jconfirm-",setTheme:function(theme){var previous=this.theme;this.theme=theme||this.theme;this._parseTheme(this.theme);if(previous){this.$el.removeClass(previous);}this.$el.addClass(this.themeParsed);this.theme=theme;},_parseTheme:function(theme){var that=this;theme=theme.split(",");$.each(theme,function(k,a){if(a.indexOf(that._themePrefix)===-1){theme[k]=that._themePrefix+$.trim(a);}});this.themeParsed=theme.join(" ").toLowerCase();},backgroundDismissAnimationParsed:"",_bgDismissPrefix:"jconfirm-hilight-",_parseBgDismissAnimation:function(bgDismissAnimation){var animation=bgDismissAnimation.split(",");var that=this;$.each(animation,function(k,a){if(a.indexOf(that._bgDismissPrefix)===-1){animation[k]=that._bgDismissPrefix+$.trim(a);}});this.backgroundDismissAnimationParsed=animation.join(" ").toLowerCase();},animationParsed:"",closeAnimationParsed:"",_animationPrefix:"jconfirm-animation-",setAnimation:function(animation){this.animation=animation||this.animation;this._parseAnimation(this.animation,"o");},_parseAnimation:function(animation,which){which=which||"o";var animations=animation.split(",");var that=this;$.each(animations,function(k,a){if(a.indexOf(that._animationPrefix)===-1){animations[k]=that._animationPrefix+$.trim(a);}});var a_string=animations.join(" ").toLowerCase();if(which==="o"){this.animationParsed=a_string;}else{this.closeAnimationParsed=a_string;}return a_string;},setCloseAnimation:function(closeAnimation){this.closeAnimation=closeAnimation||this.closeAnimation;this._parseAnimation(this.closeAnimation,"c");},setAnimationSpeed:function(speed){this.animationSpeed=speed||this.animationSpeed;},columnClassParsed:"",setColumnClass:function(colClass){if(!this.useBootstrap){console.warn("cannot set columnClass, useBootstrap is set to false");return;}this.columnClass=colClass||this.columnClass;this._parseColumnClass(this.columnClass);this.$jconfirmBoxContainer.addClass(this.columnClassParsed);},_updateContentMaxHeight:function(){var height=$(window).height()-(this.$jconfirmBox.outerHeight()-this.$contentPane.outerHeight())-(this.offsetTop+this.offsetBottom);this.$contentPane.css({"max-height":height+"px"});},setBoxWidth:function(width){if(this.useBootstrap){console.warn("cannot set boxWidth, useBootstrap is set to true");return;}this.boxWidth=width;this.$jconfirmBox.css("width",width);},_parseColumnClass:function(colClass){colClass=colClass.toLowerCase();var p;switch(colClass){case"xl":case"xlarge":p="col-md-12";break;case"l":case"large":p="col-md-8 col-md-offset-2";break;case"m":case"medium":p="col-md-6 col-md-offset-3";break;case"s":case"small":p="col-md-4 col-md-offset-4";break;case"xs":case"xsmall":p="col-md-2 col-md-offset-5";break;default:p=colClass;}this.columnClassParsed=p;},initDraggable:function(){var that=this;var $t=this.$titleContainer;this.resetDrag();if(this.draggable){$t.on("mousedown",function(e){$t.addClass("jconfirm-hand");that.mouseX=e.clientX;that.mouseY=e.clientY;that.isDrag=true;});$(window).on("mousemove."+this._id,function(e){if(that.isDrag){that.movingX=e.clientX-that.mouseX+that.initialX;that.movingY=e.clientY-that.mouseY+that.initialY;that.setDrag();}});$(window).on("mouseup."+this._id,function(){$t.removeClass("jconfirm-hand");if(that.isDrag){that.isDrag=false;that.initialX=that.movingX;that.initialY=that.movingY;}});}},resetDrag:function(){this.isDrag=false;this.initialX=0;this.initialY=0;this.movingX=0;this.movingY=0;this.mouseX=0;this.mouseY=0;this.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");},setDrag:function(){if(!this.draggable){return;}this.alignMiddle=false;var boxWidth=this.$jconfirmBox.outerWidth();var boxHeight=this.$jconfirmBox.outerHeight();var windowWidth=$(window).width();var windowHeight=$(window).height();var that=this;var dragUpdate=1;if(that.movingX%dragUpdate===0||that.movingY%dragUpdate===0){if(that.dragWindowBorder){var leftDistance=(windowWidth/2)-boxWidth/2;var topDistance=(windowHeight/2)-boxHeight/2;topDistance-=that.dragWindowGap;leftDistance-=that.dragWindowGap;if(leftDistance+that.movingX<0){that.movingX=-leftDistance;}else{if(leftDistance-that.movingX<0){that.movingX=leftDistance;}}if(topDistance+that.movingY<0){that.movingY=-topDistance;}else{if(topDistance-that.movingY<0){that.movingY=topDistance;}}}that.$jconfirmBoxContainer.css("transform","translate("+that.movingX+"px, "+that.movingY+"px)");}},_scrollTop:function(){if(typeof pageYOffset!=="undefined"){return pageYOffset;}else{var B=document.body;var D=document.documentElement;D=(D.clientHeight)?D:B;return D.scrollTop;}},_watchContent:function(){var that=this;if(this._timer){clearInterval(this._timer);}var prevContentHeight=0;this._timer=setInterval(function(){if(that.smoothContent){var contentHeight=that.$content.outerHeight()||0;if(contentHeight!==prevContentHeight){prevContentHeight=contentHeight;}var wh=$(window).height();var total=that.offsetTop+that.offsetBottom+that.$jconfirmBox.height()-that.$contentPane.height()+that.$content.height();if(total').html(that.buttons[key].text).addClass(that.buttons[key].btnClass).prop("disabled",that.buttons[key].isDisabled).css("display",that.buttons[key].isHidden?"none":"").click(function(e){e.preventDefault();var res=that.buttons[key].action.apply(that,[that.buttons[key]]);that.onAction.apply(that,[key,that.buttons[key]]);that._stopCountDown();if(typeof res==="undefined"||res){that.close();}});that.buttons[key].el=button_element;that.buttons[key].setText=function(text){button_element.html(text);};that.buttons[key].addClass=function(className){button_element.addClass(className);};that.buttons[key].removeClass=function(className){button_element.removeClass(className);};that.buttons[key].disable=function(){that.buttons[key].isDisabled=true;button_element.prop("disabled",true);};that.buttons[key].enable=function(){that.buttons[key].isDisabled=false;button_element.prop("disabled",false);};that.buttons[key].show=function(){that.buttons[key].isHidden=false;button_element.css("display","");};that.buttons[key].hide=function(){that.buttons[key].isHidden=true;button_element.css("display","none");};that["$_"+key]=that["$$"+key]=button_element;that.$btnc.append(button_element);});if(total_buttons===0){this.$btnc.hide();}if(this.closeIcon===null&&total_buttons===0){this.closeIcon=true;}if(this.closeIcon){if(this.closeIconClass){var closeHtml='';this.$closeIcon.html(closeHtml);}this.$closeIcon.click(function(e){e.preventDefault();var buttonName=false;var shouldClose=false;var str;if(typeof that.closeIcon==="function"){str=that.closeIcon();}else{str=that.closeIcon;}if(typeof str==="string"&&typeof that.buttons[str]!=="undefined"){buttonName=str;shouldClose=false;}else{if(typeof str==="undefined"||!!(str)===true){shouldClose=true;}else{shouldClose=false;}}if(buttonName){var btnResponse=that.buttons[buttonName].action.apply(that);shouldClose=(typeof btnResponse==="undefined")||!!(btnResponse);}if(shouldClose){that.close();}});this.$closeIcon.show();}else{this.$closeIcon.hide();}},setTitle:function(string,force){force=force||false;if(typeof string!=="undefined"){if(typeof string==="string"){this.title=string;}else{if(typeof string==="function"){if(typeof string.promise==="function"){console.error("Promise was returned from title function, this is not supported.");}var response=string();if(typeof response==="string"){this.title=response;}else{this.title=false;}}else{this.title=false;}}}if(this.isAjaxLoading&&!force){return;}this.$title.html(this.title||"");this.updateTitleContainer();},setIcon:function(iconClass,force){force=force||false;if(typeof iconClass!=="undefined"){if(typeof iconClass==="string"){this.icon=iconClass;}else{if(typeof iconClass==="function"){var response=iconClass();if(typeof response==="string"){this.icon=response;}else{this.icon=false;}}else{this.icon=false;}}}if(this.isAjaxLoading&&!force){return;}this.$icon.html(this.icon?'':"");this.updateTitleContainer();},updateTitleContainer:function(){if(!this.title&&!this.icon){this.$titleContainer.hide();}else{this.$titleContainer.show();}},setContentPrepend:function(content,force){if(!content){return;}this.contentParsed.prepend(content);},setContentAppend:function(content){if(!content){return;}this.contentParsed.append(content);},setContent:function(content,force){force=!!force;var that=this;if(content){this.contentParsed.html("").append(content);}if(this.isAjaxLoading&&!force){return;}this.$content.html("");this.$content.append(this.contentParsed);setTimeout(function(){that.$body.find("input[autofocus]:visible:first").focus();},100);},loadingSpinner:false,showLoading:function(disableButtons){this.loadingSpinner=true;this.$jconfirmBox.addClass("loading");if(disableButtons){this.$btnc.find("button").prop("disabled",true);}},hideLoading:function(enableButtons){this.loadingSpinner=false;this.$jconfirmBox.removeClass("loading");if(enableButtons){this.$btnc.find("button").prop("disabled",false);}},ajaxResponse:false,contentParsed:"",isAjax:false,isAjaxLoading:false,_parseContent:function(){var that=this;var e=" ";if(typeof this.content==="function"){var res=this.content.apply(this);if(typeof res==="string"){this.content=res;}else{if(typeof res==="object"&&typeof res.always==="function"){this.isAjax=true;this.isAjaxLoading=true;res.always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});this.content=e;}else{this.content=e;}}}if(typeof this.content==="string"&&this.content.substr(0,4).toLowerCase()==="url:"){this.isAjax=true;this.isAjaxLoading=true;var u=this.content.substring(4,this.content.length);$.get(u).done(function(html){that.contentParsed.html(html);}).always(function(data,status,xhr){that.ajaxResponse={data:data,status:status,xhr:xhr};that._contentReady.resolve(data,status,xhr);if(typeof that.contentLoaded==="function"){that.contentLoaded(data,status,xhr);}});}if(!this.content){this.content=e;}if(!this.isAjax){this.contentParsed.html(this.content);this.setContent();that._contentReady.resolve();}},_stopCountDown:function(){clearInterval(this.autoCloseInterval);if(this.$cd){this.$cd.remove();}},_startCountDown:function(){var that=this;var opt=this.autoClose.split("|");if(opt.length!==2){console.error("Invalid option for autoClose. example 'close|10000'");return false;}var button_key=opt[0];var time=parseInt(opt[1]);if(typeof this.buttons[button_key]==="undefined"){console.error("Invalid button key '"+button_key+"' for autoClose");return false;}var seconds=Math.ceil(time/1000);this.$cd=$(' ('+seconds+")").appendTo(this["$_"+button_key]);this.autoCloseInterval=setInterval(function(){that.$cd.html(" ("+(seconds-=1)+") ");if(seconds<=0){that["$$"+button_key].trigger("click");that._stopCountDown();}},1000);},_getKey:function(key){switch(key){case 192:return"tilde";case 13:return"enter";case 16:return"shift";case 9:return"tab";case 20:return"capslock";case 17:return"ctrl";case 91:return"win";case 18:return"alt";case 27:return"esc";case 32:return"space";}var initial=String.fromCharCode(key);if(/^[A-z0-9]+$/.test(initial)){return initial.toLowerCase();}else{return false;}},reactOnKey:function(e){var that=this;var a=$(".jconfirm");if(a.eq(a.length-1)[0]!==this.$el[0]){return false;}var key=e.which;if(this.$content.find(":input").is(":focus")&&/13|32/.test(key)){return false;}var keyChar=this._getKey(key);if(keyChar==="esc"&&this.escapeKey){if(this.escapeKey===true){this.$scrollPane.trigger("click");}else{if(typeof this.escapeKey==="string"||typeof this.escapeKey==="function"){var buttonKey;if(typeof this.escapeKey==="function"){buttonKey=this.escapeKey();}else{buttonKey=this.escapeKey;}if(buttonKey){if(typeof this.buttons[buttonKey]==="undefined"){console.warn("Invalid escapeKey, no buttons found with key "+buttonKey);}else{this["$_"+buttonKey].trigger("click");}}}}}$.each(this.buttons,function(key,button){if(button.keys.indexOf(keyChar)!==-1){that["$_"+key].trigger("click");}});},setDialogCenter:function(){console.info("setDialogCenter is deprecated, dialogs are centered with CSS3 tables");},_unwatchContent:function(){clearInterval(this._timer);},close:function(onClosePayload){var that=this;if(typeof this.onClose==="function"){this.onClose(onClosePayload);}this._unwatchContent();$(window).unbind("resize."+this._id);$(window).unbind("keyup."+this._id);$(window).unbind("jcKeyDown."+this._id);if(this.draggable){$(window).unbind("mousemove."+this._id);$(window).unbind("mouseup."+this._id);this.$titleContainer.unbind("mousedown");}that.$el.removeClass(that.loadedClass);$("body").removeClass("jconfirm-no-scroll-"+that._id);that.$jconfirmBoxContainer.removeClass("jconfirm-no-transition");setTimeout(function(){that.$body.addClass(that.closeAnimationParsed);that.$jconfirmBg.addClass("jconfirm-bg-h");var closeTimer=(that.closeAnimation==="none")?1:that.animationSpeed;setTimeout(function(){that.$el.remove();var l=w.jconfirm.instances;var i=w.jconfirm.instances.length-1;for(i;i>=0;i--){if(w.jconfirm.instances[i]._id===that._id){w.jconfirm.instances.splice(i,1);}}if(!w.jconfirm.instances.length){if(that.scrollToPreviousElement&&w.jconfirm.lastFocused&&w.jconfirm.lastFocused.length&&$.contains(document,w.jconfirm.lastFocused[0])){var $lf=w.jconfirm.lastFocused;if(that.scrollToPreviousElementAnimate){var st=$(window).scrollTop();var ot=w.jconfirm.lastFocused.offset().top;var wh=$(window).height();if(!(ot>st&&ot<(st+wh))){var scrollTo=(ot-Math.round((wh/3)));$("html, body").animate({scrollTop:scrollTo},that.animationSpeed,"swing",function(){$lf.focus();});}else{$lf.focus();}}else{$lf.focus();}w.jconfirm.lastFocused=false;}}if(typeof that.onDestroy==="function"){that.onDestroy();}},closeTimer*0.4);},50);return true;},open:function(){if(this.isOpen()){return false;}this._buildHTML();this._bindEvents();this._open();return true;},setStartingPoint:function(){var el=false;if(this.animateFromElement!==true&&this.animateFromElement){el=this.animateFromElement;w.jconfirm.lastClicked=false;}else{if(w.jconfirm.lastClicked&&this.animateFromElement===true){el=w.jconfirm.lastClicked;w.jconfirm.lastClicked=false;}else{return false;}}if(!el){return false;}var offset=el.offset();var iTop=el.outerHeight()/2;var iLeft=el.outerWidth()/2;iTop-=this.$jconfirmBox.outerHeight()/2;iLeft-=this.$jconfirmBox.outerWidth()/2;var sourceTop=offset.top+iTop;sourceTop=sourceTop-this._scrollTop();var sourceLeft=offset.left+iLeft;var wh=$(window).height()/2;var ww=$(window).width()/2;var targetH=wh-this.$jconfirmBox.outerHeight()/2;var targetW=ww-this.$jconfirmBox.outerWidth()/2;sourceTop-=targetH;sourceLeft-=targetW;if(Math.abs(sourceTop)>wh||Math.abs(sourceLeft)>ww){return false;}this.$jconfirmBoxContainer.css("transform","translate("+sourceLeft+"px, "+sourceTop+"px)");},_open:function(){var that=this;if(typeof that.onOpenBefore==="function"){that.onOpenBefore();}this.$body.removeClass(this.animationParsed);this.$jconfirmBg.removeClass("jconfirm-bg-h");this.$body.focus();that.$jconfirmBoxContainer.css("transform","translate("+0+"px, "+0+"px)");setTimeout(function(){that.$body.css(that._getCSS(that.animationSpeed,1));that.$body.css({"transition-property":that.$body.css("transition-property")+", margin"});that.$jconfirmBoxContainer.addClass("jconfirm-no-transition");that._modalReady.resolve();if(typeof that.onOpen==="function"){that.onOpen();}that.$el.addClass(that.loadedClass);},this.animationSpeed);},loadedClass:"jconfirm-open",isClosed:function(){return !this.$el||this.$el.parent().length===0;},isOpen:function(){return !this.isClosed();},toggle:function(){if(!this.isOpen()){this.open();}else{this.close();}}};w.jconfirm.instances=[];w.jconfirm.lastFocused=false;w.jconfirm.pluginDefaults={template:'
',title:"Hello",titleClass:"",type:"default",typeAnimated:true,draggable:true,dragWindowGap:15,dragWindowBorder:true,animateFromElement:true,alignMiddle:true,smoothContent:true,content:"Are you sure to continue?",buttons:{},defaultButtons:{ok:{action:function(){}},close:{action:function(){}}},contentLoaded:function(){},icon:"",lazyOpen:false,bgOpacity:null,theme:"light",animation:"scale",closeAnimation:"scale",animationSpeed:400,animationBounce:1,escapeKey:true,rtl:false,container:"body",containerFluid:false,backgroundDismiss:false,backgroundDismissAnimation:"shake",autoClose:false,closeIcon:null,closeIconClass:false,watchInterval:100,columnClass:"col-md-4 col-md-offset-4 col-sm-6 col-sm-offset-3 col-xs-10 col-xs-offset-1",boxWidth:"50%",scrollToPreviousElement:true,scrollToPreviousElementAnimate:true,useBootstrap:true,offsetTop:40,offsetBottom:40,bootstrapClasses:{container:"container",containerFluid:"container-fluid",row:"row"},onContentReady:function(){},onOpenBefore:function(){},onOpen:function(){},onClose:function(){},onDestroy:function(){},onAction:function(){}};var keyDown=false;$(window).on("keydown",function(e){if(!keyDown){var $target=$(e.target);var pass=false;if($target.closest(".jconfirm-box").length){pass=true;}if(pass){$(window).trigger("jcKeyDown");}keyDown=true;}});$(window).on("keyup",function(){keyDown=false;});w.jconfirm.lastClicked=false;$(document).on("mousedown","button, a, [jc-source]",function(){w.jconfirm.lastClicked=$(this);});})); \ No newline at end of file diff --git a/php_code/resources/views/admin/home.blade.php b/php_code/resources/views/admin/home.blade.php index fc04fa59..ef2a1e09 100644 --- a/php_code/resources/views/admin/home.blade.php +++ b/php_code/resources/views/admin/home.blade.php @@ -53,7 +53,7 @@ @csrf - + edit icon diff --git a/php_code/resources/views/emails/new-user.blade.php b/php_code/resources/views/emails/new-user.blade.php index e69de29b..2a4f812c 100644 --- a/php_code/resources/views/emails/new-user.blade.php +++ b/php_code/resources/views/emails/new-user.blade.php @@ -0,0 +1,15 @@ + + + + LUPMIS 2.0 User Account + + +

Account Credentials

+

Your LUPMIS Account has been successfully created. Use the credentials below to login.

+
    +
  1. Username: {{ $username }}
  2. +
  3. Password: {{ $password }}
  4. +
  5. URL: https://lupmis4luspa.org
  6. +
+ + diff --git a/php_code/resources/views/permits/dashboard.blade.php b/php_code/resources/views/permits/dashboard.blade.php index 0c3ce6d3..e45607d9 100644 --- a/php_code/resources/views/permits/dashboard.blade.php +++ b/php_code/resources/views/permits/dashboard.blade.php @@ -13,6 +13,9 @@
+
+ @include('common.notifications') +
diff --git a/php_code/resources/views/permits/index.blade.php b/php_code/resources/views/permits/index.blade.php index 7a7656d9..3ad92dbb 100644 --- a/php_code/resources/views/permits/index.blade.php +++ b/php_code/resources/views/permits/index.blade.php @@ -25,6 +25,7 @@
+ @include('common.notifications') diff --git a/php_code/resources/views/permits/partials/pdf-modal.blade.php b/php_code/resources/views/permits/partials/pdf-modal.blade.php new file mode 100644 index 00000000..56a8f7d2 --- /dev/null +++ b/php_code/resources/views/permits/partials/pdf-modal.blade.php @@ -0,0 +1,14 @@ + diff --git a/php_code/resources/views/permits/show.blade.php b/php_code/resources/views/permits/show.blade.php index 7304b745..901032c7 100644 --- a/php_code/resources/views/permits/show.blade.php +++ b/php_code/resources/views/permits/show.blade.php @@ -6,10 +6,9 @@ @endsection @section('page-content') +@include('permits.partials.pdf-modal') @include('layouts.partials.permits-navbar') - -
@@ -19,7 +18,8 @@
-
+ +
@@ -27,7 +27,7 @@
-

Project Location

+

Actual Project Location

@@ -63,35 +63,43 @@
-
Project Description
+

-
+
Name
-

Freda Amuzu & Lydia Opare

+

{{ $permit_arr['applicant_name'] }}

+
+
+
Nationality
+

{{ $permit_arr['nationality'] }}

-
Address
-

21 Coker Street

+
Email
+

{{ $permit_arr['email'] }}

Telephone Number
-

023 398 4569

+

{{ $permit_arr['phone'] }}

+
Address
+

{{ $permit_arr['address'] }}, {{ $permit_arr['city'] }}, {{ $permit_arr['region'] }}

+
+
Location
-

Sector 28 Block F - Plot No. 189 & 190

+

{{ $permit_arr['project_location'] }}

-
-
Land use
-

Residential

+
+
Permit Type
+

{{ $permit_arr['permit_type'] }}

@@ -103,19 +111,35 @@
@@ -45,7 +45,7 @@      
-

Login

+

Welcome to LUPMIS

@include('common.notifications')
@csrf diff --git a/php_code/routes/web.php b/php_code/routes/web.php index 9c88e268..24d96673 100644 --- a/php_code/routes/web.php +++ b/php_code/routes/web.php @@ -2,8 +2,14 @@ use Illuminate\Support\Facades\Route; use App\Http\Middleware\CheckBackendSession; +use Illuminate\Support\Facades\Mail; +use App\Mail\UserAccountsMail; - +Route::get('/send-test-email', function () { + $recipientEmail = 'recipient@example.com'; + Mail::to($recipientEmail)->send(new UserAccountsMail()); + dd('Email sent!'); +}); #Auth::routes(); @@ -14,7 +20,7 @@ Auth::routes([ ]); - +Route::get('/view-pdf/{filename}', [App\Http\Controllers\PermitsController::class, 'viewPdf'])->name('view.pdf'); Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); Route::get('/user-login', [App\Http\Controllers\UserloginController::class, 'index']); @@ -38,6 +44,7 @@ Route::middleware([CheckBackendSession::class])->group(function () { Route::get('/users/{user_id}', [App\Http\Controllers\UsersController::class, 'show']); Route::post('/users', [App\Http\Controllers\UsersController::class, 'store']); Route::post('/users/update', [App\Http\Controllers\UsersController::class, 'update']); + Route::post('/userupdate', [App\Http\Controllers\UsersController::class, 'update']); Route::get('/users/edit/{user_id}', [App\Http\Controllers\UsersController::class, 'edit']);