From 8d62b782f788d997b287e175b42ccbe3d28e56a5 Mon Sep 17 00:00:00 2001 From: stephen Date: Tue, 6 Jan 2026 13:40:21 +1100 Subject: [PATCH] part working authentication --- .env.local | 16 ++++ .env.local-bak | 5 ++ .env.local-bak2 | 5 ++ docs/notes.md | 107 ++++++++++++++++++++---- docs/notes.pdf | Bin 310761 -> 338886 bytes package-lock.json | 103 +++++++++++++++++++++++ package.json | 1 + src/app/api/auth/[...nextauth]/route.ts | 2 + src/app/dashboard/page.tsx | 9 ++ src/app/login/page.tsx | 20 +++++ src/app/profile/page.tsx | 12 +++ src/auth.ts | 21 +++++ src/components/LoginButton.tsx | 24 ++++++ src/middleware.ts | 40 +++++++++ 14 files changed, 347 insertions(+), 18 deletions(-) create mode 100644 .env.local create mode 100644 .env.local-bak create mode 100644 .env.local-bak2 create mode 100644 src/app/api/auth/[...nextauth]/route.ts create mode 100644 src/app/dashboard/page.tsx create mode 100644 src/app/login/page.tsx create mode 100644 src/app/profile/page.tsx create mode 100644 src/auth.ts create mode 100644 src/components/LoginButton.tsx create mode 100644 src/middleware.ts diff --git a/.env.local b/.env.local new file mode 100644 index 0000000..2701d8d --- /dev/null +++ b/.env.local @@ -0,0 +1,16 @@ + +# values generated by Gemini +# Generated for security +AUTH_SECRET="7cz3Z4kUI2kB3mdAPo58iioUDLSRJ92X8+boEixvO8k=" + +# Use 'common' for multi-tenant (Work + Personal) support +AUTH_MICROSOFT_ENTRA_ID_TENANT_ID="common" + +# The Application (client) ID +AUTH_MICROSOFT_ENTRA_ID_ID="b549931a-f491-436b-b7bc-d37d8ca3c17e" + +# The Client Secret VALUE (ensure no leading '6' or spaces) +AUTH_MICROSOFT_ENTRA_ID_SECRET="O3p8Q~oMph-0kSLwkvzEJzJdx_iHGOjJjrr5Pa1A" + +# Required to tell Auth.js to trust your localhost/proxy URL +AUTH_TRUST_HOST=true \ No newline at end of file diff --git a/.env.local-bak b/.env.local-bak new file mode 100644 index 0000000..a2e7af6 --- /dev/null +++ b/.env.local-bak @@ -0,0 +1,5 @@ +AUTH_SECRET="7cz3Z4kUI2kB3mdAPo58iioUDLSRJ92X8+boEixvO8k=" # Added by `npx auth`. Read more: https://cli.authjs.dev + +AUTH_MICROSOFT_ENTRA_ID="549931a-f491-436b-b7bc-d37d8ca3c17e" +AUTH_MICROSOFT_ENTRA_ID_SECRET="6O3p8Q~oMph-0kSLwkvzEJzJdx_iHGOjJjrr5Pa1A" +AUTH_MICROSOFT_ENTRA_ID_TENANT_ID="1c06ce7c-7884-4796-8652-d4c32d75a5d0" \ No newline at end of file diff --git a/.env.local-bak2 b/.env.local-bak2 new file mode 100644 index 0000000..69a3a8f --- /dev/null +++ b/.env.local-bak2 @@ -0,0 +1,5 @@ +AUTH_SECRET="7cz3Z4kUI2kB3mdAPo58iioUDLSRJ92X8+boEixvO8k=" # Added by `npx auth`. Read more: https://cli.authjs.dev + +AUTH_MICROSOFT_ENTRA_ID="1c06ce7c-7884-4796-8652-d4c32d75a5d0" +AUTH_MICROSOFT_ENTRA_ID_SECRET="6O3p8Q~oMph-0kSLwkvzEJzJdx_iHGOjJjrr5Pa1A" +AUTH_MICROSOFT_ENTRA_ID_TENANT_ID="1c06ce7c-7884-4796-8652-d4c32d75a5d0" \ No newline at end of file diff --git a/docs/notes.md b/docs/notes.md index 55fd623..38fd985 100644 --- a/docs/notes.md +++ b/docs/notes.md @@ -1,14 +1,43 @@ -- [1. Project Structure](#1-project-structure) -- [2. App Registrations](#2-app-registrations) - - [2.1. Permissions Needed](#21-permissions-needed) -- [3. Steps](#3-steps) - - [3.1. create nextjs app](#31-create-nextjs-app) - - [3.2. Create .env file](#32-create-env-file) - - [3.3. Configure Git](#33-configure-git) - - [3.4. Test nextjs](#34-test-nextjs) +- [1. Reference](#1-reference) + - [1.1. Next.js Authentication Made Easy with Microsoft Entra ID](#11-nextjs-authentication-made-easy-with-microsoft-entra-id) + - [1.2. Next.js 16 Middleware DEPRECATED - Authentication In Proxy Or Data Access Layer?](#12-nextjs-16-middleware-deprecated---authentication-in-proxy-or-data-access-layer) + - [1.3. Overview of user consent and how to manage it in Microsoft Entra | Microsoft](#13-overview-of-user-consent-and-how-to-manage-it-in-microsoft-entra--microsoft) + - [1.4. Add Tailwind CSS to an Existing Next js Project](#14-add-tailwind-css-to-an-existing-next-js-project) + - [1.5. How to style Material UI component with Tailwindcss in React project](#15-how-to-style-material-ui-component-with-tailwindcss-in-react-project) +- [2. Project Structure](#2-project-structure) +- [3. App Registrations](#3-app-registrations) + - [3.1. Permissions Needed](#31-permissions-needed) +- [4. Steps](#4-steps) + - [4.1. create nextjs app](#41-create-nextjs-app) + - [4.2. Create .env file](#42-create-env-file) + - [4.3. Configure Git](#43-configure-git) + - [4.4. Test nextjs](#44-test-nextjs) + - [4.5. Check Authentication](#45-check-authentication) + - [4.6. Install NextAuth.js v5](#46-install-nextauthjs-v5) +# 1. Reference -# 1. Project Structure +## 1.1. Next.js Authentication Made Easy with Microsoft Entra ID + +[Next.js Authentication Made Easy with Microsoft Entra ID](https://www.youtube.com/watch?v=tNLrMKZ-xmc&t=5s) + +## 1.2. Next.js 16 Middleware DEPRECATED - Authentication In Proxy Or Data Access Layer? + +[Next.js 16 Middleware DEPRECATED - Authentication In Proxy Or Data Access Layer?](https://www.youtube.com/watch?v=zNgCFXZLoRk) + +## 1.3. Overview of user consent and how to manage it in Microsoft Entra | Microsoft + +[Overview of user consent and how to manage it in Microsoft Entra | Microsoft](https://www.youtube.com/watch?v=u6PyQkNi7xk) + +## 1.4. Add Tailwind CSS to an Existing Next js Project + +[Add Tailwind CSS to an Existing Next js Project](https://www.youtube.com/watch?v=vRqTNuX46PY) + +## 1.5. How to style Material UI component with Tailwindcss in React project + +[How to style Material UI component with Tailwindcss in React project](https://www.youtube.com/watch?v=QQIfuMlA6TI) + +# 2. Project Structure The following is the desire structure @@ -34,8 +63,8 @@ web-calibre/ -# 2. App Registrations - +# 3. App Registrations +WebCalibre2 Application (client) ID = 'b549931a-f491-436b-b7bc-d37d8ca3c17e' Object ID ='0b8256a2-e2ac-472b-896a-4b5845bc32fe' @@ -58,12 +87,24 @@ For production: https://your-domain.com/api/auth/callback/azure-ad Note: Replace azure-ad with whatever ID you give the provider in your code. By default, in NextAuth, it is usually azure-ad. -## 2.1. Permissions Needed +WebCalibre3 +|Display name | WebCalibre3 +|------------------------|-------------------------------------| +|Application (client) ID |a95ef644-cb9d-465c-8dae-f822a78a8ac3 | +|Object ID |1e1f2bda-661c-4ad0-9aae-82313c603076 | +|Directory (tenant) ID. |1c06ce7c-7884-4796-8652-d4c32d75a5d0 | + +Client credentials +| Description | Expires | Value | Secret ID +|--------------|---------|-----------------------------------------|------------------------------------| +| WebCalibre3 |1/5/2028 |VZ48Q~EOsgZcgBI25cc0zys.h9zM7hN9I7DhZdnW |d647cf28-80ed-45fb-a89e-e2bc323a40e9| + +## 3.1. Permissions Needed ![Permissions Needed](./images/PermissionsNeeded.png) -# 3. Steps -## 3.1. create nextjs app +# 4. Steps +## 4.1. create nextjs app The following command creates the nextjs folder structure Yes, Next.js has a specific syntax to create a project in your current directory instead of creating a new subfolder. @@ -92,7 +133,7 @@ Configuration: It will then ask you about TypeScript, ESLint, Tailwind CSS, the Based on our previous discussions, I recommend selecting "Yes" for TypeScript, ESLint, Tailwind, the src/ directory, and the App Router to match the professional structure we planned for WebCalibre. -## 3.2. Create .env file +## 4.2. Create .env file @@ -120,6 +161,15 @@ Next.js looks for variables in this specific order (from highest priority to low 4. .env.development 5. .env (The final fallback) +```text +DATABASE_URL="postgresql://stephen:Web2025$$@192.168.1.210:5432/webcalibre2" + +# Credentials for your Microsoft App (NextAuth) +AZURE_AD_CLIENT_ID="549931a-f491-436b-b7bc-d37d8ca3c17e" +AZURE_AD_CLIENT_SECRET="6a242be1-c711-4cc3-a132-03c1f57993ed" +AZURE_AD_TENANT_ID="1c06ce7c-7884-4796-8652-d4c32d75a5d0" +``` + **Summary Comparison Table** |Feature |.env |.env.local| @@ -131,7 +181,7 @@ Next.js looks for variables in this specific order (from highest priority to low **Best Practice Tip: ** Since .env.local isn't shared on GitHub, it’s a good idea to create a file named .env.example in your project. This file should contain the names of the keys (e.g., AZURE_AD_CLIENT_SECRET=) but leave the values blank, so other developers know which variables they need to create on their own machines. -## 3.3. Configure Git +## 4.3. Configure Git Nextjs initializes git by default. But is doesn't add some configs that I do @@ -143,7 +193,7 @@ git remote -v origin /Users/stephenlohning/Library/CloudStorage/OneDrive-Personal/Documents/10_GIT_Repositories/124_WebCalibre2.git (fetch) origin /Users/stephenlohning/Library/CloudStorage/OneDrive-Personal/Documents/10_GIT_Repositories/124_WebCalibre2.git (push) -## 3.4. Test nextjs +## 4.4. Test nextjs ```zsh npm run dev @@ -158,4 +208,25 @@ npm run dev ✓ Starting... ✓ Ready in 648ms ``` -If it working proceed \ No newline at end of file +If it working proceed + +## 4.5. Check Authentication + +I ran through the Video:- + +[Next.js Authentication Made Easy with Microsoft Entra ID](https://www.youtube.com/watch?v=tNLrMKZ-xmc&t=5s) + +## 4.6. Install NextAuth.js v5 + +npm install next-auth@beta + +Setup Environment +The only environment variable that is mandatory is the AUTH_SECRET. This is a random value used by the library to encrypt tokens and email verification hashes. (See Deployment to learn more). You can generate one via the official Auth.js CLI running: + +npx auth secret + +created .env.local + +```text +AUTH_SECRET="7cz3Z4kUI2kB3mdAPo58iioUDLSRJ92X8+boEixvO8k=" # Added by `npx auth`. Read more: https://cli.authjs.dev +``` \ No newline at end of file diff --git a/docs/notes.pdf b/docs/notes.pdf index 6dd0efe34a9c098e17215476b55736738b017956..fbb81ead9b1d571ffa19402e1f83f860b834a7f0 100644 GIT binary patch delta 74296 zcmb@tWmH`2vNeobAh^2+_r@W(yNBR3?(U7dySuwP1b26LO9(E(`Pk>|{oZrW_9HLF&y)y2SqkB=Cz3B_PEK}?JWNckuC9#kw$4t@hCoIm zTWcm)11BRhK^J}}d07WJnQshk)<#rL{2Y!n0w0fr9!Q!0;K0TXU}X6VkA$6_osso} z1Sbg_2iL!O{U31fkT(?(*Zd}Ht8Do%cm$x0v2B7fl=y#eVC7_HWdD~A?97~h>%hvz z_HSPQ2OOLMitb95^5&dw|H)zVe{=ZAz`u211+e|YftBt5Oa~WbdsTU7O?H5y)_>?= z0*#!24bJ%=TCi~Z?Flv#HUK9h=f4ud0{Gh$Z2t#pC@D#qILlcH0aT^_VFGJxYiNPM z%8`Hsu1?9u%*e?>!pX(?|6&&fIy#Xsu`oCQO@IzS8zbO{i@XT%5(vRr61*T0^*-$K zFUyj!adG|4n3MCv(0`@$gYe(mSr}}9ZcY}C3&xT@4(748}k^2jB-H(3pYYzZsa@FxWZRy16shIxrX;I2kY)7#RT_9T}_)+<^`P z0{^n?U;1#7Fq0&pfPVxJi3nol_&aEJE{?zb!pX+<-$Ao6*t!56T+D&447Mf=&W=C_ z1|wS=$B)n$3~Y=U%xqm5oNPZNurV+NGMGCtd{Fss0sd#C%palu?<{lt6O*HpyA|*wGAE#exq%gfv-wBh z)^@fwe}(?9ME^tRFFqe(I{*!goc@0puzZOA;m!nfa4{qR=ReJg1;CL|3xx&Fn&1Ua z0KvxkK~shTz`^}DMHT=TBP$09fRpvV_^~CxLlC4ux(k&_Jj&Z!W7P!f8qUAVxP!4xY_=}M;Nax^8;XSs@RuGOT-^T+#rBsUP0UT5KWfC({3G=#d!7t zW=gax#6P9~NtA0G06*$1MZ~m`I0I6Rp4uwHIyll~xN$?dTiSWrYSYvc0Zq86W$~z?THU#^UX#>g&N$5b+wRy~q`FRmG>xv$Z`7)_OZt)S^hupk5RPDu{v?Y1A=Qz|9r9T5`vvM?BE87kco0Z7RKJ>L#nJ0iTz zU+S#@dTbqi)-n1354K@EFk^@ zlqPY&HTJ{0to8TKZ=zv-C}kI@ygYrW?3M5uAcpC&W5b0Ju?3rVZ%<`Kj8%juUJ6b9 zbeIxaJ)}qWMv8?qX7+eFPMstC`a-h{n9T9}3T=97hO6RBTPQ5nRQUzc4-sF_3#Ly3o9+xD z3k;EdQ_+ z(n{e70gI*}+#VkN5{MY9&4uC_;>#6IF5|xYl;F$i~*JD@LiGn zcTNMVLuq7pMes%WZimGKmRdhZb|d;%-p-NJ<@&b3s@tSMwZvDbJQdKDKQjt4GUOB8 zgAW#fzlTg(B3SFVA4?z2*Z;S8F5oMq9s8jkL@>fKdNsZs5lX{|Z7fnq?Gue)){hpr z$?25{BzFRR@Sf`xcmsFwfZ9mtG48LZoR}!-R~*=<<9J@dm``Ac#bV+;)It6v-9c&v z1Y80LvBjZ&smL4qWY8c)Hcz=P(CIZ`u1?7ib?PfmT5vc@zZWrZ^#=lS!Nq!HSl3V0 zDSTN5WN}PCY45_nRng8(i`M~XgQrdZh#fz=Ojv0(cFaIbbel9Qs|ciBU&^Da5E~S- zJ�=6z`yXigR^I^|vX4&xC$5Ip@ALcA3eO9DugGJITAs&z#t}@?0_B(%) zr!-CUv-Nqa87E$}{2b&vg!225V2k8o7!Bv`l5(N0XN22ywmgM+q4X1d{*@5N( z_sVH-%HKmn&X1m;6$X@&o_4y2B443w5^2hVUp1hI_+MtPj^`ydJS6$|J-tpYP}Uu& z`kv3FooaWmQfiSxGL}7ZpAkt9WD86<=}b6+@Ho_?Eud84qk?X7r~J0n6piBIQh~V$ zznC7_rP29}_8Cj-BneZ+Gs1Jp;0DoQWebfBdz_?DLkWUMp$Y{~s3 zHyj#-1#H9>k1KCrr~bZZ^DVyhL}&qT0Fligoq;}x`k_S)yH3e#bs~KFSSo{c;-wmP z6=I`Waz%L)^hP7tg+7>M+6OGjT!%G*a_JDBhT78Fby=L&JVKyui0FU#%_xiV%P~4a zHoF(YZ&hsktUNJ{Bu}Pq3|m}Tj)LSTweqaMu4oaV*g*_BpeQS>Lxg>~XptqoLbb^n zyXPD{3*l&>F9!c1isSN_m^Y}n`4meA#;Ocm$RutE^o){IF$NiITV6KSx_IoR(oDK< z<&n4#amZAcfg4$?;@e#r_a024A|~x@Ppd#Sw<&b_1s#@zOFDw*84N1 zOn`jbbma#Bc16{x3L~p!1GDgb38Z{>mV!gzwAFnY`a>3!jR_n5#E~?QH&YgZWQ1`1 zLHbh?sE{ln7eJy)Zf7K_$!zEs5=BT$>P zFU)dR@TemRM0T$e`*HDOX}!9%iiJ_@5p;T?`+FjSk^lyD-^7DWYj5#uYaKjJnS`^; z@yf--^W0gDxy9ugR$DNy&7#9xwj|3b*HjlJzAtc|XzlS}CTq&5DJ54TU@iWqm+#i~ zk8^e>sgN1I%5<83{`1t3dYpkko}wm#UaUW**1K2i^06bWJ%me(fj1mP(l%~Ck3cs& z@A;R+Zpqu^t;lG-YQ*u=)Lo+zus(!I;TtRxr2fmO6mBKs!ml||(;mNrN5Bi}b!UGY zN!z|QW06jMemXE;bz_$|%ZSV0&u5#kHt)`&)4SjZFKR>ZV8^}PKmP2QIz?soXk*25 zSpReyM8RkxpqF|nM==2-Aljh&rV4r`DPuf>0DG#>Fk;b|TP@n;yZHhh%xE1+b_8MO zVxcvXG=bv)ZiVIm?gZBc1_=BPmJ#@UrDr+h`)Ft^offJ?ooz)QFi>VKn}XV2DE4J;Ax3^hIWZ7BLTuq=q;d$y>v~J*(jn@qfT$ z^%uaCh%|?lYpSDLh=av@lVO~p$t$lZtmC+{P!(kbDGceec9*w5R6 zM?PM-O=Q9R#}QR(bpGxj*-={zifG7FD};<1zCUGCu&91j;;oP&t1CA&V#zERG=u## zSlLw@0$DZP zeDu*FDxG?dXP&P|bmiL{k`1?~>>A|1Vz*nt2nN)o(->=oM-(TO$D$AEq2zyQ!4V;R zlWt?_6yBle7QRH$Cq0 z)7mp@DFm%286kK8%GWOKgI_SjlOMx+ldNx%3~LyfNHwQxa32Xm`3~y5^t)YY2avIN5na`m{dIDC9_YOR2W!*+p}mg1z&{^+yh} z<@qf+@@CPr(Px*Am=Xr+OoAnESlEkQkCD9E&H*LOf#SDUizQ?UjEg1rN8?44v!7~_ zo_yG_a8&1@vSDMrjEh1&v+oz!c$`eq!MX9&9ARi%bjjnaJnCGn7dc zuO`lmZ-izrJHyN2%%9_iQfFDTw6H3*2mbbS;9ZeC$Pd-3V49C54+&xL&m^zYcPI=6 z9N3^Djk4`8P*F#-3{7a7(M1Gtnr)=|X%uG>@Bp3gnav({kWcmqj+!dVWbbo0kTs7J-PNvyU|q~*X?A)Q z)ihEjs&4uzz{PWh7%Bw&lIR+GcQyJA>$D_E=g~Kp3-0FXu4B90 zE2w&}vvBt{WZf9eJg$^m)anH8SC|W#=t&lIqGT2QmHn*wiw$K+x*5^jcs0R} z_fS&_J$U$Ha*zJZb9+KHpr;;=SivNlkr6Lw_@Mt`yu4VK0tqO0V0@igJ4YsYS!00o zB0TVk;JDDhw!3bm`;0@l4up$8INO4nB4RTttcpCsW+pKfbQl-EKC@!XSX7BXkO0l3 z>~}XJE>A%$U@g(IbceSoN18Fe&Cb6 z{>VW=Ab)~sw=&hUC}y)1?b(XWo~Q|L3=W!UrA$;4vhJ8~?>_sI+x|QTF};+d>)pM~ zcEU!9zHN$mksjf&P2tZdl#uZgQ;_!UVQY0dS?@CUfcaJlB8+?c-UQLW+QQ3W-0m+d2)j5-5gQUxTx&u%yMD2 z8P1%sm$0%25}R^#BiLMlSDD;Cnw%s9`k7<^Hd#uV)G9jfM4)xEgBnhhB52CT-G)t= zoBZe@FfWtpX3j7$^_jSB67J9{eOCtQ5F;ZQi#+khW2G`tWYel^~j-q!xaflu+W%D>b2;?rQ2&sTjcJi|()sR#y`2AyRFa zjyoi2>z$^(h;2JTh`yFqU{n)Q;C&O4rjS}hBC5FNmT!Ke-%KaC77)_F9kM=)-%ahb;I)(RGW4#;ECVJhU_ETdkS59(D7VyU9s( zqP5HiEg@x3S9L$6w-_}3pKr7;R9%^6Tr z$Q%RIr4MuBPH5ypt%D^Z)69ZiFPxcs;#$q17o+^nthzA&noTV@&X*K`%k{FGdosWmzpCU zeP7SBh7$@6O6hJw;_&P9vcwOxwFXY3Jg0k|@_-^Qt4;&s9+zCqa12-Gr;bl4meaoo z6IBwf2SG)R(oxx@#+f(Qt3E6(MRhkZbkXQeXsl`a-&R#kW&m^_5G?c}H7m?5d{v5^ z*1zNJ$}ZAmcAM;dBX4xAYU1Ff1IENQcS?lvj};CzVjyDI1b;^FCj?T}SXs-~<72LT zHUljfdIrrVos|#yaqX&FM0zbXxU7?xpGWbZQnyo29i?MaZnd1aaPzsg(B2EoW!mex zp3!RD1Y-;EZIAk9Z`i|%*7vGOT;IsG|^~ly!1!vnWNftHIdP5@d@puXVs7>$k-akju);c7P z%^@#epYa!$(@@cFPFE!*g}~~&cSBB4Om675Tkj>zMwmhhkRa-loe68!NUav$;Le%^ z`<{Fu4UBsHW^`Xoamqj-%@oD=->1b6E6j4-Vek>3jodiIhA(Ytl`0!)6vPvXjd9P? zd9YM%!ZWV=WgkrFwA^C2}wsU&{B~6(hd!iw3CR0@dLrEVZQ-%>}<5Pav)}`bZDKA-bWCME?+b> zLf!O3sY3Y1d+oiAr`Nkg>GtRnYE|p~otOVjxtQVU<{O;+FxbCSY@nz z*@;AY)MXO+aG)}!d;*&9@-h zhofeJ2uQZls2p$*#}1Zlp22nb7$$_vm*QugiLM7Y{TCw!F|2h43CxccC(PWc0l~+X zM)_62{;&mD>+~Lb+id^X9B+$Hb=`Zof2Q~k$iQ>^?cVz$f*jsE>tNhXXuV9k@5i>` z`*UMI(JJk7$`LB-3N7c-5h|cgZ7QaDENE7}jX6T%JI+2T=fV*xdz~6%Wb+ubK}BZe zWJ8UV&>VB2^kbmfetRBZx|aHGa#<=o`-?D)-xrDEfcezONPNqiNXuqcwG~F(fl z(8o*vH(4{&=CLG)hQsEuG!{I26RapM@&+Y1oIX^}iYam@IEl>FG@6Q=$4^v9CWsOb z6tX=NIMFCmvc{A2M5H{max*7`%@J8zbbCUXm$V$}0+v-T0f+7ZoB36m+S~Q$HDfD1 z?Uck_-TMch*s#uWUG;pO?;%2W*Fq9Ne}uinmUX*Y+9M_IMq_im7 zfdn^<%BkAe>yozE6%K@`PN93l_7?L9CefGYE^L86xz(Zr{DNcplZbQ20iSJ3K#8mN zaEC|1)x27M*(?4<^GQq{)G3Nw5~Sl&Pkj3C#xj-7+(Np5?lyVEIS5x_g2WUM0^=kE* z77J{Omah>a2e?0Zet5?i&0F^3`arCK@YnySZGh@^tid2>HC0>OA&kJrH`dx#yg32> zzJj^3h(=d!a@+fx&Dt4+lKBB3&aw`>&?>?X{`{z_jap6KE~5$t*#M+SctEHsn_Gv4 zDi(j5573~lzT9j_%G%)1vr;-P$36_LxD2e9KSYiJ} z3I6=@r3f!6M$7Hn1|?h3!6$_HwoF#^On1x;n!04CBsASKe^^-D$dW6Sut>ROc0le^ z&uz>@+d-YzHE?B7lEktOG_a8{!zAhU#lW7@K-p;Et=->;tUh@_4uvmeVaME|H-W69 zr}=3B%%#>qjy!LKZ<{Lw#p4e#eaZU5#`8PX7UdH^`kk|J{?=|1LB(^E4bgl@2X`(F z3QrDAjgtTcLsmY9Z9doY&|r-HpUsvh;V4i%XE}X5o454P#uvY8kP)ZpnMfVJs1i?n z{)P)1l2xr6;M()jg~!dv4bgsM3Obdq7i)8r|LK-{5Vcv?F(;g9hVra&ZYM7Mq>mk@ zB?ZF{TmH=$zqoP7(4vddH6npbG|la)2SpJ-)l!h~da_f*DaWrl23n?W+v{0nyh4AX1o%5_=7jg7djhh5tA%9?J0YHSR-o8t*Y* z*0f!<_HpWTF6H*;bYm2zy^`T!A3|q^A6cS_1XjnNA(8kcL0(oJvMZnXpf=nCLPo=h z23g#OHY%5g(mso!@&`abJA+X8TU_lOv%UZh!fq#IExulUt!(#gqx8jxZ$;mI-3Vib z46n83ABy+hYD;;*d~s7z9->L^c)wsD?y|70IVu+GiDa~XD6hj0TpBS&t6KKKNF|!c zy)w$TX<|jg1YK*R>ADG7V#Dg3%Zfi(+vA*ONQze~$f{9K=&9|Mj5`rGiqBBFJ#Gla zUb)>mUp~<<)iZ6QJ3mE1hFnmXK=>9i?>gna+Q34|j$0Yx&N}6NC+_JwXHRq;Rd4y! zg*pr|IY@Gbq`l+-CADrH(c}C@1Cq$^m{1*kYT4~&2sHU7N%Z9p{R=F-|3z3Ua(pQ7 zdWrpe)6?{3H{#2@8EKMysI9ffuGu3k}R7E z(ASNuN*6kdky`mCYFCB7UdLmhXfdZp$Ai@yD%0s+P#W%pM);L{5pj%i3ea#l!?wd9 zZiH<6JLu0^1rKuj_~_FxGhzY^q{Wz5W6R*iTtW3#VksBjbA?Gq6^sBC)BH-oWZafk z>o+mB;Q68zS*LQioHmF|oZ`PRr=s!}V-3`DtJD@kzUPWA!848!;TZ17$Y=^%?J46l ztqOhn12cbaPT8g*eUS!CV*oEX;q{!-V7qZ`X37qJ;G>_eb8Qh%5-hBS0}d33^Ha8a*=OpjlR zO?vT2Ful*T#i!S5>g=x6D(KU4%y(tyc6RrOvum>QaL?q&*RJur3(fzkK76b<^Y%OA zY?B-kNg})p9&3%k%tsd)wni~XKUFom!_R=NTKAVi+?kE&cO<9Pdcl#ml z$dSK(fsgIWJFmMt+o)mi%t$VVP8U_5@Y`+ZZL4uP?c0q3`g~Zf06cZ(5%GGagZ!k# za@j>5!%wcG3Zp;XDz^4-2DsKL_lJD$!N%Iw3iT(v&kT*H-{+>h3KGMsA`GDgGHA^XOwVN>ZvQN)dT;(%Fb4N|pZWC|dpCu%JA?Vg zmn_)w?Dlk$gfRVSeEfhijZEO>iBW?qG0>H_0(sR89yE9tY&`}(VGLj(nrRR9-;~}W*Sys;S9U&-TTEff~`Q~ zhO40s&HS*zrzd>QyC$YaeqhGm^XaxHE9$v~3DqrP`H&#l`*<)!%>VtjvvbIwxlL)o zTR%AILYS_#Ab^2IqNNObkK5($lGA>S)*C7FAHhg#Lz-=pD+yc%W?A84-vJ; zCfnbk8q+oOov%l=y8=lGyKf&i(C*NNW8$Y$b+FTpmc`CnH1!j71x8!Q|Li!&F@Uxi zO`ue)R=}U72j0Xb94c0vqYf{9B!+y(7GDz%G&oeBB8W!4H?Y&HxxLqk`_GT9E?SH0 zdPCrTm;3QJ3F_*2w;K+D{B80hnGzNim@4?{GJU4HSbh*+-Ew49jXEq(30J@5tJx{8 zzV`ko2(U+X-H}ZP8$%st6lvxvZ*8?}fhFc1zA)pSGAYZMxtrGWe7@}+33&uL?JxDx z)H*}%kuGli9=Onk=2}o1?>ywXpLfX~l|o;bzCVbV`#SxC|ML8f14~AS^Ve9_-xC;r z%>;f7Sh2IG?1Y0e2Q(A3G!uY-u>ogK@ymv!2C;E)a{sS!4Q-hi{5I5&@5oLZ!CD@D zz#_on`PLlKAV)VxZBSO=U2fj}RIes~6-$mcc!rtMD^x5{RCIeJROv_(`v72mT-+a3 zsd)X_@NDsZy1pL&>uAZG~-!e{{a| zq#j+OUDii}gJkiCxaM#=TRNWM`;W%yr#g0~8LM1~`>d~bmxe#PEUI7owSsOs z9HiSP!E@Z#hDACz_;LF{c9eb~;?F@HpGD{bK>pi$x?G&RzXnUA3TlM|@Sx#r^(EDc zHc&M)IdwVux1@?STfNKGdI4vJVc#~pf>_SpnSV3zp%lbL3Qxp7dJ%piF=|~#l?wt1oG3R|%Cc#HM(*Gko zA{ijVXvaJp)2|sO64{T>U^il%+q-~hMn-?^l?#r(v9IqJX^wv(>H@tL_M(k#ZsvHk zHy?2Y&;bpd>PS~#TR&`>QF*gr&UK1QSYmT*o%O-h;N8a-Q@*epl1$=R%2C%``IySu zEs_MVp9j)Cgnf+%P2lIm9q}Nk&za4hP|SRFE-(KqrPN?AIrng!;=zRG|6*UpWljPC z*9SO-CCklKOJ}e{P>udVpB2gh8i{_r(W<_ygRm6{|#8rRjK!WV{20=Z%a7Oyrx z9_C}V3wH&}rlLGjlzIPaq^*5w?BmmoOjFF!xrO9p=i(6$h^X9M-6aB((@@Rxg5*o~ zY_1xAX>Svcc8UM5l&JRdcR+Ym_uJ3I9309Gtak&uk!8|KGeo*=k^Vn3m;CH6g2BN* zG82Q!mV8+Q=w`zF;uD7rjp|nXzQG=B2Zeld-X~k+(8Dt%^Jb)Il4{|-;7;t8gsg!` z2>PZ9f7WZg10qzFy=;(b_*C2^w%}IlYLF|bqF7*lF63hh20)4gm+K=w?`g-VPKU!G z95Ryl*0~pFwD}$7WkVBbGeW6{f_aZK&2X*2S1TTrH-7)wrK;@r z(@_EH(>&r?F+GGR9P^CCN-!~r;a5dz@hh~`uQ1|K^`PA?3Vo9HFNXeku_*J18l?H@ ztffJkb+%Y#7Qb-H@vKv8%54Yu>hRfB*lBu|Zy<>&jh^Swbd-Q1kjRcO`4nF)O{0z2 z>rkF5l_c3_K=6q6Sm{JXB4!wfhN^ZH6}v`JjMKBTGtd5Aj%nc1Lm&6CS+vlCp@-{T zHJdC^x5{zup1l%R!Q5(&}6@x0;o0Y&z5D%pIZz=Dmq=y+bgpjLp z_tjk8Hpz5O-H@@p1wB&J11yC)A}awhGl2U{@=(oPmp{EMu3bSICxLYp$ONgFpScQ~ zS5}s3u(`pOV+g+M?T`I*-hsQCW$iZ1d5dB~e-Dp*=I>77IkRo`i6M_{>&qF4Xpf!t z$^s!@ptjtuT0;bwV7;u{ujbal5T%}ib*eGXu4F^Z69i4}NTni^LG(XK?C7zfiU~7| zKqg0tMu16n!S$e#XzedUE24qLQ`5B$)%j1Ld;Rni8(nVoOx8=Eka$$KGLb{D5Wx;e zThN21N{m+UAC#D}4K4ZTz_T^@!?=VuF z*>MhW%53&c)(1L)!x5&tZPfSmLNFPGy>k+NbCnjasyfzXg7+UyScrz(JJ`pn^FOe>p@< z*$f&)Og4(r{2o$-CiI{>w7JjE+Gbx{C2G{Ru>)_TXU){Q)o5jh#?vzs0PMlKQuD#w zE++7vj~{2pF{xz4{6SEyN}Ja=8*c$(9v_`4n#SWphIb1u!04FQZHGw{BZ=~4wfpJk zyJ$*1{;4=oD7@s&(AX(6Q zeBBtmWFye;4cGFd8d?t(}^X#9RxH`M9(4m zoHMLj#Fu$-Jo-_`AT#BH&2MX!xxH22@OjtCCi5?8Q|1?>-7wRTC&YN0Rmr@4s^wBjOw|KO^R1m$8O4LNgRXDWUWnMU^|RurAh1oXrg&)l{A5D z5Nh0`g{^{HURvD~QHbee$h>hG7sxTBiAVgt2SNCWwf!v- zNOlL>YHOo}@0h!q5^#q9aZ`^{G>+n}Jz5Q$sIu$2o%Yv?9E^z+qfGORLr66NE53qC zwCh<2toMu4${Fd6iZCDbMDUt&2rjclU9AvU@gVjqX8T_HaeKEL^exRnCJ-lQ$H+~3BdU(&q<(WiXMm?1o1*L~)-{OOIk@$i?dv}MrM-XR zhFNM{hX%s3n{@X8%OP8x!6p5$x+T%1cXaTKC|3J}Y7n*AEh3=_Scv`9LMgqOIJg8` zx7=9^0cA&0#Bqin=vYDPW;xCKvtj{(2>fxRm1c&#Y(L)4)>3eTq(Hr#(2W4l8)23AmpH|zk|kPEpv08}oz|w6Q^V;Dy1etRsb6A>(=0%&8p>Wg zv1(9q0dOALaPSbXa4r8LiSucAA_|z5-{`+~dbMNR0`qj<$I*<@I5`-a@mUVGf9@JPeK3h$p=LQuyroDQAQ@oZ4WuRg zG4A3H=(+yFVgxbsLO1^*8-e+H9eH8T0O{o@HuIpxJi+^8#-+Q4|AO*3NTo=bNjFT^ zqy;8s_8LheT?%E6QFAj!e2vMwt%!tLxGWji{&6+`37D=de~7p~EDQRsAUR9)GD&sM z&NYY2Cl+K9PA5mn?!R4XsepaWzkXr?0&|tz2y!=K>)LkmX!Le2@ey&YEDqf; zrz&7e%nrprwd9*&w-lM(HeT-EMVef#Sq|78Pel|5g8Lj6^S>N4(iN-*s^k>Hv?xR1 zaBxv}JqLgdK&EIfb?ZOfBfhU&ajFxTTi!cAhubz6z>=yvuTKQ%8rYLZ2K$@SdV4j4 zu5(8OlTU;_*Bh^oc|8K|vU&E>04NKzIcIdmW|dEmyNbI8#B3*>FhBn&VstM`jkrzk zC@T2Hq|c}+@Ql}-dJz-ZMjzr2R%;cgk<$v$Q(lWGUby)jg$>v2?_w*BW6zHnDPFw8 zgg;*9FyE(9mrg-&=^tbx?#%02wI2dN>p$uOM*2?3NkcyW=4eULIR>mO@$sdwdByi3 zEoI!(ol2dWr|DD!JhzZGy^3?aI`C|V&qaNamJH2e6>3t94wsg_sLMKsooi#5Coe-n z!U=phk_bOj1!r^>l(-j1O$D9v&&fM{v&Z{ps~Dw=7?;h+(o!VGg51ZTZNJI_%9UYj zfAtq9b-U>?_F$bmVnn#LgL#(6n$z~a zeS!%3_Kta*gW0Oa*BD||s~}2b%CpJ9Ea|4F8S*6sHX=53-{V>1jsKb{f?gCM_0ZS*kl$|-vJ4L_iOeBK|A4c;!-Yf@qa$9I?C zP6zYtyIqRh=XTvUXF}ObHnrn zyB{m88WHOk;({+3m+J?(%qhwqE`ing{fz&4X@>(HBTG^}36UNQPI^@fRvz5z%14i= z6=DvZp*{yekF-y+f-Xy&q3=5Y)j*YF?GYbFaFB=xLi{2E6}1Inef{2_ZAtQ5uT}{; z9-qZ4DhGGsjnYe9=;}KdR6XxkXdj!xc&}ioLp5LA=>gVg8g8%8$h)8egaM+Gd!#eEePiQ9?715vfLtT z0{D|~5Hs40#*&z(V)et%n?bh@uSc}*NM(m4aTwoO*(df*#2X%*BzJ?ASN0hEAk?pM zn1f*RXg)w~cxKB=j=}7xKjcRK6_GsPLs@pXNRX1OwqEkT!BpqW;_QL`;D1zyy1*iS zXAy^cy*rGGLy{=!>+(BIPBGZE{54Fta8f)s3wbNvYG&!BK-z8>HsGe4Y=t&)Yc zD(&Wx78rx|E>M-Y`$AKgY%y%W&-k9l)-m@`^<1M4h%n~-_|96FDwOuS@Fy$HIM&nw zOI~aES$&*rX9Ho4N33K*nGBghu?B7x8 zilA(u^2?N{9qJ(|6#`h&AX=lZaCE6^q=C=OtQBp`2I>I5SMP_>Qkwkd zhm(CH6d1>&qD6b(gL$x>RA90cQSXz0Kns0|#6zBDc6i+(PZdEFdopheV(PwnZj7O@ z@Qh03{nad`)0p$CzkKc;g8H9DKw>P(FsSpp?I3ndCbJ9F&>IgDnEgFt#zR82da$Sv z-F^zV>tZs=N=O<%KV)bdGm6RmO!;1<_N6L9d;}29CuU~H%PE@sOpS?1cn~@ZJfbui znlNHI?IF`&7J-$dVPu6`Z+6Q(cZL>`VQt&U-d_&ZkxDHLQa24u0<8+i$WSbj1(bcn z;@_2aQwx##$&-7h1HOYiuuDooxOq<=Nt5|FOPNy|EL9G>a{M}TM@cmannq?QU|Xy< zxNxpmXA?$V)*ebFT~$_j501uN(QG|-(}J4TA*-i%^QJR$=y1v zPl_Qs(Y>37%@;-0E91bUTqJ|Lwt~Gnf?-0#R!$qcZsxb3s+!S_w1V+ z3*Uhjoj=o5dTu2So!QWWiHXupCm&(H+?=D)NR-T|@q82y%GL<{_)m?9KoJ#mVrH7U zI1)*kTKnG8F14EQv=mjF%@K+pQqI|{tGdKw{NrkHtSz@LcV-4r6z_6XR-kYqKLuV{ z^4l&NQ)|Eaq|OO+$#1yQH|uK&dH1*HmD^c&9St^ImcZt$yF2uJ2vc&$ttM+dhE$Wa z+LKM&8sxt0V{pf%C>T`^XoN}C#7hpj-Yz*|biCxR1wRcz?C?5Le$GE|*L9%pt*jQp z*{bQ#<=Sd}WGvuio)9&MI6#*Z))zBX)=U~wzapkt&(iAn!I;a~8%5!&B_Q}T& zNI*1Z78S{}J6|%cB8;-mFC;emIB-rviiPX?4fVPB9Ezl=1K%tW!t#62%_C{n^`!a9 zx*I8OhezZLJk@upCSQ8J?_qvTPNW^6;G$>-x|@C_f$m$0%4YeQpbrvnKgy&D7)-eH z?2O|j#1yiu@nfcT1S6ZV!InR59*mNDYZ&#S{FyT|rnb_SH%(brEpyqAfSgfk2w!ej z8D!Jgow{4ZTBori;rQn`B{Xa?-lniKPm(ioU7izeZHT*W*HV2&{-_kkYfJvcjns4L zkXBC5Jv6R?fg45EdK@HlDAMZd=8S;)N6r#+R;`HTd+2omW}7R|HW)cXLLi=66Yuoo z%8hghW5stpn0z`p6mO|aH52EyUGd9ulv4G(mU%7J!cuXr%Nn)2C5!#S`_y;~N?@)8 zf;bw}!Wd#jX7V@vBvrb8tzESQd6O^Wio~*GNtvp`Vv_jon2A2jdB?<2d=&ILD*Hnh9fZ@?l6~4E6BLn~9_PWh$YB3@Iju zFs-;7D2H~kDk7vm?h@X!pC;!CDB)ubtxkg|GnFw>AL7Qnj8wZFYokRe0kEgFOxt1> zRP2^oolYSz*h?Tx(Ib4%;)JMz0k687FEAPmq+QCimcIzg1L*xvo2_9e+sdo`Q|d{* zFqGJ&8V53Ukn*7lI)-|l!{mer3xu`2(==^ssIlIAt_z5vS~rQ;mlBOFN>jxiEY>Nr zCrhdGgHiMEB@_$9UJEgUXAlsg+GEsIhr;NS;lN`Cl4U_|yDF1)42%)b3^N#3_Ksrf zs`|VkuvTUPBYbhSSvKG1VSjn7}d>Q^;!^@L+N~9!d zRjr|k3&D*UNwFAQ=?3#JQVy3P(yDDK4*M@;l)oo&*ZQ{N_57KhzsZbK0x94M8j);l zo@=Z6y3jyYd@)qT191WfQOPnSGhF6u@Z+22aA65C$o9YDg&<1S9@?5o$wZAZW~v<1 zfVHx?hpZ`U&EDa(j5{za=d2u%dt0)vrAh;v9k1y2CNv~t`OCbvD3d&wX6 zY~2D%9iG~#Pwm;nK}(Obf9lc1-KeBBr|~tVk?lcHiqIWVj-QM>1L&+wZl^}@$?(VE z&SA_}05&47Y~fqAn>J{{V@1tX`_{oeoJu`E!FREqVld+$mBy+63{|c?*aiwr$Wc|` zbNEwNsg@IVaVFGF`5OIsNpezMv{fo@x>rrE_@NDcUP>nX=R`h4iVYBJK-2tGG$6E(70~nhgdx>b_m0LIgTk7ZlNG7mbAcOie}#dgMN> z7|Fl{9cdIEUM!sHtqqRl*?6V__q4mh11Ah$qvY6{h{YP3B#GMekXGehyTMl3wew4Z zKM1Y?hl%}oJiHY;z?Ig>1-|m^sbwIjT`{``y;WM7vQ|#3cbJ1Ed6MV*nz(Z8FMTf+ zp>H)~l(UmdJMutSNn`VY3asA*#y#N~;?-GgTT5tX^wnQ0M`%d7mgY}99uwE>_kcIy2~i>faz5SI##SYSmZy2docMF<9)BG9<$%0EmG)=VI=cUYps)rV6IH!loKt%lwYZi1IarhLh~2))P*IXhHIKbXX@5l@5)qa7#km`GgxNOJBD`^(mXK z8xT8DUhe<@(RPl{y+mQQj&0kv?VJfy#kXE%6>n*ZzQ6#B5D>Y1@#vAPBkTZ2a zM<#$$GP*5+l9MT5->PTj0+50t&)k~wT3k3(K?!uDi7=OJ&|J0M%tI6L7xYZ9qhKro z5}SgqyPC-^j)8Cgrl$${ojG9Ax1*5AD5+f;?Vt0oYsSb{s32 zzXQ#^(c@a`3))Hx-u)7e^8K@=-P^X=0gqpcksXJ+4DmL-Wf-Qw2k_mh8zz^h>L8`` z{CoRMFK{M;n))MaGlSQue)t)COJBBri;r@rWQiLVK=ExGzF9Dv%&u3qZ6UPtDxptW zwj~|U75d(zcc#aS1GT|N^rY*PO59_0HI4DIBejy8-Q-MlwaZ+E0fuOc zeB{QOPt3Ht$-k+dZP5{^o^WYppNGuD1;;!YKHW>?A4+H5om7rf_5apWkA5VOa#Q*q zE*jc7uLvX84^ji~$MzS8@XD{ukSl_&aQ+Hn8oP(ts{w{HciO2PMJYv`)`6y_TZD@&P_De9{~W0 z=YHir0?H_eP4h!b6=T{ILXn_o!;)vb{V>Y3ZuM#B@v#q!mk59Z4u1JHptvA)1bO+b z(+ugusI)&5;UYsyNPaOUd?e=|(Bm*+_p;31rPh11x8VMBd35eI98$VsJGrxfigz$T z|CIe*tZ;Cp)Ny~&>pLLiCAR1b(H9M~=|7j$JYbyc%-pH)f*@o7TLVFZ4rAk46NA#mqq}uN#&56Q>vX1r zKJwaB!1wex;CuKmcZLC?Y)3p6|5ta9^+O=w>z*<7w7>iN>+W3tN5PUoSEU5SOE3EJ)wO3yjY9dzR zH`E{pNcXv*e%JT)`1o>+%!mB&7Pg77=5Lf&T!oM*Uh;7OI?0OSuH2GMHQNW1^vv-0$I`?rdYrY_P#T&-%u*G zA8#k^4Sp~H(F(z3sDwlG#~Zn4;Qvr6i@m~s!_sdl$u9^!Z~7z9)VE-5CSIJ(_48I# zW9^mCK1msu*e`&4M!l@T5Sm- zh=~T|!~mCl0*q;ZLaw5YxTaRofn3u+xfZ^L666A4xE{52T7-Qqs25n04@}GyE$|#+ z3)6)dI?Mso$MVG{U&hrZq#t-_fZO9A3_Hy6VqsP@N%U80M>-WKVFgUL9O-B!Br(mQ z*#J`8u`LxSc!h(5jxd1lYV;1%2DG(fF1S=;?4v_p5n#?BsUZKL%m!9 zgax|7)BwX|ERx9I*5e{JFB${^*-aYOjSY!{3hLjA88rJ01tfL6oRAtb5CMcBCd|zK zuRak&xdjP-cI6u&C;_wqN?>^`aECZ1AX6rQua!UB02fVW93&gF1uT9Pe3)=KgyiD~ z*awV?Q8*lLuox@~+eS!0O>_2$7Bt^712?I9>1xPL+jH2Wo z4sb7IP`zL5RHPyqj;JU?Pkye|Lhv^;ie`#Dmb&%K$7K{J{qrcVMFG%LLcoBVRf_u z@nH2Bl4V5n>oT4CV{GiPylGIC=#qk{O)$(0j*uy~gll)iuu(hay+%kxqk8lJfVeO= z8JAv{2qDR76#@+Zj4w;tqUC{r;$klv5_ecd!O#itmW@^`^EO3K-<&eCz}ymahtjb7 z5vVF@rQ?X=2IOYyk5RW-fT?Crf|nSHH@>6>SU~6A3X!B<1KK|%<+WHk%#WY_kqU7_ z2d__?Z@mq8g*<^UnVY3qn@B-_RBO__oX$L)&IU@o^U91h;pnvzy2|y$<2z;qcwqGO zMUJ20_NNaDXFCyhrob{2q%iQ145RH!!Bys24teqx2WFbR-aM2m0F~Ze+0%~^%yhZ2 zon5mQ_GJb--N{Ue_7HkO9P=Z|a?d%UO~p{M#tBU&NOEu#6h-N7eIsi?wAQ*56-MP8 z)O*t>%U#yqxc&nl=OuH z+^&Lmm?nP5@rbA+IM&FBac^v}EY#ee62i8ql5mQwVzm5Cj(IVqQzo|9b+w~d%@(ywKuwEGN+*6Wlks-mamkOe}n7|zL0oRfTk z{G@QuUaI^cOAHjVyuv(-ZRX!fwrKy9HMl$1r!}Ck!^rgk%6dtauU|Sf1AFQ>9OtJxjrJnO{p?4^~KZ^?j0L(6?GLFPJUgp?kfEaK7T-ZJT-fi9|WUFgXkN zqa=+*L$TJo1%U?DbA|G0yT~);NLVIO2oIBP`e_iP>s)_MIu8GdB8GK2pXSFy`SA&sMA3*F^q0z>2F5IxrzC%CU10Ctukw3V0eV{ zX|2A>92@_@au_ohPr^+zctbV`i9|mR0xCFbAzji2){xkSAxN!9}$F$`L#c%SN40e*^O-~%4<=C&;q)FXZL&t~_m8}NLXSug!sHVkNQN`;dFg$&~2zxi3 zl&>9wyG_i-)a<5zCCh8-k^&k- z=KxrycM!cG-k+JV4kY{zKt1(aL&FZrXreR#5!=U_poN4MRTeY$RM-`I0z!+VwGv-; z3eOAYPnQ#ULUsM?ypZ`i%=dkat$m9K)$?4WqM$+FyGV6El-3rdO^2*V0JTcbN1csT z32SKpZvJPCm&xS`gz6)KNcPu7aIzg%h+5PG?V$G5nqe8LpX8Dw<(O;Vqf)2fJFT*b?CnzO&1caj`bb9am$AORGzl zQ5b=X`twcnJ_sd&5BB2{K=~nJ1j%YK!Uj>tm72ZPP3g${d%w>|&>mCnbY*c4hVv{V z8h&xC+ra(S=s&%YeQI$T-4c(+L>K-Cz8=A?*B;i9K_q+k#^kB*XEuguxCrF4-_>WY z+vhh`qcVeDJke&Wfeu*_1FS@IhXBd`6m~r!a8%nSzvYAEtw-HNz-%7mTAlC{%M7T- zy&*U?Op&uP@LzwoW_lGvZ6B}_p~19_y4@ua%KQbS`oIa4A;|KeRtom}Q=_%w;?3cA z_z376*;!351s-D93;K>mb6z1+ZF1ybw!!8HFPt4X5-xGKF@#TyRH@RA%f+)m+<+3i zO}LaG;;qmkbAnuafbP7nTWC99g6`Lff*i+I!-7q22Lci#+0`{4ei>WK^2j0G5Ct0f zJE&O|E$P*eauI!#vPw?lt4gR~g_%&lrH>PRG$^g-<&p9w^hJ?m)6m=Xa~r=1lM}Oe z)s@~ii84n83>=t0*By4wxwLaz=u+xJW5lb5qtW4{i; z_fwRF-5l{00Q4RbX3kA4qKnfo_FgmN@zP|hTUTthzFZXGL?LAdj##>r1^p~!70PE= zpGI+7{lL`96AJY*+IcmVVN+JQ%KU^Q)da!=goWlcKCKX9M`l6;aFJ_o7N(6QZ zFCT84p?%nyo-*as6lr^RNFd^0=IjXh(g>dSm5LQi06u^+)0<>WUBUWZ6{WdmJ-M0~ zWNyw;PT(tK3(4?hV6wRu6h`NCksl_YjQz7b3^VNrOh?)hRN>dHTr*4{he}%POP8y@ z;v74DyOQ=3yn$UvW)X??V zqUbp{ROBJ+1B1khiGfQM3MDsC^TsdAB=ony0RK}q9!gE@2)hND5ln*aU2B9PJ2qCR zXw}2)yBes9K2c3)GwM+`vR%c=_|hAhi%3e&ek$;ZiYf^OGipw$k_QsLUZ7&3aVZ&< zQy9E)=6prJVry=wz{e%ja%1LW9ZMvUVURh~3`?4|B4EE^j7y%Hj}tp!0B1Y@RnA@~ zU}({r&sscp*d+oN9Pyt}dnE?-sy0T0Rg%Djzjh4l>iNsF z9U^U@?i=#L15HtuyW6%w?gjmn;|hEFvUry(?sfAer6$CwSJ$at=*Ft%LOPXiN?DDQ z1Tw~u@I_ZQg=+n*2Cn8aLV4E>l+)urAjrT6A@bVKS@=6R^3!Z$fBuPe7uN%587SqE zx3>{xy>Gt)>u?m&&rViRUu^M9j<{n{K#WWMW88 zpMN+4Wz#aAT)nN9=Ujm;r*3%>(xy2_jnNfm59;r@UJTza+UE%{la#5w5ARhPfTA__ zGo8Uf!<%9yTz8|I3B4LS!|FWX_n;;DH*fV^sTnA^EDB6JctY2nXR+vx0b>{ttHCoePRQ5? zhXGhvFp0}Izzt)AsYFPDSJ8;H4bd>@i*&0Sj zpVJyGg%&73HGN5lO+mIu4myjRSqW!%v-&dy-qh;=G*b#+%#6UVmqWD!$gV}F@Ii(- zW-QIftYBZ^h@rVbf50(JaD3^+i>gr?&%@=G=v`$AHRXdg52P5UD^3sZr70qVRVSJm zo&b8E)fyzC6U+2W3kv{6mu1ovqGS?EksY}a!T?qDm%#b^r#erT&LY@-@7i$n0_9QE zVU>gc`CjlC_;Ue@4)>rRU;sR{S7zCuWHFB?;o`H}3#PS8?gwoMX^Zzz1T{7z7QKj? zgwKTKL=sC&PKZhOAjNKz%5omrBEVZK&6m`noOR>_Ts^q^4reH%Z?I9Sn@ zI98{Z_Nw394h1*ZPSK?N3$p6gNGcrDhES=qg2 z+10Mc@A|!#+{rC9bK7mtHEs}e#7R9%P+Wg!E4tcOYcgGW?di@GY~8olwK}Obwd<;6 z2v04iqO6Eh0{gM1Wve2x+?SA(3S=!e!1vF3VGib-&A!DmAXp&2dB7pvOS*>oF$JrN z#U8rpa0|s|G2(Pa+o(mZlYAw~Te^n*F~vapjJ~&NLp!k2twGLv|8?bPlN`cL@qpoW z+xxxadRY6eAGvdKdwTL6;sd7xlUS$HnUm|EM@bN5&a+;S!IK|CEK*k>S1l38U8;fd z86&gKgxi|~;8*;+bPe-uDppK04;4XmQuWJ!J}uP%x5U9kT;XV+&IkbA)aP?Z-iPZ> zby(YN@j-u+DW7@-A(1g%ZnfKHGZ9 zz#O=-u6yUWSEjP-;=|)Xu+{5)&-djw*^aTHklYV&AGVt=QkVz%XAdhYG2Y;|=UF-T zEs0%Mb1_SrEZO^6nx#&Y{`q&^Z7~uRJ#Ze?wLDRW5e}x34sJfT6H2r6Z>M7D;=#=P z)!@h&-2QE4SascvYdD56iA|UO?iAt#iS$S&s<={D^Rl8s=cxs*h&n7;qqNgo^QRqP zP_z~BOA5_b7wW#Fa8kjf0LE0v59eAMka4SrIgu{B_UW#}*W`VY1!DTy%XNt}<#{wP zwGdo>&hF;*tW0(R@4*w*sfW(unow~1pb@1!&WOh0yB~~t7=t+F(Dhp_ib4`m6Gx0) zp<2t|hjGKp@)81?pKzz4l_#~ZtRLSkye}Lekh-baT^VSK?lWq$f~lAzAy}?2|fh)UIb(y$E(c88t0fwA{?--v>XMpe9LZ8_?8!0iG)8^7x}7EF@1tDbo~}WD4HE`n zgdU%n+S+P*vlJ@tkoD8r%cDe?ev$ZzM;(?S>RvORrsl8beu*7*1_6;(UJB%4ly#R@ zcj8{myD&hFVX`;fpj=UjGaSwv0^=&vw42{97q6~4?His(hwz`XdLQ@r_yyhH&eOP> zsETt??`B6{xw1Z~?mu6eaAy$98U*eDYB$B3%7tT#yr3uA0bJT|ei7)3b17kN4ix1& z#PqOxeZbv;q1bN1@= zn7Sz=Sf`r^0xah^t;xl?i>Ehu!jaD#;A_`*^_|mCmlSU^Bll1PwcxXPyAK|K;K>=r z)K8MCB`u7iOt8($lF86eOY`|vH`k?$r;g-j`iED!!*@vByw$_Ttow=@D&jl&yPf@` z=rExQdXYx^rM{~(`kq+0OZC_q!>M}JLkka!R*~{NsFb-LEb0E}v<(!=L z=7-z6CNiWOcQ142v{g>=u8}ezBgDF~r$Y?q2-QeCCnU1c5~pgBMYeyim=7LPd!9|l zMta_%7QR?`|EDP%krE>-0J|&)`eq~d-8uc{vib5bl!VrcTyXi8dyJ03a$0c7>USg19kt>4k< z*q}qbLwT@`_YHDbRYcc2)UsD}v)cBE0oXlnlq=v{u0cxEiF5UgEG;{HCG5ZOhG1!PplYwG5PlaqN%n3%4R9-Si@GCgx#p z6S`~9oeqA@#x5K67^@$;68Q9DfI(K=+}&S3zawJ6dO-1>Z@p5|@P2Q_ z&bXJ4ofT*x(jBS=C?RFg(Mg-2{O4h5H(%D*-m~{dkDGz}DzdjwQJ|M;Ul!p|ELCio)LoZ4l5gp|w>GhR;KuIYBXMY^y@|U(B!M)V#?O)ixDs}K4tDjX zF!nkHNm$=OsP)4xe2|2xu4iIFe>6uFw)lFJ0=*7$kOAQKC)7o4S`*Yz%z;X?h*xIBYZvDHxk zUnfcn5DmH-YI20sm*kGF=>mw}25Bs9oJ~Wl)?UHix|rH(-Ci8WE0T&mcG7p9M&W|? ze%qem*PK*s^_&Cm5a>vNGXE{P%lC$$s4`lnm8kfMu0C@k1-n!gnuQEFgz5#QdCj{L zhhQ-)-11jO+KIe>3)cv*f|7`S3lZD^>&;r8K;fJo-cl*X6>}s-6as03()ntA7560 z-{@$NS@4@X9N-Skde&;U=6FX!gs{9le({?!<==J@MJ^w*A_LJva!8X@<|hMY_M9zv!jQ!IWEvTwl}WElcs zv)U0JuVV446t6ZKno+o+!Irc}nA860zMXDFTF-Mdeg5Yydi^c}Kf#@25$-05$&b5X zK?J~i?jfgtc{1)xtzqC9JRD#j_Un0BKjm_eu$#c|?KeaB7v+Rmrw$h;2<5xEKU0T` zH*l%|K;YxyFGjb|7o`l^&3M0>PYPA zHV^GnZO;eq?d}0|6LN9V-VOc>-Zu({;DFKS2p|qlcKV4d?^vg0xd6o+T2+lrr&;-% z&4#P2Zf{8N#t63#Y6#P7;6&c3*)_B*a&w5TPm3lI3IuV|0xrm*B-s^E=mcRn#2U|F z3}f~g_y@mvW5;HrS`B~`uI`0M(h!g|%R~&>iYX$7)p5g>)?Z?Vd+rd`3tI`soQON& zxF3+_zzNN_Z7}r8qyeO-x9&l{6KNv;knD;aB7&*!%Z+6}pQ-LsFEy&#g#s+bdOGR? zb&r!Ay|v=e3`5#MLPa7Y{X#4)oW_o!H_MKDtv&>%9>fE+F9+Zf5e1Vximv__tw0`) z5yS`#aiJXS3l(v(IrOWmn_y%RNC@U6SSErAGp+{ahqp%|GE#jR zGO9_*U(p*`P^JK}`Vl)lcx0!#tH1E+Lcc6oh{L^*BT#=&bP&H~cxt%3kMHVRpl{TD z#tsp6BAERu!1hcF45ju+`^lD9z5!5nbe%{`z&9-I*n#AnnB;NxHf|a0BvW9u;Nn6p z5Ct~nk6nd=RNzPCxluul+EMka&~Py3e}(DVXzWVW zx~6+((!&8JWJ8!8vT?+~h=946qkxyNhJZkEEUd7APqg~645AI;YO)Q30KV2(pcOym zCe|omE!-jaBsgOaOn74-S$N~tG$@6PL zXp~lIo}vxx_cazz9kCBgV2GkOOke;jQHLQ>7{Dq~J(HWeFy3=;)$lWt8)6AcbOM=4MU$s&0-hZ|?{=kKWEc zxR9trWE6*`BaIHw+ZB2b>dPtCFu4z$1GGlUEWy^QU?{AA`&Pi%jey7+6H%D`^~D`{ z6hPXzHCGpfbr+-+W-thB$G)!{26Swd54y!2;652t-pF&p-H6pHT?KkTTF9>#lJ%RJU^T2 zzci#pH}rt{BVdEBNkM%Vq3YT(EJMP%{dp$CpQoZpLa{ZY0d~tew2u75Y`i zwIM2zDVmiGRK?Yg<%?xgL$^nI2_UK4)Ryy0hI(!tW_?n02YT|i8OzhtlW-7B5cCY~ z6PB>7I+o_ClV1i}O6Q0OoU43)#sREpJ*v!+T4b~o#o6wfKA}}-3tdo(JEy+!@)wbv zz0a$dq4k1$WrXxqJdBZBt|pE|^uie4f38U*`&YMRFe2$IpW{4ZL+fM4>+caa$|{Lk ze3K--m_RA7k2wayQ0P(=TS7PJVcH8Qxd(KutA$Ih4vQbM8cvQHIg0kt+yGDAsj<-w z4FS!q4c%6+mp$1)gUegBoK=)Cg+sV)6m^kZ4S%Jtm zpiIqL#q7nft@Gt72Eo8E(yn=D8|jOV@DkLB)jNzgW{WWPnM7%TXCmF4b+~>u+Kz>m zYBDS#Cj2RvbOIqi^gIi60sx5jT+#uWvA^RCmEGtVl}&*V7Oo+m8XJ{=wVDN{S)@A< z5!~aHb|4(kB8-~_t+h!5FdSX{R*3cf84wh&x`u9{a3GN|Y9$JsW)f9~LGZ-^M6f72 zOK>{aZJ%r1fS4W=c9apB#zid{)5be3u*L3QEX6d4T@JiV-JZYPF#u>UVs+}MJ{k5G zNv2;wQPnUy#q`SX6>#BJF~6bG+IP?p@evFyOEg!6+$XBii~Lx zQ88qIk^HCVD}Xz}np7pAV5KTr^G;yS9d$DpX!~sR{C)-#AXXj9f&`RzX@`330trNN zB!?Xc2k8y;cD_m>3V^l;8dnWq?sv;=-~lRA)jD)w4~Id$ zDRUfyD|%7B9igo>r3jyM>8I2XthMgX!JIgJ z+Un6C#+u0m)=mHQ0{g*&vF6zrmEA?*_Abz?uiNIwK9RrU1^9A2&pLe2YK~T)zGdI8 zN|ay!IWO4K_YXkD^80=E%|A5l;S>AWJAJ?(n_JE`J#0&W;Ou}ZD4I3GkKUs?ppDPD z(o{S)dlt7~HPFOeeFOR2K{yz&b1fj9;xT z;G|`L{m9(q4gjan#KS$FN+90zz`d^gdoXgz4;mv$;OMbc1-sl5hS;;>*do(pL`PJ< zD2Hrb?*EDR`->F$k?KvD+{VZDFAQGuG_qs50I!&8#993BODw=7MFdS#6{+IgacMSx zcyTOE&)#+kNe*yIm3KsSZsZAx&Y<@#)tad0!iIv@1R!4So;RLB6Q_eBIyEUtfI(Iq zhgD9JX$ON{+(NUnUtB}#y$tv}bS=ln?Uy82Kf>5Ev zgu^Gdr;1|$3kn+p)rbU{oW_mwN8>LFRN^`0sNehM*OmzMQ6WkX=$>gw>@p(o8F=`rc#hrcse)x4&TsZ3UPGjnOEL2P# z|B?XpavTKIqbMZ_VMR(>U3js)jQxFRpZ6t=!EmZqq%UJM%3YWz4jWNL%PPNu?T1 zDnQzvS$=+cTl-uVu`)R@1K&W|d!eAASmy~9Ez-J;lm79@Tbg7+7p)l>Wtcmb^U~|) zq;FR%gtFEH#c?D}?Krs_30I@hAzU10U%osGE!S;GcorqN7OQ7QTJDoC_8P3UY2wh? zgQ-Q>5na9yrSPVt`EehrWUhK}iCBocGys-lLsxq%1!gqbe}*d6fyZ;sP|9IBX%6Fq zWXsl%owGMiFR|^;TbotPyW3hh2S3N1CBLBT?gr|=naL*UtoWSMvC|raS=y;7oS1Bo7&0rh`ghm-On~*p zW?P(v*-iOuj<&sd>62eOzzfS9yxP*od$qCISC(47oaKITKM@|}nA2{R_My2`&#y7i zsnQrvnQl%kY?%EZ|8(T9{`$10x5K9$_sOosbt?Fl8<+s3e>6nXZ{x7<7O`Gb%!Ct} zd-2QL1009_JC~xrm-V%@7`c)7Z2(=W{-=fZ?|Wrd{*aNWL|NaImuCxTGDTOaSj07c z2Is1-c8@1&whKEhGtN#c*Bs34oa%+zxYp5(20k_Ss}_Y$j8fnVdil^5W3^4@~aCgoa@w-xxFp^7q` z#kn=*A+88p@TZQpB1Ffl9m}&U2UV-Z!;SI4lSoq7l7WpN~n& z;$g!8P6>Ti)xqm$j~~w+?=Q+nuCYzs%_DsqKXMLyiYNr?1Yi4Z!^e0m*4w(OSvkG; zCyvb_xht=#S}7Y9O4nD#Uj$=9)~bJCZ`WW8Eoz*s|JhIB#^M&4y8}GVhVU*t&D6%B zLQQ-kuY+foPi!Wc;Kwz^9pqj9(w2^jv2p}jnlp7~_i}2uWtDfSdsS}eo;Pk*nQ^jS zoDKBsTby;=vmZFyRs4HSnedyhud@*jefDSn{+Y{m4vJbvO-uV$Lu{OGz18N3-&T=+A^?J?O9J1t$0NsaK_6v~ z?uW90oL|r?^I07wN4Q))JeStHdP6;i-Q1S+OFAk~-P5xWQ(Z#UhTh$tCov!y{U)X_ zQ_REGCXXMtd!P6wx@4)2h#JnETlmpO5o25}m_j^qyW zy*AP7KPgq0ssRy=dvKRecWf4}hyuCwe^_+4GTl@?aNW%bW0Xw5?Ij}&+jh#BXqQem z&(IEo*BI*=8VH}KRc*$2OJI-c=)GT6gG5Qo1Z!tJBuLmJhn{+yEN@P^JrTyrMFQl= zyXFPrGJB-DMKYI1-ldWAM=CYPT)fbDs9aNc_q3byjRB#6^Fh86V<9hZ9NoD}j?7N) zrtuLSxLkte)mi&#?5Q?xRAH`V)z2e6dhu&V*sjjpF82$gB%F@@A)iL3DFISPkCwmP z6T75NN340E*X^i0a%5c$6Pnv}m46r_3}4<(II$lybt+jHy#uNTT^C@q_g^>Em~XMC zRXHrOumG0l=k3%}p$CbFM|k-twxz}I5XBE|_xSeTc+1VO*;f`)av_AH=+o$QXA#;< zmNMD4Y^&fH*G=f(^15pt1qtVwlD6$}t7;wP^KHk`_ft7ra(RT6#x{KeuI=ULj8pLX z;dRYy>xpIp6?lZ2Vgvv}ZXzbX`!c*gb&A``Ab_$rn^cZ7Am-jB$9Bdw2h?i>t+L*} zlcSrWK&Ba-<)Lh*8S(~nEzy3P`z-ht%An$@BT7D#Ij77JC!ev5wXOv&uu)vcNtmi= zCHVOTnA`S!o>K3rRy38Dvd)Dq4&uQp0Zo1u8nfgq!@e?8X9^^!PU9W3$a}CcTMW}= z7(lKz)n-*N-Tr1(g{Q>jXa&;U-A6e4-seJV#A=|9b_gy`ZEDkgUgiGAmF-qlkG&g( zO_yl-u>iaxZwyV*Hqo!H*MFN#`p&`*Q$ZA-sqMbyaD+xb8Xz-Vfv1tFInlnx5wS#iO1z=s$cuRX$Th^fN-7qbpr9w;eyWf~*(U zuEB;#IoMWzyo%3l7pQ;rb(P$gbW*hGj^)gffjps~Xtld-M?>ZtPyvtKi@1GJnFBca zHzn5+q+ELZ^a<(Fc363rn(K2bwQ}E;+D<`DOJtJ_x5t0E4!$0NE_Gr|yhhC6K2if% z2`!#h36!bdtbZE{pf2+(4JO9BkL5t&Ns^lQ-f+1m&-4?js*heMPi@^SG+Yx2e$#cr zcC%S)w6-@rc&=jRAT-Yzb{}4bCj(xq87^HFFQY!MZr%lil{mj#7Hl=%GI)V`=@xpa zu4TC=l2|c{+VyC?ws#{!V`bYbX81OCLflvgDd`IoQkI6CJeRjn-*YGxz?d9&}OmvdT|2p>6R7$AyS|P@vWok);=zj<}kpCakb=B0Hgk z4g;d9Ck0s>^$%5oMkDlJhp6~~%A=VSX~hMjv5gP)3FD7^i5)Ue&B z2}$LNXUWD}*lKn7DkSz$U|p}hdI9*)%(XRYKx-Pr+y8 zIzf@A?w?D11OaB4fcRa){-;1{0tmV=$Nc=SUd?bZCDR|x$AARqYne@Q=69l7KM!Ue z`la)mG(pKv(qB#HxkiVwB?32L8idH_q(;8KDq_PPk!ul1)k+Bd=M4dpB|-Utvq%s1 z+wEonrx~Be#Zl+83~1*=?#F08=hWEg(tdOSeZ}07DWwc~lYWMOXcBLBv^12Xnf+Vw zfQ&q1Dd#3YmyH-=Y}KFUT1N52{w;Pd)Zsn(y^;zxQ_@)Rrv9<0DRD*Ez@|St<5y^% zTCFt@Zk=A2M38`hZ$HR~39B1%dOR%hAhSp`o$8kPkK5S(?UZeV4QK^Ry9tmBlikE> zG$;nB3%haa5b7Y{XYe>Y!yHFUgPm6^00Pkfj33a!2Mu}HHzrnvdT9?6(LyC27pQv1 z&r&uK6fO%Lh|5RocZ)TU4>#1VFhBncS)d-W$<3_WD-Dpph)4102GBjNAEt0HxCYEl z$N`uxkRxBZ?PwW|hK4UzhC#SYHM>HE5^Hmuw+GfmPy-t7^`Ba#^)-|&B(SPJ09Ae5 zAn}CeA%@5w_+n6D)=Cs4%_Qm!an!Nnb|eC1A1GGVqo7mIU`n#1pPe}2G%)2Aa1;R+ z9vD<$rz;M_GJ_RvkOpL#0*-(VP`D?D$pG|;3IaaJ0487wdmj@f_!+DKI0s;Ikh4Ch z-5U`IIB~~NNs@3BsBk-b@aE3O47y|Fs!hBDm-(2Pbi5&r|uhVe{R9c0qAU>C^BBYns4(VgKYzx1r64h z-tHTbcKDd<I{C^!C=&V+4 zjKuqP>-Qc54@~(2M*&~`JvUzmIRf<>;($m1_WmMFLv3Yd(bP0i)h&$H zAGo*3hg&u09Xbw~vuw+PA{if74K(&tCC9G8g=iY6!d8p#?qGYpZg(FD#f-^{j%11M4zZnawP zhuWbKoJ75{cx#na5rkq?UQhGpyN$!h!5kvt~$MA+1RBCciB-^~FGR_jnEM zeW;k`+MFKG6C=B}e2Owvtu5CiK)7gKOvaJvwCXszY9onyN-eM=z(CC#%?gnwc&~NE z>mv=a73P?(kYpgxu@IpPf4ju9W&-@hc+1mNP~iGlGjE_&f-;ZMN&&t`e}IV~lECl& zf;qqBT+1=t^rRHAWN1-h{0mkTWhzfTc0q+pt#YVzkg(1myX@nVWU8R&o`!~?GfB}+ zMi36T?juVRVx|Z<JrU$`)-q`ZU%?bz^A~Iu* zj-P138cxUNSY@)dW!a#6UoPoRl!uc3iq#SBl#?4sKz%)h^5Y52joEp=hWc_6bx_!g z>=5z~QCr^WJ)dIt$m3~&0I@{H8_qH4qgsE5kl!t$5T98QCfc{z@gZHA;xyQr;zY7} zfCu|22F7#|_a@kns1I@;05YdIO_1ihn(*e8o0#WMLP+L6#9-=?#aQc$hq5P6a1hg7 zS?pMO?VJps^aj;GfWw=)Arrih@qkviAp@hQ0t^fSFS11aqr{JeYG%2S;8N?{5ttZQ zD6ep#$aAPnz-jj0U<}lZOK^0dr@bT z7&zW(qih^3`$ivTW-Da<6^)V(^%uBCK|jMTA$|FI1Jf}(jOMgh0Kk%&)%^Atzo^4!q3puqDqi~0ybcqUlHP{>&{n6v|EdXNL9 z6KOO9CWehrg+M6)8CZ0A3TVm>P_2F-z+&}pRG$!JrD7Uo4^^3nRKcfxZr;E+>g2!i zn3PrEKq7frfPxfcw<;Akgjt>EK0qGAH9xj0p$7A0)(N&iWp~W51h)FWOeVP1`!^x~ z1;r2>>ir8MsH8#G@K6LA*dD6~At_Zo!kD4>V|yv9hZiXeXu$2tM6q#sToY{*=PCL{ zZOK4@^Blbi03p^a;(~kU!AC3QctND6Q1lOFxEytfuu5b=>%`3 zQiy3ag7TjTtKM|iafd8_OAnV^))=pz%(IUp`sI(`m2<;z^2>+%Z*m3***+;p+7tDM zt-!M}%n;UCYsZg3?C4Vs3|NI4x z`r0f39b-09HU+m;d=nD6pePNjst35_$56{|L>;4XaR7#})rogf2pv+s(f3Ba)_56A zy{ESssP1%Rv~nA^Y~uj-f(ubk8}Nq-YYM^Ie1WF2?e{yb@|xdLPn+@SG|-#}2_rZl z$2X5}#k*YUb2sMdVf8z!T9lLod4b*-{^X zb7M8`-^LJQY@Q|Dk_w5o_5veEnjOG*?>}7(7iQ~Us3SJcLKOCi0Zf@YzmMTqHy9}e zN_Hr|r38|^%R>tpXu|l>l<$kHAXd{W;Rm3tCjt=Slp~xfm}x9k_bT@3Lw1A&D0pG{ zI~UG6O8lFoH6TDiA=QzO3pnB?i>w7u=8`V3lBj(VE&lkU)>4f#!e;}b=mNr0)H_m@Jbm=in6wbC^Di-XzBypQ8RQ! z6jVqNi)NRqoya8BYR*^>A`91#R)@NzERKloFuLB@PJ^Dk6ockx(%Eg+W1*0^lg2v} zI8Jrw3JnTDcFr|ljbdOoGY*Ml`7e4Kdh?Wf>AO@94U}KGx|9vO`E81_rwo{_h*|Qu ziK!n@R-GXI8Jc5q9JAktabN(bU@jDw815yBsjH~G%y`By)aUO~TKHfU?e|UZk8<%0 zHPxdfRxTbJS|42VlmKV1#ZbyRwg&X!P&|exW*ICXfN^po<&<|pXuJ)XY_o7EdEE$~ zzmaHmmF6#+o9(ufF=N zE%)?vPtWP@)8|~*nPujKGDAdNT{QMOb#eio+TzX?zxaV#ZKo&qV@;OmrvrI{5acC8 zCUs{&8pW(LJWr`{!wYgQt?%TfwB38W8u?)5!Nk~T(r|}WTAvFGUQ4>!(6oq@zwdb( z)k`j}2pKI7E|qV-gF?#EnhdiSccKt`>3Oof;8(U zD?S}ZczoMy&RE~9tazd9v-Dn&j4IN!k{a`kCxE=nhTnVEqFEza z%|5EJcA1gM^!8nt;(oMq_d`Ze{~z6K;}}VMl{=z7?vJHqJQ;6BD|4-)ZxFX8M=;;d zWJovleh&Wj{ZSaJd`QaVCBjb+;&E_haYRqjJ@6`2`l`Znk!PRPlG7w|GrS)WzCt4A zy^Z(uqGC?Zua_55rIpBNv6ZM8k|dKjV?%yQgO!2jDqk@pOD9%k=~CrT5L1^7U7J_2 zy7zP`#`m#%+31|c_w_N6iI?0)uZShsPWLoz7`PwHxrj8<7atbCCOY)4T<7|f=G>43 zLX33rO0sK4Q_kSi?yhUrUjA2uMc=whHgHMd2^UU+v1%uzIA@IWX}8p0Ua^F(FZoCw9=`Yu|e_TT6sg4yL)<7XJWhygzbAq zz>{JB{0#UstaHVi5Mwi`>GAvS{iOgIU%FsTdls7$wiK}mk}oE|8PHJwX2|Su+;;O` zgz!&h%bQy|&sa!>)||X=^XS0`kqe*n)Tqbie)~wQVeEUqI+?CeO)Nb{$yxleu+QsI zIXQ}9&NHt6I<(+_f;q}+kgiDhC zuOaSM9XI;6X_g|v_MLEtKEcvYW8>QF&gzgfp1A3FMn+&2pPyuj|#^A-^B4ckr&RRoQmR^VKgM!=8X9d0&4WH7M zrA`vIvaEl?z3elEudDf9du!h7qXAW^c*I)O!id{SP@%u%lWk8k8FswSk+UXPX=&Tz z+4xc+Qh~d#8p8D|3&ZO@UKNYqmzGwZ39J~P^GXP7CoFZA&u7$#(xJ6@Z2!@#U`*0? zbaw2g%H5VIhZj`F{%GYFyxkw7_;7vLso~m@~uU za?wM=o133z#M)So?s(03Xxk^WFNKuiC=rSTXIJHYX0*6_Q|pd~AKeZ)>*}VpeUoq+ zkH6?$>_t~6Bb0QGLsg-1CG3o^*Nm)m`c2uFt=^USLEf!@ESX0XDLiJ~`4_3Xe<&UN-Uea=7+2Xk5ZAr7J(}0bbv0xmR*W zs_8Xfgl_S50vApB(yrt5@43RL_+MW>@$DWS^)Q#@6mrrHk#rU6)$fW!={S;u*Tcn8 zM2WJi6_ydJA!mHgNc9x&Ti7=va^zd9bPe4KFN^Y5G0m;Nk$s;)w~Kn`b+ zNrn@IT4eMD^J#aUO-dqpg`b>Oi4v~!I5i`wd!%e!6)~62K~PuJ`^|dZ%s{wF&oemy z!$*ImdQqFek@l#JW)&wRCct`U6l*OxJxqWGM*YQpcM!_@oe-P(I%cTPets*s`RCKg0M8HaE~Cl*e8Yyub^VCEBsP1Q0jqA<_>nK#JR8s`?TZZ7%<=#6dkhA4Dx z;Rg!FDA&2#DKiSW*+NZIcH&FLZ1uivl?|n)T)L;s`QqJ)=URH2PI=cHCJ{!kvcTf& zia+?LWj1{G{FjPrs~WyvET?#Ge#uVNOnrqqL&`4cv+l4iKJ*Kha_%&fxq|}6Yv{Qk z{}oay{U0%9iHWo$6)sod^4DTMfbn< zIznUj`aom%PDf)w3LiAV3GaVl_P?Fr+C3^vBD61}#rEoDWe@TpB3M|;7ipd710D)u zaQ>RTm4zo-T3X0JL<9|9MB)Y>nFoh@AcY7-aA*k@FVACeAM z@*Bq8qKBui zqm`hOxu=!8ow=jnbvr=|7bjO2XRtv9z3n`053jU)AvhZNV9K7UrIIE}$E8ODjPua}VEr&HuYsJIlS^ z7(~SWLtii?Yb)T8EZ{*uB!j6aNdHP=z{Q-eQ@4qgB6Et^q1!~xU1$5sV z3b3BPb|Yk9cm)k|(~`UY#DIsA*iT9CX@`Sd{E>8ck$r3Wucjg*qW_vS5wOx$uDkvI zkBzY+|DItHjGzTrXiuwy!2|vNw=*%4?0>W5dn$=w4^Fjm_7b$VbF@NV1rDte=&2|E zZ+%1rJ*_-E|6TyJ`5)E7fQ8@7%I_P$2yWMutnF;BgC(%B^V~gcw`*EFPW)f?nkiAN_}|?B?hX?X6|}ImvT*pXW&Phy7Q^69OH%(e zn1AhL9IO|BWTo5pQY1o(V6eca>^TEjS=g)@NmG~}fINvqiiyH+FQWM2pKp*)h{X2% z18CsZ0h}5m6+{N-<|4^Kqr&Q3BnJW^2EScG@)VNgA>$DoVtbPYbiU-G=WJ);VrhjI z+lxj2=m8Jifq3Eb^Uzb6qZ`RvSnv+{6#-BGK=Q)O3y>>(y%!wRC`5ijzzcmq%w2+p zk#Nv3k_>j-LNXOr$#{INo^D} z{8|7y2H&eiUW2`UBKZng>yTF=q__l3If>*heB6i>fZ+I1aOD@{$m1}o8EFZdkAZ8( zHX}bH;2YyWjBG{DAYrCo;Oz5dNOc6NYsWGK%zsnGs-Zgw~-f zxEKLex@-x_1V@Y^*I-5@r~tF%4&Q{pJS+Y}h9Tf{C@{NUCy=^u8w%owb$%l&;Yb3A z55kGz;4_m*CQ`a9#B3L?a30^tybhaBB5Ckv@p&Voqi-+u36zV=e6dNj>d96f5$W}e zp1;wh9dX36^J~7;cYL3I=B(zNZ?g52#@FNQYEKsXTmOhmD!tCLE*eajHMxGXi8~_qj}<6S6rVJG!Sd9m`J0u+bg8f5gA|p9M(ksh|M6}u84-zS zJ$!VDu0Bn~Ocs_e^3p^5?LN5=TyVkmi+8FwdY`NZ{mQy^z9qz5;>t4L@%ozzJLH6T zi2zqrA{%>up0!-dI^%=dlyh@Qq9dtETS?38->=?+>Tzu$Nl6<>3Y8Wy9&1_3nPL~~ z)j{dlu@ITMdkHv~rrJ-wZBre+o??~x?jF(vSVZaxUGHw4swNk{b97Zp+;2X$xz-`N zCEXG;M?0Vrm+}fbCpu@-wf--^+&8wErIpE(MV!o7BoAgsL! zkrpEUAjuFAMi>jb_(F6@VH_N?1*yR<)5sAdK&Cn~NQOfD8RQ@m5*3q&&1aE9g?{tM zPy}A=FD|qZ1?XMuFF*nXNwoN1oB;~*Xz{;5859)I;(OkLLfR#f_9IAkoM@t;4fK@^cX~{zsBthX&1xe8CPz6Z^wB(@*au~Gap$c+XG>DXcHI)-VgFb|%_w|++M(+mp zzXeIO@*0JaJr>Y$(qN{8qZHXwp9yFT<8TtW=?X~Z&83|=CI_~1=fC=tGP3~bRS zE6Afr_$CF!SLg(x=#jAbNpO^66RCrMPcwpzD{TNV!5LSf<8a~@(gBWR1gD>ILLG<2 zw~Dxp0uXPO`B4Z7vj_scdWldN1l$Qk z*hCtlD4ZvTP{603hJe#1gA{<<6#}jBp3piHb`S>QO9}{#DH;pW1LNN_dU`nB7qWnN zW{}4UEvTVI0z5|eU_F3)6h2rE%x>XeIdH&f3Lh9HAdeW~gVn$(gTldT01}1494rPf zA`IrhAV7G-U=9od>>Lc}et$W|@n8ip2O3C%1;iYv0Bitrz@Kg86<>H%7ZN+V8#naf8UrxP0fH!UB+PvUEWNejf5+9MKw{>aRjVq4#Z$FR0|U3xCX@QlDkLC zcEy)xP?`w1z!KtvUkN~NaE%R+R0N?YINlcGg*ODDFu21GA}fqK4ap$jS{HC|&r)}U zAV-Ag-itm96NDiZ1nhhs3``9RDI!Hh|Lp>q;oE0XMTP!2C;|n~m_fw&-Ke=6F85~; zhXIp&kOi>8fyu<|16<%uaKN=-4tSysP87^Mh`N8z1BeZCK`tg3 zJP`~I%Nap|Fz*ep-eX2kI|2!!_rHP(bK#^3*o-FofEY~A?pDHx9t;yB3?^$I#_rZ( z!Jzl4>uw3;Z!ib66_mha9l%eU-D%s!EMSy-BM}HaaA|?JfKC7ly20g7iha1`!He$dvrJWVfOLtUL9E4eJHzE0;BvV zfCB#x2=U=aekC4^gfaQRIp25y6y0;qdpLF9-GyZUomt2rMFdRv2#EXc?L#&=Nka)@ zDa`bSJ_4vKv9}ug>Ypgg@P+t}UOJ4#z@`ra@vdh(48*%G;xG{JdWFM4tPF;^ABcA+ z{vgAJ5r+{~NS@uOk_BHI1CV||64FP)qccFW6j=xfpzb^ncjTdSNO);iOlLw-BH-u+ zurfIhpsz^y_7YgR=jl)%oUjTGzRrLQ!O+&h!Jue}60hYFil(?Vvl%JrOwQ<8%Gwv2 z#8Al1vL5$i`$*`g_)F;9ggb$VR0}nwHNq2;)6V^J z)k*nD7^}W2s9wlW%q4QW$7)_etVBE%b7Y+|FTtC1O5N^E0D7@i%~PE`cjLtmio*Q& zXC)pl$Hw6wABhP3wOI4#6f31|{2#^>^B;va9?HuuBW8tX*&q-Zlpqvup{gi~90A`X0B!ce0Ra&Z_rpQ{uDBl#$VgD93WK8| zHUzBw7|am)T}TN=lA##>d*cf4P6`>^bQU#I_#zexLz*3;xII692;=tr_#uwl^W%p= zZqIWcB01cy=RSmTd!G9c%i$y>3stC4q=a-fc4WHQon7mZW zFSx9>WdRErcBWtDVz!*Qyl|X3N|*S~9q`uz46gB!G&G?t?!nXaUyE>0tOzC}|_3NTU_n&5Ft@=l`vym&G z*6d$poRPiGL@7?jPuq{LwWWTZ8+2r@BRmL}6GXAXrMrQ{a1*)$C(l7#uvr#Lof5cx zkTC~$4&>!sd_d9#zz-7$2WDFWCZ9&qBC*2o1um2}?CJnfz#ya$!qL;fJTK`$0RU_X z?@}@Sy17scjIR)@P9va5fKW6$$c2ZVZsXAxnb+OS`eV#|2L0=Y_!;&e!T<;wcAqfp#Vch{IzSY=6b%c&&_2Ep1@Res2$TUy z1f|0m2*L!gs)LpcAkbm=(el3|2NtvUW6}Mb&PQQjXM2343k&uE2zmEmR#9N~fP~N? zVSOff^iOARoYtXyxTqqpDkw-5zGdr4ek5XoJ(?nHv8t!NT94_fL;d>Q;$7Rd=11=ZYKE=TrODn; zs3eZ3s$>+M@fBbAdLf#*EEoT)kI(f-@9OUyM`7pbZ`)Nz8a%2aZ=Cw&meuvG;ypBL z%XhVlr0ab~m%#$;mL@oB8Da5TIfjJ0N8R;RF`_w)*T+PU0Lt8cRe$2XXZfZx^Rs73 z{EF-(iH$$CqO`q#iWITCbUcueRB&OHlv>n|U8yFVM+8d8X)M}l$P%)iX`=T`j(a<_ zDZgg;Yg~TZnz-b#OulFFm&^^<@>x`SaZ{;>MBZpxqG1@H9n_xnF7ue)&<4Q--Ch5^ zm%tDT0gVpE&j|J9G1`m*D zG*SG8gOZRQ67JUqmJ1LV0&E{$Aa2m3sFCoSizqVqss)O9r*EY*|J1v{XUDcG%<<-vJkNb$ ziRk* zsdPSP0WW*!7=%D2 zRNrjdv+9Io1SM=niZa<{&WaEgcj)m8fyZw`?9$~bZRuKbA z2Xu57tYP!2p_1kAPqAih$<-M8FQtC_X^*(MY(_1vCZR9)P)8Z%_}wTq_bz@BtzKbKt0! zKM(Tvw(E+dYX2Y3lb#)? z1O?kVTS-EX6FxOe3At3$mpMys;b0)&+KQE8a_Bq%lJ`hF`Ny`l)469pX4mp0mf;N} zE>9pXo9ZdJdEmwfRlXdTIHeKW-Ki$@%GXIHl=Iyy2Q}Z(MA4;9y@1n4*+|_^W>F^8 zeSe2^$|1BQ80Vtta%j?N#utm+6*LyAxT^6~ihndf|NcwW_D?qM1rZgo3nD4U1q#9k zWmaOAHlj3}22%qDKQYem`)SDbmvdyC&ihrq!nZyc7!h>5b|7o9Yc?lnN~QPZ)32c` zL{f7-Iwx7rTXT<;Zmy87e2E<0w@q&3o^2Y#Np2`|nB^`c3Sq$w{C`0bmO_vMaYMl3 zA`rUptp|z>fTRs`I6JE#NR4ErBh5$u0tMX>+MiU8mD zPgVq=Y3x5)5s(ML{*x5}=o~8|aqi#}AP<85S5^eI#I(|5w;%na2Ba*}6_sLX{#SK?DALJ>UU z_1Q-!HA}MR9~i2zotQ4<8tPrc+W;>jqiP$(N*DD=QVR5t zIxB2Fj(5ED2tVC_w%$;p7^IcaZ2PruGPuu6#q=)#}g$LhNJhD zPN+P+5p^?&S^30LW05cclOi3hn}Ru$H?tcP_&I2#1oUTgr@x0LyJcl#N4DKG<81p( zafW}p-;CrqUIzRZIN;$-Lc|gJWbgu!s0iH)KNhLDD2kZyURtN>Z_b>`3vA56i>U=6 zu5C8$Bts{*3FJdRcJ`lC7QryH%?nFsOiU~v_1}yPi`}M3xABK=rvLifnNOJ_dn zFGGrMql!0mfv|8@aL8D?@_^pLCLEXb%ZA#SD&1-H6P1&3*LxIHS;gJKK90CB21)1+Q~)VA$KdY zvzCW~= zeDFcxi2iN7L`V|N1r(wzg(SamPBH3GAL**0$Aq`cg zH!EtW=6#Jw-fro9lN*(v=6)A_syJekW+~x(rg+B%{NnLC+4_@IABV+tPH!Kvzq(?4 z>SvHDGZN2LoZ&g>$fQU<-1xBJeup(tpW-=HgGXa<_DJjowuIod)Tf)gD7VBs(Q`Zg zztr9#(&SbsG9J<0o>5W>W;x2G{VwGE<9wY??P2>GXoflDN5SJ)KF7{Ptn-F)&5o%o zsy#kpA4rAw3yvjq$~^yhC3iD;mNW2VI$A_Sm|c~2Oisw4;!o9i3odhcmvd|PpGTC% zOtB4AJ7i1q%Lm;Oqr7bta^_RcqM98456%{a2PhV4)mMYB?>p|?CVG#YQOuA_J3Vh2 z+eYxQz)eQ^ms*Yb16%6F?~reg1imv=DE2Yj(NIPhGeh8JJi<;B1r#)I@N z5_@tCML)lrrbkiEFP7u#$bap0Vzm_o!;T#9L%#Sb)pU+NrJwqx-uJIENeW4L(0{Ci zTjEGOyx11-uS2U-<4EaSj@uvo)2r0pt2B1U>%y8Z>y|h9*(L;K6xkDd=jw_>+&L3G}7?@_N zrvDa$-g+sc8u}r_i2QE-d@7Sdco4k_f;fT+`}$*;K`LIlk?0=7s~BmUw)NDduhUDC z4NRsvjK9X@eL5=o4T)rIJw1a5etziFn@)AZ{FwI4d)1h~q+=vAnWm#)^YWJV>!Z)j zm`v1TyT+#2$5WW;8ei+JpD6vf)OMn{Sn`%JVM~lL;UdmGP21{_Z%+Oi5x} z?J^Sf&k-eFzOSSN+;JG5R)&vhJ(u7^Ctm zKW@cV&t#fRj6+CVi2j%7??+B2q(qKB6zM9CO~b6wzp-AVdL0JdDrc%l;3j3%PMLKZ zpTPH1e*Tzyl>OuMhudmGnT4N)i0<7umOHJCnjvinD|W>P^5sPkyFK-}?*p$gM;Hym zj)_b+Cp(MsimHp^itr6vxPBHqcH6Orswn;Z%Ucdw!!v_th`Vgm+|+X7O=24~9z5xJ zI`iRm+_4YJmZm%_oC7eHXY|Ltp?l;P>7RII1;r<(S!?u&X-PSG`^ovyR_>&*@s+H8zjaR58aJBBs>n(8cq)rB>>}IM;EUcCl;yV`>I@B0XR33` zVEnFKieqoSKRW)=J&@)kev-o`DzL_pj(dAD$D|rr@GProAik2m&Q0`w4Eh41sD_gB zX!roL97-b26GdzS5&ABc60zh`x)L$zJ=eKr$nq|ZhXcRE<}sxp*SjiK(^}H)&HkI& zk31zL?~{5#5O2njQOhv@I8^kjR%QKcvcBsC%_~pqNLD<8W&v(%Mj)!FUf~x48YO{EkbLBGG zLiQxnLWqlhTdMIKe1J7mGf+GH24CpEN_a zXcJYDf8y)oikW7cYX z)l6}z%5FDK@GWkpDl*)9xyY&eJT_g`^i0a@lUL91GfOQ!rJ|M1I^+w>L5{v0$&A9_=4l)xWf|B(|~! z`LLDSRws1*BHFyRJl$IP175AC_x!e~LQ2Bd5Fh9|`AxrW%D~}tfF|>!^O-q1e14C6 zxe})s`qUZvR{?>{NsslBSIqev$}-wM zc75a1FP82!8@p9)z=a(RkGsu~7|p zZ@>HUbFr*g(d~jepPgx`b?c8mwcdTA0t^!M0&9~zEyI;T5#)iZc!aDp$t7dLORc5% z_#>}&=&X%XND{^v9Otx_w?s%BD*}H`@5(%QwE7iPNYGn5xEw4+GA-yzETC7T_To!t ze5Wq4xrv&)8)e9w5#Ari-w_{GPJYT7P$$5=#TYa_a&c91dBOb1t0&Hx1@c_Y+|M7I zOXdxS#YE6wzNBiRKs}GYb5v6C2xB+Bst-Dpo`|UaWlQYnv$yWYEJLGwj_t%{``rFC zl9l}`YRJ4Hcts{^1wsEi$+%9x2ue}Qu)Rw==|=F2YAxv$M;M=v&}sjju+zQO0nG-& z{q>)JvynVssw1{N8<7z0XpST~b&s#(U3iMew()RX?JTzmDd`k-0G_@~^8Ni8^>e3+ zeFROa9UHwdh}X-cXI|WsCAPwT93k>N6_!sCr=*)|a%9PMEEkz0w|Z=vbz}a-`p?Rn zvtw5bYOgQSSC!MmerMIR4NdNdGaOW<_=uAn)3hZ@G*_E(A4x-vq=`uOs|o*4AN>Du z)IW|af|8h&_P2G|MrrSqcKG+Sby!Y{e)`ured=x?{;aN}5@ryFIa|P_Ijy=F{j^JC8@x2vn z_meM{&J`TvTfIJb3|F^F_L?mKx6NlHo>59DRKrziD3!j=_?uwt`dEF>WvYzV1lyHI zOWIW{k7|gzTx$u9ZE7X+`W6u^0RAho%htIO^X$&T*QwOn2p^2cDHb0}II4VBc+~&* z;K+Et9|Oq%Bsvxnnie52N{a7j3Al33#!{Q7)8;2B>YX(GFFYC=rn>Yon>yCLX4oP3iqhLW zVak!9;kR$M10^!Moyt7Ez8CWJ&u|GOY?SP?;_;sD^+gGlSlbp2HS}D^(+ctFWo)_C zhvY85nIbbH%+IFzm3Egur2pQKNYl}|m{4=M%#kQ~$i|yN4kc;XJ*qU{yVJ9G_ysW2r)n zX~4)HE3alD+ za$QC@*Ze))`+e<4Z@!dWI8vyP8$=ZAS~BmLdX5_%ui3$d)t1n-n7@pPfgcJ`a;ZjU zB=9mbO1<^GRG*!G(NRG1nalIcs^QF+euxo;XWGppiX?Lg@LbpAjkN`QJ1cW#Si0yk z!PTP_sM=Cw1@1Y;_NSjoJx7*#mAZh)+d9sW$g|W^ zEZ*AYtwI1p5^D3zb^ZpyF=3smkCZ2xsqZC5KFf_B{gzXgJXcHLwKkA@Z*8^b17+uR z|Eu_oFBJn<3QkTWNF_@>QNy>u8F#T+9_}WW`MhOvx8^nj1{*@7B%-k$Ob<_=PfC*% zXktlJ4^kOA_RGuO=ZEz~;^uclTjv_bM`qmGO>J;YbWBXzHLJEdvmo}-O9e;|lKX>1 zmP!F8$6qSm%SpK62s zq10m6XtXA52YJ*Il4|lV6j1QWkXfUmhLS%uDb<`AcO2vtNi7Wtu-se_C;H@r3H0~)c02XwUJS)lKNIpTbtCWY@W6z zX<2iPTAwoOP%ge;;fs;{`u*Nf2@hgup63s_mte!#4$}v<5*Q}_hLNt;)f4Qw#TpN%1S8(-^$w3PRV84_L`V= zte$OY%`g0!MWmW4b2XLrtat+R@Wo8wkJJh+t(7iCln$X8)(s0e908qKfiQ(>(2RxPA2GlOc# za8Qf!l)dM}p67D>NGtc|1iQ$p+uW?w()@L(l=H0?JkgQNmAFhZi%5Kgh*4B__1i|( z$u;ulM)QVaM?8L!uZA$MA`byuByDT&}97j(p$J|2Vr{bRjXP0MKPvB3taJ7Bm;XhSGTg0e{z^yw{(c#$(WS=%F|L>-D#xU@@7MkD7uX%H1TXj8 zd6vISUFx7a+@wZ)ikIt6Qd+!+g|e);DP@bMU&;#+LCW?AHzgk3OI7B2J-?ycQZKL^#}ZCerNRg3oR6O zV7K(opWV7Y_uHyx8JCkR(}HKM3Zl4B`S5L0-J6kUGmWyER4aT?fZ zop}rrqx7@$9z`lT;~AfuEFWb^?HZNtjrr;zF0P07Lu-BLdAY6#P>~d|wnt3Jt1&so z8^~NKTKv-e>xnv*8&*rg&6J8dB-P(Y^;%h3KnbcPPs{ZJXAB1~Hk}GjO7Qr>+!^_I zOoEM;r)|#ETuzxytCLC|z~8*fGIMf=+cmX~G3!HP8|~ox7WKM6vJ_vTEy`-%pARd~ zw}@iY$8K4lBs(tESl7!mBG9Cm%Sp{6xc5~ZuZhyYQtlu7UkYvUPw;H14TkZaZ2COM zu76Ir{#j@Dd+)#7qWy&bjk<)Jtt*(4lPRZ#Lim{i2tG`$@^ahnv!c2Bbf zYp8iHAt7$FSEFtf8RftI)?p!#d~4*6>1)G4`inPLg67|dI!td0dL*uiTX1emZsWgv z>{))z@!DLvuT^H6xn1U~pXu*+`lb@g{5kFCzhA-sp@# zzov6?`r}9y^^j|4PCcl&ScZma*Mz@&a6j{ORB2ABoH9w&{dU$>aDmc;NT@ddb>PDa z>#RQ?hH6!q$o1)k41&c+oO{Cx1q^0?_~l*{3nr?XbVT0cT8DVLa3A~UMO;>J$S&QF=T5PY_-}%D#TJAe7WfD zvB~7D=wEUqtV0Zy5AGN#(I{54uJg-c8J1tXP3J zJ#A>{9m>Su!tTsE!-EnE&wguXiQgi>J|3uitKkjD zkH#69hRZ$W9@2K#&MsrDZc#o6OH3TM)>i5KFj0%kin{VGs^z86rTE8GG&XOUpv>vv z4h#?X@u2PSxr9;Lab4@?w}>$s4+eO|5Z`t7TEWz2QyfRTwEm}xLBX=?R!%Z34QyTv zcQj01y|Fe4lav0K+R|3o|OOH7a@on z^9rM1DWm2giI-1wdraJ4)u8+=U4qxhJIcUys(bZ8Rq9-A-DeMiy0Z;d9qSitjjP_{ z(@oRa&HortiV8e*<4fjJd^+sYUHHOGtWgZZU(Z=-?w{^|uPnuv#i8N2`LP9Q;jK+A zDR12z!`FmD0h+SM-hYfOla?{zt@-6N(9K4EPV(Hzu^)!p77SpqEzF;}=Vt%E|GxJL3 z_IPqeXWfWMlx~|azqIHJ)uCl?7Z#3~yTua;b8>F z#f$cB~#=qzkPk>+ju&-Ih~tv@uF)skfIC(mbp4%DeVOLhezhgY~e__4t~i?o{+O zPvXk+@UOF<>vbV_Dor6n6B2E%7yXvXjVk?5Or=cKnPsvb#-s~{>2BqEy&jqRZ2vE#!GE0t3Ta!1+)d^Jj%4IRBy>2=)O3zep@`SVotxu+2Z$X!niQL z+DKw&?T+WrYL53SWB>7(y92&6LL=mFFIREf&PlvW0&jV3o5$)*JW-52ugjTs{=yUO zbB{#g)fwq(Z_R#_h)mR?CRHWoQ@~NHsXdE~=ex*dI2UQiq!ex#Z+X&i%E*&X<4WGG z@`|1zPHm=;n&mTTQVORBk1rLcE!JyO?BKE24eypO`D}eGu(><*$L8(e_FPwg>B#bs zDMkCUTVBGl(mp%$bJrJ}R!l1$ScjN)=555^n9z4#5*7AZ=xA?#qkWr)YGgh?FJJMR zJa1EbTia)~;k-P))MdrrF1TA(tHg^}?IrN}j?J3_YDUXsY$;L-3C}fY?X6FZ<(KB; z-+sCXUO=QYpQgKUH@wuW`8LtF#5kfj3Q}TSRkLqi#XgY_wpg{PNid~7DbOvn?^uaU zm&*^zveJbmsHL*ujP~k=$+FY;?|7BL_gQW=gauoRkdTmJNkLXC3_l9k%1&TCZM16r zKB({GbVzDT%~p@;>bUeTf3~O*NH|6wFOn~PL70t(uC^@@BZzcs(C)6e^O%gmM0E*6 zdKW{0u5L@STuEf;BknCtks>zGNl#bg<{-Hfjw?`|du6C*h~x?SadfOk`1E4S ziO*cgT?8NUEh^5Z8y8s44RdudMQlAiD$X{5v3iQ*{!gm)Bzo<@GXM#KEw-%OR->1l5- zjEptVQ{QR2W{)XXd}m-pqfa#un&L`2g#L3cy5h3ys}BCWJIrp)BjxO-n`p^%$07-b z=gs0je8CC(C-}Na%zSv3<|3Up@qw_N$$t(oc3&Au|0!eponr7io`$v=%fV)RkhY7A zzR9UJ!l2v1)NYPwIz&e3)C7}v_qm@IH>{!f+X`+~Of*?{s6UyRWb)MCkQii<UH-uv~lXLKDGauY`)xJ%%S7 zZf;ZJ#he%7dG9Bk{upMg6vBJ0c{Pd- zKTEfu@odK_;OLj-=1@N)@#Pb5tv8jiX=#i-!GzwfbP10Fp4kq25?J5Vu1kMS*2zv~ z{(^#-hHCnWy4NSNRQJ01B2`pov-7#c{4Bwj_Kn4N6I2@8jx>(kc4^F?NVtk`5BG9@ zIvp%VyhOmb7K0{nnDoDVGAGdB)M(}RiLBA4FLuSDC(nAWi;Pexif{QlQu{Z^?%as> ziO!iBo@~MKWsXXPzBdD=0ZX)7Lwfd2fXGuQMZmF_@x3?#^w2=1Hh1N;_ z&*@M9IxRV*Vq_Q=f2;q3P^wT*CEkPQU7B{FS}JX>sq=huy^qijg`uatYBHtCZ~C~L zU-aGY_IzbQP9r4b5yRj8sCs6o-t$LqvFAemvxo?fmX5%buu4UnMu{u;Q zV@_v0{c!mwuRCpiVdftnskg>?GSeY;J)MO%j_tj&GH#L;MaicHty?>qwic<3T8Mih zJPa?hQ*OMe*r~jQT#>%DGG#bl_hO*jb9>TduGQNFKX|2Gw(%B+etRq17n#04eJ)eR zI^q?6;Tt^dvbi&ZFCP$UL@JN9;`6WQdFTC@GyIjU5KAJH7C{5R)^PpL2F|&LcYx5fki(mxcRx=i3Y`jxu|%t# zsir^qRC^#PspP^tF1NE4ux3_lF#h>Hu13AL0p^4O{H6vQsf@+MSM5$#{0xY5JaNMC zU47tGe!HpTz(>x$60bkEjyZJotF!R%Z_D^y&14p;w#yAW^&aPj_uJ^B<{9wyk7rq) zq3#T3S*lB650>!KqI^rfgd_cAGVL!}ny%Y@H;ke!)hNfV*bW)PXqOOhV~7f`t;uI! z-`)7whQ))4$cw2YQL?=(+CzJ1qQ`g+JOy-_lJf0arP(G@tCX`x-iSyLG>*8BZ4J%V zmX;LFA?-xTSMS}34A#(P68a%n#rUZ_;>JxXcBR{O@6c>~r}g}gWsQWBJ+*+$ANwMa4i~1Rnok6_?Y#h2mH#Rl(D#4uvSI3u6 zvb34g4U#@5Oqu8`Y<*9SR}ZjhHqtV}-kYem&l^qrTG(4L@$G^0iM9F866R?9>p!&K z1N@adKC27u?4cuo}VXkV~}@Tt4T+AK6(Y zNj+A%rXD=QZg1}v&b^G{{@(s+)}5*Q6!pBRryHq|kJE6S_qCbZU+sK-_=2bj8%tbc z*NANHM(K1#XNxVU5L45X&h#9@9aCA*IQ_X<%9OKvmoq$uOa;_4a=AWNCsJf3gz_5mvJ;;%KGHxd_cVd?5u|W~ zll-wi7n0Jz0EwX^TKqskZh?7$PZ8nJ4s4GKeo$hon0wOT!w>z-2sSD$4(uyBKqZSSHOiTm*O)+ZLX zL>9}HgqbB|K{A)R$UL>1`p&?pr*Lbu1Je65G?IMAiMUjF-2JN8@K=X4m!RbbSxJSn zgsanxL4GrggiS6%)oFyerb}kDZOS`(vO*k^YMR8KUYn!*odDY;&I>FP2 zw8$_WHr?B_R7$;hcFmt*D}iPsvB2+9RyerzO5*!SBc)f5^@%SN>qlIU&{w-$@03!& z7kIJZS&LSucx$(aN9Ri|Lth`stcTC6hBfHgy>ob@{Z*wUN;Ah2I~3}b@eA?cBBEbY z2DZftoeYho)~xOiNi0pMv z#`meqJ9&xOwB&C!k_Rh}>buR~?WrXdW|M26YRq{4 zY5J_wX1$PD|MDHv-sSIwHfQlWQy_BOEZp&&PxIE^p7`U`GTCBkrd=LFf6dFg@b-Q5 z#tFu+s6TmEE*Q%$JigqUQAEJXPTq!$HfWk?(3m1HD5j^i*seEe5D4R=Q?zVnxr_-~ zFQk{bIy-Td`(^l5XU4Pqv5xldaP63kn{Qpe#8gI{pb$`+WH@zSOG#n_PrzGZTRC<9 z2X;hftlBVjNtf8GMRdUKw+3IyCEQ5%HIu~fNoT`SufCG^4lZoZgnB;*0fJUe#NCoE zqlnNz*pAIDMQa<8{O~(z;^@-5IFoON_o~qZKctF(bd=$QIa7q?PuJm~Ik`uQ=yU9` z_Tj||;^?6|jVVR_d*d2$cp42WNnXP74>YPFUvCGXOl8pD&u z<7A%!Bk;`6!xrIgio8RxJ_I*YnLl*%W{Qo?z)s0$9fms|n%_dd#b4o7O>;^*`{-O2 z(@E827lX-D%hV+r$B%R0m8hB-oQWcYkiD{!B6~y# z=~O}`8O13hD|?l7Y)ND%*|Qt4>LQvC_99_w17EOn}_?p94sm$*m^&h)tJMk;?3BK7 zg34~$S0FXR-fFj-1-!I-^JDQoWYl|SWt=HlZucE{)SHV=oZ z{o{I1$huu!8>OLa-xF&6DG;k2yXP4Ud3d__x`;$O-$|QLc*o&;IOrdEhq%-W?6(mv z%h>O8p>TmVF@aFYYx8_G>fh_J5-j+T{I4SCq^0gRJ+ZlCb29an^{dxP?qA8ziB%qd zdi>$xh*u7`_L%UtQ+Fk$e5KSW>SZ(9>#|qsV_(0CojrTAJ!I~1Puz&+<$6MXvI$kJ*{;~Tii~)p>nw+u zuhA>e^j%AZUvIob{;hUnST8~>>MZ)!{T(iK6VHv~PMow~0&~)GN zX@^gn8_yLRz9M!_b0t!FQB!?M&_4L`crc$v{zIXNLT&VIY9B#?`4UC?hX*^CPEm)( zS}8v~cK9pxULP9q=L_j9A90)qYFe-{aNezS)6~1(Ihz1>RhI3G?iK z$@JlJ_gF;AVgEY(V?HIvgSh(wd;)wahXn-2pB$kP)Tz+9d@|}XTuDGf?dBO}9cgdggfnTeJxpXlTOYsIF5#e|+hdrNxlxXYm0YGv zJDPJ-WG{OIM|j+&Tm6liI&xBc5oT`L3lgQSKa|h4_R5}X{WkPqD)E^YW{z)xsS18a zOD}%+KHJr`NIjbme?)Ydt1@mEKgZr;B8we{t#F9CB`nN&45X7^}qI5Uqjhd=YX zQgC9aRoIcH_=2E(GCMx<;i*#(nl${~UMgIP-dHHz8=7#tyCnaGs;@rVfd5lDTvAUEpfO*rkVcH-l{vIGv!^ z;sF>!0);-i2SqQ;tfko0srsqvGXhNfqY`l~9sA{9ylXA^-14}7 zJ%H?%)ooLevzw|%PP|2aE(kyJ?lCp)xUEIRz3+ma7KRtpyt$8F{_?KIpDOeKbN13j z@8QlbO)nxf1grXJ#rm+YM(eB>kD$5f0z=fZuY3fOJ#e3rU;-x=c)$&6JAo)ce_ zHUmPAd~iDTYdNnX$%pGJ=6O!goC7zmbqA(mFIe@*e_n|zJQ z0sLnT`aBV{NBZjzPabDiy-m%Z^z!A2pL$YNJ5~0dt3N&U5jS6v@jfy@_g`sOKXT*<4zj1SA5_&QQzjn%pF5K;&B&lmNz$i29UpRvOf4?@cGZ6z3fR^^yUGxh z^W#u>+g@n*77KdSyu5EWf&a5c+#gFMUgSBBG9kp?#8VGw$fke|9Dnp*=1bh^&|cAK zslADhYz1K1TaF@mew(?GSQ~E3+%6n4Fl1FQ7TopIQ}RzMRgBqcNxCuSj0u*iYt+6Uli*{Z-kur*58ncbnhIX5oTcv>e;r&s_W|a>IgcoXgspD7OH*ky**zjyK8oLNu-3=c*GZVSKpeD z8#1jOdzx+R2IQDNXi{s{uQtoNzv{R7{)xhC`W3tT?@;$1_K2*X3%EC=PX?a5Vn#MycJ z#afh+D>1E&BTi8TN`u$MTtv={V3?}udCrw)@xBZE;_jMWR4%h4Pr+>2#5AiSM{5`@ z=tXE6nweh~^Y)D&e9N=4*yQKBf@_u;oWCdQt#X>1y4l|kz^4v>itySwYHmJ1d#yr7 zWRAXZ?Zr~_${qWZ6+LTpNyo!na%I`cJ-{&zUHCha)UgsUoIc#cHDV^u+rrJ*wedx z7lG02B=>X})%yHd{86^~x_VyfSQ-X~hH?|%l4lodhhEV$J@B`joSbhg_xWV*$K!1z zca-gBxjMJ~{h%B3+7^z?zN?=q<)!X&(Al^&@XiHXf;qDprx(BO5}kAKFIUG6_b`At z;wxS^hg<{uQMHp3lM&BnU zRE&rRJ!7-QGcI~H^5(b_nk_|=WxbK3k&G{p*DMcAic2lNlktDgqLo)!`mt5Nxn|Uy z@#q)L<>rOjGOf?DX_L=(F67}Nht}||;BRAwpB9yEHi|WRhkyREU=c$}C_1y-VM-Zo zC!304!Cj_DOr7jD+ML($U4FB+`E5Dh7p*^tU2d+4KZ={Tc`);MZBEARwU*vhRi~b6 z`4PiNADPuVjh992UaQZIn0{HF+uVO9Cu}X?-%>OPefA$;YRd^pK3HC z14g`ketfEm7arc|s!4mi)=I?~h&aRkZS{iX^^*7F4Ho&#UfdgeUGBBzHW+~)&gs)3 zEAc*`duqKSCwgQrI$r*9X}R3UI)UB6@kRBCU1!8|?D~t(jRjt(V*X&NToo4|GqQAJ zJwsd}E!=L^Vz_K}@#*`TsuUNToaq%7iErJ>amE9ad1cE5rE_w}2G(5PHcYEZxjOdZbw=v2JFZ(c z%FPP&zsldw)ZHrkbv2@V?HSI=*)4BnvI8YL+Aqf%(4(Oy-DWj>`(7e{LzA-1F7=qm zR963?cBkS(W-niT{>a(P^u7zXI5-qV14LW>Q#YJ_gGco8(q}puq&k~!u=<*Y_GQse z$lM9ZNvSKk7bey|E$-UySikZ3T4qM2snL0ZHR%}!>+7{6Ttx(11yNd@p2qXx9$ks? zISHXlI(YO4494ETIz`mr-f?-Y;98@PI!Y*~$TDsBr@ifo%P5(w2OGtiAI=ulju&SH zt50iqgw&_k=zZ2@j#+!r#FJ-?Y5!a_-nHc6ub3!Z+5MrIuG?TTP%S7^rci7lj4*8c zshi-*-h87~HZ(1>B&jGL_i7x?;Axz7$J8XGTV6{gq&(Hw_`_3nN}-CVVUwU-f$Us6 z{|y$lKr=Bf_k=!CQ%lm%O@9uq<6Qj~DHowJjVF8q`r& z&nX|!PIhp}%yGX>iBsy@%^+;T6|L!?*RRbgraNAH2Y0KefdAcXW|m0Q zD&-~rCAFOHQI|qH+St~R)Z7H!&(Dl=SkJG7@xSAqBpjg-HIMGT)?{wMw8W|5T>i$H zP^!tEQ5MQsVnu?a0Yc0dWCt#3+CJDnet}3xYX%h=9h$`ZWG-Yjd5(A%^B`9wi6ZBad;3d;AENgrqj@rMdGr(W0zV^mrDk%J=G~8 zjrMfRH-k4}xt8e`Z*mzY=oF)p0&fko>ie|jDl3*~eiqdcE~oJEvw70Qd?%X2&$<=P zZJ^ldL9by?7-4#bi{XvRH;Fss2rr?CJmbHszZiKUGE>>fBdF&5m&wY0SNDYMn*AQj z`e=J9p$GN$diPWGj#*9UtYx1G#f%~i9xP?Z_{6a)#kD5naHn?)b`~jBDMTupns5eg z=$~kwPCc0-)qk|}tVCzfgYYEEteP>$$z=}m)I$r}X=mtI=$f3lsDDA1Ug?TzdLqnO}bp12$H(Z|& zIgeX;e_Am#nKYsEUs}JDp!(4@fP%sIVtY52LD7Jkf@Vq%u9gGoS=QApprW1etS{uf zvO{Nw)eLoywehA1pUv@lWfs4bAW?2c`66u5ctP8$~vCrWT`Mkz^{BYA)IBK@`U_kGm+H&^cFZ z$XHAW9Ews)E_-XJN2@L~{ncpgSiOn*{p#8SXqbj(OltQ?7rk4lh`!7?#?WZd!$3vh z-sJTQ4{z=i3eCwMu$)eJ*=3u_8B%{Ct-5yN2-^6l5Kb??b~xwh^=U`L9;Eb*I@xlA zImZKT^hH>Xp~$jBgeIfzAw#lekqI6^jtUp> zPkocAFP#(F-QS&mpQ+J!Jfg8{pR0eeS-C^bSOce{7=di12BlB!=w zWomWZ*=gKU&g`Z!o{*k1*1HP7d#s04JuU9*`)Dgs%r+3&#&AABA%~$eW~yRXQqib7 zHMM05Z5rD()2i5|6ji*(sZzxhlb#2Ep7a)FGI@$C{F?pKmNDIj*@nrgPI>Ip&a?C1 zMJP=>t)CVTkX!0Sw#{`+Qk0>C@>|S5I_Qm0A?d?$Ri0kfD+yV&^_h|;@6aYQtfu}$ z=i7JI8gw(XGYZA$^zPM0aZJ};PZw)9d1K<}cnRsHKj1X1t*Ekoyt4B6%(In!c7Cmu zV<&YyObxUislT6{eH!Fo=7DM(;|^*4WK<^O)Wo0#x1aOqW;2U4tW@E0T>0k5WuAD> zH|EVy4z8!mw3Xl7KAHcWo=sws!6&hoqB>m4`+WodY%& zy8@=nim$a9_l=5V?=r%4M`ueLx$DH+KW#L~(i@mskIo%SFFy4)(FL^@%QBPs{F=#J zC>ydXsy}g$O4jf|qTReH-E2}sar7`x&KXV}lpT&!gCVPN?}QthX&RcttMcZ9Yf%o$FSgRxy^yk?k_Z71^XoT|=j2KbQKYKNpA(+weXi&7u-pe2{ zv28kJJZ69ElC;AUqnQO{H>F8TW^JP3eN9U}`zuAoV?F`RxXfHRc`2FC1V4zo$z)E``bMVq;AW5>1XIU2r}|rUW==wP437*r#px&- zS=&6Jv@(9uH~dLonYSoaV7LEuR@1m1yYvntho$iJX1TM@E_avdA9}QMwQiu@i;DZL zIt^CF>EA1`8HJu1K|f&>ZWSF~y|HTh(u%`gtQaLj#loG|-^-MdL+~}2VRcatAb?BV zIBtl$y1HfDPE6Qge%ZdOSgf)Np44@u#UO5|sE7gQo6jh~8pVpZdS_6W0QVZeHhfLD6k69gkFLzD$2Tb+L>$;*H; zvy%J3xI$J^hM4WRvu9@!=CTNdatPt+3taBB?xRW3$o{8B@29?CIfI!a4fDEeXY^34 z#?6bVs}Uws*9O`rxZS#zmG0`K734Oa&7-4K7}Lzl%glJIH<3eA!nr-^6e% zTVyu3T}4QLH7U>}E48&xU*Bvg6O_Ib^Q56&S#s-86m38;O-tGE zvJcKd#XarC*+7ZBahTs^p|=K0RC?bNSI&y}3c-1K1>HR}26k&gT5LXdFf8FT-#7jNMSwt07=SRTb(I#Zs}W0J5UBYY~Z zP1;u-uQM{}u)l+#AH(eTIGtY?b^1b1r=e8bhHOw)skp9DqEm(-S}<$zPDh}clao?% zYKxw6Y6kM=aqdE;EV}mf#MSg%3aj|n?H|AFI}&+8DdX7-Q@zB_zPPeO7PyddM;~v7MAr8&+2MWP<75a&R@QJFWrFCGxAZb;+rzt(|c`~qn@rs2i`fE z-gMTXaJ-De!zZA?6Rv-Ny0}l{4jKN)AnQd>P7eda;M}H;o}_M;l70;y8^8N?rc=R- zQe_%CDFf!FMmpW^kTIFj(UUmSETOWaEQ$eVseCv!Hna;BD5mu7gcsx->&_(~Xa@-6_tv8=`5EQKtD(JmX90z)b%nZaJ_fiL5}T z<6Pb|<>$)Xo${NROZ45IL)VlCdOt}{-k}wlyp^eIVi_m62UblTr_F{BT@VTkE!H#)0(B2MF8anvl& z(~D*Mee(Jf^Rl0Hd78u)aSbP#s9#j|#ph87-EdL}&yn8kq=WWhE>gtZQE)$>kfhX; zB4MX6spjC3C%oI1Qf5fU{5|T?VjV?p5}B8ET3;@#^enot*VNA>rm=s}WQ0A_LBbH< zMJGtBuXwO}ztCw{KXlGOpQ)w29+HF7q$Rq_)yXDK(W(9PKu~`m#}z+CkGMc>8+QUh zeqT;bhq1keWz1Uy%%KgZKV+NR-tBD~tr!_MyeC;pXFz+RTiX$i-WH#bSN5K4 zmU=qf%yv6Cg|+wHW|sD7rL8Qg=PLZR3sp7A;ht7ZKxkVS4vo&CP86Z)g{&=74D@!H z-gVAF@1Bp2Hn%pxrJs9R^43JZ>x}W~A(I}aH{GoCl#@ZsT=epaxU3A`=}Q64CWUc# zZk07=IA;ji>#WhCQf;3koU^4<;d(YF1I5 zQ^GHbJkAzG(z6XxdYQiLPigO@D^}u+W~QJ_$w^oH93c9*0Ji*KedelSVsrmgMh82G zF#S$?&B&zP%l51W_i;rv+)i1N;BTTYIG6^c37_suxLEoiRbY8KsUgLUUBl2xP`cC5 z?7*T28aY|J)V?nz!=Q)V(~h=w+Ba%=8ITPtmM4`YCKohW^}zZm746L}2F}JAx~#Cu zOrMn&o?Pm;^-B?$%%uJtP!W;`&q$^M4E zk5Zc)bo6iX@_Pi%7Hj&&CzoYZy|T?QEc#A=EHXSSvt+JY$be=HVA)!Aq z%t9?%SnRt-kyF{!p+rl_H*d5adnuX57d3jSs(?==Mf=D;A^lyEchpC+sXZ8%Jumyc zj}3ZHA0VJIFvMm1I%C$}^nv>XV%bvlo&!8B!{cBt`{exCIL^dR&*D0!bDFd4o~uO( zp%Nt+pRUYFJ$ky&YxP=o)$;Il&y_>DulI}nV8#YiZMp!`o*O52`rb0Y&U`J8dfWd9 zOYfx2_bqF8fF2XYSLQY?<;Hi-B_$6Q?zbC$*;{(~#YYSMj{YmL*PL(aA8n$NW5{@p zcU`(&N;o0NbcJUhZlCL1yIJgqc~!BXcW$nw_j%X@_g9DSKi{xG=dG!<;d|hF9%rM= zYv(7`)(tL<+BVe}J8Uo!Hby!lv5(YoANi_}q_ws1S8rs7ZLIG9Zoux=&=i`v`Gp(bhIL+jda}9DMtSXyQ zAy*cZ=e2?x?}uSaA0DjvW~-J&zVWG2f@wo-F1e8rPnT=JAc911t7%fQbnLVWzXjCtNHW zd|AV5+c&;ka9bE!8*ioa#r z%*CHYTZr{Juq%9|O zawIt(TTQQY%qWRm=ff35r+Yz%`vkuxvxcO2y4vyAY0GX&)Or34Fz{FayQ?=lX zvOl#HVWk1r!LpCJQ}E?<6noorX)LDdAdk%o=A(H(O6`(qz%hhTe_h_M!i0{g%Hnmt-cRUWcCS-_LmP!pZPE&*+T5te_Bl;r2Ayh^q4=UwdCSCv^_J{J|)bPAkyu zS@sOhfXTXM{;uCn>ty#OdlQL^kqXR!2|SkwfUa?%99cIM+A9~)T>&lk&C%@EC`NEN8Z+1E62|AtzSEtSTkx{N zo}D`pbaxQp&yO5GY?fOTA^9YN{|JT2E>-sSiJI$T*EAV*X(MjiYRUJD9Nep;w(s!V zzM!|>Igxivqw|kGR(aLcYSQC)#j^KPN_AY|D_*3(aemYs<5F5l=wFmByo5J72L#Zy z7hm<2LXi_34}`e2jYCKBCu%xAD*^Ty0#{|mFDk)!@%xhi+?kv*3}8eSJOSTUoP>Fi z;jgE_1ns4e|Kf3(-;-y!2B(J2Roq~-?PU%A@rsRcY18NkRr0ZC_xl`oWao13qG;Qt zAIWopPWHIqp0PF=vrn3q19YzR?YbM@M!^$rGG+BBBJ#iaCvAw~^6!RiUMd@ZLY39V zEBMps_ND^7KT|cB7dd(htd$G@RSk9mz=8ryaX{&y4zmI%&Jw374&x`)VWH%hUntQ@ zr(nm(@n53=m^hUdOoswAx-Lc`h{IsEEkC^3z812{)jP(i!DqjRKOsARa*(59+`nvn zhYCme4HMS<{4XP3d;!d5Vc6OhmX&)EWq$TWZebMz#+Sy=YMYptjb*V=@7o`F!H!aw z#w+WEXzK9On=gmTu(2k`TCzpRA{Zyd+H#*tHGaRrDB_JP*pt)2>sU2;Z*tbYg;6t| z%hk}};Kc;|8J~rIEo#*;CsS3wPu-$+8v?RM{$T;qAh>*?$(OZ=&`Tw*}k8=BCV2p`*m8w z>z7Mnl8=tWV5@nX{h!59xV*{x`qN!&kxn zW)fhJ$T0wP7UFR#zYMkjEN6>{%EK3CM-E};L-bGts;e+w=pzW(o}haTrVnUPAcCj1 z8?bZaf^h&$gp3T>Z2;(!6A0s?06#!>NLaWHJ5EN9MQ*jjn+3xrp-&!z zKF)VxuHX|iUj7*HJnDNeaWZlw77DB`_^KqZ#NtqJ1mJTBkn#5s{3P8VJPU)B@5KE9 z=ifpJ{e#XgiG>vNn_XcGGxQHn&K73qAEKNs%+SAZ?+|9_U$}P&GxRUqJA@hf7w#Rx z35K8ed^cK~JE#0HY#Y#V~X{0k!w$U!9kfsqH= z`wJrv$U!9kfsqH6`xizY(1A$)g^`C~F#p2HLok?sIDr7DJoriWH?%fH2O9|3%r`;-xD5b{1)u$UJ_z_P%O*H)4T5LKHlaskvz-6tf!KDX^oI}5x}H=O z7plmlxxR0p3U!-sap>^t_z&*%)EYHQ-O9fH?%EuxrA&{~g=jvwh111-f5nAXksEhW zQuRL7l<8A~KZSffaOKoO;_%q3h>HfF3oE|nq@KB@Tk963D~iu&aKZ1AwKBR|Z8Pqc z2I&OPLLg_vKYB{O53gMSkklb4dq$+xzex6y_?l!G5>gn$EII4%7{vtx{6Ug<9c>CN zdI`u(p>jk*3Io#jFPKnXe1a~;6};nF3MRb#2^h<9V2Zyi7lI5$`~jMW$Y3DH`f1e= z84Thl(EN5gM*qZa-)6^)pJd{IS3JaevERN%Xj z_xVIBK~-Jq_8(FX;>V`wMXGjSL>??LR@@Y+dT+d0&EO;c=-X{MzvCa$s>a{luX$J% zzfWj%h2ZKfC^o3euw!vQuY##-MeOmZx1V?Jh`agY>#esq>-`hMutI%@PkXMuKj1Lz z-JQ3u(IT)gzL*_Ld(M%jHDdax%t2SjJ+iUo!h8AH`VVi)i3>c`a?y|3!P>HTc{IGq z1Kmlfcys@-^*e7t+|+4h#d9>QbMp%k2{N_o&URlOWgk~o=ZfNIOgly2cy^ySyMS+d z-+ud}pB^2*U+;m7GL{z@J6td?nFjAlyCKPb)ZF3r?w3m)URDLc({MxD)0Af#?)k(e zuI>~#7*LC!o!W>JaiNJl(V@Ki%5v!Usc276Hu5h)Oi#R;`rAe2E}%606BZ4fxiV&a z^Sx=_cv37M3@C&3ce&WKHGTZDnu`pfVO4zOJ0)7`6eZx1jbj};-CdQ~zp#_;nkes` zz3MGHrU`LwmgG093Z}|B-yiOEy0P?NgLlAIKD?^t7P{sfa;Z)%t|RVBPonlhp2ua~ zB*O)T+*Y6cH#GRB>>9k|CU;z5XXhVthKbgH{aCe8k;iub+Oa}yedWF7t@d2ysdn)d z#~-Zl+Xf`DOlof8?0g4;-jYusRI{uLuU&jMXG!mpo2N+q8e4sPM$m3{O%$If z>)CNU~CbIh19EIldY!5Y0`ULBt5m#BEurZKxV_QJezXf=vzN6e_fMFL;(#}Ar* z*GtUbWY=4FoH4M{vZM|XqeDorRoA2Q!tyfe-lHTw-lDV`^v6Zd?I^GErOrOQc#m`B z;K+qKvujTJ^)}2C!v&pza`CU^HB|b!&%1YK9a?F+m~m3e{GLQFg^fVTEOY2vfvKBo zFP?Zif2-n4I+mDS?|sWPNT+MD?7-bG`_)a(Su+iP*WoyDCp^aK-q3*203JX7VdnJR zQZqH|Z1k*)6o12IN}f1-{r6mCu@OVO zM6pGF0DA~)1zB*5=WX>N3`0ha_{q%hU$OAzLFS<~7B8s+He_QG^9gDMS3?qG^fJZW z;U_On)IC(%sIm_{aw&1}qql3t;-I;-!=d)jclx1B%I7_v*X79b&|%rtGdT)%zTRuf zxiCSaF?QATP+J@q*Zcj~t_pbGw)9ub8oH*UFydbiem@NhnsbkLt@gpyvOB?)Z|(>= zujUiEq0vTN*sB?*S#f*di1!AwMT|=NuH0pGlbuSCdaXK81GIgNi13l&yWE-gae!#Scp>#`a0-*kQVwcpeNX>Nw&!VS~gTRY?C1n zTQJ?*WoQgUOtwvigiAs-=yn-G3RIgoBB7KNgcrW8Aqs_p3Z!i^G~gy79uSR{f(RS7 zwZovd=)<<+hiyV9O4ey zCc~gH#Kt9oMxvqcu)Q5dl2ir^9g8Dw2**NKX`;?3;%oSS)ns z+$IAQmpvX6aoX0t8AYbD3!>La1v5T zU~$9^QCrN2+dHFBe*?+SI09C@MFY9L9R`F{;_)#5F&-8UTy}dz1Tj|%N&?#l1R|2% zNuh{?6ku#Z5XS`|!w_o_a5*6$VuYV_;C@9!IG_w6QWqe0f)o2Oko^-*fA>XTp(P>Nnzx^E$RFQ;HAVWd9m#8x^FJc)6P8@tdw%vN!+TIrf4CGH=+^-Z2rHMbn z-?A-wplzK2J2P>t0H%*5HekSC1dM@rJiwUwcj8}j0Q)BnG=T4Di(Pd4#DHLiWI*sF zL97M9Y7bq^w)aJl9x<@NttblV|Bw155E$Yt2Kbh+#Bl*E4-Rn*Zl46$CGjx<&Q#JJ z1K0j%BR}&WNT?9g&h`O86eTu7z|;x7$!u>20tk`6L!k^oycm!Th|@bDe8OQN%93pZ zLfa#r1dK>x>5`zA(SN6#QpC0Q>)=en8Md;X11}q(_95;ISi6XA0RhOKNX7$C)IaC_ zTmOLpu_S&BA~ng55g-qd>;y$>Gawrf=M7LL0;-jN7Y+0e>;q2XVhA*;J0Z|Wh4adk_pLTFj(j@e*2EGAXt#dq=?HkXd99UqWTXANs32s6~z9j*M8p_LDnX&>p-yv zE_p-~qrj6kv9^H2{;`kW^&cRd!V*`vk|-n!`qjp^-Jy_Jk_-q{X8#5i&_NP~#zJhy z+xueR#1|bL@Fn1RBn>en@f(FjK|Frj2gG8bXU*+0Dbo0Xh9ij19S(jG3nj6w{PQ;i zLzfle9it^ANh}!Dog_wx1~k0H3q&J89Y(Z3Gy+sAzh%GcKOiKD{b&R*hTjc;)p}?o zX}CorN$!fE>>)L3G`L0(dkGFW3CTI3QGYK8zYPuzR732?X!O<#@iz6N(WKQ78UxBE z;*DSs(7apv|C0gH7$7BXh~1vCz-%B*N|Br=2K+jdc!3zen*2xAzcdKU?H@P(RsVq( z7!rfS0GeTv0TILj1S|%LhA92EX#oR{okRxwlVm&`3JtMNZtsl3l4LOqc8m3Udpj%w z`n@2L4Afl2GEkEcdkIGBr$<2g|D%2kxc(5Y8Vjmh;v)gq4HCBlS5Js1Zrfr&L?H?3 zSP=C7+3?o+gI{kVNWv%D4>ZJ!1~QU20B=Kz^+aipEw)b~|SR}ERfR|8kgZyW}t?|ISBC%$` z&FOc}|1+M1BoarmI|=ZY2}A~mkN^)_|E?OE1XSt7_k18DDak=O38-v|76_gxN#6eu z66h_W*ljzOz(9`#km#=#K$zL4Lhu;^I49}uuyEohTu`$jw{H&U9|+O^UWuT|fQ;lS z2CNNKY($HJ9*>FD4?K)GQzD=`oun^95`!b@jD!=%0O;A7_#OvjSmI;?WF&b50jd|` z$_L0$zhA@t)PGcNf42U-4g^A;_Qh4#Sl@gp$Jqh zMRH9-fV@V0F#$3ZiB$tPkwW03D`6bq_f8VD;<_#_mky#4_~(@{?pn5 delta 55157 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.4.0" } }, + "node_modules/@panva/hkdf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz", + "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -4082,6 +4121,15 @@ "node": ">= 0.4" } }, + "node_modules/jose": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/jose/-/jose-6.1.3.tgz", + "integrity": "sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4413,6 +4461,33 @@ } } }, + "node_modules/next-auth": { + "version": "5.0.0-beta.30", + "resolved": "https://registry.npmjs.org/next-auth/-/next-auth-5.0.0-beta.30.tgz", + "integrity": "sha512-+c51gquM3F6nMVmoAusRJ7RIoY0K4Ts9HCCwyy/BRoe4mp3msZpOzYMyb5LAYc1wSo74PMQkGDcaghIO7W6Xjg==", + "license": "ISC", + "dependencies": { + "@auth/core": "0.41.0" + }, + "peerDependencies": { + "@simplewebauthn/browser": "^9.0.1", + "@simplewebauthn/server": "^9.0.2", + "next": "^14.0.0-0 || ^15.0.0 || ^16.0.0", + "nodemailer": "^7.0.7", + "react": "^18.2.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@simplewebauthn/browser": { + "optional": true + }, + "@simplewebauthn/server": { + "optional": true + }, + "nodemailer": { + "optional": true + } + } + }, "node_modules/node-releases": { "version": "2.0.27", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", @@ -4420,6 +4495,15 @@ "dev": true, "license": "MIT" }, + "node_modules/oauth4webapi": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-3.8.3.tgz", + "integrity": "sha512-pQ5BsX3QRTgnt5HxgHwgunIRaDXBdkT23tf8dfzmtTIL2LTpdmxgbpbBm0VgFWAIDlezQvQCTgnVIUmHupXHxw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4708,6 +4792,25 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/preact": { + "version": "10.24.3", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz", + "integrity": "sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preact-render-to-string": { + "version": "6.5.11", + "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-6.5.11.tgz", + "integrity": "sha512-ubnauqoGczeGISiOh6RjX0/cdaF8v/oDXIjO85XALCQjwQP+SB4RDXXtvZ6yTYSjG+PC1QRP2AhPgCEsM2EvUw==", + "license": "MIT", + "peerDependencies": { + "preact": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index 6f4d308..0813faa 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ }, "dependencies": { "next": "16.1.1", + "next-auth": "^5.0.0-beta.30", "react": "19.2.3", "react-dom": "19.2.3" }, diff --git a/src/app/api/auth/[...nextauth]/route.ts b/src/app/api/auth/[...nextauth]/route.ts new file mode 100644 index 0000000..0cf1408 --- /dev/null +++ b/src/app/api/auth/[...nextauth]/route.ts @@ -0,0 +1,2 @@ +import { handlers } from "@/auth" // Referring to the auth.ts we just created +export const { GET, POST } = handlers \ No newline at end of file diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx new file mode 100644 index 0000000..adde291 --- /dev/null +++ b/src/app/dashboard/page.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +function Dashboard() { + return ( +
Dashboard
+ ) +} + +export default Dashboard \ No newline at end of file diff --git a/src/app/login/page.tsx b/src/app/login/page.tsx new file mode 100644 index 0000000..a71c124 --- /dev/null +++ b/src/app/login/page.tsx @@ -0,0 +1,20 @@ +import LoginButton from "@/components/LoginButton"; + +function Login(){ + return ( +
+
+

Login

+

+ Lorem ipsum dolor sit amet consectetur adipisicing elit. Accusamus + reprehenderit aut vitae consequuntur deleniti itaque totam eaque + perspiciatis nulla magnam officiis blanditiis enim fuga perferendis + deserunt, praesentium vel. Omnis, dolorum? +

+ +
+
+ ); +} + +export default Login \ No newline at end of file diff --git a/src/app/profile/page.tsx b/src/app/profile/page.tsx new file mode 100644 index 0000000..14d73ef --- /dev/null +++ b/src/app/profile/page.tsx @@ -0,0 +1,12 @@ + + +function Profile +() { + return ( +
+ Profile +
+ ) +} + +export default Profile diff --git a/src/auth.ts b/src/auth.ts new file mode 100644 index 0000000..1bf98f9 --- /dev/null +++ b/src/auth.ts @@ -0,0 +1,21 @@ +import NextAuth from "next-auth" +import MicrosoftEntraID from "next-auth/providers/microsoft-entra-id" + +export const { handlers, signIn, signOut, auth } = NextAuth({ + providers: [ + MicrosoftEntraID({ + clientId: process.env.AUTH_MICROSOFT_ENTRA_ID_ID, + clientSecret: process.env.AUTH_MICROSOFT_ENTRA_ID_SECRET, + // Pass tenantId as 'common' to support multi-tenant + personal accounts + tenantId: process.env.AUTH_MICROSOFT_ENTRA_ID_TENANT_ID, + authorization: { + params: { + // Explicitly ask for these scopes for OneDrive access later + scope: "openid profile email offline_access User.Read Files.ReadWrite", + }, + }, + }) + ], + // Required for Next.js 15/16 and Nginx production environments + trustHost: true, +}) \ No newline at end of file diff --git a/src/components/LoginButton.tsx b/src/components/LoginButton.tsx new file mode 100644 index 0000000..1357303 --- /dev/null +++ b/src/components/LoginButton.tsx @@ -0,0 +1,24 @@ +"use client"; +import { signIn } from "next-auth/react"; +import { useState } from "react"; + +function LoginButton() { + const [isLoading, setIsLoading] = useState(false); + + const handleLogin = async () => { + setIsLoading(true); + await signIn("microsoft-entra-id"); + setIsLoading(false); + }; + return ( + + ); +} + +export default LoginButton; \ No newline at end of file diff --git a/src/middleware.ts b/src/middleware.ts new file mode 100644 index 0000000..a5f11e0 --- /dev/null +++ b/src/middleware.ts @@ -0,0 +1,40 @@ +import { NextResponse } from "next/server"; +import {auth } from "@/auth"; +//export { auth as middleware } from "@/auth"; + + + +const protectedRoutes=["/dashboard","/profile"] +const authPageRoutes=["/login"] +const apiAuthPrefix ="/api/auth" + +export default auth( (req) =>{ + const { nextUrl } = req; + //const authData = await req.auth; + const isLoggedIn = !!req.auth; + + const path = nextUrl.pathname + const isApiAuthRoute = nextUrl.pathname.startsWith(apiAuthPrefix); + const isProtectedRoute = protectedRoutes.includes(path); + const isAuthPageRoute = authPageRoutes.includes(path); + + // console.log({ authData }); + + if(isApiAuthRoute){ + return NextResponse.next(); + } + + if(isProtectedRoute && !isLoggedIn){ + return NextResponse.redirect(new URL("/login", req.nextUrl)); + } + + if(isLoggedIn && isAuthPageRoute){ + return NextResponse.redirect(new URL("/dashboard",req.nextUrl)) + } + + return NextResponse.next(); +}) + +export const config = { + matcher: ["/((?!api|_next/static|_next/image|favicon.ico).*)"], +} \ No newline at end of file