From 07948e6777249a94bb13110d4558da5840f5a2a5 Mon Sep 17 00:00:00 2001 From: Megghy Date: Fri, 25 Apr 2025 00:08:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E5=92=8C=E4=BE=9D=E8=B5=96=EF=BC=8C=E5=A2=9E?= =?UTF-8?q?=E5=BC=BA=E5=8A=9F=E8=83=BD=E5=92=8C=E7=94=A8=E6=88=B7=E4=BD=93?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完成弹幕机功能 - 在 .editorconfig 中新增对 vine.ts 文件的支持。 - 更新 package.json 中多个依赖的版本,提升稳定性和性能。 - 在 vite.config.mts 中引入 @guolao/vue-monaco-editor 插件,增强代码编辑功能。 - 在 App.vue 中调整内容填充的样式,优化界面布局。 - 新增获取配置文件哈希的 API 方法,提升配置管理能力。 - 在多个组件中优化了样式和逻辑,提升用户交互体验。 --- .editorconfig | 2 +- bun.lockb | Bin 607489 -> 611080 bytes package.json | 49 +- src/App.vue | 2 +- src/api/account.ts | 16 + src/api/api-models.ts | 1 + src/assets/css/youtube/yt-html.css | 600 +++++----- src/client/ClientAutoAction.vue | 20 +- src/client/store/autoAction/actionUtils.ts | 96 +- src/client/store/useAutoAction.ts | 50 +- src/components/MonacoEditorComponent.vue | 42 +- src/components/RegisterAndLogin.vue | 4 +- src/data/Initializer.ts | 69 +- src/data/UpdateNote.ts | 20 + src/data/constants.ts | 298 +++++ src/main.ts | 12 + src/router/client.ts | 6 + src/router/manage.ts | 2 +- src/router/obs.ts | 24 +- src/router/singlePage.ts | 3 +- src/views/BiliAuthView.vue | 2 +- src/views/ManageLayout.vue | 504 +++++---- src/views/manage/DanmujiManageView.vue | 1160 +++++++++++++++++++- src/views/obs/DanmujiOBS.vue | 361 ++++-- src/views/obs/blivechat/AuthorBadge.vue | 54 +- src/views/obs/blivechat/AuthorChip.vue | 79 +- src/views/obs/blivechat/ImgShadow.vue | 61 +- src/views/obs/blivechat/MembershipItem.vue | 96 +- src/views/obs/blivechat/PaidMessage.vue | 124 ++- src/views/obs/blivechat/TextMessage.vue | 146 ++- src/views/obs/blivechat/Ticker.vue | 387 ++++--- src/views/obs/blivechat/constants.js | 12 +- src/views/obs/blivechat/utils/index.js | 7 +- src/views/pointViews/PointGoodsView.vue | 40 +- src/views/single/TestVine.vine.ts | 7 +- vite.config.mts | 10 +- 36 files changed, 3108 insertions(+), 1258 deletions(-) diff --git a/.editorconfig b/.editorconfig index 59a6505..c6c70cd 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,4 +1,4 @@ -[*.{js,jsx,ts,tsx,vue}] +[*.{js,jsx,ts,tsx,vue,vine.ts}] indent_style = space indent_size = 2 end_of_line = lf diff --git a/bun.lockb b/bun.lockb index 508439bd62bccd1f174f3c622327edf6e307d11c..2d447311a1a00ac03c95dd02bf143479e10984c3 100644 GIT binary patch delta 128639 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

