From deb6533bd8d7340c9f71100bf87d59cbd2e934a7 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 26 Mar 2012 22:04:31 +0400 Subject: [PATCH] [mad ai] emulating block declaration. safe block. (in progress) --- .../src/mage/player/ai/ComputerPlayer6.java | 19 ++-- .../src/mage/player/ai/ComputerPlayer7.java | 24 ++-- .../src/mage/player/ai/util/Combat.java | 7 -- .../src/mage/player/ai/util/CombatInfo.java | 29 +++++ .../src/mage/player/ai/util/CombatUtil.java | 105 ++++++++++++++++-- .../src/mage/player/ai/util/SurviveInfo.java | 30 +++++ Mage.Server/plugins/mage-player-ai-ma.jar | Bin 52018 -> 58681 bytes Mage.Server/plugins/mage-player-ai.jar | Bin 55637 -> 55643 bytes Mage.Server/plugins/mage-player-aimcts.jar | Bin 28403 -> 28379 bytes Mage.Server/plugins/mage-player-aiminimax.jar | Bin 39894 -> 39871 bytes Mage.Server/plugins/mage-player-human.jar | Bin 13260 -> 13260 bytes Mage/src/mage/game/combat/Combat.java | 8 +- 12 files changed, 188 insertions(+), 34 deletions(-) delete mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/Combat.java create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatInfo.java create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/SurviveInfo.java diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index b90e7be7bbd..868bb030b73 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -54,6 +54,7 @@ import mage.game.turn.*; import mage.player.ai.ma.optimizers.TreeOptimizer; import mage.player.ai.ma.optimizers.impl.EquipOptimizer; import mage.player.ai.ma.optimizers.impl.LevelUpOptimizer; +import mage.player.ai.util.CombatInfo; import mage.player.ai.util.CombatUtil; import mage.players.Player; import mage.target.Target; @@ -150,7 +151,6 @@ public class ComputerPlayer6 extends ComputerPlayer implements if (game.getActivePlayerId().equals(playerId)) { declareAttackers(game, playerId); pass(); - return true; } else { pass(); } @@ -159,7 +159,6 @@ public class ComputerPlayer6 extends ComputerPlayer implements if (!game.getActivePlayerId().equals(playerId)) { declareBlockers(game, playerId); pass(); - return true; } else { pass(); } @@ -770,22 +769,24 @@ public class ComputerPlayer6 extends ComputerPlayer implements CombatUtil.sortByPower(attackers, false); - //TODO: - + CombatInfo combatInfo = CombatUtil.blockWithGoodTrade(game, attackers, possibleBlockers); Player player = game.getPlayer(this.playerId); - Map> map = new HashMap>(); - for (Map.Entry> entry : map.entrySet()) { + boolean blocked = false; + for (Map.Entry> entry : combatInfo.getCombat().entrySet()) { UUID attackerId = entry.getKey().getId(); List blockers = entry.getValue(); if (blockers != null) { for (Permanent blocker : blockers) { - player.declareAttacker(attackerId, blocker.getId(), game); + player.declareBlocker(blocker.getId(), attackerId, game); + blocked = true; } } - } + if (blocked) { + game.getPlayers().resetPassed(); + } } } @@ -887,7 +888,7 @@ public class ComputerPlayer6 extends ComputerPlayer implements CombatUtil.handleExalted(); - int aggressionRate = 5; + int aggressionRate = 0; for (Permanent attacker : attackersList) { if (aggressionRate == 5) { attackingPlayer.declareAttacker(attacker.getId(), defenderId, game); diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer7.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer7.java index e58e904a03c..64259e82312 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer7.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer7.java @@ -28,17 +28,23 @@ package mage.player.ai; +import mage.Constants; import mage.Constants.AbilityType; import mage.Constants.RangeOfInfluence; import mage.Constants.Zone; import mage.abilities.Ability; import mage.filter.FilterAbility; import mage.game.Game; +import mage.game.combat.Combat; +import mage.game.combat.CombatGroup; +import mage.game.events.GameEvent; import mage.game.turn.*; import mage.players.Player; import org.apache.log4j.Logger; import java.util.LinkedList; +import java.util.List; +import java.util.UUID; /** * @@ -275,14 +281,14 @@ public class ComputerPlayer7 extends ComputerPlayer6 implements Player { } - /*protected int simulateCombat(Game game, SimulationNode2 node, int depth, int alpha, int beta, boolean counter) { + protected int simulateCombat(Game game, SimulationNode2 node, int depth, int alpha, int beta, boolean counter) { Integer val = null; if (Thread.interrupted()) { Thread.currentThread().interrupt(); logger.debug("interrupted"); return GameStateEvaluator2.evaluate(playerId, game); } - if (game.getTurn().getStepType() != PhaseStep.DECLARE_BLOCKERS) { + if (game.getTurn().getStepType() != Constants.PhaseStep.DECLARE_BLOCKERS) { game.getTurn().setPhase(new CombatPhase()); if (game.getPhase().beginPhase(game, game.getActivePlayerId())) { simulateStep(game, new BeginCombatStep()); @@ -317,10 +323,10 @@ public class ComputerPlayer7 extends ComputerPlayer6 implements Player { if (logger.isDebugEnabled()) logger.debug("returning -- combat score: " + val + " depth:" + depth + " for player:" + game.getPlayer(node.getPlayerId()).getName()); return val; - }*/ + } - /*protected int simulateAttackers(Game game, SimulationNode2 node, UUID attackerId, int depth, int alpha, int beta, boolean counter) { + protected int simulateAttackers(Game game, SimulationNode2 node, UUID attackerId, int depth, int alpha, int beta, boolean counter) { if (Thread.interrupted()) { Thread.currentThread().interrupt(); logger.debug("interrupted"); @@ -392,9 +398,9 @@ public class ComputerPlayer7 extends ComputerPlayer6 implements Player { if (logger.isDebugEnabled()) logger.debug("returning -- combat attacker score: " + val + " depth:" + depth + " for player:" + game.getPlayer(node.getPlayerId()).getName()); return val; - }*/ + } - /*protected int simulateBlockers(Game game, SimulationNode2 node, UUID defenderId, int depth, int alpha, int beta, boolean counter) { + protected int simulateBlockers(Game game, SimulationNode2 node, UUID defenderId, int depth, int alpha, int beta, boolean counter) { if (Thread.interrupted()) { Thread.currentThread().interrupt(); logger.debug("interrupted"); @@ -471,7 +477,7 @@ public class ComputerPlayer7 extends ComputerPlayer6 implements Player { if (logger.isDebugEnabled()) logger.debug("returning -- combat blocker score: " + val + " depth:" + depth + " for player:" + game.getPlayer(node.getPlayerId()).getName()); return val; - }*/ + } /*protected int simulateCounterAttack(Game game, SimulationNode2 node, int depth, int alpha, int beta) { if (Thread.interrupted()) { @@ -520,7 +526,7 @@ public class ComputerPlayer7 extends ComputerPlayer6 implements Player { } } - /*protected void finishCombat(Game game) { + protected void finishCombat(Game game) { if (Thread.interrupted()) { Thread.currentThread().interrupt(); logger.debug("interrupted"); @@ -529,7 +535,7 @@ public class ComputerPlayer7 extends ComputerPlayer6 implements Player { simulateStep(game, new FirstCombatDamageStep()); simulateStep(game, new CombatDamageStep()); simulateStep(game, new EndOfCombatStep()); - }*/ + } protected int simulatePostCombatMain(Game game, SimulationNode2 node, int depth, int alpha, int beta) { if (Thread.interrupted()) { diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/Combat.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/Combat.java deleted file mode 100644 index f36f9074ceb..00000000000 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/Combat.java +++ /dev/null @@ -1,7 +0,0 @@ -package mage.player.ai.util; - -/** - * @author noxx - */ -public class Combat { -} diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatInfo.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatInfo.java new file mode 100644 index 00000000000..0a0377ce266 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatInfo.java @@ -0,0 +1,29 @@ +package mage.player.ai.util; + +import mage.game.permanent.Permanent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author noxx + */ +public class CombatInfo { + + private Map> combat = new HashMap>(); + + public void addPair(Permanent attacker, Permanent blocker) { + List blockers = combat.get(attacker); + if (blockers == null) { + blockers = new ArrayList(); + combat.put(attacker, blockers); + } + blockers.add(blocker); + } + + public Map> getCombat() { + return combat; + } +} diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatUtil.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatUtil.java index 43b11cf1ea9..6a485018e89 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatUtil.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/CombatUtil.java @@ -4,13 +4,16 @@ import mage.abilities.keyword.DoubleStrikeAbility; import mage.abilities.keyword.InfectAbility; import mage.counters.CounterType; import mage.game.Game; +import mage.game.combat.Combat; +import mage.game.events.GameEvent; import mage.game.permanent.Permanent; +import mage.game.turn.CombatDamageStep; +import mage.game.turn.EndOfCombatStep; +import mage.game.turn.FirstCombatDamageStep; +import mage.game.turn.Step; import mage.players.Player; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.util.*; /** * Base helper methods for combat. @@ -21,6 +24,8 @@ public class CombatUtil { private static final List emptyList = new ArrayList(); + private static final transient org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(CombatUtil.class); + private CombatUtil() { } @@ -90,6 +95,19 @@ public class CombatUtil { }); } + public static Permanent getWorstCreature(List creatures) { + if (creatures.isEmpty()) { + return null; + } + Collections.sort(creatures, new Comparator() { + @Override + public int compare(Permanent o1, Permanent o2) { + return o2.getPower().getValue() - o1.getPower().getValue(); + } + }); + return creatures.get(0); + } + private static int sumDamage(List attackersThatWontBeBlocked, Player defender) { int damage = 0; for (Permanent attacker : attackersThatWontBeBlocked) { @@ -137,11 +155,84 @@ public class CombatUtil { return canBlock; } - public void blockWithGoodTrade(Game game, List attackers, List possibleBlockers) { + public static CombatInfo blockWithGoodTrade(Game game, List attackers, List blockers) { + + UUID attackerId = game.getCombat().getAttackerId(); + UUID defenderId = game.getCombat().getDefenders().iterator().next(); + if (attackerId == null || defenderId == null) { + log.warn("Couldn't find attacker or defender: " + attackerId + " " + defenderId); + return new CombatInfo(); + } + + CombatInfo combatInfo = new CombatInfo(); for (Permanent attacker : attackers) { //TODO: handle attackers with "can't be blocked except" - List blockers = getPossibleBlockers(game, attacker, possibleBlockers); - + List possibleBlockers = getPossibleBlockers(game, attacker, blockers); + List survivedBlockers = getBlockersThatWillSurvive(game, attackerId, defenderId, attacker, possibleBlockers); + if (!survivedBlockers.isEmpty()) { + Permanent blocker = getWorstCreature(survivedBlockers); + combatInfo.addPair(attacker, blocker); + blockers.remove(blocker); + } + if (blockers.isEmpty()) { + break; + } } + + return combatInfo; } + + private static List getBlockersThatWillSurvive(Game game, UUID attackerId, UUID defenderId, Permanent attacker, List possibleBlockers) { + List blockers = new ArrayList(); + for (Permanent blocker : possibleBlockers) { + SurviveInfo info = willItSurvive(game, attackerId, defenderId, attacker, blocker); + if (info.isAttackerDied() && !info.isBlockerDied()) { + blockers.add(blocker); + } + } + return blockers; + } + + private static SurviveInfo willItSurvive(Game game, UUID attackingPlayerId, UUID defendingPlayerId, Permanent attacker, Permanent blocker) { + Game sim = game.copy(); + + Combat combat = sim.getCombat(); + combat.setAttacker(attackingPlayerId); + combat.setDefenders(sim); + + sim.getPlayer(defendingPlayerId).declareBlocker(blocker.getId(), attacker.getId(), sim); + sim.fireEvent(GameEvent.getEvent(GameEvent.EventType.DECLARED_BLOCKERS, defendingPlayerId, defendingPlayerId)); + + sim.checkStateAndTriggered(); + while (!sim.getStack().isEmpty()) { + sim.getStack().resolve(sim); + sim.applyEffects(); + } + sim.fireEvent(GameEvent.getEvent(GameEvent.EventType.DECLARE_BLOCKERS_STEP_POST, sim.getActivePlayerId(), sim.getActivePlayerId())); + + simulateStep(sim, new FirstCombatDamageStep()); + simulateStep(sim, new CombatDamageStep()); + simulateStep(sim, new EndOfCombatStep()); + + sim.checkStateAndTriggered(); + while (!sim.getStack().isEmpty()) { + sim.getStack().resolve(sim); + sim.applyEffects(); + } + + return new SurviveInfo(!sim.getBattlefield().containsPermanent(attacker.getId()), !sim.getBattlefield().containsPermanent(blocker.getId())); + } + + protected static void simulateStep(Game game, Step step) { + game.getPhase().setStep(step); + if (!step.skipStep(game, game.getActivePlayerId())) { + step.beginStep(game, game.getActivePlayerId()); + game.checkStateAndTriggered(); + while (!game.getStack().isEmpty()) { + game.getStack().resolve(game); + game.applyEffects(); + } + step.endStep(game, game.getActivePlayerId()); + } + } } diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/SurviveInfo.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/SurviveInfo.java new file mode 100644 index 00000000000..5e2deb58b23 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/util/SurviveInfo.java @@ -0,0 +1,30 @@ +package mage.player.ai.util; + +/** + * @author noxx + */ +public class SurviveInfo { + private boolean attackerDied; + private boolean blockerDied; + + public SurviveInfo(boolean attackerDied, boolean blockerDied) { + this.attackerDied = attackerDied; + this.blockerDied = blockerDied; + } + + public boolean isAttackerDied() { + return attackerDied; + } + + public void setAttackerDied(boolean attackerDied) { + this.attackerDied = attackerDied; + } + + public boolean isBlockerDied() { + return blockerDied; + } + + public void setBlockerDied(boolean blockerDied) { + this.blockerDied = blockerDied; + } +} diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index 05dc334ce2e57b981eb086a4ef6da65659c7f27c..a878f31c038f8952dd6ce5797c304d129e653a3b 100644 GIT binary patch delta 32421 zcmYJa1B@=d6R5qmZQHhO+qUg@ZQHhO+c;~TwQ<(Q_xs;3H@9grnaMP5GMPy`&C{F? z+BFRdrz8ss1_SiJF;kZWM-D$-=Obk25nX5dpCu?sz>3B@irl)4n>))p3TX*VzaiBw z5#7QE;$EV>SFcwO=>ILBu1h*12AQr)fdHoZpI`!}1(~T!(FbPupB4wq{XcCISm1vG z3WVuDV+#++DailXFbAhjSOWwI$Tx+l79*u_1R=#}7&=7R~A*H0!b)>!Jtq=L*ol0Wt*X4t#2vNeE)%8F;+%u z6$ipV1x146zWnuN9O#Qddz{bGZ8t-`>pPP?RVZM!R4C9c_&ghu1TxB`9T}-V;mQgyKhHJo%P-*O;QTv>&0S9w8_d-`N1?1{Iq zQ#4=nDj#{OHuzF$7ff>A#jRW!APyw#DUQiQU;FfDx#;qJ0r#(tblg*1_U2uBco{J{ zmLGX(Jxr1907c@cauZ z(lM!CNyr(!-)6qh^9Hh^0Qc)|KRon5;q!Z?54t>noc@1g51#M7^TYpaze2>YWOoHu z-X(c{Gf%%pM+8p_$R8HoM{s^gkSXpNt*fwxeR~z!Jpxpm|M1T$Y2T|fR7mCQcko#+H9(9 zMZLduRe;(xWIBPIbU35~MixO*m=*eF_GFQ@E5AwPdM6-+6RO?0QrwNzq`ZYs0yMVNxJg4 zi+=6mSd|t7TC@9fgV=kF8s5wo5tv+_IP!=zLc6n_@{AHZBu%nt+A;Oi+S0?-&{yQto^Y3Sis-9zvWE3h_$ax^ zU$4qURo6Xgm;a09}drrdLIstjeNoT97|%U19{2#fNZOm#*wObVMN>^N3wnN9bVKo zj(en{cjIY(kuJ$9;|vM{S)_y*O1^8Xd$MOhbaYSE8yk8-QT+nSR({FOV`}d{GGlZG zmG>s80dfOH^!n&kwijtqS|q1*v!8fZ2b-{nY;Oqrq5kDJfqZ7Xh<2}H7ot@eBK3RZ z>2D?vKv42qplGKe^)nXg%vIh`IHZ4NRFgo1;%^19A*#4v2`rik{K{M1yaUmO!0MPM znb*ttp>G~z$&cXqp``woSlvIQY&6qvIoq$|7(?r@J*xM->fb`^-_m17`F%Wq?*=v% zCevm`)Hi`gJeSavU~20*iWBve+tdXuRZ_Pb;Nnl6Ec|*3&ooNbeiA`erS!;%#^L59 z0)Yp-e+t`X5-<}}w5`q8kh6Nf(j=kDetmUa?Gq%n7v(wx?W3Q2f3x@xUoD@X^Ix-7 zwLzh^)in)fEH>{Z$128#A_1i|O$}YuH6*wX+snu3^v@ZbOWP3Euc5La7QvVG8vmII zz~|K^CbQ9)MN?^eZhFb}tawm1IUJjzwtrze1Z|JlEHC!<*GUR!kxwqAu|#3>xaJ;Lq!Rt<|oa!cYjz=wUGZH;WVvU7dm)}bEn2XSdEV>=P(83kky@Ulj`_*s)cNI zzQ4IecFOb)(3V(81HNeuAc z=bwEwb=F|0Zit1jAX=#!mUCYvfK{WTm2@FYRv}<~sGM?e*MgN`IM&B-Gnu-d2b>fq ztkX-|eiw#pFm^Tsw0a#Jv`v`I3Ze=dnarJz0zB){sad8iMWM;QlLeu!iqXDO66*5X zcyPqugxbKkcNSCZLyF^5g*cTHK{YoK5`yU*kGT>{_?h?!wPNi(WVIg$KxPBsPqOA* z{aC)m-A3CsbogL3uO`GK6(c4~wIBu&S6x?A!=7P8EMHzo9y^USCnR59d_N^rC>9k% z$%CZ2wa9QO{gP=CEZor!26bCSe9Wjh5dk|-%8V}VN_%P7Jrfy{()j>vZ?MCxpdt}_ z!`KRLG%R8!D~l7UREUEJKs?ci0(koufw$F85Liu^?AaW%rxu5qDid`Sk7;Eo>*?i2 zp=jwE&5$>(M2KC}=%Q89Pzor0ozQTGwasX%cT7gC!hS!$U06+3Rn1#d3r#F(sikZH z7v&zjg3n-}tE;_1zl$eLA|l^Dph4KzT8tNOH$a3xkW>&y9d=Lvu9w$k^_h}@O4+W=G-jG~C$tQL! z&j!fNU`_gXp8~mRDi%mw-BzMuihiQ0l4H^2Fn#P)r24!@N|^tQ$bVVdUl$+hMy8Wp zjqKX?(z?5qy&5X|tPs-!vgru3n1%7HK?o-z85It5*x3E2-rkt{uZNzENOO>m{J-m( zXPC|gC3{go;tTuLFZ{mMAWEc7e8FLj@UC(`a!*jwY4r&6- zm%0pPYMCB|w@i4xuN2#b4;p4+oEiDi=AooRO34R#ugs_Mxd*f}b(jKW#gh$t(6n_L zU9n?$&_LaRHO?SrPb);CMjD|tmvmfHD@F?74YlLff6uO;HnJDhZ?z{t2j@=TLMBQW zC`a*CBMr=cgDHZ3uUYJk3tTYu^#_wr-o!iY2a9p4OafP$s0tHpIw-cf9t{#BuAn=Y zJRc#U`B83jY2~+KxvmC|neGt&C1l733-J%}6dd5Fk(EUaTC%l11*IZRgb>iu3lm)B6S#%6| z)L3cSp;@>I;|6+LP=(k8izuFD8jAv;%tGwb4D4bsyGJPBjbJ zxP}r_j+@}#zT86i<+$l7`)B}42ZZL6N5{sK|0q*+ip~4=1+^8H%%X^8Pt-&eQkIp8 z#Sj4BAfq@l>4>V?x~1c+)(UWC_@Eq=7K;MCOEE(wW3&SN)6a$qFJAP+P_ zo{xS>62HJeRg|0`FTVf7dD2{Gc+RNM1hcJK&f{X|&_s>`EaWr4U3|fbYCJybqI$&o zk)>BMZ%BAF3^|z9EGh$<{d~cQch5S%!)w#5`14IB3*oSPK^0ld_#d+D5@q4LVk>R9 zn|3v#q~u{p(_$5#TAUPYr+0STc&?wy&@3dY`PB2n&(al;c`I(+jupKjly?)MjGWB0 z?cptOE7dTc7~xkqLg}!UXE5GD*u(i$^UWt)PPnuAFpWzd1r-4#XZk{Z0mRZl`PY`B z24sxm;x&u(@(c2Yk=56G#G~eu zHODgY2KJM-k!-%LsGTN@EqzXTLoZF=;l1gR=RDqh6uh_(5XA$(lep6DdE!$v^7S0Y z@(&iGe@U()hm!zQJ`(%vrADMrDt;}3%=0+IeagzXa-0_sS6oEeQ@YTkwkP)4dX|&h zRZbCnAl^qrNffQm+n5cY;V2hG-?bK;)(;G#9Me7Q-U-C(Gw@=jxY%SJFd9W6-cn24 zX1`J_G7S}-hCDA!$9)e15Fv=nE|!y@=%Q_ey)DnGZs&mc#GGS`QERUB^aK|11!+y; zV`Z5g6+G`$iVm#ee1v=8uGPeCtFclcFZ|HGM0qkpmtt>FX^gn?2e($iWl^`Nq>_15 z@A9JZfK(k>@OoxmDj&1T_U?crlh+5ATp{ruWbk*0QM4;eQ{a3cF|&Y;Hnu zbcUOT8A?EWd?A6T1En*K#^NqfLlwIh!xYv2>^`bDbBHmsELBo|MeQmdTDV)&77W+l zh@(GwAptJFH+hS7K*Fh5LCm7JiF55=4!pHes2VtYA(ribUA(zZl!(Ph&ZyrDhZYW~ zEIo>Ig&+JYSB2bxzLD{v+o{C$_~ataB(x)J#u5PuNOtv!j?~;;{#$&1^xR7!wuf)c z65Y?0B}D~j&WNPPo2KBpVkWPdWe6rh5f4P!-$RKDO0z58&>;kq6G|_Y$-q5rAFNyN z5ecA;6E{67OuwxtAg8bU!~G-#YNpQM-h2Ik@3)bP>j)DvmyTn?{i2?xXUHrJk{WE9 zYls1cDGjy{@S^?F7>l|r89|&BKrA&5QG14*pi_&9jx(N0`r~d`girJ(7P_L6qYA+R z%X3-5-D2P>aPReg3+V>-Zfs|l1j}P~9mQ;YrZ^KHw4m%3h^}tGT3DuhiY=N0Z+&)< z3)gH!<;$T$Olpqx?0+TgEjk3858|$oVch`A^4`|sWQ$Gva&>K(E_axa6UuqBQ6`E| zn$07+b-G(Zo@slU%SQO0pJI5HGl+2SMR-W&CgDwrBqKVdx^&>Hg>lyNPf1@Ji3O92 zOSh+E;a{;XWvQRJnOq=HzbY&|X_7i(+VTO$lMTn~WSITT$AFWL@Gpdz2jBM)VgMjj z5W5#-Ebc4IY#t<_d1&T+D*J0JabS86?!D(rG-Y?v;axQafbEj-#XJ4axmY`VM^<9K zin%_-CF)opYHbMkJ%LzPFA%nv{MdxSp%YBxFgdl;$vXsRrw^~mnLQQhHlEb1Jf{gp zqwI!ICE5-B9+CPk@+^8TJev4%GQHkA?BsnBnWFpt)+*;YvI-hjT0_Y#!vMg^b?o%% zT8wi`iX9UnOx3G*(==2QM+kj?Zw3BBl>Vba{oH2!xvPwP9>hQ9fm$VIBb1HLT;*JXrl-AK2)^;--qik&Am zBtY`Y5?E{VLj+v9C9XrWy%S*Nt{P$?(o5xSyGKOh#t@o@B-Y1aG~O)aze$p;**X}=v;|l}&K%Ay5NcpR zl7Uel1*w{k!6^=Mt4=-u{a)b)`%tSih+}_6_QqulM?Zt7f5$b2Z3s8Xdn(WSH#WOK*jml=$}lSruNU@n{0)gNH}^YKVk4`X5q!uxTT(XCnppISqI}vqeq+VAQ_`BecS&IGLc7#`bripz$vc2 z)YYr|hyc^9(e~m{S2kC(XNi?QS0QfIr@qpX9Q$C-;vr+2Q74rg6ZF;a)LF|*0T%m{ zQNwGk-b_07VN#*U3?GiAgkrbgdNZ%NxM!8XduX`MM9`-2Nz_PIfDsy*{3~;U;a1s+PLITEZc! z^(m3`?=DOPvANhrswBmd89I*|_cOvM8*p&}YPIm_8<|pCY-=^5Fz%d#KQHRPx{NW^ ze)QF7c%BWfG6Zms^XJ6;^eniO+0;~IWsGQYu3$pcmwz{s__{vc~k0<+=1S@&nyQjJ-SlL9IoxxqOR<8 zd6{@NH>MYE307e;h(9xM$GgY(;ztyi3XD2RT&@-eok!8-CHv=p^BFg$2$(!vssO8k z((fQecerPfi#B$>j)5}th-@VP;_^I(Vzb0mG3D|M#0HRfQ{R!=yRakH9t(9C5oRb7 z*B!jC{I_%^pB0!pRP|i!!15#2>aeGO3y9|I5Rp=YgawloHi?Jhju*4^ipu%}RrC)a zm2XA?7RKqpo^3-PO|<1}45Y$4+yK(G;GBxYVvtle_Am*XXy4sP@Co#37&bH2ERwHjLXhjysyYR=eMtzM2lmSMO!Lb#UA0 zd3LLMP9qK)%{rQIGw%kmBL)LS?IqV<UY_W* z!t-hOC2J#CptQ6HHUZ#y%-DthShQ)dmTT`1tw1_Zg_&i-@EhZZFhPb7iEzP88_}hT zGQSzas5L^W1Hj?8rwBllx+1JSX5+-W>zk64dELG=w zCO6?EpaRdAlF2%-QO5GxS99NZOqQQYlt!-gX+-#*hyk9X<;En=Di^}sw9XJzEGG^Phv@YZ-TNDR9^JC~#-_ zXYyMn%K@xpHz73Z0$67rT^~^4zj_R4L<=pLvn81PcjxY<>7m!T7LzAR&EVnJp?qdZ zBP!t>Lrh{zPCO4IIs1_mSjbC0WNq0Y*~Vng*y%2*+`|;fe$}*tWF6S?@tNc~<74?X z+0=#-wM;OQKITu0sicqkT-#Ppec1QgB49&7KNxMkEqhL5!EV#AL&L^hU^gT`5Kz}< zm$7PEgs=-};0ZcO(d29qoG`_ICSR)RwktMol-rPTYq`!LDkL45=w?odt$~y4<7)+> z2mnHdf1}NM;h}wa?E>-dAV_}ytIRxuqIOJtv&{#{9Pk9@CygOy#@HX0p` zQMK5NJ9uPf<#fSXq>Z}7Qm>F?S#U5*q0TzT14*BH*<|-X#7~Y7^O>NG;Th<483IOQ zDYfue{!ozN<)!t&Du_jK0T2-Qqol^kp<6>Ov<8jXYiIr86b#@qGSvmj%iEwj^V4;u zX3`E^7^*do_45D4Ypp8QbVEPE#CXummGwC^%p5k0*BA+nCI<44UPhuaS}bn3I3Ecz zKIxguY|Tx#6HnI&_d(yWY{54OaRR*HyGO2=fUL<8|B785(AxoU!Ebq~toFj%?tp6} z5R(K1MYg`M@`Dr`Un{g8vHc(mNW%hxNFHU=!3~@4@7Q?}er9C$c}tuBZPL93&4m@9 zu`5XO2;xIf@g#FSn2BdF;0dPq2fH1QYb%--kg&^4n)+{8Ub~id++Jh7fCD~NqV~Px zq4F)G_8aKxY~#OhJSAHK-m55MX|I3dwd1}YBT81Op}1DHH%XfF zqKAr$tj37Nhlczn@T%3+%B(rJS1f_5?W#jaH@%aLOe3_2wpv;r=;czq@D4}fkV*%7 zI>!hLgzbJNT@78fG4}*$Jz%IwZ551Gf);n$PSBkO(T@8fZhGcR zqhJjyeh?6mHO7h$TCA7@imRJHUedJWkzPfyG%Z5y%wc?uC+E^W+|`~BE6!948<$WS zrZFUT<>fJQKIuJQLcJz}p*-}?Chbc}%_)(^YPw_qo(`p-3Cyole%3@rC4OW|aRnx; z1yidcA!W%X(mkka2SD-*W%;#C2maKez%$}r9DZ2AE+aMZC0h6n6o7FCckK)o&y}Ne zx{2V6`_@uwM6|dOCrEmt*iLRcO8ST53?`{FP>9VyR^1IHAL@rW<7v7(Hs=IAO+$u(2+3P?TKSOd#QxbxDV-;9%c zES+*+q?}_F@o{gPEmJH}-Iuotrd4WOqMS={InkjadouVhTDS+5Y>ExMg`U}#ZoH!P z2C&j>$2jbxyBjWg?Zrj5*j~FmMWktyPM!ZH5>()hwTo%P-Mb$2H!|r6aTY#8-X^jW z7;aGbQW8@-03Teul3I3?Dsw(wxQiX4T8lVzL#y`Yw0tnG5=gyq z%2H!)v?Vuu+|-2=VGi*2hTO_Yi<0F+nB^v)S6UvBV`Iv`eLIkVF=YwZ^AICkSISaC z0Y+6z{fH_Lj)U1iAs`!wQk4G_oqHKna}# zsaVtkXvFy`gMMq#n>7`ZCinynAv6MzT=2K88psk{{_6sUWEYPW`+$xHEFz!&o$fB& zgVsVb4Eg})m(+;-@I+7gywrC>r9Pe5KUJSiJ4x%=Kc(mdcW<`k{1X0fl@A3xf>R&p z%FDXZPsOe$eKjuFOPN?`=6dF})}Ao!**U!dES&n|^&KYGz;K))S9f#&O+ENnt%^C4 z%>P^MBOtlt?SqDqvFV9vMN;uow8d8weGf0T8Y#9afyU|U){aaJ@+=wM27WCZl+{)o z7Y=3@PNh(8b}~1eX`M5O+P5F1zH3poKQp*=HmpZM?3zxp4gMt6yH6>kC2^xBYci(- ztfZSppgWQAqU%R28_4k^MX>59$x{w7_a> zdLUnoGg$g>qT4a`B;$|Qo0x9Mhy$G+73D!{(z2%p3haXC9vS;CmhgtaG9>Zm2dmtQ z{9#{|)f?NDn&){lju}HMIpD7^621-x^xt9f29oNDfgzNj@x-c}GszU8lvMs~IK5yi zHpWH=5$QOY=wo*Zvaq;xNghSvaMHngKJJ+rE+OvFk#{0tiUx#C=QUd2Ds0FVh0t#w z1WoB0(b}Zh<4Ltq8Z?4uXB&MoY&2QJL^VMwH<^{Z?QmBhH;yCH}tK9IESOI9oQ^5D^qadxaNb& z{w8^f&=J5B%#xcrBu|$a-Fl?~WYw>At@DH^Ge>wITcK3vYcEWg-3Xo9_QTb*!ac#u z?;V!eZu5%oZ{OBOLf&qzZP}X$go!kL{lGB!g2eu&cvI512UeoT%dx zH&CyW;K^3XdGF@_z)N0UP&;x2)1J^vDw!o=`T3&5RRqbz_P1n%`0!W#>`I&qKbP+e z)~g9s1*!I*8BubZoW(H#%Hrbs0e5j6#k+Yo?$2r`h{f@jqMwxr?b;17?YNReBpCS2 zo-|Jq7F~qTvlM2D^c(+x(VTUYsN03HZG&M-`&gUKc+5h4Hx-_i2qpHul)aK}MCv}U zwj2{i1h1(%GHxtjHa6wW;#zhWf0^GTlEL6;2Y#Z+0*};@^huuP3$-5nR(dM{>sy|Sdt?q%X%}$eM?y4t&uE3#{Vu{ zZ#|!XS1u+we%`qOQXEgtI&;YM02znFw-lJkWM7l5%YEEZ47k*#=p3Ut`$xICQ0>YQ zov;E^o~&vE4ymyPr&rqCX4L^0!Z-!XRaYF^Wqw7`?Y@1wa_h1EZ3-1^2KMHe?SsV{Dl*s?Jl`co83qt*eh951^6wCw z;|Z~6ryg+n%)GPZT$8f?5}RBrj`HE-<*PpOQn*U%M6j*%aFNuFKxM2G@kVt2$WcVj zjTeG(?j5zD5JvO9&-X%QQ^b|RME=wGZ<(+Ot{td-9G5_0ZJ5k&z_7*Cp9I$(CGU!!BH@VS zC|lp|^Y}(nHokhJWV7IJcJ!it26lh+{iIlfmOv zwap~y^rY$?(!55Hw|P*%ldH!cXTV0kS$8G?0;oPI9!`1%<5!JnhWUZ!Fn5{R)Zhst z*~zvsgeDB=8^QR>_eHA2n`01*`3P(2dcPA(njBw7wCrYifpVn#$rEPf6|97RtMZ)B zqn~6Yf-;7d5|!ssqOF@nspIc*lDWvc(gzm#*HJhJQXEA{{viU#(HBIBdP>_YyB1;s z1PNH)`N9rIoZAf&10mDmBBcV|!o*nkTktrkXAmw$(nY{Lk&0}PkooZbNDB?ViV!|p zq?{4mb$M7puIc9geY2BY{jDl~iXX|a<@EzB)xRXFT}5XNP^W}u^=V9&HJzYiuQgAD z9zPZl3PMZVgEOUn;vqH?KEz}D-$IQ5@DUf6Y%*ad_){S_kcSpX5fhgfQ}TS}q_>d# zv@dm>frqj))ACY!@L%l3GG9^k#4V1&j4WRShN%&fTVozg?K@5WpWYO^!YK#RMLcsaXHx^5ZCm&0iu+|_96`|2dsbxNvwaW1yzAkpDH61U`H7jfRACCOYogLAQ4t)uV!wz8b~Yh+ z^!d!&5|w-@j`0>VhDrBL#4*$;+(8N57FXc;niPx}QF%yI<_#QOYb#{i7N{yGuBU9TdMMftsX z7hPpX3Y!8q5l(xb$UG<{6&yhYgG)-gP>I-H&5c<($+F0VO>jI}9$@S!^755yF6CMb zD1a62q=QJkR+#dRLu?Sh6G87Y0woZRd6@1_<-TFk-}3(MM@Lw}AxP-1n6&lf7ehZB z9KS`O70fUdkA4$!1O;1O%Zri3oP?=MaPnO~yAL}Gm9;yIa&f+VZ1eDvotc!kJj!E6 zTjBuwq^2%UH`U#(X}g&HWME9u)%)g2t#NXYVUU5O1~ARKef9(#>|JFR!~+6mF|%WC z%<#_~Ec3FpTu5QJ)Ty=7s;eQaW+OzJ1BHMOo-*>!N+t4!3}EM>5BgMBF~U(rQ? zS9*SDqmdhS#0ltxNG(^e^n_9H##jR5cK*A{Ri#V4UPt41&#VVyURtZrA!K+-UicCm z;;HP>(1d1ryC)hct57g*5e|aRJun`U@)s01NtYg2umJ!r$~*sJRD)#w9?*p!>B{}* zzFmM|?gZyZn;-1XV8^h&A1>QHh1DtVzV=_Ze-Drcpg%}{3xweXZzYSt63Ax>EoeVr zvPX(dL4KSw`wNXpU)maj1(p-{m>bYv;vOh~tkpZsjjS(q4+KD-{@k9?`hCY@pNDp@t7ZqU_2RyCmDv}z8)Lne#)vi>uORHB@!rQG4OjCc@qRM4BgO+C}v#7b%-`K z_4h~FBH(Qk^0B4IJ2^3e`-is8(BO_yt^?)5loG&eaf`tb-jsV&+n5!1lGqm(H#4<4 zG|t&V5s?ObwhSQ^=vNEmt0=o<{4@D6Q5Pf}imZ z#&GSVXACMXbokhUBTPHVI8RTGTpm+ZL3$bG#IafBxwa@ve$0WOI#VKUd8%OtUNY%O zA{#JK*w~P5gmhBdfrPJg@1`W$M?lt!jdBcC*K|@ho^Jc6Ro!T#e9NC%bMVVj>SSOL z=!bSIa9{}Ohxhn?KxySx82y{G`n=BxPY{UpU66`Lcb{yiNKUE}g+YsfjZ6N#QGsj_ zbQm-tTFgrY>#pk@Xds4cgEsjfP|94-%>ocrTyq06cxDAHZ{AR(<%jH&M#Q-f%$2S< z@;ISg7^oVUU&jZ$7H;6!%h3Q%*$1oiqwXo>+ViZDR}CUf>Ex z{^H>bS9i_#q})oMp<6Wg95_T=kqUs)XB2-9FR%oO5%Uub2Gu5R1^ST)<~A9Uq)`~a zgo2k8hMR0$Z@Qz#`_Z@MY*>vB?Ua^NA4v>6{VqZR;a+$#y;G$TVfm~wQR%}yu>q2QP*Fh)HoM(5^~gBr6foYXn@((UTms12}^lrXA0 zsgv?^FXE3Lifn)z)uez!*Jjc==7HEVGD9y2OVNX*oIe3axU zf8!1$C?Eb~Fxj4nMzm_W9p_a3TxqsXTuFeu_A}jqIkBHUF$ly=c?j6N6|w{c%@ZZG zx{|9^!i1iwc_AI+$PYiAvEz~aiMZ4jGRMiD?_Y{`)O6A}$BUKy z7rJ$vT!!AKHV8Yl1p+`(PJV7n%#NvU_H@TNyyd_{KoH3?YR7HT4&ow4j`D|u3O&ZS zT?>RVh6YWwtx+r&WJU~W9+_B+_ENcpKCI3J+zzv1DCE%1OEVXkFoyL&)49H6X{|U- z!tPS|QD7OyurI~{f0cX~HL>E7k80cVk(?%08SM3ehL0Dz%n88TFwTQH8=m70pIn5S zJ}55JVciI)aMXs@8Vs4Fe6>L@)BSt8IP8c(|AkSs6uG%-C)K%Tm)T-5l8b$pErj^u z*M#_@HVp~-1&W>iLrk+EgvcG`rsM&Oq8Iz4ZI{9?I7P1(GmK+YzNc`GD7*x_$()uc}?&9h=8IHwy_7$Vk>y!E)nlAjmjR;8#zLM(&rn2A*=S;I zZ{oKr<`~gTLU@>j#bSuI{m)OfxwjsVY>zySUYB%)Q2la@x<RGCc(yHy2uc)hq!km zEGPQr@XxUnb3B8a(yblc$zMNDsm@hIF>9i6vHQfj8PVr&R2Qouv z%m8qzk3?&0;@)(oh3p-lG~pcm9nFyjet~Z^N_KL3lI$;xQ4DIo8_Rk~9f70kz-8Dt zo{l;aEe`%L3c)uTwHN!x!1+B8%U4@WY}#6>jg2cU7$&?p{Wb zCa+?e_aLQfjp)jBH(j~m#*X_QGwKGNn_1RtSN>WpHL580?vrVmUx14!s?i|g?uj6{E@JIDL(Y{);MY*h3*X9rZXQBg5tU~FlX&Z< z{1&cRZ99z6%4uh1_ny5KUFr4VfCVV)k6t{{nJlTetR64#)4sg{u#6KGw^ zwGKQZ*3ZyJ1O#tprJM7$qjWDM7ebs$RNQ`f25Ykf%dsiCO9B{pg~ z4Tuv!`yAyHCf~K5Hk1q}yYig}+Z}A!C+x24l?)A82)YF&__7f(9#;Bm-46((6pSY& z^_Wxe7~fIzIQ8&YGc&7b(Hsin-Q;#%is$o$F}dzlpUjrO{!0GOK^V0M={~G0hN%Ol z8)^0Ul1i1)!6akD=25(KP|br{1y=^)QMdsG!#gR}J4-wZLsPWt(L?9{!8NXslW7gm_Q=gj!Hk_=Crv#E4X4ScLh&K8w01B=m(@Km70c zkg`+R53y!6!71i#^Wc4mDbuhJ>^`bePhR04aK!`cyLjY*bL62 z9a_L=a6ljkLWa#(^Y;_i<9A=;@M}oKO;D04`(M%G>%Lq=V{RhN9DpEK$%K@#oSs8} zb(2RyA1;p>?|-fMVYl{t{HTk@d6jjyL(g-DpFrb7MKo7mk^mjfA>wlAOX-0sV?81k z6crxy=8Cs83@`6a!L1_NnkaqbPt$Hw(g3+L7E85|hK~U_gLeS7-}A2v)A<)p4s4;y zJ+hE6P3eu1rT|dIBmn=q8q%odgjEn|z&>ctqdCpBqow9%Jy)wAVrD&jA*hPHhjvaU z*2EbFU|Ro5D0|k!c)iEI0xj9s(DEg}{1@70-lc&P8$18LAvKR2wh> zUH6{6ImwXe>Y?%6XJO@I%&MEmnbS@H*n$t*XbTp4$UWi7M~#PegHO;yj;smT#W<(t z$=7$FpWO;Fp6^Dxp#4a{Fkl9a_*P-E*hAki=(YaK;aYz&cQW1oxA~M3Z@bP`cpuUd zeC?vhdbikM%hrk~sP(o3WG3IKa~xvT(5h90x3c?`pO?!!vql**+p;TQ`TkS};KB88 zojfHUH*DQA;GZwa!s?q%!!i*}HW4@5(7@I8|I$Szj77jdo22Qo`25UcW zhJB0wM2_-RGh?#^1St_V-x9LgmLtbQm1x?2w!S^QosU^R?@ucYzx~_bAXTbDmY+A+YTdb%YSGLCDK}I@j<(%p3 zWLbxsQ2n+_!|f-Xzr3jXH=W3$P+Im>+0c9T&y zW0P^la6(}9e)oDAe{Uqfe!_BN#{L(FMTPCyqE=WCqA9^E@;_)cQu3nqEQ(#N2o<*z zIHofmB72mWV4wJ&ly4jra9H6Lem2T@2NN^uc#mxu*;C1qXyv%&Zb#g!=y|fCVMmG= zy<%0`Duta?ElCr*QX<74w-O`O7q_x5WnWYCQ71~NAAtn)=|CH$uC@uB znZ5sJeMu7$4>pGLn-K>?VIe^y5#fM{00E;@PLaXMS&U~vL#bbBc-GYE4&h_26sv~{ zjfUCi*97-;dOr5OSnJaJZw24Ycm1-+QV8AnD$eEgy);;j%cTqqP9^^=6$->GO*ZsvH)Z6ehYJbPGZro%&Z4mYsvxFuI$7F{Kww z@H3!5|f?l1o;%CBEv041e?|5a$HKg`79iB`|*mCq55p#CWM=-Q|SK&*X%V57d zWhPb~;EZzqzqZ~2I*uM$8#XgDGcz;95HrNg7*ov5&X^rDjF}xfW@ct)W@e_C@prQK z?%sF5f6nPqtL9O4sU%gOQAsLi=pc^x03!ivXmXr67AouIH5SYTm@aMF@dV=xj1$1x z1Gs>q)OgZ9q%BUg@a(1NQIixNw(J=iA#=hOaZ}?#H9;%Ef|NrLif+-C+O$s{gG1zO zc>?Xi@xxcbikT}=v$&v@R3~ zFQ%_-3AvBlqoeNO#(ZpBiMdA(!KVSb)$Cgn$WiH`UY(@kAZ(Pi$aLOOd8iGZXtd{kn?^+SR&UM% z?pNeJwsIK63^6xfQF?1xR!Ci0k$R|wEd=hmaO(zmnHW}J*d0FPPj>v;TCoK@#NxaY zKKf{c-HVqD+h15UDh?oFJcP2msN!XPd%)*j{XrZC{;H1koDtQLv?csQ zRA}K!IPWTp?OHPBk{a=S1ko*Zp%Rg_*JLeALUL$*NV_1b0g(wbOU z=4u`oHl{K&Hl~u@x4YP%6%s^|Pv2&VK~W->4JWZvP%kBN+i65yNoJP;$KfRI$D*mkAN|l*OTSevUZu8634`+BHJ72mns*zRI9s% z5MwHra&8ouvW#<^OnhzflPxxVr!e8eX!$t{647YLb;A-neOa4I%E@zhu16HA#M!dz z@+);H_dG`&%4}Qoonrs{MiC7Xn_=g5!c5V;Baf-OB_}yhyqup zrtJZqP}7twkct?yRD3r>?h-Lp$FgsuEx3SR@4RbN$5{v6%DVCLBU;1qroTAN`1`tv z_BumV$rN@Zqcz-TcUOtojr=K+!0!%RITj2-(JL#fryLTlN+Y6xw9(xy&-(Mmp}M-d zTrB{uRcooV21C0x!0d}wN4TI0ZY5!=&(@;M+bvW#eVahd6!s1=Io|Ie^C~+Dji=Pd z^c@utQf5nq2G@#JcGHysk}Eb;Ei1S>=�O-4Ke!drYwGkx=9}wHhT+p`_lZ>O-dh z4-uf3*C=tJZf&7!KDqC?nyyt^-yJOn%r0@%Bz;atqUmivK-3>Zt1R}57mm>ve;Roi z(u90{vysM6pKB`mu&wVto1iit>gZHNY;XH4!QD6yh~+=~mkBKH!}s^HGEl-W>%9z{ zfXa3yc}ri_I{8Q5yC$ z4ky{P-PbRK4s7aH2>)Q&dUmgUP$?g)B2^_f+#o*=SEJtXF&kowy(w(u^xHcF%3+jo zgt+HnNB5GO>F>}P02d7hryAMh-*4osR=Pp`hH2$N0WLVK+3`QJ&x3OAq=3=UoLr_A z7}kX3Y&e(v59#oD!&~+y3|P|@h*vUo6IT%F{WK&J zG-fnWkHum5i$5`;B7dR)ErUldwu4g}2Ki;-L5??h z*B#Gp5&+B5l^x0vil`>A!AE8d_W;(;aVVZ@@&!|#%K|RLWKxx3`p_gGU#U)H=2x-^ zJ7+PgMWPfdegQ5=h$SaqU$#n7RGm4!p>cwQ6Jl|J2h>=>41)G2cuq?e3slB^dkza& z1tV4<>tOcGw<3{|WNre(j44MZo^M;rxR;R<<^VirtTL8E>xW?yW=_0Wie(v2(Xbl4 z+0h$o<}4A$##?Xjxq~=@XIcNj1IZSZM>MYODw7Tk(hv*6)BbDN`>IyKEjh zXn?&M>qX$+SI{^}4jQ=w3k=pvbB^h3nydBYK6~EpyolsyM!{AA^FP!UWE{!^2R8%d z)l@Mgz2lO(u-Q4VB`H}Dv?Wh?4Wy{TgO_awwTQAW7#W5NCD@&RBNBz@M}ZQSt~){ zc`sNG^_wR;L($HuNdjhHMeDS}pbtd?h<;|_Yx)O4MTG<)97)4fr>{-TV8Ir3NlL@x z_)C851^M}1s5bm8kcup|6ulBrjUM@+?cDRZ@q_BY*%vg%iWP@ zx?J3Cp2JW$dMT-cbGktd_L_Sr43G-Txw^A)9%XWA$m{s89HUAxN zMRVn&k5YguT$o!}!re@Ow{pQfIKLK~AQkp+1W$ig+#3o()5)3cZQSh$Lw5k*%p!l} ziUs#;-0xU%cnZrit*KY18<-Yb&$*>us8<<`>sA_*PhdrOit_{TqU;PA&R8{#_RPZ` zw`dvtEz(nc41nJ8bTd!W(a}Yyg2(~!uvwH{>u>t90uU{>9H4zGs!@rSiMs>}eL@Ff zk`!#@52l`Lpjn*-P~QEJXTNUo+KeW3dU>Duq1q%b@N1)mSPsPmt}K@3A%uu#C_KGM z1svnJyh|mBmn2T#p2nAC9OFj6X(!1Nh>9$ns3>QWOFmCAzoV;qRzL$p%jjTDemno> z>1lnPN@?%En@`Qw6;4$nqPJsMw_l{@_4u5+5I?2YT>7G7YgpEvoR@xkW)p@Ded`;y zOg=VQiVF+ty-I6hSZ$NCYYX)yllGjffx112HiX^B%6E*`7RB7zaX7#9q%&6hbO@f( ztk-dhzVZSi)XfkZefc|py_mwKwdEw#B3r*n{Q7gB2gUSP(wg#hqDAfWu)Gz29KEAn z4$nBgzJpm`&n<^~rQ~3LuScrH^lkd(a{g^hulfgap)^gx)zj=A?DE@zRQ2)OU`!Y! z#jns1+T-g}4gCC7`l7LB(kPF3ICm0zbyIE%E!-$)X7{J{f@tx8hA1G-Ro53Ux${QL zUgBaC>3~vF1(=oIs%hun-A3Oa{b}Ks&L`5w)i8c9+vp*mctR`W(gj4aGZP>|QclG_ zn`3=GFdqgNJ@Mhe*%I4rW~KFDoMU6xjOZ4WB|*c6Pu5gIl+-Mp7@%W)*#IkmMfth# z^`W0^@f(j-jT(Yle1zwCZUEdDrwbHoqKb@$uE%lsr$E3O@z_8Wfu#9yn~T|4MDsBu zCw>0HSek?7n14`f5qXAvGe~2KuZN5>vKr@RIu@4JMtMku^ne1eJWKGWlC8h`4h~4n zl~(vuX+)hJc2T;yblDu03=l>0SymoK&Qot4e$-MFaGv2=K~OG3|4pj!zQ#p&ZSqT5 ze5Nae=79+g~s2_$0deWOt>ucD14!mv8J(q$5KhR4{w*38S%wMo+`t-YFVn zUV}+O05@_cs96pb=F$sdTIP+q3~X$pvX+hgC&*Gy>6deqYozm# z!x3P?{UKqq@OLp{-~|_crvW##P@*n8;fT*v^-m8=&CGt5-0Yu-&RDwaYCxyqpRRNa z5+Xs*&(+pmlJ<$-Trk=1Gg`Cc48HZM|7@>m2K;o;L7+LB#}G}O>uu=%VL~%Dc8pNX zwd^f-1of<3A^zO!lHBvMUDmpvrvb;+oErtvde*-;OQi<~UsgM3Zs4$n6fB7j!u4np z&IghQ&A9N= z3^@Kpe_VWGUfriWkpUqCowAcV!n0yJq9g2t5&lyZi;ZtdfJjdC*4aaM%RJv8*~Gny9Cwy@h{Uo za5oU4e42NaF>)p=kpPv=j~NlpqfNz20{}?z9i;b=Zr+{wL-^16t%^&`5i)vjn=+OJ zNfU;aT5ISpbni_ukhfs~JK*qE79wB=@4Dl8>jJA{2h$E@foV`vyBVB~*k#eQ#1Aqo z!3a&O6y*)SofUTyx)oL*N|=f9#J998W({;1O0zpbFPnJ{v>eP0dN|I~ zMsJ`k$d_#{;^%CyNGeKwL&g+l!cdUSjs0sS8~NS&(+1Kdi;^(J`SAuQ`0#E6Iux39 zkO(XSbhL-mT^M|PIvH>0(7XZS`&t*^{(56Wtbl$;>|g(1Yn9;y|Bep8JHU;kiTF*}s}XG+^* z2=Ao-=gF|w&gcLmOe8-p0#FeGNF#;-r%JG&?r6RCShZitOS?cy`? z2VIcvpt}CpJ-^&(b%VLP_uTn){W9z+g`hRIWbF~#p%%7@8i_Xivo`td$LSDcp-9fyypf_hv8JNs@D824Lc`TlI$G0jI?AJ)2idJEw z6T(DCT)Q1sj7o1J(^}A@m;q~$J4wd8$QdL({D$4G$%9p2SVCWu5fYee381<@Ce?hTNLxXo^`GHHq=)6&r-z7FL&)^-!7Ubsf{mU$TCj8a{IMNC53{=E$&j* zDacPQHwLz4tz`h_2{J^Yr`e*->f6w(Z6L=L4X0^5M}(-_uC(R9&8o!{4!mb|+cO#L z%oE-HY>S|@vw!(0fM)w9wuf7*R$ZQMKVskDzyupy@yw}?s z6#kO&G?Lhe7%$RC&E0yNMF#|T^qv0h;^Y*M=wcR3!KO{6B!q5sH#JIw$7h09mq+4s z@~2~>7^S%GjC;JQyhaxdC-wpxX~3R?lR|Re!K89{czAG8<*ceEQ^<>$Wk11Qf5b-2Vt30h&e5nWMC>&9<=6O%C+?D@Q5qh_F+Wj z#81r4*Jh~3%~LFDw`I7o`!3s>CV1~t0Y<{f;j;u7b^m$LH^jw;T5Igm?X5XN6qXP- z5&VV#LX>S+9>16LNP9dL$wb>dcA~L$LX?w0SO022S!Mqz>qtgrJ^DDMLIXdK3)k~v zRd{u;*TPxgt=h6#V;zkb`6>f-4>CnZ;uaFm1YT?Q$+5oG?eCe=?;=lg)F~zJUwCwr z;~99TbxjzP>8A^8kBp=5$e?q7sd8FF??}UTxrc_ahc@cYz@I-(VtmpMta z%69v!%CiUfSvA8!6-jHF6ln{EeCCpULoj0jfFyTK!q*0TDK(k^zZ~=hM{#v9<@0g? z#Y)vrpX-hfYJJU-bT%rTt{PTT&*5mq|E{`M?;^}s?uEP|#spM(a;)-8vvGx7>6)(L zs5sr#MJsj`;LWh-Bo~fMNUeV1R0|%fBI`QeC08@xf{n=Pm91_y?L{&z8_6%}zO5K^_6%VWC?g}dAB3%I*>|Hmi=7Mv1T<=Jp zXst5JQ`4XNdhurkNz>F?I zKd07IK6h|n8ZNczQUy) z4%h`{#7tT9t;bq4=4_O=n4j*X8PV8NYVNFSK}l1B?!1D&8k4TAahaVZhrF$+cbl9y zLT}060~SmXI!`d^+QwvPj1-Uil19K7d>s{FpFSz}=SnYP3#OyIU@EBi03KVjxYgRz zM_N45p06SV)@3>G%#Xca2r@fCBT57}$?zfq8qGQ_6V>+jVV)KT2RPv$*@Bk`2kN>; znZ@Qf&>tJ~(>|z4DRTDmEMIouIcX7Qjc^G2jpLnL}d`_{KJiCaNJ??Sy`@8 zE4C^FI`=LESR{K;1(CY|7DAVt1VefoT_}i>4tvC3?i8gT6k}n3L2n`D3n0v~F-s~r zndS{+T4xHty0aeh#xu7>G*Ke$LuoGSr;D5lV~wg+>2w`Fc0#54l)}7ZM|L7pl3z~9 zUt+qm3k1X3JtWLBV2sQA&N9L&Z&Z_TD*6_{yVvJ~Dq{8(6bBOmdUA2)n_eq<+d5S? zNv!+=N`o>5;I-fd1qD4aE`J1-a(if|8|0B$t;fdPPT9tCPKeI8ikooaXMTK-ImIMs z0OV5rOFf1LQ?VuIl~cY~-4x2oGrPPG*7#YnN6=1li30M&dddt>1!p2O>L;-=Y{8e2?nE zWtQAx=6UwSu)1U|9Vo-;8gLM_?HR$9wChA_#dO>BSpPfFE_-q% z*i5idU}aCd7Dzm~_CP8aNIbLi0Q-t7tXB90d$Z3kP8wwp|yKKU|l6BsJNp06{~pNH;YbnY>(qbhqK2QsJX2id~^?YMDat785-P8V@>)w*_p{w~FQ>v)=KBK$_E%W#_ zO*5l`iyid(KH}11l4!zr6n>!%cCC}P-FM9b1RU{{FQQs3e$_dt9LZvQ95L|YWZboJ zps0Xh4J1`-+b)mzu;t)g{7s(rXrQt?mkCxR{_g%+bOSN?7SwMQFx6jc?W=qZP9|=b zWh%$~jqNkVZjP_8((&2{Jq$jUGg!%eXRcsNZ^>N+I~*N?2&ZdhI(ECZ1GBx zc2r~D30Unwsu5xd~~DAy19_cd=jJ%h@#%% zu)403DFO+HBmGLOpYFSI1r7y^iGWMBi#k1;4rqXXn<*ud@}o`^KIA zT>)(!Q|Bj|Szar!N1RD_;*L}KlDbw#lQKuAY{-#^xWXqzc{1N zzP~9=1Q72Jy)EAi@=r=xn*Fb1*m08g(0x9RYqx_0##fU7q;1XY{&mKBovMxE%oiL% zH~JHtJ-tsN9#^KW0ZLum7^0$55me~XEGVz8+~v8AF0w~*5Axrq#KmHIAI5q&Od<*z zKI5QFBIip#uR3LAI%OU-okbfMw1Xx0?I18LQaR#M7&hdBKO)H)4~uv8Izv&N+MhX- z1o2au$pJ>;@`i7Sz0mmASK7Jjr~jKWDao9iJP zW5B1x4Z7(_y%>cf5m8faL(mHP`n&tT|J#c>Z+9l z6KxCQ8L8fn6n6&u8CoUWuhpL0!3i$JV-|cAHIv~&&HQBF>D=lq`b4RlFI?m}ORq<;KSo%`Sbb0bp7!?rbhX zZg|F?xkEQi?9=awzLM&On+$CW$(tdzSI{I6b2Xgau1*P`kmDkjKCeHAG8}VG0yhE% ziAk<3k%uN&gpN;TTSMLvV|qw>K*;Hb2S@Zna_iYhfDzZKryjx z_^(|3b+W{{sk4p$42+SFg%;<~NjkQ`^$K=?jv~4Uj-U$M3X_g@U6^*$51N&529kAU zQGan@|4#}F^ibxRvpfb{x3o3J;qdpK_s;N8^6Qd)7Gy0qbV1jX8ZS9 z#KNEqTMlS==Z8{;wirDuF1t#TUuHv@zBQH@=?C=1Ebp8%Alqzl5>yOz*5gX36HJ5x z)N!}>UE3vQnm14oj*53eu`|^5AS&F~DEE!$8k%%={Kyvs*@(_~NWpO;!VW?W*Y=EP zexwxDyQ^s0Bwd7eZb!|95-e!n>$niLQSr2BnoU}F%u(AY-Rv|oFVzWk}Z2*4X)hoF{2Y}fq~GjBzU+cTlUvkUq3IXL?VURD`aAKfKnn{ zstM$N7Q82s8xz0`fO$~BDs!^^9Rp&G?uKUEhSZV_@@4(StO-VZ|Z+6WvUU;RNJNP2IvQ}!}rsTm$ou1|=#d!$uS z@Pnf5plD^-TjW|J$?9A1i_{TGfcCFHwotB&i8+v>43CmkehqSb9ezbjXpSUUFLs_; zi)nL4i`*%u>+0qdW!2SqV@T4<)pl&t&P1mqR0-NO2S>LQ z4w4pS?PdKXP~f04#@_hZiJ+!2QdS1RbAFin3j3e^a05n0*O>gnVygTNa8Xo^44`29 zm&puLm9?Asg!0BEy~E*RL9-=KTpPrPd`v;0qgG57L#A9vlXoCr?b1-)mT-3Yps3r3 z(FN+T|FJNR5c(%ZYR~z1{@-H_nM+#lFSlp>zEqj}MutA1xYoN>p^{KU2eEyLpd+7_ zJ_V7s(EH$?vF4RICXvo4gLeTc7h~Jqd2c+)+C)Svd^VX^R<(%onpjeV^ zHn2rTK04uG_4-vK`KeP90K;$WmtaJmRl~

