From 18dc61f552ef11b4c29aae59d7419ea97ef02d2e Mon Sep 17 00:00:00 2001 From: ZioPao Date: Fri, 17 Nov 2023 02:29:33 +0100 Subject: [PATCH] Reworked textures for HealthPanel --- dev_stuff/healthPanelHide.psd | Bin 4696534 -> 4696516 bytes dev_stuff/healthPanelHideMale.psd | Bin 0 -> 90818 bytes .../lua/client/TOC/Handlers/PlayerHandler.lua | 2 +- media/lua/client/TOC/UI/HealthPanel.lua | 32 ++++++++++++------ media/lua/shared/TOC/StaticData.lua | 30 ++++++++-------- media/ui/{ => Female}/ForeArm_L.png | Bin media/ui/{ => Female}/ForeArm_R.png | Bin media/ui/{ => Female}/Hand_L.png | Bin media/ui/{ => Female}/Hand_R.png | Bin media/ui/{ => Female}/UpperArm_L.png | Bin media/ui/{ => Female}/UpperArm_R.png | Bin media/ui/Male/ForeArm_L.png | Bin 0 -> 957 bytes media/ui/Male/ForeArm_R.png | Bin 0 -> 1052 bytes media/ui/Male/Hand_L.png | Bin 0 -> 1121 bytes media/ui/Male/Hand_R.png | Bin 0 -> 1156 bytes media/ui/Male/UpperArm_L.png | Bin 0 -> 946 bytes media/ui/Male/UpperArm_R.png | Bin 0 -> 1049 bytes media/ui/male_base_test.png | Bin 0 -> 5785 bytes 18 files changed, 37 insertions(+), 27 deletions(-) create mode 100644 dev_stuff/healthPanelHideMale.psd rename media/ui/{ => Female}/ForeArm_L.png (100%) rename media/ui/{ => Female}/ForeArm_R.png (100%) rename media/ui/{ => Female}/Hand_L.png (100%) rename media/ui/{ => Female}/Hand_R.png (100%) rename media/ui/{ => Female}/UpperArm_L.png (100%) rename media/ui/{ => Female}/UpperArm_R.png (100%) create mode 100644 media/ui/Male/ForeArm_L.png create mode 100644 media/ui/Male/ForeArm_R.png create mode 100644 media/ui/Male/Hand_L.png create mode 100644 media/ui/Male/Hand_R.png create mode 100644 media/ui/Male/UpperArm_L.png create mode 100644 media/ui/Male/UpperArm_R.png create mode 100644 media/ui/male_base_test.png diff --git a/dev_stuff/healthPanelHide.psd b/dev_stuff/healthPanelHide.psd index 7fa36bc945b8eb61b0269c79e119bc9260d32cc6..fe84d9d18e0aa6c7b6bfa55240fe058ad639fb2f 100644 GIT binary patch delta 569 zcma*hyDvjw9LDh;M_cMr_j{>c+z;(JM-Oeab&rTk#9}b?vy_4TJcjHrHUnx{HNu*nOUco{^-31r z9o-Bh&D5@fs>iUi{p{F%POHb;Cs)dp%QyiB+SbhH(nz=PwxGMPjpvXI1x_FEE zB}vXTB_ej4MY32dHnEX7uXGshpO1;JrB}&%ojiLBikIc1V%!tkE2Wst#rIv}WA(AE zFuD}?d!o#9B$Po$Ijpe3jtW%5fhts^ z2DNaa4)th2Bbv~R7PO)b?dU)!y5K@Ldf-McJn+H?Kl;#*0SsaY!x({rQH&vgAXI43 iF^&)nOkfgWL=eRkVu&MwY0O|2bC}1%Z8o#G8T|(OzSFt@ delta 578 zcma*h%Ps?97{>9LjyjC<`Akt~!?c~YGgZ_%BCUTN6NhSLCd8vr5 zU^3{l0#-<~!)vA%NE(J_Cv{yjO?}l|_XpSPu-MIea(n+#w4J5=NU`sCp}139jSA&m z`W{u1KC>ep#|LG(!1E{UfjvXqqta%=i>2= zxKCsnz6&R^xZTM8o?JMYZI6g=TG{^TfjHb+&Bn7Wk=b6)#VhANQM;E;?Wa>RTu_h) zH}X+{LKHzoF-lO1GL)kNm8e2BYEX+h)T057XhJhu(26#+!-EcVq6=PhqX)g{Lq7&E th#_bg#t3xy;70%kf(RiD6BZ&EMHFKg#{^=S#1y76gIUborc?9F(J$y*(CYvI diff --git a/dev_stuff/healthPanelHideMale.psd b/dev_stuff/healthPanelHideMale.psd new file mode 100644 index 0000000000000000000000000000000000000000..4ae9724a97d9a65737b8df694e7d1f86d4e5287d GIT binary patch literal 90818 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 APyhe` literal 0 HcmV?d00001 diff --git a/media/lua/client/TOC/Handlers/PlayerHandler.lua b/media/lua/client/TOC/Handlers/PlayerHandler.lua index d0aef0d..f78214f 100644 --- a/media/lua/client/TOC/Handlers/PlayerHandler.lua +++ b/media/lua/client/TOC/Handlers/PlayerHandler.lua @@ -221,7 +221,7 @@ function PlayerHandler.UpdateCicatrization() TOC_DEBUG.print("updating cicatrization for " .. tostring(limbName)) if cicTime > 0 then - cicTime = cicTime - 60 -- 1 per minute, each cicatrizationTime is divisible by 60 + cicTime = cicTime - 1 modDataHandler:setCicatrizationTime(limbName, cicTime) TOC_DEBUG.print("new cicatrization time: " .. tostring(cicTime)) if cicTime < 0 then diff --git a/media/lua/client/TOC/UI/HealthPanel.lua b/media/lua/client/TOC/UI/HealthPanel.lua index 7d205ec..1a11cfe 100644 --- a/media/lua/client/TOC/UI/HealthPanel.lua +++ b/media/lua/client/TOC/UI/HealthPanel.lua @@ -44,7 +44,7 @@ function ISHealthPanel:doBodyPartContextMenu(bodyPart, x, y) end ---* Modifications to handle visible amputation on the health menu *-- +--* Modifications and additional methods to handle visible amputation on the health menu *-- local og_ISHealthPanel_initialise = ISHealthPanel.initialise function ISHealthPanel:initialise() @@ -70,27 +70,37 @@ function ISHealthPanel:setOtherPlayer(playerObj) --CachedDataHandler.CalculateAmputatedLimbs(self.character:getUsername()) end +---Get a value between 1 and 0.1 for the cicatrization time +---@param cicTime integer +---@return integer +local function GetScaledCicatrizationTime(cicTime) + return math.max(math.min(cicTime/100, 1), 0.1) +end + +---Try to draw the highest amputation in the health panel, based on the cicatrization time +---@param side string L or R +---@param username string +function ISHealthPanel:tryDrawHighestAmputation(side, username) + if self.highestAmputations[side] == nil then return end + + local cicTime = ModDataHandler.GetInstance(username):getCicatrizationTime(self.highestAmputations[side]) + local scaledCicTIme = GetScaledCicatrizationTime(cicTime) + local texture = StaticData.HEALTH_PANEL_TEXTURES[self.sexPl][self.highestAmputations[side]] + self:drawTexture(texture, self.healthPanel.x/2 - 2, self.healthPanel.y/2, 1, scaledCicTIme, 1, 1) +end local og_ISHealthPanel_render = ISHealthPanel.render function ISHealthPanel:render() og_ISHealthPanel_render(self) local username = self.character:getUsername() - - --CachedDataHandler.CalculateHighestAmputatedLimbs(username) self.highestAmputations = CachedDataHandler.GetHighestAmputatedLimbs(username) if self.highestAmputations ~= nil then -- Left Texture - if self.highestAmputations["L"] then - local textureL = StaticData.HEALTH_PANEL_TEXTURES[self.sexPl][self.highestAmputations["L"]] - self:drawTexture(textureL, self.healthPanel.x/2 - 2, self.healthPanel.y/2, 1, 1, 0, 0) - end + self:tryDrawHighestAmputation("L", username) -- Right Texture - if self.highestAmputations["R"] then - local textureR = StaticData.HEALTH_PANEL_TEXTURES[self.sexPl][self.highestAmputations["R"]] - self:drawTexture(textureR, self.healthPanel.x/2 + 2, self.healthPanel.y/2, 1, 1, 0, 0) - end + self:tryDrawHighestAmputation("R", username) else -- Request caching data TOC_DEBUG.print("highest amputated limbs was nil, calculating and getting it now for" .. username) diff --git a/media/lua/shared/TOC/StaticData.lua b/media/lua/shared/TOC/StaticData.lua index 35e6744..01b148c 100644 --- a/media/lua/shared/TOC/StaticData.lua +++ b/media/lua/shared/TOC/StaticData.lua @@ -64,7 +64,7 @@ StaticData.BODYLOCS_IND_BPT = {} ---@param side string local function AssembleHandData(assembledName, side) StaticData.LIMBS_BASE_DAMAGE_IND_NUM[assembledName] = 60 - StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 1200 + StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 120 StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[assembledName] = 2 StaticData.LIMBS_DEPENDENCIES_IND_STR[assembledName] = {} StaticData.LIMBS_ADJACENT_IND_STR[assembledName] = StaticData.PARTS_IND_STR.ForeArm .. "_" .. side @@ -74,7 +74,7 @@ end ---@param side string local function AssembleForearmData(assembledName, side) StaticData.LIMBS_BASE_DAMAGE_IND_NUM[assembledName] = 80 - StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 1800 + StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 144 StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[assembledName] = 3 StaticData.LIMBS_DEPENDENCIES_IND_STR[assembledName] = { StaticData.PARTS_IND_STR.Hand .. "_" .. side } StaticData.LIMBS_ADJACENT_IND_STR[assembledName] = StaticData.PARTS_IND_STR.UpperArm .. "_" .. side @@ -84,7 +84,7 @@ end ---@param side string local function AssembleUpperarmData(assembledName, side) StaticData.LIMBS_BASE_DAMAGE_IND_NUM[assembledName] = 100 - StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 1800 + StaticData.LIMBS_CICATRIZATION_TIME_IND_NUM[assembledName] = 192 StaticData.LIMBS_TIME_MULTIPLIER_IND_NUM[assembledName] = 4 StaticData.LIMBS_DEPENDENCIES_IND_STR[assembledName] = { StaticData.PARTS_IND_STR.Hand .. "_" .. side, StaticData.PARTS_IND_STR.ForeArm .. "_" .. side } @@ -178,23 +178,23 @@ StaticData.TRAITS_BP = { StaticData.HEALTH_PANEL_TEXTURES = { Female = { - Hand_L = getTexture("media/ui/Hand_L.png"), - ForeArm_L = getTexture("media/ui/ForeArm_L.png"), - UpperArm_L = getTexture("media/ui/UpperArm_L.png"), + Hand_L = getTexture("media/ui/Female/Hand_L.png"), + ForeArm_L = getTexture("media/ui/Female/ForeArm_L.png"), + UpperArm_L = getTexture("media/ui/Female/UpperArm_L.png"), - Hand_R = getTexture("media/ui/Hand_R.png"), - ForeArm_R = getTexture("media/ui/ForeArm_R.png"), - UpperArm_R = getTexture("media/ui/UpperArm_R.png") + Hand_R = getTexture("media/ui/Female/Hand_R.png"), + ForeArm_R = getTexture("media/ui/Female/ForeArm_R.png"), + UpperArm_R = getTexture("media/ui/Female/UpperArm_R.png") }, Male = { - Hand_L = getTexture("media/ui/Hand_L.png"), - ForeArm_L = getTexture("media/ui/ForeArm_L.png"), - UpperArm_L = getTexture("media/ui/UpperArm_L.png"), + Hand_L = getTexture("media/ui/Male/Hand_L.png"), + ForeArm_L = getTexture("media/ui/Male/ForeArm_L.png"), + UpperArm_L = getTexture("media/ui/Male/UpperArm_L.png"), - Hand_R = getTexture("media/ui/Hand_R.png"), - ForeArm_R = getTexture("media/ui/ForeArm_R.png"), - UpperArm_R = getTexture("media/ui/UpperArm_R.png") + Hand_R = getTexture("media/ui/Male/Hand_R.png"), + ForeArm_R = getTexture("media/ui/Male/ForeArm_R.png"), + UpperArm_R = getTexture("media/ui/Male/UpperArm_R.png") } } diff --git a/media/ui/ForeArm_L.png b/media/ui/Female/ForeArm_L.png similarity index 100% rename from media/ui/ForeArm_L.png rename to media/ui/Female/ForeArm_L.png diff --git a/media/ui/ForeArm_R.png b/media/ui/Female/ForeArm_R.png similarity index 100% rename from media/ui/ForeArm_R.png rename to media/ui/Female/ForeArm_R.png diff --git a/media/ui/Hand_L.png b/media/ui/Female/Hand_L.png similarity index 100% rename from media/ui/Hand_L.png rename to media/ui/Female/Hand_L.png diff --git a/media/ui/Hand_R.png b/media/ui/Female/Hand_R.png similarity index 100% rename from media/ui/Hand_R.png rename to media/ui/Female/Hand_R.png diff --git a/media/ui/UpperArm_L.png b/media/ui/Female/UpperArm_L.png similarity index 100% rename from media/ui/UpperArm_L.png rename to media/ui/Female/UpperArm_L.png diff --git a/media/ui/UpperArm_R.png b/media/ui/Female/UpperArm_R.png similarity index 100% rename from media/ui/UpperArm_R.png rename to media/ui/Female/UpperArm_R.png diff --git a/media/ui/Male/ForeArm_L.png b/media/ui/Male/ForeArm_L.png new file mode 100644 index 0000000000000000000000000000000000000000..64818d51efa8687ca816f44e9c6169b2dd199267 GIT binary patch literal 957 zcmeAS@N?(olHy`uVBq!ia0vp^)eH=bdK_#(*1FHR{XmMdz$3Dlfq`2Xgc%uT&5>YW zV9xh+aSW-L^Y*T{-(v?6hd}XHf_od@)K_j`Sax(lD~ph0$)Dys#mlD2XkTA1bbO-C zvpL+n{OR%x#|5oj-Uw`TKEgN3z!wPr=F~F$`CPQ~jP~qfk1tsVc-9H<84HNF{B;7mmXtoy9Tg?Q+X` U%On01m>(HDUHx3vIVCg!0H1e*h5!Hn literal 0 HcmV?d00001 diff --git a/media/ui/Male/ForeArm_R.png b/media/ui/Male/ForeArm_R.png new file mode 100644 index 0000000000000000000000000000000000000000..5e6e66cb6e5c2fb43d6e3677340b7107fbcbfc32 GIT binary patch literal 1052 zcmeAS@N?(olHy`uVBq!ia0vp^)eH=bdK_#(*1FHR{XmMdz$3Dlfq`2Xgc%uT&5>YW zU_R&R;uumf=k48tezyYz90GU0>UuZ(|NlK3^lxAHotPmNl=SAvlX;tYE(M?Y+Qa0S zBA4uAQnUNJ@Po1=e1g_4Zv-|vk23HC!i4wHGQWx}d@h^x7ROgx$vy9%XMFy%$+4Ts zMsa-YFJD%~JYD0P6#uEn;!p7VS<($ppXsVSkGY_IHv8_`@7tcG)LmP(@p)z4_YLv( z^>MZHI^(aOz4oL3`SZ>F`a3xz(zf21zUH*z{xjQhE}5*Pl3lQ!%N1 zjZk&BsGaZS>G2Og?^*9{01~UQ+9q0eb6(ialYBoz-t;b;)%&J!)AP((a*x)Yy`FvJ zv{t;#?T~ug?xg&RHB^dT&_1g8RJs%%FkgvM_TC6eh z-CN$$m;O8dS>H70`D>tm#_#T@)>}(G?X7RB{mib;zx2OL_tWFb-JyQhf5bZ5KjNw{ zeV;9z{N~eitsGjWoe6u7)ZM7ps(&?4UUB2e_NANst7qoqISlvI`o#QzOn$nuP~uEr Pc4zQ(^>bP0l+XkKUgEw_ literal 0 HcmV?d00001 diff --git a/media/ui/Male/Hand_L.png b/media/ui/Male/Hand_L.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cbaedd51eb4b4e2d3be35a0e20ca01566aa364 GIT binary patch literal 1121 zcmeAS@N?(olHy`uVBq!ia0vp^)eH=bdK_#(*1FHR{XmMdz$3Dlfq`2Xgc%uT&5>YW zU=j9oaSW-L^Y-@Htk_hMhKE~|ZwJhFn3%LzqTMR^!=yP@!t6>G7jAnCYCQ?y)V#@; z<*lQpW_q%3&v|3Z|M%@aY&v)RXY{pFS*dT^>X`1xZgf7vCur^RMqrdd)j*KT`OC6n zR%+z6&*Ilh_kP$XZg}%Q^ZV9$Gb5*`?)+w@R-L@xzW(38(D`T2tbct*oIkBk{{7q9 z>VwYLQzNG}H#d72KNmdP?tic4pZ>o> zee;{r)|T~&k^d|#tg6bKz1Q!)`z}9v|Bdel%9k(C_lw_GQ*+pR{pn46elt94w(ETO zOviuToU><)*2mqwWq7SLHto&L+17V%|Ndy^JU@Mtd09n;1<-^ry@HDP<4^zYZ=>i4P&HqPgg&ebxsLQ0L6;v4*&oF literal 0 HcmV?d00001 diff --git a/media/ui/Male/Hand_R.png b/media/ui/Male/Hand_R.png new file mode 100644 index 0000000000000000000000000000000000000000..cd55e83013ec7847ca682ab3f73580d5e6f915e0 GIT binary patch literal 1156 zcmeAS@N?(olHy`uVBq!ia0vp^)eH=bdK_#(*1FHR{XmMdz$3Dlfq`2Xgc%uT&5>YW zU@`M_aSW-L^Y->Zub6a+hKKKOs41>=;!vEx{c78m3*0X@?Y`%<{pM7?D$dA~tK2VG zLpASa2)PvQ3UGAEJ#KjJQLWsJ*25qF^Y5#XJ1-d%w)*OY4V&KzKls=ot5nu;Loum+ zltI-%`1Eucx6WxJec!A@6YAiSXs^5 zDfa8q%iG)SYptw*|13$%pZT*mt!~E5{p;jD7uDC_Elzd*KI_eHr}JlI=FR25{eFJ-udMq2KX*@_Tv=Z9X~OAEZPM#+&i{JwM7OxH@#?GX{Bl?A zHXZ-pSpUbO+S+=*?XP_~iJQ{X%FD|wZAw=Ey|L}<>MuX1ee*58%Ohx=61}nZ*YW zU{3LLaSW-L^Y+fhENMp(hd|$?AeFs;|IbhV?kUJI`B;K@wz}dh*@xABTRplfUKm+x zH<~<~BQ9n4R<7Z5hpbXr#|_1#_F>83?lCOuFL;snong<9j~@)?^B=!{{P^nq`)+Wb zvHV|gZuN%cg1=d;56KBuHyR#$`up$Sde*p&@4NTj+`fGI;`ZlHi*{D!ZuI};cIA7_ z-%IxYo~1R_f3D%&x6}OE^EUz;um9Lo-JqPb{$uuc2KOUzk3YX-?CaQj?EGD389{3o zpaSP3e55eqo|Ak?MLDImdKI;Vst0JlexlK=n! literal 0 HcmV?d00001 diff --git a/media/ui/Male/UpperArm_R.png b/media/ui/Male/UpperArm_R.png new file mode 100644 index 0000000000000000000000000000000000000000..3424f10b657ffdc62ccfa9d3b9e2a742fa0b99f9 GIT binary patch literal 1049 zcmeAS@N?(olHy`uVBq!ia0vp^)eH=bdK_#(*1FHR{XmMdz$3Dlfq`2Xgc%uT&5>YW zU_R~X;uumf=j|;=f2lwThrnf~u~+u~`9EL%_pXdfKH+L>54!0*uBkX5Ijcdw`2J(w zmeknm%)Ig6w%Q|i-Cbf6SDh)%%<7EBQo4#|1M@~z9b7uDOIx9JT|KpE;mDsF{ z{=feGqn8zTo>aa!tGpIIhx^~(k00mXPKeFV@AaAc(>Zzm=XtCKH?Lf1KiqvIdXA~R zoSa_Wnfcrg{*^?j#UCi1miqJki|8#sUOVNLBo}@Q-Cru$QERJz|Cs%oRrlumrT_mo zue`}~ooHq^>%XFO|2t0RTQ|>7_McPv=XuV$=VD3qx2qexeeYatKb(8y-`4L8^N;Et z`L_#7@BGd%{ZyU#IT@1U#mM&C8To|$2anwE^Y1?^+6j!+6Hjh@=G)8dYrS3l__I?- z_ynz8-b`4zG5zk%Kkc68nZe1M88 smZZ1I=kK=m*PAy()x$Lod&Y$O8@R(|I}V*u0p@iEPgg&ebxsLQ08SXmEdT%j literal 0 HcmV?d00001 diff --git a/media/ui/male_base_test.png b/media/ui/male_base_test.png new file mode 100644 index 0000000000000000000000000000000000000000..fcffcdb28190a73660be64a03dc63016a37ffcf3 GIT binary patch literal 5785 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ℑMd-oB;!6^m#4dIk9L&4C+-NUFxWOKS* zPJidAco~lXb)$o>QhDJo#{16azGKrQji!xVb7+I4N6TAFtuZ%Y?>hTszSq>KwBf=V zJBPPJBmG0JRvpZ{F#PJijqCLATV9x&gXqT$_tSsAmMUxWlW4@wGsiGAG*h*<(E8JE zjpq6870pc|Gp#KJY$Ib?YgzZv>b^X~xwSL`HrAuxV$4h}qlucsr84A}$bx^rNmviE z(L2kxoUxweRA82oRco90q2;o0Qh@UY4MrqbZBN`u?MDp3)&Cf;WE3NY`A&#Cqqd!8 zZ1AFDvg0>d@ADI${e31C=X2h@j<4Iw4AY%&I+_i`UAF5ZU((_ z^;(&_jCN%`@zC9Qq7cdu!flU8n1U}_-VcSkv1T{>wW1aY>(8nD??t{`^gEb3s!3HrXy?GN?trS$<;RfAEo!n2q=96-kzd+_3@lie5 zl5z?|i;=|+S&pcD(H`?~?~bz*k&6lqrm&CPQ*Ox}J$o6iRy$|N$MKyk0nI?0nVObX z_lnFltVyb-KSeWs3r2_TJk2-kIa4N;r?T!P=%;1Zfs7u*XYQw3C(dWeSX4}+4w;<7 znXI^q*Y5P;X{YRTxVg(Bg4+RO3*$xU-bsQx!{z!oY-S!Kqvan&M-aR#Sd(g-i4MO7 zU0IQ0(iW4<{|!|jt)XLs?FVi-nt9k3$v=|kHXYgJgwonVBRF^dk>WAnLo{@-Of9uB z6{J|81T;R$<)I0>ZY%tx=`JnUk2DFn)J$zl>q1`0-dImxgnF5VS(cwxeY~_3YC zvO*goeG>_`Xw+i)o!*vliUI)%UsaSlEr;@Rd^50h3<4Gy@dVOjiuEZFy%9N+|8je4 zLq5eVkJa%|RU39s`tfeLfcY}-ODLO0`gRDa1^bVkS9}#joH~9LJ0cSm5NBY6_{^k( zUrwZjmn^>!Z&1V<824X8RSTYYeEqZQN3OHt3)?wZ4Rux|uS!Wp1-&%Ru9!aBkKn2C zp1M>^J1B~f7(ZTi>sxQswkG2%yn5uMMfT@-oevs39b;LlU-wO^^$UoaEdLgzS8apZ zLRqV)Q4^%I%xC>V&cl(tNGCD86ZC#F#}L2J$%J|LYADQMjQUS8n-yBF{mKqr^@SDpWoGqZd z@Eh#4nG(~N(3kLUl&Rq`B@e&uPVwTn9Q@5WE8H5mX9%EQAVUKIN+mKQ$DBzhUF0-r3p7FJ;3zGSIz$;;cr1l z$G4Hza6SK?I!v36xurMc9!jOJ+ro%z5Yy`DwwAZ#4-n9<69_BnmDis7N+yF`E9-~c z=x#WDEuzN3HRrQW6FRD(8$K@wB3ToT{lD z*i^bcYGRUKbJC~`uN$4drSgs^_