From 3fb7f9bc2b00bd0b1ffd51a443ecd860424087e5 Mon Sep 17 00:00:00 2001 From: Lizbeth Rika Date: Fri, 5 Dec 2014 17:09:50 +0000 Subject: [PATCH] Added effects to the Cloaks. --- .../item/equipment/bauble/ItemHolyCloak.java | 93 +++++++++++++++--- .../equipment/bauble/ItemUnholyCloak.java | 38 ++++++- .../resources/assets/botania/lang/en_US.lang | 2 +- src/main/resources/assets/botania/sounds.json | 4 +- .../assets/botania/sounds/holyCloak.ogg | Bin 0 -> 11723 bytes .../assets/botania/sounds/unholyCloak.ogg | Bin 0 -> 11937 bytes 6 files changed, 119 insertions(+), 18 deletions(-) create mode 100644 src/main/resources/assets/botania/sounds/holyCloak.ogg create mode 100644 src/main/resources/assets/botania/sounds/unholyCloak.ogg diff --git a/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemHolyCloak.java b/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemHolyCloak.java index a37241dad..0d63faaf9 100644 --- a/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemHolyCloak.java +++ b/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemHolyCloak.java @@ -11,46 +11,111 @@ */ package vazkii.botania.common.item.equipment.bauble; -import org.lwjgl.opengl.GL11; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; import net.minecraftforge.client.event.RenderPlayerEvent; -import baubles.api.BaubleType; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.living.LivingHurtEvent; + +import org.lwjgl.opengl.GL11; + import vazkii.botania.api.item.IBaubleRender; -import vazkii.botania.api.item.IBaubleRender.Helper; -import vazkii.botania.api.item.IBaubleRender.RenderType; import vazkii.botania.client.lib.LibResources; +import vazkii.botania.common.Botania; +import vazkii.botania.common.core.helper.ItemNBTHelper; import vazkii.botania.common.lib.LibItemNames; +import baubles.api.BaubleType; +import baubles.common.container.InventoryBaubles; +import baubles.common.lib.PlayerHandler; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; public class ItemHolyCloak extends ItemBauble implements IBaubleRender { private static final ResourceLocation texture = new ResourceLocation(LibResources.MODEL_HOLY_CLOAK); @SideOnly(Side.CLIENT) private static ModelBiped model; - + + private static final String TAG_COOLDOWN = "cooldown"; + public ItemHolyCloak() { this(LibItemNames.HOLY_CLOAK); + MinecraftForge.EVENT_BUS.register(this); } - + public ItemHolyCloak(String name) { super(name); } + @SubscribeEvent + public void onPlayerDamage(LivingHurtEvent event) { + if(event.entityLiving instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer) event.entityLiving; + InventoryBaubles baubles = PlayerHandler.getPlayerBaubles(player); + ItemStack belt = baubles.getStackInSlot(3); + if(belt != null && belt.getItem() instanceof ItemHolyCloak) { + ItemHolyCloak cloak = (ItemHolyCloak) belt.getItem(); + int cooldown = getCooldown(belt); + if(cooldown == 0 && cloak.effectOnDamage(event, player, belt)) + setCooldown(belt, cloak.getCooldownTime(belt)); + } + } + } + + @Override + public void onWornTick(ItemStack stack, EntityLivingBase player) { + int cooldown = getCooldown(stack); + if(cooldown > 0) + setCooldown(stack, cooldown - 1); + } + + public boolean effectOnDamage(LivingHurtEvent event, EntityPlayer player, ItemStack stack) { + if(!event.source.isMagicDamage()) { + event.setCanceled(true); + player.worldObj.playSoundAtEntity(player, "botania:holyCloak", 1F, 1F); + for(int i = 0; i < 30; i++) { + double x = player.posX + Math.random() * player.width * 2 - player.width; + double y = player.posY + Math.random() * player.height; + double z = player.posZ + Math.random() * player.width * 2 - player.width; + boolean yellow = Math.random() > 0.5; + Botania.proxy.sparkleFX(player.worldObj, x, y, z, yellow ? 1F : 0.3F, yellow ? 1F : 0.3F, yellow ? 0.3F : 1F, 0.8F + (float) Math.random() * 0.4F, 3); + } + return true; + } + + return false; + } + + public int getCooldownTime(ItemStack stack) { + return 200; + } + @Override public BaubleType getBaubleType(ItemStack arg0) { - return BaubleType.AMULET; + return BaubleType.BELT; + } + + public static int getCooldown(ItemStack stack) { + return ItemNBTHelper.getInt(stack, TAG_COOLDOWN, 0); + } + + public static void setCooldown(ItemStack stack, int cooldown) { + ItemNBTHelper.setInt(stack, TAG_COOLDOWN, cooldown); } @SideOnly(Side.CLIENT) ResourceLocation getRenderTexture() { return texture; } - + @Override @SideOnly(Side.CLIENT) public void onPlayerBaubleRender(ItemStack stack, RenderPlayerEvent event, RenderType type) { @@ -63,11 +128,11 @@ public class ItemHolyCloak extends ItemBauble implements IBaubleRender { float s = 0.1F; GL11.glScalef(s, s, s); if(model == null) - model = new ModelBiped(); - + model = new ModelBiped(); + model.bipedBody.render(1F); } } - } + diff --git a/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemUnholyCloak.java b/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemUnholyCloak.java index b1da54715..e73ceb335 100644 --- a/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemUnholyCloak.java +++ b/src/main/java/vazkii/botania/common/item/equipment/bauble/ItemUnholyCloak.java @@ -11,10 +11,19 @@ */ package vazkii.botania.common.item.equipment.bauble; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; +import java.util.List; + +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; +import net.minecraft.util.DamageSource; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.event.entity.living.LivingHurtEvent; import vazkii.botania.client.lib.LibResources; +import vazkii.botania.common.Botania; import vazkii.botania.common.lib.LibItemNames; public class ItemUnholyCloak extends ItemHolyCloak { @@ -25,6 +34,31 @@ public class ItemUnholyCloak extends ItemHolyCloak { super(LibItemNames.UNHOLY_CLOAK); } + @Override + public boolean effectOnDamage(LivingHurtEvent event, EntityPlayer player, ItemStack stack) { + if(!event.source.isUnblockable()) { + int range = 6; + List mobs = player.worldObj.getEntitiesWithinAABB(IMob.class, AxisAlignedBB.getBoundingBox(player.posX - range, player.posY - range, player.posZ - range, player.posX + range, player.posY + range, player.posZ + range)); + for(IMob mob : mobs) + if(mob instanceof EntityLiving) { + EntityLiving entity = (EntityLiving) mob; + entity.attackEntityFrom(DamageSource.causePlayerDamage(player), event.ammount); + } + + player.worldObj.playSoundAtEntity(player, "botania:unholyCloak", 1F, 1F); + for(int i = 0; i < 90; i++) { + float rad = (float) i * 4F * (float) Math.PI / 180F; + float xMotion = (float) Math.cos(rad) * 0.2F; + float zMotion = (float) Math.sin(rad) * 0.2F; + Botania.proxy.wispFX(player.worldObj, player.posX, player.posY + 0.5, player.posZ, 0.4F + (float) Math.random() + 0.25F, 0F, 0F, 0.6F + (float) Math.random() * 0.2F, xMotion, 0F, zMotion); + } + + return true; + } + + return false; + } + @Override ResourceLocation getRenderTexture() { return texture; diff --git a/src/main/resources/assets/botania/lang/en_US.lang b/src/main/resources/assets/botania/lang/en_US.lang index aa26c2193..e96ef873a 100644 --- a/src/main/resources/assets/botania/lang/en_US.lang +++ b/src/main/resources/assets/botania/lang/en_US.lang @@ -788,7 +788,7 @@ item.botania:bloodPendant.name=Tainted Blood Pendant item.botania:redString.name=Red String item.botania:missileRod.name=Rod of the Arcane Barrage item.botania:holyCloak.name=Cloak of Virtue -item.botania:holyCloak.name=Cloak of Sin +item.botania:unholyCloak.name=Cloak of Sin # BREW NAMES botania.brew.fallback=Fallback diff --git a/src/main/resources/assets/botania/sounds.json b/src/main/resources/assets/botania/sounds.json index c59f75555..4676b2281 100644 --- a/src/main/resources/assets/botania/sounds.json +++ b/src/main/resources/assets/botania/sounds.json @@ -12,6 +12,7 @@ "equipBauble": { "category": "neutral", "sounds":["equipBauble"] }, "gaiaTrap": { "category": "neutral", "sounds":["gaiaTrap"] }, "goldenLaurel": { "category": "neutral", "sounds":["goldenLaurel"] }, + "holyCloak": { "category": "neutral", "sounds":["holyCloak"] }, "laputaStart": { "category": "neutral", "sounds":["laputaStart"] }, "lexiconOpen": { "category": "neutral", "sounds":["lexiconOpen"] }, "lexiconPage": { "category": "neutral", "sounds":["lexiconPage"] }, @@ -27,5 +28,6 @@ "terraformRod": { "category": "neutral", "sounds":["terraformRod"] }, "terraPickMode": { "category": "neutral", "sounds":["terraPickMode"] }, "terrasteelCraft": { "category": "neutral", "sounds":["terrasteelCraft"] }, - "thermalily": { "category": "neutral", "sounds":["thermalily"] } + "thermalily": { "category": "neutral", "sounds":["thermalily"] }, + "unholyCloak": { "category": "neutral", "sounds":["unholyCloak"] } } \ No newline at end of file diff --git a/src/main/resources/assets/botania/sounds/holyCloak.ogg b/src/main/resources/assets/botania/sounds/holyCloak.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2d6365684f0ec8b5e5d5f4b10b792875bbe8a384 GIT binary patch literal 11723 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/botania/sounds/unholyCloak.ogg b/src/main/resources/assets/botania/sounds/unholyCloak.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7a9cd60b435d058fc8e7ceaf1f3f107d3d91cf3d GIT binary patch literal 11937 zcmch7by!qi*XRf+UD60h!%zZ(G*S|S)X+mI-AD-nqSDeabVv<7ATe}^q;w5Pt8^nN zeGmTL_x$pFR7Wwb$CK*FNVN4I3M65C-U9&B*qj$>Zhh);kP$Uc0!N z+qvI9y2GsZ4@BhiKflFyG;T5f({3^E0C$^APEtgYH~(Af!u*E}JpeVZdu7X~;bz0= zXlJhXmpG#eqaZ*3V}3Dyv0HR};CiMmuc7b^DrMztap&$oxXg0$dUrrFAP}`23D;eu zMYMP?1ydwVZnj(>xQAYDgei|zK1{q@xQE(8slhT_?%RivSY6O9LOz|orke`yT84Wb zwf=zXIwLS!VYC@=#bpC#(PC@yZqWk&K#APIx9dKTD}}ojQUkMmI$&0GJ984Ki+39m z17@p?p-{JS;ae!R4UrrEEtT$DdRw=YBZccG{#o~T@!uixmi*tDv%ngqd-*LD;Fj*6 zXN*FY6rflTC_9HU{1+z?32hY~s22nxk#QwgiX&I8r0XALCBz{#ynCx&9AKStNWOA7 z!XVn(E{okKmoqJwtF+3luZpL?YO9g&FS;@aq^U*T^@<$(FPj;!8$<=E<1 zDMv>tPcJtlUyKO+0S;!f7}GA3#bNT>lR91S-TTJ`Bp}dBa?!94J*+rPLFVKf3a$l= zz-)!ppzqB(E6#i%iCle#Z+`=T@mCdqj9(aoNaTPuzyQvNLzTe=Ddyqe9y<2{fgZ*{ z0>Sm{1aE+D3Z(@SHJRaFAq%#M6zHb@uYu*S8UTSw?$KDr z0t^O`|0U`M(4+fDEC6^L19Z=ztV(XIO7X1U;(1gOB>SsxyV`_;8ig)e*J&~HnwU&^{`dY@^!Hex_tDFM)`6}Zov)1d*Eq3vKqR2|d7|M< z%78th*$m^^?UHQXBo)3%EBeUrcL`t^Kx;sIpZnKrtcFPic3FkD#x5xdFDNc4u}>?o z`=2{T4pS)zgbM=E_qft2xzhEx-b(dX!;F|9Mi59|i|&~lPfxs%Dj?&y!tjx?))P-{ zeW!mL0a$X|dfX*}{tZwCFiDV985dIff9$u4#Q*`$N0JZ=QLofj1b4I6m~!QlCrtPj zrI62gYs)g)kwq#}@<dl?X136<}uzyf4thY6)dt%Ydsx*b(`9uz~!b6i7szyE=q}EddI{FSd$@IItA}CdHrw zE}kHO7c7t#2oxru49+KqLIes^x!CBsc!tS7~Tglmo3g9wrjcZ(J)%y7Ri zh@I$8B*&f!m;r8Oje~hFdnK>+!YUv zOmv5esor-l;KY6mNHiQDjR9+?=-<4TF_7bQ!ou2%q+fK{DZ! z;$S3V(q0XTo>8&m&7U;4nBtVM)Nl%spq#dq%OITvBe zyEb7@%+;OcKGgnwE|3Jdl3~9s)%D$XSB!ereIGgb!)WkXZ${uq!=D0Qens?5-~b9I z)ty9qo!Mjmn>XB^54mCt+mf23^&1q!8HMeFyBD-0TBfqnKeu2r!TJGGf#Cvw(%kvQ z*UWX0?SO!>D9Rk)N02o}cnJzS)j?Bm3Lw?Bo*nTB1bXr14v6tfkf5e*Z#ali9rRwd zR}4WN1OemZ1i|Gv!Mc$uy(xk50vrf96o$iw0<4y50Tt}Y54sQIVyn3iu`7m;!8j49 zBv>REMJW$14u-?A^2e+BfcNz==0O3MLEP5{xB^Ha@+V=DsDcR?FB=LVRSCa;ONvre z4R9F1SE7?F94c2Qpiy8H0BGojYsa8Y zG62s&>D&Sgj9h@EDFHYcAURuC3M`@$a7#|M+P|Aq0~ocG7Q{I<1^}u2`xd}%)JD<8 zC>Q`Jm@r48PUwuBr4W=35tXZehYL?FSg46nfI$2|fVh7lN5d&($p#_;Y8Q0}wFL<+ zA_EA~K)Cym%C`(4@k0RDkW&V`tII)nt%hWki&2^o2(pV3qEd{a1Wp2+uYl6^SytQJ z_5I&u@;87X0{3zR6v1nZLfxEQx5n!r}lz+*a)Wn-HQv z75Q7s|NjpFtAJhp`@jL}t^0cC%T0SXjb8i^o>CzGtucczK_EO?PJ}sN3pU_j0nSVS zEEN|Bg=_%v3c&>u2n6TvKo5t?0p_wPac-?Kh3Fe2d=pfIEYzI8w_;?}_bUia_W ze-1bQgF-Ms^$+MkjQ1TgUb1bJy%MVb>kq)eE}Psv8iE6c$3lxza--$I;Cv_qkJMsF zWs?plML>4y6T?B|!{xY`Jcnel*@9!CxJ-%B;_IAnO(+)|d`yfJ5kwAwfD>col#4y! zP)@eQ+r^1ch%#Fu2?Q@QUk8F$oUa4L$@GYo<6z5=2W}JK04@R!fv|Z%<+#8IAaaZ0 zBoJjVLLI1i`Q&n(Ou>M-Y>0Ru<`Q+}Z~+dWoH+m$K<0QT7zFz9H&f$?e=DlOd7xIm z4j{e4nOPL*0bf-7ZQCzr9K-;8=iz0m2Hx0#P$^rrZJD!^UC3#-P80MdSo}{{bfz zmjExPU6vgrDWjl#7xWP~d@Ps`hbh2=)bjV2U^0=c`kz5WPX8RXNI?5{K(U%2Qqs`@ zT?6A6mbQ+sJiPth1GH}&4#*D#Vr7<5P!MvbproRvp?yF{&+w3u>GrMVZXn?$3dVextfPqVFlBBOFcVt4_`-PNto3Ha|o?i;IEv^ydjMKm;jqUdD%gH<1<;C zh#jIaHF;tZ;lKRLBO-f%*o-{|1r3l+nreJ|&+3NdkSnSu&n|R^_`vyKhNw1sZR|_< z#vi)b*Sm)e!qXt~7DF=8(K}z#9G>#XRIk-Lv^c#{Pm*VGH6*lnbMDhJQM;N9lMJ3y^QT`5RkX29t@?*VCQJ#Q)G|`lOvVT)c0+ z`|zinQ@a$2+BTK?Z+XcG+Az&`+K!-^Gb8paXm4bb;@Q<6uR=!+qnNRb?Nphb%FOAf z&GSI1HTBs?#%&&-zAr$eZp@KwgWl)+H-=jZP-#=iw`M}8!+KP;7G|`0TSEH;JJ2FV zK|a=QxD?nO(h?KBxZ6R*E|25xGrlHOyPFaEoT?r6TEy;~ldzuBZl>#Yi!0cMqEG&w zUh|^nd1PvcrH+s7fh%jrpo)t9p=FyTtr(me5!&mu~Zlx{TEw|4y(Imn-ur)7Aj zOivustV}cq<^YpIUtS%w)fT92`dtsV%9@YNNi`miE&bTWQP1!HK%vX!B-1pMgb_@Z zT2q2yjnM%;Nzni0cb$)^G}&>I%~GAbV6jWQiyf1u+>X96R+;1M9HD{XZb0k;1l>}^ zI6}`18>K&eW&dtVK#FDc;`@^7{8B`pxX$#1=bYKkbPoid)4f)j=MLO~MFHBW)YtVj zbTYH{XxK6N(;(tghUC5B*9<;QO?AWm_Zr3NJi73rf>;zSGarKqWVi7w>(E4wD)`uM z&gULHsGJvCp|YB8#F;0T89Q0awxeiuBPD$O2%~e$jqAeJ|4s4iI>iA#QJr6{279E* zR-SLZ9kmDjNv3LD1359VkH}?7Db+T|6XHxld!y5?TFeD%h166Wd)THT&t96rgL>;~ z7>`fcCjnGux$hI?QR(~#i$e~)a?~OA7>j-n>wX8fQQuc@M^~2wIe1O4xI9C8PUxdk zxP(WOUT}M1(4?=cF5Qk<*;lrK1}FEMpTp0P$nt#G4^QMQ6xp0#i|0A1OvrWWxm!4N zA1E{rHRuIe4xN1E$9zfUgg%9Q$d9T@KYD%*e(s|#uj#6cTP*VFNJ9o?fYfu6c=x3C zo5Ys1Q;d4bLf_Bi9ZBNu`-%bKo~$_~Rps9sTMg+WmeX=G-i#ohxAw!@G2*wT&pzk& z_mg$zWqFG)a8_muNz_ngd za-B zo^RgnY2tpe29(X6w{%d-i7l=q>6k8_&5z7f;4?$xXQe`1D24kZp5UeCZqW6Yjrxhy zOdjj*=XOW4@i~i*_EEKB8=JcG`!p%Lmsdy$=TeP4XQ!vrBi79K5s#~@X<9} zdz}t1dC>Bn;LkEmD|PVn8~dPTdS{2Qq9Dj)Yms|C5WE3WnijYsAz`eg)J}=Mvo8O0 z2~d)<*13_jbyz%sg8y-l$?8-8_7-kEtH(tUut^hp0-m&y@7)bUlJfoxk`4LyRJ>~B zHPc&tqu!FQ+U0(BauY~9&~bbdCVm+{@B*vN*qd4tsTc7Y`io z$x;z-Hftp2;xa?v1kJ~@8fbP~>eWhf{%vlcyieGFaKQh=Hh^0`xsu9+|8Y(q+EL)? zh-6%(TXZ>P#n`NiZ~UIaFW1sa_UE4!90K!} zxeZD7pwp}l!e!F!Qx5$6c`={5So#Unl3;=q^-#6qvp>gj5?~fFYU{|wBp;{cv+t3t zcehgFSteag9`-Ov={%zNwRKrDU&k@4`(8Kt;7N~{sZGnDFgkGV7YU=^)`J##S$I8i zGMaBF;T5~}7R&Z105FZLwot1chEk)A{q*lDOX4;!hT zg>g}HE2e4FbG*G-lp!y@P*6K+HKG)=$Q}hNqpZ-5MAC*7_$FhfU$qsUC<&V+CzUvwEFWa>U4O_>fI%l^*fIX8Ee=*Vh;btiIMr&YY? z`xKg1qyVveey>q-aNoe>0UOV=ShXu5a9Za0kxaJvQNXHM^lQJ>V6YX~?PL(|Rnb~d$FN&cw zTBC5Os3f$U-gY)4Y|iaz6gjquTxVYqqq{pHH>+FL2)!5g7OE(kY`cU+BY{ zBl6|+`KAh$ZZY#ud^rgri(9x%x{7v=1WeUm_TpzFjr%1rbidoURCT~vHg;l$#IP8e z=-3xLJ_H%$knOunH(^hCr$g zY9Farvq|mZ3Bn>8sfF=UMmTf4$`p6euNXcGm{&o1#a*UnI7`rbKD)n4g8UIDr2VCS zBGzLZTh+u`Wh?Zt4$cS7mvnPCim#^W?4!bdZj&A7ZmKMjN)u9T%h@-Dd?I=pFV|tv z7c@D*!KXfLClowpbTd{Z7)}(YfbeGZkrJKv>-k>twPJy#pfLA#a|Q?*tdA}e%mggzbQK{^pa}Vve_j-eFV48%7FKDf91Bek-;zj@zkwp*L!v^(tbuKac?vI8(DISU z6)`sL;gx5tG3SK56TVi*BS&l(Y3bBawFtXw9}2P1&c1>HlS|qVXv~0OT4?Z$K#DP4Umo4x8qdr<_ zHIhz;YCQB$tEm|w=m7SCVKJQSD?lH z@=f2S*-nG>)js3LlXa{TZONTFy?+c2BQv z^N79g_WLb37)l0)W5Q)N2Z9s3gn`;Hec}s45pRw3UW56ULij}o&@p?TY|z5u@kR>? z?PIN#$!-$r-fKR5^5J8Ue>%me6PUBPgso-7p=B;$qSmPjcJzI`e(h~mIlg~Zq_bDB z#i_%akG>hy)!K}^c4wYE?)}BrBddu-nOUu6%v|`ExIg`9IG)szwCUeh{xs&ALEOC+ zQ8boigZJ?dvBqFy?G_lVVTZoJw%3Dj)QCm#fa!f>v`A{5iI1YQr*^drt)IyfB>9tg z`h}(-0_5Aa_&LKt3}y5e!B1Sx!Gpwo%gMY(FQ6}SoKP?xO62jP-TGnivBS~ZnAb?d zM&c)h)+hBBzuabo&8rf4M%nSJ)QI`zHOn3aFP3j}USOL0{HFLoV&X@ynb(QP)N<7{ z%o1rnKNEEn-IPe@F=OqgyJQJ^zhkK*7p^bwHIpk+0&82@ipYM!DwE&tnEvKLL}>q3 z<*eP|IKF$6ueR|$hO$iVhX`X&Z9R@`LYv=*D|6uW%I{qfnXVCZJZOq^CmlKQ4UFRKKRMj&>PEqU;d zGrgBZxFvpkDx)1xST^Iy%Tf_TchbVn zRBsFIei?f0)>2`zPj|?eY$x!4xSYv0efcbu-j&~DVb(%yx>wTwv1cU^+doN8sdP|| zY`hMOH^gDJ_7_R@h3O}9bk$OinZA2!{Xzwf*lmr>vRpah( z?OFMnbEtg$MgcmrW-Zi3I~Np>Q3y1EnbJy6kGVS-yhE;JosOM!Uti(S{XA7XGcDtciDfg?JQ1aQ#7g* z7)7m^a%Du#$S;$)s2mD}D4*3(UmhIhAs; zlypFp7wKfFC`+$ovU9@xg`!d1M!tg^j`XJ%I^=e)?H+vj7UtA`^cnV}RK_pXc0GvmzzmEI&8#7#0w-S4KMyZWsy`_x8oEnX> zb8@ay5Bwp@F01g$)1GkSRqWQ?(w5R5zL25~w-V7`vuq27c89r0S01{=flh?zDF#A! zcIg=QMV6k}vkUEa+?_RIz%_=v$&s*Cld7%(1pk{vsAehU`xRQ_`8x#O(X7$k9iV$?m(!a$Q2J@VqCZB8<#>3~|9 z*8@{20*(wru0K9-0V4-WsoJ-ZrOE7>v$lV})}nZy1#EdrKP3Azw}^f3euGD)r^oNs z$M^@mEnz$!z7pS8#BDh8p~{tmI-`X9@O*|^mI%**kq$kZX~BX@ksneeMx!%=BKYMw zc}n6p@uLhXAGy`${2|<#yOQJZRh&1q^lA=8T(zA~Lx-VnS50vBgAD{12Ixy`=C=<9 zG;{RZx5!2dP_=0DQ45RY{fg=Q%b@b6^voEQVA8Q?wa>qtP2n!+{=$@t=4Mu!Td6Nw zTpg^-re$W)S|BaxWlW@Dt)bD)L?&9!1;%}`96%6^KFp10WzXsU^sW3G@*4+tZlrm3 zmUdh|JF;Tqf~4WOw*)~IsfS*4?6=?Vzee>IKAiN;8?$3=1^ExCnHPRxe;e@3MCX0- zcFu}}gFbgwjd8wnu;S@Ob#;E=a{Gs(1LjtZ10^&+u5=Nu;ixmvySP=w!;E1D7hASEJYp)G%1z8UnRbo+*h?&u_7n8L7ic^BKT>%;eds^ zSt#AWl8;jST5%3W7vVh)p;E=b3(iNnqU%W)<SzqCf$37hXrDxX@#fXqu@ z51OMkRop(4+S0d1b9k)GRhad6mG|BFN78;+vJe8jWOyg>P(c~|MdLXp8f+(r!CT3mei(L^9-@#v$LJqb*V`t*uKl+MRDaigqLOnKRgTB^h}p#V@oaLu);~NFq{r6&nD`>az+i$dxOP!y#TP0DXS& zejiU0`J~hi(I%a~--^4?kDrb%Jgla$s+sZo(f=~wO@dccb{%p4^GA?hWz*P^&TT&@ zSsyKHrFJF6jMR*tf1Yn8@8&r9-CL`#X)}VjKa@k|QyjBUKHO4qnb}}OiQmI~@ln58 zpsU&IcaCx^5i?AL-@4SDuY%s?yPW9&g;Tq(ywL*YVQZ81??_*Y)=i2e!`OmQ)raTo zuH%ZJQQr5a^LL7LcXE}mc2R#~INrGIhDQBRaryPwFsbgj%Ut?J<)i}FJoI?mcK>(1 zarUk@y{#sBj`*%MJ8PhRd-L5=kHG|}qO^#x^g}U0V~_Irypujv=m%U48usZ{Ik> zd?wpDho4y&_y#hIevTHue1ax>nj6XaQ~t^Jc|qx&(c0PN4rHsRPZS#l13uAMNdo;6 z;}!kmvGgaD{8WD`bW3$L5Wg}a_9D*GSPx?;lF#S>pIBiqQ zpj#i42M%6M#OcXen_$%sPLG*&D(VrYrHZYu_euG#I|P5cQ`P3a$IL@e18T)1f|))F z0mt}ivzj*TeB}aRXPcl5YS{06Bfbfq-!1=b`sm!oW>4Yb!v{TECg_!)w22uusN)p^ z$*}y&S**om4;Jd&Xo7`tNuGzF&C{trPpX?J_z2xPLMl>R8mGh@Ot<=w*BjF(;mZ#e zxp6kGb}1j))u~=cJsWBJ^SUe1X2Z52f3vNTEl+Y)N!=VUHcN#*a;iQ1)nx-Efb;D z?Gytvv&ZqBnoG5wN@x2k_G5;>uodvyT5}JJul8RzBmHCjdSMX!fv>aZu|e6($sS9v zmAU1(SGUb|>P7=^vJ?J3M+6d9VS`TosNzs>>#RcsC}aSt7G$#1>#QU@!9ZnQ ztYbb#U#P|uy7TVOpwx6C8ZwAJEeKR3qHl;!>x|#NwoP7KmNU~!cyamJDxr@qK6-S# zmQ7hkiqlGBvxRYJER*)hKgmd=jX9@Zwi(+Zg< zmzHkk%2w(~HWnH!H{_i`{krP+75~KWzneGLKezZ640#oN|vbFzt28k383(O4Az?rj3wwCK6t*%o+|}C$@z>ddd`Cc?I<&#PhwsKU5YQ9#gDJAv9!d3ao>(Ul_;FaA50}P$Y%< zSszXw;H%JMZ{F`^bFa?+Ea>?jy%th^IA`I;ec?3W^>F}n?K5{&qBhDZr1_$UL_#Ox zTM38V!?xz6_GJ`uV(!er-JxyD;--;r>+{mZ4oCEqde+;kb%^XkY9h56O85CYYkRxX z`T&?zcVy@7=2hlU)*&mw>dZ=)2}#SaG9jn636E@XXvMBOnmOC@wD+L_E_E^pC<{G zSX1jsnk{%aw4|x=#~)!;A)cNC8Ptput%QXYbvdP?p8O{Tx)kh1>HE)?;?KtAHP8wp z-+wZ7XCytDb6JmsH7dc)^>a7@`s|8uAo^wN{UKl|p+A350 z$BVlsFDXIS;B<#QX7h=VD$}12gfK>G4N+2R4m5y_Z(K3JooLBi*@$zFbNEpdq^j_J>-mB?m16=yUGc_dhrU2JK}9j6oqUB(rE{ zf7-~qrn?V6`q}b4m&zz1dqZ}7{Ft^#GKKz0Yt!qaFRn&T>v#6+ISPmM=RcPVZ*qxl zNG;%~ZpKe=-whM_#U@ZO>8Qtz{?&0Nfh5LmRC>rxm*Qkv%d@PiyQ8b6@ba_{kAZ}>_>V?3~pnLCuN zC^m=Os1~&OQiT2vy{FLaNgX6T zJ#%!W)>*!TYm7fXR_0Uo8r9r3o>4#RQfJ0smUQ9irPOF@I$If3roMNGA6n5D&9dpk zzw^dSNS!@~(tn>z!>EU6rkVDaS0d*F#o48*mq+)rQJT@!7ES)QdQ z7^c~eniPXJb58lJyHCT#bE5*NF+RA~ogz3S5MvZ+vt-N#wQ2WE!)7Y}s34l$bk!~u z>bp6MftR%%`?HtZzrWegUtS8^K3wb>E4CyVZ8h)1pL;P@=4`dwjTiYrlmNneZwePr zA?mI6LM^9bzd3WMRedLeBoQOl+b5rV&rqG-f{KHFO0VxI7N@DyvV;Qfv1*d4(^KXq zL}p4^IL2tRdoO=5aGPH0JQhxcugWrAkxYrAKK!BuEl|OF$`GdVrW^Sf%{=5g_tEBK zuLZBX*Z%Adnk-%4EG%p0E^Qby$p6;Sky{4^7rtxT=h9uSSzQ