Mo4pc(R!~Qgg4CY>mGivsm7Qz5q7%C!`1%1 zFqPmiLlf`&ZabQ2+k#%3EStIE0+X#Qk8h%(+x%_H@;b_nK{@S14Gsx8-LwU`bC5Ix zWM(^AXBo4@3I7uqN2@6*_1d%ydBb-0jbygO>w?D)>yT2tN{&&XR`KSr$Q=pO5ClDP zuY+l-@Jnpp1v6$={g9k+s2OQ41)C35S{doNKs&H2`Mj1J{d`E6pDfW;T&DYeCzQ28U}lo3J0IBk^pVM?;H{ zIPX&bqe#Zvv}k@%j-aH5vFi~bdxyOeNi`b#Yhb3HhWyPyq$zz85KISkWAI{F7qa68 zFGWN5`xPCTqF+&3FJ~aTA88BtRfAc&Fr~4GUJi&%qLUo0J}1en6b-=8qeAhAa?IyS zm{uYyba8S5#4ah4PH$@%tBp0a95#@Q*iR*|!_2tJ*h7ytmIQ|(Hv^`eG)^tIz~pNj ziRVN^ANfPO5==WD<1g(RN)2Zp<5z>Bn|-$%{d@ZuV+?KZz~G>E{?cw_8qm(K2Hm;s zjAJ(pPMwdzbX8}@(>>PsL!bHx$-xzQ3@PwUcO#NkL{P1}S2wUcOo!~iGqzGmLHGC-_UF?0;iU2t0gV zihBu?0zh!t5qixZn#>qCJ<(s9j4`PvhJuR&E{1p}IS1C0tidDRdYexSdE4{)Mt(v| zhZm=~V@`@srA)sJChrKIAMlT8hIB04k>a-K7_W2m+-PJl%sezaAL+EfZ0@_bJ7Cu3 zIeNC~WJVf0xM;|Pr3E>4A#xM!ukgJWrp_C8YSY>5A!gqh1yc(|4|a|#VJQKtdNvx` z=@0G8?A7lQ%ntW7dUx@w`!Z6wXa@N;eM2eAlZvM`>>3Ilf164(U}_%I7DhwY_--0m zo=2&XV#>F0*R-3RD1Y>cEH;=q<>NJxd|2?{%iW69pE6t+t&E2L@GJUJQLmFtcer|C z7>ZzW#)e)J({UqA*P-0?V4fRxw}ISGI-NZP7VIIR>wI?r9eV=>5%u0a2|bK4#`j0T zaCvS$U5s?HBzF^%f_ZRnJM@8HaVmzi?r9p+l}2&`MC;P=M-QMwFcXxuW?!%wdH53z z@pO*A1EAq?gUe|iRB)}M5a=QG3vLCxXmd31M|YsIXehW-%%O%yXlKH@_)U)F473EX z8x!qODQ7n!_44*Ig*N-_XB=_X(+?~=qv_kU~Ofb+m^sgut<6`ND|>( zv>_V#g`|@MPaSevFv*-|Eyx%h(=+7#m#xpO)@dk0;1irklXyn3vFYKxLlslZ0WW0%nW=lnhhD znDJzCeaJv_;z2S80Ua5BfvEzHq(wZg8y;^{PPiEMSLKgbM&GIYXPBHLxTEO~9$}hd z``|L{ZkVPW%bE7QFdi)MjHb=Vz*TuRFnOe3eHQV0WuU2C(5F5^sz2gH4rHU^^QHl> zfGNC%{9Vf#E|?iEnb-1k>z{toO$1RGe*0D*{q1I1ZK7~ww5g6Anhop>Smz+%EJu=~ z;y{adZ~$ZOcpTn*Ol?HqUgua?f3N1%6n7<(29ts2X5bqzm8OR*uEWnTEyB3hJFb=y zb=+kzjfL^=k70i;mJVZ0o%Q@(tGVkq)=!_t46i^d`-xijCns3az)OlHCyWaP4@}Ly zvKfD4TVSUI?XaDP_WIj0*hh{!GvrM6YJOpxK#G#wOw%0t+OL?-HqmB6JjiH9b6`43 zvP3o}CqT?<-^CQ}fdwb5@WB)P>P(D0eWGz9f-p{f8BDi2x$A`+Z-*(424@NPXP8+G zG!pK1mYmL4>Up*~N0^0pF6>m&c%aRd8bm9_gzCs7 zGmgyVZ^;P|xpzZY!20VV^@rQb&|#K=i?|AX*z?M*J<7zk2H|XCWc)L3r>N4(vch__CU=L9i3z1 zAla5j!_#y8>LTKahnCHd33w4nD=j!zN0MgJzhG#GA{o6_t_RaVQwvvxF9x|ZaE)?p zBsPaYn92mF#>fI#aLvHmQ}Gp};r#>_c#U3Dau1(X8;W@wV^}TIS@2w#Mw|M$Fxd#R zKFM|D7ce$f-sbBxJD5gJDH%wneJ!t*FdeAzS|0Mh4KvG2t+vcFHZUhsqTwNVe)?QS zC5ATDyxWANr(g~I;MIvwq1Ll`{F9t-3?bGo!_O>Z5wI24hw%~so7;Pm)Vw(|9#ded zAe)xk6sT4o+taC`XuT^6xa^qH*L@td#wP41@potH!_M$)GC8Hc>Q^kl8O9fdoWZJ8 z&niPJeD@rbyHIKe=Ul~GLi6XaE$f^UdduIYg9LO9cKQ1v7 z5jbY}&{99~JmSunQWFo+;{Fvdjf2@mpQ_6up)%6^n)&QZNOEy{-kMIpf~Vx}R!Q;F zkzZl_g%w7s|J>ReP3&ZqFqOt3*@$++`gt|G`y|YZZ)pk?nJ_aUdRle6W%jfI)9oUH zBVKUoeA6ugFw3U|Ho}bPU4BJ5qto&nb6bJYDdbiR%v?Tkx#Cv9CIlTBeKQk%ZtX(E z%tq(M*D)4EM!?J)A2%Zv#XIR9e16E888CVNxv&|vY45_c+8J7+@dfeKtoIid!$y%5 zY{u?B*jX@~l`FhqF=A)Hw70K-DcbXwcrd?TxmoNm4k;J@#fZm`!}KVPx#Nj*qYL9_ zac#b5!xTLN7YW_yZ(GdByn|By!3&;Kd5QBPQ?=_SUC*S#MtCE*(oR_zZ<6O8;qw;y zi5IhyojJE357wO)SQF>4CZ2`{%RRUla{qt^mz)0RLrCqu z*i58(-!v1ZpvpqvI`;v8XazSkzxOME@ZcqWb%plKCGl%-JSnu#AG(xY^|;tLG{Znt zm<`j044a|*e(t}h<{f`1;5NU6K9Xim5wl=2&YbG@z!Zzv+=yDOD~vaqv>7mMeAJl} zjoby}4hHY5AgJpU!GXIiHTP3FbHW~l$rU(Ua@6equi6>DJvjlQX=C!gjJm(V%>5{e zMfzVFMDckk;R`SIt1qL=&!9P*++njLA5&?@jQ7?!+fRq-)DY~V?j5jTo%y5ZF}y!Q z&CC#a!#ywa(=VsKJ1#S`Yl?gZQ$(#7yuO{V%rN|SL)6WMDctc2EP-OBWt`@?9q=+N zxa@G7UvBmh?AwSJ!OZ*WmmsNip3vcIPs7aQvT7oYt1vXUuQ(DZa1iB+RKd8m=Ut*F zkQ5DqYx~HbF!mkxgHx_BUBo7y(cWwsL%uNTeg!k3Oi|(_&)8+&9+(ZYVUBQrD@?Wp zhpo_8{Oa3*3WCQuTKJk zdKB@Kj^=ofbd83na%ze@OcDvW7YlMR>@OSMfazM$*l^Odb!v9!z*LTi!BPHBn7uQ^ zqIw5r@A(j0j=s)zI@sylIZzcej(;aiu^Rs(KK@vnrb@eAUprbXkqcqQ^R;}QfoaR* z27z9xJ!FN6kW@;Gg)r;qRPz8#%aM!4RZ%x|Lww!IO~=6$Jz1)}k8t}9e&P){{TFDp z@abCyleRJxJmzJlafTHz_06#FVLBEW^T*s6cOsR$&N9|JU3&wjjfFjNIup=sRotgb zkmMnziU(l2$sO`{ji+B9LIc~)*mb?hcp`Z*{#=+YRm}aJtuUSRxg}K`4gYkLU%iU1 zux|y;axp;XFNJCSaHDrlasosX!R!)q{;)}0rtaY4d$o0WfAmB)KA3FhL3b<~-muzV zdNU#Zm|H?lmN#N~O1S10KXEmh6}RGKUS&Ri(GiJ94ID3<-DW0=&=^Z5z$V_pMa|aR z{B+Q5b9+4cvRy^af=%;B+`?^-&4|1)Cb8)q41p0RAolYs?+o<`-QicSp`v|v_=&gD z^5{F2QnMzM60W+_Un-Tm7FYHwZ>5TLh(iL={T@-9CvRAA3Y@ym?(bgGo5}Sdr+Xt- zrGz`L_Y-f&yhZDcAF;6FR-3@*gD#YtgR5@{iE!7>QqJ^Vs4(u5L|b>!aay_xXwI8M|-p^V5aL-|sI4 z-AVTw2g2*=-=+8ai5t*vvs&)9v9f-K1*cYT^eW!qdcdzHPh|E38o8Q9Dee{|4KMDS zf&2D&uy%Q|W-o%79fpMzb~pLycZJgGZwj^mZgrGx@~csVHu;Hnhte9O*JZlHhwY|i z=p^sakKM+b&1U$QmY0Z|=-=efD*l@`>}>H9@1edee!79BK>aO55wFRfKB0&F#Eqe} zgojLrg4iCedB|UiGPKpN2I_BBP_N9y-M0Ga_Zmg;mqWtGJ?vLY@h~poRZdF@-~O<_ z^gf2`OEikJEP4j0_alDd{b;X!!~`9Nmc8ann7MdY2J;vG`)u%D<Fqy=n&diO?;$>JSOY)lLBslyW^St7L)t(Y=U3_Pfx}kJRc;?f7;zQJ1^)yRef7`yv_ei=e9$`xP z$Hy~+cg4p)V_c$T@YrS1?cB|Ns&9C~_CW8h-){B?uG4NwPJn3V3l?s@-p^6w z*}m?==ZrQm#N7!S7c{nuSwFVMZ2SD3KBnjvm<&nqtL|Z`eGLtEZbJv{Fg|8eFM|dr z29x?ZG&nLC+Ha@b*$rI+ty9&T(BKqcQae6hH*=&II>M`5NBpam2JNysT+1vk^B2mW zfthp5Xgsd{3)Tp|?Cvgr$wRnN1$zW0zcrEfPnbECC~e$}wrfGo6|i39bj&rwi*c%l z17Y_iKk*sX->EN|!ZT7@(PYkqn)nzGmEv|qE0ZD0%H zsY;Cefz&_9mbTkZ-;O`UcJq$Iw7!vtcWX-{u>ODFFVL>FpQkT zw?5z5eCzQous8?QN2q)yd{w?Q`1gH`;ArhH;HwJG=bONHG2aG!|HW4oUdC4+p(?uE z;uWCE`+W7;AF9Et`KsKteD%3j|GtnBOv5)olyN0rWn9HqAEC?l4!$yE9bbLwqROog zv<6lFF3W}D_gF3z*WX(TKKJeiRpEVnh4=GSfd~0&gdXDCitmej^${xlWf4AgQ6u;U zU!}jrS0AD3jlFG!J)k~9_3%Bu%CMKO8vKZ_KKn!E`#4DbJF1?~_$vK#n_d^u4|2Y+ z2|_irkFPBKmajhl36<}AzV-Zd&xekRsU2Rm3qJn|RqR)rPpERgSzZ^F?+>dN%Dga{ z)vt&O{T&bbr^0FApSH`|)x_rCAF7>Zw%&tmKB1PtVW85F0M&k5P_Et{)JG`&36=|$ z|0Ii@`1kz+gS*-c{|Qy_Wb!F%cZ)qN_LP#3P+~8Bls_4ihoypAB7?1dsKsF+d|Vcv zjzS-yM(_-a<3aV{ERa9W+5D*D$s!h&f11@#2bG^&-a)>ZAb*@({a94_*)~02exdMI zYBLCB&;n4ZbF5ydhR(P83#?u!{e_m-MK!e0>V*;)@gqIAqk>ONf-0y0&Wfx^~sjt;@+@5ucBUGe{z)BgXF0a}La<-zBF z2i1O1f$Ctl4?cBK%jRA5&A_ig`NTIipHTce%Z1`UfLeCHS^fS{Nxy6T>w^#!{L>cL zA8J|Eqjq6KwPI1CYq?NWBw8+%*w}KR(wkV`Bux8~oAJ{KJPefcw6Ph45|83X1>1r$ z;8-awD*tho3zhG9Q2LXsUMSw#@>-0cP=PKsL8v*6S}s(2vgJbYQ!MtjdZF|wmJ22J zwfa zKlWNE5^Rn+HeseoaQ-K#Dao_t^KJS61{Gg0q4e`C7plN{mJ20b zV0m3sIZdrTLiK!!<#kc2OXP(5Tmq8;{{odzsUM4~@G{GV%2#Fie}l^E@uPaKw0M;* zf7NiSSZ)<{Q3ZUf7iwLv0FMP9v-}yGE)4sXuZNEF*S;P~2&Q$rbmXnEdHyG;ws+X_ z&)f1s>33Ot!QzWHU8wYz!rXO|?iHILRKly4*G1`HLtoGT{dNAMaOHU0W)o_#-vyQJ zJ*%&a((kqU{h^XRu<3PCs*m_l`HyWn82r2b&OWOUD#JIRRNq;>Q2OsJ-yh2GpKN+v zlJzllSS#<*25j8YiARLYDoX#mp(%63Y{z$O6+QRT~vi9TfI>Abhlh6-otWX z3;2*2f>!i!o3KAr!4ae@%jx`xkGA=R631FDRQfoJ<3TOtvn`(l>J!IUTo5X4s?9hJ zRKaXe>tMDLElSjXZYP|>PiJr?sQjxz8KD0HQn&`xM<{-)h zaU-aqz0dOdL4AZW>>;b)YWWkO>U$RCkF(w44p1Zgg5@uR@;~QQoA3sxk5C!+Slny% zLg_!UT&N!De`FPYV)a7tPeB>}IjE$s_)+<9t^RxI6%K#03BO4J|C1k8pxom1EH<#{ zT5JqzJ8J=|p_U+joWuB0dHt`r!XqrU0aagHi|s)F-nT=|gWz>6j6crt{HW9kmUjX* z&fP7Z0_r1FtNOozmA{YG?+=wP)uz`))jP1hCcy|ng@bH`gKYt!Di{jtG(N@Zh3Za* z<^TI=+TU+Q>e+PLfKZ!TE~v$OKB%M%`O!R7i2NH=JxfU!>i^Q#rxs%<)Wb@P%WTHW zZAPIAR$08l>V+zIrN!k|FO+z#dN;>S>^f+s*V__W1sR=?fy9Ts<4{fib~24&!GP@eRz)$aw>;QKcH zW2^tv@-HJyf(m|vLJfZps=yDH{|w5oUoHQ`a&=$&utohN&f*O~)#F-h466R-HvJ&0 zKg8-=$85sk7TZ`n3RFeMfVAlx2dbizYw3$*Go4x0nrTq;d?#oLmI{IE6N04k#a< z52}H4EnZ;pLQoZ71j@iA7MI%eN>B|fvwHn&+u~Q*^s7PsI5z~y{I5n(hBX#%16A=_ zPzG$U`nxT^7t}{6akJHL1!dU779Rms?_;1oLZv@$@d@dV=PN-OpOWI=U_C$bA*)r% z)i#?@QR`J(e7D6nK(+Ix#kVZJ4eBFQbMILFyH;NpRsKEnT1=nXbTAh9;#XGjKS5Ra zHRaUsH=y{pwjQBo{1?lG%J-Y)LgoLxLC}8*W`;tPQpS3qW~u?Gj15)WKTzlC<~IL9 zHvb_ue@mNxe<)8ljCA3VF?XA9p#pA601j|pfc#_q3vb-~>k5D&B zP65?mU#pK}OoHa*G*D^7Z3bZ?d^{+FCW0D?vut`@RK-)!%iw7?U8wvS7N>*CH^cHA zkWXhvf-=sumY_;NRM~t&h1KPt>bctLh2qzOYUetu7fQdv>Tj_6x~Tjst-da* z+^UB5xQP%9>@7BSfqzv0nw|WzJ8h3{>GPzgVPNnk@3mUw~|m_=o6W_evy zzUJsi}fgZyz)Ebk-2 zr!H#R`=M7o18llb2AyiTQ0b?s|4JBS6Y8QY9%}VHRNKg!!Y%@*;RdAXuAQaC4)w68NXIRVuRZ*_R*`Pi`mCLidE=pBu(_>{;m}@is zH`s;>Jeyyrpm>etLK$?O<^KuE7jstF0xNBS{h@~ZCeqcTn=P)k<<{78LK(8w^8KO8 zue0d}nSTkIf_p$^*l05d#qR~xqx&sB2x{&hvHUSm+vavqpSq~>&!HFA*!(+fz5uoU z{-&^81)jGVh2pzFMcvn}zAnnZH?4kucogZs+Vr}p_V=40XZw=^!6mI)<G{C@+3_WxrA8tT@zfx4*h+#bCQJ;A06H4-OTE|kF?t-iC>|AnS~M+z0}YBT&N z)QI#YpPaIv&0iNaBB$B<2HW(yD1(NeS3TomHp9681C-%s+VcMi)$j!JDgRj(drq*AqgC`GRVWj5nHn@`x#U-3<-)kGysVd8_0M-7Lpguwk*fmyv z9azsl`5y%3P!G98 zCN=no%_vmH$1E4BfyXTuD*Z`N{e2!(MK9TOq4;Z-3sru%!J+)(CUTC_p#+djp!Ga*F_ofrPT|?zmjKa?fqaCKiUjJRrH(H|8DhlQ5F1Q z)Bm*TLKzq)Rw})oV&=a=rN`>q3_|s!fi2k3>V?v~R-b6~LQO$SP#tJv^+MUw0aUr; ztzM`GPq17Fk2xnIsHa^(73c3?60qXi!cy4%A1ed}mr-7gf&$s}E3-QG({|Y)}W})!;Lr zD%SsvCfo_?BK>tx?Ysf%BNTsA|D~%6?zIU*HSme${|#z~`N8I|i)!FUs~4&Rzk$;K zZuP&nK#-*&nHfia#ZN?LT@xORS{*#ZCJQx^hgvRF`eBv}RsZ3Z3zgo+>W{Q~q4aI7 z{%BD4b+GAREEtH6Rv}b@&Xx21@6()YFeKcQ~3k8TurrUY1^ z_zP9>7^|;~(w|}Vby51U=$nICpm?^;ClsGyc`e53D3l?`^17%I$VD%l4eIDuV)0z? zSolhtz6w-5H-Y*H6)5ktT&NLRZ+T3D3Ty!7qxXZFqb;B!?=x1v15`z?f-+<`sE<(m z4Nz0_uEme6{u5C3eF@6&A3z!Kv*D~vT2Te{)S5*ZRNv|wfU3B$Jx=78!*38>G1 zgL)a#DW!lc*JrZ*s^Tmu`207h^4URdgEAzCuU7qRzA~`DV%_(zgU3B3B&dQ?zWNB& z!~X~GU&n$W`|Aa4HLn-3jphIUzkhAlf9(s{LGxTE?guqO_wg0}Uwi-BwqN@K_W$em zug86Edn#1VzOY;<=Q;5Hbub_Y-oKtK@8Ba;G?@k}${cwA`hWO7_JQ}W54?ZP+1xIl z{k?asWhTAi?}7KPlZi46#)0>*|Mq^ieB;3T*Z=7~Y;8^l-oMt$sr%kFG~m)7c>mfQ zVGg{1ec=7;1MgoSc>h|lasMxJD_S0S|N6lD*9YFeHaq5l_pcAUe|-Tr$#o;>LQwJX z!28z>gdWo!c>lT{k1ymJ4M4d@Lp{#;2kK$cf%mWV9=0y!54?YE9yuL&|N6lD*9YFe zCLkPm|N0F3imOnY$bt8-54?YU;Qj0W@Lslgm*78S2wqpI``$IHDtI4TZ>$`6|61>D z>!HD!I-343Pyy+{``5v69eDrx!28#F?^++BmWJND)<+0G@c#9I_pcAUf6Y?R3#fbo zJn;VYf%mVS1Mgq|?Y(O)4!wu{|Lpy1-Fqv2;O7&LRy6;{o;BJ#9jE>=-(TJA^5fQY+SXvnM7QCp(ieU@;@I8i%_{img{wdK zqSaf&cAwC$`P4D5wVsqPZ(y@2oi~P>eR1t6IhTC?^l1Z)-zl+1d~Zx0Ng_1$$>J&}Fi(66T5vL*4>!|R9IJvs5o6fd0IbL8t8kJRa;UXG7{ z>W_bM#}yBZYI9v;$&c-Ot-a~{Y-iueO{#7<;;@kqjP4)ZvUEnn+|;ZmlUg@@uj#Bt zzl}cgoMoGOjEYqaT=HxFd)|VLXP5ZrcL^8uYf_morRBlvUurS$tvx-CfHxL&wd%X6?D9%S+S8zkR3Q zsVhVE$IjjfjTat#@p&IK+4%4o2hF)Jbmih3a>l%!_)^~vSGMo@*<1a5RoYU*# zX>GnsIQXjOKTrM8*_Au6>Z|pQHtc+3(Tt8;uD`n1x(2sx`u>?i_BL->^X#mnUz+&A zim?8T=D0&_j1Lr8|HHCper{C1)7|My9y@BnriSZ(O1dRF=(ygO<$Sho=_l1_i_#F70!y8qpdKODcc)y`1S&*ja2|N7IM7w%fPY|gqap~A#{KM&kc(C6rG zqYqyG{%cP>{>y6q%Y<6e{ zFI#Zp=eNFluW$7G%fAlQi5&w3M@R&bQ@VI}s z;0fQ&1D^CV1W);!1W)@(`M@)NuHae!F~K&!bpcTA&k=0*w+Wu}k1hmi`~`v?{w~2z z|AZpodH+JeE`PV+1;5)I;6=Ye@RI+o;AQ`mV&E0OO7N=xiQqNAe+jVLzee!7zfbUn zKeQBh(_bZc%l}#Mwm-TI*yGW^13f}YY7VP!idBFRAhTsE#li))?X+H3g zpDXy-e+-CyQg^z3U-RSSgI@Um2)h%wnzs1={|zS!Aw-!&SB4NGvk-+4H!^eyQ3!D( z*N_mo_ZmW0U1NxFaSbW65M{W8uFOJY79#Wi^~v)4`TZZ?-~YcK-tBdst-a5l&OZC> zwQ_=%y?yw)S=F&;>n4>hd3yKKUN;8TPW7}|wQl#0Ar{q_cAXkNZt~Q9$6HUiw)a%G z&GwO9Z7a0umD=+7yXJ+v%TU-D@%YF2dguK0cJ19M)ynQ_^hb25pbPWOIvhyyuJ=C7 zJZ!BJ&WuYv{+!2G?r z$&WKm{@J_2%`pyhmGK|x$t7xDyS3jgD8yvA?XsfzXJz0u(}zg>M2inFi@Vb7Z*PgFUdo444<2~bSu+>>(^Q<`&ChfXc?)onint64+ z(q1pH%=i0WLln;U>>y*)=4-;2cDrV%-O)T^RapPH*6}&jD~4FPoEw#V?ctX4ZMrNk zZZ>ZDx$f(odakGCw)umNo0aiuVRLKsur9A6J~b_V{FnC4T#j6{E9DatHsJiE zYTX?#EE@E~62JI9SH^}XB~QJ-qCPHfS$oRLKkq+TxgqO8!xR069l4&<+;(4&@_*!C z@=mVf>t5cr*uw0bf)#1jHc3zBKYe%V-}cu&&+55cI=0Iep2@sk{y5(j<;q;^-YV?I zhfS}Xn#N7(v+kGjZ{pj&o)q4({n^f?8W#KI&fM~o&35^}-j!7RPK(eH^IjO8TJ-MI zfD6?J{+;}!L(l@fz%pa`1C#HAAHk1q2ueSz&Ihb0v| zoLX49fnS|E8~1)b|N2&&6Hm(?7!$X9-tj$;@0Kd}X?o{Q2hNU*P>$10Y*d?RCf$r* ztNGJR`l;OMCYI`%K)!0hNlwMg09K7O>0&1D)bCW3pnDkTIfGj7RqPC)K;W~$N97R) zB+LZ1g#n+{djX$tz;`C_Rc)RLn9l+%!%e!G7#phr;U;}mvdAIC*i>1}qDsJQAZQj~ zruGTg%mJ#*28yb{*+81WIROi0I|m4j0H)6YimP-1hq-`b1YoJAL;zU=Hw8+mI&*=@ zdBB3XfR(x`;1X$K8MZ#@Y@MFZYaSokF1zW#ZM);HZ=aR3rD)emo_VQ>`}2)HZ(kqi z*X#ZHy_w6(-rV)usiA%!+I)2nu95uiWuMBK4|a7e+-Kh|Z^}~sJ{WGz$TD5HwbO%l z=Nvvw8x(Y+;rT6p?(nm;S0z3l%PiIV$>_HZP2V)EZd-9-2cP;yw{_1+aO~z-wfWMD zQx0}$T&?fQE9z#XiB0#GZ`xgpHmw^_tyrnUCr@0tV!U&Dv%k-!WCk~P92j9yG;-*e zm6NJW3vLztQ{NKnop!{QO#3TrWqHR*b=-#iWLQwT>JN)&t>({Ttz+i18J^8!GgMG5 zA_4c`fmM-!t$HL-AmBM4sH9@&0||csp9QM$eUX6ApTM@?fokf#fcXNz_Yc5MZTgL32+neboy~;l^Spp}YU1|%#uvF!fO z^!fFsSq?kbrq;uC^E>_ArF+#mYr?{Bk1BUF=JmLm76&_>jr*z0%{pi8Uv8RF{{kFV0@MEjJXN|t zmVo05pr@L$0*G7%+!XLqbyfl{tAPb8fj;W0K(0WWRe-mezY2(113VMxr&_EA+}8rD zRs;RjBY^?|&o#h66}tvVhyy+g_$rUJfX_N$+gf0-dM{wU9`KC={M6<+AX&h29WYGw zUk3zi01gTGD~t7jO*{~^9vG?i38V>B*#HEpzzsm?M&O*lXk{A@IBWu@#{)qsT_8)q zaU(EJP1y)UCIB}Df>oVOfXilJ!6sm$x+;(hbg#SR$W)6Aqgu@}o*74%?3(baPyf<^ zFY0|+c)e?OF4mlR@JL&dd--lNV zlB!K?;e4^j$kv9$;G)&$e(mJjWNAa&(jB_>xzhCg=3nCOWeqj!)AGbXRkiu8&2jxz zo2|UqR&8c8Oi_-v{_60dZ<` z5|AulnGCE~{gZ)!{lFoCcxABd3`tPih8|99cux{+R|Pqn(&;Yh#Xk$-=?YW(*0xar5E zB>jE$QkGr2Y~LEywtZe&^6v+apFTd-y5gu?*FDz#JniM<#lN>NztyO08?# zZXMpVx5d*_ug0tiTz0H@P5*ku)u98tJ^tFE(O)f|m95s`X15m~y1r}Oe6`80Pt`12 zRlC}FSn2gE&j%K1eqwHq?T){$oL70`ton|fZ6@|>xzVe7sv$SA$AhVScP5u|-xhDP z3f#|HhaO}zoZHW4*s5#~01k(M=?8#qDqSE;!0{lkLrpmdL>>li0-ig6T*XccrtUrZ zcE*8@2R`47S$LuIKLtS#Jsn;*eeDwEw|1Y2ZIK;~jqD$dc-!IU%+?R%)KQ(9myqiTZJNCA9~1KU!7BkH|? z`3b=H7?7ei9|Mwsu#Wi`>Xe@!nH*8QtmlWon*;Y8=`?NJ@m8_jHja<2e7VRv*CStg zRbM;jSo;nyhYWt%$)e8uYvs>1YO(yZ=lGtBj(v{%VQu&}#{V@KI%T`v&iHM_zSkbE zKe-n9dDJ0`q(8mae(k%msqaAJ(56=^?4IV@J=xf{SId$qL7`V1hqb$Za8-hP(2arR z8l-it+@_}TP35F>=s3%psw_^hyf!B}_hydwFVn%dZ}A14Hn+TgwBo@pWroEBH=4cm z)RPFcq~>9leW`;NhtIFy&v$UIjMh2s8(!S4Y1#Wq`(FR~=g-@IxXO<=6HcjpGTSs} ztE!~(Jn1Sh6$m{AoD(>sY)=9XX~6W8z&VvJkR{-F3OKK(oB|@#ftvyus!kfxt=K>V`u__ATmTLUK!Jegf51l-`yY^y1$-9xtURs& zK39QlSAehTy@2^Oz&A@i>X@i4S@Kaw#PTX)YN7^QMFOrPhY&vNSX^Twn;SsTHK3^4 zCy*vkBY^?|&!<2u75fxOcn*9PXrnxy z0X{E)ZO?#q>b-#ZOThOz;Hox12a*LWUjQ9d{}(_&9&kv&OT}yan6~fK_jS{_2rHfq>^bV4#Y92PC`)J`4CNj{?Bw z1F)?C7_8n4n12L(-vfSX^Lro}=)UbuWIgZhG3yUEd6Jv^x^lzN-hX|F2x@lWd4={v zCM*fsVR+=brr+6qJzN5A+-ttwr9qAKsf`D_^*PWxd4pN+_eL9kc$XNaEIu;ZfKNQn zp$|Ndzw#5X`3$6f1V$>WPe7W0{bwLh1%C!YzW|v6qm|tkz~QS&Nj3M2Nmt__l_8Mz zl^V`psWDE4e>LeB9cgN*a^!Jvw38{@)Y#NAI@*-0`RHsO=JHUv8S^+qMHvGzCP2Qx zWaVlCxSIm;CcqSxCr}{ZZ3;|Pai&0m0WdQF)0LM2@G%1t1;UiE8DL%n@HYd()lPwA z0qY{bY~@!32q+4q3PdQYqJWJ#5K@syu-L0q>H)3KdrpNGJuEl>$~NuTp?dX&_NxjWR9`m|Fqcwko@FfP*y& zoUMT!D%=`~EDz)e>{L$W0hbCuba`O6$`;5KaH{|$s;CM;j17=4kfdB~0C!s;-UisG z@&pP5ylsI4D$W*2s0f%<1P&>$ihxfgAW`6mGOh%eR|fnm0V!&yK(c^!W#G8-s|*BG z0a680l~onMrYaCp1vsTr1kwcTs{-jNxGE4@4agKYqwJ~y4%LB(YQQ;_A&@2DTpc*C z!m9(3c0i6mhH|n4TxtN(cEBZ-Es!hVRs+aXQ8j>=nn1q573EqJaIXc#*95MrJb?lM z?^?ih6;}&Lum{ZSft$+99`N}INEEoOjDG^mYXkm20oiJ&K(c^!ZQ!2rs|^G=0I32w z%E|$-sRM*K01s7)K$?Jk9pI4)t^m(F7Qlc2xJL3*8^Ut@OnUG zeIQ35PdU{GTpWSu`oL?IEs!hV<_P4gC`TZs0gx~7PPsM!+#3S%4S@G5PoO}+yCLvV z#We&H8UbdFfX~XS5#ZwlBno_0#&Xg!Zw&Z5nQ{$ds&+YXTYHu5aA41stkcF0q15wDHYxf zh-?nz2v{kn=75U}5ZxRotFi@h1>9T!YZc`J#IykN1u7`l7Jz$8Aif1)tMUX21iV`U zl~i0yAfXjt)(WViyjlT1t${>=YRb4ZVBQAsZw=U~odU@M)@^{A%C8L&&=%mU&E*ot zsx4sC4hU%r)K)11X#)1`fI2F;9T3_c$P}oj?Aikku0TY4z)@ugWC=LC0u5ETD-hWM z$PsW-P8|T3jzDw=poz*B$Q5ww2so>#jzCN&AYY)la_t1Ty8-c?fEFrGpg_Re4QQp} z+<=76fLUjtjq>UY_;djh1==a&E`Yf^;NJysRXYWe1+3kHj>^v+2=D+>1>BUC2Vm0` z2=M^As1$)T0sF3ihYIcrgmwcm1-dD_Zh%8~Afg-KsWJqz1f07AJym#jAkq`a5%5w@ zo`6daAleh?qp}5Z1>AZ7-YTjG5YrRL7wD&4djjsgfcTz3f0ZXtAmH5#7^vcU0SR7! znHS)zyu1LP-aw+jU}fAJFz*BS_XhmbPJv_r>ps9R<<|!Y_!&qQ@K;tp12*13$j`t? zl_HQPVDAkCs$g#*v@eh;Fk0F51swVT5q*ImzONm~5^(MZj8ozLfJh%8M<7@^`2a5c zfoLCKqRJM?6>#ehgs7xYX z6jyc&0EdM@!~(!lWe8*mI4=ZBsqlqBq~ewU2}=R9r9c(swG{AK1|$kpQ^v~x^Ju_- z8DOV&3M30yM*}sLUo;S~97q+gS60gb8wG?c2WqPnfiwYo1=LZ&3J8q>G6m`>yBNSB z7Kn%e994!umVk3C&`^cP0+D|KIRZ|~=`X-#1rYrg&_rbmtpXBO17@p%Hp*)?;Ijru6lkZ6*8t{g0sl3CtJ*1$ zEMUDB=&1bG0s(PAs(_oaiUVxc0U>cf7nLHACSbn~@KC|)fY9|ora(7kw;piV07R?@ zJXMB3mVomHpr;Do07S+EIRakFDIRdy2t>yNeN?tUu7KM{z*|La1Y$M;`2ziv>n6ZG z0f^rO^jCQT1p?j)z(5t303>V%%r*nQ%4;*=vjs>L7_5x90Onf(|1E%@+9{AMV7(O> zru?=70e=Ij0{+VCZ@^|75b`%LQl$u_3D|D~0#)!fAapyBDKJ{uZ3i5701?}PAeAAI zCE&aR7^lK_0FnOyIRe4T=^wylClLJ)Fi~X-B?&l;FAa>3WO=+M8JG6;GYPDtDOSL0@izh*~)J( z5Re3<3PdQYB)}#a2uT9wsT6@U0sCZNz6wqTLiYig0)HsGeSpJ$AYvb|KxGJI2{`Wu z7OC+4K;!`+M<7Z$9ROSo0?`M6r7Bw>SHSHc5UrvP0x^exd;z6g4*~9nf%ro}tjZH8 z5b!<>tWa@>frKM~*%4rs@;U~fX#6rhz)t0K5^y;MM4tq9t89T>0k=~?qKY~N#H0cF0!hj>4RB8f;?sbADo>z5z&jl{ zpyJYjgwuf8Y2c9ZIt}=o0TKm{DC0AL`B}jK43MIB3M30yp9PL9zq3HVIUrRaRau<_ zZ2kp8&H<-Xia?rx{l7rE3jP-eJr86GoKbe?0f!4f#ChPH$`HsBaJ~SXSK$|c$P6Gy zAVWE204^7S=nUYJ$`;5KaJvX(s;G-V%q1XS;EHm+1h`)Y;x7SLRh~eBfcItKx{A9D zBxC|+nZQlul?nL#2P6vIR>uDU=2rm!|A1_@Qy^Ku`U-GQ`CS15vVc^99A%XS*jxod zvVeywMIcSU{wnZD1z!b1uK}3?Pn6v?z~MR&am}=w=QHW^s0YJuZx`FIN&noS(eI~r zlzf@!(06#droZe7tL3-+e)x%u)0-#99{W4&ft#hTtG9oV?$ygbSXOl1=JzwV4}9hE zaovjn*0hV5+IT+MXXEEE%&bbyrVGdI{CeZ2U-E&c$5+-m)%`=XlX-*bZ|bM5c_ zJ@nDqiz6>?NH6f)JIVaYnqvniJ!;kPR+puH=j=$Scee72o?Yvix9{SSJbXjX=T%yb z9c$dbbID@&|BuGkydT%vHD%skKX>tYH2v1XWdDwqQ;k*~ja&9;sAG#Bld5$YHuLJH z%N@5y3|wXVck3(XXYU$ctGD?lGxL@wuGMgS@P4~jM&3RedrWP*7pvyb)p^3O8o_NW zT5m{Ol;zdgZ|f-Eq8IGe*LmM^Z1TR2foWa?qK!hkB_6mCcI0dE9`oXQMeK^)Wc0P9 zU$39L?)zc2U#sjJ?4{hB?4jvYUtKB+n4@uusu%n>Zo?+W#=1nWT-YIav8l7DvCkREdj zPF>&nqV)clUoBpaF`OM%r0jK{)%8}`E+0Bzz3KdX-}QZ3k6wQH{Pc{yD>wJuwXN+y z+QCe1)aP4l2l_eQW;-O@VLNQQ&32HlMgBe*F5i1>wdnQJ3z;7GPc(|`cmH+)bc5vGMM#t)xuJb3&Y3xVG z>pSn(ol$v6Vvr;-8I}nyFnP0rwE= zyR4F#{I~XcFf2N_wdBQfv477p+}rzG`sBbBpBLD_y1MyOqsC9pOsbzBeQSqV_1m%e z!$!}3`I||X7nZa0%FV8l`0(*UuU7+hHLF*R);(6K_xTD1J{$gB9^2_!!QvT38d#qC0eHJ(59=pUsr3i%P0QUER;wtz);P3#*6tGlwIY5>`L=I3&We7w*1e_lL zRx11f;F1gE2$WS$4}n~P=!bx{$`*)u1i0k_6;xC%;QkoM7qC^XkAMP!_(wn`l_!w! z1n_O0w7VqRT;knk_G(V0Ugy&fq?gbbpha}{0ab@4?wCw7iIMx zND~No4|u2)fzXeD{Rg0%3jP2%d;&5BJeA!?AWIc5x9%o=xT&%X`c&u%laNSF5S z`z7s7u72mr+O;b^!>!Yg_D=iZSnl)VD{an}BJSr81QcyGrCi3szh;hjSn99YJ&H$^ z8|!iXbDw}7uI7ttW^W!`+;;kb>P-e!4JzBJ+o!jg*(XkA3_o7Y_EWXHYdX#JJxM%NnmG%i@{% z=Rw{rnmx0s^t9&Uj80SD{jhl6>Z+`D%vUx;o6l^9ero<_(|*zJ2AY0(?Aiav<)5~| z<6hnDN~4bs@fq@OPDakc=&Uz+dpbKVDpq#%u(11AWiD?m;bt^6 z{MgC7vqjcDax4~gCqJxJoMFvuhu0IQ`{o#y)+#n}SlYI(cYavPGB(&K&#!C+Ulse6&EjLiX80^HINHO&QEO_jjNWG8b650x9wzfp z`5Nc5anbJ#1sRf&4I}(Tfn_I z;AR0#QBf8^fk3{%ROMO>NGJis7XzlNJOLj|z`HmQrs9eN<|P5M5?rG!JkdPmSCS`6E6o$7 z3d~nlrGQW?Afy!Vhe{D}Cc&gEE;uh+(4s@6T2+B*@I;>0z#0{64Vc>kp9SKSM|mJw zU|V@$y?QSYP!aI00K}`!6#$z`fTazvN%gk@(gY3(Y*rSwKxkzk$QIbD_6ayt0jg94 zwyD61K$gHcfgQ@W5)fGxm|h9ksnP{pssWCbf!%6KWgu7Jra+>qQw4~r4lJkwB&n+c z?sh<%s=z)qzba55@J!%7fMkJf zcEEA<9xy(kylOB?RhwmWQW@7|bV~J?QJUH*qjY6a%g`_E^pE@Uw>sk<`E|c>uJXH9 z9!W>;yl&rd|FJ`_+ok?JsQ#3gve}8pwvIj@F}~pZiOF$SMwo;}eY(2)?aPsOyH~BX zd9G*7m*qd4(d0iA{XQ7REh#%ZJu~FN|Ch|z zq*zBoa}(o7Nf`|dtxSxMC0RB$3^XK`Mm1tVyGk&4ryXA z*Yjs)BW1ZW`Y;KzIgym@V(4RRGHZZp*3vLTYFDmL?QbjMHO%nQL~LanY}g3?e@0oH zu>Z9I- zvwllz&KjU6KJ$HIlcJN84%-_J7jExS6UU8pX4MO~UKb(DiT**8WEX6W*3U7_Ad{Z$ zVK6tnmtd6CbC@B{kTj&FVMF0!5Arsc+ZIjvwg9pf9gh`$x%bSrjLXTw$bn)}gGaJ~ z{!5DUHq;wH=NX24E7>eE43TZvsc<)+{hd8EcAfFJ zUEj)3SjX5wxwbT{_*SmJ)N4XR#RLa=A~j~Q!NPD*mW`QDRd-?x2D`%780#eKB7>~& z#9yb331OAj9M*LUU$Y~}j2kL7>hh=NrN6!OzAaR*rG|qh9_gy&GQ&`g5?QY$@^ojH zv3P~sOjhQ6;coxoFyw_&)?^+Fk#r}vB3O z{E9ny_V15nIe7sV4i9x5`JYX{|Lr?}iM!jZY}h0HE17BeZ?%mcYm@)Wpt80n+T{O3 z<>XN~Jk=)u-Cgx>WF&WvzAuiQw&&X9zt*Xt?Zr0>EBp@!YHEC`E6V@sRa=|fl#vr{H#cG`4&AH3P9OlWk^Q>h7Y=8 zS<0OYh3}}=#>v&lQ`;wPoI{OzYLgof@+7iFf7bRzTLm8X)%G<^qkP%%K#lSZb~3Ro zsVLiw!B|^G%HO{q&;*l(u0)#3CSx#Q%(8H|_9L}atd{{2Urm7cgdwo_XfOrF?|tdaslIbE*?<#=t@+GO{3)YF#NRtu|H+-NAH zZ|`!lRQ6<;USk_w@h6PGa48&YwaKwD0OO%iMSjThIgrx2US(ac4t7)R+{ zRsE}alykLJ(^emo<6MU7+8imr(PoFqQ#BxRXvt7h*OS9gju<&iYiVmlS&kTnFe7_V zUQlvu${`~|Jv~D?Ha)aC>WQ0RU9~mP))Z?cdx)W-HhGt6t*w!^W>{x!PKCyC-W-h4 zd#16j=z@*Y)kn=95rTU%`%WEySlF#Z+3kOLXZ5Y|ao?8Jjng~a!x zYjfkV9fyv*;5uuQSNtITqUwUlvUVW@wRz}z?pR-KUA1{&9@@HnvoNEsU^k83^$fdV z-L>`5)*b7rt(TsmoNDA-KxOdK^?Fclp-paC$jZyq8hjka(-?MO_%!CKCXv-PwAlt=4&b96m9^2cbK zYsT}-+KnQEKskX%>WN2F?xicv*ER+-)AqZzAWXgmU4}ojjir3jqL7T_8z$sA#*uT{ z7V3KAW&K0tI)P!4#$d|RwJp{*0SnU>rHu()lOWRaz5mt|}+%k{@eHyu>>#a27 z`30ww{Tf&4iZifX+E#0mr5&zqjkcNCMoivl)?#w>hm)@qt}g{MD8TXntJ zvi@?pAj1yEvUYQbskWVr<$#MI2FfzSJ&a|c=aQn@61C04n0 z*PBmyj4Y|F(SD7;Q|`qQ$eW5>%*vDeL3+zlF&xzPCuJvXhqNug8f!bOZ6Q_zlQ)_p z+7?kZ*7c5JVe%x4iTtUx3@N%|6lM7jB3v0C!(^Hzq%GEg@d;gTDP{RXO|evM%P1cp zGMv=YMpKppQHC^KZ@H|$9EmcdYgClwB_)I0n_%8XG2|Ccqw?l+Mq4c91(drmKFhcW zw>xg`BcHw&pW+MB4J$a$=g&>bNkeAx>FgaG@ z$!l%-m^{fwauJjFkGI-3Q9h2zd&N6#36xW`6=>Uxg&ouQUgH+<3?^?XAGB?yd{$mV z3?H@qO}PQ}WcY;1k-m+T()Lx?+m4;rXGhrtvd}w7GUg}y-&o^6;6Yu{MB7g6fHqT1 zw#+WF@7u&iX1d;PY^APOMB5(h2^PS(sJ2APMX)i9%?pj~zn2HEIWNmO+X9qLoka5W zx!O`soQ$RDtxyt^h1o|kbiLBL-hOPkHY;uNYEatBXgi2GhiNRU@etTtTRClqv6kAb zwH?7+w3XL(6lVan^Sr)V;gP9D8IsF2(#6AoCmixR>WlOPLK!MD(iZw*nUjj zkg8zpW}}njfUZ|V*E@wB)K*hl8g^J)t#1})lny@Bo7G-dJdHip_LH_V*b8m)RXuVb zoh7%lIcPhFMQE#|?O$v&Hj{B(ZRaU(D$4#Btf%n;<+-d$?K(H zPh{}W_JFc{B9Ni0wuh8Mv~|;#i+O45uI&*P7^cxv<73cYTMundu$J0-YI}-x)7A@< zbKo=5Sz8}n?>W{++t1owVB@sed24(L$`!l}eYNFL?x4I*@>$(S|H?=I>NUUWudP2O z8|@A0sBNIGmygMZ02u~pdrP^!HeYS;u(8^H(N=&B{AOWBgEhVf{dC14m^|?ZA|D84 z7^>@iq&!mFFm0c(LE46E`;572^VjwT^VT+^&^S!KfWXqE@YNQe%^2&XEl`^Y zHbC1bZKhanZKJgru;JRqXfwlFeLqZsG!_Bfb;YsTiekTL8>h`2>#l9QHVdq;wqR|= zumEinv=zrZwS`U8SOSz!m@@pT%@T9g7J|txDTy`LHd$LKYz?Qv+5CQrp0+f$gvWEp zZ`!P|3Dld5P5owJMrA;IW;hR=2Fkfy{^u|UZFBU*niWRY1m@MF*+A3jHb-e}Jey@|m(okL+3~m=iNcm@tHI-wJeEu3W!h?D zcUhRfuxLz{s}^>jf?TQoh4IfQ%pTl8A&#uo6aR#L=9;U}wbjOMVF}b*hsm-!U~-|j zh4KbnuMXA-lWVznZFRB6+BRydhczwEX<907(pVoXOGOzHv^ipjxxSKXxy{-dU`Mf? z*cNTHoERO~wpCjr>=-7)-f?br48XrsNxs4XU!UWwXVlmEeVt3rzKVy zJ4$)KuGb2a@9{W>9ndEC3ZV!SW|7MwaI5QXKiP+b-xM<4`y^v zPu!h}pUO63xUbCCS>v9VoMy$IGnU!(!irG7NBK2lIo`Z5 z`4}aaDMtAkdxPC5%O$`&#xlb`n1{9xjQMBuGv*)#8Q4NHLvO4GCU4&+nEbjgCLc89 zoz)zZ`Sru(EnJ4;Sm9@NA8@wD61rl4Os-nx^jr#)C!r;=@TyhJ3S(q6kRN~OY0GFE zgvm)vhO*jxF?p%VP)^$~#;m^_^)gs%985(y>SZX8$rBI3i^X%C3aT8V{o^$At`4b-m%39JqzsznY$*KX_4Bw9^$wU~)jpPy;hC9*K>lEbjq7 z>3RW_i?XEE7}wSoNcq3QDcN0^tjH)#uGM9zEA?dm%RP5Fjmjyuo}PFNWot~%i1oF} z?UXZ|x#XU6K%g@leIO~7J~h%%~{(dEDn>CS~E$TH19jmCVeW9`aXMl2xL7AuRppDx=Kr0t zyf=u24b~O^;6WeC@)8=N?N7=*wD~cXi5Fnrlw}yEZ6S7BFN{CNL!(9fkj*Z`2*$D^ zi!s^k^70G(RxivbiU)V~#G^oYk|mg&j^*Vy=37OhrIh7#EEc3~8D%*gi;dM5O*xl& z$jfh>w&j$Ma=^)fJYJikJja6lFGq5)#u&;Y^#LMRsysA`|~YW@!uC0Cv$hTVp&X?^H6((Y6tLqfKsw z$X3{d9mZtg=V?ozT#T{|^YyfwF?nB+;djPzENsCnix$5BaZu@sTfvgL;zDhIWAX+h z!y?A=#M`hhJh3cPl&-g(vXQR0MB5JR2=!z^mumZmvYd`(SSI&sWV)UFkaNBa(TwFu zc43t%%hD^xQg1gum^c_w_zDp=z4pxnv~_aR_S_4Re50G zflRPk<4b*OdCVs>)$Wa%ooue8Q<-ML#$kgf=CW{)$Yb(^JSES_bMk_`Boj;UR>Can z6I)LE6^L|iup!c=p$U<04AN~udL&2>1nF_Gi%2hn)npA>OXA3SvcZJCCEX1+l1*eQ z`I~GfJIFs|7uikrkVLYVB$0h&KRG}SlEdT(3E~OIl5u1_8A^U8-lQ+_Ap^)jGN^bZ zPGS^(Aw!5CX+zqQcFI1>tXh~mMGw-IbR*q~C+R`#2;CrzY7u*4Og^(gzL2j(y2rd@ zTtK8}g!F{)A^k~L(v5T{o}>ryAYDjjBE2DsOVeWs3fFj&FeCU?j^a-ZZ7 z={_Xgg`{tU^bL}}K+-2d`ua%U9_hCu-E^c|&TArlBc$t%^oNkHHPVwt{?JGIJxDi) z{|q&`zNL^wq>qF2Y3N3}6Hn5E^i(M~%_@ZTrPz=7kp5%<8AN=EE9pQwlD4EBX+v6& zmZT|1q%&zoniCh&l1O(6=^oLBv?Z>j1L;WIh;)-^LX;dy(mi51i6TqLBC?PyCgaF> zB3&c?;}Fgy7s+LkK`xOC;wc zA@@iFSqSN)ah1FxuSp&`O$P9y^dbF-bcv8I5I>VX#G6R>hu)+=@ghBmbbpZE4)T>a z(!)V|G)NBy>9NqBNauq#q%C>GF)kes!t8iZiPYtIbtKX$AfE+zK<<-9tfdpVP5BPF zMQ)Ir;cmkQ3xMkxMrlp2(IACvvuoC8H<@%IE%(6avTyvWv|kJqv1+ zpGZ9-9SEeuz$X?=Itc_5=@=j#0e&SRL^=RWCZR;y_@zx>+VH25=_HKIB!OfU8BL^} zKByS`-PYLs?(X?H(CS=!o9ku-9KoF&rMK3T2>$Zuq-Tmz69M4HlP zk=aC=&?CrvB2DMgR4z^93yHLbM@i*i5=6$5iDUv9Pwugq?vosHon(?cWN4>?G7k$ohQ>?T#X$QaIe7_sAJTZ3$+ELW*vCj5{VX>(GXMDojdWDc24=8{=N zI?eq}0?8;cnn){i5E)DS$S-6F8BC_JMW>S{l$#P~(u_1GE~F7@EVt(eaw6zPx{}7E z5s7BP2r`F+lUZaYnN5BpQ^^?OOX`riq&DeFdJr$tn^Y!Fq#`;XKt8JUTV~zD(kP~r)8q^}OU{vhiM&(Gb%$Ja$<>&=?aP&wTvy0-hFk#2 zMU`Ac$wiJ_D#&$>T(ihqzg$+x)tOvY$n}X_lLnKqWE=^S55=7+^d~+<+WDkSP}%?| zk`OY91d-w7A$h|}ogrsQJbQB^`HQR|LwS`CA%0{qsmhB=8nopqLmI5#@VE)j)0kv4 z{atB5&ZKaeTp%ksX5_-=EODfALn6(z#fUV`mLbv{dx=~onM7J$rImFR`HQR|(we%J zydiny70D+r$V>8?JSETMW&4~wCb=YsJR}c@7wJO=@Jbv=j44Y$=&zJtkrzZ-SznSo zl1m}#w4Ft^apuWlLB&+JR(oYEh4R^cgZvIp5&Ob|DRKMOCFOO`aA@`OAiFUU)hM{W_hW|fZv@>ygikr_pG~7u;oixlzL!30cNkdy8k#;m`H|s_^lQu-!y`-6| z1Ccf@X~U8>D`}%@Poxb>+MJ|`Nt%?T2}zoaq=`tHgro(?mq-gwm^A4~6OJ_5v?A_A zT41EbMOs(_h_s+cgNZbdNP~!U%WOxQ5NW57b_r>Rs7LA(X;!F7s*#^a4Pr;689|y2 zEJ;aXB^{W`P$)r4lixXGE+tFIA~J*%<#6IfdXqjRm`orONeG!lCX=aT8ktVQ$V?JW zW|KK&E}2In$$auV`NNd`|0jioWD!|RmXM`H8Z)BFauP#g$zNmzSxHur)nq66gLB73 zGMxNE1`|Irlnf*FNPW_VG$#fkZ6HPD;%E|QBe_o`cUa^OyxcWELXMK-B$cF*)8q^} zOQcC&ZVgN8y4((Kz_bmCv{g!T^%wG$$VWM2Qi&5+Wzv-Le>`Ufkxyn}PGA$_OsWuR zlPE`|EkW82;>iZGk$987#Du)(_5OuiCpSnYxk9ALAel&$Ks(Zq$X)*c5=_RE2}JJt zkFa3>52G-K3@3pkhzudWkkQ1K3?-FFRZ^W)A;*aoDM9KJM^cZNkZZiQuahkDAITtB z$!g+9hLT}qxHz8Pty4(<#``QDgQB3Yfuj7|;Z&~go%e`Z{RV=rL zrA0+<{hlM2h}_b7yQjNIBwJ_%Gx&+rCUOH+ zZkWmq(sra3X+%npl0G;x!J|d zt-^a*a_{Oh^D$y9EjYCqI}o|uB)5o6i8R2;UyBSTZt~%%2898fP~1od;!4_+cBCyS zNwV3*cZvKZ#6Z%Xv?eXs+?_}en>&!)VpA_9a%Z<031C^I2YwH(1$z+}A|2UVk=EpC zarVD-I+sr7Hl#MGOYX5y*+lx3*JlROXI%P-7w{za$ZlpVeZj}^JAX2W3?xm+61LPh zB6sli5`Qw3{7p8JuPnGRThTzwjc$Gmat4$x^b6bYfcRzA4=`pR-k75b1p>y)8>%mZTvo;7HbE*GMLzB`B=$ ze&cZ-q!8&%d77jV=|!1N>JwSoA;f~RCCQ>3MUshhX52>pAxp_}vWP^Gxnv#*C$q_0 z@`OAh_sKo^aO_9nXHtY5W&cQL#y8{=Sw^zim;1>cvW3KxwPXc(O8w{L0l7is&g*3& zx02iX@wQe-i0jag-b0~oGL{5>Dqytahp12Ta@&tQKtSK9jp2U%q zA(O~NGJyn>u%i5sCVNlfL)wz9Ox&9BTgE1gr2|tp(v?UHeP1$;Wbpf3GL&*{Qj^pm zgUP?RKjTY`t1z}CB}gCg1v^ekOQ(p&Kqe0=F&;#!k(R_jLWvi#C0$4(@{zio7+a9J zWFDDC=8z3~3;xdd$CugnSJ*VB4JGnQlP$em-v57R!bL=S;lz>^B$1pZBbm`|#@9G= z$xBQczNIl!CYBz1|I<>}3u}IZ&nCDvUx4(u_zWxE!StIXcgfvqT!W z)5#|eDmhS-^!T72cV;Z@&TGjUA_wF5{7(mAD#zRjl1{>o@gt2KCnt#q=})?l)}#$- zOB_jkVnL++*^*?lb>w{U|8>szzio}}O!r(q|NY-8e18SZqvHQmN8X6mkq_iO`Twgg zucZ2HnR?`Z&yW58<39RvCcjWo+NVd6(d7H@WJU{kyp(Js(he={&eG0&oSY!9*iC)d zIz32tl7+Qp+@54pmKNXpBuB3QACdrmVZp(b%Y=`K^ly~|MDqQ3_&)xA!jfj*IV6N^ zB=MvV`I&TQ_w*uzi7&AsWk?nBniY6MUXif>y(#|BE%E=}r{B-x|6l%n3&}2%dOKLL zbn<;uQX&A;d-~mH1<@Uy`QkdKzJZ~s*&=f1Sw965pyC}m_->EA!dZj&@dxY z3MRyu$n~jQib^w^G`C6foHWx(bDcEX1+XLJlcL<~koy~Q=UEzh>JYiyuqU;M+<~?u za)70YUBpPaxd=H5x-k8+YVHOF`}gk05ew(vv)5Yj`l07Aa|sl2$2ck&?EW zGDPlmNPlg)7=M+tD&Opi!9k|U)h72yl8Cfmoh8X6k?bMLu4s|^RlfiBD+5PD;cw0` zK26e9$_KNK*7EldwMj+tkUStc%J!q#KnwZM_>#O((?6P3aFPCK@|jOQ6`K(g@(KG$ zq+i-Q@|MVAeP5jawJ2fo*;y8}FOhea?^Daoo60WTi z*qC6qh{3YOZpF?|?C$RF?vDGeJ$ri)!SDP3|GCe-KEBM}Gi%nYSu?XH_Z*&M)c~pk zTz{(qRRErAsq?N%c;H`gcMnFR#2&jleL*O!D zIG&rp<*;TzQy>&zMy-KXKuaJT2m@LGOv5gRvp=WN24Fu{e@8C=4tQt}bOX8oU4baY z?FDxqum|9r^S?fL=2p28*Z`~p)&fg_Wx!HkF|Yub56lBti?x6%z(`;w{J7rD;PRi2 z2Lcj+slXJVI*8)njs`{nBY_b>5nwnl42T6{fM|dP8vu6@z$;k&0ba%G3$Q=GvpX0V z3Jd|5*H~sS1{ep72POa$fk{9-Fd1kAVYm`a!!rxY&#eLWpNsc7z${=kkO(XS76Pmh z7DCNA=a@5@1aO8{0x>J_hjX$V&;qN0RlpixJ;0GTd^fNOP}QD{=bgYmzz$$LpsIWu zo>QxQEBv^w%mB6kipFF9*DBu(CaiW<6RH+iBb;k4YfdnAj#Fkhg3F(Cw+q+{WJ9F= za1R2`=tJ@Xc>rGGFaWjyFMZenHoyhY<$}v)$$WC+`4-%pzzyI8a2R0C9S4p9M}Z^C z^R*Z}oCZz;r+_QKS>OzC4mc06|3%<3a0%c<`JKZ#>?*)?>N|(=`*nc%sqxv5X_@~u zfYXiPgw>bZc+Pa_VUbxheymf6I`C9s0pML)&l;#^Kc(@ zyeOapKH(Yr#4(zucz6wH;Q13S=lloo75EH%1U>+)%J;xK;4Sb5cm+HH?f|O5_wdX@ z+yz)$oajSmPXG?&hzyRvE=S^Ll`-dx1!kscC9H<06^H$} zI5<8(pXTyUT?Fbo6SA6^P!)((%|d=r{J9L7?i-+%^>;j{EMul;tuh~mnmF@{;mBN} zB&eSQ`JDr}D402`GNnI1vp?4rPKec;1#ww>EF{NemwBr3xXjaej*%-|N~Wp+Twzc_ zgiy`?DYCj_b-? z)K^~mWVZ-hJ|R&8;Jr59a|;GdIKo`<%tng;u|JPlc`#E6ZbcxJBZLDLfG~hJ@j?Jz z$mdPFGJv|KhRbd(q+A_}AU>bGa0k2rUWVn97rc9-@?~}$Jtb{3yw?YK371cD1OT-G zHBQ>e#iV4x&(#p6mJ*HMYvQ>&!2TwnDo_Qeti0EN%VF%#VzTIUfVzM+;`3^91AyHi zpefJ<;MK%NY#`J?mYoUsoll{u&m55>sQC!RvzmWDJgd5Dp2D96O_?#3p7%(94=ZP8 zrZQ@of|2Ui8h%``;{kRf@Xmfb-Y-dY^^!$QJG{14yqScLBl6M2e*jy+2FL|u16DE% z)S;|+=DnRI0B@ts2Y3T|F2H-h@c{1~^B(dF(DQyWFTX|u+}Di9J8xj4VZ>n983PcY z2LgE~ns=r<;kg6Q5y*xJ1K{=t@<4zg2zP|*pa{bWHwXG5oD&Fwe;WDCoC)rM@51E`jQd=~6M=ic9bgb}8@L7B1a1HWfos53U>k4+xC~qb zE|61ZsdiE3zZ=*EBm;ASoxnf94q!X571)AXZ6$+k5+2t8D}fcjVqg*N&Meu-%*JCp z5C?GXxV(oWXDsyuymJw7PRHYUG%ySp2@D6u0b_w701M4=V&S$2J?EA)HyGeJLxH^T z=QNln`ys77nlXw8C&CG+%$axu4YY)eqf(G?y1@u43osv!!U|=+>`qdiS(Yhyo~*nx z?JPXc1ZDu!fdpVGFbyDp(_tFs!y26ffN#t%fjL0&lrxYrVHSWhmC{cYCZ!+K@jDB) z1mJfTmg6o5*nb(Y6cA~l&Z-(yU6nv(mNM~Gh^W4=#&b#yu(miMHQrj~S>?-u{UJ0L zr5Yino1W^K30DWMyD90}U(GQ;bCpnq<@eOI>U)eTk*Z#YaP?Vrnc?G9 z{#+EQ_FgE@gWx^`_5f01ji9weF0!3-V4FycOFWN!uuFt9Kh>m zQ{YYp(#!QEg#D3ok@1+{hKQ`{Sqh`+DI!h7GXV*}RDcs=cLp#Mm<@1|Gys|bO@T!C z%>xzzY@8OtT>!Al?@QsXBEbF^0FHBl%dR2>I1cw1upih090iU5hk>oYW`O+< z0vvH4@DH#9*bZz1ID9X#3)l%H1ABnofFr=X4*^Vb3OEVGu-Z=J;XJ_4Y&6aRXMr<7 z5d8T03UC>?3fu&40M`Mokc@l49pEm&2{%Wk-oyO~ya65qtajGWBj5q>klX)jJiJgm zpTKxK=kn!JAbg22=I)sC(t7Xe|QSWADGnw_)CxZVB7<6z%zgS!C!&kYmZ-3Kwg?IiFcl% z6@gm_$Pe(WH4ogeh-(km4&aksMu1Oy=-_iL2bKuV>_PDIM4phQ382^f24bQ3L zR)rtOt;ywI0}ma6ra&0b0O$_n0kh_Cy8&GR{!phq5Do+bErCuz1kem<3^W8PLclg~ z!ys5IxIsXDpdL^c2n6Z?0YHWr{9#7SfEjb*`4CYRrUl+rK|=A&35NhF6XXOM0UU>$ zFekutO#qIo@@L^x;alUGGabW`+5t?+o}38hvMtaOerm2bH%!Mgs(&bQ%AYhzD3;D} zBLVh{g1ZA?t#N|e0oKwsU?Z>|m|T0po!209W=nxD$YNz*-;);0ClBE;q1Mz)FCVT?{M& zAfKG%Lb!>*T!6)y15|~WEY@sb3J?#lh?6p6_lC{LWW3A-W&qQHX#fFJ0VYgPTz*c8 zS$I!3Z}u^R6!K`r<+il|&+~zKDg2lvhpB$*`%?HX0a$+3Zw20$101IMEmNM=cO?vK zObFnNuK~EWRRkk0vkiD>m&=d~coV>7%YIwnZU(k0@9f7-jP3g^xNJf%z&!<=0Jvbd z@QwjIxY!A|7|?^)n2zFMAFvBZ26)wC58N;?*$sCuz!M0bqaDHXe&8^005}93RG!&A z4wL|j1BDU)B;0erdEhK?1~?6{ALDHdq~T8eCSGm;m)R2uU4(lHxDIgQ*Od1waIXT1 z&{P??_kg>=ZQu^@0GJGZkKnRaJ^;LQ$S#lXzQF%25QFE>>~6rrCp^3cJ_3F4{u1sB zfOqoVz*WOur3mLRRw3_WeSrHOV8$vv^B^VuJ3Oy|P=kPIAjM!Z=2rw}$P8GjlnF7z zjR<4mQu_bEy9S3qQiJ`~u*?WI;+;>H1cFBhV2fw|tcUA^Bim~myznKY0XLvHP!|XU>HyV&YJdx$ z_v4j=if~opGI-_>mG~p4Qh*;&5@04pfkFVEsO8hN+&$)pn-3@kaCi}bdGWhzs&_R^ zbz@k%5&%a~U5?0!un;OCmo+Ek3wQ&3cnn_2@Pf;>wddSg;Ske*Dhqs674g ztOywM%TrBACFGp20Gv~WSk4Xm^SNXGzD)I3T^6VUz_~6DFfE7i2uIb1O3O5b`KvmP zR2ATa)dVZ!xe8DTU^R2j+4^y04r8RGPfZhm@Y+Bvpe7In0cyY<1TDq_+%$*69m4(f zU_kC|;Ho_kcQy9$0%L&Dz$jn@z!q?%;x`^Hk6xPr zyr(f8eA%eQupM3mPgXlOu^DhD1Cs!@h|>W!qY1!NfTd?TreOwbzNh1P8ZZ?gAOV;H zEI`<;c{yNpcz2i*yaWTcrz@OBK@B(3V5XHg$pPXl50s0}1dVGWvV8N3B?tE4P zti4!ZIk29~pNZImJDx>gz-pcimo>n(JsvLSmc!-(bCh@PR8se7Ov4&k2zMT^AO$VQ zWsS~H5thj1&&-(_2d34dsS%ili-O-(KaRtl7AKqtsJu9wi-!eB>AxQDOMrDiX@u|N z@=wCcQeX|R8dwf6V=k6uc;g0UH$2EW}vTEeaZ-AZ5uz=HBK3$6Nb9Q9dECx#_n z3$S&o0&wMELM}H}FIPIQ4_ptpujiuL1o~*W+(b9S<;pY);PqM-n$7J-&~P2%405I9 zmc;dG1D;v9WMC1OKUY95GgcSZ*5Lq`J6EKgApQr~0(<~7Zl1go!HdPb3axID@T&F> z&};{`0b2p)!9zKfo)?-50=z7@AK{bXKIieDx>C)Fab+A1B3?4*9W}OSY)1D1dx1T` zZXorJS~C1Nj=H0^3-7$b&AU`84|OMuwae@KvcC@qnX$@LCFTV9nZu3(Y)}%Fqqsx5 z(}99gh|a^E@)wc@>AXB>K_O|dlaHH+e7T|>wP$SXlDH z@8k9=EVb2ndeHU4Qr_CwtBoCW!s*KRy2nfCK1`w*j+#Vk;N`<6)gDpZj(s~kv&NQ(i0bL)?FQ4%heJ3|5h2y4 zMP`T@uY@4#XZp^mIzU;Rl~;zk!xpqDeMKhlbTgrECy$~?t{T;bV+aQwwx(mNW(n5j z+x6hMLI+0C6jM~Pi}VmXYSy4xJuI_#Kq2Y|8gDmG$?ahf@ucXDRSw%{SC(Q;oLlqF@ z20@owgU2qOz3e&&P$}FzJT)!oG$+@Ep0YELEQ+Bvj39q@;;C~nMCOG}PS-!Ndt}X0 z(;Ep{O(?vrG_ROs=LdbB1Wk6(L@XTIxbE}`v2p^QsCV-E9cyRihpGDFk8*EDh$l)O z+Id7T!QPYC((u_x?B$`s5yeg4LqXty@G&?^ip<3Hx)C(1cN33CY%iYhiC%Rzj-o;>FSBDJj>d<##*2J3et} zPgzvCnlGdrZjxO_2)&7lxj}dPDa;L(mnWK>xwZ%6Z&}j`F5$~T zz-`LYeRGMDQeLgro9cT=wi$fg+-Y|?y&c7PNEX^kG}v9T%Y!20OAI;t^H1z+_qcR9 zdqnp~bcCcCaT|5@l~iYOp*V$wXUYWAWOkEWW}qNMm@l)6 z&n&9&0Q;!nKTaC1f)&?oR1^M8=U);r{99iBv$P_Yz8)GolnrYq*U~Nvx@4)^4Dz6X zqS3g!B82VHqeAcWclw+Ok|l+#n5)r0p3+QhKdM+AbpbVTIB9*6%>;T`6*`B<62xUA zl4*7Ey_0ezY}0AEW}+EtHq&k|w0HX~6kbEJ<;a2!74(*z{$y!R;|0ZgBaIs5VUiqa zpSP4-+lX$mS1YRP3pr4u%+v#D@H*73J*YPr@y8b2zc{F{p<_nm!Pm{x$ITx<3fIyH z)mOx@fEf7o`6M67L6@>wO!Br5TWyChWc%|#CD%!pvK>x*} z+@rmvBrnq|5a55T)tPT^Hhi9%1Ok{kR8x(GorwBv)RIY;PIR-CqslT^*-`P*lEc4A zX+u3qOL+}FP}$jpO=#Y^L&h?9%P}8cWX1;~tSSu|2Z4Z_O6c_tkt4jkHiEzeLxRjs zqT8jRjV~bJ7872xb(Vai8*w)*`Ynwol`I1eE719J66X@jKdFcxiIzo`?dm)7aK?B* zejZ5i?Ik;!Tm}syj@Fiu>gX(UCzM4-9MQM21eZq@`cW=qRA$6i)LnwS%A#OhN$a9_ z#3*NQSt!3E&1BEYbdujr(qn$RPfq0^$_oq!xdtUz$5!-ezPhSTI|!W>jH;#%)dzt# zm|j=b%dKiAW#0r3Ig|EIKALZNMN!=TaeQ?V?`+c`1v-;oda%#nE%Iwm8OuvXZ4kMX zNAyrCEu8T^@g`RfJGxw3?_{W0Ky(0JlUn!NJv$NA&>KEnUFy(3h+}A}yl!^bf9=$% zANORnLGgZ?F7&!Q@+2BiUQ{RbcZ|DEJDGjZr~tCoUP5H9Sz234sstTY!p18y5PP)8 z_ywKoXa1qnqK$ZQO>0RWl_A zDLZh|A~g>|{+F}{P&^pvRH1@hv8)E6;yTR=EA(aWS(%|+hlNl+JwcEU1T!~hxftj1 z=7yOd0U=!JT9h?Kzcw~nV-8tGB`QJYV)UJzebf?;nxc{+_0=bR0n+C$7^^I_e^H-G zV@N+4C3XTmtc(JEM}{hpS#btZ-6~QYZ6wWxryWBz*qD55XR&;G?qgSMva)isZojl8HZK1q|t`^Fjd@wFIf3^$!S}=Cdw0? zI2ZUgs$Uyr)}D56MAeo|G@`Z?pdCqF17JTN*M|L!Cw%~lx(byJK-FpBE4r(iE!sUA zx*+2bxn}TWL?g#>^huu}{SYO&vjLJXszjDLsHw8!NZsq8%-+#>cp2Na>Cl~Zdc3;d z-K5iZ1CX={or^aX2}+TBV~iZ4s!6u=vW{esyfHqhSBiEvmF%=$bURdXu!H_xVIa74 z;!8FgUua`le;aKxDjg`5)<#pGK;&^4tq7E6{(C|?BsifN1_SS?dR+{~Hk76TbzvA! zmKHW>9aOkK zs8}%5`^r`JnJMm5Og#vexvZFe`W9a0=lS(iH8Vj`guwpCP8w`%I;i*iBIb}fW$6T% zn>vAlr#j{J_1ktIb-0b0Vi-c45aQIYuJ-caIZ8YY_pUdMW8azT1~7TWV5gGc+TqH2hAb* zs!^8)(18gQJQnD%waij)sq+IfMGb_oU{{B>t>%$%Ww$vbv>NR|Tw_;-`-*BEns+Z> zc$S%Bcr|*(+-E5~Tyqxj(vH15&rFe|#ElG}|MNop){5qk1J$Tp5VCy*6fD`pgr0Ba zmH)8aO!17m1#x#)oyLLCXoICTj00mma|~>Jds~B6WeCITT`Af_tWTaD094mO8GBZP;tETW8qyW?SCSt(ZJ#cO4+8e8DaE916WAPRt+|NxvPf_oyHJOAE9}$AA&T8^2tGoiT zC74dJ4^nx;T(wO_=W-xv;>4>XUS#6TV|oDlnH?e4;MywN;m{qGt8OuetY}Kkw_*E- z1xvYgUd<>m7~-}Lp%=lwC50sNHI)Jk4MIgvm@S8PSP%Qb8)QZpzG7jQXP=Jb7Y06} z>nI_~gIZbRJZ;X>49z7ZlnOPIJV{qhvek3ZsJ)LVeQl=GbD{W^o=fRa0(6nh=~^=> zR!m>L@Va?Yh@{gRGlq+5F=xc~%1ggnEyi4fSLLAd?BSGz?oHj!}NE(kWox9IHO22pgAgKb?hebprBFsv!7okw)`Md$O}&36$=W};#Pu3 z*|)pa9ww;~7GD)|xTcv*B@R`F@08L5jJTYfUE*_g@vwS(ZC(?-r5=&*X)g zjUh?_wOSe4vUT1o)opkNC@-F3fpbm^$|Gs!#qofVCaklSTT>5j>&%Ef)s@Wc)1Ii zlUE7sERfWW2nr6DJTVX+8!lC~yxvySdarhLC0uH29NkXT*BwpX9BeQl>r|=>p{JDljN7A=ekf&N_a&HYD4LggnpYL@caPFedzM$m1 zv3iurxy#j(Eef}A!QwJ%sXWYV--QOXhF+>Eakrm&&}wOq4I|~aa{BkWB(y;yi@K6` z8!5n8HA<)_tA6SH7TyQs25-Xb+FKJCMYGyKflWcdmeQ*JJ$gTD4X-2ff(XQD6Gf*$ zp^J*5#0Z!MT?Cr6`eMRM+HvK^F*1@O5y$wXn^5if+Oh96H}0>Oxyw@|!Kkh2T6ZDg z^g97}rkalVAhY1Wi=sX~g@Wd84Y9sDA$$npa??YBRqjb;+9H>ydQwzd*r{{9X=1Rx zL`DyU(#y6|35%z_(Nj?NAiXV_+DZ9zHT%%9DCDJGABrlfx2ew=jO`;DzzrA2oR(#+ zbl{JI;ubIkA>8HlX_UNts{Z6k5yCoIju2iVc9fbFFcj%MMGoOz1oG&Hk^akel7(>- zXe>cvXVKIt&}ryloz`C&UG3^a*6p#(?T6z>eP~vo-a&V>548w``@IjH!aIh-ynu#n z0j#{#(dCGyTkVli%Qj>UD(w)OTUYO>Ge%QlcT`8q+?3P-xhfe=6I$pUs8kP>P{weI zs;BqVm5-($r%`M>>gjXqYDLq|9-!R?Yh;#}SI`eVi>7*=U>!ez!WvnP-um9xqEyWlpy0)J6rRG! z_zV=R48MdDQ(X4ugfg(YgVyznLieB_JwuYZGX3cWi&U#WIY)wbh+LIB7tPaZ`IJ_5d97D&P?}IG+gb85 zPL35Bnl`1vzH?iG9l(;8?$9`eMjdEjXDMgq0)xfg&9C($UMQkBoh5H$)*;F|r0vaV zrIIu8LM3MyLbV)1mAXLe?l7oFZb%>I?V45fw zycbz_mD=l)hEu<;D1EiCb_}Omy-+x}x}umTkDzZ|(ZUi(h#L9qQ>*J?xiWbpJvLrQ z&ut{RbDb|cifTorV1v9)i;`R|eMbvZm8xw>qHQE}L)7JcD0eqR-PDHy`CYBR;GT8` zw&lg|wCb=e)#)xdsTJ8c1j9~lM>D4v*jZ=tl6R2WPnfv>x9YZoZscgH&=Y-4%3}4> zWgS9$dP*nKQMOt6(4t#!$-!ajI8mWJy0op=DmIuc8mxw!7wsyix0iQ(bj8Ng0FWA! z$BRsEXfSE@qpsaMfE2r0Y(_#SP!cFiZ6^p5XX`M#xSj4euk`XdE$l;2gz%itvP{{* zYqS%WAw+3=@e}9=;_4PnAcsCM@jF1tJx;{9T%{)+UEfL;$O{v9&BX~6+XtohWCCqq zSE)zFPl%BdG1kYg)n%J_LiB|0oT_CU8Kc45A&yMZh*2<(cE;kpY#a@XmRxnU<0vUw zDy7>MN6(nj7Yjj1^~9q^FwH{@oMEZ6fG*Bv9fwxaSh+8^?c{KobU=`Isz7nA{^vM`pid zQJpuIm0^P|LeQ*YPnn)+1CQF)GKaVl4dUWSok69TjO7uND}+^rgeQjnLBWX0Rt*E| z`jjvTIt~YcJqTI^-U@nLzeq)ywcJUorP7Be5R|&{MC}KmMkv`&uXMm#l#Zv7z?(;3 z#Tsm#Tdz>Rnu^%In0XTAi9st_4+^duSuVeu8oVhB9|YjG0E(RmVKZVKaIA5e?nOo` zanZt#5Jkp7jw?io;9-0PN**WLoEukp=i;N!&8d7Qnll`d>!;BRQ0j6_qi zaA7Td6Fo9`x(jd8bDq#@l{RPU0}4Jt;85tH%Z-UM@+)!uaEcHiTwG_L^tp65cU>&B z%UqG}f@zc$mBqLX6!xGPyl`*MD;dX^F;kqLMirRiE+|;CS6S^lwmRRD zO+X(_s;Wo3220+$!0D7U6k`~qCQ8sjx1JKlO162CtIjio%-f@%)W1~iJ9mDZUo=2e zck4K$TXd!oz;Rt^E>Oi*%(J!!exqHNE_=M_qn?ZTOK3lye} zps)r-hDLqHJV-F|%!^aQd_JAh#>i#=OmZ8FQWmMn*$_E$P;w@>SQb@%PfuhBqO@UI zF@LG)N)0onuN|TDKN|agWUShl{~@_*opovpNNti-E1ue4m@3|p`<=qp0s}wQvc4Dr zBdC@;6P(W3gX{75w-I;pC~4UNm;IRjvl@VTT-%hLIq4^h>h;^L^sp@ z$BHi(?u;uaR|xdY=pfD3IBGn~R_&;iO81w>u4X}1LJDQc720#MFkjEsl$~d@u~88v zP1Ft{zo&8g0%4@G*?nsEYTPY#a~suE<*DTKms%7Pq)JI{V}yES(Nhzv0*Wlza&LzM zdNB^?A3QYaYea6e4koWfVgzEWHn{hrOS-&D8-n=zmG+l7-O`kI>$sOn2-L1N7}fSG zCV^-yMtCAmDXW4peJhQg)B65hA+Tuh&Ogy#+B3FqHphN948*YqPgrf=E??FzD zX|-6VK6lD3dC%b~DLV6-tLa3%6sudmn(9qL>-}dnb)1BeJkHup!nE%B8lkY<53{fT zIY3`esFKIoAJ@<`L@?@;#NJBdGsnGdc=qZj7q|zj)H#WqC!;SZ1qy5QB}=zky)Iih zUuK2E!(USiA>5a4J^L`nylc%~$szJ_x|T`Q1#yjiLBU%}!@hUVW}U_Bq(Xs~GA)Vb zPsXG$2^8Fyg&yxaFii8kFDQ7@;EwaLN%V@-KMV?MP;@Ik=0(06InRMYIh=MGA>31s zFTdkhjoEu1%OUb;{ZSH?n}WC>Kw$-n_I-8bx1PS;+#EOKS`qi;Ti<;He0o=rL*!9) zuC+973RF67Em=(kk7){}bJHU|Y$8K=4O>|a+_gbyx7Eey#Rn57EYWG#!H3g(zJ@{( z*Z2|oXW0|aPK@sF>@?F_7-(p>R1!^`D#aS(HVVU>D@&qd?NT2bfICl$(X1A1qzW@p zq)8j8S^}EI9#HbAr{^ud0&!z1?*JvQ=Xv^Rt|5fSi7)pw?KXeQ+dMK46K@Mbj@1d^ zfzmz%9=fC?`i6JoR_KN0I=1)Dyn9DiUWHuPNMx-aP9k?gu2bt)rciV%@>ph;rme%a zy#$R?peZL^)L z#@-#O4g*m^L?j1e`UN#^6D3Xuui2X@4_spsco~qXdskhqI9GXsV{#Z@aZT1hpa#>C z{S<iK*4B=>5@f~8L)D4fY3B?? zp0S<~^`=uXQ0%E2q&2KSH1eQU z8BZN5_oP`^;}TWKQ&G41{r6({<)1KD@}_lj&|fMM*+W+a8D#dQbjMOC&G2b92=lyY>@DQu) z&SkN@j{cngeM_eKpfp7 zQv?_2_5v(Q-l4B}Go){-K2V&!-jN0@lxAsv((a|$M992{ycbEHKKb?tv%i1cq&Inv zPThs%x!(HVqaTFifMB)H9+|pq<}MCVPSM<_nTt?b#rD#vMaY3^uORGy%x}Z+_b)Dj z5ZfqRMddS=HhMl_=vjR){tL1v1-hF zD{BzKrg}|>73YuT+G)ojBF&xj&k|@*R*HOR`4+uqkEfIcS~8y5FDgqj?X0WSKF;N> z5-vVem|6#@!cw$Yp-x2(EYZP;#nE`gRlI1;1DrLMsb->@H(!QBCgTqZu9J(>xvkgB zPQltMd{{uDcn~O>wV_?hq>P4n2xEQJ%rUu2*IVB(AaQqdl`E_`B9{>rTs|LU<1Eko zS1P=MdOX|_+}!^RWX7>#7Hm6}SdQe6fq+Y(X7Baum#m6mtEUj$pq3!eexUwvj82E} zJqzd#KCShA+vV$nWjZbgP1Qq`v>Yv@GbmszV|Te#8{6snSDvi$1{x?#d+FYCH0--{ z@|b*9`Zam108is#(H=(i+EGwfL*H4a%>W;+{~m|Qc^m9$?ZXti0`;Ul{CS~m*X+DM zJJpV<4Bk*YuVD|T@h2hW0y++khTWj!lO;Ya@vtNxKqsKga+_m*)tT z*$w{Xk5Ijpl7mn95pk+y_uV{+t84e?X{-`&h!S%9XT+QlJNwNyhb*MoU}ZQ6g8WEw z&5xdTjdOI!Y9@F>r#Y=`N9h^TFnSynhf8W6uU|j(Z4T~Ul{6Y1CFfO;qOU@6F`M4@ z!Stn{%oMW`QV@yw=_hQR?2}JuUp|<;hdQsqfbF3|Fm-9}#I4TxikYKkJtm^=j6d5q ztYKojImF`_?Le}|#-Jz!=1rc*kIE3Vbh@D6K6}71dc}gxS16V=KAiM)Nq-()DWV@z zLfXHWIke)?61+dAguI}#t09=parw)?*!33K8zz=4mq8}*@I%R!RzfOz^qD>7RNjW> zsI89ExYa22(F%oAqfMK)*FN0GOp!#%%)F{nDeGTuxy$#M4@Ny|>X#6etLtFj5*1o_ zCh^{%BA4a_S*?MYE^-3jyMki;QL8QMEv_FjQ`A>N>VEcrvEXvPXmd!v6BLTLh6M`6 z&c1CotY2RFl9}Qd#jSy0A3%U+8M{5C;-uXZ7km{2tWxKbB4pK#tr_vj{C#uOS|{lS zGw%tCVu)MyP8ZK{*R%3=jUxJ7%8`URe3Xj8F@6G_8|Yl_Wq$O)yLE~T6goxWNs>cM z!&8FdmT$2!wKlgNW9BpjAte#_;pcCaahyBUlyy4oTKI4U zw>T|AjCMs^-MDp(NB)XjCWLUy|5&g2>?aL}9#BFouu#_iG<}08h8ZA14;b5~YVMHz zSB&kAEJ|!WHg52tgMa`ywg6en7??y#20(bUs6a)`IzB zP~dD;Y^T!Jb9Qw0Eo`Q^OKZVg=W>>gfzTLs7N3)Y@b%%1t*f~0OQEu2dlS}4(V6do zAR7q8_W7#_60G zD?IJke?;a|CjKByAuVx^@~ns5DR+)`wAMQq>w%I-1e&%x_dTE3?HVX~AnlIxKTXQbr=( zw2m1l8(`uzrmE^!5J<@2sQv9AIaSz%LklUyR-|+KTjIZQz&UfJSd{`(I~fdJSSLF5 zz0y^B#hs7hPg6ES_4jGbX0*N6RB;E&S_%41o>ipX3X09-u?44!&s`H8^@)R?aAq;@O&9QoZp#ymzh6gAJ@w`DN zwxA;wNvQ%G(l=N?=`>_A6vL1w3)0%~InR}ev2(Uyo`kNMCs`>Js@4Nk97Pitsc>}U z7LCK<&u~=@svy7K%~ep<>A&bW1qV4PbF`GNs`j%#pk3SL0^(45v)x?lQCZhew?n^5 z3dS-71!j2tK>ngV_CjEbWXI!OaHdGDpuh4cSAvu!s%98G(@+z91#e^eyi?~oT}5_y zOcnP0%2A4hzf;MbzcQohH>Hp$qm1ZZ+gnO%$WYD>-XHH7EP%c#ad+q(@3Y#e;3SH?Yro&uZP|L zbnC!+dz297A-tRTdwgZ>M(@Y_Tx!sth4`yn{t~2QG4LmaAHlHo&zjxyrIb zM&5hC_-Stjtiv}yY~uK{ZXtjT?KvXl(OpiWJ4dkekv=0;UXe1jI%+nrW?P}CPc_MD z7f7lOL}8rDSIL=}9Xk4?FIVc1wU9v^g2R7}7zts*ZPF;*sNQiY_g{E^^l_7S zxi^(Y%CgFdD5fM;*(yo@y^-OQDtQjSpGutm)gX;wnY8j!z$LHko6oe*!w3JAA?070 zicbZx%;e_bp;1oP>FhF7;zNuS+|NkfhPj!w@~U9dwn2@XRqrJh@#STlWfXG;6RSVJ zbwne_31pK}rrNJ`{EXC27denjXR$=MD~i1dw~7^&I}f+66(!w(i$mQf*gwRIe&F5E0aw6ghmM`AhO7_#8LzJKVuH1k z24BYc#q;MSCu6qkTKV+jsS;C1UuZk!2h@YXBQHkf&rVhsumbF8O`#W1F%qq{^2DW} z)sVr(GL)aAP@>l21o=czD1tlCo(oc-F^%MT-3&`|%IR~Ju~>TJODV9S{DS&k#HwSz zoLc!@-Sxq9yl$EL^Xi|ng))I|U&KIWI(@x}^~;@9@)9)tZ<%nQ0hgrQCSO}oV#QC* z*!tAFjM(;(^I8!hJg~hK`opf#(cwIgSvE+KCntmwfdn7if*kMl!r?%UD) zIaeoTORJqNd0$2`D%yZ-&@wOj&4k18HzCyY&Q2@O3>Rw8FS71!8z`qFucN20u*&w7 z=L$+-oV_Sf!=~5I%J|JYp~OWAfO~^0Nc&oMT6rDKY&^}qf=GHHfm9o?qcb zUvjyMw=Gl}j^TiV$a(|A_4O6=E?OmLNVZ_7sVmbhrqNdsOXgw6-}g0iq)S)v!JEjL z!d&@`z?Sc5kQ1=8z>`|k&ZKPYss&256+)&*~x+-=+mG@uGp`sJDx`Aq}G?TRIC8v*Ok*Wc~R@vXg zinQ9!es6!C|IWzdffkq_bAktc16m}#|M zZkH(Q>s0raP!oT{p*Hta=E0Mm+`^&W^y`#TGDgq5T6x2>?b;sm)?2oH>ew4wa;iQ`=TZ?sq{%WA-V4^>hTQ9 zaSs9nQ~VR0{H=0Nnx!0`lq>UM`pThe$@aeVSZ64h@BnEQC`bX%;Fc&zv2f8_@&1R= zx1h*-vACIwCMpV`T~0V01fOKIXwiA_P7Qp zEA;m{TfU996%w&V8mjoX7AAM>OIYw8&?D;f5Oq^@Nb-^Ka}T8%XshuJ^foT?(XutJ zLYNcx{)w74;r&f$Oj#K4EJkj{u_jch80~z7T;LG-rAH8iD9d9o#YZL;9>ZH(oSHqx zNo!ABI&KY##&V8jguwo$W(c0Wd$S(Tt`h@ibf?-5_<(}v1Ek^Gfs`INCn zR)8JURPu-Z%EcPCROBf>I$cBMpGvP&>DXB7fGGJ!XP*`5*VVcy@`2Sd?xFrK z+BXEEthjs3o~uIltjW1*C>08JD7~!~M{55ZXF7gQ)o{X7s9D!9+om!3tb2ivvZHmG z^1gt9y$=Fj@LMr<-iRUDKDGgY(vsg&& zQXmYsRW&wd3dG6wN*b&l3^w)07A#w*yt+Fr z>c4oAVjJo~Ke2JtH2HU&Xj~lI_k`)s@fuRhps?3iqgw2*mA^T>Ub*76 z>-E1Z13eFPVCS~dDkezd!xY}iglv21>ua>G<7E2=Dkxh@7|f+N-#&c3<&}py;n-5N z?v2!+T#SCy9HFuz;H`kMgA{@GW*Bjze5a#4Ymr#>*b| zuQnsDVoGX&E8DKI8}2P%XVa~|93smpF3O-aZ}G`T5U99?w!Corj5OdjQz>6Lgq5aK zNI@4_nksyN+pjbwzC*(pMLB+;CL|ytH>7r@$_1Y5@r|n-HuG5xi>dxQs9_Uzf@3@g zx?G^k)@?%N+;_+E{tX``2c2N(Y4|e>N)B*8(sQsd>?tGkgzIEi9(>VcwP>>_LCr~W zd5<;=5zD+swYd&L8>IEqyIWw56;G`BGYXUq2o>Q?S;~p*me4Kj`)zuYGmwUB1EjH6 zLb7Z*GsLIsL|=p`8=3jb(N1tTv{fh^@>B}RH@N6VP$+f(4ZVgKFq~OFAjj#C_Y_qc z)BfB8LTIv-qn;mNy(ZF<53pYN^6DDvzF}qh@B!8QEsa(1=SN!zk=wyLT7js>;#EaKC7n-x{-~A*pHfi-y?0zy2A%T z13n>(!u8ZXq%|BNKa|aFBFAKpx2G51{$h^MwjAC2gs%Xf*AS*?ZB(l~iQDH+0)^6h ze({f#oK^P2%X4=$A%_W4Jxq6}4j+5aF?k9+@C1kD=@AQvrnQ54$$jS%7;94~73yM{)C^mXI z@t(Em4E&5~=0h&Bs!`l^N6f<#Lx|2G)Do7C+aYVI2v%T5ZzpwK#)(h(0V($I%V7(zv0 z5Gi`Ht) z|MtW}kH+m0pFdAV+QJA4ficYafz_BA4JiBvbUc+N|3K4$vJUafteqA6Xc+Iy60Y88&3_?d&9;ZbBp;MRws;QGzcEE>@#&p> z_{B^4fXExoruG%sxtSxe9S}tj#m5)xOIPf?jgTAe97$!m) z^fPpYLTFM(eJm!Fxh(W`z`vyhl2ICBoQ2*(*PuBiSm@iP^dmb-UriU(f?7y=Ps>j& zw3>1dx_ubUkifc680qw2jaoNHuXixSDxK!7_XUz2`yb1&wK%%X%j&n%q7)$c}7UowSLmrRf^j?QP&w^LI!{@IJEAN{Gx zVKgR^v*oLCl>4RR6djFeB&UpTMRE?>>y*tBntHUku%*6})|fRy)aMOL@AS*=yZW8E zC$Np6)mc#W@`8dZM)4!(pRGETtEzllRi2x=Dj|oqr-R3lXB<-QUx1N+ltduCAE{O#nG0cZopi~pH92wM4_Z}upf#m z)LGQ4{_igM$E=77W|gD$KyM{G(*VRxkGq$*#-R%(<050ue{nfFlyGt zWBA151Q_#NY#Y@#=xrsgjD>noqycG`?jb}kShU8S=q~3i*xaH*Los!FP$DRF;XUYB z1-Q{Y$Q`bBG(9)KPR~F@9z;L#Yu%&hq&JzAh$xm-Xy?*pJJ{*_RM=kMPU$v$cH!b?HZ4DM zv=10o@JD%B9Jx)W-5a6lVPE(d@eHsor^yDrvxW+cu`v4#;;wP@s{- z`mJ&PmiN$H?v}Za2ZdVbrTWr0P-;t1^E_yIN*(YCLPS2poY8Vhb<@bFlM#_;hp;PM z5W*K3-Ke!c&(7*kTA8IALjxW4#c<2(GDp1&G>N+d?VY?dRdG2r*BqN7A6u<;8il@> zdtNqfx9O)Ntgg1dRz71iZBlag(}lV|l{vC1H3bk-08v+6aVeNkaTlMYQbq$c`cq(T zG?FM#u$ zE8}Fv1R9nN7dCcTv-+cR++Wd6r^T^6`JZAV6_aV~qL|RS3(DABGoHb$O(pamK_{G{ zghilmMl~u{eZmxDZPRPiL}9P}lxsBO$biwXamEN?`IfEExn=jsd~MB~ijJguF2BsP zA|lOl(dQPkrCfR;nmnv-XK0Q);(5e6(va!%vEeR!kX#wZiy^H}Fhjq{4x(uI+agvhiyKK0(uw2)G?ydXjXW)Y4F5`VqHRB0$NBF3%~$5kEPH8PU+}$c&mloo<7b=ZjEyp%qcpF*qJy($PZtnQ2{(p_o%#jWMLKK0w!h z5}hinckmfLNepJQG)-Jz;M7B`wke3 zW)Z!ME@BEr7Wq}(X-*M+&P=XTg?{LiuVhQdi|GB0P6;A^`dl7PR^fPV+$pa zb7SaAx&OrI2}%bftPkwpC#vX+O0t2I)h}+0aR{gd3a+5>oA>VRkk13li^|3Fnsx}` zoon5-5d)@;_Ud8|8G#UP*In|wO+J6AfWI0-ubSv>urlAg1nSsk5b;TNHV zU)QLF-+gQJbvGO8UE1RQC0Vxkt2MRjPKRS>{C}S^7DK^}d%a~&*AJavSM`I+Eu~Br zvP|USs&}GIjbQoYO$0ms<{LXCQI(-MMS=DHH^O~EPI+x$Zo$~%#fC?;vev3PP_ALI zOPecwX{OKZ%m-i6Uye>^Bcm4KV+2m~Y3F@2gCEvs3&hJ;e)5H7|0DHMy{6a`dg+Qu zwxR^j^lQ(5(RKkf_i5*vTN|!uDITDA@Jz2l{kLMxtR^J?=7aLn5C3z=IBkv?eP&u# zJurBYCRuJ)Uj8T-Wlh6WNh?16n4B}~qCN4;v5`=&EZ>yxt4Z?~E_uOQ+->Dxx-nPS zdEMtSYm;A1;qQUi2%zpgMhH)W7ur^jFWaeRcO?YoLG7;2mBd<#Pa?g-!iuh1B3ZiY z15A?=g%y}%YF&5jzIJTv`R6qd&Cetle!EypSGC~@v}trp@;uFM9*uJcj{@^(u{*k_ zG;V%XmU!09r*}xjkjCB#=NMv(?Lyu2`PAD(?^@0mKL*6-gZ`ZJ@Tw7~o__5{K5uxy zg1%fRN?>p?Pg}qBT1RBH4%3FToI(G%hRQ3%%B?8`(ipu{l#DI_mF@HqEB z^Y{;`DZEUn%O<5fV!D`pYKdN9xubLP6v#`S;~{R8Db2jx!7obj-2LAv)ZG55a5c9m z`6Pd{=5!+#Q3YRA&ajmK4cJUc!3k-oY2 z?~6~saLS7-lO|y$T|->v6i1gBWt75;fP=5|=p1!v{6Z|8353q)Mb|`cr2}69-1|<20y` zJXF#BQ}TVQD#Opq^2?((A&rBvIVkwUo2a-z)2nJ9r-&S~?MW?P`t?w$)25tj#qj5t z&xVL80i|oP#gQAW#seWPNTt`NoX@M4&Yoxv5v3^SMQ$Id-_;V5*3q2ODCP8}a9Ss< zskX0wu$A*a6}kLHJ5l6IqpkTO4v)Ch%kY%4_)98(whxtu61QIZ68;(Ys*-*JYAD|< z@Tu3c^IN^AjpiF~G1|p1;smUxS7lJoz+E=UX8VUW#RkX}wO({xRR>Nkx6ssq`(Qt@ zaXbJaJh#hq!Q!TOb@^j+C1mt^8fP|M0l(^h)OxalG1IATx~VE=?^jIvP)_fybKFS9 z%cBt#*eKMx`dZkqelKoylq(ggq_+n5G=_sh=ed#kmB*%xyo|=zll*a&I1d!C3W)*1 zZ%cB<^q1s*U*r4t#lgR<)+uW;>hdAB_3)cHwlO$zp~<#I7?ZPgt_Enr?(%{gk0CHL z!xi-<+C+5jkkGC2vX+}>gzI#XEqg}v=!u`b!w7>-llfYE#DNLI$6gu5w_qu+I>vbc zOhNy=@IIe2lI9M(4_uy$b*mFFtyhIH{IMEO)=V1uUP14J#R=T*?nnU@^#+G+LfD9t zjWrkhjk^L$R4e>$7!95)<)T})Bny1Ws_6_eX59XTU$B1G$l}~QnM(Q0*Vck(O5*br z`BDCE+Qu1kH9w6#B*}reuh#Zy9G3Gi9}(n}DG2FDPL(i$7Qcw2+p~=tRMLCpMp7*M znS_~J?{?kJ11**v7WD(oWpWICTSyKW+%IpVbD+n8uuPTVY^O4nF-6)gMmzR9W?gMD zojP!Ao~~naPM(c8<^}Twj`N7!fdaKEvWmR7+=g&g08@>kX8HFioCqs?8p3rgF=!f(l%flc}~buvB2 zZ|ku#hFgb5Mh?@?lBLCm=N_7#h--}y$DBDM8|Ke`PKk?JHY}M|Rz(X^cfsI=8Tc)D z`K;ch>^?4^^wiGw%y2|f2AE1navL|Axy$gJ}S54yxmU4b)5h&RHcv!xE>RQbv zqfQ$SA8rU~{9cB#)lK+{j7Rq0Beh9U`KoY@MdNbglcPcsLmFSmD@VQr0oDg=SI6*n z;T|Dz(*vdkPilRB22RS5{@GrNt*&>7N%wcAymkA8O^qEg*t`G3_gUq*@&MN!A)Kdz z^$tENwEfLMoz@CIyrNYAF6(&Lt3EG$t2`f%IP%h+zve`;I5HI&6XL(JZ2SN@#M2G; zs)?Viav-l7dLNzlKI&KlLy7YHXb!uz_tBXe`UClE?iY;zOj=z%tVr8yV%bMMvRCLJ zy{d^d5&0LBaK|j_lU(~9sZ1?>p!fv<`Oal=W3(+F#&thPyK2F7`yUj!@%j+AG3d}F zF-4LWcyZ_GyIOirLnTmf8BT3>J|UoTtH;QVXo4D7s#qIMwKDapjV%sw3Qhhw9qk$V zh!DPemnX04S_^&&BP;;xlG~_X0P@@P2(1p#yIL;BG6-9gPDkht{QrJKsCym#q+c=8 zxxW;*=^E3#$XA|?;AT^AoDWF*vR-)#DDFCS(4~FR>Hp_9^&$hyao_BJxiB{M4Y2g4 zi9RQOa6zBR@aM_}jEDT`v8X$`A;)QD0~8*L22tn{Ic`bCr~aeC1h3lr+1qtG30RsBtr zU%b?~O1lyHPAxb-2F@F-cQGcP5(c~5#N3ZN030b0w||><^%0A1Jpwv43a>nb2LkBsSyW@R zxLNJt>b~(!?sWSocSUk0V*Btt&wshJTDf^#y*OR|T{zX?s&|(wmy6THFf4|o{>Tn# z$u|`EYQ)!J4!XGW^d(I1YF@C93dg}S@zt#Qsk{w-ddN>>CDDLzw0!xCUwa(56Q66U zcMQni2faQ|_rmp_rZ4BU^8GBX_sSHG81I8EN>&d#TaCj7u_X2C?tsl&`~CUMA^3{8k3Rdquj1hHWb^Vfc+Z9R z`ctXPDW?$M`*`Q+#hn+Qx4Uk5)B7FXdAsxFsNHRM8cXm0KgK6&r_Yh^X`tAksBCKU zyg>8HP2S_3g}8b#w&;zJHX}0Cr6cY1d0HK8CT;*ZG-lnmz4huZzKC~Te7xIpNC)dS zHLu>rJI7npDP(Nh>J^R6>WSILuAPfJ=L)S}JOb~WnQpa1wz>B3AJP-=9Dn)FO7)Ho zX#9FmJ*w4SUoOYR#$qr$%n!c@9c}gF7)@`l&#S#iTiN;b_PM>ju61f!3U04=2Wia? z`fz+yw!8ykY@s8(5cb7jV_1IpT>tRyctB4;Ag(RXa8VGmS<9f~Z z_Pjr0rBW+VswARP`%0mZ79zACf)r$I5@HE7MWM9_er}>ALP2fXG(w@oH+LmXP`~W% zoA>57GjHDPFmHx=^y4AeQnxr)YC)}dp<%ecCpG_0sXH_M(lx~MR!y?t*ipw)EAzun zIvRHZi36#;la(PGgxl4zjdo|@BW(v=%|gExq?#Oj$#+REOn{fn9>G5yFFvhv$W6MF zgG(%THV=I?yedptS%4)=3!WN>-a6&u%_rZ>q~gxuXg+>0pGqG|+DVHe#*>4GP0wn(Z}JW19mE%Ph@6zJaj{g|O62Sm-F=?*xNDSkHh3Q@3>DQ(1{dHv z54{~hFMYEFh}i_!HSS~+UkzfbN&>pI%nFWPf)={@0LtXCzhJ;cxt|#8ZYNez`8{~X zP@zF&^F4Uo(D_UOy}tsxDTZj$=oumC_6p3FhgJ0t<(zb!yiMqnKmQGTgKS}Dn|PIG zn}v_Aw6pBVHgSfA+Qn6QajU5Og~P^wJBe;hs6gckf#x-=QIEIie2ZwI)i7?N!7%zc z2;ZJ|;XkG51`R9dQ5SAnpJ?h>&GgbV_~_kke3l#?o9J^P3|eeu%x)LgxA!5G(Pql#dv~r-@tj=U%^?cfD2tM<41Kj16yu#rh#UJfI`;#Yy9(G&%Qfgz z?5E^_z>!)S8H4&aBmXxtxj+6jS_8_#7E`1 a8!)#qR!CE1RCvkrGS<0EY1G$coc;$3;7ut2 delta 127213 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

l=+609@z_XBBy`TK$O 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 gFXlR{xPjHGR*M^0Rj%+o(VTSURU_API_URL + 'get-config-hash', { + name: name + }); + if (resp.code == 200) { + return resp.data; + } else { + console.error(`获取配置文件hash失败: ` + resp.message); + return null; + } + } catch (err) { + console.error(`获取配置文件hash失败: ` + err); + return null; + } +} export async function EnableFunction(func: FunctionTypes) { if (ACCOUNT.value) { if (ACCOUNT.value.settings.enableFunctions.includes(func)) { diff --git a/src/api/api-models.ts b/src/api/api-models.ts index 76b1557..3a1bf2f 100644 --- a/src/api/api-models.ts +++ b/src/api/api-models.ts @@ -717,6 +717,7 @@ export interface BiliAuthBaseModel { export interface BiliAuthModel extends BiliAuthBaseModel { address?: AddressInfo[] token: string + guardInfo: Record } export interface ResponsePointUserModel { point: number diff --git a/src/assets/css/youtube/yt-html.css b/src/assets/css/youtube/yt-html.css index 75dc6fc..870b4c9 100644 --- a/src/assets/css/youtube/yt-html.css +++ b/src/assets/css/youtube/yt-html.css @@ -1,362 +1,366 @@ -html:not(.style-scope) { - --yt-live-chat-background-color: hsl(0, 0%, 100%); - --yt-live-chat-action-panel-background-color: hsla(0, 0%, 93.3%, .4); - --yt-live-chat-action-panel-background-color-transparent: hsla(0, 0%, 97%, .8); - --yt-live-chat-mode-change-background-color: hsla(0, 0%, 93.3%, .4); - --yt-live-chat-primary-text-color: hsl(0, 0%, 6.7%); - --yt-live-chat-secondary-text-color: hsla(0, 0%, 6.7%, .6); - --yt-live-chat-tertiary-text-color: hsla(0, 0%, 6.7%, .4); - --yt-live-chat-text-input-field-inactive-underline-color: #b8b8b8; - --yt-live-chat-text-input-field-placeholder-color: hsla(0, 0%, 6.7%, .6); - --yt-live-chat-icon-button-color: hsla(0, 0%, 6.7%, .4); - --yt-live-chat-enabled-send-button-color: #4285f4; - --yt-live-chat-disabled-icon-button-color: hsla(0, 0%, 6.7%, .2); - --yt-live-chat-picker-button-color: hsla(0, 0%, 6.7%, .4); - --yt-live-chat-picker-button-active-color: hsla(0, 0%, 6.7%, .8); - --yt-live-chat-picker-button-disabled-color: var(--yt-live-chat-disabled-icon-button-color); - --yt-live-chat-picker-button-hover-color: hsla(0, 0%, 6.7%, .6); - --yt-live-chat-mention-background-color: #ff5722; - --yt-live-chat-mention-text-color: hsl(0, 0%, 100%); - --yt-live-chat-deleted-message-color: rgba(0, 0, 0, .5); - --yt-live-chat-deleted-message-bar-color: rgba(11, 11, 11, .2); - --yt-live-chat-disabled-button-background-color: hsl(0, 0%, 93.3%); - --yt-live-chat-disabled-button-text-color: hsla(0, 0%, 6.7%, .4); - --yt-live-chat-sub-panel-background-color: hsl(0, 0%, 93.3%); - --yt-live-chat-sub-panel-background-color-transparent: hsla(0, 0%, 93%, .7); - --yt-live-chat-header-background-color: hsla(0, 0%, 93.3%, .4); - --yt-live-chat-header-button-color: hsl(0, 0%, 6.7%); - --yt-live-chat-error-message-color: hsl(10, 51%, 49%); - --yt-live-chat-reconnect-message-color: hsla(0, 0%, 7%, 0.2); - --yt-live-chat-moderator-color: hsl(225, 84%, 66%); - --yt-live-chat-owner-color: hsl(40, 76%, 55%); - --yt-live-chat-author-chip-owner-text-color: rgba(0,0,0,0.87); - --yt-live-chat-author-chip-verified-background-color: #CCCCCC; - --yt-live-chat-author-chip-verified-text-color: #606060; - --yt-live-chat-message-highlight-background-color: #f8f8f8; - --yt-live-chat-sponsor-color: #107516; - --yt-live-chat-overlay-color: hsla(0, 0%, 0%, 0.6); - --yt-live-chat-dialog-background-color: hsl(0, 0%, 100%); - --yt-live-chat-dialog-text-color: hsla(0, 0%, 6.7%, .6); - --yt-live-chat-poll-choice-text-color: var(--yt-spec-text-secondary); - --yt-live-chat-poll-choice-border-color: var(--yt-spec-10-percent-layer); - --yt-live-chat-poll-choice-vote-bar-background-color: hsla(0, 0%, 93.3%, .8); - --yt-live-chat-poll-choice-vote-bar-background-color-selected: #F2F8FF; - --yt-live-chat-poll-choice-color-selected: #065FD4; - --yt-live-chat-moderation-mode-hover-background-color: hsla(0, 0%, 6.7%, .2); - --yt-live-chat-additional-inline-action-button-color: hsl(0, 0%, 100%); - --yt-live-chat-additional-inline-action-button-background-color: hsla(0, 0%, 26%, 0.8); - --yt-live-chat-additional-inline-action-button-background-color-hover: hsla(0, 0%, 26%, 1.0); - --yt-formatted-string-emoji-size: 24px; - --yt-live-chat-emoji-size: 24px; - --yt-live-chat-text-input-field-suggestion-background-color: hsl(0, 0%, 100%); - --yt-live-chat-text-input-field-suggestion-background-color-hover: #eee; - --yt-live-chat-text-input-field-suggestion-text-color: #666; - --yt-live-chat-text-input-field-suggestion-text-color-hover: #333; - --yt-live-chat-ticker-arrow-background: hsl(0, 0%, 97.3%); - --yt-emoji-picker-category-background-color: var(--yt-live-chat-action-panel-background-color-transparent); - --yt-emoji-picker-category-color: var(--yt-live-chat-secondary-text-color); - --yt-emoji-picker-category-button-color: var(--yt-live-chat-picker-button-color); - --yt-emoji-picker-search-background-color: hsla(0, 0%, 100%, .6); - --yt-emoji-picker-search-color: hsla(0, 0%, 6.7%, .8); - --yt-emoji-picker-search-placeholder-color: hsla(0, 0%, 6.7%, .6); - --yt-live-chat-slider-active-color: #2196f3; - --yt-live-chat-slider-container-color: #c8c8c8; - --yt-live-chat-slider-markers-color: #505050; - --yt-live-chat-toast-background-color: hsl(0, 0%, 20%); - --yt-live-chat-toast-text-color: hsl(0, 0%, 100%); - --yt-live-chat-automod-button-background-color: hsl(0, 0%, 93.3%); - --yt-live-chat-automod-button-background-color-hover: hsla(0, 0%, 6.7%, .2); - --yt-live-chat-countdown-opacity: 0.3; - --yt-live-chat-shimmer-background-color: rgba(136, 136, 136, 0.2); - --yt-live-chat-shimmer-linear-gradient: linear-gradient(0deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 65%); - --yt-live-chat-vem-background-color: hsl(0, 0%, 93.3%); - --yt-live-chat-upsell-dialog-renderer-button-padding: 10px 16px; - --yt-live-chat-product-picker-icon-color: rgba(17, 17, 17, 0.6); - --yt-live-chat-product-picker-hover-color: rgba(17, 17, 16, 0.1); - --yt-live-chat-product-picker-disabled-icon-color: rgba(17, 17, 17, 0.4); - --yt-pdg-paid-stickers-tab-selection-bar-color: #065FD4; - --yt-pdg-paid-stickers-author-name-font-size: 13px; - --yt-pdg-paid-stickers-margin-left: 38px; -} +@layer yt { -html:not(.style-scope) { - --layout_-_display: flex; - ; + html:not(.style-scope) { + --yt-live-chat-background-color: hsl(0, 0%, 100%); + --yt-live-chat-action-panel-background-color: hsla(0, 0%, 93.3%, .4); + --yt-live-chat-action-panel-background-color-transparent: hsla(0, 0%, 97%, .8); + --yt-live-chat-mode-change-background-color: hsla(0, 0%, 93.3%, .4); + --yt-live-chat-primary-text-color: hsl(0, 0%, 6.7%); + --yt-live-chat-secondary-text-color: hsla(0, 0%, 6.7%, .6); + --yt-live-chat-tertiary-text-color: hsla(0, 0%, 6.7%, .4); + --yt-live-chat-text-input-field-inactive-underline-color: #b8b8b8; + --yt-live-chat-text-input-field-placeholder-color: hsla(0, 0%, 6.7%, .6); + --yt-live-chat-icon-button-color: hsla(0, 0%, 6.7%, .4); + --yt-live-chat-enabled-send-button-color: #4285f4; + --yt-live-chat-disabled-icon-button-color: hsla(0, 0%, 6.7%, .2); + --yt-live-chat-picker-button-color: hsla(0, 0%, 6.7%, .4); + --yt-live-chat-picker-button-active-color: hsla(0, 0%, 6.7%, .8); + --yt-live-chat-picker-button-disabled-color: var(--yt-live-chat-disabled-icon-button-color); + --yt-live-chat-picker-button-hover-color: hsla(0, 0%, 6.7%, .6); + --yt-live-chat-mention-background-color: #ff5722; + --yt-live-chat-mention-text-color: hsl(0, 0%, 100%); + --yt-live-chat-deleted-message-color: rgba(0, 0, 0, .5); + --yt-live-chat-deleted-message-bar-color: rgba(11, 11, 11, .2); + --yt-live-chat-disabled-button-background-color: hsl(0, 0%, 93.3%); + --yt-live-chat-disabled-button-text-color: hsla(0, 0%, 6.7%, .4); + --yt-live-chat-sub-panel-background-color: hsl(0, 0%, 93.3%); + --yt-live-chat-sub-panel-background-color-transparent: hsla(0, 0%, 93%, .7); + --yt-live-chat-header-background-color: hsla(0, 0%, 93.3%, .4); + --yt-live-chat-header-button-color: hsl(0, 0%, 6.7%); + --yt-live-chat-error-message-color: hsl(10, 51%, 49%); + --yt-live-chat-reconnect-message-color: hsla(0, 0%, 7%, 0.2); + --yt-live-chat-moderator-color: hsl(225, 84%, 66%); + --yt-live-chat-owner-color: hsl(40, 76%, 55%); + --yt-live-chat-author-chip-owner-text-color: rgba(0, 0, 0, 0.87); + --yt-live-chat-author-chip-verified-background-color: #CCCCCC; + --yt-live-chat-author-chip-verified-text-color: #606060; + --yt-live-chat-message-highlight-background-color: #f8f8f8; + --yt-live-chat-sponsor-color: #107516; + --yt-live-chat-overlay-color: hsla(0, 0%, 0%, 0.6); + --yt-live-chat-dialog-background-color: hsl(0, 0%, 100%); + --yt-live-chat-dialog-text-color: hsla(0, 0%, 6.7%, .6); + --yt-live-chat-poll-choice-text-color: var(--yt-spec-text-secondary); + --yt-live-chat-poll-choice-border-color: var(--yt-spec-10-percent-layer); + --yt-live-chat-poll-choice-vote-bar-background-color: hsla(0, 0%, 93.3%, .8); + --yt-live-chat-poll-choice-vote-bar-background-color-selected: #F2F8FF; + --yt-live-chat-poll-choice-color-selected: #065FD4; + --yt-live-chat-moderation-mode-hover-background-color: hsla(0, 0%, 6.7%, .2); + --yt-live-chat-additional-inline-action-button-color: hsl(0, 0%, 100%); + --yt-live-chat-additional-inline-action-button-background-color: hsla(0, 0%, 26%, 0.8); + --yt-live-chat-additional-inline-action-button-background-color-hover: hsla(0, 0%, 26%, 1.0); + --yt-formatted-string-emoji-size: 24px; + --yt-live-chat-emoji-size: 24px; + --yt-live-chat-text-input-field-suggestion-background-color: hsl(0, 0%, 100%); + --yt-live-chat-text-input-field-suggestion-background-color-hover: #eee; + --yt-live-chat-text-input-field-suggestion-text-color: #666; + --yt-live-chat-text-input-field-suggestion-text-color-hover: #333; + --yt-live-chat-ticker-arrow-background: hsl(0, 0%, 97.3%); + --yt-emoji-picker-category-background-color: var(--yt-live-chat-action-panel-background-color-transparent); + --yt-emoji-picker-category-color: var(--yt-live-chat-secondary-text-color); + --yt-emoji-picker-category-button-color: var(--yt-live-chat-picker-button-color); + --yt-emoji-picker-search-background-color: hsla(0, 0%, 100%, .6); + --yt-emoji-picker-search-color: hsla(0, 0%, 6.7%, .8); + --yt-emoji-picker-search-placeholder-color: hsla(0, 0%, 6.7%, .6); + --yt-live-chat-slider-active-color: #2196f3; + --yt-live-chat-slider-container-color: #c8c8c8; + --yt-live-chat-slider-markers-color: #505050; + --yt-live-chat-toast-background-color: hsl(0, 0%, 20%); + --yt-live-chat-toast-text-color: hsl(0, 0%, 100%); + --yt-live-chat-automod-button-background-color: hsl(0, 0%, 93.3%); + --yt-live-chat-automod-button-background-color-hover: hsla(0, 0%, 6.7%, .2); + --yt-live-chat-countdown-opacity: 0.3; + --yt-live-chat-shimmer-background-color: rgba(136, 136, 136, 0.2); + --yt-live-chat-shimmer-linear-gradient: linear-gradient(0deg, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 65%); + --yt-live-chat-vem-background-color: hsl(0, 0%, 93.3%); + --yt-live-chat-upsell-dialog-renderer-button-padding: 10px 16px; + --yt-live-chat-product-picker-icon-color: rgba(17, 17, 17, 0.6); + --yt-live-chat-product-picker-hover-color: rgba(17, 17, 16, 0.1); + --yt-live-chat-product-picker-disabled-icon-color: rgba(17, 17, 17, 0.4); + --yt-pdg-paid-stickers-tab-selection-bar-color: #065FD4; + --yt-pdg-paid-stickers-author-name-font-size: 13px; + --yt-pdg-paid-stickers-margin-left: 38px; + } - --layout-inline_-_display: inline-flex; - ; + html:not(.style-scope) { + --layout_-_display: flex; + ; - --layout-horizontal_-_display: var(--layout_-_display); - --layout-horizontal_-_-ms-flex-direction: row; - --layout-horizontal_-_-webkit-flex-direction: row; - --layout-horizontal_-_flex-direction: row; - ; + --layout-inline_-_display: inline-flex; + ; - --layout-horizontal-reverse_-_display: var(--layout_-_display); - --layout-horizontal-reverse_-_-ms-flex-direction: row-reverse; - --layout-horizontal-reverse_-_-webkit-flex-direction: row-reverse; - --layout-horizontal-reverse_-_flex-direction: row-reverse; - ; + --layout-horizontal_-_display: var(--layout_-_display); + --layout-horizontal_-_-ms-flex-direction: row; + --layout-horizontal_-_-webkit-flex-direction: row; + --layout-horizontal_-_flex-direction: row; + ; - --layout-vertical_-_display: var(--layout_-_display); - --layout-vertical_-_-ms-flex-direction: column; - --layout-vertical_-_-webkit-flex-direction: column; - --layout-vertical_-_flex-direction: column; - ; + --layout-horizontal-reverse_-_display: var(--layout_-_display); + --layout-horizontal-reverse_-_-ms-flex-direction: row-reverse; + --layout-horizontal-reverse_-_-webkit-flex-direction: row-reverse; + --layout-horizontal-reverse_-_flex-direction: row-reverse; + ; - --layout-vertical-reverse_-_display: var(--layout_-_display); - --layout-vertical-reverse_-_-ms-flex-direction: column-reverse; - --layout-vertical-reverse_-_-webkit-flex-direction: column-reverse; - --layout-vertical-reverse_-_flex-direction: column-reverse; - ; + --layout-vertical_-_display: var(--layout_-_display); + --layout-vertical_-_-ms-flex-direction: column; + --layout-vertical_-_-webkit-flex-direction: column; + --layout-vertical_-_flex-direction: column; + ; - --layout-wrap_-_-ms-flex-wrap: wrap; - --layout-wrap_-_-webkit-flex-wrap: wrap; - --layout-wrap_-_flex-wrap: wrap; - ; + --layout-vertical-reverse_-_display: var(--layout_-_display); + --layout-vertical-reverse_-_-ms-flex-direction: column-reverse; + --layout-vertical-reverse_-_-webkit-flex-direction: column-reverse; + --layout-vertical-reverse_-_flex-direction: column-reverse; + ; - --layout-wrap-reverse_-_-ms-flex-wrap: wrap-reverse; - --layout-wrap-reverse_-_-webkit-flex-wrap: wrap-reverse; - --layout-wrap-reverse_-_flex-wrap: wrap-reverse; - ; + --layout-wrap_-_-ms-flex-wrap: wrap; + --layout-wrap_-_-webkit-flex-wrap: wrap; + --layout-wrap_-_flex-wrap: wrap; + ; - --layout-flex-auto_-_-ms-flex: 1 1 auto; - --layout-flex-auto_-_-webkit-flex: 1 1 auto; - --layout-flex-auto_-_flex: 1 1 auto; - ; + --layout-wrap-reverse_-_-ms-flex-wrap: wrap-reverse; + --layout-wrap-reverse_-_-webkit-flex-wrap: wrap-reverse; + --layout-wrap-reverse_-_flex-wrap: wrap-reverse; + ; - --layout-flex-none_-_-ms-flex: none; - --layout-flex-none_-_-webkit-flex: none; - --layout-flex-none_-_flex: none; - ; + --layout-flex-auto_-_-ms-flex: 1 1 auto; + --layout-flex-auto_-_-webkit-flex: 1 1 auto; + --layout-flex-auto_-_flex: 1 1 auto; + ; - --layout-flex_-_-ms-flex: 1 1 0.000000001px; - --layout-flex_-_-webkit-flex: 1; - --layout-flex_-_flex: 1; - --layout-flex_-_-webkit-flex-basis: 0.000000001px; - --layout-flex_-_flex-basis: 0.000000001px; - ; + --layout-flex-none_-_-ms-flex: none; + --layout-flex-none_-_-webkit-flex: none; + --layout-flex-none_-_flex: none; + ; - --layout-flex-2_-_-ms-flex: 2; - --layout-flex-2_-_-webkit-flex: 2; - --layout-flex-2_-_flex: 2; - ; + --layout-flex_-_-ms-flex: 1 1 0.000000001px; + --layout-flex_-_-webkit-flex: 1; + --layout-flex_-_flex: 1; + --layout-flex_-_-webkit-flex-basis: 0.000000001px; + --layout-flex_-_flex-basis: 0.000000001px; + ; - --layout-flex-3_-_-ms-flex: 3; - --layout-flex-3_-_-webkit-flex: 3; - --layout-flex-3_-_flex: 3; - ; + --layout-flex-2_-_-ms-flex: 2; + --layout-flex-2_-_-webkit-flex: 2; + --layout-flex-2_-_flex: 2; + ; - --layout-flex-4_-_-ms-flex: 4; - --layout-flex-4_-_-webkit-flex: 4; - --layout-flex-4_-_flex: 4; - ; + --layout-flex-3_-_-ms-flex: 3; + --layout-flex-3_-_-webkit-flex: 3; + --layout-flex-3_-_flex: 3; + ; - --layout-flex-5_-_-ms-flex: 5; - --layout-flex-5_-_-webkit-flex: 5; - --layout-flex-5_-_flex: 5; - ; + --layout-flex-4_-_-ms-flex: 4; + --layout-flex-4_-_-webkit-flex: 4; + --layout-flex-4_-_flex: 4; + ; - --layout-flex-6_-_-ms-flex: 6; - --layout-flex-6_-_-webkit-flex: 6; - --layout-flex-6_-_flex: 6; - ; + --layout-flex-5_-_-ms-flex: 5; + --layout-flex-5_-_-webkit-flex: 5; + --layout-flex-5_-_flex: 5; + ; - --layout-flex-7_-_-ms-flex: 7; - --layout-flex-7_-_-webkit-flex: 7; - --layout-flex-7_-_flex: 7; - ; + --layout-flex-6_-_-ms-flex: 6; + --layout-flex-6_-_-webkit-flex: 6; + --layout-flex-6_-_flex: 6; + ; - --layout-flex-8_-_-ms-flex: 8; - --layout-flex-8_-_-webkit-flex: 8; - --layout-flex-8_-_flex: 8; - ; + --layout-flex-7_-_-ms-flex: 7; + --layout-flex-7_-_-webkit-flex: 7; + --layout-flex-7_-_flex: 7; + ; - --layout-flex-9_-_-ms-flex: 9; - --layout-flex-9_-_-webkit-flex: 9; - --layout-flex-9_-_flex: 9; - ; + --layout-flex-8_-_-ms-flex: 8; + --layout-flex-8_-_-webkit-flex: 8; + --layout-flex-8_-_flex: 8; + ; - --layout-flex-10_-_-ms-flex: 10; - --layout-flex-10_-_-webkit-flex: 10; - --layout-flex-10_-_flex: 10; - ; + --layout-flex-9_-_-ms-flex: 9; + --layout-flex-9_-_-webkit-flex: 9; + --layout-flex-9_-_flex: 9; + ; - --layout-flex-11_-_-ms-flex: 11; - --layout-flex-11_-_-webkit-flex: 11; - --layout-flex-11_-_flex: 11; - ; + --layout-flex-10_-_-ms-flex: 10; + --layout-flex-10_-_-webkit-flex: 10; + --layout-flex-10_-_flex: 10; + ; - --layout-flex-12_-_-ms-flex: 12; - --layout-flex-12_-_-webkit-flex: 12; - --layout-flex-12_-_flex: 12; - ; + --layout-flex-11_-_-ms-flex: 11; + --layout-flex-11_-_-webkit-flex: 11; + --layout-flex-11_-_flex: 11; + ; + + --layout-flex-12_-_-ms-flex: 12; + --layout-flex-12_-_-webkit-flex: 12; + --layout-flex-12_-_flex: 12; + ; - --layout-start_-_-ms-flex-align: start; - --layout-start_-_-webkit-align-items: flex-start; - --layout-start_-_align-items: flex-start; - ; + --layout-start_-_-ms-flex-align: start; + --layout-start_-_-webkit-align-items: flex-start; + --layout-start_-_align-items: flex-start; + ; - --layout-center_-_-ms-flex-align: center; - --layout-center_-_-webkit-align-items: center; - --layout-center_-_align-items: center; - ; + --layout-center_-_-ms-flex-align: center; + --layout-center_-_-webkit-align-items: center; + --layout-center_-_align-items: center; + ; - --layout-end_-_-ms-flex-align: end; - --layout-end_-_-webkit-align-items: flex-end; - --layout-end_-_align-items: flex-end; - ; + --layout-end_-_-ms-flex-align: end; + --layout-end_-_-webkit-align-items: flex-end; + --layout-end_-_align-items: flex-end; + ; - --layout-baseline_-_-ms-flex-align: baseline; - --layout-baseline_-_-webkit-align-items: baseline; - --layout-baseline_-_align-items: baseline; - ; + --layout-baseline_-_-ms-flex-align: baseline; + --layout-baseline_-_-webkit-align-items: baseline; + --layout-baseline_-_align-items: baseline; + ; - --layout-start-justified_-_-ms-flex-pack: start; - --layout-start-justified_-_-webkit-justify-content: flex-start; - --layout-start-justified_-_justify-content: flex-start; - ; + --layout-start-justified_-_-ms-flex-pack: start; + --layout-start-justified_-_-webkit-justify-content: flex-start; + --layout-start-justified_-_justify-content: flex-start; + ; - --layout-center-justified_-_-ms-flex-pack: center; - --layout-center-justified_-_-webkit-justify-content: center; - --layout-center-justified_-_justify-content: center; - ; + --layout-center-justified_-_-ms-flex-pack: center; + --layout-center-justified_-_-webkit-justify-content: center; + --layout-center-justified_-_justify-content: center; + ; - --layout-end-justified_-_-ms-flex-pack: end; - --layout-end-justified_-_-webkit-justify-content: flex-end; - --layout-end-justified_-_justify-content: flex-end; - ; + --layout-end-justified_-_-ms-flex-pack: end; + --layout-end-justified_-_-webkit-justify-content: flex-end; + --layout-end-justified_-_justify-content: flex-end; + ; - --layout-around-justified_-_-ms-flex-pack: distribute; - --layout-around-justified_-_-webkit-justify-content: space-around; - --layout-around-justified_-_justify-content: space-around; - ; + --layout-around-justified_-_-ms-flex-pack: distribute; + --layout-around-justified_-_-webkit-justify-content: space-around; + --layout-around-justified_-_justify-content: space-around; + ; - --layout-justified_-_-ms-flex-pack: justify; - --layout-justified_-_-webkit-justify-content: space-between; - --layout-justified_-_justify-content: space-between; - ; + --layout-justified_-_-ms-flex-pack: justify; + --layout-justified_-_-webkit-justify-content: space-between; + --layout-justified_-_justify-content: space-between; + ; - --layout-center-center_-_-ms-flex-align: var(--layout-center_-_-ms-flex-align); - --layout-center-center_-_-webkit-align-items: var(--layout-center_-_-webkit-align-items); - --layout-center-center_-_align-items: var(--layout-center_-_align-items); - --layout-center-center_-_-ms-flex-pack: var(--layout-center-justified_-_-ms-flex-pack); - --layout-center-center_-_-webkit-justify-content: var(--layout-center-justified_-_-webkit-justify-content); - --layout-center-center_-_justify-content: var(--layout-center-justified_-_justify-content); - ; + --layout-center-center_-_-ms-flex-align: var(--layout-center_-_-ms-flex-align); + --layout-center-center_-_-webkit-align-items: var(--layout-center_-_-webkit-align-items); + --layout-center-center_-_align-items: var(--layout-center_-_align-items); + --layout-center-center_-_-ms-flex-pack: var(--layout-center-justified_-_-ms-flex-pack); + --layout-center-center_-_-webkit-justify-content: var(--layout-center-justified_-_-webkit-justify-content); + --layout-center-center_-_justify-content: var(--layout-center-justified_-_justify-content); + ; - --layout-self-start_-_-ms-align-self: flex-start; - --layout-self-start_-_-webkit-align-self: flex-start; - --layout-self-start_-_align-self: flex-start; - ; + --layout-self-start_-_-ms-align-self: flex-start; + --layout-self-start_-_-webkit-align-self: flex-start; + --layout-self-start_-_align-self: flex-start; + ; - --layout-self-center_-_-ms-align-self: center; - --layout-self-center_-_-webkit-align-self: center; - --layout-self-center_-_align-self: center; - ; + --layout-self-center_-_-ms-align-self: center; + --layout-self-center_-_-webkit-align-self: center; + --layout-self-center_-_align-self: center; + ; - --layout-self-end_-_-ms-align-self: flex-end; - --layout-self-end_-_-webkit-align-self: flex-end; - --layout-self-end_-_align-self: flex-end; - ; + --layout-self-end_-_-ms-align-self: flex-end; + --layout-self-end_-_-webkit-align-self: flex-end; + --layout-self-end_-_align-self: flex-end; + ; - --layout-self-stretch_-_-ms-align-self: stretch; - --layout-self-stretch_-_-webkit-align-self: stretch; - --layout-self-stretch_-_align-self: stretch; - ; + --layout-self-stretch_-_-ms-align-self: stretch; + --layout-self-stretch_-_-webkit-align-self: stretch; + --layout-self-stretch_-_align-self: stretch; + ; - --layout-self-baseline_-_-ms-align-self: baseline; - --layout-self-baseline_-_-webkit-align-self: baseline; - --layout-self-baseline_-_align-self: baseline; - ; + --layout-self-baseline_-_-ms-align-self: baseline; + --layout-self-baseline_-_-webkit-align-self: baseline; + --layout-self-baseline_-_align-self: baseline; + ; - --layout-start-aligned_-_-ms-flex-line-pack: start; - --layout-start-aligned_-_-ms-align-content: flex-start; - --layout-start-aligned_-_-webkit-align-content: flex-start; - --layout-start-aligned_-_align-content: flex-start; - ; + --layout-start-aligned_-_-ms-flex-line-pack: start; + --layout-start-aligned_-_-ms-align-content: flex-start; + --layout-start-aligned_-_-webkit-align-content: flex-start; + --layout-start-aligned_-_align-content: flex-start; + ; - --layout-end-aligned_-_-ms-flex-line-pack: end; - --layout-end-aligned_-_-ms-align-content: flex-end; - --layout-end-aligned_-_-webkit-align-content: flex-end; - --layout-end-aligned_-_align-content: flex-end; - ; + --layout-end-aligned_-_-ms-flex-line-pack: end; + --layout-end-aligned_-_-ms-align-content: flex-end; + --layout-end-aligned_-_-webkit-align-content: flex-end; + --layout-end-aligned_-_align-content: flex-end; + ; - --layout-center-aligned_-_-ms-flex-line-pack: center; - --layout-center-aligned_-_-ms-align-content: center; - --layout-center-aligned_-_-webkit-align-content: center; - --layout-center-aligned_-_align-content: center; - ; + --layout-center-aligned_-_-ms-flex-line-pack: center; + --layout-center-aligned_-_-ms-align-content: center; + --layout-center-aligned_-_-webkit-align-content: center; + --layout-center-aligned_-_align-content: center; + ; - --layout-between-aligned_-_-ms-flex-line-pack: justify; - --layout-between-aligned_-_-ms-align-content: space-between; - --layout-between-aligned_-_-webkit-align-content: space-between; - --layout-between-aligned_-_align-content: space-between; - ; + --layout-between-aligned_-_-ms-flex-line-pack: justify; + --layout-between-aligned_-_-ms-align-content: space-between; + --layout-between-aligned_-_-webkit-align-content: space-between; + --layout-between-aligned_-_align-content: space-between; + ; - --layout-around-aligned_-_-ms-flex-line-pack: distribute; - --layout-around-aligned_-_-ms-align-content: space-around; - --layout-around-aligned_-_-webkit-align-content: space-around; - --layout-around-aligned_-_align-content: space-around; - ; + --layout-around-aligned_-_-ms-flex-line-pack: distribute; + --layout-around-aligned_-_-ms-align-content: space-around; + --layout-around-aligned_-_-webkit-align-content: space-around; + --layout-around-aligned_-_align-content: space-around; + ; - --layout-block_-_display: block; - ; + --layout-block_-_display: block; + ; - --layout-invisible_-_visibility: hidden !important; - ; + --layout-invisible_-_visibility: hidden !important; + ; - --layout-relative_-_position: relative; - ; + --layout-relative_-_position: relative; + ; - --layout-fit_-_position: absolute; - --layout-fit_-_top: 0; - --layout-fit_-_right: 0; - --layout-fit_-_bottom: 0; - --layout-fit_-_left: 0; - ; + --layout-fit_-_position: absolute; + --layout-fit_-_top: 0; + --layout-fit_-_right: 0; + --layout-fit_-_bottom: 0; + --layout-fit_-_left: 0; + ; - --layout-scroll_-_-webkit-overflow-scrolling: touch; - --layout-scroll_-_overflow: auto; - ; + --layout-scroll_-_-webkit-overflow-scrolling: touch; + --layout-scroll_-_overflow: auto; + ; - --layout-fullbleed_-_margin: 0; - --layout-fullbleed_-_height: 100vh; - ; + --layout-fullbleed_-_margin: 0; + --layout-fullbleed_-_height: 100vh; + ; - --layout-fixed-top_-_position: fixed; - --layout-fixed-top_-_top: 0; - --layout-fixed-top_-_left: 0; - --layout-fixed-top_-_right: 0; - ; + --layout-fixed-top_-_position: fixed; + --layout-fixed-top_-_top: 0; + --layout-fixed-top_-_left: 0; + --layout-fixed-top_-_right: 0; + ; - --layout-fixed-right_-_position: fixed; - --layout-fixed-right_-_top: 0; - --layout-fixed-right_-_right: 0; - --layout-fixed-right_-_bottom: 0; - ; + --layout-fixed-right_-_position: fixed; + --layout-fixed-right_-_top: 0; + --layout-fixed-right_-_right: 0; + --layout-fixed-right_-_bottom: 0; + ; - --layout-fixed-bottom_-_position: fixed; - --layout-fixed-bottom_-_right: 0; - --layout-fixed-bottom_-_bottom: 0; - --layout-fixed-bottom_-_left: 0; - ; + --layout-fixed-bottom_-_position: fixed; + --layout-fixed-bottom_-_right: 0; + --layout-fixed-bottom_-_bottom: 0; + --layout-fixed-bottom_-_left: 0; + ; - --layout-fixed-left_-_position: fixed; - --layout-fixed-left_-_top: 0; - --layout-fixed-left_-_bottom: 0; - --layout-fixed-left_-_left: 0; - ; -} + --layout-fixed-left_-_position: fixed; + --layout-fixed-left_-_top: 0; + --layout-fixed-left_-_bottom: 0; + --layout-fixed-left_-_left: 0; + ; + } + +} \ No newline at end of file diff --git a/src/client/ClientAutoAction.vue b/src/client/ClientAutoAction.vue index dff7921..0581697 100644 --- a/src/client/ClientAutoAction.vue +++ b/src/client/ClientAutoAction.vue @@ -508,8 +508,26 @@ onMounted(() => { v-for="(label, type) in typeMap" :key="type" :name="type" - :tab="label" > + boolean; // 自定义过滤器 + enabledTriggerTypes?: Ref> // 触发类型启用状态 } ): AutoActionItem[] { return actions.filter(action => { @@ -38,6 +39,11 @@ export function filterValidActions( return false; } + // 检查触发类型是否启用 + if (options?.enabledTriggerTypes && !options.enabledTriggerTypes.value[triggerType]) { + return false; + } + // 直播状态过滤 if (action.triggerConfig.onlyDuringLive && !isLive.value) { return false; @@ -146,6 +152,38 @@ export function processTemplate( } } +// 辅助函数:发送弹幕并记录日志 +async function sendAndLogDanmaku( + sendHandler: (roomId: number, message: string) => Promise, + action: AutoActionItem, + roomId: number, + message: string +): Promise { + try { + const success = await sendHandler(roomId, message); + logDanmakuHistory( + action.id, + action.name || '未命名操作', + message, + roomId, + success, + success ? undefined : '发送失败' + ).catch(err => console.error('记录弹幕历史失败:', err)); + return success; + } catch (err) { + console.error(`[AutoAction] 发送弹幕失败 (${action.name || action.id}):`, err); + logDanmakuHistory( + action.id, + action.name || '未命名操作', + message, + roomId, + false, + err instanceof Error ? err.toString() : String(err) // 确保err是字符串 + ).catch(e => console.error('记录弹幕历史失败:', e)); + return false; + } +} + /** * 执行操作的通用函数 * @param actions 过滤后的操作列表 @@ -220,61 +258,13 @@ export function executeActions( // 更新冷却时间 runtimeState.lastExecutionTime[action.id] = Date.now(); + const sendAction = () => sendAndLogDanmaku(handlers.sendLiveDanmaku!, action, roomId, message); + // 延迟发送 if (action.actionConfig.delaySeconds && action.actionConfig.delaySeconds > 0) { - setTimeout(() => { - handlers.sendLiveDanmaku!(roomId, message) - .then(success => { - // 记录弹幕发送历史 - logDanmakuHistory( - action.id, - action.name || '未命名操作', - message, - roomId, - success, - success ? undefined : '发送失败' - ).catch(err => console.error('记录弹幕历史失败:', err)); - return success; - }) - .catch(err => { - console.error(`[AutoAction] 发送弹幕失败 (${action.name || action.id}):`, err); - // 记录失败的发送 - logDanmakuHistory( - action.id, - action.name || '未命名操作', - message, - roomId, - false, - err.toString() - ).catch(e => console.error('记录弹幕历史失败:', e)); - }); - }, action.actionConfig.delaySeconds * 1000); + setTimeout(sendAction, action.actionConfig.delaySeconds * 1000); } else { - handlers.sendLiveDanmaku(roomId, message) - .then(success => { - // 记录弹幕发送历史 - logDanmakuHistory( - action.id, - action.name || '未命名操作', - message, - roomId, - success, - success ? undefined : '发送失败' - ).catch(err => console.error('记录弹幕历史失败:', err)); - return success; - }) - .catch(err => { - console.error(`[AutoAction] 发送弹幕失败 (${action.name || action.id}):`, err); - // 记录失败的发送 - logDanmakuHistory( - action.id, - action.name || '未命名操作', - message, - roomId, - false, - err.toString() - ).catch(e => console.error('记录弹幕历史失败:', e)); - }); + sendAction(); } } } else { @@ -321,7 +311,7 @@ export function executeActions( msg, uid, false, - err.toString() + err instanceof Error ? err.toString() : String(err) // 确保err是字符串 ).catch(e => console.error('记录私信历史失败:', e)); return false; // 明确返回 false 表示失败 }); diff --git a/src/client/store/useAutoAction.ts b/src/client/store/useAutoAction.ts index ba89343..9c9d6c4 100644 --- a/src/client/store/useAutoAction.ts +++ b/src/client/store/useAutoAction.ts @@ -28,19 +28,21 @@ import { createDefaultRuntimeState } from './autoAction/utils'; import { evaluateTemplateExpressions } from './autoAction/expressionEvaluator'; +// 导入 actionUtils 工具函数 +import { filterValidActions, checkUserFilters, checkCooldown, processTemplate, executeActions } from './autoAction/actionUtils'; // 导入 nanoid 用于生成唯一 ID import { nanoid } from 'nanoid'; // 导入开发环境判断标志 import { isDev } from '@/data/constants.js'; // 导入所有自动操作子模块 -import { useGiftThank } from './autoAction/modules/giftThank.js'; -import { useGuardPm } from './autoAction/modules/guardPm.js'; -import { useFollowThank } from './autoAction/modules/followThank.js'; -import { useEntryWelcome } from './autoAction/modules/entryWelcome.js'; -import { useAutoReply } from './autoAction/modules/autoReply.js'; -import { useScheduledDanmaku } from './autoAction/modules/scheduledDanmaku.js'; -import { useSuperChatThank } from './autoAction/modules/superChatThank.js'; +import { useGiftThank } from './autoAction/modules/giftThank'; +import { useGuardPm } from './autoAction/modules/guardPm'; +import { useFollowThank } from './autoAction/modules/followThank'; +import { useEntryWelcome } from './autoAction/modules/entryWelcome'; +import { useAutoReply } from './autoAction/modules/autoReply'; +import { useScheduledDanmaku } from './autoAction/modules/scheduledDanmaku'; +import { useSuperChatThank } from './autoAction/modules/superChatThank'; // 定义名为 'autoAction' 的 Pinia store export const useAutoAction = defineStore('autoAction', () => { @@ -540,38 +542,6 @@ export const useAutoAction = defineStore('autoAction', () => { // 定时检查天选状态 (每5分钟) const tianXuanTimer = setInterval(checkTianXuanStatus, 5 * 60 * 1000); - /** - * 判断是否应处理某个操作项 (基于事件和配置) - * @param action 操作项配置 - * @param event 可选的事件数据 - * @returns 是否应该处理 - */ - function shouldProcessAction(action: AutoActionItem, event?: EventModel | null): boolean { - if (!action.enabled) return false; // 未启用则跳过 - if (!enabledTriggerTypes.value[action.triggerType]) return false; // 触发类型未启用则跳过 - - // 检查模板是否为空 (添加新的检查) - if (!action.template || action.template.trim() === '') { - console.warn(`[AutoAction] 跳过操作 "${action.name}":未设置有效模板`); - return false; - } - - // 根据配置检查条件 - if (action.triggerConfig.onlyDuringLive && !isLive.value) return false; // 仅直播时 - if (action.triggerConfig.ignoreTianXuan && isTianXuanActive.value) return false; // 忽略天选时 - // 用户过滤条件 - if (event && action.triggerConfig.userFilterEnabled) { - if (action.triggerConfig.requireMedal && !event.fans_medal_wearing_status) return false; // 要求粉丝牌 - if (action.triggerConfig.requireCaptain && event.guard_level === GuardLevel.None) return false; // 要求舰长 - } - // 逻辑表达式判断 - if (action.logicalExpression && event) { - const context = buildExecutionContext(event, roomId.value, action.triggerType); - if (!evaluateExpression(action.logicalExpression, context)) return false; // 表达式不满足 - } - return true; // 所有条件满足 - } - /** * 处理接收到的事件 * @param event 事件数据 @@ -579,10 +549,8 @@ export const useAutoAction = defineStore('autoAction', () => { */ function processEvent(event: EventModel, triggerType: TriggerType) { if (!roomId.value) return; // 房间 ID 无效则跳过 - // 检查触发类型是否启用 if (!enabledTriggerTypes.value[triggerType]) return; - // 根据触发类型调用相应模块的处理函数 switch (triggerType) { case TriggerType.DANMAKU: diff --git a/src/components/MonacoEditorComponent.vue b/src/components/MonacoEditorComponent.vue index 5988668..7e65f81 100644 --- a/src/components/MonacoEditorComponent.vue +++ b/src/components/MonacoEditorComponent.vue @@ -2,12 +2,13 @@

\ No newline at end of file diff --git a/src/components/RegisterAndLogin.vue b/src/components/RegisterAndLogin.vue index e859b78..6e3d065 100644 --- a/src/components/RegisterAndLogin.vue +++ b/src/components/RegisterAndLogin.vue @@ -167,9 +167,7 @@ function onLoginButtonClick() { refreshDate: Date.now() } message.success(`成功登陆为 ${data?.data.account.name}`) - setTimeout(() => { - location.reload() - }, 1000) + location.reload() } else { message.error(data.message) } diff --git a/src/data/Initializer.ts b/src/data/Initializer.ts index 465ac3c..d45104a 100644 --- a/src/data/Initializer.ts +++ b/src/data/Initializer.ts @@ -94,43 +94,38 @@ function InitVersionCheck() { currentVersion = keepCheckData.data localStorage.setItem('Version', currentVersion) console.log(`[vtsuru] 发现新版本: ${currentVersion}`) - - const url = new URL(window.location.href) - const path = url.pathname - - if (!path.startsWith('/obs')) { - if (isTauri()) { - location.reload(); - } - else { - const n = notification.info({ - title: '发现新的版本更新', - content: '是否现在刷新?', - meta: () => h(NText, { depth: 3 }, () => currentVersion), - action: () => - h(NFlex, null, () => [ - h( - NButton, - { - text: true, - type: 'primary', - onClick: () => location.reload(), - size: 'small', - }, - { default: () => '刷新' }, - ), - h( - NButton, - { - text: true, - onClick: () => n.destroy(), - size: 'small', - }, - { default: () => '稍后' }, - ), - ]), - }) - } + + if (window.$route.meta.forceReload || isTauri()) { + location.reload() + } + else { + const n = notification.info({ + title: '发现新的版本更新', + content: '是否现在刷新?', + meta: () => h(NText, { depth: 3 }, () => currentVersion), + action: () => + h(NFlex, null, () => [ + h( + NButton, + { + text: true, + type: 'primary', + onClick: () => location.reload(), + size: 'small', + }, + { default: () => '刷新' }, + ), + h( + NButton, + { + text: true, + onClick: () => n.destroy(), + size: 'small', + }, + { default: () => '稍后' }, + ), + ]), + }) } } }, diff --git a/src/data/UpdateNote.ts b/src/data/UpdateNote.ts index b86fb87..bdcdee0 100644 --- a/src/data/UpdateNote.ts +++ b/src/data/UpdateNote.ts @@ -4,6 +4,26 @@ import { VNode } from "vue"; import { FETCH_API } from "./constants"; export const updateNotes: updateNoteType[] = [ + { + ver: 5, + date: '2025.4.24', + items: [ + { + type: 'new', + title: '新增弹幕姬管理页面', + content: [ + [ + '弹幕姬现在可用,兼容 blivechat 样式', + () => h(NImage, { src: 'https://pan.suki.club/d/vtsuru/imgur/3c5a6f68-1aa4-4b96-a25e-dba2581ac898.png', width: 300 }), + ], + [ + '大部分功能都和 blivechat 一致, 不过目前还无法提供本地文件访问, 部分css中需要使用图片等本地资源样式的需要等 EventFetcher 更新相关功能后才能使用\r\n', + '配置上传之后会自动同步到obs中' + ] + ], + }, + ] + }, { ver: 4, date: '2025.4.22', diff --git a/src/data/constants.ts b/src/data/constants.ts index 38ef389..b1066cd 100644 --- a/src/data/constants.ts +++ b/src/data/constants.ts @@ -118,3 +118,301 @@ export const IndexTemplateMap: TemplateMapType = { component: DefaultIndexTemplateVue } }; + +export const defaultDanmujiCss = `@import url("https://fonts.googleapis.com/css?family=Changa%20One"); +@import url("https://fonts.googleapis.com/css?family=Imprima"); + +/* Transparent background */ +yt-live-chat-renderer { + background-color: transparent !important; +} + +yt-live-chat-ticker-renderer { + background-color: transparent !important; + box-shadow: none !important; +} + +yt-live-chat-author-chip #author-name { + background-color: transparent !important; +} + +yt-live-chat-item-list-renderer #item-scroller { + overflow: hidden !important; +} + +yt-live-chat-interact-message-renderer #content, +yt-live-chat-text-message-renderer #content, +yt-live-chat-membership-item-renderer #content { + overflow: visible !important; +} + +/* Hide header and input */ +yt-live-chat-header-renderer, +yt-live-chat-message-input-renderer { + display: none !important; +} + +/* Hide unimportant messages */ +yt-live-chat-interact-message-renderer[is-deleted], +yt-live-chat-text-message-renderer[is-deleted], +yt-live-chat-membership-item-renderer[is-deleted] { + display: none !important; +} + +yt-live-chat-mode-change-message-renderer, +yt-live-chat-viewer-engagement-message-renderer, +yt-live-chat-restricted-participation-renderer { + display: none !important; +} + +yt-live-chat-text-message-renderer a, +yt-live-chat-membership-item-renderer a { + text-decoration: none !important; +} + +/* Global Setting */ +yt-live-chat-renderer { + +} +#item-scroller { + +} + +/* Reduce side padding */ +yt-live-chat-interact-message-renderer, +yt-live-chat-text-message-renderer { + padding-left: 4px !important; + padding-right: 4px !important; +} + +/* Outlines */ +yt-live-chat-renderer * { + text-shadow: -2px -2px #000000, -2px -1px #000000, -2px 0px #000000, -2px 1px #000000, -2px 2px #000000, -1px -2px #000000, -1px -1px #000000, -1px 0px #000000, -1px 1px #000000, -1px 2px #000000, 0px -2px #000000, 0px -1px #000000, 0px 0px #000000, 0px 1px #000000, 0px 2px #000000, 1px -2px #000000, 1px -1px #000000, 1px 0px #000000, 1px 1px #000000, 1px 2px #000000, 2px -2px #000000, 2px -1px #000000, 2px 0px #000000, 2px 1px #000000, 2px 2px #000000; + font-family: "Imprima", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; + font-size: 18px !important; + line-height: 20px !important; +} + +/* Avatars */ +yt-live-chat-interact-message-renderer #author-photo, +yt-live-chat-interact-message-renderer #author-photo img, +yt-live-chat-text-message-renderer #author-photo, +yt-live-chat-text-message-renderer #author-photo img, +yt-live-chat-paid-message-renderer #author-photo, +yt-live-chat-paid-message-renderer #author-photo img, +yt-live-chat-membership-item-renderer #author-photo, +yt-live-chat-membership-item-renderer #author-photo img { + + width: 24px !important; + height: 24px !important; + border-radius: 24px !important; + margin-right: 6px !important; +} + +/* Channel names */ +yt-live-chat-interact-message-renderer #content #author-name, +yt-live-chat-text-message-renderer #content #author-name { + +} +yt-live-chat-interact-message-renderer #author-name[type="owner"], +yt-live-chat-interact-message-renderer yt-live-chat-author-badge-renderer[type="owner"], +yt-live-chat-text-message-renderer #author-name[type="owner"], +yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="owner"] { + color: #ffd600 !important; +} +yt-live-chat-interact-message-renderer #author-name[type="moderator"], +yt-live-chat-interact-message-renderer yt-live-chat-author-badge-renderer[type="moderator"], +yt-live-chat-text-message-renderer #author-name[type="moderator"], +yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="moderator"] { + color: #5e84f1 !important; +} +yt-live-chat-interact-message-renderer #author-name[type="member"], +yt-live-chat-interact-message-renderer yt-live-chat-author-badge-renderer[type="member"], +yt-live-chat-text-message-renderer #author-name[type="member"], +yt-live-chat-text-message-renderer yt-live-chat-author-badge-renderer[type="member"] { + color: #0f9d58 !important; +} + +yt-live-chat-interact-message-renderer #author-name, +yt-live-chat-text-message-renderer #author-name { + + color: #cccccc !important; + font-family: "Changa One", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; + font-size: 20px !important; + line-height: 20px !important; +} + +/* Show colon */ +yt-live-chat-text-message-renderer #author-name::after { + content: ":"; + margin-left: 2px; +} + +/* Hide badges */ +yt-live-chat-interact-message-renderer #chat-badges, +yt-live-chat-text-message-renderer #chat-badges { + + vertical-align: text-top !important; +} +img.yt-live-chat-author-badge-renderer, yt-icon.yt-live-chat-author-badge-renderer { + width: 20px; + height: 20px; +} + +/* Medal */ +yt-live-chat-author-medal-renderer { + display: none; + +} +yt-live-chat-author-medal-renderer[is-fan-group] { + display: flex; +} +#medal-name.yt-live-chat-author-medal-renderer { + + font-size: 14px !important; + line-height: 14px !important; +} + +#medal-level.yt-live-chat-author-medal-renderer { + + font-size: 14px !important; + line-height: 14px !important; +} + + +/* Messages */ +yt-live-chat-interact-message-renderer #message, +yt-live-chat-interact-message-renderer #message *, +yt-live-chat-text-message-renderer #message, +yt-live-chat-text-message-renderer #message * { + color: #ffffff !important; + font-family: "Imprima", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; + font-size: 18px !important; + line-height: 18px !important; +} + +yt-live-chat-text-message-renderer #image-and-message { + display: inline !important; + overflow: visible !important; +} + + + + +yt-live-chat-text-message-renderer #message { + display: inline !important; + overflow: visible !important; +} + +yt-live-chat-text-message-renderer #image-and-message .emoji { + width: auto !important; + height: 48px !important; +} + +#image-and-message img[display="block"] { + border-radius: 4px; +} + +#image-and-message img[display="inline"] { + position: relative; + top: 3px; + border-radius: 0px; +} + +/* Timestamps */ + + + +/* Background colors */ +body { + overflow: hidden; + background-color: rgba(0, 0, 0, 0); +} + +yt-live-chat-text-message-renderer, +yt-live-chat-text-message-renderer[is-highlighted] { + background-color: rgba(204, 204, 204, 0) !important; +} + +yt-live-chat-text-message-renderer[author-type="owner"], +yt-live-chat-text-message-renderer[author-type="owner"][is-highlighted] { + background-color: rgba(255, 214, 0, 0) !important; +} + +yt-live-chat-text-message-renderer[author-type="moderator"], +yt-live-chat-text-message-renderer[author-type="moderator"][is-highlighted] { + background-color: rgba(94, 132, 241, 0) !important; +} + +yt-live-chat-text-message-renderer[author-type="member"], +yt-live-chat-text-message-renderer[author-type="member"][is-highlighted] { + background-color: rgba(15, 157, 88, 0) !important; +} + +/* SuperChat/Fan Funding Messages */ +yt-live-chat-paid-message-renderer { + margin: 4px 0 !important; +} + +yt-live-chat-paid-message-renderer #author-name, +yt-live-chat-paid-message-renderer #author-name *, +yt-live-chat-membership-item-renderer #header-content-inner-column, +yt-live-chat-membership-item-renderer #header-content-inner-column * { + color: #ffffff !important; + font-family: "Changa One", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; + font-size: 20px !important; + line-height: 20px !important; +} + +yt-live-chat-paid-message-renderer #purchase-amount, +yt-live-chat-paid-message-renderer #purchase-amount *, +yt-live-chat-membership-item-renderer #header-subtext, +yt-live-chat-membership-item-renderer #header-subtext * { + color: #ffffff !important; + font-family: "Imprima", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; + font-size: 18px !important; + line-height: 18px !important; +} + +yt-live-chat-paid-message-renderer #content, +yt-live-chat-paid-message-renderer #content * { + color: #ffffff !important; + font-family: "Imprima", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; + font-size: 18px !important; + line-height: 18px !important; +} + +yt-live-chat-membership-item-renderer #card, +yt-live-chat-membership-item-renderer #header { + background-color: #0f9d58 !important; + margin: 4px 0 !important; +} + +yt-live-chat-ticker-renderer { + display: none !important; +} + +/* SuperChat Ticker */ +yt-live-chat-ticker-paid-message-item-renderer, +yt-live-chat-ticker-paid-message-item-renderer *, +yt-live-chat-ticker-sponsor-item-renderer, +yt-live-chat-ticker-sponsor-item-renderer * { + color: #ffffff !important; + font-family: "Imprima", "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", SimHei, Arial, sans-serif; +} + + + +/* Animation */ +@keyframes anim { + +} + +yt-live-chat-interact-message-renderer, +yt-live-chat-text-message-renderer, +yt-live-chat-membership-item-renderer, +yt-live-chat-paid-message-renderer { + animation: anim 0ms; + animation-fill-mode: both; +} +` \ No newline at end of file diff --git a/src/main.ts b/src/main.ts index 4b8a42c..5406b5b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,18 @@ import App from './App.vue'; import { InitVTsuru } from './data/Initializer'; import emitter from './mitt'; import router from './router'; +import { loader } from '@guolao/vue-monaco-editor' + +loader.config({ + paths: { + vs: 'https://cdn.jsdelivr.net/npm/monaco-editor/min/vs' + }, + 'vs/nls': { + availableLanguages: { + '*': 'zh-cn' + } + } +}) const pinia = createPinia() export const getPinia = () => pinia diff --git a/src/router/client.ts b/src/router/client.ts index 5484951..923ab60 100644 --- a/src/router/client.ts +++ b/src/router/client.ts @@ -8,6 +8,7 @@ export default { component: () => import('@/client/ClientIndex.vue'), meta: { title: '首页', + forceReload: true, } }, { @@ -16,6 +17,7 @@ export default { component: () => import('@/client/ClientFetcher.vue'), meta: { title: 'EventFetcher', + forceReload: true, } }, { @@ -24,6 +26,7 @@ export default { component: () => import('@/client/ClientSettings.vue'), meta: { title: '设置', + forceReload: true, } }, { @@ -32,6 +35,7 @@ export default { component: () => import('@/client/DanmakuWindowManager.vue'), meta: { title: '弹幕窗口管理', + forceReload: true, } }, { @@ -40,6 +44,7 @@ export default { component: () => import('@/client/ClientAutoAction.vue'), meta: { title: '自动操作管理', + forceReload: true, } }, { @@ -55,6 +60,7 @@ export default { component: () => import('@/client/ClientTest.vue'), meta: { title: '测试', + forceReload: true, } }, ] diff --git a/src/router/manage.ts b/src/router/manage.ts index 5ba7508..b9d01f7 100644 --- a/src/router/manage.ts +++ b/src/router/manage.ts @@ -138,7 +138,7 @@ export default //管理页面 name: 'manage-danmuji', component: () => import('@/views/manage/DanmujiManageView.vue'), meta: { - title: '点歌', + title: '弹幕姬', keepAlive: true, danmaku: true, isNew: true diff --git a/src/router/obs.ts b/src/router/obs.ts index 6a909fd..44104a0 100644 --- a/src/router/obs.ts +++ b/src/router/obs.ts @@ -7,7 +7,8 @@ export default { name: 'obs-live-lottery', component: () => import('@/views/obs/LiveLotteryOBS.vue'), meta: { - title: '直播抽奖' + title: '直播抽奖', + forceReload: true, } }, { @@ -16,7 +17,8 @@ export default { alias: 'song-request', component: () => import('@/views/obs/LiveRequestOBS.vue'), meta: { - title: '弹幕点播' + title: '弹幕点播', + forceReload: true, } }, { @@ -24,7 +26,8 @@ export default { name: 'obs-live-request-today', component: () => import('@/views/obs/LiveRequestProcessedOBS.vue'), meta: { - title: '弹幕点播-今日' + title: '弹幕点播-今日', + forceReload: true, } }, { @@ -32,7 +35,8 @@ export default { name: 'obs-queue', component: () => import('@/views/obs/QueueOBS.vue'), meta: { - title: '弹幕排队' + title: '弹幕排队', + forceReload: true, } }, { @@ -40,7 +44,8 @@ export default { name: 'obs-music-request', component: () => import('@/views/obs/MusicRequestOBS.vue'), meta: { - title: '弹幕排队 (播放' + title: '弹幕排队 (播放列表)', + forceReload: true, } }, { @@ -48,7 +53,8 @@ export default { name: 'obs-question-display', component: () => import('@/views/obs/QuestionDisplayOBS.vue'), meta: { - title: '棉花糖展示' + title: '棉花糖展示', + forceReload: true, } }, { @@ -56,7 +62,8 @@ export default { name: 'obs-web-fetcher', component: () => import('@/views/obs/WebFetcherOBS.vue'), meta: { - title: '弹幕收集器 (OBS版' + title: '弹幕收集器 (OBS版)', + forceReload: true, } }, { @@ -64,7 +71,8 @@ export default { name: 'obs-danmuji', component: () => import('@/views/obs/DanmujiOBS.vue'), meta: { - title: '弹幕机' + title: '弹幕姬', + forceReload: true, } } ] diff --git a/src/router/singlePage.ts b/src/router/singlePage.ts index 1078a0f..dd3bc31 100644 --- a/src/router/singlePage.ts +++ b/src/router/singlePage.ts @@ -21,7 +21,8 @@ export default [ component: () => import('@/client/ClientDanmakuWindow.vue'), meta: { title: '弹幕窗口', - ignoreLogin: true + ignoreLogin: true, + forceReload: true, } } ] diff --git a/src/views/BiliAuthView.vue b/src/views/BiliAuthView.vue index 4426ccc..028714a 100644 --- a/src/views/BiliAuthView.vue +++ b/src/views/BiliAuthView.vue @@ -243,7 +243,7 @@ onMounted(async () => { style="width: 100%" > - 你已完成验证! 请妥善保存你的登陆链接, 请勿让其他人获取. 丢失后可以再次通过认证流程获得 + 你已完成验证! 请妥善保存你的登陆链接, 请勿让其他人获取. 丢失后可以再次通过认证流程获得. 把这个链接复制到浏览器打开即可登录 你的登陆链接为: diff --git a/src/views/ManageLayout.vue b/src/views/ManageLayout.vue index e4bef15..a0aaccb 100644 --- a/src/views/ManageLayout.vue +++ b/src/views/ManageLayout.vue @@ -84,246 +84,255 @@ watch(aplayer, () => { // 邮箱验证相关 const canResendEmail = ref(false) +const isBiliVerified = computed(() => accountInfo.value?.isBiliVerified) // 图标渲染函数 - 用于菜单项 const renderIcon = (icon: any) => () => h(NIcon, null, { default: () => h(icon) }) // 菜单配置 -const menuOptions = [ - { - label: () => h(RouterLink, { to: { name: 'manage-history' } }, { default: () => '历史' }), - key: 'manage-history', - disabled: accountInfo.value?.isEmailVerified === false, - icon: renderIcon(AnalyticsSharp), - }, - { - label: () => h(RouterLink, { to: { name: 'manage-live' } }, { default: () => '直播记录' }), - key: 'manage-live', - disabled: accountInfo.value?.isEmailVerified === false, - icon: renderIcon(Live24Filled), - }, - { - label: () => h(RouterLink, { to: { name: 'manage-analyze' } }, { default: () => '直播数据' }), - key: 'manage-analyze', - disabled: accountInfo.value?.isEmailVerified === false, - icon: renderIcon(Eye), - }, - { - label: () => h(RouterLink, { to: { name: 'manage-event' } }, { default: () => '舰长和SC' }), - key: 'manage-event', - disabled: accountInfo.value?.isEmailVerified === false, - icon: renderIcon(VehicleShip24Filled), - }, - { - label: () => h(RouterLink, { to: { name: 'manage-point' } }, { default: () => '积分和礼物' }), - key: 'manage-point', - disabled: accountInfo.value?.isEmailVerified === false, - icon: renderIcon(BookCoins20Filled), - }, - { - label: () => h(RouterLink, { to: { name: 'manage-schedule' } }, { default: () => '日程' }), - key: 'manage-schedule', - icon: renderIcon(CalendarClock24Filled), - disabled: accountInfo.value?.isEmailVerified === false, - }, - { - label: () => h(RouterLink, { to: { name: 'manage-songList' } }, { default: () => '歌单' }), - key: 'manage-songList', - icon: renderIcon(MusicalNote), - disabled: accountInfo.value?.isEmailVerified === false, - }, - { - label: () => h(RouterLink, { to: { name: 'manage-questionBox' } }, { default: () => '棉花糖 (提问箱' }), - key: 'manage-questionBox', - icon: renderIcon(Chatbox), - disabled: accountInfo.value?.isEmailVerified === false, - }, - { - label: () => h(RouterLink, { to: { name: 'manage-videoCollect' } }, { default: () => '视频征集' }), - key: 'manage-videoCollect', - icon: renderIcon(VideoAdd20Filled), - disabled: accountInfo.value?.isEmailVerified === false, - }, - { - label: () => h(RouterLink, { to: { name: 'manage-lottery' } }, { default: () => '动态抽奖' }), - key: 'manage-lottery', - icon: renderIcon(Lottery24Filled), - }, - { - label: () => h( - NTooltip, - {}, - { - trigger: () => h( - NText, - () => [ - '弹幕相关', - h( +const menuOptions = computed(() => { + return [ + { + label: () => h(RouterLink, { to: { name: 'manage-history' } }, { default: () => '历史' }), + key: 'manage-history', + disabled: accountInfo.value?.isEmailVerified === false, + icon: renderIcon(AnalyticsSharp), + }, + { + label: () => h(RouterLink, { to: { name: 'manage-live' } }, { default: () => '直播记录' }), + key: 'manage-live', + disabled: accountInfo.value?.isEmailVerified === false, + icon: renderIcon(Live24Filled), + }, + { + label: () => h(RouterLink, { to: { name: 'manage-analyze' } }, { default: () => '直播数据' }), + key: 'manage-analyze', + disabled: accountInfo.value?.isEmailVerified === false, + icon: renderIcon(Eye), + }, + { + label: () => h(RouterLink, { to: { name: 'manage-event' } }, { default: () => '舰长和SC' }), + key: 'manage-event', + disabled: accountInfo.value?.isEmailVerified === false, + icon: renderIcon(VehicleShip24Filled), + }, + { + label: () => h(RouterLink, { to: { name: 'manage-point' } }, { default: () => '积分和礼物' }), + key: 'manage-point', + disabled: accountInfo.value?.isEmailVerified === false, + icon: renderIcon(BookCoins20Filled), + }, + { + label: () => h(RouterLink, { to: { name: 'manage-schedule' } }, { default: () => '日程' }), + key: 'manage-schedule', + icon: renderIcon(CalendarClock24Filled), + disabled: accountInfo.value?.isEmailVerified === false, + }, + { + label: () => h(RouterLink, { to: { name: 'manage-songList' } }, { default: () => '歌单' }), + key: 'manage-songList', + icon: renderIcon(MusicalNote), + disabled: accountInfo.value?.isEmailVerified === false, + }, + { + label: () => h(RouterLink, { to: { name: 'manage-questionBox' } }, { default: () => '棉花糖 (提问箱' }), + key: 'manage-questionBox', + icon: renderIcon(Chatbox), + disabled: accountInfo.value?.isEmailVerified === false, + }, + { + label: () => h(RouterLink, { to: { name: 'manage-videoCollect' } }, { default: () => '视频征集' }), + key: 'manage-videoCollect', + icon: renderIcon(VideoAdd20Filled), + disabled: accountInfo.value?.isEmailVerified === false, + }, + { + label: () => h(RouterLink, { to: { name: 'manage-lottery' } }, { default: () => '动态抽奖' }), + key: 'manage-lottery', + icon: renderIcon(Lottery24Filled), + }, + { + label: () => h( + NTooltip, + {}, + { + trigger: () => h( + NText, + () => [ + '弹幕相关', + h( + NTooltip, + { style: 'padding: 0;' }, + { + trigger: () => h(NIcon, { component: Info24Filled }), + default: () => h( + NAlert, + { + type: 'warning', + size: 'small', + title: '可用性警告', + style: 'max-width: 600px;', + }, + () => h('div', {}, [ + ' 当浏览器在后台运行时, 定时器和 Websocket 连接将受到严格限制, 这会导致弹幕接收功能无法正常工作 (详见', + h( + NButton, + { + text: true, + tag: 'a', + href: 'https://developer.chrome.com/blog/background_tabs/', + target: '_blank', + type: 'info', + }, + () => '此文章', + ), + '), 虽然本站已经针对此问题做出了处理, 一般情况下即使掉线了也会重连, 不过还是有可能会遗漏事件', + h('br'), + '为避免这种情况, 建议注册本站账后使用', + h( + NButton, + { + type: 'primary', + text: true, + size: 'small', + tag: 'a', + href: 'https://www.wolai.com/fje5wLtcrDoZcb9rk2zrFs', + target: '_blank', + }, + () => 'VtsuruEventFetcher', + ), + ', 否则请在使用功能时尽量保持网页在前台运行, 同时关闭浏览器的 页面休眠/内存节省 功能', + h('br'), + 'Chrome: ', + h( + NButton, + { + type: 'info', + text: true, + size: 'small', + tag: 'a', + href: 'https://support.google.com/chrome/answer/12929150?hl=zh-Hans#zippy=%2C%E5%BC%80%E5%90%AF%E6%88%96%E5%85%B3%E9%97%AD%E7%9C%81%E5%86%85%E5%AD%98%E6%A8%A1%E5%BC%8F%2C%E8%AE%A9%E7%89%B9%E5%AE%9A%E7%BD%91%E7%AB%99%E4%BF%9D%E6%8C%81%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81', + target: '_blank', + }, + () => '让特定网站保持活动状态', + ), + ', Edge: ', + h( + NButton, + { + type: 'info', + text: true, + size: 'small', + tag: 'a', + href: 'https://support.microsoft.com/zh-cn/topic/%E4%BA%86%E8%A7%A3-microsoft-edge-%E4%B8%AD%E7%9A%84%E6%80%A7%E8%83%BD%E5%8A%9F%E8%83%BD-7b36f363-2119-448a-8de6-375cfd88ab25', + target: '_blank', + }, + () => '永远不想进入睡眠状态的网站', + ), + ]), + ), + }, + ), + ] + ), + default: () => isBiliVerified.value + ? '需要使用直播弹幕的功能' + : '你尚未进行 Bilibili 认证, 请前往面板进行绑定', + }, + ), + key: 'manage-danmaku', + icon: renderIcon(Chat24Filled), + disabled: accountInfo.value?.isEmailVerified === false || !isBiliVerified.value, + children: [ + { + label: () => !isBiliVerified.value ? '弹幕机' : h( + NBadge, + { value: '新', offset: [15, 12], type: 'info' }, + () => h( NTooltip, - { style: 'padding: 0;' }, + {}, { - trigger: () => h(NIcon, { component: Info24Filled }), - default: () => h( - NAlert, - { - type: 'warning', - size: 'small', - title: '可用性警告', - style: 'max-width: 600px;', - }, - () => h('div', {}, [ - ' 当浏览器在后台运行时, 定时器和 Websocket 连接将受到严格限制, 这会导致弹幕接收功能无法正常工作 (详见', - h( - NButton, - { - text: true, - tag: 'a', - href: 'https://developer.chrome.com/blog/background_tabs/', - target: '_blank', - type: 'info', - }, - () => '此文章', - ), - '), 虽然本站已经针对此问题做出了处理, 一般情况下即使掉线了也会重连, 不过还是有可能会遗漏事件', - h('br'), - '为避免这种情况, 建议注册本站账后使用', - h( - NButton, - { - type: 'primary', - text: true, - size: 'small', - tag: 'a', - href: 'https://www.wolai.com/fje5wLtcrDoZcb9rk2zrFs', - target: '_blank', - }, - () => 'VtsuruEventFetcher', - ), - ', 否则请在使用功能时尽量保持网页在前台运行, 同时关闭浏览器的 页面休眠/内存节省 功能', - h('br'), - 'Chrome: ', - h( - NButton, - { - type: 'info', - text: true, - size: 'small', - tag: 'a', - href: 'https://support.google.com/chrome/answer/12929150?hl=zh-Hans#zippy=%2C%E5%BC%80%E5%90%AF%E6%88%96%E5%85%B3%E9%97%AD%E7%9C%81%E5%86%85%E5%AD%98%E6%A8%A1%E5%BC%8F%2C%E8%AE%A9%E7%89%B9%E5%AE%9A%E7%BD%91%E7%AB%99%E4%BF%9D%E6%8C%81%E6%B4%BB%E5%8A%A8%E7%8A%B6%E6%80%81', - target: '_blank', - }, - () => '让特定网站保持活动状态', - ), - ', Edge: ', - h( - NButton, - { - type: 'info', - text: true, - size: 'small', - tag: 'a', - href: 'https://support.microsoft.com/zh-cn/topic/%E4%BA%86%E8%A7%A3-microsoft-edge-%E4%B8%AD%E7%9A%84%E6%80%A7%E8%83%BD%E5%8A%9F%E8%83%BD-7b36f363-2119-448a-8de6-375cfd88ab25', - target: '_blank', - }, - () => '永远不想进入睡眠状态的网站', - ), - ]), + trigger: () => h( + RouterLink, + { to: { name: 'manage-danmuji' } }, + { default: () => '弹幕机' }, ), - }, - ), - ] - ), - default: () => accountInfo.value?.isBiliVerified - ? '需要使用直播弹幕的功能' - : '你尚未进行 Bilibili 认证, 请前往面板进行绑定', - }, - ), - key: 'manage-danmaku', - icon: renderIcon(Chat24Filled), - disabled: accountInfo.value?.isEmailVerified === false, - children: [ - { - label: () => h( - NBadge, - { value: '新', offset: [15, 12], type: 'info' }, - () => h( + default: () => '兼容 blivechat 样式 (其实就是直接用的 blivechat 组件', + } + ) + ), + key: 'manage-danmuji', + disabled: !isBiliVerified.value, + icon: renderIcon(Lottery24Filled), + }, + { + label: () => !isBiliVerified.value ? '抽奖' : h( + RouterLink, + { to: { name: 'manage-liveLottery' } }, + { default: () => '抽奖' }, + ), + key: 'manage-liveLottery', + icon: renderIcon(Lottery24Filled), + disabled: !isBiliVerified.value, + }, + { + label: () => !isBiliVerified.value ? '点播' : h( NTooltip, {}, { trigger: () => h( RouterLink, - { to: { name: 'manage-danmuji' } }, - { default: () => '弹幕机' }, + { to: { name: 'manage-liveRequest' } }, + { default: () => '点播' }, ), - default: () => '兼容 blivechat 样式 (其实就是直接用的 blivechat 组件', - } - ) - ), - key: 'manage-danmuji', - icon: renderIcon(Lottery24Filled), - }, - { - label: () => h( - RouterLink, - { to: { name: 'manage-liveLottery' } }, - { default: () => '抽奖' }, - ), - key: 'manage-liveLottery', - icon: renderIcon(Lottery24Filled), - }, - { - label: () => h( - NTooltip, - {}, - { - trigger: () => h( - RouterLink, - { to: { name: 'manage-liveRequest' } }, - { default: () => '点播' }, - ), - default: () => '歌势之类用的, 可以用来点歌或者跳舞什么的', - }, - ), - key: 'manage-liveRequest', - icon: renderIcon(MusicalNote), - }, - { - label: () => h( - NTooltip, - {}, - { - trigger: () => h( - RouterLink, - { to: { name: 'manage-musicRequest' } }, - { default: () => '点歌' }, - ), - default: () => '就是传统的点歌机, 发弹幕后播放指定的歌曲', - }, - ), - key: 'manage-musicRequest', - icon: renderIcon(MusicalNote), - }, - { - label: () => h( - RouterLink, - { to: { name: 'manage-liveQueue' } }, - { default: () => '排队' }, - ), - key: 'manage-liveQueue', - icon: renderIcon(PeopleQueue24Filled), - }, - { - label: () => h( - RouterLink, - { to: { name: 'manage-speech' } }, - { default: () => '读弹幕' }, - ), - key: 'manage-speech', - icon: renderIcon(TabletSpeaker24Filled), - }, - ], - }, -] + default: () => '歌势之类用的, 可以用来点歌或者跳舞什么的', + }, + ), + key: 'manage-liveRequest', + icon: renderIcon(MusicalNote), + disabled: !isBiliVerified.value, + }, + { + label: () => !isBiliVerified.value ? '点歌' : h( + NTooltip, + {}, + { + trigger: () => h( + RouterLink, + { to: { name: 'manage-musicRequest' } }, + { default: () => '点歌' }, + ), + default: () => '就是传统的点歌机, 发弹幕后播放指定的歌曲', + }, + ), + key: 'manage-musicRequest', + icon: renderIcon(MusicalNote), + disabled: !isBiliVerified.value, + }, + { + label: () => !isBiliVerified.value ? '排队' : h( + RouterLink, + { to: { name: 'manage-liveQueue' } }, + { default: () => '排队' }, + ), + key: 'manage-liveQueue', + icon: renderIcon(PeopleQueue24Filled), + disabled: !isBiliVerified.value, + }, + { + label: () => !isBiliVerified.value ? '读弹幕' : h( + RouterLink, + { to: { name: 'manage-speech' } }, + { default: () => '读弹幕' }, + ), + key: 'manage-speech', + icon: renderIcon(TabletSpeaker24Filled), + disabled: !isBiliVerified.value, + }, + ], + }, + ] +}) // 重发验证邮件 async function resendEmail() { @@ -385,7 +394,7 @@ onMounted(() => {