From 6f9e929298825c828b9d92e12ce173f3cfbf99db Mon Sep 17 00:00:00 2001 From: archer <545436317@qq.com> Date: Thu, 15 Jun 2023 17:32:12 +0800 Subject: [PATCH] perf: code --- client/public/imgs/errImg.png | Bin 0 -> 28701 bytes client/src/components/Markdown/Image.tsx | 19 +++++++++++ client/src/components/Markdown/index.tsx | 4 +++ client/src/pages/api/openapi/kb/pushData.ts | 5 +++ client/src/pages/api/user/checkPayResult.ts | 32 +++++++++++------- .../detail/components/ModelEditForm.tsx | 2 +- .../src/pages/number/components/PayModal.tsx | 2 +- client/src/service/mongo.ts | 6 ++-- 8 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 client/public/imgs/errImg.png create mode 100644 client/src/components/Markdown/Image.tsx diff --git a/client/public/imgs/errImg.png b/client/public/imgs/errImg.png new file mode 100644 index 0000000000000000000000000000000000000000..ee39efa4d527855144b573940683848cce73d470 GIT binary patch literal 28701 zcmbrlWl&pf*e#5^YazH6m*Nh^9g4dacPQ>!+})j`#ih74P$=#Mg1ft(^m*U;zB#{7 zX7*%ulF8opb+1d;+TT@`WzbQGQJ|op(B)($)uEuEng1O~2#`;_{o_3#Z_sY)G7?aA zlO%_b6F4hzC2=UIp9!chrtpw+WM^4jHz+8K!G8zzs8gi{6qHk=oTRvhm(gjrT@8&) zdS*t}ZRh=6_bbKn1f|vQJTO{E*U7T3jm%0Kh3P~vjacIj`I~ruf@rJdaU?+l^r|S_ zAcF7aMk~c<9us8F1x||J3b1dcx(ntsw+GO|-#S)wi#qfs69>W7%l^;)8@D(7^jnho zQL#~fYR1O&X|9h&@aZR+J~cKLQyni*A0GTazAD9ktj5R3-(Kqa zQ8g|djG8hWgM5$0lL*MD0B#pNhyD6%8Qggm1*c!yh65Z7hx0#L^xwie-1}5RWaMY!&(W0%|3@!RP~}s4{TVM1%ZN6;FQ0k z5A^c3Ij+|P<{HhOT7BRT^8|TY0o`_2I}P)l>WzvC&b!+z<8I3`lu=VA^_^&eO!Xv* zuXMj}Uti&s9qK_L-_gkQH-?cLj>mxHfa<0+WBRbsnw=X{Q{8)_+8#o7%>aH%mJ+ZF~ zE{*lvlv&M|fK%+f=KeO0+pLJ5SuPKAg|FK4D$RbeZkpv%@KkS?YjSAF6Yqjg$l}OO zrU{jUt%zgJE7j!;BWq@8ZpgCF#F&-i1R?-~o@NiZ0BBEzDor$ppSRHLN2o{X7YlPLdeY9bcuK3E z`|Ok!IIWg_c18!hbjdbqZ$Lf8ZYE4lN!fO{q7UXlZ+0gx*Zr1Ww(6DrBPC_UB|A>q znW`L@@32{^EwrB^Pm#`#s#@#$$vNZ)uIBPr>(HMxpXUEsN?(3zxSwJ>`Ju_fC*u*Q z%#t{{Z{KvfG&zkBP!lIIuH3UmcbW;c9~CXfp5YM{?DK)bVIJ;yr^T81dbl`pRZmPm z)>D#Xm3Ss}r5%}sdf;>gYxM{E36ruAJw-3_ktn~Q;Pa}}M$fChXW+f33MM8dA)mKD zObTJ$FUR%H7H7ITExOtkaceZFkk0O|oB#)(+Iz(J+6?0*z^TFC z#$nz~@BNBK=Kc;CvKjZrWqJY;tlSiI42qUVIVAe*fWjmtQqx{$0)|J+$J17!zn9Kh7&YKf|){k(ksI&A#109sghhYNikb}T+Rc(8{~I3_ZndkgQq zKkj|o*mxw(>s*YHB+#=eic`)@1PqFr4rIzoqF z76hRU&FUR6O&%;Q4e=_zxbf=Ir4W{ zQQz0UU~?F0aL-}~;5QnHC} zV-_ye^wIxU1S{qR@nMt82pNZeYO7drII5VNa7V$y)-~{Wr+M z&VnPK%9wlwfve{t4>C>TCBv5$1$58P&%g=e*ZG}iUMD)BXK&Y)LBmzpa7M^t{l=ef z-^lKj31i+Cd+u7+>-`^(-m}VXl72y!$cAK-9^huh^&)z<_I&ejFc2Qz$wksv2F~%b zX~(HHz?rcJW`wY(d_~M)vpTe2cz)FGc_|pM(0u#(_|HQ47wsF*RcykyOhES)-zO8c zuB*t_16Wu)xSF3AZ0KD1TX%A5sjpp+CLP*eFilBH zN@}e7O*&MxBQwso!WVIQTC-)Wxc7tYI|Qx8f|H4dEq1-hj!wN9q=vcojgPw^Hvelo zly+I5B<0>Xm8i{qk8!QD&!@D?YVbUkFS zdw53Z1Fhfc>gwSzYUJ{rbtZb`t7r|CfPg^HZwp(`dolG$xg8%)gM$aK~y0TFya-*wa*Wy@xjpc%+$KKZn2K%IqQc z&>HZ1GuNq1r3K1#R=PYNVyD)or>BGa>{D-jD%{~)Z@n@J0&iMH6lxo= zp31felXo62D1<}twFK-=x>_K16Ct4fLHn8udF>g~rT7?XAM!t8&Na7TE+`r#mjEVUL|J;bz6cSWq8;!n6 zUk`usx}K-;-p})_>^-sgc|%Ltv-NIp<(F)rocwlZBXFvv1A$tIROi^smQ__qnIV56rWHS2k3b<8mDAi^@{_vMx&6YeY^BPSi0JP9&gQTq1>5zG@a zmpXv{rYpQE^)Y1|%TOg6h9o92!w+Zv zx*K{mGi(-RHZO#bmVMj<5B$)r_?XKSc zocFECzAI2bG%G$5@fuhnGk8cJc(?k=uf7Y!YsY8F#bf%~Q}BG$)^oSj(p$1Unf6F> zuHmNglz>DOTJcFu$U9BE0>MRvZwP=PZF%n%_ZR-h^Pp77hm5ER&8fLSK;yF3k#70c zosza7Nn3%Ks!*G{C9W1nCyov(IkUzmz4kXP0IQ6N9s=&b+2qHL2H~N4W=GP@hBsD4 zoxrc=bTzfLvv2nGytyR8D^GXlkIPOyH@jBv`SEsnhwkaQ@fARKp2*RO$2V5NYeG}9~4P%ns%yU1m)@%AM7^O zMpA(H0jIvbkL0}krrhiyGVWcOTS7m}v#4MkuPz>#`JuAhkzEg)Mb)L2e<8NB1m<{dr$9?1U$RIX#BxbB_lk#dChUR2fWH0vl4wK25 zHJRd@5PvXMqNJ{~ZPUU*oa0K^Ep;47J0!RXoMuqcIEL95CGcTQlz1Si+j$V8qdH<9 z&2WU(%AeZpLkTsXgD?I&?tsUu7BgxwG(t!TADli?nDeVTVjjyN!8SS_u1Jg6KY9DQ z_=BHvD$0ZU*9#r*iyfVNy^>2>LpON+H*1W#QjB<&#jBcr{G1w+n(%mhUX5BfNoUnz z8P}FdsNkKe>mOa+MZZhjvqt^?USCjExS0LY5lJuqXxLt+;=b1!u6m>&Q2bQB(c4P@^y*kWGkn zKP7f3r#y80;>_}6d{`Hy9nyQY@o)}=kiIp4w6u{KJyp_i7H=Oy+T!9gB?V8EZq0s! z-IVm;$v*=5^z|oN(+UaT9?B+JOU@CMeAGbzFdmwO10}4U=-e!Zpa29U#0WygE#UuGAapaUMKNp58Zv_!K%IX*~z(~}-VuQjd;jSfRUVTOad zlwM#n$5z1|ew<05h4IP=M{*K%4-hGHehTv9qtx4{5~1pRrF|OHh`2J z=?kn$wRE}zm}Yt2Jg~G|t3zmG`_L5}r+mmXsrcbBy9^_nwTChs384%zWTU@tYxR>c zq+Qa6dMQe~`Wb0sS)0DEgZlz)bAs%CW==FgkVudt0k>wNpo1Yp)zHNij!20(JcHw$ zfWMdFRDbvCKT+E-!cy0eO(is}pmIweG6UN%=N1iP7kTVv8dd4dHiy=xD?o&+#z>Z! z_Kj1yd*-$nwL~BMX4Nn>7Fp6QSN-!b+@@x;cw-W!n&DxsKb@eC;tig;7#78BFkJ#q z5Nlj5&(>yhzW&Px24JkOLLyK(I7pXTm~*DZt~o2Bv`eYKrIMAAq-hsL*ZVX zAr5hH9~yN@FQ@J%=IlEWl2K~HB}xD)ue{tJasI`7_X8gYqX#_g{a67ZMO3X^#a;tAjm5f5#tWe z*%0EGBw*ZN_8ils5~6m3);;H+I_=5?-`DS@K78(1L$3pxQ48&v*ibfDzLMzR8M_;& zji5~Gd)EgSzjhV+#R$d76l~gxJlFC}a+8;}<^xRyk5}f7JoLLi+c~l{{`4T7g88~< zAG>EXsAmtd)48$*)?}9To5a!%w2`U&?!SYYnefR!x~3`|hnC}T`H?29&4??Dk*TDA zg8&DB)6{OZ!*54uHNai{RU);1z(d0mjzpyH9HJ34_)^tTj##9pEtI7=-AH$k%>Ev| zLuYM2kUgRQ#AF)BpQAOZ$3`VQAA>->tk#VOj##BnxoNDUW^_ax)DjTamLI9rUYbtx zfx6kWo2oP6fR5_WxfL+E}*7Yw80!=6O5g zTAeEdCE|OnqPwjt~-YDpov&VKL}|3O>n)fm4^>rH(yoA%fa( zAc*x(co8>LMt{0{-2_G$skmvWqi>uHF^aO-5gA`xxLW6S3r2baQR*ZCsrc{8Z+)b= zY@NM@tN7Ly0|RUqIg<$cBBqoJpA>FvBE&1$8Zvic7_mGEF6Wu+>#0%3fxi-n?@Nu4 zl`m+1R{03GB~G=(5G3klN65Q6==L_S5MiO;NE7`?y9hD8opF!w*gRn-6<^BNl5JA* zuXwf(SX;SF1Qg?v>erSe7v#E^n3ga}E$KzMqpMT3I|?fKxG}YG@yXP9!Rs&S$0AX{ z=2?7``?PAmhNR6^BViX&(itZfiJ)KWR?Q>EOT4fQ9FR3si%O-0q)fiK0!E*ImZ8R& z3Gv~Oz;5J4uc@E2Xz5Z=!etgVU7vAC7Ajo@Hh1Hv8$g%D8*=`XARYP`Vf(h9-E<@NzQO2@)9#Md@Qf@N`8 zW_2=JQHEy2(hv~L@=#ayC|IQG3(JU5_cS1-sjR3FU(}hpW_o@@e&8Xk-O@F`(xZbC z$mob1`%jcr5h3Dk+>hS=-OZHrC@1$a!{i*@ELqA^Tl+5H)KkrS+Tg2#*wCdYnT3!F ze)CoA%QN)Qur%{0Fpch`%hh!b2EUX1#4#AHEf5r|iD!zM!{-cvb8KJ{2>Ta^fzt$@ z>~(xuGiJV%gqixho&z(@?z$fYF&sqJxuMUUUSExTN;5ym8g-Uq`t5M(Ipb4>e!CFa z)F+Arjb^X@=(0OivbOobij=ecNx<~5OKYQ75^Q8%fk#t{C{)t`>+(z+Cckq)h7l#T zB9vvHR2%yPj-LPf+HE^j>r>dYKu%#x!~%s*{68dZ9Mo}qkd>`Jgmh0t@sVca?u5OX&VK$lYQKD+L;(eAuGF>J8@FFfL*<;+Wj+D{St=3Macm>9lX!6|0vGI`pH%@9-5gp4(5FPlB%m1Dgn-?yKayT0%Lg7> zgUW6(&g6O;hdUbSSX3osoX{TA3GF0HfCNs~^>oR_2=XS4HdP&B9X2@lqHH~+EL;8` zgA8vPRBt zcGVbF_WXAxqo*c3Gkkk=8Mws$Mp+QnW%dF3_n@woVQhONd;y^)+q}*>({R&uJ`W~y z`z1Rn3+sMebd387dDMd|lEUD|C0T`O{kT>-;U$a-HYE}gDcQ(^Vs1Fntm{?Cxg{44F1$=U-{vL%Y=`|_@`o!4}eLPKkr+U-py54^OgxC zOcUOV(_OanBl0oJx^2WDHd*)`9kalm7cMTK6|dMJG&TBRMo}OyNYBg6bvW_3^05@B zM-s1SC8SMp8h}?NKfR|37NBwd9682mEzIjPq(X_}*v^79-~h)P2Lbh-7{6I@S^j;g zBp8bKdl{*b|<1GWS+IVeURS0%%WRR>XK`YL5b?wfPyE&gQCm0pgOb5tG7T7ROS{ zL=2|iD&1Tcnb0=tBtotG4P^&aL9+Hv!7aZ>w$WcNn#y;P73y4cv3e)PfG2*fDo%^`n*K@3@ z0Z{-h$K%wgrSrCxY<&YCL7jhIQI=);YR}%J!@3T+o+jZ8T|2)oTi2A7%(ko+S)tw` zj^fgsk{X?pJD;pn2>;jDDz+7*U2JT=;1y1ZXvEXvqC>~o%+6`_hA;A&)*9YE ziB}q=;C#fnh-tN3@K70QjdD78lV`U+EI==-;bi--3gu-5&J6-}@g#dLs2W{DPfr>x>dHVOEj5v3E= z10J%Q5g7QWAk`SzNTvW3HIgHN((eBO+d@AMRdLxQ8G{;MpAya%M~iIs9m=_TAh(=R zpyBcDBbthitV`op)YkM2bah)CrEOXflp}Sj!i+Kk&ZHD6?8UM~VIpvJs55d4M@@G4 zR^y;D5zVWV1r6ma%B1bkm+&@cvcfQi1m{f?<SM&V-LqIxXT$yAQZCZA&`e+q z!`I?)OIjg#tvcNVuH}`=#fFO}e$3P#e4`2y@A}Zz_{!1LQFE}r@w8o=!!w>;A60nh z7G0cv(nA{Y{{@{<^HUgf-oNJ94$}_4k^p6ao0LVdAB-#6LWy}eBaX1%XcVHD#vs3_ z1u`Z}T??GGTDV?-w{7=;chc*7^~u_I??Q<)!fAbsD-l_^JW;Eqlbk2<9{=l3_TwBH zL(Rk7$1l&03gR*IrY`#{a;i_d#)97Esa5t)V~6i~DJpj@46oBncH)7}O{3;$#B8!B?1Aw><(cLpcC#EzZ2xxI~P3cudh{SOWE7`#g~p`YFn&-nbSD)98y-gbL@=mU`!4gW+TuNxYEVc~0f0!eDcuY3c)7#q|1HJFd2 zsY&Y|7$iFo81TPWpj7kg#Pbm$=^K6@fObsAE7~h24ckttyG?dDi7ZGsOyPG>(y`qd z(YHgf3Qf&^nAHu{V!bYt6su=SyP%oeyWRn(4DLWi>@zeT@8InnAlSv#-B14NgWvN# z8SQ!CgUwY5d0_6E?*&cP#D(J}-X|&ztWV4iwlH;4w-%9MHQ6Cwq6#EZ?Gn|Kys|Gc zL(8O|WL>vFP$WBajfP*`fkDM>v@;fS-LvZgdoLE?Zb0#*2lmDX(ZBNu$<7i_4|m-= z;F3@afxPeZu3e08r?9@;K(3Ci_aM5u&_U{5t|fl>W+t3zG}^8tT+C=62$?M?#aNLg zrh33-68fGib}pbiG4|XQKuiv@y5na4_2nRbI@o{dB ziiY`p^HSWEP)m7snfbmSy-Fa0o>2nuQ#4CCrJyhR7(>y>V*jHpyK)wb>3y^_sjeVz z2v*%RJ&y?6VI3?ym?s1+tr*LQ{{sVO=u>P@0f~4!`W7AXWu`1%O^1<7d=1eHQ_+)< zsT*W~;^1_C!C`GV&=?Q(O(&fuf6S;GTknZU0gbdTFkWXx-9TJ)gW zGx-9HSV*4T?mRHC*p4=dQPL7f#+JIq!2Wzo%16k0rJ&&fo1qM0{!70CrVk}u=qkw_fiV8m z_Y@!+D?Fxn8g5#4_8hB8_0xkfphamoS;>ZC?0)*R3+N?eNnPR6hTTqpyf)?7;FSdZ zCf4dz0%_9GAx-)s2|J7Zbz!%(EtoC_2D(X1FYlnQr!Ewfp4||Sfk~Xj0LXjY)M@55 zy}UGrQEr*-K&%x)j{E3@PgIt{m`FflBp$+N@?tMzE@KzoTiH z`Eh5~_nRNAv+xfa53CZX86Zw1wPL9v_lVDs0um-UAC4=6cw4GoDh;6_r>xI1>uqka zrGFnxHT&pVr?=Z7(5?*mc%{XT>n;@5?fWz+Y`9vV%qQ+M#h2@U9zO1;oy#ok^MVcS z_nqQF;t>cW$~Ca18vDzsp&_HBJ`#*DKg9x*?fl8w=K=10hEH=)eJ>5W%Lzj>;P*uY zhjhaK=itbgq%<;1XBLgaY4WKw1csb_w-Kd=K25qR)o~3oVYfYw@TZD8SMArZGuM5w z!C>aJ!p*Cit0)}zD-LC?^2F@S1LXXtD6QXgTD{@ zS5l8s9ZQ8i>MUr{eyU|u<( zr4+$v?$ny0jqg=dv*FD0I4zU;Nv-uOq*mP)`(qHglFkbzS~Kbn@L5QWfpFzo#0D=+ zSwkxSZaYUYM{It!r6sXHB#x3nJ!+GEvHuRmxl&ZqYuBXoUm#mzD*Laj6ZndLzlPLG zt&UizFldduK?`Q&(nGVh3D*p?8Asg``m$hRD5IkgD1C&|EL)}Yk!Z3KDB1f_`QxzA z*UI|5l}g`o6-MN{D%6jt_X#S>X^m80kz9o=65A&w#DXPgm}X3K=baUnkm`jH4}`=n z2lKr&;FNFhkTSXL)6~?3;Qkz&WtIa3Ok19&b9tukoq?nddtsJ+7HWYQxEKL&k@SG< zz#E#di`*ds+x{Sy7&Nhjyb^&2$47qq3I;Evxg&>B2L4LB@)=gW-1E1EP#Mpj=Uj)A zu(G9gWYlvWZIn!zCK=n5-Pr;r*D2AmTq@jPIXJj#`q{Ejd( zR|~i`MtI?8uA*#0rclS;NS&vpnrM>B+yZymJvF>74)3nzFOM^B=L$_k z^n1pXWI}DNwcoEtJdpOLfdiL71g#8jn(R>kK8E*;e@V}Olk+60N@)}FD>gfg3c@^R z=aLHI@ciK4G7``*r_@c(iJg5LaSA@&KKm)%1@b^lB9OIk!c|m(N$PP!?(V~ktD&#+ zhM{R!T9rw4D#Q__4TyQEXgX}s6}SCY8T+`Z+)4t zFJ_ zdf>hKFkE6>IJ0g_cA%PgncuQgm#W_DNCRuQ!ZNpTc>k>Xe$zZa z-AWwyC%_?)JU#3jO&hP{D_OVt66-dXeVTffD%F8hMyKXdzEyswWam>P<61~2e)<_x z|N9d;KemR3@or_{Z`8k{3JydX!B=i-(l=Byo6!Z<7IQ=+84+f%1Y|*iA6uWBnE&OH zA#;??7>jAXuf*}}dGvs`fkvDC=2t7Sh3ZBL?rc_Z*gF*PmiIj7l2n?nnNmE2BbPewf73n1;#@z;< zHD}%?2%{hKSWeQg(~xPj>KUjFfdHN?Q=3_DYHgi_vkhbK4C1^76DK`GQ!uQmJf4p; z>gCtHl;GoCo@lgms;G82Z@7Fvgu zMJe?X`x1V!l4ygi)BbjFuLNpL; z?0J1z@q9xKcxah|RJ-c3M4(QD(=y0>5YdD%oT-KEAG76xy!KIrCdYmJK8@a$TGs0N z-yqVZvG4D3E0hS7%Lr*$rGinqSq*C#*D0LV#e4lBlNX{_w6Iotg zmPYlS7%KB!s6wSAG}XNQRPV>_4Ick1fnIkQ*}YK2SSlN-g5`+cgCqfPMr;2;oIpPY z^-eA9{A{8X& z-2bk*Nx&42(x-j@pF*ZHM2NFpY+cxQX%xh_8j;tqES@ZAn9B8z=RQBD3}p_;x4K^J zbstLW#9~s%{xg*8g_Im=q9Yb@@)>KmhtLAb1jndMqz6He_&T0KN6MN_)3W^1)D}YWq$tL&Kq;%a3l0@C4okPQ@?fIERXOXDgXiy~UbkoVmyEq%NJf!s1Of*q8Z({ zq;yB@eS5si^KB5`p5}ODu^C7R6n?qb?wZ@vniNw^A4>`O=7=tDRn1i9oJh~Hh0_iS zYB!{ea^y)jO8yEAwC+SJ2XZHT9*>$Yd843%uj$dR+XqYPE=42e?RysxC z#qn=lT5=7c(HEMHv#xn2#uXD+^7R<#4El>*8J6z%wKD zV{uK$BsHgL;A(0tENx@H@X{kW^*68&?2j(y-sm|JckvRRT25qrFedr^F zkwp;N&VsbGP7t=XMgge1KEPysP(I8fIe&hGl92eo5IXN826~L3LmC(le+v_+*K6Re*`#U;J~MgTrQ&r0N4+)VeMt4|njn)>u9b&Ll~me#Fp% ztSkwIpl-wjpyPMMRx_qDPRC-|_;xOPWGS0n@Urs~S+f=v1@;+yX!pn4Xb+RIbjK2q@=!6vh`|INvxPgrUm#+pI zCC(So9@8OR>Nm~s=hWxHRw`6=bUI&j*}6dp^$mM5tvyBv7#$sOn@TG=UlUTt9+K6< zjv(|g0Bb3b3o9yrH0|S9b}YbL!aM8*8%8G(OezA z`QK^RVBhg=R`xVmmAQ`GW>UH#0euH;a8CEK_@yuVH>p+=hc z{^7E-Hq<@z;H$9noiG98{3KMf3)tWE6%QOl%}c7Wco1&?hjC{IY({RgL!2+a^&P55 zPs2&Ki_ZgJ zaa_JZ^`(lZGjVgT$M4xKxG9T1;G+ti|ImoT`q1#p-^#f6=Nv3S zjecsP96oB_Mf!>coNhuq8Sx*}o6{2CislgR(O+m++3Fd^)5vx_Zht#(gCdRP9VFnz zFgv2#lhnC7?To6$)bdCAd}umFz8#>RuhlzKR!q3_sE9lqV6?DyYG8j0+BDvF9JB~` zV)(eJl+Fk3^B!VDhWL&plbK3)f+^bbdE*KTZk(@dX~)I;LTa3ODqKGwajh!=Jqfo8PlSzVvF+kf7r;)2OmjYhS?_4W^-ntRb-wfFcY8B7u$w4?hT@WEQ1mpWi)W;OA0LxexOdX24| zL77K0zh`iAp0o$1t;1xB%8Z-l=%|0lAYBC0-32yX~pHK*QOZ5d} zUJLhcGy*yDV^J%x?#YFU+OWJ}4Zp~-fJAZ2(}X4%pbSUNOds8?1oG%agXPBk%^5;X ze`Z@6!A5GL8Gk=$9s5=qM>_Nu$0z-cY3kqvvAK0%YuJI7Plv{(Zgh83TGmv|)1die z5yF%St!M7`?!67ZFc~aSu9;FmJi~)S`gav?#4VxNUyPQQIyT1ZL*7e zJX6N>ghWCg!_$k&6!uG0)d~n0aN(D&SAl37#_8i6ksLF^$-ijeI<`;X4+9Swy7N;< zLkAokO7&&-u^fsJHo9(tdOoP+TvPZw!vxq_znN&)Pwa5$e4(MB(~6XO3OfT--;|)3 zISd|FJ5Oh{t;8}(8Yr1*qYTu}oqS{g-+;Se7w%-NY7B;XpNeNi(GUO}E=+6M z9q-Mc5ZAn?B#4xG4sOfC1)9ZBxkt?~04bhz6zWD~se4zV5ACjcu5j~v4vMO$7J0)M z6L?qXp4?G+ANF)#U_+u++emN;;@C}VLsX}1P0)=Uwl_&DX;8{`U%8vSaS3|ox?~%# za~h&ms3L;A`7Z(%-~qMzuzv09!E!q%ioNx}L(kn~3yM23=%Eezr~eKW5cD#Z%b7jn z-*jLc=+lj=BsgGNzXN63Qc`dYloo!;tO`N@S~c6o5yasmQ)=QMpXflo`dqeWKfoKm z1vbT&ZQ6!0sK=8&wx4nAgtO59d@xhqbF{M-c#-+0w?F(nEs@EqcucYk6Ct#8aogC& z74`Fm`It){|40dD?&@Ecjd4~V@8tOpxdBEi=o-~>eqFFV-?f4{>L}{!09ZADSEtIQ z3k7s?1l5tW{FJMx?G@O z{k`e!(49-%_AqRoyD!wIL5&P0zchCUHKa?vCf%486Ay%?!D4gb!%7ug8TLxsD3d$Y zyuuU~$WRtzM(=X_JK(YofwY$wHFHJY+K;==10|iR31YDW)43)aJ3d@ROZL`(eB9_&hwY@1|fPqm%~law~b^0uHr;UM6rEZc|A8N#1~BDAjZ(6lFA{-?xJs-xbNf~Vc$KCdE?CQGW0xA(?3Ps5O8i)#c>)l^LP$~ zY){S57G*Z-3=>Eyf1S~kr1z5QGd$fw;;E1JAcE$dE5l%lp8fPn_Hq3_Ig(IyR|2|& z)Yx@tg;=0y%H<1nfI7r5k83?0*pjS>(BsEDgb_AR!Px_Wey+)W50@2Y$+J_m0g>D`6H6)b+9byVJhHxc<2yNzZSFe$b3)-@96aJn>AQI&HRSNk z?1X%hDPv4j4}-o0N=s9ZD&zV$qty6X%1vZ;;p04R9w{C{Qx?4!Cdv(&r@nDVRxic{52o%&Edeh|%YtUrNcj zx^mY?{hgm@#Inx-b~OpSjTA8cKaOGlFd957WvXAPONmx_ncD}QZF|nnj;6YkAL|r< z&grY2Sp5Ppp`}x->%vwaQUchYq1Z)isJSX{;u+^ z(N$SW>ZPCn0_l~Jmp!c?TwkLh>k-d zCLf4?a{t_ksZ(V0me#S8J^wSyWk%+~1Gh`)WsaS^RCWeS9 z9J>~w*q|^=72`XioAeoXs)=U6V*<9vJ^a{R;?G?ZJxG&}AJMtH0}?<^mS|qp>pz?X zB+tI68n0H0hpt+YR?THRJKUo9r;(j8HL#5)EOC^VZ;zTkzsVHPjM7_a=+A2#;das( zgxZE=KB@mFF~jD@VTi4n*wzsR+)d{SQV0@$vw3g`*tYg(T>DIAVR&Cr1z7Iu2P1cH zFv`>PZZ@KM(;r&`2@Ft18dU7tT-(omj!ayIch`XmTOvqyrB9S2qB4u^AsN1n=vDHR$u{5upsadAC^6WnG=)FXk|ogH^zg)>yO@SdHuqppl+70}JRvdUXri{tlzfM8^e`@$#}>905eqzn@(6 zv?-E{43nbL8jb`2o98(aGA^qo*Jp`rI8I@tH^16~5RrTRgF9C$s1*xavjdU_jG|5Q zl-dy5GS61DreWu=)I{5KMEXt@V5`dOs}FhvF}fl@jxR6sd7smhPs?~~!80{3uAfI#dzV96A6>)`eCZ!m-SA=z2CHkh zoFuk|;9W`;VTqKuz%=95HUu*J?P z(Hp$G&mAnG`!6W@u9IR{M)E260XHMkQcJpxvB%;H(<6x$&g^+TXT;TjGl>9R>u|)p zF8|Mt3{Q9uyAcl~GXk4nqyoel@c*cgm`Zh`*!J%buuaqTuf21*Ou+POg zRyCZAKl+QeO^OKo&0m8&QY}|c59*ovc!nWR!s=4pgGANB47^<&)u_=u0)<8bD?HB+ zjkull+llO~)7tb|8n9^5)7s`Ka-KdJ1E)EJlvjMo2|$mJhvUThpCJO`jIFsHLx`r| zw#dYAc6z{iG&B3!Cfv+*rufq0=_4k z3-_t&ku() z{E`b{9)H!PpO;F+$FI_tzsK2UftiBp6}pc~&ZY6k#a*}n-to?AeKR`m@2=-MH5&f9 zC7x~(2d?_TET1F?gua;Q`+%#WH??Ido!}o0TPzHDoKdS(;t7fgVBx)ElhEE-QZil$ zqh98T1OhNewR`@bzTPq_$}jBOmhSEpX{3=7kdp2ahVE_|x}=d55Ky{?974KAO1isS zy1U`I{NMMx-sjW9H`Zb?*D&V}_Idn{9U47d$nB0m(JmIh+Vax43m;NVhSZn;2MG(T zWC2%S(!jY}83mUgGwcr0^(RA}Gn~UPrI|j`Z}`$u8RkFA$7uDdIyb@J5ozi7Se+S_ zYJ?g8#xF^fz>Ll1*MV|3Wr&+{F?kG;6n}A2@Q4pji{5LY+rg)qtHj5ZD&<3fnOHf= z)?T*bx2M54DnS-6{eK)#2`3h^xl&<`?dO{nx_bul>XMg&GHvzRpW=gQvKz6r2MwHS z4oFsbmgMH{58&vvzlg9U6USgJQ!f82<2MAj%cD=)9|P?Da?(Wk3$_CwTmE~apIX)H zThVTk3yJ1?^`~DA^cy~YxyK2747yjx<6HKi5Xz>W77^+oq*XhvCxdklz*pKBlz*dix=n(jjM-X8jVz%5C#_-7W%(@06* z4i(|SaV?i_98eqT_8qxFJMx#ES`EBS z*j3j}faD1z-!#!Bh8yvZDlgAIrY1KOZ-Q5GbOc^ZDq-|F+18|UU^N~-U2KPBIiXKt ztl~bRgt9{Z2Gb)Wc1;0k_4k)mD(Y3ZJ!sCLu;Ibw5yp9$nNlP)sQ9;ixpb~YogHK8 zH)GyAwohC)-5Of*VDqV2(93N|{O*O-&>?VPVMEY9HO^dksA{7>0urh z5Cg6C2+9tb2CorNFmQjVjqNZQ$$NRmuIBt*KgyWh$uM*8@ z0R=#{Am6t7PSioo?O|Ix{nP47;bIYaHD^Y_-Tgx0J+qZ+jQX{7#SO?+cOy~)7yyD%a+JD+}DqZ(ExU0nl9Hkgx`SK%;Ft5&Q=`21#m8TQS9 zeqNd5_=qu;qxvw&K&iq2z6pvbX6Nn&j>+$lurHC}ZT9)8EHTPG?Ds}{d0q37!nrkp zu@aVIxZ0NH2m>#O-CkPo$`$4t-+lnH?FYsI*S>^JGN)+vFS&k-uTp8huZ_AA#cN1dby9G_oC;vXu9m*j}X z_>T|HBI1&8u*-jXIQ{U4w$_l6zBa7Y+B%vuS%55;{~hRdv;@()s61!BJe)iZioKiL z&lD9*i}A%_N~#Rt`?=EU?e@G(A#j>>ORDWnKWv1rqSs8%Yi=O{E>jjPNwCo*aAC)9 z{H1+wM10A|K~gV!3dMpyilbX>UY=<7nTh!H3cUh32a*g|iGNudq>Wt_^({{uMZu-+ zOSPla%xFWtHkJ2qYrVm*)3=4PdD=o%`x3d+@p@S6H}>loPYP2}XiTE`Gmv4t#$Qqk z$#JDqic+f>2c1h#E(BsE1)Aucj&T&G-{OMb#ibW=gy@^raG;R^F%%x+Ag zi6MK>7d7)3YM{&eIhO4|vXK%KW3fv&MT;>J1nz$|OM#yo4CKS-_6CBsbc`1^qBldckxM6I{D>%}ixZs)$ zA`Km@1gCROF`YnJi+AlG+6f}@ERD!2=&=EXGpV}|xU&;#4q&a5)TDIvv>sP5O`~xxwDW_clWQmiCO%}ciWzj|J|0b5c%wx*C zQ-s-lRxbmq;Bb^~yMpIR0xv||p*GWn)v@|R{%wyUS@$GP3Nf&ZC1w`q`sXj@uJCz0Dzcc}ZET~+f4q+&I z$48ztGu0LHb@zBdw>PDVo?S_99C(x8;E;->c?Whbkr(=Sv2hB|zIdrwxk%3u#4*45 z2C6KKNukBHx)#J^m4N)>XNd#JN5k{kM zO{#&*rq#fX#l*8$#8&yNKxKr<0Vn!1`MlFYAW7b)dZW{iTAP4$>GS8MzG|mEw1a#5 zN}?W-9_L8q$@;i%g|+c_@B&tlm^>$5hwu1BxWg+ne`CW9{D@rnHBQmr1`f|Z4(3YYAFK4ZjAfkx75eXV-(e_Q->zrSQSuXXYdERBQ-XRRcDRwc(6#`#tkNN zGWYN^NG?F7d8)Df$7H z&O7b2Ib;Au=I??}&=IdtFRvbSbpzdgz9h|qqdDTx;I3c%SAG63gY{%jrq3X9A+xYd zgWfm1eEHquy8c=aNJ@cE>B=loeI2q%ob9nc7M2P~wqNRLKwUAyz9|C5N;ma_4YjU9 z0-erXnwe*}D);3v+}QdtrYvk9lB8QH_GW_C-d?SWXAoQdM(}(FEQt5 zwV5^C+#1^_hhv6yGp=v4)-bJ%25;-3r|spI;>qZts_Njl{Xd#@vqCJ%OvvF{s25%R zS@3wNGBSVYmaF9cYN+W}9I&h4>5)3;NLUflhQ!%@FN#7HC3$-u_R^z{WJpl&L0@V@ z+?7M9-G|H{j<~M99!+Bqu?3Y8QTE;X0u9O~OfU+RLKM&iC`}|ML=0MY@n#7dkc~6y z+cNvKt}vG}5e74YE1Ar#??o6m*$8au@CF3O4*Rlh+tI{2AilNCD6tkEMm-=B1gv{_ z?&0gF1GbMt3TR#gBNonrw82Uq07HN$IFSTVo~a_2O4V_1@^Yc$NrRy3!&ZuGD3#2= z(&CWTr*~~vRGr2ik2(Aq-*^~4#5*Bs=mEy!|FB~zMLXnsA~Y<>C9Gq#|J!4y^h;oa zH~lYtulAv0xLX$*r}}uCrv#n?5W^3>XL<+)USrvGIm(fQi@@9)NQRBY6_3$I ziGhKlmx=nmHS`bgs8iN%3qPw$DZy@@yy)M_*wWz+)8>8_fm=j?k#@oV zqCon^vt5t9hGt43{~y8R6nb_~$xMU_aV;DB@SX-p!BOUe>zg&uQM~c#ID!tazN$$; zO>Nx>OsLB0S)20o|HV_U8u)Z@?F>=Kq$xU-%~{~J-xr^*p?{Z!BH70^`FdI~R#{%> zo)OJ>`{^S%k2^H28=|J@n+k80;F`u+USYAr6cdzl(MGG!7l^Xve?>BD8M(bLcG}vQ zh7VESEp9ERJ=4;qTwrL>l(Ro^ZI(|Bbw1E`H9F}sBhtsu{{nF5Jm2&w$V@x11NFY2 zYn}E5<&2nBH~vRt1S^5jtM-2&xO`_NCr7APXausuM$TPwa022A2{}4K=zy}IWCDRb z8(}M?rkHqIgp15#v!&M1roZ-qno=A8xc?t(>l0cC9NU|F+vZv^Hyps1@m4%i|l6*O5;ouC(A z7?kRYud38v4}0%HQvG^!>NX`k;g>)+ng8oW=ssX$%3@^C86=p%tU%TOm8?M~piVDq zKwjUdK9MCbq5N@TxiH7aAU(PU80v;+1hMDuF(jldiV3AFbXPjtOFPDMWA>A^rTt+; zO@TqL-6;Nc9#hA@CI} zQ5-IXikKP(SYdt)EcQJLDP){SYJOdU=#^eK4h9e>b(c>Vl*Dk7Nf*cI0?_dQk@gwN+me21Z{-%u>TqZ| zrX*^1S8_(q?7s!FPU|Qkoc)X$g-VNj7WY>3N?%XFPrpHN>=504P!4^x%?N<^~9k1EiJh+-5!Y1Xf=9)t4(6#Wxw}FC=l7GCG{* z9W2jaTewV={B+CW?>$$kOFeJdh@)#~2`bHDIg1Ro;7%b$mG%0}Rfd9To}egIdZ$%$ z(-2Oovw6gfZPiq5n{tM>dZg;c|G|MpYp{F)QpUTB@g1+FBjG{SFI)g@pD>~)CjyoN zwVx?PgOWKH;!wC;t^Cj7m~2>1#2^!fn!P{oMq4WueRx|s^!YTTB<-`z1HJJ{5sxcL?n` z?}9bEow)RwHMs?%tamQCaNu_r~N*)xF%yl%WZEKp53t!(+`Vvab=8X z#`b`fO%$$xMq~6$AI`%o)3p>5#Vlg0ORIZ`CHozhMXkJojV2687ud>K==f*?bvGVN zxIg$xCrS#YZcX`bVUC2EVU*B8-WY*#a~&u>k3u%+Rhy=h9^sw? zM7U&w|G}AxnyzJ(jGe4jGbk7}gyM877gr6`Y)p$lEUv)4zjN?Qx}B?=dtd!jLyS>V zB9LGOyjZO_D-*00Kr%F~!E?^0@AFc(c{}lDLU=I2w`LR-bJOn}`VO@BL1SSLla8tP^vgd}+hPM{VH@0z@m&*{&Wt1~x9J zHaX`*xw{v)qHOYPSujUuUFq!K4<-rX#*K4>g^X)@3_1$r9(~%#J3ey=azzxNU?tWt zyRKLf9H?6!D#S)N3PO+$SM(NS0(nYGlG*N;(E%279T1!sirn8U5H_z?$j7IWyxw>& z(Kir5IgEX_x^G`44G8{!5&%oKWCF%h$gv9Qwv2!erJ1PwMolLFFOUr4{^WIMk~;

