From 95d8bac09444fb310d30697986a7857bd70936cc Mon Sep 17 00:00:00 2001 From: wyMinLwin Date: Fri, 24 Oct 2025 22:49:59 +0700 Subject: [PATCH 1/6] feat: Add Empty Component --- app/docs/components/empty/page.tsx | 119 +++++++++++++++++++++++++ components/ui/8bit/empty.tsx | 126 +++++++++++++++++++++++++++ config/nav-items.ts | 5 ++ lib/metadata.ts | 1 + public/assets/8bitcn-empty-dark.png | Bin 0 -> 46968 bytes public/assets/8bitcn-empty-light.png | Bin 0 -> 47445 bytes 6 files changed, 251 insertions(+) create mode 100644 app/docs/components/empty/page.tsx create mode 100644 components/ui/8bit/empty.tsx create mode 100644 public/assets/8bitcn-empty-dark.png create mode 100644 public/assets/8bitcn-empty-light.png diff --git a/app/docs/components/empty/page.tsx b/app/docs/components/empty/page.tsx new file mode 100644 index 00000000..e0cfe8e3 --- /dev/null +++ b/app/docs/components/empty/page.tsx @@ -0,0 +1,119 @@ +import { Metadata } from "next"; + +import { IconBrandAmongUs } from "@tabler/icons-react"; + +import { emptyMetaData } from "@/lib/metadata"; + +import { Button } from "@/components/ui/8bit/button"; +import { + Empty, + EmptyContent, + EmptyDescription, + EmptyHeader, + EmptyMedia, + EmptyTitle, +} from "@/components/ui/8bit/empty"; +import { Separator } from "@/components/ui/separator"; + +import CodeSnippet from "@/app/docs/components/code-snippet"; +import CopyCommandButton from "@/app/docs/components/copy-command-button"; +import InstallationCommands from "@/app/docs/components/installation-commands"; +import { OpenInV0Button } from "@/app/docs/components/open-in-v0-button"; + +export const metadata: Metadata = { + title: "8-bit Empty", + description: "Displays an 8-bit empty component.", + openGraph: { + images: emptyMetaData, + }, +}; + +export default function EmptyPage() { + return ( +
+
+

Empty

+ +
+ +

+ Displays an 8-bit empty component. +

+ +
+
+

+ 8-bit empty component +

+ +
+ +
+
+ +
+ + + + + + No Characters Yet + + You haven't created any Charaters yet. Get started by + creating your first character. + + + +
+ + +
+
+
+
+
+ +

Installation

+ + + + + +

Usage

+ + + + {`import { IconBrandAmongUs } from "@tabler/icons-react" +import { + Empty, + EmptyContent, + EmptyDescription, + EmptyHeader, + EmptyMedia, + EmptyTitle, +} from "@/components/ui/8bit/empty"`} + {` + + + + + No Characters Yet + + You haven't created any Charaters yet. Get started by creating + your first character. + + + +
+ + +
+
+
+ `}
+
+ ); +} diff --git a/components/ui/8bit/empty.tsx b/components/ui/8bit/empty.tsx new file mode 100644 index 00000000..a0a471a3 --- /dev/null +++ b/components/ui/8bit/empty.tsx @@ -0,0 +1,126 @@ +"use client"; + +import { type VariantProps, cva } from "class-variance-authority"; + +import { cn } from "@/lib/utils"; + +import "./styles/retro.css"; + +const emptyMediaVariants = cva( + "flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-transparent", + icon: "realative bg-muted text-foreground flex size-12 shrink-0 items-center justify-center", + }, + font: { + normal: "", + retro: "retro", + }, + }, + defaultVariants: { + variant: "default", + font: "retro", + }, + } +); + +function Empty({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ); +} + +function EmptyHeader({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ); +} + +function EmptyMedia({ + className, + variant = "default", + ...props +}: React.ComponentProps<"div"> & VariantProps) { + return ( +
+
+ {!variant != "default" && ( + <> +
+
+
+
+
+
+ + )} +
+ ); +} + +function EmptyTitle({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ); +} + +function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) { + return ( +
a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4", + className + )} + {...props} + /> + ); +} + +function EmptyContent({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ); +} + +export { + Empty, + EmptyHeader, + EmptyTitle, + EmptyDescription, + EmptyContent, + EmptyMedia, +}; diff --git a/config/nav-items.ts b/config/nav-items.ts index a504bdc0..9a0e4722 100644 --- a/config/nav-items.ts +++ b/config/nav-items.ts @@ -79,6 +79,11 @@ const components = [ title: "Dropdown Menu", url: "/docs/components/dropdown-menu", }, + { + title: "Empty", + url: "/docs/components/empty", + new: true, + }, { title: "Enemy Health", url: "/docs/components/enemy-health-display", diff --git a/lib/metadata.ts b/lib/metadata.ts index 46a49b91..18b81035 100644 --- a/lib/metadata.ts +++ b/lib/metadata.ts @@ -60,3 +60,4 @@ export const spinnerMetaData = "/assets/8bitcn-spinner-light.png"; export const kbdMetaData = "/assets/8bitcn-kbd-light.png"; export const profileCreatorMetaData = "/assets/8bitcn-profile-creator.png"; +export const emptyMetaData = "/assets/8bitcn-empty-light.png"; diff --git a/public/assets/8bitcn-empty-dark.png b/public/assets/8bitcn-empty-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..294a63e6e7c66590069e204ff8dc4001d277f1fe GIT binary patch literal 46968 zcmeFa2|U#6`#&tz(W+gMrAV|OF}4^wM41pumO)Xr$&w-KkZ~)>sf1)p*0G-> zTa2+!cEV^ZGcg#9<+;ZU&ia4;&+Gqt{{PqSdFu6Y<};u9-1mLm*L^MT>$3sLD1JcIPh4bD?Q*dLu z(`6$h8ylA}<8RXyy%XQTSOnYahAxI$R~0NB?Zt23akRKA?r!hI=!Z?wT>)I$-*vft z%-#N;15&|VNpSTE1#r!{Eg^Vp^${0@lAxj1wPUJ|&UcT=h@TTbCkWkf?AS3y=Q~yk zdTQ#d=HQ!>ppA=*lY)eVo12@so0Pbtv$cezyu7@`x$_d|&x?U4#E>2iF1Ovq9FRiH zPS*NSyNk4Rwsmr`b#yq!==ZjTqpOROpde$Q^?yt{@4DM=jO2i1O$$s=g7J%lr1&|B z^}aze~r>x%~6F)GzI4c3v@R!!$R z_yiKi__qlI{v*o#WL)bN`t&@!#Kxw=c17*tb@xr@YY^lE z`zLlbSkjkryvc8a_P6d>9OpXMyyM8(?yM6#zm$(Z#PBB3?`|~;mlYC}63Q-xY9xGq z9~^kJujIzpPjTes%(BH{i852~eaBQDvTb7DvTg6*E)MQojP{3R#rgfykE@US`R=qS z5Z&^Rtr-ufBtGZggNylL-v8OV{qX7k>Ue+n^uK|m zRebdW$o&9ve+MK#(EC5*{~saSkC5#jT+9#j{sX=LSuB1eXa2vDoblZ6zP#w6Gtg~% zR>G{fph&6f+#eR&cN@s{{2{?70y1J9vN1g3^aYc+b+1|;4^nMjqb4uc@2FUU1Xk6n zoyjduM%#!FHX-X{mE7=B$FA!8_bS#@w&6nA)c^kwxP)%At$ zj|J;BQlDzNE@iQ5{kwKY4-^^kmnI~h6svG6nqKCU;1P##%S5fOU3nIexX?J|ru7Am zh4+8k9c_S%3XoRznjP=!o0xLy>FVPVFS)CxxFIlk2Y}6N=+xY}!?lwaJK&t!G4);O zcm8Gm1jWUgtbnrQQYm7^9%bG=q|q#Y*iF*jT^k~%1;&;c&O5Sk=PtX3L%|{yv$EJ? z73~x7xzT-ow#zY-Xrxfx*8g1M|6W~qa|h1P^oS*fM7U%OT(I=VdM-9QktEMp2(Ihs zhY+CmG7SdD*Y8|A;neD1_ucf=9%Zh3U)(1oign6Nl5#xsBY)ZYNE*&{3;TS7VYOSN z;o4Exy4IV^MVIRy6}NqKXD%c1{$}EF*kIq_dFi_jsKni|W@UAkDuxYyQrghS{zb+@ z;j{SG)tT3@|MKqW*RRhn&Sj=lX-aS1v-?HP{P}wMWm9n;aa~>7`jYNF_5tku)EP9l zuaAE0+A*g{e^}?p!lfnbj@|K zId;P77k}6SY(n+u&hE(N_^9dXCyALHN$@4E-O+82#Wvc$G68KJ^o7oCSd!?veLUhM zxA;av#$_|6FnRjP2M)aQjUM&|VfB7`Q=u0)v0kMSA|_FrUoN z=^p;rDs$V4yY8qX7Z$IS`BOqW7Tk(#3f>wyX>CyK1B96@LU^z)5Kbz7y+_42+b)=j zTM`3^b>F)S<|Q4T?&|9}U+Qy2d4}&a=+j$=C&0h%(c7{O1GV?d&ngvnciu&8&?tIP z4v_uDxN}^zn>_g8weB+?x4Q3d{Og3mIX0}uHkXrtk48WLvSG?@odptIw-?#Di<@Fu zJ7|K7N`X}M4eX!iI|utJiY0^{Jfkc1hgFjYlV}LnC|Y-qaw+AyJmM8$TaK32B@z*H z;g*8}7iAzfJ6oHaV)UkX*TrTNyBC0h zEOSn=`+^UdE6l%6j2pjhEP+Di1BLA6{s3L?)GwG}53m9|qdLgrFf7n6QyJCGBOTe+ z*~q-&-@*JLxcu>G$*&tLRu2#Z{HSdK+^b+i3sqh* zEQF8q@%kt7U1s#(AaA_zk}!G*UAc2-#@U< z$q9`0NaWhwI-Mf`P+=P=aMioynX!&ebK8O(S%}aEXA{6`@e1pIJ+Y=l1u)RXSPmX? zooH4TpT6|mALgYmwQgDW$~^(AqkCRhdu=*?MZof4wdw!w4k4#mG2G=?R>JW6Ve+1{ z;~m4v7$47KhnZU$ug}vwQ{^0R2?NfsD(d>ww=_rq@VLy|b$o5Q<$l0DW;~N6T#NBq z^30pP$s<0Yg}c0=yrMuLG-@N|*4LD**Dtzz6=$4ZB#{tvoG%A1*yjNU*rC^DyfM-O zSWwa#fj1jI#0iu$I9FzU17fo;`sI3m+x}jxP>yETur1hCR(5wzNn8oFG~wu5w97Yd zaf(me#LgsW-5jZy1L9D_s?r<7W^4&|mRy6GgFG63iy2LASbya8`i81fN? zCT>W0BLlule*4^FTadQvp68leY+~nQ#0RmwuQwb7Loas&fjeXVX2WVXGAbw%ld$U} zZ)3%9Q!YH>XEwi#U!(q^N;O~spNNLd1`7bxx&dOi>d(OsE1+Hgwk_SGX|3KOp z+l3K`+;{#(eO;;;Yy^Sp4>oRM{~H_28`xn-r7r|{6%LyhyWcNV>e#!n66}&-F|wk;SRb9CKU9WNl~<0+2z8+VxNEglO(t>Z7cHdZJ0GFT0@+MGihkAeh1 zJ6P}1WrGc|_>c_l#4og;T(gSDSVI0gh%dSRgZ)EF<1qugMqV}9P<`MQ9D$JkAo1^9 zTxTcqLi;#Sizm{ZTmG=-8>$VK{YMW>&ivrR4?b*I!N2Oo(H)C3nZ6~(K1&KkUzL|9 z!|Ga+b+Tz!OXfz~QtPS(d=+P!2ay<`1=2A1;$1xZ3f^zNvT$?0zp2Kp*TdRnW+Wio zl}MbUro|rzksz8PD@)_;SfMYB)%mV0i_m72`@E6!eSIrKrN+2tCJFh3_C-fb@9b%Q zrWt*;2N-JT)Uh3_Uq2LIQyl!_>01nlnl5#lWPuktBdQs6 zxWSwuR%NJhAllpqTkJhQbvkdr(;Z4n9EfO1@v@)mkt0#6=N0CSmMbW|^8++xY^Kgh z;{3^ZkCh6=3QT}R0DjN@<@8CK3jk5wo9|Ax|jCa5~o)KW2i#vs{6^3Rkt>51dc@*n>>xtkERipDQ+vPj3wX z>o2tDO#zqa{9m&M+vG%ocztCeziNQ71b8hpMpkz_*H%UoeX`4dHp{mM3!9F8 zgG7?6AuJmf53q%2o)vSZrrUEAUc69n3FM8y@x4_eif)Q~l7A;Yy-JPq*Jv3LP0O%P zdJ1j|4y1VFHY88AlhVyp(u>Py^<541sQT34!N;HeNAxu-z(%fsXCgu$!=nq-h&`k6 zTp1YMaZ|b?#M7s#$RNl?_em zMc*dJ+r3LR)N~f8ZG)q(;`Tij#-VKE5~**&GgqqBGGK5)s)MUekb3Q2M39FjQXmVR z8s-uTvAjZ1@Z6n9zt2jtq=78a$N2P^RZypLlRcgDWD+NzV89(D$Ek36O_k)YVlmdK zl0e53agUq72xUb!#D$s^CL7GeR!PF~ZFUML_t#zLi)vkLRUC8|%nGKMPr0YmopaNH zwCbM~#)b`nbxR@!eu^NL<}@^WG=pc}S_%?`#lt=F3zIJ;+zHIBR7}K%8RFVB6spl# zZxMVY{>@7TEU?%P(zr(W_WD(8_UepZ&2OJ1$`+mH$-{N21!aq0gX+8}CA7J2Cw$#d zyhMZ-zaziW5rMb6sJktz%t^fZfS|G&x&4&AE9ZQ}%vsYwsawor97~N9mqdUCpP!>C z4`w<>c=%VO58%@?-TF|psmf^cUQhYOMf!o<7wy&8abbr8OY@s)ILE;&{|WP*pC75C z_4)cz$x5dFu}L0F3uBp?7JSYNswXpV%1RW^^}Y3P9;moY?I!qgkRP`$%0=}mQv|g_ zr28t%8K(*a&LmI(#l|f zfVlGV+~A-wsSKy@addQWsMq)r1i3$wn|e$Soz{L1ymZ zuC7K+h5G|}ckJPi(ZN7Vo?LJ~;s)ujsw^1LE5D^?|!E?w{ zE4pSuqfA6EHC(9y<*zZCFqC~SbK*q%O^-lU- zwLKf|DmWQx`M4fCtQ4-AgWdemU^3$nOoxLiW+!>R`ntAfMnz40vnnlqN@1AK!yyDM zkrn(&p}XZPRs6gLj}DqXJySD-77w2Z^U-;0AmkNGr=8Ff5XRg!8TL(e6>KN7q6xAp z2v?v}_o7#60(yCUvv7cF!ayoCnD-5i?`iH1r*uP4g%^(Zj~tG%JT0O`xP3>5^x8|u zBW@~GF<%`Q&7AxFBmDn7_a(3WDPa-#kLgooZ3_DkG*+&W#sKC59(l0U)p<2={=HvB z#p|Z;Hw4r##;*v&MNWM=gS2L)k{8q7C(0GWAb!kNpi8aheo_f0ugprD2tPp zBeyH8KD_D~5sFfBE=hvjSxV?TkkVGeKeDX!xK*Rpy2D_;&n_-7*NX{m{OI6y2W*&P zm+-2o6m=+g>k?iOkw*?rEX!HYfzZX7>nNyN%AoL#2eWu1?%0V{;5f$jV>G z5G5<^pRar>xYR31DdQSbn;m39ntmuFk1K?KaAj2@rQzz3b8c+%g|5^91n*pwgGIWb zG4C$G4NY2H=*tViL7&dcY7|KJr+YThBX&oN~!5=#j0oQwX~6yomlTB*ra# z^9)u#sa?!Nd_SzV*fu??zKQ-Kx7QajeBx_|pkp}AJjhj$et!?sPdNzy97YSbE@Gwz zdBhWVzKni%%DFQ)z{62GQ2FdA;YniUZ?}f_igjpD4tL)MP7^Et8avK-%=r@T7o};7o z?hcDHQ^R$2__D?GK6bN{^aIqlkBFRu?P(*@QPYJY(GkT-^bWdb2s*5_TB3|F;Z{bV z@R&=K(aBR|nPt7Pg~|AOyzWl?dU&A%cwWNoq*^A9q(qh#vUONF| z6V;&2F*UrxN0kR9Di|S3TCc}Q+_*g>o_b;Y3h2k%_~dqR4~GnY!K`|m?tVfm1HKJv z#s`g`(o+>i=!Bd~sdS0ITrAd3B2mTn*Uh;(C0ZpCO4{s5P)}~cS0v zJCouy+dJ*94qcPmU)TNH{X22M1bwx+f9^=iNJ=g&{$=Xx%V&|u$WIUmfMu-(5hH?L zPg<|lcIsPd+DXQV>~{=u^;{?p`t*@-(H)Ix9=n_#)zDK{z=cT-FG-u{&b}Gfql!{< z9$O1V!B#Zvs7CgxBl9DJIO0TN0H+w|IDoFlqW{k_roYFnuf%(DIJ!e_4Ub_;tVb)? z42Mq1^j!BE&j>vKbb07mN;E%) zUcE;d?z1>qT|G8^@ojvIWFi3xImmE_&0m^nS|fnO0zLaKeW&(hWb zF2RrpEz_^Aadph)d5j(LGWO0;pUt=GoqeBOV{P=Qisg;i{4Rpm2KY91BG)$tSrGd^Iff-*Y&&@p?Uo~~NMe>ngO9NO`XOc0&Po*3|R;-IIioE;p{FVLplO=Z$QuZT@h-URw-Hox(NRRwby zq|x;D5ttxLC6`J6=tC_h;l>KTxf?3t+QN;hsQEPc8&`U8R;}s&bv*}*LYV2+&0zPJ zSI*;SCK4>!5y`*fdFWW%z`Of1fd1V#rHrc`#Z`FJ)~H{ewSPQ=a!kW>n-R{`A7z&wPuKp+~_$ z38WVng6sJB8$$T1p9Vojq~a}c)mT(iM$sp0Lm}&fA+Lwg*y14zTu7H4gPhoGxFQTG z6EBO3t%G?wPJ4=Dnmmkq^Q)mqL}-XJR(p5VU^BsgtQ)OQ(^1OLDGe>ODx_t1iuYK1 zma#G?56gML0wdm`pRGddZmbIV>1ns``U(#H4Iv>(mgIBdZtilj4|r9@+hg(Wp%8(Q zS))Soe$4HVSY2uVC&D(WG9yU6BjmWX9SyD+1ubwAXgb3K6Ff_KM?O z6@+IZI^rPvorx9bm~rZRDeJiU%>}MNamTrgSMcilDx(&rCrP)vyYd|cG6O2GlQ+rV zooX+dk@q^1Z{6d?8;2q3@H&~EIynppfgKZ`zdCXXR~K==q;0}rp4Y_p`)?dKG1~_T z&9wfx+{7>>L^|V{OYbyF*+*%Km!~YRZO{M`8RX`G!J-AimL~H1oa^8vGW@c|jdqwp zc=F8ix|zMI8UFqRM^t()(Y@DYqT9^#gQ*ZE<>HRb>kB!{%62(;tq{5u@U-(7? ze#a1}k@KSw&QWJ75Vp*sAvQ!9q&mxCX0C<~kHEKPyNpNNU+u%Lt7|4Ac81F<)w_NC z%!q8fTdnn^d-wN(HYhU7uHfxxbX`QOSeBAAbR}(wn}uS^?Sb*>k}+eYp?J12hHJs| zEesLkj$SY$_%#_0hE;ogS(bnD(K>2K%JlXB{CGU#zFd=QC9Ah$fHs|%aARrubCAs~ zo0SXhvczeU-wY^?OWhQ?^l|~!*gat9fa?Zabk0kpYgQ*_5!>O;$4c*DY_FD>3V2AQ zPZ>RXCbsBIPkW3~ltE<%n;+#LnT_c^S`u#}C95MIFH9xherZBAQx0&(&a$dKoZyTg zn5aF(G?Y)-O?Z!_ySgJKIMi21PW)Bb?N|(G|Dd)Y)}B<_eBU+=3n6%BzLlJLP;$b$ zq_X!k214)rT_PWk{!(q(Li;?IJ8<6tv#L1|Bz5Sk(Rm7g9u`8GL5fBrGFf{`)xf&R zJCN0w{-5*Ihf2RD;{aKj^R3njDAHBWcn--CfrTI~ql4=@qR40XqN~s*$aI<}kG>-T z=G<;F4yK!(`Cm9)uW@SaGm+>4d<9`|MFoMWoizlojp*1b<91BmOe$oAVRJ|L!eEwK z)x-B%vSbg(dfcu>BT8;s{oK7YY=BYqx_9EHDs0N=0G-PRi^`ZWyV6I)(jGKq5|N^^ zj%R2}_mBwjlrDpxkE6Vp2FlOQ&mch9i????%L?ND+ZL~JWEcb~jdgb(B%)7ZJw~dC z?YNS5JDdTf2cBk9@?fYW=d*Rl4404Bcy=2aF`t9ZZ-Yj+UQ30TaG!nLQ^ItQY<|MP z5W{l1Svq=sV=}3~?L7I#662K?lTZutX0in7THFO$nS2Lwt^p#?lR~uU8O;@=M-Nj9>qWRtP z4W&Zt$+Y0Nw9NZG6~7re=3(9KoTFaKqPwt#6UQ-4CHGv-8%j=MOe&SlMDn92Q80cy z_fUK6(V`QflOJbtY{<}8q3qtiqm z76qE+e!B6Q#KyDA$i+5(&TmN9{e87FaS$+gJDR4j&~+2Z5vMdneK1Wg{%8QDebI7| zNSv&1b8*07vl1nT+k+eAX=YbOY_qHstV4jV<`T6A%Un?|T_*G?MHWQ7l>!Wfo+OQB zC~mNG22XiI0<7j^1~X@!R4}Q}=Cm^?X<0Z1$%Ll9QuKvyg|jkS#xAC0Dq#MU@=TF zdbj@wr>`Tb#Aj)t9hQwBA;$47VvhC}dmugNv-Z=oFwj?}-L7V=W~TC7|D!tK@lFOv zNPeELp8zK0{D<;qNCYvdhCv|Ky($wo{5HTlbZ}x|(s;hx(h*w{StWI|1q&IeimHk< zky04x_7aXuu0)e!Ay5V zUw>mn?mv29f&3qwWG2l1xAVa-eXCiqyKc@92-C6$8E6KlJzkly6}mLt!YE@AvGisE z{%4sU5#=S@-7|A=?&QAMZ<-qPU_I5Q`a)*0M|T)75KBXy+AJfly;XBh3d^29&=gL4 z_;7PMTZGBBMe+WU=Dc0bD@3)M%}$Rsv8-B=Z#O^{Dxp4*RpME2)UR3fJvQkI1Jt=a z^8GzTK@ECa&))XXCd%`?G^{W3%^BMQwZv`>rd~~-24$ZJD^{(=wpfGyHHYf-jrM(p zhWY71?GXcA9X1 ziC(m$kIz|C)2-ahJ@W=e=|@9x=OLysZOl?39dB#C4{B)-|MujySo*U=s*(^;0bG1@ zw7Ej3A~EAX!Az_>!YJ~vHk)|DG$-E-Urj%?BgujH--2#cHb%AAK6(8DtwLb$J>yCm zNFLC;c~PC2fk%RJj##P82dkwgA_r>t?9O(Kc2g#5_!=dQti2s^Xr!e;d+q%6)J}I~ zUK0vBF1z67fcwTvLcuI>!@_a0ZasFm9IiJ|Qh{`P?`%xf;Sy*kw8cFv7H<=3N2%k! z)Mt(L)Imm6y*&D|_hnINl|p@!9qzs&lFr-bl~*lh_pa*g4QSgnEv_|m;SBgE&&Pxw ze%f2|6mHeA+&hUDl+SzL7QFOJicZgi7;GyRP`ch&GzM8nG>hg>V; zow^toI1j>+eswU&Ou!yvTddJwEv=DD8xDR$$%dCC%U>D9g=kT5rW%%fM4McqTs#&P zN>S<>@n60$gvImSp{d^fb37C&)6i08ee?Q=h*i;gb--^A zbgqADsPOxox?|bW?3^6!7+-X65hJoqqWpHhSf4@837|C&{o+T9z z5}c{pB{!=q@rwmH{#C9|sWHw1VOmsd<;b-{qMQ#zy8SzI&uQ-w-~(GXG4nB5<;{<> znjb|<4(w~^tuAUCS_c7MPrLV6V6d@Q+a~xC>J!mqVFgMI$4NK*^W&1r*?A?RLhso+%V&w_^vo#Nu#N3TlC@Q&I zNqbI6ys{fNJ<@nM-6y5yGI94$+$V(QwAp`-s0}QTZ5Xc8uC`BI!S}5!^{sePSugUq zh>4jLoQyX|f4y7<{FKo)_^t4G{6Ia+q9{#(yWuYhJ2Wnz*r zBx34vb$k|H+Q)})SRb*sMAf4kLQC{ECf~L7(XCHJTpf&BUVd+c9Q*Pv9!3rECXRAf zb{Ar7m*Mq^W9{U-q{5s0huc~%Oczg?^x{U&U|IPDb@0LpcZ#tyBk=MII26eFYx|pe zzAe)ao_-_@;Ec1ysDM#bj{BrMX~f>w($zK&3K>LCSbcLhTCq9HdR!_5W3DmZ%A-cP z#_xthox((U8KKP&B1t?g1&L*4cJ18?GVe#4y@fDXPj$(BvNc-yFp^Z5>jhFz&#N!Z zOmiw_E=IXg=QYVJ1Qrg|RQ-JvoFTXUueUV&{`v)290x~WLpoQceLqReqls^+&GJZ& zP1d|`uX32tG8Ow4%{?9nMEl}V%_B(qRg8dZi3|3g}QjZ#jl3rjvtXrwUG#OX9 zQMQ?JRFYRirU{_AvAIvx!-upq-RmJr?EVk>})eU^E!g3mAjc zXAV~`|EkfkIkA`TT-TGF~Z4)AW|e{I;|reClo1-)X__Mc#SAZ z!v`_z8G2wR?SyfDB{X3MhBqcB9z={$!=2-1d4`MHEyz+2W-lC^5I+B+3zlOroo4+= zl+v7?>yu0MoK5Y4)wUv;cHovb@Gp}Ho7MLMopk-UICkX%&V9OCcX;?^Xe!ph!^Yr% zEYHyisn7Wjdbwv5g{A_R!ac=5L_`n!r0#70mk%8~Ejzqv7anXaF#gq`( zXuY&_yvAqOPDCWdI0)NkZe6C@WG46sTcU=zg!hyQoDx?u8M}EQ)4Hs)B=V{fD@d(6 z3|AW|0NfaKED7yS$c3$-^KE*XyS=)_ z@|wEo3%PwT%C&>p()lvc^f^%?>gohd468mrp6h^HjwRI<7F4phAg9d3FAl- zS}C|o@0pDQuGhFjeg58j+K|`d-b@3pTFdzR0uxAEs4(rF70mMLpfOfsK5|y?S!Nc? zHpl^UJ=m(5#Q6HXoV{t~Vp-H(^08wIXN^4N_6;i>M%pivilr=)CiBfS$W5JzXtl8@ zV(*|sRtT||khx^$8Sv&sA~qM>U9BNWv9v35tc85G&U8i0=1=#$Z0|-$c$79-3kwuY zms(+9gz?+mQD`+JVz&LW%xCL5YvDfFv`=m)jGr1zx52=ur?46j6CO(*!e^z=$vM$z z?+{jMrV3;oxRVXeuNn*vuE6Cz3%O^3E;ik+ZLWAMO2EEAP<2M)_DO}5%_umBwTrg_ z5tgR$y9L=x(@K3NXw4T60xO%28-_xkcnIjzQLqeMs8_m4c3C2&H-~8ERZ9(lo|*rW zNQ2Pfg;sk8^IA`!O|tV1@^qml;0LoewA41UsTbDW8gw{Xr&j5GNAr=E0t2!xG_j<0 z2yvE)ZO?^*FhDLh;uPbn;)imU4Y5D{9c&bIMN62+r_1y47SGNAFG1i}qI*P+!RuY7 za;hQpdQ0s9URtJJJ-tAxOoOazw#I8>9u1?@2LqDf5{Dl9t69#jJZ3D5KVE3QK-NO2 zN#>6W<0bwe8DiCOlXRK))=bghondf0q|eOK#5+`ztc$aoZTlawdJ}u};TN0;;N9{) zFzL%LQ(qp)Vjv2IL*MCnEx%u0ehC1BiQ^&ReR9v?G5m^sAe*1|*2U6^oO8|Vul5}=21@*G>dM9&c+5Cp zefR$xC<{moI9=oSm;37v{OEznng4(C;meKwihweBncpbzwyU`-nX4!+M(%u33J(&1d*d>cGdouDf^Hmv+QX z7Eyv#% z!wYrZ!g)O6^A`r<%Z0Yh_0YE6$kSkY@rNoU;Q5jmZkD&W#m-qZd*%q}eW_Rc%zB%LXL+BvW`JzTgcL4+_@ZeLD%62N2sFL6 zSw6kGt#~KQGMe*d0&sV>oJ~c9NA~D37rx<_VWytuoz@4X;*PeRzzfGkE59Tsyg&|) z_!v<6gL$R;ylQ3m`aW7A2wEeT2-dAq_~a@X%-H&hfaB8>pTA`tL*Xalr@Ln`Ugmp# zQ1gHmi1exU9@hvKn1n9kyhMo(;-ic9*nJ4)_vSB&6>Xwcwhn03Y4XgimqZ0qjd>zK z1JSeGl~+g9A+^XWBg6P4x+t-G4vT3k<`Al`r7=LM zaxho8T36C12`^F?u813zl6Rl{K>L!Xy zzEh-8-~B3Jb9stS3Jg7XM|vrH=!|K?ouid$@-ISqY5ez0N>syrmyK$x)zwMeVr2)6 zC$forpK07n{GY3nXkL|930i|%1V|Zu3QJl7PBwnY8gVe2NZpHq(iY-AR9}cR20#Ba z52vwI+0OvTX8MVAW^FIO;W35c6nS`0&^d*tih~cWV9=)SR*EQ16o`od<(d{0fHQkKztQHZD;ZyResze-3e3GJPCNna%gpi?64QekHEjF}|OShiCq^#ud#zX(sXUK_Cl zgcP$8x#Fw3=6=l2fa8=`c&@@*yXSpT-fytBJ|>(uTU<2>x=;wmyY$}IXzzwVqp9w} z`PD)BA0$FdCbAETc=DG}NyYz-2EFC??V8Q0x~PiZ6xAc~QL3djJ&FN|AZ%nHMHuoO zH{mqq+qsOB7@K?K1C?nWE5_VvSVxZsRZx5&w$f&z+kg%~>Wg;!L_a)%gpo^th?l*EFviATzMYUbV)|jW@*)DlU6-BNK^@$vIYl zkVjcIJ$l-iN)p2d02D-t5u-5qpG6dcyCTdLWND8r+KYYDcQwOJ%rIGaDT_R5lR|@3 zlz51&EIE)S(K!OwM)*YeLaC59|BVSLclq#e+uT{dM-B~N zMi>f+GH7;#uH4huMY29Ca1$WVL0W<1-6G+91I%xt0X7&f6x3@Dbu@-|Aimo1kktDT zvobpWu-ngOQY;lMAKY$JplF7hU?$F7&NPmmJJok9)fEriAwpul5JB9 zHt~gjmb*j*0bYBYDuUnX`uwi#!gc*I14-Ic2coCu-Hm$wdkH0KKQ(0=P`nOStOo46)9gaC)KQ!j?UJEU~SyL_p78(%59E_a0)lNmU6kWqKhm0Hsc;?L@^*mX2Wa zKH>=J*syyh+;LfW)+q00(=BFi9Rl z{nik*8Ew;(-2ePAQ~92!oaHIK32iD2+E2H?HgTa<&?>%*8#s#^iph9(yA1v|2^BeZ z!yfsv8Hzvm#DX|q_Q0IZnF~C(-bY+@GK~>3y{yW_Hc%fgOBE%FdvU9IT@bR03|lvP za8Ryx_&#e(@cK@*0NJ*nCHtRouXRpUnQ=%r6(+`-dBqC^4-Yb|!Mw2;nf6)4*v+;# zmvSxWg@=Q6>k0hvGRG{uaTmjA=w{r^#o24p6)Qxa#Eh(TqL@U(YGnj4y&8;&n5T@W zfEQW7kE096@9v$L2!5dpU0(=i;O60)@qns~&EuMxzu&Ylw< zKIfvsf&joEB617*&R}eM55-riKrxXnmqW#((dQ>CA@$U-lGDHKh-0#U*~1baCe~D#3Ex=&ow3J82T8SY$FuBzxb>$lobCfz z3p)H|_HQj&kNGVDB4=f}{xw)FC;+^x+mfr0uHoq z`0Lg@r45$;xvyKkfXJngOX~shUoXVP!M?#Hdlxfz_}5>-)c(G}e|hLI;563V&z`lf z`Ilb-IbRs5IbX|t|H`Kzz-f4Kc^+$P^KWap?Y~?c%2l^{(|X+U-6*|conv$w<#5Q$ zqtgQw0a$?*3O+B5KKf?Q^h0~otOU1Za1vhu(9INwiwWDeutPDMLN(SFSQ`L7g;T#s zugxq0m_Ph{Z=SR|uL2Q0LGEZbQl}LA!{QQ~?ry^1KZfsHYncs1qaowr+PPVNLE9KD zxgc=oa44DYTYKAa&k+cG^lXUu&N=U>kl;10#)^UEda(7=8iwC>_UZDOPmG!nFZ%36 zi$l`p5khI+Vro>9Dj8g)(L2#$(@2g&*S2=26zX};mk;qHGRoOZN41Gv1629(zCQaC zOUC=(uye9y-Y}d=OHBq;M>lnC@rLHl$FSan-YW-=!x`RoS8{E>hYvZixu^gB-r7_N z5L+DFd$OO3#o_O~{?;k)Kq&*kMEy8;uz;%f=@x zzCk6;=hcfmiFsM_z#QNZDzJ8htEee!>mGqDJlgGcN(J}KJ#Hz~VLR_;52S(EXooWf zDK9?Xv5#I)l@qjrbxHR{QLd4{uEl5{7%u|yzi(&O+=}c_3pfDb5NsMS@H}!pzs-is z2(g|!PoOXcFt(*))W;S?tIVEgkl8HelB7cPF$^ARjAs)~4M&~Sl}xIx_WjC(ap{e{5#*WI zJpvDf`8@apr7DI7b~MX?`1nF(QNfzjjf2;9KL)&qtcp?jWA>&2HJsmNmxAZ~{#Q*< zKoD1!k$tm~6-#5F$|9eH5jLlQj3SQ=ZhjShMtUu{RzX|lT3qjd?bzhxfwJX=u@+a7 zVBAd}uU2YKyhnYG)qHlb6^V*Qm3mN#9rQz$^?f*LE7C%sXWl~ETd!K>Go)5B#nsr2E4(ObE@`Xo=X!zQ&jvUXWO_`x)D_3 zz0q=SUZ*u0zm0Ouf%vcM&hfCt@2b!DDdYD|e#SoUmP93ysWqZ}CWG+}M+X$n*YrIz zpm&_H%5gx`qgDx<&nXVwHT&K=brJu;{t$H+O-wQYYpay+ZP4tR2M5ASaY^-bsFeko z=4hKZ1A2FajV0rPC8Xx{G9Nq-h3;E`lN4*l5&0h zQhTok*#yKzNmvJYwtF*1SE#lgeBAf4>|+KIh`8Hbr-|H*-;pf~U~Ay**gb5hGp>(h zFw-63D4lO5(WC$h{e&?#4rs4Elxyg)waV^4f#oAt`-2}vYCMi9+rb$u4WDv*p zt@k8*)?-?GB%lRhIS!%h>N1eTJN50CLceU!52%nC_?zf(r8hK9K4Mg zE?WFCgR= z3T@iWdx2A{Y%tk3$~%#A4GLZ1!zgFg%3{FT#vld)o488tp@?CAM*io?)XFqTe|oOn zPU7~{{@cqwiK-^tZxMy8ng@Px+|KZQJNsmYSN;Bqz3Fw8am3;|afRY0C!>MlNf`j8`hmB`)j;^lY_n(g`w7N^W5A2zGG;P3fST{rIQ@w}X z6mG<9czM^O5({!JnLoGp456gGr{b7-b{pljch9%d8}&RiDGTCHka;39x))>~3?!q; zSr6c6X#BGsb`rV%v`M8S-N;GS8^8roz!l|=+RCmXhyGtxT;5GueE(fwx^dCQ)o}m( z5WU_buO3I>nb{b#=MQ84^1nRhtC;eril;W@<}HZj8+TgJj4;WzU`SAcB1DVmt7}`H zyOKi|NEpq~oL2)C1kqOe`KH87g#>QWjcP}dX&Oh~PROxI{~DiMWY>?Oje_A?!(Ja{>#&h+00vdW*_ z&N}S&{gymle>G(E$)>6AR<`xta1z^@PHS5Sencz1WY-&4g7I^^{UGyWiq?0j$#)6y zhEG@vV=%n}x1UyZQ58DtIt%8#_O@jwiR)%~)GN|#96*wJDQY!oRZ~5ahgU31q?vdN zJ}PN9EzCsIP{zniP@9q8X6ai=Og>Uh-!5eFB2uH z_Y*g#*q?wvS%zp%bLouP?EPY%zg#?6Hk{2Mdg#BL=qBGFms3|Je37oC z!nOF6g`NRg%@71Q__<~$$0~AlzXTNX&=F;pU08#sTee9v4(1HBJ+&%6jR|0HBkV@_ z0T$X_D^PZV0Dq8rqt$1l-Je4czY2iXIYkaX{d4fO@lXL8C~4biJLL@m|J+yk06@Y4 z&vtGc{kk^zT5PNZW?*+HSAgXl{x(uSL^?-jT^(Ht-2y1+4BH(X>vxt>rM4L{|o7SR-zjoo53KDwo^f$8`2SNX3 zn!Jo?Qx5y^uPxVBq`VC%c!q&4edBb?zf6P^M4R%laFu`MlO5pn&D3{GYkc|hLV&3S zFy0f?7C*K&=3i&~LmZf*^+Oz1W$cGI{C5r8YS0%=HK$uUZ?(ZD&cRLmiqKoUb#=VmY2axe$2Wg zp&fH{>rd}%W6Ffei8po`2-My}on7VW2C_NAV*X14_CnP6QJ zqy680F85PCeD^8y;98s0{pH7r(=?s&K_==rqFdglEM%b7u%!y5P`DGcKb~m(_2K3K z@z2M$GhN?x(7v8T!F;LKU%hee4Pb+M8aj4+Fo@;PtH<5B@@nTM4o=g^i~Co3^C|_j zf6>yXoE5eTuT^fTZSq|SHiXC@IKs$A1S`}=fHwpq-<40$`2VZDD-CPv+}4P+ zY8|T-MGI)HmRboQlcEG#6qHHPI_gdeu_IlrUElq0U^H0W=7C~Jv z+ydvoacBPOYgcW*nd>88UY&D6GYj1jhvfeE9rAd~Q`025Ygbj$SO@t=(=tsRxtSxT zZ#WDUZOwgqwVbv4Ic}M6kAwW(+XE3kzf7LXw>_VdRYLNOJ&%4Z>R*>t?+B;SrWkpc zstsZcL*?AtNt#`!I;7%WMDj`3_bvvbe?0NxAo6_j_pYlG{t7e(gH`x0MSb9}xx|lW z(PIdc4lUl3qOtWAn2!BXFwA@710(jMDG|6Be$;QDiDo9B1o-I;lk#lg`>73+?PLG? z!H>r6r)kO&ECH&+Dim?*A;60NsVCCwC$iMl^T#+zN{)h$;;9FcRKdj9N$1SW{pO94 z`mNFKyY~2ZJFM#BA_sZ)OO0v2H%(?&ms)Zm;>iRq-r7s+&ev;c(`G=;-08Zz&uZ4Y z1>9uoXJ2X9AP#}?@Xx+8pDd5mhrcj0+MQ(_t*b{}0mi7FvA zDdzZYDq6H2dKT~lBcDySJ}a4QAeRjAbR%vu#NC9vMda`9CCs`7L9SOs@ap6tos!N- zd2`Zu^X@veG(b%Y&D+*IYaBd35H=P(BqFP!N@s_CUFPi9Qm->?=>{Kvqm@hm=rYbF zEW7foz2qzPu&Fvqp;Cx@Oy2dls8wRMf1fUfbiA?Z^V3{v8}H)8NBr^m>NoSB)gYYY z$o=zY9n{{d!XNgjeFzmc4!MM^)QLmjw9EUnw3{Ks?+u^#QyPxPc8aQ~+7nLj?_82i zeyiB-O1^|#Z(I_r6E%&oC@Nhgw({-nGPaHMS$1gT#0X7cEv7h(5YDOcHlIr;E=(G~ z)@gZ$ZPKD#dG4M7nAW_<-9DO1SX|=Aj+s!O(rG|>h6xPKYn+#OOz#~G2)4H#3?+bi! zlG#1IoF>tOl8L?!E%fvf>CMZ~D5BWou<7FKi8e&)(HH*O!esu1B}QoczI8{XS>22z zG-15LmYu%Hpvj;pv1Q-hgj4JxN?hJarj`9{yP+GSeXozrPs_ack8?6~{+9*z!wGV4 z+*5j-zo~+7Z&T+{pDxZ=S8GS)lRe**5@&bT71V0-b>+U--E0rC&LE%s?_{H>rRbq>ad!F&(Di2|mAgK)hBCE(TjUGb4 z`8$gPTB>(kJfK^8_;Soq_mbM$a=D_s^BXcT!HqMSwDJVj-i9@YZ_2D$Wb3 zVAbRq>-lY-aT#Zjy2X6)DrNci#q+dqY1slI=j%jkKQe$Nw>gP1W*g)2hPrd6f} zO~Au%u^D!4zEt9>a2tS&NhZ?!1C+M~BICmdar0XNz#r#RQbS+uyy*O=EsI}0S#wy0 zT8n(sup>4Cz&M|Tq)tH3&Yyjv_|uRXW$ShR5?4Hh{gQtssBKHkqe{-*eY(+}?Mcfz zUuoTzWrYy1?(M-HQhhph9GCr(QP23fXrE6idtPcz! zi0%Xq+LH&?Hlfmal-16Dn2Ik~8W?QNoYy-%hiG^~Ai1h&-`@)|68uU=jIXe&j1@!B zwV*!vKX)FGDW!uqsde6E9=1oqxw-=?DbtkEOHj!N6odWhbJ<6@83Vd98Wlf;c|J@Y zkQ6lhuHa;5$*W{mh2m&}Y#^G|O0OND%VaMD=>oHg)nI@z)Mku;<}nb4JvDk3+bRCp zQr&BusOL8zaiN=_zw<;#lUXtNJaKz)TU9g*6ge!~!JHv}YP|8eq>nsrX7{!7Z6P__ zUit2M$1h@rS|zk)WcBwl>Y&+QPdQZYXVg-}cheZfvW^H*K|sjEk%5lbs&LiXTI#v% zA--Cbi6M#o!L0ct_aU{Z`IwXw&{0J7-(FG~X8SIOH@ZP-A-klY92k}@Puz1h`+T3o zHsMt0yc3wH)F8vR^R`G+N7Fe~BXT#+tHE0LXeJdSd(t2OL!M&-K){=&4`mlhd=!Yl za}$}%yV5DTj+sl$zt*_ItPT#@cUEQ7wYNirvRyX?b@jv@e6q=@?zX$q_Sk&i!iM@0 z2QyaUpwi#mr)1-eurPP;*RTXkFtwIy1kJ;aQ^X4)EzvpZMVZEhVXU=1rNr@CqK zwSG2f+1#`Rpz{+}2yJOCWLgzfiut0v%hrT@rQ6s0-lm2`*M~>KhvM(ya+=-5`Mwff zSVxVX)a`kBO-Y}tZgnHN{KcY{771Em@IX>j$%!m#TbEgX0EwmIl!K}uB;e~XatbEU z)-UO~p!S?`z+_aPZyR4x)yPN3Q?pDs23@1!H6yqb;6TP2foPHG&6BK2oIv-Q?G(2+ zJ%}BO{{dj-Pm6~zvW1OdcUUI!&C!w?7U9$|K6D5(Z>%uZ$~QDdy=0j|V2i<8mAQn! zJ7Ect7Bx zvW@+W6k15rv+YqV3ZGv!0CPVhnw~y&u6WdATMh~2b3&TU)%C9lXkvT`COQp z)z)kO)i@z`bU&zbdIw6k*hQb%BctKY^wS>?Ak1AX7eruKw3Q56Z+eTGoo4Kdo{{2t zZNv;k&OtLdTjw{0O1!GV4J~SoR)Ds*<5)**XpTK5HbBH#6Mi$+yT*}LS#}zGQh^NB zD?Tl=24@2p%;+h=0*#?50_#^zG>%J248Q*kDQ6&YbYsTAu4wABo%x5>CO1PzHSFuL z9%UnJ?XNytYLMDuu#a7=YJT}r>rI-ci0V@51pHZ=u7$VFgTlDJ(y;tQI$m!un(El2 zXI|cEOR8qmM+jR0o8bs_8-1$4c(q)PEx@78!c`(F6SoWyNc9_=|oHX(0ObVhoi{1PI3>T+C5&jz6YZ?Y+8 zS#YmxqH=~-f>^JH-Z~;VLT;;}uw3M2z0CI9)+JE7AT@zG{TBGme!VN1zp*0{i@MNb zmy}RVyX93kN>Xr#i~1Vc<4fcEj^I@_O<|pIpsLAIuC+|Gwxjw)Y5G z{&-Rs>rQZPX^Y(8;{B!eb69Js0gfA&zkxT7;mvnm_Fq47CvU#i;_qALtTC`{b;FK% zy2?t!$ksH;mNF@N%Qw}#%zr+7qIATo&I013uPXZ_g-cPD(2s;77O>X~5pUq*fOn8*#j&d^ zcOHZpjk$$sa{81);vYlU%$!~#;%+Osft7Ou-#Fyh%v509ts~4GJYIjX{s@HIfv-M1 zaKdamtCAr4-CIrtt_DHzT45PX+9>;?C8xlHi2v z9==7vm9c6GyaHTAB{8OtTVmyVzG&-*ZtDR#&WOPn1CANRXnE35z^)+~6=^qPt-MGu z>2tOHhQaNxI~1PhoHF6jjtsRDs&X?DM^V?rkJ6x3K)>IQB%4}CM$2UdDJQ;ZkpnvG69K)T(mu(uk>ww!4V_=|#va3Kf{y{E3T}j-|jP-eK zQ7%#v5D}{$edRqjkzY;(6ah^5TMx;Oof;Wd#iAmiPsQN4n>v#fBp z^n2Q&x;DMn_1v?z17K;r#cA~wa56q;dkA#=XLcH{cS~9#9j1-`5;|BD!t)WZD=r_? zdi<5ZA8o>c6M*DBY8Lm`lVH66&67}{MY&md8wOHN!8AUmq*p{_FAJs(g+$12^)!l0 zk$dzX^SUoFu^JzG?tB`{iXHR+w?Egu%j(4szapuKI?>9F+Pk%vZZN!Erlqx_9jQo( zVpY1RyKm;tYieDub@cOSQ*x#V_H#*jfw~&eFMB^ezrdpS$FMqKFG=JXh8f*wL8stm z_mFxecT8j#sC^yK_{O~J2=@3T!zM_RNqdkvmD^QSSj#UBU(8@lyk`i5SF!d21G=c% zsEZy>WIA)|a@ro49Q{*EEqXYhkw^uuh5NkoYL$=nmHI#C67dJxu6UuXYpL?RF_({- z={35^JgdTKtev@>JR-@9+LA*s)Cab6#&*>$kPqRSl*r3&AH~Th)S$&rJ42m)4uQ9DQX|bB#j2^3s}hw&G$4=E=M5`{Gj)H zzl77d_S?yP^N#7|#vFVL^nVcv%zgTttBRS2t*JrMg-xM)x4EWp%rDj&d)1iJ7sUY?m9nRqVerhJ@D;@;?kHt&|fKxd88#p z--r0?Mz>xsstvP&x%7E;Weg}NKMW+XFiF>Zb5|@S*#ahM} zV}#1HV1$yEZ_if7wd^bjzLz?>kiQFv8?pIVc_~G#u#BMAzSwX%kqWskZ603I5;j)I zN4m4eiQ>h7sqOVj(?I9N$#G0>Luf@G%$v)Dfx$5`6fO|7GFKY=cxvHH`oyJ_g6g( zoXpok#`3Anw7H9^P!eIHu$+s&bD$P%LetKEy=5Y|dAk&jtvRpN4XZ{&q<{NMmH6un z_>$p`gFV&3mZfcsWI;kMJO1r1ZATb(j+gZ|jo!TgMl=UD^`Ah_ z@;6`^KIIH~!E!Ss<`VZ8>YRjO^?y5hLBn5hhY^E3<`VzJ>KvX@z%s6j>{mDh`h!)u zjoW9~C6`|~E7_fH6D z9WU zXm}`7c9^mQte~lNp;-u1c9^omhX=~ke3+UKQ}f{;1FflbF|{tH*2UDi(5!+fJ51T3 zB4+BnTYD=1pjil0c9^omhvC80e3+UKAJ2#Jq^0Rr0Y92n(6!*twk;l;OMVFa>3;wN Cot#hr literal 0 HcmV?d00001 diff --git a/public/assets/8bitcn-empty-light.png b/public/assets/8bitcn-empty-light.png new file mode 100644 index 0000000000000000000000000000000000000000..9ce6989aa65a7a26af22111ffd49d463f92b29ff GIT binary patch literal 47445 zcmeFa2Uyc-+b^hC2OVsvbP+@>RH;Fl1A>Z3QE8#52oXXLNC`!BMl3)Cm0nZ?WoROV z9>7tWKq4)X7EmA&LlPm7NZ%)f;yB~G-*xXt?SSc)xMg z+SLN9*0GC#Kh4#G%kTA8A6T_!;W^i;Rbfu6)-IMg176wx?twpc9nS08=$orHfKS`O z-|vrBFV+O#KjK=dx!(HGnx*$^G(ovl$Ij}UJPBUU+Iu-TxFN2%d-J&Lw*e1+@i<|L zShZ@G1p9CGNz;8_Kwku>a~9qfhNso+-CboaUUt9aAmiui!ER@jx}O?&>+0ZrQPj`X z#SNk6ry;gbLJhoUKb92}T`1xW*ATNXG#1ry_i_+bmXVW@6Vv1t6%|$Yy6mWCs;jqH z9emOdyW;Kbp(ZQq>+37yt03d<1(TJBKp?VmM`Vv2kp?BC5&mx87yYE&5aOIhmfF#E zK-haZd3ZayyNR;fy?Dvp$6G^8jNQ@lKh8KE{G3*LaziXm3rtX!{f(@=jGXLp+n}mC z`>C3-lb?f&rLL1Jpc&{xQ&mAueWCn6zFFzE;?y+-zt4De<(L%@Za{ZQqNSn)_WGL9xL zV!?V3{{8{#`u*i2HubB_neY3GYbw*8pX|7tJd>H*M0+N_zrEw3mSn1Wujyb*)6DSv zEX$L8?Aof;Tx&OO71jR78)NA&lIvofj|%_tZ{IGI57~I2=&w_s5jy zmht*w)1vPVJnC=V`26UPIIFGw>Nw92nYvbB9j~>(Y9Gm^q5fl*2TJOH*z`}P|77~V zY1L0n|5tVTsp&t>`@guDpXUAFz1vTp{zJ$6)2IJC6#NO~ege6F0+OHT{onEb&yekB z$o4NT<|lgpiQfM%7C)0S|KCW?=xzV{DGjB^O(tC`t*WXjRf5WW!|3@PAW!wnN}ekB zg!ZeUp5}8N5JKO`%400Z)IrYn^{hNm+jOABd%d*KnOEssPa{?$9P@pT`n`@PIvrdo z%4>~n2I(%uZ1alg?LQ5kC`>dPE{6e+3P3Iq_U^9_yw=>W6jvaP$8nJ6GcSyf`E9u< zdx%0{KtG504=P^Je^hvFjMiJ8yscN$v>z8ThiLi2t$5s8U?ok;XQlnh;S+V6(2^Wf z=Ky9lJzUK#gP_Jy6ck;)*Lp zL1RPUq4l(c)yhK+P(Q#~;O;VB(}n>#z&_frnp7lX1;YG6I79 z8yQP#uQ%pZ%>}S}efwtjqSfuRG-t=#Sh0-^LY`e!Rmz9k*BdvN@6%i1Sshq^5E^hk zxAMehZEkx1nDOP4o20fqP5*MlVD$JaiI-_zD`>am3=j!Qk9pRzOq6U7g&!!9>T4dO z7WXOB>&@+glxBP@Kmy;rVD$>~P9FvWLB;=)w8Y{5U27d>OU4fssgFz;Y0Zw;`If6& zqnOXGH(og^CbBZ7SYSj;lhE-iP4RAOvi9)*^ZnQt@xL@D2k&pWBe_M(YeZ{)61T?; z+Q-iT8hWYDzz5WOQ0Tu>FI*A~ftYgZ*3uBJRU<>=H_1S2!dmIZmfUi7ful7@)X>Rc zK9t&?z}Grcf8D^!&!Y0MgUvPn_iw}c$SF5N>hQ_mamC{cqdBdWG!_x=CMRBm23m@=RuUC&M-ty=dSjv>;O+#6N7Wuyb9wl9-E4hpO*ZFYyo zvUPp9sma)*^Ux6~tueTNc8KEp*Kmq7^o~-a{UlHPxPDZ+mh$OW4$@@EQVl@Rv|j*w zio`$eT_(tj?R=O89zwNvT+mM?Q!}(;q@+tmdPBVWHxb_-(j3ZQiPw0keIp5R24E<; zv)iSY8m^A`rOC`AQ@Tjq1#b1iVm>9Nu>a+_C24x_z7egc5=pw)WH1+BTcuKby)ot9 z^ok27Z8P?Whvn&>TJpgjH@MPvTeot(F4HzGut5%_vj_;O9a67F< z_RXAJDzAMZ7)aM7>mB#9u;*Iz$8gIG`@VRpW$MyNx^gUS;;5_h*+T+-ufKB3Y}r2d zjWARJVVFT)S+_hQb1AuiR}!{m&!g_5%w=()t}bIj+dLpJc0-3y*)cn0c6r-|I>954!P;{v4@($Q^U{h&b!4b zRw`zUTfLIl>A3<`F4%&(__NLoE)PdV6b#3q^ZIzXHNJbyIMC7-I)7=}C-m|pHfCZ% zXFi8+d~%ZjMcGLR%q;qwnQ8ZL2RajLth`}~N2@|lh4ORDG`6;0(jW5b^X;DUywqs8 zE|#U6vLel*a&dqn7X-zGRwfA#wd9sDXmXOjjERgU8|{P^kt{;O30R*SoW{3#w1~q50^acb12~TVl!jJ596LON{yiF-=Y3eYP2F) zB5Yt+IqJsV40b`aOJZ2=a|M_q5U-(tSp|Jse=;=qh! zZEyX)LhKEoD(WP!wFt6gMGCbq2!X+SGJo5*Qdx7sP#yj~@Wu0+yP2fU@;*7A=Ww-o z+h^0$)0q9V6&xojcN>szpP{1o4s(##n)!Rr zH-HTVs;VO;OqZ()E>sX1vC`d0Z7aA_?A4XV2%SL zf1Fqms6bJ`ia1@+V%WDW)&g_F50lkhf%N@r*wV}PZoL2@Oli)g0-n>_jI@G6dMUTB z8_1p<_(uBQ0UMiM{Csq!BX9QT!!!HG-oM_ttVyf61^|8tFW4=%Vn)A&R!gmmrB_bV zXx;8rv!Zhfb{3Vd9VgEu8fdm&e@E;A?i6YG4W+a%YzI6#seCGKdH%%*AN8A7(Ya+N zt_G|aeo$K)Pr$#Zhd%-Tl5YGz5jQ1C8CyMqKzgzg=fJ-)1P6z_Wzd2krfxaplsHE0E>3sCGGe(W_#JoFT8;PP?nVG?zUp`z7Y>l ztN#!Xk=#py($|;0=yz{aL8v}-Ita01=~nFHLKo(HK^U;J`^vVzx4bgc>Udy9VV@Hd zziWB9of2+f{IlNc-Cch2{hNQL##X!%d+ycefe*5-QMOvUquPRuHV-aV^~V zLw@}u8MQ*^g`xfwiAB==cST}1?^i+S}5 zSv5aP_w5U07{>Hd@~SG443c4yVV>v9`O-bC7oGdCsJ%CU3~zq9?Jth->u(bB z{{+NkoTee7<#k}Dq>kBPo4@Y}j>y-ofP7dT$K@5=6jVC#JYeUkfCz=QV4+F()Oevc zi_xR?86eJHct;Kne#XsdtTQJu`)NsZ&sVdzkWCy>0gxX(PX@;<+%~5|~=c zI^`*b_&il%s;fqyBU?!TXnRGLTP{d#bPadR-|Bma0O+=&S*ki2HLD^WH*XIJg7O{g^hk?=Kl# zaqU7^P5byJi;bxCyu^lMoW`$J4*|<219RQKAP*jYY7f4=csA@ zM?TYTbMmrHz!V%ISKdxo&|2P2x;(-~>(6_1nwIv!F+BCowVq!COM{f#_yC*3gSOV# zhbG|Yb>cJhKmS(^Pwa-9@agfd!ZK0vVx#GTXN1x z@#D2VRVSpN{ucKc(18cFFWv0MD%u_RkxzvL4#p&4P$M0-!7e~xBzmV$VBMP^M&2*F z{U(}u+nP|KTZ=iD2pB3d&`t|_<1DMyDjyjxkql=FogxfyD796UE!e71@dbYr`gm=C z@M#xeHC>(tCXcC@efu@H8mIy`eM*<-4}-fq(E0k8GKG&)&C4=uCzERPt?5I~U6R`y z%|!5nGk8^spICl&cdWXsk7cdM!7#l$>5g=9Bsz8v)L!?}NmivYuGO;@lzAE?Mo^N8 z@|5k!(0_dSHo8s~jog#p)rj&A7q>r2PS6NzohVt1uOr!k92Q@{AmSGegxYS{0S)7c z(s_xw@t~eh=@E1kACAb>jMDkg`cc<)B+A0M?#%SV+)Q)LXP#07WN8BP_M4Xv!;~OZ zN?5g&6H*kW1kS)FCSU*Ud_V}Kqu zIbeB-Du0Gb)X!#)i3<Icr-MX68hl>X8`l+)l&+8`NUfqhA$Z0if%r7i`bX?YD$Zt0S2sw2mxu)W^9G zVS8x7)6`;Cp0ulNW#HsofdAM4N=wt3@rg8VlfA_>W;Di=0N9dafv2Vhh}`zI95^y} z3swKv!^!i>)#NCP%DE}Z#}BdAGefaXjCJSa7HccW~fb~AI+^gV;`rh>;O z&17UIM@Q@SRPDJWyE~1ZGakfvrZqb}E7T$hrC0g%DcBS-eIWfdT1=)-Z_&7af{xR? zV$ArQ*KD&&p9^N@6Z!-;&%X0*ev~F%?0Dq3hROZ%O&c*9H+PE;NlXh&K5I6lJ^*VL8fA$ z`A_c>6C_;=RB$>{!!SR!$fcZ7wHVmWzlCG5A~pggD4yE@8@%NQJIzoelhHN51H)S6X@lP_L2946PCm@XR<_NU%r*+n?)!>1df zaOL%UPU^$NXDo4oewi*Q6=S&1TpZpry%{yA-wf+aXU>~4bhFWmIRG~uprp#o&O;oZ zv1k4$lY!I1opKR=a-0YH^2S_W^F(M<)CSQgKSI9lrK-z`^?SRBt1a{VPR-98|h(R*C({%?nW_v8jp^3ZG+g^^WXMyY8zn49MKanDq{`L)=xyqL`}lncQka= z3$W%iZ~vbU2Vmwy8=QH<%zC#32|#qakBU-u_M7B~d&~6=$jKb3#ixWPg+(c)htb5T zlo;PZw76Gg?UC)2){MG~ewV`)Q@rVI(@_+08!-lsxIa28N{Kcbw7mh9fO}~`olhs- zwt(w!JZH~M(3k5-!Ff&sV_ocdo^~OgoU%Prie9&he6{h1tJ5y=4_~OPyJ&qmJV%2c zvPB$zYD=$v7eSg{57!?ITqOVNFFzpv^uFjlN~sR9UGoObJM!^2IdHY)SD-}Q?_pV- z>~6=p*atFReo;)zT*8JUQS#1P#v|2)x~$r^P9L)sfJ%I+4= zABku=j6WfTA)O+$+uI>)%#LEWK|&fdI;~h!1-_KI6RGi07Df0MEUSbpBo$T>(mqXp zu5p`>^}e`%ICHk)Fp%{@3H==Y3yL_I_GI<8XK;KbV zOQi7a^s6I;5UQH%%h2o9Ib;$`Sr2V-KvEJctqP;UKPqTTDbz``F^j1>UV2X?UND%Qj zPdlsjeL^t_eL_lUAfwbuq4rZyWWc;IT5=msWO|qX{6w7OOA%L2fDziwjw>R9icT$n zp?5j`W7G7izS%FYx1e-mDSg1Cw!nvLrmAW6Ywp#5c&8Slh%LyA)hU>;&z}N@5-;0} z@n?`)CcG@hKi1sU&r9D89eC>6>KUmTXiLh5@SR4u9NuDw3GiW!bQXA9c2XqV+XBxV z9TBb-j>kDk4NshqQJPN3C653;YDVudAj(W4-`MlBfb9rKF(5^DD)Y+32<_nBb+UoV?s-I_fvo(yku@7H)d@83~ml%Rf9i@z_FQr>Yz+%qG zQqDS8x4&K|tUk1$mYP?6>36pVb){!c(5 z8^}4OaNF+2$82qAe}nE|oWr#WUh z6V53R7N8@rfWkuhAVji19LY9Mfy9Jz5*j0P=gmtMJwt0K8v{*b`AfgdIKk7=gz0#; ze|MXw*eEj&_7qosLJB7Q`?Kk@Na2Q#u6+Gr!T>_)WsJC%J@#z@v>sJYbY8TL;~*Lu z9=O80zzVqv?ZJCbneQIgh1y&W7Z~hP>S*#=z=>e~8|tF`nYHilq}9E;urIZkl0I#HoP;vZ(nY;UyO@L_na-B#ZVeRX7+ zF1WaYv5{S4;xCJr7WIRGTu-SAa2BRF%YI9l^`%!0l@K;;P^h}Sk@(7Ufk_|#2bkoA zKjv4ag(gH<=LjPo1Z!vl3;`KaAZ4qU|1ooGBuAN(L(<*@q*60dk7L4LZ(_qTU#*!h zI?C9^aPbH`E=Ot2`LVzPgKKZVd{>rv9!+!Z>i~-|d>=SVfQYFHV)m&Wjt~pVs2_;B zug2A@Bkf%bUkJUIwkxf>yIYnPllM#{Dlqs@_hAYW!ppY%t#K*Ndu|V9R;K6a<9Qn% zxB90#+ugrAY!T&$Y*J_?+w60W#{SpNi}$E*O&h--Aaa`PgKZ`|;){Ft*`PW8sgp#sOQ@zUYy zp`7cDhE=PjIJ^B$gV6OzgWfOq7Z6X=K4av8bKUOy6ZtO*f6xwGFDZ}zCH$V9Cj2w= zOdew0AgEi)f8{DiRYXDE?Ix{@#`nPX=Ni0!Qq6gjYRkFAg>KQ;XTB=r5+97kB{;Q_ zA4j+T1umTMWZwmlu_m^dTSjGe{R_?>#=kH2%iY(eJ~no(ig$6m<@5WRQU0Vi7Lszm z1y5#Yb|1xHcisba$&QaY7m?vDu(wwCq#$QRk4`*d8b2?xGw~3hbBB9~Rti2{-^RT# zfegdcL>_D6p^~0)!Rn8k2zeg}5$?M@kmGzh&4mv84L$4lGJY?98_ye<$9DVV1-fOp z(Z|)ywL#sa#8AgY=qm>5Zj)Go`eLD7I*+@84LnLKTl%%8M+(Y^D4F_sH$GZt_l3;Q zo^7)mndni2-*{hOSl7&-?wVRggTUPEyz)s?(w^igO?2+~1jZ-wMJgo@F*=gtpn)Ya zM2d!mkkj!+Rc|KvDNW6#%5SMY&IPnsA~Y9)a6|V6om-wKKS@uxteta@T=kLguS7 zy8!o6Y;$QxFa_N@li-8(rV^Z?W!OT@a(ZMNpq2h}0gjCIlxWlL9rFEhw%h#!b|S*9 zj(E|U_QfNQu6ENp8}|2DY#19p6U>pWTJR81wmp;?1ty|rQ;!g1?RG)b{h?+ z{&f*4{q?vtuUcXB?qCkdX`WBY79C3qM!q^3ePo6aGeV!-i`Hnd%q>#$lI zb1@sYnoA#OjL>6e&h8SA0j|cq-LD6z-Nn9*gxB_vF9DzPX{?z^24LccD5gPO^F$Dz zJq2f7<&90JmdyrKMBk|B*-Iq8dLMvIOCjUqX$CSk(dWBl(S~)FEJONGE@Ac*IlDJD zIyh~})!F+2HK3>cLQvkm6rZXbGR67?olG0@Qt*{c9(Yb^cgMuo1|um=Lo>F0&#YU6 zG5C1KN%CoX=weH)8cy*D4L7wAx1Mn#f02Guyg>LD7EIv&Qu2-oK%|>HE{7AfSf9H9 z5q&GXU1MjHm-YjZ?K$0~+FnYzh@`JaoCq;Vo~(v9&`9-9mY9wYz%!+XeQ#3v5gA2k zHnAg}SMph1xEP#@;I6!BX&f>~VK;n=Keg5v8PuMHsnvMR42Qs3Mp}#BQX3$9 zgS#n}90*yR3wSF*@TWhLQK8xPO;kv1uz)p{MoyUGV79P^;EWV>kik^)MPzMKCiMzI z0;y~@f?*ao*g&c#N+eQiD8Y>kTS`;SpZ(E)_RWs&5snGEtA5G_M#SCvV-cmU3f%x; z>V{uJ7PqH_Z5-sW^x8oaZXaS#GldY^Vl@zg!@Zc5yHjRURq8QdxzZ6U;Nj?9$+{^Y7dLE}RNA z5aJW|@k1QmpeLTK5G#qkUF9nppQu16erks;x@zN8rHJoI(#M#$g1O3c7PMTVqf@0R zWxw0GB}?b$O=r*_PGE-o-IATUKTQymN7qy;kvsjkyyw}kRJnq;y#P0EH>tWf9a0tS? z)Xxj#(0C97w29{C#Bu^0YfJC7&W z@FsU@^XemAu;)wH0J`YIEFTdrHt>h3z?wQY+saq-Q`GITLWVLa)>W7%C*685m8Jd& zRzPzn1(SGp!j$D`YmhhVl3)3IA3tS8iEN^YsimT^(L$eFl4Bj$Y2SXZhFy3BX#G%ltQ1*_p?b5D`&e<_EjmN-iK<|c( z#uu7AOaR)5V;R-`i4pm5!9}s#T3s3$BdAgqg7iQ7SFj$zEAuLZ6*F6LZieFT1-C3d z>|Y7Hmx#!7KPf~hDuocJUN{zz@IDblhJDf3!H*E<9>uw5xv=6OXB*q4jMM|L_u|1F zr^SSh;xDRlZy9KzgdzRNKH(47G-D-4AF8``UP`=6e(t$Pe}24!c#OPpdeVEG+yime z!dV!)Nux(chP>Udm`b$#5Gg#elx2IeZde|s=6KggCMB)ba3JJ!z}4<&_#vMqBbW({ zU}hYXLj>*n*Vd$|+ciG63?BU2yN%})!hgG6!$6F5QK?^~0LydS$c`%P4Sc zjmZe_7{r?j;%v{5Nj(&(;8{29r#K}2p?A`MYobzNRYn>yYZANk-FiO7;Zn7#pp{Qh zpa}$;@2P!Tw`Ap4z_7yL#|(L87vZxlQ`#q=0)QDjgqh9jc?7S^PLF{WSYTAI^$+eJVPwvexVBk^x_7iRJ398lsX^~Rt7uwRWR$tHt9Sgq<36e z^D~UzG4#aOkpdhoMs^F=TH2gns$brCF_as!Cp%$XAzJJM63sE3q8mY z5xM8u)V&?HE&JG@=ve0OJGXkQ;?r*Zy*gxFh51y*F&aJT(`jxQlY^Y$)&O)p&B@Sz7(fZqr9 zW^o6zbx!q?5B2)Q`r!fgI z{>+^@o0vo&3jL+^bOF8Lae;63%!0gKPzSO#%GA~6NMH5CP3taLi_gB9=#TcwM z-fVc`3YbVbF$t9_U^CbY3K9o!Fo7wmFh%9r_*MMkv*$}8q_I8(!jh0#YvJC z-pckjcj^%)Ul2c~mO|3(pHfd_ zy!@bd4~JVfHd=qaw%7NbsX@N)^C;l%=sKq%sU|$N0oja;m=-MrLa**b_i@(c;n?n2 z@17o?JV=}Mt*NK8trq%Fn1J1QK#@50lXBQ`!zG-3N9(thw6E5oiKfR~q8p2= zkZt?I;=DA|gu*8*$gcy^LP)?NMit$qHMGhW%MO>6Qfv_!rCTRXPN(Nb7GV`DKTWt$ zP7fseYo#IEyJTRzL8(Jy8ol=wiPn9Et~50P$`QRh2myq+h+bw_3akF{uKTvr2g9tc z9<$?cRunA3M7MdO7AUn@>s+6+!hhxxHUYg=h)jadYREw1v#l@O;pe7 zrUM)7A>E(U&QdTG07$81wG74Gc$OEgEtq0aJa$#XOlCK8D!0y3tB(>}TTV+vrZ5j% z!n%AljA*uQ(ooheT$sKZO^q0)3=JVoxi*)I446)L+9y*=V#y|{g?&+kQrz#K$i{9) zF-p%Uw2R%*I!=9P0Fh)=5G?$F-2kIY$clUn>(F?$SEaW=u`fm7D8U_$olte^`-JH! zDMeC7H5T0>2@pKq9jD9LZSfaZ`UZRShJ%!Aj&TTKdU^`$g>(eEE-8K5QeePrItGFW zYAb!Rp~qO(XuuM-aT+P z^YYZvV7M%#5dUTIR7V`R7to>BW{1K8-#2nU5ZOP(qx&Q*UZIJ9kkXYM=IW%aL6Yjl zwel5r6*t9G60tj*hYRiUDAw7~u*epFWF+z`&k#O3pl}3+0zwz=*K40#s?qtjTY(hb z6`L!eMpG)z>IH!^I#$RE?zae|o4~1+BLlg&;}>|kcHOBh_q{fVwY+ZPCv6_{amBwb zQhX$Wh@rup!l6_sh@}k4cSzn{c?2IBe2z}trwWZajiX^+@RJ%=%z`?gdU_Q!5bmeA z41vg1k7_{JF3d{k?x4YP`??Hxa+H=Cg)#`ezs`wUZgA&=M%~~gYQ?$;E^c+5NNc^za zp{nSjtBwxVW`T#Z&TQYrL!X&xq%Z#4|I3bv|bpNo7pBpDP0vUkJ7&^oY- zaR^G5P1eniJVG|ePn`_j)ZO*fs>w1Dr&#;ky(^dGM-e$St&fPA${1)D(nsLK?-yxo zhw~ayOIkD@)FLUK2UB9;U|~#=Oq7qgimXzA*Q$3Zza#8Yzu^$;R9xYiIj7Bhg) zb)c7^dSu={Lw=$*?I~616KUXI^g{Qmk8;Z>q#G>k)$=$XdgbgVv->#_*IJZKv0W9V z9U~{Ib`_x+#c>K{tRmXu#i4zzPfD*;@_g!w%vMO&(u(|;sdS6>IFJa%8jKcNHxj=- zfv_U;3%jRh&nu8xicBN)C0wPHq2*HfPamW2_qGf_weH7aS*+bXbEO&>_-vw=-@`r4R? zM-vlM6O?B|upsIAtyScQEQ4tm*R|vCPYmZ{+dtUWAqkV8JF>v{l$}F}tiGKL|GZz@ zF_S%S2c~Qv;Bs)}uDtQ`^kd#zsIww>KK7Qmw=ty&(UF3}`u>^2u~QH5{1M$_R;cMB zmIm)+FJznS$tCi83<0w^v7;_{-9vR$FjF&HrRA=N#js0`062s9RZJ>jsij#!1qv--yzpVGM)U)cT0l^SMJ!rxl<1s4G21aMatFVi-z7&v;BcAp z%VWI0!(BPS=vh5xmW@F}`(oh5IeCfT9G?90h)Y_T&sl{lpea5>_Ku3HIikm_E!&a! z+_eyUfY=qRG1h61Z7;(gph6Kn$Yhgj>0hm~74D$DbB3%=A%roSXR{lv()`@f@2BQI z2W>eHzrDE#zdd57jbNwfopNugSyflC_;g2Z`sL4RiyF0XcoR~{#dcjK*R;pCj2Fv< zz!frUGW2*U_@v_6R3-%kj`J-8^%?@@?7aNPMmpCsRV~R2-YA53!?KR z%Brk#BvK3N{0p&|(FZ+gNz`O}C&F8eJI@MZ68x58|AjNIlICLUR6yvaO}g{iA%`3B zdfJ7SFMSbWcYNSj=z!7mM4UqM{3p*rkqDc&Cl%c?>1yM`*&l=N|c_Xq>a?b!F`{h1x02>ChGc{ zhbOI`OlNgijX{t}`jj3)qXvz)okU2?)tsI*zfe#j$<3G;3SrTy>xRts$)Ri3-$3Np|nFrpt#*vShm=v&n`IDC9QH;RjE#& zBsGz9TimtVK6!X%(vugr?Z%ZJ^_!mp>6qg1ZO#6drTqh2U=r@-tP00uWSvW=%*zN; z!*n`DYG@x_uz81#0Xe+uVeawK2Y6F~qZpB1yBvHpmOxRpA`|0I(M+&RYshIB(>EZfiYf1JsdUs<6@vr4@@(jS^ zkZpu_97CX;eC^k2HQ5~SwMP~x3LP3>IRW_PCCFtqD(5Z+sJ^>itoDO>v~3ghuw30& z9BYXAV>!}J0!YD2EcfwpH{ZqHp>QxzYw@K`UEh7nR?43(aPlGlzodhV^p{RpDyC#k zwrXaq1}^hp-Fr=q2)8d21UoHhEohz*0A@~;qhi{R&OE9kSJox@9I{%Ly#pmBi#Kuu z1$c4N$M#MqSn%`p<&Uo};nJv_4rqe7t=H9COgHg?16mGE6}RqiBDyOFF5LffucI|Lx0G`#8=*`_W^NanU)gvj{Wnx!*qpH`crCw8oZ~ho8P+9V*fn zBs<%2?QV3HfJYDV_~k_>iv|!W_n~_hCy^V=`zc@k>dq@g;M7woA?LpKq5g8&4i8Q& z0Tki|h_JJ_2QN-*%i#<5BNgp0&wD`Vv?E7CJ=X=YA`%6omJTNdfYRg3r>i`6uNJf? z%NP8YO8XgyUJ-YuN5@v7DoOOG0HTR>$JzzQS54sk??Rxt3K71O<#TCObS;|`U9v$T z8gBVmpX>>i2Fb;#yw+yAyb#+p>gHsJkR1`Ox-1C%OJeQTUZnW@jC`3olM1#oN%zr1 zWCW!p4dy?c9fLReE3()0SkAN?@#H3g?MuV%;-=1=fsENF10s`61DW~F(`rkZ$3g&* zoFtqUFA?aEsLoFGbl>#_b)%Kkdn~!dL1Gr$ zB|B|y!Khq!6`*(t)g-e0uN6!Y)}`|Hq=-S6Y*kT`{=x!m9!WFK9~(%O=q?OuOzKs0 z>ylNYMd8#_1iCBomTr#HJ`A!YX3@2aJ7b9(o67iEj;rTY54aM;LC8#u5%iJ9L&{x6 z=7|hNN#t~)n>nCKa(Q8?!2e95cw7txchdm9puju#S=oVeKmk_4&UWb8RtTf?3A}NC zi$UI}u2x9_R=PYRcv8&(p(mJ}UMX91?(^;(g|b}{iFR&D~@~4!LDk^SWym@`?=|Pmex-`P}DnrM@v+VqS+Doc36~ zsL(xFTFq$sA+0+wsnER{-6KmCv@z(Gu8Tqvi%5(Y*_3qjklv*Fu)mrfQPvJt7*pY{ zrXQSyjkn8^um1tl!Thc;96P-mRBUO6J6%sO-#>zEH)>b$!NekYjUvEsp6^cq>2XLI z!4u`fjAPiQ46Enh<0CDRLcNS(3;oI+RyhD3lBUIM%!j{bLvR8rRz_J6Bpb#?rNcSe zxhk{(s3$gBNoGOIOYUiBMLZ~|w{kT_-=UvSH|bNX6i>_=R!tu`kdp9gyBW*aP#whB z{wbcAIyGdI|4kdGCNqi@aNH=`BuF#Re>bCqU&@)RJV7|GrU}Ou)JEXjoUtO4Bl57z z!vc$@q+bfiRKev4&SH+tzIV>zLsBoz63^v)Jj$M91ihZ*tafHt_0BWLHRukFb32Ss z5Q7w$H9a3If=Ib&E>O^+X28%Tq#-q_zJo^}cK|pJuas@|c^HXHU}SryO%x^+=xZXI z_$|wpOr9#Zb7e@%a)1L80E|rh4QUza!b3vnjtX@S-mPu6e~+}iBbiXp?(4o;iE34| z!?m{K%?@;P&=UxpR%N!{WJEuA!UBeZp!j;biaXTYlS77mQPZ+k=aN6hY|4X6wvelUU` z4BlQ!pqRJKfM77H3nKeUMRF7i%BG3%ZCPsKv@QbQ6OyyJ)dDKQV$%egKo!pFP-9_> zJ7^*-yFzSEoSVPwd?3kQ_kVySjkRy3^9uXG{>+q^)Csf;SMQWFTAsNW#~vTebu9{h zHakX1k0>*PH;^$C73bCOHW8mU?NeM_p52Es%AbrXv=IpLSWuG4SVI4ilK z4F4>^N28FG$ty)l6u!NwN~6TCtH1l`u^MtHhjvQ33m0eD9qvwmFp8pF52uMxT$IR` zny`pOvWkYg5_w}$i&d)A9)>zkq?9+(Y8R-W{E z^9lbH6S>2<76F*tM7=ZTwqnmyIGrDuYj;*fitrNDBCxU#L?26BB0D6kmrIm-OE}>3`P;-$jxi(Lh}a zI@jHkQHT}MYf18-kxeELb)-p6_6Ivj)HcR}l!97AavlUbaC@#Px1rH;eM?tB6MxOX zlGPF24HCu2lNO;x2UiQpaN@%JC*y+Qvk3#)zb0JiF+DA7gHx#;yUO;VlNQq0g#o$u zpjpOuA&mC{gZof>wcPWuR^941F=Uf$lyhSD1AOP}0|^SK`E*7X@_9{?zm!CGMNohU zI}je8QL6J-Z%OS`@`p5vT0v2eG(YR5$YKykSLv-qH~Yv+w5uXhWMq%9vvSZWL=yVg zjtJHxtGsQIThMU|sPxN;#YVU^KdgXCaurDxB{`)~zF!u`uL}pJfETqa7}j82 za<}JV%JbZ&zsH1aAJHx{m~kuRSht|#14K2)gDF?ArhQQRJ5$L!jTGH@jRJBOMx{3I z)w9GjVxw||QYyp5l@a(5A1~0sZ0@FOpg{IYF9l~>wF^N)JaAz!hy8hRmIE0Kf)IIB zH^h-JICSe+yNVUGOBSVM2UCn(9^l^`6=%)0id%QyY|8eDgF?s6&$iOkjp5S$M=y@d z+=}GD+7cUJ@~Ap@?%An})Zg; z+wh-%;$|t3`L{uA085KJ|M}N_Jh%LPE&1DKctF4)^q+s&=%dKLQH?_hA$Ho}KmWW> zjm8S8zbD`Kj1R5a6gWFUFlxl55J2ov`mED25vMur!k8Uu79Xfo{q%>-iyVWi-Z=I( zT}F+l-Jxb&nyESaA{NhrY*jS^qM*Kbt{KczMq;b0CV8tqx45z}qWLP>g(8)Pw0)J1 zHKn|~hJ$sU*u+_-x~A<8xJcxe(^@1>|FN}Cn#qB;fk~?8BP)AT#&tuShnfjq(^tOw zq!M}X)cot=7DD`-(T6k(1gg+3IEUbWH;|N1$Y$6Ew}2%bXzh;X_(Y7i?Ns*QEO1?@ z_^ClcKysgbG6>6T!$c-sAg}=0_ODN8i?Xc-3x?E+FZD2p8u<7+PXL{|GDeFk!n}5q zmym}78?O))|C*VHMw7cBWO@t0R*5ggnDxuV3;^7*#DYdg{2k?PZr>YsNJjSlc zCi^@~GG^upSlTKImrPJlK@L}pTQ*DsH?T)xq9JcWt*Q=0EPr5lKrYz}J8t`Y^yIXw zCAuEg=;KyXLdJk464ZbQqNvbtz}0`tkjx?)SN?H&_(YqR9L z*J8oZM2JoY=i;wNY1)MllY+h5UER_X_cof^fmhQQLBnnlEfa_vRye6WihyIy>|ZHGsLDmeKM;aglP%5Q)Q7| z!6w)zaQ2^5HcTY-Vq#rl9%3}0A$z~D~Jy>urDKJ2+=NM3a*(obUFgmd#x`2~g2)(>@9v#)pUNgYdNo3V)4 z@qhp!*PDZhUFPu$6PA(UX@#y4$S(Jr1NEX+MpilGY)G1C+k4btK?h7C;@ObrWe+n= zXieYiqK+hu9#j+mgdxKpB-$epgQ|Cws-8iI7$+)B`V!E(1BD=H@q1F~G$P)k%Y(i^82!!$u7pz|W+(J;aHR>IK2UazvYRvi`^0QyKXv z4-kB-F5NHq00{i4-*OkQS!l!B0GFrM4%iv97Z;!QNB8YWXMmns)r)OWwBbO+6dr>8 zO!#(=NB?s4=YGz~nrhm07vwiEs3D07PD3J3G8V(SFX9ZR&_O-CYZv;xWShuL91uGFwjTVAL_35QV z^;#O6+gltE3+6QRD7UWQK_$TgrNq5}%trPRCPbDA7Ri?c;)Mad(nwPHR64;~li*a9 z1LE)2^`G&6tiZeu5QI17kkmhlOypP^bQL|Iu(6nTO2WVuY=UQNk$-m1SUk36O!Y`T zVSBS+j>2biL=LY}7P|e-)1^I|{UX2(vz9KmECCu6Wm+H)E#UWh2w^DV`G$h_3{`}^ zvP7gPxv|@SZWoY4LL@W0)gnJ0bbaI&;frHg1#Rhg)8mX4r?ExqsjC4PuoPJQ&V)pg zviT)l6YIJTr49>8qZSBK@n0hd2X|W9fdFudvmQ}Ee#mU>CJP<}c)i)tqj~*l6a*2L z0CX7TMSR`Akl1+ZGY;wQmYuhjO)Z7mX>4|jP@)q)AKkl0Ma^9a7J)?3zxF)ZPpqJW zV+j^j9( zkp3rNfwwkiAGZv+*wzJ+2F=l@6F4Jag$t$Zq*#Kj(DzXMu3`ky8jj}koHr(1Lh7qs` z-^!@nJFHx-!Rosl410Em`!_O@5=AMvqyg_y*gPf=4cam^phwOjWqZ=)VQ$8tpfBB@ z9TOtx0`P9M7ufTigExhj6zzF+A);o{3-{*(%@aACYQ}*SDZl6@3g86jf%d; zu9vifVG&Q=HSyVGjm=ngZUt9QwaiaZqVcbvjLWIqG4_9Xp3Q3`U2f_IvDRBmo3CPr zEQTNw@edX$jh#tBG3Wbk*Urx8e2zS|kcOZ|?CTorKB`B|WdcuPgri@)hxH|S7REry z&GZ`wQkDE~Uuq^dfxCD}uB?0_WC4dv}kIC zmTYvCV;}m}00RgO=!cvf5jdxvxYwi)bF8qZqVp(>m|GaSGY5oXsc<}_VDl4Ccl4p5 zeGBQL(=Ge^i1K4s(WwtBLIQ%f-0-ecK&7F3)ZByj=uT!g81TY1VIs(O6|nF%!`_g9 zw6E`uD8i~&V#xY|VmAtEd&_eZri1ty+31mo;trTEJ+NyrT|@x;6id(K<~&${^x#l; z=jPi}v|pbLk(!AR#?|y+v#)@>=A?B&N~*)w2xQjzgOcp<6={D*d6F3!Rh%^oAW0ho z$@i3z>@Sovg!gAmi@t>!+CH&hfS@+5lAWq%uiNzs>JZ%ueMqBJ4Xuwm_>+`qM4yfx zdSe_c$HBcKN3$GBZd(ehB0&t{#pb`%~ap$=z1#F%%{!F?-i6lkSv_QbqP#d)_) zBUsIoApkst^Srz`NPU_r^(6ab*zlyYozd4cEq zlD%NGWzV!%eLsz*`BaYpVJ?6fb2dGG*FC#2ZC@}$+QF?q3>D?d0hdSkd6$BOf3)!q z#MkLa?zKORcz%+BBPBnjfi0CkrQxSEESb0e&7>jJe{C=$v9D=I_To<{gxYY0On3KP zMVC8^|gb-<<#8h?QVyC9u9h;D>cC99k{Nb2i=J1t+G8z4mKZTm!>s zWZ=+(p^h`DX5hjtcPNBH01zY9-#_rn=DinQU%aKbk#oDM;?5Tzwju)NZUd)$I(%)imhppe|{v zIo?$+w%Trfig2l#Ucoq%-yHty;_TT22_4`v51xbM!oaVyi-D1zs8izFBJ~1xW3OH1 zbpx4?oZZY#vM*q-_u36*uj9jM`R`BWM80rt>)}aq0)LS+*DMf+sm{cBZIw`;g2zSI z#)wF|&)rVWojcd6AzWH>U+p`pDeG%oj>ke%LuMX|pDzxp<#3!kw5#ffH=dk&FnaF^ zt}Xk)UGEouK?`w7fVM79&X)Jh=C;q|P`G8>Jykiu#+JRtP>;z*yScH#UC{rdy(^7s z^4!)+#iL^D2%-pDDQc_WfQ*KrRlph%r4^MRL8w58A&g20gIMdtkb_nNGDJZf4g^$4 z!W^s$_Fxi02xST=k_b5vB|sV=$=zRq^mxxX>#lXz9oD*+e_0IqzIVTSzr%i>XK#LY z-mcXo<-w4Zc9m0AI7hV@+SHY__<=(sYaMSu31PI3li%X>Jw9zAN8;mD6WxcMihA6i z=4EGO7_6&=lt4izH2KSR0_jdTt!AITC=(Euww3IC=i!KzPBX zq$Wpj&?8m`NKb(~@k&vA(E`s$`Ipg}%lp=!;6M7}RkC=RAXe684fM@e!FC2ER-3pzzZ|(h) zmYcU|Q|DhX*{ycwkPQjO+EkM#jVjLvc|3;&W~VEbxN0s`LmNYG^*lUhGcM&Be(CCT z#u0{kCBfR{-7_s0tJRY$%qTIZj~F0cg7Ckq?r(Q>VRrYsb3n$)>BIE|5t6Jv#qh=|& z05p_KFYom%{UZor1^IaKSr2x0)&Eo@J2nC%ne4ywUpt83Ob$%cz61XsTqWZ>t47>Z z5%|Lj%}$c=wKh@%@q4FJryk{w$whyQ`b)@;sjSlN#qX-NIbENFguOOZz1$Jz1g)91 z+^fCJKvT2G3lc(od)t^E>UnhZS#r0F_JP-#woVbqZ4Jz7hJ6E0t*j06V_>obeipFLDH1A%v@ti7f?-*N|QVn zX;zQ}OW{ceL%zIJvA-u2PVz=pERR!PC$#@*mNr#K@I{)25cM%!kv{dLisd@#j^;2V z|DWfsdx5<%HXA%Mp1WIf4EIOm8K!=(r-ZX93z~;maAVPJrPZo+%0lRlk~3fZb|~YK zxl^wLJHwZ=%BN^ps4U09xWuy!kGr(=cKfhkn+g8v)A>nT4ou8~g*0xzljgeP3{P5V zI^7C~tEV24%}(RG4N%JXY(rW3l9dTTnlT0W8fuK!2ZJ?>*O{eRv#HC}|5M&+>icMp z0KB{EW(aho(fp4*JXq6Lrbhr4m+4up(Y)*njN0P)r|X`(-JpTLI*`qm1)9OzZ4GuO%{hUvvnkb z^?(LivT~}yH~Li~Sbbiuz{WHN*J7Q=DXQNocX$q}s{Zu3ncuCgVEeP(f>h-J93R{# zI}i?R_G6+Jd5)1>S{|SvR=B=k7r7)_HHVYLOpJ*?ggU&e%NEuqd229&mD5tiwrq{pq^2%d&Z1NDa+ZB<5ce=fMn54xMHjc&u;# zTk=`vlGXi5p&VgQ2P$jy=%u<*8+_*D0*Y|w@tU3BJ;%7YpRzCk8L`F+exz9D^~We% zz9gJ+Mp(+>zq|TSYK`OVWrgu|mW{H<{OFi~llP)1wHDy?MX3P=RTmuxKdIdVRR~~B z#mOOwH@9Wx(sZ?{exxQc`;6qA!XvNr z`w$%U5_JC1q4teiZF9Ln*tm=FkO3R}+f6f|j0Y#%t+JNw2GL^5@~V=Nbd31^K3~cnjG#u1Sqq7Et>U z?`t?%!;!G7?MdurKN}-LHYtY8lQ6hDa>$&vff`OP0VsLvWwst6<&=m9PFZ`v6T3~D z310xWKY8acy5m|3TD%X0MncuqapX%PYWl3Nnkf^5@pW&R*-*zVD$K?sIl&(t9Q`rM0Lg+ zvkXrGHIq=*?MOMcZ}4_R#^WC`3h z9H=`dPFJ&Ym-h@qUqicCl|n`wDnx2iaY7^hECbk8rOWx#nwWPZP$If!rElAr4yh-i zOl31qW`xU0{nvPM_sU5{iST*7t0H4rzz3h&QB?m%ALd6e-^&- zrt$Q;ci}qap+i@(6ux{<_k6pdo1NoEA_QtlvC>R-zxnI>HSv=pjV^1dal=nnV5@An zi_%E^Ru)uL9f2~?g?HSLSIq2G%;?0}IQr~E8B znLkL#bA555*Q#sbCe9UmV`1z|yxh9q{~!THuIGsM@dDDriB-7DK5GW2m|xdcxC3RLyZlZF4 zLPx@9Wwcf>j3i6e-p9fq+1JwMoL`~#p@Sipf(HV7L-4z-R&A>0hjj{o6l;-m|}kV2_U zuo;=K80NEp;1>f`rvPI$)nKefrzPZ#lsiH%=Zs^^Xq(fd^etyE^{sJ^ShPl z1QkgPt!UcI+ic0^4^;7sTdL@FxX?u{bxpopqapQ!;$&q+sSVKi_>+}{ z{?>K0{z+2`9)Qd)Uo~)wiQA7{*_ZIV`t6a|1#=&V=;o-Sd-&?a0_ML6u zpYNkvIhM|j5~t(X?u8ZxXZp(;Lvh@@L`0WbO~{L60?;5WbnVa!H~KZQS?1Bvq|gOS zf{fqSn8ivd*TpBs2v)h>!~Srekrr45DnNEM0_cKhG(EZ$$^}rOOA{E32l`Ierd(71 zBi9719oKE1f>&@azIv8!I&`yLj(JXcVmE-POk>0SZYn5$WJ{2hV_JqJ-g&GHrcmb=zn#DEpn-C;lJrxO+Fl#| zC7b}HM>|9``KV&_Gy;s>2-#}v#-$r3x>QW{A!tvvy{EePmNE)~vX^%*%Bb0yM29D_&(135W)%6-fQ-?az zWJ1ARM7x{H>VUl!JW!l3eddEV-I82VwFW?MmdsP5I{uDw3Krml#PS4Wo(ux|88IjR zmnN!O$E=~Qd3+pdXw!h#3~lGI^b2m?kk2S~APV+;HXQeB{{8NzA#Ve}#<@KYNvB5` zzsDfk)~C|`JG2@bRnL!$1P{A*2K<0&kBBjs*L{ta88HpewhFot?b@?b#MC>Mt<{o_ z_9&uj3_!onM0By~D8Ana7~-d~%O!jnp}nThvnkYNCmgZdoIQhm@_85Kbw{I3u}3S8 zesAEmV@O1c&v9drlt|-({!C&GDV%UAHZ~SEEVl-?@yo(}tyji=g^0`;b7-x^?fddt{m=VO|m}Q{R=<^(Y;9`3iEMhrj5h4B$iv-*AK-rQ*w?|-A zaTG)BHDSu8jJVe0B2k_w7q~BZ22G5XT>#;(Fjphb^~*LD79RC;?MNG{Zfy%QwKy*e zHn1T+eJJB)(`y9Ajy}P#V3kWZL~9W>SMd?mrl-rj1QkEgf>aF|u)7dl;%Oxqs|frA z<9_yW?hZWT{q0zM%HC%-idnOa%aB5p0Svn48K5!u<#jN<(Dq|{ki*8W&JCXyj;uTg z`K0b8GUM3ZyTO&Vo+uXmwWL~odl@OYQeSym8gU+q3%1l{j?ry$TA2RH76eQM>puOG z9kC%I;7zKHXw$*LkQirGj_)3Zg`ibJ{&`W0AqFFR2aYRcta?eSmgi1 zX`5=e++cM&RtooB^)MiUQaZ|`ItKrEbXk_OIxDr z^?K4U6kI7~fLW0DG`!<0r9jMQG>@SjHj%2xR&D|5=EpDuSW2(=9wp%UM_w}X$vPd^ zf0Hsng-)?+BE6~76$vCs|IDs%$0OlCXJ_rs^e1(UR0-Mo{SUV3aWabXB07Vz^GV(n z-V@l|TfMvI0z03JwJmyJnjA?H2gG{hhRRkMs&|Ffk9LKlm!Y;rqh~G%f6F5~?_%Q! z5=G6(PP{2;Uo~=hKe4v`Rz+l5)s2TqS7Ehjg#$|#EH;4u``ZI;DvsVlT2ADwzW4P# z><&@dL0nZ{t4pHjZFG~eF*cLgKtaos>P$zEiEM%0bF98tajZg?i&P8nJKEtAUPK6r zr$VQefYS3o2l5Oyv>KpdJIL%U3a%&G=sSt@?Zoj-%vF!+O2oyy!No}7P=k-BNj?lo zv1PX|UAF9PI+foG+(u;has2gfkM`D-rqE^hldSRXiR!ysmp*j|xfmj#CPuKSVTS7W zi2VULM(s!VV|n!Oq41_4fykquMepnjygI-?%CsDSW6flA zv?Hmgk7>S1v^n0A#s8ol3(|bNfCN=G%L-Xw)=4dKRt-b2XaMlGicf1`QzE3G`}qn zAvfcb7UwaFYB&-6`&`$?GF0WIQ#GOL0S|fci#b7-(1XFQfbhNkCE;eexjK_0dnODA zQ8Rn&bieX4qGe7#L0H2nXWmmBQ&0S=|7har$rU3jx3P1)8$|o85`ki|4Z6stWb)bu zP?uT$Da|*Uw_FczxVuBpC`ISdJvP`OLFP1N}NeDpB2F5GA(p(EL z-q_gDmZ4y{>^ypTVNG0Fo3c_;Lmr1ZQC7u*(XSsh?m1JhezSMV`u8nk8fLu!OBNR+S~mV3h0_ve1TmjcQ2Huqwl;eA2G^2 zKtK82k5>9yR__iEURk|$UkS@4@lM+>aVs}g5c5cTr-H-oKNlQ42K~38_W@n}DhQ7o zQ2YR`T7B`1qd8n-&ZO#?aSklpt)V#VfC5ywzsm3b=)}vnylG@Ps0SjlgbTVCm0lg5 zr4HhMk$X9R0)Y*n<_2;plQfS)){1hdmsb7iz{F(uDbykBMV;1vO(+PFU-P-Coxel$6 zaSG`A$J8I_%-_`AS67HFgBG^vtYCw+A8>**wc!cv3O$|y@6+mCJzqi21~E zj?PP2KRKz#@f1M|&UMV1Mjq$n=s+$xN)Q$N)==v(LQC3vn=W0dIe}8kOgF2mv6%tF zv2;V{+&v#~jJ5B)AYc1bS{J@cvbgLr4DHZ%LN;}=`eIf7gm63+K_}D-4C_~xjvwH= zSqUO7#)N5(RgOXQh1x?%j`0dkTy;*9m@x^~NmN@W5wXsE7FcHrC!B{`fh6&(-gmy( zIj0ElkFaa|Fd~zw1Z*hgh+5F>wGRO*%0B(`2SC!XryNOoi;_j>1)qoL!rEEzL%Z#k z&(%5auuC1ktW#3}eZg9xzYxxRfKX;@@w9_v7!(m@HS$?P0c5bfOkVOy^EFpvbf=!4 zS|_psQstMH1%L9z2Z(iXl-YsG?$@N=@|&mUc{xGK;;RfM7mZ|X;VWJ<@9#kni85#= zj?N1CZ<@NRwOiDc;fg{5s2_cMb4Na*94;LJ(OZEyph67!&A5Y}RdEU7-+;yp#e_K88j($fM`z@)Zv z>8n)H8g1&A?wi&AzV?6#z@^(8q;9$w0m|M1QG;{Ftp$$2W`ocAZ$EaAIoiF6-h)+* zV$rT%Qxy93%YH}JTi+)Qb-xTt0dA;~!(W{;y76edutbU8kP|<5&*jDHNdtcUCX_1T zjfF)58ZseXwhFy?r-aDI$4x5=MTt+tR#z+guu7APzfEZdx8AH(P4ZOd4i>BQM4moJ zFPn+qN1LwpIg==srif^>uY3+5KYa7nGqt+#7#}^Y1T?s^*Y-iZ*b@niyH|oyg_3Jt zL8=80o1!%A_Ssqr?YQ4xT{!mjEvGcbi-$^qg=4+5xCFi~<=d?mYJ^LFPtO9L!zZCS zKfz`KaM`usM3Z-?6Cz$7Ck5DTkxwdR>@60d*=o>xar(XL=19+(q9&8U~pDH@(M$NKNy_eag4;H7}I2idB|SZq4(Lowg232I`)z{b{GbYwl( z5RA3|OuvRsu~zGFv~uM+Fa0@YNORAO?=c$_j`;BAo;!;^`St^w#fNwPaiMmayFE(v z^SP-RqI??&LN(s96W;<5ZH*>wMfg0(cH+BIsLf>*hy5wD$iJ?5-6K+>>;3Vy;l f5*IzH*)31LmmMhA`ve+$%=*@8|L&r1e9rzGD-MTD literal 0 HcmV?d00001 From 00003652a69914b404718262b91b45762fb7fe5c Mon Sep 17 00:00:00 2001 From: wyMinLwin Date: Sat, 25 Oct 2025 01:54:44 +0700 Subject: [PATCH 2/6] fix: remove unncessary code --- components/ui/8bit/empty.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/ui/8bit/empty.tsx b/components/ui/8bit/empty.tsx index a0a471a3..7630f661 100644 --- a/components/ui/8bit/empty.tsx +++ b/components/ui/8bit/empty.tsx @@ -66,7 +66,7 @@ function EmptyMedia({ className={cn(emptyMediaVariants({ variant, className }))} {...props} /> - {!variant != "default" && ( + {variant != "default" && ( <>
From 237646cc4fec914087bd350e291635e8b27e0730 Mon Sep 17 00:00:00 2001 From: wyMinLwin Date: Sat, 25 Oct 2025 02:14:59 +0700 Subject: [PATCH 3/6] refactor: Refactor issue in Empty --- app/docs/components/empty/page.tsx | 4 ++-- components/ui/8bit/empty.tsx | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/docs/components/empty/page.tsx b/app/docs/components/empty/page.tsx index e0cfe8e3..4d1195fb 100644 --- a/app/docs/components/empty/page.tsx +++ b/app/docs/components/empty/page.tsx @@ -62,7 +62,7 @@ export default function EmptyPage() { No Characters Yet - You haven't created any Charaters yet. Get started by + You haven't created any Characters yet. Get started by creating your first character. @@ -102,7 +102,7 @@ import { No Characters Yet - You haven't created any Charaters yet. Get started by creating + You haven't created any Characters yet. Get started by creating your first character. diff --git a/components/ui/8bit/empty.tsx b/components/ui/8bit/empty.tsx index 7630f661..e5df26bc 100644 --- a/components/ui/8bit/empty.tsx +++ b/components/ui/8bit/empty.tsx @@ -12,7 +12,7 @@ const emptyMediaVariants = cva( variants: { variant: { default: "bg-transparent", - icon: "realative bg-muted text-foreground flex size-12 shrink-0 items-center justify-center", + icon: "relative bg-muted text-foreground flex size-12 shrink-0 items-center justify-center", }, font: { normal: "", @@ -26,13 +26,13 @@ const emptyMediaVariants = cva( } ); -function Empty({ className, ...props }: React.ComponentProps<"div">) { +function Empty({ className, font, ...props }: React.ComponentProps<"div">) { return (
) { function EmptyDescription({ className, ...props }: React.ComponentProps<"p">) { return ( -
a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4", From 10e08ebeb972068e8859c785eb4ab09a9656dcd8 Mon Sep 17 00:00:00 2001 From: wyMinLwin Date: Sat, 25 Oct 2025 02:24:03 +0700 Subject: [PATCH 4/6] refactor: font props --- components/ui/8bit/empty.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/ui/8bit/empty.tsx b/components/ui/8bit/empty.tsx index e5df26bc..79b8f44b 100644 --- a/components/ui/8bit/empty.tsx +++ b/components/ui/8bit/empty.tsx @@ -26,7 +26,11 @@ const emptyMediaVariants = cva( } ); -function Empty({ className, font, ...props }: React.ComponentProps<"div">) { +function Empty({ + className, + font, + ...props +}: React.ComponentProps<"div"> & { font?: "normal" | "retro" }) { return (
Date: Fri, 7 Nov 2025 14:11:48 +0700 Subject: [PATCH 5/6] chore: Empty Registry --- public/r/empty.json | 16 ++++++++++++++++ public/r/registry.json | 14 ++++++++++++++ registry.json | 14 ++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 public/r/empty.json diff --git a/public/r/empty.json b/public/r/empty.json new file mode 100644 index 00000000..e4db7c0d --- /dev/null +++ b/public/r/empty.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "empty", + "type": "registry:component", + "title": "8-bit Empty", + "description": "Displays an 8-bit empty component.", + "registryDependencies": [], + "files": [ + { + "path": "components/ui/8bit/empty.tsx", + "content": "\"use client\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport \"./styles/retro.css\";\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"relative bg-muted text-foreground flex size-12 shrink-0 items-center justify-center\",\n },\n font: {\n normal: \"\",\n retro: \"retro\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n font: \"retro\",\n },\n }\n);\n\nfunction Empty({\n className,\n font,\n ...props\n}: React.ComponentProps<\"div\"> & { font?: \"normal\" | \"retro\" }) {\n return (\n \n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n
\n \n {variant != \"default\" && (\n <>\n
\n
\n
\n
\n
\n
\n \n )}\n
\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n", + "type": "registry:component", + "target": "components/ui/8bit/empty.tsx" + } + ] +} \ No newline at end of file diff --git a/public/r/registry.json b/public/r/registry.json index a2db81db..35ce047e 100644 --- a/public/r/registry.json +++ b/public/r/registry.json @@ -1822,6 +1822,20 @@ "target": "components/ui/8bit/styles/retro.css" } ] + }, + { + "name": "empty", + "type": "registry:component", + "title": "8-bit Empty", + "description": "Displays an 8-bit empty component.", + "registryDependencies": [], + "files": [ + { + "path": "components/ui/8bit/empty.tsx", + "type": "registry:component", + "target": "components/ui/8bit/empty.tsx" + } + ] } ] } diff --git a/registry.json b/registry.json index a2db81db..35ce047e 100644 --- a/registry.json +++ b/registry.json @@ -1822,6 +1822,20 @@ "target": "components/ui/8bit/styles/retro.css" } ] + }, + { + "name": "empty", + "type": "registry:component", + "title": "8-bit Empty", + "description": "Displays an 8-bit empty component.", + "registryDependencies": [], + "files": [ + { + "path": "components/ui/8bit/empty.tsx", + "type": "registry:component", + "target": "components/ui/8bit/empty.tsx" + } + ] } ] } From f9f0bf95f719448ef6653187b6b219134fcfc68c Mon Sep 17 00:00:00 2001 From: wyMinLwin Date: Fri, 7 Nov 2025 14:19:51 +0700 Subject: [PATCH 6/6] refactor: change != to !== --- components/ui/8bit/empty.tsx | 2 +- public/r/empty.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/components/ui/8bit/empty.tsx b/components/ui/8bit/empty.tsx index 79b8f44b..9ebabf52 100644 --- a/components/ui/8bit/empty.tsx +++ b/components/ui/8bit/empty.tsx @@ -70,7 +70,7 @@ function EmptyMedia({ className={cn(emptyMediaVariants({ variant, className }))} {...props} /> - {variant != "default" && ( + {variant !== "default" && ( <>
diff --git a/public/r/empty.json b/public/r/empty.json index e4db7c0d..a742dfd3 100644 --- a/public/r/empty.json +++ b/public/r/empty.json @@ -8,7 +8,7 @@ "files": [ { "path": "components/ui/8bit/empty.tsx", - "content": "\"use client\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport \"./styles/retro.css\";\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"relative bg-muted text-foreground flex size-12 shrink-0 items-center justify-center\",\n },\n font: {\n normal: \"\",\n retro: \"retro\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n font: \"retro\",\n },\n }\n);\n\nfunction Empty({\n className,\n font,\n ...props\n}: React.ComponentProps<\"div\"> & { font?: \"normal\" | \"retro\" }) {\n return (\n \n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n
\n \n {variant != \"default\" && (\n <>\n
\n
\n
\n
\n
\n
\n \n )}\n
\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n", + "content": "\"use client\";\n\nimport { type VariantProps, cva } from \"class-variance-authority\";\n\nimport { cn } from \"@/lib/utils\";\n\nimport \"./styles/retro.css\";\n\nconst emptyMediaVariants = cva(\n \"flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"relative bg-muted text-foreground flex size-12 shrink-0 items-center justify-center\",\n },\n font: {\n normal: \"\",\n retro: \"retro\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n font: \"retro\",\n },\n }\n);\n\nfunction Empty({\n className,\n font,\n ...props\n}: React.ComponentProps<\"div\"> & { font?: \"normal\" | \"retro\" }) {\n return (\n \n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps) {\n return (\n
\n \n {variant !== \"default\" && (\n <>\n
\n
\n
\n
\n
\n
\n \n )}\n
\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n \n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n", "type": "registry:component", "target": "components/ui/8bit/empty.tsx" }