From a3f01792c75fa64ebd4518fe7eeb9a571a504698 Mon Sep 17 00:00:00 2001 From: Ankur Datta <64993082+ankur-arch@users.noreply.github.com> Date: Tue, 19 Aug 2025 14:06:46 +0600 Subject: [PATCH 1/8] fix: add guide intro --- .../800-guides/360-embed-studio-nextjs.mdx | 504 ++++++++++++++++++ sidebars.ts | 1 + 2 files changed, 505 insertions(+) create mode 100644 content/800-guides/360-embed-studio-nextjs.mdx diff --git a/content/800-guides/360-embed-studio-nextjs.mdx b/content/800-guides/360-embed-studio-nextjs.mdx new file mode 100644 index 0000000000..394c44ccef --- /dev/null +++ b/content/800-guides/360-embed-studio-nextjs.mdx @@ -0,0 +1,504 @@ +--- +title: 'How to embed Prisma Studio in a Next.js app' +metaTitle: 'How to embed Prisma Studio in a Next.js app with Prisma Postgres' +description: 'Learn how to embed Prisma Studio directly in your Next.js application for seamless database management' +sidebar_label: 'Embedded Prisma Studio (with Next.js)' +image: '/img/guides/prisma-nextjs-studio-embed.png' +completion_time: '25 min' +tags: + - Next.js + - Prisma Studio + - Embedding +community_section: true +--- + + +Prisma Studio can be embedded in your own application via the [`@prisma/studio-core`](https://www.npmjs.com/package/@prisma/studio-core) package. This guide shows you how to embed Prisma Studio directly into your Next.js application. Instead of running Prisma Studio as a separate tool, you'll integrate it seamlessly into your app, giving you and your users a powerful database management interface right within your application. + +You can embed Prisma Studio in your own app in various scenarios: + +- Create an quick admin dashboard for editing data +- Multi-tenant application where every user has their own DB +- Provide an easy way to view and edit data to your users + + + +## Prerequisites + +- [Node.js 18+](https://nodejs.org) +- Basic knowledge of React and Next.js +- A Prisma Postgres database + +## 1. Setting up Next.js + +First, create a new Next.js project from the directory where you want to build your app: + +```terminal +npx create-next-app@latest nextjs-studio-embed +``` + +You will be prompted to answer a few questions about your project. Select all of the defaults. + +:::info + +For reference, those are: + +- TypeScript +- ESLint +- Tailwind CSS +- No `src` directory +- App Router +- Turbopack +- No customized import alias + +::: + +Then, navigate to the project directory: + +```terminal +cd nextjs-studio-embed +``` + +## 2. Setting up Prisma ORM and Prisma Postgres + +### 2.1. Install Prisma dependencies + +Install the required Prisma packages: + +```terminal +npm install prisma tsx --save-dev +npm install @prisma/extension-accelerate @prisma/client +``` + +### 2.2. Initialize Prisma with Prisma Postgres + +Initialize Prisma in your project and create a Prisma Postgres database: + +```terminal +npx prisma init --db --output ../app/generated/prisma +``` + +:::info +During setup, you'll be asked to: +- Select a region closest to your location +- Choose a memorable database name like "NextJS Studio Embed Demo" +::: + +This command creates: +- A `prisma/` directory with your `schema.prisma` file +- A new Prisma Postgres database +- A `.env` file with your `DATABASE_URL` +- An output directory at `app/generated/prisma` for the Prisma Client + +### 2.3. Define your database schema + +Open `prisma/schema.prisma` and replace the content with: + +```prisma file=prisma/schema.prisma +generator client { + provider = "prisma-client-js" + output = "../app/generated/prisma" +} + +datasource db { + provider = "postgresql" + url = env("DATABASE_URL") +} + +model Todo { + id Int @id @default(autoincrement()) + title String + completed Boolean @default(false) + createdAt DateTime @default(now()) + updatedAt DateTime? @updatedAt +} + +model User { + id Int @id @default(autoincrement()) + name String + email String @unique + posts Post[] +} + +model Post { + id Int @id @default(autoincrement()) + title String + content String? + published Boolean @default(false) + authorId Int + author User @relation(fields: [authorId], references: [id]) + createdAt DateTime @default(now()) +} +``` + +### 2.4. Apply the schema to your database + +Generate the Prisma Client and apply the schema: + +```terminal +npx prisma migrate dev --name init +``` + +This creates the tables in your Prisma Postgres database and generates the Prisma Client. + +### 2.5. Seed your database (optional) + +Create a seed file to add some sample data. Create `prisma/seed.ts`: + +```typescript file=prisma/seed.ts +import { PrismaClient } from '../app/generated/prisma' + +const prisma = new PrismaClient() + +async function main() { + // Create users + const user1 = await prisma.user.create({ + data: { + name: 'Alice Johnson', + email: 'alice@example.com', + }, + }) + + const user2 = await prisma.user.create({ + data: { + name: 'Bob Smith', + email: 'bob@example.com', + }, + }) + + // Create posts + await prisma.post.create({ + data: { + title: 'Getting Started with Next.js', + content: 'Next.js is a powerful React framework...', + published: true, + authorId: user1.id, + }, + }) + + await prisma.post.create({ + data: { + title: 'Database Management with Prisma', + content: 'Prisma makes database management easy...', + published: false, + authorId: user2.id, + }, + }) + + // Create todos + await prisma.todo.create({ + data: { + title: 'Set up embedded Prisma Studio', + completed: false, + }, + }) + + await prisma.todo.create({ + data: { + title: 'Deploy to production', + completed: false, + }, + }) + + console.log('Database seeded successfully!') +} + +main() + .catch((e) => { + console.error(e) + process.exit(1) + }) + .finally(async () => { + await prisma.$disconnect() + }) +``` + +Add a seed script to your `package.json`: + +```json file=package.json +{ + "name": "nextjs-studio-embed", + "version": "0.1.0", + "private": true, + "prisma": { + "seed": "tsx prisma/seed.ts" + }, + "scripts": { + // ... existing scripts + } + // ... rest of package.json +} +``` + +Run the seed: + +```terminal +npx prisma db seed +``` + +## 3. Installing the embed studio library + +Install the Prisma Studio Core package that provides the embeddable components: + +```terminal +npm install @prisma/studio-core +``` + +This package includes: +- The `Studio` React component +- Database adapters for different database types +- HTTP client utilities for connecting to your backend + +## 4. Setting up the embed studio pages + +### 4.1. Create the Studio wrapper component + +Create `components/StudioWrapper.tsx`: + +```tsx file=components/StudioWrapper.tsx +'use client'; + +import { ReactNode } from 'react'; + +interface StudioWrapperProps { + children: ReactNode; +} + +export default function StudioWrapper({ children }: StudioWrapperProps) { + return ( +
Loading Studio...
+-$KfU#p58nDUHYCIqhz^445 zetZdBRQilZmnDjWw !8>$fg% &a@ZhR)rGjL)`rhoVNgt+B&EDBd zum=x^ _j>sE6atIC1t{-J-F86t5-Z)o zftbMvKZiT3P=F)19>5vrBg_YSv&Iy8mB}%1Qwp5|O{ZzFg+u^+h#S{o08Hf0j6jtW zmURl@hb^PRivDceYusv7L5ZLW7Z)w!&08eU)=dx(*BuQw0=Py7D9&tlhd>YL0IITg zq13hK`d=1kYu+iOdmYSIfdc%X3hNGD2eYOb>=qSC4Q4}IV`UVM&bPs4XEGS !g4OlX}6#{us=eH;~6wx6KRNH>ylsVxNMA<0C-kcDfY%H9KWHhaYVh-&}MigYN zJHEe4YhoXi>Zc8~sv=#$zU>qKM$0P@o2vK6?d*>+25{d#SP4;ci~NF>)>>+G`e<8L z4^WD8?-1pXB~ACbG|Myv{$87~$rQB;3{!uu+9jdj04|H}|4R-@98WdWSSW};_(41O zN6@*x(&HwW1aR2`6MV8A1 K3p5Xs%EJjuk|A2Q z-$w+Ri;j11&dgFA36`@aytbxpX elOWsR57&5{tsOZ(0KJ5_Z*O2uknQA06u?ds z<=T9TW)n<#rws$eC@c;E$8p31J&C7~<{(wsQusljJGRU7;O4^2^{qs3dOC~@ph0gt zG3NK%2e@uPrT0&D0p+ucOsTBM+QQld4mNS30zBaW$Oktvc2TzFmB*s`JaLM+S*p!D zCz|^?B;b=VvDtgtpXOCvTgiz9E(7Kj$ad4%TauE?njM2l$KLmZ++VwKq`21K{opIl z6fT81(?-sIukm@I?h0P _-pVwSU~VRyNsc*C+?iI@IPYx *_X}z70^7? zb{<6u|JF^E{1u0uaposethDH1PTJm91s-Viz(V#r7vZ9T=*fCgODptt-qmF+EVs#l zFlKXymP5vXE`tN3O8nsgKgPmpm`}$<9NRuBDQn~{Yt-rrohl0D;ZxB$*{`$w*7++A z<~KLG`x(or!WGN2zBtd8db?WETFyY?XB7cz34U4{|7;6ZLtBiNpBoSpFcc`rb^77x z6)Z`Yp(K?j?`}#(!x%zwmlPCvE6oO@1%@57Id35Zq~UD6m==~43*<)Nc;NBsWDC3= zd fdZQ_Ly12UF1Z|lE9|0-^A vK1fBRyfn9wV3!0`Q34) zfjKz4&w)EUOG*uuN#6Od1DynHlDB_G6URBSNQ<*^#%`|Rr;Kq_n|W*C;^)LinX(41 z3M(&aZRXTch&QgHDG4VM&XDS%c!R~+UvCEXbd|9ZrcI+t?u9QTzQZZ|wsAHr?EjV4 zm1tZrUa$q1pKsOrvo)q$Q&|!Cjq>p9e;KFisTA?Ax&ultfVS2NA9Mg?wm$Hj2vECq zTMM5-_n^>33xbV IAE*wj)rF$MD-LhU^&lumFHp( z^Z+S`nf =8>VWt6XXFsH?o%WWASe{y&KuC!y*Jed(UN6ks)qQFrqmXJ)nJr*! zQR>6|X1M!z^#1DA9^|`{!Ej68PUEWDaRMFF=e<)!#wbzebUAA=lW*^O{ B|PdKL%>na>OBa&KP3Hyug~7(CL_0rmB|3l3?p_WY>G4d) oZ@qVIXC*>WQjIoMve+g3Yz!y{F9x^0`?Y7 zTw!FSAnhg{MYr_@DSvw!G!DynW@SstyjN00S>{{+h3)ye(!3-F1*W#ar!3&>K5<_M z*N#)jFRVOh+Vr0c&N5fCGe{iZ8qVoeyDLHj1aC>C?0(L<-&&2&cx#{8y6GjRL2CV$ zMxS0ct>{nf?Mbf?CF-=uHt$ROcV}Q`xRo &jBa~ z(0G7!qoYAFU=L4<1`BqRZxg}c1YLkm*~{t?vHd-|KXC?afk9QkKv=WcHQ3`3j7z%n zJDQUflS7M~E93U)MCFUq=Ppr#I$n< ZbIs`04TaTr_jghs244^2SZ^%C9YM!L0sX4(|YP87rumImZ^=F zu_FmCF&Ir#C#A6;xD)=j^k|p$FM0qASXz0ANeuml%B8TKfFe~|sxmG5h2!thZ4eqD z^ gExCp)R4GHUnr5>qD!Gp$AG4sNqsQV10 z)IS6`o(zJX7;WwTX9yGpX#Bh!4@~nmZGenm5)c!}Xv2Q1vjz;(2a1%ulMvb;LRXPF zW&x@lD0?O6v(?W4Psw!s?PT jq_WYRJbLP)*3H~p|9Ee8)AR<7?e)_{BQsA%EZz>F!7@_FDvvkT3 z4UtuGl_EMRoF%GaM^u>D#Gx{-#PS{zWpCJ|SuOgJcMtt?i$j$b1ZV;yfMCw`o*ymR z^ny-JL2Wg%$7(Ti9yVSM+vn$rnS#kf$~|>XKO{p#4uBh~iD6-fw|@&sc@^Bf{;)`_ z{h0WG$xZxOUoDPav=056ccRGcY8VQ2U&+C^mPSIU^nc%w-%>)N&OXC``4OF{;x#jh zGW|#4syc@Zo&c__FA48*_issQk-d8umeFE^-|TKHSfgWxH>&S^)Hc+m!KjErAI!$t ze(Fg3bA4Cqj2kAfBaGlBx_zGrI!z%U(qA2B+Y)2hQ7+U;E@ZioJ?&lx=`wh20Db8n zKKK0qHKn9R#L!#QMRdLsX~X9E1pE^5>F`B7dGmb`$St-!&BTb*Oi{QsyHJ@EdssdL z+UJY4E+kfOGl58qQHhF2$15HngBP8@aWK$h11ARq8 fZ_1n~H>o#gOz3GmxUT?|-a_tB!eF zz{{IHRA{qBgy&+i!=9Ry&E-jX+WI-dwSR$Y_7%Y?$q<)%ki?o4A1g&knQwf?Fo{DJ z?<7j64m$VTR^?u@z6CP_;h@u^Q>xVWPE?0;FGf>7T Isaou)%jnw>VLY%<<8BRLrb>It+2sq+03q?@aKxN&R3lh@-(P1 zv5j}9A!e%0XRFOd{Wxa4l7=~v<9I4Rq;gBFbJG?po?^K4SXkBU7!6Bin6BLS6AzSc z^vP_N{>SN5ayhs2N)9dlOosuz)bG703FX9k>&Hf4juA05gSD}8FD~yj$I14{rz1OU zc;lo=T7Crt($76Cavj8~GY{>5nuyeGGR0--ySXlFV}z@oJ$qwqvWzUpziaLE^<`r& zqJUdxq_r+fcU8-KC;sKgSpO3u*(S39yt%3=wnH?!i+78-t)fizJ9%&T4>2w)v+c63 zB*DiOO*K}eVhfvs;#uIYMk6T^n- dN$D=p^PwVj3qi~NM*2C9Crzx#wB;bPy_>xdO)DY|U%32u23vqDj*nwpF>f#O z0v8j^w9ROjqbfKQ81;HT?Py+_f{}}u`nADz3-;di^!xp|Mbbiwo;Z@VGDJ<}76L3A zO$~mTZ^0NjTnN`~GCN2NQK@BcpRUrd4z#fcJYwDtc`cfDpgjCp$5Z=`zv$O*Qb0qh zs~=w)rl(0beyJUb;y5T+@17g*AJP2}c@uXh6I5 Z|O^h*(r4N zelpP-IL8O4@G2Gy-1l*&n0)Kr97?YHs#KLPVt7uLCIe__et#@Ra>SzevmHn9!RZ4g zeM*{*2N4OS@#C&;Lt9}|{aET>qGk~fGkiF`^H2OGF*kZoJT=KMR++})%894&x=lIX z3;o@n`d7a >44s@=D?G0%0*sGuy^7;v8rH^5fJ zI+xrX6-vB2)hvah8$ZnswGjmG^6p+Ze>$yE5^p_vBkaVr4@v%s!lU4V3e 1Y&O|et7oHsCdH rq0A>E( nuO@$`Osp*#3Wy3qD}RR?Nfi~x?p zl@6ujy!3tTVwz%WoC;=OYelw4k$1fKVddVeF-y6NI|2h@jKNUV4Oi?za|uLCZF~9s zuT_0jEB=ha!cl=>ot*GrddreM-sW9bRWPG}JCgtLA8>RF9JO<;? S06btfL$B&W`vTdy;}S(zhzy|rK+-YT9UTXRI*o>eB5ac6iv>oO;c?TX^2 zub%8ThHV^$6wSaQ7C9@^m93Z2B!Z@7(SshSDLMI`lQt#T4x4#E#PqlI_v?53{%%u? zlCAhjViNkxme*q$RiA(FR${EUIIv?S#s+T3%5r?1@Kwe}*?A+MDKR1)#ZED*vg!*% zmA!oD(RltVz0w=ctKxOTCy&!lJ3i=oWkYs;0yXd#q>W4yzxDzd!frB&3GC#Y?M7IC z)upmryq EwVxh)BjXJIH&*&o`uSg57=#Ej>%3+= zbK@7H<=zOxP-*q4!N->-5fWP3I*d~Is>d4elf9Q~oy+QLyder_HY(R)cISG=t0Dqv zvyVm9WJ%B^nml(LM!Q)dCH++9ui3+oo2SKGlN=17$T-b;frzn)%w=Mt4mWkxCFZdY zhzJ;Iui+c-b$%(A`%R)rk^YH`etX1=fJ22Po%eQ4C3wZ3^V|4GL<=#pb^RuS0IK=R z5-&SrE(N3b`-42TYL#ph_CJvro~F 3e!AZyG`l>HFW92U#T+2fJ zLgGHY8|Jo46S*Lbk%%=c)C!* UfBy{aBPUg;YI^>0P9X!v@v|^1Di>Y6zj2m?>k=db_za zTs~ffbf}qqUx{&s4^eE}s!5p2fr 8AkaJ>hdHlv=Rg I$@k =Dx) z_3A%!U~BCEmrI^%Mg%XUFwlzjctXNZoQ+wg1-Tt|izr+9za&I8wqd2we8SRI9fff0A+jkAfAdFD)Q=BA z@q>DMB3;_4+42lnM8gN8HiEy1--XzJT>uU&NVHf^grv^4f=!uQi6sYrp`IlK-Gvz| z6f7~-uDn_z_f%>UpzuIt!o8|FAYmiR?yRFVBTGH6seikhMYcQimpOUbw|Ei}!*!g@ zFCBn(9sCqA?{3n{# lbB4b_Zs0@TB?B1EzM#as`4p?#?yVmz{vaV> zU#cIIxQ;kokpll|OcI@7#bfdl+QMoT=WIf?I2LRwKmr4|yl{{2D_2Mbyp&0ZVnl$h zUaK~rx}CGWXUvLW&4`VOs@&DrpSuFyztnUmxv0yUtbV%t1)PFUZy)Z=B=1H*vk>eH zh1WsEOcgW} 1=*vpC7SKGHN4T8u_+Fst>Ag>76MknQOqzeqy0>Qt z7kU(GpcgX<$1R4^ai449iTTo8FZAs7NSMsTi`{b%w6~m`RZLw?=pr^{;eSVBjTh=` ziUoOzu)d8WR#(14_hn4t-EzJ_7A0YmL6B`1ZkU7*^jjb5mDob!e~EF5+SOvLpVvDg z&)UgPBo_Gkckv~L#~xQm${sU4V}@4{LyN(n%9~bj6pEom%_u$Y;*G+Lw%}AAicy37 zYf*EKN?%qL$1E(G{R1xe;MDQK%Jr7s*nbBpTAusK&nD4we1GKy<8c%9h>^CLsPL~r z87Ue&<;v*9y)U8}R_e|yX1nBv?ed@G!&74f3Y}Tj^%hMsc+htj$3?%__Z!f~pSP65 z)fxG?OVfsr#Ub=IJ}B&(39~?l*9nw^&&1{x4#P+Os;Fg9DEbw6zc|{jivTBzLZy@N zS;+dWsb#Pia|Fu*+L_f}Cb)jywMw`mdkdexN;D_fU~QMx3#vMA>@ >c! z?_`wnjb4qAN58Jiw>_Fz#{rPWjkEe-#MAxeV@jk!s`^B*>+i@L&{I?2_eN4 z%B7Bp$V#$Z(W+46jm^#qaSOK?FZtI%4|--~vh|Gv039Mf?>2H*FADf3JyYCgo* zYTquMxKPZmu5+`N&Xom4p8qpitBJs0SMEs17NSB=ZySY$y{eI#Zh{-ku#nxV(@%{W zwcXaNj4wG8n_k|b)JIfG^Eh3%FEv<9M`Z 1bQlze**uyy_=HWT- zTIm3}RCrkoH`Gnan;a!LWT<(1oPIS^Pkv~ruCb_^dx~;;f4eh_@bpx)lP|8@-&Xz- zXeVNl#aNKpBok+1){9@qZ(0ja$F4obhTPSY&Zf_&t64NV<)WA9xe6ZryHtB&8Q;W9 z!ef+4viJ09Fn6c57RK*UP0--7#kd{c>9^LXnb Pv+zc+AyZfn#j?z6 z5j20qg_Uk85*!GKmr(_9_9najba7uOe&_V4v3`!qB_p`AxUo m2)!kRrqZ>% zmO{KF0uje)e6d3fd!_WqNNe|D%rB3T4q30JW|3|3aWYD=ls!pg1Fph_kA9inn&}T; z@~Gll3d*OMEOlZwPT-oGKfcP$s&oU?xFu&$9x5KMtfQ*;f9tW}74gte^j30kQIx$} zV2UEA56mHTVNAy6IP1K8 {G`~LIB<_^-aO;H#ipW}Y-g3OS+K_1QxviymYWZOUyY>HOU^f^^`}a3) zog+lDg{$!%uf;=cg+0OvklIZj*SC=#Hmy(CuJt*;>I3eZ3qu2hEDPjC+hkC +a}lHRO>8|o@9qS z CmTNGGZ2VE2hhjz rU)%Do=wz&pZaZ9L(cvZy`p-Q@E*gkhtlM>sea_gjZYu&9n z=DM@tS#_J4eKbHmj#7eWwyx)H U$cLQJn(?R`h7N0~R!|V3G zH_BQ>c$YZP=!nYdlN+4fZf)hKF-F6Ep^QVr9a6UCTQe8BkA0}xTCLYiNCU1M1k _> V1(^*6#dKd`s^&AZ`_9dqhd%3ESJ_+y` z(6PIa+px^n8g^f3l*^1NA6~iOj66?|1E(}k=Zl{0=|1TU@=ZJFYH4~{u6b)U o1P1ZEl&7a@y#;j_|BxcKbDzQM>%il|=IF%OhwIW`P1U+g zGg6~Q>}Ql-IomK=i(5i9F+8{VQFO1|SbjNr68g&phQ8_DzHsfJ{bK%PdewoEV$IZ| zg0&?*q?J3I(BWiBQ}r)^zXo(c$(w345NqDA1m3zN6hBw9V#%Um+Js)P@=JVkN3la- z^~LH=BMpn}3w9rk%f7X3iRneXqh?c;vM&tmuj&1AAD7-|(!2I0J|%~R*6(Vt;X19K z!cZb3Lpqh19CrZ|&r4zIHYb?hS0`5ZPO_akcg~kh!^Vm vw_K&4I6wAZ#o1u7 zc)plbQGgGyr&J*O;*_BpiSb?bt)z`e8k*z;&u)5QQ>Tz(6T8Rv`q9%}DCqhD_J|5_ zB5o&NzPK6!MGPgymTC=go#9K{@GR7)B?#zfi-@&g$@cNX#xS>hjq^qMDAH3Z5z!+) z)arEC!8maK!fXzJL0kP-m2F%Uo0Wf>5QeiV{-AV^Dq2+=aFkQZDhMTUzC<%`wX^kj z=|+(@Ts5>W;a*guCIGXu9@ ~b0=kKi--+f~s&EiA8(>Q?--h`_*8opLy%C*-Sh!8cW zHSv(dZNNHM_uJ@8p+X|vIs$vF|Ai}@O4XyVBFo$0Cbe@6=c~sC6m*`B+?fAw9O$2| zFR&vKyCvqKg7}70xcn;=a!bk(r8Zfrmg{7j%H}VcmS+Ebi?MJ`z o5CDEh=|KejFHK` QBil%)?<($H zHSu(LoX_L_r#5+)1EnTf+g>J>gg5qNE1}~^j-D>LP|#90>~arL?z7<+fos2M(b28% zfhdHMID56{VCGMfPPlBDUm`0QHD4*PQ7`>nq{CW%VWO@d1|(qUT}A8*CSFMt9Dlg= zac~w_EN~LPt<_z9gCnJT_u&BeaQgGqJYoWkeCWEF`m?_vM=`Rbm=el{@fo()Q4i{n zzj+`_tv$2Oi3Q%Wt1Lo-#gvTqC4vP{Ior&eq E``bQ7FZeF}QJMXcDVe z@+iYSNuEhM{;1_Qi|(r({Xu_K+;4p9&AWBBstCmgk+RiT7izhYw+>{X-i4hwMT$|e zUutZIu^Ll^;-^PnpyT{(mhHAbOhQ49VS{ht@)cPeilgXFTr+dS2F% zLiv{Vj7)QfPq0uV{Tn!*j#!zLVo;G}&zk>8L97#PV)#ks@M~XCkklSIM;y;W8{MHr z%~+c9Rf7a9SY5f+jq@_>L$cy9nafLqAtRZrX%wWf8q$~^BR!Y^^|Ak7rR(N1@Jb37 zEm2-lUcq=`3Q?rY9r)+g1o0mUzvda%Ch^txlee$!Y(_liprzhTFnDza$Z-}I;`G&{ zZd&~YSO+tiJe7ga$|-I6eXTMczf0Uv@UJXKb0e3z#m}~pfcjnxd$03uLQBJ(+Fjnm z&ICA^bh+h=O!}z%48{SPwefd+TR!|8H#I48PwhZWm9}=Q@_|m=b?lH^rdFZ73}jR0 z$5**x28B%yvo-{yoo(Z%e8MX$%m7cejz5d)0A91rt^_f^DdgQ`k8GCzi^YS)U&ZwE zzt(5lpn}P((N|WmIimwzAEsjqD_Z H?y&ne#%P1eP6Y1VY@t%am zAt)SgZ01A_8%|||?G=~5(kjI>rOz_)T3o}s9HigmCZ5(+a~W*D1Lj^$6g(Z#^A(f+ zn?ziR;V+D$M5)i#T#+=rg~72T {)`jRJsDca!HvhjDb&%K!N z$AY`8m$dWV8-1bLM1Cyc*kcH3l<7|JC0#b%ja{U1?5MmFI*O#}ZK<~xbj(M~pI4`` z=mrvF^;*BO%lRofH}z1%mJfVxC03t-H;hUN`e!gQX(n*U!W5qzbKF~fed8sWnHKKd zxrehVYxJQZi@=>?OV6Qt_t{Xvue%0;h0#&bzZ7&lgVmP?EnDBmteR5UXx*hbc7? um)8j~x>US~!Xjer xmj(q#;u1Wq0c(X368^N0`9Ry`p6&q;F4 zI%x3w+CF_%rC0|8T07q*2S@-9ODcX`YUI#s8Nzu5=lEc=Q<{xmjKlJqjLyS)c^bHA zLFS%#QQs)DyxU5{*R6>%+Eq!pa!1imj(#QM#C~3pmh95oqrIxiB<`9xf1_}yiA{b! z -T$`Gst-%6wqOO5ZH~}aaNvu@Rs}G^u?XP ztc-R=h6fHK8tu33{rg%1ZJBRjGf!tNn%~Z50W%wk2<0=cRqvy|r?v-P%+$pN=dHbo z(Qndq75!_=498^kcw;=rOdd)0`XGBIs1jW$f@nD(8xl>_mG7X%C#b2HjZx9L#8&zO zatBciJRVcUMC$36{|S+L1Us^jUsLZKq3pTak5e1{P{aLW#r|!=lXf@qu!Urd@&Yw6 zb&d_IAR_4{))(efvkxVdg{Qrr`PqA3Vo|t?IzVMmUj*A&hRHZ%nDCRD= 4X7*`YM#xX{xc)fgt*PDM7Ewz( z7`^J@mE&c#1|`HRR`*ICEuv~c`D8d>BZ|KHp8qf@s8=&2Not}LTsRXphJzIG2X?tO z&aD0?Ns&WHax?v0g%s7`>|^Qk&Z2E<1Kf^z`XAL@i2MOjA5MuWjGMICL;yBMt%Q#% z9n7Hx)uH3xb=e1dR&4c;aLM#?5q1NLaB8WJJ|FZ}JD58wZe`FN64cCjpXChGU1a|% zBj6}vzVwmM5P@_D^uNT>$9OLYFz Wd-#Nf;$;Aj5`P7)ib~99cNrJ}|TVe^k8# zb0*RH#Tz>l+n6L1+qP}nwr$VEwr$(CIk9cMH*-$?@42^jb$^1VcJIA 020!+1BU zx0WH@JSjKyga#zIx-i+%=`#y}r08;i=u1!qgMF+(=cAMFEc^)N@SdLe!A?;bRIXmr zkxF-ipaRW?lfVU^mrWu_Z6Wn~)%X*kvzqEQbojO$6Szaz2rnGhjm5!I**TL@EFZq^ zmhY{{+}8Li>0^pJ3{zwXrhH}}rcYIAKw<5c$g9l+iXhR`QW8gUx9!HSl$cTm2fj03 zCck1#lMD0GgLh}NV;K5lM^dErZoL%Y;HOkrRHR#Fp90vQTWp;wue49!FTeMI3cHk+ zjWvkQWAP)7(xWm%{ZEUte*PcE{0^d%`L(T_t=G%gbigM-X3w*KkK;23&7hJ=TaAxi zOR9aB >kkTgab$+%-+EmmXuZ& {1N9f zk%M7xzx(fU@l@U8*kNAx;f#OTnaxp2{i;ua&jq+_>CPCzkIV=T^8XlJ{@p<~hW{(J z>`VdD7d&kBtLv(gIqXO_R(V$;&?MA2du(~H!ieh%y+r#1aL&?>yTbG1YM!z*2U3?K zffJ(O2f@VHr={Dm@&&L6njeM)< zG%M;nM)K_^O6qq#6Mt41F$VyQHHh9~eszb`o=a2I>Qf?2eQJ7+W?I@XYtvFMl)OtU z6NVH3a4WJ`k)7Uol?GNKMr7obU2$T!4%!_tG$dSL%&{v$t>A?8{nnkdx-UK5x$aEg z@@dc=+OHEI#^2gLE}fe6kpC>Fep605O_5CZ*(uVZT*Gvfr;7o(%Ak`fUM&6r{yMEh zomzT(IYLNQMjS@hJm~RfeQSprmEO_*;Rnuj)(`c-FZQ2hi}75bC!HH|4Mo&0F_y)& z*q@S*08clN@Dj)^R5Rry3=sG$IZq;~5CgQbAI?&1=AO|~QEVsYuiBCH7M5MjH4u>y z>*T `{36%m+(83Z4!0kc-yFP1ag5->=*-;NTDM*?Lqs$0~e=4$2-(myeSk>`h z3x N05jnHS$;UXTO^S?m<;Wz5K;5^&A1>D za|;=&R66KakSLFwMzHdNFxs%SX%oqC8BvD<`GZ-+e<~wX)m-`xQ7gM>ZJ5xg7er;6 z@CsYRk?A5R9{0=5>_0o>&VOR5-@(+6*IqwJ)5#D3nh6lZXSF}6*1`9A(E{&XIv9<& zKF@k5BhC{{Fq?y(xdkC}b zI&WOs;O24 8lL#Ek2{#Cg+-F(GO1z#o0;@t3 foOh z*i`^b&tGmg$&E79D}tzYS`2HZWRXh01ia2!by8}4=&lJ|DZAO%D=h4m=Zkv*WxtZ2 z4+DemH!2WrRD~q+Ua5cw-1OA#8yrC0*0Mg_m}Dy>5Lo~=cLbKV-o8hDRM);4;&MY~ zjJT*$_B$-U=Q)$OwAJ*`!~YD;RLTDYe|32h`!vuM8$nmsAH+i0y($m>^D&nc+D65t zVlxJKi3BKYo)g4p!@i!y0)VB-S1tDzO^VLL^(@tv#_)|jc)1HedSb`OE2}L~?f|Bb zrCP>yP|Zi}lMDKo3j4_S?G7O2^H8+Sbt2MWVb>jNTXht+kl9cX^Jnw2aVqI%J({0A z!Ktfj1}Trb6|v!1^uO9xTC34{XN|+?hyw|QuviPZjM>Si_Esi5dxIGo7&KY-l6R7P zw&fr!2{LFI;7c63aO ;^P7VQf3Zg*A<*xPzof(UbVS{>R5dbihB0%|$J=$Vc+QEynN9|3^&vWl6;OmQ zqW1TeIMqH?zr5osA~83m=r-u=xNz q-A0R12xOp%bMzFO26PGCN;+)AS*t z!W=O~@2jtzRtjIf3$~nt%u3M2i&lj}1FGgM^EGhwMR4Y(!a8G2&m6SiQ<9jV7%7qf z?_5@DA|sS>*}FVIeAPP_tDbPktblT-Gf_{0Osb15sdUhS&Es(K^+`(MLC@y$iZ;J; z3MhCZ3DRq$wz3&}cPOG0wnL;-gf ;$u`#fPyfZFdk#TSZrAcJ5JF@ zfj?aM_gAzO#;{D$#9psZLrr}j*KTpcepJSyp_@p@1h^d6W0-|_W{i-Lb2 U U<_;i@uR~-F)pY8R=iPcs6^kQ_*ehgJLfZWV+M~IOn#Hjq+(S+|A!P8R zWlcTF7vSgXk$1jH80o}UwK=bbz0&L$4Ep-v8bQwZf)YS3P%Y)haqT)tcFkwrZ!;_p z9ASWS1L4JCwUw-Lw!MJ}*@9pI$4#~&%+wCfq+k5(6+!FG@0~9^YMqGe5A~ie!zwSz zFMdu|wH;&(HOL=k^u#+jlGRBQdxg`YBE<=^VL~mfhZz?6Zy;ZvzSTs%cO07k+PHdN zuDwrie6b)^JqVbqG0ne%wKey|!R*OR1?YAo))(q3(1pWV3CN`a**>Qt(jujqAz^P~ zD-mAkxN6!NUK@nSP?%V`_qE}5_e*ZA&wf}9^T^>;PA{l)W VY2se8;>0W-HH%aMG TkQd zDe}Ks#hKHF50UPq`Kn>9eC@gOa6wgt<1PSluUxWxZ0vo2PI+!uE=Qa! r0WO$T(*MAP9~?oCbtj#%bRt{p1`RD}$L2d$9IS z;ew<- q9{D_f zTDQo^(y$2~g-|ZbJDBz2v0fw`cTLo&0vt3dnwa~|&(ldo6$rgWyFt@0h2e Hc<9!%on*{2j(nM7P zqfrjR%o?eu+k#+E%#G8cc-6p`DwLRXIyJBH|2$m;Uv4A+W_4@ldKbXi_!q-toG)FA zUbnQ>0Yu>I*p) y5u8A6`X7WB0CYVL`T+)yEn8Of=q$R^AU&Rp$^_O zSbf#j#JhKEB|X}HtpatF2w;$|UgBI_b;Qn}$gqP%*{$wRu=_UV0}r}Rs3`cax5Jfr zgDfK<-1xDeEz4 &>r| F C&4{G>y 7e%m7B_f zT8B@^a3qZcf7kDFI^{94Fr5csSzC3Nn9z~;4OaH|4m0U4hHB%h9bj^YPZs{4LaBqM z**9YlqPx64<5~ax_44m+@eM*bdH6 V7u#OjMhgrnhCeh`iEq zP~=Gz(pG8Y)w6)RWN4G{5RM{OK|Aj}19Icn-c2ML1Lv}GN!IE7fTNm7w%xzzSns3E z&V^~sd^H+cbTZ7I+4v5ri^+G%p1`WixN)bw_xdHKOl~on|9nY?-JqQm``tLLw2{5( zkEc Po#bL2XAfH=3Z^ L z30HLBiw%iBs^X^WVFru2&@enbV1>muH?o(`UeHyip$W?c*w=}~53eqpGroEK!=m|F zSs?&U7ykM+d;CX}+`;!g0^FY-9TIh>Aa3sSh(XjrZ$NPfNI T>x$6si{7d}T z$!&VeKl8Cf)_wxwrgQ%w=_|VAZpT18kykh;H4xyz-8pn>Zv8=LttIywn$6F6-~p{8 zyDYQhRE=GxrB`)1^XuLw9H%(s&5^*$cdeyDZt|QuB_%TKw%csNakCR=r( XMPKLRQtYvaEOfW~SbJ-z|CiauW4vb(q5p?S;BKp3)IGbyF)YIw%Wu1x~I-9*3 z&Dh_ZApNl*a6jj2Kj p;Z&9XJ-?HZXc)lk#h z{{FGN8X5JfLNZCb>k<^O5$De !(hFJ#b2=^hKL z7@6;~pw40Jh{u{dzC|?AKO~1%(TGxabH |{US7LWy21m x11nd1@s{ zW5FI7+1ztu-P;;q`9~~;PPgOA)n9Ixj7Lv10yu8F;D|G)S{-cLX=AM3HywxKEAUlZ zb#jS4ZCvy|&RVhB)_W2GrwLk4=cm`SH@$qfF%{CV1m`weD<)0JC{XOjS1Raksg!Y` z5s6C#@5_|*9U}#cj@K6jMPF+|s(FiOJOPO#OD=)oUSCzvE$tVvas^tl+8`MnPXPRK zp*5#tant(U8acdRcnm|evL4252E)^Go)?K+>+emxGs)Ku$!S=AQK7uz+pm8Jxqz?0 zK }ZgpJ2lEejz^xMZv?WuHO42{0nrH*_=^RAVM=62GvKHd?CB0_Q5PvU9at#- zw;QbAFLz1 m<`+Eb4{j95DYy4_zLDkI1@-+it{q5c;7h?QoBP9ukb{nMfy5U*@#o zU-cuzc^@Nr^|C=>C?nZM4#5{!rd)_+Hd PQ#&LXo&L)UIHEosi83Hd z?VjR{?KimBdssb`Jw8>dn7epSEWCmV%QE2v%qM*&I5;|j#q|em3%!t5yK*JN7`9;& zHi8ln=^vq(=(Q6!yxo`?Q)qksC}Qivg(jZj;f&zzCnnqh!~&@Tk<3_sxKdVZ9;&>v z2ldm+U8(MKFNYiB5f%1M8b{_8@; 8L+qHR69QnXFt&TWk1s z3f^uqUo;X}Y@-XFx4iA|b|~&L5no;FcyD$>8*$_;a-LRr{GwBoIho?khj{YVr(Gu3 z4;^V`8E!tbwtPOX7FSy`^EFmS(lMpmHyIrq7)UsPP09L3lK$pdruuH>`<*LpMo|r& zIGsal3`}@a*~$|QkP6bf#=xS0*YvK8w^3f8@oM*{Jx-1Kq1;(LmP@n+Jc=fDyIBR) zKzF@uvV|QV1}q|n@S8^$;MeYM7o w_G^Oy3MMvYM zpi)xpKwbdoH&wu}&a*_ND@Jzi7+6yjoL5pxIWAQ-5A5<%-}_pYn=^bd rPUCNy__9 zj$`aqrw(5>rvR3GKJhBLl3G`DMR-fCWzazz7rSMfU`Vmt`{SV^^sb>7O3c8+%I GxK!YP10?&FaPS z(Ce#7dMqM!p^JsEPTZ?*D+~TCkz)xRnMxj%pMcAr{nNleM|wh##mb4{N}@nQV=tFd z0XIbZ=Dw~+uy`~7jH77K`Yae79*H;#=m-))-M^RQH5%`3(6Nt&Jx!Ey8`qI~SztB3 z*>v$BV@y!BAZl!UVn1{#^-=K8o5 xVPq%(E?xuev_zE>*>8>p?l*Zp>K}lBzZ1tl zt&?)*ugrB&wTV@EL69o7^+9lT8C>dOn&BRg>nj6(x9s3#2lA5gmT?rsRhNP(Kxs_H zq!bDT?P&}>c11sK>mDtFC5cBh1wZnxt)wz%d9h;bwBtKo*Ad|K0M_ *utbre!okdN6y8)9RlwNVIh&Y zeO@x_HG$N1A#XM4Rertm0nPz13&N4AY_i6^Y!k&5d4DjymY^GCw9))OT=8dR8LA89 zep#yi!6J-zb7QGJ(g$u<9N1a6(vr9FvY;ZX^A~bwqBcJx6xZ4lY0VbjH=dOypEC8uz@g<36-<=hu}5jMr1YGp zB!$=>#-tlKhifgn%!FFQ^Wz2N0N{Oa`mBYgUVib JQbcU?6fT6EwoB^)$0&R9R>fcreyvz Vw3c9 zsn0^!a+ImhS; 4&LQ`B4>ZZFBF#f7q#i^oHb5Du3+(U%`UyfAT}u4U%&DE4EvfG zJC~6!@d_aD+2XF{y`HNSmo_HUKVBE2L8P^`N;a&|hl9QjW`sv-Wq=v5 nU8|zL)3Te@yToUL^#lPYP$YS?$f3Lbqrj6~cc;*R`D)?4p{1;Nbtl_qo$gFt)3- z)OOELzpQ!LFR;Kbib;Nb-O>_l&rKBc7=HPI#m+fYz-_{t*!KUYSk5f_k^|<*t%buv zvX1;%8f>3zs}n}1PA5_1IA^s4c1Y=*`AgMWC6v0r``wd?eRI9Q8l1)Ee|r*Z>c4t- zHFBId<4 w!KhS`gDLv>CispK8#F>$E#QMa~Uh`^%0ki+*hOtx2}wK3xf)`3RGu z^a?|X9On+(fXd^tVFcoFroVEH!o`0b6JGkOc85UNPIW7I=q989oKR-lYI`r$PM%h;dTHQ#AYYAI>e^AG zj9FUXiM>UL2p>i9HWx<`A{&VGjVOYSw#*<7$DDb9SS=Hlt!ADXzYl5Yg#~cbU#~Yz zyBL^Q_EsH7s_qmUp|Dzm^( YVk*!2$ZEogM~JG=gLQfB?$4HxN@4 zuG37p7^Z+HS$|3Vds`q-DO-KS`DK#Cx!el~%!k4to2|p?KLl0^9%C5!@z6lrZdfP+ zTkEmE)7L$qy@HWpepjj^A~RKskGanNBjRfQ 1b3H+PcdK{YTX*rNG5BATP7#K)0 zOJ^)H+~K 40p!2>7M0yB LWjsU*z*}+`@i0b)aF_l*P2b@Ut1uto8kF1~=vU zszRu*{(U4}V u)O}DMjB7cQvQyH$Am# z ~6shjG$@SB_b#yOb&-1s4lTwVaXb;{gPj8@rjINQ^As^$sl@h3)|8<%gz7 zXodh0=C;^HE8i;eaV0#gK}s*vycIiB5Z7$?CK8_`jJWv7KPcF9MuB4hX+MOY+L}om zx}}MuCJ}6Gq=0)}PvYku-Op#guNA*2i(2gV9 SR1P<)0G}Tb)+U|qso}uP+_NhQCGEw0ggr|i+6X&suyta0v$EE9 zHxtGC#)e)t9PUP|h3@8lvPcoj^%&h~dWNbaaIG;X_G$W7mbk6sz*A94>4gS07jq-| zep3ZM*7ce@x;Flixc_gNb-J(q?dga?WQleR9Pq#}jIs$3Y&xbLjB1CIk(C%3 UcISxn$j! R{E+yVa(cyWej=^}g;3`g#&$8Dm2=$cOUILShFolVN((ojqL# z50~rRWFG#8G14hQ0rEUX!5?5zcA*fHVghQC9;X1SMwrMz(ymMxv__@=%2VD90#8&+ zfC`qG^^?rpAAhB;mDD?}&g$RMg^%@c7n6)SL3&Be8r(M~PQY}!K@r#Mp-jKyY|9x$ z6^ (UDVmx$aQ6}P3$$r^i_WZiic?G8KM-@;EPzoP=jzL%;WSr@_5S4w`2$JOi;_o|= zX@x5?E Uakn34+RF(G{gS`?4s2#Oo}|qC z%8Te{CHYIrK+{?IZ@yq4Ua*5k^28f}Yr}L*ra_b^vF?zFHcR%X(>ygC^u)Wz^I1fZ zoSIRiV0(IRk)v|RA0Q+)My6u9ELDn#$3p3AoSPuu9RsDwdFHbu5@o744?=udb@Gkn zNh8ei63wF1(C`9=4)-*wb?J$F#*R)t=MnXDIWn@!oI&*iF ;$TCh68AKj(V}2B#9|1kmXxh5Zf#uNIf1*Ui za%%Y}?7`O>CB4*dxvnar@m45Xs{U1r-Q8{SP_^;ZdYrEOha^AzNeVLNfRv8+rqn zOL|9?YAy37fvB=qbS_iYtkAS5C)17jccP`r^eZ!zkL#!!W0cNkoWnP-c@hG%2I{re z4cb8rfBSeC{@z&rObWDpKE27}-G-=&3-d<_rD+F-S;`W9O$&_(M!g1NM`xQ =S7d<3CjtxP1=8u)lzsa#b5Id zmL*m!mk+}7R1qGR-n)0n_>pf+QAGIFj^G9G@Lb9KnHP| X(~Ebi`#_GwF$ z4N`S;K-VfC*L_;j$pybmV3i96k@}$v(U8W5 2rFISdbp#) z2ak)(i!2FAiK;+>CIvaX2Jtcd8;Xv}OvIqMrkN( (eIj&F3gE64Zj{-+#gX9B>0 ziBaQJ5|Y#BcYp}Lt4L6zw4fc9pCYOfo9R(8j29uOUvWtA`_ngS!-HKmK1BwtT2d06 zIoV#AweE)iNoO#)Tj2O~ywF9DZM*lr@JIDmHSC%kP$=TvTQixtEg>cu-8*8~WYB== zWTDD~&%w3EGMR!?)^0LbAhzy^vbVdSjzj-colWT4;AB$}b^|}IztNu$ qFZt9yLRFHin+gCYFrO7?of? zTJ}bca}ByEhOrKhs(DFXpP4bBP?veXyR#ek{j;mVLBj6w9J>w34o`;|md4-l@0idEbc?rgpE- zo+x9*2;5hQ04bWPaW!-#eoCeRQF&NNV3>R&cgDTfZukUL2ao$$@KR-h rlkt?D*wH`ps?;1lcG3UtKUmyj1ux{;i5}&LAKJ=z0Inm+&HoMmY6yWWsV2 z_X1L`plKr4KVZ(l;+&8aL`vy*ZRxhofq&{N(7G`#7!nF>8Z_~*rSVaR$bG3fH_(+e z0)$3;-TIkHaZnXn6ndx7=1fbg4TX_1d@!6cC4X~C2zG*=3l+cCG@R4BK$xbWx=EWR zYCd9n3iNiILqmO?GvFBFXQixrWTP(boP^uY4*4+_E7aiZ*X!#>YXCn@G1#Ly@cUHh z;fSlqfX;Xb_M`oO@9N)?G62!n@!Sw+ag!r`{iJ#g%EY)p7QgA$wRQ-&>q_@Q&u9en zp5@2{X2&tuPf|gLg+JT^2Jd4UV{``; pn z@x_rzO7!EA^);CLXyncb{NCL@+lO7M(ViClxsk4xB%4B!MLZuS!U++n*`T<@K4e76 zJ!;uSPJw%5Pj{_aLz(QZ!<|H(>rT1S%1jgi*~blWIvB|fn6f+_^rh;X<$km}DK>1u zNm@$5xi8|k3j}lm)IUYPvU}VGH>xzX>N;VxLOw>{TL%Jw+RQoS<|oJo3;Jz!c7-F0 zO1*0Y-5A!UB}zJ4?zvV^RcC I*gtXl87epqmg9Mccl=Qiqc~7{hS)LMw#& zICVv=qGg?)5@QNlm)G@Qdc{|+RWp4VS_3&q(_e(>M7m7#vMdKvG{(4?vo Ts%)v{BK#efxO8! z&PGRh%Cat!5Q=c}QkaP&p)!`q2CAFw@wJ#XpH?^-Ir8oF2?l0rVY9M2a5a=haOAK; zR45^ixrOP@1yc|<<~Z!R$#lOykYQ1_649Snc1ebsYi4v8#QOGH~-n8Hq_93DQ&OeS}wqlx#F+*eCe4_#fF4p;S5G z!{*@b1UC|-wxg4GQ+O%VEPy;gRr1V74niga9}d$#yeHSps;ev`54}>B2orSc%3XxB z$N3_2N=_#H(Skbw&H){f{AZht$(Xl}Y4qF>6HiJBhV2IiFc1-{jzA$-zOuOlsXp>l zfXF`O&eHO8yN73cHP~~y_1IXVt{h}q5V$H;ZzxbaR$rH>$^ YmZjaoWurtE1PjTePGX6qOh2wOmm5a+8@*$1<{1U1o%UTm(k@vi8Xmc zM0H;Qsgr1oHfj`Dh0Mqp20mp?SmZ-Z+RE^Q!3y@s6OuKy%lAL#8;a~+XtNuEqW?G= zm~x%~qv-e^UCn?pvCG#_9t|zIzAnnJpJEFj@4z936z|VpgFtQ-_hOtl>RR_jJ2370 z4@)t4T4O9m3uboE_xaYn`LQ$-3mOmR`WCS@ >rh&C-T_8{Z`*#J`r(vt+ijV$JTAtPBMHnX2Jr#0 $F z7U#p$AbJ6U1=Z~e6OA?6(xMdECFCYrs>6e?UnP&<{Qf(mIlE_G>-Qlhr2Lr137JQc|=S|;nVLU!}sm%|MYl2asUw! zT 1z5IA~sj?4 6$>Y(T8ip&?(){23P }wGpw7)d+9UV(I^|Snw&J9VoOtNQBGEfWE30~yby%%cU`gHF!MEV zazG`@bMxA_iD>bP?537+xRj2E#vl;2-G7OxKYEuY`8>5W2|HS`MFpBUGmfN82+U*O zsg|Mg>eoTdcs&_DBw*r+Gxiyr7!D@N-9aUpywJUVyMz8siYjxxKp}+Jp(wj0I~RI$ z2WB$NGdUJ#aN0326vdz^vxv3=4w@Q%)V&HV_^2FvP;m){(>W=}#ZgaToT|%QP6LIO z<3LV4zlrbb%Yr9j?rmNNK2|{0kgexJ(nz_zA{$#U_?nTG)ml`nm)UYUiwRHPJeHh$ zAbZoI7L=D3f }Dgt%;S-gNsN5R?^ E_| zs2p>$Q R!Ejv@+wqx>8}4N)J_Ovqn|QZe&T((Isa!xplkbA{ zuKh^tH4A4VLd;sU9e~(!oN7IdKRAU3+fm6S2(;e*)XV P*CqooAPWU`B6LD4 z(`v6cnOoQAv`y(kM5*h>ur#<*Ms}^=t+sHANWRmKj{n`cKd+MLC*r08AnOygISTL# z=%k4%>)uJm8{O5qvwB%` E_)8pkwTA3rPC+kB+W(`>pfFQPPeC4WvpHt52+1r^eEvLM(?Bz?>Y-r zr4fNoAedqUXc)y)l{BS+9uJ@4v~3gX&}ig$^#{JFk&c ;9U3fuw064bYLF+wtkBo0%ybRGCb$ly?uC+PF~>!g>ACZbhSH)GEy zIbReO(c<;9huar?>p$?%nd3ZAGaF?N!=8jT#btrE0|ee5#&K;@Et|Z07SWGu*e>)V z)YH* vu7i)j?cm+kUF%KuD13PgG!zzlW`0 zbvFS_aj@_=?ibgs!S*uJ-W4Ma4)s;C##ifZgQq=!I0Cc9o#bl|Bd3A3O0^G5;)urP zX%$2z$+$9DnXEK|-`dwsZHH!fAFJ<|V$|I$(A8>Ib+-gE9=Ci9!Q@j|9-6F7F5k^L zr*zWJ8RShK)ZQtWFR1B=+~5v2n_sbIzEAVao6NdGsyi{R* zV%Y#Ybj=%_FN!cpBV!FOg?Yvr+m+ou?%TJDOm<)I;!@Ad_o_5@%^Bs+8!5Lm$MS#{ z?+sl+KAVj<&E?&%-3H7TsSVc4DhZ^vzuk4U^~I1K5uJ4EW$O1iR68F9NxxC7&XLFI zmjTNK#{)F_s9y!D&3XY0f))`&&(}wOuTewawZ8pXVvyv&Ew%WN9^d1j-|be|dhUPK zZkw=zq%3Ia)Td;9w~M5D>Qo^~tz(wpJ9F#li{zfG3odFL@@(9?1ij+Z2g}76@d};C ziA&t44ltWT*+WzVG#~kLE-;CItOXY29(TXYU>cEkF ^9>{NTtkMp)V*j+Zi}k?M z6sUmF9wG~lyutj4*rba;uVs*}`*Ge+9L8IzU)o %JBMh79nDfBI_@V(f2csO8uZvUi$|1H44M@=2C?1N8n zaBD%_K}3_OJDXaLBu=$eu gjWdQk%4e z_Cuv9o2snt9hdQm3?Dr!MkvTC7i@uVk8n=a%B<*<^6y*XtR@lpqJti3USTRB2>d<- zrX;S4PBZB(_O&Nr1v}}SMg9J9>{U$f`tw7jtj%HQ7Tq&Q=)RvyoqBN>RO=fF*-E{f z(jh&yn&T)kYxHWFmkd92x09ZhSN>%1OIPTEzf J>wry_T68d9FaP6K&HU4M6G=ctx?{zMK=Su;qD2BZdai0o9#)yLsA)fLjDL z9Ip8z*0`vSRfeKPN n|hReB`caG#GvdkOsYqB}PRzlEPdM=C+`SAj|)8N oNi9R!v8bycH{g|uHslF(mVKZ1M4%v<|&uRzgB zW&f1gW3>uE8;Fz(BsD#0t*^#|O+EdIvpgZ**Rr%mi;|71zEw}PA_-9ShMHhk3H($V z?l;M_L^a~b;{E}tuJJO-72eI#3jj7e3+7cMV-F|f&)sN>t}$WxdUxpD7Q2E-?;_sr zz63tbrNV@7V}vtb$H-I5YZFAf@Waa9YN2^L2)Bj-rKJ$>eq~3_CVgxycxuZ(r?;0> z^I?^T-iidGT12or&}WIf+Zx}t<9o?ds;JQGi(xeIJ7Dn7*Yu@ z<>_*Y?(kJ@ v5 z5=OR5{(~YiC(oS0DjSDnJ1)D&aGO?JBh@hq;N`8e$^4+V(&ah%u6A5W(($ WUSdR=5qyVeg3ZM|2b@Ma+V3U+F=w~5LR+u(DLH*KVQ8g(9)= 8=T9}cQ$ zD*eO2K oyQA7M{h4rfdk+W%LHbuyXWFfaJ+( z2HGx1AkkY=^UNH}&9SLy&;#n>J8*RWM>$8*?%-#vn>B;7Zbe}`J_0LF_jJU#iKR3o ztYU$##_u{_4YwG{lwuWPtdBtL^*I44b$5+YI6Q?YSz&;=b)xSN%fPk>2KTD1O2~}0 zw3J8r;=9twcGifGP-SgMK?X{D-lkz7a}=`(zge7K8h-wkU)*p^%068829NeK;Yn6E zztXZt+^AzBTYJ7W;Q~1s;f!5F$zJz^v5g-&L2CF%j#rp?If@=?Zk&M%XoV&egE#cQ zy0`Q?Q{*wK*MJ~G4-86j6@+Vp^Pub#iGQTzre-2)F#85|Jif~(C;l=Z`_EMVn@ldk z{~kMg5&&dEkFt5NHT>=UY0$W5h5b6v(`4^z-fp^;=?Q9V-E75A)l# =Ql z0|ANf{|{5|7+hHwwTs5;*y-5rm>siY+qP}nwv$dewr$(CZSH;YeqY^tPOYj{YyF=! z#+c7|kVE!(8P%q)cMFi4LW)W#Mb;P{qlF~Pv;CXFTB&WG?X{OVuSc0x+pc|J$#m8e zEamA?-9IiNKyWfREY%4Oe0Y$FumBvO;xRN ktfU)6F~VpB{VN27pp zgj}F%XMtU@t)Z*}7}rnK7RKnB%en2Ev5B7tQylj@{kY H`{TZwF(2Zk$3Yy@$nZ9 uLzTMW@~uLytku%hr;HR?s3wUDGGWD7uN4Nl^+6`q@y-#ZxZxEP71p&!8%#)4 z95weUP=4Y9C$GyCi)9KHTO|tt1ne6$>N}4@+ zLuwNLS3G;^*G!A|dZx>DVP<1Lq}=L<-8OWY2-Y-_qX{j=MCZ&^Ch)p7Iw6f56s>hU zS ?-+b&BDjG8g9XLg()3x>}6KU($t|JpG(*~kG_=)xZi`MEqcPc(Nn2nJ=}H^MD`c+ zLwH>Jdg?=r>#E7rRgW_otQ!3eqDJSC!!PLUpghhy9b|u{kYJAX?AqK~|I kl*yJ2uOtv-CkH2#6fs)5Wwv3=& zx0!2nl>dS8ogR5nF=g5{6XNiwh|qC?dXH-Ns5E8Z{cG&Nr51`wNRqMhR4E`IK 3uEt;&WxkeknBF zaRc}e%?n9+i+q;m!XY$d=xzhluSgAbEDaxytR~wVdH`wIBTsm3AEm6zU7M3tp_g!W z<}klozr|3KhLOYJ-v8{c{(mqENCf=giA=8B--<(vbCE0iAXs%G{d{*X1#T0krL&nn z&=3i@1h1~Cg&tN*fj#6ZHwL^_M67SFfCQdwR;l`hn>K;5@m%nb*F<|v2pE)0vwW2L z;f$#PNQ>n1;&go ~?oZMYag zam!(P;jJG$c94F~Rku)j#7^55!V3$USay}gFCocj>AD5oQGbj~hx4&&gm`LCR}x{p zmk9pKf~J9DT;d?Ht6_8ep6XLc2k+MEfBo|zKsIdemvlTrrOZmZUDIzlZcgHRwfnk- zDD`o%Fm^pu;!dV&3f1G~jQBYh<6_Yo0;39 A7>}~_X@?Z zH$WrN+`IpE;s?Cj$wPQB%~g8(bzd{&JM?r6jyHeR>Cv9Rk?!9=sAiZJsM!LOz7ZjF z9 a6!qb1BrVlHxAX7(IIRoh?Pi02@L9ilDP6 z%+B|kJ| DowCz!SE@2V*`ed%A`-X@B`S_M(e4 zQ#ke=m9iT_238Vw#-mN*%H@tOIA;{~M!8@fR2Xtf9JG>;2Da(W<`0jo^Sg*y&p}KM zVXo#b{AIX0+NoqTHr8mg0|Je!)ud-A0>cAA{Qsg(|9cpi{+Bcb%=t_M#EUx)>=g$G zYn$hm1vz`q!1A4V{6S|KgmPDhdPHNxKha$N*JU8S)tTNV`82vL4*e^F9$$%$d;cuD zGl0XVrrPh_Ot$#eF`ZlZ07!p+7P?cr9$czR{7Gp>(^?#PRGvZMEY|R=7QXF~=8uCR z d+#zrx{^u22cCgVqfhq$36ckK=&DBCWHXgqX-4}D$ zipCN6YPtGK+7O~!653to<^_Q#kq1LCa+r3_VGuA}L?!^%#CqJ6vBh9t@u5I6ghP@o z)5YkzYWlgWxfbbQ{flW<^9P2O^3NnZ=lfJSbGe%W@|c?1=cxfN)W1%KmAv>fI8I5& z%zvgesF!)5r#YFhnEMR>@T+ohRfHk=MG cOVI*6zQ)Bf`Lr zpEuh79J6oYGI)AD07oEF`O(x>U*_6rXRt sS z9-(YN;9X!1?YSP wT$K#_u _s zIvL`o#s^Z-DWmVjzAhCv&*iSyt{kG2r6Jf1nQu(~2f|f_+er$4@w@HW%Hko^0p>cyhyF+q3xfKtGv{lzy3sw9AC&DZ0w9i z=78&VBv0KNJlcDDXnm`w3DA(yYb_o!tOEIXzS`h6(0Lgkaq(^ZVgO<-D5nXbCj23< z`EWFYw?A;I?i7Hhka2g6UR84%8kn4T@Re5mbLe=q60#&Ez|v1j>u3$wXM7B7-5U=Z zj8J;`QAy|o{n*DOt0?32V;Y6MzC~(yN=3}w<7qZ+W(c`ZyGrR9SLuXL8ew>|AE81& z*f(^^8rOklI?>cA!`QUxY*n&mT4tLAy`{FmaE@z6Ack6yHUG=T#~i-O`%LR!g+6Id zbkXU!Nwz*U`QBlmiFPg6q`6Pgd 9K6W# zpmok?1ocH&>n868sQg5jw74uetX?BgIGp}(lS8*idJOwSavpO2mz|5T+}Tp9AJC5; z@OcubI;81bX{B%ggBDD6;9~y(go^bZM#~7Z_BvR%uB6g?K?=@=8?ly3jORkCb}eeG zIt*5^m+VYvTU0;i8Jj1MZ`$y!dXJm%QrUWU62anUiB60T5}`~f(p3qshFi_#mAPcl zzEgr~rU_!dA2XyTVEq=q<1TlIu=RF4-I0LMu-(cCt9FHub!9u>e0sbUo*~o?eh?SW zhD55^M5f0&^Im-3B0Wkfm+@YK@<0#rs$1N=q>DBB8$jIXtZLgvuPW@V0!@PXhSlBC z4E442^13pha5veDy)GQ}dxxv}M7PN}*yQugotr&t=Th(JqRb$p %d zR|b4pzzSgQwf-DY_aoEEf{s|%g*m-L=gFB5FKze-|9H1^&8aR5>g)6M-R8 pZB0KDg^n056jWYlTF6A8662-BQL^ DjV)x_Rs1cD#t(SCT)jO??_oI*>GRBz#=;nZ&J*R zbeY51P*5oxXv^PST!dz=s&)gm=0eCtePxNDBJ6OY4*jf5Z>M#xv*cqv%ozyZf`(cq z95m8|WrKu*(lK_{ 6Fgi|nkp43#7| z0cC_;>es?0yt)#BB?A#HW+|sGOOxqQ{@;|?VSSQixPQG<0A430x5l759aPMfSF-WR z1e?#5pDDS@^!_4#T1c%_8E%`l@qtlcHm$3R2c>&rRvhQ7%;X3EjPKTwgrg2!mx@3x zW=;A2HoV%g0@NzMp{9xvK_|^RJ*NgK@NOL?JEIOjKRmsuO7Z<=Skc!y*3vTjSz?Pq zQ=cv+!dGr!ptZNRk9{{r*7J=) lA(h@Q?n$Vbg0H owsQwQ2{&-9m-U)f`#(`O4}D_D!5S=44?w>CVwt^bgSGH{AWAngQV2%S6`y*wgu~ z{YQ}cuCO7%kRLaFpBE}-RJn2}ml0v?6bs39lM!()NSF|R;d@PdX^Web;gpHbKDyPa zPq2tOqR`zL(C^P^)F?)u=zh|TM8cz4uQ?4objB&_{R&way2x{aR1MA^B+B+p;eA}3 z9Q>*^P@|-MtRF06ei89g|<8!Pe*sdc{`zvlN^JdisWQBl9XJ zU99qLFA|M%ei{_?QewzgK>p^Y rbKVhT?=*9EW2c|}=N}5{3O!-Bc z*~iX8+d4uNRK(WOh^wc5VL2meVS^S!1cZF)O}QWXK>bs37oD*zaRFTqV@8cL>+yq{ zcKK<{x8Plmw)Q^HjHA0@ed%|>mBmP+gi%SI0?I;MXtNKhzzaa`cTg+s#$;0jg UvkA4IqQbL|mG`WES((4n*YB=GU7s*k9JSY56 h{JGY9m5JR3>*br zrjWOAPCuXv@!^zL)v80L?ovC*b`~vbIUyWbV!xtHqcHNr-fg@Cr!5(Acm{jhr>bBc zD&t%*mL>A}I=O{!%LaWx^l2$B!+e4|nB8H~bttc8UKbJ~3BoP^y2w*dy6e^@b6+j< ze21;vNo-Rn3@hHD#37$kcOwEz@xy?RTmR3-JqZZ;kw$3G^XHiRCgz$kjd~M-4WfD% zsRC}^x~u=z`q<=`n-tg!6ni0S$!Yzs589+I* VRT_&pBAHfl_@W&mmHGn64H3pPNpta8p zW9`4kV+jJv%dVCOA79-(A?L9GTEzxt-#yxy(tZp&i1Li&cIBD-;JbUR{lApcxBR48 zHG-rSQ3hS2Cp2G?)x36@9!9`31P)-&t+^x@6<9^0Wdj=SIs>n$!9S_1Rk!MBjTv1h z?P@-AT^si -`?KjI&WUUoO_okosvOnnJbi8r>fkV(F@WEcK68T| 7st888KQ zxur?MQdc6I&e7f&0zP;EWi#pq9zGw cg1JOG}OI@;0{? z%JMWa`ZJqd!%o*-(k*ZtzUBFIMTM5VfJ#~Gygy-5 |0rAyO|1JsF20FVk zJr~JsG1G zMKTrTncamHjRUMzqu(5Pf9rlZCvI=PodIjz&0D%p<)>OOC!`5;F*2XqSRuRm$~c_- z!4$-W>}BJN(VzVzDa^EdGrVpdC7UVWx*B8n7{cw;zc>rzFNeN?@!hAYH@m)x{D2V` zhVDt7^bUBp$Wn-(7iJHH14a5Il~|a}VZShs_m;pILu)#{`pKBV+f>z5So6l}!3_K_ zR0-fHXR9pX71Yaq)YbKbw Jni(sp>n{ zKJJ5jSmmn>oDwL|0)#r$8Rv}<5}PSS`s(i@aUAi8SZbZ$;PDZoEX+ %Ty9C z5??=0kCwQptnQ@ZY;yK~bea|drE=(JdKUb3P67n5pYgZc72p5zp9g@=_y2<_0o@*U zP{{G3Iu9j;L }$UJsH!Ci-_pRjylt=?s? |)M3>oykh)M!#gc6Rq*zIk=qQktktw1_Wd zANj4ib-`kggl51ip~BZOt_#_^KAz+=+oOL;k2!N8>pj#$V!g95wASdPm!u-=j5FKV zzB70J(rzC){+Kp>_+`{D=r@nwde8CYL1Go?u$@MSBq6AL8JLJ(xQ3+GdnidPEkrc) z2CU^?+fJr1%KPH8BlKf%Wa-CtqeZa*kWyqAodu;-aS=RH7aGZXFG^=PnP~VorE<(X z@AKP*#@>%LPaqNDw_8(X{1eR95T 4Gy?&xUHQ0?xz-BcidUh3BEW!k`I!q7F82^8Z;d z7GIF0L9bNNafX%A-)4nnh;Em6)nI`D-s2Xwcqe9O!Rsf=Cex3dDyvn8wrX3|x*Sf@ zHB`;>_u}tZ)74g<-B(9rmP7rl-pbC$Wco(<2v2t$#>ThK#jQYKbv^l|`N+7b9m24g z+QDLnxpCBiA9GJQPqcjX071}YV MY}&_@8gU3&w<9*&IM1CXIAmKdABH|= zo}%mct)U0MVlPVO@}fo0pkzkb|7uNl1hVS>baT4V8n1cl`hTWU-~jO5`x|cJf9CxJ zCIW@#0%5dK)K3b2ga>S>aE;OCO}#@oE}edI_W5^DQ4Cu(EphiL#hkLw>DV5ySuOQH zd@Z4&iG552wEz2n+j;qY9v%0>-7m92YvQrV|Mla(lVV(;b{h8HDhR0X?2Svin+wzn zee2o}x-pa@cK!In5pwYGLIXG s+qVLethlTlh|@y@iIIcv%aLY3;V2Y zg}xzu?Dtw<=a42e{OJfRsN%01N`|QO|GTE7POydJelQMHZU;Ji(#eg2xt|i380gTddViw#cG9> z2d5cPYq#Z%Z8gjK#h;vN#_Ct!;%fIT@k-^t#Pwt!9?Ujd%OKqjugcsM2l(c2+i5hI ziu>O(sJCS4Q-Sp9bz!_tfo%3gkxDmG9b7&f+b$Z6$;RBDAx@`+8IY@;!XKTUG3IOa zNQ#=uy5&Ygfxp>*1kG}+s~Gx9fYPI*V32SVRABRS`Iv$EjSN>v45TxgMpsLN!% z2>yJ&-EPT7p}nmM7p4sBnQiAhnRmrfuCvB1zM%bRy~!U}98yf4h&Z!a$$hR1wj^ pk$M|-bIKJOY0EkMQJcmv*lpaOq)kCdqxA_k{=4V2@8mM% ztG<=>uIl4x`~TAE{`>OF2HF~R8 |(-GlB!@6Eiw+B0x7Pqr19o1^k0m1a_Q8x_O_Y# z)wdEU-!K^69mIEny>#!@XmiSYv`d!Oe}+z+zUnNR$Z1Ln*{Ifse1<*0s;s0XVpcLr zF;Zh*V2{Yu$iQukiymDAjc)YvIXcQe1nh6LekLrHC;kqFNU8N`6ujr`10^;6nfY>F z7qFLL0UlwK&AOZ0D~-FK(bwQ_Vj7dPYr(>6JCGSl=D%r$EQ>7LPYUBj!2<>^L5kBR zYEAYBcU~3aTFkkUrai%YYioz=<7wk$`$i9lO8yV9PjIHU^Rned@NwDT=XKL?!*$|F zMB~BmOCS7rmyR{DSZ_a@>_fJ _x zYgBKxX#c2ahQjG`$14iLv|s|=;ZtthPcOz~R`XmA(;pH%R?-v{hxo8N9(fQCnR36+ z*pMH5raoZXz-r=<^%1n2jqwqU3$S)1;0Rr>#>+LWXjkOh&gWIdK>Z}YZnJiAx3yV#W!wMNY#gAB+lYL_{rw1BQkHsW+nr038I{>%` zG$KQU$dgAhZM R 3glr!JnL6Hv*=g!zDl6Bk+si{%B%;G^g+(LUMB6iK+?vS{_Z zO%@Tup}9}70WKgwr8vpjq-KUh1-Yr0iSQWxbCvsqy9l_9(!`g)ycg)F#NQS lkRR;O56ug789I z*B8Bi;bNK}V+r$(-*Qe|XS=!r7ED5||J-#};2WwREe#8J+o;Z4*;yyUlc5ZaDFm1# zx5wk&i6%YY2O^8FD4-ruUz)Oo5;vu;O=Yf}8SyA#qOY8m)cQ_aF22) -`TaI>`Ls#j9HvAN#a+E-WxX WDyvmfY-_ure%oqNiT>w=T zNU9H{w4-5E8 7-0UTYMvW57#D2dIwdRq&Ew z+}bfDwpEoOy7W;&m{8_2-H|Mg3dfUiIF+nH?PvOg9UR&OGNgG6?JTg-qn{?2BlGtO z#UV_ k3c|T*1~jcOnQ7Td14m=9wp+ zKA1)uS0PeuVk>x|+~p1GA}#M@r}#$I#Ip9bnf7en1&~!MS43JG6UNOMcI_aHBU@O- zHUKw+R9T120w`2$vxtHOYHnc1q1qRo`l3^CFHZ`X@e%KzxsLu(M>AfB&}m`HajBCv zmfh5+c7yIa6!Fwiu;DQ^`*{i?_2dIqz@7f6{r+sn?0yKC*t;C=6UtNeur4;7>Sw=R z25 30c+i^*!%HHa5DKKBd9*)^ude;DdjS z)FICd)xClE(uX5`KY hJmOHKiYUJA!I-K}&2reGH+1gQX(DhhDX?Mza z sQT1X$-660+ z!2LYFv2GWSbIA~U07zyATM0MsS`7v6t%m|3 Hk@wf^(4s9muwFU1KQO!ZCJ8R|^*IE&;E_*~ywLfX*6i86Zj4PP*HlptDfRm^ zZ<3hvP?{y?P10b8_7>s%yAwmmX5Q;E=$vxsse_s ij|2rf#aQ2&6A!FbbTkXPCG&(=s&vg4BWyY>9~ou ma9cf#Usq9;%zvS~;OrqZ}NUMBg^WGa ;M z!U2nK^I1G^bv2dk?U)(GeRtP @+3f~KQs0b8&oxBo^Z^)G9{l<8O#-}8P?o@|8 zA`iKw_f;K*`&|V{?hTu|-RXYyu%{3k%$}21uAve3nK=B0$@$v+AD7Cy_Nm)>o~i=p z$QSTrgCL7bo!uXIWNos|#CL~ZTMKV6p8c3Vace}3QQR&6)tm=%6RoDva{)HSH!L85 z= V;6*7{n90-=VrSk)Nddy1_;+LKe|ehb^N Pp-_TkzZ#cqBgaeM%KH-OmSS$%VDCe}Nx_^NzA zWbvQ{(J;7GFSIRs4!vp*^g8y@P$DIU*Nq|87ndX&9x|0yIjd+!4R%X>8iN8io_Xt9 z3``OXZ9JJ)Sp18|g%7lT>#tHUFg~ui v$x6qPBx-()yQ KpV)-}N@E*Td3DbplF;DSo3F@v>(2shg+D=t zknPx |IcSq(fKzTh9AU8 z=j)B3p={kc#~a+=DH}<>E^{r^xXdqp`yYFmh1dvtnn$U2R{)v-+SpS;_=bQw-jOba zaf?PhF3y-IGcM&}zVxD^DQLv
jHo80A2OJfPW z%~@F~X74&={b?NEoyGe)CEo(LR--sa&1#Bo2IBHj)JM>iBk8XoL9Nq0wlGdgv@^Qi ztO&839@m(#_q6BGGESxEEKXD5q2 G3QLdjh1jA zIj4uszaH+bX}h^re<-CGOv+vbY3^U#SBw5?IkTQ}-rI+tvuceikVSkrlUBNM_vO%i ze;iRaM|w>MY^Y-MZaGut2hc&G^GkYMX2IzIJ+fsbJqgx-xo!y$%rx^2d*Q$sV8FDM zpj!3kX~ @4I5H _!vILZDzYl z#`n