h1Mf6Aa-}=%+JkE5@7i1mi(KC&55CW&n$U&=a^+~Oi%3AWY6e^ysEh2@q!t zOWX)85PxLoI2`G!o#~__TAkqv4Qy`V0ZJ}Sn-SU*Cyr(3NT52wABT9XWzxIY(*!?&Wi63~9Qv^5uT59*abP7N)lb{uNpJ0*#GyWQ-F)T-(K zPu#JlXxbl?)$-S~yFZbbCHa)WE_e9OaJzoj6)9+jg)yS5;!_7Xy@94;#}8Q#8d>c` zjiHa1)r5m5fAv&t*^Za_c&jtS(rcK~WIPKqU(!MQT#BvU}P4hH&t?1 zyj2?kRW7SJj_^R#oZ&XH_SlUmL0wd$b|jWqDxEyY&eU-d&uraIfl6ISKbpGTT>*yt z%v&FP3YUa}4P?PD6kp1NF@>TEJFUkr=!6{xoFSI5MQX)SAKVePH~CkjIh^U zMQ$p&KLVT_8on;2`gx9leVtkI#~wEl{#PS3QHu>3nup?+XIe^A+GYIe@<{zo6_O94 zAZ9C*t2K0pi&_|>uoQBQlWc7_t`4Y$1kAb96H8I2V^pU4PgGEpj5Zjfg-zz3Lf**W zK#5V|WXRHQ1|$6hpK1l*s$XjRm}j#DP_aHX(3dWf8fa2+G&CP-exZ||v!k^D0XhWZ zuau_hA!?EclNHi9=0Y`O+0?O#C8iRv@K7_)OCWAgJZVZv&W+0XBK16=pga=^Hso^>L_(yi|nwrr| zSqOgm7=pd+vVK%rFHWCI0fP9 zspl|To6zS>oiuWAfB3+ZG8fpnVT@OOvZ!=a@k7c#<$t>Leq~8X6;@g zseQS#Tb=^hOw%P^mM8s*A{KQ%S)-+7-8sRYo5`E3e0{AYoWahnojhewcX1|~sRo&O4nLpd6UjPedDyPq z5137(SM8Dz@`hwm(v1BVmV-H%*YG(zwyAqv4c{2-DmZ>Twv}FFjQt<&ZfRT1r{|=r zA8<(%%=FPg_n#|(KjSaG4iMgf2%?f;eT^A59iWg_gcE3|u!xlTUWBqf<$8WWdj4MtpJotkBr-E>Adzqb}>p zYtQ%%+DE(T6vV`X*}pO3DIV-iHj#OXz`rC+QV^QF+Mz_PMWHpUDC^Hh3Retu1b(;m zS&XX23-U5u*G6r$Yl&4QEY(02*f@4}wt)?n*dIT)Nvv3E5JDyF85!b9KU48#|93t* zWl$T!?DLd2Zb%;NBwt&GrlibXC>S-3CXZ)K_%G!6-<*r5?P($+=!8%uKn-yXfuKem z|4;q$WA3(AM}07wfupP@TXxU5?am~yd(~dLw*tI z867Kr{bEE+Pkls_l=&x57g?^7H3skyMM!pO*qQ(M*xmV!gX&+vL>gGk^aMXiowg6H zk(Q9S=I6Uq5#mTUV175MKS-eYfCh5H?S)dif$I>fmsw{fkDSX#HIU9U1&C%-s^H{e-8!uj1)MEL?d!5v- zjJ`vJo@K0?vIWoTXRy`6vwO80FR2mE7GfYn@6X`!lb`%*&s|rs{=T1Ige8A1>D^$M zV~T0@Abfnta;9l@Lrt>5!m>(*XkB{i?b6oYdFyMN*CSYGI-Q?%3)P|m(c9pTE&}h$ zSGEQ>p8+ec#p2WYOh5QQ^=aJrmbI&6E&gCmyW>enG?Tu_I>~}3U2`>DYY7h-VV^HO{g(>)u)7>9J>xdyiuYy@eoe8L7-Vi^NoLj+_H|ED zk^UrolW2?kLC;3Z>Jx`(OebRcNf3ZTW1gc49gl==9ksSRFCxXxRpT-xZ!EFzoy>nH+k^?^h z%3ix6jjQ_b&HS$9*P^kiATE8!KcRp%^cUG>l9Bo71t0*Mt;qbjwZtu#Vzu*d#RHf~ z(~%4cY?ROJ5|^5N+)Cu32}Cn1-HPYrwfg_0sJJX#s@wDPd$x3C&~Og46Q+K+K*6G? z20p+H>%aj6hj5@ds^~r0r~vw0tB^njhjSd)K~<0d_~6xS`0~Hk?qIXJxbv#5tD9@8 zDl-!DNq0&$+aj8I@N$cvvJj+XC%(A*xevS&nEqmObMhlZR0GS!|D|r=1eORDG~HTV zlUUZEZ&WL5|Hhz1!yL&6i zlg{pxnUO)?*x6hqT*t`%TzVx0Q5878=61csAiW$#xu8?VapS zvQ{O&)zCPN&0qjLVI?F(D@vz6gq4b;jFa7j6`HTr?jSLwj8e(Nlw? zCp+dJF||QB*-EOaql_;k_y2UrUX&RbPsu3pII6_Lu=%}tuK@n07Qy#qoYcR;&2lRS z$4H(Q^Jt30Q36i%+3i=mHB3y=>(?CY5BHlLA_v3UC#^62s~|SwBEnhV*}~wob;KT@ z+isVQ6(?5Mj;^dyD?~m}I69BsTxb1k`$nBv=b zsBb_yln54i$n-q%`wSL&US%l;K6MN@HjN&!XRntw;q4#zBhEJwGu2hk>4VKX9!CIUo6laBk1>Mo7w_iP}G_h+CnHtAUQL zM+OhqpgNdK(m9PiVWR_|BZ9y4FgNh^?c zqHAoOYmriQ0jDmu6(?py%|G4!umCSxQ?sPDp6Q$0jrnr@{*ARYlOWDgcAwEvn`C#M zEX${H3m#R*)rZuV`@oKQouYpOK8`fLsO{`2FyKH(B_2C&`&4|iFuz}WBE1lnKVRoy zA6~|KWi?Kr*fuu;1uScyX0Y@usi>c4%r1AmvasWzihXK zBh89w+5&T5wmWfq|K9D(!$aGd^Yc>3WD---omq7?a$6u*@AUNZ z^YcI%t3~ple9vRmzP*666%!K^%ok=9$m-kN_Ja~9$uv;#!%@7zQ;N~Bc86!--*7Ll| zVrk3GKJHmdt?!Gbr=tjF22w-YgN@GGaPl)8%J$^^;|cbgX&1}M%!+;K$62{MU44jnc|2+pRot=eQc~8I z=cnAX;LEa})V(%IDI~Ghv90!TQ~~B5*J??hX2aymf3Eq;-`;fZy`Jwb2LS{9#%_rP zMPZk`m}0}jlSMTteLpmHXku?e_Vtp#y{9LD=oro2`|GA1?~?<6TMBd~t&4t(YtDej z@#omU`;gbq`>-e38zxvcedaJzG?;6I7}noUT7mAXKdCr-Kgr6(R3q#u6Mgr%+5P;S z-tYPQg38dAFRhW@Vt3+Hwe8O8dZ)rj`R1n53a4S^;N-IM$`tvyXtHJ<8ff}$sJBa^ zo{w~tsjG<7`RHk46n36{c;o=fvYgMVm;{zUxOU6cen0+~)7{I%*H61$ErAEJVogs; zz{5;DoA8J!7U>3Z?~R%$^B5?3S=Q}-$olXuU0Lk$bb)f!EzH^6W<%o}a6Z?WF0kT7 z2Mc)exj$X+It(K*>MNYBxT0RojFM-i7%H02S*5@tp6sWgxPH*dZuYvh2;KQ2)xT7BDH{SKm8$Jh;wHQjrcaHI_;)y=#|st->s zHSWsVa!CZli5qjPjjkV6^*B2U+-K8jt)9SRio{QM^i)H>{jadS#M0UBZQD@XJ_+4! z&$gY{j2gloGt0-B z)IUbkV?@(^T>Jq|IF5fo2Z}&3RK-ziV{B1ty*9XAGq2Pwfn7h>D|pz|q0T)yPdi9F zww7f^#c<2;c}_Co{zBSWG*c<}WBSigQ{kjNM49F?9Md9-b(|9SJtDH|J;asZ0bVBXj! z^RDqQy~~>~M0(ocRT9DTRbYK)r;G0-)whTEcq`x8>b;_P>TzSlSw7u2TIHs#Niz|X zwkPvp3rv&Sh19HD+YOYP`9P{HW%E z@CKK*POR&~XlMiu^Bm*l&H!rh9GS?hN%VD-uOyNxHd0m!tPhR22-I4n+Nhy$tr(oE z=F#teNhh#+(2-mDON{$%yjT?MU9RE5DBWVIVAe0}LxJj5{1$cMrgADR40#A4*Z7L{v z(!MY4Yu4*^m!c9Iqb5-~Arl?+kl- z|IFvIoJ3Szfrjymk)2cx9bq7@!f4oM)0H#RFt~28Ak|SJn)MC~S?NjOcZRsJ!8cT$4>*3Sd<{=^VTvybCCS0j|o-m%u zdUpJ}jaHzs$|2TBcy*6FPi8!E*Sud)TR_+D>vHdZi-gu}@Oc$uxS)Err!#`U)-#R?+Q1S5e zP#~BEF2bN1DT0;Di=|^T&D$)D_Efc|DKmL}m3#PF#_mv*bXxFfkDh3!eW`hJKhQt* z{a4k)rD_FBCdy~tM8v>P`eoC&cZ!)yc!gHR1Fu~f^XO~+UUwnM5cPQa`9bT@#dmFL z>o&MAoN)rH4a*>Fs^&zmHf`*M)w)Jbw|(1OXU#hu*&GPK@l!VXyZ1iHT-U@}%j zlVI1J^=l)ihR+i+RtCH#HrlL#;v{`~xdg5iIi&yKkVN%1DkC!!vc+UyN8rAlB^T!V zAoz1ea9)!4EF^LAr*G%JF}!hb$#eIy9wns>1oZ{pi>ULH!TD=~)iguU-EDU}$#&fW zsW8dm>ZU%@)qbohJ}a`Wp?IxDwvv@ zdO{Uk@^zo@-hoD0>qm3Xr{scIGz|5{^=V=@s!C&3=vRARU*QjebA!~e_j|X0xhSw6 z_H10fQBz${4yJN40e%VF&uH3evakvN->*io_4q_)9KVZ?jf5>v2zLfj6P1$`4rYPS zACLXYD}qq^SGuEPXWJS&8y<{X!A%x{*X}Kd3?)UW6}&EN$Gi1?TSeI%mGNR}4aB1I zDp}r)tG}P`%paTG9$o)hXLqCROP{tWw=K3O5kAL-=&GAaVwAm=-wSCowedZ#E2sDV z(DC(vs!^-;vnA{D@)HdVA!!!4OeC%K)#%(!_+I|F|A6ngSL6A!Q7f;}Nl@6u#ku9n zSFe`b8l1q(k7cpJZDc4rcEW7G-uU6#)_n>nUVJNZLo3p^I+LmK7G-98UGdf&LgcO3 zK>lcjK&pTzKi2j3Z<=wWFf487<1;J46%laLE z`~jn%@hk^~IJpHBEc!6b@n{LN%zEdxp-u5hnr1Upn5s<_gDH|2g&#s1|VFt+`5-Xc!W8IS3YTA5O zHJWZqoMIk)63L9{LHFlqmzOC^W)^8b>_>Z_iZ)=W$r$V>W^$ev?$k}cjifp;di_=J z=8s*Ja?>V7{_U#+P;Bgv90UF{BkYr;tRZrU@VIc4!{3m)&6*3T2i>{RWBL;ykoy1r gx}{B|e-Yzoy{&X%?4$**^m`>Qts+$+X%hT@0LR);JOBUy literal 0 HcmV?d00001 diff --git a/client/src/components/Markdown/Image.tsx b/client/src/components/Markdown/Image.tsx new file mode 100644 index 000000000..f8187a20c --- /dev/null +++ b/client/src/components/Markdown/Image.tsx @@ -0,0 +1,19 @@ +import React, { useState } from 'react'; +import { Image, Skeleton } from '@chakra-ui/react'; + +const MdImage = ({ src }: { src: string }) => { + const [isLoading, setIsLoading] = useState(true); + return ( + + {''} setIsLoading(false)} + onError={() => setIsLoading(false)} + /> + + ); +}; + +export default MdImage; diff --git a/client/src/components/Markdown/index.tsx b/client/src/components/Markdown/index.tsx index 9926ec45d..65dba606e 100644 --- a/client/src/components/Markdown/index.tsx +++ b/client/src/components/Markdown/index.tsx @@ -10,6 +10,7 @@ import styles from './index.module.scss'; import CodeLight from './codeLight'; import Loading from './Loading'; import MermaidCodeBlock from './MermaidCodeBlock'; +import MdImage from './Image'; const Markdown = ({ source, @@ -33,6 +34,9 @@ const Markdown = ({ rehypePlugins={[rehypeKatex]} components={{ pre: 'div', + img({ src = '' }) { + return ; + }, code({ node, inline, className, children, ...props }) { const match = /language-(\w+)/.exec(className || ''); diff --git a/client/src/pages/api/openapi/kb/pushData.ts b/client/src/pages/api/openapi/kb/pushData.ts index 7ca3b8e4f..799824ff4 100644 --- a/client/src/pages/api/openapi/kb/pushData.ts +++ b/client/src/pages/api/openapi/kb/pushData.ts @@ -73,6 +73,9 @@ export async function pushDataToKb({ const set = new Set(); const filterData: DateItemType[] = []; + const time = Date.now(); + console.log('push data', data.length); + data.forEach((item) => { const text = item.q + item.a; @@ -153,6 +156,8 @@ export async function pushDataToKb({ insertData.length > 0 && startQueue(); + console.log('push data finish', Date.now() - time); + return { insertLen: insertData.length }; diff --git a/client/src/pages/api/user/checkPayResult.ts b/client/src/pages/api/user/checkPayResult.ts index 3b25d02d2..a6ea573e0 100644 --- a/client/src/pages/api/user/checkPayResult.ts +++ b/client/src/pages/api/user/checkPayResult.ts @@ -12,7 +12,7 @@ import { startQueue } from '@/service/utils/tools'; /* 校验支付结果 */ export default async function handler(req: NextApiRequest, res: NextApiResponse) { try { - let { payId } = req.query as { payId: string }; + const { payId } = req.query as { payId: string }; const { userId } = await authUser({ req, authToken: true }); @@ -34,10 +34,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) throw new Error('找不到用户'); } // 获取邀请者 - let inviter: UserModelSchema | null = null; - if (user.inviterId) { - inviter = await User.findById(user.inviterId); - } + const inviter = await (async () => { + if (user.inviterId) { + return User.findById(user.inviterId, '_id promotion'); + } + return null; + })(); const payRes = await getPayResult(payOrder.orderId); @@ -79,22 +81,28 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) unlockTask(userId); } } catch (error) { - await Pay.findByIdAndUpdate(payId, { - status: 'NOTPAY' - }); console.log(error); + try { + await Pay.findByIdAndUpdate(payId, { + status: 'NOTPAY' + }); + } catch (error) {} } - } else if (payRes.trade_state === 'CLOSED' || diffInHours > 24) { + return jsonRes(res, { + code: 500, + data: '更新订单失败,请重试' + }); + } + if (payRes.trade_state === 'CLOSED' || diffInHours > 24) { // 订单已关闭 await Pay.findByIdAndUpdate(payId, { status: 'CLOSED' }); - jsonRes(res, { + return jsonRes(res, { data: '订单已过期' }); - } else { - throw new Error(payRes?.trade_state_desc || '订单无效'); } + throw new Error(payRes?.trade_state_desc || '订单无效'); } catch (err) { // console.log(err); jsonRes(res, { diff --git a/client/src/pages/model/components/detail/components/ModelEditForm.tsx b/client/src/pages/model/components/detail/components/ModelEditForm.tsx index 965db2630..aa1c24904 100644 --- a/client/src/pages/model/components/detail/components/ModelEditForm.tsx +++ b/client/src/pages/model/components/detail/components/ModelEditForm.tsx @@ -182,7 +182,7 @@ ${e.password ? `密码为: ${e.password}` : ''}`; 基本信息 - modelId + AppId {getValues('_id')} diff --git a/client/src/pages/number/components/PayModal.tsx b/client/src/pages/number/components/PayModal.tsx index 6b7ba0b33..583e9dc70 100644 --- a/client/src/pages/number/components/PayModal.tsx +++ b/client/src/pages/number/components/PayModal.tsx @@ -58,7 +58,7 @@ const PayModal = ({ onClose }: { onClose: () => void }) => { }, { enabled: !!payId, - refetchInterval: 2000, + refetchInterval: 3000, onSuccess(res) { if (!res) return; toast({ diff --git a/client/src/service/mongo.ts b/client/src/service/mongo.ts index a1b6cbbc4..df32a068b 100644 --- a/client/src/service/mongo.ts +++ b/client/src/service/mongo.ts @@ -39,9 +39,9 @@ export async function connectToDatabase(): Promise { global.mongodb = await mongoose.connect(process.env.MONGODB_URI as string, { bufferCommands: true, dbName: process.env.MONGODB_NAME, - maxPoolSize: 5, - minPoolSize: 1, - maxConnecting: 5 + maxConnecting: 30, + maxPoolSize: 30, + minPoolSize: 10 }); console.log('mongo connected'); } catch (error) {