From 33245dfb26f3eeb779edb9e76a7f9889c94f253a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jul 2023 03:21:39 +0000 Subject: [PATCH 01/28] Bump word-wrap from 1.2.3 to 1.2.4 Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/jonschlinkert/word-wrap/releases) - [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4) --- updated-dependencies: - dependency-name: word-wrap dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index de06b43..7bd1875 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6109,9 +6109,9 @@ widest-line@^2.0.0: string-width "^2.1.1" word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + version "1.2.4" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" + integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== wrap-ansi@^6.2.0: version "6.2.0" From 13e391f2eb1feeabc825d8588404ecb733e62000 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Thu, 3 Aug 2023 10:46:36 +0700 Subject: [PATCH 02/28] chore: cleanup --- .../handlers/find-feed-article.handler.ts | 6 ++++-- .../handlers/find-user-by-id.handler.ts | 20 +++++++++---------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/article/queries/handlers/find-feed-article.handler.ts b/src/article/queries/handlers/find-feed-article.handler.ts index 5647283..a0bf739 100644 --- a/src/article/queries/handlers/find-feed-article.handler.ts +++ b/src/article/queries/handlers/find-feed-article.handler.ts @@ -18,9 +18,11 @@ export class FindFeedArticleQueryHandler private readonly userRepository: Repository, @InjectRepository(FollowsEntity, READ_CONNECTION) private readonly followsRepository: Repository, + @InjectRepository(ArticleEntity, READ_CONNECTION) + private readonly articleRepository: Repository, private readonly articleService: ArticleService - ) {} + ) { } async execute({ userId, query }: FindFeedArticleQuery): Promise { const _follows = await this.followsRepository.find({ followerId: userId }); @@ -35,7 +37,7 @@ export class FindFeedArticleQueryHandler const ids = _follows.map((el) => el.followingId); - const qb = getRepository(ArticleEntity, READ_CONNECTION) + const qb = this.articleRepository .createQueryBuilder("article") .where("article.authorId IN (:...ids)", { ids }) .leftJoinAndSelect("article.author", "author"); diff --git a/src/user/queries/handlers/find-user-by-id.handler.ts b/src/user/queries/handlers/find-user-by-id.handler.ts index 7ff1f8c..09a9c32 100644 --- a/src/user/queries/handlers/find-user-by-id.handler.ts +++ b/src/user/queries/handlers/find-user-by-id.handler.ts @@ -1,4 +1,4 @@ -import { HttpException } from "@nestjs/common"; +import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; @@ -17,20 +17,20 @@ export class FindUserByIdHandler implements IQueryHandler { private readonly userService: UserService, private readonly redisCacheService: RedisService - ) {} + ) { } async execute({ id }: FindUserById): Promise { - const _user = await this.redisCacheService.get(id.toString()); + let user: UserEntity; - if (_user) { - return this.userService.buildUserRO(_user); - } - - const user = await this.userRepository.findOne(id); + user = await this.redisCacheService.get(id.toString()) as UserEntity; if (!user) { - const errors = { User: " not found" }; - throw new HttpException({ errors }, 401); + user = await this.userRepository.findOne(id); + + if (!user) { + const errors = { User: "User not found" }; + throw new HttpException({ errors }, HttpStatus.NOT_FOUND); + } } return this.userService.buildUserRO(user); From f63a7f3c0e6156ea22daaa079787fb04b0365bc1 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Wed, 23 Aug 2023 18:28:33 +0700 Subject: [PATCH 03/28] chore: update README --- README.md | 28 ++++++++++++++++++++++++++ assets/architect.png | Bin 0 -> 155724 bytes assets/func-non_func requirements.png | Bin 0 -> 191276 bytes 3 files changed, 28 insertions(+) create mode 100644 assets/architect.png create mode 100644 assets/func-non_func requirements.png diff --git a/README.md b/README.md index 0a14344..2f6818f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,30 @@ +# System Design + +## FUNCTION REQUIREMENTS: + + - user can login/logout + - user can post the article + - user can upload file + - user can searching + - user can like, comment, follow + +## NON FUNCTION REQUIREMENTS: + + - high availability, latency < 500ms + - total users: 100M + - daily active user: 1M + - 1 user upload 2 image per day + - image size < 5MB + --> Write 1 * 2 * 5MB * 1M = 10MB = 10TB + - QPS: Write: 1M * 2(image upload) / (24hours * 60 minutes * 60 seconds) == 25 QPS + - QPS: Read: 1M * 50 / (24hours * 60 minutes * 60 seconds) == 580 QPS + ==> READ HEAVY + - No lost for image + +## Architect + +![alt text](./assets/architect.png) + # Getting started ## Installation @@ -25,6 +52,7 @@ Run migration --- ## Running on docker + Build images docker-compose build diff --git a/assets/architect.png b/assets/architect.png new file mode 100644 index 0000000000000000000000000000000000000000..b9f931cede47ea45ce3cb0e8ca1be3ac189d25ab GIT binary patch literal 155724 zcmeFZWmFv9wk`~vPH2eWkl-{H9D+N6#)G@NySoO01Si4W-Q6WYgIjP39tiGsi}0R% z_W1TW`}gPZqmq<8BaBy%h#YACpaBxq7510}147l<`!HE|* z!Q0D;2*8yN;cWvy^bA$Rj3g!DsDSSfIQT$QIPk+Gzy}BT08OJm!65)=G~gqX4iEPP zIKw~OPY36)D*S9k?w6Zs`cF0vXWda)hG*wV>P?7w= zsc&sbr)yxXXGrH_Y4gwoj@yM3_-bkBpiAUpX<=p0>B0m3`vfQO{oyh_l<4mx4(2>i z6-gN)L2ElhB33#EItC~&5)ly*x1E6zryNZ9pXR_X9;k_fgAFG=y|c43oih`iwVg3N zBL@cuJ;OWtckgI{Cur?mtsHb+Xszr?9y|H3eqe_7`gW!^4yM*tL=XMy>RCHF@Iavt z1O4B>$9WpMnEv-jR`&la3s@li!yS4?ItKdx+c(gZ`{635jH!#Eg(}R{5+DyS1}`H6 z8x!~62LE>JzlZ#nrYir^l!^7-zc&4sTmRptiuQ(fg4UM6pbotMy*K|f{@0uTG~}j# zSo^=w;*rpQuL6|jMdGIazq`hZ6jm{r4F|^$CkA`3-~zv!f{?5*dD`PWZp<|>#`RWQ z1XZT^r@OL+Y|LvGGrhYCVSTaC;0huA&%rG{ewrkivb#@FKKg`_3+MKF1OlSJSckX6moXY~L`jsL%g?=v0B{lXyCxkn)56!|@3& zK%o`&KlPLT5`-Z)2luV(KlDP%PyBTs9*yXKKTJNt1x&EQ9Wo$B!u_v@jOe=ie^`+Z zc$SEtxaK84_lN(qBn-Jrg8wiRB41XBjHu-k6y%uyeI}6)WI_0UWcjzv`hR5kAG!Dc zM`UpceiWg0ccxxvGFsaoWcO>Ss-FkfH+tHh7^Tqt+twmxN5Zv<<)N?! zLIFAUJwq#Bl~qxsMlI7qEHdIL9(ks6x?aA+%F0Xsv=h^(hoomZ*aRo86qgNEMiT{f z@>d{c!AA+0!k)CVGC86o$ANXOSX?b=jmd;i7&%k%-?|DXta6#y;D ztC6i5dC9iad z8PeCCpm%xVYa3`$$tAD-I*NtVuh62R@DvIyLw~P2h7ojNCibN$7iDCFc81_B9!Ppg zb7i|K4pMx}G-)_1`EPoCSqGpSK6iryVC;wx!3Hz#28Yjs=v?1a)TD`@th@1pWke_P zDWstiEdh{Fju)wDszZOQQIKMEgu0zg$DW9un0@#@S*aM*X9QD{)Lo9Acq;T{dAot6 z`PS*9^A;o8sCeufzHNtpGdu5+0fY4-jXzNuL>j39QW`uD@}T$I?!OnG*#6LG+BiYe z;JhiuJEGOKOjwCN&+{qKPs%Kqj02Wsj@`v(AYk{>-fSP5ElfQHZPhKv7FMA&MOBj6 z@sSgQmw~z}*Tn=)_8q+B!6=OmmLlVC`*-HI5cd%%l%)7%1h9Q}pbt{c;ps8z?H|Q& zQ-heg)e4y(TF`W72~+(D4qo9=NDRB@_S9S8Plk{*ZkPwd-JJ#YDpLMj-{Zym(<;A= z>jj-B`&ISz)h+qInP^c|VBaZ0gSx;JcE#EYH7Pix_(U9LsG(DyFO*e|oV$OoY%_}5 zIfeVx_2|?eH_nY;(9}{X)uN4leQxk47OGUCW;cY@p~;M~2!Aa~<&(8SN09p6VTSfsNWkkE;~dd{%re{Dl{4=8`vM z0bD;>2s?7>VhpL;DH!!zo@hlGS|ED5`y<+!;n(SlCX45Crc)|b@tvJj^SD?E%r7YD zNMtep@!LWt(u~mF&Mw`rD5R{B#e4C_kqD(-S=%$<$nKI0Hv5HAzP#%dm(F~>E&CdZ zF$S6>i+i}p1CKiah-ossN+1a!dgB)#%mN{cL5d(+PlBlZ#V=cd@h8?DSu>326kJY|*uXb*ABgvZe`0K>` z8IDI{jv>m3N^Y^NxnM;?Qr*KNHq1qT@ zzG96OZ1OUwSc{ay+MHBTP`mzm5Ai-IP1I^qcAFtsKl-0tYJ!+J{8Cib48YcMfsY}V z?6mE{H-_SggstwEIl)(Vh)rucEe|1oG*u2?0ErBb{^bbJ zua*==oeN>KEbYC+Wl?kzHO;Ciy^G}9woJV}lBFqAm^eN>wSr;ny@-%X*w?bBHw(*z zPNdv(X{1qob9qB3;jn)cjU`Gvhdnu6^MOFj_{r7pvYsdrf|+hiZVP45Fz+>u*Y(^I z&M{rfiCnV#p9UwEuTGErR{h>bzzo;NB_1r=eg`hTLLy21)aLdge+f=mtCePD5phv# zu6=#DrtL{J11-2%1ze%{97UB=1WBpyn%p~mO@W7?RW`5hI+uu+)mG*oWh?_qL^%D1 zE)Dban%f9(Dor|mV9ZPaTMXTtliQ3hmyANL;BAIOh_4QS7F84Z3OPS6$k{LC$e_7aPWf(oQ^vRUt(kRmORhD-<~h+ z!{isgF1|Y&_tzrSk7^H3dKsX52d1)y?#%>LUM)Xp@C`WC<48=yu8*uc zLAAOe_$RM@LgD>2sH1Fo$q0Hgx7V3-oxoeb zTF2M8YVVIdEZnTe(@Y{QVzasQ#HwttB-iy(v=ct?+h+_Vu?@rMc~3?J6Lyg-tpnP7 zqex`c)jyk;HayEq^Kzp$w!!`@6Fw=32XpBu#(}i}2fPN!qRRXh;ukuVyQp1wbH@__ zr$IMH?3;}a=wkY9Xg7&cEz-*6{rkz=^Uk^jX7G74$F{yb++RBT?vj@4bbx+cEV}Qf zq`=|*IbG|EIXs)Q)?e@c`s)14p9dE6VFEZsMblq+<+<68#omx8!v_ zGxK3~>OH9GPh%0PTutO_+(%*Gc%Y`Mz3^wT_DgUv`;HbL?&w$RAfHC;o2Im19%I1?BVP14PYdbv%1Sg$Ow8K4m}gGOK8C9Kg@rpV2+faFC9(wUTJB381i)?w zm85*!K@e%j)DH9OqW@HP|5||9H;s!tSGokR{$&+`p*f;=Wc~ISMAgXdx zR47tGfpOXnsv?6i$zS8&%l!aFt%pn)5!wCtZ=0|)&L)4M%FRsx_W}$3Y?1Z{`jmJnf{!ZI0P5>s z-yJmZA-Scbs-d>l={Mc-%%h~%614{@sDF48M&!Fogra`VSojCmr~SYdBE><*m7E)= zDox~UO)2mdH;Nf+jzp{G-EUWvM}yP8fjBWS5&tn%bb*^B4=*Ef=SxC1A<*lLFrdI| z2ib4Qe3?-p-cBTD+MLfW5ws!u%PC_9PXoz(Pf!jbW{^4L!v*(ZxJW9OTTfnh$O7mB zpo4`pz+1IxnRJXYac9$$la6BAyZ(=iS@W=6v1}qFzQv?6=TiwmUdL~d!W(f)lRJwI z`18ct$MqSGB3f~x0-Q7NQkGC4f7uKU@g|60K$MoA{(hA4j|~>Qa5kqo@AgXo*PNjM z(#c~lDJ@1s3*OPv{M==i`6SKrFiGnyBK7!8BtIERjZSZS8&0wk?c@iL<8wVUoOIhFg*cD&B62 z)@Ncu{&?sm(kz#g>R5w(Z4tWE<@{&!oa^c`s>2^iWC%t>E#M>ynE0YAeaW9l@>RgB zzrvpXVdh(C0B1IVNw|pN(M+V$|KxnsZTL-@$r{+XNjicAf4_CRg3F3D86j=4{?_>) zw!!t?5TJ_l;&MOhS}Cu>&vt&`nPr&=uYt3|;WKzli0EWv+vYN}H^JpY#X(nwjb zhah<;y`I^g{k7qj1?Jel6HEV%$Q&VHdDr|~L@#2S93`S>+!EA7@mFNF-~da9@6#;- z?7kX>%>A9U?j)^{&Ddc{T6+sHUuqbhzW+-a4OFrrp9a==JLA}g$=R6k>IQcF;SHS7+Oi1FNMOllo&<* z7f!T=y*~ zVZtf&`)ms$l-J&nRYPr}#@$m3n>gM_{K@iXUh&xx95BT9_InpD}n~Bx7RdBo-`5!iZb)(yLw_rPKeB`L?GFbkLL%j{N&@k z+nRsBd{lfG7yj5EoT8#4IrOVQVb#*h((bmDH&HvguDK5kIP?JT6OP5pM2WV+0?>o{ zr5+lHUyCfA7r2Ekt&JaV|aRgBJj<{Nf`5 zZPiR=hidc1m0*)tPd7isiSxj>fP4}>LpQ;DyPkD^tqKR?>K>O2H z$bBc9#b$QIcX)ua;r4x^Dx2?lGasX{y&w><$s}@)rhK0zIh;GuIpk7)6Z8BvMw<_0 zpKr)9CXK`Zjgk#_tvhy&>x;@=8Rr3HOajDe1`!emc+hvb2p1uL#h^V3TwlEuH9lJ? zA1Z2z`P}*Mj7k8!RC9VV!j4u>2(PKPi_1LZ^=UMd9K=$#6ms>{nz>~o<_Gz5Kds-u zzK}tmdBPr~DM=!EYn->fChEKArO1=FDZN3j3vO&8Qm@ zRt-}C`5ZUTvjO{tDA_y9ab8|Pl>*yfgXIg8QV0{BT)$Ow2^pLLuO60Ox=+r0*}{L= z=%1ef4s#zwC?SSdM-M7VLy&HzVRD)|$s!>T+-pKkKMMXVbJ$xpN5NV9zWL9%ae7p` z=BU82mVn8SJ^mjmrG{6L`OCG5!mpY<-V>n-7##LkrdSR9It+1ycwR9V?~G;7C|{4F zqpc*p5lZHM%Cjs0t_ag64@2O3j7Nyl`}*4yLJLC*FlNTM2n$}P2<6GWPtbo*Ed0}G z2TqpGyFdV_y$@VmNLJ46<=*)EbNWt05o#Ib$GWArFlAc)TkNtfHkY388EV;-!@`$P zjc%E?gSMdJcw`Ca>yKOn#J3UiJG>>0NL$g@DwpT^uD_&IGN>*-?FO~SKbc#IQ&fkq zpF6C;{~R2d`0=W2@x95J1Gs34q`XUakAPy2qF!RuvpuoQW9qtHI+LbFGvoTT;V9( zT|@1q^o)x=Fq;<;Iy6V9D~dcLpgWCZ(0bP@0hZPCXD)6pq8DBcT+&iM3yQ>f-9pbT z)S@e9=65i?53O`~b@b|{Eq6dahnjTuOmOW(s?k}^Y#gLrH_R;Tlh8#9oO7L*u#VHF zbKD9JNsQqeUQXh2He;3Zm0u8Vmfr}t)AS$n+`V1gUVUAu#Y4ouv%|WX+ofrhU@k59 zn;V~q;Fa|zSsMH}ko4rfR(`D>S!pe>`emXMv6edd_X($;Yn)BZ2Uy5oa&9r?_TCXz ze|*pZjfntSn!L$R6pTSF(3Je?bxUTKGduiF?a{3-=K!ofo5-hYKrsLyZ0hB#P7YjAHJA+dE@)yiH~OHeKkiso?*q!0@!{8nC`P2DZ?Y1R&}>nxE_>#=hVPJZQIir}Tyk^%z0w=`CMZgcNVb{w z5{tl@R)Yfysq185F!QD~VwKx4hU{$Ki(I5U+4mXk#=b4vNf?m)VhcbU$?Frb1%!wo zxa(9JPwnu7Xz3hlRA-?Nuflmy0APoUT66WCZy@32N=Zh;uvnWuSwB>2cZ`hhRG1)R^6DS4`aQ3%};Q$=*c)Mt|oDRFlvhLM+HreY?cAhM!s}@ zaK~2vea6mrzJwqp%vmTje1p&~n1inwmdU8zCoxNu>Ge5zLCP9sztuzi$khtwQh?!q z<(1)DI&dJEc8_owsBLvs=(*qVjIpM#pO$-6;VIRP7$J_L+H}17q~^%DMz-nmowj)R z`+Uz8%)_#?J#XS>i_%~LMcWa~UY1S8yK8~9J@;3B=;5(J6Engx3Q=+-O!|h@k=_SF z!l9NW^l>6yLcJcFd-u3v#tZ^b4?dX6&BVqY(>(X5jTV}S*r1LHbZ>M8DSl0P% z0=sYnwj|$N8Q@`>*AzrHBDyDtguM#?TKZ0)KvDUrvRClMX+coaK4PG*-mh!un3Le2 z(l&--MbgQj1sBPN@{@F%S?!gh3zWqB#B6UAT~+_ZtNRwS%rJYyp#@gD?2V(4NHx_d zB*Q-si5|c>fB-Y!AEZF>!|2*W2WEE7en|6hy&N4ty-tZQX9Yk`6wBzgQb*Ram0~cX zTfYQy@k-M^*Uph{vcZo zhwVDlGuZqGSf&|iw(2asUuuXO3cSKo#ruPWA9fDtvSy`LH)T<2sIQg1iC6cB1|wK` z%I@`Yx9hh2f0NBl1om&YvGqU)HaqzA=+T7=xH{1;abodGcdERT#9mHIT!G?f)TOI? zL+C@75@U&P1`#0Q6J~pJ=k06`(ZTJ-skTKNHHO+5!!T0J(#5;1AGRbmAv&7pef^(G zbK<`u#p8V6-sYfToF|X4?R#2OLZ)rlp!#VeHukfso286J@L17~-+weH@OkfJU0JlThTHA!} zaX!7m5}}D_Jx`8gEK`sE$r5d%0=`->UV+B!elv&FHYy+!Xe;J_$NB% z9+KZgu&b9NYumSOC11(#Xr0e|meg#zy&Mscoi$s!qu{PgUcjeej>-(6nAgc<)~p0e z3#n-qTEQk)@6Za|aA+t!6tO)OV%wC(qp}6WNJb=MjiwV@1?+Q4D&1C$0w!Drg(+WS z!iw!uPB`QFz& zA5L;MxE(L;qnesv<5nt0-&Urs##U95VE*ES!VF)N%O~kIr%^hnoz`~kqMeq^#!X}_ zX)lFi2TfCS<>}FGX;y8T8$X0NOunvQc23jom&M-U!}evvd1tKDX4kT2xo1Ac9MAE! zWwd4qN0zy9)f??SmqhH&{@c+4?G8*?;-f$;)zbj~sb{!QuO;uFHb~(d>BKyp$aymx z37BEM?wKpMX1G};>s?lR&Mxf2>Eccy)Lk7|_I23_| z&LH1Kxqp7Uh1F3u3kh>|Pcbc>^vIz~2kaP2S&L^Kb_GjlKLy=8i4mY3>$UpzaNg(_ zXrofwiLq-j>gdTkFa!F~*8^jb>}cnFVi4GV`&lDt8P`TOgIQn;VIF z29bTvv(aT6p^8ywA}y7Uvxwp@jze#%P-iA^ldJM=$JmGs*rYx~XHvOo6nT?o{Fz9w$oYKu;M57tVm zt*YMv_o+om7Jz5I!f8b6ZS!cOg4t9w8ldCW<0-@R?)}W zsf0{o+^^8`k8VnZxvOtj6egNjw{)3=AuyF7 zI4@l6+TDbxBvUI=P&9##JuMWqu;i@fRv~z7p~6(mbKrMP?-%P{e_G+}+UD+ND}ymC zL0S|gHupx1+u0$EFh82%=`WDjHA@x&i=vbPDZ^}SVch3d+onp61q_IYFmMKN6S_dhqN+QJMD}f78)uHNPI_ zKK>9F5wm3jgsELlMnw(}x{#AJJ9JReysjt}dL^CI+q`%lvSf(po;C^$7yv%X7`NgMTSyzh`3v1gPKFb!T4mdd9r@MwvNI8seP`hU==Vg(H6z`=$vde0)-4e5r|71yx``&EL2(J|T3V7b8>!rH8 zYh23y>CtbOxDEr62WS-u1>LMkp_;rB1W6Gu)8V{r;K3%=aVBQjZr3EI_1VyoR310n z7i!5Hmqm zORb(!X=xG3$#_71vV7roC;0aIyr*`~>T}!ep7mRrU5&ydUeBxL1?Q#j&929@hJqq0 z)p`1Kd)CNgse%t~^%=C>ls&w~B8vt1!AiQk&7y^b!2)~obA&tb3mOOuDq$qyHPuJ? zChVi=?BdtY%R99#29Bbd)hG>*WnbB`zzP)M6$2&=f-Q_w9I>Q$P8B==z8)dl0Kye< zy%dSFwv&p=x?|a5@!YQOhIr2BzY*uByY%2Y^Iu>5*1iw%A9VA>8W?*k&2t|@UD^(0 zdk=v0UHsdz7%5J~>%BTc;Ru2-`qqn1n!K`t0!FVLyIZy;k8zqgYn=SA6jWYkyEEvY zv1mJip7mpo_bYk`M)qo^wU|8fgNo+zWwR3HuuPPL8Dr_S7blL}eV=5=mQr15dEcIH z;GLT9OccnxSDA}dVRoDdrr1Lr_%%5Rp;z$<$`;UhjPr}~0deG9?^h=9hz1z&!?hxP zc1{H@!?87B8cLG@7qHeKMSmHON z$o{ly+WSB^4X9#t^QmISX=+AVl^ke+aC2c~f!~I@b&KH`#01GVFV(Fd7SnpzjT_Hu zndnLC@ZSfv!30wwHr-SM&D62@usi5&JQ-Ka&xBcdw}q3d@Tw z&DeS}v$GAVoN71uGe3w)5Kp3^a#4AG`W8`cA={^q`_-e8uJ4zc-Q~JZP@Ba+bRh#G z=PfrJoQMW^@X~3XVS`bM&zFDmasJxP>qwzkKH7v@FWHmTbi@xicN5H#6AfJH|85hu zY3rHgjWd35fq+n+pAV8HKv=~{JZ={Tx05a3;~_3&zRN!852V|cbqk-4hxwLh&Xt3% zG`{zEp3NXo;T5Jgj!SX9f2uIZSSV0TH$5#N{i{2y%X!HY0rNvosOiPE&M?n8GslPh zwtKIe^R{~-AWLO)zTlkX0FOAT@?9R&ngygJB;iRzWfn!)YAfvcftDtxK~^O6^U?w9S5$Tp zaeCi*$U`LL2~EuVI(K*d?so`X;BaA~PQjX}hr?)u+?}&zdUe*5WKfHS8Yeips zAhpdhFnjCOhRRPZq%xu>-#D)wH&T?JkD7~v-*mp{o-{MEB^!1!5j2!!)z}9MFoUgs z$JVxp9X0=wcQ)RaLQJ{Mp_Do1RE~^8KFnCf zd|FysmZ%a#L&Kltx*t(tifgx%WnKZ3(C8O9%n&Mw`9w)biMHqISHQiT11zhl2Vf$* zy)Xk5^QU^pPtgtw_8Nbec6|#*&+s(=^5+a{U==QurJCXeX*&SX1p7FO4XMPz2Harn z!NKu`wco#o2SFNRY4(&Wx=Bo5o{W+eKkNi6Svn;HR4$Z`#xfM5c(Zh~V5Z-OIZG$a@R-r@)EuURP zzk9|-24s1NP&Cip_+9hC@E(Qi6-6Y99E%#0>i1j)hY6}vCgY)RX?G_S=(e057dCiy zy~G!T)?WHhPR9lSA+%Y?4pBs!SLbc;O$Ln^r+H%KCEJDceJso@qZ?PQIPH8+4-+M6 zhE+3U`fC(_&-iO*YZvVXXvysyJN*&K1r)AZZ_nl=S13KbhB!9k$?gzWl+MZ2Xt0?4 zww^<|caA*57$$?{1`}pm+?}_^?moWa?1g757y@(;uq$e7A%4agZGK1yaA(5-jW}7AiJpW^Y>hx zxKe8+9_s{BEU$zPDU|P=c2DDYe-M}ndhqZbsK<@Kj>(gC+Fk7xdsO<(^kCZ zaQnuVMVv1R{+*6-EzUd`gA)VMsOod1n%_EF z3*u&j7J22w4bno3r7v8`(0)>wVln$oQtMSn#F1A;`8&Eo@fm*?mW z+812bM3CUpwN-Gjw6nZyjn-J|#OD#**razjEjv+ZeajbzyIHyVrPI9u+iDg zs2iFnuJ6{7H_6F{P%qz6Vf9SAuUPvwxG=Rz7&gI1c4gq6*Cc-b00)VFKj7^i40fQZ zEVgg60Fm8_i3zw9IdX6!nyq!X|gNbtu&N_H-IIt@@{uyIQ5nE`S=y z6@5brl9+Y1X=N=Z>01oIBcMKQT$3LhO?|Fm^bUxXAw{;BszMeo2gZ!TjKYFl&|^e7 zFjW_z%-@9=rg|02AdZi<(z~lvryZLd|eEqaRX*FKm*d4O;bG2k1wZ z%4(IPkw$e?b&cpWSrRES5#MbpHcW2ZzI{^>7;=_8Jj~(X zT}dM2{W;m=`6xSMb)*#r<-!(<&r^mNzAloKnM;ErcW}nVC}7Ih zT%fCOBGO=V{4LL;M6ZsYQdFMNXHnE^RX>%1Nnt7+zhZ}5zrV?&Ohx|!WmTU{3@*Nt z&0=j)Skw+yfKMbRD#RSDscgvB3@X($hbc)MRk)F9epCl5Vk+OFeJ_-VUPz?lhdyW* zRqzRqDkVo)mmT^y5;l~h^_Dd1q($~}((fX#=k_}h%uBq`4#FJCwg17*B4cpObBR@VBa_=pB5zOz6q-Dbbd zIPyF5*S}f3^eQk~XCju(m?ZUVm1C+8R(F3~|9qULQv#(73k>|8t6B+&guUK~&Q$u2 ztpSJ0(o`KRn)S8Y@wiSDKV5N%MbZbUM0T);Dha71Lz*vutbl+yx(0wi3ppF*OlUHo z(=_k!{y;)jKd*2aclxL_&9-KdBsS%$n;(Pc#yiL97-8ds(I>b#1!{Dt_0+GpQJzwy z_(R3^R#soKs7uiXD5y(44}<#tAV!(rd_Td>_^P62slPJalBvf=O&r8ZCPOcA#pCJp z$@wQEYfa=skuCu5NIyQfMM$SOQHd@op%s-S!z6|UHwvnpbItXNjc+UlZyK|aTnZDF z*ryHe8lQHD%^9eWRED(ACgesrC+4x_%>ZcOBreokQ0}6{s{@2_d$ZZMmFihbBtw6h zK~3m^GOAb<$>#b_oD^q{))iJ&P{5x|a+&Yxd7Wvu@d0Ku+?~j_#2mH#RL(zgPz%sR zv*x@eFA)t$eUrPi1op<=dyle?$#h$8(Y=gG4RBI0!JX6_65w95wbT|j=J<&}YK^j5eh!CtlFkV?O3^=ch?zD!#}sLoCVQ&op4Tjg z%ELWiqC7idWIk4l((l`p7YLOyTto2b!+5$Sv$-8Cq7M*kJ=sU!2BGkv1`dVaSt~p$~DSUCe)L(;UKmnsgZauJ50-Fj?h**8^s~TR{fm zqSk3kcUY+cxgW0?Gidj>$)RSgus>GK`@HBcwP>Q6Ew+JdISbD`2NfcFtdI9inU0W| z>@i_*Dc40^_-Rad6u&ZRzU!$Q*!hxYzU6GEkZuO~Z}y4*8JZ}>T+Ko}?um?Ez4*F~HQ^&d>!_(u93}LD$^E;Wr zutHjjics}2l`o4POogc)W4pr(-rgt8cW%cXUF&gOe0pFcX|BQMDUi%pX>Ry1xIGeq zvDog3=MJu34(sA;yN%Q%!WE_QYnc%3=*lZSlX^npXr5%&gQb#nvW~L{a&lz zrlowpe>^NQbF!`C-u-5amhZVm0R=#-(;pmAMD|pEomH}fFQEc^xXMuDoi|5;!cK~s z4maTO4muK<)o- zVpzInQ|z(~zZHEkGT$H^qyW#zVDw^2bp1Mc!C9m@vy;YGnJ&0j9#gjFLcw}lBw%<9 z*NXqfx$R?9{p;3_kFrj`OGc8TYO0J9ycE|aOh(O6qgdID7U21tCF`*gurV)wneb9<{W8{4V!D=lx}Z#u&?_i}>kt3os0c~Eefty{I3$7xizPbi z!hL0Sb5vx-ELOcn;+YPGI%zvzf%>rf3$o-B#_5kD3pMdSM)v8!AWgDv7p1?8fqKUxpK9|3a4jPB)<~9O3 zfPJogSX5Bh3Vja@M%V`bEP@RsKCWCVm#RQoN`_*qsLbXdYE&;WAJU!5U^Y z37HD>zGHIO_P)Z&7S&nj4^ zYj+1I%cud%ZuqW@Cjeh)qBL!?xi4l^{RpFs_s->*Y3!7wyk`)o3v1+fHxHDUj+lZL zS9*vxM>b{7JLH2(wI;Uje!?TN`}!y<`xb61L+kfb4#Ka#qHAO#KdKN-QT_mhFmXqL zZ+h5zwi?P(@!HZ61msAQYwTa&P(`i2Z`|c!uu2XlQe+$@k%&@MxYdGk-d0vO$-oB9 z`brA*3OCU3NmtE-Aq9;zt)`~U*}VC&L2^7I0h21Gl$n(`TI%ZheG$dGdEW6EZwt8T(iv9iu*6X zrGErJS@_T-akcoHVw-s?*^MeQ z?ECzfl>*l5_MBT)hCYWV@EB0&Y0hmIp6omFIS_}Dh5azzA+f7MjHm>hNzEJgHefT- zdo0if^MynaEnf0pK-8Z4P#1YO6-zufZlE>^50VNJJ$;F9<}W$uod{q`z=aSM6!@-y ziNz9Vvb}U?1eHE@aaJ`di%O!7UC;OS?w3RZG+0D++-h}o-&%C>v_Niyezz}^ab^kQF)4`k=5(4I-)CTx>3ceo&^O1YAW3~@Z?t(`gfGEiMc>Za ze^zW!G{~_4VeZg3{F?ZF(Zh}l_qS=P{Y$^k=Ax?Rtb|b(T?Sb)qq}8nR)Zm-c)?rF zO9_VeRNv0fu35hFyO&y8eU?v+TW~PprU?+4&tNftIi2kwjQ0vC*7M4-% z*xRnXPgr(i0w1Vq$rCY=Ixt@(zLnPGER(o6t=~{qd|%0*sq|#dGLXAKZqdwK|HsC3 zF-lZzkD{`e)YTyNsluUBma(VcC()-R-EE@|FKFe+lE_?DH7_p*n}jr=QeiriE?zl5 za)i@1@Esy4qrb8@@Jy2rId*1+jExF?9+8)0D$j}KuP%P^`%mi}M*5M%e(G#Tl?Ag` z%s?e#UK44g6o>>oT5?D@vh@en-YXM=I3McqRUQ41c z9`B#3VJY`m z%JiD4RCBhFk>7jM$XX3iXpy2y!|Csn!qP1*Uo`C&d2PJ;MvC?oYUXD2je6il!XWsb z6Sd-66bC6x!BFBAkjd^_>DL0#C97aN+ZmqAGXnov<#6Eb9Sv0id(LG$%MFV^Jfd8M}Gg68w!;3{*(3dx6e=OU0k& z;}LbQS3jc#0qAB|U#Se>J6aSQXI!c%*EHgjp{Mz7D{5;Wc%}YyhUfZZ#Q)d-0+{c_ z-qZ8P)TAITKUMz_mtV> z2sLB@vxV9&@LwZ%o~6N@%%tR->N2Z_X1~EO<+>!|pp6EI(1AD-Xv8U@_lp97zLDKhk?gz<;p`4#2oVcRD}SsdTM)-*_0g2vJu>@mnm^$&s!Y z5{+PYJV}e>)9W!Jd3N>q7R?AEP(r^4Zhp};(Q^|Zmc)pO=C0+M_>sf_r!NCI>KD#=bzPDhro)V(;dYP;Y;44ho8Xn%*CpgiXz=R-q*E;wv$m z9aS{0A=Lqs=LO<@6cQIKeCC&)=fuh(0j^EXOWD$`<;cDu%0?`=En)?}bG)Mn-dWyH zhV^7XNw5dVloydb%Ex<6Iz#<7P&wVHyX4@EFaRiuhbKrwU&xVuBivqC#DD9@hN4=9 z(R$}ja^4%bOotb*t2OdB=RgF{g(gE>17yO8N#yp}1vQP)N#vTs$=r9?;p^5E9L>Rn z7C-HWB{|1DiWyN=SwbdZRfWBcCQ)Ei3uY)a%!HObfVzU!*Qg77A%Yvt+^Pk5a{_zl zWxxcTe_ttpKO1BDb^2={A6n5eoau!ppHFvi>5$ry;~|z4DNg$tS?@tn$`*aD0<4K^ zo!)SNe8s;Q-Qjq>mg)XbE5Q1 z6~}SNM6Bf=y?3z2%)VWdI>D-W66%4d*Tg)dzKq+iur05{@2pjHOoJ;;yiA*6N-@Cu zD+gedWH($SDebpH9<_p#pQkhaWaa5hP8%RUaZ6MJRlFRKxjysEzumu;+jGFMi*QBf zxSkh7WhtrZ?0C?P?FqnJ3M`|qqY{Z$eu%I=eQPXbf#s5eT6pOATc#ZQIoP=00h`bn zZ-?&|gE4`vb_mEh%({Ns^#$UpnBbcL;by9fOSF0VOJkeFI$h zV2ogoV}e5MCdKH(Hn?G*tVri04e$?>>94z4lsj%{4c~Qgz#9$kXA`2EV&bOHkvaCkP+~gB)Qz`>DXN%wG@N91l^| zPkfZgv=QWc6H!0z@dWTE#(bXXGl!zZP!|G_=7J@_-_0#&9zjiXsQYjp?GioPeU%V& zd0J5f`Dz{nvK0#!^zom6qFCXd)BPS0u@Py)0QL#9&pX-*DzBPrv~c=zeXI>^UjGU8 zupi4P-zTle-LCzACXa-U;sG*+w)))@)P;T_(&G z>tI%N|HAOL!QFZh`)Pgkz#;6J&wj*TE~iWEJx%Zm7W(dvUh+KyfN&lyed*cd>k7Q= zfOKPSu25}0(zoq$=^_$>x*s6k^YguvHAvsqcw1KZ#Ou%}iaf!g*uZGsz{14J+n$+w zrjF-VKlU$hd3Erb->;gBCB5$r!Om3@dI7hTNSTmRHMkcPYhr*8%CAQ7j_naOpLX<* zE{IB1n3Rn3tNTzfdfnwZ@sQ`~zuf-tj*RQ|L_g)=9sTA*WxW*~Z3$vl$3i#9l6IOx zCj#r5n!cK?^$xOcBJ<5brLFViPEsUn@Gr+H0NOAge5I{RW6gHIQK^uje_`VLu@YQ3 z&tqh|*hdVs!S3Uv&N4=9Yc`E|KB85AT(QJ^Y-xw! zMJDIXBLQ(!(sL923AF3If`x~P2D(HOKNl8D+odZ?Y~#gjQGh`k4Oh%{qM7>7mAeuG zs?QJ6rYq6-GV~Pn@Ud`aCLG^YxH@{P7R^j_I(e`FMdi?72!!*YT9lVp0tkl1V2h(^=OYd0 zO-=i$N2c95HYh5LZ!Bv_=*pEn&q#cRkY&VDOHR;j%Bbe{4WCyn zRa*|LkXFCOUC5}G(G?lwZtqssedL%V^7wT8!A*OEmsK`-?J4u9g{`qy-7kWTmmo1J zlcyaysglxj%2o*!C>zC(M|_(TvQ`a-3ndueN9MLM9DYPZeALac<~Xdf7ZdgIUhF}v zj!=6$l~r|)W@>t}_*xvucJEQUI-{P;b;N>x&Rc6M0tt3RyG?c(Dqw-E19N z0(NI3K6Ko;7|L1W#RW#qR-hqho0CUJ66gk0hP~l+a*=0>x4Og#j#V8-Xrhggn(21- zFT5qv55gv{T?6E|s(E$Vv6Yb=UvRXSPG~CLM~X@n6P3#tT=q~u9`+wq1$csC0I#-b zxj&a)SnKBAi}a`AQAj%r^Lt3#I!%L#^Xmi;=Te+4qyT-UZaMr z*}_`3Z)fAqRpL*X={DL#q&3pXfYJq?w+SS-T-~*!gc5Q>Pj&FXn0AA!e0LQ z8rh)Z{0sE_{;>`ITLP}d)=uUY->G~WnwnZ2`22NbJ^|yXA%I1kHjz8)Nt7Ya_aLwS z>5NWY-)V&OTu=MA2~EovPR$6FO8`1b3ouhs95Sn`j!MM`g1&$g?llBBBoGz>ptrIrRgy_1B|w>4EIL0kz)0L6Vr|pHkAhR39_S}UZ|@u;O(e5gv|3NJ z3w{N4OM(+{5L`oSryz*4aq!6?Vyvxi#EZycmd7%*FDq=Q| zRXmJ|YNNo8F`NsV@1M_rrcOedCv8`{f$r!$ltE$LnHE@dF|if9YI{0{-akk;+eblg zL2!|+kP;FW&l?tmszIiS2~_SRD5!GKL@07u8TvEeq|pkUWNa@bqH?5Lqj=&-qpA-s z+6?;q)01=-MNwmFssYRA+@`t|AwZ4+jE3#$)KA42s7Kkm4}+ig@?{|4VpI{nMG)khVNputlAUx-H+NL zo{VQj)jVMk^dGG~ef36YxO7h=3%Eux}}g-d@SDH%@IpQ@igeXDxCha;Rx!DL+e<|gHa<$LC!pOgXfRs&MifzP;`6HhlCM!I*qm;^$_hYCyl{|J15mF&h zA>!aYLd~6VZpDe^dF|CMn=3tb=r~#MOi@Kto{T(@xb~!cGWcFRV}CYH(ug$0sCBsHS{Z~!4+y0`6#uN ziy31URI;9i87EOUL8@^WWG z%GSPHfu?u-S6l+bnBs!59=i+=Bp70~T#Ti^K8Y`d+bZqlSEKXlP7C7?_uei)AXD%35BLjKVWn(Qp=h@AjbF^#@Yq(Smw4+wASl6RE3FbyLK! z#k%~i2%aaUQ6cMJA=K&I7GmpnHNc-GdMFQ5Pz;0fMQWa^G8VD zoGF(W$d4|0`Wfr%c*NKuQtZ0VdpPs(cpjaAADa$G{m2Koo7w?|x>mNCVgRT0K^E&o zne+3!LZaepKC{qCwo%=%g-!-x>(#_bPmC8Gu@c z?7qQW*LIwa_Uh*p$pzZ`bIXGms{KjLa#QRQ7|7;g4fo>=qAWT=tiytkDW-Lgg@Cr$ zHu)NW>kgJtBsGbHDS9%j53DVqPGH_6QCM+B78C(923i2qv7%h8+~F~TU(6!nfX&c+9imf@gTG|aQw zbP9*B9ekQb=-HZI?tLS4?2=iuc*EwSj4%68_O4a=-${a@c&Vioysnt2(L7`j%JpzC zU9J5Gia;=9!&SsPX75I6fa_$Nx=|Yv{+;ClXsgGS7R>F=`3N|NA3o2g@w9-i#VZT6$Or3fhVS5Yd( z^2SZM>m!6;o-ca9CXo}zN13XJ#{Cz_^0Vg-cuVUi5ZeIq0p56k=A=Go@EEaS%rX>U zT=zpYbO16aR38iG5y89pAAXZPa(E&@F>>#^xHVOTbm=-G*9!m~@*6HK&z4zo))MTP zTTS9Mq)3J{F@#HhZ_Hm0DSV)fjSW;}KeP}rv;dK=k*lhmx98Q%{CqPdVQO?EN%Iz- zp_ALby{qqE1?96&qF-w8Z*Xar$~P+krwSGq`b>z}AFB)9>Z|Z3AILgOxM$H^p#y_-qf%du_oC+Ii-;iP6_3XYHs=+Q zQdcR|)wzsM_92yo3Yk5W#gYZMslVUj=l>glGa<=+ZqNc00!~|;R})7kp4}bH+QN;? zLi1It`iqNUjiUp|LtH@X2lm@PLR0AkYNJn#`lW zSoA_V zbf;wWpD%qzxz~6fx? zKyijR9v^snnqQ+tI`##<<}aK97e$i*xC0+)Y()tm_| z&~otHgVK2y7IM$B;o2bqJfcpiajbiL5u0|MX$QRi3B}8OfZ#;q6Cx$YH(W1f1TlPj zbHZWL;nSEdsXk}nqV-0^%%##!`A=JdK_4@N)ll029EsTOOx^xLC*xu}RkDaOY52{a zpMW`7xAx~sRtF09bFDTGXQ8kI1^8Fsc8~Ii#))`Kp$}7PY5vvGbL9v2fMh3paMoXz z6)wmPH{~#C0i{a62gI@F0jhe_K!$X8+Ro-^kuJB)!bj*r_KBoi?s}rUvU$!vWhW14 zMMyq|uyIVia|?LbGj5zbg!HjF&DzuxOP*i*PAcQ~j`$(~0Yn@D|NBIq@AwHa-_gq{ zm(7AbC*CouhU>00tkeUSx)VolEGVe-0FwKNNJLFBJW2uqy?hDXKRVW6n$R(2DemoD ztXr9RJ5{6q&=SiE++Vgu-bVuUzFAUH9|E&i+Xlt~;j+#rQ5QfX6x0<%wE>?f@QB1< z0}v~Dkl;6YPlVmIel^e4#CANdYXr#N!Lk}-f5Y_8^Auqg4bVU$F-N|GetxeqP~@Wc z;&JVg;4opT_SFQ1Po}f(W&!kGUNAEBkUlF)HmzPQ8 zF53=rdI&v=#)1W}r>e%R&zGsW&-9k$Kk2hjjp`u&7>P8N9?tvx$tYobCpcmuc*}H;e(Fb!psCR&o6dN_MkTn} zj-1b^AdfQY1Rty>`&pe?+usf*-;2%5t2PqQ1QZQ7R2vs^{$7P}8Camb3!z8g)(v_n zg#q->i__iYuK6)Q$reB`g9VoxZhUCecV@T4g~MCdh6)yRZl>(Ab<2^?OB6|V{mIHV zG?J#E8`^?UmdCS1}&XdITx9vuxtCBTX~Z&2@FWMn?NC>8m=_@ZIB%LY-o_o53cSjJ z`+sKXZdCxEOe3u&&$ax7PUCAE-Fh;+g$7>!TsZW%;U2J`zFBp)fhTQapxf%%at8W#JeJ)X8Vtwz?2-;8PCKF(sOh4*4tudj z&-R4{auzw?o7k0}CA-RbO_obeG-FGjj5c@>^!6w{_6C$YA$<$we;XGQ9EgUN*6`-) zd|+aN28DO;T~`vHD{5$mF!YoZw8dC+J5pG`?$jkmgOivD#*MI<_t7sNk8oA+`{+)J z{-H5bcA&;G(Ys%w15vy%X5S78sw3fddOW}N*Ctd9Zrm8oTgHoe%T0jny!1i*O-IzT zXXQc+KNST-Lj`v?i==lCmeI9pRCyO$0xp{{nlFpP2&Z58wa?5?*JP|FItE`3d6}#2 zQpEc22GWY;kGy6UmRn2%q>!$ux!uD4+?4M?4?i@Pw$)#bRMb-dm`REKy5h5E&v2X4 z4qyIUE*H>H2Hx4_ECmA00Ax4O6jgdJwaZ(Tf?-t~9|)$IHPBo|YzyLAip+>vii z5-6d6j3f{Hfg-(AzDw;?*U8%!LeXfv?Jw1-6n<>iC3-!4XTI=PRM#emN@#i6p^?%@{s}3;&S$Y zdDmJtGK1an#?|a>)X~dOrPZbYeaPDwvNFIdWD7RihoOf2pC2R)*br+fZSb&4i9suJ z)#Xmj@?rAr71Jl&tQXMeDo37pW|-nRr>Mc>$CSEk)y82WBpxk1+~kl`z+MJhQDq-+ zAja{TCgnUZK}Xd)u6kTJ!Umx)G ztqb~}z1IdRPs#BQ%${y*ah-!adIPkhzIS{0^iHO4&IJA_AR7-c++XbUshp@1T#nbO z%~U>KvsXMq4$!LweB%GyEWzXt`Wk#2qMWbWy<`v_@CZPShSH_nQF!P z?@X0=7|ujEhqkCzF|dE@O>-dT69uJhSUbMEL6gPZb8jcRII!FQ>m}Zc&V};qgwI~B za4_4g$T$Py%*}q5{l9w2pwlV*E_7(9Dn<+bk5ve7L`C&a$vgCVfEeu0?YN_*UT%&n zIz&>5%nLxV_uvT_VTX+qDQ^6pa_eL*I{QK;vVW}UThsjY{q3TSyQiJYvAPTZuObTH zvhoEMaJnXuo5+0sxtiqRB_Q)`&b`}{3iP)Yvg2&FuO9)B@9~`08O@&qx(Dw@4%yf+ zt6ED9dINNHmzeaER-LcJ3)s5W--X@bcz`sHsD87bk*w~miy57N-WmrmtZT96$A8bJ z9wUV9?FaxK=Hy7m(5aIiuJ%&l{XDTCXhMwZl}@q|>2MyO6VIez~g4 z-Zwn)4WN)8cQN{r_NO4>zXvX-6fFGJK&|z>P!-TTYq-+&>ELKkUK+lGo9oUYiamu1 znxv0WlhMjbAl1G-6o>$fQerhyUJA9Ckst@ElxU`_TX<*azu$U}8XoliMb%2&+a;i< zDzeIMwFA&0Xz~l~{$);Nk?)$9BSfglO;;1hAf8u01gS565T$R2@{k8^nTHNR+k?SH z^soL3ajc_28X6i)1JaDqfPS;OW##-sb-+n;_UC;1DP|?12f}z4j@RmEZi=l#UA$rx zFgzU4Y#BSHY5Ac%`RWbmz2tRJkKwq3bRU5G8(3!p{d};=LAp zt2T;QEmDsL-CqVIpohqRmlWgVfKIR#-LZA)zMalY`hAayr5ZUpa_>DS{{J~W0tyIK zKhshNZP62sxPU8M?T^O2N$yeNOFMVAlq1pzzF1%2I+Q6Tr_#!Xk2?1oGoguQ*e4m) z7g*wPyPK!~3{ngSQnOpH3FMvpIoa9a8Pc&*l9KIkWR1&rGei*j?zHxh|4YDXFiZO7 zC*vmYfFzMqqP$|*J;IzEN7*XUf6WOR$Uy*gUE)p4Z(a|?L=w5|GI_6$2A?QAY738t zW>$?76m#($@?JnGPBB&>bwri~ETV16a3>r3dsK5kI;^b?bd1M#0%(!p&Qw*2`8f0b zx!WVlmepT=!}=v``GUSpRJ3I8?2SX;>AC&}RNs|*G=lao&;y4UQeDkmg%ct)LOi+S zi*Fg;9E2S-xK1#qP4_9SpAs;E!^ zQUek3fG)gV{65>S*XN{z*ekPp@7)H9r1?$9;FB{#iJGq4oOXZB4;lFvK#Ss&pG=J) zF|l+E-G}qTRigP1m3JD__u&22rYvoOi5REl`9ukx$uveZO3WYInEvH1$@gGj8!o4J zmw*sCc5BQ0pE!)jDOvts8=TVvZ9Q`RP;}Q)^{>4P(x9tVT7TvR`fL>y6iB3F8KNU1 zB9yf#NB>cCC$~ldj$OWoFP$a+8vnc~puz}%3p3Oj0|Nh?6sw1iizIE?e-H9U+&vaW zzvJckrGE$Wb9qB!1YKQg+J#lnz`vF?Fk2ik`tmOAPA7*XHC&0}HJq@)*YAr-74Di~ zi;^6hz}tHMHHz2LdZUHf%*H(g>S1yn98=cs0bv!j1i95OiHuZtZiC4h7H|RZ1v-3t zgjKDN;K;pRn4Zt0P=ulotH>M+oXtI&S;as@$ho5VI{}e|1!NXJ1TogDZES8D_NR*4 z9(HqNEpb;-Lq~yQ3i=+;A)TLLI9u}m_SADAaQBcvT%35MPY?MeAljiAyb&Td#SJ*= zHRL#bR~9n1W(MlmJHp-XJcPK!c3G-wJu|)uI1(Z#q@f{06CiyJO+QFMar@ssKA4>q z=R5FM|G=$CmMyp^u=h@6e@sV>`qQX(ENLE}N2fp7AuduKFcz7Q#AzP4t~qsE%=;b( zkqd&6V#xo`_j(4~01&*FR|RgXmX?;<$j&HSp`m*jKZ7sSaVf?KvLa+`>?saYvmy;4 z^{(uC>cSS)SEGo}9gjA%xmR;`be`53J#EtWk{{te!|TCx+N57J2g}8g_q0a}oZY-g zYJNGNa#*^&>bW;9B1Hc5c8`m{a(Kp=)5>I91D+Hp(HQu>aX;@|_{h1hr}?!1Z9kuD zQ%oX#4B+%uH%GaPeVty7KI$7mXX~EZ?#I-LXk@QX=pfN2X>V|hQx=W^_G91@^J?x1DT=|pM zv;7DF7$L<9f(sq@890Q-_r!7+0D%D4T~IE!TA62WUSn6_=JiP2&3LaAR%qIHy-U7R z2`YZ`()0|;)QVSbue3`M*+2yQ(Mm?vVMc+`MDv2{+-n% zma5dG(%u-lB^#c77#*q`6e*rlt#$YL2kVVffnO3a7mTK(U&S3(8Feu&6j;shmNM{( zcglN^j?bR?j!8>*JEy9stmr(D)h;SzsWpwPl;c-dW(wJwdX{ub%fPyk@*vfCZ@Z$K zpG)8jqORmQitC-79}Irem25?jjhry*Q`Yn$(Ip#va&x^qaJ74Dc{12wZ|M@kPtLwO zNm@lTX8A*6hr;^g_olylAWIZPZCKKFKOR1S^?3dB2)H?0j2K-_!Ckkm^!T}h^kGAE zZ>z`V7tAYfT*z*k@$fTbA1LIh-3wKs@3*>KW(?U> z7VTv69ytnPK*!YL>EmU(%e+Z0k|B+{8I*pr76%B&Y}6Ic4ioI>>eqveRZVdI z6U#cyeFXjiHh>aWe!JbpI;D|dVirw(uCVgzZXCO8HStWYTEbzsmDEEK6@2eEgg^q6 zem&z#K{!6+j@-xYU$>#50#i;%pzLq?O+(ANHy6JGpNJrL%^V_K4%4HGsfkEJ(0b(o z4~YFZ2^>E&ZFv-Yt)5kvBAAbh+pumRyeIdsv z_k#bF3+>9&9D-vZ-;ctKvKxET7mK3%mk%R`%nPSHU`WU-td=S_A1Ae2?TL2X56V6y z4o#hBG3fc(?jVK*19oHoo|7ZoEJNRVnqU`d@~nQvYJ<9OcX~H=lxMCj|Gn_g;eHr? zmN62;$bvXgv{)tEkIC|Y;l<~2Dy54zo;in@3+8h`m)ZVt0Rdd-dh&VjI1Q0yyP1FX zM1qtbw>H@1sR_H~BYb#Ho%@V+2<`y=P3624`eR^l~>@@%1y1sk{|2->85> z!S)}gM$9X<*mS=VdKJvX0un|G;tq}&I#S`j$tZ5iZQaJxku?zJJC-9G1eCW3MIq9E)m|iQU?=y37J;}h*uVOoTza!LHGtyp z2lXsNu~K@-ku)Ql;dT}3N{NEl({HENlb6VSa0#&+6G#Q>WEQB0Q`X>I;%s5<7}X`6 z8U-6vFFPf|M4FzK`P!k^ogK`lHvX}3qdBA*f$uf~gOyd|0A{h?@NmwK3VvvY@Pm#Y zkGt`P4?Mv!W=gb>?8((~<=BG2=;v^G{c(7uA%TfWk#fv-uf$Cr=2B<@{0(n~ZekTQ z_RT!q=n{Z`lVpN1RlN}buAl9aBm=o5dFtTRA7HYu@mbF9E&LE7+_0wi{*uT0oqG4x zYqjPD#jV);v6g7w8hk~}1Hi1sJuYU~ew%zR&-n|M{|Hf;+;ovVh`m)}zhO;6b|0|| zItBlUDRR-B?uRD7Evi$6wcZC%HHnop^T=Ou`5D?5BO|Gi(Rw3qVON{tbX|`s)1Gv> zmtY|?%bb|}&6gy-escR7nM5|YN^*#(=W z=r4;Pdbz@O@`$@N@>-}6cQu2|m`MXQk|Q$^q*{h8R;6==4O!4mgiT3VcktM(>s`#@ zTQ2v9H1uELRjKgaW+ZyntLq{s6sac5GxOg%56W}|p`f!F362)w7ORhHQ@QKsnR*<1 zXr|v3Dy`;rr>3F?YhNr~+q8j`Tyj6f9z`0=?nj&_b!SGLZ`k|_)qnX-CLwsrLFli5OYRht>sx{f{R0wn9?&qcET?Vu8yU@6A@>|oo6LNs(<65*(oxs^@d3Fo~ zQjg&pt_iEd*g-sF$J}GwWh60=-!i#fx<-)C0A)UOU0%7L?c=|rJuyAFydt6(v`^zQ6eS4pc6e$3vo(NiA}9c7K3*cal0v)B zV9%}dF0>`6%(O+E?QpI2dDTCNN;)1yLN=sHLsQ8@{f8wV0KZOC%zOWy)4PYLMnDLV z4k$(Dd|kl)AsU3$PG2!4#Pp9fk%M3XH#<@0p@tG$L03HAt*xz$QV!5Mn9RmnO4?{V=H?JB)3RctV=LnqNvzh`Zn}+<5`svP&0B z8}L1}r`I&nk+0bkY6sL94nKMl5<+(op}@{xCtt z*nhnF)azeYtA(DOFy{Gn$|cX9{~|lR_Y+y#&6&8(_Z*EdnO)Qy0iGd$VY=b@>m@3R zRn6H5q$S8{$O_TTOBdCG2ru0mMP_RPOgS)U)D8=fC?VDmn zJ~F04O|r8X!fu1EZT+n~G=e5OIR!ul6pS%c62&iMXtr8_b-6j>dp)dGts z-a&Tf&Ir5(zt+#ZiGQf$sU0^53x2U@-~I7*$GM6cm^4g1{R3+kK)1(PQ7x5uP1Xct3?ftLMFJ zc!Ke-#}N?H0U|2}woq=h=5fn&P7ob@@Heg}VRwo1e>~hZ+1{8zSUXU$X!c=ldh~&j z!}VnAX1lH6m*3KR2ZAlCqXgjJ>Tzin`O=1K3#H6i>uE50K|wULfATj#`h{YDe@15! z6`I~Aq6pCWpz!LQD8(A%+lmc;%Pky?ph{-VIO(eI z4)@S|(18+<$0<*-p-~`q)eL*3!lkcKltw=F#mw!PyVcVr{;v)NHbuFE%678AtAENK z2}UC8@#V0LLXFe+sj$E}eU>G0K@lqf3tQB@jn#ixD{#aX(Apf4WJyq5o=H&{x1`>o9e9#m{f^)Vl`~GKsJODo%khN3T+XZPy1f z6jKd@{@H+nu4B^r1?4G`LZtJ~B1dFRUSi6M}O z_2Bd<6k>U7!N3MUR*NFX=WeZb2)uU}(*2BL2{0j^7m%phfLf3@RBvO?2fZY>vpN)!29H2Wglp6Q)53RWU6Xl7~!L)vSuHW4i1#kyL)E>5% zTLW;XLo=uDA0LI22@?7ou4UKFb^z>0Nl{Use6?bsOxbvL8RJgVU-?60AI2V#dmiO$ zaUEgIBV7QO>zFk#*^vG5NyLya(!QA)2B_D9g8xQ63D4vOuD=3dfZGtm@0zg~FU)S1 z0R8@ms-(SruoG7MJ>bKbwJ3T%{BeByK8IF_KCu{w0(Ug(tU%AQ7rqUx#HLMJ8yjbtGJrej zE08X^?7aSo?xx_<6I~0NCML+MjeD)*@mB4i*J(YvHxIN;{g*`n#H;|__cG-Euvu9L z6kY^)0e-Uq|9T8J|95PB+5}2jQoXu22cJ*RzVDF=l7OAGQF?x2fxj)$mklC9N`i>Z z5CzE3Dgn{moAZNZX26@i<};T2r|#p+1GDSADme#4i5N%O4!RNkE1AbHl>~ zXocFPhjjEGEr5RmY$R9M?d@%500MIcY6j3UmY4`Vzz{e&Tmk(m=n+4IBc^HPdmCdf za44fF;97PI(!DWDgp!i6UE+Z5)G3<X zFQ>4s|Mh+0_MqD2izpEqS^z13&gBceZ0yHwoVC~=<6%k%VKHb?3tW!(lK<-=o(`Pv zE&cjCCPg^TmQYMu+qU~f_1uav3Cf!Qt4ldHDDn?ND8xV7CN>|TU1&+9Nfo$&Nb26;)Zy$R1z%&H9@@UY4@&N!E8Z;(za2{+kx25*NsU*v z!oJz1$@ox;^XUiH8cm^MxRc4v4_^aCg`B2Mi>0a2uxf@G81jVm_bZ2vSfzQ*&^)tW z5scN-(aP5%pVo_xTklAaQU-WSz1y>7cuvp>ab`WW51gEjFt2c&t)g>!(n>U4Xf^hQQLe_S>1c{Q3uME~ z=ZDO*f(}E(vr_c7WYT;fdj;&d6xUWoz?lK9BOejCc& zbcM@+a`W;+{Buu#VuQPNuM*^pndu>Rzm^A*PTV&%O>)|Bm{3XLJ&}*fl!msS$z%96 zOD*^P;|PP^h!cNZ1TC%w6i3M<9%&la4e}o`lnTi6kr5#M z42d5YBr9A){MCufuoyu-FF8qyM$MaJY}&zw5^|~v$X;>A23CrxdY63MK9Cen8QvL?L2NtU5rrMS@ft=`fUu|nFH@BZjBlIi|;pCaY>VdjV59!df?zl&8NWbhA> zi|%Oomnp1=Jm|(NC0rlCF@N8<@tpx4-fL2~q9`&fS}w*jexEU7wL2;{kG;L{gz|i1 zJ(=4`7x9T=7_P=s;NIfjk;^-fuK)}a@zeTQnWpvkq2j-?vWNE#|T=Y#b`nSNZt*R(K;T zO;gu;dc2ilWAxyVi0N;5pVsoix3z1&>?kGxc{Qpz7`Y>hVa%V)s56rUV^oEIe2|K-YNdUm-aCo6Dtk!g94?}Lu1Pp4vYpX54bNm-3zpw zh9`AN|IzQhr}Ejh7n25N_Va~o@y;7G3RKaY+n!L3;udqoX(h&3`76#;n1qE^tpw`c zU4MJhr^KLEGhZ%0gl3l{PK4!};!t$Q4`>RlPEv-NuQHUKIy2A;Cs^ZK{R?U8cXkS* z1CN-UU$=5gmZp13hzu9`vUE`4Rcu_en7MPWy%*X@AzOy|gUh0KhSBG%2<3BqTKg3c z{ArpnU>p7hyTtZAq;Xj4*z|br+vPnGoC|(IM{m81H<~rM z@S*HRHkC9jX6LPHE@H+td{m|McZBE6Mk12k9NU3MIHzlenj8}9I=%@iO!q_O5IZ)m zt$j~$vP_jKRValk3w&|7u@=^E%Zfgj;zpiusi=${jSm_+rl?8{28OHPMM%)m@cUse zSO_8zIuGFPyjT)s>$uXUZteA(EECVwn9L~5QdtR3rkJd8Y*+LD%w^qeHe$*l@;bX} zz}$OE!RR_JdIRz@cSju@XIA^-@xo&%lDQGkW_O&j+c5gA(5s}(du{k3Z!@ZBsj=nb zz->j|h_soV9ouh_&u{u`fmqLE&F0T=R)QHe&JbXOS3omMihs{Nxe^uY>VM8pUXa=S z#|HyRVB3+kfXt|RWc_)ysDeBbHKa#oEPw`?h;|tIrBX>&XL%A$yWN{_-*97|&nR-r zPLktW4pb03Z7=TV% z+5mbz9lL%1A`UOCg1tkq2q`+UABxND=?p+-O|K)QAUr=;eEE{t$HzxeQIQm2k|rg% zY~;M>AbA?_(-8yeM{Bp3h*)%}^y`d_jIjdO>+&nN{^^=sD)1lo*4p9avE#@&~~_PSw(Kg6B7`)=3-Ja+Q42Q$7Rm{mh77My{0rN2|Ve zu=wfsRgq5%@$W1+;?SMw8yNkVs`4rxUWUfjaNL9?@VOx1No>1cCx(KVS>Dpvsycq` z8n&2LX(J(|t#LWQv9UEiwX78H3^s{F>1TO}R(5~Yj?Ga&EaILg{zZz zsXWgA9(}_r?5+43#||gmfH#*~Ew3kn%?Ht6eHgEA;zPJxA(KmK=Tu}{wAXxv$t>TQ zfu(Qzl%R4$4m_E_smg(;cutOlo!5d_*~gSe*sA!#0X#_=@L=24w*TV~oomDv*+|UE znaEFREl(XLA?A%nO7}lETL4}I2?q1!Zq@2jQ_B(5tvWJ3K5d|zkA^DADHXWCTcN*5 z{%q5A>XaAjN5%4~=(p?H!BG|Rsav*dpWQ}_k2^j?uJ3_f#r66?QP%Nqxjh?v5t<86VFd!cg{-e9*hMg7@8vh`rU7UKt6T( z>eHuBWO~b5z*V(B6Llndi0;koATyie*WeCEeB*4)ZlI8ao$bkDE7=(=Y^UF%Ha=6; z>7N((Km#;i41b7HQrpA=RmpaiKoy7j(-lSxq{Rzj%5s;t1nkM#(7?x zPc{B`a|n-ob#VbAX_nX{lbCglF3osZu%O;>rpoa*%JXUbqPArg<95?3B}3YtXvo!| z9~sZ%X!JTQLUG2f1>)$R4g%;0kN zURA?c&Wp)Q#6DJ5hwrTOzW4(b;2w>wAzlSc z_A=J`$6jwVc%^q-jeVv(cH9P0X(p3Q<6fHHtR)HZ;fXBA8!0?rDnCgv9dg>msntPL zV4q}lFM081Sd$6M7nMhf{j4G`VMsOV*qF>R1yMa~;>_%ELaB2o0hxXI+4}>bWmntd zuF{PA3iqoECtjwFDU=kQe*rM;Vv#4k+mvyFKB^&zeW%L2!@)yvPMqPGn zC)RS9=T(}sTMMpn8_>>5ktQBSnMh9Z#pT#6(k}}Q3AnH%61bf~mG`N9L|4+_UFnNc z5fZu zFZtwt)IcUt?mSg_gCs~jY~J_Og3^alE{-U7AqOGk#gy@98zuR#k7R-NaxX0vOx$@4 zKvrYYg{GO(!5MsN1phGK_Tmg3<8dF_ivWI5$J0t)HqsQtkn~zk9nz%mBqv6xwI7uD zWrXMHG$R_ssT<{7W92Yh`EkkB)$Z>DF#GI6#q4q)!o@4GPigCscTzTZd46?vA_u_Rvw!6H+fI+igKzDhTwjN>)Rij%u^|E3`tgdRogIe6{YJ_hlA~%Q4R7)p^4e!9uy3>fv*}+Fh z&LDIgG|*A(7k;#3z#(O}E2sI#X~pVva^7ByHgu=}a6FIWP85KtQdeO$j^BZPNFN)4 zf*>`3MzM^K19ZSte{MamsekyNp`nczp%xLAvXQDwX}QE>m=Gs;anpdTzBgX%4>XBA zCx{&;g01mHVqG3}oED(6-gnB^H`T1XZ`mhPsT$wkt|Qt6O33iZgo#A(#^}M?OEuWSFu4oAo{)|Xtu{VSXrah^elKJm>%N@y z6_0_o(G4H!dp;*Co&!DkjyTxjulS_Jlle+M2HM70r1#AF=4c*m4p(h#@`TT8=+Uwo z-aZw-r8S#^%cMV9ZfjYIORMp}+yc*E>_o6ot6{7*w7P>*^|9j^4C9TYRXOF@Vp;LMG7%ycKNxBR)GBr( z3mtsJV!yUGsihgydLH`3w)> z()z*G0(*U>jOcnzoX91Nk(>y!3tXb2sH8-;TYD&XAe+Q;R|f~UsZj8){ZPSQ8Rn_WFu6J~;XAp`x>x$>%$-M5iB z#WRYgAzvlAnMF2XyA^#yPvdzU+vqBV9LYMBr8hb3Eu)b%s{>%Eg_3e(`c@m;&oyX0 z8iK~tyEMHIu5`%Eb1#P;zsjxV>zryfnHci7!;%0fGT#UsQpckZ%IK|A%uGFL%R9wQ z>k#6U+%Vp_?#?_^1EL?nwJx^t{0+S6|KsW%{PGOjKj5W>RlBpzWxHh?cecIUaxE^m zY};DK7ME??Hs7n~_dM_C{k;D{UH5gJ=W%>VP%6@KXt7;q=f5=b6MqJhE$fi&p)@iS zn)*-6czX|*ZCSOvt^CXn#5q2R%74D}j#$aww39=T#(Edv)VZG#`nj^m5EBp zWxDuAe_AH-8MdYg2Ea6<1HXb#Z~c!iW0#aAUnKdw09GP9TF}(Az-yN^3&mEoC-xco z>upVRO0YVBJ3C)82Gjl@zBw;Jj2k(q-uVb_1|U~CvH=WQwSjuesoVB3*#8$Z>yH+M z!^t>gBS_PPXtd(&~`2e zP&yqvt&GdiyyHw*@e8)vc0e-LraD^94(V1Y9e}Xqp`*p1;pfcbDE)5wQcGDrsV!U2 zoQFd$n*iPgB(B7GV4r5tC?A)u=eR75-Kb{ty}vV;;Sp1`@|J64vW@zPD18VkIL&s4 z*NJ3)Q^&s8YO4eiu3oQy6%JAWzf8A$TQK?F1lJ3EfDG#(c#geu2vdRst=n!C{WUy`FlD7&morn2o)dP-K&sRsNG z=SoHPI$->7$qIz7*Hq?;*p<0p*v`Yub5Q*t_RPG6Im2*$v_VGz6=F%RliN&vG}k8^ z1i~nTaKKUgL&G98OK86cS9E`D;V{f6H&b0V$-?ziHQKEopp zEj4(Of8rsFIrZN!g|xtOlxu)U)%w^vCH+>WREn8 z=Env|2qghxzxql1(J4U^5<&!kDeg<#U~FSO^M3I>)vxHb8K>U&2L*@_aB*?Bf5|Y! z0%mxb|I!?B!^6YVTIA~gqb2}#1)%~l8XGZ%9(~SQWU!)fen}&aTzoq9O;u6~NWyLX z#)vISd9E05<%r&bWk+bMNNqdbinUnYq#&^%@|T>wvlV>DY0*N7L%sWCp{kHc!C|$C z;tZb>)@`IvwrY(EtL6>s?QuECKWM}y4t2}fhxZBGHh$$H1(2k9*k2p48^>fWOw=~O-t_A^74{N zf)h+C>DL(t?M((2?h1E}XmJFKTg%U)8Y5sZ$&6itjBfD++aG2B-x!rMh@KyBfBu}Y zVvmKw#WQFzL^`(?OmkQmAF%%azL(T=bZliur>F88;Hb6&pk7RhG>0GazlNA!DP6ZG zOFQoxh{%oiQOopVvv0If+k8B#@sE7)ntAp^72(ou@I?ar4vvGYE=$N zR!*fHO}cd?-(9x=4Nm7G1>LPn`LEf!Q zV{BZujY8EK7QY*W$X5a+{pjHG7~p!5;X3GZTuq7=M;3YV_7FTi^ zz@ZPRZUzRW3vr!cad8WZz!AszJJ>D5tu9#!DKFYuxdvx}A1rPoq&M9w2X&9K|2#ca zozyZw>M*3npKrySO6|)~1dhhXX+}@q^?lZuk6>%H&mm8{2 zsudQevViM%iym!E_hHRn)9|gbqnR*)hXI3zKc={X5kkbcqWS)2wZDbS>HQROSv6}8 zBlzi`$QKC8MbIj24*Vq30pOM?y$Xt;qFr|&;s){m{~Ym=L!cr3U-UP($f>gD*dmaB z{rANDC$(Nul=-Wysza;(&-8y0zJJZ2(bWF})XMQ6az#i&%~FP^ejXT$wJum6JR`>` zXqn;Cm~wd)UZ_Tqp;b<^h31~H3?@WBtJs2IBq-B!xJPBJ&wl6}_=z<1ZH3qjW-i|u}^2toK=EIH8;PnvNnIw7ZO82Nd` z4kMOzMmX z1_|y5`DsN{Dx~gc?&6p_s)R4Qi_fdV7P;1{!&}W1oUyRpne96UhWz$VB^p zt~%7V7WHk{sJYIhOuEyDk4;gkf%L%Xx@T))h4Ktj_g{X@k%H)FU`iuP7fA_}Kbl*z z>tt`Or_W$Rtf=c2!<_2C)vXMet>Ase3JZ!PbFtbbUs%-rvNQj!taGr*!q&bV)8I6r zy*2iLXE9x+PN)B`%aZ@3@5!IZ4-=|E8jaAO;E$GUHZ%??JK|b2-=qK|9pbSK38sn0{BA~6h)GR(_WJnqmZn!SJ*-$8rc7Q zse+dvKs7FK|L5~I5cZXHdFl87REv^RP*D7<`!E_0ExDczeQjQAz+^$wRgWNxg!owJ zMh=bH?q&f`|iUsYJy`7;m!4JK3ipl1e1ZOwx(ZT;q# z+>^mzQSbjQ6Z>ZoZqN3&Lygt8e;;!3_i|Eu?8Xz2COfG?Ub~)_hbOETvo@rzqt?Ma z#F<+$0d+oM*f6tCdugdOhwUPHDy+YJmJiXz}O zdHQX;84N1L>CaJAB;9~x`HW^kOa>C-|Ft3VP%&cG^BF_oX74w3YGI%-b+@^0s=d%JcA;Frbc zgL;KlgS(u(LfNUhl3r}d8JVSeJS_gj%c)q7B^|kmiJmg2o<=bsVjQP-w6nK~ z?`1%2q{p>=0DY!>{3DkVIC)zBwi!eKKIi+xiF`Vqp`7>?;fMLB^h}K1rw~iVh%;K6 z!APtnB8ZL%xdR3h^!KtmdrbuYGVytgJ<;#`6A5Wz5hRs}r?(jR=1$!~WQc z@2mRHg?r7&=~~bwfc;Ny2Q)`7CSfjA@T3z8F-YDTv|7;kLC)>s*hqp*U%8J&HMiEt zVUq6{j#)X{@vm%Ij4l#K30Njz|6m?Dg-?b4)_UwjbE3Q2k#Sk#nEE~xCh7MYm3S)u zMVhEBD~US)HtCtzwn*T972p|iSHPd~fzHmNoe+WNocP20R2bzG%*j#;Hj@qdSj_vqi&Ir)Hg9y^O*`2CxvA=%~F# z_K7C^(I<0ikEZ_6TUR&3+0|9rjk6Zc)6?Yc)XLrM#_Hd{QD$Lj1%+ttD7&)mfUUA7 zEe#C|JDL_u3=EvS=v43NjX}W6ZNClOCp^ErQ59FW&Jwv1jgU&%B*-4EdL=SLQo8e; z>S87Rq9j~Z@RmkQQz}x2fGmfVDrm`2iUgSp^QX)%e$TqZ8#hpPgcGdfVm?L~KaVwp zshtPi&CFI(dp4rf%b`0!Dc4wn#sT?<1&tX}Zk|fr_2yJarL?BDy+|4XMW7l6dCCDK z$LVS(A@#zw5M-R_flvTrH}9xW!xorIv6e|j56l4Y@d#~tq4_5lJfXb@;&ct&%vHkX zP(90E2JCdFYNXf-1?MUwivX8?e7R+9hjp2y78nNW7@KWNS&8eDW@QU9{nH%cJmGdt zskI9yHoMs3u-HB#4EfN>$sA0{flZ>W4_mXaY}fw{^OsEhC6$#NkcXw$uVA~Rb3x9q&^W|Jn1FDJB_fHDb?0%hjpLvFGlde(vZ^;PyN*Y_fU6}fmkImje z-PL^k9Q}VuPxj95fgo~ZC5ww%&8IC#+wXjT59!|C%O%c=%}-!8 z==%?6%V^i+J*9L3&Jil#3SCC^rZJ|gBdP1Za;aamd1*~Cmn(p4g(bJ9MH9^CGuAl~ z|4?Skj&uQa*fn#kPPK_#KK@U2f5gG0yW-OwJ+$VCI#O5U8hUxWKU|4W)2;DE;P;G5 zp(oV57#<7i&)(SywCaP6fciAf_-24CdH~3Zdhw5}YTm`2SOT8kPEzM{!83qDCcc-s zUjpc4-*d=~f8;|Tba1HP+GjlxXOGNVY|uDSaZ0QQV%Oz=@@s(b2(@mpLIEn*JpAu~ zdsSSKpr`vkSt$X6f-8lK*K)>7(<3DlctGKIM?}cdwPL}QUX#KMj7OWezFKLE%#CZY z1_(nFtWi-_#d)OJ>Y6bJ@dJ*3VQMuHh<%e--%SzYc zrZzFeV^oz?#U@L;2)CmWMd&IL5#r~q^(>oef{{Y5Dq zNyZKE!~?SjYMaDU>1+Ksu^5oc;& zCoFqwVHXNaxo)lAKBi=HxZ z_`dNN+}lSMeG=#ig4!0_IN5*rjD+D!TsAW+EzRad!vlPOdXS5qT(NpKFIJgBDx4_* z)S>IL(G&^t@E-62U#Ln*Of%|9v7SzAnN(%Qu&e1++x{xF>x?(wy*YBMuwEvMy9#@1 zu=VB4jak%JmZ;81RQr!D0yw*cFzGai0TCUWDRu}CP%@uM{U7soig{-2J9?K}@aneW z0z`fu6of1WRmF8VkY(rM$vj2loo+djwiohTw^)^61A|sq4Mp~Y%j21xK-aiuoJ*0r z8q2?j z_A~3S$vcg#Be@`$C|}g?8$npxW%@6r4p|I<4+KC4U&c5eLILa10DQS_>nxkk70Hll z(3FY-Ke(P;ASJ{nORc|r6$r$$^T7f)9){a5RIXJk@puYfPGzl7IGwj1rYq>h49n~+ zORYDdP>&A8XA-l-Tu8`l0dtOt_8x=E@6PsCgo5jxzMrK9SBvqMY|BY57G2u`p7k8_ z)MAxhWVKd^T^3C$jV|h`;!1KLC7ERy<(Ys&xkIZU!IF^@+tTWjRv+&_6aBnHBsn@BzpV8C>bK#o*5+z zwgxo$rJ78Z?XuG@t-+E^TT&Q1-(7Wdv<*Hx*P)?1q1OykuH2#L(J>kueu=`f3G1*>G|&QV5~ZKiHvc_+?D zI^P+u^bEuzre%^6$aJQrbZ<~h)0-DR=MkbMlanYiXIhFE0n!reRuK_GUHaDsN2lVD zoFGn*l%wC{AlN`>V~BMET1XTwJ(ZupN%x!RbVhQTS=R5Z@2O*2cvfsPyRfbU_oy{l_|^B+y{wY3T>R-zjsT{qzHMar>x{h z<^s3RK9iFh6Nd7>v3kN=xHhW=0&cS2w(No=t zXgWXnM)}P+{d^w>@i|(z-MuFl2x4UwmYs9gCfldr(rD~Ur|OXzlrX+55v!T;vdEIr zj39&6tyl+7peC}jM}SkK0cxRuXy~i^w>{4hl^`c4$et-_HcMQn{)5rg6-TWJlZAN= zTKbIk^FOn=RHd0RVzanhs&yxtAZjSoA4{x;a@lliNNyz@RgP&+Fmyuy`fJiiHqG+5 z!B8wR?8<^-s}3EG3)^c9RJpO!YH)SNAPL2vg5#MtURR{t z52FmJB#bA^3^T8oDe>x;u~<6|hqjJp528x10o)(&ECRUe$oUg@H=mC>U(5bwOb~fB zTy4Z6zZC2xYTGeqoqON4t|iDYG>fXr0`M8Y_&N%pav4E-cXAP3Ks0StQ)ENJ0k?)< zG7aj>2NeSGRO`E^wKqL^-V?S7eSBDJe2vwrw^vm-zWJ9|iZ|F6gS$0}#-k;Dq9e~o z{-^JV7=}+edER%hiAQ(bl6P)#g!fI~^xFj%FJC#=yj1i&4k+9o4~pb8+srVmKDLK# zbbDKH2g;7-1tFz$^M9(FXZxkR@f#|#^jgH)mUMEhzr-eI`UP)s)!0wuyNs%cf+)B>w#nJ+Y7juHy2p2Gmf;0;$i>?~{4DinmC zLG|SQDtIU2HzHhD$^qB1bBc?p!tvCa*>g6AE1zwxdeCC1PCc-{bR+Vs{aA0D_e$ zvzhs5axt;6h5!}G=dj{0m%Z5;wKG3UM@s;!%fr|ken&wOu3UD41Wm3UFm2{O6a&d{ z+n-{GB&8s6*&YADU?ppy*kYFR(<{60k3~Gb9L#mTHt^LM1r0af*Vzwh%34{tuf-^U` zff~4itR;K^^;}oVGDdw6bwkQ0D2rT%(1rwJx=BCcZIonil*zl-%icQ_g`#$;oh2m| zgwe%Nzv*C}r*Z1bputNmBgd>aZnYbxg089W3avll;l#tTBAlK2uvgv(nl^0j1-WUX zKxOl}h8&tGd%!rF#CC>pTh>(wOEBO!%5nKlZ#N#c6h)3C7B#lfdn#`Fu3H?PBw}c< zC6t*z5BYyX8gv2>7(b;9Pd)CxuOgxHmAR@)Y~+28tY1!6m2PtI6e|H3<-QZb-f>jz*pEo?eq zHX(;pNsN+k!$piR#7xOh4d~C>V#4AVr-FHKcW!CIJjw}GIx3NJQpe$Fx(@>8aenb( ziAtDcCkmRVl3YTsecw79R+cc&1~3+#srfIM(L&Y3oGE!6&r3a21or;Hy_PNmdxcq) zXKcsuo!?f1ho?VWis2PtT|hFFO~Ex7x0_OuX5%|4F|!9hD<}0D>eMCJ=gW^J+w{yj zYp2d{WRBQ>kF+=veD)JZ;;Obq$0=HbqcuVr;x;ZEDAhfal2CwKT3TnbMYGLK2nhyT zlMEhWN4wYw+Z|ev6>lmJx>}OcM{YGZ5vlOa;2poVZ!i`XdvVua$g>H(YVd;?h+3E;VzCOCPu6VE<;V;fm+wKwdPCgu0zw)IT!@ zT3R&rp5g^FE{PBOV-JU`YxVBo7A7mBgSyF1iSdzyv{<9fqFx=J_ky%H#N`YG0B+9z z6^+aD+T@GuSbV3=GVz{5GHDg34N6th_RVdi#fOA135l3nqTcPMaVVd=FU;T)I2KSe zL(CLlE=8{dB9dE30L@T=$RTP*p;Fw+tYOcTut{>qQpZaCj9afqgp(@FO!QV;mD;z& zB)8vEPF4Dpd0Auexkmr|6`u&9 ztVSiD>}IHY)ac*lCcW?F#X2ucg|CkVSFM>l)*4_Ox5w~SQJn`+M?y{pPMAj;NNw1IPpIlIu*+*CDhBb|L=p`QN5uQ}eN+ zrU=m?-@!fZ(VIDa0qXuOp-0=Iiq^@nG&6*~~S-BorjzO2rmTU8P#P_P= zQliV^rc%yGgz>&$+=CoW+wCIZ6T#q73E#q_@GYL{b`J7sjUr^O>$KF={KDVJC@_)t ziZ!}Ac8%ys@zUIz+wuZWI#YrVdAr#>V)$mC-rp2|l;jv*X%8|XcgGdp+M+t8*~XLD zvLbIC8j+=q#o=JI26$v}h-wh6+`kSUQQLdFI{Z&yba_+avk4Td*#d9h}qdwWOp=36KY&$r4Ro1 zlv}S}{CZzTp>cIdzOh3~&`oNS{LAB5k)T#raodzsnV@!>_Kfzc`@b^Pi1`XWBlpT3{Q*U8yixu;9Zmm;R3MjWFg|9V5q^v@Y$W&ELD%8 zTd^65YwJpA3G(uijoOtCj9LZi)R}opd!Ju1)8d?f)}4b0;!M`k$vmZhttaj6%;l3J zHJy?wNzh*uH2(G5@5HNS((>||5ougvm!A+|Ge;uQRbTNJ+!EXsAfd>Z@+`__8S%+{ zw%t3FTEXP>Ghv&y$t6{tz|I7CsajH!`3OHZQeQ+qnlKz2VyurXKsVC`T++ zza%IR(isPno0dl)nMnR3nSOElm#$;dF<>7gtfTy;xzJvuP?=nWtbm)1HuZV!Y>>yz zZP7E!dvxLIwc^Ts?CJDQ_YAkg`poUV!koWMd7aQegt*bJH(W4gG|Ru&LQ1>Zr-Z$% zt#w3$m-GBVYe=(Hjarw%UZR?(+O>iR@#Jk4xwu7rUD=?(khzt;DT<@4$&)Glt*8sK zArY^o({<`mFqD4lx$+garwrvjkUpTg%_j#;ufly!)kdn`6UE?H)I^9o|p4 ztjM&Xf_(7jg1bbMn<WNrFv*66i=*Bkz^e-(Y0RWM{vXn@;Bgb4o4n~?2?OJ>i)mRWFG8OtmGopK3Z zBZMT%ZUKL|ivW&FyAhg2jF^onFw;7;?gP^7@bAd3utQv)z=S6GnRC;}Bd#AbkTxkS z{&HHxzaRGmi7F(Ih;7@6(0``Oqe4jdtr^aQC7k4&!M2V)XX2_=*wS)V)Jppk<9gMv z1dPebf@!c+= z?c&0abiEH@ew-#cE-il~M&1%}F=lGZYS|J<+-6vO)<$#hClH5uK_bY#_A)jX@PnlDKX>& z{C&#m_my>kNMDQ^H*)KgwBrk!;dm)U&$4f+d3ASF{|{KAY+54GI?HhZYAu zyEkV@-K%o}l}yx%JZAnBtL$?+#!w#-?c?~`fn;(^vRn^6#4ABT)8CRlUR(XqjR0-U z)5-ZYYL-+{6;jXQ>L|A`?`ks6k4|~2PFJ;b8`LF{!9x(&%`?+%@DmJt3GwIw@FSyq zSF%*On|nS3F(jx;DwC*#s?eJfer}?ejFdf$JHt|6(zOGIzqCu!K$6CsLQB8y1n{g3 zej#b_!_*|;+Blu9NUOW&1KN*lri+#AEHogB3XYjrJCTXLF4L$M8`J@%Z_kCJX`GCv zJ4$^ELVh8lKRnXw^7yajgdyF1NFUQ>pqn}jU-DvJp!c0`@9Iou6E&-Oo%apaysjcw z9Qp}dr{p+$%_VJFXmi>`1)=|<+K=`5qsUZ#{KlVDcB9@dCJ5~q=NC9lee%`qREJ7* z6YB;L{?(Xgy7vu!WTh|kr7Yd&eGy=o7W$sg4C5Edl5 z1fHcOM>>83)n`;)_SSFOp)Yj3!=jLIyPa>Zp3320y&s*aa$kX#6%M-d5RcR5JxX?8 zQ%c~8Xh0VH_z8A=Bt*Ucwv2!82nIo*fc$kxiAmUnt$nX2BxXxgsI;pM{Obst0HlGm zM|NywB$d7H?Rih&Hz1pZWfiHcWzcPz$I|zT%?tvUOlJCJrHf#eSgxsx(PRfslNwG* zX$pUs!{mNJO{X})mSNwvRnh%l763^3<%KTszBe*}Q8oC=7=9?U5Ku*+b4q0}0)L!1 zbdwtsiZq{hexcHh5lvXDFH3X654cc2xNQ&we2F3M6VMq01bp%`?&~hui~;=|eOjNH zav(pSBA)3t+GS)ojdI@ts+N$F8rPqK&X9V73G<)~l|sUV=xJG7?gU;!Xb!t&Y7%xr zVpihF4A;dkmcoajC}ial(S&`_1y!A|Ehj+8GLE367&-(BHJyKj_V15(G1uPfRv0Ne!b+35_?1R3a@>|&euoldTJbZI{wN> z%O6pUc0fT;2282%x$R1eOKNS*4!={lUVq3*?7e8Y2YthdVRg?T=It{+!vkpxH-gV9_CSk z7A0&z*zG>CKUR!}3()PbLzngwFD*PhHB z02Ahc>V!QVhz+w^>WwhkN+unZ_eu{AkL&$ha+F3V4x4!cpvmPI@U$!|`5a`pkWhcc zJgSpr|H^Xc!{IO+#^&9Q5jj3-T>A~gg%k>*^%lXY>$w;31LLsWcbr$fH-HuIr!p+~ zg$7MtZ|cTc=3Uq74Q}0szJHaGj2xxbj-vFi5Xgvf9+>i9>G1aS1fn5q0mI-ZrdMeQ zT&N%yx&6r-C~~uR)8HT z*zCB2Y8Lyr^sN(zkspmpzWzPu&JO5&h}S9++sZZuu7?YfuJ(Xl0fk1&uhumh!XQbRFcT0vN^~AsTDt>Vk+!1 z)1=}koA<(CiM+;7+wb)55CektfaE$a<#JstFG%6NtF@KH3bt z^R`L4t~Gm^o}=*j`tOLu6q>!t;Q2WlUXD__v9$g5gqTk zA5?_L&B0WEW#_Ah8$lWn4D-%`Rr+8F_AW?L;~5ve^74(Zp*PX9XDGeVh2A3f1|BGd{<#I_O1<@ zCh~dyL+Nww-yqPeGXJDr!Q*nWSD<~|c^29D`y@)if;FB-X^=x&LXO&)B2yO{`?Led zm!^t0G96@vp3Mb_8ka>xC-r9_-Cthgnt+|J$_QGbND446kwOa1w*gHF<-$P-^27v8 z27ck;IR*vN2|Afg)%ZNl#rzjNXrrVU>X4yj#}Y(;f1qbo6ak@@75bg4IIAS9%DWd^ z{k$lcd3=;pqQ|0&rq^=4VHl0HSUv|y^xC^U8gy16pNZ^%u=GMSqc5LwX%g!+)=7Iv z7YSXamF(<@2FIShI#e6ESD~PI<97#+>)c*`$ve9hu?G{ZkX+vm1frsBpqg1t| zNjv|tb_ytuzC&fRnP;*F2u}}HwF2O}|_u3q2ONr2* ziY_w&lq>dCcl3Nf_ALV5^lCJ=yJe@b(BuQ^OlIR?G>P^Eo`aE0{w0u+181P$PsMON znH~kNq)Y%hx&<=*n??=9r-`*(_s9Rd*Q5a{g@%qXAp z`?-M|y)YaS(li87g+?YI@2MQMr8G5x=29y@Uh;i=S#d%51m3;$hdNLcA9MvCR?Ais za+j40P`T%-dH#HQgq>>6(&(ftS#TE<+{K0?Mzljn!Jh<4BXDzzzi*qZ{v#6#24z4& zP}m9xl)ljvwsLJKvO?p9V9XyRWp_18!Dn6ls$8Uybt-;;P8xVbu1AdyOeK!tA8?I; z*L9{$U9)7eAomA@c4b?|v#I+u*9A`##W`9TF=Vsohap+BJpK1!pyl~tFDt_VcPwuI zOPh8MHwj!Kz4k1ieB-2w_-#EmdLR#^Kez}}e)Oh;OaE%H9o)MQ9GXWw=2WuDpg8e> zCsH~A5vbY1eLjuCOz+zT2BJ-pFy-GtpRjlWc%Y@r^BlFN;O z#@D}0l@Q3h$4r3vq_j>)O#3f8#KEIthnKr2ptyRGFjorSq4m)~ar726F#92o_|lZf zB8;zpl>;&A`?R!nx%^GJ3ivaF#ibryN8w9~*Qrm4eC~5HzHk0K4Ua3^B+*yJN1U4K zI)AOyZRLqOdNx~-dQ+q6t|wa$ny#l!MnK1cv|4L2P$k8Y1fK6l4lU-eV|szGSkcvz zw)u6m1f{Qta>luEFu(-0Oxo3|TB5x4oKIP|TOeb6kLo?Tf74k}mjMMx`f~y)=14hl zT$Bk(L6ILs7HiT)p(`}&3Jt$#0Yly%S-dw~fgYV$Qv`(pcbEY;MKu={e>pb_SvZ<7 zy#@|*K-W+m$Uo;P$KUXVZUfRq@Oy!m#;?cNW#9l!!P^;bh@sHx+Qjtd^5qLO3qB7? zr1#~4n+R>1*xVMNn#gjJmh5dy-B9N$@2!GDsxlabI4ATx-hejqQPen`Ed|S1h!RKp z-NmN9{Y}CW!o!j3YNX<%0NyGwNK|E~vY9Q@SRUY>-&2Udf)Bo8<&zfzW(^7W{4Rlg zJ50-?EfPU@q}0Uka1Vt1jX2x{bgrQVHZ?sz<9*uh zB+drI-0Z%{e)dJ@D(v-o0OAMYLsP5hfyZ~^felK#_~}2!2!nDC-4=5wV4a~0O`dP2 z?pexFgLW=##YYrqJf_PWCr3;uOvAbe_(JBeGebI=e-{6<6WgJJJP`3CDM{n_Chg&m zY~vnNp<72|)zJxyS@Hz)3X4XdR;6b-gvlu7%z+d8l{I@TOF&@9)bu+C+DCpMHq`D% zrYhEe)1TZ6plITYssmu&ISL-fI?RV8-RiDy(t=ehy6|yb2CTplQaPv;xtM+hUEO>l zhTLJ=P~vQR9s}?sH^5bHUpU0})rTyKYco{m+g|#i~E4fWiGDV(LrCCR~X#^=9|cA6O!1vhT^&Z0foq1uAK! zbfhuTkZs1JS)7aqVqG+4PIGl9D~)=MNO-enF>iA!MH)vO{aQ27pHKE$xE|`p%1zK| z>j)5%atUOshi~xmN&#g}?7q$u&|iTT>yLuxL~N*s7DwW;)13Dw456I6`{)1;VGYx>GZ4@f=9nT8Rxf2Zu5P?#n`NcTcV z6L}$NGl^K!0EGL6UjHwGHe)XqFwqkF18rxpi8l)sRpfKJAe>^>%;T_NE`$Tyz){uV(=BLGMPa-&R)Jz+s!xJm|)Dy#`+vY*+ z$E^KxCnl%6{aCW&`K?9mlF22?Dk<+fE|Q#K13hh$=#O_)A~X`|ag!1@XG74JGvWggu~4im@9*U1#H&)A@LQf)FS|L9CQJ4Et)(^?}oP89>y( zO%*9L{t1B9F0UIcsGJ_;MgfLmD<1CeQK|}rp^w)G#z1#$1bT0C#e3x@0)6ItW~0}b zRZkD=x!<=nM7owRI>=tqu5LCVVXGP@v*CZs-Ck+^%KJdEL`xF;bIAp23oyv{Ii_yD zZCVLL&)<&$Ri!FH*=+jgoVF?_Q8~E9s841m32B za{yT2vdljPxU>7b*~%#&X~z$P&`_{|ZNjGiU^ATYcZo{T;z3asVZA0&D{$ARugNa6 z6W0=WUrz+L@)9+T-I zW6(1_sNQTW)pDvM)rvwou|5ED!nLaX&fy2S@Zsz_;|f$9CiC&@+w0leGLsvfvhVYS z#2g1e^rfRIDezs0VuiF!m#Fk3MP~s+9bTlM4kgrPM)Dn81gJXHq#hDzdW_{Jon8bbAQH#_S?mw$e5k^E`KP3TA*RH`@wFf`?6~==^x@twF}^*{R49gi0qoZ zR^a~#n5DmCCIM#}ww*&2D45LXBz!=LMsP2S+SGA3Ho5PMBvcJ*60E+@LjhX6gK>AL z-f2?PtFVE|CCz0|GIZn)P)6?N9{7Y6`RS&Q6hkdvd;H7@$Sr61H2C)k@9%G4tO9u( zl|pzl%BB`(qd=*cV)gnpD9cz*Q|zx^-{)^{T(&enK%~0KWHkyDy4ax&(2yiBa<@xg zb2&iluXXwkYTwmQ$vX+`YIqhY>#Z}vSgf=(v??*xM{c|_wqO5RCJ)?*A8BnHSHl_10pR!Ht`BHUDZC&D`&gGN~bFoo}l@&D+SBu;6lyfSqCGN5Pjq^`=IVbJ3K_T?|o0MonF>0la1vz9gcu7a@*aWCe%BpDA5mvUlEc zzS_{vgwV9t4+bT^Ynkfd=nfF`@chA;NNzjle*{RSd3Am7ox$+)pG;CKSssU9_K4Ci zjS27$I=CFS2SRn$KhjcKle1ZjchztKZBHwE&u`<-Z~$^Y%-dsOyv&&^Ro&--rS^^} z8@>#tbJe3*N+5*xSLez%dBDweVDB>1%(aSkm0}sD?)|VB`y6{Y{d!Cm!!B%996DI7 z7kpPJlC2}~_UzQB&BFF=by@em$-?DmR?f(Z$E*35#z%qcRxV+hZlxwA3YK$EGSRx! zTVbnuuGqnWA-8>|EXfNN+s?pgS!?D5PCaP039U9sGjSdtjY6#P?gRiTnmFyf&5x6> z1+s@obfir;qv?KB(2@qRAp~J&y^3I6r*> zP^o21HY^AvV@`~jfgK@+5c*4_!}V-+1t)pp6fQzzbGM4k z3#yJUkY5%kl1(wvxCs6fniksxBJxLrKuh`vmkBo*8>pJ~^#^+!D7cxEj0UYbHweBQ z)cNHIK%w@b&w$Slv!*A6H?ah6_hAW3D9zQF`+hwjg9Jp%a1xkZN(`wj>x9_wFj{Id2H`i@Qquez=acv>Y~ zyF*ccFP7ymky3q{b^g`-n8>%bKvlx7CaDmomdrIyR2_S*99M<=^zOCeoNn==%&7)gxdbAA710r76Rje*Q+H%y%+|4Eaj9yTtEX zQEl~}&9LHxEW&~Ttf`{JxWJ7e4MS?4?*{?d{j7Ni^Qz(voSADG^T7psrC{2~oU5TE zMknhYxu_&+B^FS{Z@JI`_t(eX7L)4ul@c4`L)(Q!6XM-Vug)*n+zk|<$5%wmzqT*rA!0UYTL@OW{iL_m9t?Ah&@KeP0&AwOK z;ScD#LQ1UKI1C|DgY09_m{L|KS4b(w%Zc?ng5bd}q5VO|^XZ}+zT}y(S|hRth6J+_ zHXa5GB6MzIRmMR^P>{Me72~ZE`cM^EFWovCBTS7PC<}zQ^E0ZsqA(>{m7hpSpQHvY zKk3jTexmb!$T$XggNa`=HTa}47s53BUqg$MecS+aBc-oM<>^8=2&0tJRMgG?L)2G5MfpAN%eu%SC|x48q@d`+*+u(3ox5zqO9f^CNC;EdxVRhnzz(}TU_s-~d{ z*?KMhxB>QOwa3%%w^0J7CH$R!VXWQWtNM5*Aj^7saBhuv(w7?9gf<8!FTXq9-g>7k z9u`mvl8zxAmpN3T=u}~?7DR*_HBR!h!Txv5lUoLA_pqn~n{8S8gl&t(oK6neBoVgS zvs4sJxE?l+0`~oBcu3E15ePWB9G`hnSs!pG-&^WgbDjTt%wsW-)q{v7@YXTu^(QU4 z$zKazC8C^q}j&@KHXQDkT{ z)ZhB??XGd)+v+_jHpltzwrj}jxn`zkdhw@VLK#N>-K2dFOCK(7 z#bd|LCqEE;%B~)wDHnj)x8y5CS26EiuiN0kD!sq>@M z`oD2LVtnIe7z4d6Ykf`C!z+ogVx4!|>C`HxfgGw#tBCKL%9mR{PtbSx(8wIa-**^v zzC`gJtGSO5H?NWYOWZ2IPM+mH7xEsCIsVvfj_g6vWW$72Yzp5ZjW=$SA6D?ir+X)b z5BNQ5p9XjQOd=KKLH)TImbn&@B1gr zQh!83g4cM7#95C9SiMA~bysLZZ?$Ofoy^|m{CPF3C>vr{d5Oh;F($f|oqksF# zgb-CIVYRK7qB85<^|QbB_CskaF<-b6sZU7S`LVDFxUf1N;Qd&I`>VQK3tzPnqoB?R zMl=gyyHrYP8T+9rXmkcr&-5x?R1pMh?s# zEB-YyGOF5NyPCUftR!+G1Vw@Hi_1I7Q`3Wf=}__K1r7lQ^|g;`E3;z)D3aXA`F-^D z`5ze`r!SAAgp~Vp);Wh7%4soHCd$Sv@fP;)r;pzuOi+tHyI*$ECRDh1$un6?S8KS- zN6y2DkB%BFk;Ecsl13l$%jNW7?y1>c{fBFX>D!NYQ=W#s^+osgROWX~JcfTNc2Rj1 z9x}p0V*KrA>TAM*^#C>5syc%2Y)_XkO@#5x_*dGR{fgycf9;?0w&Xpc5PXv@BxC%}Ti~Phv{V8Hxc#ad0PIaVXxrB8E21Pk%{A6|9tK~6VI<@y1#d9LL)*QJWSoL z#|yZDZm?s?ql*QKYg^cDwoiYejQ#YxA$A6-#tZd6-iI!LvUffn)45S{H_rNt#VpBU%dsEqsQ}FFVv6OJCssb zK`_&XhW}Xymi((>5zLh~3KT-BC}&|r8$aF>ljW@Uw@MT`=5&H;>FS81fc9Pr`e*kV zwib53EY3Z0FiMZk{<=GsLlXv3@4e$ z?y{L%>jQeLcXC6_IhRMT$KWhE?t}hhS>AGP88n)b-g)*9p*Z=Xh%Ce#wMeGL`zY6+ zW<7`Mmw9FFu*@gQ^JX&2pt3H$nAbUW$?p|=#P&RiygM`BH$MR4i1I$%9#2^LWZN!} z`Z3d}`2gLYYFatA{{&Qj9qYNCjLwpLy07D(O=Kj!(SK~w9iyB6NritqWX=)wT54(N za6{~zn;aw7)OgR;H~*0?2!Nk-V`n{#I68j@M!4p?yK9Z|&L9`}x3ef=Ndm7ivY^&l z038{fdTQ1Cbg79x$d<&y^~RuT*8d`qxhIHEXr|_XOh;BfE{!LFGxzn?|Y z-h)MC!S|4X8gMAN01yA(2H%^%LV@Ok=^sfGeq!9kXrb0Cq_ZvD4v^R#+zA_~SzOqs zgi*gc3~WIKO;@!S%_eI0S$F3?@E*^6zRE=z{OK#mQJ=_>8@^^f> zC!e0!pK^5kJ~BQ&cPG2(MJMz~F2J*}c3j*!#_9O6Ci3Fw)Zy}hPO7V⩔^8cEk5j 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 DYIw|s literal 0 HcmV?d00001 diff --git a/assets/func-non_func requirements.png b/assets/func-non_func requirements.png new file mode 100644 index 0000000000000000000000000000000000000000..27f6c27b486a313f5170ce59566a586d836e57d1 GIT binary patch literal 191276 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%0AWewy31xbnS!GSiO#+@16KBJFij= zFtdFR^@?iDQ}k}byr)Y|J0>MQ{vmQwx6lhl6u!RGVv4Tw9Dn*Ibh^&lGVs+n^PhE; zP752iDGueRocuOEQSW;OYedF1d%fu-gLabwaswM;^hMjibIGv@l>|k_J`&^U6Hu=+ zFlsLjCj_duM;<%$x$On#&1^6OcMmgk_&P!p%07wnVy}u z13y+yi==*;>tf3O)cQ?ttxNo9lJKVRBA(4|Sq~?97%sIvMpO9^+UJLG6hao%m>^H} zv?0)76ij8Ro1z=sGeeqx@QJ3%EOqvH@|~U14yy872}2scD)zrKz@QL{z=UnNew#8u zS0X%P%)QNjR(6|^Y99cG_&_=(uH)xzp%>_Nr3!Y0D^Xzc=Xpi{Y0SfD#4^V1fxCrxbr`zXFF|4CtdWSv{*vS z9k$(rQNtI@D4S2L-@TF^$PzFA=K5LdSBzpCCtU_8VL6T`AV$rd3G}{NN`FGGz!5k^ z$^v-D%izzjW~}9r&;Jo47>bC;mhJP)oepXoLr?l)XdAK4VlA`R(bklLj>czrDC5PE z$nC3)b!|R=cE+I=aka94!uD5^)kb>9r+L2rU9BB6^#V>yK28pC{(1geOeD7A+OmU% z0m-XgWq&Fk*j=0Tjq(9buBhIa3^Jg33_d_P-Cs@mG6X8Vj2J$*ht%J0J?joeu*!RRm4=_iirj`zcQ@LSuX5y} zBOf0xtNMcC>%9JV?D+{4G85*nF1N2@zJo0MT+YBc>CfOlAP&^C%p5*l7%+OeJz1cb zF7hqQ4Nbu;7@+Y-`e>~uSY5M$3Hlh8C zX3G%8GW%n%)mP-NHHUxQ?V((b&1g|ImHE<<_^8pJ1Hu@= z9I;ylmtVW%Vey~PMM$A<)vbZJSl^z`*pKC6m4B&)GzgFD1}z0u1|EV`S7a?Tt*oDpi>O%-BEg z^4%mTbLO^L{+B1*ZfisAcj^`^QbaEqbts6>K}`?7U4Bo>TF-5uyzrub^cx4|t=|>u ztuzwHw{a$MpVw|?e-=!jHC_B?(hB320roX2*bAI2^m z{5byk!lAi#ub6Tf8 zA0JnifJzbmT*sh#MaZ#vyWxsz8pIT#0kFZao0K9U!pkrDw%te#v9)5Rw!Umr2~0Y+ z)Gm$bO+Y$2jFmU8(k(Jr#DM$~ct#io$aiq8C&;NAB9KpOS?fmkvQ8h zjoL7qVs_G)^;rGJh)p5H?U5!h1%}!9;$RflrSFc8y=1qS835Bgn=QvO8Z&HAJE!GxR%ool@e{~!XKWcsWD4R!G zLx&w|?MPi^1Zfg-JY9YB!l~t`oPyU(q3UqlrVkoqBFXXzCm302E3;2vqE~lup$=g1 zu(Pc%Tt1g4%i4WNSnPNy;B83Fbi`3pb5<`BoE6reuFcH`;|jFkp^`2f&G^s6Fhb(r z(yzt_^DK9>6&HRLi=hvv^0GPxWpOi$i5l@tVBCuS%TF0x@#HTg>n-Ikcesu&54JHk z7rebe-p`nee&$?U`03kyf&M!pMX^CBvk_KEMt5aJuJ!qN0;G3$G*|AjGI~U0To1qc zFiP2B?@|`gD>4>Xo)kAbh1-yZ0G8-Xb*sHROVnM2;$WYkpqK0U{8ZdVQuY=iRAeEs z&B(LOSX{lCQQxSVXo8H?8=1KQwGU_}W4xmDm^ALNubK;UoDD?F&^&1)G2~|yJE#X@ zlY4E2B=h->Nuwz8UHq*w5UeyyR5?<$g6Lf2d*ZppctmSZh>=khSX+I_$V-P2`1Hy= z8*ZgyJFSF$CE!1`#ae_FayuzcgZs=yVAiwM9*jJmD@ao1HAOkdQ}4iY0n=$}-%0VB^zwRc%Sy?Ae$`tObl4`0eRxSCN*)*Fb=x2f0k0eI=jp>Ln|`ng@#EQG!ql5d>l z_lgBWrfE|ELwo=Jb#Z^>b$duE6a!x1CLUXNz5>}J+%!&nB>Clsj}?zJ#+jWG>?)@O z9E4-YLFwado&nyC(!EzQS%|+<7qPu0;-wK28*r=m)uNNnqb@hc_a9 zTlI1lIrDNe_63~qh%u@=^Sz*G6PbHyrIgqL@(W47@G^x~Em!^V{Lci()mN!rZqv-cnB6z8hmx}y~fSvF}*&?4FYLy{4ESzY-}z_vykMi_9!ow zbvaCI`VjB=U`w?2$Rst1A7Xsx`VcUEos2;d=$*2mFsRJReZDyhaxhQq?GB0xcE#YM4hEuszHjV+&C#0_H3Xw+9MhAzEUOsh0$T=*DB2 z*)=5ct?ostJVU~5X=V4oCPJ6PL}}x)O9Q3T&U^HU2M+UB9v^Hfu`!Ec(;OoKaRX}R zo}?R?s%F%fj$(}QK61#(KOoX?j@d*h8NcNCVVAYjQ3O{*Z$JlH{B3LJQcXZnDXZ$E(L^V=iworAO_GdZJ*f z+)0*bLBC$~rHCUO5I3dd4X6GawLCC{9F-77X}yLC`!B=l$`g@S7YpsNaP2SAlKv$5 zXVDO2p*l}6wkI!oE>XBclnXsnh^=VBEfH2j)buu>5ub|yTl|D*Eu^5iye(EHM$|My z2f>aO4b^nD{0yTqgalETo;z>0I^b?|EXK4z@;TIc);x%px+R4C#pFa&PrDMe&e5|S zQ~MRzOU(N0S4YqBG@*kuA^i6-=dxhRPTOeH;ppP+;e(F`B+hI(C6SlsOP%1n=RH_h zxj6fjY7lAbY9jjA>CXq76Qj=W zTEm260w%GRE^k2}XS95qc{io|mEyEe;u^A>B}rMw5?vx?s1#a%{)3Xuf&%7F;pr-Ll_)i`T^V|p#PWd0h(=;voO5}-DB_6pWP@or)El8BcAknplxh8tbbae- zJXi9AmqY0yyDU%*UK5(g=bw@}7_$9N-%;*5Dmw{hJE{4Fne488C?1~^@;n5r(B(~) zJn9XUUEBCzTEht!CRsM9Qq`cpv{1E?m61NTdi-08olCskC^dGdL;NS7*Xb5zFb!y5 z)f_q(kxr+}O}ln=sTC%jTJI-YjB^H5^)sop+0ZM~+Z0S<#7C<2m)?du`(vKVnSBBC zZYFrS7aK<+Q!5e?J=97#*U8LIBWCuduQ>3TFhrtQiy7&vAO-P^t1f3jYxZO013J$bM~t~ie$!;`#Vkg&)!+pt~VYk1%L4>8Eug=cvLoH?}n zzW5)+?tlKP8DAz(V?!t-W~)^#he=JE$h0su8yVqy1#+v!2d7Ct$)8F`VUFAAhmt_| za8G0ChtOsD>?&$y5YS=Jqo3gut?YagScAP8+Sy&4=_0+-|0Z+aQ{k;oUqFZ3=o3rh zh{?eqlb0dinZtMVjkLwvDF>GB(yeN?)nP%WcCg{-jzh6D++#O^ z?ofOe0G<$^Tn%+w7m28CAPMV;(d$B>C^UnSbuarW}Cf~Z9 ze5AkF*HX3-8_|!t$F#VLi*~9bZOVQ+F9}(@WFA*Dbphl_xk4U98_Y0?9<`;}M*0N} zs~Q#NXH+4^x8l9OVw~$!E1~nA@P^g?%GcK~<(jewq?&}GxJK$mVy4EDL4lz=tx174 zbXmAf;smzK{#Qm-LaPNyw$btWPFW~hip@7Yr*=FGy{Ac}qiGqs+9TTPS}&x&?H*_4 zaE5q4gK56W^0L<1-&Ug80 zx?$4W&%sdzWq|P%O|U(APzQa9TVIH4;+^Cj^y9ka9x}Ag*RYZXiG?oSS}m%uj{l97 z{xH$+1dWK#90_2ES?ioPR;M8&!WN0-AgY4p<5 z@e={+lFW%6&nRt#@v88skT@X%ok@;BOVy2FPJH+!71dmwF2w{&o9oK53+Ue?p5)a} zgs8&CZ@GoI$urZ>Lkgr3pCO_Ngork4%>xuy?xF$J8VQ}mLC<{-8)}?I#ziR(Gx7PT zzTY8EjGnX@G>R;jO{gl=BxDCL*$9&DvE1D+{T2O z+K%}iO|>|6P+Df8_VycE<%XU+SD3wg0+Wy;y-6r7jjxRnxCBJL^d2Yt>=vi-pvGJM z(1qF61p^8yiS9Egy)EJxUWix~)2yQX%{9l{5FVIc<3gy!cf;iUq1aTwKDjHtN**SC zX_BGl8BvqGaP3b+B8=gMGU7@1OlY#IjZfk&7;aoL77(_xjNf;5jUn8Beo2_sO}uFz zK)+99{DoVan78Wd)=&1!v#p+=z0$td{W%4}zz5_kKCks_@ZY=rK`il4ko3H#cMns@ zx4HJhDmf@S__b~`;&1M0|bj@Eo$kqZRb{T9d4vHq&HZcRgKbg zb9Vwq+W}e3P>S*Gqz!Lvd!rYQB`jz)PC>Ac zN|YgSlRdPCmjsfjjJcWIZ=sijTMfD<4!EabJ2)x(eT1>8-AP{LCg;&p4OC$vk=Shdi1D71$b; zB1k>D%zR_rk{mAp=i|o{P1Q4ZD(h&kdA)Y6`gGn1EEIQm4!8irmm(rA0ah{kDWGl$ zBxRTIiOJ+LELG#&G(KC@X=Dk81eJ$a#{clR-6Q4&7M7N)UPI;WT=oz->ku|It zf(`R|I$D$&i)9O~2;&KoN4i0t)kLb*p2WMDo#W43!P9I+lt-0(jGkL_dbCa5xij0< z-$i@(n637ni37>$b~}ye$+je{2`Y1mKJcVjpxG@kNaN=>C9cm?R5znaH0)((5j-Do zr!`_1W1j{}&vYa%_{3FTVPcH_G-$L5=3z^9BmhbsAz|E^b;9X7YV=uOk->{|T-1D`_)?s|*!P$wTlo~5a5Ph%StaVp_*wN^vO z#U2n$gv2*T2Q7O@oP?ApGu-dM3nR$h!xDe7aBr^b``&Py1n$W_J!uO3>BxG4p=10k zEL_t1?Zx-Zsg}MS4HajVc&R35T^$;#X{9D^4;Of9Jz>nv>+P||!((a(iofeG%^Av~ z;@1e%PIej+|7zpcNnc|4ditlzJrRFAeUrHn+GKeT-{Cpr1BArqXToSlqMqI*9oe>8 z5nq0ctVb^$y(0B!$McuCqh=N~PHE&?j^A(hbCxfOF-V&lsJVew_rGXYvRtF(c#3w- z?yJe@9Evu(>N%q{j_q8_sDm^wo{S;+?$wU>ABrCBYceod5ZpJ#m`f$owB}QH{FsKT zScb*eU8M9Sjae3*p_Tz=ayN3Te1E5PR!bQsr{Kjv#A^5=FlcX5DY(ps?9qwpGyE;u zfgTOcfzxMTwmHzcw;c-d=bMan&+}aQ9+}@d%MrMKS^T(2-``ZfxFpE5+ zc}(jx4MT;C@gX(m354A7uH@0A3rFNM$OUHiV0n()XomBbu_P!MXO6?151|1}r4)P@ zc(pAESrgX}&dpO*j$;C z2PmnfKTIJSsv@fej;;9eX&=0*-EQ~fi_zGo8b&XKyrAQu=Bu!;S$)08GX6(Z#tSU$ zD{;%eFV<2oz2f?Vl{P>SWiBowI3e$TnDP{JLco=Q#imDn>(;xp-$X=;7#}p2=|13U zg=jU;N})3`JWF5C&4L+3pe~8?z2K&z0j=_S4xUFet*!SI(sZbI^ulY$_KXi9rLJ%k z7P+rb@`PEX3-r*R(&j5zg{R81Lo~y%NeK?eOmS`KJ@27!%8D79jp$k4q3;C!XcAT7 zrR3wG#L=gtz?Q?SQl>z#B3zuvrgir^@zckDUgq%BTxtKM@_$3GLc2HOx2&|DdH))! zJ|GNyuv`F3r`AJKO%!crrG>D%&-fmZm6s{Jj-3RkWA5T;rqb=u7dVzGw*316*E9Ug zc*24w=rblqd3hWyKKE9?GxaWnnaZRqp9cyv!eUzLSpAN{^b&6i2>vtX7${Q{rYnQF zcd&6o5*~RjJ?EI_XpbBZaqbZm)?LNCyU~`LrgXCgJe?e z2+;Y3NUeSc2XxhQw z8_S}0i6RsOZw=Jg5Z7ixI(JGYAHrRr8jgj#HFJEd{+VH1y_8a3@QvZQ&G*+h;m$#C zkh-rllP{~2b_;Wk<$YG~!AgYI3(K2~ zGLYpg_|!|X%@&|;jac>YK0~96%yoxRT>??ZhFLhOFfBqjsC9f2O=yCyakg*iUU3tf3|o5Xs5BvY1E76yp( zBPfv4*aHuM=w*v}R1g?Mcv~fd2(BZ0<)?vVQFt?kL9q!TXc=u6G$$t#C5&^V6i(|d zPuIgi;-9J5DUnhIXpyg|e*&HRmS{u~>=i>C>g9fE17Zr3CaYAq*hVRiu^xeA2%bX#3ix+kRd(y|3XWJaB2Y}(&p7orRgI2+#33SC!&;JiiwO$G*5nRk^Qw{wof*roE}e!P(jx^m-LoGt8W)$s;(cF zvwr+`p5;K6FfO*3yh$)p?i*N9qiB#1MBfFRfW3pQh)uR3lk&v<2Mn~ECr$y+vu-Dc znifV3lp_5xA*m-zX=hc|5^gExz9dqW{S}Z-wZ>SY|DsRW6?8VY41tb`DW*ur2xEVF-X$cPcc)^r`}4qhvc#V#XX%(hW4UCvcQ$l|MICRR-DMH@wa%+S*tpV>Qyp`V@ft+738;L}3miojU<4KKc7jf=I zNG!Z*$nGS7#*N-3l^|2_+hfO^E_Exba=yPxW;62eTD5&3 z3J2`xjQk&ir6O{lcuWmDv+i%tNNxa&#&`Y$kc2+@GM{VAFW|sHXEI%|g+G)~6poFz zfQ(M&4Z0tAL3w^tZlfQa3I}gwL8!=BIAtKL<1%?$s+l6`N3!c9A6@Q^g--$?|C8~q zM3gS9nFgD9?t^XvXrXKd@0fxc3D5^KwO)czlv(c2+}sC_neiB!QGFK`2(MX$r>#-E zF0i(=z_CIWQAh>6yU`ah@5y{VzF6c)k17VsYyAFq5(_M3DLy|@my6o%cm&s{`MHoT z&-%ST$o>XrQYhb)X@=!6{omealOo!Ks>D|bXRT6K9>L98pf;$|kf2Osgzy0;Qnj-I zvD1&mQ+#;};~OFOZs{?cg9&e;(3$!`)YHJ(8}$CleMq6Q?4O4;M{bP=J0Z$Q(as4e zmZ||9F!;q|y9D%wbR~Jp;Ox(M=&go3t1ulL1vrA3g#xPuZ>rUcU?X-B$2})k}}{k-lc}1lt!SDhx3DiHeV*miH@S z^SNF&dOV^=r zV~n?^50!i{{MkjMcn*EGx}+JCZR}01^#u@N*=JDY@Yb^SJ+`nzUXuUE%>mBIZl$BY z_kEJO26%>~+%c-0=xiGHelQlLT;tK9=Z*Vr;-xJ8d#Qu3t5S--?xQGl`ho%&mL={T z1`J@246q*EHL<(ioF?@h&yi94yZ*;Z9Va!+rGmGTO2eSjsXm2r?)ykCYK_YBK=t3V z_kEz$`&c5cwD)0;3mvK5f0&afC0>ATdYD0-S15@Av`LIr;Vs9tW66pPu6{Vbn!x7k z9pn#i{gom*nGpr0uRt%BbTcr6<98!&P#@Gcc<%2r=gxR6+4Y#md9f4jpU@x0l{lWA ztoh@ACCir5jwQl88ah4-D}tMj?2zmWVCEIx`6Jgsc)$k-e1k0y?#y^y?c0I28a7;@ z8v{MI7P!X%p7YkWKY9K3xdDX@1Q+*+f&N~UJ>8vqD6%xqK?5rD^UTSE<_G!L-4C+o z@Br)YOZM1L^nRy?98dT_XnU~%tuH1S-lSB23QR!Fsn6}>inxA9iUuk4 zSE%@wFz-mHoG~e<;d$+^-~&^~bN)L@cGtnj3(P|)+poPRUt5QH^uSfuO&$K6Ao5&a z7KZDY2xlO`Bx}}{G@lzzg$a5uSR9Y|{ZKxFc@h?gjCLbiF>U09(k8)gD~f_-AiKE3 zT`jq&{TVImTrdem(5sx9Q&+8?Kl+Q>er#|y(u#d9f%KRGGSYg_R^8K4DY^eTK2Fw=3q zd;iO~1b+wdj7VT40=}LCVW=4Zc6|;oCh<AEvu zH+_#`b0e()gI8Ksu(jqdwu-Ns##*fVn8&4 z%dIbd>eem*jSsVf+TRCYb!wz_kTSjC`yzV3H}}Lsc<6qarGfkQ=*iz6GR{(KZS~{5 z+-7m}Ka-k1l#6Zn=99lHj=(l$O@Hr}h0kpIFVhn!KJ2|fmPYlwI$nsomA48k(-M1SsJRez@OCHxojSx8^uH4XS-8a5|{TVbbUS!PTlXSObrzwNva1;+gI#-&=QM zY?RIRzdD<76R+zU_yT~S?KiC?LtTOBeXG4fU7wvc8DON`OuM{>M-fuW zG)i)qg6e~Q{+E$wd2aa3sf_@L5Wx)ETZH?XzqEjXq<92&@UCEvZCt)uQeO-$mz=$nDn!cXRnuU!t)Orra>xd?M8|mQ%DFsd>^~YB;_Y`8|9Ur1n5NR zLv(J_&pqeB57b0I-u}X+BrI=!opWV#2v9UBw^%m0@;+??BU6PFJ&KmZjvgDwqjOW- zjHj>DrN13JgWf$VHWA#L#TkN_g;yI8ABRM;AB-z8_I~?oemJQRw*lUCB$}#PVqZN# z9|FB1>xH?%6RJJkBAW?NoiP|`oXTl0n|cfD>}%G=2U`A|ihMWJGE~SHFsPr}myh2@ zI$)Ht(hafn^?y@BNqVveN||NBtKm^)Fp0`ez1~t?XO0J0h@P55rVIA@I83 zHUkH?xXL=b;7-WDWfF|XyN@Y+Fr?K27P;m6Vn+`4G+{{c>0*+atv_H5cJKbI0y>01 zc9!CK40b?#&njurVTIFW<~?C=-)pQLgH~J1Y*TQb)LpChz_uZ*CHxaQO4~tI&94pe zl$>$FeJnya6TQXxj{Z-{P}c*Z)ljgcTofn}VW!W7+hgz-6FQlC{l-E64tW|Isu{1= zjDrm!P#7Bp*2qEN91+c2kO{-ap!Pe?CFS@Dur1sYh9WKX*=DrAyAUW7b3ofK*9(!S zbW0{>sF-x_AxoVBX15k%9ev|7C=1QkLty37&yNwfo)#H`frVahs8zc?5w>vwi0^d# zaQd7B$c~4ThL5Lf#yNf9Y%T%rZi4#{5x4Dd=^sy2KNV8#)C)Pn1N+7W>9X#dfj<%P zufGKVwpKr@D`Nj$Xw}K!Yi9n3^DDPEt4emChqaBPIVwsD#sGVWu1khH-vV)^>(S>Y z=gk9+_-P(A#YtXTmFJ-MB_{(P>tHRNkEACfx2Egrw>FPZka$JlN=ij6$&G0O#UH>@ z)C~6dSbt%OCJ8fGNlO0o8w>TlkV=Um+9@~Q_&Q!IuU=QohNv@n>f-%mT`@}@N}n~1 zf17!yNSy>U&^?;_1ZOB}+}3XiOu1@(2#PO}D1FE2CU78pnd!Us?hR7bG&FJVMX*QZ z(YtpOL;6L_M}ilzqc4=MhSjbiuk9~MkBzIZmVpbX1)lO*Fg3+=P?b5@A2|Ex+BM&$ z1(mBvqu}8O?K>5FcD>v!*cIdpvMft`!?}Mn_F*L&rS1>MKhz1i?l&-XC4_}@4irLn z?gM^+xgT~|VDO+4~1zMvUirWAi9eXT0d zAmJ#|C=EPjo?v{1-)M6*b9Gs{#AJF)^yFJS;M#nJW!faM#o!?$ z59;J_1h(FAAoL67gjl*u&MEioSj`#aa}YAAVk>dgx$1gMxskKu^G{J@{q^00@d18q*CCj_vgY-rtUoI4Epa^43(WTP~5dbS- zvf9q@E{2M#DCGMzU|wyw&+8Vc8sD~=v5D385R275Rbq$wwFDoLZgC9clcaw2Y9WZg zA>8q5F}U~nI?F^zwZM1#&}ChG<(}%3<7l;o%a|<&-kau%yUGMP z_u_Sa+tao!V3rroN^fG$%?0){dnhpWvU5EujF%U_00k~>-XGKg_>P;dVYzD1tmKYg zX4ig0}9wA>VBx9l{MG?qC#+IG0t9!Kra6;~(L1NO%-Oaf>!2XqU8{Chs^Ga_;! z!0O7Bni|UsHx5^U#cvH^H2@xTDTzwZgB_|3;4$0Zn)1$IEw0_Yua!gSbpY5nE|411 zJtJc%gugXos<=pJQ8M(&nGA%0tpQ@QO;T?krlQ``Z5)?6d;IC`$>}~Qx#>K}ad1!Z z54CiQNG3$z_0i&NQtHD=7d18)klUAeR=f8L3j7$Ru%Lp{;KKx&Z9r~dYb`*DB08M%m?=5=`C>w1TIm@` z+*tGzV6UdWur|6{sBv_?v6&vo6fq=S^@2al2>Ggpgzl2Z-lw^&vmL^E=lpvB5b>=L zknUuck>@mr71Akj_2K;3PEr-=GMI&%OT2|!pLhYKmd*Qyj!cE3+x194U6+XHkk1QZ%j#a1?-a zb2}C47SDvUfSH91WGHlC>I)CO0%SwSIg1h^epB+?QS`#_>NM38`K5C=OUeRH8@lZ5CY=K2?5K6%B>&ys`x$cK_^Se-b;1{qUN&4Pv94J=IhY z;}eRO!%Q9sfhl5QE)+Bi>V<7O)StAwYt@5|6L+G-fYGSp0zkVExHTvj>6IiEB6Dw? z=vEaR5)TWZh3?XZQ<$7pNl;;dd7Vj$2IG|~jl~ZTFx3|Vn80N&nH!J7u@SNQ$JrfL zRonO%h{&j5Pr>)gJ0rR+Me;=gC0Nz_ z#T^)Ug-Kh4r}k1Mf}RAM8kp!m+a(erp-NI=fsv{v)f2iw-wd%UX}XbuN0v|cQZZSD zT0V}7(g2{?5}*@%f36nU(XR#_-4-B_XN$IDn!3$LGG%z6%HHo#ff!;-522FxFI^zTVJDA33?aw_kLY9gx@t%bLqu>zR%pnPYgxsxIcS?q z=FY*3_yKJ_^YsD4O13@XMF{^hCKxp91lJ%1M-DFI7(`{{!@0_X=Hm@)D37^ls<%g3bBHU+5EgElj1mw2eU$-jbvuV@|=xMqJdTG3GP&;;foQ;zNM3ca_531#r1p+Z}+AYCJUv z|8bRV#Se?uj<=NwgLtQ(FBsfds%Ja)HLPbeev6l==uOGIr2+MpME}vsBZeT>x(b}d zDIac{*Bs&BqYof<|U(gPTQhqo}^S zdl+{^!!ai6uE_JEU<&)h16U;3m=H5=X5;cE5B0W1@wfg!+uT&{;CS)9iEH^bqhe|a00%OppHJ$;Zl&5|#o5MKP_3X1ft6Mw!MD$xRzzh6@mnOl1 z(>3~RG5BFU?{G~Vn!f=v^argfcX>C%5842>OF+@BxQc7>2&@BBCH=n+sHzQV;vZ8Z z>O3nACoN^>LDvZS1~2MBPAih_mBuwui_)ci5nAzGE|D}}=ym}?7)tVt*g|z)eT836 zr<{6nQYRU0oRrwYG@+SG%*@kfN%7N_d}FXI%lFV%Ta~^2zWeg_g7%`NCj_S5h!wys zgN$~wAPNRF=P_Pw-ic?tm(ZdcyIifNkfRq@Y!K<$CQ*dBaA=BjV1IZ80TOX!_M2zI zKOyjjRu@f34IQ>7%ly$L*nQy8<~!oQtADE6$zA|A?IA zpY=O*S(J$KK6aH9=DM_lXu8PbnUHxYry(E>tzdryEgQ2?Db4EipY9#^D|DMOe+mei zO{gE{&&rYZFQQotdRI}$U@=FXWLgNEgS~O)9q^vEQlj!rv=I$vLiecUBoHmh(OO{s z6NV{9u~lKnglIN!w$s*Pa`Vnk1v-T;(_LD|cQoNZLh|xr!VB^Y_v30Yn7h3X*39p_ zjn{(BdU|{siwhj{L5S#05i)tO@m3d6BLu($Ld0e}>X9x@Ho9-!XG(LJ4NQ+bk59W(NdWCJmsU}WMJ%ogvw(t@r)~y#RZVhonv;{%@n`- z%{qY$^-E{Hbj-e?ZY|@6Z!|(ahk@Cb_Cd+P6VdE88J8hC->t~uUaTTnlrq%-y$WX9 z$zY^VWS;Kyr%D@+^V#LGn((GXJO`4VroQ>RkFjnfImwnOmv=_>P5G8IUM3Z!QQVAJ z{wRg7DuF4{8_-b|Lw5?O#3$$8OD2BYEVN$h4sVj}XS!)l+r8ql>OQqYZbYl}^3V9` zkug0bIGI1Be^sl>`33CuU%*rtmh8X3jt%vf{-MfiNp!;8%~MfWF>Wm!DtVAVj$|%* za_c^R@^SJTyNk1<%FBhW7-_2DIB&E@-1ZQ4x*-B8a!4?@g%8*dH9Kymq2sn^So_{BOZZgQv3_|vI5*iK3WE%(GEO0 z$*H6e7jFA_<%xA8YE!nS`bd{k2Ok(JeH&7)3kqHQ4W#cE;`E!v{QRvG0Z6@dXwdjr z)308n9QSf0P}Dzh0#=x7*x+|7wOYchZF#qByZj10Dc(WA1gu23RM|RZVX+3pBhfx= zHH#;_FNoS&zsgf*zOsM!k#2AU0|r@{d#tXVr=VP(V>AOq#{a|Ac?VMc{ePTmU87uE zS=XM~WL#X=$R)WbBiD}X)o^8V?R9OH?23{o8QFUlm1Jd0RA!O=JGamG)93eZD!lLe zobx)**Yo*!J&RkEjAdecT>m-Kg(Lne5b!25-VQ!ViJG~YaVYX(GkQU(|IU^Z@n$;* z_D^Xo2qhi!G@iFe{XD+&R_4n~E^tt9zK^xs589AMDklq*?DE?%;h>B6orVOMlBJq{ zzNe5fQ2lILXjk}^B)F5Tz#v=l-LzeOC(c=0)V9AQ3kdt_xj|cfUkno*c-lldOP-c& z3OB=gsGF*Rm`k+^bi5opeEW7}rKxYM(3WK@mDYu-Zvmf=t@#eKm(w>K*#o8s#)EeA zOYTB!7B9Qdm2GaPJ^`J?sB>$MleS%&wd)ugZ+6H{M4P zBr18MvICvZY`sWo&${b-@5(d*f5lvo`uCs}>YiX%dgeae+eKd@fukfFIofEpaJThT zA;NIIccjHhWYzd^Ta(&o-kEs}@w8LlW0w!4TvP`Qc$;Ny&T>nNP1}CDmB@GT>js)@ zq(kj%T)`RBM1d&sNYZ==*+N?G4Z)4(^c-e;gU} zR6i@Ob`#TkJ-36v7%0`bylCa$aYenuR7?DYjNWVjUztRB#v8+O2|8<#ivLI8hTj5& zC%w;vQq3g8Rux1cX$};WMwk(abc%l&-kpIKEqZ|$FaZ=Y9*8y z$!EkYT#*jgTCALnpdIaHOGP~9t^JIAN4RBHB-uy-9H4W#`kquL8U`|$jH|YyOTZX$ zt;?ZUUv#0-e@N)szO+4NU*dy)>+?X#w>ILZ!>@9ihcHbMUzvX@=A>P z>OcFKn;8DLsxhJe`)&69O%*b8KEGr-2Ln5{&>69i5gR-ZhTcF!Q=C>(-2@2x4ZB|;WozZ&J3p2Nm6`b-z^KDG|75C?=7ao`L9VInpV^g^0u>ki zq+Y(p`nKB<Top(2Z@x$G1RVll@@m=!P)E*h zXnf8OzTZ)&P^&JKG`xT0;pHE;FaAHtZ5;UA`J)h`_l}*nNENuw5sj`05X zKz7KXg5*IZfgL)gY2){8PXp%X0#J|18qe8>qO1tgoCjPSx|n@#(7je(AX_rW`gZvM z$>H96e-IUXn);n7JAh6?z1S1{nIeTcB}=kQLLzw~P%N$mtxT!JJJ~1>Z0fd-wI%TU z2nDylb28_nY0`|k(ck>oL|<$H>II&t8|U6xE&EV+;)tJn$XGlqbl=0_$ImCk9QE)c z!~2b&#Jgb>Dt)ZzogXssW$9HwQ@?MxcTx5ux7wYYY|2CFcmn%Yym-aNfK|JJ%^jIR z3{M^z*xCcVIQ=M?#M!yO(oa)Dcc;XjmdhIU5??skTp&&>yyaH%u^V%H`poUS`1MG( zy8B+QMRRfUarGaPmFA&xTb*&Tp$9+Cb1>1-A1b!(0eS@uJH&xE^_%G9+_cFk-k1Zg z!YJ1MD6I%XQAaAOG?N<-#@Go@57#q+UvIiS!~W3DY*{cHYvM@P$JSQQty?svM1NLZ zgqVV5rA(^oQR?!)zb@YHpBz#*8@HH;{(fKDJ|eiz{5G%>q%kJl`O`4E9E}{!Fspk1 ztV;O8WoPZ1A0=S3^>G^(M0KeS^jp4bHGJSyiR=8xZoKic>jwLrrGZHk`TUH*ox4*N z(|J#?|6Q1t0>oa@sPpcXeM+RJ-f8mo0oaRJ@>&teyPrP-z2)lt7=LmpE2#b`5Su>HO2+Fmk1qxxd-srhu5>hmS9yTb z2`;7mUN7A582GdlhM@h95?{w(K0dc%Q0w*iqVHRS(Ng2$c2EjpJCK?V&5H(Xleo)u z1xiA3*LZpJq-k)C3jGXk7ql+X;Il0fd6#JV#LLK1D9t5Jsc61{?BlzP_agcBkkWIrg?uK+d)tPq0G`tV;3fMl^E_L zDy*wcCB)#bJG%(G-2UOtq_>roi`*^^o%Don(B4vZZQubYL*%s1P|C2aq1lxDY)mlU zvt@6yH^G`G_wcvpPT{M)XVmSmnsqHel@Fv<({!Oy$Ms56c6FcWXa~)qtNitXjz1`K z7k6nE7*QvCb_E?A6!eeAS{S_e^eb^{gr_S%0d`rV$5AkA-A@9TTd+3-BIrW9)lt( z*?}w04|2KLW1*&aU-AWp2wrD!Jjmh#Lo-Z3SHl=4)fB2LA}yIUsTfJ?Q-Upjunx`PCd!o#jL z;^v*&{1?DxT!S%^k9a+|W}mmA@9<@jNE^^Ca9Bw6O{{9~)%+^b{FI$*3b%q*YI23mC?T# z^^Ti`YoFFG|NU5Fk*w4g^S|g`_q=WU(9(h3&RI3yG;O!A&RIyYf5BuCRGT#pd)SYg z5%BKj7#ylQyQEY2U>*PV+AfJx~&0VX(uNRC{*eJWX=$I2XEA2bV#U`T9UoxrFs57@l zlrT^VEfPJ(g5BI~iQFO-h|6sDt*iV~=FmJ&b_dK_g9-O@vNbX~W_B^?kFfBF+|xlr zu&l&zTADCo5(g{}4*v@gAt|*S;OLVWJl0k|#)yfMY~Y zEqw8$W8}P&TS2>;j&$`^8OX&T`>jidEwv6wqI2y*-nfu%)vNCtp}oD6jonsF|8ug0 zmlJzO?JVP#kyp!h=HG>-u?xycU6gwxpZ*mzk^cTq~chEhn$%QvRA7d=e;Ha{A%@Dp$A7S5n zw#lbT%>P$kSS~w@OO0Qm<(I??zIfLS3zQqZS*U`$f^rbTYSA+$lYH+w#YE z;WpX)5?DN?rYqWolexqA6K+@51sYm)+YI-DsYNRU$EB^BpVYZD#oF@jg6x1TV2UAM2am#}N4lB|9}z~a5zbMU^;$HwY6yH7DpUuxI) znMu12$WGY&nz_%ND$`1f3Y$A=!<@x>RlZ-EAFi|8*JW`C)SaF&pp#^0wYb*&^ECSY+W)m`waZLW1<-e*I&!M5|y`R%*Kl);aGjoRpMC185RAJ(YUtJj~iOMcI_&eSMh0s43b4i|BPHu6v^{4$i1 zmQIO1x~^u~y|vd=Ol#=wYyfOtvFPRusHX=b1*g}i`Pl0)!*Xjl{#K4ihCKN9Vr!9K z!5Z;?JC2B=6oK|fpA+xX7Uq8ywolxU;H6_POiYu)dK7Q;5ay%hcSkl~)0{hUO8Pe6 z6?vYKn_lF&erR*dUIM|ZKod&m#(s4}8qUl*_v|a#(GKkL)b8TV*4U0QyTR6P9Z80` zM;V~<`Gu_$+Ee}Q1v`!-*i@y4<-(>yr?SPngLYA>z67x!;rJK9+Tbje#CbEgIxLWDgZ+ToW1b&6?whY0TcSeoQ9CvpZ)#i(rkTi-N9a)h$Ed zoTsCin3n`jk|=b*oy0l20mB+e8AoPJUMz8efrIww+_lQM0l`l)%{Xot^TcAR&yx2G z4=s=M3t>|n8?h7}l=k`1&!#k5D6BnH?2~kdMc^7aO2@vuXr@`pi-}uIWT)O6lQ?(9 zRD$#FrzBoVDJt?}QtGL)Wq@*$p{HP8!grv2*LUrLKBK+~M0Ar;M3U(;S6nE45=8w; z*eK6q_ofGX?6;-b1o!lp5rI_eutfbJdaU%IU1EoeOb4Bu1$X8|ck((*u=V^pmhB-_ zV+EIw32i=Li#%P}Mw29W6eF%njq(ueVOVF{$Jd^2gf(hzoK7XKo)nUnfx{N0G<2Jj z;2Z!{#T$9K>;^Iu`u}Wrj|5wKK<1UEb;!DXd{(riwJPXnCk@N0Nxi$I@v>?c- zJMcXWN!zCpUX-ofv`0=xv4GA!zNS-_p6&NyevFrx zMW|-`O%Bsn$+55tma$O1=(z@B1 zPjKR}=qE<`>R-+*)Fa#)F1^;atH7vPstCDwGp@;x`k~coNw%9~;eVDg5T@}nDG5z9`G{hk z89a23R;O9%G}EK99a0N!g@bV2`Fq)PTNh+sJ6+?`ZPuzx!^T zn~D2HspJo_+o!u_8j}$vmW406x+{j2C;l`>PiexPPQQ9}ThzojMZxz1%W~Ck6_(!k-%$vb zZu}pIGr{f2WWh>>R)oDeBZG?zMBub=eRYqS)WZU2N{+PZo$92Idxdntpk;zqHr$cD0AW)g$UeD>0+qS;4f)Opp5&|9XYM z-$g^pc1ngLFZeN0+I7mpjB)w>FXglS>%3R z0|G?j8vui?e9yM$S+T*YQdyCl}G|8y<_?+Lf*6V)^(dh4qgq@p3Nm ziJE8uzju8648I$ajB$2p7F;E1fwJe&D*XM;^h`Ow;ve8YO=c|abi1fAv>;BLPP*#yZig`4ZspXr!^ zmFzOV^_7o`{*aCsdV1j1rXdoC?X1(dAzUgqE4vfV$O(ZA&;a7j`wuFwO6p;~6W0hO z@1NBtrtkj&L@g1Y_s;`MNzKf^Ie!;@NZEOlul7$wy{W99RzVR&6cq@;(SY!QTMm%e z+I85hnTfzOD=*ObwFf~)&vJvO)6N%X!Cjh`s5Z62qboyz-!BRf;pH90R#sGWq0}^I&`of2HN`stAUbOzWk- zIur8i4BZ2(CUU^@k@+^|kZ_JQM}p#&)MHKR=TuIH0%ND4S5I$5o<`~3o5Ms zx?B$x0GKRgakCeqQ>K3Mul~H0C;WtK(vBj>cCsFJqNr4^x)fF_zi^5bBMQ#ed*7} z7qj4>dhUFCX6}BTNcxs`87?5ET<}X-Ru!XLmgi<^0`}{H)*THnbQ0B`lZsfsKEbS* z1rSB10nYX}E#csvIlUEPCoQUT_Rb(06AYqZF;3amip1RBL;1qK{#o=ZfO(D~UJ(;{ zG}MU=eZ$+H)_O#xoz+FJFDuH}gaa(=_el8OLB-6Fd}92>pH1t}!i`0KaCuB)-Go2t zi+Rd;$(Vsbk1KrT@k#!N_rUS)fqvP?0Pi!hdtZVMhgmLe;=rQ6F&Dp;eLOQwtTP3` z7Wavv!t~7_#^>Apm0g~f$p^o_u}OcoE2sl)mp2&4sIz-Rpts4j2AUZduGEhu`)+|pJFlhm+pWNlf^PS5*#r7b=>hb~$1Fx!6Qiz<@>xm@h zMrbfFl9N&>7kbd3{SeTkk6`^{H$h71GaY^6C!$#ypv)3ThCorET!701rotOe2G(ug zAcYlfS*SwH{>~3~T^c_#`D*5~yF>?^--}tU>_aY>c$ww>ULdBA4qI3F2ZON+K5t>Q z;EMaPLH!CGvIOgWkyMs|U|Q{@SGgN@?{^P~_+NQ9#RK z#GG}&T7cI<3&3UCL5tX?m{(vr7-TmgzSG96wIB*u_hJ_O=CyUJBbq_KK<=dVEl4Uj zp6k4bWmq@>Z($68!?InuR(w(D=9{7fNw@fwy5vO_`>@{KFh7pD@Z3ev7~5?j&O6|+ z3E6X+G}6oD@NRrJnjWg>b_8xL7O}Yi{H9Rt_EF4ykr)X8uW+sCAkbisr;Z)OMOJ2j zsT0e-HFL?QH5LvAdZE1TaVgSP)0c(2qN!HYPDXS!7SPHKWk>!oVfo(s^t?|jcyNaIzvY{1D! zC5tb*!OaQy?jor@{Nj(qcPQF(*Xl)yJ7G6PfDRCkq9%-rJHKjB;v}t-tS@7o9;kFuMy7a|e@HWT} zQBCgc<`ZKNoHvIx!O><`X+8Kvcv>AD4s44-2@NU6b|66OjD@468lj&Y$lt#DGYG^ruCWehm94krTLvFrz%p>GHiSa*9fF zV;o4RWB}I_fn@(M(M{$^**_N)*LAd8V4=s^4Vxxn7QJq(c!nz!)_`-{#+^14(|E(1 zjze)UjrAqHjvQ}z-D6N{OJ~*jCIkcje^JzO;k3hUehmA3uHVDvnXcc{X8~d#L@v*N z=l(K%9Wm7qwa!@h3j13f;9TW%{ig$*3$BG$tp|xNT;j?*fOL@P(sVPX@J*P^$VmOF zjkxV&O(%;t=QB#AZJ|9h<9&5>nlO7$1^OT=HGG{df;1_x_;Q={*X4cXO5NYh73QcA z77Zf*f#TQ0Upo7|Ln_BR(6i+o7^=fKQf)<69fPtDX0 zoSiP{DC17q1~wh3_zIAD|1=@bTmxDb6`36tm20oRUCj|<&I0j*2ck-MQ=0*(&hkvw zfW*s-#3Vn2<|9z`W>94~C|Ab5z>_XyDzh_}oaxv=(RUr?*WgsT2U3|j<%2eM;S}va ziszZW^X;5zY0+iDN9vTRpq)16Tr208*Vzi4%as=T`F;FlbU0t$yL=BOx$+e<8oh~2 zCoW9!7xq(pN$pwHUT(SGD2w1F)scw5kP_Ddw6E+tcar=>?%Q9;5vY@<+_;`aRK?t* zVH)9q?Wd^3pH-&?VCo=eyv_liX8R<*vAWjxk>ps ze9dT$H!COwSkRq!e}d40TmK43Rs*%il#DNNF9YRO4MFw3Dpc7&&%~hS?p_c|nKMiw|-iJQ#0!soD^@{{194Z+!Bt z+HUSiyJVl!S*SseSjD7>Lt3jYJh{PYgU;r^(skuDgDswJHQ>A zDa?4QL)T?X1ZIT2ZPR8*L#*H!-Z_V~IncF(!cb_Zx%Q~~qQ=LKySRG;BTNkO@8;oavrt$^rkasd*3L;QX(M;PiwVKFCc-qAYxVP0{k@3uPf&oYdag|N zM_guQ@r9JrK^TGJSRLgg6mtYgQ6%n=z<|$*rx^(Dr_y+p7Fg zTVhBtVjXm#gOuML13PLizX;Lhy+}fPy1bV98HFgbxZ&q-;nxeRb?b)?NQ5fBqD?4= zD4{fXnF+AF{u%nylc*L^d&)662AU^K5SnEVET1J!y@@D)->A`C=U^3Eid^}&&Z0DY zeT!$~(ljVv6n6j||H=HhPW}zL_JQ_iM@LnSyCXdft*Y7wyw6}6KP0=RHCk*|YdB|g zntAXJTH|m0@2%5uD<#q{Xp2ZppScD$ShMJ0gao_ozG3VmusHKS=(KF3yB{2=O|i~s zbqfj^w%%RG@s@cG*7tmSvQisCxKxF_iuBoEkGD10S49TsiQ#u+4xm+6;$dC`6cOcV z>2-k`uMBy>X#@5b>lH1NbBqua+yE+_(siHpd9Oapk&W4E?-Sd9KVC7WaN9>sRuu*M zfvO*d)tQszoChnh3>I3&v7Hf9Y9wy%{8c|0=xdp?y~kfXv@9&P)5d5Q{}w2rTZZ#P z`6H2#0{Kppe0Pypsp+KRch>32FLJVRQ=HE`4e|@sDy1Kmz$lSg zouu8ap-sq-5^}uJu%9nV%zI|$4$A10Rf%5dZW+Ui~V51Ikz(9_Ph7C*O zd0#751uyaz2a?<87-l*ao~`&a!XJ%y?c?JGpQxJPjg`+R1nMi*Sqvv{=N;%23O)kH+xYwRkw~9Z}^wkT2lozQL-tx5mRVmh$vF>#%Nk^6@IHMXg zWL^btF?ON`12Q^s7wrm@uk3&}(I73!dO}VK(s(7^c_OKx^5;>V%}(Esuov9z;XzcA zBlMOLgyAz?FT}s|l4FL`%t@r^GX`;dNNo&H$!S^^C~L+s4ngQ-qbElo=9RW_+yyRC zH_>8tU+T|q2>2}dz6W!j#ILHgPzjLdi9v&l=<&9wl|`C6%#YW8&HnnWnp#39vA8hWj zy|!#cReUX`pmib-K?99<%2>pOAUiv!8N32gqBM>=BPkhAC8)M1$wXfg!k8Pb^UP$M zvYtWm48QFMKz2i9v>Fg^h9#A$)5SZDU=>E(?>aq8E_IxD92anUry_}do6yoW4 z>8?Nv%P|KTZ^yxaH)DWhYb%gfTF7wnydzq5BIM6m@H6Qq+aUlPgcq~jM!b?;JdYu6@?Jnzh>NpCi5JC{*Q?U-MGHfHdF z!XT)ET&RTE+y1jf6+t?VS_rLM#~h^QBdJ4$gt~}aci=v#F)H*Ed2EbighVy6T1+kI zgl%!sdS!g9D2Z`_k1*M1VoFgkIJj2d6Rq1sw01-g6c($H?}n7|1WZLnw<_s;D@Bw_ zLb00Kq^RK-M-5oE3KaZVgLw&&CCwr-o2(*26$Qj>MgmLO?dciEeQ3C;Iq!v5 z{uG46T#<{g{uOeQun>m_>H%BVtbU^&4PQrGm?|cfqO1&Wj3_{oVy(_VNtp+NdT+JY zu`)H@#_lEb(9Ye&kjs5ZRP)powVuQwg;=)aeZ67R??5u3_^RC1Y8QKMGP};eNXEOc z3qy$Q#3j)=HB#|Le^@M8<24s18<8Lv@f=*K6zhq|$2Lh@Y@h9igP0x$Zq~+c=!e)D z9n`(ew{v$d>*eOgqC4ua@7IIUe1(S~kh`pb=QMApnNskP`^nh4aop(NR{ywTHCMRt z`!qu|osqya6I2h1Mi?A6SWm8piD$i4T1cGoCd9Z!z$AWFEbb<3IO1Lh@cFMUHfT-r z#KBxHlD~LVI&d|REy04Ho$uVLSgcN-nR z=@nq3l#qRiQEL5@KxrCkRGGTNwe&n43OgmTUpaCCW059DqH|2_Ak#QAauvH=u(&w; zIm}7@7QaZQ>dmhNQ&zvz3H}*{i{VI&TXBxSnrh+W*jMY<==yhoBlkmpVX1am?(=Kc zcq1XHDwgo7(whUW4OLkhU?fe_k^+ealq2Ky@!(ajXMSg*REE0Kcp@O2ZQfw0)k{B# zS-5pwG9!;iD~~s8FI-(RQMg{!P5cJ%n4GC^-G(mXg`)x;Fl=U)_?EVN52|{^!|Azc zJtwMV{NjeuvEm)>9P|mhMS_q`;ZSe+sfrb1-s!+Br_eoweso)30w%AQI8(VU2n;)Ysr9$?HL$ z3u{CDLu8soeu&6;22pf3qR%^u3AR{V*g|l|tMd=0rMx40sBj}Ys;#?WGpy6%Y+DAi zeM_C0`BF7eIdN*a@buq$c%&nsd=oiD6i-Yfedv$Kh ztuBT#Zrh@AS+`ZnhhB0l*!0BjdGn@4oIGR~=S->4I`>V%j(B;HnLJn~{S63O082W>EU_1+-+c$<(u9v`ErJ6>SC{`ez;Nbrd*5rwt(@ z7oLuzmx{4;AxhI)B*6H)7N_PNLQfdx>LtjyVZ!ljQv@pCU#JiFJ9slo#j<369CJU6 zY@Oxz7pcL3$2bi{2JBWU=jUg858%omHgO|B6yAfltFo>@>wx!h!k_DB3kBBZXkps? zl0Ey2(PRo3;kg!W%r=fb+$p?Q2ywRV?xg7Cb91&$Ix(HRM-qj zV-KwH^HgzFD!1*Hqcj$|5}z^o;`L(pS4v*Y1@hi>-4I#Sv5bGTM9(mp)?HNnoZB6` zy%#x=3lC#SDRi|419SYP+1d$ITU-kn5;QGnoWTOuz=;jw+Focv8}+vFTe(_i?syp! z6H=Zp+^#2Y3?}kXOF7TMz>(&916=C1y59fWGzhxnCPpT93^wr;erGi+N)!vLui0ll z|Nb~dWQY0(Q@XxLh%vH=PM7+t{w-#|kvRb!M|=Ey&Q4`r_%);`yVZj#jD2|ebGw*9 zJKjF+7J}?~*MqjmsCkfcV>1JZ@9m4d<^{sfo;EL4=G|f}wy^d+6H7n8zRYAqAi=#U z=uF8h7wO)toK=ZmK^>KQBH~{?t$MqiH`_&~+|{nZTE17=f8Cd}Ma%ch4)rhmyd5C_ ze9=h{ZK~*b7{bQ!O&Q(YRN?7besFf*zo2Tra2Xmd0G+)>$(s;cq8DMIIDqV*@9RG~ z8l#oC--Hf*%1bp3dI#HdxBa+HPIXYyDNGIXwg}^HjWV01Zw(6eIpV4K9QB)@q1uC( z+R4aBV%5G#STZE$Z`3>r#Vx$fcApAKjI%J1mJ%G4uo>^7yD)zcl&`EdlQ1?g_WVje zD*_t2%9qxjI&AjO?Fc++J$^_T{VqNYlg3RBKeIt-<$ydrhpnVGjEoB4T~dp8tyoI1 zI#)dGG5*5oc!^TATmKnGk}MQ%gRrQYd#6Pg+`b32-_iZAPOC2|=*!#Y56}E6d#=7a zs*Az+V=1@dy5I@!yOf&mNW+=3w-p)8;*1PUCUGM-y&bU~V#ff*^s14iSx(v`+iGkLW?=5x}ey$@Oe`yUdK+v$>t96g-nnc(IyBNX- zyZO)1n>X%b-zAuU8$wW9Lo!wkm&*7)?c_j)Iwe~||1Ho#dJwI@pLH6%80LhxcxiMi zh1b~q9^$@_*8tfHR?@{M|YtgsBJ21sE zq}k2fcK>{t^i1KK!S&h+x2I`pG3n|(11xu*6Ggl!?1urF837OBPTKWH%ecsLINqUo zgL`2mE}Q14m;NcmxT(jf_hamfwM~V|zwVD?dY{<*Qx6l%Cr)U_^(&aLccq|96#euKnvUOzbpU|Au*6<)S-~RvAyF@6e$KaeK`Rx^1lc7{ zytA+{N)&!%l%F?72-|htTI`zxt&uk$lWL`ShY}A+)bO@WQ($+qWXL_=I)h-Px!gpDVr#A(-UK^HBA6V`<2PONI*m1NB z5wvkZ4M>MDdx@n^ctvg5&ac4n%e~*~|2^*TNNbp$8k*NA{xzNZ{`#i&kj3K1D|`2k zZJtD-;KZqlcby!|lrQ2R{3(iMV7+J2sjqgvr0_1bfyAGLISDUgRb|gUkJAxo#XPWW zoRHaeK*9JddY*&KWxXuES5qbs=$7|tpW23%D}jyX{?@{%YNA-5O~H34+*zM$9`#l91viH_ZgeXsgxSbj&Q9Tr5Mmi41Z(MJ84eW2`a9Lvqzug-@5 z314K0aNsQBS<x(xw?xMrG)pWhfm513iJB&33rEMKPt6ET zfi&u1+4*Bh+TTSm*f1sb4BnM%ik(X}dV)0R3@F?13*(IIi^NjA`i_LkbW7s;k%t90 zrF2bZDI%mtaoddTvTrkWaAMu}Hc9-a$=XF2@@|4Y&XtL^p>s9ooao%|Jl~My%@DD_ z$}76jEGe*fKf*53A_5mj{o3&S=MjVmJQWD^i2LdF%Ye=Oz24*!9nCAbQ_I>{OYE6P zDF0hP?2s~H(HG6^=O}}2Xcz@yS<5UA(RidFe;5_2%q%T4F=k(g9FKerBdSi{w%b7- z`e8h3a)vTv0j)=q@e8^{y~0F`9%jgR7Q=Nrhk->Tu?jD&0m<6IvjMqh6OdfSMe|bp z9&`>6$V6Tkduc%c=U`e9aHMi~DalFqE^ggW?D}=^CznZ1agF?-Iuy9(YnJPKAbDqC z%s8!r#_ob85Su>*=Gw_IMr@eujh+yoL9mH#DygUvh`J==y`I>MFGW3bVw^#Bt zrk+6D`ExhG^g&(nKGqeh0%tBzYzGBTSoWGK@hQ)~ySp*OTa!n?-?D}OQqsRp&KCyL z0_N+~B|W%2>{C_lh0RMY!r8=D3L7I;lv;^O-0dn^VRMMRKdXd=UDtR@=Ih)}+Rhtf zxCc=+UKtSz4WEc3I0tSl)kC1;i~ZMj>jcNEX$2x^l{y!Di9_Q$=?Yn>c{47z@`Q)+ z=Cb5L@gGpF#F5}t!3e$Ff?4uTlB@&Jj^(Wef^`Lv?`LU4oACu8E?%Ze9@B{*=4-5p zt}XPrHgf*X5VMK#uIG_WUsm3%m*GSR+wlZ_7_~@46-f$p z%smXRHZyT_MhA5B#JH%T)Au*89Q4#rfK!hKO`x%0{FX9k<`~L+)87PQ{afabIPsf5 zCO+;^`{RQ^e4{2Qv-5TlUW40#iayH1`0OsndrCfXM9vA5^H(C@s7s~)*2EnE@tQF0 z^PZFS7?b9|tkkVaW&%gE3nIul#cM7JNlQWnVy!kO%QI}? zO@N00xhmJR)T&J<6jQ`sQF@(+o-+2KN!N|efc(C~w%@3GaGAT24*A0l>L$If*ZX=nAVS4c%Ns|2` zX&g-NDF;Fs<56w)Yay}|TV?8_7ghrt0DaxdHnMz|@HfRUbD zzZVm%zB0+i?{=}Y?Jc>f2qiKLkm=)kSsEEP3gG1grhikpKYp%*wq8xiWYe8rG$2J? ztyui~0$icDY8FC@N6wG1y1k1#4TWX=1ZRPHSc&F%QaONt5z$M!X$4b{=@uFH#GKFd ze{Pl8Q%7J~ZN!M?j9e~}y*(Vtk9l>`Vq-_SDvXb7uq;35EWSqUN~2^YKZAVXW7w8V z9b=xOUrgsvj5hB&`9eJM?8YTbMTJQ}dxV0?WMJ1p8~YqD87Wy|*eBQ`bqNooN~iQ( znuk^mEP6mKW@D^yCc}4#8cMs0pVjIO49_4Vdn)oU6l}*g?M5X2eU7MB;wf3!bz`Ba z>>}23uXb(e?H&kYPY)s-#C zNqIJ9tf-|24xE8s?Ji?g^@+I*W5o7SUo1XJW z5TkaLR4d33RV@7mJXQWy`s`T~C?u91l4p16G_85ig0&`B5Jv} z#A5^Wl%+SWKeV63hVp+1Ynp(Q|9iR0NN$y4HMBXtvhR7ypK4Ub%d*2X_I|&B>JL=8 ztx%Ii#h&*0AD(Z$XF$-$gH|JrxyI!k-^q*Qs6V2S8piK!>9IX_Oe>_D$+p;k;@A9brl_qmo+)!&Hi`ba8z#d2%c)6$ZftKV3W+EU zSvdS=#)QQ5Xo} zOQJ0}f`NZW_jP4h+cO)!zYp&+E5!2db>-CxyPuAp>AYd>H8~LOrG3z9X4gX|EtBht zgSn>_X;OUSrmJTC)bX!BTkke-($n``-o5u^Ixda-IkUPYW5(X#-lm(d{6`amb1V}z zp6=_YtbJosEBAvVm(%Pc_>_u&n-IiHmnaBvpi?P~Xr@}?j1y>Y@*0#q;+&nx3nrSZ zly7_?$4;YVV?j<);iDH5+V~XXgMZHuLIC+S*ZX_C5>`|jcBOp@g&y?!Xq~lG8UMAZ zjOx;r`{C!Q1LP3?x*uvwH?1&e_OH85n=?FW#(%HtrC?YvC|K?0cER;$9C`>mFh=r> zKjR4cI7#AoP723Pp(ifJyx2aC-?L-}1+gEkL?b3OHm$cQ*n-kn(r$WzYr<(FSSy5q z>%S9>B@D^>#ZqSQl_jdj>6H|@8;T@_YHRw^2;mB+Yj^R+n2A%FtR-6dlK z!;U`?$0y(=tzTPM#)7_Tw1rzR4~ z=70OwWoC#azbHncp;vz_b-1PiDt$e=1g=@F7yr7b^x#EAScu$9SrfO%|2x0Kzr-O| z(ec$WfqdToAf~C-6m7m<*#`&eA6p~{X2~@)0vEwqnGIm`i6$oU3Ah9B<r-u1jDD>zrHK>%+~Tv^a4?3EYo6z=bEN)9ziS zkqMaiDv!K3d^?+%nM9flo5lStDlmJ*-U*0oxutEf9yK}}vh1yF^Y zy2+fby$6- z+9IY_z=((#FoIabzntrDsa4%1rmk-m4ES28O?q_wV5k&!VG-pD#YY z@jmJZZRy4H9&1zex1RvtO^uoTDNPY8x-1JV;#}^%+A$S8p_=jU zfA!Dx^%7B~E(rj`3N%F?feFobxALV8qwt+$0JCdkH=n{ro=4~PL)+vVNcrH20B`U@ zj(RPt&;n@c?^ZopKqp$O?*WWXa7XCJ0=din@b@N>4co7lM$rwrU5qLKYp@KZ)j@gr zSyoy*WnPg8S5%h49RswiW8PUnmWs%Hd`?0Ix?Vl*e1BZIQJj*Foe&s(``>a88s4u7 zf3sbV66vAji>mmR3v&@8ClV6_Z8K4 zE5WnL_$8kP|M!C&fDhW0W$4z6(Vg!t=Td%i1<3TE=YZzyl^+>zWW~=^aH8 zwN$4$+0CxHJ|sa`fstjx!TA1%&~S%^2Sq|pMF0MbNI6}kfDR?)jN@RMBkI3{0vhfI z==o`UYqfgu>`AK!xF70ZkZ&br~rR;V3qJW^@Pzkn-=q^_AAwTkj&_?#NvbGSL z55Vkx`w#m%L3xdPno5t?h(nT=Eo-IeRU`zyAU$rvrBv&=IBC)aQB+7-i>)qtUY1 z&iyBHhk|lRVkpcJsf=)qO#@%WrO#Bb{6V`7UuCEm8tZ@DaEmZemS_)C>Y>@b>UBLiygiI zwV?!&Sw9PazxpwTj>st~kXkGW1ebtkbfJJ$`?tzkd|Q=XJ(F?tA^(_}IQ3!UQ_Jzk zi7G%B^_d`VOoJ9WT35VYeX;>eN%&WzSH%z4{99i7m*n)E!ViFxWv%v0O(IorQq)v% zVu}D46i81!N~J9SJxP0D&SCC;h#pD?98p#u3+XB)qQc>sS`rnIema3$@_!|J!90*s z&!Z4*{Z}Ug0^sz$EV?f6@>OHm;t^fT7Vs}V?T6SmYK6#=I|X>OZh@U68k`J>|6}XR zqoLma|1E=Il(CaA!(?Al*|LqXOSVds>?$clX++ksi?M_xOHq^xl_-S?389h-*`-4E zCB*Of*1fmS_nhB3_pf`q9cJF|*X#Lwto8tD9G{%JlFai9B1@kHxdtor4Sn{3^wl2e z3SeRV1vLCmgFjq|7D~_9nw6v9Yz)KAq~Jt*rqat8BuI6nyZ#p`{O~J8vM|ENtR}U5 zd;c}Q<8QKfk%ZLj6D$R19dX5H3Zq!<6fhjT+S4Bul;Q%IwP7$>qsSAajQ*m7 zY3ST@NIK&aQ|aF?kjzF2@T!(Amfp?9l4Qo$HWuGh|=oM)sXi~jH;aU!S;K)LCO%4$+P=JTgf6Vzjr^P zlr)m+hZ{gp<-YTZHqh*j#ESE?dD%Hykih|Fnrn2a%Zl4?jkotqb1+nQn#BioB}8ml+QHGT<2BFxJ?y{t0AyGc5k!~6~II&6&T2{{&nc67R7PVC|Qbc0zbXumzE1S&We zdTDzD`dF9jV@=pN;!%QwB9gu1{X0l|@d;<}`I92$n0G~K!Na5BP92n;ic0P)7AVBr5TeJJGv?OU7f)a)UxAnt9ep$ zzjet}>9qJ7D&9`hY()BCaQ2~_$VQ7}Ww?LN%vxoOd)Bj*E$%uw6}Bs`Yo)WzvSVE8 zdJ5RAF}OENsU+|kRUFg!n(0b{yIHg}mbO6QCN4<**9>$lz=@!~P3cjuK7$HL82M zU1P<_liE))GdLa|Kj9{nrqrjsO7#NoK3cC#;$NI(bP)NeTc_l@ujZ;F=i(jrmh`Ti ztaUk<>b{DD`A!hU^Q=joGJn)p(vf#e6h?GkE~%3 z_X*9b)eEEal6P_6Vts&~(oq+jo(Sy?V-J5+*MtD}i*nsD1CPTkMP?ay=qxEMh2`b- zQ_94W)vQfxpt*hfG+$U==*|Jb*4>;e%!{n#!!W9h^wH*R#WM;g1FxIcds^ zf*EU5gjWgf*6ry|bE23trZ z(v&^4E90&M->TPdqb3TeE2dBz^Nz7SLQTT2_&oOZwg$RE?7QPu1~tpU-jCiIhGDV) zEPW^KQBBE2vr8y<@%oEdOqfL|B&p9bj>#dNoqylE-gsK5ksE?UPi3rkAxGy+i*Y+K&P_p4Qm~VXim?++xQJve^>$0-8XcIlpl*{E4p@pZQPDDvl<8zhGuRqR{CY9n8JAMT;NjJx%gycz#&xMBDZQ zy<<-}xI+C0_gkG*uraMEW@%^sIjDiLDdX`xYA?}uTck;#+s5ofFBfA8>_3y$i2( z@$fJ%^RHa6E*sygh%z+@Z4jmn6=&0iM8;M4Tt|-7GL+t8a!fffY(RhZ6+?N)4HXk% z+Z9ePx_vEbXI)bQg`To^U8nL$$!;SRcXUi1{*4?+VI_$E(58gvYsk$4HHLqJB`+`0 zr!Tc0YKk5V$G?PRc@cMT>pdVr2XVgI~0Bu332y?ZA9@x3E;8`%S&AHO*~yvW@Z zTQH_Tc}C-o+UbV1%y}3wUhNG8(z$OvPag1ptl;Eqa?}_RRdqQqFNM5;|F9vQaWHbR z@hNcOEzMDD*DnGv^M*DJMIUA4r*c1_Fy`=>QNG&=P8O3ou}R2VFWrecf8Xcrfc@vnau&>00~= zV>3A$lH&)K|M}_BVNtrUDZU)IbL5%;J100@; zy&uZ3cjK|)H2&kgNf+oQ^ZE)%n%|HH6&KbJ7{;qAwu)+3oAO>eT@I?rb5}4-TQ%`J zl)~NqBNOq#loxh6*EaIx0i#T6Y9+!h$$s(eKoQCx(lj$Is zPvxAQdsVsirt)M7JO+HDDw6)>w^+sI7@hT*r1T0W`@*H7IwF#e2|Jjd}Hzfkj^_#~q+dC03xqxQ#6z9uY< zK&2{4Tg?Ezc?k2Ec)dR6XGeZS00}WhfAkI!QOaQ*ucrloUATSW<%5Tpxg&?QcAfvx zISo3M%)sE@MeD}&$_@mD8d?tsBzwn1ZfQg3OW?@1pHiw1u+bTr9^L%RUc$I;5Tg09 z=}3=|Kj9ES^F#qj<2V)(GLCxkh#0Co6u~Nx+MoY!cj6p^1I&qRoO*7Q90GFX(Y93f zq%}66#%*h}MDMPBet6>AX5M48$iW3yy3Kr z02mGvgYq= zVHr)H;z{;Rm)}A;T}MsGhD;wTm4g83AYZRB{?cfPTf+7;(xRKv z0^~+#?=QR{+vB9YnAZr!cf2(-`5CI~=XYI&qyqA&Oh@8BZxw4;iC{#1zN@}wyoUd zF$FEQRZ~z(8_Rc4stgRd_IJ;M7}Obp-S zHI8gaj3QjQVsk_qS*WXqs3KGzvdBm(9YLZO#xh@byFCY(Wpy-(Ilvpz2@a5|J@{Qv zxkzafYzJ?4j2tgHCDem>DXY~59AP6aJ%Yp;gcg~~jC2uePe6r9S=ln+1*VO%-{%gR z|KY9JAk5C7#yE~PT=Z~Dd@aB*9*u&drntV+dxs`T1O4cjw2o_k4^uZ*Fw19RDgB`?9K!65CzHh)ki92W__?_@=Q3RWgINT6&$}* zO*tJ$^!7IBn@XQAD*5Me6h+hx1?TQ=WZsQ>iZAUCUi~m>_+Sd41p9eQt=3U?S`&E^9g>z4KKW@2xf`xg-%VKQCsYmRC&5LNB1XC`c6xH>R8 zQGY{cK!}?s8=&7FKQ&&Vqum4Qgvv1pl_=loMEOD!zr|Cx%7mXtb9HF`E%VQ(F{+F6 z%;70Zk@q~K*d9~7dAt0pQ=s2GHb?P5wS+hFBr(s*W5Zc3=+iz>MB@18mCt8Da9*JP zNQMD@k|wm(^JVadhf2#0)SshyucLGldr5$CE4dFVHIu%xGcot2Vb;tU~OdDfSQ~}Cmq^;{EV%c3-&PA$~ zXh`7LpvK>RwrX9%R!Efgx-SE_2;O&luvN6?)9V|?&x2Hg4Ha+gR(cLz> zQ8zw>fM4$^ezP41$eGj#1`7^N#c9%6lU)_&E@#^TO-jggLG*(vzRf*NRo#@Cu`i+X zp}6G#SX<=sc&EPqeO~eHO~B|~1aW=Jef{jkBX|BsEC!m?hId;@T{LWgaC=tw7+at( zI}aC^+%sqo(wKhDU-E-fZUo{)PKvV(txSjGa`yD`P`8W};!Jim`)P_yhu1QO2eFZz z$j0J4Kd=x~$HO%%IREYKOAz5S>S0SEA?B1C;36crp%bb@n}|rD{Lvi7tAnP%emeHI zwdd;eS438uPLPsy?oZ(N98#}0VKYXhcmxVaPmjaJI%ptjwWw#V%N3^e3Z(ky2Ry=v zT~xZ~K=tq){srdgoixS=@dVd#0?I)F+=}}51F^1X2cgFSiI%S*H^vQ5+dgdle5Wr* z*T0v65dB8Yp{clS#SEhbCkc5A0`TDMNu=h0Jxc)ltb2(9@6aXn7rtZF7A2{2K1 zR*PEB4(|`UqD_*z3!i1v;;@d?@O6~4M$od4IMMRP@L3}11jYBKG)*Z$1zWuXtyTYA zGa^VZ#&POhVZ5;9Z@nT})B|=+y|{ov!o7Br+r>l+l-~HNn<+I(W!a4aqtH28t$U;&tuoHFFXOa ziQ4ze$U=GZ0g4mHZa7%WY*a2^fBL@^L!;3E ze>@*~T!Y18;d`et@q3kGW05@l%Hh1&6`Q? zcR!$m(*XM(L4@}sb<=B1R4%g^eg*rJB3xv>v@9t>sI8eY?tgJfK1@Y~kD}yju#~Ot zm!O7Ec>BoX{hdd`Eg?-Y1TwfyCA01$^APlCja@bkIQkpMP>q;xlJ)#XqV!&GWpKqKayhO zN$zT|{AQTz<|2P1X#|>XaaTSDASVngowg_le-QWyWu<{=ippH*o)!p|cG+O@5Z{;^ z&NlP#deRMAV)%onQD57x3xUM(Nv|twS=`%H{r~hGSOyP$+ycSiSX#FS>Zx@%WtWg* zSddugI;X=oNReWl?0KU2=~&||GI^kSZC53EQ|wdGLhf2|%eKG~3IOfrl*8mDOrfm- zUs5shiAn%+kaY9t)_nb|z%T45j&jSN^2k_8IMcm)Yw?e)h3Jf0uGudlLBJ50)Nk#~ zBsOU@^!}^)_`r!{mlGLQDCtK(l>LidP>9<&EzRThB$~$cPztr3DaP4I{&6&{BYm?P z*qqmMT0EZGtQ9j12=IBiXgUbf(7YNz;uD5Y@pOwYA6<$RO)u;O-|V^C8zGmKyQX`t zx$VomRT4n=;l$}{C^xNxe?F8Smx;~WPkBxz2@x!Jdgk9bHJQz}d7L%Jz`JSJc*faZt^yeW4 z(;E(9#LQ9G9#^O~l79$pzV1f2+=3>ZMc@AsHjr>z(BR#9DYfUO3N`O@>K@gbUU%>Q zdpKCf61#YQTbCEkDqG)#Z`v4-@S}6{t5<2d)~Ww4i|DZJ3^lEjh3Aa!uSp9FDDV64 z+i%kR#|~ZcSZhu(elI*%#9P>y5JeC2`q^81Z#Mn~`FWF&jWaUv&hiCI;nO%2Fya+E zy?QH|?;QJw3Lx&lQQbFX3S52s3%ambPvEFi>i85f4cFW0|Nc!U6VU}Z1=K6{enIjd z#(Z(es}}``K*jb$|FQ%{mZ)--_P8rvkfbnQc<>4Q9#R+t{pS5DnlXyM^S@88I|){e ztDy&#NqG_|1i+q#9`%n03no5V_N`5NhsXv#zhn95_myEmc3Rhc10|etSLV8kB;iwZ zqYn$R7TZw6T(T7UD+v1KFB0hIeyv6L_FtIDm)!m;)!NI-hm6Td9v!_<~z8l$a3Qh>jXjxCnIT~ zEw;C98v|1Er5pf#aGssFHedl63|Suw*|u=?V&amHYPL+Sl;V zR34-r_NMqZbBWqvOBdj?gH5dkxm&l}TD46}AX1zP-A@r#4 zX`WldQ+Z(FdL(-4-@!Bwn#ku2W3HUe61NdD|08`HL7rjtt0CF4MSm42M05dNSc7#( zRQP_Zi4`{8P(1)384COgnnVSJe#9U$XJPQJ%uYa?DPD87Nt|9W47zhPk&$fKq!fuKj!s|o&11NKfJh2nGLi}AZ`9;X$^9zz*#$#FD0^%BK(3t(anRBik-@-^w8W=&Wf9aVJ* zovwerAOvE^pw})GW|ViW5KJ*0jl!8iUX}Q4|89?}=o=k12=5F(G#|pt0k;*qGjMUj z2R6gVjn$fsmMa?b9eSJC84}7|3cMW?&o>1yKJT~nD7-=g?(h5U)2mRF6A3qm_S$!g zkaE}iN!yfV5MI^4^%D~0Gzj5KZ180`|LlXfF7fSfmODpmQ7QG~mN47t9t^e0FQJbW z3sSLnbc0HlR?dm@Lvv%(bcY_t=+80jrVL=<6fU$~u$;(+2E#$%1Evoc`a>j@mh-*G zUFCkTOg>rA@~}R&5-SIBW)<>_EVIK93%AR+zUB1O@3#hH#1qkAcPTqyqLjbW?G?gI zANs6fvLUq$@&yV4M4<_dK}hr#QbPY&yERK$w&N$jz4+E__1)Wpmj@TKA#+RdG+??F z4|M)K{!|C#fLnq2=nCU*&ok}H_8Q242s0$setf@PwC1Yw;Qt_>p_?zt8dWxA_TvcL z#2BQ^9dh&@+6}sXNHnT5*O=s41Z?7nEKOqwe!0iKR3=aixZ0LF=~jZ$;Ux$M%}kQs ztwR50#jevILA16L@Fcn_D2}8%;H9A(W*q`mD2A3JI@>*0!Kum`(~=dx>VtVJfD-+VSv2y9|nHxh|&skK_2Z=>J|3Zi5&^g)`X!Y&H% z=NSA(c-+Sri_4K1{wR<4x2`U|t_@>+2@7l93&Rb(4nUksU^ueryoGui$`QBwc}y_`M4ye@zu;$96PrIwh8im z7>3O&cTo1Set=39$*U>ZmuRdDQxH8xw2CSxU%=g;2to9Ph;B*TPIC>b&r-mKBEIMa z^OT{bkH~{$AXZ0d>J7hSziFH?lj*xKeO=Yt;Uu)DECT>xmb?+IvsULbu#Kd_Dz5B1 z(&RH3$$unMMpJuwYXC5|rZh@fLTno0_bPO``=J^@M=!6*hhkg6KE=E%rf%B1vXnwU zW$r#XH3CYIMS&{{+u7TE9y@Db9=$R?SK?{dH4wLfI2{V zw1?sn2-%#5<^yNxOc2%US4~LF5vtmbMG|u)pU^k^am=7t8LpNA6!BTT2~Cp1k6aJk zQ!5lYOXZX5wo1`+!-+7&UTRK05&qP_FJO$WDs)%>oHX{Qbeo>;I!2R#^_9&_xKMX7 zx8opX8v=_@?r~!zpa+XAD;%NO)ESHbDqOXz5&Vsim^u6*^KdPa+$8~_nPY##b5y6; zr{Z%ToauqcQ`nXjGY=!_OP&rqkFHxD?9(C14Dt?>&+}@BZoA=LcWGsx#U9nIWC0oD@GcnZ~ zKD^kq;WU+_Z~n)90#T)qB{jgRtN((DHaDP4+=}wuO}I|w5@D0R74#}aB;aS&m|1=e z955_AQ&LMa6*2CR<+;b3PE!JXi1M)>3869F0BP}klC{(Msr2keLSg7>B!!w+> zPfV)S0UbBia(JnQAWZ!HtPE8(V!II8+G#TBHl03dLH9>qOth1(bW#R7_A#)ho(|j3 z1~bhXQY9JQ?TA$i&{LD2;{JW!dn@S_Z_8o&vnc1#0jr^;l?FXJNpJ&ex0XR^Q2Z6Rr-$N^49zhC+22nI#$*Bz8#rBU3Jb#W*DSr_K74^GYUz z8}aLbhXVhcn*->|w~l51pVQILdbvQxGk$Cj`>A6+p^vqO)Olvd&oZfuAuTMqYrD4V zfEvW`2zDj9nh(m#m1G0cdMLrPhcqn~+_om}8Ms1ii^MH__O~Ghw9LayB7766ufjVH zk&ocW;+5qLVst~b4XLMw--dleE$I=RMnh`pSw8vy=q$cvJN4o2VFi8`=S;M-^6^%I z2Y0%=c<10V4}Re zx1sFJpi8k-J&)`A+Pz|Q!;41IwGL$*VfF<@*tSH1WUgjFd4Oq$#F9R~KPo9QFkBPF zo_xDnWI8sfSs4CzAP<$aq=Ag1xUwl+Cp=+tvnd2p+A(YlyygcBidaCS15+c0tin|09!Rk|7>lvF*- zo#qMc$FH4foE!wv5Qe(f-qH24vfN?j;lx*oEr0~Lh{*qJ7#e&0hsq6`$5R^u_~KNm zrOH1o&OfI=Wo5&;sqkWxEpc*q6S-1*VFV6~C+cdAdsDtfhelso$cZoTA^eY4`&|r} zoaCq1uiT1yb6rCf=_|U$ZYZ4~*3J9L`ZbYw}Ys`&|Qky=B%I|y9dlP)OJ;G^pP zGz#DXA^ki*po4vQr)0Gw;-Rs?bn82CP=eUW+(cih5rZO{(yPqQI6ObO*A<_w)9hUdYf( zJb*DJzT5rEI{`*;1tGT6cEH<;5)(r`}{ zu@iXDd`6tWD8fZ3ZuDc=LGOH{^qq7;^{b<}ih-HN0Gg+-(xcO#-&v?Gr&}JRNXtl2 zoVr2FE!X)L91z>mkDMy*s5o9I)&(w)?i-q>O=e)l|oJldi1Q)A{xA>lu*17=}fe;*hw#P*?qEkNTG)sJSmvPHf?xa znLTz-b5E!E-_2tZU65WdZIH~D_dO`mhxdNcvz>!Cuq8FyQX$Gjg8QPc61gvdu;f;3 zR=A|N&o#ed^CQmM7ADvB(0(S}AiQw<@Fln(vy>VTJ4V&hYIAfbQdG#Z@!CRS$jsv54paCc8vFiDfXJ`Nz zJ`DI`W?tE;+2_2{?5<%!FoR^CAkm`Kne(oBy_YvW<0%T08j$KMm-ZbrG+u|%f{&p< z_mFhr;n$#=^bB~-CMb4Dx+KC3JXB)bFAEI+eHc$xAXv=F`X5OFQe-FyL&CBI~z zZ~Vyp58<*@MQJ|T&&SHw6mfRAk!e5kP zN>wU$`3xaA)K=&O7e8$I0x_QOEpivC4>krVpueA8n|XC~3wa3s-xO!yI>R)N!d+f$ zy?X?mUxPb=lfu%@L!8YQ!_tG&_5*YYK=as9>9IVKloGx3cqI#J#GhSuI1@GQyxPg)>1v_)$+UvJ)#sv357ZHpw)x88g!|XXP|^)_w&a z$u3$mD_irN`7uxoOfdV}5gUml{CviVi%m8f#X47YL;Lpyt74ORt_rFs|AQw|h!6D# zGCU?9TinpME;vv5@$o(gOY7}h?DS3kB6PQOaq)4%97|~p>OGqMb`8Pi$}Vo0P&%F8J2uS9hvgY*B_^A11!D}J zilt~Z^SexdMx;XpWf062CNQ&tmxHA2q}t_B$A5Q@U?@S)hgduHB$u7~rXC?@G8cht zfs|oE7gWNG+Tf?xtfJyHvM!yvuI|xZ#;*`J$Oh6(TTqVjt6fh;Nc+XQtq&5wy!c5e zzxtcdCA{cS1Ywusck2d3;Mk~ORr90NQ>dW*`^B#h>^~pzLG8bjA@8#o*jEF8a^I0t zAij_D$m(ubb^ueAI;O(9yOG8huV+8MG%FH2x=#g2xFi3Hp zLOpi@t0;fkqSPJM_mtA46ivQr;&P{iSDG(uC8Ixxg6n`oj;-i6N&JxPObv{oE`Mg4 z+Bzk!hJccD`@S*}13h%`Nh!@%M#An6!eq{YFb0pXXl6H7eR>LA`(99b`W|W&L1$C2 zBvX$K$Yq?!amjoE>Gl4?id@Y&irpn(uKdWqmO_=7F*Jvn;4sDlu7F|95T+`XS|LSN z{uNyvygMZR_|DnTyZ#XSh;|)q$35aBpkF~;<$}zkH*^dyZrv&tlisz{>C}yXUih%% z3B*%c(m{h)8kkP*4$d|Gv3Dle&hm;35=Z3YS!X?U=pXh0z@dQ}wA;1L&utskR@=H=t%Ln!Q7ZKyq43r*sh{{g z&>o7PQwbZXYYD9%$!W#%7i_*(i1%`TLBjd}=mSYT+|_UCA-BTk2^+lxSsIw@HMGb{?9Sn9*o=pKv3 z(~R-t3mslO{p65J>ugV;e6C-2-N)cbQ{{|9y9@)ldov~(J^wORz<7%$t356h+muOQ z5J3VQG9OD7SVNk-JcT#*`HVmQG>==N>>{2I9cl1wM-z9-5lEEKUdpuYZnx)?2F{PM zN(21?r4)Lb@lxFD3=jf${-C@0>HW)CRE(sgbasbN?`G8FGRX};vIk$l9d5+-YZ!Xk zTG5l=d#fH!j$8O+rcKp-87N zM^8Fw_Ud*fsTGriOHKIbOzW#pHNBbUlxMA`!!mINJbl=aWMXN`EAh}Eb|i{9oB`=b zcih{yaPBtX6~O2CX?S{8iOi1ht(l!ehBXVGXH8kDb9ON5mU;He5qJxSVRf_jL>#NwJF9O4V@#!u8<+s>)gG@iR}ps0`fG z^zPHdG%&p&|HO?fI++#sgIUi;$$|%s)wIG@-7>$v&31TNo9f4?$j1>fy5w%BSA)zj)Nx?3Ea2U3Uxz zCIX~sY8mK`7M0HQ2G(?sN{_&a&%WC623zCzQ3R@f&BVlO-OcZQ4Bp6|@F4INHi+Dt z`}@c zVI2;Gy&nO@;m^HaZlSTys*y`&9N?Ui^y=;2TWQ+5*3{)|R7-RL*6&gbmdiSIgT9Wj z5aNrwUJxc(BD#0FUuEWGN*)rO-G>y(_!@>D!{1<>;%JiT-Wp3OByt*rJYhVL3GUoCL2SM z9)1JuveRYDards=Ib<2dEpj*A05f7-wZr^IW?Ej}7Ujp7yP7G=Tz>p5CDw&${%J>^ zH2-VpJ*j{$xRi6~^9F*eS-xqAFiI^2 z)a*=&%Z<3rCL&A@th^AXBh=2U35gB|O;@!tB0nBDx$hGB@^t< zV^0QxlmJV%6!GSws2G>Sq8xa~BjMpk*~hkjxgUL$^*-xmip(U&vRd2cO0HI*zraqX zP)@G;Cp)6#(v5;*Sb`v$gkTP4tz1;Eq1%^$ouT(@YPM$L1 z5~id4IG#yLVFDe0yCB_8#Mh~~FkNO^|N37fO-7jhFljYA@7?Or#C3Ui{E4uX_Ep)CT}lKX7klC4~oRVwrXeG$EPnIP(!H z$@cnz#Zm5<0$x4?scxtA?)_&&G&RIcHsT`p5>jqpWfpXz=}q=KurGv=7Ci^Ph^s%5 z{MHtnbZ5y4a96(d_+Ck=3cUMtaIzaWz3STB8I{0%n|~iCEW;c6u+9{oN>yth@kbjp14d=e@E34sWz8o5;R9f!pk#vID_-hbgA0iN| zFiGzoRd?VZRK>f0>&Q2>%yWCCF$ikOHvv*aFRUUGEV0@5p+8tp=Rdgj=V<+_$mLpj zQSUA26#0rzv=k0=xRDX2$EI!SZhN{v^fZ;(FzGX$^%>5r$kA`l)!n6oPFtMpVR4xt zVX4^CPXA=W^`^G)4V^dgR^s3)-|MmI)mcJCIx)^ma zz$RbmtVNt$#dFJ$bLQv*Ci<^!l;3+nLdMwlHi)`%@%Zh+kT+$*KXvgbH`EhftjPUC z;^K~ip=t8X{%4X*P(a@7H)}Z{w#B*Z`>ktP8MUyKy%A@K)am22B^(1EqD?S-CG1GS zRxM@_NX;iyqxwsikfObp40iPNo5s*;Cu4T570$gs5OLTE;z3-eqk^FFskDF?;(be< z91(MCY;#-#hNQl-MYjyRdr<*%Un7z36su?7Wb3!)aHH$D{*KI}s{wmHWJ~}OOci3B zaqE@4VUP1{Vj&6P2*&H5o(EodNd{ezgW0AKc~f48;|P1y{%|(SGuqtRt!y%K<)+{M z_*!64PT%i)bkDf`{Y*hEW3OK8ki7Z2*6SKhr!TaX$c3C1L<%P&^>b!&?0xC^6xtJy zld1m`O@t03p$ocF!yCC~rQtkEn>C*5dw$uCX!7EnsqE*fH60AU!k!F|wqbdnAH}zi zlzar8y*jdq8QM}mx6jEeS2S$fef<_21$#CK6oG4@9QzUK>)D(%=mm_yQL z>DMeziQ-#tn=4r&y@e+0E>iy+5^yL}ecXo}9;xE@=GMpz%BU@$aKWtJ43LsOO5m1tj4IO?C(jXxCn)fC79~zG@QeOBOv# z1@E?NE_5DPe9dcGIR{+zwQH&kbuS!if}LT-dGf4GfTmZsYTvZ*47ly8;I1x(c7EOG zR1Pv#4k&f{c$FuM_|EqLxaYKd9@I~e1^p>-JE`Ns1+V|(c1q8s{3|=aGDL1}glz90 zwR2*`??3d=3so-)T)1`b%>K_JJin0MrpT*jn*GzpKa;Z&3<9C?%1W!C$tmFaoyGp^ zu&XFssL7oxeN=^!{xqX}#rr@9K^X)u{|Fnf3{0HH$|hlw2HpJa+I8ng19a0i{NC}7 zlLaan`dfyT>29oc7;FZQ?{!>%_WxB?fniS+@a?TRs7J%*#+&%5sLTtv3!|L<>mpZQe+fN=O}&UxWNwNgFf_6VpQCc}jHIc-_j~utR}pb417wd>j3bJZ zyI0~ZI=d7kmdJZcz=`cIBq9bZj)Q=jPu`9?3C;>kA16@kDq_(-cJFUnJXzxh3r#F9 ztU^Z2HdbY!@E~2{t9<3>R{s&=nf`o8dFtYu*HGEn_RdE_o1m8PMi9pEFmadl;+P~`AYkFhigF;K53wX}V?qn?5l`hZ;C`)}GUWZ?_FXPqH1J0?T>BO{#eF-=d%7Zo8?IA zg&`p8TLR3MmHSD!1Yr%8lJaI5XHW#9K~#c{^tC1jRG4%#adHNl4!ohq>t+@Mc>7v= zWJU_#sK7xJduL15QzdlI^x*NAc zHrDe&q#yjpGPHS959pvPQ&jeaHl^N}f9s;K|D^R-Ym?_8`$9|?fBHmL23l`FThD1| zstH<6=dKdFDs|O4pJbjbsxPQaBSnGmHNR1dmpq0hSCVJ`uGmyI;$7cM;-Mq` zDT}ZABV9)EdvN;b=L=x%%Q}Amq!NDl#c^M5|F@`S?PjoBENF7+5t=*p(sc>(ro!V} z5Q$oFt0$LnneK6ffiHR*;%RIZLO~+d>l;{Ahjj<%iXbL(9;SiJvuHoX>I2fWvs;}+ z$JZg_^?e(sgtEX zg-$!=o?ay0`?qSLqY^nqr_$@B=&s$&hLoY>X}Xzhw)iC970~YNY}f#)=W+Z_VbNyi z)-p)My1G!AyEF;iX!4X|ZozCxBf(}XRDke^RzuL=uPRbRc32$wM-}FjZ!yD#_qKaSy-o2YojMSzXj@uK zyPU$fB|-qz?l29?$ScAhqw;z0ycDJ7iXc)gxf5$s#{Z6MqcRr5MLjncuC0h=HG}RP%*NG9ZcoXe%ms{uy=n%NyXo>gOmsKVzz5lxqSSY zXiWiCuWV^IE0LSM`k!OVgMqJ6*rR`_E%{Zv=24`7^LU(%A~EFz&oimJAh$WAbH=UV z*I2H1z;j>8o5Gqxy(!u9Z1%I%k<$)n~KOy%0_ae2~Hc&9LAC3 zdd5M(*<28+vo7>WW_%Kt^jf4bdi!Z5Y3@`)0&kpGTCal1&iV4f)2`(nh*O9o4kkTq zq-!uACd9A8h_3MSGvae3DBC%9iG5TA{BAy=9zA;W^&li-T)S$ZowKXSHA(BZND~!> zrqH{aO1E4xS#dmFO-^dlUOjzBsqSv*nqT$qQEa0p7|N8yLRZKSTnDwpC7CXL)rjn* zxZ+b7yrU7r{?EcMCXEytb{E=VAksJv$fVB~P!G6fw{#iwM$kf3$E~A({;y`;6^SiW zvh3RZKkpC@)f`S2@SG}l(HdR=dFQXKS3md=O>!s&M7t!*oYM3^ERS*P8rVEqW7yKx zZBtzDX$37$hnDZ=lY6mA_K>xkml0hoM4yx)%>l`Dj|6?4!SbR$wFMmxBjw%`&qY68 ztFdSeDfxsK|8)EJQSaxEwc1~Cx3in9Vi<*Wkm=7_gKximbZ6d~ zAp4nX{ZXV>A`DU$agrrmT&X<4ifmqKePx8YoeGZ4>quE;1E_(7%(WH{V(u~dV*%x- z?DB2ci{f>+G=)UJ*I`S8MK=@6XCl$HEnfkv$Aqj6i~8-yaiE$5_-PSgfzs~#zK5jD z%yt;%jMeqne3Z|Bu-vCxJ2**i$6)BB2u>s26gk z1RM;ZoQ&Ouyz3skqx27opQf;bgL38TH|@V$ei<^14l3<=ScyI}5!N~PE}kx4)kX24 zyRHJHh)L<8uM#y+C0ShW>$(FPaowebCrL%4EJ2O2{2a;I-((+B3 zC;>}h7UiF%-;@_qJV>960=8kAf7{lHI>s+qT@)wNk%hsWRIdNJkAtLA#nAVh$GB)B z{6h2+=l0$k*T)YZJAY+VF>f;$|F#If=_**W8ym6yEbW|G&?U_G zhG*=rDFY39>#STC#j(~DkGprt8kdfKym;;}YYe`KZDEco^Nc?Z)L1;a#C16LDLBia z*(t`#tk;Fh^ga|X^PQrP*L3`*di?0S*%ETu)pV87C&O@)KAPr@OvCFmOIAItvm43yNYp|j~C zlp8h;5(OkOmW3l)acl4Y-LSeoS4T_T{^dB_+z(^DLbhL z_2|ZiATd49hT$OF%|TbA^;0#64~riNyOCw7+FFQHSnlY874f6j<*@@Vqqgi0561{Z zV1LMX6yZXmo74w~)FmuGX*5C`c)_toA@{BuYjpREzPfR-OTXHF6NaR)`caemD}As% zRJ)w*wV!DX9BIC!$l}bXORqG#ysF&znThsN%XVm|bMW(uayX`%$?8|JNvxH6Pw@m! zNk`Lsx1PSQq@x=@spAAk)4I3)f|?Tc%L)Oa`-Tk(6ytwd#7aPwHZst$NxUfVNC=?AS&Q+u*>=ZB0zHl{}Q>1jpI+D#M{K0E}HL zRD(}+Gr=Bq5sZOG=X5_ge+@$cyVqC18VsSCMk~m4ncVQk}ZQ{YtnGy7&^kp8h zdF*T#Y|ak&@q6i5-}#AW8ZWh<_)UEo>+4?$YWp%a@q6Ng&g!!z^`-2Ez^)?+*XQ&` zUedP)vYb$GZTy^sKZTVailU?7hX~S7Czu|_7St;xoHa}MyZ|g=rPeEH^G6u_fW$gM zdK{}>cj|FgPMnNSsdmO-wZsAkXO4c|&Y8$5t88)7*0vLD@vxhB@kzg2zIvryA0u!e zmr*=lwwEF1G2E4AKE@D<8MFzUN zoGvOg2GXsN|@M?2ddDTd8Z7rQ{mLn{45`UroX=jXMhaYRSUl zu;F|w66D?Ubu=l&Va3;B<=qRU-u%x$mRC^L^480-8N+fqqR-O56Ka!oyyIRz-D;hX zB09qp?k0h2OfU#uRytaKU+7_%j|w?wEMU~?^LTWsc&_EhR>j7eY6yPAjfV{wU2!BOMQg zE1+$~g_me&+fJ`Qv~TN`AFxXMEeigu@JkNy=}r_-qGk7~<=#xD2SY~L0=)cQh(t$y z_Iu8`13aS+UR9$d)4SXJ;|#>lP3MqK}E_elOfzPi_@0?Csh+ zTsxFe-0X3!lof?+Wy`f?lW}cQ<~8EVNJd6TvNeoI8IhSiv-kh??lb!Sf9o8lqkZrD zzFyDy7^0ZDYFnq-v#!RXZ7`L#(F(-uK?;~EN}F$!yb#F&yt2hrB%-s@@Wx7@?=~X# zfxVY1Qp)Olp86G%M>Bela9g6)N$@T@Fk7G*5%pAFjU3`vZ!mUIsj*t(kj)gDpRpcmOF-J-8$Fp*JPvXtfB6lXQ+_Tee)C7qv<2wpLGD-Gg5}+<0P}% zUiFkmJ6s=S@U%etOr2;9;^DVZ!HNZD`lY>sAMVc#Ngm3jN3K=BAVLTK{iV+oa+bL@ zv;EHCn;(x9uQ!w&oV@6&bWu)^?|yq{aVJl66^=tkw9)pM-5(M2{*%eYnXbaKbMX60 zwIk>PsoOWVA6erPa)`f6yBWpUme2{o;cS!+S2~=mt!=pF0}uMIfrspLle+xH%8vDI z&MK`BF01k)GlT^kb4<1v%MQ|*lTDWO7q7}SKa{+(E{Z;Ryip!KlcJgP^liDIUtrCS zF9)so8$?D|)2rALD|rW+O}0p*7Hs8a!#M-jQfz=&=6Kf2?owMX&(XN_uZXYd0_?(a znY*rc_V!WglPjxW57XIs*PNO4H52IH?RVycin^Cb#e>)3=RCg?1g#x;UG ze1W$jc*dQr-Y=azYb;_WXBUHBu}zH7eUVr^kOwf{5eoa*nV}f?0FlU8&e)5w)YH3( z%z|TIfMf0}G^R9b&QOCy;P8VaQvpn^;rS$@H3ra1)#i>N>F|lTla27h=^z|k86ckg zK!Z=~VADv?C9Lm!o)}E&-k+wH(3%Z6tgfYq@$vtx< z^+9%1F#Dr=BuU^6tC7GlKY4?5U&j?0mY+*_S>J^?af(6sM8$ z*CPzj)ofv#Z*-9z*RGx6U~P{v>iT|gLS>$_>={EZJU2Sq_5K^f#GX%Ge=SV;^tJAL z=9snR09xZ|!$JvUwH)3=&+%*Oqpf#emM`5~rmXF~_TB5-!2$gji4OZA*r&$Sq*!!i#dTkE0#5z--k+1HtxIAm}VedRD`Rqz;wlAxr+xN1AV(dS&Guuy45kw7 zagpO~@F`tQP#Ve?>#|nmU%Z4iED@N0}X(2{(GsKT%)Pmu21SBUMLFGw3 zv|aacb$`w23wO%w9SXkJeaM9Mjx(g(cL9Z)`sd*`fVd<$7=vEF^>HXrR&&JGbI$|ISnw zerGBn^`0k!37G;n^V_d=#2(tX|2mx}g459)yh|_Wr9_e0N^^dGfcWgUy^!QhpYgh< zmK6~Et{DZeh`(i26JXu?Vf&1SLPTkVSpM?Qgup|1&$)FCIMpQ5n67Wa#Lgs}{f$`F zkA*jB%W7p0>Taz(J{}dBB78YN+1cOQ7Pn1dmiAdC+DU-7F~H#R{L`li4_AAF~kFoif!^!=oK={V?b=h%N)7(qYHiuS$~rlZf6kYC zReZEJX5umL^AaRUUY5F~nllrUFpO&84#1K~d*vL=OH;Awa^b5P#0mIfl=?IZ+UIFh z$KggliR!9u!c~6m{~V1WityJZtKa={7(_g4wJ`Ak!0e{9`1VAnp0`6oZ1748$OV~d39jT_m;b<)G*lW7XYRQ9G9U5jptI1KU& z-cZ;2ks^He_Cp8q_7WhP|ASS(d#q~_>2tMHVn9+BtbkLNhe!#hpTO7mARU^j<(X7+ zTmFMOrXT=O7q9w`f=?yB1=Jdd9!51GyzFShrb=$hWKYenWN4s-U!N64HtAb=k5{U* zbh|0wNHx;BZ%Y(=Uh9_O%`B;}fyYzL@{s*Gh>c7WmcsXZxa-VKc0Xw5oxpn_i7JPDHx1T$gv7;&&q#RDFef z5-*0LpF7e2)a~AR|Lx8*&kIZnS8fQzIi9uCXd5j#B_I7@?7g{`qUq@! zopayL?zDe5n0It5y;c66JP9+>MbzYf`|FdZGf0>=F<(;N^EGC+*M>O9XVc;nF>VZR z-i@AV25XQXoc5i5*X!e$oDK_m5FP!e3cx;9C{ZCf!zp2Z_SO5yXUakz-W#|i2;?@t zyTyt7*^kw^(uYji2ia-94aHV1*(cmu2b9XI^Zj66+FKG!MI5|!oM?hJmhKplD}u84r7LX|BPu>C4~ z6#Bdx{mESSleDv~CXl&xt}lU@crOYtF!3&@MEQhM6+G@4J_Ar)60C6RCZrZSvh!TH zept}D!%SYDAl?(Ri4aVGsHy9ecAo|{Oc;4dNGAHzkwAy+dVor5N5w};f-=(qzmU*; zActJMVKyz5#5G~dHzUJC-4VBa|Mi%gCInQ8N@>dGu~!6x-bRIc_^M^j2p1q&$?HVh zHX(&RR^)!>g6V(Ioy~3B>F&2>R=~C{iD@=*kM+>^SJnRpb3;(B1xfaj_xEo_-MVt2 zP<(l8xEA2eS*(5B;xrOGA_K6YvDw&_rT{&tw z(r(y3iahF%>mwb&aFD3RZRJjidOonYIZGCv2sLna;&0aTsH8W3y0az`>V^#p_?K}| zY%+z@B%aYA^*GMm6UY2Q?l;F)!WDLwz6x%g!N1Fm&0~p>VV?~A_`U}=Q9SEeziHm( z$2=1_DQkG^c04@%%;i#7<+LY{up-Y)#_U<;`evAA#IdZ6p82?=1A#Y4LzQz zb8S>eMXOkzs>LV?g)s$>X4kMO52Y*3iW+M{WL*^a%P?A$aoh#jQH-2x5>D4wNRKy( zs=A9fAwQF6Ua4P!H4=NPRUqoo#fv(Vjcu-USIua2ry}xW;E(H_3ZC8;;}h&>?qEFH zY%Y$Ol0lLQeB(FMU`Jj-s*tcc%=#625ro&9=1z__bKi-^D3Q6Q=)F51d9h0xNWHFH zfV+jG!vKM`tDV00kp$yBljNFW*;BQ&+PaPKxkb-=b%d2qgd~ z*%^DDox@G88*>REVkssoNthr?&-sNaZ13R+DuE%4fWAY}NB&0KG_X#BTnB$${ zNt4}2AMr_k#EjjoW(S1QYoo5;;7x#nbKsSN=%x}IXY2w~CY$duQ`%wYr-^W=_lR?@ zp*_zqL+MtJl@M%GJL^&Er8b{%tTBcF;pQL`6Q*gT48K3C5yIsQhWs} zEr>>Wi^RCg2k3Xna@iqi*^6kde4PA4$2? z;mZ#GbGnh8LqsqkM#(GHeQo@Kgsjf4k(+J_;gwUE8xeKcXbv77K#`lEN8hxKho zv1dJlpA;7KM)}_Pen^$$GE4@3+_yBTU?B|}&3q@od1xG)TSb4K3ikVppActfKt?^M zr!?K|Lm9Pw25Lb>nx>F*F)dACiDFCX?c|k?`juWel7XokoZ2#4?Cs}%^;;umQS?*6 zdxMCzH2BW}$g(>AI_4T;&_{&V#*vauYH)z0U;B!2=n$F(F(y(@sSrjGuZ?j-@I+B> z4Du2Qc0X59-`u{0pm3#D%~JYiIZJuOF+D4W!6Fz>5cQ+??^3!)+gKyKX0+Cwj@pMF zn(fqa#WpZ7V(KKYE-iKmb}h2OT;dPH83(ef1sHp89rEhobg{*^0Ydr5+RZK%J_f89 z%bZNhhi+LU76@xMT4|Ztthu{b65$tAC=DgJNA(8Jr=8ApufK4bX+F>X)~tJ1%dO9L z`Nii3Z0X}z&c(MVfCEmSRPe*pgMYLnN+9{_3GC$qt8+~c3`8azj;AT!NVGEfkex&@maF~{4m;_lFI&m!M=~X-; zJQCIcf3GRl`Kp*9Gw<_VwJg@0KVf+!$1vS}R@EmPXV#@N7@wTS*W>r1NCSUpKRaS3 zl$&Wm({j*d%_q#uMHzEm2rpBsF1N~VLsz2M4vtYRkNqMBjr`>}%QockML!wQ;J3V0 znY}T%FT~?Zplo8nuIKnuOndpsvYax%V(ug}>}ls2iypI;fA%k?$c(bOZdARoD?VF$B zwkcxq>UkGMFrMI#bFVGD&L!*Hr}c%dPrQ4#V=p*=JhguT$a7{E2}yoq2S7Rcsbe&AJb0 z-kKXRoS00DiyQX^y93{Wo2%|IwLfh2z)2zuxcv>50Hdkv$`imlm}sBBxPCK?B+sC3 zZLrmnrIY%>19SnvX}uoQ8B0EvSKyzN+LDXTJagIP`A+3hZ%$Pf)xcp)MwQWbb(HhD z^_X~npP-x?lVI1*Spj<2Uvesl>`eSIb581|h-L)|7rf&$?Q0}LTV8XcccI2Enrm{x zF~Cj9)$c{kKY1{iNS{4KKZaHg*Fat=c^rnkGU*TQbF2yGKB7L$`k9%`tLCilo4bff zQJZfwLdqN*>oR?=V-}E4im=9~Fl%&cf49Dhe={ScmXmi=a@P+>)=B=>`nXDpNYSoV zb!p{lym%c}{n;G8m(kK<_HAUg4%Q;d3?b*J9#!iiexYns$s@Ta6uj?E$*4`HAzbsW zvWQxRUF*+Vw8=Y~_l1mozVk-c{wgZ1e>D6hZPJIkCpm^!w~H@4hpH$oNt1+ibn@7m zKx7g5Sd3eiBt@9Itq-@0H{O`U-aQ9q5VA!Xf1zHf(k<2zjShz?M01uA?uCfYH(Bgf zOBb9lYNUjh<@8w7WQ>N)q+;!2{O2@9p)K^0kngiyyCo#K8)fE>r%*;ZE!J7Hvp^-6 zDvC$K5V#-Pj5gWyiyA_yZT$3wg*1DrUBMd=buQ^r5_|b)K{!6qIOK2Ns#tKUrA$VBPM7A z=!#`A&$)jR0(PnjFEOwbx+jJRq&2p83-=O;1=GifY{*t)bE9Bd#)JJM6?~PDp zdv4;lb~$=tx~_dO#;#R%S>O}wEh9}HEQv#7?O|uMPTP)~t<$s3H|nWj1_Pqp^$aK{ zE?<$%ocCPtb3X4}-yQn3br55^M!K__5$mQFVS-k)9i`(T-A(;R{KP?Z8*&{!@5JwB zF>MjSkvbI~{Sig*yofq8M*EQC$U64aZGC?mTEB8+_N4h<0V)U=B$sy6A1ksiaXBz7n58Bb9Ln6K24z#osAh8qaZa$VU!T4$@4v@u z4UbksckNC^*o-$}y7bhv>CF2U6v;zltQ`xhKB7r|GmHye&Dwpj^V+=1_57H^SRt&ykRlfk363?^BH~^#vcc!`gj8qA~ZQnSj2tT zCAi^atP11wFv3<8nT;hYRt$Z}%;LBCPTqv!SCQIs=H$JO5K{N}s9QOktr^Qbb?KZv zX-s?+Ze=fqm{Id@q*wC01h>b^wab?0#TRF^6fmQ)l!W3lEqT3Wwbt460v}}i0+z(9 zXBIz|RtW_~TR!z5(^$h_^UMoVw``YH8YgN$$GU>BN$2@dZGVf!wXE+v!#TtqZS62| zrbyv+E}J^QD)HK=lnzxouJ3bg=DG)mP4my4P6kf9pYIZ%0Sj?IVX4T#YqhVpW)eFi zX+7jJLAZ*uhQH^maMeNwB0jp7&@eR{rbTIUGtPgsWoxC>+^@*ecSjKHHzH+J_R-Ai zadt@B@4v=}%yJ0m&E$DU*>h@QpSsdcPaV-UTUYIEM0n^yI>cJqkb5 z-tMzKKNNw!`fc+d%5Zu)YSJP|&))SiN}fy3a;y-nq_^AVOyPkWXTe7}Gnj|ij*DEh zL)*iqhN{)cQNIUEv%HhZ+T3e%Hdx_*2hxii8$s@Ym{UnMKH$Hw3ISoV6=h*c(+yz1D)3w`x-^?2Fo7#Hn$nbiOSM$w z_f6m^pF@eImpCN+Jf>Pbnf5@0qc!&I8WuB?9dE|KDuG^V?2mg;jc;$^q3A^& znAD16np|J$3q1m^L9H@}9?@^E|ybY-+36 zd$ll%O~QB23@Rz+FH>A)%^<=X!9*0uU5eN1WtnI09V=?q6Kc~-5dOig<%;C8+4UQb z^U17k1Z@}B^-WyZv%+CoOO0Of4~%*1Z~XU^%4Y7nTg^KxFAFTO(FynmWTX@{4P9(2 zejvJgVYhllMyZ(9x6{hiO9+8+>{R zXgUY(uLR0zlj6973`wDtzF1bO+t8hT@%O4n6bJk2z8mo(pRAJTH{@lNf3^)s4mvzN z)8tmRPXeU7>K)-PiWMjKZNABgZ%1J)c6q9PQYDdG>*TNKiM>70%AtQRvmj%&F^$s? zxTYF@B)6#)dqh1?+Z8J{9bj(LDUq4%*T@_9gv;zkV?$@l%B+c%StZ#E-|p<}aHci; z*W7!JLt0U)_n-V~1P!QfBX|bYrrQraczrzrfSuC?VdEGM^P`O6+e>~g#W2?&{=gb? z1yCgsU|5m}fKOhIpo6_xf|0|6EvXB;^U~*a{mtB;(+1FgC)}~ED1mXkoMGO-RW?z% ze+(I6mU<;3qnYbmJ=8%q8>E>GN-6BHejI+|&!%PIh5}qAqg*SxE2243|K7%zW>;-F z&*&7fnRmk{8mm*+zQ5HLj^RqAkH{u@jw!Qk^1BccZ_JN~eKGJW?%BnJ%oi>}lw5{h zivv7&s+dj9iUZ6Qvw)COdvQInw3~5x zNv@lMHyU#0vIMBK@)wLAKcEnpn0(G&Vf>>(;_jv+(0TfMr*TA#Z9qwM+!7s-``|!$ zo+LpJ`NU-4RfA?Qd}2_ZLq5Q{0un>l+Zc>+7noy}>7cEl9*|NluN`;nFv)pnFZkf> zb3Or)${U~w6ZAq;$@#(n-QiyHLrY9bz^AXSDx&Tyz^YiC^m?2!^mO!8Cev-RKg1S7 zB zhI>~poGg{s(Ec+nf`wF5@slROoj+f>Kvnb-kN>(Hc-b4^P2E`*czm(QS)aDL%oM)q3O!>XF_!Kom7o_ARi5!-2o~ z>-RDjZ+o;q(5txxsdVLQ2b&Z*sk6Nh?e7I-T3( z8Gwg-o=`6wgNLK19{j!+z?34utn*rUe&%b=r&S8jLMW1eoHQQCy&Ux?Mq;0Wm1DITQ=BFq32Yzm8d?E%#W2^vHPaNkq3_tS zYI^W(w)+GElmJqq;6&8!Ur&oaL*ZHsEvZn2!Z1LNu3&O}mx@t9!jeAVbW{;KNe(O_ z0MjMtetj?~p91rrS5FIilhW5e9T0kqx}1wE_a~lAyS9+~=(;aX(8*5f&g=K^7~1jm zA@d;TqeM3dc0~%|@Bs%H6`pP~A_WO_zuXY}9tc3;PB*Ky{=U_(s1Yj_ZDRH}%Ic=0 zAzIpf=fbDZHPT@qlG&epG?k=w;R9v~{Ky3MOqJb^vQ+=^xludk8 zL&iB>T8J$3)eWWC*R{RXCr?Nc1+)g9TY`Uh=PQ0H7`ztN2;9cj0S(VKASXkg0!;iA zOk?WC0fIB7SD-0-2%sJ{Y&<;+(?7BrYC}8T+<0pKy(kV%p~|q6v(3;suq$giahVNz z{QK!FQJ;7C$Oe_nx6HtEXamNo$q!%h{T&FP0AYhuOfN9DX}l(%`^6vE&grLSu+^7g z;KaZN<7om~0u^9~M#y><_~+;WR)@)#8)6(pRs^^%ZsdpcK~Tqr<3H+kIujq zf-H{tDiE@&P%?CUS>wNBqB)UD4xoz*Cf{rRSxNt*S^#uFpkJtC(J8VE$YO?9CW!ek zFd%yo>Ho$d6FNqNBse#S8uq7S#ODV984U#(Up8j{-wDftHcKjc*ppoi3ArUQe*o^a z1e|qJ5d6$vWtCLWQ3TkmZ~bH|46J9gPg1wu1UnQw)+0cwDkDF6a!aciMdJLumK@-D z??dXUtw83y4RAlGdS$k{Nu1r@Zm36F)pMXtfR>153qC`2>nmVraebOywf}t#favlL zeXch9eMWLghz3)lIM7t+X(+vam7G44$-|#k0r2qEGb_24Mv~7ZV3Z7M3Tm7|*O}MN zKrq*tsvGNl2zZU+T~c7l*a{%1P7|NR1$U5tA3G>${yx!g0f)IYOPf=$;kB0kK3M3~mauMLhQUMGk zB7oddack{D%;k5-VmezEK*5g;>-F9i7)2X!P&eEDoC$siEx#EIzS^72+(K+jvbNEO<^DZa4uX zz@+g#P4nN>OmfLFkcgQuW^kJ=f zwEqyRB2@?uC;nZ)%y3ShO;B?|osgP-=RPTp`yFHy#<`pKk~U|$G7<7V8lgwXFl^eD*>V=uK2DiGJ!?1_gAK>ZSy*S-A(~XX$oM5 zrMxgup!pmo#s=BASpt=1QlMtuxBV#@XjNQ+q-5uGCa-=^-+Tvd&eni~Fd4ht80%Jl z13m$Ob&%S7iDV#IXh?l_X}R zFw4uBQNqd4hQ_K3$UV>=lgi^SBD@(C#mGrzrXul^U}!NEH~uYUw|#ETdKJT>8Ou*2bV+aa&0KBU*{RQ_ zQ=ZK$Cir`x0b!G;`{MRXoV~b0^eA8my;{xl{40tWsOQ!q^^jDnK<_9dGUgXxG(`7^ zLBceve%C!ZT|MMw89+=7sixisaKcvuPr>r^0Um9Cg59nW(;N4$D&|^9nOg)lnl!b=Da$Wc)%{48^ z$isaAVpCWG>8ctDA?O@xZau0~jK&Y#r`ZXf8tmeXSD=!#>01ZHtn^yMv1>c%26uTc zap)sE@G%Qu$67_#*8UIxe`G_6R5GLB&BWTqgk-w7qL54A3l1F)IUVGs%$7KJMsb_i zxU4Pf8(})`r?fNe>V?&xl}PD$^dJRt7qW&WT-1%(UeHSv9wtku9SH2LzyqjL$3~OXjfTxL1h&)kSm`CQNC;C zGQpp`(d5`$sxN8t(h55e%`!79w|&LHM0p^%h5FHpe^McED_f_Q0U{#FRhoHp2dB-C z7J98xj$Kq{Ek8Uu$uFPzK2r|hjsbSdeb)#k^8Fj-0?l7#uV3lE@4<597qq=d`R!mo zz^|;fDdDm`rDi(OATJJ9o@c29_+;;H%y07OcFWlHJ(@80f9L!;Hzc5IzQ$#1bz7Io znwp(zfr$F}$KS2^@6Xg3>Xll#1olI?1#bjjxe0E>wh1}axyNW)G%KPwJx=-3ElJEF zQey+x8}iusx*eIHY1QLTY%3p#8Az$t8suwcx;cm&E=a|lXWpq{O-m<^dXgN!2*|3G zkP@;FU`Gj$QxoQEV|Lcid}kL0;!#q-i@3j2+_E+7#?jgFynF~Dg^$e=*Q>-s^a5cR zg`O5Le8QJ^0F3qoV%kzJsq?PQF;afaT(vxw8q$)judW3#>NdxtDFX*z+kfdCu;iRY zKID?K07`fbrli?4OuuDJ#m^L{?XzS|saNw-aONS$x>@IV{%Zp(as^9b3mkPRIKIgE!ns=l&v?+5sdgMmcY3|3aVaDJ~$=0PlNqb>Tv9}%J&2Jl==%R^T{?IS$|?4sHh^K zM4Ev8%y4v1l2FSTvxg`z9&cuN5Oyw`Pt@U>MfL-M25kUA7rvQL=mW>6rIc(Z(&M*8 zpF{iv0(YZ;Vkntrr&x_!oCT3~de7;})((T9BoKfJ8VVzLM4Pq5laNt<_Aq@tk1&J)rmwHOi&>; z^9ji7@Ytquu?-+p4ii$HUnJXnq`aNr4iW_A%>;R3e3dLnFJoCCv#s-6#Pe@OS)~E6>AO<)V7aj+6dgb7MphT{KyjtbhyyZWH zS!KNDUg@->0y$oM@01NOY&|*z*5Os2$5W$_%T@Z&-yMw34&FA~izTLIqBB?`BUbu% zh5F~&axjGW)=OY5Wvfg@Y&buV&{z<_cIef4ko=-n_`TCbG*af5v5~D~x@<0*qwFgn z`AI|u4waeqEXKQ^f%>ZCvw!;iluGq;a9$ubu1=$=E*a*dxUHg(<+xKVt-&Z60h{a- z^pKec<`%BUGYe)8#RX!Si|ipdZMuD>0S@;pjzxG&LYY~*r}=(T>ypp97RV0>a58gL zB=Qn(hPI9ZbG2L*AK1<$w3|;CXY1#R3IN;uZ{3b=9E>p2P*I9_X^ZCI?tnFGUIS%0 z<$KMICk*EPmZ30D8Ig(Js~bh6(E)z0PNVJXaixysnk zxn+y|Y@j-Eg^(s2=kJ!W3_&cNs*@eHf3ohs>G$7nav#9dJ-Ne?(MxZM15^Xcs-@SQ zZ1sV3RI2Q&xDDVWE!H18-8Wdn5l)jtjF?Ve)RyAU`I*p`p|6cKfakT4nn*g24(44_ zA3=uUQ!yfHi>X?qVxQ>9&EzZuF9`X!Gsj-h0WgdB)r513?Ku6sLSTUGpz;a`d+*&4 zj)xQ#U@a&}ck6WIG_i>|AMHtf7jWny@9a_$L;x4s0!b?(F(5wdHS$aNZ76dv}?xK1>e!HR1I6jR8|m?=7~Nw zaqrZ8(g7L)7nQmZ`3rGvS7(@YgIPid2uhW)mL`L*I2yv9=#R0B{k<;!3xM$d{TR}q z2(>DN{ZR0g(fRF`QiISPInb47-z`m5L9!i51avYqZ|My zB$9KOi5Ww~Vu*;y5kpCt8KqNA7^ajlAyKF>yNEPysut6il zSIJR3u9zk}aJH*8dgrmxaARCPncj!JS?*?_9dcqH;NW~x!De|bgy54Wo6`(N{=&E- zr}G8I9i+N)xb6*BP#%62$|E?BUce6{!Q+xd=(*smVOSzQBOOY(hcJGjf%%=DO2N;v ziSR4I0d>{vS7{J#=ZtlQ>R8_AIwovWF-NNZE*<_Fg8b)?I^IOb6RhVs44#hhM~?wP z33rs9rX_HtodUk`WKeZFUVrhb&vV49bo>brtLjx1jX7;*XU4jWw2?SfJCNl%=+t;< zMAR>SNIULSVnPiO7TYk z|C&}2-#`Yzu+tCwB@hdc2USe9#f`z8W{Alf^wY* zlmR=DcY$bH^|52`(Vz-RTB0#Y|N8`{`^X*=Jtfzmq!b|sY}m99>)pSemyRqRy4{^? zw2zB9AS>lh-}vw2)AARr0eoM??K(2hkz#B|+016zSmC=`t*oC@mL8n#O z6Cm{xvaOEjEoPshI0Pky5&I=QpQ92pxQWOG)@j5b%T)*cXP0n$nev2XKDKr}N&_B= z>@SLS)e##3AMX>#IE98Lyc>30JF@?4z>ye;LoF~66n91Gzh01{RXn|{wc^^g%UxSQ z&Rr?gj%eUmXFd3eE>!qSE$0{=JH=!&G(J~w_w2>+@z4r9bz@q5uAYuG<|Wa+{OUa% z>Q%hr>vskAb`J1JdS4DZnytxP3H;s43F7I|-?)3HVp-T|A>YNoSkULvTtx5 zW*oCCqcQxc&+qK~J3&i)0xVD-Kh~4}uWug~Qo;>tFQp_}gNKWbwd+7xDxx6OObQ4Q z)Y=f{<^KWV{)@={k8cJUAsE3`RUUl8Y?+5{&124xVSR7~TsKA<^ogIIEMK)03o4a*rg4i{y;0MkJkB2!CF_|vE+TwsG_ zaWBedOF>=3|Nf=U0KLXVC4;y5>9T&cY#U(kQT7A(Y~2nNE2NMk3Yy2jIj{^u#2K(( z{}1T#f4tFu`6^hn!U=8M{jz6+Kh;UR$D|+CPwH=y3h2XPC>+dMzSR^TcB9)KbaE0abz6`mcZiVfCTKFZ{dAi;*Wrn+j7yryV|GGZ{ zyx^mOcZ|(3Gsk-^3C+Gz`aW|6U}ibB4nVmy-lZgE2>4AkvCV_=sbAj$pWTZIu!;x=I*J@k$q)nCUJ1#4gaQw{xdJO2Di?l&6H@#)?w zj*ou3q%E@3pV(+}$$(1m>X^0G%u4_d;IQJ-{7*nMH|f2bzw!{LeWH z^?U0R^4lvT;#V97?aIbM1(SsuGW9khDS~`ZP=Qw;mbsJb2>$u+{`(71z$=MUSUX03 zl?eMK2P=*S#8xVLQ;+@%Ku%ko`gTY-ZI2DXwIBFf>%dK*=p!SvGLc-tU(Lqrh z`vm=$)~U*cg8%hkc%~>A0rlPkwJR#m-T{qk6p;T91Ls11Ic|0uDRVL8iJH0pri$Iy z5(9J$6>V1M^s><&C>$dIM_Z~COekCMVc$|e0@KTPR?#-%x63alISK&VqaU71RkbvEEpa^HZs+YL%n)xPc_5ha&rEs`2KI8=fD|(rsnVEW<6f+;CvZ0 ze}6xjPrLRelF0&n38<#1aR@)Y3kEw%KvGIviLizP-HVEpIRfJj856IO`%_@Bv^m}i zpwcYyVCqo;Y-8_#>)(YWFR-af97ev21;Rc0K(SEV`8aA%`oS1NbF~`0Q2fg&9 z_P<7u5V7C4a4AjBL+lJs(;2;|2y1uloMu}r$7g7Lpdo&Wfp{$y#L87LVIBC_ys zQJg=4$keCNLnv^80;9f&%ZfW;CMn6ApW&wV)srbZ-?V--h6D;GWg zew;#x4+@BfL>8nNe;m*TmrKQ~6#VD>;=NWmrPTx1L!^G2Y6D3;<+-$Np!L#c=zU2q zae#QsHE9XVW#eCYLKyC0FiXMp6jSF5&z(xT@J%7;|Gw8BQxr-_ZQqTO~9*$vc}$i_emP#b480Mb;B>^#); zu3lTr&hz9qu644xQ ze;Y8Jps^(Wl9L70{~E(~^U(6vUGd~Vm#j3)Z@xE6eEN}hOFfD#Pfmn^ZE5ICP5jY$ z>kgR5f;EU^HJ;el#$cP{lzIAZj?&Lo$arUNa9Ubj_-EDf_wOpyQ$fL$LL`c|8HTT} zJG=Y!j(Ipxo9|sx@{!`JrQ(^S@JYF3CE z(2#Zm^F$Y@*XOZ4vLki^f*dW&c0OldP+sEE#bMxgG=F7HyKK*1d9DOU^0$}H8t>4I zW~c@*H>3|xK%VbA11U=+@Ob|Qm>a!{3d@D;n?!Xy4nddo+S&>5@&z7ms=bg7fhi)}fg{%Mtda-Ol3H^W zA+3EST&i4foKtY3D?xs?oB|1}uXK-@X(d5Hk-1>1E%GiK@gY3g5;$+QII0dS{5rP( z(OA#s2bLP$UoM7ut&Wa(F+7j}Et=mdekYZIh!5-`wdB$*$XKk&xctA@xBq$dKE^hm z^?Xpnl!Q{!hOPns)@$QKhSqT?;1nJP&;qS+ih*Ip*JP}F%KcC)HuI4@b)Aa@_aw)f2^`PQ{|8~Csw3hUIf!{^W zIedCUj!NYT$`~|^fqz)loHjO|MWCV)?d6~OPBr*FA8jc>BK{a`Cr%iBUm7c;aZ#s2 zv&mYup}J5vB$STDsY3BN@pq`y0HQD}D6nlLj1E_WR%g}d#09C}qw?S78-KjQ$GKu! zNuQd3i3k7YvZAZM!#eZFBpO%6))-qgiADRcb4neMcbNuX*1aSekef8^#_B4+_VYi{ zx;PM*9sNI5z5j+5Y#NvXM!WH2Ojl}lh;Rms!MKW}hlVo!e|Ql8{w1`+Dpzjn$XEZH zRAy41OSFLceCT)l^pbdn4isSbi@~qJTN4qac z_wHoLs*&VF*?0=*T#|v6@q5(df!HUZ-&<52BOH*JyoW(jXalK{9-4+!e9@9Ns1;oO zjj8?bZvp(uRaK}Tiqq{6QOSLb2d;M)5!|>9$hD3U$0$M1=;E_a%*&YBMTm)dg z!<{Nx2$E`iGoCbqeFp>Nhzn%qpP|4;-Wb~p%J?h~@0!0*2>+guKi`DtgMr%3=uu{k zq-a6&F2YSPiNMqQ`D6f;ALSK52k;(VbhfNtgl@iSIOJUbep?0Uwj?{YZQYi z&ufhfK!UweS{`dJK;aK9ksBljJ( z4BpYsRZymor2>~xf6ta7sNumSAgl1Q&GNk6vg`2AA^Y#2nLQj@V`Qb)yyR8Mco5ux zpod?mfQB8|LU7MMWq!%hg0z=6z(nV1^_fZ53BY#L+W(sUP@getl3>y1bPT)@g>5rS zMuTbI0e=&NuK_i?N1!?|(ti(v6ZLJQ`%fXCx(FcW!VSqN(se4n>CKXk1Qs0wBxXmQ z6G3OPFk(@=&m1pAr+9H~lC1yrjt+8%=nr8N0RiQ;>Z+`S_(&zx z#etL%2`uAeCQDsF+ll}fiHiZ#h)6KB+EnOY0ZY|LAXvj^0_yRnYnK<}*Pa9dLC{ue zO(DzqwrjNy#-*I9dL$mc0lnUhe*ghJ#Z5qLY|h#IV;oXXq|;4OPX>TK0=>rX7~2=1 zfFxK1=n5Z{eVJ~`t-CrOC!$~e;~jG)=?$=E^)$457Ctxn`g1f811;8}asFSs{t$g= zLzr~kido+Xrr=?5+po%|rxj?~IjLko`D6p~_yiT)Q1AJ|O$g_3EeEjvu52&#bAcX_ zzp5;a530XFF0!;?u&EKJILx}k`)o74%1z;IGDdQJMKn;rqP>+90;Cfe-Yz-^g!sA<)zs zPqF&A0!N|XEt1qI%!BzAXc{cmvoO5*+e|P6gvqRN(Z{`pzYN z;{W&-0_Ox!)E`>Q0+#;GXg%h<9vW>KORXRVCs-8Jg3QC@zcv2oLQd&u;wXptfVOL; zL5J%eRK&2x`z6Dd8WUjQ)2hBAogYq&V>eG{%uxNdV1Vo8-(C-FQd{sEtPXG8{a>q4 zfcFF_m=czVc!utzpiU;+dpeUVT_K}yyw_151q#z*Q$ zVE=yQ3UEfi1RgHZWzdLjfQ)nprizk-Q0h#ZA#D7C0iYI2+d4>8rXU8I#ogOgpm;HI z4hAr?(FRbkwP0QoU38KL0+q^Oz1|8=U(N{MAs(Tm{X?{|x&xXG>K9aGAQ|Kkz#E{0 zN*Lr-?yCcYy4JxnZy?M8z31c!hX{umWN0hlp6%EvN5nW1i%xgP3mwW2lP#mYU}}5s-pcm*E2!CSzB~;=}S~LC@Kb-a7qpg zY%kSl>Hnz&{z}h!H=z{=Tp;?5_wyU+R##!_?#dtY*n^JyS@$7bGn4&rU+de~iXBBT zZ!=w*>aUHto<6=nu@(3S4iF>3as7P%`ACrnai;!rYEo4_q7HIGHG_KR70=tQ zf{NnhC8P4PNfp)D!J#5M7q8T%wiyUND`i0n|JY3q9l zwJzy2r^rqCE(;3|_=Dvb0f~!yH%NjLhi^ba!A-hoqKropJ7@%?nscLc8+qZl{n3FH zAW0MKYC2%YTY(r!AdOcO$b=POnG_C<BvX3efopOfV_K8bumB^C@i%Z)WeuXPWpox2#u+P5x ztXKIG*L~`$K|yP*cb=U@L^AulpD2Ng-hQG3$!0LqCXxb-?k*YGjvlS}&C|)#_p>n$ zg*nD>Vma2D>AZ+I(G+sG2e>wyfeGQ+Fm5GoK0Sf`E0Hqx*7L25p&dM_CRY6d;bBZm z{1#|-88mEa7;P#8yQLlwme}k{DZL^h&1+v+^hRNc8yO5dtXmGJD7&K=IS&bwR-vxM z4{k<=c~7QY|72aR*8?*jl|y(F)*@p{(=R0wDhS7K#hs}K2rnTA_$ZGOdFRoUp%Z3j z_5dy8%Ve8nul5|P|ANx|^Q`}rc;Ht;mY{hS82ERLQy`uRG-_rM=uIV-5b=4)2y2y@ z70U)sv$0=YhQQ|h+2rL}e-eS8NSuNgzWpA-UNs9~$_ls$c2+R%7r z=QL+6b0nn>?dX@0&yoV@v9wApeSFn%A_v{X(Ao8hhP1jHYz>mv%X9`+q zSlGf1Y?yfM}0Oa@ha zM-hI6oH$9iNu>EM@6O!DyS|CEu&>?66UQR}EnQC^AyrS@(E;$}-bhX7(Y-`;1)CFX zHgw~Wj5aI-wyCZiu^+n6`@fglZg8D)48e=aIX(p>u6Uhm=}alIw3&FtO8fNfqk_o1 zI5lMZ_nF`>^%{4OztR*Gu5)LbgDGQeTx$!X_?xH|juUb%69#@p%4vMf*lNUu{@;`B zQTVs2_>luvQfnJo@l#jCtg(#vlq)Q5R6{AzwR> zMcA!dO{Qrk%7BOERSZcT)OA}#)0E0ui~<0FvWmbZ8VuGlGI*9fHT3fnDrqikTzFUHz!5?>D>F4RUI7@{L-)YRm3CA(qEp&XXX* zZxTqk8Fp@(vY!lDXn~;_Lwn?MT(wVyh1by&-MOSSIooG*Nlz!U6`ve#)VLsi#1Uv| zqW%B)`tCri_qTuJw%2WDyKSPfv)$P%E72fiWtANnnc1=`WF;~Z8A*zSjFK%G*{jIT zOn%p=Q|FxL`+c6@`O8_l$NO`=uj_TaMvL+V{;!s*F(s9mPBVCTWgbj|3DShr96%kd z%a6_VCK)82maWBkD=mFQ|D+dipf0MCEWWr|vz#};MH=R$H~y5XA~@nmn|c+eA{-mMH$mxJ-6GtO(W>pX)hIjbN?^fI;Bpu*H+42=mCnCW^VD?^u^ErdzB|}63>>? zD21ipovlo6`LhhG5{QL5Xj+G2LglkA+!{KN?m&?17#z$1rJh+Xbs-tnrV+f8v%YKr z5lCF)2M|A;;yqd4=SAnX;K7AP*P+TE9TJJhI-rO@E@wq3GeuarMy*o#*cIjtgl2yW zXy-O4nqkrDF*Q=VPqdS7Qb(n46)3LLDFeB5<3rTl*lapgRoe!lf)^a(hD3)>#;*ed zJU-Dfg@|*^%O;A_(YBhs+O_bIvxtt+aPmjn21x=l4I$~bR&x)?{% zDK&SYXRauu%mR>V!vu%TPPNbZdg9g{p5B)(Ug@iIde)S#S*hZ%(aFm&tQDelWG>|AWb8zvbI#@UdTX2cFVyzKs&;Ub&mi`BV z6U(}WmyPB{9*&Vw?~_c-AQ{&}(%lX*P4~IRRj;ER%G>$w?;Nk5@%NC~5|W6m!}`m> zhv;%F-pg*-Z#eH<->VZv<-ws@8?nrKE=HoyTt=iS_h34wLU3l8eXz`;-Wv0}MtkcD zmhK&5puFTk!UtR1kE)OB ziNv2r?^DY(21GPvJKfq~r;ZC4jg&ZrdiaQFK7CVh>md1fkyp}ftKLA;XVX9P4Wy}6 z<;UUAS=wV5)*nF-3XFEpW_;d#50xrD^Q=Ei%D<}%{7{?>dWNrg=4A2Vw5bBYHRy(- zM3!u0c^I%dZagBU1FEVhQDoOx*RV)6P3wv9r_?8NQS^Q^FbR&c(}!t>k@qE>`)e`EVX{=8V6S!W=bKjb zb7}k1AHy&Ge*nu4eB?cDxLz8T%tr}a=uk1KMwQ2k{;;fs?x(I3D zy_H@TJpL29qx^M=#lbR;Ex?wrzt&C>fG-{s*NeW7JcyGpGjx^o{eNC4{N`V9V>PZ* zCUFXPFapIRE%1Z0k4>xqnW2OeCg8&iMCgmDl1?UXyd{S$VNd*gYABN7D(uUu3!o%c zmi7J%o&EcR{QHLr1etlD8C^1{EA&300k9u-BqxLWCW0Ix{%Zhwgp0{1H>!9iHjcjz z-!>ro_0a~WV{*E_r00}c|M$1uj4YcYsZ7e$a?D5&O7AUXk_!i*|83UFi}@@on8;=H zqcp?dmY5mM`bdF@XDD1?Eu^=ImOTFd`RY>8J0~@CvF=JmOVic(kS<9E}=h`ent zSB!AdP=Q$%;KCeI{qC%OFGM~{|KC7rHGsRd{Ax!1@gw9!Kj1NAL#X%08EA);F#wBK zf$INp!3TX5nLru4f^hL0FE~A+KmKw_jHS=w=7H^d_t-pFNN5jdC^oE@t@#BeVgvDh zDhS;aa-sk4Q6spRH%BwNc=qDmI`}?5PlB?qeCPngG12+F!w3qM@g9M~)#I4y!KIcS zNuz-EDbwiC8Z4fPqE-5c-UA)1dkeAfQvs@g&}OKs=>Mis@dq`E6{1oBX_KmFpIKMb z1xtq4aywc_wg9(|0N_;Y6)1!zAsoIk0IY^9v8NWDZ$*j%L8iOL&043Y3jVEqdL1mz zCt>%g(&a2zSW{qyJ zl%9m9g$$y~%ogB%d;*S%3Xmhkrf#c77r(;$`pbyr?}y;uKY*w*itgF8?A;~dtKh)w ziXcjRO%D!X*&a4l=NEBCPli_*_M|3DX>@Ai{u`$seTIwt2(l7_{hd53n362!c)2On_WR1BX2ni zV2`fu0{m$;p#J%_EL>$2y{w8glb%UXX$0GO@qOCzpq*Y2HFn6}43TyP^S5v)Si47Q z<&Y5D$AWL(!LGBr^RrrlZj-S7r!HS4Wo*kI2?KdtT3Z~4OQeLSHX2#lFcn^z9D8ES zw0E$-y$0rw#+xudlV2P^Vt5$>Z$v~L5Lqh7ZdOlMt3I7le1XW@KoNMQ!>p>f+u;Ap z62d4Wbx}^{thAi_+jaR&Faf3r zAx(e=AA!Z-T_mXCesUnF$g0y0C5GW2<5O-UWD3kxRzNR<@p_IM7zpeE1R@bUmCgNQ z|6U3f=1HAL$0%<$M?*PN#Qai;gu}LB%`jC}~TV!kXn=HQPP0Fs7G?CCL+lulaSaWVg-M2V7Xn7H4mFb)#2qVSO^?=*Q-`zW@aSGw~N+=v` z_IbE8^<=8%VP`A}Zz5!cPJ7v=BK;H;R|Deeeb6@!PY?&_121}fs^oCUx}tM|KP(15 z*puk*5Q@d0iV=k-(7r|eU0z{oun$)D5#r030ea3!VEj~j>IC}R?f9khf4#T_wH%SX zTEQCdBY#nvkEJT!D#EeDqh^m3hOpbp1tKGwM0Zlr5V|vlF9A5$&9MY?QetAj|H>uT zHg#TUHui$&6p>-XV#tIj5QkzUQeh#`2!|I9yf8LeFSIdw2AG8|^Ob;Iqx7lhk11w) z`UfsuzGrrVoSM%O_5#oDncZX`wTAS_Dp7BUWL*GX$;y2qZyLc|)OWLgby*k+)J|O^ zO8RC;mV(^ID1XaYyNjOVKH1^b^uv@Vhiw)Ix1V%KZ9Q2gn%>-KzrN&if5GV{ySaL{ z-)pUpJ%o>!6t%YV4-3z3`Hbm%G6k@6+~yE(Uwf6Ex8L2#e@FdZ&-~bt#oR>?g|30I z+h>;owT6$tPC=t|O>IOqTVv$jp7f?hv8_^;(!AHE?+?k5-2Im48?v>fwZpBqzf7;@ zXD8n-I69K7pbEo-fjF{dTYVGy_R#7hdGRL4o%74mD@V>*;y(TyB+kkiBul9kdx0{w z;9~T0A6Psf25z=S@`=L{5iFNcf+-@ZIJrEf|E=;6e5m<-24EdjB*g7WCb$#ZD^U8! zYiSEcYrVw2QS5(h$#95pg9x4~NYac*^I2Ot=kYeW?j@HJ^D8BCEwxSqvq$U!0eCTP zlO3;V7~W{*M)@P^j!1VOuoS~Lq|rJIb|ZI&(p%zse2hPrLj8cUW$|r6ly*ZjQ}#E5 zD5b!TD=z3ySwKtqID+H@B}%@UxbPA?8KG=2d8(Oc`*$Oc`HcGEXHu(C)HA?~C!OGS zdG5yQeN6qa`s3qHjt^!>^v0bFGCBB7{jMcD$?ea}W^r(jcyokuD2<2(cKF=i@m9(z zvyUn-S!&weUQ^#+bLsK=nX$E7-PiftesScvM_JqNx}U>GGC}o@FKe(2Gd4A%@dtPL8C{2p*@-A%7 zHhFR(tuXwlC$d$7)#15l{@XqeTz3JZvr%}NllV=9_~>yT+mX`WqC)V7!PC9v0}ZOK zW$SMHp~X$Qjp30!F;k9`6a9Skbz=L*kEr59`$jWY*5-$*E05PJ4sN$qnR&!L+@g(? zJH8V)IoCCFWZ4*I<&Wjd5R<2Vwt5F@% z%)P92e3JWUvFdi$_tE_|-fur%#K^shU(TLk9MkYrYU}17vRn<`<5}?KzS~)M1~L+k z#4jincwR1Hd)W9QRxQR@ql>(tZsd~RH+mnNO3=U^MF@()Q^UUmG4b2D_=Kq&*`5aM zOpt6<%-?%-O??Az5ICUE3dxM5sI5++2;X$D*04l{&tLHUeE>D zggf6v5%(%kyEM8(`(r|dN8RY;HW3Co2bXX&#AS4(AA;-6PS0J?-y~AcYlb`snL+O( zg7Qb3$?Uk>Tz>|3@J!!-yum885VMB1?R|3bBrP90OF%LH=}dSJB-S|&&Vp-h#U8Wg zHrych&xBA7)wsC~9Z3vrocJ>!Y2xGl98bKFxI*KTWwt*b<3 zyX6c4-@4A*IdOc>dO~rawjHB*8GsaLzKRqtME-QEri$lmd`$o6D9!n2_N3uTei3hMu`^K^6X?Xg9*b4O#{mv>-*Ur!2P2uYK8X43< zkMWT=9`^_}ni)h#89^SbO`Lknd|aXkaZHlMH9k3uM5SLEc8gD1@B^$P*3$bw~ndBtGLyK7`sN)3?RZNC7-48xx!r(}*S=DnsGun!?cRlhGq@D>+QA@Gv{DHg% z)FyyaNghf>Rb6X(X+<#5nNJ*D$K*A)=W)G|VWaj_z$k9qnd;Q(=8+?QX4h6)x2^lY zH2B5Jv`g}<`081i#Mgh06L@ZH-Yl)YbUxFR2G4)o`^`hT5Y5v1itlXnre+3KX-}SP zFTQua9DD73b%&Sm@ZEKvtfDYsq2=)z*$I!?;IfpckGeG59b#IgXD*C@PUz`jTY(@G zr&{7m&o7rN$K9fn`3gZ0VZtNBt5P!1gh>icr#qc4k+vxB=8Y(f=SEwD^;8>S=td&T z{v{M5v=f?Iva7z_@9Lj?H)@YT)j%XUo1n5GiM1#1a-d3nj0Ojq*u}hz705 z4SjW08(I7XWB%P;!VmotxT>UIcf^MFfzF=oB#kJ*OQdu|j+=r%YN=`It(LgdhK`># zmD!UMpFmXKB-DQm;d323OTF8d8ot7%0?hIfsw0BMi=M7+39=-jIEld$I)>o4NYTT< zZaX=x+<|1R(4)%QpRW5)Kg7xsv__e|A!$mbjy!@=&{*t;o6 z7=hyw1enjKO(r{L=?Z2UDONtv&4QsnCkyv&oIVhjNxu`m3v+qG&gYu}I>lh8UR6WO zTE=+=WgNjUVtq&8-xQzYv@s}5uhJAqkam@)H(@4B-&)HLPHg#$j%1LEb)gd^_N@mO zj&C#6^FZA3zprYTdh5c!KV9T!tS@!Wqh$!gNMYJU+=Z3Z?9`YPw7gD}W>01T8fWY2 z`}k^Mp6`_5d2Vw$bvAZ?+p>RpYWFXLi!{Th_^S$3Af3QC)RdNPT4dK|p zWuGY-U|X;F-#eIh;SB%)I0!n!ba#$LtSCqGh<@g{d*zK;Da*L$-sn~E(T$*d!p5Ih z`S-T65WJ&K$j_#n5o;~zG^*aakVg1#PoTf(F3*A*^yI$L6+T#0cd2);0=zFePoVYU z(V^73!gcTuN&c2&@;6h9mv>^kQhV5e!c)Dj1mR?O0Gmqjg>pbi2jPFoVuCMd2JQLf zeQezckZ}I=v_kGZ{Bm23Gx&PCIpAb73EK*?gZ*v&SGSq}!FI424M4`CQ3Ns3#kz&u zn7g)DJbq+sUijBw@JnD4&G{4-xVQ8&Wru!gB1B(4%5?#Ob@pUII$cqXskUMyBvC~y ze|~xIm4%nUAF2-s5ar>}rzL;;{PH@sFyS9xguiH;Saa^~G7BZSSwN8_5mKA2*B%g7 z-bLpT{#!(1@B{@!sQatH2(*oVfiV02hb_-vN2Z?_4^c-!Sb1&cda9`PyRZGcM#gKi zdobtX{SU?`)`7$ymP=`r2#xFMyQ7b7{)Y$4?_Vd0hcLG?*FhKg*ROgr%at()NJOQv zIsoM4NFMMG(0+<1G{61}MLep}(C27!b;Wb(J2V3JgcXSD=6`#+YItBJb2oDffUHX< z1=+yFb23bMe|rI8szG$2Fh~w$CjlIxy7p>K{T!IwxR_*T>kKbb9<3Lj1B6R*zFQHn zCRgAdhe78#@p!XQEET1A`qeGH_MVvp0Tzn3w>Z5fDG(V#_p3d=?p!P*DmquJ7Ry5*!Yxd!{ zUkn_RoLJ(N_dE&ynk-VzsY9>8#N00H-d;O`BJU^~pKaMzS&ECT*(A2 z+7^g33*oy8jo5Y`%z2f_$mvbqf}2`y2^^Xxfh4IbQH#(7GXRF31a%1oLKJey%u89Y zA(h~26%GHY5zoq$x@pYvtB{dB`748?&2Y+SnNM%eY^uv zK2H~FdVg@Icc&pd0aw5weD@7M0W$m);57|>&Szbq&p*Y&qLk;JuO$tZNKH_qSlIy~ zX`o8F`nfiL%U?p|4;l+vzy>wa`YxZ~8l!B59%e*Tpw=Qr!t02*eIWE07~CJ_Z}FsC z!?B^HV3vrK659Cz?rYT~+~W3~hQMh zBJqIkC;R?P{AS+xbC0<1@N&rEnY>zP@w)zWzZD);myQ*k=KKZmk4Q%%BDVwwi;}ex zNIq{~ckPuc0(OGsSq0is6A-9aAt0Q-*7FNZx`e~jX_{lZ%VZVFG8Q0r^k(Kgki+)T-;j4&)V?Uh>T+F@#5(3hZE7%~<`j{Rgw9 z*1kP;frSvj?sucm{Wo^Ov*z3O=>omXk`W*=4Fw*Fh4_I>uvG2!K8E%}Ixy1D`oyx} z)~vS!gVxeP1vttO9iDPw`?*4;JOYF{>YadRa8Zn0VBL>R9KRGUEZF6IK<9T*`90Bv zZJzQZ>NRkD&nF}9Hqs-``&a%&9p&Lon31#ZtuL-LcL!=rLAnY8yFbG4Xjv z^vxoW8v9LW&DOa$q2QCi-r*)9+5wKaTW58+)avvuJmS?H2L4}MKG!}|Qz!vCaGLop zZo}FRbp^0Lhi}VC?cF=@7jNF-ly(J^cpKSR`CR~omLinPm40xUFBJX5W2HOYpcXw~ za`DMRK;^fF>%8^bh{&#ziAd(-E8mR{*^E4}2lH+yXOwIvuP2(4AA`KK-1|#1mkAHN zz)7XC8liq{T?9jfqa}wow>t6UlaBiBZ+A@zi!9*8kS|NsP%SSnlZT2+hrXm#1P1I& z-xMxSF-2z0f;*vE7t3jSxGeFxDpi6BzFfuD>>Q8 zFX6ZJ+T~N&)Q<4bdT;h+&R5iz9As+edw}F!HfZ;{@V6!waaiG|x}3W9#yRCqZbxkG9bs0uCk*#E%DEd3H;lgd)XcJ<+fGn+2qNGp`?Ke|b#(`d^ z3~ket^yanB(@Ju9+2`bH@)|v=;fg4@k5{yhgwVLLF!dm+{VF1f=iZ9IbH{c62JZjl zXx#I@0K##-z|MVuQG`JcYN%_k7C(U|k;48LQP7ZDRhgfY>yq_|mzhfy^_YS7mh6Y? zK}PaE;rTb);qxTUFY2L1;!isLQN+=+gm+lFT}Xai53n zZRPO3#fOcTAXswrO_au0sy}ffp0oSu_)h$V*dS^VJoN@*MqF+KG8CP(K31Pw%RHGb z4u|K~67)NCXBMNbaMc9@PcxRV8@>lL4BL00?tw+NyG zVCnGC>g+qs#!sBR8X*rt@cc*JTEn5)RAS}@rQUOI4Q>*AFwwYmF8vWjaEPJFy96s5 zuD(vt1vO+aCOMUqt4mzgbm4bAPXA8DYUi@V`^1FhZ9i^H)Ss8?Nf&IW!6wOm;kZst zy007a)$+FtJu*6XL%7~VVKkt^MooDFR-#`6rGLskbAJI{*Y5npo9@9yL2h?th6NbgZ>BW;13zRvdHnk2(#%7A0M z`s<}<^<3t1Hw9IxI$c=baS6IMK76bQorNfV*y0CnSQSuN9!s>o4!k3BU@?1i=$-=! zPbA$$xfS0YcSNFxJ+<6OvOei?Mh zjo5}+6(_Cp$7<|4sTPKlEZ8HjD{gCT@A>P4V}U#>1W6$sv^?LomHCLfJ}LcNyS*dK z1}Rs#?)Xz`Lu#mdi39jEAiEXMG{g((NBRXdRnomR@Qw9$e(Rajjy`B!{t!GBLR*f9!5dgE%Y?QBt3a*+ zgLPYJ?V?t!y7cXLa#ov`VHjwZ;{?}Lt9qP5HBXVB7n7#5^@73@aawAKhxvO)t0=_k z4w8wA4Vrnp?fPl^_laW+?&QJ{IUUOln-NwoJ9U!_i{c#SF!UzS^P#4bW_F7fN)GK! zlaB7W7dgtW%^XpyDobk{tZFnNp|QTzpOZm%gPy76s7�WtnOTcS%9U1fxcU*V;x2 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%0Dp}-Gy<+w^7I+Vq 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

1p_M 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 a?48K=Xjkg{7IE$X@VlaOO&hCeAMqdh$_=9c literal 155724 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⩔^8cEk5j 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 DYIw|s From f31f36e37094062371e8d36da8646db356824923 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 25 Aug 2023 13:18:47 +0700 Subject: [PATCH 07/28] WIP --- README.md | 4 ++++ assets/db-schema.png | Bin 0 -> 157759 bytes 2 files changed, 4 insertions(+) create mode 100644 assets/db-schema.png diff --git a/README.md b/README.md index 7c47621..e08a314 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,10 @@ Comment - request: { userId, articleId, content } - response: commentId | Comment Follow - request: { currentUserId, toUserId } - response: boolean +## DB Schema + +![alt text](./assets/db-schema.png) + ## Design system ![alt text](./assets/architect.png) diff --git a/assets/db-schema.png b/assets/db-schema.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0d1a29a32dbc610d9e0afa072f9bc5dd20d833 GIT binary patch literal 157759 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%0A(=kFR^CC<(F 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≪_TXET%`6 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 z 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 DAN~D) literal 0 HcmV?d00001 From a29d7b04be6eba2189268351b7d63d9d194e42ee Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Wed, 30 Aug 2023 22:36:14 +0700 Subject: [PATCH 08/28] chore: update .env --- src/rabbitmq/rabbitmq.module.ts | 9 +-------- src/redis/redis.module.ts | 16 +--------------- 2 files changed, 2 insertions(+), 23 deletions(-) diff --git a/src/rabbitmq/rabbitmq.module.ts b/src/rabbitmq/rabbitmq.module.ts index fd028af..40f07e2 100644 --- a/src/rabbitmq/rabbitmq.module.ts +++ b/src/rabbitmq/rabbitmq.module.ts @@ -9,14 +9,7 @@ import { PublisherService } from "./publisher.service"; { provide: "RABBIT_MQ_CONNECTION", useFactory: async (): Promise => { - if (process.env.NODE_ENV === "development") { - return ( - connect("amqp://localhost") || connect(process.env.RABBIT_URL_DEV) - ); - } - if (process.env.NODE_ENV === "staging") { - return connect(process.env.RABBIT_URL); - } + return connect(process.env.RABBIT_URL); }, }, PublisherService, diff --git a/src/redis/redis.module.ts b/src/redis/redis.module.ts index f2430dc..e00a096 100644 --- a/src/redis/redis.module.ts +++ b/src/redis/redis.module.ts @@ -7,21 +7,7 @@ import { RedisService } from "./redis.service"; { provide: "REDIS_CLIENT", useFactory: () => { - if (process.env.NODE_ENV === "development") { - return new Redis({ - host: "localhost", - port: 6379, - }); - } - if (process.env.NODE_ENV === "staging") { - return new Redis({ - host: process.env.REDIS_HOST, - port: parseInt(process.env.REDIS_PORT), - }); - } - if (process.env.NODE_ENV === "RENDER") { - return new Redis(process.env.REDIS_URL); - } + return new Redis(process.env.REDIS_URL); }, }, RedisService, From ad30267900c0771afb64439fcdda2ef0bf8ce850 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 1 Sep 2023 10:37:14 +0700 Subject: [PATCH 09/28] update: config CORS --- src/main.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main.ts b/src/main.ts index 38de3e9..9ca9916 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,7 @@ import { NestFactory } from "@nestjs/core"; import { SwaggerModule, DocumentBuilder } from "@nestjs/swagger"; import { json, urlencoded } from "express"; -import { INestApplication } from "@nestjs/common"; +import { INestApplication, NestApplicationOptions } from "@nestjs/common"; import * as cluster from "cluster"; import * as os from "os"; @@ -41,7 +41,11 @@ async function bootstrap() { cluster.fork(); }); } else { - const appOptions = { cors: true }; + const appOptions: NestApplicationOptions = { + cors: { + origin: [process.env.CORS_ORIGIN], + }, + }; const app = await NestFactory.create(ApplicationModule, appOptions); app.use(json({ limit: "50mb" })); app.use(urlencoded({ extended: true, limit: "50mb" })); From 5b323286756a23f83f8d6e120e5fee74583a0c57 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 14:43:22 +0700 Subject: [PATCH 10/28] feat: apply CLEAN Architect for user-module --- .gitignore | 1 + src/article/article.controller.ts | 2 +- src/article/article.module.ts | 2 +- src/main.ts | 4 ++-- src/media/media.module.ts | 2 +- src/profile/profile.controller.ts | 2 +- src/profile/profile.module.ts | 2 +- src/rabbitmq/rabbitmq.module.ts | 1 + .../middleware}/auth.middleware.ts | 8 ++++---- src/{user => shared/middleware}/user.decorator.ts | 4 ++-- .../{ => application}/commands/command.module.ts | 10 +++++----- .../commands/handlers/create-user.handler.ts | 12 ++++++------ .../{ => application}/commands/handlers/index.ts | 0 .../commands/handlers/update-user.handler.ts | 12 ++++++------ .../commands/impl/create-user.command.ts | 2 +- src/user/{ => application}/commands/impl/index.ts | 0 .../commands/impl/update-user.command.ts | 2 +- src/user/{ => application}/commands/index.ts | 0 src/user/{ => application}/events/event.module.ts | 6 +++--- .../{ => application}/events/handlers/index.ts | 0 .../events/handlers/user-created.handler.ts | 4 ++-- .../events/handlers/user-updated.handler.ts | 4 ++-- src/user/{ => application}/events/impl/index.ts | 0 .../events/impl/user-created.event.ts | 2 +- .../events/impl/user-updated.event.ts | 2 +- src/user/{ => application}/events/index.ts | 0 .../handlers/find-user-by-email.handler.ts | 8 ++++---- .../queries/handlers/find-user-by-id.handler.ts | 12 ++++++------ .../{ => application}/queries/handlers/index.ts | 0 .../queries/handlers/login.handler.ts | 12 ++++++------ .../queries/impl/find-user-by-email.query.ts | 0 .../queries/impl/find-user-by-id.query.ts | 0 src/user/{ => application}/queries/impl/index.ts | 0 .../{ => application}/queries/impl/login.query.ts | 2 +- src/user/{ => application}/queries/index.ts | 0 .../{ => application}/queries/query.module.ts | 10 +++++----- .../{ => application}/services/auth.service.ts | 0 .../{ => application}/services/user.service.ts | 4 ++-- src/user/{ => application}/user.projection.ts | 8 ++++---- src/user/{ => core}/dto/create-user.dto.ts | 0 src/user/{ => core}/dto/index.ts | 0 src/user/{ => core}/dto/login-user.dto.ts | 0 src/user/{ => core}/dto/update-user.dto.ts | 0 src/user/{ => presentation}/user.controller.ts | 13 +++++++------ src/user/user.module.ts | 15 ++++++++------- 45 files changed, 86 insertions(+), 82 deletions(-) rename src/{user => shared/middleware}/auth.middleware.ts (85%) rename src/{user => shared/middleware}/user.decorator.ts (86%) rename src/user/{ => application}/commands/command.module.ts (65%) rename src/user/{ => application}/commands/handlers/create-user.handler.ts (85%) rename src/user/{ => application}/commands/handlers/index.ts (100%) rename src/user/{ => application}/commands/handlers/update-user.handler.ts (77%) rename src/user/{ => application}/commands/impl/create-user.command.ts (63%) rename src/user/{ => application}/commands/impl/index.ts (100%) rename src/user/{ => application}/commands/impl/update-user.command.ts (69%) rename src/user/{ => application}/commands/index.ts (100%) rename src/user/{ => application}/events/event.module.ts (71%) rename src/user/{ => application}/events/handlers/index.ts (100%) rename src/user/{ => application}/events/handlers/user-created.handler.ts (86%) rename src/user/{ => application}/events/handlers/user-updated.handler.ts (86%) rename src/user/{ => application}/events/impl/index.ts (100%) rename src/user/{ => application}/events/impl/user-created.event.ts (56%) rename src/user/{ => application}/events/impl/user-updated.event.ts (56%) rename src/user/{ => application}/events/index.ts (100%) rename src/user/{ => application}/queries/handlers/find-user-by-email.handler.ts (76%) rename src/user/{ => application}/queries/handlers/find-user-by-id.handler.ts (75%) rename src/user/{ => application}/queries/handlers/index.ts (100%) rename src/user/{ => application}/queries/handlers/login.handler.ts (80%) rename src/user/{ => application}/queries/impl/find-user-by-email.query.ts (100%) rename src/user/{ => application}/queries/impl/find-user-by-id.query.ts (100%) rename src/user/{ => application}/queries/impl/index.ts (100%) rename src/user/{ => application}/queries/impl/login.query.ts (64%) rename src/user/{ => application}/queries/index.ts (100%) rename src/user/{ => application}/queries/query.module.ts (66%) rename src/user/{ => application}/services/auth.service.ts (100%) rename src/user/{ => application}/services/user.service.ts (87%) rename src/user/{ => application}/user.projection.ts (77%) rename src/user/{ => core}/dto/create-user.dto.ts (100%) rename src/user/{ => core}/dto/index.ts (100%) rename src/user/{ => core}/dto/login-user.dto.ts (100%) rename src/user/{ => core}/dto/update-user.dto.ts (100%) rename src/user/{ => presentation}/user.controller.ts (78%) diff --git a/.gitignore b/.gitignore index 6d3c07c..8d83aa9 100644 --- a/.gitignore +++ b/.gitignore @@ -22,5 +22,6 @@ dist/* .env .env.development +.env.docker app.yaml \ No newline at end of file diff --git a/src/article/article.controller.ts b/src/article/article.controller.ts index 0499bef..31ada13 100644 --- a/src/article/article.controller.ts +++ b/src/article/article.controller.ts @@ -17,7 +17,7 @@ import { ApiResponse, ApiTags, } from "@nestjs/swagger"; -import { User } from "../user/user.decorator"; +import { User } from "../shared/middleware/user.decorator"; import { CreateArticleCommand, CreateCommentCommand, diff --git a/src/article/article.module.ts b/src/article/article.module.ts index 0b16e8b..4ce5e2b 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -6,7 +6,7 @@ import { } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; -import { AuthMiddleware } from "../user/auth.middleware"; +import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; import { ArticleController } from "./article.controller"; import { ArticleProjection } from "./article.projection"; diff --git a/src/main.ts b/src/main.ts index 9ca9916..9898963 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,7 +7,7 @@ import * as os from "os"; import { ApplicationModule } from "./app.module"; import { ArticleProjection } from "./article/article.projection"; -import { UserProjection } from "./user/user.projection"; +import { UserProjection } from "./user/application/user.projection"; import { ProfileProjection } from "./profile/profile.projection"; async function executeProjection(app: INestApplication) { @@ -25,7 +25,7 @@ async function bootstrap() { const numWorkers = os.cpus().length; console.log(`Master cluster setting up ${numWorkers} workers...`); - for (let i = 0; i < numWorkers; i++) { + for (let i = 0; i < 1; i++) { cluster.fork(); } diff --git a/src/media/media.module.ts b/src/media/media.module.ts index d872f55..6d70335 100644 --- a/src/media/media.module.ts +++ b/src/media/media.module.ts @@ -5,7 +5,7 @@ import { RequestMethod, } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; -import { AuthMiddleware } from "../user/auth.middleware"; +import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; import { DropboxService } from "./services/dropbox.service"; import { MediaController } from "./media.controller"; diff --git a/src/profile/profile.controller.ts b/src/profile/profile.controller.ts index 2680946..ae313cc 100644 --- a/src/profile/profile.controller.ts +++ b/src/profile/profile.controller.ts @@ -1,7 +1,7 @@ import { Controller, Delete, Get, Param, Post } from "@nestjs/common"; import { CommandBus, QueryBus } from "@nestjs/cqrs"; import { ApiBearerAuth, ApiOperation, ApiTags } from "@nestjs/swagger"; -import { User } from "../user/user.decorator"; +import { User } from "../shared/middleware/user.decorator"; import { FollowProfileCommand, UnFollowProfileCommand } from "./commands"; import { FindProfileQuery } from "./queries"; import { ProfileRO } from "./core/interfaces/profile.interface"; diff --git a/src/profile/profile.module.ts b/src/profile/profile.module.ts index b9ac4bc..1a3b5d8 100644 --- a/src/profile/profile.module.ts +++ b/src/profile/profile.module.ts @@ -6,7 +6,7 @@ import { } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; -import { AuthMiddleware } from "../user/auth.middleware"; +import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; import { CommandModule } from "./commands/command.module"; import { EventModule } from "./events/event.module"; diff --git a/src/rabbitmq/rabbitmq.module.ts b/src/rabbitmq/rabbitmq.module.ts index 40f07e2..c1b0d41 100644 --- a/src/rabbitmq/rabbitmq.module.ts +++ b/src/rabbitmq/rabbitmq.module.ts @@ -1,5 +1,6 @@ import { Module } from "@nestjs/common"; import { connect, Connection } from "amqplib"; + import { ConsumerService } from "./consumer.service"; import { PublisherService } from "./publisher.service"; diff --git a/src/user/auth.middleware.ts b/src/shared/middleware/auth.middleware.ts similarity index 85% rename from src/user/auth.middleware.ts rename to src/shared/middleware/auth.middleware.ts index 58d93f2..c99ec7c 100644 --- a/src/user/auth.middleware.ts +++ b/src/shared/middleware/auth.middleware.ts @@ -4,10 +4,10 @@ import { QueryBus } from "@nestjs/cqrs"; import { NextFunction, Request, Response } from "express"; import { IncomingHttpHeaders } from "http"; import * as jwt from "jsonwebtoken"; -import { SECRET } from "../config"; -import { FindUserById } from "./queries"; -import { UserData } from "./core/interfaces/user.interface"; -import { RedisService } from "../redis/redis.service"; +import { SECRET } from "../../config"; +import { FindUserById } from "../../user/application/queries"; +import { UserData } from "../../user/core/interfaces/user.interface"; +import { RedisService } from "../../redis/redis.service"; interface IRequestCustom extends Request { user: UserData; diff --git a/src/user/user.decorator.ts b/src/shared/middleware/user.decorator.ts similarity index 86% rename from src/user/user.decorator.ts rename to src/shared/middleware/user.decorator.ts index d2fbfda..f6748e4 100644 --- a/src/user/user.decorator.ts +++ b/src/shared/middleware/user.decorator.ts @@ -1,7 +1,7 @@ import { createParamDecorator, ExecutionContext } from "@nestjs/common"; -import { SECRET } from "../config"; +import { SECRET } from "../../config"; import * as jwt from "jsonwebtoken"; -import { CurrentUser } from "./core/interfaces/user.interface"; +import { CurrentUser } from "../../user/core/interfaces/user.interface"; export const User = createParamDecorator((data: any, ctx: ExecutionContext) => { const req = ctx.switchToHttp().getRequest(); diff --git a/src/user/commands/command.module.ts b/src/user/application/commands/command.module.ts similarity index 65% rename from src/user/commands/command.module.ts rename to src/user/application/commands/command.module.ts index 26d0662..c35a950 100644 --- a/src/user/commands/command.module.ts +++ b/src/user/application/commands/command.module.ts @@ -1,11 +1,11 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { CommandHandlers } from "."; -import { WRITE_CONNECTION } from "../../config"; -import { RabbitMqModule } from "../../rabbitmq/rabbitmq.module"; -import { UserController } from "../user.controller"; -import { UserEntity } from "../core"; +import { WRITE_CONNECTION } from "../../../config"; +import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; +import { UserEntity } from "../../core"; import { UserService } from "../services/user.service"; @Module({ @@ -15,7 +15,7 @@ import { UserService } from "../services/user.service"; RabbitMqModule, ], providers: [UserService, ...CommandHandlers], - controllers: [UserController], + controllers: [], exports: [], }) export class CommandModule {} diff --git a/src/user/commands/handlers/create-user.handler.ts b/src/user/application/commands/handlers/create-user.handler.ts similarity index 85% rename from src/user/commands/handlers/create-user.handler.ts rename to src/user/application/commands/handlers/create-user.handler.ts index 6381ff3..338a5d6 100644 --- a/src/user/commands/handlers/create-user.handler.ts +++ b/src/user/application/commands/handlers/create-user.handler.ts @@ -3,12 +3,12 @@ import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { validate } from "class-validator"; import { getRepository, Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { USER_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../core/entities/user.entity"; -import { MessageType } from "../../core/enums/user.enum"; -import { UserRO } from "../../core/interfaces/user.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { USER_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../core/entities/user.entity"; +import { MessageType } from "../../../core/enums/user.enum"; +import { UserRO } from "../../../core/interfaces/user.interface"; import { UserService } from "../../services/user.service"; import { CreateUserCommand } from "../impl"; diff --git a/src/user/commands/handlers/index.ts b/src/user/application/commands/handlers/index.ts similarity index 100% rename from src/user/commands/handlers/index.ts rename to src/user/application/commands/handlers/index.ts diff --git a/src/user/commands/handlers/update-user.handler.ts b/src/user/application/commands/handlers/update-user.handler.ts similarity index 77% rename from src/user/commands/handlers/update-user.handler.ts rename to src/user/application/commands/handlers/update-user.handler.ts index a8522eb..a0be96e 100644 --- a/src/user/commands/handlers/update-user.handler.ts +++ b/src/user/application/commands/handlers/update-user.handler.ts @@ -2,12 +2,12 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { USER_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../core/entities/user.entity"; -import { MessageType } from "../../core/enums/user.enum"; -import { UserRO } from "../../core/interfaces/user.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { USER_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../core/entities/user.entity"; +import { MessageType } from "../../../core/enums/user.enum"; +import { UserRO } from "../../../core/interfaces/user.interface"; import { UserService } from "../../services/user.service"; import { UpdateUserCommand } from "../impl"; diff --git a/src/user/commands/impl/create-user.command.ts b/src/user/application/commands/impl/create-user.command.ts similarity index 63% rename from src/user/commands/impl/create-user.command.ts rename to src/user/application/commands/impl/create-user.command.ts index 8edfb46..3d81841 100644 --- a/src/user/commands/impl/create-user.command.ts +++ b/src/user/application/commands/impl/create-user.command.ts @@ -1,4 +1,4 @@ -import { CreateUserDto } from "../../dto"; +import { CreateUserDto } from "../../../core/dto"; export class CreateUserCommand { constructor(public readonly dto: CreateUserDto) {} diff --git a/src/user/commands/impl/index.ts b/src/user/application/commands/impl/index.ts similarity index 100% rename from src/user/commands/impl/index.ts rename to src/user/application/commands/impl/index.ts diff --git a/src/user/commands/impl/update-user.command.ts b/src/user/application/commands/impl/update-user.command.ts similarity index 69% rename from src/user/commands/impl/update-user.command.ts rename to src/user/application/commands/impl/update-user.command.ts index 0eca571..55b69b8 100644 --- a/src/user/commands/impl/update-user.command.ts +++ b/src/user/application/commands/impl/update-user.command.ts @@ -1,4 +1,4 @@ -import { UpdateUserDto } from "../../dto"; +import { UpdateUserDto } from "../../../core/dto"; export class UpdateUserCommand { constructor(public readonly id: number, public readonly dto: UpdateUserDto) {} diff --git a/src/user/commands/index.ts b/src/user/application/commands/index.ts similarity index 100% rename from src/user/commands/index.ts rename to src/user/application/commands/index.ts diff --git a/src/user/events/event.module.ts b/src/user/application/events/event.module.ts similarity index 71% rename from src/user/events/event.module.ts rename to src/user/application/events/event.module.ts index 7f46ff8..4b9c93c 100644 --- a/src/user/events/event.module.ts +++ b/src/user/application/events/event.module.ts @@ -1,9 +1,9 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../../config"; -import { UserEntity } from "../core"; -import { EventHandlers } from "../events"; +import { READ_CONNECTION } from "../../../config"; +import { UserEntity } from "../../core"; +import { EventHandlers } from "."; @Module({ imports: [ diff --git a/src/user/events/handlers/index.ts b/src/user/application/events/handlers/index.ts similarity index 100% rename from src/user/events/handlers/index.ts rename to src/user/application/events/handlers/index.ts diff --git a/src/user/events/handlers/user-created.handler.ts b/src/user/application/events/handlers/user-created.handler.ts similarity index 86% rename from src/user/events/handlers/user-created.handler.ts rename to src/user/application/events/handlers/user-created.handler.ts index d118158..fb2aaff 100644 --- a/src/user/events/handlers/user-created.handler.ts +++ b/src/user/application/events/handlers/user-created.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { UserEntity } from "../../core/entities/user.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { UserEntity } from "../../../core/entities/user.entity"; import { UserCreatedEvent } from "../impl"; @EventsHandler(UserCreatedEvent) diff --git a/src/user/events/handlers/user-updated.handler.ts b/src/user/application/events/handlers/user-updated.handler.ts similarity index 86% rename from src/user/events/handlers/user-updated.handler.ts rename to src/user/application/events/handlers/user-updated.handler.ts index a75b582..045554f 100644 --- a/src/user/events/handlers/user-updated.handler.ts +++ b/src/user/application/events/handlers/user-updated.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { UserEntity } from "../../core/entities/user.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { UserEntity } from "../../../core/entities/user.entity"; import { UserUpdatedEvent } from "../impl"; @EventsHandler(UserUpdatedEvent) diff --git a/src/user/events/impl/index.ts b/src/user/application/events/impl/index.ts similarity index 100% rename from src/user/events/impl/index.ts rename to src/user/application/events/impl/index.ts diff --git a/src/user/events/impl/user-created.event.ts b/src/user/application/events/impl/user-created.event.ts similarity index 56% rename from src/user/events/impl/user-created.event.ts rename to src/user/application/events/impl/user-created.event.ts index 4d38585..702e7b3 100644 --- a/src/user/events/impl/user-created.event.ts +++ b/src/user/application/events/impl/user-created.event.ts @@ -1,4 +1,4 @@ -import { UserEntity } from "../../core/entities/user.entity"; +import { UserEntity } from "../../../core/entities/user.entity"; export class UserCreatedEvent { constructor(public readonly user: UserEntity) {} diff --git a/src/user/events/impl/user-updated.event.ts b/src/user/application/events/impl/user-updated.event.ts similarity index 56% rename from src/user/events/impl/user-updated.event.ts rename to src/user/application/events/impl/user-updated.event.ts index 9b2a28f..797c103 100644 --- a/src/user/events/impl/user-updated.event.ts +++ b/src/user/application/events/impl/user-updated.event.ts @@ -1,4 +1,4 @@ -import { UserEntity } from "../../core/entities/user.entity"; +import { UserEntity } from "../../../core/entities/user.entity"; export class UserUpdatedEvent { constructor(public readonly user: UserEntity) {} diff --git a/src/user/events/index.ts b/src/user/application/events/index.ts similarity index 100% rename from src/user/events/index.ts rename to src/user/application/events/index.ts diff --git a/src/user/queries/handlers/find-user-by-email.handler.ts b/src/user/application/queries/handlers/find-user-by-email.handler.ts similarity index 76% rename from src/user/queries/handlers/find-user-by-email.handler.ts rename to src/user/application/queries/handlers/find-user-by-email.handler.ts index bf42c2e..e86d755 100644 --- a/src/user/queries/handlers/find-user-by-email.handler.ts +++ b/src/user/application/queries/handlers/find-user-by-email.handler.ts @@ -1,10 +1,10 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { RedisService } from "../../../redis/redis.service"; -import { UserEntity } from "../../core/entities/user.entity"; -import { UserRO } from "../../core/interfaces/user.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { RedisService } from "../../../../redis/redis.service"; +import { UserEntity } from "../../../core/entities/user.entity"; +import { UserRO } from "../../../core/interfaces/user.interface"; import { FindUserByEmailQuery } from "../impl"; @QueryHandler(FindUserByEmailQuery) diff --git a/src/user/queries/handlers/find-user-by-id.handler.ts b/src/user/application/queries/handlers/find-user-by-id.handler.ts similarity index 75% rename from src/user/queries/handlers/find-user-by-id.handler.ts rename to src/user/application/queries/handlers/find-user-by-id.handler.ts index 09a9c32..0295e4d 100644 --- a/src/user/queries/handlers/find-user-by-id.handler.ts +++ b/src/user/application/queries/handlers/find-user-by-id.handler.ts @@ -2,10 +2,10 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { RedisService } from "../../../redis/redis.service"; -import { UserEntity } from "../../core/entities/user.entity"; -import { UserRO } from "../../core/interfaces/user.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { RedisService } from "../../../../redis/redis.service"; +import { UserEntity } from "../../../core/entities/user.entity"; +import { UserRO } from "../../../core/interfaces/user.interface"; import { UserService } from "../../services/user.service"; import { FindUserById } from "../impl"; @@ -17,12 +17,12 @@ export class FindUserByIdHandler implements IQueryHandler { private readonly userService: UserService, private readonly redisCacheService: RedisService - ) { } + ) {} async execute({ id }: FindUserById): Promise { let user: UserEntity; - user = await this.redisCacheService.get(id.toString()) as UserEntity; + user = (await this.redisCacheService.get(id.toString())) as UserEntity; if (!user) { user = await this.userRepository.findOne(id); diff --git a/src/user/queries/handlers/index.ts b/src/user/application/queries/handlers/index.ts similarity index 100% rename from src/user/queries/handlers/index.ts rename to src/user/application/queries/handlers/index.ts diff --git a/src/user/queries/handlers/login.handler.ts b/src/user/application/queries/handlers/login.handler.ts similarity index 80% rename from src/user/queries/handlers/login.handler.ts rename to src/user/application/queries/handlers/login.handler.ts index 540e26f..dfd0ed2 100644 --- a/src/user/queries/handlers/login.handler.ts +++ b/src/user/application/queries/handlers/login.handler.ts @@ -3,14 +3,14 @@ import { QueryHandler, IQueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; import * as argon2 from "argon2"; -import { READ_CONNECTION } from "../../../config"; -import { LoginUserDto } from "../../dto"; -import { UserEntity } from "../../core/entities/user.entity"; -import { UserRO } from "../../core/interfaces/user.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { LoginUserDto } from "../../../core/dto"; +import { UserEntity } from "../../../core/entities/user.entity"; +import { UserRO } from "../../../core/interfaces/user.interface"; import { UserService } from "../../services/user.service"; import { LoginQuery } from "../impl"; -import { RedisService } from "../../../redis/redis.service"; -import { TIME_TO_LIVE } from "../../../redis/redis.constant"; +import { RedisService } from "../../../../redis/redis.service"; +import { TIME_TO_LIVE } from "../../../../redis/redis.constant"; @QueryHandler(LoginQuery) export class LoginQueryHandler implements IQueryHandler { diff --git a/src/user/queries/impl/find-user-by-email.query.ts b/src/user/application/queries/impl/find-user-by-email.query.ts similarity index 100% rename from src/user/queries/impl/find-user-by-email.query.ts rename to src/user/application/queries/impl/find-user-by-email.query.ts diff --git a/src/user/queries/impl/find-user-by-id.query.ts b/src/user/application/queries/impl/find-user-by-id.query.ts similarity index 100% rename from src/user/queries/impl/find-user-by-id.query.ts rename to src/user/application/queries/impl/find-user-by-id.query.ts diff --git a/src/user/queries/impl/index.ts b/src/user/application/queries/impl/index.ts similarity index 100% rename from src/user/queries/impl/index.ts rename to src/user/application/queries/impl/index.ts diff --git a/src/user/queries/impl/login.query.ts b/src/user/application/queries/impl/login.query.ts similarity index 64% rename from src/user/queries/impl/login.query.ts rename to src/user/application/queries/impl/login.query.ts index 46b3ac4..3b61efe 100644 --- a/src/user/queries/impl/login.query.ts +++ b/src/user/application/queries/impl/login.query.ts @@ -1,4 +1,4 @@ -import { LoginUserDto } from "../../dto"; +import { LoginUserDto } from "../../../core/dto"; export class LoginQuery { constructor(public readonly loginUserDto: LoginUserDto) {} diff --git a/src/user/queries/index.ts b/src/user/application/queries/index.ts similarity index 100% rename from src/user/queries/index.ts rename to src/user/application/queries/index.ts diff --git a/src/user/queries/query.module.ts b/src/user/application/queries/query.module.ts similarity index 66% rename from src/user/queries/query.module.ts rename to src/user/application/queries/query.module.ts index 637aeb9..de4cee7 100644 --- a/src/user/queries/query.module.ts +++ b/src/user/application/queries/query.module.ts @@ -1,12 +1,12 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { QueryHandlers } from "."; -import { READ_CONNECTION } from "../../config"; -import { UserController } from "../user.controller"; -import { UserEntity } from "../core"; +import { READ_CONNECTION } from "../../../config"; +import { UserEntity } from "../../core"; import { UserService } from "../services/user.service"; -import { RedisModule } from "../../redis/redis.module"; +import { RedisModule } from "../../../redis/redis.module"; @Module({ imports: [ @@ -15,7 +15,7 @@ import { RedisModule } from "../../redis/redis.module"; RedisModule, ], providers: [UserService, ...QueryHandlers], - controllers: [UserController], + controllers: [], exports: [UserService], }) export class QueryModule {} diff --git a/src/user/services/auth.service.ts b/src/user/application/services/auth.service.ts similarity index 100% rename from src/user/services/auth.service.ts rename to src/user/application/services/auth.service.ts diff --git a/src/user/services/user.service.ts b/src/user/application/services/user.service.ts similarity index 87% rename from src/user/services/user.service.ts rename to src/user/application/services/user.service.ts index 6da4b43..435e638 100644 --- a/src/user/services/user.service.ts +++ b/src/user/application/services/user.service.ts @@ -1,6 +1,6 @@ import { Injectable } from "@nestjs/common"; -import { SECRET } from "../../config"; -import { UserEntity } from "../core/entities/user.entity"; +import { SECRET } from "../../../config"; +import { UserEntity } from "../../core/entities/user.entity"; const jwt = require("jsonwebtoken"); @Injectable() diff --git a/src/user/user.projection.ts b/src/user/application/user.projection.ts similarity index 77% rename from src/user/user.projection.ts rename to src/user/application/user.projection.ts index 0610047..801744c 100644 --- a/src/user/user.projection.ts +++ b/src/user/application/user.projection.ts @@ -1,9 +1,9 @@ import { Injectable } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; -import { ConsumerService } from "../rabbitmq/consumer.service"; -import { USER_QUEUE } from "../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "./core"; -import { MessageType } from "./core/enums/user.enum"; +import { ConsumerService } from "../../rabbitmq/consumer.service"; +import { USER_QUEUE } from "../../rabbitmq/rabbitmq.constants"; +import { IMessage, IProjection } from "../core"; +import { MessageType } from "../core/enums/user.enum"; import { UserCreatedEvent, UserUpdatedEvent } from "./events"; @Injectable() diff --git a/src/user/dto/create-user.dto.ts b/src/user/core/dto/create-user.dto.ts similarity index 100% rename from src/user/dto/create-user.dto.ts rename to src/user/core/dto/create-user.dto.ts diff --git a/src/user/dto/index.ts b/src/user/core/dto/index.ts similarity index 100% rename from src/user/dto/index.ts rename to src/user/core/dto/index.ts diff --git a/src/user/dto/login-user.dto.ts b/src/user/core/dto/login-user.dto.ts similarity index 100% rename from src/user/dto/login-user.dto.ts rename to src/user/core/dto/login-user.dto.ts diff --git a/src/user/dto/update-user.dto.ts b/src/user/core/dto/update-user.dto.ts similarity index 100% rename from src/user/dto/update-user.dto.ts rename to src/user/core/dto/update-user.dto.ts diff --git a/src/user/user.controller.ts b/src/user/presentation/user.controller.ts similarity index 78% rename from src/user/user.controller.ts rename to src/user/presentation/user.controller.ts index c5bc675..9e9a63e 100644 --- a/src/user/user.controller.ts +++ b/src/user/presentation/user.controller.ts @@ -1,12 +1,13 @@ import { Body, Controller, Get, Post, Put, UsePipes } from "@nestjs/common"; import { CommandBus, QueryBus } from "@nestjs/cqrs"; import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from "@nestjs/swagger"; -import { ValidationPipe } from "../shared/pipes/validation.pipe"; -import { CreateUserDto, LoginUserDto, UpdateUserDto } from "./dto"; -import { CreateUserCommand, UpdateUserCommand } from "./commands"; -import { FindUserByEmailQuery, FindUserById, LoginQuery } from "./queries"; -import { User } from "./user.decorator"; -import { UserRO } from "./core/interfaces/user.interface"; + +import { User } from "../../shared/middleware/user.decorator"; +import { ValidationPipe } from "../../shared/pipes/validation.pipe"; +import { CreateUserCommand, UpdateUserCommand } from "../application/commands"; +import { FindUserById, LoginQuery } from "../application/queries"; +import { CreateUserDto, LoginUserDto, UpdateUserDto } from "../core/dto"; +import { UserRO } from "../core/interfaces/user.interface"; @ApiBearerAuth() @ApiTags("user") diff --git a/src/user/user.module.ts b/src/user/user.module.ts index 3095526..3de6eac 100644 --- a/src/user/user.module.ts +++ b/src/user/user.module.ts @@ -5,15 +5,16 @@ import { RequestMethod, } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; + import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; -import { AuthMiddleware } from "./auth.middleware"; -import { CommandModule } from "./commands/command.module"; -import { EventModule } from "./events/event.module"; -import { QueryModule } from "./queries/query.module"; -import { UserController } from "./user.controller"; -import { UserProjection } from "./user.projection"; -import { UserService } from "./services/user.service"; import { RedisModule } from "../redis/redis.module"; +import { AuthMiddleware } from "../shared/middleware/auth.middleware"; +import { CommandModule } from "./application/commands/command.module"; +import { EventModule } from "./application/events/event.module"; +import { QueryModule } from "./application/queries/query.module"; +import { UserService } from "./application/services/user.service"; +import { UserProjection } from "./application/user.projection"; +import { UserController } from "./presentation/user.controller"; @Module({ imports: [ From 892da3754a4972f7142892f2eda84cdeb8252848 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 14:45:21 +0700 Subject: [PATCH 11/28] feat: apply CLEAN Architect for article-module --- .../{ => application}/article.projection.ts | 9 +++++---- .../{ => application}/commands/command.module.ts | 15 ++++++++------- .../commands/handlers/create-article.handler.ts | 12 ++++++------ .../commands/handlers/create-comment.handler.ts | 16 ++++++++-------- .../commands/handlers/delete-article.handler.ts | 8 ++++---- .../commands/handlers/delete-comment.handler.ts | 14 +++++++------- .../handlers/favorite-article.handler.ts | 14 +++++++------- .../{ => application}/commands/handlers/index.ts | 0 .../handlers/unfavorite-article.handler.ts | 14 +++++++------- .../commands/handlers/update-article.handler.ts | 12 ++++++------ .../commands/impl/create-article.command.ts | 2 +- .../commands/impl/create-comment.command.ts | 2 +- .../commands/impl/delete-article.command.ts | 0 .../commands/impl/delete-comment.command.ts | 0 .../commands/impl/favorite-article.command.ts | 0 .../{ => application}/commands/impl/index.ts | 0 .../commands/impl/unfavorite-article.command.ts | 0 .../commands/impl/update-article.command.ts | 2 +- src/article/{ => application}/commands/index.ts | 0 .../{ => application}/events/event.module.ts | 10 +++++----- .../events/handlers/article-created.handler.ts | 4 ++-- .../events/handlers/article-deleted.handler.ts | 4 ++-- .../events/handlers/article-favorited.handler.ts | 6 +++--- .../handlers/article-unfavorited.handler.ts | 6 +++--- .../events/handlers/article-updated.handler.ts | 4 ++-- .../events/handlers/comment-created.handler.ts | 4 ++-- .../events/handlers/comment-deleted.handler.ts | 4 ++-- .../{ => application}/events/handlers/index.ts | 0 .../events/impl/article-created.event.ts | 2 +- .../events/impl/article-deleted.event.ts | 0 .../events/impl/article-favorited.event.ts | 9 +++++++++ .../events/impl/article-unfavorited.event.ts | 4 ++-- .../events/impl/article-updated.event.ts | 2 +- .../events/impl/comment-created.event.ts | 2 +- .../events/impl/comment-deleted.event.ts | 2 +- .../{ => application}/events/impl/index.ts | 0 src/article/{ => application}/events/index.ts | 0 .../queries/handlers/find-all.article.handler.ts | 10 +++++----- .../queries/handlers/find-comments.handler.ts | 6 +++--- .../handlers/find-feed-article.handler.ts | 12 ++++++------ .../queries/handlers/find-one-article.handler.ts | 10 +++++----- .../{ => application}/queries/handlers/index.ts | 0 .../queries/impl/find-all.article.query.ts | 2 +- .../queries/impl/find-comments.query.ts | 0 .../queries/impl/find-feed-article.query.ts | 2 +- .../queries/impl/find-one-article.query.ts | 0 .../{ => application}/queries/impl/index.ts | 0 src/article/{ => application}/queries/index.ts | 0 .../{ => application}/queries/query.module.ts | 13 +++++++------ .../services/article.service.ts | 4 ++-- src/article/article.module.ts | 15 ++++++++------- src/article/{ => core}/dto/article-query.ts | 0 src/article/{ => core}/dto/block.dto.ts | 2 +- src/article/{ => core}/dto/create-article.dto.ts | 0 src/article/{ => core}/dto/create-comment.ts | 0 src/article/{ => core}/dto/index.ts | 0 .../events/impl/article-favorited.event.ts | 9 --------- .../{ => presentation}/article.controller.ts | 14 +++++++++----- 58 files changed, 145 insertions(+), 137 deletions(-) rename src/article/{ => application}/article.projection.ts (87%) rename src/article/{ => application}/commands/command.module.ts (56%) rename src/article/{ => application}/commands/handlers/create-article.handler.ts (77%) rename src/article/{ => application}/commands/handlers/create-comment.handler.ts (77%) rename src/article/{ => application}/commands/handlers/delete-article.handler.ts (89%) rename src/article/{ => application}/commands/handlers/delete-comment.handler.ts (81%) rename src/article/{ => application}/commands/handlers/favorite-article.handler.ts (80%) rename src/article/{ => application}/commands/handlers/index.ts (100%) rename src/article/{ => application}/commands/handlers/unfavorite-article.handler.ts (78%) rename src/article/{ => application}/commands/handlers/update-article.handler.ts (76%) rename src/article/{ => application}/commands/impl/create-article.command.ts (73%) rename src/article/{ => application}/commands/impl/create-comment.command.ts (77%) rename src/article/{ => application}/commands/impl/delete-article.command.ts (100%) rename src/article/{ => application}/commands/impl/delete-comment.command.ts (100%) rename src/article/{ => application}/commands/impl/favorite-article.command.ts (100%) rename src/article/{ => application}/commands/impl/index.ts (100%) rename src/article/{ => application}/commands/impl/unfavorite-article.command.ts (100%) rename src/article/{ => application}/commands/impl/update-article.command.ts (72%) rename src/article/{ => application}/commands/index.ts (100%) rename src/article/{ => application}/events/event.module.ts (57%) rename src/article/{ => application}/events/handlers/article-created.handler.ts (86%) rename src/article/{ => application}/events/handlers/article-deleted.handler.ts (96%) rename src/article/{ => application}/events/handlers/article-favorited.handler.ts (83%) rename src/article/{ => application}/events/handlers/article-unfavorited.handler.ts (83%) rename src/article/{ => application}/events/handlers/article-updated.handler.ts (89%) rename src/article/{ => application}/events/handlers/comment-created.handler.ts (86%) rename src/article/{ => application}/events/handlers/comment-deleted.handler.ts (86%) rename src/article/{ => application}/events/handlers/index.ts (100%) rename src/article/{ => application}/events/impl/article-created.event.ts (57%) rename src/article/{ => application}/events/impl/article-deleted.event.ts (100%) create mode 100644 src/article/application/events/impl/article-favorited.event.ts rename src/article/{ => application}/events/impl/article-unfavorited.event.ts (50%) rename src/article/{ => application}/events/impl/article-updated.event.ts (57%) rename src/article/{ => application}/events/impl/comment-created.event.ts (78%) rename src/article/{ => application}/events/impl/comment-deleted.event.ts (78%) rename src/article/{ => application}/events/impl/index.ts (100%) rename src/article/{ => application}/events/index.ts (100%) rename src/article/{ => application}/queries/handlers/find-all.article.handler.ts (90%) rename src/article/{ => application}/queries/handlers/find-comments.handler.ts (83%) rename src/article/{ => application}/queries/handlers/find-feed-article.handler.ts (85%) rename src/article/{ => application}/queries/handlers/find-one-article.handler.ts (81%) rename src/article/{ => application}/queries/handlers/index.ts (100%) rename src/article/{ => application}/queries/impl/find-all.article.query.ts (67%) rename src/article/{ => application}/queries/impl/find-comments.query.ts (100%) rename src/article/{ => application}/queries/impl/find-feed-article.query.ts (67%) rename src/article/{ => application}/queries/impl/find-one-article.query.ts (100%) rename src/article/{ => application}/queries/impl/index.ts (100%) rename src/article/{ => application}/queries/index.ts (100%) rename src/article/{ => application}/queries/query.module.ts (58%) rename src/article/{ => application}/services/article.service.ts (96%) rename src/article/{ => core}/dto/article-query.ts (100%) rename src/article/{ => core}/dto/block.dto.ts (91%) rename src/article/{ => core}/dto/create-article.dto.ts (100%) rename src/article/{ => core}/dto/create-comment.ts (100%) rename src/article/{ => core}/dto/index.ts (100%) delete mode 100644 src/article/events/impl/article-favorited.event.ts rename src/article/{ => presentation}/article.controller.ts (95%) diff --git a/src/article/article.projection.ts b/src/article/application/article.projection.ts similarity index 87% rename from src/article/article.projection.ts rename to src/article/application/article.projection.ts index c981fcc..e9d7f97 100644 --- a/src/article/article.projection.ts +++ b/src/article/application/article.projection.ts @@ -1,9 +1,10 @@ import { Injectable } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; -import { ConsumerService } from "../rabbitmq/consumer.service"; -import { ARTICLE_QUEUE } from "../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "./core"; -import { MessageType } from "./core/enums/article.enum"; + +import { ConsumerService } from "../../rabbitmq/consumer.service"; +import { ARTICLE_QUEUE } from "../../rabbitmq/rabbitmq.constants"; +import { IMessage, IProjection } from "../core"; +import { MessageType } from "../core/enums/article.enum"; import { ArticleCreatedEvent, ArticleDeletedEvent, diff --git a/src/article/commands/command.module.ts b/src/article/application/commands/command.module.ts similarity index 56% rename from src/article/commands/command.module.ts rename to src/article/application/commands/command.module.ts index 79d93d9..d44a803 100644 --- a/src/article/commands/command.module.ts +++ b/src/article/application/commands/command.module.ts @@ -1,14 +1,15 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { CommandHandlers } from "."; -import { WRITE_CONNECTION } from "../../config"; -import { FollowsEntity } from "../../profile/core/entities/follows.entity"; -import { RabbitMqModule } from "../../rabbitmq/rabbitmq.module"; -import { UserEntity } from "../../user/core"; -import { UserModule } from "../../user/user.module"; -import { ArticleEntity, BlockEntity } from "../core"; -import { CommentEntity } from "../core/entities/comment.entity"; +import { WRITE_CONNECTION } from "../../../config"; +import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; +import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; +import { UserEntity } from "../../../user/core"; +import { UserModule } from "../../../user/user.module"; +import { ArticleEntity, BlockEntity } from "../../core"; +import { CommentEntity } from "../../core/entities/comment.entity"; import { ArticleService } from "../services/article.service"; @Module({ diff --git a/src/article/commands/handlers/create-article.handler.ts b/src/article/application/commands/handlers/create-article.handler.ts similarity index 77% rename from src/article/commands/handlers/create-article.handler.ts rename to src/article/application/commands/handlers/create-article.handler.ts index f6c216c..143c670 100644 --- a/src/article/commands/handlers/create-article.handler.ts +++ b/src/article/application/commands/handlers/create-article.handler.ts @@ -2,12 +2,12 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { MessageType } from "../../core/enums/article.enum"; -import { ArticleRO } from "../../core/interfaces/article.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { MessageType } from "../../../core/enums/article.enum"; +import { ArticleRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { CreateArticleCommand } from "../impl"; diff --git a/src/article/commands/handlers/create-comment.handler.ts b/src/article/application/commands/handlers/create-comment.handler.ts similarity index 77% rename from src/article/commands/handlers/create-comment.handler.ts rename to src/article/application/commands/handlers/create-comment.handler.ts index 0044dcb..6668d22 100644 --- a/src/article/commands/handlers/create-comment.handler.ts +++ b/src/article/application/commands/handlers/create-comment.handler.ts @@ -2,14 +2,14 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { CommentEntity } from "../../core/entities/comment.entity"; -import { MessageType } from "../../core/enums/article.enum"; -import { CommentRO } from "../../core/interfaces/article.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { CommentEntity } from "../../../core/entities/comment.entity"; +import { MessageType } from "../../../core/enums/article.enum"; +import { CommentRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { CreateCommentCommand } from "../impl"; diff --git a/src/article/commands/handlers/delete-article.handler.ts b/src/article/application/commands/handlers/delete-article.handler.ts similarity index 89% rename from src/article/commands/handlers/delete-article.handler.ts rename to src/article/application/commands/handlers/delete-article.handler.ts index b8535f3..175a5ed 100644 --- a/src/article/commands/handlers/delete-article.handler.ts +++ b/src/article/application/commands/handlers/delete-article.handler.ts @@ -2,15 +2,15 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { DeleteResult, Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { CommentEntity, ArticleEntity, BlockEntity, MessageType, -} from "../../core"; +} from "../../../core"; import { DeleteArticleCommand } from "../impl"; @CommandHandler(DeleteArticleCommand) diff --git a/src/article/commands/handlers/delete-comment.handler.ts b/src/article/application/commands/handlers/delete-comment.handler.ts similarity index 81% rename from src/article/commands/handlers/delete-comment.handler.ts rename to src/article/application/commands/handlers/delete-comment.handler.ts index 3547c90..d8d1144 100644 --- a/src/article/commands/handlers/delete-comment.handler.ts +++ b/src/article/application/commands/handlers/delete-comment.handler.ts @@ -2,13 +2,13 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { CommentEntity } from "../../core/entities/comment.entity"; -import { MessageType } from "../../core/enums/article.enum"; -import { ArticleRO } from "../../core/interfaces/article.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { CommentEntity } from "../../../core/entities/comment.entity"; +import { MessageType } from "../../../core/enums/article.enum"; +import { ArticleRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { DeleteCommentCommand } from "../impl"; diff --git a/src/article/commands/handlers/favorite-article.handler.ts b/src/article/application/commands/handlers/favorite-article.handler.ts similarity index 80% rename from src/article/commands/handlers/favorite-article.handler.ts rename to src/article/application/commands/handlers/favorite-article.handler.ts index 2ff1214..763225f 100644 --- a/src/article/commands/handlers/favorite-article.handler.ts +++ b/src/article/application/commands/handlers/favorite-article.handler.ts @@ -2,13 +2,13 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { MessageType } from "../../core/enums/article.enum"; -import { ArticleRO } from "../../core/interfaces/article.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { MessageType } from "../../../core/enums/article.enum"; +import { ArticleRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { FavoriteArticleCommand } from "../impl"; diff --git a/src/article/commands/handlers/index.ts b/src/article/application/commands/handlers/index.ts similarity index 100% rename from src/article/commands/handlers/index.ts rename to src/article/application/commands/handlers/index.ts diff --git a/src/article/commands/handlers/unfavorite-article.handler.ts b/src/article/application/commands/handlers/unfavorite-article.handler.ts similarity index 78% rename from src/article/commands/handlers/unfavorite-article.handler.ts rename to src/article/application/commands/handlers/unfavorite-article.handler.ts index 73352ee..982b083 100644 --- a/src/article/commands/handlers/unfavorite-article.handler.ts +++ b/src/article/application/commands/handlers/unfavorite-article.handler.ts @@ -1,13 +1,13 @@ import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { MessageType } from "../../core/enums/article.enum"; -import { ArticleRO } from "../../core/interfaces/article.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { MessageType } from "../../../core/enums/article.enum"; +import { ArticleRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { UnFavoriteArticleCommand } from "../impl"; diff --git a/src/article/commands/handlers/update-article.handler.ts b/src/article/application/commands/handlers/update-article.handler.ts similarity index 76% rename from src/article/commands/handlers/update-article.handler.ts rename to src/article/application/commands/handlers/update-article.handler.ts index f40c735..ef751e3 100644 --- a/src/article/commands/handlers/update-article.handler.ts +++ b/src/article/application/commands/handlers/update-article.handler.ts @@ -2,12 +2,12 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { MessageType } from "../../core/enums/article.enum"; -import { ArticleRO } from "../../core/interfaces/article.interface"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { MessageType } from "../../../core/enums/article.enum"; +import { ArticleRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { UpdateArticleCommand } from "../impl"; diff --git a/src/article/commands/impl/create-article.command.ts b/src/article/application/commands/impl/create-article.command.ts similarity index 73% rename from src/article/commands/impl/create-article.command.ts rename to src/article/application/commands/impl/create-article.command.ts index 30073fc..c9493ee 100644 --- a/src/article/commands/impl/create-article.command.ts +++ b/src/article/application/commands/impl/create-article.command.ts @@ -1,4 +1,4 @@ -import { CreateArticleDto } from "../../dto"; +import { CreateArticleDto } from "../../../core/dto"; export class CreateArticleCommand { constructor( diff --git a/src/article/commands/impl/create-comment.command.ts b/src/article/application/commands/impl/create-comment.command.ts similarity index 77% rename from src/article/commands/impl/create-comment.command.ts rename to src/article/application/commands/impl/create-comment.command.ts index a294800..9a0d03f 100644 --- a/src/article/commands/impl/create-comment.command.ts +++ b/src/article/application/commands/impl/create-comment.command.ts @@ -1,4 +1,4 @@ -import { CreateCommentDto } from "../../dto"; +import { CreateCommentDto } from "../../../core/dto"; export class CreateCommentCommand { constructor( diff --git a/src/article/commands/impl/delete-article.command.ts b/src/article/application/commands/impl/delete-article.command.ts similarity index 100% rename from src/article/commands/impl/delete-article.command.ts rename to src/article/application/commands/impl/delete-article.command.ts diff --git a/src/article/commands/impl/delete-comment.command.ts b/src/article/application/commands/impl/delete-comment.command.ts similarity index 100% rename from src/article/commands/impl/delete-comment.command.ts rename to src/article/application/commands/impl/delete-comment.command.ts diff --git a/src/article/commands/impl/favorite-article.command.ts b/src/article/application/commands/impl/favorite-article.command.ts similarity index 100% rename from src/article/commands/impl/favorite-article.command.ts rename to src/article/application/commands/impl/favorite-article.command.ts diff --git a/src/article/commands/impl/index.ts b/src/article/application/commands/impl/index.ts similarity index 100% rename from src/article/commands/impl/index.ts rename to src/article/application/commands/impl/index.ts diff --git a/src/article/commands/impl/unfavorite-article.command.ts b/src/article/application/commands/impl/unfavorite-article.command.ts similarity index 100% rename from src/article/commands/impl/unfavorite-article.command.ts rename to src/article/application/commands/impl/unfavorite-article.command.ts diff --git a/src/article/commands/impl/update-article.command.ts b/src/article/application/commands/impl/update-article.command.ts similarity index 72% rename from src/article/commands/impl/update-article.command.ts rename to src/article/application/commands/impl/update-article.command.ts index aa85b5a..c419478 100644 --- a/src/article/commands/impl/update-article.command.ts +++ b/src/article/application/commands/impl/update-article.command.ts @@ -1,4 +1,4 @@ -import { CreateArticleDto } from "../../dto"; +import { CreateArticleDto } from "../../../core/dto"; export class UpdateArticleCommand { constructor( diff --git a/src/article/commands/index.ts b/src/article/application/commands/index.ts similarity index 100% rename from src/article/commands/index.ts rename to src/article/application/commands/index.ts diff --git a/src/article/events/event.module.ts b/src/article/application/events/event.module.ts similarity index 57% rename from src/article/events/event.module.ts rename to src/article/application/events/event.module.ts index 6a2b041..2699d29 100644 --- a/src/article/events/event.module.ts +++ b/src/article/application/events/event.module.ts @@ -1,11 +1,11 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../../config"; -import { UserEntity } from "../../user/core/entities/user.entity"; -import { ArticleEntity, BlockEntity } from "../core"; -import { CommentEntity } from "../core/entities/comment.entity"; -import { EventHandlers } from "../events"; +import { READ_CONNECTION } from "../../../config"; +import { UserEntity } from "../../../user/core/entities/user.entity"; +import { ArticleEntity, BlockEntity } from "../../core"; +import { CommentEntity } from "../../core/entities/comment.entity"; +import { EventHandlers } from "."; @Module({ imports: [ diff --git a/src/article/events/handlers/article-created.handler.ts b/src/article/application/events/handlers/article-created.handler.ts similarity index 86% rename from src/article/events/handlers/article-created.handler.ts rename to src/article/application/events/handlers/article-created.handler.ts index 31237a9..24670f0 100644 --- a/src/article/events/handlers/article-created.handler.ts +++ b/src/article/application/events/handlers/article-created.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { ArticleEntity } from "../../core/entities/article.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleCreatedEvent } from "../impl"; @EventsHandler(ArticleCreatedEvent) diff --git a/src/article/events/handlers/article-deleted.handler.ts b/src/article/application/events/handlers/article-deleted.handler.ts similarity index 96% rename from src/article/events/handlers/article-deleted.handler.ts rename to src/article/application/events/handlers/article-deleted.handler.ts index 330ae11..3d627cd 100644 --- a/src/article/events/handlers/article-deleted.handler.ts +++ b/src/article/application/events/handlers/article-deleted.handler.ts @@ -3,9 +3,9 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../../config"; import { ArticleDeletedEvent } from "../impl"; -import { CommentEntity, ArticleEntity, BlockEntity } from "../../core"; +import { CommentEntity, ArticleEntity, BlockEntity } from "../../../core"; @EventsHandler(ArticleDeletedEvent) export class ArticleDeletedEventHandler diff --git a/src/article/events/handlers/article-favorited.handler.ts b/src/article/application/events/handlers/article-favorited.handler.ts similarity index 83% rename from src/article/events/handlers/article-favorited.handler.ts rename to src/article/application/events/handlers/article-favorited.handler.ts index a637c90..1d274b7 100644 --- a/src/article/events/handlers/article-favorited.handler.ts +++ b/src/article/application/events/handlers/article-favorited.handler.ts @@ -3,9 +3,9 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleFavoritedEvent } from "../impl"; @EventsHandler(ArticleFavoritedEvent) diff --git a/src/article/events/handlers/article-unfavorited.handler.ts b/src/article/application/events/handlers/article-unfavorited.handler.ts similarity index 83% rename from src/article/events/handlers/article-unfavorited.handler.ts rename to src/article/application/events/handlers/article-unfavorited.handler.ts index 5812357..87f64e2 100644 --- a/src/article/events/handlers/article-unfavorited.handler.ts +++ b/src/article/application/events/handlers/article-unfavorited.handler.ts @@ -3,9 +3,9 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleUnFavoritedEvent } from "../impl"; @EventsHandler(ArticleUnFavoritedEvent) diff --git a/src/article/events/handlers/article-updated.handler.ts b/src/article/application/events/handlers/article-updated.handler.ts similarity index 89% rename from src/article/events/handlers/article-updated.handler.ts rename to src/article/application/events/handlers/article-updated.handler.ts index 599e055..b5617f6 100644 --- a/src/article/events/handlers/article-updated.handler.ts +++ b/src/article/application/events/handlers/article-updated.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { ArticleEntity } from "../../core/entities/article.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleUpdatedEvent } from "../impl"; @EventsHandler(ArticleUpdatedEvent) diff --git a/src/article/events/handlers/comment-created.handler.ts b/src/article/application/events/handlers/comment-created.handler.ts similarity index 86% rename from src/article/events/handlers/comment-created.handler.ts rename to src/article/application/events/handlers/comment-created.handler.ts index e5c5620..c7dc949 100644 --- a/src/article/events/handlers/comment-created.handler.ts +++ b/src/article/application/events/handlers/comment-created.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { CommentEntity } from "../../core/entities/comment.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { CommentEntity } from "../../../core/entities/comment.entity"; import { CommentCreatedEvent } from "../impl"; @EventsHandler(CommentCreatedEvent) diff --git a/src/article/events/handlers/comment-deleted.handler.ts b/src/article/application/events/handlers/comment-deleted.handler.ts similarity index 86% rename from src/article/events/handlers/comment-deleted.handler.ts rename to src/article/application/events/handlers/comment-deleted.handler.ts index c068d14..284d2c5 100644 --- a/src/article/events/handlers/comment-deleted.handler.ts +++ b/src/article/application/events/handlers/comment-deleted.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { CommentEntity } from "../../core/entities/comment.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { CommentEntity } from "../../../core/entities/comment.entity"; import { CommentDeletedEvent } from "../impl"; @EventsHandler(CommentDeletedEvent) diff --git a/src/article/events/handlers/index.ts b/src/article/application/events/handlers/index.ts similarity index 100% rename from src/article/events/handlers/index.ts rename to src/article/application/events/handlers/index.ts diff --git a/src/article/events/impl/article-created.event.ts b/src/article/application/events/impl/article-created.event.ts similarity index 57% rename from src/article/events/impl/article-created.event.ts rename to src/article/application/events/impl/article-created.event.ts index 042a9ac..8a2aba7 100644 --- a/src/article/events/impl/article-created.event.ts +++ b/src/article/application/events/impl/article-created.event.ts @@ -1,4 +1,4 @@ -import { ArticleEntity } from "../../core/entities/article.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; export class ArticleCreatedEvent { constructor(public readonly article: ArticleEntity) {} diff --git a/src/article/events/impl/article-deleted.event.ts b/src/article/application/events/impl/article-deleted.event.ts similarity index 100% rename from src/article/events/impl/article-deleted.event.ts rename to src/article/application/events/impl/article-deleted.event.ts diff --git a/src/article/application/events/impl/article-favorited.event.ts b/src/article/application/events/impl/article-favorited.event.ts new file mode 100644 index 0000000..559ea8b --- /dev/null +++ b/src/article/application/events/impl/article-favorited.event.ts @@ -0,0 +1,9 @@ +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; + +export class ArticleFavoritedEvent { + constructor( + public readonly user: UserEntity, + public readonly article: ArticleEntity + ) {} +} diff --git a/src/article/events/impl/article-unfavorited.event.ts b/src/article/application/events/impl/article-unfavorited.event.ts similarity index 50% rename from src/article/events/impl/article-unfavorited.event.ts rename to src/article/application/events/impl/article-unfavorited.event.ts index 75dfd66..25460f7 100644 --- a/src/article/events/impl/article-unfavorited.event.ts +++ b/src/article/application/events/impl/article-unfavorited.event.ts @@ -1,5 +1,5 @@ -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; export class ArticleUnFavoritedEvent { constructor( diff --git a/src/article/events/impl/article-updated.event.ts b/src/article/application/events/impl/article-updated.event.ts similarity index 57% rename from src/article/events/impl/article-updated.event.ts rename to src/article/application/events/impl/article-updated.event.ts index 35fe7a7..e03e0fb 100644 --- a/src/article/events/impl/article-updated.event.ts +++ b/src/article/application/events/impl/article-updated.event.ts @@ -1,4 +1,4 @@ -import { ArticleEntity } from "../../core/entities/article.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; export class ArticleUpdatedEvent { constructor(public readonly article: ArticleEntity) {} diff --git a/src/article/events/impl/comment-created.event.ts b/src/article/application/events/impl/comment-created.event.ts similarity index 78% rename from src/article/events/impl/comment-created.event.ts rename to src/article/application/events/impl/comment-created.event.ts index 8763d05..c3557e4 100644 --- a/src/article/events/impl/comment-created.event.ts +++ b/src/article/application/events/impl/comment-created.event.ts @@ -1,6 +1,6 @@ // import { Comment } from "../../core/entities/comment.entity"; -import { IComment } from "../../core"; +import { IComment } from "../../../core"; export class CommentCreatedEvent { constructor(public readonly comment: IComment) {} diff --git a/src/article/events/impl/comment-deleted.event.ts b/src/article/application/events/impl/comment-deleted.event.ts similarity index 78% rename from src/article/events/impl/comment-deleted.event.ts rename to src/article/application/events/impl/comment-deleted.event.ts index 3883bb5..a51cef2 100644 --- a/src/article/events/impl/comment-deleted.event.ts +++ b/src/article/application/events/impl/comment-deleted.event.ts @@ -1,6 +1,6 @@ // import { Comment } from "../../core/entities/comment.entity"; -import { IComment } from "../../core"; +import { IComment } from "../../../core"; export class CommentDeletedEvent { constructor(public readonly comment: IComment) {} diff --git a/src/article/events/impl/index.ts b/src/article/application/events/impl/index.ts similarity index 100% rename from src/article/events/impl/index.ts rename to src/article/application/events/impl/index.ts diff --git a/src/article/events/index.ts b/src/article/application/events/index.ts similarity index 100% rename from src/article/events/index.ts rename to src/article/application/events/index.ts diff --git a/src/article/queries/handlers/find-all.article.handler.ts b/src/article/application/queries/handlers/find-all.article.handler.ts similarity index 90% rename from src/article/queries/handlers/find-all.article.handler.ts rename to src/article/application/queries/handlers/find-all.article.handler.ts index 74c332e..7f24028 100644 --- a/src/article/queries/handlers/find-all.article.handler.ts +++ b/src/article/application/queries/handlers/find-all.article.handler.ts @@ -2,11 +2,11 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { getRepository, Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { ArticlesRO } from "../../core/interfaces/article.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { FollowsEntity } from "../../../../profile/core/entities/follows.entity"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { ArticlesRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { FindAllArticleQuery } from "../impl"; diff --git a/src/article/queries/handlers/find-comments.handler.ts b/src/article/application/queries/handlers/find-comments.handler.ts similarity index 83% rename from src/article/queries/handlers/find-comments.handler.ts rename to src/article/application/queries/handlers/find-comments.handler.ts index 20e7550..57e61c9 100644 --- a/src/article/queries/handlers/find-comments.handler.ts +++ b/src/article/application/queries/handlers/find-comments.handler.ts @@ -1,9 +1,9 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { CommentsRO } from "../../core/interfaces/article.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { CommentsRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { FindCommentQuery } from "../impl"; diff --git a/src/article/queries/handlers/find-feed-article.handler.ts b/src/article/application/queries/handlers/find-feed-article.handler.ts similarity index 85% rename from src/article/queries/handlers/find-feed-article.handler.ts rename to src/article/application/queries/handlers/find-feed-article.handler.ts index a0bf739..280b322 100644 --- a/src/article/queries/handlers/find-feed-article.handler.ts +++ b/src/article/application/queries/handlers/find-feed-article.handler.ts @@ -1,11 +1,11 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { getRepository, Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { ArticlesRO } from "../../core/interfaces/article.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { FollowsEntity } from "../../../../profile/core/entities/follows.entity"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { ArticlesRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { FindFeedArticleQuery } from "../impl"; @@ -22,7 +22,7 @@ export class FindFeedArticleQueryHandler private readonly articleRepository: Repository, private readonly articleService: ArticleService - ) { } + ) {} async execute({ userId, query }: FindFeedArticleQuery): Promise { const _follows = await this.followsRepository.find({ followerId: userId }); diff --git a/src/article/queries/handlers/find-one-article.handler.ts b/src/article/application/queries/handlers/find-one-article.handler.ts similarity index 81% rename from src/article/queries/handlers/find-one-article.handler.ts rename to src/article/application/queries/handlers/find-one-article.handler.ts index 963bfd5..71ea1c5 100644 --- a/src/article/queries/handlers/find-one-article.handler.ts +++ b/src/article/application/queries/handlers/find-one-article.handler.ts @@ -2,11 +2,11 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; -import { ArticleRO } from "../../core/interfaces/article.interface"; +import { READ_CONNECTION } from "../../../../config"; +import { FollowsEntity } from "../../../../profile/core/entities/follows.entity"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { ArticleEntity } from "../../../core/entities/article.entity"; +import { ArticleRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { FindOneArticleQuery } from "../impl"; diff --git a/src/article/queries/handlers/index.ts b/src/article/application/queries/handlers/index.ts similarity index 100% rename from src/article/queries/handlers/index.ts rename to src/article/application/queries/handlers/index.ts diff --git a/src/article/queries/impl/find-all.article.query.ts b/src/article/application/queries/impl/find-all.article.query.ts similarity index 67% rename from src/article/queries/impl/find-all.article.query.ts rename to src/article/application/queries/impl/find-all.article.query.ts index 9aa0d44..48842e3 100644 --- a/src/article/queries/impl/find-all.article.query.ts +++ b/src/article/application/queries/impl/find-all.article.query.ts @@ -1,4 +1,4 @@ -import { ArticleFilters } from "../../dto/article-query"; +import { ArticleFilters } from "../../../core/dto/article-query"; export class FindAllArticleQuery { constructor( diff --git a/src/article/queries/impl/find-comments.query.ts b/src/article/application/queries/impl/find-comments.query.ts similarity index 100% rename from src/article/queries/impl/find-comments.query.ts rename to src/article/application/queries/impl/find-comments.query.ts diff --git a/src/article/queries/impl/find-feed-article.query.ts b/src/article/application/queries/impl/find-feed-article.query.ts similarity index 67% rename from src/article/queries/impl/find-feed-article.query.ts rename to src/article/application/queries/impl/find-feed-article.query.ts index b4f55bc..b2fbd77 100644 --- a/src/article/queries/impl/find-feed-article.query.ts +++ b/src/article/application/queries/impl/find-feed-article.query.ts @@ -1,4 +1,4 @@ -import { ArticleFilters } from "../../dto/article-query"; +import { ArticleFilters } from "../../../core/dto/article-query"; export class FindFeedArticleQuery { constructor( diff --git a/src/article/queries/impl/find-one-article.query.ts b/src/article/application/queries/impl/find-one-article.query.ts similarity index 100% rename from src/article/queries/impl/find-one-article.query.ts rename to src/article/application/queries/impl/find-one-article.query.ts diff --git a/src/article/queries/impl/index.ts b/src/article/application/queries/impl/index.ts similarity index 100% rename from src/article/queries/impl/index.ts rename to src/article/application/queries/impl/index.ts diff --git a/src/article/queries/index.ts b/src/article/application/queries/index.ts similarity index 100% rename from src/article/queries/index.ts rename to src/article/application/queries/index.ts diff --git a/src/article/queries/query.module.ts b/src/article/application/queries/query.module.ts similarity index 58% rename from src/article/queries/query.module.ts rename to src/article/application/queries/query.module.ts index 3785a4b..d9bc31f 100644 --- a/src/article/queries/query.module.ts +++ b/src/article/application/queries/query.module.ts @@ -1,13 +1,14 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { QueryHandlers } from "."; -import { READ_CONNECTION } from "../../config"; -import { FollowsEntity } from "../../profile/core/entities/follows.entity"; -import { UserEntity } from "../../user/core/entities/user.entity"; -import { UserModule } from "../../user/user.module"; -import { ArticleEntity } from "../core"; -import { CommentEntity } from "../core/entities/comment.entity"; +import { READ_CONNECTION } from "../../../config"; +import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; +import { UserEntity } from "../../../user/core/entities/user.entity"; +import { UserModule } from "../../../user/user.module"; +import { ArticleEntity } from "../../core"; +import { CommentEntity } from "../../core/entities/comment.entity"; import { ArticleService } from "../services/article.service"; @Module({ diff --git a/src/article/services/article.service.ts b/src/article/application/services/article.service.ts similarity index 96% rename from src/article/services/article.service.ts rename to src/article/application/services/article.service.ts index cf10d5b..eb153b3 100644 --- a/src/article/services/article.service.ts +++ b/src/article/application/services/article.service.ts @@ -1,12 +1,12 @@ import { Injectable } from "@nestjs/common"; -import { UserEntity } from "../../user/core/entities/user.entity"; +import { UserEntity } from "../../../user/core/entities/user.entity"; import { ArticleData, IComment, ArticleEntity, BlockEntity, CommentEntity, -} from "../core"; +} from "../../core"; const slug = require("slug"); @Injectable() diff --git a/src/article/article.module.ts b/src/article/article.module.ts index 4ce5e2b..89bd32a 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -5,16 +5,17 @@ import { RequestMethod, } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; + import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; +import { RedisModule } from "../redis/redis.module"; import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; -import { ArticleController } from "./article.controller"; -import { ArticleProjection } from "./article.projection"; -import { ArticleService } from "./services/article.service"; -import { CommandModule } from "./commands/command.module"; -import { EventModule } from "./events/event.module"; -import { QueryModule } from "./queries/query.module"; -import { RedisModule } from "../redis/redis.module"; +import { ArticleProjection } from "./application/article.projection"; +import { CommandModule } from "./application/commands/command.module"; +import { EventModule } from "./application/events/event.module"; +import { QueryModule } from "./application/queries/query.module"; +import { ArticleService } from "./application/services/article.service"; +import { ArticleController } from "./presentation/article.controller"; @Module({ imports: [ diff --git a/src/article/dto/article-query.ts b/src/article/core/dto/article-query.ts similarity index 100% rename from src/article/dto/article-query.ts rename to src/article/core/dto/article-query.ts diff --git a/src/article/dto/block.dto.ts b/src/article/core/dto/block.dto.ts similarity index 91% rename from src/article/dto/block.dto.ts rename to src/article/core/dto/block.dto.ts index 443e6c9..f5b2203 100644 --- a/src/article/dto/block.dto.ts +++ b/src/article/core/dto/block.dto.ts @@ -1,5 +1,5 @@ import { ApiProperty } from "@nestjs/swagger"; -import { BlockType } from "../core/enums/block.enum"; +import { BlockType } from "../enums/block.enum"; class Info { @ApiProperty() diff --git a/src/article/dto/create-article.dto.ts b/src/article/core/dto/create-article.dto.ts similarity index 100% rename from src/article/dto/create-article.dto.ts rename to src/article/core/dto/create-article.dto.ts diff --git a/src/article/dto/create-comment.ts b/src/article/core/dto/create-comment.ts similarity index 100% rename from src/article/dto/create-comment.ts rename to src/article/core/dto/create-comment.ts diff --git a/src/article/dto/index.ts b/src/article/core/dto/index.ts similarity index 100% rename from src/article/dto/index.ts rename to src/article/core/dto/index.ts diff --git a/src/article/events/impl/article-favorited.event.ts b/src/article/events/impl/article-favorited.event.ts deleted file mode 100644 index b9fc346..0000000 --- a/src/article/events/impl/article-favorited.event.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../core/entities/article.entity"; - -export class ArticleFavoritedEvent { - constructor( - public readonly user: UserEntity, - public readonly article: ArticleEntity - ) {} -} diff --git a/src/article/article.controller.ts b/src/article/presentation/article.controller.ts similarity index 95% rename from src/article/article.controller.ts rename to src/article/presentation/article.controller.ts index 31ada13..cab8905 100644 --- a/src/article/article.controller.ts +++ b/src/article/presentation/article.controller.ts @@ -17,7 +17,7 @@ import { ApiResponse, ApiTags, } from "@nestjs/swagger"; -import { User } from "../shared/middleware/user.decorator"; +import { User } from "../../shared/middleware/user.decorator"; import { CreateArticleCommand, CreateCommentCommand, @@ -26,15 +26,19 @@ import { FavoriteArticleCommand, UnFavoriteArticleCommand, UpdateArticleCommand, -} from "./commands"; -import { ArticleRO, ArticlesRO, CommentsRO } from "./core"; -import { ArticleFilters, CreateArticleDto, CreateCommentDto } from "./dto"; +} from "../application/commands"; +import { ArticleRO, ArticlesRO, CommentsRO } from "../core"; +import { + ArticleFilters, + CreateArticleDto, + CreateCommentDto, +} from "../core/dto"; import { FindAllArticleQuery, FindCommentQuery, FindFeedArticleQuery, FindOneArticleQuery, -} from "./queries"; +} from "../application/queries"; @ApiBearerAuth() @ApiTags("articles") From 54980e931db205deee22526e262a7ede6db0aaa0 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 14:47:15 +0700 Subject: [PATCH 12/28] feat: apply CLEAN Architect for profile-module --- .../{ => application}/commands/command.module.ts | 14 +++++++------- .../commands/handlers/follow-profile.handler.ts | 14 +++++++------- .../{ => application}/commands/handlers/index.ts | 0 .../commands/handlers/unfollow-profile.handler.ts | 14 +++++++------- .../commands/impl/follow-profile.command.ts | 0 .../{ => application}/commands/impl/index.ts | 0 .../commands/impl/unfollow-profile.command.ts | 0 src/profile/{ => application}/commands/index.ts | 0 .../{ => application}/events/event.module.ts | 6 +++--- .../{ => application}/events/handlers/index.ts | 0 .../events/handlers/profile-followed.handler.ts | 4 ++-- .../events/handlers/profile-unfollowed.handler.ts | 4 ++-- src/profile/{ => application}/events/impl/index.ts | 0 .../events/impl/profile-followed.event.ts | 2 +- .../events/impl/profile-unfollowed.event.ts | 2 +- src/profile/{ => application}/events/index.ts | 0 .../{ => application}/profile.projection.ts | 11 ++++++----- .../queries/handlers/find-profile.handler.ts | 8 ++++---- .../{ => application}/queries/handlers/index.ts | 0 .../queries/impl/find-profile.query.ts | 0 .../{ => application}/queries/impl/index.ts | 0 src/profile/{ => application}/queries/index.ts | 0 .../{ => application}/queries/query.module.ts | 12 ++++++------ .../{ => application}/services/profile.service.ts | 0 .../{ => presentation}/profile.controller.ts | 12 ++++++++---- src/profile/profile.module.ts | 12 ++++++------ 26 files changed, 60 insertions(+), 55 deletions(-) rename src/profile/{ => application}/commands/command.module.ts (55%) rename src/profile/{ => application}/commands/handlers/follow-profile.handler.ts (81%) rename src/profile/{ => application}/commands/handlers/index.ts (100%) rename src/profile/{ => application}/commands/handlers/unfollow-profile.handler.ts (79%) rename src/profile/{ => application}/commands/impl/follow-profile.command.ts (100%) rename src/profile/{ => application}/commands/impl/index.ts (100%) rename src/profile/{ => application}/commands/impl/unfollow-profile.command.ts (100%) rename src/profile/{ => application}/commands/index.ts (100%) rename src/profile/{ => application}/events/event.module.ts (67%) rename src/profile/{ => application}/events/handlers/index.ts (100%) rename src/profile/{ => application}/events/handlers/profile-followed.handler.ts (86%) rename src/profile/{ => application}/events/handlers/profile-unfollowed.handler.ts (86%) rename src/profile/{ => application}/events/impl/index.ts (100%) rename src/profile/{ => application}/events/impl/profile-followed.event.ts (57%) rename src/profile/{ => application}/events/impl/profile-unfollowed.event.ts (56%) rename src/profile/{ => application}/events/index.ts (100%) rename src/profile/{ => application}/profile.projection.ts (74%) rename src/profile/{ => application}/queries/handlers/find-profile.handler.ts (82%) rename src/profile/{ => application}/queries/handlers/index.ts (100%) rename src/profile/{ => application}/queries/impl/find-profile.query.ts (100%) rename src/profile/{ => application}/queries/impl/index.ts (100%) rename src/profile/{ => application}/queries/index.ts (100%) rename src/profile/{ => application}/queries/query.module.ts (58%) rename src/profile/{ => application}/services/profile.service.ts (100%) rename src/profile/{ => presentation}/profile.controller.ts (81%) diff --git a/src/profile/commands/command.module.ts b/src/profile/application/commands/command.module.ts similarity index 55% rename from src/profile/commands/command.module.ts rename to src/profile/application/commands/command.module.ts index e90350f..4657a63 100644 --- a/src/profile/commands/command.module.ts +++ b/src/profile/application/commands/command.module.ts @@ -1,13 +1,13 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { CommandHandlers } from "."; -import { WRITE_CONNECTION } from "../../config"; -import { RabbitMqModule } from "../../rabbitmq/rabbitmq.module"; -import { UserEntity } from "../../user/core/entities/user.entity"; -import { UserModule } from "../../user/user.module"; -import { FollowsEntity } from "../core/entities/follows.entity"; -import { ProfileController } from "../profile.controller"; +import { WRITE_CONNECTION } from "../../../config"; +import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; +import { UserEntity } from "../../../user/core/entities/user.entity"; +import { UserModule } from "../../../user/user.module"; +import { FollowsEntity } from "../../core/entities/follows.entity"; import { ProfileService } from "../services/profile.service"; @Module({ @@ -18,7 +18,7 @@ import { ProfileService } from "../services/profile.service"; RabbitMqModule, ], providers: [ProfileService, ...CommandHandlers], - controllers: [ProfileController], + controllers: [], exports: [], }) export class CommandModule {} diff --git a/src/profile/commands/handlers/follow-profile.handler.ts b/src/profile/application/commands/handlers/follow-profile.handler.ts similarity index 81% rename from src/profile/commands/handlers/follow-profile.handler.ts rename to src/profile/application/commands/handlers/follow-profile.handler.ts index 464b1a9..c23ab97 100644 --- a/src/profile/commands/handlers/follow-profile.handler.ts +++ b/src/profile/application/commands/handlers/follow-profile.handler.ts @@ -2,16 +2,16 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { PROFILE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { FollowsEntity } from "../../core/entities/follows.entity"; -import { MessageType } from "../../core/enums/profile.enum"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { PROFILE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { FollowsEntity } from "../../../core/entities/follows.entity"; +import { MessageType } from "../../../core/enums/profile.enum"; import { ProfileData, ProfileRO, -} from "../../core/interfaces/profile.interface"; +} from "../../../core/interfaces/profile.interface"; import { FollowProfileCommand } from "../impl"; @CommandHandler(FollowProfileCommand) diff --git a/src/profile/commands/handlers/index.ts b/src/profile/application/commands/handlers/index.ts similarity index 100% rename from src/profile/commands/handlers/index.ts rename to src/profile/application/commands/handlers/index.ts diff --git a/src/profile/commands/handlers/unfollow-profile.handler.ts b/src/profile/application/commands/handlers/unfollow-profile.handler.ts similarity index 79% rename from src/profile/commands/handlers/unfollow-profile.handler.ts rename to src/profile/application/commands/handlers/unfollow-profile.handler.ts index 1e863d8..e7651f7 100644 --- a/src/profile/commands/handlers/unfollow-profile.handler.ts +++ b/src/profile/application/commands/handlers/unfollow-profile.handler.ts @@ -2,16 +2,16 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../config"; -import { PublisherService } from "../../../rabbitmq/publisher.service"; -import { PROFILE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { FollowsEntity } from "../../core/entities/follows.entity"; -import { MessageType } from "../../core/enums/profile.enum"; +import { WRITE_CONNECTION } from "../../../../config"; +import { PublisherService } from "../../../../rabbitmq/publisher.service"; +import { PROFILE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { FollowsEntity } from "../../../core/entities/follows.entity"; +import { MessageType } from "../../../core/enums/profile.enum"; import { ProfileData, ProfileRO, -} from "../../core/interfaces/profile.interface"; +} from "../../../core/interfaces/profile.interface"; import { UnFollowProfileCommand } from "../impl"; @CommandHandler(UnFollowProfileCommand) diff --git a/src/profile/commands/impl/follow-profile.command.ts b/src/profile/application/commands/impl/follow-profile.command.ts similarity index 100% rename from src/profile/commands/impl/follow-profile.command.ts rename to src/profile/application/commands/impl/follow-profile.command.ts diff --git a/src/profile/commands/impl/index.ts b/src/profile/application/commands/impl/index.ts similarity index 100% rename from src/profile/commands/impl/index.ts rename to src/profile/application/commands/impl/index.ts diff --git a/src/profile/commands/impl/unfollow-profile.command.ts b/src/profile/application/commands/impl/unfollow-profile.command.ts similarity index 100% rename from src/profile/commands/impl/unfollow-profile.command.ts rename to src/profile/application/commands/impl/unfollow-profile.command.ts diff --git a/src/profile/commands/index.ts b/src/profile/application/commands/index.ts similarity index 100% rename from src/profile/commands/index.ts rename to src/profile/application/commands/index.ts diff --git a/src/profile/events/event.module.ts b/src/profile/application/events/event.module.ts similarity index 67% rename from src/profile/events/event.module.ts rename to src/profile/application/events/event.module.ts index 4e922a3..184b000 100644 --- a/src/profile/events/event.module.ts +++ b/src/profile/application/events/event.module.ts @@ -1,9 +1,9 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../../config"; -import { EventHandlers } from "../events"; -import { FollowsEntity } from "../core/entities/follows.entity"; +import { READ_CONNECTION } from "../../../config"; +import { EventHandlers } from "."; +import { FollowsEntity } from "../../core/entities/follows.entity"; @Module({ imports: [ diff --git a/src/profile/events/handlers/index.ts b/src/profile/application/events/handlers/index.ts similarity index 100% rename from src/profile/events/handlers/index.ts rename to src/profile/application/events/handlers/index.ts diff --git a/src/profile/events/handlers/profile-followed.handler.ts b/src/profile/application/events/handlers/profile-followed.handler.ts similarity index 86% rename from src/profile/events/handlers/profile-followed.handler.ts rename to src/profile/application/events/handlers/profile-followed.handler.ts index 5048c13..691ba64 100644 --- a/src/profile/events/handlers/profile-followed.handler.ts +++ b/src/profile/application/events/handlers/profile-followed.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { FollowsEntity } from "../../core/entities/follows.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { FollowsEntity } from "../../../core/entities/follows.entity"; import { ProfileFollowedEvent } from "../impl"; @EventsHandler(ProfileFollowedEvent) diff --git a/src/profile/events/handlers/profile-unfollowed.handler.ts b/src/profile/application/events/handlers/profile-unfollowed.handler.ts similarity index 86% rename from src/profile/events/handlers/profile-unfollowed.handler.ts rename to src/profile/application/events/handlers/profile-unfollowed.handler.ts index 8fe8d13..d6684af 100644 --- a/src/profile/events/handlers/profile-unfollowed.handler.ts +++ b/src/profile/application/events/handlers/profile-unfollowed.handler.ts @@ -3,8 +3,8 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { FollowsEntity } from "../../core/entities/follows.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { FollowsEntity } from "../../../core/entities/follows.entity"; import { ProfileUnFollowedEvent } from "../impl"; @EventsHandler(ProfileUnFollowedEvent) diff --git a/src/profile/events/impl/index.ts b/src/profile/application/events/impl/index.ts similarity index 100% rename from src/profile/events/impl/index.ts rename to src/profile/application/events/impl/index.ts diff --git a/src/profile/events/impl/profile-followed.event.ts b/src/profile/application/events/impl/profile-followed.event.ts similarity index 57% rename from src/profile/events/impl/profile-followed.event.ts rename to src/profile/application/events/impl/profile-followed.event.ts index 0ce6de1..81ebb8f 100644 --- a/src/profile/events/impl/profile-followed.event.ts +++ b/src/profile/application/events/impl/profile-followed.event.ts @@ -1,4 +1,4 @@ -import { FollowsEntity } from "../../core/entities/follows.entity"; +import { FollowsEntity } from "../../../core/entities/follows.entity"; export class ProfileFollowedEvent { constructor(public readonly follow: FollowsEntity) {} diff --git a/src/profile/events/impl/profile-unfollowed.event.ts b/src/profile/application/events/impl/profile-unfollowed.event.ts similarity index 56% rename from src/profile/events/impl/profile-unfollowed.event.ts rename to src/profile/application/events/impl/profile-unfollowed.event.ts index e84a5c9..5ba85cf 100644 --- a/src/profile/events/impl/profile-unfollowed.event.ts +++ b/src/profile/application/events/impl/profile-unfollowed.event.ts @@ -1,4 +1,4 @@ -import { IFollow } from "../../core/interfaces/profile.interface"; +import { IFollow } from "../../../core/interfaces/profile.interface"; export class ProfileUnFollowedEvent { constructor(public readonly follow: IFollow) {} diff --git a/src/profile/events/index.ts b/src/profile/application/events/index.ts similarity index 100% rename from src/profile/events/index.ts rename to src/profile/application/events/index.ts diff --git a/src/profile/profile.projection.ts b/src/profile/application/profile.projection.ts similarity index 74% rename from src/profile/profile.projection.ts rename to src/profile/application/profile.projection.ts index f3c714e..7144494 100644 --- a/src/profile/profile.projection.ts +++ b/src/profile/application/profile.projection.ts @@ -1,10 +1,11 @@ import { Injectable } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; -import { ConsumerService } from "../rabbitmq/consumer.service"; -import { PROFILE_QUEUE } from "../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "./core"; -import { FollowsEntity } from "./core/entities/follows.entity"; -import { MessageType } from "./core/enums/profile.enum"; + +import { ConsumerService } from "../../rabbitmq/consumer.service"; +import { PROFILE_QUEUE } from "../../rabbitmq/rabbitmq.constants"; +import { IMessage, IProjection } from "../core"; +import { FollowsEntity } from "../core/entities/follows.entity"; +import { MessageType } from "../core/enums/profile.enum"; import { ProfileFollowedEvent, ProfileUnFollowedEvent } from "./events"; @Injectable() diff --git a/src/profile/queries/handlers/find-profile.handler.ts b/src/profile/application/queries/handlers/find-profile.handler.ts similarity index 82% rename from src/profile/queries/handlers/find-profile.handler.ts rename to src/profile/application/queries/handlers/find-profile.handler.ts index 8b5b589..d29670a 100644 --- a/src/profile/queries/handlers/find-profile.handler.ts +++ b/src/profile/application/queries/handlers/find-profile.handler.ts @@ -1,13 +1,13 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../config"; -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { FollowsEntity } from "../../core/entities/follows.entity"; +import { READ_CONNECTION } from "../../../../config"; +import { UserEntity } from "../../../../user/core/entities/user.entity"; +import { FollowsEntity } from "../../../core/entities/follows.entity"; import { ProfileData, ProfileRO, -} from "../../core/interfaces/profile.interface"; +} from "../../../core/interfaces/profile.interface"; import { FindProfileQuery } from "../impl"; @QueryHandler(FindProfileQuery) diff --git a/src/profile/queries/handlers/index.ts b/src/profile/application/queries/handlers/index.ts similarity index 100% rename from src/profile/queries/handlers/index.ts rename to src/profile/application/queries/handlers/index.ts diff --git a/src/profile/queries/impl/find-profile.query.ts b/src/profile/application/queries/impl/find-profile.query.ts similarity index 100% rename from src/profile/queries/impl/find-profile.query.ts rename to src/profile/application/queries/impl/find-profile.query.ts diff --git a/src/profile/queries/impl/index.ts b/src/profile/application/queries/impl/index.ts similarity index 100% rename from src/profile/queries/impl/index.ts rename to src/profile/application/queries/impl/index.ts diff --git a/src/profile/queries/index.ts b/src/profile/application/queries/index.ts similarity index 100% rename from src/profile/queries/index.ts rename to src/profile/application/queries/index.ts diff --git a/src/profile/queries/query.module.ts b/src/profile/application/queries/query.module.ts similarity index 58% rename from src/profile/queries/query.module.ts rename to src/profile/application/queries/query.module.ts index cbe5f28..193a546 100644 --- a/src/profile/queries/query.module.ts +++ b/src/profile/application/queries/query.module.ts @@ -1,12 +1,12 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; + import { QueryHandlers } from "."; -import { READ_CONNECTION } from "../../config"; -import { UserEntity } from "../../user/core/entities/user.entity"; -import { UserModule } from "../../user/user.module"; -import { FollowsEntity } from "../core/entities/follows.entity"; -import { ProfileController } from "../profile.controller"; +import { READ_CONNECTION } from "../../../config"; +import { UserEntity } from "../../../user/core/entities/user.entity"; +import { UserModule } from "../../../user/user.module"; +import { FollowsEntity } from "../../core/entities/follows.entity"; import { ProfileService } from "../services/profile.service"; @Module({ @@ -16,7 +16,7 @@ import { ProfileService } from "../services/profile.service"; CqrsModule, ], providers: [ProfileService, ...QueryHandlers], - controllers: [ProfileController], + controllers: [], exports: [], }) export class QueryModule {} diff --git a/src/profile/services/profile.service.ts b/src/profile/application/services/profile.service.ts similarity index 100% rename from src/profile/services/profile.service.ts rename to src/profile/application/services/profile.service.ts diff --git a/src/profile/profile.controller.ts b/src/profile/presentation/profile.controller.ts similarity index 81% rename from src/profile/profile.controller.ts rename to src/profile/presentation/profile.controller.ts index ae313cc..b5b0d05 100644 --- a/src/profile/profile.controller.ts +++ b/src/profile/presentation/profile.controller.ts @@ -1,10 +1,14 @@ import { Controller, Delete, Get, Param, Post } from "@nestjs/common"; import { CommandBus, QueryBus } from "@nestjs/cqrs"; import { ApiBearerAuth, ApiOperation, ApiTags } from "@nestjs/swagger"; -import { User } from "../shared/middleware/user.decorator"; -import { FollowProfileCommand, UnFollowProfileCommand } from "./commands"; -import { FindProfileQuery } from "./queries"; -import { ProfileRO } from "./core/interfaces/profile.interface"; + +import { User } from "../../shared/middleware/user.decorator"; +import { + FollowProfileCommand, + UnFollowProfileCommand, +} from "../application/commands"; +import { FindProfileQuery } from "../application/queries"; +import { ProfileRO } from "../core/interfaces/profile.interface"; @ApiBearerAuth() @ApiTags("profiles") diff --git a/src/profile/profile.module.ts b/src/profile/profile.module.ts index 1a3b5d8..6ff68c2 100644 --- a/src/profile/profile.module.ts +++ b/src/profile/profile.module.ts @@ -8,12 +8,12 @@ import { CqrsModule } from "@nestjs/cqrs"; import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; -import { CommandModule } from "./commands/command.module"; -import { EventModule } from "./events/event.module"; -import { ProfileController } from "./profile.controller"; -import { ProfileProjection } from "./profile.projection"; -import { ProfileService } from "./services/profile.service"; -import { QueryModule } from "./queries/query.module"; +import { CommandModule } from "./application/commands/command.module"; +import { EventModule } from "./application/events/event.module"; +import { ProfileController } from "./presentation/profile.controller"; +import { ProfileProjection } from "./application/profile.projection"; +import { ProfileService } from "./application/services/profile.service"; +import { QueryModule } from "./application/queries/query.module"; import { RedisModule } from "../redis/redis.module"; @Module({ From 45ae54298d6ad7a778f86ab17b34c55f583f1e22 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 14:58:52 +0700 Subject: [PATCH 13/28] feat: separate db-module --- src/app.module.ts | 44 +++-------------------------- src/database/database.module.ts | 49 +++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 40 deletions(-) create mode 100644 src/database/database.module.ts diff --git a/src/app.module.ts b/src/app.module.ts index 379e85e..69236de 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,60 +1,24 @@ import { Module } from "@nestjs/common"; import { ConfigModule } from "@nestjs/config"; -import { TypeOrmModule } from "@nestjs/typeorm"; -import * as dotenv from "dotenv"; -import { AppController } from "./app.controller"; + import { ArticleModule } from "./article/article.module"; -import { READ_CONNECTION, WRITE_CONNECTION } from "./config"; +import { DatabaseModule } from "./database/database.module"; import { MediaModule } from "./media/media.module"; import { ProfileModule } from "./profile/profile.module"; import { TagModule } from "./tag/tag.module"; import { UserModule } from "./user/user.module"; -dotenv.config(); - -const defaultOptions = { - type: process.env.DATABASE_ENGINE, - host: process.env.DATABASE_HOST, - port: parseInt(process.env.DATABASE_PORT), - username: process.env.DATABASE_USERNAME, - password: process.env.DATABASE_PASSWORD, - entities: [__dirname + process.env.TYPEORM_ENTITIES], - migrations: [__dirname + process.env.TYPEORM_MIGRATIONS], - logging: process.env.TYPEORM_LOGGING === "true", - synchronize: process.env.TYPEORM_SYNCHRONIZE === "true", - migrationsRun: process.env.TYPEORM_MIGRATION_RUN === "true", - migrationsTableName: "migrations", - cli: { - migrationsDir: process.env.TYPEORM_MIGRATIONS_DIR, - }, -}; - @Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), - TypeOrmModule.forRootAsync({ - name: WRITE_CONNECTION, - useFactory: () => ({ - ...defaultOptions, - type: "postgres", - database: process.env.WRITE_DATABASE_NAME, - }), - }), - TypeOrmModule.forRootAsync({ - name: READ_CONNECTION, - useFactory: () => ({ - ...defaultOptions, - type: "postgres", - database: process.env.READ_DATABASE_NAME, - }), - }), + DatabaseModule, ArticleModule, UserModule, ProfileModule, TagModule, MediaModule, ], - controllers: [AppController], + controllers: [], providers: [], }) export class ApplicationModule {} diff --git a/src/database/database.module.ts b/src/database/database.module.ts new file mode 100644 index 0000000..bfca8bf --- /dev/null +++ b/src/database/database.module.ts @@ -0,0 +1,49 @@ +import { Module } from "@nestjs/common"; +import { TypeOrmModule } from "@nestjs/typeorm"; +import * as dotenv from "dotenv"; + +import { READ_CONNECTION, WRITE_CONNECTION } from "../config"; +import { join } from "path"; + +dotenv.config(); + +const defaultOptions = { + type: process.env.DATABASE_ENGINE, + host: process.env.DATABASE_HOST, + port: parseInt(process.env.DATABASE_PORT), + username: process.env.DATABASE_USERNAME, + password: process.env.DATABASE_PASSWORD, + entities: [join(__dirname, "../", "/**/core/entities/**.entity{.ts,.js}")], + migrations: [join(__dirname, "../", "/database/migrations/**{.ts,.js}")], + logging: process.env.TYPEORM_LOGGING === "true", + synchronize: process.env.TYPEORM_SYNCHRONIZE === "true", + migrationsRun: process.env.TYPEORM_MIGRATION_RUN === "true", + migrationsTableName: "migrations", + cli: { + migrationsDir: process.env.TYPEORM_MIGRATIONS_DIR, + }, +}; + +@Module({ + imports: [ + TypeOrmModule.forRootAsync({ + name: WRITE_CONNECTION, + useFactory: () => ({ + ...defaultOptions, + type: "postgres", + database: process.env.WRITE_DATABASE_NAME, + }), + }), + TypeOrmModule.forRootAsync({ + name: READ_CONNECTION, + useFactory: () => ({ + ...defaultOptions, + type: "postgres", + database: process.env.READ_DATABASE_NAME, + }), + }), + ], + controllers: [], + providers: [], +}) +export class DatabaseModule {} From a4bd44b34fef3db29b5549a53a212ca20290aae4 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 15:01:57 +0700 Subject: [PATCH 14/28] wip --- src/app.controller.ts | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 src/app.controller.ts diff --git a/src/app.controller.ts b/src/app.controller.ts deleted file mode 100644 index 0cd25d1..0000000 --- a/src/app.controller.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Get, Controller } from '@nestjs/common'; - -@Controller() -export class AppController { - @Get() - root(): string { - return 'Hello World!'; - } -} \ No newline at end of file From efae83a5212323355ca972b33489a5ac9a93634b Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 15:14:29 +0700 Subject: [PATCH 15/28] bug: wrong import file path --- src/main.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main.ts b/src/main.ts index 9898963..c471dfb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,14 +1,14 @@ -import { NestFactory } from "@nestjs/core"; -import { SwaggerModule, DocumentBuilder } from "@nestjs/swagger"; -import { json, urlencoded } from "express"; import { INestApplication, NestApplicationOptions } from "@nestjs/common"; +import { NestFactory } from "@nestjs/core"; +import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; import * as cluster from "cluster"; +import { json, urlencoded } from "express"; import * as os from "os"; import { ApplicationModule } from "./app.module"; -import { ArticleProjection } from "./article/article.projection"; +import { ArticleProjection } from "./article/application/article.projection"; +import { ProfileProjection } from "./profile/application/profile.projection"; import { UserProjection } from "./user/application/user.projection"; -import { ProfileProjection } from "./profile/profile.projection"; async function executeProjection(app: INestApplication) { const articleProjection = app.get(ArticleProjection); @@ -25,7 +25,7 @@ async function bootstrap() { const numWorkers = os.cpus().length; console.log(`Master cluster setting up ${numWorkers} workers...`); - for (let i = 0; i < 1; i++) { + for (let i = 0; i < numWorkers; i++) { cluster.fork(); } From 3cb5e6cd2707af014b20f9deb31e2d79c21123f1 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Sat, 14 Oct 2023 21:44:29 +0700 Subject: [PATCH 16/28] feat: enhance connection variables with .env --- .env.example | 5 +++++ src/article/application/commands/command.module.ts | 2 +- .../commands/handlers/create-article.handler.ts | 2 +- .../commands/handlers/create-comment.handler.ts | 2 +- .../commands/handlers/delete-article.handler.ts | 2 +- .../commands/handlers/delete-comment.handler.ts | 2 +- .../commands/handlers/favorite-article.handler.ts | 2 +- .../commands/handlers/unfavorite-article.handler.ts | 2 +- .../commands/handlers/update-article.handler.ts | 2 +- src/article/application/events/event.module.ts | 2 +- .../events/handlers/article-created.handler.ts | 2 +- .../events/handlers/article-deleted.handler.ts | 2 +- .../events/handlers/article-favorited.handler.ts | 2 +- .../events/handlers/article-unfavorited.handler.ts | 2 +- .../events/handlers/article-updated.handler.ts | 2 +- .../events/handlers/comment-created.handler.ts | 2 +- .../events/handlers/comment-deleted.handler.ts | 2 +- .../queries/handlers/find-all.article.handler.ts | 2 +- .../queries/handlers/find-comments.handler.ts | 2 +- .../queries/handlers/find-feed-article.handler.ts | 2 +- .../queries/handlers/find-one-article.handler.ts | 2 +- src/article/application/queries/query.module.ts | 2 +- src/config.ts | 4 ---- src/configs/index.ts | 4 ++++ src/database/database.module.ts | 2 +- src/profile/application/commands/command.module.ts | 2 +- .../commands/handlers/follow-profile.handler.ts | 2 +- .../commands/handlers/unfollow-profile.handler.ts | 2 +- src/profile/application/events/event.module.ts | 2 +- .../events/handlers/profile-followed.handler.ts | 2 +- .../events/handlers/profile-unfollowed.handler.ts | 2 +- .../queries/handlers/find-profile.handler.ts | 2 +- src/profile/application/queries/query.module.ts | 2 +- src/shared/base.controller.ts | 11 +++++------ src/shared/middleware/auth.middleware.ts | 7 ++++--- src/shared/middleware/user.decorator.ts | 5 +++-- src/tag/tag.module.ts | 2 +- src/tag/tag.service.ts | 2 +- src/user/application/commands/command.module.ts | 2 +- .../commands/handlers/create-user.handler.ts | 2 +- .../commands/handlers/update-user.handler.ts | 2 +- src/user/application/events/event.module.ts | 2 +- .../events/handlers/user-created.handler.ts | 2 +- .../events/handlers/user-updated.handler.ts | 2 +- .../queries/handlers/find-user-by-email.handler.ts | 2 +- .../queries/handlers/find-user-by-id.handler.ts | 2 +- .../application/queries/handlers/login.handler.ts | 2 +- src/user/application/queries/query.module.ts | 2 +- src/user/application/services/user.service.ts | 7 ++++--- 49 files changed, 67 insertions(+), 60 deletions(-) delete mode 100644 src/config.ts create mode 100644 src/configs/index.ts diff --git a/.env.example b/.env.example index d81f0fc..1d4d139 100644 --- a/.env.example +++ b/.env.example @@ -8,6 +8,9 @@ DATABASE_PASSWORD=postgres WRITE_DATABASE_NAME=master-db READ_DATABASE_NAME=slave-db +WRITE_CONNECTION_NAME= +READ_CONNECTION_NAME= + TYPEORM_ENTITIES=/**/core/entities/**.entity{.ts,.js} TYPEORM_MIGRATIONS=/database/migrations/*{.ts,.js} TYPEORM_MIGRATIONS_DIR=src/database/migrations @@ -15,6 +18,8 @@ TYPEORM_LOGGING=true TYPEORM_SYNCHRONIZE=false TYPEORM_MIGRATION_RUN=false +JWT_SECRET_KEY=jwt-secret-key + DROPBOX_TOKEN= DROPBOX_KEY= DROPBOX_SECRET= diff --git a/src/article/application/commands/command.module.ts b/src/article/application/commands/command.module.ts index d44a803..6769986 100644 --- a/src/article/application/commands/command.module.ts +++ b/src/article/application/commands/command.module.ts @@ -3,7 +3,7 @@ import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; import { CommandHandlers } from "."; -import { WRITE_CONNECTION } from "../../../config"; +import { WRITE_CONNECTION } from "../../../configs"; import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; import { UserEntity } from "../../../user/core"; diff --git a/src/article/application/commands/handlers/create-article.handler.ts b/src/article/application/commands/handlers/create-article.handler.ts index 143c670..8aea40c 100644 --- a/src/article/application/commands/handlers/create-article.handler.ts +++ b/src/article/application/commands/handlers/create-article.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { ArticleEntity } from "../../../core/entities/article.entity"; diff --git a/src/article/application/commands/handlers/create-comment.handler.ts b/src/article/application/commands/handlers/create-comment.handler.ts index 6668d22..4088c5c 100644 --- a/src/article/application/commands/handlers/create-comment.handler.ts +++ b/src/article/application/commands/handlers/create-comment.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../../user/core/entities/user.entity"; diff --git a/src/article/application/commands/handlers/delete-article.handler.ts b/src/article/application/commands/handlers/delete-article.handler.ts index 175a5ed..cb9dde9 100644 --- a/src/article/application/commands/handlers/delete-article.handler.ts +++ b/src/article/application/commands/handlers/delete-article.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { DeleteResult, Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { diff --git a/src/article/application/commands/handlers/delete-comment.handler.ts b/src/article/application/commands/handlers/delete-comment.handler.ts index d8d1144..be4a8ef 100644 --- a/src/article/application/commands/handlers/delete-comment.handler.ts +++ b/src/article/application/commands/handlers/delete-comment.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { ArticleEntity } from "../../../core/entities/article.entity"; diff --git a/src/article/application/commands/handlers/favorite-article.handler.ts b/src/article/application/commands/handlers/favorite-article.handler.ts index 763225f..cf632d6 100644 --- a/src/article/application/commands/handlers/favorite-article.handler.ts +++ b/src/article/application/commands/handlers/favorite-article.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../../user/core/entities/user.entity"; diff --git a/src/article/application/commands/handlers/unfavorite-article.handler.ts b/src/article/application/commands/handlers/unfavorite-article.handler.ts index 982b083..53e1e57 100644 --- a/src/article/application/commands/handlers/unfavorite-article.handler.ts +++ b/src/article/application/commands/handlers/unfavorite-article.handler.ts @@ -1,7 +1,7 @@ import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../../user/core/entities/user.entity"; diff --git a/src/article/application/commands/handlers/update-article.handler.ts b/src/article/application/commands/handlers/update-article.handler.ts index ef751e3..07a10bd 100644 --- a/src/article/application/commands/handlers/update-article.handler.ts +++ b/src/article/application/commands/handlers/update-article.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { ArticleEntity } from "../../../core/entities/article.entity"; diff --git a/src/article/application/events/event.module.ts b/src/article/application/events/event.module.ts index 2699d29..c79c4d7 100644 --- a/src/article/application/events/event.module.ts +++ b/src/article/application/events/event.module.ts @@ -1,7 +1,7 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../configs"; import { UserEntity } from "../../../user/core/entities/user.entity"; import { ArticleEntity, BlockEntity } from "../../core"; import { CommentEntity } from "../../core/entities/comment.entity"; diff --git a/src/article/application/events/handlers/article-created.handler.ts b/src/article/application/events/handlers/article-created.handler.ts index 24670f0..629e7be 100644 --- a/src/article/application/events/handlers/article-created.handler.ts +++ b/src/article/application/events/handlers/article-created.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleCreatedEvent } from "../impl"; diff --git a/src/article/application/events/handlers/article-deleted.handler.ts b/src/article/application/events/handlers/article-deleted.handler.ts index 3d627cd..6acf6f2 100644 --- a/src/article/application/events/handlers/article-deleted.handler.ts +++ b/src/article/application/events/handlers/article-deleted.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { ArticleDeletedEvent } from "../impl"; import { CommentEntity, ArticleEntity, BlockEntity } from "../../../core"; diff --git a/src/article/application/events/handlers/article-favorited.handler.ts b/src/article/application/events/handlers/article-favorited.handler.ts index 1d274b7..ea98ec2 100644 --- a/src/article/application/events/handlers/article-favorited.handler.ts +++ b/src/article/application/events/handlers/article-favorited.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { UserEntity } from "../../../../user/core/entities/user.entity"; import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleFavoritedEvent } from "../impl"; diff --git a/src/article/application/events/handlers/article-unfavorited.handler.ts b/src/article/application/events/handlers/article-unfavorited.handler.ts index 87f64e2..cc00f71 100644 --- a/src/article/application/events/handlers/article-unfavorited.handler.ts +++ b/src/article/application/events/handlers/article-unfavorited.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { UserEntity } from "../../../../user/core/entities/user.entity"; import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleUnFavoritedEvent } from "../impl"; diff --git a/src/article/application/events/handlers/article-updated.handler.ts b/src/article/application/events/handlers/article-updated.handler.ts index b5617f6..7b44358 100644 --- a/src/article/application/events/handlers/article-updated.handler.ts +++ b/src/article/application/events/handlers/article-updated.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { ArticleEntity } from "../../../core/entities/article.entity"; import { ArticleUpdatedEvent } from "../impl"; diff --git a/src/article/application/events/handlers/comment-created.handler.ts b/src/article/application/events/handlers/comment-created.handler.ts index c7dc949..bf99a04 100644 --- a/src/article/application/events/handlers/comment-created.handler.ts +++ b/src/article/application/events/handlers/comment-created.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { CommentEntity } from "../../../core/entities/comment.entity"; import { CommentCreatedEvent } from "../impl"; diff --git a/src/article/application/events/handlers/comment-deleted.handler.ts b/src/article/application/events/handlers/comment-deleted.handler.ts index 284d2c5..0d82464 100644 --- a/src/article/application/events/handlers/comment-deleted.handler.ts +++ b/src/article/application/events/handlers/comment-deleted.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { CommentEntity } from "../../../core/entities/comment.entity"; import { CommentDeletedEvent } from "../impl"; diff --git a/src/article/application/queries/handlers/find-all.article.handler.ts b/src/article/application/queries/handlers/find-all.article.handler.ts index 7f24028..fd58228 100644 --- a/src/article/application/queries/handlers/find-all.article.handler.ts +++ b/src/article/application/queries/handlers/find-all.article.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { getRepository, Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { FollowsEntity } from "../../../../profile/core/entities/follows.entity"; import { UserEntity } from "../../../../user/core/entities/user.entity"; import { ArticleEntity } from "../../../core/entities/article.entity"; diff --git a/src/article/application/queries/handlers/find-comments.handler.ts b/src/article/application/queries/handlers/find-comments.handler.ts index 57e61c9..bba788e 100644 --- a/src/article/application/queries/handlers/find-comments.handler.ts +++ b/src/article/application/queries/handlers/find-comments.handler.ts @@ -1,7 +1,7 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { ArticleEntity } from "../../../core/entities/article.entity"; import { CommentsRO } from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; diff --git a/src/article/application/queries/handlers/find-feed-article.handler.ts b/src/article/application/queries/handlers/find-feed-article.handler.ts index 280b322..38f03e0 100644 --- a/src/article/application/queries/handlers/find-feed-article.handler.ts +++ b/src/article/application/queries/handlers/find-feed-article.handler.ts @@ -1,7 +1,7 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { getRepository, Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { FollowsEntity } from "../../../../profile/core/entities/follows.entity"; import { UserEntity } from "../../../../user/core/entities/user.entity"; import { ArticleEntity } from "../../../core/entities/article.entity"; diff --git a/src/article/application/queries/handlers/find-one-article.handler.ts b/src/article/application/queries/handlers/find-one-article.handler.ts index 71ea1c5..2c9dd0b 100644 --- a/src/article/application/queries/handlers/find-one-article.handler.ts +++ b/src/article/application/queries/handlers/find-one-article.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { FollowsEntity } from "../../../../profile/core/entities/follows.entity"; import { UserEntity } from "../../../../user/core/entities/user.entity"; import { ArticleEntity } from "../../../core/entities/article.entity"; diff --git a/src/article/application/queries/query.module.ts b/src/article/application/queries/query.module.ts index d9bc31f..3f62b2a 100644 --- a/src/article/application/queries/query.module.ts +++ b/src/article/application/queries/query.module.ts @@ -3,7 +3,7 @@ import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; import { QueryHandlers } from "."; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../configs"; import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; import { UserEntity } from "../../../user/core/entities/user.entity"; import { UserModule } from "../../../user/user.module"; diff --git a/src/config.ts b/src/config.ts deleted file mode 100644 index a1d66e8..0000000 --- a/src/config.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const SECRET = "jwt-secret-key"; - -export const WRITE_CONNECTION = "master-db"; -export const READ_CONNECTION = "slave-db"; diff --git a/src/configs/index.ts b/src/configs/index.ts new file mode 100644 index 0000000..155f5b3 --- /dev/null +++ b/src/configs/index.ts @@ -0,0 +1,4 @@ +export const JWT_SECRET_KEY = process.env.JWT_SECRET_KEY; + +export const WRITE_CONNECTION = process.env.WRITE_CONNECTION; +export const READ_CONNECTION = process.env.READ_CONNECTION; diff --git a/src/database/database.module.ts b/src/database/database.module.ts index bfca8bf..a4d5393 100644 --- a/src/database/database.module.ts +++ b/src/database/database.module.ts @@ -2,7 +2,7 @@ import { Module } from "@nestjs/common"; import { TypeOrmModule } from "@nestjs/typeorm"; import * as dotenv from "dotenv"; -import { READ_CONNECTION, WRITE_CONNECTION } from "../config"; +import { READ_CONNECTION, WRITE_CONNECTION } from "../configs"; import { join } from "path"; dotenv.config(); diff --git a/src/profile/application/commands/command.module.ts b/src/profile/application/commands/command.module.ts index 4657a63..591079b 100644 --- a/src/profile/application/commands/command.module.ts +++ b/src/profile/application/commands/command.module.ts @@ -3,7 +3,7 @@ import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; import { CommandHandlers } from "."; -import { WRITE_CONNECTION } from "../../../config"; +import { WRITE_CONNECTION } from "../../../configs"; import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; import { UserEntity } from "../../../user/core/entities/user.entity"; import { UserModule } from "../../../user/user.module"; diff --git a/src/profile/application/commands/handlers/follow-profile.handler.ts b/src/profile/application/commands/handlers/follow-profile.handler.ts index c23ab97..c3f9fb2 100644 --- a/src/profile/application/commands/handlers/follow-profile.handler.ts +++ b/src/profile/application/commands/handlers/follow-profile.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { PROFILE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../../user/core/entities/user.entity"; diff --git a/src/profile/application/commands/handlers/unfollow-profile.handler.ts b/src/profile/application/commands/handlers/unfollow-profile.handler.ts index e7651f7..9e549d0 100644 --- a/src/profile/application/commands/handlers/unfollow-profile.handler.ts +++ b/src/profile/application/commands/handlers/unfollow-profile.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { PROFILE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../../user/core/entities/user.entity"; diff --git a/src/profile/application/events/event.module.ts b/src/profile/application/events/event.module.ts index 184b000..49a7161 100644 --- a/src/profile/application/events/event.module.ts +++ b/src/profile/application/events/event.module.ts @@ -1,7 +1,7 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../configs"; import { EventHandlers } from "."; import { FollowsEntity } from "../../core/entities/follows.entity"; diff --git a/src/profile/application/events/handlers/profile-followed.handler.ts b/src/profile/application/events/handlers/profile-followed.handler.ts index 691ba64..58a2724 100644 --- a/src/profile/application/events/handlers/profile-followed.handler.ts +++ b/src/profile/application/events/handlers/profile-followed.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { FollowsEntity } from "../../../core/entities/follows.entity"; import { ProfileFollowedEvent } from "../impl"; diff --git a/src/profile/application/events/handlers/profile-unfollowed.handler.ts b/src/profile/application/events/handlers/profile-unfollowed.handler.ts index d6684af..a53426f 100644 --- a/src/profile/application/events/handlers/profile-unfollowed.handler.ts +++ b/src/profile/application/events/handlers/profile-unfollowed.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { FollowsEntity } from "../../../core/entities/follows.entity"; import { ProfileUnFollowedEvent } from "../impl"; diff --git a/src/profile/application/queries/handlers/find-profile.handler.ts b/src/profile/application/queries/handlers/find-profile.handler.ts index d29670a..9256390 100644 --- a/src/profile/application/queries/handlers/find-profile.handler.ts +++ b/src/profile/application/queries/handlers/find-profile.handler.ts @@ -1,7 +1,7 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { UserEntity } from "../../../../user/core/entities/user.entity"; import { FollowsEntity } from "../../../core/entities/follows.entity"; import { diff --git a/src/profile/application/queries/query.module.ts b/src/profile/application/queries/query.module.ts index 193a546..b40f8dc 100644 --- a/src/profile/application/queries/query.module.ts +++ b/src/profile/application/queries/query.module.ts @@ -3,7 +3,7 @@ import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; import { QueryHandlers } from "."; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../configs"; import { UserEntity } from "../../../user/core/entities/user.entity"; import { UserModule } from "../../../user/user.module"; import { FollowsEntity } from "../../core/entities/follows.entity"; diff --git a/src/shared/base.controller.ts b/src/shared/base.controller.ts index ca48827..c8db17d 100644 --- a/src/shared/base.controller.ts +++ b/src/shared/base.controller.ts @@ -1,15 +1,14 @@ -import { SECRET } from '../config'; -import * as jwt from 'jsonwebtoken'; +import * as jwt from "jsonwebtoken"; +import { JWT_SECRET_KEY } from "../configs"; export class BaseController { - constructor() {} protected getUserIdFromToken(authorization) { if (!authorization) return null; - const token = authorization.split(' ')[1]; - const decoded: any = jwt.verify(token, SECRET); + const token = authorization.split(" ")[1]; + const decoded: any = jwt.verify(token, JWT_SECRET_KEY); return decoded.id; } -} \ No newline at end of file +} diff --git a/src/shared/middleware/auth.middleware.ts b/src/shared/middleware/auth.middleware.ts index c99ec7c..3c7a125 100644 --- a/src/shared/middleware/auth.middleware.ts +++ b/src/shared/middleware/auth.middleware.ts @@ -4,10 +4,11 @@ import { QueryBus } from "@nestjs/cqrs"; import { NextFunction, Request, Response } from "express"; import { IncomingHttpHeaders } from "http"; import * as jwt from "jsonwebtoken"; -import { SECRET } from "../../config"; + +import { JWT_SECRET_KEY } from "../../configs"; +import { RedisService } from "../../redis/redis.service"; import { FindUserById } from "../../user/application/queries"; import { UserData } from "../../user/core/interfaces/user.interface"; -import { RedisService } from "../../redis/redis.service"; interface IRequestCustom extends Request { user: UserData; @@ -25,7 +26,7 @@ export class AuthMiddleware implements NestMiddleware { const authHeaders = req.headers.authorization; if (authHeaders && (authHeaders as string).split(" ")[1]) { const token = (authHeaders as string).split(" ")[1]; - const decoded: any = jwt.verify(token, SECRET); + const decoded: any = jwt.verify(token, JWT_SECRET_KEY); const _user = await this.redisCacheService.get(decoded.id); if (_user) { diff --git a/src/shared/middleware/user.decorator.ts b/src/shared/middleware/user.decorator.ts index f6748e4..b27c03b 100644 --- a/src/shared/middleware/user.decorator.ts +++ b/src/shared/middleware/user.decorator.ts @@ -1,6 +1,7 @@ import { createParamDecorator, ExecutionContext } from "@nestjs/common"; -import { SECRET } from "../../config"; import * as jwt from "jsonwebtoken"; + +import { JWT_SECRET_KEY } from "../../configs"; import { CurrentUser } from "../../user/core/interfaces/user.interface"; export const User = createParamDecorator((data: any, ctx: ExecutionContext) => { @@ -15,7 +16,7 @@ export const User = createParamDecorator((data: any, ctx: ExecutionContext) => { ? (req.headers.authorization as string).split(" ") : null; if (token && token[1]) { - const decoded: CurrentUser = jwt.verify(token[1], SECRET); + const decoded: CurrentUser = jwt.verify(token[1], JWT_SECRET_KEY); return !!data ? decoded[data] : decoded; } }); diff --git a/src/tag/tag.module.ts b/src/tag/tag.module.ts index cc0389d..9a0e810 100644 --- a/src/tag/tag.module.ts +++ b/src/tag/tag.module.ts @@ -1,6 +1,6 @@ import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../config"; +import { READ_CONNECTION } from "../configs"; import { UserModule } from "../user/user.module"; import { TagController } from "./tag.controller"; import { TagEntity } from "./core/entities/tag.entity"; diff --git a/src/tag/tag.service.ts b/src/tag/tag.service.ts index 9d68902..b4d4f7f 100644 --- a/src/tag/tag.service.ts +++ b/src/tag/tag.service.ts @@ -1,7 +1,7 @@ import { Injectable } from "@nestjs/common"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../config"; +import { READ_CONNECTION } from "../configs"; import { TagEntity } from "./core/entities/tag.entity"; import { TagRO } from "./core/interfaces/tag.interface"; diff --git a/src/user/application/commands/command.module.ts b/src/user/application/commands/command.module.ts index c35a950..9397f6b 100644 --- a/src/user/application/commands/command.module.ts +++ b/src/user/application/commands/command.module.ts @@ -3,7 +3,7 @@ import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; import { CommandHandlers } from "."; -import { WRITE_CONNECTION } from "../../../config"; +import { WRITE_CONNECTION } from "../../../configs"; import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; import { UserEntity } from "../../core"; import { UserService } from "../services/user.service"; diff --git a/src/user/application/commands/handlers/create-user.handler.ts b/src/user/application/commands/handlers/create-user.handler.ts index 338a5d6..5798bc3 100644 --- a/src/user/application/commands/handlers/create-user.handler.ts +++ b/src/user/application/commands/handlers/create-user.handler.ts @@ -3,7 +3,7 @@ import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { validate } from "class-validator"; import { getRepository, Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { USER_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../core/entities/user.entity"; diff --git a/src/user/application/commands/handlers/update-user.handler.ts b/src/user/application/commands/handlers/update-user.handler.ts index a0be96e..94665d3 100644 --- a/src/user/application/commands/handlers/update-user.handler.ts +++ b/src/user/application/commands/handlers/update-user.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../config"; +import { WRITE_CONNECTION } from "../../../../configs"; import { PublisherService } from "../../../../rabbitmq/publisher.service"; import { USER_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; import { UserEntity } from "../../../core/entities/user.entity"; diff --git a/src/user/application/events/event.module.ts b/src/user/application/events/event.module.ts index 4b9c93c..13161e9 100644 --- a/src/user/application/events/event.module.ts +++ b/src/user/application/events/event.module.ts @@ -1,7 +1,7 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../configs"; import { UserEntity } from "../../core"; import { EventHandlers } from "."; diff --git a/src/user/application/events/handlers/user-created.handler.ts b/src/user/application/events/handlers/user-created.handler.ts index fb2aaff..f7e39a9 100644 --- a/src/user/application/events/handlers/user-created.handler.ts +++ b/src/user/application/events/handlers/user-created.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { UserEntity } from "../../../core/entities/user.entity"; import { UserCreatedEvent } from "../impl"; diff --git a/src/user/application/events/handlers/user-updated.handler.ts b/src/user/application/events/handlers/user-updated.handler.ts index 045554f..d1a8a00 100644 --- a/src/user/application/events/handlers/user-updated.handler.ts +++ b/src/user/application/events/handlers/user-updated.handler.ts @@ -3,7 +3,7 @@ import { IEventHandler } from "@nestjs/cqrs"; import { EventsHandler } from "@nestjs/cqrs/dist/decorators/events-handler.decorator"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { UserEntity } from "../../../core/entities/user.entity"; import { UserUpdatedEvent } from "../impl"; diff --git a/src/user/application/queries/handlers/find-user-by-email.handler.ts b/src/user/application/queries/handlers/find-user-by-email.handler.ts index e86d755..d33e4d3 100644 --- a/src/user/application/queries/handlers/find-user-by-email.handler.ts +++ b/src/user/application/queries/handlers/find-user-by-email.handler.ts @@ -1,7 +1,7 @@ import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { RedisService } from "../../../../redis/redis.service"; import { UserEntity } from "../../../core/entities/user.entity"; import { UserRO } from "../../../core/interfaces/user.interface"; diff --git a/src/user/application/queries/handlers/find-user-by-id.handler.ts b/src/user/application/queries/handlers/find-user-by-id.handler.ts index 0295e4d..67258ae 100644 --- a/src/user/application/queries/handlers/find-user-by-id.handler.ts +++ b/src/user/application/queries/handlers/find-user-by-id.handler.ts @@ -2,7 +2,7 @@ import { HttpException, HttpStatus } from "@nestjs/common"; import { IQueryHandler, QueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { RedisService } from "../../../../redis/redis.service"; import { UserEntity } from "../../../core/entities/user.entity"; import { UserRO } from "../../../core/interfaces/user.interface"; diff --git a/src/user/application/queries/handlers/login.handler.ts b/src/user/application/queries/handlers/login.handler.ts index dfd0ed2..d12061d 100644 --- a/src/user/application/queries/handlers/login.handler.ts +++ b/src/user/application/queries/handlers/login.handler.ts @@ -3,7 +3,7 @@ import { QueryHandler, IQueryHandler } from "@nestjs/cqrs"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; import * as argon2 from "argon2"; -import { READ_CONNECTION } from "../../../../config"; +import { READ_CONNECTION } from "../../../../configs"; import { LoginUserDto } from "../../../core/dto"; import { UserEntity } from "../../../core/entities/user.entity"; import { UserRO } from "../../../core/interfaces/user.interface"; diff --git a/src/user/application/queries/query.module.ts b/src/user/application/queries/query.module.ts index de4cee7..5dcdd40 100644 --- a/src/user/application/queries/query.module.ts +++ b/src/user/application/queries/query.module.ts @@ -3,7 +3,7 @@ import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; import { QueryHandlers } from "."; -import { READ_CONNECTION } from "../../../config"; +import { READ_CONNECTION } from "../../../configs"; import { UserEntity } from "../../core"; import { UserService } from "../services/user.service"; import { RedisModule } from "../../../redis/redis.module"; diff --git a/src/user/application/services/user.service.ts b/src/user/application/services/user.service.ts index 435e638..1a60a33 100644 --- a/src/user/application/services/user.service.ts +++ b/src/user/application/services/user.service.ts @@ -1,8 +1,9 @@ import { Injectable } from "@nestjs/common"; -import { SECRET } from "../../../config"; -import { UserEntity } from "../../core/entities/user.entity"; const jwt = require("jsonwebtoken"); +import { JWT_SECRET_KEY } from "../../../configs"; +import { UserEntity } from "../../core/entities/user.entity"; + @Injectable() export class UserService { constructor() {} @@ -19,7 +20,7 @@ export class UserService { email: user.email, exp: exp.getTime() / 1000, }, - SECRET + JWT_SECRET_KEY ); } From 17bc3bef4579e12fff6b4ad8afb208578237dce9 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Sun, 15 Oct 2023 09:42:22 +0700 Subject: [PATCH 17/28] update: enhance folder structure --- .../{ => projections}/article.projection.ts | 10 +++++----- src/article/application/projections/index.ts | 1 + src/article/article.module.ts | 2 +- src/main.ts | 6 +++--- src/profile/application/projections/index.ts | 1 + .../{ => projections}/profile.projection.ts | 12 ++++++------ src/profile/profile.module.ts | 2 +- src/user/application/projections/index.ts | 1 + .../application/{ => projections}/user.projection.ts | 11 ++++++----- src/user/user.module.ts | 2 +- 10 files changed, 26 insertions(+), 22 deletions(-) rename src/article/application/{ => projections}/article.projection.ts (86%) create mode 100644 src/article/application/projections/index.ts create mode 100644 src/profile/application/projections/index.ts rename src/profile/application/{ => projections}/profile.projection.ts (67%) create mode 100644 src/user/application/projections/index.ts rename src/user/application/{ => projections}/user.projection.ts (71%) diff --git a/src/article/application/article.projection.ts b/src/article/application/projections/article.projection.ts similarity index 86% rename from src/article/application/article.projection.ts rename to src/article/application/projections/article.projection.ts index e9d7f97..4d6f09b 100644 --- a/src/article/application/article.projection.ts +++ b/src/article/application/projections/article.projection.ts @@ -1,10 +1,10 @@ import { Injectable } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; -import { ConsumerService } from "../../rabbitmq/consumer.service"; -import { ARTICLE_QUEUE } from "../../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "../core"; -import { MessageType } from "../core/enums/article.enum"; +import { ConsumerService } from "../../../rabbitmq/consumer.service"; +import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; +import { IMessage, IProjection } from "../../core"; +import { MessageType } from "../../core/enums/article.enum"; import { ArticleCreatedEvent, ArticleDeletedEvent, @@ -13,7 +13,7 @@ import { ArticleUpdatedEvent, CommentCreatedEvent, CommentDeletedEvent, -} from "./events"; +} from "../events"; @Injectable() export class ArticleProjection implements IProjection { diff --git a/src/article/application/projections/index.ts b/src/article/application/projections/index.ts new file mode 100644 index 0000000..7064b22 --- /dev/null +++ b/src/article/application/projections/index.ts @@ -0,0 +1 @@ +export * from "./article.projection"; diff --git a/src/article/article.module.ts b/src/article/article.module.ts index 89bd32a..d14e523 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -10,7 +10,7 @@ import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; import { RedisModule } from "../redis/redis.module"; import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; -import { ArticleProjection } from "./application/article.projection"; +import { ArticleProjection } from "./application/projections"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; diff --git a/src/main.ts b/src/main.ts index c471dfb..753cd4e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,9 +6,9 @@ import { json, urlencoded } from "express"; import * as os from "os"; import { ApplicationModule } from "./app.module"; -import { ArticleProjection } from "./article/application/article.projection"; -import { ProfileProjection } from "./profile/application/profile.projection"; -import { UserProjection } from "./user/application/user.projection"; +import { ArticleProjection } from "./article/application/projections"; +import { ProfileProjection } from "./profile/application/projections"; +import { UserProjection } from "./user/application/projections"; async function executeProjection(app: INestApplication) { const articleProjection = app.get(ArticleProjection); diff --git a/src/profile/application/projections/index.ts b/src/profile/application/projections/index.ts new file mode 100644 index 0000000..7513782 --- /dev/null +++ b/src/profile/application/projections/index.ts @@ -0,0 +1 @@ +export * from "./profile.projection"; diff --git a/src/profile/application/profile.projection.ts b/src/profile/application/projections/profile.projection.ts similarity index 67% rename from src/profile/application/profile.projection.ts rename to src/profile/application/projections/profile.projection.ts index 7144494..ee65d9d 100644 --- a/src/profile/application/profile.projection.ts +++ b/src/profile/application/projections/profile.projection.ts @@ -1,12 +1,12 @@ import { Injectable } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; -import { ConsumerService } from "../../rabbitmq/consumer.service"; -import { PROFILE_QUEUE } from "../../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "../core"; -import { FollowsEntity } from "../core/entities/follows.entity"; -import { MessageType } from "../core/enums/profile.enum"; -import { ProfileFollowedEvent, ProfileUnFollowedEvent } from "./events"; +import { ConsumerService } from "../../../rabbitmq/consumer.service"; +import { PROFILE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; +import { IMessage, IProjection } from "../../core"; +import { FollowsEntity } from "../../core/entities/follows.entity"; +import { MessageType } from "../../core/enums/profile.enum"; +import { ProfileFollowedEvent, ProfileUnFollowedEvent } from "../events"; @Injectable() export class ProfileProjection implements IProjection { diff --git a/src/profile/profile.module.ts b/src/profile/profile.module.ts index 6ff68c2..dc42240 100644 --- a/src/profile/profile.module.ts +++ b/src/profile/profile.module.ts @@ -11,7 +11,7 @@ import { UserModule } from "../user/user.module"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { ProfileController } from "./presentation/profile.controller"; -import { ProfileProjection } from "./application/profile.projection"; +import { ProfileProjection } from "./application/projections"; import { ProfileService } from "./application/services/profile.service"; import { QueryModule } from "./application/queries/query.module"; import { RedisModule } from "../redis/redis.module"; diff --git a/src/user/application/projections/index.ts b/src/user/application/projections/index.ts new file mode 100644 index 0000000..c7d370d --- /dev/null +++ b/src/user/application/projections/index.ts @@ -0,0 +1 @@ +export * from "./user.projection"; diff --git a/src/user/application/user.projection.ts b/src/user/application/projections/user.projection.ts similarity index 71% rename from src/user/application/user.projection.ts rename to src/user/application/projections/user.projection.ts index 801744c..8bb599f 100644 --- a/src/user/application/user.projection.ts +++ b/src/user/application/projections/user.projection.ts @@ -1,10 +1,11 @@ import { Injectable } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; -import { ConsumerService } from "../../rabbitmq/consumer.service"; -import { USER_QUEUE } from "../../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "../core"; -import { MessageType } from "../core/enums/user.enum"; -import { UserCreatedEvent, UserUpdatedEvent } from "./events"; + +import { ConsumerService } from "../../../rabbitmq/consumer.service"; +import { USER_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; +import { IMessage, IProjection } from "../../core"; +import { MessageType } from "../../core/enums/user.enum"; +import { UserCreatedEvent, UserUpdatedEvent } from "../events"; @Injectable() export class UserProjection implements IProjection { diff --git a/src/user/user.module.ts b/src/user/user.module.ts index 3de6eac..8bd313f 100644 --- a/src/user/user.module.ts +++ b/src/user/user.module.ts @@ -13,7 +13,7 @@ import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; import { UserService } from "./application/services/user.service"; -import { UserProjection } from "./application/user.projection"; +import { UserProjection } from "./application/projections"; import { UserController } from "./presentation/user.controller"; @Module({ From e0f18cf9df6ec43679d6ef8edcd60b10cbd960bf Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 13 Oct 2023 15:14:29 +0700 Subject: [PATCH 18/28] bug: wrong import file path --- src/main.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main.ts b/src/main.ts index 753cd4e..c471dfb 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,9 +6,9 @@ import { json, urlencoded } from "express"; import * as os from "os"; import { ApplicationModule } from "./app.module"; -import { ArticleProjection } from "./article/application/projections"; -import { ProfileProjection } from "./profile/application/projections"; -import { UserProjection } from "./user/application/projections"; +import { ArticleProjection } from "./article/application/article.projection"; +import { ProfileProjection } from "./profile/application/profile.projection"; +import { UserProjection } from "./user/application/user.projection"; async function executeProjection(app: INestApplication) { const articleProjection = app.get(ArticleProjection); From d9cfbca1d09dacac6e7b846643443cbe475da37a Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Mon, 16 Oct 2023 09:39:21 +0700 Subject: [PATCH 19/28] update: enhance redis-config for external dev env --- docker-compose.yaml | 30 ++++++++++++++++++++++-------- src/redis/redis.module.ts | 6 ++++++ 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index ed1bfa7..8942c85 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -14,10 +14,10 @@ services: - rabbitmq - redis env_file: - - .env - environment: - - NODE_ENV=staging - - DATABASE_HOST=host.docker.internal + - .env.docker + networks: + - social-network + social-api-2: build: context: . @@ -31,10 +31,9 @@ services: - rabbitmq - redis env_file: - - .env - environment: - - NODE_ENV=staging - - DATABASE_HOST=host.docker.internal + - .env.docker + networks: + - social-network db: container_name: social-postgres @@ -46,17 +45,26 @@ services: - /data/postgres/ ports: - 5432:5432 + networks: + - social-network + rabbitmq: container_name: social-rabbitmq image: rabbitmq:3-management ports: - "15672:15672" - "5672:5672" + networks: + - social-network + redis: container_name: social-redis image: "redis:alpine" ports: - "6379:6379" + networks: + - social-network + nginx: container_name: social-nginx build: ./nginx @@ -65,3 +73,9 @@ services: depends_on: - social-api-1 - social-api-2 + networks: + - social-network + +networks: + social-network: + driver: bridge diff --git a/src/redis/redis.module.ts b/src/redis/redis.module.ts index e00a096..44d5c13 100644 --- a/src/redis/redis.module.ts +++ b/src/redis/redis.module.ts @@ -7,6 +7,12 @@ import { RedisService } from "./redis.service"; { provide: "REDIS_CLIENT", useFactory: () => { + if (process.env.NODE_ENV !== "development") { + return new Redis({ + host: process.env.REDIS_HOST, + port: Number(process.env.REDIS_PORT), + }); + } return new Redis(process.env.REDIS_URL); }, }, From a2a141d5dc3acbeb46382013d471b3c2e3290733 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Mon, 16 Oct 2023 23:05:43 +0700 Subject: [PATCH 20/28] update: migrate to hybrid app --- package.json | 2 + .../presentation/article.controller.ts | 212 ------------------ src/configs/index.ts | 24 ++ src/main.ts | 43 +++- yarn.lock | 31 +++ 5 files changed, 95 insertions(+), 217 deletions(-) delete mode 100644 src/article/presentation/article.controller.ts diff --git a/package.json b/package.json index a754dbf..bcb3126 100644 --- a/package.json +++ b/package.json @@ -29,11 +29,13 @@ "@nestjs/config": "^2.2.0", "@nestjs/core": "^7.0.5", "@nestjs/cqrs": "^9.0.1", + "@nestjs/microservices": "7.2", "@nestjs/platform-express": "^7.0.5", "@nestjs/swagger": "^4.4.0", "@nestjs/testing": "^7.0.5", "@nestjs/typeorm": "^7.0.0", "@nestjs/websockets": "^7.0.5", + "amqp-connection-manager": "^4.1.14", "amqplib": "^0.10.3", "argon2": "^0.26.2", "aws-sdk": "^2.1301.0", diff --git a/src/article/presentation/article.controller.ts b/src/article/presentation/article.controller.ts deleted file mode 100644 index cab8905..0000000 --- a/src/article/presentation/article.controller.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { - Body, - Controller, - Delete, - Get, - Param, - Post, - Put, - Query, -} from "@nestjs/common"; -import { CommandBus, QueryBus } from "@nestjs/cqrs"; -import { - ApiBearerAuth, - ApiBody, - ApiOperation, - ApiParam, - ApiResponse, - ApiTags, -} from "@nestjs/swagger"; -import { User } from "../../shared/middleware/user.decorator"; -import { - CreateArticleCommand, - CreateCommentCommand, - DeleteArticleCommand, - DeleteCommentCommand, - FavoriteArticleCommand, - UnFavoriteArticleCommand, - UpdateArticleCommand, -} from "../application/commands"; -import { ArticleRO, ArticlesRO, CommentsRO } from "../core"; -import { - ArticleFilters, - CreateArticleDto, - CreateCommentDto, -} from "../core/dto"; -import { - FindAllArticleQuery, - FindCommentQuery, - FindFeedArticleQuery, - FindOneArticleQuery, -} from "../application/queries"; - -@ApiBearerAuth() -@ApiTags("articles") -@Controller("articles") -export class ArticleController { - constructor( - private readonly commandBus: CommandBus, - private readonly queryBus: QueryBus - ) {} - - @ApiOperation({ summary: "Get all articles" }) - @ApiResponse({ status: 200, description: "Return all articles." }) - @Get() - async findAll( - @User("id") userId: number, - @Query() query: ArticleFilters - ): Promise { - return this.queryBus.execute(new FindAllArticleQuery(userId, query)); - } - - @ApiOperation({ summary: "Get article feed" }) - @ApiResponse({ status: 200, description: "Return article feed." }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Get("feed") - async getFeed( - @User("id") userId: number, - @Query() query: ArticleFilters - ): Promise { - return this.queryBus.execute(new FindFeedArticleQuery(userId, query)); - } - - @ApiOperation({ summary: "Get article by slug" }) - @ApiParam({ - name: "slug", - required: true, - schema: { oneOf: [{ type: "string" }] }, - }) - @Get(":slug") - async findOne( - @User("id") userId: number, - @Param("slug") slug - ): Promise { - return this.queryBus.execute(new FindOneArticleQuery(userId, slug)); - } - - @ApiOperation({ summary: "Get comments of article" }) - @ApiParam({ - name: "slug", - required: true, - schema: { oneOf: [{ type: "string" }] }, - }) - @Get(":slug/comments") - async findComments(@Param("slug") slug): Promise { - return this.queryBus.execute(new FindCommentQuery(slug)); - } - - @ApiOperation({ summary: "Create article" }) - @ApiResponse({ - status: 201, - description: "The article has been successfully created.", - }) - @ApiBody({ type: CreateArticleDto }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Post() - async create( - @User("id") userId: number, - @Body("article") articleData: CreateArticleDto - ): Promise { - return this.commandBus.execute( - new CreateArticleCommand(userId, articleData) - ); - } - - @ApiOperation({ summary: "Update article" }) - @ApiResponse({ - status: 201, - description: "The article has been successfully updated.", - }) - @ApiBody({ type: CreateArticleDto }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Put(":slug") - async update( - @Param() params, - @Body("article") articleData: CreateArticleDto - ): Promise { - return this.commandBus.execute( - new UpdateArticleCommand(params.slug, articleData) - ); - } - - @ApiOperation({ summary: "Delete article" }) - @ApiResponse({ - status: 201, - description: "The article has been successfully deleted.", - }) - @ApiParam({ - name: "slug", - required: true, - schema: { oneOf: [{ type: "string" }] }, - }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Delete(":slug") - async delete(@User("id") userId: number, @Param() params) { - return this.commandBus.execute( - new DeleteArticleCommand(userId, params.slug) - ); - } - - @ApiOperation({ summary: "Create comment" }) - @ApiResponse({ - status: 201, - description: "The comment has been successfully created.", - }) - @ApiBody({ type: CreateCommentDto }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Post(":slug/comments") - async createComment( - @User("id") userId, - @Param("slug") slug, - @Body("comment") commentData: CreateCommentDto - ) { - return this.commandBus.execute( - new CreateCommentCommand(userId, slug, commentData) - ); - } - - @ApiOperation({ summary: "Delete comment" }) - @ApiResponse({ - status: 201, - description: "The article has been successfully deleted.", - }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Delete(":slug/comments/:id") - async deleteComment(@User("id") userId, @Param() params): Promise { - const { slug, id: commentId } = params; - - return this.commandBus.execute( - new DeleteCommentCommand(userId, slug, commentId) - ); - } - - @ApiOperation({ summary: "Favorite article" }) - @ApiResponse({ - status: 201, - description: "The article has been successfully favorited.", - }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Post(":slug/favorite") - async favorite(@User("id") userId: number, @Param("slug") slug) { - return this.commandBus.execute(new FavoriteArticleCommand(userId, slug)); - } - - @ApiOperation({ summary: "Unfavorite article" }) - @ApiResponse({ - status: 201, - description: "The article has been successfully unfavorited.", - }) - @ApiResponse({ status: 403, description: "Forbidden." }) - @Delete(":slug/favorite") - async unFavorite(@User("id") userId: number, @Param("slug") slug) { - return this.commandBus.execute(new UnFavoriteArticleCommand(userId, slug)); - } - - // @Post("/seed") - // async seedData( - // @User("id") userId: number, - // @Body("articles") articleList: CreateArticleDto[] - // ) { - // return this.articleService.seed(userId, articleList); - // } -} diff --git a/src/configs/index.ts b/src/configs/index.ts index 155f5b3..3da9cc4 100644 --- a/src/configs/index.ts +++ b/src/configs/index.ts @@ -2,3 +2,27 @@ export const JWT_SECRET_KEY = process.env.JWT_SECRET_KEY; export const WRITE_CONNECTION = process.env.WRITE_CONNECTION; export const READ_CONNECTION = process.env.READ_CONNECTION; + +export const RABBIT_MQ_CONNECTION = "amqp://localhost:15672/"; + +// main +export const RABBIT_EXCHANGE = "SOCIAL"; + +export const ARTICLE_ROUTE_KEY = "ARTICLE_ROUTE_KEY"; +export const USER_ROUTE_KEY = "USER_ROUTE_KEY"; +export const PROFILE_ROUTE_KEY = "PROFILECLE_ROUTE_KEY"; + +export const ARTICLE_QUEUE = "ARTICLE_QUEUE"; +export const USER_QUEUE = "USER_QUEUE"; +export const PROFILE_QUEUE = "PROFILE_QUEUE"; + +// dead letter +export const RABBIT_DL_EXCHANGE = "SOCIAL_DL"; + +export const ARTICLE_DL_ROUTE_KEY = "ARTICLE_DL_ROUTE_KEY"; +export const USER_DL_ROUTE_KEY = "USER_DL_ROUTE_KEY"; +export const PROFILE_DL_ROUTE_KEY = "PROFILE_DL_ROUTE_KEY"; + +export const ARTICLE_DLQ = "ARTICLE_DLQ"; +export const USER_DLQ = "USER_DLQ"; +export const PROFILE_DLQ = "PROFILE_DLQ"; diff --git a/src/main.ts b/src/main.ts index c471dfb..0f73cd0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,14 +1,16 @@ import { INestApplication, NestApplicationOptions } from "@nestjs/common"; import { NestFactory } from "@nestjs/core"; +import { RmqOptions, Transport } from "@nestjs/microservices"; import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; import * as cluster from "cluster"; import { json, urlencoded } from "express"; import * as os from "os"; import { ApplicationModule } from "./app.module"; -import { ArticleProjection } from "./article/application/article.projection"; -import { ProfileProjection } from "./profile/application/profile.projection"; -import { UserProjection } from "./user/application/user.projection"; +import { ArticleProjection } from "./article/application/projections"; +import { ARTICLE_QUEUE, PROFILE_QUEUE, USER_QUEUE } from "./configs"; +import { ProfileProjection } from "./profile/application/projections"; +import { UserProjection } from "./user/application/projections"; async function executeProjection(app: INestApplication) { const articleProjection = app.get(ArticleProjection); @@ -25,7 +27,7 @@ async function bootstrap() { const numWorkers = os.cpus().length; console.log(`Master cluster setting up ${numWorkers} workers...`); - for (let i = 0; i < numWorkers; i++) { + for (let i = 0; i < 1; i++) { cluster.fork(); } @@ -51,7 +53,38 @@ async function bootstrap() { app.use(urlencoded({ extended: true, limit: "50mb" })); app.setGlobalPrefix("api"); - await executeProjection(app); + app.connectMicroservice({ + transport: Transport.RMQ, + options: { + urls: [process.env.RABBITMQ_URL], + queue: ARTICLE_QUEUE, + queueOptions: { + durable: true, + }, + }, + }); + app.connectMicroservice({ + transport: Transport.RMQ, + options: { + urls: [process.env.RABBITMQ_URL], + queue: USER_QUEUE, + queueOptions: { + durable: true, + }, + }, + }); + app.connectMicroservice({ + transport: Transport.RMQ, + options: { + urls: [process.env.RABBITMQ_URL], + queue: PROFILE_QUEUE, + queueOptions: { + durable: true, + }, + }, + }); + + // await executeProjection(app); const options = new DocumentBuilder() .setTitle("Social API") diff --git a/yarn.lock b/yarn.lock index 7bd1875..4f74a1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -567,6 +567,15 @@ resolved "https://registry.yarnpkg.com/@nestjs/mapped-types/-/mapped-types-0.4.1.tgz#e7fe038f0bdda7b8f858fa79ca8516b8f9069b1a" integrity sha512-JXrw2LMangSU3vnaXWXVX47GRG1FbbNh4aVBbidDjxT3zlghsoNQY6qyWtT001MCl8lJGo8I6i6+DurBRRxl/Q== +"@nestjs/microservices@7.2": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@nestjs/microservices/-/microservices-7.2.0.tgz#d360c1c24087a8de2ac7b2d7efc20068d58e1394" + integrity sha512-uWBuM1F3LmKZAbfAmp3G1cvUKP+gUgLE7dXZMGZl+vaLPaO0+gX8z2fDhI/XJc6urywPJMPJZE2wDJcVec8OsA== + dependencies: + iterare "1.2.1" + json-socket "0.3.0" + tslib "2.0.0" + "@nestjs/platform-express@^7.0.5": version "7.6.18" resolved "https://registry.yarnpkg.com/@nestjs/platform-express/-/platform-express-7.6.18.tgz#cdf442dfd85948fc7b67bbc4007dddef83cdd4b9" @@ -889,6 +898,13 @@ ajv@^6.12.3: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +amqp-connection-manager@^4.1.14: + version "4.1.14" + resolved "https://registry.yarnpkg.com/amqp-connection-manager/-/amqp-connection-manager-4.1.14.tgz#603d20ffbc6d90fe464c2a08600c7644c9475342" + integrity sha512-1km47dIvEr0HhMUazqovSvNwIlSvDX2APdUpULaINtHpiki1O+cLRaTeXb/jav4OLtH+k6GBXx5gsKOT9kcGKQ== + dependencies: + promise-breaker "^6.0.0" + amqplib@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/amqplib/-/amqplib-0.10.3.tgz#e186a2f74521eb55ec54db6d25ae82c29c1f911a" @@ -3617,6 +3633,11 @@ json-schema@0.4.0: resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +json-socket@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/json-socket/-/json-socket-0.3.0.tgz#f4b953c685bb8e8bd0b72438f5208d9a0799ae07" + integrity sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g== + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -4658,6 +4679,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +promise-breaker@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/promise-breaker/-/promise-breaker-6.0.0.tgz#107d2b70f161236abdb4ac5a736c7eb8df489d0f" + integrity sha512-BthzO9yTPswGf7etOBiHCVuugs2N01/Q/94dIPls48z2zCmrnDptUUZzfIb+41xq0MnYZ/BzmOd6ikDR4ibNZA== + prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -5691,6 +5717,11 @@ ts-node@^8.9.1: source-map-support "^0.5.17" yn "3.1.1" +tslib@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.0.tgz#18d13fc2dce04051e20f074cc8387fd8089ce4f3" + integrity sha512-lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g== + tslib@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c" From 4f68af5ccf1cd788a941a1cb2087e1b9f5ef8e11 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Mon, 16 Oct 2023 23:05:53 +0700 Subject: [PATCH 21/28] update: add event listener --- src/article/article.module.ts | 5 +- src/article/core/enums/article.enum.ts | 10 + .../presentation/rest/article.controller.ts | 212 ++++++++++++++++++ src/article/presentation/rest/index.ts | 1 + src/article/presentation/rmq/article.rmq.ts | 71 ++++++ src/article/presentation/rmq/index.ts | 1 + 6 files changed, 298 insertions(+), 2 deletions(-) create mode 100644 src/article/presentation/rest/article.controller.ts create mode 100644 src/article/presentation/rest/index.ts create mode 100644 src/article/presentation/rmq/article.rmq.ts create mode 100644 src/article/presentation/rmq/index.ts diff --git a/src/article/article.module.ts b/src/article/article.module.ts index d14e523..a4df03c 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -15,7 +15,8 @@ import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; import { ArticleService } from "./application/services/article.service"; -import { ArticleController } from "./presentation/article.controller"; +import { ArticleController } from "./presentation/rest"; +import { ArticleRmq } from "./presentation/rmq"; @Module({ imports: [ @@ -28,7 +29,7 @@ import { ArticleController } from "./presentation/article.controller"; RedisModule, ], providers: [ArticleService, ArticleProjection], - controllers: [ArticleController], + controllers: [ArticleController, ArticleRmq], }) export class ArticleModule implements NestModule { public configure(consumer: MiddlewareConsumer) { diff --git a/src/article/core/enums/article.enum.ts b/src/article/core/enums/article.enum.ts index 82e977e..ec7e6c6 100644 --- a/src/article/core/enums/article.enum.ts +++ b/src/article/core/enums/article.enum.ts @@ -7,3 +7,13 @@ export enum MessageType { COMMENT_CREATED = "COMMENT_CREATED", COMMENT_DELETED = "COMMENT_DELETED", } + +export enum MessageCmd { + ARTICLE_CREATED = "ARTICLE_CREATED", + ARTICLE_UPDATED = "ARTICLE_UPDATED", + ARTICLE_DELETED = "ARTICLE_DELETED", + ARTICLE_FAVORITED = "ARTICLE_FAVORITED", + ARTICLE_UNFAVORITED = "ARTICLE_UNFAVORITED", + COMMENT_CREATED = "COMMENT_CREATED", + COMMENT_DELETED = "COMMENT_DELETED", +} diff --git a/src/article/presentation/rest/article.controller.ts b/src/article/presentation/rest/article.controller.ts new file mode 100644 index 0000000..adeae8b --- /dev/null +++ b/src/article/presentation/rest/article.controller.ts @@ -0,0 +1,212 @@ +import { + Body, + Controller, + Delete, + Get, + Param, + Post, + Put, + Query, +} from "@nestjs/common"; +import { CommandBus, QueryBus } from "@nestjs/cqrs"; +import { + ApiBearerAuth, + ApiBody, + ApiOperation, + ApiParam, + ApiResponse, + ApiTags, +} from "@nestjs/swagger"; +import { User } from "../../../shared/middleware/user.decorator"; +import { + CreateArticleCommand, + CreateCommentCommand, + DeleteArticleCommand, + DeleteCommentCommand, + FavoriteArticleCommand, + UnFavoriteArticleCommand, + UpdateArticleCommand, +} from "../../application/commands"; +import { ArticleRO, ArticlesRO, CommentsRO } from "../../core"; +import { + ArticleFilters, + CreateArticleDto, + CreateCommentDto, +} from "../../core/dto"; +import { + FindAllArticleQuery, + FindCommentQuery, + FindFeedArticleQuery, + FindOneArticleQuery, +} from "../../application/queries"; + +@ApiBearerAuth() +@ApiTags("articles") +@Controller("articles") +export class ArticleController { + constructor( + private readonly commandBus: CommandBus, + private readonly queryBus: QueryBus + ) {} + + @ApiOperation({ summary: "Get all articles" }) + @ApiResponse({ status: 200, description: "Return all articles." }) + @Get() + async findAll( + @User("id") userId: number, + @Query() query: ArticleFilters + ): Promise { + return this.queryBus.execute(new FindAllArticleQuery(userId, query)); + } + + @ApiOperation({ summary: "Get article feed" }) + @ApiResponse({ status: 200, description: "Return article feed." }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Get("feed") + async getFeed( + @User("id") userId: number, + @Query() query: ArticleFilters + ): Promise { + return this.queryBus.execute(new FindFeedArticleQuery(userId, query)); + } + + @ApiOperation({ summary: "Get article by slug" }) + @ApiParam({ + name: "slug", + required: true, + schema: { oneOf: [{ type: "string" }] }, + }) + @Get(":slug") + async findOne( + @User("id") userId: number, + @Param("slug") slug + ): Promise { + return this.queryBus.execute(new FindOneArticleQuery(userId, slug)); + } + + @ApiOperation({ summary: "Get comments of article" }) + @ApiParam({ + name: "slug", + required: true, + schema: { oneOf: [{ type: "string" }] }, + }) + @Get(":slug/comments") + async findComments(@Param("slug") slug): Promise { + return this.queryBus.execute(new FindCommentQuery(slug)); + } + + @ApiOperation({ summary: "Create article" }) + @ApiResponse({ + status: 201, + description: "The article has been successfully created.", + }) + @ApiBody({ type: CreateArticleDto }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Post() + async create( + @User("id") userId: number, + @Body("article") articleData: CreateArticleDto + ): Promise { + return this.commandBus.execute( + new CreateArticleCommand(userId, articleData) + ); + } + + @ApiOperation({ summary: "Update article" }) + @ApiResponse({ + status: 201, + description: "The article has been successfully updated.", + }) + @ApiBody({ type: CreateArticleDto }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Put(":slug") + async update( + @Param() params, + @Body("article") articleData: CreateArticleDto + ): Promise { + return this.commandBus.execute( + new UpdateArticleCommand(params.slug, articleData) + ); + } + + @ApiOperation({ summary: "Delete article" }) + @ApiResponse({ + status: 201, + description: "The article has been successfully deleted.", + }) + @ApiParam({ + name: "slug", + required: true, + schema: { oneOf: [{ type: "string" }] }, + }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Delete(":slug") + async delete(@User("id") userId: number, @Param() params) { + return this.commandBus.execute( + new DeleteArticleCommand(userId, params.slug) + ); + } + + @ApiOperation({ summary: "Create comment" }) + @ApiResponse({ + status: 201, + description: "The comment has been successfully created.", + }) + @ApiBody({ type: CreateCommentDto }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Post(":slug/comments") + async createComment( + @User("id") userId, + @Param("slug") slug, + @Body("comment") commentData: CreateCommentDto + ) { + return this.commandBus.execute( + new CreateCommentCommand(userId, slug, commentData) + ); + } + + @ApiOperation({ summary: "Delete comment" }) + @ApiResponse({ + status: 201, + description: "The article has been successfully deleted.", + }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Delete(":slug/comments/:id") + async deleteComment(@User("id") userId, @Param() params): Promise { + const { slug, id: commentId } = params; + + return this.commandBus.execute( + new DeleteCommentCommand(userId, slug, commentId) + ); + } + + @ApiOperation({ summary: "Favorite article" }) + @ApiResponse({ + status: 201, + description: "The article has been successfully favorited.", + }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Post(":slug/favorite") + async favorite(@User("id") userId: number, @Param("slug") slug) { + return this.commandBus.execute(new FavoriteArticleCommand(userId, slug)); + } + + @ApiOperation({ summary: "Unfavorite article" }) + @ApiResponse({ + status: 201, + description: "The article has been successfully unfavorited.", + }) + @ApiResponse({ status: 403, description: "Forbidden." }) + @Delete(":slug/favorite") + async unFavorite(@User("id") userId: number, @Param("slug") slug) { + return this.commandBus.execute(new UnFavoriteArticleCommand(userId, slug)); + } + + // @Post("/seed") + // async seedData( + // @User("id") userId: number, + // @Body("articles") articleList: CreateArticleDto[] + // ) { + // return this.articleService.seed(userId, articleList); + // } +} diff --git a/src/article/presentation/rest/index.ts b/src/article/presentation/rest/index.ts new file mode 100644 index 0000000..9a4045f --- /dev/null +++ b/src/article/presentation/rest/index.ts @@ -0,0 +1 @@ +export * from "./article.controller"; diff --git a/src/article/presentation/rmq/article.rmq.ts b/src/article/presentation/rmq/article.rmq.ts new file mode 100644 index 0000000..fc466a8 --- /dev/null +++ b/src/article/presentation/rmq/article.rmq.ts @@ -0,0 +1,71 @@ +import { Injectable, Logger } from "@nestjs/common"; +import { EventBus } from "@nestjs/cqrs"; + +import { ConsumerService } from "../../../rabbitmq/consumer.service"; +import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; +import { ArticleEntity, IMessage, IProjection } from "../../core"; +import { MessageCmd, MessageType } from "../../core/enums/article.enum"; +import { + ArticleCreatedEvent, + ArticleDeletedEvent, + ArticleFavoritedEvent, + ArticleUnFavoritedEvent, + ArticleUpdatedEvent, + CommentCreatedEvent, + CommentDeletedEvent, +} from "../../application/events"; +import { MessagePattern, Payload } from "@nestjs/microservices"; + +@Injectable() +export class ArticleRmq { + constructor(private readonly eventBus: EventBus) {} + + // async handle() { + // await this.consumer.consume(ARTICLE_QUEUE, (msg: IMessage) => { + // this.handleMessage(msg); + // }); + // } + + @MessagePattern(MessageCmd.ARTICLE_CREATED) + async articleCreated(@Payload() data: ArticleEntity) { + Logger.log({ data }); + + return; + + this.eventBus.publish(new ArticleCreatedEvent(data)); + } + + private async handleMessage({ type, payload }: IMessage) { + switch (type) { + case MessageType.ARTICLE_CREATED: + this.eventBus.publish(new ArticleCreatedEvent(payload.article)); + break; + case MessageType.ARTICLE_UPDATED: + this.eventBus.publish(new ArticleUpdatedEvent(payload.article)); + break; + case MessageType.ARTICLE_DELETED: + this.eventBus.publish( + new ArticleDeletedEvent(payload.userId, payload.slug) + ); + break; + case MessageType.ARTICLE_FAVORITED: + this.eventBus.publish( + new ArticleFavoritedEvent(payload.user, payload.article) + ); + break; + case MessageType.ARTICLE_UNFAVORITED: + this.eventBus.publish( + new ArticleUnFavoritedEvent(payload.user, payload.article) + ); + break; + case MessageType.COMMENT_CREATED: + this.eventBus.publish(new CommentCreatedEvent(payload.comment)); + break; + case MessageType.COMMENT_DELETED: + this.eventBus.publish(new CommentDeletedEvent(payload.comment)); + break; + default: + break; + } + } +} diff --git a/src/article/presentation/rmq/index.ts b/src/article/presentation/rmq/index.ts new file mode 100644 index 0000000..816a3e0 --- /dev/null +++ b/src/article/presentation/rmq/index.ts @@ -0,0 +1 @@ +export * from "./article.rmq"; From 1334602eb3abda7b482e4fe38da48874bc05873f Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 10:17:01 +0700 Subject: [PATCH 22/28] feat: apply hybrid app for article-module --- .../application/commands/command.module.ts | 2 +- .../handlers/create-article.handler.ts | 32 ++++--- .../handlers/create-comment.handler.ts | 34 +++---- .../handlers/delete-article.handler.ts | 29 +++--- .../handlers/delete-comment.handler.ts | 35 ++++--- .../handlers/favorite-article.handler.ts | 38 ++++---- .../handlers/unfavorite-article.handler.ts | 37 ++++---- .../handlers/update-article.handler.ts | 33 ++++--- src/article/application/services/index.ts | 1 + src/article/article.module.ts | 2 +- .../core/interfaces/article.interface.ts | 28 +++++- src/article/presentation/rmq/article.rmq.ts | 94 +++++++++---------- src/configs/index.ts | 4 + src/main.ts | 26 ++--- src/rabbitmq/rabbitmq.module.ts | 54 ++++++++++- 15 files changed, 262 insertions(+), 187 deletions(-) create mode 100644 src/article/application/services/index.ts diff --git a/src/article/application/commands/command.module.ts b/src/article/application/commands/command.module.ts index 6769986..a3f93a4 100644 --- a/src/article/application/commands/command.module.ts +++ b/src/article/application/commands/command.module.ts @@ -2,7 +2,7 @@ import { Module } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { TypeOrmModule } from "@nestjs/typeorm"; -import { CommandHandlers } from "."; +import { CommandHandlers } from "./index"; import { WRITE_CONNECTION } from "../../../configs"; import { FollowsEntity } from "../../../profile/core/entities/follows.entity"; import { RabbitMqModule } from "../../../rabbitmq/rabbitmq.module"; diff --git a/src/article/application/commands/handlers/create-article.handler.ts b/src/article/application/commands/handlers/create-article.handler.ts index 8aea40c..8e3de35 100644 --- a/src/article/application/commands/handlers/create-article.handler.ts +++ b/src/article/application/commands/handlers/create-article.handler.ts @@ -1,13 +1,16 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; + +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; import { ArticleEntity } from "../../../core/entities/article.entity"; -import { MessageType } from "../../../core/enums/article.enum"; -import { ArticleRO } from "../../../core/interfaces/article.interface"; +import { MessageCmd } from "../../../core/enums/article.enum"; +import { + ArticleRO, + IPayloadArticleCreated, +} from "../../../core/interfaces/article.interface"; import { ArticleService } from "../../services/article.service"; import { CreateArticleCommand } from "../impl"; @@ -18,10 +21,13 @@ export class CreateArticleCommandHandler constructor( @InjectRepository(ArticleEntity, WRITE_CONNECTION) private readonly articleRepository: Repository, + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy, - private readonly articleService: ArticleService, - private readonly publisher: PublisherService - ) {} + private readonly articleService: ArticleService + ) { + this.articleRmqClient.connect(); + } async execute({ userId, @@ -39,10 +45,10 @@ export class CreateArticleCommandHandler ); if (article) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.ARTICLE_CREATED, - payload: { article }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.ARTICLE_CREATED }, + { article } + ); } return { diff --git a/src/article/application/commands/handlers/create-comment.handler.ts b/src/article/application/commands/handlers/create-comment.handler.ts index 4088c5c..661667c 100644 --- a/src/article/application/commands/handlers/create-comment.handler.ts +++ b/src/article/application/commands/handlers/create-comment.handler.ts @@ -1,15 +1,14 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../../core/entities/article.entity"; -import { CommentEntity } from "../../../core/entities/comment.entity"; -import { MessageType } from "../../../core/enums/article.enum"; -import { CommentRO } from "../../../core/interfaces/article.interface"; + +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../../user/core/entities"; +import { ArticleEntity, CommentEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { CommentRO, IPayloadCommentCreated } from "../../../core/interfaces"; import { ArticleService } from "../../services/article.service"; import { CreateCommentCommand } from "../impl"; @@ -24,10 +23,13 @@ export class CreateCommentCommandHandler private readonly userRepository: Repository, @InjectRepository(CommentEntity, WRITE_CONNECTION) private readonly commentRepository: Repository, + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy, - private readonly articleService: ArticleService, - private readonly publisher: PublisherService - ) {} + private readonly articleService: ArticleService + ) { + this.articleRmqClient.connect(); + } async execute({ userId, @@ -55,10 +57,10 @@ export class CreateCommentCommandHandler await this.commentRepository.save(comment); if (comment) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.COMMENT_CREATED, - payload: { comment }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.COMMENT_CREATED }, + { comment } + ); } const commentRO = this.articleService.buildCommentRO(comment); diff --git a/src/article/application/commands/handlers/delete-article.handler.ts b/src/article/application/commands/handlers/delete-article.handler.ts index cb9dde9..68d67e6 100644 --- a/src/article/application/commands/handlers/delete-article.handler.ts +++ b/src/article/application/commands/handlers/delete-article.handler.ts @@ -1,15 +1,16 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { DeleteResult, Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; + +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; import { - CommentEntity, ArticleEntity, BlockEntity, - MessageType, + CommentEntity, + IPayloadArticleDeleted, + MessageCmd, } from "../../../core"; import { DeleteArticleCommand } from "../impl"; @@ -24,9 +25,11 @@ export class DeleteArticleCommandHandler private readonly blockRepository: Repository, @InjectRepository(CommentEntity, WRITE_CONNECTION) private readonly commentRepository: Repository, - - private readonly publisher: PublisherService - ) {} + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy + ) { + this.articleRmqClient.connect(); + } async execute({ userId, slug }: DeleteArticleCommand): Promise { try { @@ -58,10 +61,10 @@ export class DeleteArticleCommandHandler const _deleted = await this.articleRepository.delete({ slug: slug }); if (_deleted) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.ARTICLE_DELETED, - payload: { userId, slug }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.ARTICLE_DELETED }, + { userId, slug } + ); } return _deleted; diff --git a/src/article/application/commands/handlers/delete-comment.handler.ts b/src/article/application/commands/handlers/delete-comment.handler.ts index be4a8ef..e2b75a5 100644 --- a/src/article/application/commands/handlers/delete-comment.handler.ts +++ b/src/article/application/commands/handlers/delete-comment.handler.ts @@ -1,15 +1,13 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { ArticleEntity } from "../../../core/entities/article.entity"; -import { CommentEntity } from "../../../core/entities/comment.entity"; -import { MessageType } from "../../../core/enums/article.enum"; -import { ArticleRO } from "../../../core/interfaces/article.interface"; -import { ArticleService } from "../../services/article.service"; +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { ArticleEntity, CommentEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { ArticleRO, IPayloadCommentDeleted } from "../../../core/interfaces"; +import { ArticleService } from "../../services"; import { DeleteCommentCommand } from "../impl"; @CommandHandler(DeleteCommentCommand) @@ -21,10 +19,13 @@ export class DeleteCommentCommandHandler private readonly articleRepository: Repository, @InjectRepository(CommentEntity, WRITE_CONNECTION) private readonly commentRepository: Repository, + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy, - private readonly articleService: ArticleService, - private readonly publisher: PublisherService - ) {} + private readonly articleService: ArticleService + ) { + this.articleRmqClient.connect(); + } async execute({ userId, @@ -56,12 +57,10 @@ export class DeleteCommentCommandHandler article = await this.articleRepository.save(article); if (_deleted && article) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.COMMENT_DELETED, - payload: { - comment: deleteComments[0], - }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.COMMENT_DELETED }, + { comment: deleteComments[0] } + ); } return { article: this.articleService.buildArticleRO(article) }; diff --git a/src/article/application/commands/handlers/favorite-article.handler.ts b/src/article/application/commands/handlers/favorite-article.handler.ts index cf632d6..ef279b8 100644 --- a/src/article/application/commands/handlers/favorite-article.handler.ts +++ b/src/article/application/commands/handlers/favorite-article.handler.ts @@ -1,15 +1,15 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../../core/entities/article.entity"; -import { MessageType } from "../../../core/enums/article.enum"; -import { ArticleRO } from "../../../core/interfaces/article.interface"; -import { ArticleService } from "../../services/article.service"; + +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../../user/core/entities"; +import { ArticleEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { ArticleRO, IPayloadArticleFavorited } from "../../../core/interfaces"; +import { ArticleService } from "../../services"; import { FavoriteArticleCommand } from "../impl"; @CommandHandler(FavoriteArticleCommand) @@ -21,10 +21,13 @@ export class FavoriteArticleCommandHandler private readonly articleRepository: Repository, @InjectRepository(UserEntity, WRITE_CONNECTION) private readonly userRepository: Repository, + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy, - private readonly articleService: ArticleService, - private readonly publisher: PublisherService - ) {} + private readonly articleService: ArticleService + ) { + this.articleRmqClient.connect(); + } async execute({ userId, slug }: FavoriteArticleCommand): Promise { try { @@ -52,13 +55,10 @@ export class FavoriteArticleCommandHandler article = await this.articleRepository.save(article); if (_user && article) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.ARTICLE_FAVORITED, - payload: { - user, - article, - }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.ARTICLE_FAVORITED }, + { user, article } + ); } } diff --git a/src/article/application/commands/handlers/unfavorite-article.handler.ts b/src/article/application/commands/handlers/unfavorite-article.handler.ts index 53e1e57..cefeb5a 100644 --- a/src/article/application/commands/handlers/unfavorite-article.handler.ts +++ b/src/article/application/commands/handlers/unfavorite-article.handler.ts @@ -1,14 +1,15 @@ +import { Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../../../core/entities/article.entity"; -import { MessageType } from "../../../core/enums/article.enum"; -import { ArticleRO } from "../../../core/interfaces/article.interface"; -import { ArticleService } from "../../services/article.service"; + +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../../user/core/entities"; +import { ArticleEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { ArticleRO, IPayloadArticleFavorited } from "../../../core/interfaces"; +import { ArticleService } from "../../services"; import { UnFavoriteArticleCommand } from "../impl"; @CommandHandler(UnFavoriteArticleCommand) @@ -20,10 +21,13 @@ export class UnFavoriteArticleCommandHandler private readonly articleRepository: Repository, @InjectRepository(UserEntity, WRITE_CONNECTION) private readonly userRepository: Repository, + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy, - private readonly articleService: ArticleService, - private readonly publisher: PublisherService - ) {} + private readonly articleService: ArticleService + ) { + this.articleRmqClient.connect(); + } async execute({ userId, @@ -51,13 +55,10 @@ export class UnFavoriteArticleCommandHandler article = await this.articleRepository.save(article); if (_user && article) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.ARTICLE_UNFAVORITED, - payload: { - user, - article, - }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.ARTICLE_UNFAVORITED }, + { user, article } + ); } } diff --git a/src/article/application/commands/handlers/update-article.handler.ts b/src/article/application/commands/handlers/update-article.handler.ts index 07a10bd..48edf18 100644 --- a/src/article/application/commands/handlers/update-article.handler.ts +++ b/src/article/application/commands/handlers/update-article.handler.ts @@ -1,14 +1,14 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { ARTICLE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { ArticleEntity } from "../../../core/entities/article.entity"; -import { MessageType } from "../../../core/enums/article.enum"; -import { ArticleRO } from "../../../core/interfaces/article.interface"; -import { ArticleService } from "../../services/article.service"; + +import { ARTICLE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { ArticleEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { ArticleRO, IPayloadArticleUpdated } from "../../../core/interfaces"; +import { ArticleService } from "../../services"; import { UpdateArticleCommand } from "../impl"; @CommandHandler(UpdateArticleCommand) @@ -18,10 +18,13 @@ export class UpdateArticleCommandHandler constructor( @InjectRepository(ArticleEntity, WRITE_CONNECTION) private readonly articleRepository: Repository, + @Inject(ARTICLE_RMQ_CLIENT) + private readonly articleRmqClient: ClientProxy, - private readonly articleService: ArticleService, - private readonly publisher: PublisherService - ) {} + private readonly articleService: ArticleService + ) { + this.articleRmqClient.connect(); + } async execute({ slug, @@ -33,10 +36,10 @@ export class UpdateArticleCommandHandler const article = await this.articleRepository.save(updated); if (article) { - this.publisher.publish(ARTICLE_QUEUE, { - type: MessageType.ARTICLE_UPDATED, - payload: { article }, - }); + this.articleRmqClient.emit( + { cmd: MessageCmd.ARTICLE_CREATED }, + { article } + ); } return { diff --git a/src/article/application/services/index.ts b/src/article/application/services/index.ts new file mode 100644 index 0000000..258dc29 --- /dev/null +++ b/src/article/application/services/index.ts @@ -0,0 +1 @@ +export * from "./article.service"; diff --git a/src/article/article.module.ts b/src/article/article.module.ts index a4df03c..6048852 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -14,7 +14,7 @@ import { ArticleProjection } from "./application/projections"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; -import { ArticleService } from "./application/services/article.service"; +import { ArticleService } from "./application/services"; import { ArticleController } from "./presentation/rest"; import { ArticleRmq } from "./presentation/rmq"; diff --git a/src/article/core/interfaces/article.interface.ts b/src/article/core/interfaces/article.interface.ts index 0d0cac3..7d21057 100644 --- a/src/article/core/interfaces/article.interface.ts +++ b/src/article/core/interfaces/article.interface.ts @@ -1,7 +1,9 @@ -import { BlockEntity } from "../entities/block.entity"; -import { IBlock } from "./block.interface"; import { ProfileData } from "../../../profile/core/interfaces/profile.interface"; +import { UserEntity } from "../../../user/core"; import { IUser } from "../../../user/core/interfaces/user.interface"; +import { ArticleEntity } from "../entities"; +import { BlockEntity } from "../entities/block.entity"; +import { IBlock } from "./block.interface"; // export interface Comment { // id: number; @@ -63,3 +65,25 @@ export interface IComment { article?: IArticle; author?: IUser | ProfileData; } + +interface IPayloadArticleRmq { + article: ArticleEntity; +} +export interface IPayloadArticleCreated extends IPayloadArticleRmq {} +export interface IPayloadArticleUpdated extends IPayloadArticleRmq {} +export interface IPayloadArticleDeleted { + userId: number; + slug: string; +} +export interface IPayloadArticleFavorited extends IPayloadArticleRmq { + user: UserEntity; +} +export interface IPayloadArticleUnFavorited extends IPayloadArticleRmq { + user: UserEntity; +} +export interface IPayloadCommentCreated { + comment: IComment; +} +export interface IPayloadCommentDeleted { + comment: IComment; +} diff --git a/src/article/presentation/rmq/article.rmq.ts b/src/article/presentation/rmq/article.rmq.ts index fc466a8..2301c43 100644 --- a/src/article/presentation/rmq/article.rmq.ts +++ b/src/article/presentation/rmq/article.rmq.ts @@ -1,10 +1,7 @@ -import { Injectable, Logger } from "@nestjs/common"; +import { Controller } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; +import { EventPattern, Payload, Transport } from "@nestjs/microservices"; -import { ConsumerService } from "../../../rabbitmq/consumer.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { ArticleEntity, IMessage, IProjection } from "../../core"; -import { MessageCmd, MessageType } from "../../core/enums/article.enum"; import { ArticleCreatedEvent, ArticleDeletedEvent, @@ -14,58 +11,57 @@ import { CommentCreatedEvent, CommentDeletedEvent, } from "../../application/events"; -import { MessagePattern, Payload } from "@nestjs/microservices"; +import { + IPayloadArticleCreated, + IPayloadArticleDeleted, + IPayloadArticleFavorited, + IPayloadArticleUnFavorited, + IPayloadArticleUpdated, + IPayloadCommentCreated, + IPayloadCommentDeleted, +} from "../../core"; +import { MessageCmd } from "../../core/enums"; -@Injectable() +@Controller() export class ArticleRmq { constructor(private readonly eventBus: EventBus) {} - // async handle() { - // await this.consumer.consume(ARTICLE_QUEUE, (msg: IMessage) => { - // this.handleMessage(msg); - // }); - // } + @EventPattern({ cmd: MessageCmd.ARTICLE_CREATED }, Transport.RMQ) + async articleCreated(@Payload() payload: IPayloadArticleCreated) { + return this.eventBus.publish(new ArticleCreatedEvent(payload.article)); + } + + @EventPattern({ cmd: MessageCmd.ARTICLE_UPDATED }, Transport.RMQ) + async articleUpdated(@Payload() payload: IPayloadArticleUpdated) { + return this.eventBus.publish(new ArticleUpdatedEvent(payload.article)); + } + + @EventPattern({ cmd: MessageCmd.ARTICLE_DELETED }, Transport.RMQ) + async articleDeleted(@Payload() { userId, slug }: IPayloadArticleDeleted) { + return this.eventBus.publish(new ArticleDeletedEvent(userId, slug)); + } - @MessagePattern(MessageCmd.ARTICLE_CREATED) - async articleCreated(@Payload() data: ArticleEntity) { - Logger.log({ data }); + @EventPattern({ cmd: MessageCmd.ARTICLE_FAVORITED }, Transport.RMQ) + async articleFavorited(@Payload() payload: IPayloadArticleFavorited) { + return this.eventBus.publish( + new ArticleFavoritedEvent(payload.user, payload.article) + ); + } - return; + @EventPattern({ cmd: MessageCmd.ARTICLE_UNFAVORITED }, Transport.RMQ) + async articleUnFavorited(@Payload() payload: IPayloadArticleUnFavorited) { + return this.eventBus.publish( + new ArticleUnFavoritedEvent(payload.user, payload.article) + ); + } - this.eventBus.publish(new ArticleCreatedEvent(data)); + @EventPattern({ cmd: MessageCmd.COMMENT_CREATED }, Transport.RMQ) + async commentCreated(@Payload() payload: IPayloadCommentCreated) { + return this.eventBus.publish(new CommentCreatedEvent(payload.comment)); } - private async handleMessage({ type, payload }: IMessage) { - switch (type) { - case MessageType.ARTICLE_CREATED: - this.eventBus.publish(new ArticleCreatedEvent(payload.article)); - break; - case MessageType.ARTICLE_UPDATED: - this.eventBus.publish(new ArticleUpdatedEvent(payload.article)); - break; - case MessageType.ARTICLE_DELETED: - this.eventBus.publish( - new ArticleDeletedEvent(payload.userId, payload.slug) - ); - break; - case MessageType.ARTICLE_FAVORITED: - this.eventBus.publish( - new ArticleFavoritedEvent(payload.user, payload.article) - ); - break; - case MessageType.ARTICLE_UNFAVORITED: - this.eventBus.publish( - new ArticleUnFavoritedEvent(payload.user, payload.article) - ); - break; - case MessageType.COMMENT_CREATED: - this.eventBus.publish(new CommentCreatedEvent(payload.comment)); - break; - case MessageType.COMMENT_DELETED: - this.eventBus.publish(new CommentDeletedEvent(payload.comment)); - break; - default: - break; - } + @EventPattern({ cmd: MessageCmd.COMMENT_DELETED }, Transport.RMQ) + async commentDeleted(@Payload() payload: IPayloadCommentDeleted) { + return this.eventBus.publish(new CommentDeletedEvent(payload.comment)); } } diff --git a/src/configs/index.ts b/src/configs/index.ts index 3da9cc4..85125ae 100644 --- a/src/configs/index.ts +++ b/src/configs/index.ts @@ -26,3 +26,7 @@ export const PROFILE_DL_ROUTE_KEY = "PROFILE_DL_ROUTE_KEY"; export const ARTICLE_DLQ = "ARTICLE_DLQ"; export const USER_DLQ = "USER_DLQ"; export const PROFILE_DLQ = "PROFILE_DLQ"; + +export const ARTICLE_RMQ_CLIENT = "ARTICLE_RMQ_CLIENT"; +export const USER_RMQ_CLIENT = "USER_RMQ_CLIENT"; +export const PROFILE_RMQ_CLIENT = "PROFILE_RMQ_CLIENT"; diff --git a/src/main.ts b/src/main.ts index 0f73cd0..3b30481 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,4 @@ -import { INestApplication, NestApplicationOptions } from "@nestjs/common"; +import { NestApplicationOptions } from "@nestjs/common"; import { NestFactory } from "@nestjs/core"; import { RmqOptions, Transport } from "@nestjs/microservices"; import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger"; @@ -7,27 +7,14 @@ import { json, urlencoded } from "express"; import * as os from "os"; import { ApplicationModule } from "./app.module"; -import { ArticleProjection } from "./article/application/projections"; import { ARTICLE_QUEUE, PROFILE_QUEUE, USER_QUEUE } from "./configs"; -import { ProfileProjection } from "./profile/application/projections"; -import { UserProjection } from "./user/application/projections"; - -async function executeProjection(app: INestApplication) { - const articleProjection = app.get(ArticleProjection); - const userProjection = app.get(UserProjection); - const profileProjection = app.get(ProfileProjection); - - await articleProjection.handle(); - await userProjection.handle(); - await profileProjection.handle(); -} async function bootstrap() { if (cluster.isMaster) { const numWorkers = os.cpus().length; console.log(`Master cluster setting up ${numWorkers} workers...`); - for (let i = 0; i < 1; i++) { + for (let i = 0; i < numWorkers; i++) { cluster.fork(); } @@ -56,7 +43,7 @@ async function bootstrap() { app.connectMicroservice({ transport: Transport.RMQ, options: { - urls: [process.env.RABBITMQ_URL], + urls: [process.env.RABBIT_URL], queue: ARTICLE_QUEUE, queueOptions: { durable: true, @@ -66,7 +53,7 @@ async function bootstrap() { app.connectMicroservice({ transport: Transport.RMQ, options: { - urls: [process.env.RABBITMQ_URL], + urls: [process.env.RABBIT_URL], queue: USER_QUEUE, queueOptions: { durable: true, @@ -76,7 +63,7 @@ async function bootstrap() { app.connectMicroservice({ transport: Transport.RMQ, options: { - urls: [process.env.RABBITMQ_URL], + urls: [process.env.RABBIT_URL], queue: PROFILE_QUEUE, queueOptions: { durable: true, @@ -84,8 +71,6 @@ async function bootstrap() { }, }); - // await executeProjection(app); - const options = new DocumentBuilder() .setTitle("Social API") .setDescription("The Boilerplate API description") @@ -96,6 +81,7 @@ async function bootstrap() { const document = SwaggerModule.createDocument(app, options); SwaggerModule.setup("/docs", app, document); + app.startAllMicroservices(); await app.listen(8000); } } diff --git a/src/rabbitmq/rabbitmq.module.ts b/src/rabbitmq/rabbitmq.module.ts index c1b0d41..a051311 100644 --- a/src/rabbitmq/rabbitmq.module.ts +++ b/src/rabbitmq/rabbitmq.module.ts @@ -1,11 +1,56 @@ import { Module } from "@nestjs/common"; +import { ClientsModule, Transport } from "@nestjs/microservices"; import { connect, Connection } from "amqplib"; +import { + ARTICLE_QUEUE, + ARTICLE_RMQ_CLIENT, + PROFILE_RMQ_CLIENT, + USER_QUEUE, + USER_RMQ_CLIENT, +} from "../configs"; import { ConsumerService } from "./consumer.service"; import { PublisherService } from "./publisher.service"; +import { PROFILE_QUEUE } from "./rabbitmq.constants"; @Module({ - imports: [], + imports: [ + ClientsModule.register([ + { + name: ARTICLE_RMQ_CLIENT, + transport: Transport.RMQ, + options: { + urls: [process.env.RABBIT_URL], + queue: ARTICLE_QUEUE, + queueOptions: { + durable: true, + }, + }, + }, + { + name: USER_RMQ_CLIENT, + transport: Transport.RMQ, + options: { + urls: [process.env.RABBIT_URL], + queue: USER_QUEUE, + queueOptions: { + durable: true, + }, + }, + }, + { + name: PROFILE_RMQ_CLIENT, + transport: Transport.RMQ, + options: { + urls: [process.env.RABBIT_URL], + queue: PROFILE_QUEUE, + queueOptions: { + durable: true, + }, + }, + }, + ]), + ], providers: [ { provide: "RABBIT_MQ_CONNECTION", @@ -16,6 +61,11 @@ import { PublisherService } from "./publisher.service"; PublisherService, ConsumerService, ], - exports: ["RABBIT_MQ_CONNECTION", PublisherService, ConsumerService], + exports: [ + "RABBIT_MQ_CONNECTION", + PublisherService, + ConsumerService, + ClientsModule, + ], }) export class RabbitMqModule {} From 87aadb9e07fbf55f4e3f698e1f290efc0d44c1d0 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 10:18:00 +0700 Subject: [PATCH 23/28] wip --- .../projections/article.projection.ts | 64 ------------------- src/article/application/projections/index.ts | 1 - src/article/article.module.ts | 3 +- 3 files changed, 1 insertion(+), 67 deletions(-) delete mode 100644 src/article/application/projections/article.projection.ts delete mode 100644 src/article/application/projections/index.ts diff --git a/src/article/application/projections/article.projection.ts b/src/article/application/projections/article.projection.ts deleted file mode 100644 index 4d6f09b..0000000 --- a/src/article/application/projections/article.projection.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Injectable } from "@nestjs/common"; -import { EventBus } from "@nestjs/cqrs"; - -import { ConsumerService } from "../../../rabbitmq/consumer.service"; -import { ARTICLE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "../../core"; -import { MessageType } from "../../core/enums/article.enum"; -import { - ArticleCreatedEvent, - ArticleDeletedEvent, - ArticleFavoritedEvent, - ArticleUnFavoritedEvent, - ArticleUpdatedEvent, - CommentCreatedEvent, - CommentDeletedEvent, -} from "../events"; - -@Injectable() -export class ArticleProjection implements IProjection { - constructor( - private readonly consumer: ConsumerService, - private readonly eventBus: EventBus - ) {} - - async handle() { - await this.consumer.consume(ARTICLE_QUEUE, (msg: IMessage) => { - this.handleMessage(msg); - }); - } - - private async handleMessage({ type, payload }: IMessage) { - switch (type) { - case MessageType.ARTICLE_CREATED: - this.eventBus.publish(new ArticleCreatedEvent(payload.article)); - break; - case MessageType.ARTICLE_UPDATED: - this.eventBus.publish(new ArticleUpdatedEvent(payload.article)); - break; - case MessageType.ARTICLE_DELETED: - this.eventBus.publish( - new ArticleDeletedEvent(payload.userId, payload.slug) - ); - break; - case MessageType.ARTICLE_FAVORITED: - this.eventBus.publish( - new ArticleFavoritedEvent(payload.user, payload.article) - ); - break; - case MessageType.ARTICLE_UNFAVORITED: - this.eventBus.publish( - new ArticleUnFavoritedEvent(payload.user, payload.article) - ); - break; - case MessageType.COMMENT_CREATED: - this.eventBus.publish(new CommentCreatedEvent(payload.comment)); - break; - case MessageType.COMMENT_DELETED: - this.eventBus.publish(new CommentDeletedEvent(payload.comment)); - break; - default: - break; - } - } -} diff --git a/src/article/application/projections/index.ts b/src/article/application/projections/index.ts deleted file mode 100644 index 7064b22..0000000 --- a/src/article/application/projections/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./article.projection"; diff --git a/src/article/article.module.ts b/src/article/article.module.ts index 6048852..37fba45 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -10,7 +10,6 @@ import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; import { RedisModule } from "../redis/redis.module"; import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; -import { ArticleProjection } from "./application/projections"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; @@ -28,7 +27,7 @@ import { ArticleRmq } from "./presentation/rmq"; RabbitMqModule, RedisModule, ], - providers: [ArticleService, ArticleProjection], + providers: [ArticleService], controllers: [ArticleController, ArticleRmq], }) export class ArticleModule implements NestModule { From 204b81350bf8fb7006283115c2675e40a66de76f Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 10:31:21 +0700 Subject: [PATCH 24/28] feat: apply hybrid app for article-module --- src/article/core/enums/article.enum.ts | 10 ----- src/article/core/interfaces/index.ts | 1 - .../core/interfaces/projection.interface.ts | 19 ---------- .../commands/handlers/create-user.handler.ts | 37 ++++++++++--------- .../commands/handlers/update-user.handler.ts | 35 +++++++++--------- src/user/application/projections/index.ts | 1 - .../projections/user.projection.ts | 35 ------------------ src/user/application/services/index.ts | 2 + src/user/core/enums/user.enum.ts | 2 +- src/user/core/interfaces/index.ts | 1 - .../core/interfaces/projection.interface.ts | 13 ------- src/user/core/interfaces/user.interface.ts | 7 ++++ src/user/presentation/user.rmq.ts | 21 +++++++++++ src/user/user.module.ts | 8 ++-- 14 files changed, 72 insertions(+), 120 deletions(-) delete mode 100644 src/article/core/interfaces/projection.interface.ts delete mode 100644 src/user/application/projections/index.ts delete mode 100644 src/user/application/projections/user.projection.ts create mode 100644 src/user/application/services/index.ts delete mode 100644 src/user/core/interfaces/projection.interface.ts create mode 100644 src/user/presentation/user.rmq.ts diff --git a/src/article/core/enums/article.enum.ts b/src/article/core/enums/article.enum.ts index ec7e6c6..3aa915e 100644 --- a/src/article/core/enums/article.enum.ts +++ b/src/article/core/enums/article.enum.ts @@ -1,13 +1,3 @@ -export enum MessageType { - ARTICLE_CREATED = "ARTICLE_CREATED", - ARTICLE_UPDATED = "ARTICLE_UPDATED", - ARTICLE_DELETED = "ARTICLE_DELETED", - ARTICLE_FAVORITED = "ARTICLE_FAVORITED", - ARTICLE_UNFAVORITED = "ARTICLE_UNFAVORITED", - COMMENT_CREATED = "COMMENT_CREATED", - COMMENT_DELETED = "COMMENT_DELETED", -} - export enum MessageCmd { ARTICLE_CREATED = "ARTICLE_CREATED", ARTICLE_UPDATED = "ARTICLE_UPDATED", diff --git a/src/article/core/interfaces/index.ts b/src/article/core/interfaces/index.ts index 2833b59..9a5f693 100644 --- a/src/article/core/interfaces/index.ts +++ b/src/article/core/interfaces/index.ts @@ -1,3 +1,2 @@ export * from "./article.interface"; export * from "./block.interface"; -export * from "./projection.interface"; diff --git a/src/article/core/interfaces/projection.interface.ts b/src/article/core/interfaces/projection.interface.ts deleted file mode 100644 index d9468d4..0000000 --- a/src/article/core/interfaces/projection.interface.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { UserEntity } from "../../../user/core/entities/user.entity"; -import { ArticleEntity } from "../entities/article.entity"; -import { MessageType } from "../enums"; -import { IComment } from "./article.interface"; - -export interface IMessage { - type: MessageType; - payload: { - article?: ArticleEntity; - user?: UserEntity; - slug?: string; - userId?: number; - comment?: IComment; - }; -} - -export interface IProjection { - handle(): Promise; -} diff --git a/src/user/application/commands/handlers/create-user.handler.ts b/src/user/application/commands/handlers/create-user.handler.ts index 5798bc3..57eedf0 100644 --- a/src/user/application/commands/handlers/create-user.handler.ts +++ b/src/user/application/commands/handlers/create-user.handler.ts @@ -1,15 +1,15 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { validate } from "class-validator"; -import { getRepository, Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { USER_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../core/entities/user.entity"; -import { MessageType } from "../../../core/enums/user.enum"; -import { UserRO } from "../../../core/interfaces/user.interface"; -import { UserService } from "../../services/user.service"; +import { Repository, getRepository } from "typeorm"; + +import { USER_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { IPayloadUserCreated, UserRO } from "../../../core/interfaces"; +import { UserService } from "../../services"; import { CreateUserCommand } from "../impl"; @CommandHandler(CreateUserCommand) @@ -19,10 +19,13 @@ export class CreateUserCommandHandler constructor( @InjectRepository(UserEntity, WRITE_CONNECTION) private readonly userRepository: Repository, + @Inject(USER_RMQ_CLIENT) + private readonly userRmqClient: ClientProxy, - private readonly userService: UserService, - private readonly publisher: PublisherService - ) {} + private readonly userService: UserService + ) { + this.userRmqClient.connect(); + } async execute({ dto }: CreateUserCommand): Promise { try { @@ -62,12 +65,10 @@ export class CreateUserCommandHandler const savedUser = await this.userRepository.save(newUser); if (savedUser) { - this.publisher.publish(USER_QUEUE, { - type: MessageType.USER_CREATED, - payload: { - user: savedUser, - }, - }); + this.userRmqClient.emit( + { cmd: MessageCmd.USER_CREATED }, + { user: savedUser } + ); } return this.userService.buildUserRO(savedUser); diff --git a/src/user/application/commands/handlers/update-user.handler.ts b/src/user/application/commands/handlers/update-user.handler.ts index 94665d3..43619d4 100644 --- a/src/user/application/commands/handlers/update-user.handler.ts +++ b/src/user/application/commands/handlers/update-user.handler.ts @@ -1,14 +1,14 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { USER_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../core/entities/user.entity"; -import { MessageType } from "../../../core/enums/user.enum"; -import { UserRO } from "../../../core/interfaces/user.interface"; -import { UserService } from "../../services/user.service"; + +import { USER_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; +import { IPayloadUserUpdated, UserRO } from "../../../core/interfaces"; +import { UserService } from "../../services"; import { UpdateUserCommand } from "../impl"; @CommandHandler(UpdateUserCommand) @@ -18,10 +18,13 @@ export class UpdateUserCommandHandler constructor( @InjectRepository(UserEntity, WRITE_CONNECTION) private readonly userRepository: Repository, + @Inject(USER_RMQ_CLIENT) + private readonly userRmqClient: ClientProxy, - private readonly userService: UserService, - private readonly publisher: PublisherService - ) {} + private readonly userService: UserService + ) { + this.userRmqClient.connect(); + } async execute({ id, dto }: UpdateUserCommand): Promise { try { @@ -33,12 +36,10 @@ export class UpdateUserCommandHandler const userUpdated = await this.userRepository.save(updated); if (userUpdated) { - this.publisher.publish(USER_QUEUE, { - type: MessageType.USER_UPDATED, - payload: { - user: userUpdated, - }, - }); + this.userRmqClient.emit( + { cmd: MessageCmd.USER_UPDATED }, + { user: userUpdated } + ); } return this.userService.buildUserRO(userUpdated); diff --git a/src/user/application/projections/index.ts b/src/user/application/projections/index.ts deleted file mode 100644 index c7d370d..0000000 --- a/src/user/application/projections/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./user.projection"; diff --git a/src/user/application/projections/user.projection.ts b/src/user/application/projections/user.projection.ts deleted file mode 100644 index 8bb599f..0000000 --- a/src/user/application/projections/user.projection.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Injectable } from "@nestjs/common"; -import { EventBus } from "@nestjs/cqrs"; - -import { ConsumerService } from "../../../rabbitmq/consumer.service"; -import { USER_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "../../core"; -import { MessageType } from "../../core/enums/user.enum"; -import { UserCreatedEvent, UserUpdatedEvent } from "../events"; - -@Injectable() -export class UserProjection implements IProjection { - constructor( - private readonly consumer: ConsumerService, - private readonly eventBus: EventBus - ) {} - - async handle() { - await this.consumer.consume(USER_QUEUE, (msg: IMessage) => { - this.handleMessage(msg); - }); - } - - private async handleMessage({ type, payload }: IMessage) { - switch (type) { - case MessageType.USER_CREATED: - this.eventBus.publish(new UserCreatedEvent(payload.user)); - break; - case MessageType.USER_UPDATED: - this.eventBus.publish(new UserUpdatedEvent(payload.user)); - break; - default: - break; - } - } -} diff --git a/src/user/application/services/index.ts b/src/user/application/services/index.ts new file mode 100644 index 0000000..f4847dc --- /dev/null +++ b/src/user/application/services/index.ts @@ -0,0 +1,2 @@ +export * from "./auth.service"; +export * from "./user.service"; diff --git a/src/user/core/enums/user.enum.ts b/src/user/core/enums/user.enum.ts index e2678b3..bb5c49f 100644 --- a/src/user/core/enums/user.enum.ts +++ b/src/user/core/enums/user.enum.ts @@ -1,4 +1,4 @@ -export enum MessageType { +export enum MessageCmd { USER_CREATED = "USER_CREATED", USER_UPDATED = "USER_UPDATED", } diff --git a/src/user/core/interfaces/index.ts b/src/user/core/interfaces/index.ts index 868c20d..c17f532 100644 --- a/src/user/core/interfaces/index.ts +++ b/src/user/core/interfaces/index.ts @@ -1,2 +1 @@ export * from "./user.interface"; -export * from "./projection.interface"; diff --git a/src/user/core/interfaces/projection.interface.ts b/src/user/core/interfaces/projection.interface.ts deleted file mode 100644 index f6f6d03..0000000 --- a/src/user/core/interfaces/projection.interface.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { UserEntity } from "../entities"; -import { MessageType } from "../enums"; - -export interface IProjection { - handle(): Promise; -} - -export interface IMessage { - type: MessageType; - payload: { - user?: UserEntity; - }; -} diff --git a/src/user/core/interfaces/user.interface.ts b/src/user/core/interfaces/user.interface.ts index 70145a5..0d3473c 100644 --- a/src/user/core/interfaces/user.interface.ts +++ b/src/user/core/interfaces/user.interface.ts @@ -1,5 +1,6 @@ import { ArticleEntity } from "../../../article/core/entities/article.entity"; import { CommentEntity } from "../../../article/core/entities/comment.entity"; +import { UserEntity } from "../entities"; export interface UserData { username: string; @@ -32,3 +33,9 @@ export interface IUser { articles?: ArticleEntity[]; comments?: CommentEntity[]; } + +export interface IPayloadUserRmq { + user: UserEntity; +} +export interface IPayloadUserCreated extends IPayloadUserRmq {} +export interface IPayloadUserUpdated extends IPayloadUserRmq {} diff --git a/src/user/presentation/user.rmq.ts b/src/user/presentation/user.rmq.ts new file mode 100644 index 0000000..aeabfae --- /dev/null +++ b/src/user/presentation/user.rmq.ts @@ -0,0 +1,21 @@ +import { Controller } from "@nestjs/common"; +import { EventBus } from "@nestjs/cqrs"; +import { EventPattern, Payload, Transport } from "@nestjs/microservices"; + +import { UserCreatedEvent, UserUpdatedEvent } from "../application/events"; +import { IPayloadUserCreated, IPayloadUserUpdated, MessageCmd } from "../core"; + +@Controller() +export class UserRmq { + constructor(private readonly eventBus: EventBus) {} + + @EventPattern({ cmd: MessageCmd.USER_CREATED }, Transport.RMQ) + async userCreated(@Payload() payload: IPayloadUserCreated) { + this.eventBus.publish(new UserCreatedEvent(payload.user)); + } + + @EventPattern({ cmd: MessageCmd.USER_UPDATED }, Transport.RMQ) + async userUpdated(@Payload() payload: IPayloadUserUpdated) { + this.eventBus.publish(new UserUpdatedEvent(payload.user)); + } +} diff --git a/src/user/user.module.ts b/src/user/user.module.ts index 8bd313f..9188f77 100644 --- a/src/user/user.module.ts +++ b/src/user/user.module.ts @@ -12,9 +12,9 @@ import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; -import { UserService } from "./application/services/user.service"; -import { UserProjection } from "./application/projections"; +import { UserService } from "./application/services"; import { UserController } from "./presentation/user.controller"; +import { UserRmq } from "./presentation/user.rmq"; @Module({ imports: [ @@ -25,8 +25,8 @@ import { UserController } from "./presentation/user.controller"; RabbitMqModule, RedisModule, ], - providers: [UserService, UserProjection], - controllers: [UserController], + providers: [UserService], + controllers: [UserController, UserRmq], exports: [UserService], }) export class UserModule implements NestModule { From 680343128e0be46a858bfbaee71d1621006399b7 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 10:41:09 +0700 Subject: [PATCH 25/28] feat: apply hybrid app for profile-module --- .../handlers/follow-profile.handler.ts | 34 ++++++++--------- .../handlers/unfollow-profile.handler.ts | 36 +++++++++--------- src/profile/application/projections/index.ts | 1 - .../projections/profile.projection.ts | 38 ------------------- src/profile/core/enums/profile.enum.ts | 2 +- src/profile/core/interfaces/index.ts | 1 - .../core/interfaces/profile.interface.ts | 8 ++++ .../core/interfaces/projection.interface.ts | 14 ------- src/profile/presentation/profile.rmq.ts | 28 ++++++++++++++ src/profile/profile.module.ts | 12 +++--- 10 files changed, 78 insertions(+), 96 deletions(-) delete mode 100644 src/profile/application/projections/index.ts delete mode 100644 src/profile/application/projections/profile.projection.ts delete mode 100644 src/profile/core/interfaces/projection.interface.ts create mode 100644 src/profile/presentation/profile.rmq.ts diff --git a/src/profile/application/commands/handlers/follow-profile.handler.ts b/src/profile/application/commands/handlers/follow-profile.handler.ts index c3f9fb2..30eb337 100644 --- a/src/profile/application/commands/handlers/follow-profile.handler.ts +++ b/src/profile/application/commands/handlers/follow-profile.handler.ts @@ -1,17 +1,17 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { PROFILE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../../user/core/entities/user.entity"; -import { FollowsEntity } from "../../../core/entities/follows.entity"; -import { MessageType } from "../../../core/enums/profile.enum"; +import { PROFILE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../../user/core/entities"; +import { FollowsEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; import { + IPayloadProfileFollowed, ProfileData, ProfileRO, -} from "../../../core/interfaces/profile.interface"; +} from "../../../core/interfaces"; import { FollowProfileCommand } from "../impl"; @CommandHandler(FollowProfileCommand) @@ -23,9 +23,11 @@ export class FollowProfileCommandHandler private readonly userRepository: Repository, @InjectRepository(FollowsEntity, WRITE_CONNECTION) private readonly followsRepository: Repository, - - private readonly publisher: PublisherService - ) {} + @Inject(PROFILE_RMQ_CLIENT) + private readonly profileRmqClient: ClientProxy + ) { + this.profileRmqClient.connect(); + } async execute({ followerEmail, @@ -64,12 +66,10 @@ export class FollowProfileCommandHandler ); if (follow) { - this.publisher.publish(PROFILE_QUEUE, { - type: MessageType.PROFILE_FOLLOWED, - payload: { - follow, - }, - }); + this.profileRmqClient.emit( + { cmd: MessageCmd.PROFILE_FOLLOWED }, + { follow } + ); } } diff --git a/src/profile/application/commands/handlers/unfollow-profile.handler.ts b/src/profile/application/commands/handlers/unfollow-profile.handler.ts index 9e549d0..c3c0108 100644 --- a/src/profile/application/commands/handlers/unfollow-profile.handler.ts +++ b/src/profile/application/commands/handlers/unfollow-profile.handler.ts @@ -1,17 +1,18 @@ -import { HttpException, HttpStatus } from "@nestjs/common"; +import { HttpException, HttpStatus, Inject } from "@nestjs/common"; import { CommandHandler, ICommandHandler } from "@nestjs/cqrs"; +import { ClientProxy } from "@nestjs/microservices"; import { InjectRepository } from "@nestjs/typeorm"; import { Repository } from "typeorm"; -import { WRITE_CONNECTION } from "../../../../configs"; -import { PublisherService } from "../../../../rabbitmq/publisher.service"; -import { PROFILE_QUEUE } from "../../../../rabbitmq/rabbitmq.constants"; -import { UserEntity } from "../../../../user/core/entities/user.entity"; -import { FollowsEntity } from "../../../core/entities/follows.entity"; -import { MessageType } from "../../../core/enums/profile.enum"; + +import { PROFILE_RMQ_CLIENT, WRITE_CONNECTION } from "../../../../configs"; +import { UserEntity } from "../../../../user/core/entities"; +import { FollowsEntity } from "../../../core/entities"; +import { MessageCmd } from "../../../core/enums"; import { + IPayloadProfileUnFollowed, ProfileData, ProfileRO, -} from "../../../core/interfaces/profile.interface"; +} from "../../../core/interfaces"; import { UnFollowProfileCommand } from "../impl"; @CommandHandler(UnFollowProfileCommand) @@ -23,8 +24,8 @@ export class UnFollowProfileCommandHandler private readonly userRepository: Repository, @InjectRepository(FollowsEntity, WRITE_CONNECTION) private readonly followsRepository: Repository, - - private readonly publisher: PublisherService + @Inject(PROFILE_RMQ_CLIENT) + private readonly profileRmqClient: ClientProxy ) {} async execute({ @@ -46,19 +47,18 @@ export class UnFollowProfileCommandHandler HttpStatus.BAD_REQUEST ); } - const follow = { + const follow = new FollowsEntity({ followerId, followingId: followingUser.id, - }; + }); + const _deleted = await this.followsRepository.delete(follow); if (_deleted) { - this.publisher.publish(PROFILE_QUEUE, { - type: MessageType.PROFILE_FOLLOWED, - payload: { - follow, - }, - }); + this.profileRmqClient.emit( + { cmd: MessageCmd.PROFILE_UNFOLLOWED }, + { follow } + ); } let profile: ProfileData = { diff --git a/src/profile/application/projections/index.ts b/src/profile/application/projections/index.ts deleted file mode 100644 index 7513782..0000000 --- a/src/profile/application/projections/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./profile.projection"; diff --git a/src/profile/application/projections/profile.projection.ts b/src/profile/application/projections/profile.projection.ts deleted file mode 100644 index ee65d9d..0000000 --- a/src/profile/application/projections/profile.projection.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Injectable } from "@nestjs/common"; -import { EventBus } from "@nestjs/cqrs"; - -import { ConsumerService } from "../../../rabbitmq/consumer.service"; -import { PROFILE_QUEUE } from "../../../rabbitmq/rabbitmq.constants"; -import { IMessage, IProjection } from "../../core"; -import { FollowsEntity } from "../../core/entities/follows.entity"; -import { MessageType } from "../../core/enums/profile.enum"; -import { ProfileFollowedEvent, ProfileUnFollowedEvent } from "../events"; - -@Injectable() -export class ProfileProjection implements IProjection { - constructor( - private readonly consumer: ConsumerService, - private readonly eventBus: EventBus - ) {} - - async handle() { - await this.consumer.consume(PROFILE_QUEUE, (msg: IMessage) => { - this.handleMessage(msg); - }); - } - - private async handleMessage({ type, payload }: IMessage) { - switch (type) { - case MessageType.PROFILE_FOLLOWED: - this.eventBus.publish( - new ProfileFollowedEvent(payload.follow as FollowsEntity) - ); - break; - case MessageType.PROFILE_UNFOLLOWED: - this.eventBus.publish(new ProfileUnFollowedEvent(payload.follow)); - break; - default: - break; - } - } -} diff --git a/src/profile/core/enums/profile.enum.ts b/src/profile/core/enums/profile.enum.ts index f922188..e5ba1e4 100644 --- a/src/profile/core/enums/profile.enum.ts +++ b/src/profile/core/enums/profile.enum.ts @@ -1,4 +1,4 @@ -export enum MessageType { +export enum MessageCmd { PROFILE_FOLLOWED = "PROFILE_FOLLOWED", PROFILE_UNFOLLOWED = "PROFILE_UNFOLLOWED", } diff --git a/src/profile/core/interfaces/index.ts b/src/profile/core/interfaces/index.ts index e76d83f..fb6322e 100644 --- a/src/profile/core/interfaces/index.ts +++ b/src/profile/core/interfaces/index.ts @@ -1,2 +1 @@ export * from "./profile.interface"; -export * from "./projection.interface"; diff --git a/src/profile/core/interfaces/profile.interface.ts b/src/profile/core/interfaces/profile.interface.ts index fa206ad..7f703ee 100644 --- a/src/profile/core/interfaces/profile.interface.ts +++ b/src/profile/core/interfaces/profile.interface.ts @@ -1,3 +1,5 @@ +import { FollowsEntity } from "../entities"; + export interface ProfileData { username: string; bio: string; @@ -14,3 +16,9 @@ export interface IFollow { followerId?: number; followingId?: number; } + +export interface IPayloadProfileRmq { + follow: FollowsEntity; +} +export interface IPayloadProfileFollowed extends IPayloadProfileRmq {} +export interface IPayloadProfileUnFollowed extends IPayloadProfileRmq {} diff --git a/src/profile/core/interfaces/projection.interface.ts b/src/profile/core/interfaces/projection.interface.ts deleted file mode 100644 index 6d31245..0000000 --- a/src/profile/core/interfaces/projection.interface.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { FollowsEntity } from "../entities/follows.entity"; -import { MessageType } from "../enums"; -import { IFollow } from "./profile.interface"; - -export interface IProjection { - handle(): Promise; -} - -export interface IMessage { - type: MessageType; - payload: { - follow: FollowsEntity | IFollow; - }; -} diff --git a/src/profile/presentation/profile.rmq.ts b/src/profile/presentation/profile.rmq.ts new file mode 100644 index 0000000..b0c2296 --- /dev/null +++ b/src/profile/presentation/profile.rmq.ts @@ -0,0 +1,28 @@ +import { Controller } from "@nestjs/common"; +import { EventBus } from "@nestjs/cqrs"; +import { EventPattern, Payload, Transport } from "@nestjs/microservices"; + +import { + ProfileFollowedEvent, + ProfileUnFollowedEvent, +} from "../application/events"; +import { + IPayloadProfileFollowed, + IPayloadProfileUnFollowed, + MessageCmd, +} from "../core"; + +@Controller() +export class ProfileRmq { + constructor(private readonly eventBus: EventBus) {} + + @EventPattern({ cmd: MessageCmd.PROFILE_FOLLOWED }, Transport.RMQ) + async handleProfileFollowed(@Payload() payload: IPayloadProfileFollowed) { + return this.eventBus.publish(new ProfileFollowedEvent(payload.follow)); + } + + @EventPattern({ cmd: MessageCmd.PROFILE_UNFOLLOWED }, Transport.RMQ) + async handleProfileUnFollowed(@Payload() payload: IPayloadProfileUnFollowed) { + return this.eventBus.publish(new ProfileUnFollowedEvent(payload.follow)); + } +} diff --git a/src/profile/profile.module.ts b/src/profile/profile.module.ts index dc42240..86cbfdf 100644 --- a/src/profile/profile.module.ts +++ b/src/profile/profile.module.ts @@ -6,15 +6,15 @@ import { } from "@nestjs/common"; import { CqrsModule } from "@nestjs/cqrs"; import { RabbitMqModule } from "../rabbitmq/rabbitmq.module"; +import { RedisModule } from "../redis/redis.module"; import { AuthMiddleware } from "../shared/middleware/auth.middleware"; import { UserModule } from "../user/user.module"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; -import { ProfileController } from "./presentation/profile.controller"; -import { ProfileProjection } from "./application/projections"; -import { ProfileService } from "./application/services/profile.service"; import { QueryModule } from "./application/queries/query.module"; -import { RedisModule } from "../redis/redis.module"; +import { ProfileService } from "./application/services/profile.service"; +import { ProfileController } from "./presentation/profile.controller"; +import { ProfileRmq } from "./presentation/profile.rmq"; @Module({ imports: [ @@ -26,8 +26,8 @@ import { RedisModule } from "../redis/redis.module"; RabbitMqModule, RedisModule, ], - providers: [ProfileService, ProfileProjection], - controllers: [ProfileController], + providers: [ProfileService], + controllers: [ProfileController, ProfileRmq], exports: [], }) export class ProfileModule implements NestModule { From e17ef1891e13700346322d2d2cd77dd164b893b3 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 10:44:10 +0700 Subject: [PATCH 26/28] chore: cleanup rabbitmq-module --- src/rabbitmq/consumer.service.ts | 141 ----------------------------- src/rabbitmq/publisher.service.ts | 102 --------------------- src/rabbitmq/rabbitmq.constants.ts | 23 ----- src/rabbitmq/rabbitmq.module.ts | 22 +---- 4 files changed, 2 insertions(+), 286 deletions(-) delete mode 100644 src/rabbitmq/consumer.service.ts delete mode 100644 src/rabbitmq/publisher.service.ts delete mode 100644 src/rabbitmq/rabbitmq.constants.ts diff --git a/src/rabbitmq/consumer.service.ts b/src/rabbitmq/consumer.service.ts deleted file mode 100644 index aaa20c5..0000000 --- a/src/rabbitmq/consumer.service.ts +++ /dev/null @@ -1,141 +0,0 @@ -import { Inject, Injectable, Logger } from "@nestjs/common"; -import { Connection, Channel } from "amqplib"; -import { - ARTICLE_DLQ, - ARTICLE_DL_ROUTE_KEY, - ARTICLE_QUEUE, - PROFILE_DLQ, - PROFILE_DL_ROUTE_KEY, - PROFILE_QUEUE, - RABBIT_DL_EXCHANGE, - RABBIT_EXCHANGE, - USER_DLQ, - USER_DL_ROUTE_KEY, - USER_QUEUE, -} from "./rabbitmq.constants"; - -@Injectable() -export class ConsumerService { - private channel: Channel; - private dlChannel: Channel; - - constructor( - @Inject("RABBIT_MQ_CONNECTION") - private connection: Connection - ) { - this.init(); - } - - async init() { - this.channel = await this.connection.createChannel(); - this.dlChannel = await this.connection.createChannel(); - } - - async consume(queueName: string, callback: (msg: any) => void) { - if (this.channel) { - await this.channel.assertExchange(RABBIT_EXCHANGE, "direct", { - durable: true, - }); - await this.channel.assertQueue(queueName, { durable: true }); - this.channel.consume(queueName, async (msg) => { - if (msg !== null) { - try { - callback(JSON.parse(msg.content.toString())); - this.channel.ack(msg); - } catch (error) { - Logger.error(`Error processing message: ${error.message}`); - // Move message to its respective DLQ based on the queueName - switch (queueName) { - case ARTICLE_QUEUE: - await this.publishToDLQ(ARTICLE_DLQ, msg.content.toString()); - break; - case USER_QUEUE: - await this.publishToDLQ(USER_DLQ, msg.content.toString()); - break; - case PROFILE_QUEUE: - await this.publishToDLQ(PROFILE_DLQ, msg.content.toString()); - break; - default: - Logger.warn(`Unknown queue name: ${queueName}`); - break; - } - // Reject the message so that it is removed from the queue - this.channel.nack(msg, false, false); - } - } - }); - - Logger.log(`Started consuming messages from queue '${queueName}'`); - } - } - - private async publishToDLQ(queueName: string, message: any) { - await this.dlChannel.assertExchange(RABBIT_DL_EXCHANGE, "direct", { - durable: true, - }); - await this.channel.assertQueue(queueName, { durable: true }); - - switch (queueName) { - case ARTICLE_DLQ: - await this.channel.bindQueue( - ARTICLE_DLQ, - RABBIT_DL_EXCHANGE, - ARTICLE_DL_ROUTE_KEY - ); - this.channel.publish( - RABBIT_DL_EXCHANGE, - ARTICLE_DL_ROUTE_KEY, - Buffer.from(JSON.stringify(message)), - { - persistent: true, - } - ); - - Logger.log( - `Message type: ${message} sent to exchange ${RABBIT_DL_EXCHANGE} with route key ${ARTICLE_DL_ROUTE_KEY}` - ); - break; - case USER_DLQ: - await this.channel.bindQueue( - USER_DLQ, - RABBIT_DL_EXCHANGE, - USER_DL_ROUTE_KEY - ); - this.channel.publish( - RABBIT_DL_EXCHANGE, - USER_DL_ROUTE_KEY, - Buffer.from(JSON.stringify(message)), - { - persistent: true, - } - ); - - Logger.log( - `Message type: ${message} sent to exchange ${RABBIT_DL_EXCHANGE} with route key ${USER_DL_ROUTE_KEY}` - ); - break; - case PROFILE_DLQ: - await this.channel.bindQueue( - PROFILE_DLQ, - RABBIT_DL_EXCHANGE, - PROFILE_DL_ROUTE_KEY - ); - this.channel.publish( - RABBIT_DL_EXCHANGE, - PROFILE_DL_ROUTE_KEY, - Buffer.from(JSON.stringify(message)), - { - persistent: true, - } - ); - - Logger.log( - `Message type: ${message} sent to exchange ${RABBIT_DL_EXCHANGE} with route key ${PROFILE_DL_ROUTE_KEY}` - ); - break; - default: - Logger.warn(`Unknown queue name: ${queueName}`); - break; - } - } -} diff --git a/src/rabbitmq/publisher.service.ts b/src/rabbitmq/publisher.service.ts deleted file mode 100644 index 08fb2ac..0000000 --- a/src/rabbitmq/publisher.service.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Inject, Injectable, Logger } from "@nestjs/common"; -import { Connection, Channel } from "amqplib"; -import { - ARTICLE_DLQ, - ARTICLE_DL_ROUTE_KEY, - ARTICLE_QUEUE, - ARTICLE_ROUTE_KEY, - PROFILE_DL_ROUTE_KEY, - PROFILE_QUEUE, - PROFILE_ROUTE_KEY, - RABBIT_DL_EXCHANGE, - RABBIT_EXCHANGE, - USER_DL_ROUTE_KEY, - USER_QUEUE, - USER_ROUTE_KEY, -} from "./rabbitmq.constants"; - -@Injectable() -export class PublisherService { - private channel: Channel; - - constructor( - @Inject("RABBIT_MQ_CONNECTION") - private connection: Connection - ) { - this.connection - .createChannel() - .then((channelCreated) => (this.channel = channelCreated)); - } - - async publish(queueName: string, message: any) { - await this.channel.assertExchange(RABBIT_EXCHANGE, "direct", { - durable: true, - }); - - await this.channel.assertQueue(queueName, { - durable: true, - }); - - switch (queueName) { - case ARTICLE_QUEUE: - await this.channel.bindQueue( - ARTICLE_QUEUE, - RABBIT_EXCHANGE, - ARTICLE_ROUTE_KEY - ); - this.channel.publish( - RABBIT_EXCHANGE, - ARTICLE_ROUTE_KEY, - Buffer.from(JSON.stringify(message)), - { - persistent: true, - } - ); - - Logger.log( - `Message type: ${message.type} sent to exchange ${RABBIT_EXCHANGE} with route key ${ARTICLE_ROUTE_KEY}` - ); - break; - case USER_QUEUE: - await this.channel.bindQueue( - USER_QUEUE, - RABBIT_EXCHANGE, - USER_ROUTE_KEY - ); - this.channel.publish( - RABBIT_EXCHANGE, - USER_ROUTE_KEY, - Buffer.from(JSON.stringify(message)), - { - persistent: true, - } - ); - - Logger.log( - `Message type: ${message.type} sent to exchange ${RABBIT_EXCHANGE} with route key ${USER_ROUTE_KEY}` - ); - break; - case PROFILE_QUEUE: - await this.channel.bindQueue( - PROFILE_QUEUE, - RABBIT_EXCHANGE, - PROFILE_ROUTE_KEY - ); - this.channel.publish( - RABBIT_EXCHANGE, - PROFILE_ROUTE_KEY, - Buffer.from(JSON.stringify(message)), - { - persistent: true, - } - ); - - Logger.log( - `Message type: ${message.type} sent to exchange ${RABBIT_EXCHANGE} with route key ${PROFILE_ROUTE_KEY}` - ); - break; - default: - break; - } - } -} diff --git a/src/rabbitmq/rabbitmq.constants.ts b/src/rabbitmq/rabbitmq.constants.ts deleted file mode 100644 index 63cf24c..0000000 --- a/src/rabbitmq/rabbitmq.constants.ts +++ /dev/null @@ -1,23 +0,0 @@ -export const RABBIT_MQ_CONNECTION = "amqp://localhost:15672/"; - -// main -export const RABBIT_EXCHANGE = "SOCIAL"; - -export const ARTICLE_ROUTE_KEY = "ARTICLE_ROUTE_KEY"; -export const USER_ROUTE_KEY = "USER_ROUTE_KEY"; -export const PROFILE_ROUTE_KEY = "PROFILECLE_ROUTE_KEY"; - -export const ARTICLE_QUEUE = "ARTICLE_QUEUE"; -export const USER_QUEUE = "USER_QUEUE"; -export const PROFILE_QUEUE = "PROFILE_QUEUE"; - -// dead letter -export const RABBIT_DL_EXCHANGE = "SOCIAL_DL"; - -export const ARTICLE_DL_ROUTE_KEY = "ARTICLE_DL_ROUTE_KEY"; -export const USER_DL_ROUTE_KEY = "USER_DL_ROUTE_KEY"; -export const PROFILE_DL_ROUTE_KEY = "PROFILE_DL_ROUTE_KEY"; - -export const ARTICLE_DLQ = "ARTICLE_DLQ"; -export const USER_DLQ = "USER_DLQ"; -export const PROFILE_DLQ = "PROFILE_DLQ"; diff --git a/src/rabbitmq/rabbitmq.module.ts b/src/rabbitmq/rabbitmq.module.ts index a051311..0859f41 100644 --- a/src/rabbitmq/rabbitmq.module.ts +++ b/src/rabbitmq/rabbitmq.module.ts @@ -1,17 +1,14 @@ import { Module } from "@nestjs/common"; import { ClientsModule, Transport } from "@nestjs/microservices"; -import { connect, Connection } from "amqplib"; import { ARTICLE_QUEUE, ARTICLE_RMQ_CLIENT, + PROFILE_QUEUE, PROFILE_RMQ_CLIENT, USER_QUEUE, USER_RMQ_CLIENT, } from "../configs"; -import { ConsumerService } from "./consumer.service"; -import { PublisherService } from "./publisher.service"; -import { PROFILE_QUEUE } from "./rabbitmq.constants"; @Module({ imports: [ @@ -51,21 +48,6 @@ import { PROFILE_QUEUE } from "./rabbitmq.constants"; }, ]), ], - providers: [ - { - provide: "RABBIT_MQ_CONNECTION", - useFactory: async (): Promise => { - return connect(process.env.RABBIT_URL); - }, - }, - PublisherService, - ConsumerService, - ], - exports: [ - "RABBIT_MQ_CONNECTION", - PublisherService, - ConsumerService, - ClientsModule, - ], + exports: [ClientsModule], }) export class RabbitMqModule {} From b7b7aa0eb288c8f7265bf39fa1933e4a0c4838bb Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 10:51:03 +0700 Subject: [PATCH 27/28] chore: cleanup structure --- src/profile/application/services/index.ts | 1 + src/profile/presentation/rest/index.ts | 1 + .../presentation/{ => rest}/profile.controller.ts | 8 ++++---- src/profile/presentation/rmq/index.ts | 1 + src/profile/presentation/{ => rmq}/profile.rmq.ts | 4 ++-- src/profile/profile.module.ts | 6 +++--- src/user/presentation/rest/index.ts | 1 + .../presentation/{ => rest}/user.controller.ts | 15 +++++++++------ src/user/presentation/rmq/index.ts | 1 + src/user/presentation/{ => rmq}/user.rmq.ts | 8 ++++++-- src/user/user.module.ts | 4 ++-- 11 files changed, 31 insertions(+), 19 deletions(-) create mode 100644 src/profile/application/services/index.ts create mode 100644 src/profile/presentation/rest/index.ts rename src/profile/presentation/{ => rest}/profile.controller.ts (84%) create mode 100644 src/profile/presentation/rmq/index.ts rename src/profile/presentation/{ => rmq}/profile.rmq.ts (93%) create mode 100644 src/user/presentation/rest/index.ts rename src/user/presentation/{ => rest}/user.controller.ts (76%) create mode 100644 src/user/presentation/rmq/index.ts rename src/user/presentation/{ => rmq}/user.rmq.ts (79%) diff --git a/src/profile/application/services/index.ts b/src/profile/application/services/index.ts new file mode 100644 index 0000000..329fffa --- /dev/null +++ b/src/profile/application/services/index.ts @@ -0,0 +1 @@ +export * from "./profile.service"; diff --git a/src/profile/presentation/rest/index.ts b/src/profile/presentation/rest/index.ts new file mode 100644 index 0000000..a9e4573 --- /dev/null +++ b/src/profile/presentation/rest/index.ts @@ -0,0 +1 @@ +export * from "./profile.controller"; diff --git a/src/profile/presentation/profile.controller.ts b/src/profile/presentation/rest/profile.controller.ts similarity index 84% rename from src/profile/presentation/profile.controller.ts rename to src/profile/presentation/rest/profile.controller.ts index b5b0d05..1407d59 100644 --- a/src/profile/presentation/profile.controller.ts +++ b/src/profile/presentation/rest/profile.controller.ts @@ -2,13 +2,13 @@ import { Controller, Delete, Get, Param, Post } from "@nestjs/common"; import { CommandBus, QueryBus } from "@nestjs/cqrs"; import { ApiBearerAuth, ApiOperation, ApiTags } from "@nestjs/swagger"; -import { User } from "../../shared/middleware/user.decorator"; +import { User } from "../../../shared/middleware/user.decorator"; import { FollowProfileCommand, UnFollowProfileCommand, -} from "../application/commands"; -import { FindProfileQuery } from "../application/queries"; -import { ProfileRO } from "../core/interfaces/profile.interface"; +} from "../../application/commands"; +import { FindProfileQuery } from "../../application/queries"; +import { ProfileRO } from "../../core/interfaces/profile.interface"; @ApiBearerAuth() @ApiTags("profiles") diff --git a/src/profile/presentation/rmq/index.ts b/src/profile/presentation/rmq/index.ts new file mode 100644 index 0000000..2376fd2 --- /dev/null +++ b/src/profile/presentation/rmq/index.ts @@ -0,0 +1 @@ +export * from "./profile.rmq"; diff --git a/src/profile/presentation/profile.rmq.ts b/src/profile/presentation/rmq/profile.rmq.ts similarity index 93% rename from src/profile/presentation/profile.rmq.ts rename to src/profile/presentation/rmq/profile.rmq.ts index b0c2296..b71ab6e 100644 --- a/src/profile/presentation/profile.rmq.ts +++ b/src/profile/presentation/rmq/profile.rmq.ts @@ -5,12 +5,12 @@ import { EventPattern, Payload, Transport } from "@nestjs/microservices"; import { ProfileFollowedEvent, ProfileUnFollowedEvent, -} from "../application/events"; +} from "../../application/events"; import { IPayloadProfileFollowed, IPayloadProfileUnFollowed, MessageCmd, -} from "../core"; +} from "../../core"; @Controller() export class ProfileRmq { diff --git a/src/profile/profile.module.ts b/src/profile/profile.module.ts index 86cbfdf..eaa7efc 100644 --- a/src/profile/profile.module.ts +++ b/src/profile/profile.module.ts @@ -12,9 +12,9 @@ import { UserModule } from "../user/user.module"; import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; -import { ProfileService } from "./application/services/profile.service"; -import { ProfileController } from "./presentation/profile.controller"; -import { ProfileRmq } from "./presentation/profile.rmq"; +import { ProfileService } from "./application/services"; +import { ProfileController } from "./presentation/rest"; +import { ProfileRmq } from "./presentation/rmq"; @Module({ imports: [ diff --git a/src/user/presentation/rest/index.ts b/src/user/presentation/rest/index.ts new file mode 100644 index 0000000..5815124 --- /dev/null +++ b/src/user/presentation/rest/index.ts @@ -0,0 +1 @@ +export * from "./user.controller"; diff --git a/src/user/presentation/user.controller.ts b/src/user/presentation/rest/user.controller.ts similarity index 76% rename from src/user/presentation/user.controller.ts rename to src/user/presentation/rest/user.controller.ts index 9e9a63e..88f9186 100644 --- a/src/user/presentation/user.controller.ts +++ b/src/user/presentation/rest/user.controller.ts @@ -2,12 +2,15 @@ import { Body, Controller, Get, Post, Put, UsePipes } from "@nestjs/common"; import { CommandBus, QueryBus } from "@nestjs/cqrs"; import { ApiBearerAuth, ApiBody, ApiOperation, ApiTags } from "@nestjs/swagger"; -import { User } from "../../shared/middleware/user.decorator"; -import { ValidationPipe } from "../../shared/pipes/validation.pipe"; -import { CreateUserCommand, UpdateUserCommand } from "../application/commands"; -import { FindUserById, LoginQuery } from "../application/queries"; -import { CreateUserDto, LoginUserDto, UpdateUserDto } from "../core/dto"; -import { UserRO } from "../core/interfaces/user.interface"; +import { User } from "../../../shared/middleware/user.decorator"; +import { ValidationPipe } from "../../../shared/pipes/validation.pipe"; +import { + CreateUserCommand, + UpdateUserCommand, +} from "../../application/commands"; +import { FindUserById, LoginQuery } from "../../application/queries"; +import { CreateUserDto, LoginUserDto, UpdateUserDto } from "../../core/dto"; +import { UserRO } from "../../core/interfaces/user.interface"; @ApiBearerAuth() @ApiTags("user") diff --git a/src/user/presentation/rmq/index.ts b/src/user/presentation/rmq/index.ts new file mode 100644 index 0000000..42bb90e --- /dev/null +++ b/src/user/presentation/rmq/index.ts @@ -0,0 +1 @@ +export * from "./user.rmq"; diff --git a/src/user/presentation/user.rmq.ts b/src/user/presentation/rmq/user.rmq.ts similarity index 79% rename from src/user/presentation/user.rmq.ts rename to src/user/presentation/rmq/user.rmq.ts index aeabfae..8edb97d 100644 --- a/src/user/presentation/user.rmq.ts +++ b/src/user/presentation/rmq/user.rmq.ts @@ -2,8 +2,12 @@ import { Controller } from "@nestjs/common"; import { EventBus } from "@nestjs/cqrs"; import { EventPattern, Payload, Transport } from "@nestjs/microservices"; -import { UserCreatedEvent, UserUpdatedEvent } from "../application/events"; -import { IPayloadUserCreated, IPayloadUserUpdated, MessageCmd } from "../core"; +import { UserCreatedEvent, UserUpdatedEvent } from "../../application/events"; +import { + IPayloadUserCreated, + IPayloadUserUpdated, + MessageCmd, +} from "../../core"; @Controller() export class UserRmq { diff --git a/src/user/user.module.ts b/src/user/user.module.ts index 9188f77..bb2b50d 100644 --- a/src/user/user.module.ts +++ b/src/user/user.module.ts @@ -13,8 +13,8 @@ import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; import { UserService } from "./application/services"; -import { UserController } from "./presentation/user.controller"; -import { UserRmq } from "./presentation/user.rmq"; +import { UserController } from "./presentation/rest"; +import { UserRmq } from "./presentation/rmq"; @Module({ imports: [ From dbb9e97415d40ca157a8018cae9c9db752f430c3 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Fri, 20 Oct 2023 14:32:53 +0700 Subject: [PATCH 28/28] WIP --- .../use-cases/find-all.article.use-case.ts | 61 +++++++++++++++++++ .../use-cases/find-one.article.use-case.ts | 30 +++++++++ src/article/application/use-cases/index.ts | 7 +++ .../application/use-cases/use-case.module.ts | 27 ++++++++ src/article/article.module.ts | 2 + .../core/interfaces/article.interface.ts | 12 ++++ .../presentation/interceptors/index.ts | 1 + .../interceptors/transform-interceptor.ts | 51 ++++++++++++++++ .../presentation/rest/article.controller.ts | 2 +- 9 files changed, 192 insertions(+), 1 deletion(-) create mode 100644 src/article/application/use-cases/find-all.article.use-case.ts create mode 100644 src/article/application/use-cases/find-one.article.use-case.ts create mode 100644 src/article/application/use-cases/index.ts create mode 100644 src/article/application/use-cases/use-case.module.ts create mode 100644 src/article/presentation/interceptors/index.ts create mode 100644 src/article/presentation/interceptors/transform-interceptor.ts diff --git a/src/article/application/use-cases/find-all.article.use-case.ts b/src/article/application/use-cases/find-all.article.use-case.ts new file mode 100644 index 0000000..5ef1142 --- /dev/null +++ b/src/article/application/use-cases/find-all.article.use-case.ts @@ -0,0 +1,61 @@ +import { Injectable } from "@nestjs/common"; +import { QueryBus } from "@nestjs/cqrs"; +import { InjectRepository } from "@nestjs/typeorm"; +import { Repository, getRepository } from "typeorm"; + +import { READ_CONNECTION } from "../../../configs"; +import { FollowsEntity } from "../../../profile/core"; +import { UserEntity } from "../../../user/core"; +import { ArticleEntity, ArticlesRO } from "../../core"; +import { ArticleFilters } from "../../core/dto"; +import { FindAllArticleQuery } from "../queries"; +import { ArticleService } from "../services"; + +@Injectable() +export class FindAllArticleUseCase { + constructor( + @InjectRepository(UserEntity, READ_CONNECTION) + private readonly userRepository: Repository, + + private readonly articleService: ArticleService, + private readonly queryBus: QueryBus + ) {} + + async execute(userId: number, query: ArticleFilters): Promise { + // const { articles, articlesCount } = await this.queryBus.execute( + // new FindAllArticleQuery(query) + // ); + // let user = null; + // let follows = []; + // if (userId) { + // const authorIds = articles + // .map((art: ArticleEntity) => art.author.id) + // .filter((id: number, index: number, ids) => ids.indexOf(id) === index); + // user = await this.userRepository.findOne(userId, { + // relations: ["favorites"], + // }); + // const followsBuilder = getRepository(FollowsEntity, READ_CONNECTION) + // .createQueryBuilder("follows") + // .where("follows.followerId = :followerId", { followerId: userId }); + // if (authorIds.length > 0) { + // followsBuilder.andWhere("follows.followingId IN (:...followingIds)", { + // followingIds: authorIds, + // }); + // } + // follows = await followsBuilder.getMany(); + // } + // const articlesRO = articles?.map((article) => { + // const following = + // follows?.filter((follow) => follow.followingId === article.author.id) + // .length > 0; + // return this.articleService.buildArticleRO(article, user, following); + // }); + // return { + // // articles: articlesRO, + // articles, + // articlesCount, + // user, + // follows, + // }; + } +} diff --git a/src/article/application/use-cases/find-one.article.use-case.ts b/src/article/application/use-cases/find-one.article.use-case.ts new file mode 100644 index 0000000..c5557b5 --- /dev/null +++ b/src/article/application/use-cases/find-one.article.use-case.ts @@ -0,0 +1,30 @@ +import { Injectable } from "@nestjs/common"; +import { QueryBus } from "@nestjs/cqrs"; + +import { ArticleRO } from "../../core"; +import { FindOneArticleQuery } from "../queries"; +import { ArticleService } from "../services"; + +@Injectable() +export class FindOneArticleUseCase { + constructor( + private readonly articleService: ArticleService, + private readonly queryBus: QueryBus + ) {} + + async execute(userId: number, slug: string): Promise { + const { article, user, follows } = await this.queryBus.execute( + new FindOneArticleQuery(userId, slug) + ); + + const articleData = this.articleService.buildArticleRO( + article, + user, + !!follows + ); + + return { + article: articleData, + }; + } +} diff --git a/src/article/application/use-cases/index.ts b/src/article/application/use-cases/index.ts new file mode 100644 index 0000000..bd50923 --- /dev/null +++ b/src/article/application/use-cases/index.ts @@ -0,0 +1,7 @@ +import { FindAllArticleUseCase } from "./find-all.article.use-case"; +import { FindOneArticleUseCase } from "./find-one.article.use-case"; + +export * from "./find-all.article.use-case"; +export * from "./find-one.article.use-case"; + +export const UseCases = [FindAllArticleUseCase, FindOneArticleUseCase]; diff --git a/src/article/application/use-cases/use-case.module.ts b/src/article/application/use-cases/use-case.module.ts new file mode 100644 index 0000000..a520ad2 --- /dev/null +++ b/src/article/application/use-cases/use-case.module.ts @@ -0,0 +1,27 @@ +import { Module } from "@nestjs/common"; +import { CqrsModule } from "@nestjs/cqrs"; +import { TypeOrmModule } from "@nestjs/typeorm"; + +import { UseCases } from "./index"; +import { READ_CONNECTION } from "../../../configs"; +import { FollowsEntity } from "../../../profile/core"; +import { UserEntity } from "../../../user/core"; +import { UserModule } from "../../../user/user.module"; +import { ArticleEntity, CommentEntity } from "../../core"; +import { QueryModule } from "../queries/query.module"; +import { ArticleService } from "../services"; + +@Module({ + imports: [ + TypeOrmModule.forFeature( + [ArticleEntity, CommentEntity, UserEntity, FollowsEntity], + READ_CONNECTION + ), + UserModule, + QueryModule, + CqrsModule, + ], + providers: [ArticleService, ...UseCases], + exports: [...UseCases], +}) +export class UseCaseModule {} diff --git a/src/article/article.module.ts b/src/article/article.module.ts index 37fba45..ba46ca5 100644 --- a/src/article/article.module.ts +++ b/src/article/article.module.ts @@ -14,6 +14,7 @@ import { CommandModule } from "./application/commands/command.module"; import { EventModule } from "./application/events/event.module"; import { QueryModule } from "./application/queries/query.module"; import { ArticleService } from "./application/services"; +import { UseCaseModule } from "./application/use-cases/use-case.module"; import { ArticleController } from "./presentation/rest"; import { ArticleRmq } from "./presentation/rmq"; @@ -24,6 +25,7 @@ import { ArticleRmq } from "./presentation/rmq"; CommandModule, QueryModule, EventModule, + UseCaseModule, RabbitMqModule, RedisModule, ], diff --git a/src/article/core/interfaces/article.interface.ts b/src/article/core/interfaces/article.interface.ts index 7d21057..b8febe0 100644 --- a/src/article/core/interfaces/article.interface.ts +++ b/src/article/core/interfaces/article.interface.ts @@ -1,3 +1,4 @@ +import { FollowsEntity } from "../../../profile/core"; import { ProfileData } from "../../../profile/core/interfaces/profile.interface"; import { UserEntity } from "../../../user/core"; import { IUser } from "../../../user/core/interfaces/user.interface"; @@ -43,6 +44,17 @@ export interface ArticlesRO { articlesCount: number; } +export interface ArticlesResponse { + articles: ArticleEntity[]; + articlesCount: number; +} + +export interface ArticleResponse { + article: ArticleEntity; + user?: UserEntity; + follows?: FollowsEntity; +} + export interface IArticle { id?: number; slug?: string; diff --git a/src/article/presentation/interceptors/index.ts b/src/article/presentation/interceptors/index.ts new file mode 100644 index 0000000..f428975 --- /dev/null +++ b/src/article/presentation/interceptors/index.ts @@ -0,0 +1 @@ +export * from "./transform-interceptor"; diff --git a/src/article/presentation/interceptors/transform-interceptor.ts b/src/article/presentation/interceptors/transform-interceptor.ts new file mode 100644 index 0000000..950aa15 --- /dev/null +++ b/src/article/presentation/interceptors/transform-interceptor.ts @@ -0,0 +1,51 @@ +import { + Injectable, + NestInterceptor, + ExecutionContext, + CallHandler, + Logger, +} from "@nestjs/common"; +import { Observable } from "rxjs"; +import { map } from "rxjs/operators"; +import { ArticleEntity, ArticleRO } from "../../core"; +import { ArticleService } from "../../application/services"; +import { UserEntity } from "../../../user/core"; +import { FollowsEntity } from "../../../profile/core"; + +@Injectable() +export class TransformInterceptor implements NestInterceptor { + constructor(private readonly articleService: ArticleService) {} + + intercept( + context: ExecutionContext, + next: CallHandler + ): Observable { + return next.handle().pipe( + map( + ({ + article, + user = undefined, + following = undefined, + }: { + article: ArticleEntity; + user?: UserEntity; + following?: boolean; + }) => { + console.log("=================After================="); + Logger.warn({ + article, + user, + following, + }); + return { + article: this.articleService.buildArticleRO( + article, + user, + following + ), + }; + } + ) + ); + } +} diff --git a/src/article/presentation/rest/article.controller.ts b/src/article/presentation/rest/article.controller.ts index adeae8b..c9c3064 100644 --- a/src/article/presentation/rest/article.controller.ts +++ b/src/article/presentation/rest/article.controller.ts @@ -79,7 +79,7 @@ export class ArticleController { @Get(":slug") async findOne( @User("id") userId: number, - @Param("slug") slug + @Param("slug") slug: string ): Promise { return this.queryBus.execute(new FindOneArticleQuery(userId, slug)); }

-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 w=-2=4+5f4=-v{zv$MFAD Date: Wed, 23 Aug 2023 18:31:37 +0700 Subject: [PATCH 04/28] chore: update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f6818f..d931386 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ ==> READ HEAVY - No lost for image -## Architect +## Design system ![alt text](./assets/architect.png) From 14d67ee77eae6a4ec1adb2e22da8b0038fc8ed88 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Wed, 23 Aug 2023 23:51:47 +0700 Subject: [PATCH 05/28] update README --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index d931386..7c47621 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,17 @@ ==> READ HEAVY - No lost for image +## API Design + + Login: - request: { username, password} - response: { accessToken, refreshToken } + Logout - request: { token } - response: boolean + Post Article - request: { userId, title, description, content, hastag } - response: articleId + Upload File - request: { string base 64 } - response: file_url + Searching - request: { keyword } - response: [ article ] + Like - request: { userId, articleId } - response: boolean + Comment - request: { userId, articleId, content } - response: commentId | Comment + Follow - request: { currentUserId, toUserId } - response: boolean + ## Design system ![alt text](./assets/architect.png) From 9f2bd99b312537133397dbb54d198f6eb96ed734 Mon Sep 17 00:00:00 2001 From: anhtt2211 Date: Thu, 24 Aug 2023 09:23:06 +0700 Subject: [PATCH 06/28] WIP --- assets/architect.png | Bin 155724 -> 194631 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/architect.png b/assets/architect.png index b9f931cede47ea45ce3cb0e8ca1be3ac189d25ab..225d15649677f0d379e9e0ed74852d7b1c99b56d 100644 GIT binary patch literal 194631 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