From b9f7d04cac7382782b25023f9fba5cf7081281f8 Mon Sep 17 00:00:00 2001 From: Florian Behrens Date: Thu, 11 Apr 2019 00:20:22 +0200 Subject: [PATCH] nodejs: package creation 10.15.3 Added g++-multilib package to Dockerfile for 32 bits cross-compilation Published as beta --- Dockerfile | 1 + cross/nodejs/Makefile | 53 ++++++++++++++++++++++++++++++++++++++++ cross/nodejs/PLIST | 10 ++++++++ cross/nodejs/digests | 3 +++ spk/nodejs/Makefile | 19 ++++++++++++++ spk/nodejs/PLIST | 0 spk/nodejs/src/node.png | Bin 0 -> 10781 bytes 7 files changed, 86 insertions(+) create mode 100644 cross/nodejs/Makefile create mode 100644 cross/nodejs/PLIST create mode 100644 cross/nodejs/digests create mode 100644 spk/nodejs/Makefile create mode 100644 spk/nodejs/PLIST create mode 100644 spk/nodejs/src/node.png diff --git a/Dockerfile b/Dockerfile index 59bcf7606b8..8c605a978be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,6 +23,7 @@ RUN apt-get update && \ debootstrap \ expect \ flex \ + g++-multilib \ gettext \ git \ gperf \ diff --git a/cross/nodejs/Makefile b/cross/nodejs/Makefile new file mode 100644 index 00000000000..50d863626f0 --- /dev/null +++ b/cross/nodejs/Makefile @@ -0,0 +1,53 @@ +PKG_NAME = nodejs +PKG_VERS = v10.15.3 +PKG_EXT = tar.gz +PKG_DIST_NAME = node-$(PKG_VERS).$(PKG_EXT) +PKG_DIST_SITE = https://nodejs.org/dist/$(PKG_VERS) +PKG_DIR = node-$(PKG_VERS) + +UNSUPPORTED_ARCHS = 88f6281 hi3535 ppc853x qoriq + +HOMEPAGE = http://www.nodejs.org +COMMENT = A JavaScript runtime built on Chrome\'s V8 JavaScript engine. +LICENSE = https://github.com/nodejs/node/raw/master/LICENSE + +CONFIGURE_ARGS = --cross-compiling --dest-os=linux --prefix=$(INSTALL_PREFIX) + +include ../../mk/spksrc.cross-cc.mk + +ifeq ($(findstring $(ARCH),$(ARM5_ARCHES)),$(ARCH)) +ENV += CC_host="gcc -m32" +ENV += CXX_host="g++ -m32" +CONFIGURE_ARGS += --dest-cpu=arm +endif + +ifeq ($(findstring $(ARCH),$(ARM7_ARCHES)),$(ARCH)) +ENV += CC_host="gcc -m32" +ENV += CXX_host="g++ -m32" +CONFIGURE_ARGS += --dest-cpu=arm +endif + +ifeq ($(findstring $(ARCH),$(ARM8_ARCHES)),$(ARCH)) +ENV += CC_host=gcc +ENV += CXX_host=g++ +CONFIGURE_ARGS += --dest-cpu=arm64 +endif + +ifeq ($(findstring $(ARCH),$(x86_ARCHES)),$(ARCH)) +ENV += CC_host="gcc -m32" +ENV += CXX_host="g++ -m32" +CONFIGURE_ARGS += --dest-cpu=x86 +endif + +ifeq ($(findstring $(ARCH),$(x64_ARCHES)),$(ARCH)) +ENV += CC_host=gcc +ENV += CXX_host=g++ +CONFIGURE_ARGS += --dest-cpu=x86_64 --openssl-no-asm +endif + +ifeq ($(findstring $(ARCH),$(PPC_ARCHES)),$(ARCH)) +ENV += CC_host="gcc -m32" +ENV += CXX_host="g++ -m32" +CONFIGURE_ARGS += --dest-cpu=ppc +endif + diff --git a/cross/nodejs/PLIST b/cross/nodejs/PLIST new file mode 100644 index 00000000000..cddb48c5d9e --- /dev/null +++ b/cross/nodejs/PLIST @@ -0,0 +1,10 @@ +bin:bin/node +rsc:bin/npm +rsc:bin/npx +rsc:lib/node_modules/npm/AUTHORS +rsc:lib/node_modules/npm/bin/* +rsc:lib/node_modules/npm/lib/* +rsc:lib/node_modules/npm/LICENSE +rsc:lib/node_modules/npm/node_modules/* +rsc:lib/node_modules/npm/package.json +rsc:lib/node_modules/npm/scripts/* diff --git a/cross/nodejs/digests b/cross/nodejs/digests new file mode 100644 index 00000000000..9338bf2b485 --- /dev/null +++ b/cross/nodejs/digests @@ -0,0 +1,3 @@ +node-v10.15.3.tar.gz SHA1 b64774eea1a877829d6882b92dd86af8d3459498 +node-v10.15.3.tar.gz SHA256 db460a63d057ac015b75bb6a879fcbe2fefaaf22afa4b6f6445b9db61ce2270d +node-v10.15.3.tar.gz MD5 fa0bcf98b918337c0f368bb0674a2489 diff --git a/spk/nodejs/Makefile b/spk/nodejs/Makefile new file mode 100644 index 00000000000..82f65bd24f6 --- /dev/null +++ b/spk/nodejs/Makefile @@ -0,0 +1,19 @@ +SPK_NAME = nodejs +SPK_VERS = 10.15.3 +SPK_REV = 1 +SPK_ICON = src/node.png + +BETA = 1 + +DEPENDS = cross/$(SPK_NAME) + +MAINTAINER = Florian Behrens +DESCRIPTION = A JavaScript runtime built on Chrome's V8 JavaScript engine. +RELOAD_UI = yes +STARTABLE = no +DISPLAY_NAME = Node.js + +HOMEPAGE = https://nodejs.org +LICENSE = https://github.com/nodejs/node/raw/master/LICENSE + +include ../../mk/spksrc.spk.mk diff --git a/spk/nodejs/PLIST b/spk/nodejs/PLIST new file mode 100644 index 00000000000..e69de29bb2d diff --git a/spk/nodejs/src/node.png b/spk/nodejs/src/node.png new file mode 100644 index 0000000000000000000000000000000000000000..3ef20e55dafdd057e01fd61d0d90825acbc24397 GIT binary patch literal 10781 zcmchbWl&u`)b9`OuEpJ@xH|_e?p`QPvEnYpwYa++thl>V+zu`Wch{nQdG6dVcjkV6 zGf7q^S+jQb+L_FM{~}eDWzmp{kO2Syn!KE}`iH&$uOY&J^bvIp761T_qqnB6tGcNN zh0_m5OPlW&6s}%Q78DkqHkJT@=jwT;K`IG7b{Ir&hy{v@B5>bH#LE5icpiJb!iKs* zvurat=%uVekU1%&^_4(<`}GjQ_Zpp-*dAhN+u(rzG%Dip$=CY&{?=QCL#$?cn)UK> zE`DTSgrJ{t-^e6j)hkbo-&mBr?8(pf-BTERPX_8jP#}j96Fc#En7+JS^`S^vy1siC zx_fk^4rs}K6w|vjh5QV76VeH;L)k5d70BeiS$$<2Lv1|W>bhade4~j&o2=-(IiLPU zAS&vQv^fG|uZ!OGGYmilMm&i2bq^l-38%1+-0$+<48+VG<^=qeq_uf{KkQiE=veDI zY-&%4mDBTNKUq`HRmtW@DiKZl)RPhrI(`3i{>q!$`e&IgD+z+9uHt{0^<&khIBV** zd(JFMFHUn4h>!L7O{vmVPer}{Unz6S-C2HY6-#|7Nosss@nQE{8$=;i=yEV4k&wlC z$kBgb8vQ*55+8JNKc~dl9Iwm4ew}Galq(Rh&w`zJAym2_d3j6RU77XQ$Seglm3|@? zE{@+sY9dk8PBBlI`7kA2%C||T;za~Nxw9EMN<#}Xo0w|OsGX3B?fiYu>az>`i#)tK zW4%V}p3H)rGENWQ68J8g8E70HgpaKTw$3_0ldk{423DDjB_aYUqL<(@H#N?Ue{T9d zG*KZS6I;Qvr2czx)wZU{X8bp|T~pKI+R+>yBJ+kfTG##N$X4mk0t6k5DZ+1K;0&t_ z-qY_5({&7aDLQ)1C$^O}brz?kZ!PCU?rVPWN$4f6H;g07BIkEpY)$U>2L{y}-fQO` zzUJpS3*-%{-R2kZ4XK-Yw=w&NozEFO=u6M`5qnPR!dB*Aeo*Z$aEVJqAF?zjH+UWh zTh*Z`sfARP?2N9Aa>>Bo%Bwp(|JkrQc>nBJuxB!s^=f<&47$ksV|WGb;(A=`e50}R z5soQT3GPG@DOF?d9YzA7*$fCAv-gDe2=)F$cpgE>Y&zhYuX3U?>Z3p(Nzg2_>6Abk=i7N5kN9I)1R)75(pNL^6~t}QG~1S zXcA$w06#iU<+fmeIB~80*04JtMxMq5V@}wPS>&;i>AfbnuN^!Uq5)AB@;bLs zoeD1BNuQ{mNKMS?l4e2Kc)9MyIVd?%(kAD;>NVjhvu@jqz>t`g zlWTyG;r6Jl2t8m+>Sbh*a7R9BuVp+nGeD%<_sG#?DouNCB)qZE>a9wuCeiJ?WbMKX zhv%xbB)nP^3th-N#aYL?Rakj>mg!tzpu1_qb4lF5p$chuq@IG$B}2;YqBk)l_j51} zYFQA9YJypK7*b%==ROi38UeudS?r54PJ^HKf?=2t%F{l%b5`IwM;heY&Mct=Kc~#z z07>*p@P4%uNcW@=8JF88hU#~`;0hI_X&hqZ4da$VH&bah8{Zh6s#B*Z-YCWP@BD?$ zdSVVfZ$q<8V}GJt9?YFLE4?*rXxlo94B1$vCHNGbtg!Ah>i)8|O;27@AfIF+_hvLV z2Qx5Z+eMe&VE;v_i?h{vv;1tByQ5hBGGuD7G=qB{et`8S{b{i{bBKp`x)x)6TgzDS z+%px9%%tb_qqXsU)np0)n}B1`m2Z97y=mL6AMV1Q+t-dp`9+Vpi|Cl%2&_1Y({y0` zdk0<;>WA&a*txX(W$uv{2jSSR_d_w@kgS$yy=U}S&Y2wb5ATX*RRD{}2B2x69G5pJ z%St4unmV?@Tuv+t$7cmcOm20Wa^@uJ>w&Z7!Ca%|l-uuL^T&I8G>eiAecj($va39l zl#oyT@b!if0F4sxnX_yuvxdIf3N+j_1Np33cpx_!5as;ICQuE9UIqkcV|b2qt_Ng)F~;=uk|(#r3A{&n<77AiFL!cur0nit z-Jrq@TJlo*v93VoJ1K#N;S!r^+6}Q7tt2aAtmJhnQsdzTC9!N_&sYiSGGOY@s?Ug5rP(q+jM|RbLLV_S%F95FOx$GQ(;lhk#3wdbm zYSJLyj(N2HWRrCm{+IK07OyV|X5ap26(jCq0(!qA1hAcz_6C(;N;VyYUApd5Dq{;$ zfjT`IS^!9K4t?=k+YuD|C8~VtTn*q({({9p^mYv%owA%%ZjBdNvpdi#0e5Uj9+*kIg4TeE_LqFB-t|p_rVrdG~X;M{B5W z&OAclOGoL8b(;Y)X`QBuw`#I_>n1LgXwbklY?xi&or!p`x6{`)O@gvLRqWeS*9n>F z`8INoy1=tl=R!Of9C0ggBlaVxS>fN*ipnzkTNF&He%QTBbv2&RZh`izW%GwA{(`NT z;*kf4?wPwKB-!Y9{YC`51Mm$le7@|AoJS%*%e=6#v+OGQ2=ZVviVXb(&2b&?2Fz}HncnM$E&Y8^lsaGJ9!84DdhUSRQKs4R z$?+pumgBq{1}tf)t{h@2j`g4`-FHhxLZCeNt}ddgMas7o_&y;!g0EvodL!QO1fY)Tq5CCrxOY&Hdj?dX)34-($$`FuFp1ys{n(QRycOZ%H1|rF^tc0g+q=4bv zR&UT(4Z~(1We&(987rAIvr?qYvFmNR&EI zvG%ZY<#SCiv!u!u(WVJAgmed?S0TJT5X|!2Ql+3tL(NC3Qg@z^26fEbln}LtiPLGr zoXoX$pUQsbJhOn?V-t#2A$~$AO6SahnOdGyZr&KH{7g3HDK&^W$6tGDp}l68p}pl0 z|GkNwXq6Vu`|n^|G;7#<9ufOSjE0p{h$I?1O8osLrN80DNR{?HjisUF0w6ikT!%0(eAq=8*fJ;z)O z6&%kzzI|zfM|e`0gUJ~YA?e{T0k4c|kkDB0M-Vggs_kyy@C{a>w3endWv}pWpb;{N zE=|Q=?a&GukX0>?t*XOd0fAZfOKb&lmb1#=hL~9sK?G@BY2y9>l*_Y-QNd;dP;Pvy zh5n)KK}D+xQJuW5pJ^ezskq9IJB8MiWeKxb3?&X_f`f>LgcvyhS2I7RMAzB%of3v?YI1}Y*R0Zf6}pH^?kiYpfj=z$kKOXq zI|{<6RU1?t%UPH@Xh>6#h0%aYdd3jL5c$2rcwQ~62A#pXuHMM0uv>zih>-hL)YfhX zgaq;#s_G}r_+ZU$a@_(qVsDn#jX!aBk^@DxbSUw?-2DJ}bARqV;QB_Y#Xahma;TLp z3aT%lw)yZB%PS>~&xJ%KU3|YQduNxQ0wG6M-M>p9l2+xqzIy~;B0AT_PdcNX2=Q_V zRoC=C@3~O+=;;-I-r|MzVF|zERR1AO)KU1&iO0G*W4u;MPC}eT7*^_$xVyjsg5O5S zXTI_PU8w0N7B*U>m#c7kpuE zy6f32CUXmljy(YWBHT%N2M}#|*J3ZVv!F4!av4$WM{O(nixtOdO4m55x2oC3tymXe z83C2jXW5>_^=E<+*4Syk79NpRDHW#{N_h;8+e2A(T*`tI_iw3D<2Wr1tJw2f@ECJZ+qN02a|c^5*-Qh0 zpnlo<1x<9@86O2n`i62aP8?zUc_+^UyQ4zbGz?Ol%sM5a%AhzjIvONuygCiW;fdkm zg!5qWZ~7c4JSD2P9YGvA8wh9Af^4mA{aaLo=ej;E?t#+xXZ#e*KlR)xX3wjzG`S?A zbmHIms@_=!STl&&6=E_r4(H6~!4Wc^F!UU!>3?Z<@)yXdvERexQo`=+%hG=eN%u#h zwl{`4p4cb5vhhP-y0)0nzlhGrSHTAdk>bdZme>&FG^wtL8})(3_cx9=lTJ=zTvfV% z?v}BI(9}Ek#Q;2q-H}!4nXq<7HeW2aM2)BV_|WEQ%+X@{{nQQ+X{7VSj>;)sEQ}n$ z>p;~;98k^fPCq`&Lvn`VDA5FY%hw*LR&Q~>Dc~QYlCHq~=14kS+F4)APO6#7^wVbk}`F?=Ol!O^4b zy*`OZ*tf?`|EhP;k>r){zEe~jQ9L7DX;vVe%hd$7;tmdFv!G;EwG)-zI$1b~7_Zd7 zMxa+ zTFrPIT-vfjMDa_PF;IbWCp=FIXKLS_u#Syn3{a&Ba8{>#E~v0+h#!lPFiOX_a@4ixRu1VIW8d-HU`NP_aQD zHT^sA{9Vppg`uhT8ptYjDofOL{R;V{))G3uapI>R$mz+`R|#hwxYZvpbRI8lEd;sE zv9caR^9oFm_4_mizoY;h=yj=QQ7~#%@wXuEn^Z0MaTYqkvq2rRsya95@-wR@w(*8= zGn_K&-(zlGclcj=`qzt&%jaG8sOS`PY;%JLG>vrzOcIPJwaDx1W{O6{^HE=9X=>c_Raxg9AUetTf zmBq?@21X6t5II+Y8JopvJOi4d0&s5N&T)`jO2A-?o!=q&sv8Tg%*+~-VToA&Gf)?y z^emS_(BTFYUaYmGwC|-rXV`=b>eP`+p2pXOTg7vb>SAwXONjmZqX6GTg%HYFv+pN; zhBBzSP;5aV5bDgpHxG>}9f}X*7-Ze;5!N0CA_K{b4`KlT=5* zhe2|Z({lj;*r@+&P@W}X?jMr~uJTGigk1ze9A=y}`o13k06x3Cw1nmdoy#%!PQBzc z^3SUHUXUZRgp@#;pl;G_weT2j)+`rCLq#G8e^wM1IMc3}>Ci`Iufz1K`8s+qO;{Uy zz0uYvWqsLsHQaKamx1VxYSsT_;Oo=OlG(`b^Vp@jv`Q3OV@qZ7gBW*dw9!vL!nlgx z#iS!fOUg314#gn*zPF@-n39N;A^&ULuX6J^De<|G>Qj_7b`$@*i;WJnIC!8^smY8T zpc~`s)6M>P#&{b0zom^1k9Yyj?HPVp8ldpy)1?K#!_~;-pjH)Z?*0d$yX5v3SAD8T zf*zGQfvyK=aW#T0xQUEx=a-G1{er2jJoN@H-Lr)METn6YG9Fs9Yp=HAC&A^(Al2?O zCju&2qC0ZNUh{qoBC4WVZgF`i8-@gdN`KDUc0a};g>)gR;1JBHOiW2Noc}6=tt28) z39+CIiSqxh|GzFD>;GSuFHpBhf2nN`L*M{HVW#OM?vkaNV1)@h{tkM;)B}SSVE>lt zLhMPxS$@?_OQCJ%d$WiB@2P`_%QwIC&M%*vf;Kp_(e@{AUC$Su*n3yLQh+w2{NAI} zm1!ymvrlgm-~*Ka#9^k~me*$QD`H*gDa~ba!~%?P#jK`!ybq7@l(g<4yTR9H>&oTkBj36HoHf0ayc(RTV-mm|pX=G&Q=0=Dp>)9N(6X}jjrydBlz@B|SYBhl33w6jJBS+RSv}7(g;#R!P=o<&ba*PsMUIVk~4BC1tdz?kU*q} zn@aXBwHzo8tCaLK$ya?NqnFI;)0XgcM0Hl%JSVP%Cw6RMEU}7{z0$ECezzt)xj5>T zh~*ZcV2a`}|H9@HY0$>dtQv7(Af}T)g)Jt-Kc(x~RotkR*esoqznSn;h3J?L z%C7Ix94a(tMgm7e8{DYhSkIH5;sfr8^`PpiN84z1CM2X;O9r8g2j@MeayT9k*nP#T(|%wqN)EJi~N6zkGmY|;1T+`lJb-orXr(gg;a5;o}qb7qVL zw5}h>-(G4CdCGsIOjsB~#Z%eZD3Y`Y9yPOyXV-%_m*^<8n~`fSi{&QtXb*h#9r>N3 z1ixZ`K6x@hY=EUx_onjy&d@@W;Q4~_eyigmX?qI28cfH782?KauZfj5GyHdwBBgTV zOY(j-l*+o0(3!V2->(~y{9R19m~Bf{-!v$xXhAr7Y_CqNRL3)a9+a5h^gv_StKC7Sn6<)4;-il%=xCOUmd89pH2RF%P8n4&r9Z z6<^CBa^%&2frfUD&{v2oD&j4UB~xU5ZrewLO73xaYl=mRXlo%tK9mPDts5$BPga%2 z7_j~-)9|HA7$k;*^Bd+IVmxtJlId9ZM6;K)B$=)2pdpU?zT?qt5G^tBv!cM#7;K{q z{h%7EGFqPAj}ytd`96H1^P*qM4`eNou3QMUA2ro}rrE^b+3U&#AlGzW8F5ib)F?@< zlZ2OnD3O*&XvLafSxVok*Ij;us-^ZOSBf~H?%+3B$Tu3~%p*0-k8(nm=y%|GDWsoL zAl)m3&XR|iMp(1pNN;!t%hIS84{6Q&X2uTP`|lKr7k7fMkSL z$8U?w$D~UF4zWwJpRVupImAJlHQRo%^EI@A@eky!c*>@_xqSkdyq}ssOMx1NqjOXw z+f<08We|hjI&Oby-yqaX+9{Ng`E_J!*K}RB)v%8Dt2~f@g?)VT%66=8aF;yn&Pl+8 z&cqC)b^3d4ctapP519Q{;#YO^iP^6fVZ2!a(I*)xdk`c`J}spmDP|Ji=A|UBg{0Fy z_t3hZyL9e=@c2NKJsDEyF3q}tL17>CMm`PNN{7uyl6$)PEs^??yX%g_$)UCcFobb} z>qX8k0pYemRN+YDTH}dbY6YqAM(#fgZQ_{tm|g5D6UQD%tRCvYD6{r?xzQV%*uE8{XVB&8hE<_&m;w7E}VN3B&3N ztNorxB3D8h22X6iqV;M4gy!i^!rGm5-jJu!2CO~VoLEUYnuKXD9)iM@H57-?M#B8C z#U6*3Cf!jc-I*sBk1I?G;acWYj9!|+hA*BXN%f|LI^K44$<7_{U$K;#L4P7wX|%9v z-^!mS%yv?~fQ0S6ZVt9p4t{yjJ$6`eM> zR;0TBJiNf~jVsM~($8Ror8Ur2DOXV;FGudC=$Z*Vg2659&8TOpDCb%d>V>$kjf6;9 z=iwXDyzfezvKgaazsRV$X24Td6SLCD$(qfrdiEBsUUG!of}Y>0wOs8roL_PJj9%!& zR8N)?uSX7=EYE~xjwC$EmCooGgoEPNsC7UCklOU6J`4ytugUBli7x~Qot|AZEF=9` z_#D%uMpkjXr$51nf8S&*k;XJ+SgzjryE7q%Q@^7`p-#O5w?TyRSRa;B9<8^jOj@Lw zJYBbgDo;A&C3gXjzdaA$RI%}#?RyH-nj?>?{7Z6v68>Xrd{0GIA2@2&=e-G9hB7_VlrWx%Msn7)lCLMVUfD!O6C{afD(WBU8d=X!EI6Y?Htf(fe1U|J z0MEy?w@gXh$ek}q$p*YJJP%MtG16XGntY1qTpWK4DOo0pD?H@<=TuSm$?ldJu^kJHmoGI@YGEcYf{Fru9in;?(=k67IE2 zLw&}4c;WUd4|;a7npHY^KAO(*P(Ra-Y@HNH7`bncjr{0Uqy}$e2n=~1pwW2bdD#oT-=WO+C z&%#BPpNds@R(>L|EJzvWp%Tj zS)_w!eQa`Hr}WI_)x>6fkn$w0n_ZS;2adtgeRlP!$LA-JsU(u0Q6JjGXV*STP+7^R z>h5Q}Q1@t^zprOaq&qVy9Ao%-5x1T#yB<&7Wv`blqYpYLgV+&5grBMk#%hB|0&<#T z5B&e~9R2fiWXA)|*0o!Ebl4b!rh>oFY?hW8F~6x<6`S-x_=h+B1)oDm8?(MDt$+vD zT6UvaH0Eh2&Dn81U|jauYDI4tdPqv|6NzhU0J zaIsUQg1yE#U~kv(_hI~!TP7V`z9wKHJytX!JMg*MOtQlYl@bTo$?9r^k)_A6u%)#t zEacXr5Bv)qnrTWHUGzFxpY=yd*vhZcxE0n1NjrnB8FNYfYF_`GcaJ}#$ zLMR+7YeMV|yz6;TKCLVXzOS~g>Ae5lVuuy~sLR(3yR$91EKfd=9i7Dl?U0Bi11{+1 zrgLU551JZgwT*9;;>*a(o4+c_^MNNgWFMqG39~R@7JEJj(A41Ej0`2NF!9X(_W5Q~ zB+i8wb@!UV%$CoAjfT-0@A0h6)5olCdX2qjmp220CBNEY_n+u1O>?>$qBE_71U=6t zWz}LzE8OqleBNV{>0h2cERQ}^&Msf-RLoP`M{L7?jNau1VYgLLaR^l+z^z79pWh7$IAxg&v3SwA@4Utfy6)8 z3r)NqZvU36_<7^1@v*Ei=@>tU$0o;l7)J_C={7)p)i~!!8Rm!(+9X@yGF7a+4$09< zT3cfEJDZLEn{w7*3hbgRVd;6^AufMNP8MnxJ{#s`JWbx>m+txoisayW#&zS~xj0Sr z-?kDBrx$Z!j3~2HA4~atS|f|kmC6Kkgs|iEPHCHVU|knaF|pe)2G>-YhPbUHuWt>< zw!rY6g39QbFND2`0EV4TP$<(Pd~)E@@A8zyfu+#E93w6L~24j;t{-+1}A!g{dJf{llO@wq08N_Rt zrF0y`Qk|rV=@M!q#EvyEx|#FbEQVg_nKOoJIwi^blQlY%5re)5GT6UJX&tzBi+3<^1{%`&6j!x6NrZQrSE}$|HE*>9-0oP_=1F>|GCL{XzT;@@Oi!?0G+D1rM zZtDGkURYtSD2Elt*H4qDoA!9kr=kwewJi2ZksZUcrDgK3!NvnyZl)TMUi7`OrXN3X z72TD637|6hJ2Nuv%vC^b`GdW}s}B-T={cJ1j}*-}18|uzKvFH~oeJefQ?t0vF`~zd zPMaQ==MziyU_F?!^Jh|(U=87a{*2*$T5|OJAxW4Tz4wB4G;%UCiNxF1_l0BdEH5uD2DlP8yJoJ8dYb~=m!K;EB=#DzEUB%2Q zXUVpQxxU+Xt}?5~Kh{BSrSh@qu)P~hRLNpI&M9n4KDyYW7=)fz+Au(`Fn!NbsEs~? z{1vTnP&ania*b~QT9l_H*VeeueS{p06}?P@GL-)|(e@#bK2lQy&CuI}WpXKC;p9D% zqQxI?c~OSyojM;_m`jWAYk1E55xA+*DrEs}q-MMV(g4oLCDw)!m+@kn$Q|hw4yWMh z6o`~gSMa}&nnrzTS&*XQ3m;tJ6Jg_TMqX=DFVPK8!tI2mhmvEkEgWoHyw!%3u;HEh zD@8KSA97WGX+>9lQ`IRD$RxiHn1!eM*!o)YXj?bO4Y9AjI=@~a+ zPcg*|D8fv-C*-~bwoF@?MkdDMETtP&A6StUxK&uc=vjgiR{a-iJPYroocRH3ek61J zeLBlNgy?9opz|X&2?n-o3A>v9U^w5oQ@jmBLp(@FnfdQ7`c{V0FWa$}ARN z))Mwjv<3f|fa4#c$BSbCD$P-Tclk))hvX1L2f=rsf-c(e)sMWiWR(dul9Jo@nl>L7 zo?W!{_SqR9*J@Z?@q9HC3+a+%MgAn*cQ$by1)-*(a)|`9mt7uheDe+}Qv7)70XGY+ zjl3DZ-e=8}{~ilF-2cIdeoW*p={23o5)z2+x^R7!f{Dtc8C1%9T-3_2<_*ku0k}Ii zFJ{TtGX_Q0f0E*PtSkt~C_An@aO|@I9MSdR&jirNDaEk?l@fO|>zn;QomPz?A42<^ z1PK|^edVqd0$)*(2F=9Swo4#aXd*E$j8@UyGf-of?ee_##bz;y! zwZ-|lpea_VhYX-APorEnOxQfc;1F+igIlfQ$D!Bn-Z|EAL`i2;ZBRI-s8BX-D-DQxN zj-&_|KJ+JLVNZ@$fRNbMH=g#@j|)cS>ziN#H{iPiUh@*wvyYwA!`8_mZMxHQz-`|L zm^%E*cAT2alr=n!r8X9w!IKNRWmYNKAjXd%k?j6Nl1}i5^WQk zgspKZO8lSBnPk%o=|+cEPmdtS^S^I6e-2Ip zc#mv94m#-$nVa8Q(~$+6ni`nKuOA(oncDhH=_7y<+Y|Dx<^L)&{XcAWaP%L{U)!hf Ua|F|+51I^+2P#WfOMVUhA3U3