From 234ac5b7011f659ff1aa760677119d8022684fdb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 29 Jul 2026 10:54:45 +0000 Subject: [PATCH] feat: add SEO meta tags and social preview OG image to workshop docs site - Generate og-image.png (1200x630) from workshop hero image with branded purple gradient background - Copy og-image.png to dist/ in build-docs.js - Add Open Graph, Twitter Card, description, and canonical link tags in page-template.js Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com> --- scripts/build-docs.js | 4 ++++ scripts/lib/page-template.js | 25 ++++++++++++++++++++++++- scripts/static/og-image.png | Bin 0 -> 664253 bytes 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 scripts/static/og-image.png diff --git a/scripts/build-docs.js b/scripts/build-docs.js index c8be457b..d58cbd0e 100644 --- a/scripts/build-docs.js +++ b/scripts/build-docs.js @@ -31,6 +31,10 @@ if (fs.existsSync(workshopImagesDir)) { const faviconSrc = path.join(__dirname, 'static', 'favicon.svg'); fs.copyFileSync(faviconSrc, path.join(distDir, 'favicon.svg')); +// Copy social preview image +const ogImageSrc = path.join(__dirname, 'static', 'og-image.png'); +fs.copyFileSync(ogImageSrc, path.join(distDir, 'og-image.png')); + // Copy theme chooser script const docsThemeSrc = path.join(__dirname, 'static', 'docs-theme.js'); fs.copyFileSync(docsThemeSrc, path.join(distDir, 'docs-theme.js')); diff --git a/scripts/lib/page-template.js b/scripts/lib/page-template.js index aaabe628..c3ee05a6 100644 --- a/scripts/lib/page-template.js +++ b/scripts/lib/page-template.js @@ -1,6 +1,12 @@ 'use strict'; // Generate the single-page workshop reader HTML. +const SITE_URL = 'https://githubnext.github.io/gh-aw-workshop'; +const SITE_TITLE = 'GitHub Agentic Workflows Workshop'; +const SITE_DESCRIPTION = + 'A hands-on workshop that teaches you how to build GitHub Agentic Workflows with the gh-aw CLI. Go from zero to a working AI-powered automation in GitHub Actions.'; +const OG_IMAGE_URL = `${SITE_URL}/og-image.png`; + function generatePage(htmlContent, workshopMenu) { return ` @@ -10,7 +16,24 @@ function generatePage(htmlContent, workshopMenu) { -
E6Ef}uSbfpL^uhbdsmw8-a!HL@g&)a z!EJAJ&)k<;jIK~TE9zRk2B(`Fqcu<6xp33aN!oW_v{Y?wM9D6g-?i(UJdu z4A!L;Wa$1&6g4IsCr}&dg`m6;^4EUH$k2iF*c!L2^9)@k#W7BBMESiy*uqcV9t*O# z=)S3!5Qk|j^*3wC7^{HPr8y;NEfMv+$vR|zDT50%e7CZT$}GO^Ly(ym?r%|i%-9}O z5lJ%@v;6{!EC9IMPIR77u>|&yzY@UpoqhXDZ aC6H)SXjrYU@Lw7qXbDCDkt$KP z2y$mh(YNYf6^{>>T)^<2WiEkGvdvvCJfKiC{z^; +U6c`So AD}j4L^Me;36ouyoPnj>3H;7>=8K^0rot%?}>|Z_L=x*mal%# z{RlpuW#^V!&3KH5lOuW&90qm1D&4bmAN{Wg>puC=X4}~%9>Jhr`?~5Sa 3@uGYu)}~5PnE|6 LC GbnPq_CT0 z2d$Eeb&iA1@n+ zaCN==y=tW4W3{##A%0C*4NHZ1PS5wGk9TYc(7UYEM+L}t3gc{!=2@sJKxH%ss5iwN zX)=SSQuPbqUaQ1%|3Ju#Ojfu7GWlVk>;u+NT>#I_nSL+RY{IDZOv4tAt$D}}!IKrA zO 4x;$L5)n&$uEZxm=h{7s|%N`jur}E6@HhNQOV%?XdtQ# zzS=5_D8h!Q*s}h%sn|sSPas 5-CH4U_aR4^i1 z0~*2@X)p7(s8gB}#dfFIJcLjWu7QXd!*Rf-uVg-wZ+3vFdT3ODPOh2y-FMsQ;Rvh1 zc)no(NNbAw;rb9b%aGIP=~mPP@q_`{$~SDDv$EK|U2tFiG1Z8)H5jg;Yr);EFNXX( z0(U>^v@mnv`Qo}LvRoE+I>cfU-G#Ca{vP&XIu1U6Pdyp9SF4yqO7JwzBKDy=w?yMC zzpN|w_u@r(x0(L1koam)bZ$J>69NxgQd8}pkHA+7JIHJ>)P)Rtpq}vN&~jUb;d6_| z5rJQ#IrQMpj%4+Q@RWQacZG$?A|@)bQaKDdm*yxf+_N 0(VCn(_~YGrAzj)erqQzI%?+)kATr=*smCVt0wC= z7n5p_+~X$L27O1#Ci0~I-6g#V4O>4fw=+1^Yp(k1AL=gNo_gEc@`=fc?WF?tFr5}X z0um|+ki;*jqg`pxNf!I;5``dNh*mxL6I?P;=)C@|);7gd!jJdBa%cAltK(+EMaRBk zM=BLmy!3AXfoR6_NfAqDrvEC!Xy&hCEfAPPW? $*z zd^FjKm309)G}TkERUVX-AZyPc;(}4LOOQp1k#UJN#?SqoB@pAhCl1vg&p6CsTa@JM zQyl(qw*MwS`}~Q1u@d?lS;W^xo~A-fXJp1}A}dEq>b K?08GL1A~}$o;Z5KCdS7IUX$z<$AVxXDS4a*lf&o zZ=cRrP@krIb?ZwPK`B#fZIVS5v3KcL7yr5YQzsxGdsBU>;ndg5Bs7r2I#%h@ksG1u zLL2qpIAY-p>SVD)r+?0XsDY^T27J|vv?r*M^QuZo9lRNp?IH(HZBcMZA}P^BY9#^q zDs(F^? Vd$9-RjIYRjVYOqHMTUDrp`Y`W?QST?22*N%CboP&z1i&BG~OL- zTcr7KEbl4hCT{TI>&T@XX*kD?#Hz>?{B&{9e!?XIp7^r|oJNb6XMcf1^$dF^rJbwR z)LC1$z(Z$$JTITJ=JDWod`7YYCBO18ZL!`J+k)??Yd<$YP?MAzd*zdvMZ?KJMzsBv zM(QpVv+CF`T`jG3RvC(dYM?C5ZHW4JR*cnNcxo5!KS)@>|13n!DkTxIBlh#RxasxX z_+BR?*Oal_hT-lTuO&Mt@7K{fCavH#-hEE>WaCM#s7TbC02O_k@tX{B?+w)hxz0vo z>PjkbFIfZ;w!<2hzJC*Z$v=zT`@M4ThlgS@n*glHV=rz}M}5*!Oh32f-QF1Jn;YJ& z`Q1l~8ql7mQ>yN0!p(;>m7K^?7)waoDFCeY_``{~nfH!hRkEYk?ig`RxeLw)Len zn! R`W z-x9GU>6-NU&YWk{w(l~Hy4qw{ar(RIq#^XslU%1eBv7bJ> RK zl^CS`oH^0lxYO&edzonbq%zB&UcGlsLg~BP+Q8H}M2YLzuvjscjr4tlAiTA_?{J33 z;NgbFDPwJM()#=AYUU>sd1eX?zhJW32=9J5G+yh?dKW0PjQZP5uK0-0y?4Odp_tK9 zUD9r?ncFl-k>>b!h7fyRD@ZnDFQV!^&*O6KS*x #|9)3-{jkWZ|nc-Ilj>U z0BJd!fSL$L-_i*J`>|E#&scbDl991s{S!WibdO8~GbRsQw9i?Q4Lq|nxJ~3_`-a`= zopdI%0KIBC?tF9FZrLA|10X?Kn*<(M3IzMRn#p=K$lpTtMndO*Td9UIEPbe^vpMlw z&$-Cy+81H97Yd8%BkUN(GW&53g3-Q$@mozby+3grs&4*oDbmZcKo-i|^P`Q JL}Cl@2(3{gHD-pvP9;H8%csw{rS(H9 z&iSC_sQS7~|F?Fvvhr7 CYprfj?`HC?&>X zfin^HgPK;NWbS3vcX9~d6&oDFO42bkeWi_szNzpZWn?SnPikNBz1y%#(P|gC?jLmk zp&xTE+cW1SKQv>dWmNaBLv`*L258J0?VgLp<9BkzVzoWp2NAuB#1UBeR>Lu6XmMgX zy%aiuU9l(1O=<4-#c3HF-R+Yp@uOZn>x*IV4)EGu`mP}ojZAPOb%<3zg~+UQx@ODx z`BwTrFE}RR1;yEq-102nDFABRPuL-^H|t2$b?ttr+HtM8fXTC1#9sSv*vnw9VoB6; zto}Jcoxy;!pdbK~W8wj0g<|VhZG85M`sz&|2jdmv2MtfaNFT#Q0wPt9J~ZyE6|OFK zqHe`=#!o6amzE&+r={${8h(GEbvZ4hCEHRG>K777rUEc?z^U7Sa%~*TQ!_yTZ6BtI zH-E4ImS%sf@$gOl8=-iLoT!~5ak9{;W+XxRnNu=fh_XnImRF3B!|v~0ek++7UL61N z-%RdnYHp0? KUH(pQt5&D_Dxnnd-jbO=+NCAChV8UlPmj`uLv2S=-O;(~1*UblI1sK9t1QY3aA zgdo)sY2ZJfj221?x3Kfh*q(?%4OwQP`tmhDriDl1bMGj@e_R-rb~3bo=$O5H-Yg)j z`-01Qb(^oPxUssxgu1dPwB=xDh%$D;_}4r4eTj@fQiz8HWGD8a#pbn1gs4w{2`b*C z%oM6*6t%@)xj1iB;&3=Dk2$EX>QMUSN%j)`9bGtwwj6jJy5pp^q;C|Z-6y{j#=Yb9 ze8vt{MclME?evS}p`}D`;txGU=W2*(e(ZKW~bpBF~+g9}jlL=hl;h>aL{D=N&nv-)H4NF?q zS4L}wO_|gBLdQNe!?VIq1xQRS7wtbXQ!lTQn5HhKG#PX~^;$6S-v7FMV{1Ke;cuTQ zD8Mc1-0={9JQF~AyP16BZ4l+&OfO9T^d(hMuH=*D4jn`e{xn^Vt=`8(J13R5z>>T7 zbM^)vQI{dGj*nK=ZjhGOCm6PxbXN&jxCfnCQ`RY737YCKzOd7}635RR$H2w^R>-5n z;~Yu(CW~XG 2>!9|96h)ftS@JvG-&9#*@Q z$dwmN&@Y(Q1U?$nSiUq`X&Oo9Y&LUogaIwXcb67^fD-fazkZ&E(GN+R)n5Ek<8(Bs z=1e6c+R1XTt#-+c#42>tQ+9PBa+;8b+%BxloWGyl`cLwLKP#45Q-jC+`8TRj$~tEe zW+AbYOs(+3=*t*aMUCn1PV2Jz2+iARGEA(3)sJMqQUdPKC?Tryr`aCy#tVMwfsTA< zm=QEeo#~gq2NaV<)_i6^mB9rJyYj;cHhlhbV*_=H14;i3Go%FShkKa1?l@6fK}uuC z&&FL#@g{A4ulyD^={bqmDXzjJfmBl~hRl R9!_wY&vAe7TuXo`$sv2*<3Sh%lx4zXXZUJ z{Y7WC)4egntv-NjW#bDjU5#F}UFezWii3IAVZ9SRh&kS0Lx{KBv;b6k<$j|iz~s}6 zl|mhc*{=p}{&Zw0+F3EnTTPU3je|~0vVEQ%N3D~lo+*CX9(oSz^sV?_?zh!+UA47) zKBpG*ckz25h7HHg-@W>{#9J{R# <#Q_(+EDvKUX9 z{Rz)+x%_X~?|eK|DX+_;@sW F54-T~z;T z^x?~cgu@CJ=#GFQ!_Ztbe{z+5I@>~Um!)%esuGjZiEAzy4aE0#uLT$0-wj!I;Wm4; zDinyfV%vz5)sB|QPRfSQG^}fo+m7jC+8RnWdis *oIqi >zyP8V(=*aMqw&9xjCZz)55vs+lmfEN_5YLk zoP!}2Pq&5SWw5Ebg_>q&Wt;Q6KX<*96i>m;J`jB+a|I>^CM`VNM|~NoO%w09?Qdq@ z{W!vwx|=h)5(r#d>#@(a+M1T-g*`JtbH1k!j?k(l1IeEFLhTVns=RF&XtEgd_aaoU z(Q)aC(FoB@8YYq$7&6J{Pk~+8k~g`=_IL(LHG_7FWie4T?Byl{g9@KN_17`Tm46!5 z=O_|N5@!Ge(_PYFFreey1y=v?03HqNKKtnO*r`oHMpg!7H7-7|FfZojSwO>rgRU%c z`bnF8ne^5E3%WN9!3z#bCLV!VmOzG>h-9LslBK7@-dMV> k$K`VG5AL%V!<*Sm6=mkuBXIE0 zo}-ak(leaT&@-R~^TPcT6)-+Nl0hhd9x-+C)?)&3=P`rP0CfCSyb(CM16!LE^l)!F z28SO29Q3>hy1d*Av>x(mP7{;o(Q*oP$P7%)8(k2N3dh^1USFwnOpQ6+okslh`7wE6 z1}JZ{9)>I^5~s;?u-r6`;yN5T$jQk`M+e=CbiR#ht{xZed>#D!JDX`a^XPtJLbUf} zjIf#xnu)QKD{dr+caB+3fk}oACZVx$sN<7~Wavewi;)TABBaNO@`c=GCIW%!m 4Y?X_G?+_l{_y}lhGxZ8;3q #f~8Zgz1SvS$+b5(*W-x_)rl;FyO_U+D|#$kItePNJA zrEQ@AEyt8&V3L(F2YEi?)YATC4Uwp6K7C^pu(vq35!)(hKq~igF7$K6=iFawn|KL5 zYNt;f_LJt{QMGtSw%1fY* htI&1hJYgDpCCEQ{&e41AEnJ I8HZt>19Y_DLShDbatwc;DcbC3?%c8yiq&_un+ssi<4{>!wx2F7 zZ7P1=wQa4a`Q6hpA%_( 4xsq`A=J;Rdfs?MQV+F~{ ztDOZ$PQ2g!H~05uJzt*@L>=|=&$armo|QN2rLOCxdj4@pJr};ZjUC#{&Mq&HHLPr| zu5W5?Zf$L?Z~ArMXm=tk%x%>4z13G`J(C0v6hxSS(C@U)80e3CDb8;RnW?TW7$r^R z7znLbw8-ej5db7M6D;jN{_fdv-89t}heOvMw2uh_GNH>VU_DX--d9AUF=%PeuzCvL zUwBI02i`T`U(xzq?WBQS&A2WyxTC7Zw(a-r&aYb?gm*leTMgSpT5IozDnAJ?inY35 zuMJH`6@+{cx%zm2*!bf-w509NPNm=4>f&v0^6*;g520eVsDk8`KPmI?+D^XGUS3OI zi3cnaEO;N+&tCs5aCY`_(b6jgB}P!htRKPIz6BF+m&to8c~4AF4T?4OAHS;1br)wp z*ff}(+tW>PbU648Bkn(nF!Dd1Kv6l8Hah-UwilHeRWR^P^O-eh&2HU4W8Sr!@{`|D zdjwj(*xDj$+xBfc4K?z)wKcl#yr0gcq^7nmQlUp@Czhj^lN+oXjZl!mVbEdB);Ze@ z-0Lo>ICx$-d5}YH8zW@C$0~L8$P@@H>hiz)lpkwY0h~`7V3?ROo}}Y9Fg7_~cFmP< z4ExOTHVP;MvR=mu#+zSx9+B|8NM$`LqL*t~!9mj pSiP{AknCNpC+#RoBbx1K&Rej(cs+y5=uq2mZu{ zBv)g~)S;)^3vpMp-ZL)V#2VcL?(b?Bk2}cD;;}RExZmI7TW-o&n2^el%CRX%z4V!n zLyI!z>6|So2s|p93@0`8-`NMm?@M@ETt` *xP~o>-&8ZCMd^dbOq0= z0^+E~7kU^fv3S=T<*RC#W7u1ToNZVAd*1}pzrHFap$9!j4=s$0_`JAxCVW+bX;rvz zzfh7BXnuZp(WT3#D$r2OW^Yr-tF3ud^-ZaWBKBuv>F+H!W%kD&XHT4rpRK@yN}eMB zoU-s>=`huIZ{w3%dFP?|mTGAPh0N2&oc3kyb^
0SD0^rd>OZM;J=De&KT*G#3B{V7_q7&EL&ovd-2&t50{Sy2kWR zz)_1DXfo-NxsP!ZUpx^s(qP(M>%~ErwKw#AdT>DM^XI8D1Ns^p0|RBJL34BN^{M0C zblb`O1y}CH{=rr6bwA>5Du G=8WUY_i~?b*j5MxBZ$= tv+_prg~#{u)t- zR7g+2U{3EvM#!MaSfOg2ylQqYsd%eAu`n3PS>k{%?$Mws-tu$vj?RwpW^%zMcX-z} z>#y0#g9CyCu#`nW!GxwDkdg}x=6Miq`}g6;3?RZFoag7e8C+-#UsXmL&vNO2giGcQ z7)srUAZRaVaFp_hv%w*eVi2%A>k _uoAiN`PK(340_mVGjulA#)C>3X2&a-?lK=pX|C`b&C-YB(9* zPSN8+4^en$_3;)P1MuJy=v?`Cjmw0?ButBq6QxD=IDmj0&B7bABU1*%7h!SB(x z=1G*1e2;?II2T$@? NCQ5? z1?EjClzpoCGW8bmWX&objv1}YV)JN!vhWi_9v>(Ky@)s{0o`TxYLlT$p-^GdlsJ)o zbH;6-Oiu1m6$1lQPMK0gAd&Hi?Q_dd9BTh@b|Ov+j6_&70WK~M{4RkIJwn$Cf#*)1 zVu9s^l&%ZoXz 9Bhj%l&xW`ac&|7gZ21syrDC0`101LeD4D&39tm$4t8$DdE@lJasQOfytL19U+P z{8k TE*qI z-r%||VCN9~$Ij#XtuZ4ZoQ0n&QuUk#C?_W$(@ yb&)UU#?{A*Bt?_PR@v w<_7F{ddMaXZ^7z+rPuF|$T291tRv~W|wmq+ATeIIQ>g8BvmuI)k&M!2Z zm&&PWrxqF9@`vg_AL)8Rf~$8RjY<5LB5(h9g++5~QzC~XxckuUi*hx&0 =jH zuOKyM*1W_pKblTNKUXjYQxH!7r9$h`?iVSx;p3nWX<30gBjobX{$|5g>i#Fll+8s+ z(7gkr^WiQ!Is ci&FP_=_I`F_M;_C^z zz)S# T6eXoZ6tVPXOTv9Zesk$z6zzU}O=`f)R}U!VP|jrG&cE97T@8GeEybC&~1h=B>- zirV(X>l4?RN 2d3oE!WgAXU$@F z8oXF-sfjwQyj^`w8{ZRRw $VThGD)4W$)jR9Uo zw_(Wf!!(VM>e^PJL<>Hm;$vXY{67GKKz+Z6x=oG)o{BO63bR&fduyw!i6|J^we8J5 zY{ZsBU=M 7krVHy%TAiaz{XIlgQ6!jylgnWd z1gc}PA?zrV(+67?oek-OKO!MA=}3yBhMq`?h_gmLsqlVvPfaD *vQDx&=7AsF1X1>l^){_4d=vD_8-VFUYoNUg~K zx{hG_$0=-mFpLB HhP82uVXiQP2oMN! zh;%vgnG}IHNPVQ0h=kc)3nL4=FsXm81cAzM@QBym7$5f|z+g?gZBc-|UF0IhVZw1R z|9$*GSO6XKLtz$0BEl{<6@rk?$_){<384}Z5Jps1glZn?*f^qlNX(3YB?ut^qI)`o zm}e@}Dz}=g2!cWqW-DN EIHq?{KE5K)MPYxj;bNgX%xHoN2fNT`8~wf=Uv^Em2D2!IUiJu(DthPcPBycYlz zdGEBRF3gDJ*co{rGdgRAz|)m1BW7V^$$7}bC!fN{gGJc6Z=8z(L=&-CB6L0szoL5I z0R-QQAfTI*$_>cPI0DC6+*A_r(G>BKXTSD2zX=gBJ0|XqCWI*BmUMQW6hzJuG@=4R zjU7z_8MA*MhNTriu52Zi+`Ry?j^x(fXF>PWI$4(Ixe_K4t&|lJa^{=(4c%LgZsl}= zQ*vJ+u!gHKvGw6v2?+;?b!=Z;hzSsg!Z*tK8HLDsOpv^@gBd`RLZ!r(?wO 1kD!d8YgQZmw0Q+sU(xRKC5t z_2}j6ANaO!+t}RP+Pl>4_w!!2x3kmR*zR>Zoo+|x{fe* 51P6P@7o#JP zThfscSp40^shk~`bm2Y+rnIQgt-8+nCEjyNhy*}dzj!cwx|{b1goT*B-wOo*i9l;D zAi^wctMPC&IJIwB6hW1#ypwPCds|nwKK$(N$8$m~PmV`--#WSZ=J?Ld;q5oZufGH* zhkNh;Fzi0k*}dGq{%Ey%$)ecfgVWRDDI>60%jU$`!=bH=ttxA+v6flDS`Y^JCGnps z3jm< E?|ey&9cMFBHIr? z_t;=G{?bb~H@n@Qr4HLnW68iGm$& {j6DdWCFw@GrZiJQlNY%b`7qN8~p$Gsv z3Wta`_~;SAxiSU75kgQ3P*BLdvWVn-T;zkm;&Mj(iswBnQd3UnYC>ndpbN3M1p$zP z5#-%bDAuj#E)@%`u%Hkq0wm^)NNH761_g+~r5^Z<5N1Thz}B)RU|@wv0LtYc0f2~G z@sJ2XA%V-06C`E;5rxQxt%wl-W h9;QY_#;?H!HJ zK7Qruwe6$P@VV<(FZD7I*y-hl?cvyx(qK$kRZ^6;EPvrQUK wN?7*xc3!@Hc>Ac@>31*hZSHJu zymdItyWL9c8+QipefF__x1*7}I?Fm*EBcim`H6QgA&e &b8DeQH>3ldG^zyvZ?Kq3bEt>)eLP{%8V`fIB569-4w~i`P5xNP41Ox<*TcQXM zD1zNS6$X$97*Nphs5 >chtQsPySl))4Vhx% z{Hs_NW>^}fsNc~_k!RBAM-e!U8yLBqx-28d8yQ&K2%*lm432z4U?1jiqx2y)avyQ; zR>Y|+R&? Wa?&ySwSOEkga!<(l>@l3uUkFc
$6QUL@bEJ z+7O)#?nxFOP4s58h+l^#@FYR>v2#EnAP(8gJ|D-s&0Tm2>PV|gQ})goL?X0~E3o)D zKU+Xzw$99T360L21)s~u&Zp~gH6a8tC%HO4Y>)1155Nd$EEsFTyAOy+3dyl_rIbLH zk>i{U>|U=-VWvq~tavv@Y3;ZwfI$!y5|Af~^>oLO*IYX?T 85fJyXxLjXS%Da>OEkz(O*19}LwyYF+cMMx}fmZ|ql6s*MK~l^dl2pl9Q!#6; z34sM%5ZYM`R(u+;u||;!snj@?kS~M^1C3=L$s`sF;G@JGk|_{{! S>cSC$Ak`0!|urUnO$#pl+0d<}!WlDAXCMwIMZI+AbfYL|`Kuv`{0oVWv zni8!+U?g^VsFToXn4rPaMgW3Ji&A9RyLpsSsE8DSC_qpI!NZdYDpDdssKVMj$rkY0 z=Jkr|@(aSpGpyJM%t|ZL8m1N re+uNJE*Ux+XEboHODAPh%vQz>U z!@x+vFs$Ur+HqBmi^>j9jXko~loeYm##&)vVRROQpB_XANT`SqAVbJWVOO~zsTb&@ zki#t@ch6@sW9=t%A0(Ni;7G_*3Eou!7j^eblUp}Ku1D=Tb}Meposf{7mxb9;ZkYH) zeasaFfq(!{OCvp U1k(fA#Bc@WvL2;MOK8@-ASm 6y`Z*J+-}qdrt@gfW0w3 z#nVH{j{ojI{s&!@?M!{}*~gxJ@`-1je&*Syp1gYPQg35RcRIqtRb`E-sw&TvJsFBf zrd)8%Q6Q gFbgRXAOgrUO^WI@l?VyJT5%tD|4jlE z0mGsYDv`1>rAT4f8q>*h)yWU{2bVXyxsq{dDl5!fF;}Hau4ZOiSs0aOY^us|X?R@O z(ujyHN Afq3nRWte7CHfSW$CUs; zRT*ol$~hqb1(-z2vQkR1HQiosWR2EJArVrpl*%$i(g7$-lV>@ybhE6RX%r@^jZ_c- zwqn5w02>gog@wDPV{+~t;Sgk)lBNLf#Ph3nh!^-Yq)@qp0DvlZ tpjF%$GvCm7Nx0Z?kYJmf?p z)KNKKT}BvUqCQUL;}Id!>)Boi5&4Ky7-TTuVTvY0T?bg_I^k5xp|AgeIxDT_g3e_w z>^{)K-pU|UO6g2#ow2c|Dvby*3v;MbbM7hfUrLeiJSXXhftx$K+6}@NIC?A5XP<_z zrKcL?E`~vfkSqDwU;4~%`pyrZ4o7d@ymR;9*oY9w$*BB=FMdn+H@g{`%78%D>Dbef z6x}>H`O-ID`R)%rZ>_~i?$x9?E3od6rWq^;5oXIS_*BzzU{4B}nXq=wI}f3AItmi{ zoO?v)We7wd1cccVX{n1Afe}!Ioy8lR0h2_~snZJ~`B041p}k4MQvE22$Z*Bh#{*Fj zA_23bl!T--5t3!gl?4Q)l-8LdC4?eemByB(E7(A0W+p{aCrV9BB=pe_=dZ7G9sTUX zkQ*(^f1w2cv?d9T4`x *~ $w_7hL-?Cq$#r^A6c9**U>vIA5F S`I zm{16OXvMz+NG^qXvZnib1M+cp_g4ZyadguHC>M{HV3(uk?G$45KD9Q)8KnMFI4=@} z`v<@xN-5IXeL{g`I)${(SwJ6A@Sg*h_J#nc5P%#_+1lLu;lK5_fBYwY>Oc8IKlG>n z%%9r0b{+bgMrWn)sI;TXj4C^>>?@=3X<3$sRcQ{(%35X%!mg@Lgni%yKv4NoVsKUa z8Dg#owF(tkwa+qqd?s#B8=P4n{#_Qaf=WTCv4^RUU#QvlQxkpihx0Dg_4mQvkb6Hr z5OSUG`AUjQ0P=<3KuRN93t7i`$2q)*K5&HIL!cCnDkB>ixdcT7F~&^>0VY>zU@a-- zrV 4F$=d$~p8z1xzw-p41GFOLCly?7gEW% p%O zuErDzsnez2WxDhjX8D-S>EQIWyNCGl7u8Sx;^ltlN L)>M_%XpAjOV?%N#id5DbV_6YGFg&m>Rd%Tz;08+yUHBXovJc7n zTr!2kb^3Q$-q6<=0gI2{0ul-m)rA-0Rv8Sg2yv@53j-Kyygwg=04nC%-gF I4uh+?x0>joA3(U-QfW*Zrg%nspg^*`NgkpdY zvrJ*|FT4CyU_oJ}5Cz$NuKbsXg9{EtghfPU|Ljv=`_xMZFTS<^=%wv`CMV;nwCt+p ztuPUFwaPUP3e)Z8o1H9EI@g2<1}M*US&fD5<$hPAEh|%)vJ|jD0u18j4&+&mMX|Tt zed5|BX7k9Eoew;^w~-+s5uy<^maP>Lw#=iVIvQ7_%38#oe$P6WidPIEYZ;lp_WEl# zPX-@(&tt#&15e#KKK<<1ZV1|81*hXN8>J=x)?2sB$_ij*Y;Y4}iV!XWTkBqP5+ns9 zQ!1^%t6vDAwze{W!lJYmMJJ_!(mDpDND++)L2G?{GT7`f8>0}%*0Qih)Z~KL002bF zO;eZX-O);sa)q@(=)dQ|11F)d& +`|K WZLAQe|D(M_%s3dp0?&9pFns0K5TM=ck9F zAgo`8cVamqwZ(*Nu#18WvAt?%KyYBCir5}#E^lcdccHxTM~*c$QXs4H_KbUsR@ zvt9=>1zLk500I^$s?m7##+|$UPUp(rCCD<+1Oi|yV9VpumQ__5D{LwW?rb6=xF_oo zr^ID2+(MkBkp|raoUHLd?8QpA+qrY+?w!Na_dWB}n>X)TQ|U}s<3elomDg_H9hSR0 z+or1gGeu+s5)q $#z5vRVEON+fCP4AAAm_ew0S{-oDn&B!FL=XW!UIP@Rv2`MMC#&3 z?^{4-OG*i|SexZ}-tXv4vooEnvo{qWn4%aJBV$aKW!qc3sHqqaPmfPW;}HnvdA7B+ zvwiupG1ckmsXL~-Qf5#@t}urHMNouYorMdQx^yf+=hOuBg{wZ~?LN05J_cHA=eu>; zaKa)2mThgSx}y=2LSbLSBj_{tEP@JWcbX;aBp#-H@NUL4`^;_x_I~?7r9^;{t?_y- z;zeWt05vK=+1S{0azC}rNdQ_a7m;Fy%9_fGWdRl=f(TkGuUP=7K>3P3Ppo{B9uaz* zGl&UIj2jB?jJW7AAh7qd$fVAfWg>u8yNd!zg-{TQ?lpCxAh);~%fL2MN)rmRdr6sD zz#@7to%6f75*X*Ml`s|2C5VefL?OreopT$>4>BYd0J6{0@Ifa;&|14Sii6Dz2rf-4 z_{cHT(z+r=mmBP|1gX9>pBpPeA!<#b#@W|DI{%pGgx=Rf!AJuHO(=+!<#9DCnNKV| z{^XO-KXPSM6eLoW<>_cN7>|a9IUbj%qod=IIX&Sqs6uxuomJz}2(9ULB+DpduZg%& zGu8 Bo%$9JB2>ZgDG zTVH$m?#cK@SygVjBcdYZCp-BMb%xHc7oQ|lXTb!;HkXGG9!V(Jb!KyL|5VmwS%$)b zKthuhHb@%?0HLt8NI~!*#Av0~BtRjb`7A_4J}0LZQw!fAhRN%5uVizGVEaOkT20Mo zG%yH3kO6X8gj|=fc&dp&f`#S6vH~VhU@IAoRDYBG5-LDInf8e`p(5YC^<0xy20_*; zBh|57Au3?5%CU@3i}C6B=9>TrN~> eb}9H9eHuKH21K;L%*N*u6V&z55F%rOAu*SnD4}OgY Z$9-k{nMY`R(!47xw3cZz0W;)>B{x}oBM?@cDmi&OPl@P_~aOl zPlTl?Dijg6PP~A^-0@;lP9h3wPax8S#sRZSJ8)J003bFPz23khtTp=jxkjzXTUscH zqq6c!T7qC1CYlsN2v(5Ax(aZm6(KpHAb(qfuig5hd9;?5@W_}S``k;I=^IC*pZ|^5 z|J)CL`(ryB$HT%R6vo^ PR z+e&GrRG97Fk0zns!5eByZ|`nCasBf3OWW?t^Q2#ZNhu TYW+S1zNK_v_ NfxD`g>;b8RUos(~W;js@tdF@~@`s7#MG)T5I!_piL zM<&ls2II|s&LRZl)=Cg~2qT0K7dp9S>ok#QG#&|at~$aT1oG^7T&OHZfGpFF*13
#>y+EZRx0^2&V;AjW2J$69E?`3Fg a{)!I4Y} zZgoMIKWEIw<|ZNDym|BGS6+Vo)mIM=4hLhWwT0b&_l4)5|L6xlaOLXdjb88W!O_qB z+|Pae>tDOIzi$ke!ayolx})g&-tNaf_U#|}=*N(7aD1Y)#+uwaUK^&K%lveHf5&df zl~H&%Mi9Dm8IFhwLzO0YH69ihQgiizgyh`1KIGx$Tf?1qswCC|>RP=vsHu3S!RY+- zYyc5ld9ZkkQ$minPrwsL%!I%xP %sQC}7-KDSRoRnq zH7-lb0*Kv?&Xjfpo_rkLzvqOc6f!frmB2qg0aU))P$(pxxu`l2pcPAAJ~o7eT!Bi+ zJ8=22*3183own_Ke3qePYfYs|O9%-eTOXbE7An`pufbw>S&vX#@;;IolEtM~9S))k zz9`kLV72U5s7wt%iWMuM!7p;;9b8WQ12E4rA~cp+*k@Z2qhJt>^>ts?vajq7c_ic_ z^L52?SiysT!N2w{mPiPswL4-}mV?o-tSpFFB;DV })2!XSGL)5+wY C*O3|KczI z+`s*|Kl`&k`BDY{{Xh8Es@v&zbgopMbrptG0XI9tN0NgkA`38Bv@juk!3*s@n*N3K zU&5g6;zEK>_Q|J&`&hhCou!R+frj(@;zWJG|B*sTh5v2v0f?7y^A)0w)A-~;^h;Ll zlW-qJx02Uo{{n*Sb4dx9>s+h45I+c^6N(4{A)&Q)Yz+DAYC=RY6=hk-qaa7_vHnJi zw*&+bN%?$7_q_;ro)J}+Lxy$!4YP =b%Cs(xaazSb<_wdfAOv>z zAgDPb`Fe6hK@bu|P=r>Du~t|Sk{~k++Yoi&piw}U<&m9@r>|_D3 9`n`Kp+HCS+1-_ z$SYS3Vx+QTP0nxv6LQ}zv#?kr ;AB+R6UtwqD4tcd6=6BMPW*1B|sMJ!yFl}~dJ$; gNU@&L{5jvm6DU7U`V71g l66w SR%oNos@(Yv7cM zyi0Rs0pBdZrxGb7tu-oAN@>!NtJ?YiwnbSDN5$!2c>3DWojd!t50Brxb?4>RZ`?jO zJw6!>hlAm0bTlf5(CPGhy^Rgs-J zxZo!7 i zHa0dMyR>y_GrzpI{p2H8pMLVuM|QWaUE2EC2jADtm8-^@bo2-bzE}rArPk2I=|&D- z>&35x2uj^K88};ET$(2ze{}Tb4J+1GI2?@;X;c*Zw{LCk?d83G==7jKtYvuP*5UJy zU%^lx1^4_vsS|{2g)w*MGmXH?nXpRfpex2TYppAHID|!gZAc)z2!t*or0Q4>IqwE} zX_rvCCL !eVlqoeYhzXo7F^-I6}BfEPqyzt(qAHDkJuYQfQ&I=#gdeHMPM@dkPxf@qpz}N7Uj|${1+J!kimvT3n2>XO0L9G>QPT+ z)6zt77R5!srCwBhm87@9{p;ug!l8DX0kn^i5^7W;VuL0UGcYqMlu#Ktk$7ST>soC1 zh5 Xsv3>TVNo29 z%fsRDczkp`gcHjHR7U4E>#)i}X;K fLYTz7RmZ5RrUNuXr6_FVanQVl_%gRP_E7{9pgkKluxP z@xMCkZv0O_@iSMi?kR;J7T9?)Q0kO>upzq>eH<4i`QBa|0)6Tah5k`Kh108iP4v}V z9f9(iJ>Fkdi|B@`jF5utb1cP+@=P4S&Rtwr9fvQzCo-Xu( *H@Fbv zM75Pe)h@8GPZFKdstFpB5G2{W0F3||4xR}j>TPf}mP)A8^*n7NS`$11Ffj|fycar; zp;%`3_K_ 1FDdd9rWUi&$s|ozDmuf^9S#pyJznIl5#hm*;=u~!vi?n2Nooqb-JqC z$u=%`u0EkO3F3G>s0PP3kM_UzYoAkt6BwR;<+GoB;)y4ofA-lA{Ps`mU4H!F=-3#m zR0b$PquNW|P5FtufPxo!aZ22E=?;=h90gLY_(LoG^;;*u{LP!gO7e~#8@~I^8=IYM zSdD)6%dh_6N1p<*<8e{4Dp`ukj4E3hMgYT70kic^d*wBwkw|3 $bAbUcL0&KK$%>TnLLxL%(r6vId63VNn#qUV A*0G zQp2(ofJ&4iFLBRS47(@~i+Dn4Efb+~30BA~sI?}g4o^n}{F^@b?5j8K{PI`dxN>Qu zD9YopDHs4qYlTXqf`PReC~GTMgF30bPK0nCP7dx^Kx-@mkk%(+6_G-PgvJ_EnXJ<_ zRh8%3S*t_}$=5ldfYM5Yi}9$_&8y1vdOfWaTI=YO*DeczF(L)X1mvubOsoC< YS1SN-%Y$|mbR-Fupb%an*rn++p zJK?#>rlHD!C(0O5r=Vf&I>DNShPsZrIhX6Q0OT{H!q<~Sm0w-1SeFG(r0GHuMy>GR z=QE42gSbL_MU-hxN~=tf)<7=96Tp<^s5}{sPsfAf!=safgQLUKoBM~a-@NnI&HbAP zCwGre_D@D9<7&vz?e}}VZg*q5zjt-xsb@DfH+MSuBa|`f(#qIa%Tkq9X-rkx$Fpo} zYbWb&X9^|A6*Aj##a}nZoL1Gr7{2liv|rYM)myLrfBw>+`qO{%4;&xtYYGY_QVZP# z7p>H?u@kv^Z%fuUINUb2tOk0oX@XflNna=^mg}4=;faWeuR5o|WqkomAidC+WU`9aUV*wAO~Cc8AS6e$!dyjWR*KwoG{$y&-LfqH*8liF-X2%)|K9Ka==1M~ z%U8el#m^u7(kF}8UzO3Q^UMphc?tHeQKmot3;*);g=hZQpZl{rPd!&Dx_L18* *L3R4wd-1njB}!)aNVe2R+q zxGR_J3U!R#QP{dyo^QwC1CM}2s&4ifW<^M14ANB+@{Y+jjzj0Y5)f;dMI68Lt+@z= zp$j<(JLLcZuhUsowlcP|*4e6vpq$Uk`2rNV)((@^2WlPS$xSB&0EI-zj8h_0zM&sT zVAP-#_9zpn>nD9)=A@|#h%hQeY&o>t;z@JVP&Dh-#7SARpqI_^w`x-RTDOZ~_Dxyp z#2xZ+K4jO0(g!A(yt=CYe2DTXqv&;H5tRa;Unz(bGMTL=<+X`~3D7bJwZPB=Me6&8 zPGSjsl7;vlV@kXJS59=reR4Dkc@LfoG#EiNP=$t>sIty>-rFU7%H rRr4HmgUf@uGJl#b&yb)P%F_IjPVbJ*>NNimt^ST=nRUWZpdTV zf3`$W7+uDqgbXrtosxiok%3gkwQs3zf)oV038_v!ckiC9ipx7YzxstQ80O#ngFo;O zKlQ7ZuIyzBj4LGzY%e%Z5fM#Qisii9#aaXuCyHg0vf>cj0tvBfspocZmr@7~)_s+b z>VBJNJpJNt&iO{fH8p`+Udt_>?tPdl4zLqfuY?*;9}N$|3HLqnQ`rf;${Anpq#O}( zl6>SIsP~z1n25|Ely|`~`Kj{P(0q7G#5<_rxc;KyTYyk&7uQCFptFonEDCmd-E#kS z_QZ4ajbG=(0~rjctnlhp3FVa`NwyZK^D1fNSOYU^eR6PYs|rv7bNx6bJ(>grEO4Eu zK6#pTVZ8qkFoRQvCIuQ%6M|-I%5sF|aCEc}Y{6R8S-!DJ{XSiPw$tsZOoP~i 4U}#cYf%3>y|> zWo%4U2@noT9+XxD`gwjdEN&kUuJ3JM%XMjO#h?iv-Ra*r8qse5#k*qwqXF_vXIgJ} zI#)8vl vy z1~rf xBJbT`=GO;7{C9~y^lV1<=Lwn|MO3O?#2PK@YskZP#w)i4~hZ^i($Ey z(IeaaOu5dz>YIrWF2-|DJ~|kUU%hd+zqv_-));Hp0<#!X*#6drt8+2Nltsb9%-G2Z zQB}rR%Yb05RasVy#>}$Q-!LLdlY-g->>8l3_htx&rVqe^*RSnuU%#vlPCA-gq8*_N zs04Gl?xN