?s}pv@t@c+=^BwqL}e^&TanHToP3G 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 M$^G1{`*s@bH=>7|8UO$Q delta 1269 zcmaJ>ZAep57(Vyj=~iCtwl+0gHc@M(QcQ9l*g9G zB2l6(oW<#j8vG60m}p{hnPg(FGCFK5JVG+-r0G5v^gaYXP@OL$w$WHf?Mz)4m1(Tc6bL@mtd7SPevZ^us#F znQtiSM-_ZbN4?dQJ?xCi8Xg(4)iphc>1o@SkUr+pk7bTsYlDmb|j}GUprnf`eBB}`(s!Ix3>BkJ>EBr+Tz6r02}N{q+`8Z zl{knQl@+H>#Qh@^hgKhc?FSOjT*f=NX%8j&opu%D2QTem#QAJjvHKWUaH*pIC#4ig zRYB2sq?&B&TyVGcK8w&+AB4iZ9E4g;Eet$k)B%4)W%yFT@VJVtlYq{lfI*2I?mPMI zM8>nxZD_|bWxfbSiDceFyd#m8S{MqFHe=2%TuRJ&<%b2;;Ll6pfrBSg^*U5+djLh3 z99sy&PpH^5IYo?e>ECS~$I%r9jixCD=$xP`eHi@}h|%qk9^?zZR#D!mVoe4xIzwQ< zAb3aEQT+7oIEPT36rr7>5#GQRXEGh3H~i%6cL_q@HXsxy;w+vgM*s`XaJr9Ig~!Y* zSV#~MN)!>3KUD zvW|sxuPBksH^5 b`Kh!Vd4~-+R)s%FBF;DPpUU>N*a-L=mIs2n diff --git a/Mage.Server/plugins/mage-player-aimcts.jar b/Mage.Server/plugins/mage-player-aimcts.jar index d08891b73ff3c05021666336d4943e1c1c7e8ee0..e2ce1797b251a16380d92aeef7b66216719fceb7 100644 GIT binary patch delta 913 zcmex-m+|&pMxFp~W)?065IDVdB9AKXskK!OIb~gIvw?1^DO(f(MG>GaykY>XNp%79TDNNtW~)D;KOJrc)QL3D^* z2os22rBEaRqU9_XGx41UTFNV%H%XC?fnl4%`{(bzHx_`v7l7 zCJ|;>P*yoiew%5G8k&=JvrOedjs?0A4p`wV0fx7ZM z$VseBEz(D|c=E+88Aid$@3Q1T;l!6M!(_)eIhRpW8=;H?7}Zq{a}F{Xb^>iT1v*&~ zZUF5zFFYlg7#Mn(85rbI)R@XmZp;>)Tq(!HhidTT|3E9d6~MCR z6}TqbU#RQ>E|YvrRJdp4r9$fL?z9$Mw_@9Nw8bwH7c6YVl=#nobN6eXT-l@x(m>n0P^v325$T4InvL zmQfo>ZT4c+6$jCk6319Uw4+=I6NsL!P$U7Oxh)ri`5UZb_&|IXU8i=hX&rLI)?32k;zmcoiK!D+b?Sy)Z z0v*nDsarw?)A(-wVh-QywLq=N?co0PcjeZuF4ACUfUWGfhpKJTJ|3a%>*Nt0*Z1#Y(|Uph6>Hg5jEc MG*5u-ZYD?;09b(cEC2ui diff --git a/Mage.Server/plugins/mage-player-aiminimax.jar b/Mage.Server/plugins/mage-player-aiminimax.jar index cf0f8c1d4d49a9c7e9db1dffb08597a104acb60b..d19f3b26f2e33e43327b84bc178389caf54bf300 100644 GIT binary patch delta 988 zcmY*YYe-XJ82-*VbFO&|Zv)N4j*=7GDreqObIwpB74(-HIz_T&c*zhZo0SY9w8S>Q z&21W{r1oo-4YFt>#3CkPDyFy~5G749vK!BqE zo)F+SWjE52K(}3|tk>MN*C9l2RMbkfosw%KX=yfXXV7ez>Zz&TAX4l2+j*nT3TFj4 zNO#+fE77Fe4*5hJIc0}(LWVqtidZ3!P9f2v<@YrT5`Z!uoZ(9x&AcKq5aW}stq~~& zzyj2#$2flRGbxnqI3qkS$5xY`%lWQMHH&?T%EiNWwYq@D@(GQXNNl^BUUT+hbC(GF ziybw7*k*P=AQ2yaHps9M7?ZG381t!9l{&{gqjs-|4O`Uk4b*W93^wJqO$giNG?;0P z-VORuKbD)ryG|_)J-(Hl;s_}#ccg5ml=29mcUb{w*9+5mO`Az9k|4gpt z(c=L-(^`4PW_kWVMutaRIRA6$$!0~8C&xHpDACS68u)i#(>goh>4|aotOtDcFD@X+ zFlv7ZIwf2(CHn3GMwpXPH?Y{uB)vstHdJ4|5`Q=iZw=wzM|;15z*hDe95hGbzFlU9 z2!n(g8B#&O1|kZc?WLo9cLYGJR|0@x{c#?ww6L(fSA=!?dKq$r&moI@$ajQ< z3OPh(3B??xg&|6z%96}t<+;IE!?7#?GZz4e@lhUtW0pjY^X$`f)g2xHT>=0ieK>qb zS*2Js-pUZ~V4*dI#T{$D%x{a(N&Q9V6X%l<0*9=rxJi$dAsd=tc4Gt#wnbp%q>Uk^ z%^Y%h54nwymmLTRhr1ntM-S#I0Eqt)MaA7*)UVGwMJLSa6XS}i`WW(?0kZwaWCw}( zXYyUhX>WOWAuJU4CmiAn0J=uy&7pPm3DnLDe*lubd_4U+#LwYow6TAvD1Od|vj+A3 KMf~R`4E_f`y-i*K delta 992 zcmdnLo$1OGGACoR0ZR3{KGmE`ZzL9Z}mg{wGRq2$aGv_((nP{jlt}o7jV&VlwCZM^WHGt$~ zSw?Ljwb_gDF%yW^XK4V_8`*N0L40{GCj$_jY~>2(ud+>(2l0hs_p*TKi;3PmAX+Xj z60EPXU^kdHEA9~mi67}mVFl4zeRDwKlTSq~!cK?*hxfi+ zs>RH}a1CgH8ca8kUedT@@`7om3Ls0?Ec&&C$$)`DFoS_X1x1Y-7tmmZ$^KkylclGF zVsx_RbQz{BE1;DL7;n4-O@1m!3<-td)?;S zMEQs^FvI}ejH<@A7-*!_2%B`>s$08a9)cfk7F?bEi9iiX|q`ohb=& zdO0g{_NxM>J18tk8jlr_$3<7XKl3IbdC3)hK8Zf2kkFS#XW2stFL;05n9;n zC+@j6(B4r%T&eXByGE|-q-XOa_zn8CJDKu?wr5T7=?t=4(mBnJ zY|J>zX}W?dMB}s3=GfymZh!X+U0c`k?xNPQso{Nhk1mdis?bp_F4_{bdy_&tgGEf$*>^4xLV#C7}QRZp|ayLSf#{x~ruRPfb|4A*2EHru-2 zYmbXsSG3IgaoO$W(_Q{&x5O`>clGA-MH6)D-y4@7JkmJP+nVpR=KCr&(VEknf=rFA z96y}#%Dedc+~Q&%=Mc7IhPS_S2G)39ZL2tSg*$Bij->}eSFYdkT1z-*nM;)aweR`! z5B-+-{`!B$1^&+liTBP;E1YD1^|RGS_lnzZ)E?-*x~uQR$+@lm!VTY+t3{7fr~hYw zrZR2@4p1_4Fcrx?GET)Hb7oBsk7!MEERe&~Te0(0P;40$BFg7cf}xv$TUUX$2)XorGmfs4w*Xa}d%9}nw#^8;EIwI;9oHtXw~yLs(p z*Lm|LUBiD=)_%V%r{i&Ahgp3~aKxE($AtbhCC&Fay?BKGFztOHvY7GEt7ocJofqPk zcQ3iNV!lEL_e7_EEMCzQm+VwO#(d_n*P@2mN7hQI1TUI$|MHPj3z|{{9`k+laFN`m zcqL-XvlgikR;?+OGjFa-e)G0^`KmB`r|mDSj!g~kyL)tTR8)nIYH`tqpxc`iYU-U% zl)3yDh<2T}M<_J@mhSCZKQ51J-+=>$?sfxAatevme)$cIm=w4{I5M; zzy4uv&+o7GCNJ76XBgzCAGSDIf912)NB4^RZ`2;xzPhXL#L2m>{=yC4ma9dNQ>XuD zfTl8T1`bd%bI7sQm@#>Vev~%fNe$Lb-6A}`qCC25dwkdQ^orIr?-lLg;pwf|c`B&8 z%lPx>9NsTFUwSGh%NkgLQ&*IM2`G_Ho@ihX=3h220Ml%S=3v^v&=yQL82W+fi-v(< fTGa@mKgq}$%wJ&?$^lEIlUa?!Ip8i!G0p%0b5myH diff --git a/Mage/src/mage/game/combat/Combat.java b/Mage/src/mage/game/combat/Combat.java index 8bbd339ecf2..c105716e74f 100644 --- a/Mage/src/mage/game/combat/Combat.java +++ b/Mage/src/mage/game/combat/Combat.java @@ -438,8 +438,12 @@ public class Combat implements Serializable, Copyable { if (creature != null) creature.setBlocking(0); } - - @Override + + public UUID getAttackerId() { + return attackerId; + } + + @Override public Combat copy() { return new Combat(this); }