From 69a9206b787d130021ae44495a285d92bb5cb588 Mon Sep 17 00:00:00 2001 From: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com> Date: Mon, 11 Jul 2022 17:15:47 -0400 Subject: [PATCH] Reworks the syndicate chainsaw (#18252) * Reworks the syndicate chainsaw * fixes merge conflict * not work on dead people * makes stun absorption removal respect stamina * requested changes --- code/__DEFINES/status_effects.dm | 2 + code/datums/status_effects/buffs.dm | 39 ++++++++++++++++-- code/game/objects/items/weapons/twohanded.dm | 12 +++++- .../hostile/megafauna/blood_drunk_miner.dm | 2 +- code/modules/mob/living/status_procs.dm | 9 ++++ icons/mob/screen_alert.dmi | Bin 61848 -> 64351 bytes 6 files changed, 58 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index d6c48800626..39fef054bcf 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -43,6 +43,8 @@ #define STATUS_EFFECT_BLOOD_RUSH /datum/status_effect/blood_rush // speed boost for gargantua vampires +#define STATUS_EFFECT_CHAINSAW_SLAYING /datum/status_effect/chainsaw_slaying // Stun immunity, very slight damage resistance + ///////////// // DEBUFFS // diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 4730729fb72..ba53a952fde 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -51,7 +51,7 @@ /datum/status_effect/his_grace/on_remove() add_attack_logs(owner, owner, "lost His Grace's stun immunity", ATKLOG_ALL) if(islist(owner.stun_absorption) && owner.stun_absorption["hisgrace"]) - owner.stun_absorption -= "hisgrace" + owner.remove_stun_absorption("hisgrace") /datum/status_effect/shadow_mend id = "shadow_mend" @@ -132,7 +132,7 @@ add_attack_logs(owner, owner, "lost blood-drunk stun immunity", ATKLOG_ALL) REMOVE_TRAIT(owner, TRAIT_IGNOREDAMAGESLOWDOWN, "blooddrunk") if(islist(owner.stun_absorption) && owner.stun_absorption["blooddrunk"]) - owner.stun_absorption -= "blooddrunk" + owner.remove_stun_absorption("blooddrunk") /datum/status_effect/bloodswell id = "bloodswell" @@ -212,7 +212,7 @@ var/mob/living/carbon/human/H = owner H.cut_overlay(shield) if(islist(owner.stun_absorption) && owner.stun_absorption["[id]"]) - owner.stun_absorption -= "[id]" + owner.remove_stun_absorption("[id]") H.physiology.stamina_mod /= 0.1 H.physiology.brute_mod /= 0.5 H.physiology.burn_mod /= 0.5 @@ -393,3 +393,36 @@ owner.emote("gasp") cling.genetic_damage += stacks cling = null + +/datum/status_effect/chainsaw_slaying + id = "chainsaw_slaying" + duration = 5 SECONDS + status_type = STATUS_EFFECT_REFRESH + alert_type = /obj/screen/alert/status_effect/chainsaw + +/obj/screen/alert/status_effect/chainsaw + name = "Revved up!" + desc = "... guts, huge guts! Kill them... must kill them all!" + icon_state = "chainsaw" + +/datum/status_effect/chainsaw_slaying/on_apply() + . = ..() + if(.) + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.brute_mod *= 0.8 + H.physiology.burn_mod *= 0.8 + H.physiology.stamina_mod *= 0.8 + add_attack_logs(owner, owner, "gained chainsaw stun immunity", ATKLOG_ALL) + owner.add_stun_absorption("chainsaw", INFINITY, 4) + owner.playsound_local(get_turf(owner), 'sound/effects/singlebeat.ogg', 40, TRUE, use_reverb = FALSE) + +/datum/status_effect/chainsaw_slaying/on_remove() + add_attack_logs(owner, owner, "lost chainsaw stun immunity", ATKLOG_ALL) + if(islist(owner.stun_absorption) && owner.stun_absorption["chainsaw"]) + owner.remove_stun_absorption("chainsaw") + if(ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.physiology.brute_mod /= 0.8 + H.physiology.burn_mod /=0.8 + H.physiology.stamina_mod /= 0.8 diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index ccd38589bbf..c8beea57c42 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -625,13 +625,21 @@ if(!isliving(target)) return else - target.Weaken(8 SECONDS) - ..() + user.apply_status_effect(STATUS_EFFECT_CHAINSAW_SLAYING) + if(..()) + target.KnockDown(8 SECONDS) return else playsound(loc, "swing_hit", 50, 1, -1) return ..() +/obj/item/twohanded/chainsaw/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(attack_type == PROJECTILE_ATTACK) + final_block_chance = 0 //It's a chainsaw, you try blocking bullets with it + else if(owner.has_status_effect(STATUS_EFFECT_CHAINSAW_SLAYING)) + final_block_chance = 80 //Need to be ready to ruuuummbllleeee + return ..() + /obj/item/twohanded/chainsaw/wield() //you can't disarm an active chainsaw, you crazy person. . = ..() if(.) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index 586a3224d8b..dd9eb59770d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -115,7 +115,7 @@ Difficulty: Medium /obj/item/melee/energy/cleaving_saw/miner/attack(mob/living/target, mob/living/carbon/human/user) target.add_stun_absorption("miner", 10, INFINITY) ..() - target.stun_absorption -= "miner" + target.remove_stun_absorption("miner") /obj/item/projectile/kinetic/miner damage = 20 diff --git a/code/modules/mob/living/status_procs.dm b/code/modules/mob/living/status_procs.dm index 7469b602161..faafe256ed9 100644 --- a/code/modules/mob/living/status_procs.dm +++ b/code/modules/mob/living/status_procs.dm @@ -853,6 +853,15 @@ moving up or down retains their old lying angle priority_absorb_key["stuns_absorbed"] += amount return TRUE +/mob/living/proc/remove_stun_absorption(id_flag) + stun_absorption -= id_flag + if(ishuman(src)) + var/mob/living/carbon/human/H = src + if(H.getStaminaLoss() <= 100) + return + H.enter_stamcrit() + + /mob/living/proc/set_shocked() flags_2 |= SHOCKED_2 diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index 13e4b43f2747afa083cff2d295c9fcaf7a7ab681..a45d4b060ee4bf8a2192ce1202bc7268d3c1a3dc 100644 GIT binary patch delta 9975 zcmXY11yoeu*L{RA0@Bh*N~j1(cSuNg2}lcwlz^1-hM^mz8)*s z{l8hW-n#3pd+$4M?m7GHv(KcgVl7=@#j=8qKDvhPayD*OAM9P+?VX(fz$+tDe^7m% zhul=7tqbNDn1ZXE8sgK{ z`PI-t_M>J>g7H`@-@4|;ef{`2r5_S=PECmldG0>9VfRU^C7LlE#*PE?>SK>ejg>$$ z=D8mp^`h8R$NO+<^@^zefcxbN+vmFS%Hq;>C4t8F%HukgzIBbe;2B>b<5QHzocq%- z3ibD+2RF?`3OZY9znkvW*kd?;!*IIYw^8=kgq4-~Qd+OeUM8_I@cg8!eAG)|0x6up zaZGT!V-QM?=eCC9mln&>&UFZ5hjxHOjXa2 z`JWX<)2DJ34^h5MCI7bmhc%VAwr{oOlvNeO^76{sVs|5NgWlWj^XA|q7Q?|W^!zIxTV|U3Em@ILyQC|gvdC&A2mdAc4wo2<_h($AhAH8j_^Pk5 zPhQ62&{5LBN{yvfqayBi7TyefZh*cWF}J7U5$+EY6NSDa-+7vdCrE=Rd(v#FSM20aDOar)M(B?eBv6tLBE(`ng_&qJ zD*PxoH*TLDPM%_l$a9PxBM}F`{>!M4dfjku=fD6Ly~ZRSNPbsl#b z;!UJ;UCuk6=SdVXv$2bddpC3Grk=x(vJPhvf2=NvxFm{r1yR(@pL^MzN*E!xa#HbLbX2bYTm=f4v34D#(d>8^w`bV;q%h9)o_|B8y}N2n92U|#2p+* zIsP-Sp(cf@>d6ZN7(d=XC&Eh zq~WA$*Jy>SE~JobS`xf;r+=gbqle0IPGIX?ykf=vnKyPu>_ZkwdmJkxO(gCQcvzDWwp?uIZ%RR|t!F44@`W73VV+3A z#}i|!LCVj#_CjS#ikgV7T&;0mWDyk&;TaD6H*z}q`?k_#8MWm3rTq`)r!%`K0d`x> zUrQXDr(d_6zS=uUTB*fj?oq;>kgNBUxS|Tr>M)mi(BMplVAE^xyr8!n#A^N ze_+R*e#(ad^9y$Ucb37Gj;f1~SHc+gT{(DiR~eyC`5)Nc!@!nqD`b-83=UWk1~T2O zf&M53SGX6sfeRsJL4PRbEfVM8t>Rk+5O& z5Zu`s=_x>=ZV!$;sc=AAWXqJh6p=6f&&2(f=gjSc@WghJ*#VQB{QO-($}Y3(^my0^ zutIlHs{>AsdySDH2KwgW5f|j!S1QU-3ExQWV*J@d`C}E*6BZIWQtW0m;xR~vEGNH= zw3RS{QId=Yy@m2>x3K((t9Fvu@TWhJP9a_pNOj{G8D~~v1QY)8TZNLse1MnKDk2G| z@oG`Yaz7}-7!BV5`~v<^={8H3WXHC_>~?29u&82A7x$ycvFSQDr%0;cPAe61aj~Lt zp+I!etrKp!6M+i&7;&$0gI+JnKqwSu&d>ddlnM}o(v6I(Le^ekQ&^g09~+lf0+1b1 zIa5Unz^n}1Pwu+P2?O4bbNtmISR+{C+xW7hGOM2wc(}89I5))o-MIcIujj#n|DYNH zusc=m3Uqj8N}1+qn_E9Lsz2zuZnlT+1g`nml5L-v?fLnJd+bgLV*(d@oV#c72bPz< zl5n8XY9zx;TUSdj@XN1mJZ6#%g%Hp=(>_0bZ4<-?h_M+dV zMBdY)wGVMW9y}9ZpuO#8@F8rub=pp}vB{!ScEy%v zt(!@m13EVU6ncN3t1dV@qWAQghe35CKxgI~n3M$xm9&&x(Y=O}?TN=~(&;>ITm$$W z^>OX?!+uPc2d)xr924>TsH`*g-1-rDX7B`)0O*Fv?Dh9ctFyw!6B7%p*wxR(cU{bV z_``WWis^@RH#{MSv4(33hqQe5-HsM<6SpZZzv@`;+NTvvI7s2^bF*QD#uMU#Y<0CO z36pps-}6YMkEhBxDgU)CGZ;c|h5q5Y==|aQHn=X^^deG@H5oheTblsM@UU%}WcFyw z4y3~nXd8xSBb@T~e}bvhhhE~8;K>E$V0PqS$vgw|AC;ZiIkqtr#rm8t{(cm}xVxEVlz zJbX#V%aHrZoU8++II%B&-_)I$osV&KYM7N*nN&*xETb>b`-mDfrEjKjCN}vm^J~Ul2phk~)P$^pd`oK4H#2=q#F@ z?H}-5Zn7ZQ2kjN)#rk-Zzw!p_YxSIeC0577#G9Mb(std+d};w6MRhMn03n_eR{6}` zOeM=q4?cKHrlH^u(y%dT0Pcbr>u-v0<$_13&~a2+g z5P?Tg_9^c2={4w+*&$T;M@MWkE3rVFKXTjUQAfJ{P}g zZ6d5^%%Sh_r{)v)&gjO6>fjkoyA}#W)>UZ0h+!3fSz^hl%U=*9Dj&!wGu?-pu8v`2 zBsf4Y>|%yJ#jI+XF&W9AnQm+Px(R}b$-Wm)@rEL7z|X@{P-KLgLPy#%bKkG5FCp;D zZ>~f`I*n4Kr)i5*r1bs`xgAM*#AZ~VE_REb%JYAcBr&v{C<=RSdBWCypnDM0Q+KaE zv{z$vcZ+BI6P-)k+N+~aEMszrK;oHdyjP+KkEcSMdD&T%3i=q06E{Stn}<&Uaw!S! z`QwHkEFk8=J%n$vQ+1T7yYp7Z4^SI0Kl^jq6=L9|jhFO2Tr~A-Ix(j0`xA#Zf9BG> zqt)T78U?wf1>;#q>68V88ksvJB7H_9E3lP{95UG0G`mIJ#{C4@C_Byj{@?9mMMBER zBF}o?d;vrSQBFToAH=i-f?j>g(0}!iGv)Ih{h=NzlmqJ z(`EPCy*NH?T~-(+hPV3cU!hpm+fXeu>DaU}f$e^^zdjCklQo;9h>6>T<7Nctg#XA5 zB~W|GN^|caHugP?ZV!4}OHLSvFg6(NrNR@y8zuAGV=DnOvQq<+5h#sI%!aKF$jFY3 zh~RZuME6@Ur{a^_Ph-;%srOiX)qCa6P&8U}&toH>k8Dr;3 zpA1r?O#0i|yKD%O1o;tLR{(48e66#>ZGQGVMgcI0>2)G^~F7BMllT&|X| z?xZ2yauF{>Gtg?TMd0J!RefJHJ-1u5-B3|yN@6|$P#G!7$>{oH0!&9A2uG+oM3^I) zR5^p+(Z~Uv1My;9e*cR!b^OZd-Jt1Rc?Yr3(ao2jacHd1<@@o&%Wm3O7=Ay4(H6g`jp2)_u$nG@*}5+IX;2>^VxYyYNF^asS=E z2^`F$P$d*BpXH8BF`zi}X;oOeoD)iPzY*CqJ%*=!quwrN)7O?cMbOs!^bx^tlgmd3hr-BuZTzjg++xt8enL$rU^p%w%c z`ghMQds?c^|D++hitojX$#=;_fcJ3U4xjXobKqbQ-}iqOp2OSiCJW*3>iqgLmz)v1 zl&04Vd1C;dIAlQawS(dji1{KQf2O=cL|0Z5TN-POL#fhnY0>6**8z!frjb8{!LI(; z!)NJ_`z2$>Ko;lUfJxPo2S;0|3=U18zO;KwQJcOyr8AJ8w=kbn-v5~~XzoS?>yULp zFL`eLWIL<{_pxtfnn)^{sGfO*8tsGRB}R@~40Xk~r19Crm<56zMi=J^9C&+QS)Oqi z$4;Mp?0aA6cC@)Dq3%i4E;=H0kbD_L*kZRPiJ$a-lJs0O zy_3v(pG)OYV&)v-PJJoZy+t7_-ABN75?2@TJ9`IF-}_-+RF61Reql&3{0kNPJ(t~L zZ3~sg_=YIn!(H$BN#tr}wPbGbRMht=O$Y3uBY4<~aTw|GzwMhJu z*;QiAAvk6%6IpO+z~HQ!4ARGy=|H~I2D+)Cx(OKDMK=xWtu zT6g>Fh;?RHNjMr>S#MAFX#idBH*bf%H;BgN5E-Wpeim{h22U<_gotR_S$CYT5Drrr zwn$>Nsim5??XkC8^b04pwa6zvK0WQf25y|A$bW|$f<2>D0n`ZgER>)v$%CP6#;h1* zp}=j>-o5yLaAXDp1Q=_%B5AyXYq3_;Ltl@jiQRjx8&npGRD3ZOvM}UM?_gQ<`dn>? zReaB#qhmntc#~?cR8w{J*%+GUvIWU{^=${HyM^)^_c2;AR?R>VIF}S!5WB@YMSLFZ)Xvy*ZiPgca4*n2JC!SCuWtHi;BdvbvS9kdP7&Dp_7sGO# z2*`XQ%y;%^{88Ck)jIR!b>Z~<=p0%Fey!IpQ@w^=9!ZxAe`8DjY+Yhi{oX&91F9`6 z0^K?n!UuBpb(T;3$_B+dnj<a>k-U?;w;b33S93e9L`MWmkJpr)VW;h~4NJbwCbc6i%5*t05GV zTAjEIo1VPOLTx8@ZzY}32D;zOQOq+F8Z|xf`PVB{u3*#OczzdX6-K`OZ)s3s_4E^n z`Y4j%XQmGw4KI9JT)QUPgNTPp2W*TB#lnz!j+6+ar;<}R*Y)qZELX+D(_&a0UMVAA z>J<5?i_l$-vOl5)KYceI&x{M^^aFC`cW|zzC~3o2btG>)88GyXDtp+@RXrGA*7>L#Su{s zDpv)&Ondc7!*gmI0h!BJ%EpmfiZSw8=#w3%R;-@guqVVE;az5D^wv+F9D$WTQb2ZfE?a67&)v?e4s+f)?+Q+{vi=$O zUY{2hKdeKa|LI4vGu5nY5Xm%Yfu(bc(%0+1v_X4lx{^*Q#Y{PzO%i^5n#7-J7Y6Us zZ=qgdvqfhSvIvGaHN=1Kk#59}9tdh#^nkV4@fdw4`>#33VV|!*4wn&ZhapK$f5Dyz zD9=XsmNKL{r!g9m@%Nq=t=z@7tOtG(vb&5rXktTXH)!cUF8%m4{kg4~}SW$;RX@_QHSGyA^+=cxG#H*aOLu>ddf<#MhD@8s>RZ(ogEEWq-HN5GNB z^l+fVZZ>a%+n!QofVi-0E-s*o4DJj#H4EFn?G3b2YB7y-LDg|?JwW=~H8AAGQ}!IK z7=)0qXl5fs-x1MU?EiZ8*NIjh?Xkb@JM{-&+#h!jMJ?3smYQ#uasX5$c6~kCskmN_ z`_ogpZ?Fg8P_0#mgHwiJ(2V;%=V7tOBywE7fkV3VUBs!zx1-bciGx3P-XCpp;&r8Z zF?6*XlJUAAiwLYnf>eI30IpGiOgaEvWR)Yixb`>-Eo^yhA}w~_<`vdhrX8=ar{OUDY`3?@U-19YL>$F<$6wx( zYopoD1D>Xy5q3&h!qGrOQ!mX}9mM=<(y>WiPhZ67VEpoazaXVJ*W&XSI zEcY(r`~cZ!M491IUZV@wiTIQj$6p@X$8b?MeSaCFXEB`x$=TZJJPwMlzvThF9EpR1 zg07O2k`|g6b1HeP;8=YzF(FGasBaw2r_3ZNVX=R9mmD*At$h4EA2KI@xl6+(A36Xi znKx0Wx0|3#pL*H2 zuvuxNZk2}hJ{4bz9Iqh&*koe@Jk7s-er2n-qjSw0?+5*7cv6SC;H_)J@0WX}!Tfd^sR=zX4D0q?OEe`n2s9T5VS0Z47rbFopg&UMB z8`=vpp;eblk3_oy4U;pB!s3Qd0|}g2nCXs}qd%j#46i2QuNm||M;<0Gz_RA+7M%71 z>;VI6uMWfcuz|_|BZ~<1R*wLVs#%(x zQYxu7kiWfXeu=yJ9?E9>A<~~*PD4a%2x10@CA>U7t(30hD{+d`6QdC#qS}%_Z?+ z`M2*a-m^>Kqa8AB5=_Z7gokFF4l(4mmM@8;(u=4YH?OWW#+=U?qU(QTR``vGe3CRX zkt(<);6n59;LKj#{a}z?;@2mg3Q8X8oYB3A6T`=EFDv=I;GToeOs-LF5TtZa*oXhqVlyX~P20A#N9`(lY0WmfYEb|spCxPVWRWe{wa-E0({89bj;M|@P`@;$P|14q&7gttuKQANzcRBLM;@2T6G89z!I zFV`$jg-}=@R~hJW(276JVNmiQ0C{$xLXmdiifw3iZfA+qGXE)+n~EayU?@t+ZKlf~ z0GSUvy{PBW!1elxAIi}x(2L7y&u=3u1uYq!pRNdi@Dnbq8|3#;BwZ>|xUweMrI4yCElOLi3$G{?g9HRP`dJ&=AtMp){XPx&dep6H?1&iftJC?GYP-Ub+{t%W!gf+ZFQ0 zs~ZoH$A25_qtgCxRxU^@#4&1eP4vyo*UzDUd@hPw^X||P44`qx2y5J zcd~;u;$@Z@y`#}daYiwC_AjJ+)z90k*lC@up#BU@Uw~#$>`y;d!eqj3Eon#JwVCHW z#E*IdcM;}+V`wFDxd_wQq1TG9T~BJEjpg;Yvwrk-qlyFgshUHH6c27(yFBJA7jLFT zZZdhISSyB9OiLesrbIQL0t1ne2Rt>3M979bGia8oc zxjT%pH!10iBP{jH!gFuXS}M9k6IiSXDcOmF%~!`@K)vZQG@uT1%Af$ixD(l9y3(WH z%_2$k1387}cvm=h&o^KrSAZa2#*B&-6Xw}v~6;=d6F?$eb4CQ(W%F(@|ve;rm)z$ zlF}E}21i-;gRj|b1slu4I^_2T;tUGA8qq#V0-_Za*tIwl_G5fo9Gz`vw1g($u>QPU z3{j})RE?Aqs$86K7ELgX^vmgfFtV0xga6{;h(^m*VInbz$yY5n+UQMpCrPL&@}te# zUYsIBcI)XCC~{Gl&=LmpQ1EA)1rdL%T!sPakg^1rD`6C|;jnzPn<2zs6++G@YD0i$ zm4himPWMLHVx7*9-mdbs>(IO2`+!)PKHW^?kD7|>KW)@lTa>~f43)0C=)xcIB|YWM z4?@&CkPE`{8!z|N8p3DESHx$HuFum9O}+ids3Tt;oh9_;&tGO6V00XHXL7xrq?u=v zGLRyaN?5|Ss_ikz~IY;olYLRQ@MIru7`&6u*!2W<(l zEJutJQDwULlEPz+v(p*tEMbOdQTFT|A6CGy^r=rJ`u^_OurpB`hbzz~;A!Yf+PpO0-iElw(73NjdPaen!f$|XI zZ!RZ5VXJt0SViPA%2j`y`pTpk--OIf!?Cv7Um4wti(K=zew(cSV(1&<_?C0y%Q?9A zwlQLJ`0J0JuCW#c4&kKr5Q;=hmzXM=RxZHVXo2 z=XJ;)r)K=grKStw)|HZNQ*BnXeqYG;u zR8V$I6@n-5U_a8ouZ`g53u?vOg%R(dZ);q&Avz;JYyyjcEY3;xFldNXrSH(mv@q>k z(9GYQyGDkKAedvufhrnpqm1#>Ic6UTQfVf0SN+1nG9Y)SHkQ5lv9t(g(!MsxFqYb+ zLo1k+Wp@ofi;0%%kIs1LLloF(xwaJVoC>~b3+WYq4&!;k9^N#b6%M-F*l+@CNr~Q) z^>a)vgi6yg7+2^%GoVT?EgUOz_s;|_o|+fZ%pHkM(fR<5Rll|#UA>|CG`}HdFST;q zw_ONk|8EbIa{C$3scPAGg(vzIX>d=&Z337>P>yCP>~v7~c<)t)CU-I)F-37xx2TPf zie~k)h?P;i&pDlbD{vvMGL&}S-opW>(2c6$#2a|}oDEk7_5AH$Mbi-rPY~Wmeow2J{$1$GFQxz&(Z6^f ze&Y%;#p*uj#>ULX3={}=*6kRe`au0M)~%mM0eSWKK8(Lqm{NV?(2MRHa-B-GRN)8qqm%8;NJL zcV9={OqO0%gt%>MY&bvTzJzKMTwZII+gH-t2TWVa)D>F9&INIQ_N#Hl`#oaL{&R*w z3d&R(uCIlSp_yL_(FwQQD)x8feMZ}n7zY90wc+JK-K_C2KQMPlDr>bk8gJLbKt{}i z>CjCmMo!7L?yrcKtx@yyEiRFxEhx|K|HM4sOJRh`oaqzfVn@Nh!|g_;H6gK;{6lc* zN3ymFR!67E-)9uUdJmsijd4*JvXEpD%M)zS>8k~(L*4@&A|u4GXMm*a*z@pyaLmKH zn@7i!H~6)Z?AOvG+^A|%6ED6^BG}&_#19Y zR6$SgiP=!27J8z)>fT|~$%hz&=}sGJY-v}tbK+`B*hUwbBW`~GV?d6%EiZVg%&}=) ztYJ|VmfDq;KB)zchO+ht!sP6EL`Y@kMluW3fRCf8tFGV8%#<-2&`tVx&-RZT|1n6T zuuDoyyXG4`J)PhBgqbTyVZjmUQY2yCMr3zA@0NSr!t^|J6RKp{i$B*l7(&sVYoyf0 W#|QXT*C|5)`lBSTF85v59QJ>&gK6~u delta 7470 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 PVL$51FO+H&Z6f{;5=I