From 6bbb3da985c1462e4f9255d462a57d412470069c Mon Sep 17 00:00:00 2001 From: Kevin Date: Thu, 21 Dec 2023 19:18:35 -0500 Subject: [PATCH 1/3] Revamped Project Cards --- components/ProjectCard.tsx | 47 +++++++++++++++++------------ pages/experience.tsx | 4 +-- pages/projects.tsx | 60 +++++++++++++++++++++++++++++--------- pages/skills.tsx | 4 +-- 4 files changed, 78 insertions(+), 37 deletions(-) diff --git a/components/ProjectCard.tsx b/components/ProjectCard.tsx index 0982f65..fff02be 100644 --- a/components/ProjectCard.tsx +++ b/components/ProjectCard.tsx @@ -1,34 +1,43 @@ import React from 'react'; -import Image from 'next/image'; +import Link from 'next/link'; +import { FaGithub, FaGlobe } from 'react-icons/fa'; interface ProjectCardProps { name: string; - date: string; - imageSrc: string; - onClick: () => void; + description: string; + githubLink: string; + demoLink?: string; } const ProjectCard: React.FC = ({ name, - date, - imageSrc, - onClick, + description, + githubLink, + demoLink, }) => { return (
-
-
- Project Image +
+
+

{name}

+
+
{description}
-
-

{name}

-

{date}

+
+ +
+ + GitHub +
+ + {demoLink && ( + +
+ + Demo +
+ + )}
diff --git a/pages/experience.tsx b/pages/experience.tsx index 84b28f5..f4cf667 100644 --- a/pages/experience.tsx +++ b/pages/experience.tsx @@ -10,10 +10,10 @@ export default function Experience() {
-

+

My Work Experience

-

+

Here, you'll find a list of software engineering positions I've held, the companies I've worked for, the projects that I worked on, some of the responsibilities I had, and what I diff --git a/pages/projects.tsx b/pages/projects.tsx index 4615126..61fe764 100644 --- a/pages/projects.tsx +++ b/pages/projects.tsx @@ -10,32 +10,66 @@ export default function Projects() { Kevin Kwan | My Projects

-

Ongoing Projects

+

Ongoing Projects

{}} + description="Description Here" + githubLink="https://github.com" + demoLink="https://github.com" /> {}} + name="Project 1" + description="Description Here Description HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription HereDescription Here" + githubLink="https://github.com" + demoLink="https://github.com" /> {}} + name="Project 1" + description="Description Here" + githubLink="https://github.com" + demoLink="https://github.com" /> + + {/* {}} + /> */} +
+
+ + + + + {/*
-

+

My Skills

From bdf8db1f3f38a7b980c2bc1ff78b617a3a403e02 Mon Sep 17 00:00:00 2001 From: Kevin Date: Thu, 21 Dec 2023 19:36:08 -0500 Subject: [PATCH 2/3] Update skills page with better formatting --- pages/skills.tsx | 23 +++++++++++++++++++---- public/images/HTML5.png | Bin 0 -> 30805 bytes 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 public/images/HTML5.png diff --git a/pages/skills.tsx b/pages/skills.tsx index 81287e1..7cace83 100644 --- a/pages/skills.tsx +++ b/pages/skills.tsx @@ -20,7 +20,12 @@ export default function Skills() { work. My experience spans across various domains, whether it's front-end or back-end development, databases, or deployment.

-
+
+ + (%8OQvSSs%yz)LA^@PdpPyb(z~a*rxWl9fegjwWgahiItp!J3EY( zt&?d~-=j(_x6|9YMJGblJQ89hFu5NvCra+G`$8Aad&9#_ zG-<@2;~lE8!?hCn(HLwLKLzF+;F z?4H2Ag;%j^Cp~qmqiOKx1wl9LBdsNfm3kf(rcrexOrd3{ZD=MlJZzFm=!o46y)=L`Q)ue>7Frnk{pKgh zfT%hFmDuLHt-ASE6XJmo3qCc{!T-+d&`UrX%_J)Am^8H-q~^^h_o-^Ax>ZU${T!a2!N^L+&hv!hFkcNIHF)0Y;1 zK2n>K>GIr}&2e>Jsw53j8R1ixf9zA%XhHI{y;_HOiPh4$JnC|_LA&%IyUBYM2zBlP z*cwSj@4rKx$I4MFU>(X z)io*5DO*4QVc91BXGD1(KLCdnKH_<xP`vX$F^gF1|e1;5Iw z8)~7xqy`zkzHYgjFD@1gS!SR8g>41AxDI^9@1&8bKyGeMwyf3Qx2Ltu@TAnc^u@7P zNl1N^p}~Kf1s?#4fj;8mxQysoDNW2C$<41?cDPDty(LAlS%u9Bv2FVH>KNgA4;#2eWEEfWWp ztz&2EdE5QI^35K{X;oSw)_f_XgtlGF&`y&CF!^NO{gw+gNcvj4jym)z&Gi!EuS)Cl`r3gtckgJ&>sK@pE5EA$ z+tMr6xvJ)tgHrmy^r-w+ga8a3^0f?QYh9s?vekmK%IM$srVKFS`7R{2KA-1rLN6%w zy^N}gmE&@vodo2dKe@=aeUHKlT!BjesW3|!r75e2fkhA{t}XewEJji7zSD9bZAB}y?FmuHjqQd4ap(GQy;=?A;321^UcM^F<(>xc)$?+S=GM(KI zEnr#5pCZ^5`kqo?rw}p z$iiBv0W=YWy^g#zV|7^RKrnfNHPT3x(C{}xs}-oV%}9N1xcBPG7D#A-gEs4i;*EP- za8+)OWa)-F0;L|6$?f6}gmbK0UE(xiBm)GWyVmAq6Y(p-8o%4Rt~9sZ@PYa^7&sJr z^1Fo&++oPwkq2|T-r}Wv)K@G|npUi3g!9i;5%43k^>=<*X3$GT{p--6W`)-&41hLZ z6^4YAqt@(`rVwX@0sWvNEjjGsxt5UTP{@%~Lo1^E6}%k9EnOJM!ObD|ZmAk|*z?DV z(f30yuFPt*n~l>;QGSy+NyuP91jGVMk5Ksq@F*x-MOf*T7pOrSs|_2ZaBXi0I4Jb{ z;W&sUiDY?#F5I;`Uk`!4#ebs}#``|yhRLGT zsXBiT%@zi`zVxGNRpp)c#BaUwEouWS zOVjnN48{3H!CgQpqHj#&Ib1CGUVs`Ffh%#h$ejN-kyuETLC=L#R&YYx|7KeW#^%Ht zut6j1%nxc>lrz3%4BboAko!QVgl2ke&IUY~Js}R1LrH4ihq^V1$Rt%Se~Scg3Yvp9 zorp6$V-ZjjRsM4YP%FMF&b6FD5>hFfkozeRJkzMbr^M1-(tYxwYb}Dzpl?Qf*chk1 z_IqUYQPPN-&Y{1>FaPNbu|s3a%LXhFq9i0WGP?MQ9NfD)8LM_cXEH>7oyYHRM>omi z6Uy)XFpfzMWBE4GSxsbdp|bW@;L53zHr&d!w_D5ZuIQ$gH|{7DwHLY)L7>4{7aQmA zXgG^E=t0$3*&+xFs3xqU{$TFbCpow0I>)~-ahZCRRjJ3TM}CK9`1)Sc4e9ICiC^)z zK0Vl-DSXsJ`x>GdqkaU0O0>xxXV94@|J*l?tJ;179v3rR_==}4)k_Vy_vSmSbW@A? zoz?W03l6{o;ba@8^&rq7At3%sT&V&{0Gs8rv)Y}|vzy$PM5gxxUfjjM!fsswMciC1 zM-jY1FYp6IySnhP`7%_IlZ)wHz{$Efv>fIIm4f*X;#>Sq3a^}Uu9}ht0gFaz907ie z)1)6!elr$g5&e#=;v)=JdL#)_NMS$2zwL3W9Hk5@8Bz!Koc~{YT0o0WeLozA1%7GK znUrv61~uLMdi5GtsfXngCxI1I6O;k5Af&^jEC9DjNFzsZ>ykk5Mop^YiSG~miYOhp zWq6%bCPWj1T3#^<|yA=%4uHHN=^(;O=5q%}dE0IXB{pLLqI z5qfR~D9IbUQ<9)>XU#{?V&#D79XW51{uPkaLyV+=)efrP&^W-|>B|qR=xOI-NVSo;D3brZz%4`hIg>DrOY?J?pfV-yffSO^{%?Z$XfgT>kyyoIR1N|G__0`9u~R@~ufl=!8ZyvGKxP6~4!}!c1Dtw)l-1v#1C+3J;Jkq=7QjN_=T-@< zB&3(6#9O>SKN~Q$BAoGr_}Vc0n1EOCKB2w|E>Z!z06))@0&A7By{P^k!><+qvB;$A z|8odGRx<7Vg^bjFZ;8{K0|WBAfoRMdumbt_Jos33^h!PWBANfR zB8F^$csvub{K(Sik6yH57ZDS~^|K%r!8HBLLb%Nzx6+K0Z7kBX)t=u$%V2Fia#~4~}7P=^Z{J)PQ`&aNqoy|YF3=~O#g1i436o`yL zTDowDN{?;UGneJiT#U2~2c!jwyZ7Ob%>zbg@`NSTNTqW(10_bLG7MRIwesb!1u17w zVq^0+Nv6)uD?r^??i=H@6OF1y{rFExp!rcnfu`YDgl(+IV~(Kd*unpf{3waFC(AP7 zJgLC{mSG{I0?aqL7Whn+ErXXMWIM5q=cIB4nD4vrpa6 zMOli7yu2H?e~GsG`rpg!;Nce7>t&_=9*jl&QXaVz|MA_jj{w0xRYa>X#L<(cj!zut zqK25M&x3D;8ypEP68zKU9qe-3?77M3En`zhmo{{Ffvj>WO3ER;CAstw4w^Xu)v#Y>{F|06Dv0hVoR#XPl( zqfXzwuaOMxd810v+LnKn93$yE_Ovvw-=(D}c@a8ha;KU(ET>E5Y*O&gK&jbC4d}hh zUTgzq2I1_Kgpy)y2S$}Hv-_+yv*%pUDoDt7j`VN4I?#m+z)F&e$v_&`*EVe1h=571 z_;an?go?NZ1=bo>%+U>mQ~2m(q6}qGGFEjTz|~gOSo!tWrX+Upcy@{AB|JVeC!Y60^J8b)5|St_4K!;_34WeLqOSZ?hlt8sC=d3$em~ zn1hWNTM_#`s%IZ!zL18?B=sd~Wb=Ct+~-s4y@0{bt_S0-H?i8KukG(>_h4^AfNCR| zO~EBodZ*?-tVyE;WzLGQr#(DCU$1JRVq}$D+9O0`gSAb-vn;^2E6v_@=vhZ0B)$*} zBp~U`+=gnCEzo+JDLn854re8TES{(1LV+c9)>af@n~ux) zRR{lj0-z}%r3ke*ddzXDA7uQsBEB*jg|X-#>&zyOG!Z|FkS|ZiA^Z3k%v~@!B`9T8 z{*HoFms1VPLb|?!$`SW`wQ7v}*hU;oK%MWe>JJD5_D~n3 zGzZ&YLrM%PsQr5M!;mA-b9l!0=nWW$qz4ioaFlew!u{P9?@yJc@=SAb3UD}COQfpJ zZ|77*8pWK+a`u|;(&wgmL`nb`aB_*sikv-@`r43s*MMi7HeUfTlB?6m+OSa>3YB(c zHEjZYdH7(SU%6EqSlm3hoyPaDMJM-=x8Sv}z>G2I+U&b=Q%*7S;0RHd;`iZIaEdeq zkT#$}8OfE((k(VJEnaWFGEOpeCo#5s%j1LkVt1)nvwYX(51a%N6Lj(AzE5=>4yOha zPkc~&=uyF;r3C~qwR9#%`QN?=fFYU$0}qTZocWvwjMQU-hHD5Vsv;9Ld>YrEFfQec zzWKT#5U2;-7`;4mV7&b}NRP<|E;$fq`}lnkN^BwehjduQWsRZ11G10lASJYO2+e0& z@Q5B0)_$5|`O$Pa!j^uh%4En^iPqLkI0t;Jud0m6Vv*-d*Uonzx0k_HoGaB;{H7FDl|lu{xS zku;IgR=i2Kh+olDmv&*>z5{MsebTQsL1q_@8gon|id5R=vb#br1~o%z!&CeqRcTod zqwFle?!*8V@+97@_DQx!d<4QzRA!zy&SfK^*zPzHHiwAl%zt8X16=2VubiC^+}zf- z;dMsQmAujALszEG7Uu3lc}tcfd~A0ngv5u>*tQ|Sxt7&EC*hW>1p{lZAxF-DF^<-v zNFQ8^7ToY{i3Hqw3Sim-cu}F+(bASNXDvJJAN5%0n%*rAS_}Awy?|D+nTp`gS8}d= zQxXhJ1J(tl#T&uLO42CaM7A7^ zz(^->TqQT&hEy;;ANoO^q~YVTm?IN$>#`}@;4#^MIqs`0P*sv5ydx|3`EV>ya_Jv@ zdKNK~UmF{vZ4Rzd0p4Tkd^LG<)F_-LCrJ@aaABkPYaHby6V)_FPL?fACQC$^lfHtgnI z63jT79C9Jbwi`m+1yp7~?vx^XkHBjOFN}9yQfaqiZvsxWJd|0%DG5}Tr0A@A$?5iP z_War4C)8meZTMHY0G$b44Vnx*&q%;L^v~BvZM`XN*p~|opxus4-D8@`9p0(hFxv3( zRnXYcFIFc*-8mw6X_J_3H#7mue7u=&26EWL9d*L(#X zCq#q8(eWHGnyY-sC`s(h%|J4*LLkiYs{(~ZIz?;|5f%qTz-4{fk7&MHQNXv{23i$M z=N+hy>@9p7uWbRYf&zkncfRtWNSLClk8QMO=K{#s5`ksW5wv;OuS&BX#sWH~vd>V#mwnT`ec;JON;(f(D{!Uu>9exRDG`yawY#dV#v-8^egSDG8x`SYC&u z5KTCqXBHspb032Zio5j?{Ku}6+hq6eZ+t*mr6y@ija&OeD0{}vLS9`dx2gb=7O^?d z)50aT3&$?@cam-s+!7r|46(Vgn9hK1>SBF%NeQ3_M0`=ZQKczZoTRuG0VF8AvGdN< zUG87sH7Cgs6&CZ%+owt&0arkGW@!ndmlq=lX3827d#9abEb*q4jR zg`j()(izg0&G^vO2L&~NVOA$$T?{=h+Yyz67&u`Z* zj>$Tf8Y&}pE-3`mRyQs)>o}#CWMI+~+FAA!Q{|}1MHP?RjInz&x)#~<^G1ur){-Nw zigXK<;Lj$+TqU*Bu|F=~yxF**3fv}p7{twe&h0cpZNkmad54q>Xo%(=jHSWRX z!Xm>)o^nRF_T6IeoG(B*FPNj1fVVchBG*oCdb}oSVkw^x4BXoSel{79`0B_)8#E+wOpxj;e4f23@XV%t?nMq}>^FxHwek zC^LqBu!gpqr;(IF0amiq^Md!DI`gM8rWhR_C9RPn<_oS|ROuglbQsBpy66-p= zRCcGvwFD((?embu>M;OPX6%hu!{=25g76?rWA?JAzpQXA+6y!=PIXdT+VOIs#Yld8 z+sT}i%R=~&m(lr0kSZkGo;LN-fnhHuq*TVJFH!zE`j9?q*RYhNC+vB_L%>BvB-btWLfEJDO#Iuc%LZ3(2i74A%PnM%BV_xc&8LRTLK26bKawD6?l6hgO>m)Xc z36^)g>Ni%{Wi`Nw#LUTsMFQC+_06WE=+1PFSaQI*Y5WRfqwucDCEkoSh8D z@_NxcY_8}DJF{wD8W6unQEDz*)47znr(X}C%SNEBtjAay0- zy2q?;y79ZrwWRJ2pvaOueozMSD^KLrB|a5@T`=beQ@ksS9&>?fk-v0)7{k+# z5K>Z=|kS^&C{}-m5N6 zH^dU3!VIWX^7z=3)qpc0X{uTbjvSO-u~ORA;}kiICA((p27&;5EUF$7@URBwG36F4 zBtZ+=#f#e4rBABfYJ(CMxK5lO^uo|)%8Pyj?Fr_JfI{jz3I_ExC#cJ(!-Vm66E%d_ zhxHo{JI=diJsDElNB#yKxXIkw(xGt=7AGL6l^5c;1x;2^eq_!7_f39Nh^G!!xkc%1LB2Q8zFApj~McnWk-W`gPTkcCMM<4=H z$YPiCK-ZA%x0a{*EbW|y$&25lPOt!;XijlWD+b|c{ zyp(@hApH~`um+^}@8#$3Av6@2jvoX>M`0gMr3~2A$V_nCQF4O*%>umQYDxTlbo?X$ z(($3AAJ4pG{KhYPG2_()+i>i?QpNJ+JMw+^auMEmt-SK!vzN+iT}s*ZZHBoQ)jPhU zy@-X1`Bm)t{^|S9-LD1I1r9V6nT(-$T?I$oV}pOr_F*~>0}(wW9dI-Qo2kk2`-RQ* zta$&10dij^iMwAPLrugvV{mlmw}1<~+dJYra?g1}sYJsGplBYt1|yP3ZHm$@(RiEA z3~z3wFVvLR8DW&Wmyx02Zq9iWPZvJ|Eo&(m-^&h4V=c8y8S<_skq%)2;%)|3;6^lX z<9o}o{xWMiV*N6w(NcNdzZWH84bNr_Mq>El>yUjvKtLW0RY|AI7;;XCHxytgIDS_4 zR2FoH8gH%ULC@JcM%TL;R*V;4v*1nK9DgWbSuK&9-(6?pvN5F!t|9aZ%}AWR*K`*z z6=G!bRIlM?(AoR=06%JGrZ(c{eGZIx_d9)G6LE)1?=?ZY9={T!lFv(*-7ytI$VhL} zq>h_@G>l~gk^qNkMRu7M!i-pBV&b=2GN(jhrJ*Z?XgaKB1e(srmW$HJ57g9eq{3SK zuc%3TGbf@9QxgPt#i8_0XzDFLX1m_UTWfeA!yxgK7S|zqsiFAV;xjkLTozagyym;@ zO>R`5Ob{oN93m6a^R`i1y}PLF4E6gU3M9b7@fV!ozC1!i#Ao|alQnzcxA(Lh=}#E! z@Bsn%6nPpby&YKb?DbBmdB75-9s5d`BJ4lx#vD725xO1-_}!-NO|<+QKvPbKIvGN) z`W!7>0MSX_N_xWJbMTYh_v$W{^J8nBVc{ldsyIFCrpDz6Zo@kZ~Y1?&l0U zye@3N%=XofHZrR?3?yErh>yh`JX_h3zSY!#w9=b z8|O9#CYw;)uXT3FtmDQ~Jzcn;)Q#p+W1gIiQ<4DGaLC6{btM*1tO8>FZB!=DSBP-^ z-rXEru^pL*dO5cj!3}gl^H)({aYj(dCeZj|l6>U; ziZ%ME(%I{J*9Ew1XCE0@`#$032dAE-ToSPrxK!e|s=pQ(tSX&xNhP4YDSz`Okea8F zuL_~`N`&#dKB2_Y%oL;-By$5Vg;c4Uab&D!e||vJY5g$=2KBTn*76$KCn2#($z7zj z;Vi)t++uY{jJW|o4&LOYDAUzy{)aNWBzk~C?X#`fc9Nc;W5 zUdn2TAt0~?idT(?#cJO#y4V?jH~9-;SqOb9{kmQpzwJZGM0}_@VX%1(q^)~YIb>_T zXSU=qBUPFV zSzevFE;ybJ8h&A&E@kr^>L!S_$HpEb_+h6o6gz4N~{j|K3F{Eg* z0$pc-5mgIIT-{#3dW&Z=LCUNgCoCj!-gR<+O0nFHLa;F9kE>iBx>Yvzup+?tYe--1 zjUHUF(#Yf69x%84MDo0uk4C(YDPuz(t``1+>_#S5+!kJ|$srTHB7^4t5KM^Fg|5?* z)jYru-;Av%4=h$V&od~g_?ttxf@jzq@l*9>Zpyo7;zxIB!@;LMz5se@JiCg*b!c?(bP{OR4ilgIe$EZFYpa&cpD1_C_~YY>8Saz zV?_Rt$Z)W>HWc1jTav5u)R^kHosGDowEedGT+Gz<3Dhs5L`7EOk>i1097f3mA zp7$_+(xmyEOGTLX*h!oc=ytwbI2?OEJRDb-))%Ux2W4sq=(6$!q4EvyWe9BG3yNF8 zFzG`qMMQ1yH?SX7VbnNjj-bPVQk?-CCJh+46*$yltl)kzXg+R@6TT_p%92;`sQ!hm z_Zuo{;N+xx^`YS4KJobP8ozdR@?N|Q;$0n6Br;>A%`8PJI>vH!Q_OnbZHmp@=+TqE z`^*R83?Ld$K0CxiZJytWPeo{SI!Kd59!sW9R07~sm#Hr1O zU!dM~2e4a0_LbHQpist|C{+jFegcN)h_oi3wolR=r&XyquLZT(KQ`(GH=fFe?B9zeUGqHzf2@#%JU857BFvLW z+P^kRf7gp@um6uc3YS?pU<1WO8b5SU=f&{k(tH3+-3YL7cx-v5YMx^`Nk2^xlw`jV+9&+Rd$|mKe-CZ zuwGSU7f&M3`97}!0EJI%WlK<~*CGhpnaRy+oj8p}S=6wO@_LE;Re#>3RWvNRBe%u==LO`B?o+lYvn+kv^?c$Y%=0-yQIznUYH(6;@F z9E^*k^eo|J!#9PBK1npwV`RvawdBp2>i>&4j@k17^)p?pAtQF52;aO zs$T6e##Kn37#OOO17kFAI6Et4q@M?FzJ~dpFIf;4Xbt-_s3-yHgZML&`70^kbm5+x z`pm9pJX(EhLoN{_8Q_=qrP^MaC+NWC+4t^=;C{sUgKxx{8nBEyf0&pAh?_*KW8*w0 zF&E{#KlbEwzw@!S?fMm0cC+xHi<{^(U>pz+O*4#-1-Lz-oUIvtuQ3-(y9Yc4)hl1O z$T?>D8{+uBmez9qa>)2q2UqH!#uGluUj60#o*@ZIrXiY70nRIu3)Bb2(NAcmF;Yh>nxDBE*Gm+B~w?V0yJtFiryJh^fdC#36O3&1Lq*bj;8on-#P znnU)!fUv4Jb~Tae$J7? z3~~A&pYV`+At+7VStbNVU=v!9BN7IYvhwU7tJtx1;6NUaBdye#IVS%F-dS{aj;#)y zC~)~xKA=d2ak6v?q^-A(x-0YioAePHR_~o6f_8Nh#D-U;v&i0@XN9zuoKKNO!N?03 z{g<=?U`tUSzU0M9=)i+SI;{$hzG-4HQNl?TE2^2uyma3YR5P>A7_uUaX)4?L?p^zsx9T;^t7{U&c1#6sj*j8(97f%f|o zeKBpg`qEWAv{+5IpaX#tbGMtsL%;6md1I8ttffcsQ(t2I{yN`cj;dGJ#+0^`??2N9Cfg%d-wRz zn@u)Bxj7oboh7)iBW6gw0Qd+dL;JvWf0Ihfwv45~%S=nZ2}PK0XYoYpTS3Dmg~=`q za9O@5a>(tbf#<@a&w%+aj5%=!UXT)Ya08ewqfAS2)TtcS0|7YJv4Ha^X`>cZX0mOcOAO&aJqAwxFaz&yTgZYV5t zEI#b}jZbM50Y+J5VjHUL8;&al0v1z0*bUaoLXouNj7i8F>Y^wcFs8D9zitzwObqWU zP^%i#Cv-4`?~M!L+MBq&;OoCl=K=xidlyE>8I%~Q6}Z|wJWy!Ous(FmUCahfzaADvnd-l1tRC9eUbdU zUxH#x(x4(MG2nH9qX-T=x)=hz6vbwZB@H%ah)+H%09a|&FAaT~k>nV)NC7WVc5+T}j9 zq@#tqmeGGiw5CC%vJeuYai(1OTL%MAt=r3W*%k3_E_-FZjCO779>{OmSS~KCeVC-t zfh#HQY24#nr7tHkgcp0mOHdc7@^t4!!8 z>Bk+Egm!WUP8n(w)m>IZto}EULj#|_PZ&<}>Cgp^eQ#3my8)2uJQEV;N*#cXmUKsH0B62tqFO3Cv~cyQMk^@6}G{qwNcIu6nXImGTzd0Y_Qt9<{VM`JGa%}`L}W6gw_4gk?+?b-WA%FZ3nZVn(!6m5FGi^f*pALw`9 zS>#c&{W^Zs#AtY{%JUY0kTu=csvniTH0Y2jrJJfa~7F|j| z)BN?Y>4drWl8=*AS>e4C34<0Z_$^TERP2P5&(bR{YuE@lA8WH4w8wtsiDgzo4^>31 zYQwTms0s7HR8XEMmf@CSR6ah0;+&?nK9Oa9vHEoUNyU^-woo-$YpeXj-`_=YCs`R(IlC}1fW!AHC*5eM2=)1tHsm| z@xF;2Y60h#G*GJbUYrAi-TNOBSI6a~(WI%rT_xA!(i(-u@{W+OUxkW5ni*=uK)$>W zBi;RFuzWJb4o z%rtS7q?u#AZXc#LbMr{9_hqd_=VCIT+!8GvsN3AjEZ&sE@kotIS=XVW2=8`HU;Bj}zM3>(b`Yi2uMEM=kMVlOT?qLv-c0#}-hpU#_Kfruc^U z@u>vv?8`7nRZ32XHju_qK+zR-egR0gR6un5)4Q7ffgfYN(6U>@C+dxRvTCE|Ru6#L zdmCr&3hezzVR9E&7R|NzOEbsHUt0&<^b}B-aTPPk#!db%=bLny_rzA|*f$&&3hR9MDt-;1 z;O7cHXjbva7ntE=vs6f&ezpu`h!n3iIo|xt!_w|_`7{DD8Xva4LpE1FB-{8%%5y*$ zcXO#Yga*!&vukL_a{pQ{*M0UA>f=^e%YM!%DW0PoVm)GNWrCp~e-*2)p+yzPZ1m>4 zSXq-&vnaxnoM*vg?jf7H22ZIPk~x)n9*;E+mEs)|14S}JW+9NH8m>!f0xrRGct%EX z=Mqwa@R@xMUP>&QBzdx7Wc;LWkN|bH-(;eVhtv&j6}0gFO9b zWk4S;I+;_(K*NT~D81Cal2+!!^nBe=#E$3T45gl~n9&w@SkF~Tywuv7_hOkb)Sf~ie|kCuV7HJKLUfwQ|F6cJ~SkwS6n z6fT#>0C8!)hKy3hzU0E0tpty5xXAKH?FQ8}{kYF@ggav8aB_C6iw34m@u=0x1EnA2 zGS11Zl}rVcyO}R2UvBS2!~l;ZS#Lv|)5XWx^QA4JZPEDcy+`BEDQq1-s5kDA0t%uH zC|HA{Gfl<6PVEkA#KfkUk+1T*kbWm$r#5#%s@XfO&E$mFQu_k#Os|hBi0z1qU9+se z?_Ay0qn?{N=~cla0$MaTz?H`l6;4soKl9Gj)Al?%7v2#n13BzR|Lf0%j}LTXC&cWN zk#wJ!NqVu?v~2{8(&@!cjM!VI#v}8bR9YB_32v4xL~sdEW)XMI`Vqjgn&tB+F~z@^ zz`8lmBa#*`FF1w$YC+hh5q8}aC*9YJ8mQgKwy$pb(X-%v2279d|FDU#bLRV4ksr^Y z*K%n9fOK8)z&MSH`;uuSN^G(04yrZZon@)&-siXd@+O@T^!3O0@2ZWpA@-N5c`H6{ zSJb?{s7_EGobcil5;KN20WF7@Hpy0zKy#@KMI4qe!6Orn{gozoK2w1VXp=Za0Btso za_mJIfZ;O-zyp2WE4-mFhd4`!h2-`@J*-~7mN2xPR$guL6Ok7%b-khjM z6n|UuN_-{XxSyO9xJpVO?q`c6LtGS4{SaJ9Vt=+R{dM zx_Ek+3(y|vE6cm9`|h25zg$BcREY~}PC4+qNDZtlo3MU+3uGRPT2T3b%jj6m%vjo? zp7v0B?ftDrt-C*lZvkkwziQ-AGChM&8^-kbEfT23joF>C_!}jAgfH$-2plj$up9dCVLICRuB!N}jEK z`*;nXgHNW@TIEvA;B7?cpB z!b4?;s%5B^K8tXnSJ!SffwITd$j9##Up$(K2L07vvi9pz12Yo>QRtOhKu0O!bx)F7 zh5d_XYh&tbj4qD!L2(g*n1$`@ST8ZVgtuaB3_n2RQcOkYT*fX^;814sv z(F+%`CAucuj+#uC=llR@2NAVS%qdW7sk#xz1AzZ)%I$}@ZoYA6S+2U5bHFOCYsFle z*l~3626$qr53=qTd+e9z6aqLWyhG|e33Uk05w_t=>`gEG-n-Csam*YDGvgRTgv^ls{A`kN)%gWfv@=O>DbuAU^jJkawNl_fNHMx65qZImu&>&JT8TrBNI_z1HSwap z0j&-S%(b1*f&>;c(g6zq%IxnchKmoeBhGs1t!Yy0I9W&(pj{k;=7ld`?%OA5{Kfh6 z%PcC(aigZGKR@jUT&9(oIG`3=iqM-#On)=HZ^HwH?E04Ha$bjA$gxH*^EW)~e~8Ht zesF=U#uHPL7ues~#|}V$conde7hVPHqB@ssV6#cpz? zVhDn@@&+|)e|fP==1W8xt+CyY0Ci)Q3Ku{dM=xuHN$E2&BS(kFS2_kichquDob>O% zo&pyk6W1Ukq%s8a5DTCU{d;j_tC`ar*%{9S6P%%uAa+(~zssk^dxYtKGW z!>Vyln4|reB6)Jlonr!shJO*FPIR4$D(K0|Hw z*adHzTqR$v=0N!q5Q_K4y=3NL;$(*~Zj0h*;(C)e+C4wTfX9)zHFDSzU+3*8P-Q2_ z&=5D2h;(*m5gi^o_N<1Xb4A^;S!$t%#vgVab3Zm*c?qzIu$f8$ouBe7j;gRc|CW%= zQ?o9V=C8!H%cOxsB-5Q}Rokkn$CgPSHzGKUW#kUfFn^CESv3^|1oT}R zFNCY{h})a~ak8>yUQx&_#N0vZKZL)EEDoSnYJaF5;6Is~ooqTfbHJ+pV@?U;#3RKF zX!F&2oZ3wAMfNhl6@ zeQ=hWa=c#J#knJ0R26s`D9VJH(;=OjwTn?92C{Z6ontPB<9Wu zq+OW26mmtXl6O)?9k+!UUY_L$depZq+eFOwX+jk@reX4S-YY_1z;wLMD+ii0A~P#$ zAkR^=zYTT*R9E6^9|P(?d$->m>K5hDcrT(hh~SY-cv#g#nG}6yl1UPu=RoG&o1iD; zHb!7xGM%BUr}vDhAx^ypFZ}lVg37Izd-lm1=WAchf|<6NDiVT7NeT&{oYt>mW(J))no<)Ow?X!d7AziETK_<`Mb@Z1T9;vl;+iAGqGZ=`mi2E?|U;hv9mhzijk4v5MLurrD3F-ErfwL5{zY8Pv;X$0w`#ey}z@!*lZ&;j)ZMK*I^IXFQFsa`KO` z{zLZVEZM>#r1kSy?9=zd$4kZ&01SdIMk9A=Tl_}H2^#{c<}Vj|g(d>Ph~I%n3E~y* zt7Z+TLu_%SWpy~_`q^Rhh3fhCKgWj`EkrslbSY;y!N_rV3N{;O!57TdbJrE zfdih@O-x^&(-;bEB!lK*jtoOhlBpzMn+vAS5Jl=f`EM401*vG#=}RJUN+3h!#OV&W z$q6}x2~AZ{$>NV&heop4M2{o?l=s-}2S?pWk29nf!%)D;J|1XI;%Eh1H1ffXcUw{O zwT0Y$D>g`Aw2OU5)uOJu<6zKtY%CF{%&A%fB5+V(Adf}5zinMU8t?8IqX=}c8f0+O z9Tzh_S&=$cW*qgcmZu|P#lVUp0@X}yoOGm^}(O&ehmgA=~Q5=dNf4T zPlEYm-~^}rxw$(M&XgmDU7d5lCjhgyeVp8i&t>+i&C#wYD&pYI%TKh(vntM*ryM}@ zKD_I(^lHNrT=l)j16rs}M74GsN;jsm%|#aeGQ3KjQ{DK3E5eCaxs?$7c8s95j9^{( zX1XW+8)|z6F@=imW#fAK->W4L#J`vAbwtTFN5-JA+pCYd?;V0zFQ@C$A4}vtKJ8Rih|tFjtvbdRK>rRjcMVcQ z^UuW-BbgCH30sOnRX2c4ae*coPn~7n0~&tCWx88T51&qpaQ;&lT}vbqQ$S zbEYOKrceN?Z})aJ8)bS8{#2Gh-By+Yas&G%Bg?yKWtn# z7r8q?hXsTF+jLIOi?U*1EJns%s|~B0{lI*yLhB9!|7Du=b*^JcQ?$P7*K#|O`u*p0j3M56#eTN6S{!3-+nL;D zaG%XZ%N8@{4pjHh@It_un!Vdj`49MKPR&@BO$oS-eZgB$Kcl8Fvu0+vWhD*m*sR~6FdlnRmqNJj#kPMA*5 zw>TW4m(%h6eQ=xn>xTAUH?Z9myuWW~o*Dn%?x$>UJA$p zL*MF>^^~ESahXRTLx1N$Hw=-R=x)1NCN%t+S0 zb?k#`d4y7j-;p_`1 zD#LCIq>tQfR#Q-}e!$qT1gLP(q+6FCYZdQQ7yjOX_~zVI*+HD45u-~7ow}8phu5eD z--kKBlDQDoMa)N9g}KRnF)*|s$+-rY*}8R!J0;)%`+}RpqDr2iet}|@v7u4sM0ZMt zH~-+f9MHo5Ubb;}_>~j@1iVYhv@m^>i}|wV>ZXYT+3#I-R`p?kwxCt-o!Pu@?2p5% zOHMD2LAQ%n(maR)E>?lQf;QrH3d9>pVY}loDrcH#@{C!nh3YPT$KN>q*wX;nJ{4}Rur%68K$Qt z&lShPc6)wYIe-+nGy2-egRyc?6Pw>C{>>#Q)q81-zGS6E<2_???a0w2^dTS5(rr%s3_ssi-WoklX?f`xK z>^Y0tXF{p&m6sX0Km|q-9wA*D{f)?lNxAg}*e_`$o6Gp^{?yG-yasB?lP(8>Glu7_LT7tsYyB0QkF6nZ}D4+llHrqV=ndn?+#MV&!Zq_0b`09=YbA0m_S(x7q zTGWQ$+9qx1d!a4O6H2465lxXo$bIt?ROMM_j@v@C2uv01417ht0H|mUNXxlAOfQ;N z;!uLUZM`vRk|;*tQZ&LN(@f!GTGUT{Xz-a?@ZPYkbAM8@>k7Ilr&{dHCW*rm=v3vc zMo`KkY&xfA>lh2JL8lo78N1ykfGdpm@kHy1THVE8_1?(yuzc86ihyg;zImcOShv7m zVbx1L<f5l>fNrz;9D)Y zfo1L)LO{_u?qm#PzHLg7C)b3WG*yJ=1@p!A1X_#QP#lp-oEtG8Tqx5&Z|QCGr*6rg zaKs#|3Mb|xNmJ`w9nuC+p5=_A3!YQr0C#s|XG(C>O>F<4uD&v?u4V@pc5zD40tHHO z*tEF2%f`ELio3g8p;&QuFYfNe-Mv_GcUs)<;``2d?z#8>nj|xs$s})*Ssb3soRte> zfKNQ+FpDcEEl5ALIT@i!wyz0B>GC`TKXlteY(VhNxvW)CYF&6g067@FSq*BSI z)hSV;l85JffH07a3nX_Kg4ItC$K*fN7Jj!7E43aYLi)vI9=o*f$Bi=7DL7VvW2c8; zscgHT#QPBwsF;?>r>Y}~CI{U7>7FJuMU8Shf~d_Ha|>%;jpz;H0@R}38~w{{B%OPp zjG^s!S|~?4iq+y0fCNhl0ZRuQOflEo&CCb<1<+C-&hsU+y-Q>bopzpYAyB7Ag&rwm z=2bb>JT&T}34K2r-Xau&H$=HHoO%7hzqw@(*d^tBG|OM%XBwyg9p-NUA_6#7n!tuM;`nimGbMFe3d zwuH;S({y|e)H89L&mClgBNZ_OuD=wKN-q&(JoMR$9&(qW<)_>PRI`nI%EpP!G`#;S%+toyvBzB%0{_Squ|5v>WngW7D%`&oS@ye3Sj+5OADZeVZhQ{cM z+V07uuC@1mgZ#5qfzSn-&sWjtDu(>DoC|Bm|6 z3|i^2CzOEDpH2mdlW0JbXWXhN)5_|WcmnhjMpVx*`LQtw+XFp3Ahzg<@DZshWhq}GoJl4`G?pt zwI!1JK=fdP#3{Q_E_F)Uwoa32K`U5x8^L6Pw_pP1WsB-cO>9J)qJ@7VBb{0uJL6eFyq{XL@_pB z3MhNLmB>U0vysf#y4_fygrK#`AoXT8c*Jv!#$U3F>>cq8J}}S6Oa7Z(ssE@s+5?37 z2jZDNfOAxy%*Py4$bD{LSiampprG1k`hu7MsD~1LNWO9NUj}So-I%!9-=Lh>8gW=y zVt!urKT}@u=oR|YyqWEFB@})vzP*3<8TxqDg1`R$O)(L1Hd1fobKq~S{^-HNnU9nA zbU>d3X{1@w?*pmL&j7WI@5gj7r(QMY-QZ6M<=@Y4+7~c_RlaX5;|Y75ifKTaqQXB= z&OYxgVJtevp*k*q`Ej;0z2|iVy2kxf0|l34yCA;e7Dp8-k0uf%8d3-!ob8cV(4x9748RMyc_;Q*3Pk zDf0;<1|jwCFOfo5{C4k9Y zbe+HWqMN6$Bg(_|4pL(k+&kh=l_9WzG7wfDV0${^C67h&1`SX7k@LRFma&FeodfN8 zC^!h{8k^f@|L&4IIVTGJJ4L%k%Oy5+c$9Q!!Z@_n%hH;w!6llNjjG-D*J%!Iv2j>E zC@!Ng{`x+0$FB!9T}WmsR;goct+P?;Bq`q~2UC1OY>E#L{Wl5IfKrm@BrKr~GD>x& z%hP06wc2sSVGt-i;;cYBOU>;Wvd}-PTe)v;+WnTEJ!(Vg;C?VJxj!!TnGN-8xps2Q&);5HHGphMdZTAYZtEPZhwcB?SGW0iFG5b#}}bolB+ z1+Rk%MRq&}W-hfFkO?BDk{`%pWNfx^i2zc>k(2>G4fJ@Hi+LU8h@_3}4a9+>*?6}( z4Ryf^$Nqm(bH9<-_xr?Zx@q>c#%9fj0=*ZF4cf`^7tUVqfPxs3?H$w$w!AEx?m%>$ ztNcQaO)2(Ym}ff*>snmVY;N&)6BPhgZqE8}2BDZrxzTht2=2+8E|+U@TF4LFMzlA^ zPN{U+#GpiSzj?gk44)xZN(o!M12d~0tDE63?O6O1t^n!!8T!b4V=cokzD6K`B9IFO z3rlj#_cw{ncW_HNTKSist@u^+mP74>#ryu<% z541HR-mx=T()of#I!lVXR;P-p*=LJ>hUT>YsSOe8Y>tNPGyDc^rR45}X&g3a2&SK^ z=+)KB-BeSP1iBt3YI$9%#}T*I|EmA-!}F1_=5U76ds{YyKsk`-84|-xWt1(r>gCTl_?D)c5 z@_)LRt&KN}UvM9Jn1_{7kcCm%T3Z1L<3Wc8WKJQYy5?=bc^}Xf7%$`?Rix9{3#yx8HAAO5+b>jPyZ%FLO{N=gyYgMfgh!>tp~l@?*T zMafKy4d)XMSL}v=Z+(7g-?ya;BE0V-%w*DWi}v#ewjE?9+r+$R{T zu{9_9`{nuf%sw?Fz=aRt@rt|qtVsd&)$9UGR8v>oN|90YKiAh-JPt_(VCBZ?QX9ix zX~rw{@69JG*rtcydQiogsv)iqf4G+66TpEs-i!m~t>>Cr!?XkPF$WFTZb+vaWf_xs z`!-}AOPGdZs{ci^LKJg~a8;k#j*9`5q4y0YEU(PY>#VqekdhxKD%=$%^{BFc@)fgW zJ^IUSw>EDe&`0!k%xnSo!*sn~7ahTqY?i?^lf1ORm0s4i57XJE!aS9Fe?O@%Ej0mQ zAyfBLu4&54!L^h6ry4b4H-iiOAForWkV+q*_e#zUsq?a-JlKmV#qg;YdEhyIEQs$P zY-=JOr$=tmaJWR=ZINkA8MwaQH8Zhp>o`-K^x``;w7+&e+V{E~h0ySMP)}Tj<24+q zvfT=BN9t&P3hzer{?oED79U3&j~19~Ea&1dtrb6W#DsPU zOE|0l>ax+vwN+w$uSG}&e{Y}m^^DB(i-Tef=7v8|68(YIV+3VLA#lTaGE`Am^ zz8&sg$QwKB6;w2qVZs*)V_HsSa8?V>k5s*@0`(&za&g!y7gH45wbypWnrZ*r7}LrY zvtb-vSFN&F%9CAsdf;F`E0j|lWu+tXc=Ss0v3-2?dc^8LJ36kA(5ItP7E{gUBi!5) zmT%xC%=$rQXmMI900N8b3)rX{9k<~E&&5pGWRTbwUZ&=EZ(udv-R2ycXaS{Rq$EFQ zPnPmoXk16)ku3MSP14V~Oj!yM}R9&5|GL- z5lQgvKj_A*9yL+GmQB|otQwV!(kTdSGl{@*HSjMq8!zNq5wEoY`Fj?UtvmL)^bsT=BFy+!t zaMN;uHEgoFXg;nKT{O%C4{%3ru@lX`Bsn~_gu@(LCN$I-Fa%zAR`t&b7nkqQ@JuTR zxb3z?BGfVPgF^18`&iM3Vz54zhOBXaeK@_A>TU?E4mo_L$!{_fFw6tMJ8MpoeO}(B ze>xVmgL9|Kzs_tn1CVu90bC`+aZMff0(|{48qh3RIJQw&ZO(*#Tw*5R#X5h-HQ=}k zCnyEYenKj5T^Mgu)xg7ea5}4&b80dq1-jH?Mr^+2gBETb{lS#Pq4`sYEocKy01~X< z0OA}x7PipiGwQa&;6C2bkc^j$;FHdJ+}%9oCr~PQex){{J^Q5Kz97Q~7%_uO}P;NiO--%B2BQ#3PTS3E7b$iTjS< z%-@x0FA^bDzqQ-YJUqS%7UcvS3c5{HzJ&bB`T9`p48c`yY+sJ zOH}K&0`u$tpo6BIADJn=T9TL#sJ#W!~%u>DHqy#2R031F4mhG!COYy0@R09HTrff6Oi@eVZiAPVNcdu z3(Doiu^JDiS_b~x)3TH4)c{QeHx?Woic5ipz>4;_qU}O;qfO$~r(P!rK<8SJOnm@- zuy7z?NpY-V2XfUv{Hwl*2()+QZD_Y#Bi{m}-+T{@Dz_oCy`qOgn(9k61pYxIJ77?qQ z=@{vM3ybGKQVc7ImmDM4EZuM$zU_DVYzWK;xR~VNspUzLX+LA)FHgsuj~oMovPI-ymYeQz$h zY9h{eKI4k5o9Satd3+(;uMM6>Z#I@sM5Dj{j8gjv->PW}j)?kNU8vZeycLbW1bFA^}9Oi$Y`P0B~NEvV@=%tOTOk3KiL?4GAAxm z+*-fWFIBYENZ}Lv#^TO0&bxf?gOh{sng*Rdv|RSR<8I4dn+ts^jAKfaYvgcE8|){6 z*J7KQEU*LLAxEMi?8+@p8R|K#7@)QB?Gx3 zl9rnWP|?N$W?YWHc{P}^<`tQ?sZ$pQ^2dL9;dA6(XCJ}x_p9!LKk3MjyFgE59S-vF z-M?PBvBS=L`LDe9ltDph@F&=KHUmWggG(yfCZ}*SD|Td}1ZGkwjcC4Zap@4vjv{;T z*M5g=`~67fiji#>T|GTzsksqSk)=d>Y{5^)Il5DDH1ITGOd`u z2=89;bdeLw-LxdyVXankR3hM);#p3Z8zRmGmOt|CLAMdR3(vFE-(M<^J~45mX5(hd zHy3J&c6Jt*8CpPoA8iZjFlBG~79BM;&JSbJ_cjbCI8Fv>AYF+n&NX8H_A0#c%UmVq zT+3{r)&;#=(Ce=*Gz1)1uvw5;d+u!2nuWJv{&AiU)^O!_NaSKA zxSm|*>>k_Kn9g5~X*rjhFD$EtGn3!lmZ| z{!=_{-ICFggTO#wsyE@2sT+GweQcKgW`vTKdNU1?d(`n&3FAp1!;#!Yi|%W1fQJnH zn46Zx6ldSvN+;)(!}Ct70NbBmoG!XHPXJn1d1!Dxw8uytGuy+RNRhXH-MI@ci z!D&85TDTgG>u!oZFRHP+OwKK>%LnbYSub2?_z>W2&?{b`k&#esj~!3k&vQg+{2^rD zxOXwnb#I!!8zcbSMy%;)?5%{6k)5=+cAa zPtG_=t2uHiXCv?sQO!`qyN0u4zI>Q>EMSn5s#Rkqj+89?xZ83J&(mAqa}&D+n#DlO zC?2qjb#TW0Zg)icn7HSu3K~!Ej$APZPIx2}a(@!g;^rc1&JFXH71`%-kuvj!7F4rq z7f;>%Mp#g0D1GV2{YO<{8w(TiHj_}ajlan_*_1e;L9$&;me6&9S4q}bFmrX%JIjF` zmzf*1@{Yj}H)Hgpwns~n*?y`F>w+b?*bGS&S1^9Kjwx2e=h%bNGIdcYEsK|7uT;Ho zC_g+)l>Ze?Op2qvg1J2D%otDar^W>}bJ#V7gOG}|nHM!}u%bSjes0}^fx$a``9}a? zsL-B;!M`p4p}|riK6v~*qMWgZ75le`c;bu3kINE!OP#xNQrIV@A-&JbhQ{G3N?*Kg3=;Ybs9+n- ztvc4D4&*z$ca3sY8AR?zw}!V*U%n*(Hvhn*Xnbz^ilo2u`7je5ud*|a12;Msw!f03_LL>!cQJKRI@4{`1_~S zlm}oQSsTuYhf|!nX5!u{#1;s}54cSAjT->Q%tUDQ|v5z*CCfs(v}SA<^xE0TDe<;{F(^*r<*jYo81}{P zLoEYgW5m)ju02i{+(oUNaUV6PkhNa9&6kxdc&f5OLBBP~_Ggl?i*ehVymIZrx7>56 z#LhAIj?k!K2SVec4VnBb5b<<5BN3T~ObcRPJ8)a7b>avc@!s&3T zLg+k{|*Ly zLpLh6Uc^1Qe-nid7J@I97&^5Zu=Y6;s?5K{wbKZ2#-4}AotNQ6W*#7krG|ffW$@50 zlOBCW0Loo%7}Vmr5>+e6AuZUlTACg<@fVu0)t%#&R2)p_MslEcP+PZSDjsK*#Unj1A^Jl)x%R~`tFcf zKq=Z|n$=;Bl)fRG2rGJMIJ#+G$TM~;_pDQR4$k?$SN+- zT@|{p3VPAfg%Pvgx!mRGDxLJJN#UmN4!uFzM=X1ku>>@(YBioVZZ|v(pndOa8}1!U zP6S8};chRx<`hNY0ym@hmMGB|ZF0#+W<4Hj~`3 zm*a}e>rbGXJd^bev4Hot_A|*z{^!IH!a=^^O*?e z0a`OAQ7sUz?X~^7F)rzG@>Xm3LKD36t$S(habv=st@t?53X=GyiNgR4Dq#1~7^nl( ziG02z?7&5E!Tx%;TXV!RFq)gY=6kD6Ofl{@FgM+MAa@m+ZR+_3@!KbvVm>VGv*)o# zyq7U}m)vDD|3SF*TNv$)6thOi9| zFk}RpGFhIlON;Qj>^0cA`jof)h-H&z*1iSJ9GD3505rmR)CzohRQO$>q8E=tYQqAy zx`SPSqeAVi1%9M^BPiF2pflVm0ME2xOOt zFAM~b3Jv7_ov!i#Tl2}r3*p=d>W4}Ut$4<4KDYWx(cAwy{|W=xhCgGc6zY^Gcf{X- z_4J^}(FdV#OYt~iFwyuaq6+x^$eF;cMemA~rS*7%V5EW&SFO6XfL3SpOdhbIMMB?0)QP7zR4S_(cw8nfA;Itm$$Z3wihwWj2 z)Uj#6BE6ja9}JDlbm$qyvr<1xQ;4~;_#z3!_FxJ^>B8pT#PaHrQ54Z;`*5bOo} zYSPDAc*+Pa3F@O}J~xqeeH&7HU}(zq4~Nvv1%6OLX|RVS=k^z*2mEgP?445!0CJcg z+9L#ai6~dyyw|Mm8pthf&x^Zs`VUROS*D+P@CrYnrl>z>0#Dr?#)p?(+YO=sQ%oXk zdyh-J0TOpa^3?<)mu=zE)wx^`WG|lEq&Ss}{o=rcO#7EF%`4EyRSDX6|GzKYS?^qG zZpBd)97PJVw;}ZEdInI!!|oao!Elog=6hihJRr7cQaHb68(jAPXMaE)?Tkc*GaC&9 z!XZvGLGnR?4q-nZ{CzB5ylZx+K7R*`U>pVauA9JLjZ7rnxW)$1KZNEHbkZg7H9Nk) zA&o+XWh&AvyuD9pJ7%ByM1XNTDnjDs*n3l;dTsk6slAV*XqOkvP*cYX|1SXl1+3UV za<@&2fn!^9??d_`jei&kBCy1!RAOe)%K3rKF-4F~Zp7 zH{#wIQz@ULWR2~@N!B9yS^_I%BqH6%4d>o$S=kf`QVIO=N1D?pFdkATVXlv2PERfP zLk!7KL{Ns7P=h&v6(ME#?`;va@Z^r0=LMt3?>XY+vqF$p3^vIm8C*3f2~|8A-Mf-$ z{~iySj7wM&D7tE2%5#RIvDz}kN!0uVab`IUCK#7A3JsXErRktrIt4}jA11KuMOm@h zFbCH^jK|Z@;Eg8z{+|!$9luR9ghoPyHfyr`ZX*Aca8`NMF#6Kse`oB;nSjI%pL>tA zzqRsp=Ym|<+lci^AdR((x#()ZzXYc+_T7Azt<%NGk9D*PJ7j4{!Yy_om z9=-Jcc&jb9EBC0U&F^uQ!#aut@A-a)`Dla=P2V*B=e zS_A%<&1sku@zTP5*r0Q>L}PzqAVs!KEw}T=w;ioC=I)`~J#Dr03jcI^70NV{m$d-{ zYa;_`@oQO~i~4Y2Za}lBnV#A7mjhKIRs()5?ID1M1=)846Yvg+4}~kXaCm<{TMxEI zo-uFdB2~Z{{7FuZVED!9O{GleO@N|`hw4*G4)+%Vs6CT4lo#)~tj!_9L7pq}jMM2O zEeM6Iht}YaBxb^pIkGd=tTv&y4A}Ei35{VThAt5Fgh0rcD2~($PXqi3#ogs(xw{Tq#%+#fX%a2B{qmF@)w*0_TgJJCplC!dh~|-;8DzXT=22G zp_0>&KrpH^dR|MO5s?n;AS!R7&LDH`dzlp4gx>BFb1DXrQ#z{*?-osJ+nkwiaS$@)tDqYs?<_- z9?h&p>m`&tzHs=OO#B;t{B(Q$HphJ+d8+f>AA2W;c{W#l6X=_+2+2`)!S_1;Jp)+6 zBo!|vwSRxo+qLNxcq2Zf@FTtjGOpcVSfai;biEE{Y=jf#9SvL(;KdG+Vaf#su|}QD zenN*CA;V&Lt@SpfufXoLe;&k1+&lqm#xkNqG!}!C2oSjY6utej+hI~?7)UKWbQ4`x zvld-R-ZY@x&`9Y1fV^0hDn!o}bOuzYco5c^8gK|X#Knm8?GmVFF_E8PI?{=JgQ);> z;pE>!xgWIKEPy5JnnjEIOeV4Z3GkWOJtLuwk>re%6u<-mvGAwR$GI#9O_sa){@`W* z$x|?R@E|hKGXsE)?glkn;&mh$R%BQv@UCR2P+3sSl*_>J*SCh7J40fBo;UCjrGaQ5 zO#=}Q*B*{4#oyT2yOM{{jx7xX@1)c;55Z=mr z+q9&CwG%VR6bqEW1YW$>E=r7&0~rptP-dQ3AD|HH@NX7WRP$Pe=0Ug!^J>_C#^Utd zIZjK?(^Gal8fXLSF%_;XxbSb#uhu~+&dT;B);!at54rMQ0FKZh4mt;NJoru)9~vNt ziDb(H-Vajs&uy^@wgx3c{|JPk%tR6A;jn+>TLwW3`laD<05@E{LsPax6L1KlWQ*`| z@d47&2!ROjezpGDEn)TQf*VPerYfabj^CPVPQn8bwVREKP3@tBr^Ij}Px6pUA?a1& z`IagA?b4QDhd%@j5YV%x=cE$;P4b^a1o*|=?1TvM4&9{@#8>}U+59vc7$EQJa5|YwJ(w5Y&VB}(qX@FW8xU&0 z{}U!dbp|johFo_YxVvpQ60-J#xLh=9VB(n8>6m%tvJ|Mc@uQc~0V8h@lhx1hIdC1E zrH-8vSDiCxZ2@srm(~ePY&K8Yl`-dhl$}d+h~sO%*PmBH6z0P**Ni8{JfsEPG6QS2 zTU?7LeWXJ6i83_h)5j*73qzAHRk-X;5xcVHoWJ$p@yBk#{Yf%DrN?w2z&`{Al(j|$ znZCi{r7;qdPo8`L^=|@=QM-BtXXy|$H&#v$XNYQVU+8y7Q4~g$*4YQ9uk2K8jcc85 zan!&zsgihuxBVpHij)O5nv6NarsH{(>z$)wTnjYNWOZ5_kBD-?{sfsZpd z&Us@B(^@D&KadIoMW;0E7Jpnmk|&QJ&V@jXlGewX*YK;wwV2PWa7(#qQexKgm`5bw zX!{U#sgccq>E)DuV4Au9UO57Gg~>Bep1g`6*Cu`S=EXSJvAhP@5p+~>$x$XE!;-Gi zfy{hV%t#2b1iQg396xvZzXf^bDap{HQ<(9Cw1R`Due?%~5d%VD)!dRa@-aZd9q@1n zc)S;hB?Z*gARkGcy-lZI zD<0@)sK2Pr zIa)^?X#hV-Y=scfEW*P(nsUG%AZjSCi;9`R1CO42v{!_>#LdzoBfcFAcuM?cJB+F? z&`REn2ihmmII@DAdpj-}@`E|kV^I8x^=AtO|9{vF;RAOaCD0ENn{)p|Eftcw9RqAGu2;R5qlDY4>)d#N9S zqH@&6X*AJ0RG`yLDT|Wc&OXZYQQ$Y2#ZZ-{*S6n`T zx|0Za3pEa%BPdPos5`fX!4T|ft22i3LrtcbL~WS`%vFH>Vb;04?1&rH_KkZQ{ixk? ztN;U8IZKwn9QhOLytA01ljZ0ehF5v5`t6BPswwOuJV1Z?-2BQdPy}-{M zC(jdY)4>(53X4fl2Xm>ABs=|(5BRkdWrhlZ8Jy?sx$UZgcis4)7O=}cSS8@-T9veV zQ?IWXs!{v?9YR3hFxW@K?dz8&=Sd8+5Gpp_qlf1ii8P${4N-wx<*n7}8m0WqO@Pls zP$xsOG0|?veh+19qR5M-g>~XJXwr^PKroF*_yLQ;DjBO%k-y+&7Yu1)Fv(E)1k976 z)t=VskJ_+Q695(trKfAE!+}KPsr!OpmGJb`Bk6^JlL!6ymQMMq>knF)T_ggnp4)do zxj`}eK?+-r8>Q8yu(f4n>m}mR@J^vmu*g`4*KAJX; zF`Ea>j(#i(W{f;Yn?KzZ0NA*OG6-Ja`ddS42V__|z%$@95~;-r>+qcpo_2quJ1aC9 z_l+*$Ik*K`O+17ERIfo~8P>4#6*>7c(isH_RWA#}kKzu%3hAnKu;nt=cSswvw5Ca= z0ujrh8KAxlxe7SIwow&e+fa4YOni?a#xB!%*twFa9mXeJa{|859 literal 0 HcmV?d00001 From 6bc9ce01669d901a13840d961fedc67b34aec0c7 Mon Sep 17 00:00:00 2001 From: Kevin Date: Thu, 21 Dec 2023 19:46:44 -0500 Subject: [PATCH 3/3] Links now open in a new tab --- components/ExperienceCard.tsx | 11 +++++++++-- components/ProjectCard.tsx | 4 ++-- components/TechLogo.tsx | 2 +- pages/projects.tsx | 33 ++++++++++++++++++--------------- 4 files changed, 30 insertions(+), 20 deletions(-) diff --git a/components/ExperienceCard.tsx b/components/ExperienceCard.tsx index 7c08bb5..59f4eb4 100644 --- a/components/ExperienceCard.tsx +++ b/components/ExperienceCard.tsx @@ -49,9 +49,16 @@ const ExperienceCard: React.FC = ({

{location}

{' '}

{dateRange}

- {links.map((link) => ( + {links.map((link, index) => ( -
+ {link.displayText} diff --git a/components/ProjectCard.tsx b/components/ProjectCard.tsx index fff02be..7f94c5f 100644 --- a/components/ProjectCard.tsx +++ b/components/ProjectCard.tsx @@ -24,14 +24,14 @@ const ProjectCard: React.FC = ({
{description}
- +
GitHub
{demoLink && ( - +
Demo diff --git a/components/TechLogo.tsx b/components/TechLogo.tsx index 31d10d5..95d0c69 100644 --- a/components/TechLogo.tsx +++ b/components/TechLogo.tsx @@ -19,7 +19,7 @@ const TechLogo: React.FC = ({ }) => { return (
- + {alt}
diff --git a/pages/projects.tsx b/pages/projects.tsx index 61fe764..d08bcea 100644 --- a/pages/projects.tsx +++ b/pages/projects.tsx @@ -14,25 +14,25 @@ export default function Projects() {
@@ -44,28 +44,31 @@ export default function Projects() { onClick={() => {}} /> */}
+

+ Completed Projects +

@@ -77,7 +80,7 @@ export default function Projects() { onClick={() => {}} /> */}
-

+

Sorry! My website is still under active development.
In the meantime, please feel free to check out{' '}