From 8d0791d02019a25783560ebb0b313218dc4ed64e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Tue, 24 Mar 2026 17:48:01 +0900 Subject: [PATCH 01/27] =?UTF-8?q?docs(Readme):=201=EC=B0=A8=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EB=AA=85=EC=84=B8=EC=84=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- README.md | 103 +++++++++++++++++++++++++++++++++++++++++++++++- asset/image.png | Bin 0 -> 1142920 bytes 2 files changed, 101 insertions(+), 2 deletions(-) create mode 100644 asset/image.png diff --git a/README.md b/README.md index 9775dda0ae..ba64ac01dd 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,102 @@ -# java-janggi +# 기능 명세 및 설계 -장기 미션 저장소 +# 0. 설계도 + +![image.png](asset/image.png) + +# 1. 기능 명세서 - 사용 흐름대로 + 초기에 설정해야 할 것 + +### 1-1. 초기 플레이어 입력 받기 + +- [ ] 각 플레이어 이름과 진영을 입력받는다. + - “초나라 진영의 플레이어 이름을 입력하세요: pobi“ + - “한나라 진영의 플레이할 플레이어 이름을 입력하세요: woni“ +- [ ] 각 플레이어의 차림을 입력받는다. + - “초나라의 차림을 입력해주세요: 상마상마” + - “한나라의 차림을 입력해주세요: 마상마상” + +### 1-2. 장기판 초기화 + +- [ ] 초나라와 한나라의 초기 기물 위치를 배정한다. 이때, 입력받은 차림을 반영한다. + +### 1-3. 게임 진행 + +- [ ] 초나라 플레이어는 이동하고 싶은 기물과 이동 위치를 입력한다. + - 예: 초나라 pobi는 이동하고 싶은 기물과 이동위치를 입력해주세요: “차, (2,3)” + - [ ] 이때 플레이어는 한수쉼을 입력할 수 있다. + - 예: 초나라 pobi는 이동하고 싶은 기물과 이동위치를 입력해주세요: 한수쉼 +- [ ] 해당 기물이 원하는 위치로 이동할 수 있는지 판단한다. + - [ ] 불가능한 경우, 재입력을 실행한다. + - “이동이 불가능합니다. 다시 입력해주세요.” +- [ ] 이동 가능한 경우, 기물을 이동시킨다. + - [ ] 상대팀 기물을 잡는 경우, 해당 정보를 출력한다. + - “상대 포를 잡았습니다.” +- [ ] 이동 완료된 장기판 상태를 출력한다. + - 보드판 UI로 출력을 제공한다. +- [ ] 한나라의 플레이어도 위의 과정을 반복한다. + +### 1-4. 게임 종료 + +- [ ] 궁이 잡히는 경우, 게임이 종료된다. + - “게임 결과: 한나라가 승리하였습니다.” + +# 2. 규칙 정의 + +## 2-1. 기물의 규칙 + +### 2-1-1. 기물의 종류와 개수 (초/한 진영) + +| 기물명 | 개수(각 진영별) | 이동 규칙 | +| --- | --- | --- | +| 궁 | 1개 | 궁성 내에서만 모든 방향으로 한 칸씩 다닐 수 있다. | +| 사 | 2개 | 궁성 내에서만 모든 방향으로 한 칸씩 다닐 수 있다. | +| 차 | 2개 | 장애물만 없으면 직선으로 전후좌우, 궁성의 사선을 타고 칸수 제한 없이 다닐 수 있다. | +| 포 | 2개 | 차와 마찬가지로 직선으로 전후좌우, 궁성의 사선을 타고 칸수 제한없이 다닐 수 있다. 다만 아래 조건이 따른다. +• 반드시 다른 기물 하나를 넘어야 한다. 하지만 해당 기물이 포일 수는 없다. +• 같은 포를 잡을 수 없다. | +| 마 | 2개 | 일보 전진 이후, 대각선으로 좌,우로 한칸 이동할 수 있다. 다만, 일보 전진하는 경우 장애물이 있으면 이동할 수 없다. | +| 상 | 2개 | 일보 전진 이후, 대각선으로 좌,우로 두칸 이동할 수 있다. 다만, 전진하는 경로에 장애물이 있으면 이동할 수 없다. | +| 졸(병) | 5개 | 한 칸씩 앞이나 옆으로만 이동이 가능하다. (뒤로 이동이 불가능하다.) +• 추가로 상대방의 궁성에 있는 경우, 궁성의 간선을 타고 한 칸 이동 가능하다. | + +## 2-2. 어플리케이션 검증 규칙 + +### 2-2-1. 플레이어 이름 입력 규칙 + +- 플레이어 이름은 5자 이하여야 한다. +- 플레이어 이름은 null이거나 빈값일 수 없다. + +### 2-2-2. 플레이어 차림 입력 규칙 + +- 차림으로는 아래 4가지 입력만 들어올 수 있다. + - “상마상마”, “마상마상”, “상마마상”, “마상상마” + +### 2-2-3. 이동 기물 및 위치 입력 규칙 + +- 이동 기물은 “궁,차,포,마,상,사,졸(병)”만 입력으로 들어올 수 있다. +- 이동 위치는 “1,1”와 같이 좌표형태의 숫자값만 입력으로 들어올 수 있다. 좌표는 쉼표로 구분한다. +- 추가적으로 “한수쉼”이 들어올 수 있다. + +# 3. 용어 사전 + +### 3-1. 기본 용어 + +| 용어(한글) | 영문 | 설명 | +| --- | --- | --- | +| 기물 | Pieces | 장기 알 (궁 1개, 차 2개, 포2개, 마 2개, 상 2개, 사 2개, 졸(병) 5개로 16개씩, 총 32개) | +| 상마상마 배치 | **Elephant-Horse Formation** | 상마상마의 차림을 의미한다. | +| 한나라 | Han | 빨간색 장기 알 | +| 초나라 | Chu | 녹색(파란색) 장기 알 | +| 한수쉼 | Hansooshim | 플레이어가 자신의 차례를 넘기는 행위 | + +### 3-2. 기물 용어 + +| 용어(한글) | 영문 | +| --- | --- | +| 궁 | King | +| 차 | Rook | +| 포 | Cannon | +| 마 | Horse | +| 상 | Elephant | +| 사 | guard | +| 졸(병) | pawn | diff --git a/asset/image.png b/asset/image.png new file mode 100644 index 0000000000000000000000000000000000000000..bcdbab2a2d3c819a3eaa984be9eb5c2cc14a5676 GIT binary patch literal 1142920 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

0?!BjRx-pyKZDFUgDNGvb=Sc#CgP`)jxi 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⪚x9=mYg@7Wt><+7zYP*o~_e4oTs4@aX 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%0D~)BhYD_=A_ixfw7R5IEdh?FOT~R?B_B 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

  • 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

    k#Cb^OvSR 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 literal 0 HcmV?d00001 From 0e90099bcdf1dd27cb94c847852c103c8c91b73b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Thu, 26 Mar 2026 20:14:42 +0900 Subject: [PATCH 02/27] =?UTF-8?q?feat:=20=EB=B3=B4=EB=93=9C=20=EC=83=81?= =?UTF-8?q?=EB=A7=88=EC=83=81=EB=A7=88=20=EC=83=81=EC=B0=A8=EB=A6=BC=20?= =?UTF-8?q?=EB=B0=B0=EC=B9=98=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20=EB=B0=8F=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/.gitkeep | 0 src/main/java/Application.java | 5 + src/main/java/domain/Board.java | 31 ++++++ .../java/domain/HorseElephantFormation.java | 27 ++++++ src/main/java/domain/PieceType.java | 21 ++++ src/main/java/domain/Position.java | 31 ++++++ src/main/java/domain/Team.java | 5 + src/main/java/domain/piece/Cannon.java | 10 ++ src/main/java/domain/piece/Elephant.java | 10 ++ src/main/java/domain/piece/Guard.java | 10 ++ src/main/java/domain/piece/Horse.java | 10 ++ src/main/java/domain/piece/King.java | 10 ++ src/main/java/domain/piece/Pawn.java | 10 ++ src/main/java/domain/piece/Piece.java | 18 ++++ src/main/java/domain/piece/Rook.java | 10 ++ .../java/strategy/InitializeStrategy.java | 75 +++++++++++++++ .../InnerElephantFormationStrategy.java | 14 +++ .../LeftElephantFormationStrategy.java | 32 +++++++ .../OuterElephantFormationStrategy.java | 14 +++ .../RightElephantFormationStrategy.java | 14 +++ src/test/java/.gitkeep | 0 src/test/java/domain/BoardTest.java | 95 +++++++++++++++++++ src/test/java/domain/PieceTest.java | 4 + 23 files changed, 456 insertions(+) delete mode 100644 src/main/java/.gitkeep create mode 100644 src/main/java/Application.java create mode 100644 src/main/java/domain/Board.java create mode 100644 src/main/java/domain/HorseElephantFormation.java create mode 100644 src/main/java/domain/PieceType.java create mode 100644 src/main/java/domain/Position.java create mode 100644 src/main/java/domain/Team.java create mode 100644 src/main/java/domain/piece/Cannon.java create mode 100644 src/main/java/domain/piece/Elephant.java create mode 100644 src/main/java/domain/piece/Guard.java create mode 100644 src/main/java/domain/piece/Horse.java create mode 100644 src/main/java/domain/piece/King.java create mode 100644 src/main/java/domain/piece/Pawn.java create mode 100644 src/main/java/domain/piece/Piece.java create mode 100644 src/main/java/domain/piece/Rook.java create mode 100644 src/main/java/strategy/InitializeStrategy.java create mode 100644 src/main/java/strategy/InnerElephantFormationStrategy.java create mode 100644 src/main/java/strategy/LeftElephantFormationStrategy.java create mode 100644 src/main/java/strategy/OuterElephantFormationStrategy.java create mode 100644 src/main/java/strategy/RightElephantFormationStrategy.java delete mode 100644 src/test/java/.gitkeep create mode 100644 src/test/java/domain/BoardTest.java create mode 100644 src/test/java/domain/PieceTest.java diff --git a/src/main/java/.gitkeep b/src/main/java/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/main/java/Application.java b/src/main/java/Application.java new file mode 100644 index 0000000000..bdbffd531f --- /dev/null +++ b/src/main/java/Application.java @@ -0,0 +1,5 @@ +public class Application { + public static void main(String[] args) { + + } +} diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java new file mode 100644 index 0000000000..42c200a94e --- /dev/null +++ b/src/main/java/domain/Board.java @@ -0,0 +1,31 @@ +package domain; + +import domain.piece.Piece; +import java.util.HashMap; +import java.util.Map; +import strategy.InitializeStrategy; + +public class Board { + private final Map pieces = new HashMap<>(); + + public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanInitializeStrategy) { + initTeamBoard(choInitializeStrategy, Team.CHO); + initTeamBoard(hanInitializeStrategy, Team.HAN); + } + + /** + * TODO: 테스트용 함수 제거 필요 + * + * @param position + * @param piece + * @return + */ + public boolean isExistSameType(Position position, Piece piece) { + return pieces.get(position).getType() + .equals(piece.getType()); + } + + private void initTeamBoard(InitializeStrategy strategy, Team team) { + pieces.putAll(strategy.initialize(team)); + } +} diff --git a/src/main/java/domain/HorseElephantFormation.java b/src/main/java/domain/HorseElephantFormation.java new file mode 100644 index 0000000000..c6b5890f4e --- /dev/null +++ b/src/main/java/domain/HorseElephantFormation.java @@ -0,0 +1,27 @@ +package domain; + +import java.util.Arrays; + +public enum HorseElephantFormation { + INNER_ELEPHANT("마상상마"), + OUTER_ELEPHANT("상마마상"), + RIGHT_ELEPHANT("마상마상"), + LEFT_ELEPHANT("상마상마"); + + private final String pattern; + + HorseElephantFormation(String pattern) { + this.pattern = pattern; + } + + public String getPattern() { + return pattern; + } + + public static HorseElephantFormation from(String pattern) { + return Arrays.stream(values()) + .filter(type -> type.pattern.equals(pattern)) + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 포메이션입니다: " + pattern)); + } +} \ No newline at end of file diff --git a/src/main/java/domain/PieceType.java b/src/main/java/domain/PieceType.java new file mode 100644 index 0000000000..59336bafbd --- /dev/null +++ b/src/main/java/domain/PieceType.java @@ -0,0 +1,21 @@ +package domain; + +public enum PieceType { + KING("궁"), + ROOK("차"), + CANNON("포"), + HORSE("마"), + ELEPHANT("상"), + GUARD("사"), + PAWN("졸"); + + private final String koreanName; + + PieceType(String koreanName) { + this.koreanName = koreanName; + } + + public String getKoreanName() { + return koreanName; + } +} diff --git a/src/main/java/domain/Position.java b/src/main/java/domain/Position.java new file mode 100644 index 0000000000..8671eb4b75 --- /dev/null +++ b/src/main/java/domain/Position.java @@ -0,0 +1,31 @@ +package domain; + +import java.util.Objects; + +public final class Position { + private final int row; + private final int column; + + private Position(int row, int column){ + this.row = row; + this.column = column; + } + + public static Position from(int row, int column) { + return new Position(row, column); + } + + @Override + public boolean equals(Object o) { + if (o == null || getClass() != o.getClass()) { + return false; + } + Position position = (Position) o; + return row == position.row && column == position.column; + } + + @Override + public int hashCode() { + return Objects.hash(row, column); + } +} diff --git a/src/main/java/domain/Team.java b/src/main/java/domain/Team.java new file mode 100644 index 0000000000..8df6e15d10 --- /dev/null +++ b/src/main/java/domain/Team.java @@ -0,0 +1,5 @@ +package domain; + +public enum Team { + HAN, CHO; +} diff --git a/src/main/java/domain/piece/Cannon.java b/src/main/java/domain/piece/Cannon.java new file mode 100644 index 0000000000..3c564dd7ba --- /dev/null +++ b/src/main/java/domain/piece/Cannon.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class Cannon extends Piece{ + public Cannon(Team team) { + super(team, PieceType.CANNON); + } +} diff --git a/src/main/java/domain/piece/Elephant.java b/src/main/java/domain/piece/Elephant.java new file mode 100644 index 0000000000..e2df2519ab --- /dev/null +++ b/src/main/java/domain/piece/Elephant.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class Elephant extends Piece { + public Elephant(Team team) { + super(team, PieceType.ELEPHANT); + } +} diff --git a/src/main/java/domain/piece/Guard.java b/src/main/java/domain/piece/Guard.java new file mode 100644 index 0000000000..2159edfa01 --- /dev/null +++ b/src/main/java/domain/piece/Guard.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class Guard extends Piece{ + public Guard(Team team) { + super(team, PieceType.GUARD); + } +} diff --git a/src/main/java/domain/piece/Horse.java b/src/main/java/domain/piece/Horse.java new file mode 100644 index 0000000000..662b538086 --- /dev/null +++ b/src/main/java/domain/piece/Horse.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class Horse extends Piece { + public Horse(Team team) { + super(team, PieceType.HORSE); + } +} diff --git a/src/main/java/domain/piece/King.java b/src/main/java/domain/piece/King.java new file mode 100644 index 0000000000..b6b455705c --- /dev/null +++ b/src/main/java/domain/piece/King.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class King extends Piece{ + public King(Team team) { + super(team, PieceType.KING); + } +} diff --git a/src/main/java/domain/piece/Pawn.java b/src/main/java/domain/piece/Pawn.java new file mode 100644 index 0000000000..1b72ddc8de --- /dev/null +++ b/src/main/java/domain/piece/Pawn.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class Pawn extends Piece{ + public Pawn(Team team) { + super(team, PieceType.PAWN); + } +} diff --git a/src/main/java/domain/piece/Piece.java b/src/main/java/domain/piece/Piece.java new file mode 100644 index 0000000000..0abd450c77 --- /dev/null +++ b/src/main/java/domain/piece/Piece.java @@ -0,0 +1,18 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public abstract class Piece { + public Team team; + public PieceType type; + + public Piece(Team team, PieceType type) { + this.team = team; + this.type = type; + } + + public PieceType getType() { + return this.type; + } +} diff --git a/src/main/java/domain/piece/Rook.java b/src/main/java/domain/piece/Rook.java new file mode 100644 index 0000000000..27e011daf8 --- /dev/null +++ b/src/main/java/domain/piece/Rook.java @@ -0,0 +1,10 @@ +package domain.piece; + +import domain.PieceType; +import domain.Team; + +public class Rook extends Piece{ + public Rook(Team team) { + super(team, PieceType.ROOK); + } +} diff --git a/src/main/java/strategy/InitializeStrategy.java b/src/main/java/strategy/InitializeStrategy.java new file mode 100644 index 0000000000..f8e4b66e22 --- /dev/null +++ b/src/main/java/strategy/InitializeStrategy.java @@ -0,0 +1,75 @@ +package strategy; + +import domain.piece.Cannon; +import domain.piece.Guard; +import domain.piece.King; +import domain.piece.Pawn; +import domain.piece.Piece; +import domain.Position; +import domain.Team; +import domain.piece.Rook; +import java.util.HashMap; +import java.util.Map; + +public abstract class InitializeStrategy { + public Map initialize(Team team){ + Map pieces = new HashMap<>(); + + pieces.putAll(initializeDefaultFormation(team)); + pieces.putAll(initializeElephantHorseFormation(team)); + + return pieces; + } + + private Map initializeDefaultFormation(Team team) { + if (team == Team.CHO) { + return initializeChoDefaultFormation(); + } + + return initializeHanDefaultFormation(); + } + + abstract Map initializeElephantHorseFormation(Team team); + + private Map initializeChoDefaultFormation() { + Map pieces = new HashMap<>(); + + pieces.put(Position.from(1, 1), new Rook(Team.HAN)); + pieces.put(Position.from(1, 4), new Guard(Team.HAN)); + pieces.put(Position.from(1, 5), new King(Team.HAN)); + pieces.put(Position.from(1, 6), new Guard(Team.HAN)); + pieces.put(Position.from(1, 9), new Rook(Team.HAN)); + + pieces.put(Position.from(3, 2), new Cannon(Team.HAN)); + pieces.put(Position.from(3, 8), new Cannon(Team.HAN)); + + pieces.put(Position.from(4, 1), new Pawn(Team.HAN)); + pieces.put(Position.from(4, 3), new Pawn(Team.HAN)); + pieces.put(Position.from(4, 5), new Pawn(Team.HAN)); + pieces.put(Position.from(4, 7), new Pawn(Team.HAN)); + pieces.put(Position.from(4, 9), new Pawn(Team.HAN)); + + return pieces; + } + + private Map initializeHanDefaultFormation() { + Map pieces = new HashMap<>(); + + pieces.put(Position.from(10, 1), new Rook(Team.CHO)); + pieces.put(Position.from(10, 4), new Guard(Team.CHO)); + pieces.put(Position.from(10, 5), new King(Team.CHO)); + pieces.put(Position.from(10, 6), new Guard(Team.CHO)); + pieces.put(Position.from(10, 9), new Rook(Team.CHO)); + + pieces.put(Position.from(8, 2), new Cannon(Team.CHO)); + pieces.put(Position.from(8, 8), new Cannon(Team.CHO)); + + pieces.put(Position.from(7, 1), new Pawn(Team.CHO)); + pieces.put(Position.from(7, 3), new Pawn(Team.CHO)); + pieces.put(Position.from(7, 5), new Pawn(Team.CHO)); + pieces.put(Position.from(7, 9), new Pawn(Team.CHO)); + pieces.put(Position.from(7, 7), new Pawn(Team.CHO)); + + return pieces; + } +} diff --git a/src/main/java/strategy/InnerElephantFormationStrategy.java b/src/main/java/strategy/InnerElephantFormationStrategy.java new file mode 100644 index 0000000000..cb4e50efc3 --- /dev/null +++ b/src/main/java/strategy/InnerElephantFormationStrategy.java @@ -0,0 +1,14 @@ +package strategy; + +import domain.Position; +import domain.Team; +import domain.piece.Piece; +import java.util.HashMap; +import java.util.Map; + +public class InnerElephantFormationStrategy extends InitializeStrategy { + @Override + public Map initializeElephantHorseFormation(Team team) { + return new HashMap<>(); + } +} diff --git a/src/main/java/strategy/LeftElephantFormationStrategy.java b/src/main/java/strategy/LeftElephantFormationStrategy.java new file mode 100644 index 0000000000..ec79ac1399 --- /dev/null +++ b/src/main/java/strategy/LeftElephantFormationStrategy.java @@ -0,0 +1,32 @@ +package strategy; + +import domain.piece.Elephant; +import domain.piece.Horse; +import domain.piece.Piece; +import domain.Position; +import domain.Team; +import java.util.HashMap; +import java.util.Map; + +public class LeftElephantFormationStrategy extends InitializeStrategy { + + @Override + public Map initializeElephantHorseFormation(Team team) { + Map map = new HashMap<>(); + + if (team.equals(Team.HAN)) { + map.put(Position.from(1, 3), new Elephant(Team.HAN)); + map.put(Position.from(1, 8), new Elephant(Team.HAN)); + map.put(Position.from(1, 2), new Horse(Team.HAN)); + map.put(Position.from(1, 7), new Horse(Team.HAN)); + return map; + } + + map.put(Position.from(10, 2), new Elephant(Team.CHO)); + map.put(Position.from(10, 7), new Elephant(Team.CHO)); + map.put(Position.from(10, 3), new Horse(Team.CHO)); + map.put(Position.from(10, 8), new Horse(Team.CHO)); + + return map; + } +} diff --git a/src/main/java/strategy/OuterElephantFormationStrategy.java b/src/main/java/strategy/OuterElephantFormationStrategy.java new file mode 100644 index 0000000000..b7d1ed9854 --- /dev/null +++ b/src/main/java/strategy/OuterElephantFormationStrategy.java @@ -0,0 +1,14 @@ +package strategy; + +import domain.Position; +import domain.Team; +import domain.piece.Piece; +import java.util.HashMap; +import java.util.Map; + +public class OuterElephantFormationStrategy extends InitializeStrategy { + @Override + public Map initializeElephantHorseFormation(Team team) { + return new HashMap<>(); + } +} diff --git a/src/main/java/strategy/RightElephantFormationStrategy.java b/src/main/java/strategy/RightElephantFormationStrategy.java new file mode 100644 index 0000000000..54ddb3163d --- /dev/null +++ b/src/main/java/strategy/RightElephantFormationStrategy.java @@ -0,0 +1,14 @@ +package strategy; + +import domain.Position; +import domain.Team; +import domain.piece.Piece; +import java.util.HashMap; +import java.util.Map; + +public class RightElephantFormationStrategy extends InitializeStrategy { + @Override + public Map initializeElephantHorseFormation(Team team) { + return new HashMap<>(); + } +} diff --git a/src/test/java/.gitkeep b/src/test/java/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java new file mode 100644 index 0000000000..33224c63cd --- /dev/null +++ b/src/test/java/domain/BoardTest.java @@ -0,0 +1,95 @@ +package domain; + +import domain.piece.Elephant; +import domain.piece.Horse; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +import strategy.InitializeStrategy; +import strategy.LeftElephantFormationStrategy; + +class BoardTest { + /** + * 보드판 전체 초기화 테스트 로직 + */ + /** + * 1. 한나라 전체 기물이 올바르게 배치된다. + */ + /** + * 2. 초나라 전체 기물이 올바르게 배치된다. + */ + + /** + * 상마상마 차림 검증 로직 + */ + /** + * 1. 초나라가 상마상마를 선택한 경우, 보드판에 올바르게 배치된다. + */ +// @Test +// void 초나라의_상마상마_상차림을_올바르게_배치한다() { +// // given +// InitializeStrategy strategy = new LeftElephantFormationStrategy(); +// +// // when +// Board board = new Board(strategy, strategy); +// +// // then +// Position choFirstElephant = Position.from(1, 2); +// Position choSecondElephant = Position.from(1, 7); +// Position choFirstHorse = Position.from(1, 3); +// Position choSecondHorse = Position.from(1, 8); +// +// assertThat(board.isExist(hanFirstElephant, new Piece(PieceType.ELEPHANT))).isEqualTo(true); +// assertThat(board.isExist(hanSecondElephant, new Piece(PieceType.ELEPHANT))).isEqualTo(true); +// assertThat(board.isExist(hanFirstHorse, new Piece(PieceType.HORSE))).isEqualTo(true); +// assertThat(board.isExist(hanSecondHorse, new Piece(PieceType.HORSE))).isEqualTo(true); +// } + + /** + * 2. 초나라가 상마마상을 선택한 경우, 보드판에 올바르게 배치된다. + */ + + /** + * 3. 초나라가 마상마상을 선택한 경우, 보드판에 올바르게 배치된다. + */ + + /** + * 4. 초나라가 마상상마를 선택한 경우, 보드판에 올바르게 배치된다. + */ + + /** + * 5. 한나라가 상마상마를 선택한 경우, 보드판에 올바르게 배치된다. + */ + @Test + void 한나라의_상마상마_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new LeftElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position hanFirstElephant = Position.from(1, 3); + Position hanSecondElephant = Position.from(1, 8); + Position hanFirstHorse = Position.from(1, 2); + Position hanSecondHorse = Position.from(1, 7); + + assertThat(board.isExistSameType(hanFirstElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanFirstHorse, new Horse(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondHorse, new Horse(Team.HAN))).isEqualTo(true); + } + + /** + * 6. 한나라가 상마마상을 선택한 경우, 보드판에 올바르게 배치된다. + */ + + /** + * 7. 한나라가 마상마상을 선택한 경우, 보드판에 올바르게 배치된다. + */ + + /** + * 8. 한나라가 마상상마를 선택한 경우, 보드판에 올바르게 배치된다. + */ +} diff --git a/src/test/java/domain/PieceTest.java b/src/test/java/domain/PieceTest.java new file mode 100644 index 0000000000..840a4a6e82 --- /dev/null +++ b/src/test/java/domain/PieceTest.java @@ -0,0 +1,4 @@ +package domain; + +public class PieceTest { +} From d6b6956e31feb0d23453791f1998dadd8fb4aaf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Thu, 26 Mar 2026 20:35:02 +0900 Subject: [PATCH 03/27] =?UTF-8?q?feat:=20=EC=83=81=EA=B3=BC=20=EB=A7=88?= =?UTF-8?q?=EC=9D=98=20=EC=83=81=EC=B0=A8=EB=A6=BC=20=EB=AA=A8=EB=93=A0=20?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=EC=8A=A4=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1=20=EB=B0=8F=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- .../InnerElephantFormationStrategy.java | 19 ++- .../OuterElephantFormationStrategy.java | 22 ++- .../RightElephantFormationStrategy.java | 20 ++- src/test/java/domain/BoardTest.java | 155 +++++++++++++++--- 4 files changed, 193 insertions(+), 23 deletions(-) diff --git a/src/main/java/strategy/InnerElephantFormationStrategy.java b/src/main/java/strategy/InnerElephantFormationStrategy.java index cb4e50efc3..78cbc7ae4d 100644 --- a/src/main/java/strategy/InnerElephantFormationStrategy.java +++ b/src/main/java/strategy/InnerElephantFormationStrategy.java @@ -2,6 +2,8 @@ import domain.Position; import domain.Team; +import domain.piece.Elephant; +import domain.piece.Horse; import domain.piece.Piece; import java.util.HashMap; import java.util.Map; @@ -9,6 +11,21 @@ public class InnerElephantFormationStrategy extends InitializeStrategy { @Override public Map initializeElephantHorseFormation(Team team) { - return new HashMap<>(); + Map map = new HashMap<>(); + + if (team.equals(Team.HAN)) { + map.put(Position.from(1, 3), new Elephant(Team.HAN)); + map.put(Position.from(1, 7), new Elephant(Team.HAN)); + map.put(Position.from(1, 2), new Horse(Team.HAN)); + map.put(Position.from(1, 8), new Horse(Team.HAN)); + return map; + } + + map.put(Position.from(10, 3), new Elephant(Team.CHO)); + map.put(Position.from(10, 7), new Elephant(Team.CHO)); + map.put(Position.from(10, 2), new Horse(Team.CHO)); + map.put(Position.from(10, 8), new Horse(Team.CHO)); + + return map; } } diff --git a/src/main/java/strategy/OuterElephantFormationStrategy.java b/src/main/java/strategy/OuterElephantFormationStrategy.java index b7d1ed9854..c257080ac9 100644 --- a/src/main/java/strategy/OuterElephantFormationStrategy.java +++ b/src/main/java/strategy/OuterElephantFormationStrategy.java @@ -2,13 +2,31 @@ import domain.Position; import domain.Team; +import domain.piece.Elephant; +import domain.piece.Horse; import domain.piece.Piece; import java.util.HashMap; import java.util.Map; -public class OuterElephantFormationStrategy extends InitializeStrategy { +public class +OuterElephantFormationStrategy extends InitializeStrategy { @Override public Map initializeElephantHorseFormation(Team team) { - return new HashMap<>(); + Map map = new HashMap<>(); + + if (team.equals(Team.HAN)) { + map.put(Position.from(1, 2), new Elephant(Team.HAN)); + map.put(Position.from(1, 8), new Elephant(Team.HAN)); + map.put(Position.from(1, 3), new Horse(Team.HAN)); + map.put(Position.from(1, 7), new Horse(Team.HAN)); + return map; + } + + map.put(Position.from(10, 2), new Elephant(Team.CHO)); + map.put(Position.from(10, 8), new Elephant(Team.CHO)); + map.put(Position.from(10, 3), new Horse(Team.CHO)); + map.put(Position.from(10, 7), new Horse(Team.CHO)); + + return map; } } diff --git a/src/main/java/strategy/RightElephantFormationStrategy.java b/src/main/java/strategy/RightElephantFormationStrategy.java index 54ddb3163d..5a1fd7833c 100644 --- a/src/main/java/strategy/RightElephantFormationStrategy.java +++ b/src/main/java/strategy/RightElephantFormationStrategy.java @@ -2,13 +2,31 @@ import domain.Position; import domain.Team; +import domain.piece.Elephant; +import domain.piece.Horse; import domain.piece.Piece; import java.util.HashMap; import java.util.Map; public class RightElephantFormationStrategy extends InitializeStrategy { + @Override public Map initializeElephantHorseFormation(Team team) { - return new HashMap<>(); + Map map = new HashMap<>(); + + if (team.equals(Team.HAN)) { + map.put(Position.from(1, 2), new Elephant(Team.HAN)); + map.put(Position.from(1, 7), new Elephant(Team.HAN)); + map.put(Position.from(1, 3), new Horse(Team.HAN)); + map.put(Position.from(1, 8), new Horse(Team.HAN)); + return map; + } + + map.put(Position.from(10, 3), new Elephant(Team.CHO)); + map.put(Position.from(10, 8), new Elephant(Team.CHO)); + map.put(Position.from(10, 2), new Horse(Team.CHO)); + map.put(Position.from(10, 7), new Horse(Team.CHO)); + + return map; } } diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index 33224c63cd..333f8dc929 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -7,7 +7,10 @@ import static org.assertj.core.api.Assertions.assertThat; import strategy.InitializeStrategy; +import strategy.InnerElephantFormationStrategy; import strategy.LeftElephantFormationStrategy; +import strategy.OuterElephantFormationStrategy; +import strategy.RightElephantFormationStrategy; class BoardTest { /** @@ -26,37 +29,94 @@ class BoardTest { /** * 1. 초나라가 상마상마를 선택한 경우, 보드판에 올바르게 배치된다. */ -// @Test -// void 초나라의_상마상마_상차림을_올바르게_배치한다() { -// // given -// InitializeStrategy strategy = new LeftElephantFormationStrategy(); -// -// // when -// Board board = new Board(strategy, strategy); -// -// // then -// Position choFirstElephant = Position.from(1, 2); -// Position choSecondElephant = Position.from(1, 7); -// Position choFirstHorse = Position.from(1, 3); -// Position choSecondHorse = Position.from(1, 8); -// -// assertThat(board.isExist(hanFirstElephant, new Piece(PieceType.ELEPHANT))).isEqualTo(true); -// assertThat(board.isExist(hanSecondElephant, new Piece(PieceType.ELEPHANT))).isEqualTo(true); -// assertThat(board.isExist(hanFirstHorse, new Piece(PieceType.HORSE))).isEqualTo(true); -// assertThat(board.isExist(hanSecondHorse, new Piece(PieceType.HORSE))).isEqualTo(true); -// } + @Test + void 초나라의_상마상마_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new LeftElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position choFirstElephant = Position.from(10, 2); + Position choSecondElephant = Position.from(10, 7); + Position choFirstHorse = Position.from(10, 3); + Position choSecondHorse = Position.from(10, 8); + + assertThat(board.isExistSameType(choFirstElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choFirstHorse, new Horse(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondHorse, new Horse(Team.CHO))).isEqualTo(true); + } /** * 2. 초나라가 상마마상을 선택한 경우, 보드판에 올바르게 배치된다. */ + @Test + void 초나라의_상마마상_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new OuterElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position choFirstElephant = Position.from(10, 2); + Position choSecondElephant = Position.from(10, 8); + Position choFirstHorse = Position.from(10, 3); + Position choSecondHorse = Position.from(10, 7); + + assertThat(board.isExistSameType(choFirstElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choFirstHorse, new Horse(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondHorse, new Horse(Team.CHO))).isEqualTo(true); + } /** * 3. 초나라가 마상마상을 선택한 경우, 보드판에 올바르게 배치된다. */ + @Test + void 초나라의_마상마상_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new RightElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position choFirstElephant = Position.from(10, 3); + Position choSecondElephant = Position.from(10, 8); + Position choFirstHorse = Position.from(10, 2); + Position choSecondHorse = Position.from(10, 7); + + assertThat(board.isExistSameType(choFirstElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choFirstHorse, new Horse(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondHorse, new Horse(Team.CHO))).isEqualTo(true); + } /** * 4. 초나라가 마상상마를 선택한 경우, 보드판에 올바르게 배치된다. */ + @Test + void 초나라의_마상상마_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new InnerElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position choFirstElephant = Position.from(10, 3); + Position choSecondElephant = Position.from(10, 7); + Position choFirstHorse = Position.from(10, 2); + Position choSecondHorse = Position.from(10, 8); + + assertThat(board.isExistSameType(choFirstElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondElephant, new Elephant(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choFirstHorse, new Horse(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(choSecondHorse, new Horse(Team.CHO))).isEqualTo(true); + } /** * 5. 한나라가 상마상마를 선택한 경우, 보드판에 올바르게 배치된다. @@ -84,12 +144,69 @@ class BoardTest { /** * 6. 한나라가 상마마상을 선택한 경우, 보드판에 올바르게 배치된다. */ + @Test + void 한나라의_상마마상_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new OuterElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position hanFirstElephant = Position.from(1, 2); + Position hanSecondElephant = Position.from(1, 8); + Position hanFirstHorse = Position.from(1, 3); + Position hanSecondHorse = Position.from(1, 7); + + assertThat(board.isExistSameType(hanFirstElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanFirstHorse, new Horse(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondHorse, new Horse(Team.HAN))).isEqualTo(true); + } /** * 7. 한나라가 마상마상을 선택한 경우, 보드판에 올바르게 배치된다. */ + @Test + void 한나라의_마상마상_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new RightElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position hanFirstElephant = Position.from(1, 2); + Position hanSecondElephant = Position.from(1, 7); + Position hanFirstHorse = Position.from(1, 3); + Position hanSecondHorse = Position.from(1, 8); + + assertThat(board.isExistSameType(hanFirstElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanFirstHorse, new Horse(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondHorse, new Horse(Team.HAN))).isEqualTo(true); + } /** * 8. 한나라가 마상상마를 선택한 경우, 보드판에 올바르게 배치된다. */ + @Test + void 한나라의_마상상마_상차림을_올바르게_배치한다() { + // given + InitializeStrategy strategy = new InnerElephantFormationStrategy(); + + // when + Board board = new Board(strategy, strategy); + + // then + Position hanFirstElephant = Position.from(1, 3); + Position hanSecondElephant = Position.from(1, 7); + Position hanFirstHorse = Position.from(1, 2); + Position hanSecondHorse = Position.from(1, 8); + + assertThat(board.isExistSameType(hanFirstElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondElephant, new Elephant(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanFirstHorse, new Horse(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(hanSecondHorse, new Horse(Team.HAN))).isEqualTo(true); + } } From 419510634d355fcf71117760ee6d101aaf024ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Thu, 26 Mar 2026 21:06:53 +0900 Subject: [PATCH 04/27] =?UTF-8?q?test(test):=20=EC=A0=84=EC=B2=B4=20?= =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EA=B8=B0=EB=AC=BC=20=EB=B0=B0=EC=B9=98=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- .../java/strategy/InitializeStrategy.java | 8 +-- src/test/java/domain/BoardTest.java | 63 +++++++++++++++++-- 2 files changed, 62 insertions(+), 9 deletions(-) diff --git a/src/main/java/strategy/InitializeStrategy.java b/src/main/java/strategy/InitializeStrategy.java index f8e4b66e22..085bbc3744 100644 --- a/src/main/java/strategy/InitializeStrategy.java +++ b/src/main/java/strategy/InitializeStrategy.java @@ -12,7 +12,7 @@ import java.util.Map; public abstract class InitializeStrategy { - public Map initialize(Team team){ + public Map initialize(Team team) { Map pieces = new HashMap<>(); pieces.putAll(initializeDefaultFormation(team)); @@ -29,9 +29,9 @@ private Map initializeDefaultFormation(Team team) { return initializeHanDefaultFormation(); } - abstract Map initializeElephantHorseFormation(Team team); + protected abstract Map initializeElephantHorseFormation(Team team); - private Map initializeChoDefaultFormation() { + private Map initializeHanDefaultFormation() { Map pieces = new HashMap<>(); pieces.put(Position.from(1, 1), new Rook(Team.HAN)); @@ -52,7 +52,7 @@ private Map initializeChoDefaultFormation() { return pieces; } - private Map initializeHanDefaultFormation() { + private Map initializeChoDefaultFormation() { Map pieces = new HashMap<>(); pieces.put(Position.from(10, 1), new Rook(Team.CHO)); diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index 333f8dc929..b6c3da4829 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -1,7 +1,15 @@ package domain; +import domain.piece.Cannon; import domain.piece.Elephant; +import domain.piece.Guard; import domain.piece.Horse; +import domain.piece.King; +import domain.piece.Pawn; +import domain.piece.Piece; +import domain.piece.Rook; +import java.util.Collections; +import java.util.Map; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -13,15 +21,60 @@ import strategy.RightElephantFormationStrategy; class BoardTest { + private final InitializeStrategy noElephantHorseStrategy = new NoOpElephantHorseStrategy(); + + static class NoOpElephantHorseStrategy extends InitializeStrategy { + @Override + protected Map initializeElephantHorseFormation(Team team) { + return Collections.emptyMap(); + } + } + /** - * 보드판 전체 초기화 테스트 로직 - */ - /** - * 1. 한나라 전체 기물이 올바르게 배치된다. + * 1. 한나라 기본 기물이 올바르게 배치된다.(상,마 제외) */ + @Test + void 한나라_기본_기물들이_올바르게_배치된다() { + Board board = new Board(noElephantHorseStrategy, noElephantHorseStrategy); + + assertThat(board.isExistSameType(Position.from(1, 1), new Rook(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(1, 9), new Rook(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(1, 4), new Guard(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(1, 6), new Guard(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(1, 5), new King(Team.HAN))).isEqualTo(true); + + assertThat(board.isExistSameType(Position.from(3, 2), new Cannon(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(3, 8), new Cannon(Team.HAN))).isEqualTo(true); + + assertThat(board.isExistSameType(Position.from(4, 1), new Pawn(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(4, 3), new Pawn(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(4, 5), new Pawn(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(4, 7), new Pawn(Team.HAN))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(4, 9), new Pawn(Team.HAN))).isEqualTo(true); + } + /** - * 2. 초나라 전체 기물이 올바르게 배치된다. + * 2. 초나라 기본 기물이 올바르게 배치된다. (상,마 제외) */ + @Test + void 초나라_기본_기물들이_올바르게_배치된다() { + Board board = new Board(noElephantHorseStrategy, noElephantHorseStrategy); + + assertThat(board.isExistSameType(Position.from(10, 1), new Rook(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(10, 4), new Guard(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(10, 5), new King(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(10, 6), new Guard(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(10, 9), new Rook(Team.CHO))).isEqualTo(true); + + assertThat(board.isExistSameType(Position.from(8, 2), new Cannon(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(8, 8), new Cannon(Team.CHO))).isEqualTo(true); + + assertThat(board.isExistSameType(Position.from(7, 1), new Pawn(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(7, 3), new Pawn(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(7, 5), new Pawn(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(7, 7), new Pawn(Team.CHO))).isEqualTo(true); + assertThat(board.isExistSameType(Position.from(7, 9), new Pawn(Team.CHO))).isEqualTo(true); + } /** * 상마상마 차림 검증 로직 From 791f0487faf2ee3b7ebe4a9d9dd13dbc177319e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 13:00:52 +0900 Subject: [PATCH 05/27] =?UTF-8?q?feat:=20=EC=A0=84=EC=A7=84=20=EB=B0=A9?= =?UTF-8?q?=ED=96=A5=EC=9D=B4=20=EB=B9=88=20=EA=B2=BD=EC=9A=B0,=20?= =?UTF-8?q?=EC=A1=B8=20=EC=9D=B4=EB=8F=99=20=EA=B7=9C=EC=B9=99=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/Board.java | 4 +++ src/main/java/domain/piece/Cannon.java | 7 ++++ src/main/java/domain/piece/Elephant.java | 7 ++++ src/main/java/domain/piece/Guard.java | 7 ++++ src/main/java/domain/piece/Horse.java | 7 ++++ src/main/java/domain/piece/King.java | 10 +++++- src/main/java/domain/piece/Pawn.java | 21 +++++++++++- src/main/java/domain/piece/Piece.java | 4 +++ src/main/java/domain/piece/Rook.java | 7 ++++ src/test/java/domain/BoardTest.java | 2 ++ src/test/java/domain/PieceTest.java | 4 --- src/test/java/domain/piece/PawnTest.java | 42 ++++++++++++++++++++++++ 12 files changed, 116 insertions(+), 6 deletions(-) delete mode 100644 src/test/java/domain/PieceTest.java create mode 100644 src/test/java/domain/piece/PawnTest.java diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index 42c200a94e..d59a5d867a 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -28,4 +28,8 @@ public boolean isExistSameType(Position position, Piece piece) { private void initTeamBoard(InitializeStrategy strategy, Team team) { pieces.putAll(strategy.initialize(team)); } + + public boolean isEmpty(Position position) { + return !pieces.containsKey(position); + } } diff --git a/src/main/java/domain/piece/Cannon.java b/src/main/java/domain/piece/Cannon.java index 3c564dd7ba..a99688a5f5 100644 --- a/src/main/java/domain/piece/Cannon.java +++ b/src/main/java/domain/piece/Cannon.java @@ -1,10 +1,17 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; public class Cannon extends Piece{ public Cannon(Team team) { super(team, PieceType.CANNON); } + + @Override + boolean canMove(Position from, Position to, Board board) { + return false; + } } diff --git a/src/main/java/domain/piece/Elephant.java b/src/main/java/domain/piece/Elephant.java index e2df2519ab..923a1e783c 100644 --- a/src/main/java/domain/piece/Elephant.java +++ b/src/main/java/domain/piece/Elephant.java @@ -1,10 +1,17 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; public class Elephant extends Piece { public Elephant(Team team) { super(team, PieceType.ELEPHANT); } + + @Override + boolean canMove(Position from, Position to, Board board) { + return false; + } } diff --git a/src/main/java/domain/piece/Guard.java b/src/main/java/domain/piece/Guard.java index 2159edfa01..89e0b19d0a 100644 --- a/src/main/java/domain/piece/Guard.java +++ b/src/main/java/domain/piece/Guard.java @@ -1,10 +1,17 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; public class Guard extends Piece{ public Guard(Team team) { super(team, PieceType.GUARD); } + + @Override + boolean canMove(Position from, Position to, Board board) { + return false; + } } diff --git a/src/main/java/domain/piece/Horse.java b/src/main/java/domain/piece/Horse.java index 662b538086..f66e548066 100644 --- a/src/main/java/domain/piece/Horse.java +++ b/src/main/java/domain/piece/Horse.java @@ -1,10 +1,17 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; public class Horse extends Piece { public Horse(Team team) { super(team, PieceType.HORSE); } + + @Override + boolean canMove(Position from, Position to, Board board) { + return false; + } } diff --git a/src/main/java/domain/piece/King.java b/src/main/java/domain/piece/King.java index b6b455705c..278a7b4c41 100644 --- a/src/main/java/domain/piece/King.java +++ b/src/main/java/domain/piece/King.java @@ -1,10 +1,18 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; -public class King extends Piece{ +public class King extends Piece { public King(Team team) { super(team, PieceType.KING); } + + + @Override + boolean canMove(Position from, Position to, Board board) { + return false; + } } diff --git a/src/main/java/domain/piece/Pawn.java b/src/main/java/domain/piece/Pawn.java index 1b72ddc8de..7f2d162b10 100644 --- a/src/main/java/domain/piece/Pawn.java +++ b/src/main/java/domain/piece/Pawn.java @@ -1,10 +1,29 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; -public class Pawn extends Piece{ +public class Pawn extends Piece { public Pawn(Team team) { super(team, PieceType.PAWN); } + + @Override + public boolean canMove(Position from, Position to, Board board) { + /** + * TODO: + * 0. 졸/병이 실제로 이동 가능한 거리인가 확인 + * 1. 이동 위치에, 같은 팀이 있는 경우 예외 + * 2. 판의 범위를 넘어서는 경우 예외 -> 옆인지, 앞인지로 분기 + * 3. 초나라 구현 후 한나라 상황을 고려하여 수정한다. + */ + + return isEmptySpace(from, to, board); + } + + private boolean isEmptySpace(Position from, Position to, Board board) { + return board.isEmpty(to); + } } diff --git a/src/main/java/domain/piece/Piece.java b/src/main/java/domain/piece/Piece.java index 0abd450c77..d07624b94d 100644 --- a/src/main/java/domain/piece/Piece.java +++ b/src/main/java/domain/piece/Piece.java @@ -1,6 +1,8 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; public abstract class Piece { @@ -15,4 +17,6 @@ public Piece(Team team, PieceType type) { public PieceType getType() { return this.type; } + + abstract boolean canMove(Position from, Position to, Board board); } diff --git a/src/main/java/domain/piece/Rook.java b/src/main/java/domain/piece/Rook.java index 27e011daf8..5043d6ae13 100644 --- a/src/main/java/domain/piece/Rook.java +++ b/src/main/java/domain/piece/Rook.java @@ -1,10 +1,17 @@ package domain.piece; +import domain.Board; import domain.PieceType; +import domain.Position; import domain.Team; public class Rook extends Piece{ public Rook(Team team) { super(team, PieceType.ROOK); } + + @Override + boolean canMove(Position from, Position to, Board board) { + return false; + } } diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index b6c3da4829..9d619f8bc1 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -30,6 +30,8 @@ protected Map initializeElephantHorseFormation(Team team) { } } + // TODO : 보드판 전체 초기화 확인 + /** * 1. 한나라 기본 기물이 올바르게 배치된다.(상,마 제외) */ diff --git a/src/test/java/domain/PieceTest.java b/src/test/java/domain/PieceTest.java deleted file mode 100644 index 840a4a6e82..0000000000 --- a/src/test/java/domain/PieceTest.java +++ /dev/null @@ -1,4 +0,0 @@ -package domain; - -public class PieceTest { -} diff --git a/src/test/java/domain/piece/PawnTest.java b/src/test/java/domain/piece/PawnTest.java new file mode 100644 index 0000000000..1806b7bea6 --- /dev/null +++ b/src/test/java/domain/piece/PawnTest.java @@ -0,0 +1,42 @@ +package domain.piece; + +import domain.Board; +import domain.Position; +import domain.Team; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; +import strategy.InnerElephantFormationStrategy; + +import static org.assertj.core.api.Assertions.assertThat; + +class PawnTest { + private Board board; + + @BeforeEach + void setUp(){ + InitializeStrategy strategy = new InnerElephantFormationStrategy(); + this.board = new Board(strategy, strategy); + } + + /** + * 졸/병 규칙 : 앞, 양 옆 한 칸씩 이동 가능 + */ + + /** + * 이동 진로가 빈칸인 경우 1. 한칸 앞이 빈칸인 경우, 이동할 수 있다. 2. 한칸 오른쪽이 빈칸인 경우, 이동할 수 있다. 3. 한칸 왼쪽이 빈칸인 경우, 이동할 수 있다. + */ + + @Test + void 한칸_앞이_빈칸인_경우_이동할_수_있다() { + // given + Piece pawn = new Pawn(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6,1); + + // then + assertThat(pawn.canMove(from, to, board)).isEqualTo(true); + } +} From 2fd153b90452f39d66aa185c52155abc218733d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 13:50:52 +0900 Subject: [PATCH 06/27] =?UTF-8?q?feat:=20=EC=A1=B8=20=EC=9D=B4=EB=8F=99=20?= =?UTF-8?q?=EB=AA=A9=EC=A0=81=EC=A7=80=EC=97=90=20=EA=B0=99=EC=9D=80=20?= =?UTF-8?q?=ED=8C=80=EC=9D=B4=20=EC=9E=88=EB=8A=94=20=EA=B2=BD=EC=9A=B0=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EA=B7=9C=EC=B9=99=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/Board.java | 14 ++++--- src/main/java/domain/piece/Pawn.java | 8 +++- src/main/java/domain/piece/Piece.java | 4 ++ src/test/java/domain/piece/PawnTest.java | 40 ++++++++++++++----- .../domain/strategy/NoInitializeStrategy.java | 20 ++++++++++ src/test/java/domain/stub/StubBoard.java | 17 ++++++++ 6 files changed, 86 insertions(+), 17 deletions(-) create mode 100644 src/test/java/domain/strategy/NoInitializeStrategy.java create mode 100644 src/test/java/domain/stub/StubBoard.java diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index d59a5d867a..1bcdcf8cbe 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -6,7 +6,7 @@ import strategy.InitializeStrategy; public class Board { - private final Map pieces = new HashMap<>(); + protected final Map pieces = new HashMap<>(); public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanInitializeStrategy) { initTeamBoard(choInitializeStrategy, Team.CHO); @@ -25,11 +25,15 @@ public boolean isExistSameType(Position position, Piece piece) { .equals(piece.getType()); } - private void initTeamBoard(InitializeStrategy strategy, Team team) { - pieces.putAll(strategy.initialize(team)); - } - public boolean isEmpty(Position position) { return !pieces.containsKey(position); } + + public boolean hasSameTeamOn(Position position, Piece piece) { + return pieces.get(position).isSameTeam(piece); + } + + private void initTeamBoard(InitializeStrategy strategy, Team team) { + pieces.putAll(strategy.initialize(team)); + } } diff --git a/src/main/java/domain/piece/Pawn.java b/src/main/java/domain/piece/Pawn.java index 7f2d162b10..df7c16cf8e 100644 --- a/src/main/java/domain/piece/Pawn.java +++ b/src/main/java/domain/piece/Pawn.java @@ -20,10 +20,14 @@ public boolean canMove(Position from, Position to, Board board) { * 3. 초나라 구현 후 한나라 상황을 고려하여 수정한다. */ - return isEmptySpace(from, to, board); + if (isEmptySpace(to, board)) { + return true; + } + + return !board.hasSameTeamOn(to, this); } - private boolean isEmptySpace(Position from, Position to, Board board) { + private boolean isEmptySpace(Position to, Board board) { return board.isEmpty(to); } } diff --git a/src/main/java/domain/piece/Piece.java b/src/main/java/domain/piece/Piece.java index d07624b94d..7a55a13230 100644 --- a/src/main/java/domain/piece/Piece.java +++ b/src/main/java/domain/piece/Piece.java @@ -18,5 +18,9 @@ public PieceType getType() { return this.type; } + public boolean isSameTeam(Piece other) { + return this.team == other.team; + } + abstract boolean canMove(Position from, Position to, Board board); } diff --git a/src/test/java/domain/piece/PawnTest.java b/src/test/java/domain/piece/PawnTest.java index 1806b7bea6..29b04dde65 100644 --- a/src/test/java/domain/piece/PawnTest.java +++ b/src/test/java/domain/piece/PawnTest.java @@ -3,21 +3,17 @@ import domain.Board; import domain.Position; import domain.Team; -import org.junit.jupiter.api.BeforeEach; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; import org.junit.jupiter.api.Test; import strategy.InitializeStrategy; -import strategy.InnerElephantFormationStrategy; import static org.assertj.core.api.Assertions.assertThat; class PawnTest { - private Board board; - - @BeforeEach - void setUp(){ - InitializeStrategy strategy = new InnerElephantFormationStrategy(); - this.board = new Board(strategy, strategy); - } + private final InitializeStrategy strategy = new NoInitializeStrategy(); /** * 졸/병 규칙 : 앞, 양 옆 한 칸씩 이동 가능 @@ -30,13 +26,37 @@ void setUp(){ @Test void 한칸_앞이_빈칸인_경우_이동할_수_있다() { // given + Board board = new StubBoard(strategy); Piece pawn = new Pawn(Team.CHO); // when Position from = Position.from(7, 1); - Position to = Position.from(6,1); + Position to = Position.from(6, 1); // then assertThat(pawn.canMove(from, to, board)).isEqualTo(true); } + + /** + * 목적지에 같은 팀이 있는 경우 1. 목적지가 한칸 앞인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. 2. 목적지가 한칸 오른쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + * 3. 목적지가 한칸 왼쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + */ + + @Test + void 목적지가_한_칸_앞인_경우이면서_목적지에_같은_팀이_있는_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece pawn = new Pawn(Team.CHO); + + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Pawn(Team.CHO)); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(pawn.canMove(from, to, board)).isEqualTo(false); + } } diff --git a/src/test/java/domain/strategy/NoInitializeStrategy.java b/src/test/java/domain/strategy/NoInitializeStrategy.java new file mode 100644 index 0000000000..6316c8acb5 --- /dev/null +++ b/src/test/java/domain/strategy/NoInitializeStrategy.java @@ -0,0 +1,20 @@ +package domain.strategy; + +import domain.Position; +import domain.Team; +import domain.piece.Piece; +import java.util.HashMap; +import java.util.Map; +import strategy.InitializeStrategy; + +public class NoInitializeStrategy extends InitializeStrategy { + @Override + public Map initialize(Team team) { + return new HashMap<>(); + } + + @Override + public Map initializeElephantHorseFormation(Team team) { + return new HashMap<>(); + } +} diff --git a/src/test/java/domain/stub/StubBoard.java b/src/test/java/domain/stub/StubBoard.java new file mode 100644 index 0000000000..c5402b384a --- /dev/null +++ b/src/test/java/domain/stub/StubBoard.java @@ -0,0 +1,17 @@ +package domain.stub; + +import domain.Board; +import domain.Position; +import domain.piece.Piece; +import java.util.Map; +import strategy.InitializeStrategy; + +public class StubBoard extends Board { + public StubBoard(InitializeStrategy noInitializeStrategy) { + super(noInitializeStrategy, noInitializeStrategy); + } + + public void putPieces(Map pieces) { + this.pieces.putAll(pieces); + } +} From 1470386a76f3dedd09c6d147fcf377393aefe9e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 16:41:36 +0900 Subject: [PATCH 07/27] =?UTF-8?q?feat:=20=EC=A1=B8=20=EC=A7=84=ED=96=89=20?= =?UTF-8?q?=EB=B0=A9=ED=96=A5=20=EB=B0=8F=20=EA=B1=B0=EB=A6=AC=EA=B0=80,?= =?UTF-8?q?=20=EC=8B=A4=EC=A0=9C=20=EA=B8=B0=EB=AC=BC=EC=9D=98=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=EA=B7=9C=EC=B9=99=EA=B3=BC=20=EB=8F=99=EC=9D=BC?= =?UTF-8?q?=ED=95=9C=EC=A7=80=20=ED=8C=90=EB=8B=A8=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/Position.java | 10 ++++++- src/main/java/domain/piece/Pawn.java | 15 ++++++++-- src/test/java/domain/piece/PawnTest.java | 37 ++++++++++++++++++++++-- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/src/main/java/domain/Position.java b/src/main/java/domain/Position.java index 8671eb4b75..897650985c 100644 --- a/src/main/java/domain/Position.java +++ b/src/main/java/domain/Position.java @@ -6,7 +6,7 @@ public final class Position { private final int row; private final int column; - private Position(int row, int column){ + private Position(int row, int column) { this.row = row; this.column = column; } @@ -15,6 +15,14 @@ public static Position from(int row, int column) { return new Position(row, column); } + public int rowDistanceTo(Position other) { + return other.row - row; + } + + public int columnDistanceTo(Position other) { + return other.column - column; + } + @Override public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { diff --git a/src/main/java/domain/piece/Pawn.java b/src/main/java/domain/piece/Pawn.java index df7c16cf8e..cf57622ee2 100644 --- a/src/main/java/domain/piece/Pawn.java +++ b/src/main/java/domain/piece/Pawn.java @@ -14,12 +14,16 @@ public Pawn(Team team) { public boolean canMove(Position from, Position to, Board board) { /** * TODO: - * 0. 졸/병이 실제로 이동 가능한 거리인가 확인 - * 1. 이동 위치에, 같은 팀이 있는 경우 예외 * 2. 판의 범위를 넘어서는 경우 예외 -> 옆인지, 앞인지로 분기 * 3. 초나라 구현 후 한나라 상황을 고려하여 수정한다. */ + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + + if (isEmptySpace(to, board)) { return true; } @@ -30,4 +34,11 @@ public boolean canMove(Position from, Position to, Board board) { private boolean isEmptySpace(Position to, Board board) { return board.isEmpty(to); } + + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + if (team == Team.CHO) { + return Math.abs(from.columnDistanceTo(to)) == 1 || from.rowDistanceTo(to) == -1; + } + return Math.abs(from.columnDistanceTo(to)) == 1 || from.rowDistanceTo(to) == 1; + } } diff --git a/src/test/java/domain/piece/PawnTest.java b/src/test/java/domain/piece/PawnTest.java index 29b04dde65..6bc9c44e2f 100644 --- a/src/test/java/domain/piece/PawnTest.java +++ b/src/test/java/domain/piece/PawnTest.java @@ -17,12 +17,43 @@ class PawnTest { /** * 졸/병 규칙 : 앞, 양 옆 한 칸씩 이동 가능 + * 1. 도착 지점이 한칸 앞, 혹은 양옆인지 검증 */ + @Test + void 도착_지점이_한칸거리이면서_양쪽_옆_혹은_앞인_경우_정상_테스트(){ + // given + Board board = new StubBoard(strategy); + Piece pawn = new Pawn(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + // 규칙은 기물이 가지고 있음, 이동 가능 여부는 보드가 판단 + // 그럼 가능한 거리인가에 대한 판단은 누가? + assertThat(pawn.canMove(from, to, board)).isEqualTo(true); + } + + @Test + void 도착_지점이_wkd한칸거리이면서_양쪽_옆_혹은_앞인_경우_정상_테스트(){ + // given + Board board = new StubBoard(strategy); + Piece pawn = new Pawn(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + // 규칙은 기물이 가지고 있음, 이동 가능 여부는 보드가 판단 + // 그럼 가능한 거리인가에 대한 판단은 누가? + assertThat(pawn.canMove(from, to, board)).isEqualTo(true); + } /** * 이동 진로가 빈칸인 경우 1. 한칸 앞이 빈칸인 경우, 이동할 수 있다. 2. 한칸 오른쪽이 빈칸인 경우, 이동할 수 있다. 3. 한칸 왼쪽이 빈칸인 경우, 이동할 수 있다. */ - @Test void 한칸_앞이_빈칸인_경우_이동할_수_있다() { // given @@ -38,7 +69,9 @@ class PawnTest { } /** - * 목적지에 같은 팀이 있는 경우 1. 목적지가 한칸 앞인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. 2. 목적지가 한칸 오른쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + * 목적지에 같은 팀이 있는 경우 + * 1. 목적지가 한칸 앞인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + * 2. 목적지가 한칸 오른쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. * 3. 목적지가 한칸 왼쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. */ From c6ff6624e5e0d39f0f0898377e11ec23ecaf5799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 16:49:15 +0900 Subject: [PATCH 08/27] =?UTF-8?q?chore:=20=EA=B8=B0=EB=AC=BC=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=EC=8B=9C=20=EB=B2=94=EC=9C=84=20=EC=B2=B4=ED=81=AC?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20=EC=8A=A4=EC=BC=88=EB=A0=88?= =?UTF-8?q?=ED=86=A4=20=EC=BD=94=EB=93=9C=20=EC=84=A0=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/Board.java | 7 +++++++ src/main/java/domain/piece/Pawn.java | 1 - src/test/java/domain/BoardTest.java | 14 ++++++++++++++ src/test/java/domain/piece/PawnTest.java | 16 ---------------- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index 1bcdcf8cbe..e637f225f8 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -36,4 +36,11 @@ public boolean hasSameTeamOn(Position position, Piece piece) { private void initTeamBoard(InitializeStrategy strategy, Team team) { pieces.putAll(strategy.initialize(team)); } + + /** + * TODO: 추후 보드에서 기물을 이동시킬때 올바른 범위인지 체크하는 메서드 + */ + private boolean validateMoveable(Position to) { + return false; + } } diff --git a/src/main/java/domain/piece/Pawn.java b/src/main/java/domain/piece/Pawn.java index cf57622ee2..33609dfed7 100644 --- a/src/main/java/domain/piece/Pawn.java +++ b/src/main/java/domain/piece/Pawn.java @@ -23,7 +23,6 @@ public boolean canMove(Position from, Position to, Board board) { } - if (isEmptySpace(to, board)) { return true; } diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index 9d619f8bc1..18b0c8c4f0 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -264,4 +264,18 @@ protected Map initializeElephantHorseFormation(Team team) { assertThat(board.isExistSameType(hanFirstHorse, new Horse(Team.HAN))).isEqualTo(true); assertThat(board.isExistSameType(hanSecondHorse, new Horse(Team.HAN))).isEqualTo(true); } + + /** + * 보드 범위 테스트 + * 1. 기물의 목적지가 보드의 범위를 넘어가면 안된다. + */ + + @Test + void 목적지가_보드의_범위를_넘어갈_경우_예외를_반환한다() { + // given + + // when + + // then + } } diff --git a/src/test/java/domain/piece/PawnTest.java b/src/test/java/domain/piece/PawnTest.java index 6bc9c44e2f..ee1d0aea56 100644 --- a/src/test/java/domain/piece/PawnTest.java +++ b/src/test/java/domain/piece/PawnTest.java @@ -35,22 +35,6 @@ class PawnTest { assertThat(pawn.canMove(from, to, board)).isEqualTo(true); } - @Test - void 도착_지점이_wkd한칸거리이면서_양쪽_옆_혹은_앞인_경우_정상_테스트(){ - // given - Board board = new StubBoard(strategy); - Piece pawn = new Pawn(Team.CHO); - - // when - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); - - // then - // 규칙은 기물이 가지고 있음, 이동 가능 여부는 보드가 판단 - // 그럼 가능한 거리인가에 대한 판단은 누가? - assertThat(pawn.canMove(from, to, board)).isEqualTo(true); - } - /** * 이동 진로가 빈칸인 경우 1. 한칸 앞이 빈칸인 경우, 이동할 수 있다. 2. 한칸 오른쪽이 빈칸인 경우, 이동할 수 있다. 3. 한칸 왼쪽이 빈칸인 경우, 이동할 수 있다. */ From 63b8f8a9998912fb343d5e02167cd50e6accdc3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 16:50:55 +0900 Subject: [PATCH 09/27] =?UTF-8?q?chore:=20=EC=A3=BC=EC=84=9D=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/domain/piece/Pawn.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/domain/piece/Pawn.java b/src/main/java/domain/piece/Pawn.java index 33609dfed7..eac19a307f 100644 --- a/src/main/java/domain/piece/Pawn.java +++ b/src/main/java/domain/piece/Pawn.java @@ -12,17 +12,10 @@ public Pawn(Team team) { @Override public boolean canMove(Position from, Position to, Board board) { - /** - * TODO: - * 2. 판의 범위를 넘어서는 경우 예외 -> 옆인지, 앞인지로 분기 - * 3. 초나라 구현 후 한나라 상황을 고려하여 수정한다. - */ - if (!isCorrectMoveDistanceAndDirection(from, to)) { return false; } - if (isEmptySpace(to, board)) { return true; } From 0c2947b46c25c6d9857d8c8a51b48a5652bb4f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 19:59:05 +0900 Subject: [PATCH 10/27] =?UTF-8?q?feat:=20=ED=8F=AC=20=EA=B8=B0=EB=AC=BC=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EA=B7=9C=EC=B9=99=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=9E=91=EC=84=B1=20=EB=B0=8F=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/Board.java | 63 ++++++- src/main/java/domain/Position.java | 30 ++++ src/main/java/domain/piece/Cannon.java | 63 ++++++- src/main/java/domain/piece/Piece.java | 4 + src/test/java/domain/piece/CannonTest.java | 183 +++++++++++++++++++++ 5 files changed, 338 insertions(+), 5 deletions(-) create mode 100644 src/test/java/domain/piece/CannonTest.java diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index e637f225f8..1ca94153ca 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -1,7 +1,9 @@ package domain; import domain.piece.Piece; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; import strategy.InitializeStrategy; @@ -21,8 +23,12 @@ public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanIni * @return */ public boolean isExistSameType(Position position, Piece piece) { - return pieces.get(position).getType() - .equals(piece.getType()); + if (hasPieceInPosition(position)) { + return pieces.get(position).getType() + .equals(piece.getType()); + } + + return false; } public boolean isEmpty(Position position) { @@ -30,13 +36,64 @@ public boolean isEmpty(Position position) { } public boolean hasSameTeamOn(Position position, Piece piece) { - return pieces.get(position).isSameTeam(piece); + if (hasPieceInPosition(position)) { + return pieces.get(position).isSameTeam(piece); + } + + return false; + } + + private boolean hasPieceInPosition(Position position) { + return pieces.containsKey(position); } private void initTeamBoard(InitializeStrategy strategy, Team team) { pieces.putAll(strategy.initialize(team)); } + public List findPiecesInLinePath(Position from, Position to) { + if (from.isSameRow(to)) { + return findPiecesInRow(from, to); + } + + if (from.isSameColumn(to)) { + return findPiecesInColumn(from, to); + } + return new ArrayList<>(); + } + + private List findPiecesInRow(Position from, Position to) { + List result = new ArrayList<>(); + + int row = from.getRow(); + int start = Math.min(from.getColumn(), to.getColumn()); + int end = Math.max(from.getColumn(), to.getColumn()); + + for (int column = start + 1; column < end; column++) { + Position searchPosition = Position.from(row, column); + if (pieces.containsKey(searchPosition)) { + result.add(pieces.get(searchPosition)); + } + } + return result; + } + + private List findPiecesInColumn(Position from, Position to) { + List result = new ArrayList<>(); + + int column = from.getColumn(); + int start = Math.min(from.getRow(), to.getRow()); + int end = Math.max(from.getRow(), to.getRow()); + + for (int row = start + 1; row < end; row++) { + Position searchPosition = Position.from(row, column); + if (pieces.containsKey(searchPosition)) { + result.add(pieces.get(searchPosition)); + } + } + return result; + } + /** * TODO: 추후 보드에서 기물을 이동시킬때 올바른 범위인지 체크하는 메서드 */ diff --git a/src/main/java/domain/Position.java b/src/main/java/domain/Position.java index 897650985c..69f1cfd720 100644 --- a/src/main/java/domain/Position.java +++ b/src/main/java/domain/Position.java @@ -15,6 +15,14 @@ public static Position from(int row, int column) { return new Position(row, column); } + public int getRow(){ + return this.row; + } + + public int getColumn(){ + return this.column; + } + public int rowDistanceTo(Position other) { return other.row - row; } @@ -23,6 +31,28 @@ public int columnDistanceTo(Position other) { return other.column - column; } + public boolean isSameColumn(Position other) { + int rowDistance = rowDistanceTo(other); + int columnDistance = columnDistanceTo(other); + + if (rowDistance != 0 && columnDistance == 0) { + return true; + } + + return false; + } + + public boolean isSameRow(Position other) { + int rowDistance = rowDistanceTo(other); + int columnDistance = columnDistanceTo(other); + + if (rowDistance == 0 && columnDistance != 0) { + return true; + } + + return false; + } + @Override public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { diff --git a/src/main/java/domain/piece/Cannon.java b/src/main/java/domain/piece/Cannon.java index a99688a5f5..f5235d1fb6 100644 --- a/src/main/java/domain/piece/Cannon.java +++ b/src/main/java/domain/piece/Cannon.java @@ -4,14 +4,73 @@ import domain.PieceType; import domain.Position; import domain.Team; +import java.util.List; -public class Cannon extends Piece{ +/** + * 1. 도착 지점이 같은 열이 아닌 경우 이동 불가 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 3. 도착지랑 출발지 사이에 오직 하나의 말이 존재하지 않는 경우 이동 불가 4. 도착지와 출발지 사이의 말 + * 하나가 포인 경우 이동 불가 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 6. 이외는 이동 가능 + */ +public class Cannon extends Piece { public Cannon(Team team) { super(team, PieceType.CANNON); } @Override - boolean canMove(Position from, Position to, Board board) { + public boolean canMove(Position from, Position to, Board board) { + // 1. 도착 지점이 같은 열 또는 행이 아닌 경우 이동 불가 + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + // 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + if (board.hasSameTeamOn(to, this)) { + return false; + } + + // 3. 도착지랑 출발지 사이에 오직 하나의 말이 존재하지 않는 경우 이동 불가 + if (!hasOnePieceInPath(from, to, board)) { + return false; + } + + // 4. 도착지와 출발지 사이의 말 하나가 포인 경우 이동 불가 + if (hasCannonTypeInList(from, to, board)) { + return false; + } + + // 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 + if (!isEmptySpace(to, board) && isExistCannon(to, board)) { + return false; + } + + return true; + } + + private boolean isEmptySpace(Position to, Board board) { + return board.isEmpty(to); + } + + private boolean isExistCannon(Position to, Board board) { + return board.isExistSameType(to, this); + } + + /** + * 1. 도착 지점이 같은 열이 아닌 경우 이동 불가 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 3. 도착지랑 출발지 사이에 오직 하나의 말이 존재하지 않는 경우 이동 불가 4. 도착지와 출발지 + * 사이의 말 하나가 포인 경우 이동 불가 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 6. 이외는 이동 가능 + */ + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + return from.isSameColumn(to) || from.isSameRow(to); + } + + private boolean hasOnePieceInPath(Position from, Position to, Board board) { + if (board.findPiecesInLinePath(from, to).size() == 1) { + return true; + } return false; } + + private boolean hasCannonTypeInList(Position from, Position to, Board board) { + List result = board.findPiecesInLinePath(from, to); + return result.stream() + .anyMatch(Piece::isCannon); + } } diff --git a/src/main/java/domain/piece/Piece.java b/src/main/java/domain/piece/Piece.java index 7a55a13230..8effbf26b9 100644 --- a/src/main/java/domain/piece/Piece.java +++ b/src/main/java/domain/piece/Piece.java @@ -22,5 +22,9 @@ public boolean isSameTeam(Piece other) { return this.team == other.team; } + public boolean isCannon() { + return this.type == PieceType.CANNON; + } + abstract boolean canMove(Position from, Position to, Board board); } diff --git a/src/test/java/domain/piece/CannonTest.java b/src/test/java/domain/piece/CannonTest.java new file mode 100644 index 0000000000..f750edaee4 --- /dev/null +++ b/src/test/java/domain/piece/CannonTest.java @@ -0,0 +1,183 @@ +package domain.piece; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.Board; +import domain.Position; +import domain.Team; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +class CannonTest { + private final InitializeStrategy strategy = new NoInitializeStrategy(); + /** + * 1. 도착 지점이 같은 열과 행이 아닌 경우 이동 불가 + * 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + * 3. 도착지랑 출발지 사이에 오직 하나의 말이 존재하지 않는 경우 이동 불가 + * 4. 도착지와 출발지 사이의 말 하나가 포인 경우 이동 불가 + * 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 + * 6. 이외는 이동 가능 + */ + + /** + * 1. 도착 지점이 같은 열이 아닌 경우 이동 불가 + */ + @Test + void 도착_지점이_같은_열_혹은_행이_아닌_경우_이동_불가능하다() { + // given + Board board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(4, 2); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + */ + @Test + void 도착지에_같은_팀이_존재하는_경우_이동_불가능_하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 3); + + Map testPiece = new HashMap<>(); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 3. 도착지랑 출발지 사이에 오직 하나의 말이 존재하지 않는 경우 이동 불가 + */ + @Test + void 도착지랑_출발지_사이에_오직_하나의_말이_존재하지_않는_경우_이동_불가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 4); + Position betweenFirst = Position.from(5, 2); + Position betweenSecond = Position.from(5, 3); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + testPiece.put(betweenFirst, new Pawn(Team.CHO)); + testPiece.put(betweenSecond, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 4. 도착지와 출발지 사이의 말 하나가 포인 경우 이동 불가 + */ + @Test + void 도착지와_출발지_사이의_말_하나가_포인_경우_이동_불가() { + // given + StubBoard board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 4); + Position between = Position.from(5, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + testPiece.put(between, new Cannon(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 + */ + @Test + void 도착지에_상대팀_말이_존재하면서_해당_말이_포인_경우_이동_불가() { + // given + StubBoard board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 4); + Position between = Position.from(5, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + testPiece.put(between, new Pawn(Team.CHO)); + testPiece.put(to, new Cannon(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 정상 테스트 + */ + @Test + void 도착지에_포가_아닌_상대팀_말이_존재하면서_중간에_포가_아닌_오직_하나의_말만_존재하는_경우_이동_가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 4); + Position between = Position.from(5, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + testPiece.put(between, new Pawn(Team.CHO)); + testPiece.put(to, new Pawn(Team.HAN)); + + board.putPieces(testPiece); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(true); + } + + @Test + void 도착지가_빈칸이면서_중간에_포가_아닌_오직_하나의_말만_존재하는_경우_이동_가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece cannon = new Cannon(Team.CHO); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 4); + Position between = Position.from(5, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + testPiece.put(between, new Pawn(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThat(cannon.canMove(from, to, board)).isEqualTo(true); + } +} From 59fe958288e1fe3d79f8232860ea75d11ea2ca73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 20:20:11 +0900 Subject: [PATCH 11/27] =?UTF-8?q?feat:=20=EC=B0=A8=20=EC=9D=B4=EB=8F=99=20?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/piece/Rook.java | 26 +++++ src/test/java/domain/piece/CannonTest.java | 16 +-- src/test/java/domain/piece/RookTest.java | 108 +++++++++++++++++++++ 3 files changed, 142 insertions(+), 8 deletions(-) create mode 100644 src/test/java/domain/piece/RookTest.java diff --git a/src/main/java/domain/piece/Rook.java b/src/main/java/domain/piece/Rook.java index 5043d6ae13..b4f13d8ec7 100644 --- a/src/main/java/domain/piece/Rook.java +++ b/src/main/java/domain/piece/Rook.java @@ -12,6 +12,32 @@ public Rook(Team team) { @Override boolean canMove(Position from, Position to, Board board) { + // 1. 도착 지점이 같은 열 또는 행이 아닌 경우 이동 불가 + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + // 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + if (board.hasSameTeamOn(to, this)) { + return false; + } + + // 3. 도착지랑 출발지 사이에 말이 하나라도 존재하면 이동 불가 + if (!hasOnePieceInPath(from, to, board)) { + return false; + } + + return true; + } + + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + return from.isSameColumn(to) || from.isSameRow(to); + } + + private boolean hasOnePieceInPath(Position from, Position to, Board board) { + if (board.findPiecesInLinePath(from, to).isEmpty()) { + return true; + } return false; } } diff --git a/src/test/java/domain/piece/CannonTest.java b/src/test/java/domain/piece/CannonTest.java index f750edaee4..3399e4b167 100644 --- a/src/test/java/domain/piece/CannonTest.java +++ b/src/test/java/domain/piece/CannonTest.java @@ -111,10 +111,10 @@ class CannonTest { } /** - * 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 + * 정상 테스트 */ @Test - void 도착지에_상대팀_말이_존재하면서_해당_말이_포인_경우_이동_불가() { + void 도착지에_포가_아닌_상대팀_말이_존재하면서_중간에_포가_아닌_오직_하나의_말만_존재하는_경우_이동_가능하다() { // given StubBoard board = new StubBoard(strategy); Piece cannon = new Cannon(Team.CHO); @@ -127,19 +127,19 @@ class CannonTest { Map testPiece = new HashMap<>(); testPiece.put(from, new Cannon(Team.CHO)); testPiece.put(between, new Pawn(Team.CHO)); - testPiece.put(to, new Cannon(Team.CHO)); + testPiece.put(to, new Pawn(Team.HAN)); board.putPieces(testPiece); // then - assertThat(cannon.canMove(from, to, board)).isEqualTo(false); + assertThat(cannon.canMove(from, to, board)).isEqualTo(true); } /** - * 정상 테스트 + * 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 */ @Test - void 도착지에_포가_아닌_상대팀_말이_존재하면서_중간에_포가_아닌_오직_하나의_말만_존재하는_경우_이동_가능하다() { + void 도착지에_상대팀_말이_존재하면서_해당_말이_포인_경우_이동_불가() { // given StubBoard board = new StubBoard(strategy); Piece cannon = new Cannon(Team.CHO); @@ -152,12 +152,12 @@ class CannonTest { Map testPiece = new HashMap<>(); testPiece.put(from, new Cannon(Team.CHO)); testPiece.put(between, new Pawn(Team.CHO)); - testPiece.put(to, new Pawn(Team.HAN)); + testPiece.put(to, new Cannon(Team.CHO)); board.putPieces(testPiece); // then - assertThat(cannon.canMove(from, to, board)).isEqualTo(true); + assertThat(cannon.canMove(from, to, board)).isEqualTo(false); } @Test diff --git a/src/test/java/domain/piece/RookTest.java b/src/test/java/domain/piece/RookTest.java new file mode 100644 index 0000000000..bdda4584a1 --- /dev/null +++ b/src/test/java/domain/piece/RookTest.java @@ -0,0 +1,108 @@ +package domain.piece; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.Board; +import domain.Position; +import domain.Team; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +public class RookTest { + private final InitializeStrategy strategy = new NoInitializeStrategy(); + + /** + * 1. 도착 지점이 같은 열과 행이 아닌 경우 이동 불가 + * 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + * 3. 도착지랑 출발지 사이에 말이 하나라도 존재하면 이동 불가 + */ + + /** + * 1. 도착 지점이 같은 열이 아닌 경우 이동 불가 + */ + @Test + void 도착_지점이_같은_열_혹은_행이_아닌_경우_이동_불가능하다() { + // given + Board board = new StubBoard(strategy); + Piece rook = new Rook(Team.CHO); + + // when + Position from = Position.from(10, 1); + Position to = Position.from(9, 2); + + // then + assertThat(rook.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + */ + @Test + void 도착지에_같은_팀이_존재하는_경우_이동_불가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece rook = new Rook(Team.CHO); + + // when + Position from = Position.from(10, 1); + Position to = Position.from(10, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Rook(Team.CHO)); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // then + assertThat(rook.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 3. 도착지랑 출발지 사이에 말이 하나라도 존재하면 이동 불가 + */ + @Test + void 도착지랑_출발지_사이에_말이_하나라도_존재하면_이동_불가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece rook = new Rook(Team.CHO); + + // when + Position from = Position.from(10, 1); + Position to = Position.from(10, 3); + Position between = Position.from(10, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Rook(Team.CHO)); + testPiece.put(between, new Pawn(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThat(rook.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 정상 테스트 + */ + @Test + void 출발지와_도착지_사이에_기물이_없고_직선_움직임인_경우_차는_정상_이동한다() { + // given + StubBoard board = new StubBoard(strategy); + Piece rook = new Rook(Team.CHO); + + // when + Position from = Position.from(10, 1); + Position to = Position.from(10, 3); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Rook(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThat(rook.canMove(from, to, board)).isEqualTo(true); + } +} From 40d3adc9de37872d663a91afcda09b3a207ce72f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 20:27:18 +0900 Subject: [PATCH 12/27] =?UTF-8?q?=EA=B6=81=20=EC=9D=B4=EB=8F=99=20?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Soojin6943 Co-authored-by: sangjun121 --- src/main/java/domain/piece/King.java | 19 +++++- src/test/java/domain/piece/KingTest.java | 77 ++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/test/java/domain/piece/KingTest.java diff --git a/src/main/java/domain/piece/King.java b/src/main/java/domain/piece/King.java index 278a7b4c41..faf630c09f 100644 --- a/src/main/java/domain/piece/King.java +++ b/src/main/java/domain/piece/King.java @@ -10,9 +10,24 @@ public King(Team team) { super(team, PieceType.KING); } - @Override boolean canMove(Position from, Position to, Board board) { - return false; + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + if (isEmptySpace(to, board)) { + return true; + } + + return !board.hasSameTeamOn(to, this); + } + + private boolean isEmptySpace(Position to, Board board) { + return board.isEmpty(to); + } + + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + return Math.abs(from.columnDistanceTo(to)) == 1 || Math.abs(from.rowDistanceTo(to)) == 1; } } diff --git a/src/test/java/domain/piece/KingTest.java b/src/test/java/domain/piece/KingTest.java new file mode 100644 index 0000000000..d6109d04c2 --- /dev/null +++ b/src/test/java/domain/piece/KingTest.java @@ -0,0 +1,77 @@ +package domain.piece; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.Board; +import domain.Position; +import domain.Team; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +public class KingTest { + private final InitializeStrategy strategy = new NoInitializeStrategy(); + + /** + * 왕 규칙 : 앞, 뒤, 양옆 한 칸씩 이동 가능 + * 1. 도착 지점이 한칸 앞뒤, 혹은 양옆인지 검증 + */ + @Test + void 도착_지점이_한칸거리이면서_양쪽_옆_혹은_앞뒤인_경우_정상_테스트(){ + // given + Board board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + assertThat(king.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 이동 진로가 빈칸인 경우 1. 한칸 앞이 빈칸인 경우, 이동할 수 있다. 2. 한칸 오른쪽이 빈칸인 경우, 이동할 수 있다. 3. 한칸 왼쪽이 빈칸인 경우, 이동할 수 있다. + */ + @Test + void 한칸_앞이_빈칸인_경우_이동할_수_있다() { + // given + Board board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + assertThat(king.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 목적지에 같은 팀이 있는 경우 + * 1. 목적지가 한칸 앞인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + * 2. 목적지가 한칸 뒤인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + * 3. 목적지가 한칸 오른쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + * 4. 목적지가 한칸 왼쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + */ + @Test + void 목적지가_한_칸_앞인_경우이면서_목적지에_같은_팀이_있는_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(false); + } +} From f4a0e68b42a309dabd530085c604af56169ae28d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 20:30:34 +0900 Subject: [PATCH 13/27] =?UTF-8?q?feat:=20=EC=82=AC=20=EC=9D=B4=EB=8F=99=20?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=B0=8F=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/piece/Cannon.java | 4 -- src/main/java/domain/piece/Elephant.java | 6 ++ src/main/java/domain/piece/Guard.java | 20 ++++++- src/test/java/domain/piece/GuardTest.java | 73 +++++++++++++++++++++++ src/test/java/domain/piece/KingTest.java | 2 +- src/test/java/domain/piece/RookTest.java | 2 +- 6 files changed, 99 insertions(+), 8 deletions(-) create mode 100644 src/test/java/domain/piece/GuardTest.java diff --git a/src/main/java/domain/piece/Cannon.java b/src/main/java/domain/piece/Cannon.java index f5235d1fb6..5b19ed4e50 100644 --- a/src/main/java/domain/piece/Cannon.java +++ b/src/main/java/domain/piece/Cannon.java @@ -53,10 +53,6 @@ private boolean isExistCannon(Position to, Board board) { return board.isExistSameType(to, this); } - /** - * 1. 도착 지점이 같은 열이 아닌 경우 이동 불가 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 3. 도착지랑 출발지 사이에 오직 하나의 말이 존재하지 않는 경우 이동 불가 4. 도착지와 출발지 - * 사이의 말 하나가 포인 경우 이동 불가 5. 도착지에 상대팀 말이 존재하면서, 해당 말이 포인 경우 이동 불가 6. 이외는 이동 가능 - */ private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { return from.isSameColumn(to) || from.isSameRow(to); } diff --git a/src/main/java/domain/piece/Elephant.java b/src/main/java/domain/piece/Elephant.java index 923a1e783c..d0aba40314 100644 --- a/src/main/java/domain/piece/Elephant.java +++ b/src/main/java/domain/piece/Elephant.java @@ -10,6 +10,12 @@ public Elephant(Team team) { super(team, PieceType.ELEPHANT); } + /** + * 1. 직진 2칸 + 대각선 1칸만 이동 가능 + * 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + * 3. 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 + * 4. 이외는 이동 가능 + */ @Override boolean canMove(Position from, Position to, Board board) { return false; diff --git a/src/main/java/domain/piece/Guard.java b/src/main/java/domain/piece/Guard.java index 89e0b19d0a..42e6417cf0 100644 --- a/src/main/java/domain/piece/Guard.java +++ b/src/main/java/domain/piece/Guard.java @@ -5,13 +5,29 @@ import domain.Position; import domain.Team; -public class Guard extends Piece{ +public class Guard extends Piece { public Guard(Team team) { super(team, PieceType.GUARD); } @Override boolean canMove(Position from, Position to, Board board) { - return false; + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + if (isEmptySpace(to, board)) { + return true; + } + + return !board.hasSameTeamOn(to, this); + } + + private boolean isEmptySpace(Position to, Board board) { + return board.isEmpty(to); + } + + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + return Math.abs(from.columnDistanceTo(to)) == 1 || Math.abs(from.rowDistanceTo(to)) == 1; } } diff --git a/src/test/java/domain/piece/GuardTest.java b/src/test/java/domain/piece/GuardTest.java new file mode 100644 index 0000000000..30bae03687 --- /dev/null +++ b/src/test/java/domain/piece/GuardTest.java @@ -0,0 +1,73 @@ +package domain.piece; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.Board; +import domain.Position; +import domain.Team; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +class GuardTest { + private final InitializeStrategy strategy = new NoInitializeStrategy(); + + /** + * 사 규칙 : 앞, 뒤, 양옆 한 칸씩 이동 가능 1. 도착 지점이 한칸 앞뒤, 혹은 양옆인지 검증 + */ + @Test + void 도착_지점이_한칸거리이면서_양쪽_옆_혹은_앞뒤인_경우_정상_테스트() { + // given + Board board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + assertThat(guard.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 이동 진로가 빈칸인 경우 1. 한칸 앞이 빈칸인 경우, 이동할 수 있다. 2. 한칸 오른쪽이 빈칸인 경우, 이동할 수 있다. 3. 한칸 왼쪽이 빈칸인 경우, 이동할 수 있다. + */ + @Test + void 한칸_앞이_빈칸인_경우_이동할_수_있다() { + // given + Board board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + assertThat(guard.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 목적지에 같은 팀이 있는 경우 1. 목적지가 한칸 앞인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. 2. 목적지가 한칸 뒤인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. 3. + * 목적지가 한칸 오른쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. 4. 목적지가 한칸 왼쪽인 경우이면서 목적지에 같은 팀이 있는 경우 이동할 수 없다. + */ + @Test + void 목적지가_한_칸_앞인_경우이면서_목적지에_같은_팀이_있는_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(false); + } +} diff --git a/src/test/java/domain/piece/KingTest.java b/src/test/java/domain/piece/KingTest.java index d6109d04c2..8d387f99ed 100644 --- a/src/test/java/domain/piece/KingTest.java +++ b/src/test/java/domain/piece/KingTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; import strategy.InitializeStrategy; -public class KingTest { +class KingTest { private final InitializeStrategy strategy = new NoInitializeStrategy(); /** diff --git a/src/test/java/domain/piece/RookTest.java b/src/test/java/domain/piece/RookTest.java index bdda4584a1..f9fd37e0f4 100644 --- a/src/test/java/domain/piece/RookTest.java +++ b/src/test/java/domain/piece/RookTest.java @@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test; import strategy.InitializeStrategy; -public class RookTest { +class RookTest { private final InitializeStrategy strategy = new NoInitializeStrategy(); /** From 8ec818e773d161739f995d74ce1fc31ecca9bc83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 21:42:28 +0900 Subject: [PATCH 14/27] =?UTF-8?q?feat:=20=EB=A7=88,=20=EC=83=81=20?= =?UTF-8?q?=EC=9D=B4=EB=8F=99=20=EA=B7=9C=EC=B9=99=20=EA=B5=AC=ED=98=84=20?= =?UTF-8?q?=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Soojin6943 Co-authored-by: sangjun121 --- src/main/java/domain/Position.java | 4 + src/main/java/domain/piece/Elephant.java | 46 +++++++++- src/main/java/domain/piece/Horse.java | 40 ++++++++ src/test/java/domain/piece/ElephantTest.java | 96 ++++++++++++++++++++ src/test/java/domain/piece/HorseTest.java | 96 ++++++++++++++++++++ 5 files changed, 278 insertions(+), 4 deletions(-) create mode 100644 src/test/java/domain/piece/ElephantTest.java create mode 100644 src/test/java/domain/piece/HorseTest.java diff --git a/src/main/java/domain/Position.java b/src/main/java/domain/Position.java index 69f1cfd720..77ab18d41d 100644 --- a/src/main/java/domain/Position.java +++ b/src/main/java/domain/Position.java @@ -15,6 +15,10 @@ public static Position from(int row, int column) { return new Position(row, column); } + public Position diff(Position other) { + return new Position(this.row - other.row, this.column - other.column); + } + public int getRow(){ return this.row; } diff --git a/src/main/java/domain/piece/Elephant.java b/src/main/java/domain/piece/Elephant.java index d0aba40314..b104912725 100644 --- a/src/main/java/domain/piece/Elephant.java +++ b/src/main/java/domain/piece/Elephant.java @@ -11,13 +11,51 @@ public Elephant(Team team) { } /** - * 1. 직진 2칸 + 대각선 1칸만 이동 가능 - * 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 - * 3. 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 - * 4. 이외는 이동 가능 + * 1. 직진 1칸 + 대각선 2칸만 이동 가능 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 3. 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 4. 이외는 이동 가능 */ @Override boolean canMove(Position from, Position to, Board board) { + // 1. 직진 1칸 + 대각선 2칸만 이동 가능 + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + // 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + if (board.hasSameTeamOn(to, this)) { + return false; + } + + // 3. 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 + if (hasPieceInPath(from, to, board)) { + return false; + } + + return true; + } + + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + int columnDistance = Math.abs(from.columnDistanceTo(to)); + int rowDistance = Math.abs(from.rowDistanceTo(to)); + + return (columnDistance == 2 && rowDistance == 3) || (columnDistance == 3 && rowDistance == 2); + } + + private boolean hasPieceInPath(Position from, Position to, Board board) { + int rowDistance = from.rowDistanceTo(to); + int columnDistance = from.columnDistanceTo(to); + + // 0보다 크면 1, 0보다 작으면 -1 + int row = Integer.signum(rowDistance); + int col = Integer.signum(columnDistance); + + Position duff = Position.from(row, col); + + for (int i = 0; i < 2; i++) { + Position pathPosition = to.diff(duff); + if (!board.isEmpty(pathPosition)) { + return true; + } + } return false; } } diff --git a/src/main/java/domain/piece/Horse.java b/src/main/java/domain/piece/Horse.java index f66e548066..6a757625ab 100644 --- a/src/main/java/domain/piece/Horse.java +++ b/src/main/java/domain/piece/Horse.java @@ -12,6 +12,46 @@ public Horse(Team team) { @Override boolean canMove(Position from, Position to, Board board) { + // 1. 직진 1칸 + 대각선 1칸만 이동 가능 + if (!isCorrectMoveDistanceAndDirection(from, to)) { + return false; + } + + // 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 + if (board.hasSameTeamOn(to, this)) { + return false; + } + + // 3. 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 + if (hasPieceInPath(from, to, board)) { + return false; + } + + return true; + } + + private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + int columnDistance = Math.abs(from.columnDistanceTo(to)); + int rowDistance = Math.abs(from.rowDistanceTo(to)); + + return (columnDistance == 1 && rowDistance == 2) || (columnDistance == 2 && rowDistance == 1); + } + + private boolean hasPieceInPath(Position from, Position to, Board board) { + int rowDistance = from.rowDistanceTo(to); + int columnDistance = from.columnDistanceTo(to); + + // 0보다 크면 1, 0보다 작으면 -1 + int row = Integer.signum(rowDistance); + int col = Integer.signum(columnDistance); + + Position duff = Position.from(row, col); + + Position pathPosition = to.diff(duff); + if (!board.isEmpty(pathPosition)) { + return true; + } + return false; } } diff --git a/src/test/java/domain/piece/ElephantTest.java b/src/test/java/domain/piece/ElephantTest.java new file mode 100644 index 0000000000..13767a589b --- /dev/null +++ b/src/test/java/domain/piece/ElephantTest.java @@ -0,0 +1,96 @@ +package domain.piece; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.Board; +import domain.Position; +import domain.Team; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +class ElephantTest { + private final InitializeStrategy strategy = new NoInitializeStrategy(); + + /** + * 직진 1칸 + 대각선 2칸만 이동 가능 + */ + @Test + void 코끼리의_이동범위가_직진1칸_대각선_2칸이_아닌_경우_움직일수_없다() { + // given + Board board = new StubBoard(strategy); + Piece elephant = new Elephant(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + // then + assertThat(elephant.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 도착지에 같은 팀이 존재하는 경우 이동 불가 + */ + @Test + void 도착지에_같은_팀이_존재하는_경우_이동_불가능하다() { + StubBoard board = new StubBoard(strategy); + Piece elephant = new Elephant(Team.CHO); + + Position from = Position.from(1, 1); + Position to = Position.from(3, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Elephant(Team.CHO)); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(elephant.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 + */ + @Test + void 도착지랑_출발지_사이에_말이_존재하는_경우_이동_불가능하다() { + StubBoard board = new StubBoard(strategy); + Piece elephant = new Elephant(Team.CHO); + + Position from = Position.from(1, 1); + Position pathPosition = Position.from(2, 3); + Position to = Position.from(3, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Elephant(Team.CHO)); + testPiece.put(pathPosition, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(elephant.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 정상테스트 1. 도착지에 같은 팀이 존재하지 않고, 2. 도착지와 출발지 사이에 다른 기물이 존재하지 않는다면 이동 가능 + */ + @Test + void 도착지에_같은_팀이_존재하지_않고_경로에_다른_기물이_존재하지_않을_경우() { + // given + StubBoard board = new StubBoard(strategy); + Piece elephant = new Elephant(Team.CHO); + + // when + Position from = Position.from(10, 3); + Position to = Position.from(7, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Elephant(Team.CHO)); + board.putPieces(testPiece); + + // then + assertThat(elephant.canMove(from, to, board)).isEqualTo(true); + } +} diff --git a/src/test/java/domain/piece/HorseTest.java b/src/test/java/domain/piece/HorseTest.java new file mode 100644 index 0000000000..84832806e0 --- /dev/null +++ b/src/test/java/domain/piece/HorseTest.java @@ -0,0 +1,96 @@ +package domain.piece; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.Board; +import domain.Position; +import domain.Team; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; +import java.util.HashMap; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +public class HorseTest { + private final InitializeStrategy strategy = new NoInitializeStrategy(); + + /** + * 직진 1칸 + 대각선 1칸만 이동 가능 + */ + @Test + void 말의_이동범위가_직진1칸_대각선_1칸이_아닌_경우_움직일수_없다() { + // given + Board board = new StubBoard(strategy); + Piece horse = new Horse(Team.CHO); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 2); + + // then + assertThat(horse.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 도착지에 같은 팀이 존재하는 경우 이동 불가 + */ + @Test + void 도착지에_같은_팀이_존재하는_경우_이동_불가능하다() { + StubBoard board = new StubBoard(strategy); + Piece horse = new Horse(Team.CHO); + + Position from = Position.from(1, 1); + Position to = Position.from(3, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Horse(Team.CHO)); + testPiece.put(to, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(horse.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 + */ + @Test + void 도착지랑_출발지_사이에_말이_존재하는_경우_이동_불가능하다() { + StubBoard board = new StubBoard(strategy); + Piece horse = new Horse(Team.CHO); + + Position from = Position.from(1, 1); + Position pathPosition = Position.from(2, 1); + Position to = Position.from(3, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Horse(Team.CHO)); + testPiece.put(pathPosition, new Pawn(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(horse.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 정상테스트 1. 도착지에 같은 팀이 존재하지 않고, 2. 도착지와 출발지 사이에 다른 기물이 존재하지 않는다면 이동 가능 + */ + @Test + void 도착지에_같은_팀이_존재하지_않고_경로에_다른_기물이_존재하지_않을_경우() { + // given + StubBoard board = new StubBoard(strategy); + Piece horse = new Horse(Team.CHO); + + // when + Position from = Position.from(10, 1); + Position to = Position.from(8, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Horse(Team.CHO)); + board.putPieces(testPiece); + + // then + assertThat(horse.canMove(from, to, board)).isEqualTo(true); + } +} From 5bd7a9fb850ad5660317cbee6db8b9548915b392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Fri, 27 Mar 2026 22:35:41 +0900 Subject: [PATCH 15/27] =?UTF-8?q?feat:=20=EB=B3=B4=EB=93=9C=ED=8C=90?= =?UTF-8?q?=EC=9D=98=20=EC=9D=B4=EB=8F=99=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20=EB=B0=8F=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: sangjun121 Co-authored-by: Soojin6943 --- src/main/java/domain/Board.java | 54 ++++-- src/main/java/domain/Position.java | 14 +- src/main/java/domain/piece/Elephant.java | 2 +- src/main/java/domain/piece/Guard.java | 2 +- src/main/java/domain/piece/Horse.java | 2 +- src/main/java/domain/piece/King.java | 2 +- src/main/java/domain/piece/Piece.java | 2 +- src/main/java/domain/piece/Rook.java | 2 +- src/test/java/domain/BoardTest.java | 200 ++++++++++++++++++++++- 9 files changed, 253 insertions(+), 27 deletions(-) diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index 1ca94153ca..9b0c122df7 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -8,6 +8,11 @@ import strategy.InitializeStrategy; public class Board { + private static final int MAX_ROW = 10; + private static final int MIN_ROW = 1; + private static final int MAX_COLUMN = 9; + private static final int MIN_COLUMN = 1; + protected final Map pieces = new HashMap<>(); public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanInitializeStrategy) { @@ -15,13 +20,41 @@ public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanIni initTeamBoard(hanInitializeStrategy, Team.HAN); } - /** - * TODO: 테스트용 함수 제거 필요 - * - * @param position - * @param piece - * @return - */ + public void move(Position from, Position to, PieceType pieceType) { + Piece piece = validateMovablePiece(from, to, pieceType); + validateCanMove(from, to, piece); + movePiece(from, to, piece); + } + + private Piece validateMovablePiece(Position from, Position to, PieceType pieceType) { + Piece piece = pieces.get(from); + + if (piece == null) { + throw new IllegalArgumentException("해당 위치에 피스가 없습니다."); + } + + if (piece.getType() != pieceType) { + throw new IllegalArgumentException("해당 위치에 해당 타입이 없습니다."); + } + + if (!to.isPossiblePosition(MAX_ROW, MIN_ROW, MAX_COLUMN, MIN_COLUMN)) { + throw new IllegalArgumentException("기물의 도착지점이 판 범위를 넘어섰습니다."); + } + + return piece; + } + + private void validateCanMove(Position from, Position to, Piece piece) { + if (!piece.canMove(from, to, this)) { + throw new IllegalArgumentException("해당 위치로 옮길 수 없습니다."); + } + } + + private void movePiece(Position from, Position to, Piece piece) { + pieces.remove(from); + pieces.put(to, piece); + } + public boolean isExistSameType(Position position, Piece piece) { if (hasPieceInPosition(position)) { return pieces.get(position).getType() @@ -93,11 +126,4 @@ private List findPiecesInColumn(Position from, Position to) { } return result; } - - /** - * TODO: 추후 보드에서 기물을 이동시킬때 올바른 범위인지 체크하는 메서드 - */ - private boolean validateMoveable(Position to) { - return false; - } } diff --git a/src/main/java/domain/Position.java b/src/main/java/domain/Position.java index 77ab18d41d..bb70276cef 100644 --- a/src/main/java/domain/Position.java +++ b/src/main/java/domain/Position.java @@ -19,11 +19,11 @@ public Position diff(Position other) { return new Position(this.row - other.row, this.column - other.column); } - public int getRow(){ + public int getRow() { return this.row; } - public int getColumn(){ + public int getColumn() { return this.column; } @@ -57,6 +57,16 @@ public boolean isSameRow(Position other) { return false; } + public boolean isPossiblePosition(int maxRow, int minRow, int maxColumn, int minColumn) { + if (this.row > maxRow || this.row < minRow) { + return false; + } + if (this.column > maxColumn || this.column < minColumn) { + return false; + } + return true; + } + @Override public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) { diff --git a/src/main/java/domain/piece/Elephant.java b/src/main/java/domain/piece/Elephant.java index b104912725..21c89260d8 100644 --- a/src/main/java/domain/piece/Elephant.java +++ b/src/main/java/domain/piece/Elephant.java @@ -14,7 +14,7 @@ public Elephant(Team team) { * 1. 직진 1칸 + 대각선 2칸만 이동 가능 2. 도착지에 같은 팀이 존재하는 경우 이동 불가 3. 도착지랑 출발지 사이에 말이 존재하지 않는 경우 이동 가능 4. 이외는 이동 가능 */ @Override - boolean canMove(Position from, Position to, Board board) { + public boolean canMove(Position from, Position to, Board board) { // 1. 직진 1칸 + 대각선 2칸만 이동 가능 if (!isCorrectMoveDistanceAndDirection(from, to)) { return false; diff --git a/src/main/java/domain/piece/Guard.java b/src/main/java/domain/piece/Guard.java index 42e6417cf0..7f62b936d1 100644 --- a/src/main/java/domain/piece/Guard.java +++ b/src/main/java/domain/piece/Guard.java @@ -11,7 +11,7 @@ public Guard(Team team) { } @Override - boolean canMove(Position from, Position to, Board board) { + public boolean canMove(Position from, Position to, Board board) { if (!isCorrectMoveDistanceAndDirection(from, to)) { return false; } diff --git a/src/main/java/domain/piece/Horse.java b/src/main/java/domain/piece/Horse.java index 6a757625ab..76f885ad91 100644 --- a/src/main/java/domain/piece/Horse.java +++ b/src/main/java/domain/piece/Horse.java @@ -11,7 +11,7 @@ public Horse(Team team) { } @Override - boolean canMove(Position from, Position to, Board board) { + public boolean canMove(Position from, Position to, Board board) { // 1. 직진 1칸 + 대각선 1칸만 이동 가능 if (!isCorrectMoveDistanceAndDirection(from, to)) { return false; diff --git a/src/main/java/domain/piece/King.java b/src/main/java/domain/piece/King.java index faf630c09f..089e8f711c 100644 --- a/src/main/java/domain/piece/King.java +++ b/src/main/java/domain/piece/King.java @@ -11,7 +11,7 @@ public King(Team team) { } @Override - boolean canMove(Position from, Position to, Board board) { + public boolean canMove(Position from, Position to, Board board) { if (!isCorrectMoveDistanceAndDirection(from, to)) { return false; } diff --git a/src/main/java/domain/piece/Piece.java b/src/main/java/domain/piece/Piece.java index 8effbf26b9..d64d1965ed 100644 --- a/src/main/java/domain/piece/Piece.java +++ b/src/main/java/domain/piece/Piece.java @@ -26,5 +26,5 @@ public boolean isCannon() { return this.type == PieceType.CANNON; } - abstract boolean canMove(Position from, Position to, Board board); + public abstract boolean canMove(Position from, Position to, Board board); } diff --git a/src/main/java/domain/piece/Rook.java b/src/main/java/domain/piece/Rook.java index b4f13d8ec7..688ce9f960 100644 --- a/src/main/java/domain/piece/Rook.java +++ b/src/main/java/domain/piece/Rook.java @@ -11,7 +11,7 @@ public Rook(Team team) { } @Override - boolean canMove(Position from, Position to, Board board) { + public boolean canMove(Position from, Position to, Board board) { // 1. 도착 지점이 같은 열 또는 행이 아닌 경우 이동 불가 if (!isCorrectMoveDistanceAndDirection(from, to)) { return false; diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index 18b0c8c4f0..eeafc29ca1 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -8,11 +8,17 @@ import domain.piece.Pawn; import domain.piece.Piece; import domain.piece.Rook; +import domain.strategy.NoInitializeStrategy; +import domain.stub.StubBoard; import java.util.Collections; +import java.util.HashMap; import java.util.Map; import org.junit.jupiter.api.Test; +import static domain.PieceType.PAWN; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode; import strategy.InitializeStrategy; import strategy.InnerElephantFormationStrategy; @@ -21,6 +27,7 @@ import strategy.RightElephantFormationStrategy; class BoardTest { + private final InitializeStrategy noInitializeStrategy = new NoInitializeStrategy(); private final InitializeStrategy noElephantHorseStrategy = new NoOpElephantHorseStrategy(); static class NoOpElephantHorseStrategy extends InitializeStrategy { @@ -30,8 +37,6 @@ protected Map initializeElephantHorseFormation(Team team) { } } - // TODO : 보드판 전체 초기화 확인 - /** * 1. 한나라 기본 기물이 올바르게 배치된다.(상,마 제외) */ @@ -266,16 +271,201 @@ protected Map initializeElephantHorseFormation(Team team) { } /** - * 보드 범위 테스트 - * 1. 기물의 목적지가 보드의 범위를 넘어가면 안된다. + * 보드 이동 예외 테스트 1. 출발 지점에, 원하는 피스가 아에 없는 경우 이동할 수 없다. 2. 출발 지점에, 원하는 피스 타입이 아닌 다른 피스가 있는 경우 이동 할 수 없다. 3. 도착 지점이 + * 보드판의 범위를 넘어서는 경우 이동할 수 없다. + */ + @Test + void 출발_지점에_원하는_피스가_없는_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + PieceType targetType = PAWN; + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 2); + + // then + assertThatThrownBy(() -> board.move(from, to, targetType)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("해당 위치에 피스가 없습니다."); + } + + @Test + void 출발_지점에_원하는_피스_타입이_아닌_다른_피스가_있는_경우_이동_할_수_없다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + PieceType targetType = PAWN; + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatThrownBy(() -> board.move(from, to, targetType)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("해당 위치에 해당 타입이 없습니다."); + } + + @Test + void 도착_지점이_보드판의_범위를_넘어서는_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + PieceType targetType = PAWN; + + // when + Position from = Position.from(10, 1); + Position to = Position.from(10, 10); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Pawn(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatThrownBy(() -> board.move(from, to, targetType)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("기물의 도착지점이 판 범위를 넘어섰습니다."); + } + + /** + * 보드 이동 정상 테스트 */ + @Test + void 포가_올바른_위치에_이동된다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position from = Position.from(5, 1); + Position to = Position.from(5, 4); + Position between = Position.from(5, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Cannon(Team.CHO)); + testPiece.put(between, new Pawn(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatCode(() -> board.move(from, to, PieceType.CANNON)) + .doesNotThrowAnyException(); + } @Test - void 목적지가_보드의_범위를_넘어갈_경우_예외를_반환한다() { + void 차가_올바른_위치에_이동된다() { // given + StubBoard board = new StubBoard(noInitializeStrategy); // when + Position from = Position.from(10, 1); + Position to = Position.from(10, 3); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Rook(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatCode(() -> board.move(from, to, PieceType.ROOK)) + .doesNotThrowAnyException(); + } + + @Test + void 사가_한칸_앞으로_올바른_위치에_이동된다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position from = Position.from(7, 4); + Position to = Position.from(6, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatCode(() -> board.move(from, to, PieceType.GUARD)) + .doesNotThrowAnyException(); + } + + @Test + void 궁이_한칸_앞으로_올바른_위치에_이동된다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatCode(() -> board.move(from, to, PieceType.KING)) + .doesNotThrowAnyException(); + } + + @Test + void 졸이_한칸_앞으로_올바른_위치에_이동된다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position from = Position.from(7, 1); + Position to = Position.from(6, 1); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Pawn(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatCode(() -> board.move(from, to, PAWN)) + .doesNotThrowAnyException(); + } + + @Test + void 말이_한칸_앞으로_올바른_위치에_이동된다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position from = Position.from(10, 1); + Position to = Position.from(8, 2); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Horse(Team.CHO)); + + board.putPieces(testPiece); + + // then + assertThatCode(() -> board.move(from, to, PieceType.HORSE)) + .doesNotThrowAnyException(); + } + + @Test + void 상이_한칸_앞으로_올바른_위치에_이동된다() { + // given + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position from = Position.from(10, 3); + Position to = Position.from(7, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Elephant(Team.CHO)); + board.putPieces(testPiece); // then + assertThatCode(() -> board.move(from, to, PieceType.ELEPHANT)) + .doesNotThrowAnyException(); } } From 4690900055488f05ee51284729f648432177e315 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Sun, 29 Mar 2026 19:10:00 +0900 Subject: [PATCH 16/27] =?UTF-8?q?feat:=20=EC=83=81=EB=A7=88=EC=83=81?= =?UTF-8?q?=EB=A7=88=20=EC=83=81=EC=B0=A8=EB=A6=BC=20=EC=9E=85=EB=A0=A5=20?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=96=B4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Application.java | 6 +++- src/main/java/config/AppConfig.java | 23 ++++++++++++++ .../java/controller/JanggiController.java | 27 ++++++++++++++++ src/main/java/domain/GameManager.java | 22 +++++++++++++ .../java/domain/HorseElephantFormation.java | 28 +++++++++++------ src/main/java/view/InputView.java | 31 +++++++++++++++++++ 6 files changed, 126 insertions(+), 11 deletions(-) create mode 100644 src/main/java/config/AppConfig.java create mode 100644 src/main/java/controller/JanggiController.java create mode 100644 src/main/java/domain/GameManager.java create mode 100644 src/main/java/view/InputView.java diff --git a/src/main/java/Application.java b/src/main/java/Application.java index bdbffd531f..eaad0a6e5a 100644 --- a/src/main/java/Application.java +++ b/src/main/java/Application.java @@ -1,5 +1,9 @@ +import config.AppConfig; +import controller.JanggiController; + public class Application { public static void main(String[] args) { - + JanggiController janggiController = AppConfig.getInstance().janggiController(); + janggiController.start(); } } diff --git a/src/main/java/config/AppConfig.java b/src/main/java/config/AppConfig.java new file mode 100644 index 0000000000..35bb21a790 --- /dev/null +++ b/src/main/java/config/AppConfig.java @@ -0,0 +1,23 @@ +package config; + +import controller.JanggiController; +import view.InputView; + +public class AppConfig { + private static final AppConfig INSTANCE = new AppConfig(); + + private AppConfig(){ + } + + public static AppConfig getInstance(){ + return INSTANCE; + } + + public JanggiController janggiController(){ + return new JanggiController(inputView()); + } + + public InputView inputView(){ + return new InputView(); + } +} diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java new file mode 100644 index 0000000000..3f47bb0574 --- /dev/null +++ b/src/main/java/controller/JanggiController.java @@ -0,0 +1,27 @@ +package controller; + +import domain.GameManager; +import domain.Team; +import java.util.HashMap; +import java.util.Map; +import view.InputView; + +public class JanggiController { + private final InputView inputView; + + public JanggiController(InputView inputView) { + this.inputView = inputView; + } + + public void start(){ + GameManager gameManager = new GameManager(readHorseElephantFormation()); + } + + private Map readHorseElephantFormation() { + Map horseElephantInputs = new HashMap<>(); + horseElephantInputs.put(Team.CHO, inputView.readChoHorseElephantFormation()); + horseElephantInputs.put(Team.HAN, inputView.readHanHorseElephantFormation()); + + return horseElephantInputs; + } +} diff --git a/src/main/java/domain/GameManager.java b/src/main/java/domain/GameManager.java new file mode 100644 index 0000000000..33b947652a --- /dev/null +++ b/src/main/java/domain/GameManager.java @@ -0,0 +1,22 @@ +package domain; + +import java.util.Map; +import strategy.InitializeStrategy; + +public class GameManager { + private final Board board; + + public GameManager(Map formationInput) { + this.board = new Board( + getBoardInitializeStrategy(formationInput.get(Team.CHO)), + getBoardInitializeStrategy(formationInput.get(Team.HAN)) + ); + } + + /** + * 헬퍼 메서드 + */ + private InitializeStrategy getBoardInitializeStrategy(String formationInput) { + return HorseElephantFormation.getStrategy(formationInput); + } +} diff --git a/src/main/java/domain/HorseElephantFormation.java b/src/main/java/domain/HorseElephantFormation.java index c6b5890f4e..e46238a334 100644 --- a/src/main/java/domain/HorseElephantFormation.java +++ b/src/main/java/domain/HorseElephantFormation.java @@ -1,27 +1,35 @@ package domain; import java.util.Arrays; +import strategy.InitializeStrategy; +import strategy.InnerElephantFormationStrategy; +import strategy.LeftElephantFormationStrategy; +import strategy.OuterElephantFormationStrategy; +import strategy.RightElephantFormationStrategy; public enum HorseElephantFormation { - INNER_ELEPHANT("마상상마"), - OUTER_ELEPHANT("상마마상"), - RIGHT_ELEPHANT("마상마상"), - LEFT_ELEPHANT("상마상마"); + INNER_ELEPHANT("마상상마", new InnerElephantFormationStrategy()), + OUTER_ELEPHANT("상마마상", new OuterElephantFormationStrategy()), + RIGHT_ELEPHANT("마상마상", new RightElephantFormationStrategy()), + LEFT_ELEPHANT("상마상마", new LeftElephantFormationStrategy()); private final String pattern; + private final InitializeStrategy strategy; - HorseElephantFormation(String pattern) { + HorseElephantFormation(String pattern, InitializeStrategy strategy) { this.pattern = pattern; + this.strategy = strategy; } - public String getPattern() { - return pattern; + private InitializeStrategy getStrategy() { + return this.strategy; } - public static HorseElephantFormation from(String pattern) { + public static InitializeStrategy getStrategy(String pattern) { return Arrays.stream(values()) .filter(type -> type.pattern.equals(pattern)) .findFirst() - .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 포메이션입니다: " + pattern)); + .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 포메이션입니다: " + pattern)) + .getStrategy(); } -} \ No newline at end of file +} diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java new file mode 100644 index 0000000000..b90fe0938b --- /dev/null +++ b/src/main/java/view/InputView.java @@ -0,0 +1,31 @@ +package view; + +import java.util.Scanner; + +public class InputView { + private static final String CHO_HORSE_ELEPHANT_INPUT_GUIDE = "초나라의 상마상마 상차림을 입력하세요: "; + private static final String HAN_HORSE_ELEPHANT_INPUT_GUIDE = "한나라의 상마상마 상차림을 입력하세요: "; + + private final Scanner scanner = new Scanner(System.in); + + public String readChoHorseElephantFormation(){ + printMessage(CHO_HORSE_ELEPHANT_INPUT_GUIDE); + return readInput(); + } + + public String readHanHorseElephantFormation(){ + printMessage(HAN_HORSE_ELEPHANT_INPUT_GUIDE); + return readInput(); + } + + /** + * 핼퍼 메서드 + */ + private void printMessage(String message) { + System.out.print(message); + } + + private String readInput() { + return scanner.nextLine(); + } +} From 1b5420dcf0ed159b9fcb617ae2d733a78df1370c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Sun, 29 Mar 2026 19:47:46 +0900 Subject: [PATCH 17/27] =?UTF-8?q?feat:=20=ED=98=84=EC=9E=AC=20=EB=B3=B4?= =?UTF-8?q?=EB=93=9C=20=EC=83=81=ED=83=9C=20=EC=B6=9C=EB=A0=A5=20=EB=A9=94?= =?UTF-8?q?=EC=84=9C=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/config/AppConfig.java | 7 +- .../java/controller/JanggiController.java | 16 +++- .../controller/dto/CurrentBoardStatus.java | 18 +++++ src/main/java/domain/Board.java | 79 ++++++++++-------- src/main/java/domain/GameManager.java | 6 ++ src/main/java/domain/Team.java | 13 ++- src/main/java/domain/piece/Piece.java | 8 +- src/main/java/view/OutputView.java | 80 +++++++++++++++++++ 8 files changed, 189 insertions(+), 38 deletions(-) create mode 100644 src/main/java/controller/dto/CurrentBoardStatus.java create mode 100644 src/main/java/view/OutputView.java diff --git a/src/main/java/config/AppConfig.java b/src/main/java/config/AppConfig.java index 35bb21a790..e0ed5b1d4f 100644 --- a/src/main/java/config/AppConfig.java +++ b/src/main/java/config/AppConfig.java @@ -2,6 +2,7 @@ import controller.JanggiController; import view.InputView; +import view.OutputView; public class AppConfig { private static final AppConfig INSTANCE = new AppConfig(); @@ -14,10 +15,14 @@ public static AppConfig getInstance(){ } public JanggiController janggiController(){ - return new JanggiController(inputView()); + return new JanggiController(inputView(),outputView()); } public InputView inputView(){ return new InputView(); } + + public OutputView outputView(){ + return new OutputView(); + } } diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index 3f47bb0574..382a048a38 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -1,20 +1,28 @@ package controller; +import controller.dto.CurrentBoardStatus; import domain.GameManager; import domain.Team; import java.util.HashMap; +import java.util.List; import java.util.Map; import view.InputView; +import view.OutputView; public class JanggiController { private final InputView inputView; + private final OutputView outputView; + private GameManager gameManager; - public JanggiController(InputView inputView) { + public JanggiController(InputView inputView, OutputView outputView) { this.inputView = inputView; + this.outputView = outputView; } public void start(){ - GameManager gameManager = new GameManager(readHorseElephantFormation()); + this.gameManager = new GameManager(readHorseElephantFormation()); + List currentBoardStatus = gameManager.getCurrentBoardStatus(); + outputView.printCurrentBoard(currentBoardStatus); } private Map readHorseElephantFormation() { @@ -24,4 +32,8 @@ private Map readHorseElephantFormation() { return horseElephantInputs; } + + private List getCurrentBoardStatus(){ + return gameManager.getCurrentBoardStatus(); + } } diff --git a/src/main/java/controller/dto/CurrentBoardStatus.java b/src/main/java/controller/dto/CurrentBoardStatus.java new file mode 100644 index 0000000000..e707b03c8f --- /dev/null +++ b/src/main/java/controller/dto/CurrentBoardStatus.java @@ -0,0 +1,18 @@ +package controller.dto; + +import domain.PieceType; +import domain.Position; +import domain.Team; + +public record CurrentBoardStatus( + int row, int column, String pieceType, String team +) { + public static CurrentBoardStatus of(Position position, PieceType pieceType, Team team) { + return new CurrentBoardStatus( + position.getRow(), + position.getColumn(), + pieceType.getKoreanName(), + team.getKoreanName() + ); + } +} diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index 9b0c122df7..ff36f8466c 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -1,5 +1,6 @@ package domain; +import controller.dto.CurrentBoardStatus; import domain.piece.Piece; import java.util.ArrayList; import java.util.HashMap; @@ -26,6 +27,52 @@ public void move(Position from, Position to, PieceType pieceType) { movePiece(from, to, piece); } + public boolean isExistSameType(Position position, Piece piece) { + if (hasPieceInPosition(position)) { + return pieces.get(position).getType() + .equals(piece.getType()); + } + + return false; + } + + public boolean isEmpty(Position position) { + return !pieces.containsKey(position); + } + + public boolean hasSameTeamOn(Position position, Piece piece) { + if (hasPieceInPosition(position)) { + return pieces.get(position).isSameTeam(piece); + } + + return false; + } + + public List findPiecesInLinePath(Position from, Position to) { + if (from.isSameRow(to)) { + return findPiecesInRow(from, to); + } + + if (from.isSameColumn(to)) { + return findPiecesInColumn(from, to); + } + return new ArrayList<>(); + } + + public List getCurrentStatus(){ + List currentBoardStatuses = new ArrayList<>(); + + pieces.forEach(((position, piece) -> + currentBoardStatuses.add( + CurrentBoardStatus.of(position, piece.getType(), piece.getTeam()) + ))); + + return currentBoardStatuses; + } + + /** + * 헬퍼 메서드 + */ private Piece validateMovablePiece(Position from, Position to, PieceType pieceType) { Piece piece = pieces.get(from); @@ -55,27 +102,6 @@ private void movePiece(Position from, Position to, Piece piece) { pieces.put(to, piece); } - public boolean isExistSameType(Position position, Piece piece) { - if (hasPieceInPosition(position)) { - return pieces.get(position).getType() - .equals(piece.getType()); - } - - return false; - } - - public boolean isEmpty(Position position) { - return !pieces.containsKey(position); - } - - public boolean hasSameTeamOn(Position position, Piece piece) { - if (hasPieceInPosition(position)) { - return pieces.get(position).isSameTeam(piece); - } - - return false; - } - private boolean hasPieceInPosition(Position position) { return pieces.containsKey(position); } @@ -84,17 +110,6 @@ private void initTeamBoard(InitializeStrategy strategy, Team team) { pieces.putAll(strategy.initialize(team)); } - public List findPiecesInLinePath(Position from, Position to) { - if (from.isSameRow(to)) { - return findPiecesInRow(from, to); - } - - if (from.isSameColumn(to)) { - return findPiecesInColumn(from, to); - } - return new ArrayList<>(); - } - private List findPiecesInRow(Position from, Position to) { List result = new ArrayList<>(); diff --git a/src/main/java/domain/GameManager.java b/src/main/java/domain/GameManager.java index 33b947652a..93605507c7 100644 --- a/src/main/java/domain/GameManager.java +++ b/src/main/java/domain/GameManager.java @@ -1,5 +1,7 @@ package domain; +import controller.dto.CurrentBoardStatus; +import java.util.List; import java.util.Map; import strategy.InitializeStrategy; @@ -13,6 +15,10 @@ public GameManager(Map formationInput) { ); } + public List getCurrentBoardStatus(){ + return board.getCurrentStatus(); + } + /** * 헬퍼 메서드 */ diff --git a/src/main/java/domain/Team.java b/src/main/java/domain/Team.java index 8df6e15d10..ca5b387ef9 100644 --- a/src/main/java/domain/Team.java +++ b/src/main/java/domain/Team.java @@ -1,5 +1,16 @@ package domain; public enum Team { - HAN, CHO; + CHO("초"), + HAN("한"); + + private final String koreanName; + + Team(String koreanName){ + this.koreanName = koreanName; + } + + public String getKoreanName() { + return koreanName; + } } diff --git a/src/main/java/domain/piece/Piece.java b/src/main/java/domain/piece/Piece.java index d64d1965ed..bbf07fda2d 100644 --- a/src/main/java/domain/piece/Piece.java +++ b/src/main/java/domain/piece/Piece.java @@ -6,14 +6,18 @@ import domain.Team; public abstract class Piece { - public Team team; - public PieceType type; + protected final Team team; + protected final PieceType type; public Piece(Team team, PieceType type) { this.team = team; this.type = type; } + public Team getTeam() { + return this.team; + } + public PieceType getType() { return this.type; } diff --git a/src/main/java/view/OutputView.java b/src/main/java/view/OutputView.java new file mode 100644 index 0000000000..a8a8e390cb --- /dev/null +++ b/src/main/java/view/OutputView.java @@ -0,0 +1,80 @@ +package view; + +import controller.dto.CurrentBoardStatus; +import java.util.List; + +public class OutputView { + private static final int BOARD_ROW_SIZE = 10; + private static final int BOARD_COLUMN_SIZE = 9; + private static final String EMPTY_CELL = " "; + + private static final String RESET = "\u001B[0m"; + private static final String BLUE = "\u001B[34m"; + private static final String RED = "\u001B[31m"; + + public void printCurrentBoard(List statuses) { + String[][] board = createEmptyBoard(); + placePieces(board, statuses); + + printHeader(); + printSeparator(); + + for (int row = 1; row <= BOARD_ROW_SIZE; row++) { + printRow(board, row); + printSeparator(); + } + } + + /** + * 헬퍼 메서드 + */ + + private String[][] createEmptyBoard() { + String[][] board = new String[BOARD_ROW_SIZE][BOARD_COLUMN_SIZE]; + + for (int row = 0; row < BOARD_ROW_SIZE; row++) { + for (int column = 0; column < BOARD_COLUMN_SIZE; column++) { + board[row][column] = EMPTY_CELL; + } + } + + return board; + } + + private void placePieces(String[][] board, List statuses) { + for (CurrentBoardStatus status : statuses) { + int rowIndex = status.row() - 1; + int colIndex = status.column() - 1; + + board[rowIndex][colIndex] = formatPiece(status.pieceType(), status.team()); + } + } + + private void printHeader() { + System.out.println(" 1 2 3 4 5 6 7 8 9"); + } + + private void printSeparator() { + System.out.println(" +------+------+------+------+------+------+------+------+------+"); + } + + private void printRow(String[][] board, int row) { + System.out.printf("%2d |", row); + + for (int col = 1; col <= BOARD_COLUMN_SIZE; col++) { + System.out.printf(" %-4s |", board[row - 1][col - 1]); + } + + System.out.println(); + } + + private String formatPiece(String pieceType, String team) { + if ("초".equals(team)) { + return BLUE + " " + pieceType + " " + RESET; + } + if ("한".equals(team)) { + return RED + " " + pieceType + " " + RESET; + } + return pieceType; + } +} From aa34334e11a05f6685ee3afb59d43d8c1c4df3fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Sun, 29 Mar 2026 20:27:38 +0900 Subject: [PATCH 18/27] =?UTF-8?q?feat:=20=EA=B8=B0=EB=AC=BC=20=EC=8B=A4?= =?UTF-8?q?=EC=A0=9C=20=EC=9D=B4=EB=8F=99=20=EC=96=B4=ED=94=8C=EB=A6=AC?= =?UTF-8?q?=EC=BC=80=EC=9D=B4=EC=85=98=20=EC=BD=94=EB=93=9C=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1=20=EB=B0=8F=20=ED=98=84=ED=99=A9=20=EC=9E=A5=EA=B8=B0?= =?UTF-8?q?=ED=8C=90=20=EC=B6=9C=EB=A0=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/JanggiController.java | 22 ++++++++++++++----- .../controller/dto/MovedPieceRequest.java | 8 +++++++ src/main/java/domain/GameManager.java | 9 +++++++- src/main/java/domain/PieceType.java | 9 ++++++++ src/main/java/view/InputView.java | 19 ++++++++++++++++ 5 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 src/main/java/controller/dto/MovedPieceRequest.java diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index 382a048a38..b52724354d 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -1,6 +1,7 @@ package controller; import controller.dto.CurrentBoardStatus; +import controller.dto.MovedPieceRequest; import domain.GameManager; import domain.Team; import java.util.HashMap; @@ -19,10 +20,10 @@ public JanggiController(InputView inputView, OutputView outputView) { this.outputView = outputView; } - public void start(){ + public void start() { this.gameManager = new GameManager(readHorseElephantFormation()); - List currentBoardStatus = gameManager.getCurrentBoardStatus(); - outputView.printCurrentBoard(currentBoardStatus); + printCurrentBoardStatus(); + movePiece(); } private Map readHorseElephantFormation() { @@ -33,7 +34,18 @@ private Map readHorseElephantFormation() { return horseElephantInputs; } - private List getCurrentBoardStatus(){ - return gameManager.getCurrentBoardStatus(); + private void printCurrentBoardStatus() { + List statuses = gameManager.getCurrentBoardStatus(); + outputView.printCurrentBoard(statuses); + } + + public void movePiece() { + MovedPieceRequest movedPieceRequest = readMovedPiece(); + gameManager.movePiece(movedPieceRequest); + printCurrentBoardStatus(); + } + + private MovedPieceRequest readMovedPiece(){ + return inputView.readMovedPieceInput(); } } diff --git a/src/main/java/controller/dto/MovedPieceRequest.java b/src/main/java/controller/dto/MovedPieceRequest.java new file mode 100644 index 0000000000..2dbd1ad0d5 --- /dev/null +++ b/src/main/java/controller/dto/MovedPieceRequest.java @@ -0,0 +1,8 @@ +package controller.dto; + +public record MovedPieceRequest(int currentRow, + int currentColumn, + int nextRow, + int nextColumn, + String pieceType) { +} diff --git a/src/main/java/domain/GameManager.java b/src/main/java/domain/GameManager.java index 93605507c7..43773c064a 100644 --- a/src/main/java/domain/GameManager.java +++ b/src/main/java/domain/GameManager.java @@ -1,6 +1,7 @@ package domain; import controller.dto.CurrentBoardStatus; +import controller.dto.MovedPieceRequest; import java.util.List; import java.util.Map; import strategy.InitializeStrategy; @@ -15,10 +16,16 @@ public GameManager(Map formationInput) { ); } - public List getCurrentBoardStatus(){ + public List getCurrentBoardStatus() { return board.getCurrentStatus(); } + public void movePiece(MovedPieceRequest request) { + board.move(Position.from(request.currentRow(), request.currentColumn()), + Position.from(request.nextRow(), request.nextColumn()), + PieceType.getPieceType(request.pieceType())); + } + /** * 헬퍼 메서드 */ diff --git a/src/main/java/domain/PieceType.java b/src/main/java/domain/PieceType.java index 59336bafbd..8854c0475a 100644 --- a/src/main/java/domain/PieceType.java +++ b/src/main/java/domain/PieceType.java @@ -1,5 +1,7 @@ package domain; +import java.util.Arrays; + public enum PieceType { KING("궁"), ROOK("차"), @@ -18,4 +20,11 @@ public enum PieceType { public String getKoreanName() { return koreanName; } + + public static PieceType getPieceType(String koreanName) { + return Arrays.stream(PieceType.values()) + .filter(type -> type.koreanName.equals(koreanName)) + .findFirst() + .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 기물 타입입니다: " + koreanName)); + } } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index b90fe0938b..6f6bd43273 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -1,10 +1,12 @@ package view; +import controller.dto.MovedPieceRequest; import java.util.Scanner; public class InputView { private static final String CHO_HORSE_ELEPHANT_INPUT_GUIDE = "초나라의 상마상마 상차림을 입력하세요: "; private static final String HAN_HORSE_ELEPHANT_INPUT_GUIDE = "한나라의 상마상마 상차림을 입력하세요: "; + private static final String MOVED_PIECE_INPUT_GUIDE= "이동시킬 말의 이름과 현재 위치(행,열), 옮기고 싶은 위치(행,열)를 함께 입력하세요.(예: \"(7,1), (6,1), 졸\"): "; private final Scanner scanner = new Scanner(System.in); @@ -18,6 +20,11 @@ public String readHanHorseElephantFormation(){ return readInput(); } + public MovedPieceRequest readMovedPieceInput(){ + printMessage(MOVED_PIECE_INPUT_GUIDE); + return parseMovedPieceInput(readInput()); + } + /** * 핼퍼 메서드 */ @@ -28,4 +35,16 @@ private void printMessage(String message) { private String readInput() { return scanner.nextLine(); } + + private MovedPieceRequest parseMovedPieceInput(String input){ + String[] splitedInput = input.split(" "); + + int currentRow = Integer.parseInt(String.valueOf(splitedInput[0].charAt(1))); + int currentColumn = Integer.parseInt(String.valueOf(splitedInput[0].charAt(3))); + int nextRow = Integer.parseInt(String.valueOf(splitedInput[1].charAt(1))); + int nextColumn = Integer.parseInt(String.valueOf(splitedInput[1].charAt(3))); + String pieceType = splitedInput[2]; + + return new MovedPieceRequest(currentRow, currentColumn, nextRow, nextColumn, pieceType); + } } From bcfea147fe78c635e5123ba5fc9ab9f03e312477 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Mon, 30 Mar 2026 14:23:48 +0900 Subject: [PATCH 19/27] =?UTF-8?q?feat:=20=EA=B8=B0=EB=AC=BC=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20=EB=B0=98=EB=B3=B5=20=EA=B5=AC=ED=98=84=20=EB=B0=8F?= =?UTF-8?q?=20=EC=98=88=EC=99=B8=20=EB=B0=9C=EC=83=9D=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/config/AppConfig.java | 17 +++++---- .../java/controller/JanggiController.java | 35 ++++++++++++++++--- src/main/java/domain/Board.java | 26 +++++++++----- src/main/java/domain/GameManager.java | 5 +-- src/main/java/exception/GameErrorMessage.java | 24 +++++++++++++ .../java/exception/GameExceptionHandler.java | 16 +++++++++ .../java/exception/custom/GameException.java | 19 ++++++++++ .../custom/InvalidGameInputException.java | 13 +++++++ src/main/java/view/OutputView.java | 4 +++ 9 files changed, 138 insertions(+), 21 deletions(-) create mode 100644 src/main/java/exception/GameErrorMessage.java create mode 100644 src/main/java/exception/GameExceptionHandler.java create mode 100644 src/main/java/exception/custom/GameException.java create mode 100644 src/main/java/exception/custom/InvalidGameInputException.java diff --git a/src/main/java/config/AppConfig.java b/src/main/java/config/AppConfig.java index e0ed5b1d4f..f7ddfce9c0 100644 --- a/src/main/java/config/AppConfig.java +++ b/src/main/java/config/AppConfig.java @@ -1,28 +1,33 @@ package config; import controller.JanggiController; +import exception.GameExceptionHandler; import view.InputView; import view.OutputView; public class AppConfig { private static final AppConfig INSTANCE = new AppConfig(); - private AppConfig(){ + private AppConfig() { } - public static AppConfig getInstance(){ + public static AppConfig getInstance() { return INSTANCE; } - public JanggiController janggiController(){ - return new JanggiController(inputView(),outputView()); + public JanggiController janggiController() { + return new JanggiController(gameExceptionHandler(), inputView(), outputView()); } - public InputView inputView(){ + public GameExceptionHandler gameExceptionHandler() { + return new GameExceptionHandler(outputView()); + } + + public InputView inputView() { return new InputView(); } - public OutputView outputView(){ + public OutputView outputView() { return new OutputView(); } } diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index b52724354d..868650fa14 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -4,6 +4,8 @@ import controller.dto.MovedPieceRequest; import domain.GameManager; import domain.Team; +import exception.GameExceptionHandler; +import exception.custom.GameException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -11,11 +13,13 @@ import view.OutputView; public class JanggiController { + private final GameExceptionHandler gameExceptionHandler; private final InputView inputView; private final OutputView outputView; private GameManager gameManager; - public JanggiController(InputView inputView, OutputView outputView) { + public JanggiController(GameExceptionHandler gameExceptionHandler, InputView inputView, OutputView outputView) { + this.gameExceptionHandler = gameExceptionHandler; this.inputView = inputView; this.outputView = outputView; } @@ -23,7 +27,7 @@ public JanggiController(InputView inputView, OutputView outputView) { public void start() { this.gameManager = new GameManager(readHorseElephantFormation()); printCurrentBoardStatus(); - movePiece(); + playJanggiGame(); } private Map readHorseElephantFormation() { @@ -39,13 +43,34 @@ private void printCurrentBoardStatus() { outputView.printCurrentBoard(statuses); } - public void movePiece() { + private void playJanggiGame() { + /** + * TODO: 2차 사이클 - 게임 종료 조건 추가 예정 + */ + while (true) { + playTurn(Team.CHO); + playTurn(Team.HAN); + } + } + + private void playTurn(Team team) { + while (true) { + try { + movePiece(team); + return; + } catch (GameException e) { + gameExceptionHandler.handle(e); + } + } + } + + private void movePiece(Team team) { MovedPieceRequest movedPieceRequest = readMovedPiece(); - gameManager.movePiece(movedPieceRequest); + gameManager.movePiece(movedPieceRequest, team); printCurrentBoardStatus(); } - private MovedPieceRequest readMovedPiece(){ + private MovedPieceRequest readMovedPiece() { return inputView.readMovedPieceInput(); } } diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index ff36f8466c..eb40bb7602 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -2,6 +2,8 @@ import controller.dto.CurrentBoardStatus; import domain.piece.Piece; +import exception.GameErrorMessage; +import exception.custom.InvalidGameInputException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -21,8 +23,8 @@ public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanIni initTeamBoard(hanInitializeStrategy, Team.HAN); } - public void move(Position from, Position to, PieceType pieceType) { - Piece piece = validateMovablePiece(from, to, pieceType); + public void move(Position from, Position to, PieceType pieceType, Team team) { + Piece piece = validateMovablePiece(from, to, pieceType, team); validateCanMove(from, to, piece); movePiece(from, to, piece); } @@ -59,7 +61,7 @@ public List findPiecesInLinePath(Position from, Position to) { return new ArrayList<>(); } - public List getCurrentStatus(){ + public List getCurrentStatus() { List currentBoardStatuses = new ArrayList<>(); pieces.forEach(((position, piece) -> @@ -73,19 +75,27 @@ public List getCurrentStatus(){ /** * 헬퍼 메서드 */ - private Piece validateMovablePiece(Position from, Position to, PieceType pieceType) { + private Piece validateMovablePiece(Position from, Position to, PieceType pieceType, Team team) { Piece piece = pieces.get(from); if (piece == null) { - throw new IllegalArgumentException("해당 위치에 피스가 없습니다."); + throw new InvalidGameInputException(GameErrorMessage.PIECE_NOT_FOUND.getMessage()); + } + + if (piece.getTeam() != team) { + throw new InvalidGameInputException( + String.format(GameErrorMessage.INVALID_TEAM_TURN.getMessage(), team.getKoreanName()) + ); } if (piece.getType() != pieceType) { - throw new IllegalArgumentException("해당 위치에 해당 타입이 없습니다."); + throw new InvalidGameInputException( + String.format(GameErrorMessage.INVALID_PIECE_TYPE.getMessage(), pieceType.getKoreanName()) + ); } if (!to.isPossiblePosition(MAX_ROW, MIN_ROW, MAX_COLUMN, MIN_COLUMN)) { - throw new IllegalArgumentException("기물의 도착지점이 판 범위를 넘어섰습니다."); + throw new InvalidGameInputException(GameErrorMessage.INVALID_POSITION_RANGE.getMessage()); } return piece; @@ -93,7 +103,7 @@ private Piece validateMovablePiece(Position from, Position to, PieceType pieceTy private void validateCanMove(Position from, Position to, Piece piece) { if (!piece.canMove(from, to, this)) { - throw new IllegalArgumentException("해당 위치로 옮길 수 없습니다."); + throw new InvalidGameInputException(GameErrorMessage.INVALID_MOVE.getMessage()); } } diff --git a/src/main/java/domain/GameManager.java b/src/main/java/domain/GameManager.java index 43773c064a..8ff48173b7 100644 --- a/src/main/java/domain/GameManager.java +++ b/src/main/java/domain/GameManager.java @@ -20,10 +20,11 @@ public List getCurrentBoardStatus() { return board.getCurrentStatus(); } - public void movePiece(MovedPieceRequest request) { + public void movePiece(MovedPieceRequest request, Team team) { board.move(Position.from(request.currentRow(), request.currentColumn()), Position.from(request.nextRow(), request.nextColumn()), - PieceType.getPieceType(request.pieceType())); + PieceType.getPieceType(request.pieceType()), + team); } /** diff --git a/src/main/java/exception/GameErrorMessage.java b/src/main/java/exception/GameErrorMessage.java new file mode 100644 index 0000000000..8fdf10a8f2 --- /dev/null +++ b/src/main/java/exception/GameErrorMessage.java @@ -0,0 +1,24 @@ +package exception; + +public enum GameErrorMessage { + DEFAULT_GAME_ERROR("게임 도중 문제가 발생하였습니다. 관리자에게 문의하세요."), + /** + * 잘못된 입력에 대한 예외 발생 메시지 + */ + INVALID_GAME_INPUT("잘못된 입력입니다. 다시 입력해주세요."), + PIECE_NOT_FOUND("해당 위치에는 기물이 없습니다. 다시 입력해주세요."), + INVALID_TEAM_TURN("현재는 %s의 차례입니다. 같은 팀 기물을 선택해주세요."), + INVALID_PIECE_TYPE("해당 위치에 %s가 없습니다. 다시 입력해주세요."), + INVALID_POSITION_RANGE("기물의 도착 지점이 판 범위를 넘어섰습니다. 다시 입력해주세요."), + INVALID_MOVE("해당 위치로 옮길 수 없습니다. 다시 입력해주세요."); + + private final String message; + + GameErrorMessage(String message){ + this.message = message; + } + + public String getMessage() { + return this.message; + } +} diff --git a/src/main/java/exception/GameExceptionHandler.java b/src/main/java/exception/GameExceptionHandler.java new file mode 100644 index 0000000000..26960518db --- /dev/null +++ b/src/main/java/exception/GameExceptionHandler.java @@ -0,0 +1,16 @@ +package exception; + +import exception.custom.GameException; +import view.OutputView; + +public class GameExceptionHandler { + private final OutputView outputView; + + public GameExceptionHandler(OutputView outputView){ + this.outputView = outputView; + } + + public void handle(GameException exception){ + outputView.printErrorMessage(exception.getMessage()); + } +} diff --git a/src/main/java/exception/custom/GameException.java b/src/main/java/exception/custom/GameException.java new file mode 100644 index 0000000000..3b2020a784 --- /dev/null +++ b/src/main/java/exception/custom/GameException.java @@ -0,0 +1,19 @@ +package exception.custom; + +import exception.GameErrorMessage; + +public class GameException extends RuntimeException{ + private final String message; + + public GameException() { + this.message = GameErrorMessage.DEFAULT_GAME_ERROR.getMessage(); + } + + protected GameException(String message) { + this.message = message; + } + + public String getMessage(){ + return this.message; + } +} diff --git a/src/main/java/exception/custom/InvalidGameInputException.java b/src/main/java/exception/custom/InvalidGameInputException.java new file mode 100644 index 0000000000..fe75b9c7cd --- /dev/null +++ b/src/main/java/exception/custom/InvalidGameInputException.java @@ -0,0 +1,13 @@ +package exception.custom; + +import exception.GameErrorMessage; + +public class InvalidGameInputException extends GameException{ + public InvalidGameInputException(){ + super(GameErrorMessage.INVALID_GAME_INPUT.getMessage()); + } + + public InvalidGameInputException(String message){ + super(message); + } +} diff --git a/src/main/java/view/OutputView.java b/src/main/java/view/OutputView.java index a8a8e390cb..1edaa741db 100644 --- a/src/main/java/view/OutputView.java +++ b/src/main/java/view/OutputView.java @@ -25,6 +25,10 @@ public void printCurrentBoard(List statuses) { } } + public void printErrorMessage(String message){ + System.out.println(message); + } + /** * 헬퍼 메서드 */ From 6cd4382714f276e20bb7d4096b2731a5ddafddb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Mon, 30 Mar 2026 14:54:44 +0900 Subject: [PATCH 20/27] =?UTF-8?q?refactor:=20=EC=83=81=EB=A7=88=EC=83=81?= =?UTF-8?q?=EB=A7=88=20=EC=83=81=EC=B0=A8=EB=A6=BC=20=EC=9E=85=EB=A0=A5?= =?UTF-8?q?=EC=97=90=20=EB=8C=80=ED=95=9C=20=EC=A4=91=EB=B3=B5=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/controller/JanggiController.java | 4 ++-- src/main/java/view/InputView.java | 12 +++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index 868650fa14..1348349bad 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -32,8 +32,8 @@ public void start() { private Map readHorseElephantFormation() { Map horseElephantInputs = new HashMap<>(); - horseElephantInputs.put(Team.CHO, inputView.readChoHorseElephantFormation()); - horseElephantInputs.put(Team.HAN, inputView.readHanHorseElephantFormation()); + horseElephantInputs.put(Team.CHO, inputView.readHorseElephantFormation(Team.CHO.getKoreanName())); + horseElephantInputs.put(Team.HAN, inputView.readHorseElephantFormation(Team.HAN.getKoreanName())); return horseElephantInputs; } diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 6f6bd43273..c1b7ac4f07 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -4,19 +4,13 @@ import java.util.Scanner; public class InputView { - private static final String CHO_HORSE_ELEPHANT_INPUT_GUIDE = "초나라의 상마상마 상차림을 입력하세요: "; - private static final String HAN_HORSE_ELEPHANT_INPUT_GUIDE = "한나라의 상마상마 상차림을 입력하세요: "; + private static final String HORSE_ELEPHANT_INPUT_GUIDE = "%s나라의 상마상마 상차림을 입력하세요: "; private static final String MOVED_PIECE_INPUT_GUIDE= "이동시킬 말의 이름과 현재 위치(행,열), 옮기고 싶은 위치(행,열)를 함께 입력하세요.(예: \"(7,1), (6,1), 졸\"): "; private final Scanner scanner = new Scanner(System.in); - public String readChoHorseElephantFormation(){ - printMessage(CHO_HORSE_ELEPHANT_INPUT_GUIDE); - return readInput(); - } - - public String readHanHorseElephantFormation(){ - printMessage(HAN_HORSE_ELEPHANT_INPUT_GUIDE); + public String readHorseElephantFormation(String teamName){ + printMessage(String.format(HORSE_ELEPHANT_INPUT_GUIDE, teamName)); return readInput(); } From 274e08247c0e59b73a49f87e99e6b21281d71c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Mon, 30 Mar 2026 15:35:53 +0900 Subject: [PATCH 21/27] =?UTF-8?q?feat:=20=EC=83=81=EB=A7=88=EC=83=81?= =?UTF-8?q?=EB=A7=88=20=EC=83=81=EC=B0=A8=EB=A6=BC=20=EA=B2=80=EC=A6=9D?= =?UTF-8?q?=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/JanggiController.java | 9 +++++-- src/main/java/exception/GameErrorMessage.java | 1 + src/main/java/view/InputView.java | 24 +++++++++++++++---- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index 1348349bad..4126a8e359 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -25,8 +25,8 @@ public JanggiController(GameExceptionHandler gameExceptionHandler, InputView inp } public void start() { - this.gameManager = new GameManager(readHorseElephantFormation()); - printCurrentBoardStatus(); + Map horseElephantFormations = readHorseElephantFormation(); + startJanggiGame(horseElephantFormations); playJanggiGame(); } @@ -38,6 +38,11 @@ private Map readHorseElephantFormation() { return horseElephantInputs; } + private void startJanggiGame(Map horseElephantFormations) { + this.gameManager = new GameManager(horseElephantFormations); + printCurrentBoardStatus(); + } + private void printCurrentBoardStatus() { List statuses = gameManager.getCurrentBoardStatus(); outputView.printCurrentBoard(statuses); diff --git a/src/main/java/exception/GameErrorMessage.java b/src/main/java/exception/GameErrorMessage.java index 8fdf10a8f2..0b784a2e77 100644 --- a/src/main/java/exception/GameErrorMessage.java +++ b/src/main/java/exception/GameErrorMessage.java @@ -6,6 +6,7 @@ public enum GameErrorMessage { * 잘못된 입력에 대한 예외 발생 메시지 */ INVALID_GAME_INPUT("잘못된 입력입니다. 다시 입력해주세요."), + INVALID_HORSE_ELEPHANT_FORMATION("상마상마 상차림 입력이 올바르지 않습니다. 다음 4가지 중 하나를 입력해주세요: 상마상마, 마상마상, 상마마상, 마상상마"), PIECE_NOT_FOUND("해당 위치에는 기물이 없습니다. 다시 입력해주세요."), INVALID_TEAM_TURN("현재는 %s의 차례입니다. 같은 팀 기물을 선택해주세요."), INVALID_PIECE_TYPE("해당 위치에 %s가 없습니다. 다시 입력해주세요."), diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index c1b7ac4f07..57c8462979 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -1,20 +1,25 @@ package view; import controller.dto.MovedPieceRequest; +import exception.GameErrorMessage; +import exception.custom.InvalidGameInputException; import java.util.Scanner; public class InputView { private static final String HORSE_ELEPHANT_INPUT_GUIDE = "%s나라의 상마상마 상차림을 입력하세요: "; - private static final String MOVED_PIECE_INPUT_GUIDE= "이동시킬 말의 이름과 현재 위치(행,열), 옮기고 싶은 위치(행,열)를 함께 입력하세요.(예: \"(7,1), (6,1), 졸\"): "; + private static final String MOVED_PIECE_INPUT_GUIDE = "이동시킬 말의 이름과 현재 위치(행,열), 옮기고 싶은 위치(행,열)를 함께 입력하세요.(예: \"(7,1), (6,1), 졸\"): "; private final Scanner scanner = new Scanner(System.in); - public String readHorseElephantFormation(String teamName){ + public String readHorseElephantFormation(String teamName) { printMessage(String.format(HORSE_ELEPHANT_INPUT_GUIDE, teamName)); - return readInput(); + String input = readInput(); + validateHorseElephantFormationInput(input); + + return input; } - public MovedPieceRequest readMovedPieceInput(){ + public MovedPieceRequest readMovedPieceInput() { printMessage(MOVED_PIECE_INPUT_GUIDE); return parseMovedPieceInput(readInput()); } @@ -30,7 +35,7 @@ private String readInput() { return scanner.nextLine(); } - private MovedPieceRequest parseMovedPieceInput(String input){ + private MovedPieceRequest parseMovedPieceInput(String input) { String[] splitedInput = input.split(" "); int currentRow = Integer.parseInt(String.valueOf(splitedInput[0].charAt(1))); @@ -41,4 +46,13 @@ private MovedPieceRequest parseMovedPieceInput(String input){ return new MovedPieceRequest(currentRow, currentColumn, nextRow, nextColumn, pieceType); } + + /** + * 검증 메서드 + */ + private void validateHorseElephantFormationInput(String input) { + if (!input.equals("상마상마") && !input.equals("마상마상") && !input.equals("상마마상") && !input.equals("마상상마")) { + throw new InvalidGameInputException(GameErrorMessage.INVALID_HORSE_ELEPHANT_FORMATION.getMessage()); + } + } } From 996c162274e701935b579e4b06ebc34b88fa2d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Mon, 30 Mar 2026 16:39:55 +0900 Subject: [PATCH 22/27] =?UTF-8?q?feat:=20=EC=9D=B4=EB=8F=99=20=EC=9C=84?= =?UTF-8?q?=EC=B9=98=20=EB=B0=8F=20=EA=B8=B0=EB=AC=BC=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=EC=8B=9C=20=EA=B2=80=EC=A6=9D=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/JanggiController.java | 28 +++++++++- .../controller/dto/MovedPieceRequest.java | 12 ++++ src/main/java/exception/GameErrorMessage.java | 5 +- src/main/java/view/InputView.java | 56 +++++++++++++------ 4 files changed, 81 insertions(+), 20 deletions(-) diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index 4126a8e359..8640ed126f 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -75,7 +75,31 @@ private void movePiece(Team team) { printCurrentBoardStatus(); } - private MovedPieceRequest readMovedPiece() { - return inputView.readMovedPieceInput(); + private MovedPieceRequest readMovedPiece(){ + String sourcePositionAndPieceType = readSourcePositionAndPieceType(); + String targetPosition = readTargetPosition(); + return MovedPieceRequest.of(sourcePositionAndPieceType, targetPosition); + } + + private String readSourcePositionAndPieceType() { + while(true){ + try { + String input = inputView.readSourcePositionAndPieceType(); + return input; + } catch (GameException e) { + gameExceptionHandler.handle(e); + } + } + } + + private String readTargetPosition() { + while(true){ + try { + String input = inputView.readTargetPosition(); + return input; + } catch (GameException e) { + gameExceptionHandler.handle(e); + } + } } } diff --git a/src/main/java/controller/dto/MovedPieceRequest.java b/src/main/java/controller/dto/MovedPieceRequest.java index 2dbd1ad0d5..b5dffc5ff9 100644 --- a/src/main/java/controller/dto/MovedPieceRequest.java +++ b/src/main/java/controller/dto/MovedPieceRequest.java @@ -5,4 +5,16 @@ public record MovedPieceRequest(int currentRow, int nextRow, int nextColumn, String pieceType) { + + public static MovedPieceRequest of(String sourcePositionAndPieceType, String targetPosition) { + String[] sourceAndPieceType = sourcePositionAndPieceType.split(" "); + + return new MovedPieceRequest( + Integer.parseInt(String.valueOf(sourceAndPieceType[0].charAt(1))), + Integer.parseInt(String.valueOf(sourceAndPieceType[0].charAt(3))), + Integer.parseInt(String.valueOf(targetPosition.charAt(1))), + Integer.parseInt(String.valueOf(targetPosition.charAt(3))), + sourceAndPieceType[1] + ); + } } diff --git a/src/main/java/exception/GameErrorMessage.java b/src/main/java/exception/GameErrorMessage.java index 0b784a2e77..6a96aabf92 100644 --- a/src/main/java/exception/GameErrorMessage.java +++ b/src/main/java/exception/GameErrorMessage.java @@ -11,7 +11,10 @@ public enum GameErrorMessage { INVALID_TEAM_TURN("현재는 %s의 차례입니다. 같은 팀 기물을 선택해주세요."), INVALID_PIECE_TYPE("해당 위치에 %s가 없습니다. 다시 입력해주세요."), INVALID_POSITION_RANGE("기물의 도착 지점이 판 범위를 넘어섰습니다. 다시 입력해주세요."), - INVALID_MOVE("해당 위치로 옮길 수 없습니다. 다시 입력해주세요."); + INVALID_MOVE("해당 위치로 옮길 수 없습니다. 다시 입력해주세요."), + + INVALID_POSITION_FORMAT("올바르지 않은 좌표 형식입니다. \"(1,1)\"과 같이 입력해주세요."), + INVALID_PIECE_TYPE_FORMAT("올바르지 않은 기물 이름 형식입니다. 앞의 좌표와 띄어쓰기 이후, \"졸\"과 같이 입력해주세요."); private final String message; diff --git a/src/main/java/view/InputView.java b/src/main/java/view/InputView.java index 57c8462979..9464920f18 100644 --- a/src/main/java/view/InputView.java +++ b/src/main/java/view/InputView.java @@ -1,13 +1,13 @@ package view; -import controller.dto.MovedPieceRequest; import exception.GameErrorMessage; import exception.custom.InvalidGameInputException; import java.util.Scanner; public class InputView { private static final String HORSE_ELEPHANT_INPUT_GUIDE = "%s나라의 상마상마 상차림을 입력하세요: "; - private static final String MOVED_PIECE_INPUT_GUIDE = "이동시킬 말의 이름과 현재 위치(행,열), 옮기고 싶은 위치(행,열)를 함께 입력하세요.(예: \"(7,1), (6,1), 졸\"): "; + private static final String MOVED_PIECE_SOURCE_POSITION_INPUT_GUIDE = "이동시킬 말의 이름과 현재 위치(행,열)를 함께 입력하세요.(예: \"(7,1), 졸\"): "; + private static final String MOVED_PIECE_TARGET_POSITION_INPUT_GUIDE = "이동시킬 말의 도착 위치(행,열)를 함께 입력하세요.(예: \"(6,1)\"): "; private final Scanner scanner = new Scanner(System.in); @@ -19,9 +19,18 @@ public String readHorseElephantFormation(String teamName) { return input; } - public MovedPieceRequest readMovedPieceInput() { - printMessage(MOVED_PIECE_INPUT_GUIDE); - return parseMovedPieceInput(readInput()); + public String readSourcePositionAndPieceType() { + printMessage(MOVED_PIECE_SOURCE_POSITION_INPUT_GUIDE); + String input = readInput(); + validateSourcePositionAndPieceType(input); + return input; + } + + public String readTargetPosition() { + printMessage(MOVED_PIECE_TARGET_POSITION_INPUT_GUIDE); + String input = readInput(); + validateTargetPosition(input); + return input; } /** @@ -35,18 +44,6 @@ private String readInput() { return scanner.nextLine(); } - private MovedPieceRequest parseMovedPieceInput(String input) { - String[] splitedInput = input.split(" "); - - int currentRow = Integer.parseInt(String.valueOf(splitedInput[0].charAt(1))); - int currentColumn = Integer.parseInt(String.valueOf(splitedInput[0].charAt(3))); - int nextRow = Integer.parseInt(String.valueOf(splitedInput[1].charAt(1))); - int nextColumn = Integer.parseInt(String.valueOf(splitedInput[1].charAt(3))); - String pieceType = splitedInput[2]; - - return new MovedPieceRequest(currentRow, currentColumn, nextRow, nextColumn, pieceType); - } - /** * 검증 메서드 */ @@ -55,4 +52,29 @@ private void validateHorseElephantFormationInput(String input) { throw new InvalidGameInputException(GameErrorMessage.INVALID_HORSE_ELEPHANT_FORMATION.getMessage()); } } + + private void validateSourcePositionAndPieceType(String input) { + String[] sourceAndPiece = input.split(" "); + validatePositionInputFormat(sourceAndPiece[0]); + validatePieceTypeInputFormat(sourceAndPiece[1]); + } + + private void validateTargetPosition(String input) { + validatePositionInputFormat(input); + } + + private void validatePositionInputFormat(String input) { + try { + Integer.parseInt(String.valueOf(input.charAt(1))); + Integer.parseInt(String.valueOf(input.charAt(3))); + } catch (NumberFormatException e) { + throw new InvalidGameInputException(GameErrorMessage.INVALID_POSITION_FORMAT.getMessage()); + } + } + + private void validatePieceTypeInputFormat(String input) { + if (input.length() != 1) { + throw new InvalidGameInputException(GameErrorMessage.INVALID_PIECE_TYPE_FORMAT.getMessage()); + } + } } From 6f6c12dd3d48ec7d6149fe780ab5550df6cb5bff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Mon, 30 Mar 2026 16:44:45 +0900 Subject: [PATCH 23/27] =?UTF-8?q?fix:=20=EC=83=81=EB=A7=88=EC=83=81?= =?UTF-8?q?=EB=A7=88=20=EC=83=81=EC=B0=A8=EB=A6=BC=20=EC=98=88=EC=99=B8=20?= =?UTF-8?q?=EB=B0=9C=EC=83=9D=EC=8B=9C=20=EB=B0=98=EB=B3=B5=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/controller/JanggiController.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index 8640ed126f..debb3f655e 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -32,8 +32,8 @@ public void start() { private Map readHorseElephantFormation() { Map horseElephantInputs = new HashMap<>(); - horseElephantInputs.put(Team.CHO, inputView.readHorseElephantFormation(Team.CHO.getKoreanName())); - horseElephantInputs.put(Team.HAN, inputView.readHorseElephantFormation(Team.HAN.getKoreanName())); + horseElephantInputs.put(Team.CHO, readEachHorseElephantFormation(Team.CHO)); + horseElephantInputs.put(Team.HAN, readEachHorseElephantFormation(Team.HAN)); return horseElephantInputs; } @@ -75,14 +75,24 @@ private void movePiece(Team team) { printCurrentBoardStatus(); } - private MovedPieceRequest readMovedPiece(){ + private MovedPieceRequest readMovedPiece() { String sourcePositionAndPieceType = readSourcePositionAndPieceType(); String targetPosition = readTargetPosition(); return MovedPieceRequest.of(sourcePositionAndPieceType, targetPosition); } + private String readEachHorseElephantFormation(Team team) { + while (true) { + try { + return inputView.readHorseElephantFormation(team.getKoreanName()); + } catch (GameException e) { + gameExceptionHandler.handle(e); + } + } + } + private String readSourcePositionAndPieceType() { - while(true){ + while (true) { try { String input = inputView.readSourcePositionAndPieceType(); return input; @@ -93,7 +103,7 @@ private String readSourcePositionAndPieceType() { } private String readTargetPosition() { - while(true){ + while (true) { try { String input = inputView.readTargetPosition(); return input; From e60395c1bb4a81412ce1286c092c8de2561edfa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Wed, 1 Apr 2026 17:04:41 +0900 Subject: [PATCH 24/27] =?UTF-8?q?feat:=20=EA=B6=81=EC=84=B1=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99=20=EA=B7=9C=EC=B9=99=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/domain/Board.java | 25 ++++ src/main/java/domain/Position.java | 4 + src/main/java/domain/piece/Guard.java | 35 +++++- src/main/java/domain/piece/King.java | 35 +++++- src/test/java/domain/BoardTest.java | 43 +++---- src/test/java/domain/piece/GuardTest.java | 135 ++++++++++++++++++++-- src/test/java/domain/piece/KingTest.java | 132 ++++++++++++++++++++- 7 files changed, 368 insertions(+), 41 deletions(-) diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index eb40bb7602..308e6a7f1b 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -16,6 +16,16 @@ public class Board { private static final int MAX_COLUMN = 9; private static final int MIN_COLUMN = 1; + private static final int CHO_PALACE_MAX_ROW = 10; + private static final int CHO_PALACE_MIN_ROW = 8; + private static final int HAN_PALACE_MAX_ROW = 3; + private static final int HAN_PALACE_MIN_ROW = 1; + private static final int PALACE_MAX_COLUMN = 6; + private static final int PALACE_MIN_COLUMN = 4; + + private static final Position CHO_PALACE_CENTER = Position.from(9, 5); + private static final Position HAN_PALACE_CENTER = Position.from(2, 5); + protected final Map pieces = new HashMap<>(); public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanInitializeStrategy) { @@ -72,6 +82,21 @@ public List getCurrentStatus() { return currentBoardStatuses; } + public boolean isInPalace(Team team, Position target) { + if (Team.CHO == team) { + return target.isPossiblePosition(CHO_PALACE_MAX_ROW, CHO_PALACE_MIN_ROW, PALACE_MAX_COLUMN, + PALACE_MIN_COLUMN); + } + return target.isPossiblePosition(HAN_PALACE_MAX_ROW, HAN_PALACE_MIN_ROW, PALACE_MAX_COLUMN, PALACE_MIN_COLUMN); + } + + public boolean isCenterPositionInPalace(Team team, Position target) { + if (Team.CHO == team) { + return CHO_PALACE_CENTER.isSamePosition(target); + } + return HAN_PALACE_CENTER.isSamePosition(target); + } + /** * 헬퍼 메서드 */ diff --git a/src/main/java/domain/Position.java b/src/main/java/domain/Position.java index bb70276cef..d001b463ef 100644 --- a/src/main/java/domain/Position.java +++ b/src/main/java/domain/Position.java @@ -57,6 +57,10 @@ public boolean isSameRow(Position other) { return false; } + public boolean isSamePosition(Position other){ + return other.row == row && other.column == column; + } + public boolean isPossiblePosition(int maxRow, int minRow, int maxColumn, int minColumn) { if (this.row > maxRow || this.row < minRow) { return false; diff --git a/src/main/java/domain/piece/Guard.java b/src/main/java/domain/piece/Guard.java index 7f62b936d1..5d859c0c86 100644 --- a/src/main/java/domain/piece/Guard.java +++ b/src/main/java/domain/piece/Guard.java @@ -12,7 +12,15 @@ public Guard(Team team) { @Override public boolean canMove(Position from, Position to, Board board) { - if (!isCorrectMoveDistanceAndDirection(from, to)) { + if (!isPossiblePosition(to, board)) { + return false; + } + + if (!isCorrectMoveDistance(from, to)) { + return false; + } + + if (!isCorrectDirection(from, to, board)) { return false; } @@ -23,11 +31,30 @@ public boolean canMove(Position from, Position to, Board board) { return !board.hasSameTeamOn(to, this); } - private boolean isEmptySpace(Position to, Board board) { - return board.isEmpty(to); + private boolean isPossiblePosition(Position to, Board board) { + return board.isInPalace(this.team, to); } - private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + private boolean isCorrectMoveDistance(Position from, Position to) { return Math.abs(from.columnDistanceTo(to)) == 1 || Math.abs(from.rowDistanceTo(to)) == 1; } + + private boolean isCorrectDirection(Position from, Position to, Board board) { + // 1. 출발지가 정중앙인 경우, 궁성 내 어디든지 이동 가능 + if (board.isCenterPositionInPalace(team, from)) { + return true; + } + + // 2. 출발지가 정중앙이 아닌 경우, 중앙으로 이동 가능 + if (board.isCenterPositionInPalace(team, to)) { + return true; + } + + // 3. 출발지가 정중앙이 아닌 경우, 상하좌우로 이동 가능 + return !(Math.abs(from.columnDistanceTo(to)) == 1 && Math.abs(from.rowDistanceTo(to)) == 1); + } + + private boolean isEmptySpace(Position to, Board board) { + return board.isEmpty(to); + } } diff --git a/src/main/java/domain/piece/King.java b/src/main/java/domain/piece/King.java index 089e8f711c..7757b7bcf7 100644 --- a/src/main/java/domain/piece/King.java +++ b/src/main/java/domain/piece/King.java @@ -12,7 +12,15 @@ public King(Team team) { @Override public boolean canMove(Position from, Position to, Board board) { - if (!isCorrectMoveDistanceAndDirection(from, to)) { + if (!isPossiblePosition(to, board)) { + return false; + } + + if (!isCorrectMoveDistance(from, to)) { + return false; + } + + if (!isCorrectDirection(from, to, board)) { return false; } @@ -23,11 +31,30 @@ public boolean canMove(Position from, Position to, Board board) { return !board.hasSameTeamOn(to, this); } - private boolean isEmptySpace(Position to, Board board) { - return board.isEmpty(to); + private boolean isPossiblePosition(Position to, Board board) { + return board.isInPalace(this.team, to); } - private boolean isCorrectMoveDistanceAndDirection(Position from, Position to) { + private boolean isCorrectMoveDistance(Position from, Position to) { return Math.abs(from.columnDistanceTo(to)) == 1 || Math.abs(from.rowDistanceTo(to)) == 1; } + + private boolean isCorrectDirection(Position from, Position to, Board board) { + // 1. 출발지가 정중앙인 경우, 궁성 내 어디든지 이동 가능 + if (board.isCenterPositionInPalace(team, from)) { + return true; + } + + // 2. 출발지가 정중앙이 아닌 경우, 중앙으로 이동 가능 + if (board.isCenterPositionInPalace(team, to)) { + return true; + } + + // 3. 출발지가 정중앙이 아닌 경우, 상하좌우로 이동 가능 + return !(Math.abs(from.columnDistanceTo(to)) == 1 && Math.abs(from.rowDistanceTo(to)) == 1); + } + + private boolean isEmptySpace(Position to, Board board) { + return board.isEmpty(to); + } } diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index eeafc29ca1..3501346713 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -10,6 +10,8 @@ import domain.piece.Rook; import domain.strategy.NoInitializeStrategy; import domain.stub.StubBoard; +import exception.GameErrorMessage; +import exception.custom.InvalidGameInputException; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -285,9 +287,9 @@ protected Map initializeElephantHorseFormation(Team team) { Position to = Position.from(5, 2); // then - assertThatThrownBy(() -> board.move(from, to, targetType)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("해당 위치에 피스가 없습니다."); + assertThatThrownBy(() -> board.move(from, to, targetType, Team.CHO)) + .isInstanceOf(InvalidGameInputException.class) + .hasMessage(GameErrorMessage.PIECE_NOT_FOUND.getMessage()); } @Test @@ -306,9 +308,10 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatThrownBy(() -> board.move(from, to, targetType)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("해당 위치에 해당 타입이 없습니다."); + assertThatThrownBy(() -> board.move(from, to, targetType, Team.CHO)) + .isInstanceOf(InvalidGameInputException.class) + .hasMessage( + String.format(GameErrorMessage.INVALID_PIECE_TYPE.getMessage(), targetType.getKoreanName())); } @Test @@ -327,9 +330,9 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatThrownBy(() -> board.move(from, to, targetType)) - .isInstanceOf(IllegalArgumentException.class) - .hasMessage("기물의 도착지점이 판 범위를 넘어섰습니다."); + assertThatThrownBy(() -> board.move(from, to, targetType, Team.CHO)) + .isInstanceOf(InvalidGameInputException.class) + .hasMessage(GameErrorMessage.INVALID_POSITION_RANGE.getMessage()); } /** @@ -352,7 +355,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PieceType.CANNON)) + assertThatCode(() -> board.move(from, to, PieceType.CANNON, Team.CHO)) .doesNotThrowAnyException(); } @@ -371,7 +374,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PieceType.ROOK)) + assertThatCode(() -> board.move(from, to, PieceType.ROOK, Team.CHO)) .doesNotThrowAnyException(); } @@ -381,8 +384,8 @@ protected Map initializeElephantHorseFormation(Team team) { StubBoard board = new StubBoard(noInitializeStrategy); // when - Position from = Position.from(7, 4); - Position to = Position.from(6, 4); + Position from = Position.from(10, 4); + Position to = Position.from(9, 4); Map testPiece = new HashMap<>(); testPiece.put(from, new Guard(Team.CHO)); @@ -390,7 +393,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PieceType.GUARD)) + assertThatCode(() -> board.move(from, to, PieceType.GUARD, Team.CHO)) .doesNotThrowAnyException(); } @@ -400,8 +403,8 @@ protected Map initializeElephantHorseFormation(Team team) { StubBoard board = new StubBoard(noInitializeStrategy); // when - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(9, 5); + Position to = Position.from(8, 5); Map testPiece = new HashMap<>(); testPiece.put(from, new King(Team.CHO)); @@ -409,7 +412,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PieceType.KING)) + assertThatCode(() -> board.move(from, to, PieceType.KING, Team.CHO)) .doesNotThrowAnyException(); } @@ -428,7 +431,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PAWN)) + assertThatCode(() -> board.move(from, to, PAWN, Team.CHO)) .doesNotThrowAnyException(); } @@ -447,7 +450,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PieceType.HORSE)) + assertThatCode(() -> board.move(from, to, PieceType.HORSE, Team.CHO)) .doesNotThrowAnyException(); } @@ -465,7 +468,7 @@ protected Map initializeElephantHorseFormation(Team team) { board.putPieces(testPiece); // then - assertThatCode(() -> board.move(from, to, PieceType.ELEPHANT)) + assertThatCode(() -> board.move(from, to, PieceType.ELEPHANT, Team.CHO)) .doesNotThrowAnyException(); } } diff --git a/src/test/java/domain/piece/GuardTest.java b/src/test/java/domain/piece/GuardTest.java index 30bae03687..29779644f6 100644 --- a/src/test/java/domain/piece/GuardTest.java +++ b/src/test/java/domain/piece/GuardTest.java @@ -25,8 +25,8 @@ class GuardTest { Piece guard = new Guard(Team.CHO); // when - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(10, 4); + Position to = Position.from(10, 5); // then assertThat(guard.canMove(from, to, board)).isEqualTo(true); @@ -42,8 +42,8 @@ class GuardTest { Piece guard = new Guard(Team.CHO); // when - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(10, 4); + Position to = Position.from(9, 4); // then assertThat(guard.canMove(from, to, board)).isEqualTo(true); @@ -59,12 +59,133 @@ class GuardTest { StubBoard board = new StubBoard(strategy); Piece guard = new Guard(Team.CHO); - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(10, 4); + Position to = Position.from(9, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + testPiece.put(to, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(false); + } + + + /** + * 이동 경로가 1칸 초과인 경우 이동할 수 없다. + */ + @Test + void 이동_경로가_1칸_초과인_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(10, 4); + Position to = Position.from(8, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 도착지가 궁성을 벗어나면 이동할 수 없다. + */ + @Test + void 도착지가_궁성을_벗어나면_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(10, 4); + Position to = Position.from(10, 3); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 궁성의 중앙에서 출발하는 경우, 궁성 내부 어디로든 이동할 수 있다. + */ + @Test + void 궁성의_중앙에서_출발하는_경우_궁성_내부_어디로든_이동할_수_있다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(9, 5); + Position to = Position.from(8, 6); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 출발지가 궁성의 중앙이 아닌 경우, 궁성의 중앙으로 반드시 이동할 수 있다 + */ + @Test + void 출발지가_궁성의_중앙이_아닌_경우_궁성의_중앙으로_반드시_이동할_수_있다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(9, 4); + Position to = Position.from(9, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 궁성의 중앙이 아닌 경우, 궁성의 중앙으로 반드시 이동할 수 있다 + */ + @Test + void 출발지가_궁성의_중앙이_아닌_경우_상하좌우로_이동가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(9, 4); + Position to = Position.from(8, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new Guard(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(guard.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 궁성의 중앙이 아닌 경우, 궁성의 중앙으로 반드시 이동할 수 있다 + */ + @Test + void 출발지가_궁성의_중앙이_아닌_경우_중앙으로_가는_경로를_제외한_대각선으로_이동이_불가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece guard = new Guard(Team.CHO); + + Position from = Position.from(8, 5); + Position to = Position.from(9, 4); Map testPiece = new HashMap<>(); testPiece.put(from, new Guard(Team.CHO)); - testPiece.put(to, new Pawn(Team.CHO)); board.putPieces(testPiece); // when & then diff --git a/src/test/java/domain/piece/KingTest.java b/src/test/java/domain/piece/KingTest.java index 8d387f99ed..5114468f05 100644 --- a/src/test/java/domain/piece/KingTest.java +++ b/src/test/java/domain/piece/KingTest.java @@ -26,8 +26,8 @@ class KingTest { Piece king = new King(Team.CHO); // when - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(9, 5); + Position to = Position.from(9, 4); // then assertThat(king.canMove(from, to, board)).isEqualTo(true); @@ -43,8 +43,8 @@ class KingTest { Piece king = new King(Team.CHO); // when - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(9, 5); + Position to = Position.from(8, 5); // then assertThat(king.canMove(from, to, board)).isEqualTo(true); @@ -63,8 +63,8 @@ class KingTest { StubBoard board = new StubBoard(strategy); Piece king = new King(Team.CHO); - Position from = Position.from(7, 1); - Position to = Position.from(6, 1); + Position from = Position.from(9, 5); + Position to = Position.from(8, 5); Map testPiece = new HashMap<>(); testPiece.put(from, new King(Team.CHO)); @@ -74,4 +74,124 @@ class KingTest { // when & then assertThat(king.canMove(from, to, board)).isEqualTo(false); } + + /** + * 이동 경로가 1칸 초과인 경우 이동할 수 없다. + */ + @Test + void 이동_경로가_1칸_초과인_경우_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(10, 5); + Position to = Position.from(8, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 도착지가 궁성을 벗어나면 이동할 수 없다. + */ + @Test + void 도착지가_궁성을_벗어나면_이동할_수_없다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(8, 6); + Position to = Position.from(8, 7); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(false); + } + + /** + * 궁성의 중앙에서 출발하는 경우, 궁성 내부 어디로든 이동할 수 있다. + */ + @Test + void 궁성의_중앙에서_출발하는_경우_궁성_내부_어디로든_이동할_수_있다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(9, 5); + Position to = Position.from(8, 6); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 출발지가 궁성의 중앙이 아닌 경우, 궁성의 중앙으로 반드시 이동할 수 있다 + */ + @Test + void 출발지가_궁성의_중앙이_아닌_경우_궁성의_중앙으로_반드시_이동할_수_있다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(9, 4); + Position to = Position.from(9, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 궁성의 중앙이 아닌 경우, 궁성의 중앙으로 반드시 이동할 수 있다 + */ + @Test + void 출발지가_궁성의_중앙이_아닌_경우_상하좌우로_이동가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(9, 4); + Position to = Position.from(8, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(true); + } + + /** + * 궁성의 중앙이 아닌 경우, 궁성의 중앙으로 반드시 이동할 수 있다 + */ + @Test + void 출발지가_궁성의_중앙이_아닌_경우_중앙으로_가는_경로를_제외한_대각선으로_이동이_불가능하다() { + // given + StubBoard board = new StubBoard(strategy); + Piece king = new King(Team.CHO); + + Position from = Position.from(8, 5); + Position to = Position.from(9, 4); + + Map testPiece = new HashMap<>(); + testPiece.put(from, new King(Team.CHO)); + board.putPieces(testPiece); + + // when & then + assertThat(king.canMove(from, to, board)).isEqualTo(false); + } } From 3fb7328a84b55ea08bed980f2c6cc59267997ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Thu, 2 Apr 2026 15:24:06 +0900 Subject: [PATCH 25/27] =?UTF-8?q?feat:=20=EA=B2=8C=EC=9E=84=20=EC=A2=85?= =?UTF-8?q?=EB=A3=8C=20=EA=B7=9C=EC=B9=99=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 궁이 잡히는 경우, 상대팀 승리로 게임은 종료된다. --- .../java/controller/JanggiController.java | 52 +++++++++--- src/main/java/domain/Board.java | 5 ++ src/main/java/domain/GameManager.java | 13 ++- src/main/java/view/OutputView.java | 5 ++ src/test/java/domain/BoardTest.java | 48 +++++++++++ src/test/java/domain/GameManagerTest.java | 80 +++++++++++++++++++ 6 files changed, 184 insertions(+), 19 deletions(-) create mode 100644 src/test/java/domain/GameManagerTest.java diff --git a/src/main/java/controller/JanggiController.java b/src/main/java/controller/JanggiController.java index debb3f655e..e79f38b290 100644 --- a/src/main/java/controller/JanggiController.java +++ b/src/main/java/controller/JanggiController.java @@ -3,12 +3,14 @@ import controller.dto.CurrentBoardStatus; import controller.dto.MovedPieceRequest; import domain.GameManager; +import domain.HorseElephantFormation; import domain.Team; import exception.GameExceptionHandler; import exception.custom.GameException; import java.util.HashMap; import java.util.List; import java.util.Map; +import strategy.InitializeStrategy; import view.InputView; import view.OutputView; @@ -26,8 +28,9 @@ public JanggiController(GameExceptionHandler gameExceptionHandler, InputView inp public void start() { Map horseElephantFormations = readHorseElephantFormation(); - startJanggiGame(horseElephantFormations); - playJanggiGame(); + initializeJanggiGame(horseElephantFormations); + Team winnerTeam = playJanggiGame(); + printGameWinner(winnerTeam); } private Map readHorseElephantFormation() { @@ -38,24 +41,40 @@ private Map readHorseElephantFormation() { return horseElephantInputs; } - private void startJanggiGame(Map horseElephantFormations) { - this.gameManager = new GameManager(horseElephantFormations); + /** + * 1. 장기 게임 초기화 + */ + private void initializeJanggiGame(Map horseElephantFormations) { + this.gameManager = new GameManager(toInitializeStrategies(horseElephantFormations)); printCurrentBoardStatus(); } + private Map toInitializeStrategies(Map horseElephantFormations) { + Map initializeStrategies = new HashMap<>(); + horseElephantFormations.forEach( + (team, formation) -> initializeStrategies.put(team, getBoardInitializeStrategy(formation)) + ); + return initializeStrategies; + } + + private InitializeStrategy getBoardInitializeStrategy(String formationInput) { + return HorseElephantFormation.getStrategy(formationInput); + } + private void printCurrentBoardStatus() { List statuses = gameManager.getCurrentBoardStatus(); outputView.printCurrentBoard(statuses); } - private void playJanggiGame() { - /** - * TODO: 2차 사이클 - 게임 종료 조건 추가 예정 - */ - while (true) { - playTurn(Team.CHO); - playTurn(Team.HAN); + private Team playJanggiGame() { + Team currentTeam = Team.CHO; + + while (!gameManager.isGameFinished(currentTeam)) { + playTurn(currentTeam); + currentTeam = switchTeam(currentTeam); } + + return switchTeam(currentTeam); } private void playTurn(Team team) { @@ -69,6 +88,17 @@ private void playTurn(Team team) { } } + private Team switchTeam(Team team) { + if (team == Team.CHO) { + return Team.HAN; + } + return Team.CHO; + } + + private void printGameWinner(Team team) { + outputView.printGameWinner(team.getKoreanName()); + } + private void movePiece(Team team) { MovedPieceRequest movedPieceRequest = readMovedPiece(); gameManager.movePiece(movedPieceRequest, team); diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index 308e6a7f1b..99b62bcf0d 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -97,6 +97,11 @@ public boolean isCenterPositionInPalace(Team team, Position target) { return HAN_PALACE_CENTER.isSamePosition(target); } + public boolean isExistPiece(PieceType target, Team team) { + return pieces.values().stream() + .anyMatch(piece -> piece.getType() == target && piece.getTeam() == team); + } + /** * 헬퍼 메서드 */ diff --git a/src/main/java/domain/GameManager.java b/src/main/java/domain/GameManager.java index 8ff48173b7..5fa1e3657a 100644 --- a/src/main/java/domain/GameManager.java +++ b/src/main/java/domain/GameManager.java @@ -9,10 +9,10 @@ public class GameManager { private final Board board; - public GameManager(Map formationInput) { + public GameManager(Map initializeStrategies) { this.board = new Board( - getBoardInitializeStrategy(formationInput.get(Team.CHO)), - getBoardInitializeStrategy(formationInput.get(Team.HAN)) + initializeStrategies.get(Team.CHO), + initializeStrategies.get(Team.HAN) ); } @@ -27,10 +27,7 @@ public void movePiece(MovedPieceRequest request, Team team) { team); } - /** - * 헬퍼 메서드 - */ - private InitializeStrategy getBoardInitializeStrategy(String formationInput) { - return HorseElephantFormation.getStrategy(formationInput); + public boolean isGameFinished(Team currentTeam) { + return !board.isExistPiece(PieceType.KING, currentTeam); } } diff --git a/src/main/java/view/OutputView.java b/src/main/java/view/OutputView.java index 1edaa741db..f47e50cf11 100644 --- a/src/main/java/view/OutputView.java +++ b/src/main/java/view/OutputView.java @@ -4,6 +4,7 @@ import java.util.List; public class OutputView { + private static final String GAME_WINNER_GUIDE = "장기 게임이 종료되었습니다. 게임의 우승자는 %s나라 입니다."; private static final int BOARD_ROW_SIZE = 10; private static final int BOARD_COLUMN_SIZE = 9; private static final String EMPTY_CELL = " "; @@ -29,6 +30,10 @@ public void printErrorMessage(String message){ System.out.println(message); } + public void printGameWinner(String winner) { + System.out.println(String.format(GAME_WINNER_GUIDE, winner)); + } + /** * 헬퍼 메서드 */ diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index 3501346713..d4bdeb6724 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -471,4 +471,52 @@ protected Map initializeElephantHorseFormation(Team team) { assertThatCode(() -> board.move(from, to, PieceType.ELEPHANT, Team.CHO)) .doesNotThrowAnyException(); } + + /** + * 보드에 궁 존재 여부 확인 테스트(게임 종료 조건에서 활용) + */ + @Test + void 초나라의_궁이_보드판에_존재하는_경우_정상테스트() { + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position position = Position.from(9, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(position, new King(Team.CHO)); + board.putPieces(testPiece); + + // then + assertThat(board.isExistPiece(PieceType.KING, Team.CHO)).isEqualTo(true); + } + + @Test + void 한나라의_궁이_보드판에_존재하는_경우_정상테스트() { + StubBoard board = new StubBoard(noInitializeStrategy); + + // when + Position position = Position.from(2, 5); + + Map testPiece = new HashMap<>(); + testPiece.put(position, new King(Team.HAN)); + board.putPieces(testPiece); + + // then + assertThat(board.isExistPiece(PieceType.KING, Team.HAN)).isEqualTo(true); + } + + @Test + void 초나라의_궁이_보드판에_존재하지_않는_경우_정상테스트() { + StubBoard board = new StubBoard(noInitializeStrategy); + + // then + assertThat(board.isExistPiece(PieceType.KING, Team.CHO)).isEqualTo(false); + } + + @Test + void 한나라의_궁이_보드판에_존재하지_않는_경우_정상테스트() { + StubBoard board = new StubBoard(noInitializeStrategy); + + assertThat(board.isExistPiece(PieceType.KING, Team.HAN)).isEqualTo(false); + } } diff --git a/src/test/java/domain/GameManagerTest.java b/src/test/java/domain/GameManagerTest.java new file mode 100644 index 0000000000..ffa8b704d6 --- /dev/null +++ b/src/test/java/domain/GameManagerTest.java @@ -0,0 +1,80 @@ +package domain; + +import static org.assertj.core.api.Assertions.assertThat; + +import domain.piece.King; +import domain.piece.Piece; +import domain.strategy.NoInitializeStrategy; +import java.util.Map; +import org.junit.jupiter.api.Test; +import strategy.InitializeStrategy; + +class GameManagerTest { + private final InitializeStrategy noInitializeStrategy = new NoInitializeStrategy(); + private final InitializeStrategy onlyChosKingExistInitializeStrategy = new OnlyChosKingExistInitializeStrategy(); + private final InitializeStrategy onlyHansKingExistInitializeStrategy = new OnlyHansKingExistInitializeStrategy(); + + static class OnlyChosKingExistInitializeStrategy extends InitializeStrategy { + @Override + protected Map initializeElephantHorseFormation(Team team) { + Position position = Position.from(9, 5); + return Map.of(position, new King(Team.CHO)); + } + } + + static class OnlyHansKingExistInitializeStrategy extends InitializeStrategy { + @Override + protected Map initializeElephantHorseFormation(Team team) { + Position position = Position.from(2, 5); + return Map.of(position, new King(Team.HAN)); + } + } + + @Test + void 초나라_턴인_경우_초나라의_궁이_존재하지_않는_경우_게임_종료() { + //given + GameManager gameManager = new GameManager(Map.of( + Team.CHO, noInitializeStrategy, + Team.HAN, noInitializeStrategy + )); + + //then + assertThat(gameManager.isGameFinished(Team.CHO)).isEqualTo(true); + } + + @Test + void 한나라_턴인_경우_한나라의_궁이_존재하지_않는_경우_게임_종료() { + //given + GameManager gameManager = new GameManager(Map.of( + Team.CHO, noInitializeStrategy, + Team.HAN, noInitializeStrategy + )); + + //then + assertThat(gameManager.isGameFinished(Team.HAN)).isEqualTo(true); + } + + @Test + void 초나라_턴인_경우_초나라의_궁이_존재하는_경우_게임_진행() { + //given + GameManager gameManager = new GameManager(Map.of( + Team.CHO, onlyChosKingExistInitializeStrategy, + Team.HAN, onlyChosKingExistInitializeStrategy + )); + + //then + assertThat(gameManager.isGameFinished(Team.CHO)).isEqualTo(false); + } + + @Test + void 한나라_턴인_경우_한나라의_궁이_존재하는_경우_게임_진행() { + //given + GameManager gameManager = new GameManager(Map.of( + Team.CHO, onlyChosKingExistInitializeStrategy, + Team.HAN, onlyChosKingExistInitializeStrategy + )); + + //then + assertThat(gameManager.isGameFinished(Team.HAN)).isEqualTo(false); + } +} From 3ab27c3a804761e48d40f1ed65c15b4f67438c76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Thu, 2 Apr 2026 15:57:51 +0900 Subject: [PATCH 26/27] =?UTF-8?q?refactor:=20Board=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=EC=9D=B8=EC=9E=90=EB=A5=BC=20=EA=B0=81=20=ED=8C=80=EC=9D=98=20?= =?UTF-8?q?=EC=A0=84=EB=9E=B5=EC=9D=84=20=EB=A7=A4=ED=95=91=ED=95=9C=20?= =?UTF-8?q?=EC=9E=90=EB=A3=8C=EA=B5=AC=EC=A1=B0=EB=A5=BC=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85=ED=95=98=EB=8A=94=20=EA=B2=83=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/domain/Board.java | 6 +++--- src/main/java/domain/GameManager.java | 5 +---- src/test/java/domain/BoardTest.java | 25 ++++++++++++++---------- src/test/java/domain/stub/StubBoard.java | 6 +++++- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/main/java/domain/Board.java b/src/main/java/domain/Board.java index 99b62bcf0d..bd2b048478 100644 --- a/src/main/java/domain/Board.java +++ b/src/main/java/domain/Board.java @@ -28,9 +28,9 @@ public class Board { protected final Map pieces = new HashMap<>(); - public Board(InitializeStrategy choInitializeStrategy, InitializeStrategy hanInitializeStrategy) { - initTeamBoard(choInitializeStrategy, Team.CHO); - initTeamBoard(hanInitializeStrategy, Team.HAN); + public Board(Map initializeStrategies) { + initializeStrategies.forEach(((team, initializeStrategy) -> + initTeamBoard(initializeStrategy, team))); } public void move(Position from, Position to, PieceType pieceType, Team team) { diff --git a/src/main/java/domain/GameManager.java b/src/main/java/domain/GameManager.java index 5fa1e3657a..a69c3b5a87 100644 --- a/src/main/java/domain/GameManager.java +++ b/src/main/java/domain/GameManager.java @@ -10,10 +10,7 @@ public class GameManager { private final Board board; public GameManager(Map initializeStrategies) { - this.board = new Board( - initializeStrategies.get(Team.CHO), - initializeStrategies.get(Team.HAN) - ); + this.board = new Board(initializeStrategies); } public List getCurrentBoardStatus() { diff --git a/src/test/java/domain/BoardTest.java b/src/test/java/domain/BoardTest.java index d4bdeb6724..6bbc571b95 100644 --- a/src/test/java/domain/BoardTest.java +++ b/src/test/java/domain/BoardTest.java @@ -39,12 +39,17 @@ protected Map initializeElephantHorseFormation(Team team) { } } + public Map createStrategies(InitializeStrategy choInitializeStrategy, + InitializeStrategy hanInitializeStrategy){ + return Map.of(Team.CHO, choInitializeStrategy, Team.HAN, hanInitializeStrategy); + } + /** * 1. 한나라 기본 기물이 올바르게 배치된다.(상,마 제외) */ @Test void 한나라_기본_기물들이_올바르게_배치된다() { - Board board = new Board(noElephantHorseStrategy, noElephantHorseStrategy); + Board board = new Board(createStrategies(noElephantHorseStrategy, noElephantHorseStrategy)); assertThat(board.isExistSameType(Position.from(1, 1), new Rook(Team.HAN))).isEqualTo(true); assertThat(board.isExistSameType(Position.from(1, 9), new Rook(Team.HAN))).isEqualTo(true); @@ -67,7 +72,7 @@ protected Map initializeElephantHorseFormation(Team team) { */ @Test void 초나라_기본_기물들이_올바르게_배치된다() { - Board board = new Board(noElephantHorseStrategy, noElephantHorseStrategy); + Board board = new Board(createStrategies(noElephantHorseStrategy, noElephantHorseStrategy)); assertThat(board.isExistSameType(Position.from(10, 1), new Rook(Team.CHO))).isEqualTo(true); assertThat(board.isExistSameType(Position.from(10, 4), new Guard(Team.CHO))).isEqualTo(true); @@ -97,7 +102,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new LeftElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position choFirstElephant = Position.from(10, 2); @@ -120,7 +125,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new OuterElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position choFirstElephant = Position.from(10, 2); @@ -143,7 +148,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new RightElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position choFirstElephant = Position.from(10, 3); @@ -166,7 +171,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new InnerElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position choFirstElephant = Position.from(10, 3); @@ -189,7 +194,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new LeftElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position hanFirstElephant = Position.from(1, 3); @@ -212,7 +217,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new OuterElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position hanFirstElephant = Position.from(1, 2); @@ -235,7 +240,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new RightElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position hanFirstElephant = Position.from(1, 2); @@ -258,7 +263,7 @@ protected Map initializeElephantHorseFormation(Team team) { InitializeStrategy strategy = new InnerElephantFormationStrategy(); // when - Board board = new Board(strategy, strategy); + Board board = new Board(createStrategies(strategy, strategy)); // then Position hanFirstElephant = Position.from(1, 3); diff --git a/src/test/java/domain/stub/StubBoard.java b/src/test/java/domain/stub/StubBoard.java index c5402b384a..505e214a8f 100644 --- a/src/test/java/domain/stub/StubBoard.java +++ b/src/test/java/domain/stub/StubBoard.java @@ -2,13 +2,17 @@ import domain.Board; import domain.Position; +import domain.Team; import domain.piece.Piece; import java.util.Map; import strategy.InitializeStrategy; public class StubBoard extends Board { public StubBoard(InitializeStrategy noInitializeStrategy) { - super(noInitializeStrategy, noInitializeStrategy); + super(Map.of( + Team.CHO, noInitializeStrategy, + Team.HAN, noInitializeStrategy) + ); } public void putPieces(Map pieces) { From 752f175a5af88816e9086a1d13c218fbfd9e6270 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A1=B0=EC=83=81=EC=A4=80?= Date: Thu, 2 Apr 2026 17:00:04 +0900 Subject: [PATCH 27/27] =?UTF-8?q?docs(README):=20=EA=B0=81=20=EA=B8=B0?= =?UTF-8?q?=EB=AC=BC=EC=9D=98=20=EC=A0=90=EC=88=98=20=EA=B7=9C=EC=B9=99=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index ba64ac01dd..98fd6cf41f 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,20 @@ - 이동 위치는 “1,1”와 같이 좌표형태의 숫자값만 입력으로 들어올 수 있다. 좌표는 쉼표로 구분한다. - 추가적으로 “한수쉼”이 들어올 수 있다. +## 2-3. 기물 점수 규칙 +- 현재 장기판에 남아있는 기물들의 각 점수를 합산하여, 현재 점수를 계산한다. +- 각 기물의 점수는 중요도 순으로 높은 배점을 가지며, 각 점수는 다음과 같다. + +| 기물 | 점수 | +|-----|----------------| +| 궁 | 0점(점수 계산에서 배제) | +| 차 | 13점 | +| 포 | 7점 | +| 마 | 5점 | +| 상 | 3점 | +| 사 | 3점 | +| 졸(병) | 2점 | + # 3. 용어 사전 ### 3-1. 기본 용어

    ^W}V;)ppPtbl7J!ScQyZT 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�MgB zz~mGmr}UiCY*<8+*x@=A%FQ&$tb*Z+;Zf`Hb8wb#3~oQQVru&eSBVt7kjPl%|8`u; z5~?{eI4VH!3Ig#w1jEp%Ah2N(0W8kr9Hc2DF?#I2E?>aMpmI}A`X@*gN$+(&uniYP z%9Dn{uD!2>jxKC<=98kZT`Y#0=?1%QF@xaB{TJ{?YT_IsS8t-2+5~_eC%x~pUsjDC zMSdrEgg-h4BU&R{Ttg+Tmc7`~n6J-G{5v?f-i{>PVV~nC$;v|7>~7wrAW{mDMmF`u zdF+0OPGpw9Mv}Kg*!F`U&oc3Pn9lWe=t~eSLhjFjcB~8A{)lFGIU0GpgUo2T^S66# zODN;e@7j-Vh+YMT6>)?Jh`L!LZ6##IxQ{_FO(IaL?!6A~Sp&G6cRABVWiS0+I(>WI z?-x_ld6ZqgswiKU5qdu<*A5O+O5%=U*)Qs98$kd*3fyKz5wFudNX$A7o;R?A<%GXG6q-TSz{)EyTjJlnoPvJ7_4~$u}@O8gOLHF?LkD-X(=NMy9 zwfdp9RvNPX+cS(x`JdVcLIRk#VH`u#CZ}ZD{(u*S;u`jxvR3^mGzlrbLulNG@QG`% zCcZ5B(a=F7#gXzDr?4Aq!y5=AoBC1B^X1y+RT|RJ_xUf@u;-k5MR#yG977crsvB6q zq6Je``;LYM+|3;mxgeQ1&QI5>J;RZCrFQG!ML6sk>r@^+Fr`U&^ns<<<=06mcqnHW zI=wVTyHUt9wee4xVu*PIk<2#7`{moZATM?dptN`fhJMOUQN!Cu04k;q(z_vf16gz2 zS%q#x9~Nrtbm25NiT0#i$R=r(kjyOr9bq#_0Y^au9>Y$-l#Sb9*#;+YI?=~D8W>q0 zHtxgcNjiu>U6A*+R9@ZlU}t|zX1qSjU*q|pHi3JDiClf;6Nni`p_5F2i)o#$l&r#J z96-uG^m>qYxCsJ+ki6NKHAgEkuH9$k>>go+u7Kt();|5DHPAwCTvs2@hkZN!_#M!O zV5ytnG|?)Ro;imuYE(hG7{s|m?i2f{)?M{WGr7Dr=n;|t#D>zpE=IwhtcBqGlqejPGc)IO9Z7hgrJmg(5S1<0-vEXPg0ysut~=<(_8LQoF0hMwJ)zVzvJNTzVmGp}{a z&yvn?QBSRPd5YR!Q+GA=5_~_hmIYI|(U~M^>35NuHaaz=|FYviOp78Gp6uLXVP@V7 zwkIXgYsIPmpr!q}Gf_qX;rTgV;}^>pF0ip45gIZMqqkX9=2E5ILB0RSU?{5_{o~&= zQT}pGQ?eDnL-Gs^18rFY`G5rshAaF?FZo#QnE7bOC)gy9!rg6L=Z|S(*sxC8V{PLH zW$Ph8`zKy{oHQ~!;w}qpq`E`_tkVO8=`UT9B7~_;SR!Uj#@e*F$9B^+;?h; z0u3>X+q$pDT9OVgEZV^ZT8bE0DL@i}Y)jBXVu4J4EQsZG=`a0!y>YhzQ}Inwj@h;Y zX+-I75BFX>F4^NcP~K%G6ZV7MUNpfkMyRC=8VZybog*R@&>DIM5^N5zU7=6RybB!6 z?@Bud%R^IS@&jZAAHu-)UHInI2X2yS{Yy;%*OTew@&iZ_0ZMdD+QFP5?*ZcUd`m-g zx${sj>CnzG>=r=0;;epml4zyad2N8MiOV=Hg*We*1Luu55Jmo>((PfXyTIP~joMx4 z5y+O9yw1?2N^-ib_103qnce|j#qD!QnFdX zB4B{(oP0YkLG*CLtd7Pe5}ylDyxgAFc4jhr(uilw$%*#6tKS1-*6nR$BG`qKn*DOq zrBfOzYjDHz){A|v=>6>% zgx4gN8F(^wZnVFC^K%#G$#NY-NDsg$J39jevsbPOwFxV1fviTVwx008`3C)clRH{Z z%p7IT7GDPnsGr)was`~xL7?`YDfi9;zL6hX-(BBhr+N7;R)6sSgrB^N+rN%Ps`^6# zW^YJEEnE$tQwoqLIDLGQ%69F=dmTTHko%a3Ah5k3-derbXl^bm`0mu%9GN+mbe(~D z7R){HeRyc{F@-sLeDNzlZ&lP}`EcK<4|;=60?_-?w=tnd1Zvh{@TI?U+EbDAy3V)} z9IQqxZyBv+AG#W}VQUpRPs;xy^oG^1eeO?c6djJMx) z=Ue}*UBTBz5u#*K4-&=q=b?EcgnU_*52qDUhzlqH5PK?h$Eq|hrOGE5K7tr>n(DAD zH(4|mf?FZ3B(E>33E-6vig)c%EJToW@0Of zpPCaQt{IpS2#|;pUT}y@_m3GADGdY})*}gm*T6qY$cR_0U>-^pQY2| z(dw5?R0iVtrvlqhO{@ki5y+1O44l{+UMS4>mK>!&sPpZmeN!BQ9!p8Kybz`Q3ZLmd zu*7^N|CG0S3bcesE^NdPB{Y{|cWze(aE8Pe$AGDmw{3lPXk`{Uj+uzX6@ed!x~(0^ z?t0;bva~W;JR2ZYK3Rie4W`B)Va^^YX;FI@xzl{n>ILRrR|)6v2Y@FRPZ$_HjD!aQ z`i5_fY^W}nYZWuZVix^;neKx5>>KFEKKyjajshyZEaLFT2tiwEt!(ISQCOzH`hsmw z#JlP?U}%9(Vv35@nM8(R{Nyc*YdXhwqFOP=`{<*m^1V2QC#*uu){uxR*AO9Ul0zEV ziG$+)g*z|bT9yYwuk$Xdy>~gd3pP8?@NG!6cL)8`ZP>)GxOn^=jFiW=vtOBkHG!h& zHqdR6h;D@SV6Rqsgfw=zsQCvNhN0Uz-NJt^fM?2k(W5Z)Ao>9ue$L@azUyfG_!{S| zVq|u`9u;G^G9UjFRd zUsedt%(7M$xrU(=Z;oU0x1IJ9K3a}A$@1{6OMr`}X|(LttvQIFR<)JGLCkI^wu=Pa(yvZpBzE=HYwHyT=rHdRp8JlF) zK#lvw+c<8ha4#7;baR8@elI6f9S2xl!=3>@ZWYKt(SS=>V8>dE+^eTv^}U&lBq zw(6)Mk$ih3t;*U8!)`RU7d^Wn#%8{6=xXN%Z{$iL^B;SYzct4H$)`tlAgdVp?{HmR zINE@+k}l8uJCvtcfW~>+KZjCs``3ILILFsp=_|m<62aE&W&4oS=Ge-pcHm-kntcW* z!JoTd3(OFUlHf~#U8wuAXoN@8OplCX!s`&M6mQZB>6{*p)Xvjwb> zJqeS$UmlN(VC1%AIq?%VH<(uiP9bOkI?@Lvj*#qiNkKS)P`v%8-avWi`jI54yW`j- z6+2)87QcmSq$z)TcV9<$UmIL!wVggOi=5qZ4c|lMW8|@Sk)5{v3Nj zU)r)8)8CD3Ad@8qtlObh-#5k%Ok22?P)~qAgw@jg)$P6=p8dnUfG)>7yuIBe|9LlE zg00HTJMLlJ!d#QL;5KGz063L{{$vMC6HxfN#{hl52_$vrq>#`)uLNbU6d~Nw{CNWJ zh!3;Q8N?N<=4JQ*;6B-Pv$olra5SG@f{CWL*Ra6w)}A|;mAzhx4h13`mL*`U?z*dI zV8q2{>c;S6Jk34E=qe!t-uH8F7OMx~4cgWBtvY#oKnf@>HX5bUurK}S7V^|OXRJ_} z9D1jXO_9qce=j##pmfa@7&#Dxv&U7QVAKI2jjk1(#EIvC3AR9w^W>hNd9e_ImvpP< z5@>4n^~ABw4ZmU@uW%{?Z3<5sKEXq1_di)6{(h63^?AAKoXZVBzl_e^F@>wn}jLCQk zkag!G%_p7TKAXeOmH4v~3wcmatnj6=)SF^UP^>*U4Xg@mh%ZurQgd+xH$LCk-*CUy z8OYj8(DXY;t3wp(t|r9$(RG&v72=RhR@X%gAP3Fr9iZra^O;4$4zh<$)2#)@VGvZi zNq-4xlw*oeGDHuOUOhsk&U#mwzvpqqgC6af-R&Zx^?{$j^Ti|)?SWN?viNK~5+=qs zP$-gxC`%U`B*l9tPCvdQN;w43r;b#W%UDE>AD|!~1n|WIbh&%D^y;SF0R{^Oj}&7Pvgc`50foQ zN{wec3^u=@Vg2hm{!d4~0Z05G-!q=;<_SjB=xB9sS;Bn(OT|Zh?c~2*&iI2wBvukh z%IY~ToqND%DtYh~{Xfm2f53u+y#f>hCE(7=t-gT_L|fHgn<_}2&%k0CsAV_|p0NaY z>-v#$ToNZ5%)Y^~b^wP;BkFUVy)W=6S6q*RKiMxM(=@$H8v)0@!HS6y(^G?hmtH45fG)Cvk1p_EGisBdq9T zpNR*EX(x28*DYxX8k9o;B)w^fYc{ih>8nZ2BuBYA9K2#2+e32VIML`A7dj6CxlQUR zJ0q#M?tXYuuZ%j3Y0I+pbr@-#J_GTx*JazP*_Zr6|!~N`^O1bEYr4)`K|Ld+3UZ1w#G@Q$^07 z6%ot*5Gt4o#t-)2MQg2^7+LAO1LD6~Z?E5C8)wOuu%T+|sx>Qae|GAw_Xx+ZVK>Wg zQ!LM|!7~M53PbYT`{A1N#|s)BtqXTG>H3~s@~{YTG)$@$VBpoO$s?uJ7Df#KXUOm4 zVjq8Lq5N&KpN7zoYX4*^b2m+T4bXbN#Jwqt_m%aYKX1kz@a^l6TGP7O)1F z<>-~=!!W!AX8mjVU!n^Hb__f}7oGFGlEgXj=GHOXN7_YCmjTE%lgC@Y9ONo8dhsG1 zdJAy~(`VaBOC%$aY2aHPvz-+C#-@*0Aka{Z;Jau_0ZAUCP;6mag)s%5SnxqB{soy5;Rw zbFmM2;~{MzSJxAkR2N4=Vi5`?5)PEchx)0e7`cwDe2UmnmTSZzV5eYI+TNv#2v2id zoqR8nW5YQv`XCw)ULPOEeWQZeW1t(8Jd6dd*=f`#D>S)Q=D12vUSL2E0AVu`^eghR zL;f}KLuwn4q+n4rs5%HFi2TXxgCJtecuy_r39-lTQ_?SM3aj)ohHQz3CM7{@oSGP> zv4?B?^y5z0MM=eWe$=z!og5Tz8Vw`QE2)D~PtMdx-SJyH1^iTw%2nnH`hkDqvR`ptJ0|GeJ*`7Sh$yVN)At6nK50@6q()!F zocuLN??hA7A%9^~&!z$Z&qRn82!8)9!it;O^Wkp3l7eMcnhTc zIQlwy%ZmNe3)eKZ^^Z54S*&3(xGDEFi0%=XE|}vE&FX$@vtq?#zxa(Xoo01@7V=db zB7+fAWJp>2!4;r;h4cn^E=5Z)QojM5oZ9Z%kX(}HH=tyMJYus80W+3FfbjiaBNoHm z-YU-`OMv~gE7}hvi`3l}{Gond0py;PUf$hJSze=-@4n~{3pl5)9?nNmEkxP z!vw8ch4!cT<2P?4kFchs;w>3C#4)e)$u~~IwOh7X!xk zL25*=8mq^~5056lB)?aE*jSH_XUCt|3t6B%4%W4V^VhGX?sLyjX2AOjgim*aEuzk% zrYVzxegk_@h`J5;g>a@9 z>-_$9$}~~6m>Rnw#LB%{4OoECYMu-s(EOYKrLZ*$v!xhGjqJ%vbLGQK6WSjKfmNoy zX@|@vXaq|1aD;sjIQ29*S2;@t72*l0c}3TR`;(dLR1;jJ(tPTdIFfK)b-T8u z#)0pBtakfSy@0YCTko#RFhg^6C z4IZK+c5Hed&+)=?%lO@=43@e^Ah?#&uJ!t|Z+$yyM#m08yT<0dAZ{%2Fk;1YHUuH5 zxGw>*L0CGT$Yu6GZx^zV)}!Nj_Z*lMT$eD{_ML%_fH%u9haV_a`9=ovIhzb@nZwxG?+ooavLpK8+IJA&RAFju8Pfw(T7?aO|9`>cqn`%> zZ?o&DoN^ZoG*-JiwcsVZQB!4d8$d^OwOS%!@3_sKRQ%kXrIhs%-zT1uUnE**tGZ$r z#UH~0y4UeLtnwtqG>v?E>)|4og3h;?R-|X2>VX2WxUd>T4CnyHPgQsH@85yfrgUGo z$5luiiyPA8bYiPIoMzB{_(VzS_y5i@r3`U~H3(Y_S%U422tupAY+DI>l8{C!$R?mO ziIu+j*GqKptPq9PZAdZJ4w?w=c>}E^4o*|`N4bLPzh8~NpJBpV_TaC1ZOG&UDLEl~ z&hi}aowE?heq=a^p_H#`z@q20hwzKw^R`#H-mv&xvMMkh^qbeAmD;ItPu3(mM#4Wt zC0%O6y%g9_NKgQJv6cpAY^}8Ku(A3;R@Dszo6M>0x0ke9puev_iHF3zR-?woYY@zY zb353>N74pd_Kkc1tiT_@wl>ZqTa#{i`0}bfgz?CW?xW|?rrWnm20rOM|B_y{SFuj3 z7OML&z29*8HZXN&S~9O3%xe-#!dy}rO2ucwWRw3?4eLnLTc>ddVYH z)^eYgyt30e(0EWz$P5f$9zmJZg~WuJS0sP{bkiIG1gp9edrwYf-->;jvTGtB952tW z0ZeMy*~5-l_kk?Ij>WTI7Gjd^RT|!By)_7#RFmH(tO!8VTQu>m<4fQ@=tES(lPA4T zCwGO0vdUf>tf4$@I~6eZ@~}ahZTeL0D+)iZ&>`+DFu(=wrOV-*(NkMMJvsA={>7EM zTK29n5zUvu5tZ#*-;NZxi%X`<20+^DJ^y(Ca$W+#T}nf}y<`8YOli7Q+U1RlB~<1r zmugk+N|=ZS6ifukX0Ae)mjn!e%X<|2=?BJHJFz@-FA4*H-F5wS(EgV=(-BDoSQ7G= z&S*gGq}#Mj&;}xLof%K`-xdgEAL(p7W`yE3GON76Z&3<7de7R|Z2js%2#c?Q_2n3{ zs{J{b!gU9YbIL73YRJxqOkaSJ?`~_%@d6UaTvJaqAX=hX(H^UEZwW0kIZ6OZEU1rut$nbugjts#JTaGkjr-b-p4ku{IK@rPm6xo>F=B+#*owRmkb=SX!M zFo&|D**cZj;$CEcgvFqngG@D`nS$5r%Bo5 zM2C;C%lDDiXx2=kn1iLH$otH;LWSzHWtF5)<`*JZ`18YFKD8fE1_N)DmZz9vB;I^- z$N}+W{doTp#5H@lrb`TikL&SvI{+-W=qz5T3YEcbyrj`K;}ZLY7mmuYu^q}}^I2t8 zN9zi|LPQj+zssFLU>4BXJyvFel=v?K-{!gq$JEaNb&C2faN(nTtPGj=qu$i`CIB^4 zoc2ieOBp%q!9u<30~wbfvP814{=olw0j$&u5BTzQW_9HqOVqX>`{nKR`!)9K4_Y!b zryRcMT)O_(yYg2on}2-0W+&xQi~bCHTRGAxor=!h-cG{73v|5uFPoan<7YQW(V$T? zg_!DlGVL6Nkj6;74xU@8B`uIlA*7Zt2DOywn{XEM zuSV)U*jK>#z!j7QjG!`i0~%Y6Q+pE}p|0%x{!0&(_sF5@qF{bzU_8|XQUNZK{WqsW}5jDkSEWWV^K9uyWg9w6mb;B!0!@E1V$?DJQO0bWiosocY(81}* zh~x!oe0!&3w@A>RIqAR~(hjUmPsuuY16T_+q-1T5zLJk_U$mHX0 zPgBE)>3`a!dAZ&HbpP`^T~;)B-Y~@qBv8-bIPKY96Ty2;K134D{~$HI_|`^o#p*Aj!nT zzyFe4wwk3$v*S)0=&Gl05L6r94823Om%uZ1%3t31-klV6Fx?SFn7(XcrKJN;`Lg{~ zED=NDCqT7KHUKY96Z%uaU(5)Y1UJEvY{y01BYUp@>TV{{qa^GzZ@B!QP%2G4oeF(S zpHw)G@4W`JfhQmu)qglr?872l$g?eF{933>#PXVp0G4oINBuUSmN!Et^jAr_tr{v8 zmGM#(kj~G~s<{coIX;K?dk1CZrW+c!v(}Yu)b3p2vCuWc%q5$M) z%`hB!cX$lJo-3*^zJWPid(vRyTa!ePbnN1(pYri`bMLv^BpNmV5CnlRGuPnW76*hU z{LF)A^`;wd{iiOUE_{mDROMi~rQyGH1OfHYgiWmqb$J@CNvHvRCkgy@Z$alLcd831+ZtiD$TDlB zGVkriHY*{FlJyJHSG+xw{S9La3dKt0NWGM)x5vj95g7XhK-04t=%4ATtD--AK6J`pr!MK|Ql`v^Tn!+*QwMYyh(8$H4-5P$!r4(We zFbZxRnb(vL3PNg@kU!X0?PuWE#(BUkm8 zC|$+Y;90aZl;IexymsL;Tr%7#1EjoccymeprM;&Mi?HVZuE{IAh!Z$w>meH*>>HcDo{1?B9q`fV4t1d zd^w%}s(2DZNi-6BY?2dK{_)Q6jP3T;YBhD;R}9Zpm;}4r55Wn2I2d?lwlt@71vnex z7&nNHAwds$8dzT0bB-jcSCPWz=g@9IliG#l@MX-fa)G_UBTJ(TFa=I>q(89jIIw#F zbd84&z;4(ijvn#jw=b`01~(&}0V(Xn0U(*yd_^~5RFqZaHEAsBMMK5cVg36XxVB7^ zt@@!|?md}_4;)z1VXTC{ge+-*8eQ>!pLZS3A0$D`^+$*bxVw@uy8U3~)0b|E?ul(lTMfwZLq>F2oSvZ1p?452N!NOf-q81zG zdB+7bO(ARh&oaiLLGw45r;6C~LzQL7cnZoKS*cS`u0x&RzIJ8Ntqx3yy8=-YEMK?b z?fg}J-?!bk%ZLUiRG`e)fKxt-;frwN+NfVGG<&x_#TN$+(a$c4S!lgHG) zh-{yo73FT$Xc?X819pCip`7aA`}20_|Bg39h006P;_spUQ(YiB7*Gh(V-|wN8z4_5 zmy7+C3}d`9uURsw@e{I{8>yRtjUv)GjDd}sNr-yK$15)){$2ad1~wKWaxVM<97Gn5@Pezr|rs1oPZJJ-rK6*bd}Za^w*mCk!f6Elu7&-19|V zbVTzoEVO?s&*~jUbX__hy4E#0RN#I`4LOmdko0MNIri=7RXZd(+xa=7DQkGY_zA{A zeHM=;z?I&>ggSWppd4ib8QR*swsufq#!k@t3na#V(S>P_(=2%rD>&j*l;jFhUSQuK zLR_3OgO)d)k=hyPnk;mSJgf}3Bo_yu{ItNmo%8e}-1s3ZXo8|c^Sv;$l1M&5T&@c} zJw)_%3N&tq5T5RJ|7>w0CvJPkDS+IPv(BWu|09g6K8RK;kaR$s18Y}!6}ar_nguuZ z5TXOn--oSM?VEEH>GU(1MDJhdkI&xv_~_)((}9WMhnM|KOWiDetj}h?GrBjJLQ$=w z9sC1{^MHMW*b$n=6QqrieR?FuzGp?~NGcSha0pwWhXHrKN5&>UQ`|VUgLM;GjT79* zK%u2|f-YO> zF-2@9OiUBQY&Sf-0&U%U;Mt<)e}xFjV&B?ae9Kz?vOj~x%M!SDvs!En%Tl|*xn<06 zmRX}_;|tt4H8#hZ;0q@0>PC!IpRzQI8zr8aoO6p4N?#IIeqvJ_GPVA0V4Cngsh|8q z^E}LUrppdCWq0j0geqZK;PK_!#;ESu{v5T#N6M}YVlIMrbk*I>%@_4D`>TA1euiAw zbC?^$9r3kXFZs*U{Dy{l`NRuVFh6?RMLAmi>9P0^P?*1UMx-;S#nWYtF8l0?hJcfQ z9SO;U6oN%p7&GgTR9OJrg!Vw9=s-574PKBGfaEas z`tmN!=|D0|jCO~36I(R-int39M-#!f#NHUwmjSBZki7s)oZ6m`5Elyz43(!_9NHaR zBO6Ba$xQZ(Ko3t|nU;^l>-1n+?}XJnv#OK?q4*1F7}@(|Wa}!8&h;_id2pA~!SF4h zV15&Zi*hS<@ek`kEyt)a{>5GqHi}nny)UeNxeoib2T=6sA6w6a9DRSZyDJ!Au<{#&i4PRaGrg7v;q4gd)1Eah5nUgByFeE>k9M8|c_~p606|olD z*jQKmgBFQMlk+MvH5KQ4uTWBY(7l~vTz(DSm#H=Mp?fMhndPl=-U&_@r5M3O&O!FZ@f{9>EW_J0|N76!9Krms9DiDD-Ex) z{5{+;YhW^S3#3BmL;eRKJ1O^Z5qMGqWl{NK{5s>>k5)*Jz|wm+QW!;8d~$bo!<&6 z96|aX(&%T_8m+70r^h23XJ0!5T=ucI`@Wbm=*dxM9#2uWHbYbLrSByEC7M1<+ zO4+nQ+nCNqcRcpVPA-gb!%rp{|6*?O3T9!dls18wIv^394n~ zG7OwKoZI2SNF)CkPvL_aT6vznBCukHq|pGU$i&+Mo1VX3B7Nq$Q;}vE)-D(xyAu}{ z=5}1E52iAuBOQa_oV1-G&tTcpMK))ZFe$GN{|30JSxe~W^KWh%X7~+9-dmpj&1L94 z91U~_T>Qr{=UIX&_TnR{m@=~v(2KNus28_B`$5!1-JqLgNh^30Sszpsg&~#L0kj8G z<(CJEw8g7TOWG8@Z@v?YAzfoIp1epWy^to9FY=7WBZ%ZayhRS;kLfu;-U4ySyVZ0Q z>q!zn z6y{1k+17c=^vSP`adxP;Z_2unYU9GH9$xdZZ4g^K9k8!ZfvoES%hN=EN6IGUef@+`gmwJq8RY-^@%422vS)Kg+bWNRRB5SHKo7YDDtcq9-I zn!#@Q>0Bus2Xob&n)!ESyOE1ZWH*o59&$QR@2P2MgBT0XlbS(rSz8zbt%ypvIgzk? z&H=2F%Lg~8VHwrMwrLSu$Wk|86z(CNveuRN(gYbF1 zq7=f1Hu+;p@5^Z%d-VzW%ZD%nJqO>P(g*azi(*32~8deJ^29^Ls0z z`nl{`JgEG_{Ki$Fd=GzLFI)<`1rA6L)U>z`9Qe(3_>33qE=5s;9+S0l1Et`Z~qq15hFA^KF8j$%G07C*InAW$ob@^nYAwPy`i&LtBVQ3eq8{7=S2B zr+|QP=x$H}CB>jqBm@q9=tjUI1nKTZkP-xb*X`ESes*VfzrX!sUe1oA<2lcB-`Dld zvR=t5OK1AEPegF|ClYCWO6}ESSrRh-d;)wALFajD+2j(&sh560*-YN|{kr7b(#^c| zBp2#oKw*0-mN`~J&Y?aQ=T6P#(|MMt1Z4~%loD>%)4H8-&^5q%^JN>(=-b_JEwE>I z!rVhaWF+Ukv=yPuGJ{$NtXm2XGv9*ZXmQm|39r0UA0Q@_YmafopS-hl~N3jDD1o?}FjVz_2pntGD=+$v}_&9;Bq{8P+Pqv2~eIFO{ zA6r&u4i>4?RqtmC7j{mMmzo$^6=rM(l!6$H;O0`T8YEgik8^~rKkpJs=e<^|6uN6TSHAJ2#Xh*?pAG(S zJcR%9#qg1|Lpj|3?YgB{Sg3{>WNLPg)A|xX8;-gK*X3#uH?gG%G~YFF!#2lx7FW#9 z)qhhtUB{^LEvz7VuL}X?zVK$oXjBnjoZ|cNl>|sII@9hKLiD#JCrd!sdJE*kRr%*3KWI+m zwnHp*$SIo1QHzp>l}~i-sVp0wD0w7i&bm(jFOU zRW7ah`f9R1uP}x7w>iJiORs7hy9z~`3(wKer`U?x9Fy>VU@HtO5a)H!t}hb)R?R6c;u52^~} zn0cp9#2KGqlJcis?gL7hO|?|;$7PR!JyOP?qWG#w?`CZTOx(vPp;mjXPs*#QyHEL$wt$G7@yVoXhM_lBEwxa}r>vHw)@a6;a zH1u5Q5R-f@i=ks3fV2FlVS^>dT~F6gT{QXn=EpZ7(tJ!(-{W}&J2_whOnI`$S*Yba zW0%NY9z(Lns4e&Y_R1378?lO3@p(eBTO(V!3Qw$t#p@l)-L{+@fyN@TzHmAnL>9MT zPp>L_t`cvwOgCrEoAv0~-qs&?fWtY-I6vm*sWS@$R^}ToJ)-A(R>NWe1!O^9qy?Uj zseMXEi7a{c>BI0A@KmX=gX7_S9&x8=AJk&`eL5|36zmg$cOVt>2DcWe8W@xH!D2p5 zI5C1qW{`amo!YZ;^kYYc`VlUPZe6Rm16-B|=xM+a-Vaht6fZ<{cMT*M`!>XgG`|gL z5H_~@L6qb5ghu7FA2SQ@ahqj=Cr2|A930K7@63tDIeoX9A_cg#l>9^Gy(bL)**q5l zmgoD_#gv7|9_y>XxBP{E_%>@yJos{lyM!*B^_o#F@9Yd^8{tRA5selV+)`Gb2P;+tG z@Ou3CSQ`$MdBVi?j~*>Kp28{2{~y||fBlan{i&}kHo2c=>)xn6cq8Rfz1B4T@EPZ; zbOFX$g_tc$AKmQZ7dedoF`fm}|8&~$g75r>W{s3tVo+@YKi?#XJ5g-6$s@&5zG4U@ zLO|~|*y77h7-D`68+dXb$f{*8yS;yACwKL;OwuoSnM|Uy@s=ht{MvUv4>^83z)%oM zxM)q*9f3@(Nt61ANLz|vm{xd9OG?2=VwVTviRqm$)Rb%N?i6VZHm_(UX=I&WmP>7ju-E| zXU`;S^wEBxf`#92>)!QX#tx$HV336pS(@#pzVb-WI4*$p+^Mrtkr06v0yEt^fGahc zXlw5*6wh!P_Z8<$&O*9c1I^kCP5J|4$ev&RHV=%makZf+Pp~Un&xalodS=(CyWbp~ zdnCz2^biQf^oy*(_OJp8d;LnSHH$di={M7%2R}>yU`SZYHf`Z%6k4p|5Bk2hgJoQN zb7k^*KO@Og(73bjA)2y`-DLPSXW-aXpZ1t~2;iZ}LA82k8#C*WJDeBq40#YFWC86` zQb~R>W$&C9S-!jx{hCK)!}*6=f2Fd?@8r6?AiSw8*vj37D9wlc%IPY)*OKa_$+}Q! z!evWaO%{joFi?;maK`)fOA$FiBfM@!qs?5kV{I78gWL${e7gX5V$yX++aYio-SHYJ ztY1X&{*o%4#Xh~`E8-D=Gz7(6lpoU6)Z7grZ&tt}svT!p>j=LDM0(vugDY1>%F@pa@+g4;lJSp?6vE z(VIow{&6M=YkM#6Q^$5SUIW^5EcGE+p{{|FU+nc<%PXI}`(NHGcIzC}EOod!XiYgdHNMPnf}0`euNwh#FHvc!y#>cskZ^CQDnz9HeSZ2ke^9vtacn=_&sOKygQhQE zr?K4O)bm3x*c2~wgzPm4KkG+y?CLJRt}GqGJ>-_L5F~Unt8y>F#?u3j1N7ZhkNo@% zJtPP~eyHHrY_q49;CcL`rK7*( zeqe8+#t>*7-c;kiso#67isK)Dj9OM5@&NUo_3U_woQHLbE+o*saZb-SPKs|6=sP8; z7w}ssN&;DS5AR*Nx5&O+IN=KCam*!2LJ?tz_YW7gy|0rs zF#`IUHv_z2Q=bzG5@W$VKyWlL2*X}12lhT)wCDkWIgyv|x@7JCiT%Sph3%GeC&nZ4 z3K)hrsGYY!{eHWvkWt!z`UOl>>#rDntA-zJ()3tVT(^WYz>~F%rtZui$>ZOt99XiQ zF}W2aV>VY~y98^-J0J>(JAzg&h-;iXdd_;ZA^xHFIfw#P(oh-UVZGpc#B0N-;ENL3 zmuhC4NWkq-?yx@0Qt8+#hutlMm1`T^TFBh4*k>eAo6n!mbT)99-YP9^GYL>V zO2=cT>vB;dg9;aL0goJzbUaFU{&;*=6kvuSN$)p=oS?ZC&FEe=5^{r(J zhtS8&D()(4qH!ltYwrgp+*pe9RQ<^)>fpQx{e#L2SMHt#XGMWqWm?h(+Q4NvoXYso$3kU4r#kont-KQ1 zD`0j(GVhrL+P`hJ`;QNfl@UJimzlN6f+X`liR%_7p%B84$(wMM1{N57zRhs>n9hD1 zsA+8To2KQ}4~G2e_rMJ2bFJy^9)&4G?k#U1QNqhzhp&o$`*<#JuI89UuY`)rwd0<( z)LFdf@`1p#WKPcth*g z2pvS!_)G38C&UdK>1iQAIeE47;E?Li3Ur_*9^D?T)goQ{$L9ZYrt@MQG|0}pBYdfj z<3R5}1b+}3M^wSmeVDDvQuNi(+A3O$F1%t+C%^veRDeR|$=!@3h14E`n_0RwqrkD+ zU!{#OBCCh`jT1L3PW}MA_XEiI{IuWjjeIy}C?^ZV%+7bIal3AV0yjo9x4USFTK%GSq@8y@Tu!NSSU3 z-Ni1P1xqKg_gPKvpWg?||JARLZL3BstnYq@D|(T<@|`4{dLyJH^a$Ca0F6EM`x*=C z${*k03wjS?g11fQoVl@8)^6}zqa2#@Tu{W_)D!?=mCYwVd;HfQzV`0YSc`R(twt1h zVRq%~MtD> zEXcumS&(`iPJ>b4-TWpJ3A?w*PRKqm`VK?B-aSw>`~^dwcLR*+&VBYHLW+X@L2Uc%K$*DUewYJc_E=tE$KQ z>CK4s06l*O4Hnnozh5(VBsv4Y%s2MuVI!G~=rwdU%+x`*up~w$3&pxWvdh?cGKt*FzM5ofjVHoe}`u0N`HSOAcfR5plc!@f? zMnNw29NuQ_$9KG~o+fwTxfvirp%QW&M&o@Lmo)Ys{-~R+0o>+`NjHFh1BQRZ?73I1 ze|^`n8kJclBN$OA{MIdW#6(Z+X7Gd#gOo=%JQt}0D--mDZpy@p$quo+PEbxp54R9h z4y5-FTuJve1^VUr$Q(RRVIP9n`UvfMyzieHbkRD4p!b6)G8&^M5-{Np3Lf zHOPo=r6{ma6@@)S^j+zG6})LU=+c{b7U|4O<1c119H%|1MBu>s11{$~fnKtAyNfT6 zg3SU2*N^XW8Tj;)Ba+itVaRPD90T$VNXQmQDV`0to9&FJ=NWPic!xM$5aRQm)cqT| zchTP?bZuYyPV1%go9X|7ZEG+BwR&+!-y`!90EksxSZflV1AL-fq*A2!{u6*S558@H z_w(c%Kb0%!9jYQwa)FkgsFbBJA;HS~?z78^2(Ft9tU*E-$2&uE7Ev56} zG%w?ohxLDdX5@)_FBZ!Y44mf5{vO>;6QKK2r4yoE4uy<&U8>6of$B~Vy3%YvIPUAY5au*8hEe{3SM1QqEkdJCl3LFqmhsb%nbb+K_5KqdBASU3P-d5o)P&`a`?9{3E5|l zQwlm(^;$x}7r*_W(B1*I^rBb#??Qk(E4TveWlgt=DCy52zJS=4qo*; zpnC8o#BnO((?@nTqjnY=LD}hCJ`v@-;4gA6b791CXDw>Mu6)9=N$lK~`?xE$B5nuZ3#F|~4|a((J^6GQz;4N-fSz^F^B6hMtjFJHO@xBZj&DAEtFNTl zk<$<(U3;VDh%nAwCyu2IBM33f)~FJoHt6j`A@xDH36JZG8oEC$vReVT$^<7?a3wm7 zL}xF9@NFdMt!GPyQUlPYTF*|j=>pl31HfvsnbIae?r8GDZG0yGqyJXV-ZSv2+ZT>l zr)8#K4*<}xdm-O z3rUcsGZva-)+c;}s^`kpt54yyK_%)M3?m`eIiEtwZuK2)VV1xDI{)|;|HY4jdx*(s zo4jtU!ylrK`8~urU4?fncd$YBv1H?Z)Y*foI6zt&deTn|p6WpE)~M7sTdSAYWuR+ocz8Gw&_j??Y@3RR zlfG9afM4W;>K<{qv@bp~z2Grx7wgY^h{BVd*5)|?6FFyVZQAPmB610;$`5kSlROds z#fSCxKbq=aKj7Tu(J;{)`A0f2(#QF0|oTXo-xTL52{`NWl^p^Xn)ZZ0`&(KPPz`nET>VxahhZPv+a^WV7J?B-Gz_+=N~SFSIE5vNp8}; zZt8|}1VA;tfI0G-5~;X(Z($2X!k5ZL*p{ETkw)^H+#?pBpq)J}a+A^nrOz6`Cq%2% zUg7Qz%4}=z;`B}-sM%AJjnr+-%j0vLFPhMY6O?v(B}jc)?Zj7c!aX88hXftIG9Tt7 z2DafZSrcOYw~>_=CB>xr=|x6~aqjjG8a%75PHm28R5FdtohU{O!Un!MkW z{&XDGcTPwETi;%b2L002)4NBulW|ljkdI#OeyHbnzsewU9Loq?IWNI)E3`}_3 zM50itM5NPudq`RTzMuYEh?6?_Zpy211wcf7ilZHY7~k{>L^WLpRijtnYu*J4c%+$u zs;xiQ1pC}dmKRF76kN)HE-^?sykcsao*kQN2@;H?duemf*={{6P5K8%nP>VD3yR71 zLt#?oH4L#Uh7J3v8$<{&oVcpt4Mr6{qh1Nq-s_WvB>ppgUcY&KcM2uw+*wzeUJI0RI7J*$@YugJ;SP9For{W+Y5!mFcZa7(uB3)Wls|_58k%n) zLq3N=0p`P=^V&7Q*|D8DPKRp9cTXlOy+{%7C<0p(P#=fn%-_=pP&!l1gL` z>6#hl*V6@A$1m>kEImHRuOS-d&t>rgD8ulG{5k(~jagdZnAG1ta5o4x2DAvP8`pmi!kx<9&T|JDDu%`VyCa9D$a zjg1YT8v|-{JeH3+IFvY$QS83x*29NHv;t-t-p$68!zeckT?RQ20-!wf#g4QKs5_wZ zK2gvECt9W{FkM5_055$S?eaGV5CUWju7!miRn{xDLC)kdo3-AKxdGn?hs9b6 z1Wx3O#9iytzkjwod(kk5#)=AVL*HElMXHiam5%W8&(Q2SeAdYMjTw`?^JH`UUhByy z47XW?NX;(0-<`FUFDhYK=h|Fb2nBRNe;T4DzR22o9@;R!##Jbrd(;KxmgC zX}w({9{rH=500>Z^}+L!!z2FqMClVK|Ll~HV|llc!0aJ;&$Cium1@=!^p^%?N1^7* z3U}-Ela*;u=Ord3y@!XD3%W@{z~D|QKXf0JqJ_egejP^B6P%olUyceF9YJ8rOyh>k zaUjrM0-ttKG|L|3?$G0w>f1CUQUrj&#(9Q;g`x>Y$GQBDM39yQx=sZP5P{{4N~%uG ztqrohi;&pnF2%@a3H_PAl7jm1oeF0VxunPPCy~B0x>066)$|%xMsFKHa(+7lNE#6& z?ZkSR*8wj0{rtHy9})4^hquwWbMu77(4!;8YI30a)m-swbJ?f}n7r<{y&$8tEpVb$ zDu_wKjQ`+Svs($2zxnt)8_0~Vtb>X9?v{EJDDsnUASUk$_-{Y2$KKT{-qDycrc2oN z6Y){IfvN#V;`+6Uw0%MqGz7|9eRiK`=HTpk4*G_xYHATiDe!AVW`uf^p*CDp8){PA z*{Q;IJ0*BUh8yFA>(GOD$}XHe6Edp7geS6ikWEU83{Zu`o4?`Yx`Dgy+7U|9Za>+4fr6$%q+)z(K^qJsq3{#C zwD_T(5r?4KcEU5JBD5G>>C!bvn6@d!wkrT{vkVCfGwLg$7ir!7+b@cqllrm6{FRSS zYiL!)3CKoub{BZ|I6X0wDm^Zyo!2rgrv2cp9F-fH;U{qk*VEbF{))f*ikN4Jmj{X{ z8AVmhAO{sNm(VC6G!HN_Eo@XG)fUid?*Yv+-Ri-i<@?sH13TCSwcx>5j!wBCD86fQ3zuWL#**EX}^Ief#z*Fb^3WkZ^#iFVMn) zbO^GM=RaA#ftmIFt03_+;6Six@XQM&efNrCzI@XR(V%D5@)}-LLQc<#&nzQOgQKJR z?A*OH7UpV$FclemY61FAwr@E|0}994VgCKpb~ybm%=cAqQa`*RfQWEvSK~O>l#XO^ zouMwn*iVY?Mq_)FQNDtgmJp`1+-^<{I3)RIyX0$IxEaE;r{tq1!6ETI-d(gKNsg|* z+~&8}3Uio8@3-l1$g5RjpFL9 zHggx3jVx~e_H?sKMlA`KwBw&cc?@(sYtz41sQdfk@h858N_QeM+Murn)CUjhiM;ZD zbc0HO9ClE_Bkj^^8kI)b0WO-Qnj-e^|l zmB4OFeCz9+9wcZGeV?AIBpABnSt++73=rFOu&TIm);5Bboy1(c+4mh{RkmsWB{=j zh8b~7$U+1x=va`%cGh@veuQ{y+%toluQ5~n?T~DT+UQV4{e>VK_!19tGu}RBsFd{j z^*e~~(1&c>P|z{h-s^Ft##Jk+tTaca8KMhY&6W2Ys3?TL88 z&(xFY+ZH;&s*>TcNKaTT^`9&We{k6}NbTOdID1yq$Sg+f!HKyi-dgCX&#i=Imsfe? z3ra{g=dy|fkwLkISm1rKJ_z?rJRanD^Dh;T-9<18@yZULW?gIP(z5^7H1U<*OFKo%a-ke^=px>yy7B z@yj!%p@u+9D&JLBt2)2zA!x zpBV+40L+W+slg%y$R7q#r{zgqI+cvwIkB#*;WiNb(OYwAY#lgB^|dFk;-hm%GxO$V zKiH#qA-A6mJW(^2Rl?JT=@;fVtj=KE+@LVzv0_$ctLPBkLLr6uZ6yfXfLN%E7f641f+o&R5>RVFXyQBLa@V2hE7KqOBJ_DeHHgIA0rVqE^k%U#9u#P`V zHM0hu`>WvgOP5@MjpwnSpWmb-k80x)z?ztH_;oZgr72ZXRdbU-(9%+Tp8snFgklOY zo%27J0;{RzG8|B&kY>lXYT1)QWsb(A*PszfSd&(C1lht^(L~HS+xTBiv{oq|?pcEI z!$Ql_`dwsE_jVV+?JH&1*Z4Yl_Fj3bY|YSqN#-ZSE)|3ZZxItfbYUU&8H2AyNfE*e>ITn-6ZfdX5u?JCA?NCR{Gg zV+Y|)xu)Wk6--10M3Jc$S-n21QK$fMufZeZ;k$3u!= zo?*Tzl_+cR=MuL}QApWmM^`v!Cw|CM#Bg~!n-_j6bFQS)Bfo=ZW4axm;99(%DZdn0vCKIOxIz)Su^}GNbp8*B!0Q4`Q z$Sl|cumWclw*cUM4eQ@$fUae+@`oTZ;~Ct|D&_0LdjP1;pTkv^14|wPH_8X#`^<=U zAS!qOFF`4!I0ytz4p_l^-o{!t3gNLyBwLKA_Xsf5Qz)*k-+gmVKoubFH0G_!BKUup zR1A7M7Fq$jKZZ_AY;%UW7hDq!FxYay-IfZ)czhqEGL$paPTmk*d^qCdGGn!gqatl+ zyjxuFs3`*ir1Z@&lJm+b3KvjKK?|ck););2&jV9fa}`TyzR5Tqxq?8!~;#@TdFBk!h#GF3;}Dr z0!LoE6|8t3u)D-$)&lueCF5t)I!NW<+%hPY_5a75C5hj&PH;YVtCF7D^Yj5f*2%z`K>#`jb(Z3)W!ekP5tdt0Knoyf1hk} zB4$@T!0nMU=LAVnd$AingZ6#4%HF~SBG8{(lpMT>Yz7dDpbslIZeP4-QMa--7%A{x zp^(37^a$6Uswe|+sm3SiS#LLmb6sBFMg^@PDTA#l` z;^fIoZaZ7{>?*x{nW1=OafA_Fld@&T7IHS0;3O`Y&WyJCw6P?X5(g%=&#;Rii3aRZ zMKSfb5zuX*U|(LCFiSXfzX*VtB7ISd6aqszkHs#4l7&MrvpxvFjZqVYe{>@@lVoAW z1l~+usLn%;sCgzG@*p$dL}t55wrTs@(l7SVSgf(v10I1A0F`u{2Bq$O4AT`89fXd( z?D;*ObIHyUw{+)F_cp+Vn|U$veElCvJ%DQO*yyV=^WT;~EZi;WIi9Bjzgac3$yFz-;}nEDgwY|tdgEL)A3 zWDmLIPBPVWdcgU_#68ac(d)hx;ZaiCRGKtA>=Fc>(Fw|RoR~a#IhC(oyA}c}0bddw zB@iVv3eTjQ?zt`o)e##Bd~Jo0_c^txCBUcCD%S<2O%OU!tvG3w<;ZWNL3nQk{D~a2 zFlNHwc}}Gx1=ngK^B@-z7mq|x6HjUNnv-K%Tu*frX!3X%!~VmFbD3lhqdPHr%- zM;8m@K`MS@`L%8nA<5n>uN5fro)F|zA*DRZ1ne#x_1r4fowkqwnT;FEVqN0)^v>D= z-iq-u(ZZXx{wNI~*G{4X;m`rxTD`>+r|B8caJ@vey0H6?XA#b?=+bkQEr);ux0UN4$sTX>&ypaQFJ zyK{KQH%q6u4{+9%${Vj}XWxBftLejA4(z`bjC|fU8ox!dE`~~;s4hCrBV&`A_4CB` z>^)6A%>$*2jCul4hGPhX>;&L&-2o#Ay48^#zoCp=CN>a$o0GL zxU%c?cJe%|gYWS@@GobO2l0?E9TO8%_1SnTxF#QhoT)y7nT4gwR$(1xGJQBfa=_GJ zl1>r`)(NeR)j2x5IP*zEYbO~9*2+w_-|hVhm0ALoe?&TH$6O64ibIX1uA6rC8wx9UnoJjn>!a@U16j|>qi?W52tgIhkP|@8g-4mshq#(ja$MM5PNVkcotc(<|7IIct!W!Y#dzHFEIR`zk`v54439T*8;hCaj1enr+;#K$`cwG#1KkIQ~v?J;lNoSJwQBOgBlp5Euc@adB^ ze+jl1^MT7p6<$&UVxi<4Q8MTGxW&7#0fvK0wGUD52)uyR{2dfsGo!0JRlO67`Qbbg zAaD)oHDPqdJt*4&FnVUgs$>@>^+J0_q=wt~vA~IWyTO>j z5^vtF8v46Uti)rsFS(zm#PFT2*=nf}>%@Dfr(Mc(4LqV@;dv+#H`BTaMP{*F5K@}0 zVbgL6pwBS3GjNTVZ4k14X5T4!+BZQnx0WNxB(MoPL`Y)diJ5rLs*RZ@ZAwb};-<}@ zXz-8j;F7Ur6{`ya1Fc7ee+lnMF7H{d=0$bkTYi+5kKn?Gv4@3^s_wFPWODQf{JDpsH+n)py9 zT6*P}VXW(UMRlb+lR{#^8ll~w2*mT6OqXk%zT5?Lqn)W>hN+lTgmvH{W~mfbg8{RR z5|Y$47*G3MzRC407GI`3A_xCtny846FM-Up=b*6MRGxT@T?z6I2@Yn)cIQ1sm=n-} zCr+KJD@+F*UcEz8P50oP2?`(5Hj#QFaUP@bDPL zt-x8p2B6Vi;mhp&MvkD3O4yyc{TgD=6Syd~@$6vId5W5C085@L?rcB8cI%>Ao)HUZ zp!2+n`MF&H5l3515057$fVnTg1c|OQOec+vc8xVEAIdj&u!a-M0BDJXSgcM<@QTjv zk#e`^mul5cHPO8%t&6H z%3UqgTdgL0=eywFvZsWEL`bnx=C&Tg*0&2SL|$=JHqsT zuC1uAg?Y`-Y2R{aE>)%&uuZPwuZ%(0w=egyxy?ErbIn6C>n6&W4L z{jE7OS|jeJ_+LH>%y7Q!+(_f1q+4@WN!)26|F+tp^EWElD#T+uaAcYLkakvK%#n(< z(Zm~}`Tv3F=MUiQ(ZewD)U2Q2_uYiAGpG8d1gLSYUcE}Lcivo@KPw5YfzPjGsES4c zMbdT5c4+xjpvpRb`%e2Rz-s5dd_Tiy;|OcSt%Qr@+AosV;34a>t}OKCFsZbFJ3bNK z_3*#~XjOr2xV#j~XK1B-&)NPke+zG`DRIC|l>8W!{WdgTlCA{VZxjnzXGfKsMX_c> zq4!PH3ss)#zW`9>GZS1vm|2AB9s&>K~41z$ajX{9%$7PBYOvl^%-1!|ImXy!i z7ffI{dEnh?GMS^L=R^t5)ccl;gvtEP?(1KNlvIlPcDZ(XMDoI@^5IH_PnRYtBaj`y zQf?yhJk0A&A5M`eP)B(=MiV+&O2&P^%se3ZL0D%y+}3uxWpEKGX@vtxLYz6ElQ0yf zX4Tyro_au-aw3-qU|HG(3y(ZqZM7fNL9&h=`<2>Hwy$@0W5$_gSqQdwcRNuv``A8I zTi#5#(2~?7)K--16vd{mp$QVs=dZ6fTwTjiU^#O;MTdU+q`ro9^@(sA}} zYzBl1P5w$HCM4sb@G0t>YWA(aZZ;OIplnhjcu>c$qTz?1$Q$r}ejrqU% zkt8QIGZ=8FctEvgRy=iTCLaQR!Tb1fg~D2`qlQ0m72vn$py|~=day7yo~I#@#1MSz zyrUkL(N=KRT)2nN{M>9nnehqq3D{&bM*lU5atRKrcOdh7OY(*uDR{K7n+OFGI4L3P9;9R%ySIn|BEzNGCHVOMm(R4yHfrP12np_t!fy3 z5_2Z4LoTb?>6`4l8azwN_6$2cX#fZ#Q<8c|VqYb^>Q})UlHP%I`LHk-RIki!m~4UA zl08UlHEglFO~IP7pX%`PtVDtLxcJvfLaTQtLsb^!t4g=^a__4%^)>^Km6aUy_;Gf$ z9t=%g2YAg2c5Rgp0Mx8>v_O+7V~yA=a$~*V9zk7lt=J$60Di+RN`b+(h1(zW;wR+wAgGAf9bimX7A33QB{Ma4)@}f?3&$k}?G- zlM-06Fkczu$q(P2=GS+DSMwI|^cF8!kTr;3tHu~6V-sSsNP@a8)>dnXI1E4Jwb^Uk z^w@hc;=S+w;};1nrP(TWww=9o;Ue0Hc^(rqg)M`$f@|{Td=lKNni+A+_yGVt@9Eo*9kJQ>?7& zLt7Z91w7o7H5B{YLCgeg)2HfmVYCVb6t8RbaZpewAZG9IVp&6A48lvzv&u!BfLoN@ zw6T3_mP}RLaY-K^qnP!;xUxi%d{vUDga;`)Y-9O|{YeAAI9F(;VZ74^jw`loPCq0+ zD65%{2b4WqM1WGT!)~kJY@obPFcg;zqfDJRkUV^N8Iuv{k}(Z^$0C{~Q{#dIh71 z>eo~)%eRN{x%UNE(KC%1--M#622{@gpYIFccdzl?UeB&)MB%wlNGwa(U|bA=JJVnq z*4HUnTf0Lb-Nc+;Y+HF{ z7-~k%>ucKKO#bX_GFaetS?dErwLnR;#pg zgP!ksA;rUPaX|V&j01V$K0rln(Ls|U4V*-mzD%&S_gkVauqV3* zcl+NljI#8;4fM61L2wzJS>Xj#EYTq$L6F>>wFtnux`Yow&yTg0n4|05Bs+F}s}(^c zc;odllCGJi3yNqA$!B!UddOy^@n97kWcMS^oavEY%MWjzH;8xfm9N<2NV#1O&M)b0 zw<-P`e_opYZ|^LBds2>ZfMhN4(#|<;PXc07Lk^&a;1#+ALTcV+Ht1G76p^v}C5lUi zb>ssym5e=Rjmh$QLMLE$7CC=`;YkJB1{FhjQ!#N;i7hL5JGzKedDXjOw-+!PX%}!$ zPn${A@zeKWvr>)aKq?7OucKXf7+g}7vR$4fM@fPoJ|Hz7d(D? zqHSoyL|H$R())T3N83XsoYj{*%I}~sL}xFry@+9!n;pw69Mt>T`>gxW+gP9Y`gIrH zK>2}i3CxcIhbTvxfbyH153**)bFw3A*mr_ANep z!rlWDFZbzY*FF2WnY+0o-5(#X@n$k5x-rSFiDgn@ng=p|9^)|ZSi~V~`AP^tQXGK( z6wGYf{BHp5|MQ#gC3_fqd3yY`V|ox9wQ5amA5FA$O<`u?Fa-?oc!GR>KJ^+^Fp{5! zjO0WOr>WO?MPufo$j=4l+DI-Hi3@a<9hw#{1lU@svUubor^uwxn+K_oz+2fyp9fA$ zJ*6!$foEi`#YOLZAuLZgEX_f8-jvMNC=jy-q!p$El`iOQPMPj?x#F>-hDvi?&9`Q% zyV{*S#T_b_quZO+lW)PWhG?plW`gAM?KzCs7V5S@Z#R?s56jw`I^bsK-3yoJz>Fz# z!l=tedkMoGRW2Arhp{m|A{!eLGJOAhtK%fmMi!Z(QGVKkbz5kROye{DT$_1nBuQ&e z60@mdgF{_7?}BmVI>2Eu@hm(%H>W!?W8)j$>#-^&J7KM540LoRB}9sX<#Tb=7^`8x zt&9N^ZL{+g&#E;M0`Tl2Q!i=?RiV1O4tspYz@_DQ4*4+%kGGhX`W3$YYn8+=PVoQg z9}Hgg2)4YTF)tihts@toK7Y@?Bkkhj1Az=6X-$MnEpV&XZXG^ze@#e2zozGWIsi<+ zPocK6XP;()Su{3Mvj(K;2C&Pa2D&cW>4Zpga{_)yQ231!t$SsKdR5 zhW=M?!>_(kH-e|v!&W2tGR-5T*!g$yiChDLCj*r=hzLYh7e80AJud-gw-G-O1}XG8OvgDGu?vF-V)q_Ym%9B`Zv3EC};&9 zRmaS?BD0AlIj9xS<9)g(X~Lk|uv!F)@*7CL$GwS`Mf4q!wt+ z2y*1sluLGfiz8iDC<6FT&%9NvZ$?ZuvtlVm5c?w!c$Y(=zB?@{!@J8JZjs_tTaq8C2nbrjp`~w2a@`XK4+7@R3 zxTQ`WbW0X8`cJF|e{$m>K(Hyz<4QMhvdo=@jXxLbr!NhkPc2P9x-TAIEKJ&o;5TZ; zbrRQfuh^?+vZSI2H0&CX-JSSHpPS(;Q1Di*8U`!QksaLg!=RZ0iJSUhc zP1;&^$7h=G;OvvgL7SayPy%LAQm?JFZb|`+;Zj1|575gCT?y9NFgFq=QHSPMw#gcT zB>Ctw+Y%z6Y1Z4j(}Z2)72$5RXFX66Il0yJsfGj$zQ;C7X#YZg{K-%GpRA1k}JE@0D2RYy18nAX3cP&RgM2 zr8tNrDAOq%wFy5suS}0QmTK+6$kRK>g%LQFX&pCdPk#zZ#_J$0c@4PUPwEMH!-@QR z6CRLje_Vv>NVZ-$&RXn>nwnZ|;8>&)KvZ`rdd(oJH`AnH0psQjdiVE`^vVti5b+w2 zS{O6_d0`#4bXM3IUm^}-MMbe;0bp!>_)TyV6zw;q+vZ@SUIf?&k_+x7rGn;y%XxM7 z-EAh7n-F(W`DS?wBH7tod(3L`+S3ciQP6%kB&PRSp-N>?Nt^e~*VPI*KCc=68Iwi#QH1Sxf*GO`8Zb=mXq% z){H)d)ix~Vv)%@8c3`YWSY>;r_CimdD;LDpVk6lk`vn?kgdsGDN4vnc)I{e8L~yWf zDC{jk5ppG`()#(@-F4sqP6WJr`%c{)oUL(lm@Ao8lR~Lsj6_J~)RBzHmzK?oS)g_+ z*7>5OsZ|&{C3a=us@=)2LrivCUSDPmmqDjVWb$4?xy;FS3RKnJ!oN4W{B5cFXWz%4 zmM(Z+As_V(UPO=Rt%*qNw=gMd0c`hkjv3?)nzPI~re6v<^Z5E!ZwSexg>UYD)+!8!dlv(15gk~@h|8ZcM8ze{+YMCz}O(P%s&0GZ(WGzFWM%(Utb-#y( zm+_Ns70fKW!sV;oCI?c3mm!h20g@ruFdL@I-38`c5R!*C*_WnOQwL<@1ytaUke8To zCt&r^%5F7WOI~jYEJNNyk6v2;IDaTR%j?<|C7s z9d?8g40>ohG6x)!N$uAgYnBx#TJyt?%p1s49UxoXMID>gx(R24VX44o-OR%7q=9;u zt)EiZ|Jk?m$498t{)YW5Bk@t4Q;d2PQv8p;-0LV_TNq$kl!o2*qu|7KuCfyVGjoHt zuoo00hdgFzxcl)~^{M9g2dy@^ZhnOV#M*9b*rQ-3OUfh@lv=*6*k#5A>lR*)?${wa ztmqZrfFzSl@W~Te*<0*xaG8H%O`%)ewiWPR>a-2vCW7I&$Y^VHF_#Oeg z$rp3Sk^!^`&ry!Wkkm+Tw*y4ST!BM`ezWDbZka#+I{vF~o9qtgI~B(0>x{YcHNV68 zGZ%48jp?A?&Y~G?FA4RZ-#t0ZaewcZc5ws}q(kzffY>3*K?bOs<=;uTq}v zikheSghbdx!7}e9kQB6`NuC=($1Krr`~V~FJ5XP-qwEwUQ+C*kbphdxKg-+ggQ9SH zTLG_+>U%~32LEPmRhFSUh}oN=I|8Ykmi+P$>IOipsy6^2e<%J3g^PHD>DZ(lATp!iNZ!+Z?@gP6QAy=00HERCmklDPy6s0CpfMCpUf8Bj zG`zS6XvbdFf50b5>y6>Xtw|;)bWFh>HQW|p_oolcKm80apWVGlGo6)Wfbv$c`}y=Y zLC1-odwQSyk$t6ABRi1%RIO8<&25#Ihl=Ne^2N2sC@sG1dz z&;q8W$5gTpjfvff6Be)?#$j93jEh&{z{6^+g4RJFUWt&12uz+fNG!30U9N;y-DMvO z%nBBgd?F?Z38KpFs{&uGVasBLUm!R9H^OUC zd_To5D+hQpP&?hvO7i^@E>*X}T=8ScuMJu#@7A|Io^H=zhhyqM@}L&wpYLD?dE$`)d0TJ^*2WBpc0uymN=-Q_bAO3 z<3MbI+q`ElQ}Wey$JVq5|H)lo8qfb#mC&j0FeQyPgsL3!N*@}DC-R@k7jWIMxv_hs zxE$r7+l6C3x+8JLfLM?GK1%-kZNdAGUq0&W3Qi0B9Gc>=dj#}F#l`#Ag~|X~;{`jw zBJsci4IOH=ufeG&6H+<6(Y*})*ICH(u=yZ-Ib8%+SP6RR^%#wACr| zKEAK&gy(b9fI^W$7FEotS!u7$Tm>Z!5q*M5GzEq7ne^~GJmhXIn{3|YpyXfJZh_VjE_Dq>^6VGh4kFR`N4)}nxr@ZL~A6YJRH^HfckaHvMvJR`SgBM1E zVPR{K6X^RX<^2I?2pY^msdt%jJO&nF9b4}$sHORU?w+>qc3@?5i45IcyQ1C@^Fz{{}z|@WO<(3pR@QIe}v)7z0e}*a5L`BSw%WjLX7j=?2h{z9SO9QE< z56*ZbQonJ0rGy8Dq`0B^ja-)Ag;m7mgPk1P%+H}!Drn@Irxf8eVfzV~*n;v+$R>CJ z^$}NLJ3jOzbAVN`#ZA6~aJ_CK(K+1wlUe_Y*1a?EoW`Vf;j!Qv#$(G#w$e}kzxgJA z2?$HtkqIV8+^auhHN^ws4t?i)h~CHg-G1P$5#jX)e16AmQ)It^uaM+w5QhJZqI%*P zxbgKLg(GY=kqtNyBjQ35x?W%pv-hyTi<6wLS)v4nou1`*Oq~b}e##fBrXFmUSR#T7 zOfN6lnmgGBReB0cyAB9yZft|4Bf6XcOLyP7iuj1Hw|dW^EtiBcpfoN*6%rS+D1w3W ztSZjCV{NWS`F>l<{-q!A;vP&^xEt*Pw{!dTf|cz%*>^7?FyYCHm6O}@Pp;i&i zNvIGqMWQklkujo@Dat%1r9p<$pfV@(SQ#>xqEexSC1a?}WLOlj-p|#(&w2NL&hwt< z>~rq+KkxH*`?gu@_q(p|_cJC)nt0~pAQBnH>c2~~Ydmr+T5rRP& zY$BCU^S8P@0ZRRDuO}}rZ?|&_wW$wRy#U}8(vPujqf z84}CmQfnhy*UpD%Kl5FglDg@J^<%})qy&ThJ5NQZ&0M6@Z-gVlCqsI*=070|jZ?;k zApCPxXIIxltW+e|PhFLGzjoBC6m;IR$+!;XMy2FsLuHl6k6PTig3f$Ae#aoTfXGGm za6IgYL?Fv;$f%5q=8m!M`c95D7XNv<5=at+*PZ7`WJ#vrYvLv*qDUmc+FneyiLv>m zTNhpF5lO0zNji>b`Dai*k`uJhb}NyokTrv#T<7R9-#x2Ds+ox?o0P;F#lA6pes1u+ zR(Uw#{i++H5JilymPl1^)jS z6!n)M{^tk*7p6J4=|))C7YI>#8J{|^p1p>MfY0yaI~}e~+GT9!I9^XD1XFs9FbJ#D zuV-vBDR`2!8%n9qB%%Tagg02N zEIFOGWaY{&VDYj|UA&9x`k#{ijX0ZH2i>g{SsS5tudyJz$5E<~TiG=~i0y#*KMd=r zLb+>sUIvPR^u^!GCEm=>mwF1_Zlr0S_I5QA_nL|e6uCjpdcf049O;}c zvh1!H+Op}b3mc;NoTtp@=+p{~gUzYJLi?fc)Thz_u}em{>^DNf@rDcVUJ>P3`sDoL zQje_#!Prj@Ac=YVqWVkQ+_uWx3Ghp8M$345nNM-4h*7Ta41cG1V!)67;={^RoQ|73 z_*4seoC(pp$HUM@zBqvl7C-Rvr+KsQD;>;je)Rc>fpoHu0&3w0vp8cX*>mt?Y+s#K znI=zxH&h-K!+yQH*JxJOL^BeOd4!)owaV_la|Zl#&xztDrZ$~J%F_G!`5%}^Ba{Co zf>f%&vOa`9tdlEu@*2lsejawto|t<7h5ZB2O?Ix!#|8UpO|a6REWoy z|63M-nGEbE1ez^=qEY@Z#}{Kf$$gJtl5CTXn zjS?pk_ncv_rSiVBUd^W@=EyY#`s~D*algZ`&Ss2AHl8Ou@Sb_rkVs1jpiME^l5iOB zVfaF?`vmppWUSw?VJ}XwbVW0EPZ0=)vo^0iq>rnD*l&*`7L%;5E6QEho+&%GZ+tp! zQc$P1W`M+Kajpe2?%y*Ds_7J^Gg-sGh-5-w*`$lVrx^^Za>{-?NAv_GDWPqIwj>S+ zLY0$7*nQZK;sLk{zI*6jx36;gYt1wPR@3K6_t3iw^P*&&-^c{`RE`^yJc#3OZZ7zd zUn{0vJ(HXmbpznM0q5aYZ=$&k+)J=PeJJ*Hb%*IeN&c5&8ZwZxY8{i$I4J3pkIZb? z)2RJEXuS8UUonB0r)cx`DotFHL9IBOPS_^?MM}BRV4QZJT z-)aLz3e<>ucT1L$e@-CxmfQ4slB+rpWEBcOM@`Mz>3iaJMaVe)=&D$LUA*zIe|_YB zYwHxNaiPGi8WKU;CX4s$cUqwIT%imwOuF zDsOH>#<>19g1ytloD-S*C?pK3IAY4fj;1{c;8l&-<=N|Po)ASHV9DC*9ZOZ1C+M+E z1_#Gwt7ZCy`)_fNsWwM=l=R)D1_peCp`kE}e@;xtjE7yH|Mm#}{Yx^m#9ON(-m5TI z&`-vjoPyNg20z(${{oTn4Wxa&ZVcJ`FIdQylHd-dZS&s7`nA*nygJl^%#~OZsXm51cS1>_ROt716rEJ&SEs)9rNKgoL{Vl=*W6d6MplG)f z+a_E?J<8iRF_zVw8^Pes$XxU4wohL9W^k^d=vhb8OXal{Ye^;#z@!UjH&y&K+VH=h zXa9q4I2a$zuBEkq`1LGngdfZCAl|cWB+V3{yUMQwBa*#HI-|yaH$z231=X5_ON`je3L_o&E@Kn^Gi|q}5Er+><4|{MtEvKjbi=i|zwl#Dsa9>oSkF*S*Y6hX$Qw zaJ&K7bZOHS`FewY*}wme$X4uUH=*V*5M@_> zzd*%5V4B{4a_iypD>+sUVk~~tt=jQwONj1*zW>01WySJcot>JKkK(4jdxU&Y9L5zR zoiPRx{T($~#ZO=FpLSWaLIL3xEl`x{)wp?i6?HZJOP1a>Sb8^EU)%jjd?7xLm-*-M zJ+Ev&wFlWq0hf1L*S+#!v8fJnz7W`5p(WuO5f)&+Ow4{(_>Qo_8lriyipkR0xOn{?h%$%>F6HdFdefcgb66k*SwSGZh@v`U30|d^Mo#JVH zaw=?)ZU1fI&A?@I2gU#P8X@2VNrslVOKwC&3<#MSSJR0cR!v?v26P3Ku-vK@_;y}9 z(@Zu}E^Gel1e|v{{e*dl?8_1#T&^lPq)5!;uiyH!r5`q`eaN-51RtBB)rBOE+iDEk zYjBKijByoMe7!wowNp|v&a}24sKh*3g$;1X<5!0|5n|rF$wjm1`4>DP;mFw9 z*;^B!$i+rX)cHb66+yCpJAXcF`;ie4llQO(9jo9iB(oO|t=?aW=&je_P3hK{5R57iH$g9r=Xb+=}|cSd|+!*Z%Eol0GP~e*H`OBMIZ5 zCDTJ^TNNUL^IBc*6IhSRMQWubzG6Ea7Y}~_yI($mbLUE-J(;E0t_@|L3xWBG!Z)}U z)xbxS;N4${y+9%xIr1}ZW9EN)qR}6(&gXc@v`&$OD zn}2!k?zfv-%$Y`NsLND1rF8d*F~wa@+H`QPZkh5re@hk)?KAQ>UU4p&yZ+>Y8#@#f zyxTwCj~vVxx*K^n(!iANHehigB_%aAno6ZU_AT0i%*NmyB}A0jZ1v|?7{x;FKX5=A zj`N9x92dc_j{z&OW-Wg@+l&uU{CHupy8&HMbz%LF{}^icPt!O5r^Crld+zp&kCrqe zHMD5~Y0h!%2K(S@``~XRv!5HU6}~mhB1cKrAUZK_kg!DLyIb^SS<^DM5=X6LSA{_c z)*s3DnfO}CZ18{jfBnxkhX2}syAcA^NXsNufxRp^Tu$tIj2MCgm@#adll~?v7bu>u zn_(>dmGhyZAJeb&khY?yD1+1?iZd|zn%i(%^%=|@64&}70hK~s8cYOQpAJV_S zi}@b797{dgY=Xrj7kqwuR|j2Zci#tJE&tsg#J~RrcxObJRunm5sQCT2)jzx~FM@G( zWsjMPE&Kh~&ENmIb7gV64_&$PS4F4%r_18seWw5S@BN2w;eRAD`cF^#|NH&^-Bb5p zeLDa7|K0!po@d2`#=C4gcF*y1TbA$j;}JA^>Sw;b-3%;sMAG}~zd6(e=NqH!56XBU zlu3tPxNu?dUbA0EoSz$4zEkgwpP+H#+L@>Lw6n~fxydg2>UC@3Dj6p=;J6!s7~O%t zz6#DxQhYH=GRAR5W}M;USp7ereE#D(E5HvwK}e-*ko4Nn047L&Z(s|416$g0P{s}F zWR(Z_7zV%i!;ZI&5`SJ1d-f}qOC_q`T|@Ng;8P6?iJ`FwpeBkG8`K7GJN~*skExkK znluV&%!YSK5M#x)v)t@q1L&aw!b%8`{-g8R$m5T_EIM_IXL?a$AE3iDhPfAX;g8TS z%cTqv$YCDgBLWcC+<_?XzUO@|rC&MjfBEzM;t{!veh!J{rD}cx&O3@-nW%G)BcMpn zDtry>#`~ecO^eyWK3dmJqOh9n3pGIK@Ny@D9l8?m>fPNP8(+?f+ZJI;-)`F|hFVkC zt1ka$J{OQ@5!coAe*rytMCTmwYhwh>g#j|rYGF<%=1&6fT?z0;8)anyFWB&#XyQ^q zW{rL8!rrsRyg~=#F0{bW1u;>wwri!!ufKoy{2u3zrHF$!W#!}-#^^nn`PKcxT&RaO zA@1xtOxx=RW1$k;Zux34!THxL{T{_LtuB)Xcl;oB@eLtK%uwvVxk0(UA* zOfG{5{&#&Sf5EeNOa-j(5%-PZm4~-xVLBy*)n}4oFhHDesl$A(ErJ9ZMQm2>Sne|y zV?>-6A+aY8xhX2l-QcVRff70QDarl$6u!7phQOWUoiDCr{Lx9=0ubD)DJdzX1grbM z04q2G z^=KO1_R+@l&mW}tb3ufhr{1ri)j5u$D#ItYA7`66`I1D&0$^DnWZdFwN-BX!l?!m< z&!9VQfFz#UIkt*?=>qCZpy&5(`vCvr7vMB^P$>zW0o%DGtB%!5sqHrV?-{Dq7WyqZm8~;zWe(FZmTWm>nk2I= zpLDGgNJsY3cm0QbPgw&n=Ti~QGL!~9Jh^G(%0JVu6r0$rv~7_&DmU+1H$syU)=^BW z5vap!e`%H2P-cz?-MYW+WodBtuh*?(S&ho3fj7vh8%RlB__z!yJjSZV5VWF#L<500 zolUd@m!32x-f{m(Cn_%zDEj%_2wv_gn5fGb5(5s&e@$@o|1$hsK81zWVrtO*Oz&Yu zWr=pTE_MUtIvwH62B!#R(=*)=_n{VP_x|)eOS~*ml|rD^0l+^$`|tf(ina>|+Dng; z*duT}-(<5vfz!^mmjy%X@(|dvV3y3`Ou|yaO{`hJ-1b)xshOz5>`(XR0I>GW4LU1K z{h)&Jq&Oh%l&Ee!`}!L;Z=L9sOe}LT5g?8SgcO}C+fbc(U;NautxbCP6|0+Teh-i6 zcVr3jTJ+i$e04m$09A$R$eHK6ZejZL%<+^8Iq#__B*XLT`^c4bQuysTQxt$g{TfaM zT;_@kOb{_Aj&F}BU7!`|cCx2G(HwC!nJ-kNuWay;fyuE<$n@7!bYb@=c-?XzEZ%Nk zwRGYQJa%sUW61RhMgElg&~V*0d;;RUg;RJ~-awqUjwGMjAe0t?f26@q#;Hd@`pjpC zL9O3)=pH18u9tqeP5}?e1wcZj)UnEZ;O?QQXXw4*1c{_mu;~Guik3hKh?_j~ehufJ z$Ne!if_@SNgt#{o4UShwnP7<*DzMrQ$DyoUS9>pX)*q5}HZoGOc?W zLBuXsk>00_Fk&!ctgl|XE)?mi?oivyhQKa1T!mx=xyii#aGvQW_f^dz`SoEw`vPAR zugRvZjc4FjI1(7y!`Oa)!68l;h4J6xs}!Ix-Hpp$HUSKW!A)FRUr-MD?d?HiI}+ZN zP*kH|-)%wTS{O{Fuc5HrKq6@Qx{2DIZYo6lTX-KPJ{)!eBkvrBoHVySt&M*US(oMf zpm2DFFjpa%62`@!l7XSkXWFj6)NDDo8NTVrz)kvv~8CheP-+N}b)<_%NTseK@2?Od~o-P}W{ zTr_5(o!3-vBHFy?89;E{&q2(msLb78PhW!*z{$*Gbu9@vjb=tj109u$dCr_Vs4Zhy zNBw;i<3GS7e?JNQ)Bg}EGFM4!zB=!v>fHj1<^EtF#jcX(cnPb8EBkWVAL1=W$}dT* zI9g+#kZwML$C9BDVajjvISVV`VOzIQ!>%JAI!3r^GHnG;Gca=pEZ=BgoaI zX|+cncy2?6$^B0G84TQduQFIebuu{oAZ|SXvRG&C7MoTCD#rzU8t037);;BUXDQzw zCRU366~p;m99p~TVn*t2KWRMqDT0$vW*ts(tr6+@1Ko@Q{I(4Y4J6YF&b>BW_3hUb z^FM!b|8W2okXsN=o&G?*enxnHe0CXLN)_fmBHzFuA^^#mqjhdNEmU}hcyDc+i*=z4 zJ1GDC6SJtvOJ1?4@bI4GUj>VPsfW#QzmQtz&A5>v7m@>1dMowT`L5uDeh5U}5B5>^ zoo4wPyKDVFW9cu-w_dCsn+)|j3R5_mldKrskFoFNri$mSI^-jVG zms8nVj30fBtu4Xzw4>E8@yxQ$DDbpT$o?L=z+x??6`iLZz2(Lc7mheJ$El9_!{S3_ zv8W}^euOmGOAU;}%fx0C7DkbluMK{Pl~u#*sKR?^IdbE;@BKvQf(M7nlaz&PI4f)%G<{MvRnvzrAZH97@gUYXN ztPkueDGE^7#i6KN!-O65Hs;)RstY0~#_Fombqoh|x}N|e?r&?d^J(%SJ?#08UGtYu zo>y7@TMkJlK}ZA&+*V3oKEg`?17V}ww~qI)oZZGAE}g5IVvenpL_X3woPEHAt@%zp ze3b)3>bWDa0e&2$77%i=BWN95-1xbdj_Ff?h{e&rxev=cDesCizm7w1;)z`3;%~g) zA&NK-I&k)IZnY66zz*ZNFYTf+z~n^EyER|HO!OPlKbv=Idmdgu{8!eMC`8q(^oCRG zZFW$=s|9r_hYw(T94PQd-sRQVSx(h`f!>H-uAtTt*%nb`e13PIrsMnHslxp)C=5gS zfuU=04zHw;;T4L}Jc29NocPgiXxedV?JyE!q9wu#!AdDj=!x z(-k(C$SMbMjU_~TkC40KCb#Ho&>W_10uFd*Fi95=s*iidK+YYvP;0Kvc%c>ciPw^3 zA|mFCQJ^_hSaia2z`}%`ixR~#y3IMeiQjwtpgaEEWZHcYjtUloCsx-jT-nt~+q%Ur zs0>06k>P6dmgJ{GEb65aU($K2Zn7j zrDZ8S*kNfl7;Y(5l*JuROdM*($wc5kUMLpv(ysP4o_Vo|LJQ%!8Ek&3g0eqS+}4&m zgd%t^sNEK4h*QKM-t$$>arNIYbdq?5u&v)7iWtJEPPfun+c!;&dc^(Sz}T+7D_YF_ ze9k#F?0D*}vN@8%`BK1@{up?c= zKE4^Z1Bd%4Xh7GNiA>*_RM?&Cv*ix41M=9(0mJGk;v2lM_T1b22jbQwgW zO)PQpaHgb*-&;|r0w9y;J9agbLZ4B*+5wwJ_f_+zq^G1xd% z=kVnXH)-3`d5qDeG8>jON|xlw_p2&9BxE)HbI*Q$)zP@IZ6!Q-#})~BP7mfC$MiDd z6aE%>ZJh8o2tnMMx&Y0{(y28yz)A}yOb{Sovsy+VCNKfc*SaNf(6o`-uzhN34g<@q z%MtmzYG=K6o!S7^@e;aFHRpbisgsTrO9(8#d@kKt3 zuI$M=7*d-~>gVDZ59aG%sgQ@T&6U>MH}ei-gURo*e*2AY!e!;*r7xWjI+sVpxTm0% zq#y!GJ~P#!CpKuyPG&Da=zR4W1 z!p5nx`%H=>#T(n4F5Zrv8_TCv@2n%00X@HkX`!Ih!>l<`R~oEJft$TVx=nH6-s?IeWwEwE%}P$}3w z+)TbzI*a|LK&!>7Ol>#9JA2NB3o*sAeMUzRHGv{94S@L#k_u(%MCWNy3U821u1bnI zR<~efIQZ3~;H#~i82=DTG&7e-G<0tv2R6!5b%q6o|Q-JNQjJZyN$yPU4 zNuQA#+OSo*0x;O1RAyNKnhIWFVr5RHzUv3Lun!G7*D4S+L<;vtx{ul^dySK=^soiIfw_fr^H=srA>iS607yvF)o#tVaY^ z*eh((_}oSstk_GRx`zOD7X_FJU zYvLw3Jw(X0HboVi0t9E+y$^N0>u?Ree(w)`jA8d~;91w^Cxngw(4pi7Sz16r7f%x6 zyNmDO*XR9Fb#(TayIb$-)86BZMbIjTVSbR&^u`7e$6#Kde`Q?W*-vuj=*6h^ggDwW zeN%T86oYQUs3GqB@E@Aj{xaIz&uOjVjUxr_Tcktl*w7@TALThDO^S39V|~7N%+s1t z_wz=A1YLY@zDzn&8Q3UKR*K@tJOtpiFu}U$2Ou0-puM__3F8XyjNJWuV`d1m-R}0yjO1i?)mHSK z*M(>`6zBXKQptg=DaVLXUw_st)#=H6#_ZY|W8dL>N)@O}UDgolC>NzRG)7E<@Y3wZ z17Xr`VZx<3O&@NLju}ylwz?MbJ0^w2%a~RiJI15VVrt6%e16rT&CW*y~r z|3h4GO$T;1%NO*#M=yn4bCSB}A2U8A@JUW%okX`^z*&srP5G;-r`J$(+N7+)Dd5P2 zkU(>*2=zo!d+UZ_6LR|FIy|~k{Bf+*Xn2RRm|Fq1WlsZ88Lx}o@E0t4*XS8U%S9`PoF$n#z5H}`Ener7iOu2R#X zMK|AE1sHgFv*pi(`}X_4@OPdb`!i9uW;C<)>g?^@n5Z#Nh>J395rt$vDTM(jc5bd7fRl3s6k3-!qfgE5K6MBth3 zxUV##-@=HM@CmQmj(35QzXO{1WA5{w^Z?t)X;rhXTFEp&-qZ}@#5MfLc*HO1co zwD;wmX@i48zlcw%u6q}f8Y;c}nATEWQF?C(DzjFa>=`qC<+v1M^j;=N5N-h~H#%>k zyJji%%j4w>4i8&E#&1l5hKE<~NlIjux_|Z5^|T}NS4_S$@vY3UZ#5)*2VrfVH%p8g zF_+Nuyz+S)YubY;jp>t{rt&bWegq?WTIMx>eLm(Vy~Q4n0_GRx!>vw=go4-FsJXT( z@U*g>#6|LR3&n+Rs~Yo)u@MF&~L z&*?Cfw&I*}YN_KY=*>TPnVrnKUAHOmd_kcHD;K;_Q^tu+P@;yT*VM0^g1k3k{wk!R zXhzHPjoUgGlA;zKpys_lVjN_#gWSAF~#QEhDfJHY|@16e32SH_6-E6HH zMh^q6;+?O2Ee_>RWi1s!`z8rk!9GRQ@}0YtV>YUXhX(9eTsvGxdM5&H?{0_--0@Ne5{tZ_gQtB1U)@Avgiyf|K+R_@ zfn-HZ#x^?-HXY7*`jzq&HJx&&dH1W%_-p~nN}@ho#)v_SU=|4sgGPI+q-zcG&hJTW zUe2etp@Pbbb}S_*zH>Ez7F7#{-=s;ttPk3@iympw=D0R=bJ$p=Ee;vI9({3+6Tl;a z3$I+nxAFR67c2Xnp8zRTlmkem(T?;7OJFLUCs>nF~!TyKZC00 zpQ(pr5uO!c+g4;S+s>HwZJ3>Ub<_Wsqp!rwUPA(jYgNY`wQ)SS6-qGHx{o3=QpE6Zgf z=$14%M=1EVIj*5>z;b-5a>79}T&d!L#JtSP2OSNh`1JX6^3-pcbI@NKQ5(e^OQp3pBy@OyOr4s&;Gpd5iowjX;j zzjm@cy~ouhRWH4z;AyVv^p3AGf--ydd_qD&$gBL4-S`LVR^`42tbzTk+0XEN#;7nLumOxVqvc6o2@qz_i3 z;KC2nH4c}qsh*AYXoLTJH%>qs@5EjFJ*(NL_)(s+H14--2?C}>-$!!|cCU;m!|50g zz5Bkg4~q}xEloGmU~jBfJe#=mO6b8vZ|Qm)u|n1Y4$NH`Oz*}S5p_J_(xO?vytMfA z9h1dFB$^|p@B>%nN&VQ^ms5$cZIl?J1oah#_Q@GkcXrgAoOmD6D|0&_#73%MwjRx{ zs5uix0jyK2NFztKHTQsH_*8%QDB@3U;STg*+hUA!wx=CYCYwp{8&REz|2*89i)C-i zBE!sbN>pZddQ>K!yA05a8`nru(gt+-eZHIjz|GH>S&nTj*WO||-@j!6@Wg*Jp&@zx zv-r(y)656gg-m$_YrOk&3`@zlB@7*5p3)W#zj)KH{X8#HO*=SN&>VW@y{8&AwUm>c zJAy%?H|Fj-obb|FgSl2irTj#>!T9o{K-%I3kwRh3;<4dyqin5;O58#9z>*&6c)_=` zSh2Q_j#i0QVQ!sC4XUQ|@8u1D3MpjJ%m9Tty5q#o)qQJ3&15$Ew-&PQo6dOZ!QOCj z^&!teb{CGO=rJj`9EYfR1Pha0mt)CQ)XP(D#q@&ZL zl;`~oKvfPL-BPz%eaMuumg{l%8^k8`X?+H2vzUM$+zvp44>vfB(3;b|l zu*h+;3sGat*e?WH);bvJY=%iUS-R7X@+3`=mLM<=`l$+NbD9Eswm07VcpNWF@)lM; zJNopD$_A|{Tb65=wns&6oZ9KsqfNXao0O&Ocfj4(i;w|}!en!x$)mUzh@5Rt`PTA- z$36ax&Ub56999wD+$=dR?K0|6p-cs)vvD(HUxg zlxZf(1-Ka1N8bX4;qKM5UQ>|`R*RK?khK8uL{}K ztN6-=7H6m!M!A1ofe3WxBi%d$W)YRouFhnZvOd4`z$$4B+c^J+Nn5dLn#!4o{p*I5 zBPO`hr(gp&1aQT3y|q{AQ0*pQ9gl`+&b54nXkVSO3~X(rFUS?4Ov}0qggY~00>w1$ zZhz?}I&_~=zx>AVE|D2(W_-WIea;lp z5Zxf|RJ~-GP4|QF;tPoueLKIctntKSuETKWUB|I=HHx=mk$%Hj3ye;B+Fu|*(HWp6 zE0xDXODTddwS4Y9Lv_^$X5h*E3@!0(;8ljL^m{!dlgm^EzCAcz0D>y-~96Ed}n@`l>U*+qg43%1(KkEL>F0A)DaPX4BJHAhtV8 zrBrnmUE~Kqcz(hDyp;XTR?HN*G==JEOEb@oFb1rwicL2vZ8cSPvFP2w)0Z9Kxr;qT zQ(gT@#>J_~8*No&x&s2INjFcJnB5|=?31i!P@8Wa>Hc+|S@<=o%0APB|HAY=`@Gdu ziT72LIj!N@hVZp->TNIe-IJhS_^S-od{0I0N?k^E762$DPTS)RID~PnazdN3CRkb6do-qc^0F^!aOg#; z(t%i|i!D2|dY7c?N$O}Eu1D_2LoAhXCptD+XY5Wx?v*Cp0Wi^Z{D3z=B2<)J{I`0j zlNMqx#>}MN_oG?O)04>9aC=n!4(gdSZLeZIIb_?;nxuDA++>Bo-?@gh zarU(11`o3WjZShLo+wpHDC!Si#N@u}P-w=f-Q4X;+Yp9+9TfMr!!)bBi;BlacHEvD z^=6}ot#wiqKt)pkhDnqgN_g{!}fr_sEk$P~kfQuJy|q<||jM&8`M}u(43fVb>5; zv1PwYH}1hTU+$r#oVA1c{CFh+tti>#Mwu@OQ1&jK855-#>OtkXWlkE2#7xS)<8U?) zVgDD-PgPgyjUlt} zbxw)4Q5*$fnO4@R&8p+cE{}h7+;o4J{ezAQXbW#)S*pnn(NRt_lzz9fZVEU}fJ9@{ zPEPhF29_$@i{GaD&U=%Ko0vzAu~kjTBm`Wu33W;G8>6@ktrqVuJ<8WCfj*@>gPwOgYkBvAn`V8=n4MN>7cKl{=Tu;v`%>mZIb;y8cAYEm z(D$iR+9$0EycQ2lbe#G3>%yp_2*t+minMeWbJ|aTh-n2P0o{Rg;ZtY*4$6I7Sxd_ ztY}Tf{t=NpOb#oLHanYoD0J!`qwn}Cel(K~G1o6|MxjqHeZPM>-KSo+&UCn)Na50& zfqHyF=v*F8W{nEvgU!L!Gn#$iqy|vpQ;=6mZ!r3T`Iy?s%R%|ts z!@L>Yy>wZQJ6fB%xP*_?utf~xI;0!a2w1W=Wr9v}&WxK}YSxV}@9{;5Ch%UHX(#>XDIhr7=5KT7b!$tz z4jI>mcHyj)9?!}QR@pLrH^4MC`XlPYCC2|S&W*sY{mSnnsdp|yfk5!HdXYlS+O%#1 zu(auAb=vQ#aFB6XObMZYoVT4Cugbo6^)46N4>p-v;NY&c{8XbY~Zyi}KTs+rx)EZgzxb7;@_WP035yfyIx$s#eB zqj=URebB?C&MsnqQYF7s8~D;R?fxG6TYXWW%V*_5<(qKVw9PqfGyaC2;O{S zWdBrUylqcqFuJUEGqkOXIX@`q#N?P7MSM-@Zh+zc#!zO&*Npa$h;&Tko)ZatxPOk4fYMlI(N)xU+ya85j}=Ruh(P)#faw8_th|SayjUj z#~Jk$V?rDh+CShMf1G=^TT{!M?%9E`Nj7&!KCN8~loLTuE>~S(-14^ZqXi(P3|0o&#i=d+a*V(W{hl$Vz7%(?1ykDoCN}zwpj%~YBVo#HWnLDjt z!t9+(jDV2Di?d)H8lnSitn*#2uTeR4%>f`Om-8$)u)yp1ny2(t2A;C+)4VUa^;nlL zYAN(KB?SEN*h+bn5&LSYXA2Oah{N5Ud~dtJ#HuiF(@^o(Bn?o>P|h971I&j!TiG=P z7~@V!tURW#mtnk_Xs&I}q)}^rf((7R?bQwkW%kEjpk((jb2=Nfc7s(h_P5|%Ex(Ga zGlndN@e_2=Uhv}BSUrehrkqbQzfN(;H+#lJo7`G=?hDECY|6E}KhUBzIMO#!Qe6ip z)I%7Lc5@~_%XR4pro0$FN=#xjuUBSQ+?hSXX}#=Dv!&hz!Ea})g#1`_nZ&9D0*>x z4@w#)M;~XWHi%g{7}boijePXbCGKJJTc*KIOJ6#9unstuM87b;N%0_ss1j z&ipQ=u38aN9sS3qlS;D-U5AHy^J0QY-e?t6FX^7gn*U(Gg&gkO63(B6MCpDgRc|Xp zs2Q^CiUYMOug2S6^fH)DD=zD;F4o_{UEB~*c)>Hepl0``<8YM(PqM^btCalfhj+3O zyoe*t&F>jviQ>GC82lcgayc|WxEcyjWFB=(m69}1`;s3gwv2l=q#5Myz8$5C+%$xKb2!laK4thtvS*CO(5S1HX#KNHi zyMChmM{~&|S==#OET@}nGU?(0nN&;{Y3B~N+Z3v@_x(iHPP*BlLKpV_`Z726MGY1l z!kEA2r=9VZBf{MnYrZ}H1`pX;j>wTA8Ue{`12*$HZ-e6}2&~kTDqv zR#C(Z5I4QWOP{%rKDGRasn3t&{bLUWbDrJAYu3!lHGPS>zX*`Z>bF^&r}~^tst2{J z018-wQV+gQdYo^BhK8n@w0DKbPi-=Yyu&-y`e5ObaHVEvc}m&xd@bsCG*DU8{L$sX zPQAFo9-ZH>F=}7!kQn#D_P!mjA{VWJE0U2^Q=^6M-EEOqMLfjpTcj%IoRyoX<1v}5 ztlScL)hAPSRN6~<7 z*fBX<-XoztJi=537L+;lhH1at6`zy+-J&;_ibij1&)#aBUo%8GsEJlOCgxze z*UpcvRr__bFJcZ&v$q4IclkTrK^>3dNK4 zBmABN+ZKG?sr{)aZp3hyHZC(znxyy1hwia@K+f|MAfWPMtzyoF4_{1qE_<^roBcN| zwRkW5m{u@taf6KcJriZkS3U7_2mPIiaFj7cD~;p7n$*$wjEDWowY?v+EiMr&M}8`n z*;l0621{n{^IH;T2K}(*SYPC}kvffwImp7QYfENP=jPBB@z8(=tVZIO>vYA_beWxr z1)=XmPNbY?L#`H*cy0S5g}lv6H3v&PavH`qikY?0GW@)zOy{y*oNA)iia0cuwlds> z4S!UN=2Roe*o@_I;YGL9Zov6pYE@TjU`H+W^{$q<(2_j2E5pJ{yO?#P09`Ar5^3lF zk0nSyDSm{{XAg;&+49LqIhGVFZLw{!x0jj4GdOVXnlp6661g^^6F~B#`@S8^>%Z=} z)K^@S#N??c=QCGDgGVY8(#nLY&?hxIpy>V^RP3t1+uU^C*P)vRun9GOk*7Od%RiyjXV&}}F0+y-DW@imv zrOSH`Ze+J43TKic*FfL8blQ=kQ+<%3vcPM`$^3%Z)ix>!lP$2Gw(1voRd|VXS4U6E zY2ev?8lXOpCuii)_}G`D;w|#wDr<-_47E2|jK%t`XLUA>A|qhU(2~>LjxTn9u$nhz z(xW?mmOH(ZYtP`gTv}jA&y2FzA6+FDq?*l{v(Gc~o~p@mu;>yQ%00(+qPM_dFp&=c z!^xQw^(rFAihuTM`EJ*&9rC2+`(3JV7~0X;URKiE%iso@+UfcFH&N5QhhR{2`jLA^ z`})%P8?G6Z&mk$_Tg>RVxkkkwlA?O(3SVx{e^({o(s9;4HmR0Pg&L}+Q!CbmKjup7 zwjLM5%-G@wdxIXG57MwWrDh0a`FgR&4^K4AjIv^bD9?)!q)=vl!}Jb(PE(V^q8I@7 zr=0b8L_`aqAMDN|gww8nP)O9I;4>v6wV6mY^u#;?0uBW1OQBB2U@zR4ITLO5-4k@y z&(u}Xm2tPaER}7;eCXx!49q?!Dm%ojWEwkpHl)(#Mtsn%nLR)UTFw{--pK6yEDc+6k{z11Zl+ICqb={Ij2W_215d)jcuC0goivKNjxE%a&VYQhmqGr7<*j1Tin zi(YxXM8vxT2dVhXtJq8=>EJ~k5{FOS%SPOp+bjxwAFxi-d#RPBLNCvkggwA=}~9O+aghllvdAcHdL-bUud*n`q`f$=uE?_ve(~gvji`;fM4jK`+YU0UoQ& zNQ-)*kAFNIy~yh0gF=9e2P7jdE^wjSX6tGAa1(n{I(|;Jd7i%NQOL&bItWzSCchsO z(?;TR#9-gZ9+sxrUJc@GW9pc1tet&#jIXcvEG8osJ%daMry~k9*fq24CJ*=h_z2C_ zDbyj4JdTg`CpL0Bp1KFDS@*B{Xhz6$7KAH_k$#>V&_u>-09?H_F8l2@mKNsJYng=G zwkVXe4(}4u!z>=9&ZtS`BDoY23yv0Aa+tjMCrRZl4^kI2pqBo~u_8a; zpVb~5f=thJS=lpsUMxv$io0!f z0i;ek#RG(S)cy$p z$$nrsLDQoW6)Cq)`*gU~O@18os)_N+8{6q1f&=vi5alWy*mf-6`a0)Q+In(`AHU_i zA&R2T64Hq#_^Y0Lun+_VO@5XSgnd6_d+*bL)wu{S>CI_fcC^e5Sb5r4Retvu%Rdi2 z5iQL2cBX7fry1$g+C0*!y~q^h(YHDAD;M1t^5Glx5I1i6Xv5$IjXUn!JJoW)AuYgv z-s5~fs%9pUY=k#*rDZ<*K-u4?ixjxtx^-slt9KDU%9wv_$ zHcjN!RM+9%=se1u-JReW3%%fF5y{T!mZ=S~yK^b(nUj(p?{rVj3={)cjWeHtEp-X| z`TFV$K0EtzQgM1W6yG?#h@rZZ^XO4IRk}B)>Xp3eaO$?{_QXC{?JOFF4?y|2{KlJ| z6Rq5D!bhG2QHxXf{i)u^r9wpUpm&Jx3(SsNvCdvb-sIcsjPH!wR2GYInLZZ<+nvEC zks^DR1fRhgTV37*@SnHcrP(ejuQr&3RF{N|&px+Fa@XE9KYJ{PW@^*2eQCEo;FG`` zy~Ca+MF)nN$Me!?+Yt(rY0`V?9|6F>hyzk=Ss=A>b!BU;nEBl28)J4SX{so5Z#kUu zxz5(;G+V=>MRia3K85UOZ>pQ~&WtI++X9Wq<&$+I2g|P_y`r-*s)?07s9sDbkraF< zZm9Igq0X5gM^`7;n_?6>euU$Sv^F|MAT9+9Ra?;6eCLK!d~i}5(I;<3~~}<51*t=q;5zsbLG?WH>9_)EQfwBUU}h3&sPs-+*?WvlV{*{QzgaxKX6v3BnnGhGD(Ix_flv%u#+C*1 z*-^y5r(f>GK_$e0kZ_4ZZ`{KGIbZY06qFREQEPafQ`(s;hx_KzY zXSF(T@rbwgB&wXla5q$84HMDyo1JA|rQp-Tc-Y)*)-DxMZv4-bzYJk3{e#YD_dSE*g~;`yTc7!EIWWVo8>}S>D82=;<%0aj-@NM_+;Mw!{;bi1 zNfD3e?`URT!E2D!Z0hevfBco_eQIEZdX(%(`}sCTCR}mImCYUOE&lLiQ!P;EH9p^a zzsLql>0WR(W4j-6;#EGCZanNg?ln-C97Y7INwI-$R;8r7v5y8>tj$X5X`$lE+Ua?s zFMAC;CZ=E6+ZJuj}PBH8I}FKf<9?uc++8?kEe8i)xcxj zSG@qblIbvg>X4KSwHHNC~8g)e_rd|OoHtv#p6OKC3n`U za#T+fyK0a(%FN9zJlEkd6Kbg}@R{+b6qJasae6OpAAXgUT_+0jMAv+Z$ZVaCmUQke ziEC)7cd`|IX(R9;;QBlxajqlEt0SN91hUs76(7*Rsv~LJC;;Jxr2QGVnO8J>2Nje( zCu!+m7Y}CIxCplUPEn%|jnfbJOgq8`(0+iX%Fd9uh3)k2J!Sh;gU1P7xs(&OLX=Iz zy0bIGzPlvWr_vVdvQO`fEY-LtejW3&+(#D|(PKXf^sqG*Zr+$mtv->|G5ebJjJtUO z@729(k2I^Rl;(MCbuwC4_C-5PqO$9x@W(%Xwg)1!!zfUqM?$P|^!={keAAt%J=jR; zJ6+&o-(DiuXp(q;HlaGCS^DdRnAj1b0|s^`<-9M&wOLizM}M7$JfGaQ$aw|d4kR6i zz<77-E~!D)%t*KmT#Wa;$cyxO@BD22(X#x8ez^#dbCyC7V(gIEXmi$Z&;HU$WdpOl z^Jv3$fB@CT@A14T{)yQ6&!{FN^1XnUyFUKm>1HnD>vYy+&c>GYhSPPEFVo$gZalNn z|2Ngp9wX(#N4!sl>)&IuQoN_*&M(YfNC*9L~x0hG1gq(-HA?vkHtKAr_wb6eu_E3SX|S%Eu27 zcfrycoh{cAlx@pBWFZmciUsW6y|o`Ekkls~oZ4L)u%2~g3ZQaR;<@U|_hU!-30vAD zZ@&Gn+#p9^2c9>#>(oP5eNr=>D;KUfgnYVJ$ZS5gD>(BIbC$n>6k(HYlrm<9OWuX? zJ6|KK&Ok;hNg^I8_`-8O>PeVF6tVd*j$iFgU|Ds@i6c(Q-!Afv1kJds&a(c#QU%H6 zvNz9{xm*&Ga8ZJUghP0}i~ zP0ADFx(h@Sv@!W0rs#y(9m`B=m3zcMOy{?Yy{4+|56pNo@9j7l+!Lpa1e_b#lNAd< zDD3+JSUPuR+_U~kQjmRJn!%3Ri(vyy>BBI7cg+Mf4{vAeyX(^(&ci&qx_rnT=Fyxv z*F>y8V5zKSu{ggK2Xao4#PVI?(=}$3%NiMAas3XzHdXD6`hR$P>#(fXv|V_~0(}Hg zP(mpMM5RkY8WcegQM$WRx&*`psI)>$QR0{z_*snF52hzr|@y0A&72Lf80=-K zXs@pJ{UV-Um#0`ld7Iju%$agQ4|i}07J#g9e!i-VfAd80S1kNvCn@fa+{ixm?j>Y1 zY3PGAdC(d&%N-MyvcA{U89;&Ha_q}#)A92y2fkr*XP%+7c|Ig>B&W-S4y~++u`G}t zGhi9CuMev)8x9QfW|CKVRU0p8gRxhebE^}d)tD8q=4o9m3mD1r<~H14du_gv2re2D zNX-I~f6taeadU?7dV-3oNjaZy7_9BUwbL^ zw(i%27CLwt-%+J#6~na?eKS(>#4pc+ilnm$C3jb7_;|_6!ip3!!4yqRS=UoQ&?3XpaNRcw1gU#fHI=6E+ zWwyy>-;bg8-!-&y78DPMR`q-Ram*G)3(K6h{y!R1kpdU|09m8w-)W-k19shzVC zWo@3nvEo43ZS%+_MTgB(yT9N*sZ5}`aK%JH;YR)GT;1%agylB_bL*c}n(Ij`e52#O z>PP1G)URqIN@pq?Tm99NaPbLDx9cCipI{&}xu9D9H^GEq%V}l3s3!{iAUv<2l5T?B^rk!1S9RNzjvrK-&|I5x^IE) z$RqKTpsOO6kzK>Oa-HMU0tn38DA4@qPUCsc2h&BL?$;4YB$gaimP;EiE1C*Z4~s=Q zFZofu3x>zu=3MWsRD5ufob08>ILo|4wDBvKxgKIh2KO=lJw}&|-gXr_JI0M4BTF9P z=g2g^$&zxN3g%?@>}`#y>AqVbS+BT=^2HulfWknXN^i+WJe% zoKLL13?4W1OlR$&XCf8rULAcScfFzZGPz~JJ->R3sQj1eSD3BYLmH@*?H28TjYD7M z*%Zo4N;9lQE%NY}BUsoNf(wW7gQcoYSdqXrJ6bkcEIg(hk?CpREn27ndzN!(p1TFQ z4u|yQYLD5Z@J=}BWW;T}?jg9Z>evD4xhe>6Lun->pSA+H*r^Ru6MgK5;?BCIw!n2t z;cVlj%`EIyn=0!yKY;gT9-dQ^kEKMlIH~4UnO6d(CATsg4>k|>wbft)v3U=%wt?lD z1;9)h9Hph13l;cwm*00;d#px_J(&a)Jd&nHV4p^V3oGP}>~3aW69YY~f!%hz;j5R? zo3IKgnx%5Bv*7b1ys&errcvtoid`+s)o)sacD^0B-!Ctu`6KR;I7&YI55tL_P${WgsEuc2R)q<buwC(E#aL$VDlb+8tp=}$HL-NeF&kDAuaWYFBK6!d zGb&oPYxAyDtC?$6`=v9l7_ZIPOg4mOWUEGQmZuw4PptAzZ?!yjDV1Avi|^d&tr#1# z(bkxCmn)sj9H1JXC|@iy->zr%c%~;Bs`B#kd}Ugx=86lpkuZ#@XJP4TEB*`C4ePJ^ zr8P?xW32ci%DJ9)i<~6i(|!!FEaopx-jkpV{Z3-`c4*A}&<+GTSa$=l#2V69H0@fL zY1m-pp7G)gEPrf**iE3@PM8%&T(Adi1QFILY0IIP4nW^B90*y#g!wPOgW83AAdCF; z4blWNXjt3_VVWUV8uBgb*cRwp`W~pxyJ*Fm3-G-Z2BQItoB!zF` zmJ9XPr);BC-}yl}6j4PZjzjif*V8Mo=GtyuIu$1N*@|u~a-BOXheqhJ>XD+{t(&Fy z2XLKU3^7|%Kb*##%Z6;gGI7AwFvHfC=^F;gk;yXe<0U#C{|o&YZqq7jNzYG<4m$kW zU~Z*6t4G3B968Xwie)>wO+x*7s;w~M`mmcpXvO_GTm9nRB|q?V=Hv7(p&tLHYQ*_Q zXf!1Qhh-FQr=Q3B`aMhU%y5R4=(ifCUyZLU4oui--g^4OQ1e&4osyFZw$+MOo}hjZ zGkWVm*BIG%*<)!TubIUsXGKM427XBAwb;!nUu1Y7t7ZR5ocLJ745f5yQN<=RNtszt zr^ZgesuN^Y!&5H5;d4voJ`4~$%=nKzSSHd~BqX{@+o9rB5wZfPe=^3{TvF8{x1OW? zU|##6$-=zJS5aA$3kF!(-$E|O+RITZlv*_6@;`v3gTx!VV^%N&a32I~bw=FvKxUc% zW-P;eDLSuImv?@u)DLp2D^|Y%lp}*5>()y_CVyVH-Q`^qyAihhB7pL<4}U!=DJ%5D zz)xgqnjv!_tvhDY4*9$$X+tq&3Qz*GH_lCwT^O{*o%^OiaT#l`Ih5C$7JD1clPn0O zZAuq8yJ0u&Qp*CkFix*QWo29>@pTcb(4Q3znx(faFHbahZoNO>3HZ741J&;%XtVD`S4$(N(c0v!9{a_r?s#aBm=$Aziyh{1uro$Ft(|v0un9c762(bW6K~3_ z3R4O=-=Dt2pm{>Sm8-9Xf|iV>HE#f~A}Y1A*&==0N^=L)V|T*c^AgQ>*463^^B zXa)^~HrqY-IrB4<$Y^59Ql$$$8W?PN7fUAP8iVk6uATGmr?9CbEPda&C!Kn_?>SN% zD9C4)VW@+4qBBnSZJ06Iv;xAdKCNra%zMx2H_U1~gEUj_4JG-shE?7yQyc4O#i-R+ zJmzsS_u@7y&rnZ>zRU>u-oJ5K_{XgQ>hC1q-j>@8OJ`SnZ*oYt)1F~|ej0B;A@9Ns zrkod>kssAhT-p3g)^T=c%rqrdZg{6b?DEv3cK_>*)m(Mf!M?nt#jS2Fc)jgA9&P0L z8tQfnoQnfZq07NLvOb4cyJ#0gW->Vv?FTC@i!Ri? zk>p&jsUKZ{eZVz&>LA^&B6y%tr0+wC24}c#`^DbVK z>;W1f1&gs|rZ)&X&r#1Ikj<~72`MrJQBr#*L3N98S+%&pD7~!FwVAm%kWsVaSE&-oELC;}`l0zStU66VpelJfUdx`TP#^^Z}}2 zs5?C2WyPcZoP?#K49TQSK4zaUNEZmFx1m}1x^}lWLOlR16TYJUAQ1=>r4}8!5451z z|52+Aw7ryI?af=>=`%jptAHHuz>~VphxKc-k96N)e1pG=NrJ*tbFI{Qh3*mHvn6q- zDl4;SRE{2%xtm*y%V-ev9jt^?03;U5uk0u2YqWhgx>Ct*HC!@riCDM+3N5FA10V-a zS&`1PfRW9sp%kmhOVJk3zqb{B6*g*#Ai`7rf^$-$T17zTbB)(ZfoPIimN_1C!QJhi zY!5|8t3C}o89#FkyU+@pQxp7&bW&PZ97iAF1qv3K?FUS?Uc=g5CF%G$xDmkFCh4-N zn5(Ju!MQ-uwq3(2*Uxq*c(0)0xl=aTCjJz92G3xJ?CTaQ7wX9#XDZpKtMqnRpE>|M z9^U93jM%J{|L8)n$_Mo->h#QQlC+ zxK{;4UWsYmP$n^AauiE^b|SXiiK?x?FY4wylJvzujuk>C9n9W=Gd^*ojZemEb30^4 zmjd<1q|T2)xNOM+c1epx^fTY-e&b>7hDx{6)76%Y_>QbRVUCAd&~yyqkcB-T9yFfZ z!dy)d(fZ(w{o9m}LKt5FY+gqE06i|Y@%+fQ%XcYLeHGnX03Oa9A z?4vX5>50r(&&btjBDnWyB2X&6Q~$XfLxq_19|^ve?F>RHpI7Q}izOZAg(cCw^V%6# zNIy6Znx-TH(?6+#?em06>q-eM+G%I0aGom z@|O>)CWH8UaSN>%l-QqQ?o>l%FNeJ_9g2A!D6+mK5Xt~`viYE4xTfuOig~L|0PIP` zYW>%3VxQI@pHMsFq?r{d81~jugk$$Bx?h}K&3S*4@v8V; z=a%eY53`^%L*IZI=99)d%3Rb>W0&ygEKlubzEJp77U?lc`@2xHmzphBP0SD$c|da; z_U)jFF}oWt(gPyA)JCSdYK2fwruAZHoEj7h8h&Op0|l8Q>ak!I@*yAt*% ziMLL>uyOfHDDF&v`Slon-E%W`N$}QosJk=`l`x%{n@} zngHL5onjRY+NxvUw+&82t7~S)*d|+TlPc4B_+YD17muCYtZS7k)Xc z*uuFe*c_^&Lu&wge zrKz4&TO(Vx)lcQh6g({R?kae0?f#o44)gxm;hK&E6J3|wEVA4iY9*(nDr8lwxtc7~ zV-GdiD7*pW-0VRgg`GdBkL_<18(weFe+*Mk z`?7Ig@=hS!3SHl6$NS;`d07f;MaoB8+4e2~#J9olQ+FT>kEKM%D6WF78p9vtjy8Np z4gsZK0ItZe>(@?Be(vkM#2AxZ<0T4 zxYQN$QsS1soW_F-wGFi1t7tX+iEQS@ly3b1JLo%8P^qP0H&9kmC2_$~Ux<<2*?X>G zCMh?ev**4hBhAftvj+zf9d=qzS7%`~CF8j}d49EwD~(xffOd;B%Q~qEGPSBo#2W>5 z`JPa>Y{+s`-QBwBJ-g=^r#uiap>q2T^%QCKmN-H=7zZ!be$8)tf$3sVo_NKVeRae2 z1&@(*!IaNK2@`v!qxa^DZ#)RE-?UoU)|^u*9x#fQ>nWT|TM%Gz3Q{uv;5>>&U~`Jp zzq8IsKK1k_PD+feRBE!=2#k1e<0@ND9+*1AN&Oy`QY>EMT*qM-X zU$k}a<_BjAdHFDvi=P2vWWna@qu_bOe+-{YAwR8mwWR3ATc_0L#TVWuJf>1(Y^mtp zaB(1Xj3n+Pi+fYnmjBupP zyTuHf4opG>y2-hcHy&7#tx}TAd;mQ5)7OV9yfti3R$u4RVHK0F#%kGlX2LjWRizku zl7g?V{d+SQeh5^lf5&<%ZKWV;h%X1kd%JikGF$(X9~cgYS$G1slc6drlwUz^tK+NFsrSWLX6vutVnD1)+e`6!h!)_r$362(;r8 zu->^)8|pvamfO*VV1X>S_hOhms9jaRDSfwrJFqTCQ}=DR&&oi_lW{2NED}*q8-jX8Sk!Eb2w!JAAW=!#k^6 z7LD$!0b!(C&eV2KN?4R8o?R2UdEIVd70Rc!{>cNS#!8RTA1}&tZystzbTJZph= z{jID7M;?RDmbvsz#V_BVlkcW*h%wWCyOw@c+*zf!KWPqlI7@Op>vPb11+76X+mmiB zDL(RfG-}9q6!UGoDeO^d9;~=~UUU)~T1)DX zAK*vZvY?*Ej`d&(!Ggm!jY+UpI)z}kxRJ^&@l6n48bKmeLNH8$SPD%OtN>q;HI8*q zGODqi_T}tnb6)>aqt@|#O_)-eqAE_Tx z$i1dZau%NVC23es)p)oD5LXQONmW~88I?%V6XbSHc+MFvXLZT_sS6a2_hH6aNyF4W zuH1+))gUKVy8{xGtM@H$h2r0}vbw<)^=QEZ{F>Zo;YhCg%A(XZX zSN!3xz5CigUZYR%*>4r!p`S3~W-a~lJkm0=GGQ3&NG`9)gM&saq4}(Gt3kkKx`3J5 z1(JEY6q3CrcNV{26`EZr8h4gF56YeU*QxZqLU2ema;1YK?<3eRtpt)022VombOJHOO)ql2B*DeW9qN>Clsrd@jv8 z%N-^+>7|XtM>g^I+CEa=r9C`wAHw!qEUzHN`vE7P)!aVw0T)Nx;F&m?!)?N~FvahW zmh*}tpKW8F@qf#C&pTT+m51>w?$HoD9Pwp&gq))tdgUNzakYa|0T`O0Y4A02RB3QGgr6f zxz3`gAsZNG;mu(?d2ES3CK*DNbCcrBI!Yf_08CV~3-_5}?}MpaUplLj0nRwdQ1p(? zfMIy6U=^Ip@`>wDLRNsfRWPw1IJ=b}x0jJ~p%$!R2NI8j*l0<-HA|X80Og8{Nm^%A zwzs_5)@tEgc2x9nLy=Wp%= zcwrZ?!&)0Jn6zwriI+$rSTFTW3}%LmaYRZZEzqwH)2Mdwmh#JZOOI zl`&3fpJ0*iaDJop3$9+3H;V+N+3Di~LC1H&2B0NIV#F<=B`7n8nnW-4%NDsURh_W| zgz9vYqNK$IbE~t}DSAgzldm9DdYa9F)R(@8Jxf|O>AA?d)OOt#(8}mF4kmW!C??BS z!K~wFv(X8a_j4=2`t2bSrN9kmhqqSI$LF30P#IGo^N@JZ8c^!z?nB8%FJ#$038IKs z-^He*_1=Y+9qR??(xy4IVzY9%Xz=*qjH~`ph!o+10pn3_LT&_oyd-TnJ0#KZ6)gH=+IS}ey5Y-LP?HZUoj4ba zPrGFUG&Y~*2~3xj$V(wx2uI|2A8WpGs$E`I z(7{#Fd!>HoJPBdU1_aB*5LFC1ajcKp?_Rm`rMGJU3wMop}JJG3_UE zEnAh4F}w5JN)=b4XG}QZmmkm}kUTni9$eo1HWf`9F(-rAww>doL$`Ks?f}>xmjx)C zoTlwO%?TSwqSCNop=m+cVz<@W;|1`eQ?J@g)afZ^HuAQItC^*$IjrclU7NWLovPOO z5{S2CbMM#4dVGK3x<{r?7`F-_d`0iH4MkF|4^W-dwpzL?x$9g!-r%EfK0W z-iDKv%5w+!K65=>4&vD5qxawANA@Kp<2JVPE%xr8Q-82hkJmQ^0+GUAqKW)`2)li0 z={tHr@?m~Z1QYZ?F?np2##+Ka=G?P2C;7jHl$J=P+DuZJ1HU~f3fBSQo<{2C)=!qA zm!Gs7$iGw(nf&@D*sA+(=AJ;%t@?GwbS6k6sxpfA&R44<-}+1Zy)gcuYh`bwAPxkT z$$ZjQAjSBAgLKTBT#Sr-Xo+z@oD1B(Z)N%(P+vKu&s7G^%W8zrjkd4BW{1~58mu>^ zSxOT}OI(Oo%FBkW=PMSZ3q#9*Do`OJz{q+Ui8obr6R z1M>y#6X=38NA@7X<=q!9XlFk!3(h9K=mZ0)h<&h+oH;6f^8k~t4h~RVFtvJ#fP}YZ z_D|VbVC2gPt*U-kql#r=55q~qppHR|elWp|?@JgCawWRGSPNV()CQXcpK5TD<=>k; ze;|3Vbg)-V^e!HDlt_US&n;bHf0i;6>Vo3#JCl{T2Y__&Gw0M`(Tf!;tLXZOowbKj zLCTV&GOJLH>*6=hV8M+Dp*X2Hdl3KNQwfwTZ=wO07)IN9+^5!sYUz6G{U0zRGxq)L z>sIlYu$SB`b-W6!jzdp;%yP3>aS4cDhK(q^U{}H+xLotALwUC=<f#gB@C@BsG z(L^&Q-i5sa!p(t&-OhJB9PSJxgoS&FGjTTisy@+mffyx zyZXFCX17gasroAC-89+UMc9NTvvMxg;9cMZ_Y~FSt}DQ5=9*_bHuB?=GK&V&hLbsm zsWvGeQ@NV(eSY}sTp;ng%G?j4cHwZ|{Ocw4bbTf&MVw;*b0!|BdyTcyM@09?LI2%T zl?b$AkoCklJh3l zF|jE%>aLe$=fCrDYvJ_R06slJ)?A^$m^;^4*$@yTpA@8v#y!K=do_t>VfoUPo=Ppv z-8OgV+0FM}4M6t=rf`aco0T>PZZLTYH?w+H#;a`nMQ9Fkwlpd{rgIw#<5S1-r-x_I z$naXY-u2S4gnAFEzhobiAuK>3G=^Tq4-ozj85D16FBnvud=id5hx-j8rO(|J$bUla zkSh^pDhsHO+lUo$b|?iNEQK;-q5GyTQ~Yi}8CNT-IUbnBiF`sg%b zD6Aw+B|kXZ45NwDmjB(4z`o$D1n*sXv3j8YX)Ooq%wxQQ`&=eT8`HnAH$1&|^Q{&3 zO#M96O$E!j+h{(qD?I!C+>G&Bu(_>0_LzOU1 zi*S~{O<=&?Pi1)OSJy=g8s^n{DUkdk1rYmi%@*1sVL0V@?;2JrhluF17(t(*Uk0-e zys=f(I*hOO6X`2+++@0tH{^*`k49j#Bl`Ee5hAxeALiVtCamAgQf^TOiKq**X$(jc z)Koh3ZZ5hT*KuT7qnU*(4BGMH##Fj5E|pJ0!{N5LsQ2ut84F=W6?{Z8i1@f%$#OeB zK;1BG(D%OAnJOGFI(s8zrGzKI=a-4W;r_gO5_KXHqNkhL33OHF`bQ#FI%tLLAgLJm z)kjV2TFjm9n^yUv6X(8>%4Po`TUk!e0}`U9>%`N`xT2FVY?AdWRaVox7rC|P(L|qe z)g(7ms*$yi)kD7R!%`Lu;Zv5aPpa;y0tk>7MW#6xv-1t^&cGxZTiTMoxx)YOfmz`G{BW;G^##y@}%wlj|iZSyg8q4@?&)s+^@*W2@RbnFRph#@Cq7bzv z)wnN8#-<}OP*s1DP$-=E5#T&CNthiA^QjT1F&Th=%*Z&6Zs*Hdg06k`?VBJ5?}yww zZBe?%GFut2&LFJ(xz__i1?QS0$B1hEqP=QEu*sP3L#shda_a-xg+~r(YFsOJMAf~U zCsxF~Jj<|^N$dbIFM2f6g-DK;07(Z=_j@5(+Lrh($q&S3!_*@!7M_2&!iqh`wkNjU z$}1@SUKTvjnN|6kGT020wMcFl0zTiQSA}>Np7RukTQA{Nkrv`|*n=OA@tsw;Old-H z%>~1)<#GJ|Ou`wF7(8HvrKZg`ZYpZz>wn7jAyIoPPMVB)t8$;ZEp=;Q@HCx=9puK3 z^dzOG7Ej%tsobSCCyYAFLxR+_%KA?Ctjojtja#6h(n>2{(i0zE-3R9}t21#c6EOls z6*Vv{37g1%{vE(#zWTU7%8iaP?52^fAJxY)=l5){{@X`xB8@e*AILZD3axAkn3@+R znMULN_uAA<5uGrl`zKC%{o)nLgl28_owqJ0q3mxM`~`d$?;z-t4_f>#xHs}ep7vkC z&Df|~)yOnDJOQBKi?Prb%>uzo8p=NhSdpiZEP9=s#(oivsnr16?Fv)3iUijAKnJy& z;z6$w7wq7*hxupW)Ed#0yvhf7E2mM^;7fQ;nh7 z${oxmO`7f{n^zlhU~V>nlqUT%H%e9R2_U>lwaJp6ktbEIW}pX^XsPu*b>ca+S&~TNUgKDz^B$WnyFiq%!R5++2HuOKu zcK?zrz0yvbM9)?!u9NVpU}av{ftT(Ml!D5rS7PLge}76?AQl=E)5`T;#-VCK-+*IM zAjIzk#f;{bf6jYo6}S<;Ygj4efT~1X(YJ)YWJ`*$4o=D;eXy+8h*)%j@H3Ssu9q3X zSJ40It~`dBA&(|J2f9<&9+`%QoiVZOE6j+Lh?s>&{bfTCWpt0Bt2?&SBAl#Q7}yc2 z2y52A=%pc;G1gKwN$~j|m7bOfR$sHgs<0b(Js&p$Qu4C{O6osa2_9Osx{3H=1&v?~sE zt1YZF(9i(YLly-%UEOeqKD2?Lgzyb2-YN|obIX0w7jX1l<5C;=9aURk5KJO?y;0L{ zGHiGT@a(uYfz_6%^6X84EdNiJYa56U74qz$!uAd*e(W?raa`fbGA!fCBe+XStsDCC zjI01Vbo#cY&;qtBP>H6i(y=}iFpoCNI1iC`8|w222)eQGXjzG=F5iiXm{QzYkF@7c$NXikB4T5p@nswu@or#RuZH)bUmBg(kq0?rni2O>G-!LU^0cU5+j!EC8dTwK8lShV(M*bxRpA z*nPcBdM28~P-=W|xR>OjnWeQF)8gqPiz}qlfW52vjdf&KZJUA7XK*J<>NLxOLg6c_ zfj(M@1w!OCu|hhdi#@st?pDj?tV^4=*QY(;P!fCCg$*Tx7?{4cEc$i9n$YCt_kYaR zLfy8Y05YHJ%hvX*S0FmvhuMoWC~Ib^?s>U2SmX?*1)}HdOZhvdcRRkGGX~dGm=_OM z&fq+qDV#c~mJ~>MrLVUZKYBh>r$-~N!Ezo8#)DdFfGy+Vk=^Jw!`1~6{o730a)#+X zwQTd;lKNYhV_%-U_9euRLO(YEvqZsdp(4KLK+|y=3j&Vgq7`_{Mh|JV2HFTy`uAK( z%?Xix_5QRp)3ZK}b<365?1BuD2v*=%`&5UGta@&e;61Ff{th+AOm*nB_Kh*mgL7JS zW=7xgd6Qxt2kA#(XFw?)?u{{cW`YpjEKKuTxf!kIo*h!@@jGFz;FedArLEE>@rNRB zaQsBygq~bR+!e4^qbqiE!#mwx-y!+%7cUZmC-aNoYTbzf!qHPy0`EniGvEK<$o>Kc ztl^&16y$f>!cyX7@T^c6)D*^QWnnYzOdNKH9a)!)HT8!Gu8?w%^HT1_WRMV0xqzPYf|9gq`-zMsR ziP1m*j!8PqIfmx=&9$(NL@qpP+Ynv+smW+>817s!TuYXDA&6cmER4 zjKQ3<##?%Qjlkrn7v|g;@N^i+en4y3yubsTp6Mdh2vd^WEh4OV7M{p;n?Dl9}J5hGzGJ z;;38KLbzFfzP{I3;IyL08ziFD|9~l;ZO9_OF!p2At#aZg;#EO>b8r1-#=zDJ_#vc8 zXlgQHIp-L2ZYRU-goAct1r2W{^}*4FdZJRMjh(;RmcQLE6shLg4b)B z^eZGDJ}AyQvjL$Qjz!6*bODHZGK9YvN-s3dw!$K6IZ735NIKBdSR0g%AJgfs_n2YN% zHTuRmuVU6Kaeo{5_z^#r@VRzK;=uino$`Loky)q&Q~PsEG9?Z-lKOj!h%rjzDTmSv)OLh*Uya&TkjqZKV$Xm$VVG(EQP(pjNm!sdk%Dyt9|g<6t&%Gi3K~;D z6Fx2|n@*xjZ6w)KQZ)=+L$n*kykFE>ZG@qCT?2(ePsaC{!+ptP(M#^uOu^-<9f6=+HHRdvm$+8~JrE$0x;XcHH1Sfpzy@J18L$~%G@0uPzBG4- zciek6TacP9A7?^{EByq}&ssT}nN(ZnhC)OdgMJ)Td;*>$_f>Uy(&Q*|eV<6<$p!#-T4272Rs`aWM*@4mv*F$~5?-FBm_NGl(+J<1O zJr=>{rGk0LPca!F5?X4uAL+VaN~rkhouN;FEU-M-dTa4mH9qn3{iCyCW+b3arj-b~ z4W1x++Yp^QpHN1n+4O3w>-I+=p_g# zm9E6tX^Iy-w8vno;IlN1=?|XQ0TEvG`i={v?1Uv*FmS-dO91&(0RgWN@Lcn**R6{l zt|qI832?=zF~P<=I+u?Bj^16D0zwr>Ik?$Ont~5)vPiWuWCdL5lfcio!cunl8;0Nt zJ;B%!;7?fa0rJ@iQ_5#(qD~|_n`<%%ps|uIdFbI*8iUw;N<&BZwXm?$tuv8R}fGGsr40!nn}VMw64jZElmXTziZ6-Ega1Gc5a883jgaXt;hn&v1v@?v245= z4j*h+as(WzR=cq6oz0oUz2^V_XM07`b=Vj!^m`m)IR4kW{MS!3iGc{yP&(lEcfVY4 z(|{XBz#-K2bs^&a!H0=V0u0I1)~fWEtGz0s18mY+po`s+Prhwhqf~a-0sEinNfj&K zfa~q$zufnl0L*QW0*!!zXBK%UgY^&7i5>t3>;bMyMq+iluVALYtO+vRSx`jZ0#H{U z1_+sQKuYA?G5?!hx`lh-CF%B{uQl?IXClIhi+tl}Vd^f6sQs0dH~P1bFcQ&&t^(Dq z&kPn&oAJTyuM6;8j!F+0ESrLM6wSq?<^l9rbCvz)jrhymKZNKZ;zs(lfAmO8+#g@| z7q8?q&VUDWA=xE|PDM#LEFVlk1K};(?MWn(P&+bN?+en;idt2%c}RkFgSOw@Wm`iqT39cGmX~LJ&P*wQjEjNt!SXv( zfKj;81^@ca{CSoCEL#8Le_4==XAorZc(k{aFdh zFfIc-C1w2mMgmym#CG;7rA1s%j~FJIgn zIa?hG*SlcPO~gsw&kw;XH%F}B`Fi6g6n-pkeFo(I7I0_m#N~hb{xh!pGss%rf*`K$%G3H&^c#SWsxnAo?o<-xs|aXJjxu zr(KL@%TYlPfrz{&r<#!D9*l18W#8=q4xEAf4u_;m4U~ru^H8w-L<*x%~yo=cX_uX0B>^PysSkj-jjY zfBz!}9^MaLMVHv5)uTgxpg%9NL$C$Z=}tlkif6z8P&coQw#d812TY78fzL&~clMX+ z0rd|>2PrM};DYb66KkH6={)nNCVBar(04R+WG;30j-)&eIjr0$t=xCL(Pl7u%# zDf;RWWtI|9NS}F+QPE-0H=9DdxC2rJWi6h+sn?H}!Pr}z$!9x`;$3oo2|66PWN|<;K7J^^`!! zwK0VGakdL^wt}Toq|;P`oP9RsTS>&oCQ8Z)362TK%^0!$;i#_YMsyy z5CHhsAYnxgWgYIE{*S;>faBG4`u0%m?be?N%V0naXd$#eX(~4E z3q<4Pt%}niBk+4Hv{2C1DY!W-Z{tY`&+Kk$4UC*Q%h8l}0p7UCh1MQ62wjOkNm^T& za|d7}W4H5<`RJiPg&r0*=|b6>74&k7?3@9KC37b`aCFC6CSW0+6ATY$&E_QbJe&@h&L5?BNU=TNObZARed1=_kPB2fZM2Y@}GaK%jQi2Y6J$Wjp%M()O~{wN)(=)^ko-U6+#Y#BJ&ce*8el2?v}r^#$vj#IAXr<(l~JPbwFaEDd@F~KFpb`G__!^_Kr6Bf zHiFCpg%ZJ3v%sH_tlnF&mM-eci~*9<2m@;NI!wHPu4` z-RUen>L);EV#wG0W2*A=Tl{gf{+mBUoro3srx(C~4KM%rm$!~ys%h?6K|gzcwdxvJ zSrLc$Vpo9{LnPXdn8<1{Ch3G}T@0V2#jYzUviB?d@?2UD`y(ty;s^v=o{J5ztVk_S zhyiuN$iyiH`RFZgq6I5k{>w{Y41^}H6lv<5KtXs5je*L5l+p!ojB1`axb(}xutd5j z6=)73*Kwd*_J2vrQ3X^M9{UeQv%>aYJFdcBn3i0mt|$N&u0he?1>5{NyMyqlbY&T= zwo@<;h)#&>iD)l~CG(LM)%jgWK91>N8Ay241l|#eNYb~w3FS;OA|?`?7HXuhON9N? z$zauy1l?EV7fF=P%YcszFR_6k?@LAiDzuTqTqn@IUM|8AM~uzYyIA6`TZ;{h^B8%& z9kCXaJ|iiG#^X_N#q9>G<8BZaJDT5{twXKxa26`#tlXrzkU63$B&o=9m;*O@2N=(p z{5|!X8A_-NOYxI{r-(2TY(dA{2?WGvRL-Bhu7V+uU+|S8e(){qjInErggPbDuef=x z1RiC|R(j%%D+{1?P`K4+G~b2DC@?)E#p+}n`G_ig!}0t55p?sL@i? zDWIYdlIY@+5_W;aE5);$QUqj)R4`|aTwor^`9R~Jh{_|x;2vH;T+*Ox(-Gi|obr6( zACv-!ng49);0F_Jtly5}n`xinR{xiO|G&OnUfiqz7PMB^UqZCAX~HeYZe8${lrbdW zsq^i`!WVEqFn=DhB6Vs4l7`i%hbx#f+NMdNonRWLj(M*M;wJgsRw#;6VU!(8Rpfz< zxqA0A8j&Gdd}ZcOp(FUV7Qi^P&)nS451=Dq@RMeM(uLju$Y0Eb-EyW#P$>N4qpXqh z7F=}lPt6HR`j7x_LzYtfd3M1<;nnuqtbG62iKQ>Xzt(N38a|~9`(PGDzm6oAMjy5i zlLlOt!@%QR;sgFaED@)L-v^lsqI3yE(GxUx0%AB&Qc+wFeFvvD5Ijh+*s@ zF(9e9dc6Qm_YOFVFi>cFx7>USN=YaQQjxoxYXIZ}ou7nr7+rN<+}VRmi!z9jI`*_? zV44Yh0A!F`>`!JnP$gafvs^V)cLJ5$)OEaV<%v_f@=6jS54q+<=Nb8BbZURqEvIPAI_S}85Rq$mJI%Eaj z%M%(_O}2n(hf}a*&DtysgGrH8k+I^<{sW|~Ko-myEQNEI!Rr?xW%ghZn24ZA6xo&B z=vZk8JidSV7^yj#KNckgw7gI#Po}xdp*#AIlJo!Jw-gy6x|oge9lHZf2=1`cnEUK& zf0ibExxl;q@G9jmlX^`8$xjBPxUq8bk2`x~ni1`p1-L_~Fzv}`bEneHSs{Jb0UL)T zA>>J+<{AQWVbnJjWK^Au6tbJVWJA0FO*L2zzFj~>>6@0yPH!+pK-rL%Zw#WG=T_{Q z$7ohV0g9VYhoqh2jZ}LR*25(>J|X)Ul`&vw;2!zp&s?M;uCFjS3-l#PI5E;uKv-iK zyf}?4fk>wnoPLAj!La~3P@fHqw{n!kg-0Wk`JX~?j?+-^?^6LvUn^>v^X{nWdwd=y z>@6qQTlVhQHrlT>a*5=QNz?of_`?zWGvKTJT9kT{Fo@D?+{J55^~H&1XfN3)Z9h<( zLVwddrGLL!(hAceh(z}x8-))!<@ofEhG&>w|()fuB z7pho|Za#!j&yD+A$1lf(AnyB7oZ<#YSW?7*U5DJZrKZGG$oYK0{E|J8N|4VIL>BnC zXITs5Fv)=;%Yod3ZwXZPK^+x3r(`n%=yI3Ekx8_b2pNXgH+B+H!uE@B8X~uw%@F&v z){jiWL6t>QEoysy#`xmXDPRIhBDRAxPyn%(tic#UDNofZ4u&_3l+Zk)F2NMy(w(0+ zM&O(HM&Mr5FN$XeAR@g^35z26DG$m^F02szyh%kv*F~d0v zQ9}lT$lM&6Acqx!JeH_^l58M^1Kfi0MraKx=%qCnSDU~q_hp|(`T~3xNz^0!R+VCg zzwF71#1g1tkdujY0GB62BlW8aWLt6kl4qa~AGR%}t%6v1x0w_pcAx~P2L~ex zWV%t=$Ds8Yh>M13B4YzWz&fZZ)HPVj1))3#w+zOnAV#VVSX>}^WP;oxN0hpw9FpLt zBFiC@kurw@lTWXg`(W3m3W&yE1G}@nEBvb?NG))^`jNlcM>lH98K}|E1H(1|K7dEA z=0R!^)EnV*S}fagXE&j6rG(*z`fum0akKAu!YQ`>2CDB*8LIhw3zP7TWdvYVsQ+|Z z%r(x2fOBVNt8VE|*IT}Ogku97b)_}_C?R)O4UiW3%!sb=H8*d-0w`QoeigvrXh*t2 zi|kvWMXEH}f+k4?W4AO?zWKVU?12jeX*^b1$-Y!-b=+!XC#??xET0(_u)Abb^DuoJ zfGo^bfWSFLHRM#a8awRDkj%CYdNd(a2}wc+paZ_1F63FNNZtNBcht@G4X|Q7pm779tRgLFxrq2aWHk^I9AV zWi0bapNC*|ZX@#96uV-f*{f1=Uw0Rb_X44OD1NQ;rR*DR>#c-pL_w#1_ya1r4ChGu z2i05ktPE6fM^UHXbAOnqC|ax^^tT_rf=KvHavK9dC(!hMoijv=reAFG@7*_kOOR)GNRztd5 z;)QvrsIO|lbZBmb*j-k%nVzCrVW%r@Um>lWz*jpuejjpR131e|W%a1=0~vX53w%F` z5f>HtDBSl0|DmBhg$S9H*JW+9}M~Ru`u3o|EMIwK8Xz^O zMAO&p9uwXY9gkGF^>7OS6lKRT*eb)opWJz5R`pdMKqmQ;UW-$Mpy``GihoviN19d2 z8Bp-%1=o9(8nD0d+6{g4SsxOY1rSm;F{b}blfo&v_!T;Amhga+QNMUiiC)0bN?{xE zwE`cOr=W>qLM9Yy%(1nWFbN{0=XEkI1p44bgkY0kS;&8IEDfuG(09*DCE?YhAkcMh zA>E|-B)RQfTnbP{hU0mCqTh0ZX89@XSqmEx$K|gE(=ppd%d*+z$aS=vAiwA$F1-%o zuRnp+Yd3(|t_NLeR*zMu`?lwP`+@4j_(absGpPF6!G2tf4Hehv;kMO0rkxk__lv9d zGH+UTCf>3EU3>Re*1l(AYo1^(5K3NDH;0C5yGsZA)`>NHh*16ABYc*k9c)*gHv)$+ zysocmqfqkQmMU^t@&^+{>U51QW`r;1qTW1+o+Ytn6XEooE=-wWV!g;Wr4g*0@T^pK z7P?Yo6IUYzTx@$oj^c?QK>OIVpVhe(ui*woCxdJ5_3gbBPdkWlaIPl}x%xEINbEW_z0Rj0x6wT2Mjziwy= zYEyC_f-UALLa#N-(2>NuEdzyKgsFxg%Qi|2bS=Yu4bba+(f3xErs84VUXr-0cHxYNY!7m&ki_4 zg|6eZ(CCptL*S|bf#4J5sus;8((_*+WQU)*dLtV2SBo5oF^4=FO7*o|XOqNq+!o_K ziDjWkhw<^RB!XklbzP69R0D~a3B_33r>MV}ZjBC~SLCu8uk}&Xmi9=V`9Pv>aWAhZ zgRk6v_IdeynZS-Mslq=*MTZyne}BsYMWD~6Ex{n+G#%@GKzhPQZowI)!Fg8%;hAj% zSnE%q3lo-OGpEySLN0NMY|}E_1Bu_Ntl*62>H8f!0o-XwgmG7h6Qdp#p)h$CTtI>B zl%Dz;Za zv*6PE)c!V{QuQ9{-XC@#S#FBqN5+n7*GaA5p^!<#a;CD+TDMAe;LDvY#2c%yWft5?@B)}s0Z*6w5}pxlik!g^;7mm=vkG^OUM`X1Ih zkU{%rL!D94y#*uW>Sc}X1#3_BGzt{U62s{ef7vT5f;dU^D#>N_|Ksh=!?E7iw(+vk zfQD73gi@=)oQjMMT8*S4^HfyIkR+K&b*l)akdOwF%o(B#WvmDdh(zX)IhpyLm$mk@ z_woLoVXf!g-aqzntbOd=>b}4C_j7%&>%7jPFyr8I{aQ@_n=P*#N04tA7i;6#l0N(a zIbMQ^U#uYdn#OWd=z$M102WlO%*kyjA+eX!$ynBV@FLxu*s z+e6_uSET0yoH{ax&hqu_<9#|TM>7DJu3#*S*x&RcV3-zEsUT9<14{D5YOP81z$0=# zKl;n-D5jT%Vn4g4pU4vYO@VJ;s&U>yuRA`m_AYQj)sVZS>8)qjvdB+FATu`EdQv!3|gQJW@$3}aSd=;PLL6I z=bJAzn0A*lE-i&jYvnKb9~x;kUvSL@R_=MYK!qK4Z(&g<*Es6|@||fZZy$Mbj(kbe zO5XjD@5D6NDG_#RAiX`vTS{js9@K9pRqj#DC-ayb2#Xk5C2A?kW z8=vPt=vFm-YC6Q@%Ye(wopE9@b~)9 zuUs=krB|X~bX8wbdZfjheJ8eukp74aeQeDnfD-Avb;kSg#yjqZ%O2M7mUm$I7y)e& zd496&9OmCO?-N&l@k9$?p>F%S1U?RH2DUE*|54=!A}kuKKMujZ`$+j44kA2p!&0I- zo;`gtK#U>>p|E!H7BcbPofT&|TF=GUKT))GLM+Vn!uziK2ixI95Dk^w3-$Glllf_ZAf=E&@DP?^#Q_3XfMt1(>#fO(X(Vcym z>`w-<&%PtGiqZJ++-DSnqv*htLF&Tz9H+Rp_X&%Q#iOxi#^IJSkG=jMf8w0#y(68C zRi#zX$!8~MIy-v7A(3-W)^#$bjo-ntqu3ODAup_QR!5~jn!u~6^&?|A;LN^L=$R>#qQdg-j>BOmQin3DOx<#e^J9ZPH|TEFI7Ku%U9YJ6Vs zvyC;}xX`RMvv5Q-EKP9sra0ts$*X>INb~Ou3LR}+eZ8|qHOALuOIiBajw*F$(V@UQ zahB;lJ6=~k`TiXPU}xu&wpvDY$eO8PCA)=Fdnjo1nPWOr;f`hETh4ZWeThb{$tQcm zPXOCj*z`H3U%>#Xm*R^XiKoeO@Q5eyu(F4fQ zqFZ|(gJ{L(Ut!HW+F}P|m3mywC3?akBdBG|5$5gh9q~SeI4^v|*suBXB__>^rr!Cv z`S+5(>I<5GtA{)Ok%@q`2b(s{+WD8R@E0D!`|Y1}dYFAJn!P~FjhS}&yXq3P;ih=D zQ0VB-h|+pY-Yqk~Zvql>UC|}6N+>GYS6%4GQUttQ=eiRjm-c(l-3#+P*q;TLk-Z5` z`xjL(@-(Q%QZv2*uz|lBnpm*^`Hdg0TNi> z-s*zb%9F0DzWiium;#|MH4&h`8 z7E)3nSwo;F_7UZtj0Gn1L=K?ggiuZ7z|g)5EbjV3z3yAuPk&9Tov{8TPr_gH=FF25 zv3|X0+u0AYf{%u%nPqR(`%Jg#b{y=6$5F8!NOgIX@_yZk{>!S5^cuq z{7jr&lzp>0;0!3#_fhru8RHXz=f==}dEh^?LK&H5KF;8qA8i4WX6wl&25EC(h;M! z^AOnBe?l^ojC8Cp-&A}nY1>uO3P>rRF8kC1AYS#^iDv*nXsdDdhr$QyKxY%D=gf(A zrJBMekMk8EhV4Ocq=to*$3B4uuljY;v;Xflvj4^VpydH}XTb6l{a=^G|6o?tvealt zuc#4ue;ny4jWgGj+>%&f4Y_JxXkaoWeU`VWeS$>&bVL^19@F~U^03~|#fFFzZ~e(6 z4B!rt_qzzW{f>P`56pYzsU&zbADR1x)ejwxX5vHj>RODrMG5u-g@HH5_3hy0YHHJ| zeYh>rq{Mp<)04t4)^E{R+rCPUjp**hPJDy4!Mazbl-BWNPv97kTTgIk;*S6@OM16s z$Ojz~B-g z$>S4A;{?iN;x&mNW9Yu%j1v2dG(gj~Q?oK*=xJGcn zGpQKh+&zd8-3XCGCb1UHaek8n4Y(bFb>$j3cBs!55w~^H_Ka9t9euZtumUrkys@a5 z6rJWzXZX0#Vrz@5-$G04gkUBgpsmkOb<%Vhd0287&sFn5+~WpvX&b&hGz5Z(Nx9IR zMa99vYP+_61U1~D`Et5rte8Lp<&ZY&#{q{ZAc(cs4oSRzdePHmfe9XnPzM+6wpfh8ocHo>8F}VE@WNfD|Az?0=di;Co1R^ zT#PXUz-$G4I&bSNzJu+{DggH+FGy7YLb|IWJS7Ib=*oz&uV1Nf9*KEh%)TnLqBr}w zXG;cpB&+E5QfH1Ryz#_PqJJ!T-ZT|$muxGfl9U@ z=%K9~`HBn1d#=={W!4#wvw?=|_1h$roU!n~vNKh{czRfk5eyT3J$lgX2=)uHg_QsGhhk;H$G@Gx5G^<0iZT4YCBw)e_E(gi; zmh5}^jCKK-MiT0sAG!(N+!&Psc9(Xz$FSO3E0(jxruG$2>{M6|iafEPM zXx7rD-~ZOPb~73Q-?2z*I{3-YINv+Vg9=vNN~xX4#&B|qqB*z_<<3<*QZwN3TPlE^~g(Sd!WYxt&k?sqW}6;qk37KNQs{ejb5^P|KHnCsr%f%lrg`bZ1RQ zChSi{&bow4oyFL#`h}5+!?SUH_h#l35hl6@?Lfl5qY&6{<1C|MU&JMZw`bEklyh#- zC?%ztrb{lzl*U$sETj}x>YYN`Ne!RrMXS}v~F8C$jwDGzplsH1GvN5{ZPD(3wR zY^F%Z;9M7Q*L5vr;cIO>t0|>$Ib)4UGSOM14n~Z#zfl0^ao4>JP}-DF?y`;K8$}YA z7XfJR6ExpfJ+%y#`3|7+Et;5Dtb=c#`{%V22$QFe9>%~S@`!7HF->N*df!LT%r0ke zwj`&o{gJ+9G+i>$lz`={*n{&s|9BTI@D7ZSS0i2rdDh)IKfVthPeo(wTu&79KcoWT zXP<9*@H0he30%xdndNsr4((+(&xhL^PAmit^5|Wt?3*t)$oA*8y?V%8=Y1Fw%xJar zxC!{L<72%-)|7qL9}*)5KdH^0&^8I-SZ`8Xq_-*K+gJ2Oh0$DGH0V&LmGSBB<8Yfx zY>QRxta5Hi7}rB8EjFVq!sM)jSa>_7%PCG9h8Y+)o&R8%dL{s!(-b|>Qu3py5`)2; z;w*5m3ca;;e!;5-&k=_cd>$lonS!R(Eqr-*D0@!$6FE7seP6s^^on(w_$CkbHxAg+ zZ%_MLU2jiLGgcM%J8%_=4;zdgMUNuhsgvXko`^cTcjj@$;s7KGb1|7v+EUR0!LXs7 zn}-h^%h<$V{|5TqB~GT(YNhrpOXHF#M38Z}_jFz5iHtbs4zs{Q_+Ype;fDvQU|Vx3 zXet{MH8QScH^2*0C&TRB003&ocLUMl_FG#{6cdX>GPyLAD^?ELsV9BbTyYx8)8CT$ zGs0B(${fsG6p%eA^tN%FaD>|g(!=#mMtvT_6aok z@!KZ1ayakJ3aPpnsVREfrM7iDi*^i%`YV+LzfORrDX6U!Vn4kn(gl2n{A>p6hYE+M zCq6vPqv+w0_ilJWgozh-*0448!>4E|Shy0`MQei1-VC2!(x727bJ7<_c{y>LNgpGmC^^JM@sJHi8G*pZBKw|dMv_t zj+4^#*QEBSMj>RpXgKXwseWlK7N61(R}{L(f}0&7srtg!S*K>$&;4o%m;rqYq^gcT zDAG|sjKGZ7b3cf2^*+b>&=ghg?SlqZuwC!8QF1Z+lMt6}FmH=0*X?V^W9KK}){OIU ze>y<;vXnip3Rw2AynGWL74E3^!WHZ!B~BdnA>T3W5bNfmE0kD169G}F`*3g>^4QFB52jicpir<@%QD>~~qwB`V8 zQMWrA)?%cg^sa&;Zt7~Y|dA3UMi~@6nNpkvv?hUJ%&s0P-F*B9imW;X|9tZMDk(Hmp1<+qMT6?AM zAK4H|E@*XCk#`h>sgEF;(T8Js7Fggh4vm90Bd+@DY)#iH(Py};e`m=Oub}LRYJt|8 z-2?XeIxH$;Wmrdrmw2I9mr#8*1UEBN5p@plP%b+?V^x&`4C713hWiT_A9!{KtB`!K z)D52vcGZx9Z{qkQrmT7xNBQ++Kg!^e2y+aR>cBNAHp4L@{wEIez3(5--0_oFdd#T< zOuz^|;o~Zip}@|Dq^|UUU&5{sWR0y|d?Sy22$?t;$V|e1})a4|nK+ z9*MrLb-H~?92#|z)-SsMBE0{1b_60es0T_R)$`^o(9&T7KXQABZ9mY)0z%dp)wHc; zyr^IwmW2pq5W9A6Fp)){|Ad3gb?$v*v|xm)R87J3eQ>bHqsz@8mK>=SGfX9)!w7%QuP8pNOC z+R0~g(96MUCyV|>?ZjAZedqSih;|ipl4foyk7z;_c`SG)i!&PWBOs?PrNz=DkV+bv^Fx@0YU-Oz z%`LHAwF1Uo{!P5>K<7XZ)4R_}C)7+$D>E&f+jRqtNl1uFRR@g2gGf4zLq8v9s)o+x zV0Xqc-d|_aQ*nhX!Y$=iacrcjCPB!-db7xQuu=Wz4ycrbvu{FW94G+QX-{l`f%moQ z4_%EY#p3b>6!n?i_ptGzX-F#)!MC=Sxr_ajeOs;>sYWlh>J-y*@;8RLZnZmhiF$Cl>Exhvb~JVho4!WUl% z3Fm4{lc@3L0wQKyshOxvMq1^Lm35`-j}=}1q4_xlWCyPEr~8_TW7vc5+cH=1BDW#9 zg4f4Y?^>W-8+%EXUuJ(3bUv&7wE2lkIqq{k-F}(X-1*!=f)QI1BKOom^Dx1F-kZVu zkZ>C8Uc+@d<5Q!nW!SWC_Mgx3HWi>3JH4$?Ep>=IgG~dE15B9(bM zj3)*v+Njx`*7({_6$~Qr(UObzEobqb+ERJ9`LQ5gG5Z27$;~nm(|S%@eE*bief)j@ z?h)ky1D2!-#8CZ8{#0I$_o^KtX(q^p5{66gP-bQfa8I(^lNIlSVrji~CsrSvtph=2 zzB$-tJbB~UAK~~Dv9zA*8j&NeCn+oTz0w@h556Tt5r21+U;yYm*jqOmR8!P}R{Wu@ z8_de1QxASp8Q94ZOBCBZ~-ns8(xy@W|N(?sT0B@lS<@uF-5#fq%v-r6& z!u;NR>okLX#+~y)YTc(aln$rkXdArlB~}s!#Y6$c{6wbQsIv|se>T`vMWI#Lj9SfJOz#KsH9tM=7<&RmwkJbn?j!6nXG(@g3chFyec)`U| z>zUImtS!vk7E$}V1yjCbf16+04~nB&>=YsssdG;$KrFDX6ii&7bdv&L5o%Vi9G*A; z7meyjJ8SqMG3?{mb=#$3wWWv+T_`A@{yqie;@G?pY*~P^zE6HT@`ZDsN><$u-QClh z?Xz0z?aQ9tCQ=Y(Q!tBgm}Kmdt$f0zEUPjifL0_$t;!7O$u;;UMQFj@cgOI(y?zlDKl<6%Y_m% zVER{q@;1)ZjxNt|9LP(FvOLJ+AN*6h_Eclr$lH-S-hzy(&{NrSu6GVpB_aJ|`!f?y z-QEru%v;&UqyzygOf^*6yXWOs(k?`*-s{3X?oG6xkQ11R;m=r|Csj709HdPmUapq} zO|i$M`-$d@dp1U5b=(TZRTE}L7Nk=4YOE!3?8~x}bRdnZ$CL12chIl(H*fE?d;$6N zB1$%Jwq4rV#N3*8AT|UwfU^*N3Rw8Rn_#0aGet#TUfmQ7IO^IA z;xf!hcq241(eo4?egR(g<&4x~LgSrQGT2=lX-mn*TzoqVw8C7J0j*mD0BcOye5F$i2v#Wss^x0RWdlRfq=9T34_ zM^ruuObZ_Kgx|h41y$M$&|b=pG>id~!=|6FXUBdRy7_zuPED*`EBgxtR0)rQ2sd4e zWcB93J#hz~4M0NFn+o+~J({9oy*SLsTF%78f*x=IR{7B%R0XFwVB5lQeEQ5Wd}~3| z+1uGam!kQ>)^oKf+gsL&JL^qUyn1Xpc4he-@jL(4^E24b+_VVxe9rnA-E2iSKz*&~ zI|e$XQ2gZ$3svr_0Ecs{73TH|?oF08={(MPe65VRv}32{%d={9rbor=&nhnm$w<>2 zI|KV1Q+=hwO|6@h#CJUk>p=5EgzWMmZJl%<_Q5fnntW2}>gkv}VhfKOI(29ub09B{9rnFTJ(!2DxRUK_`6+M zh3S2tV7*kx_eA#J*}?vEMA8xiMkyW;@OJB>W%~`?9$y3Vh$Rp*VsqlSFiPvHVneb? zcG`_!gU?hhd2J>XV?7j?LbS(JN?)I;t@-Q*@d{`mmu=O=Sf%--29#p8*}ujfF)zEt z&Ze)x`|NSnrcisgI#db6*VlU37t|~eWj-IVV94DR-NaSWa%vQYf9*i;!r58Twuq{Y zPK+N@Er`G0r6EghpykSBVGfAu8(^=>!d$@7`5aP?#NzgYd-c!&GU^?6-pz>j^U7 zRX0*Q+Pu*i-{mcjLCR)^=4J%9NxCHZW#0O#TRW^lValhJ1;1wrWaq2hqM$x)yRF&2 zY*$nSS_PMpbgtNjNA}EdfvXv+H>&f-^_92QK`nF{d$F5rLE;80GHxy(3oi$+oHSX> z$L_!crH{rkW60+6)OgM~!o1Im^db4qs_8e_gIyu3%Y|ZpiO97KyQO7M2}97VjqY*Y zU9(y8?86IFQ&vQ_)0Fe;=UD9LpE22QjnCWqGDas^XhsID+Zivqh#bss&VrHsX%?U0 zD@VwcUh(Pfmf$mE5yW)R(Ll>i0!MoANb&)3X&&e{ui6PIqA^H@p6s`tgK@pxlT%cv z(q_A{>iz+|V4Nh~+ujh6dzU@zOR`x-QTXR%GcF>*=>bIZ%nxh7Ey8nua^Z@L7JciE z41c8o6_(mBpl7xx6{D%so6Q^wPU8I`FmNjFcO?(`GW}Fbr8LgP69W_Dwc7`(@oY8U zt$S??DZo|CV(gt?kTer@-#&TqM=U#}v05-)A6}o(y3v}r7Zgc;>jS*+q;XH4&dKWn?reDg;5oVXhTD>UD5v9pYB1S6qK$iD z1!Luh{=FqP_vkt_hn4<7^^l{Ubyv#|R0OU~!ul&1=@9`u-?7NQZt(RQSCT>NZNIBZ zb(Ih`S%G(z^+-Z~?AQl|Ct>Fwe~?rbzqLy|YFAygUkZ{acMj{`7G>NgE%)_1+nTDN z9{$y~+G-~+IDJj-R>X`&nUO2(f@4C0iiKmbj z2F&GEaeFIxP@a+G3Z^fkVQ)o@fDVh?rk>nItXrFH^t&8uM-14ONQtN(x6;?WJ-NVy z)z@Odx+iNu5nLYf`Dtc<%;|0IdZEy*o|GN|uUw}kdGFui|NQk1#!DX@ zZsROPZ=Y#yvaDg@?Ity0|g`NsI$n43Bge(=pn6;$&!!k_=JP= z1Q}vP=1;(YtdW$(elBR-|99L09V`O5H&*Y9E$bD00^8RAULFxc00@ zM&_7cx6D|Kh$!=JP;Afr1UrJCb}j;q86VR@iY|bZkDpei>ap(v&R3~j?)RPdBsQVp zs<*q#;jIn_a%hb?SorDagH{9og1|fdB;6tmga{hqRyTfFR%2E*x-eJjQGe$9u`w+D zbFq+lQ>*~RemxMdtDqJneg9N7@0O&Qh8~cRv=6FZv!)8HK8W)t+~#LvFk|-b&Wiax zM_I$p{oFQB<~MjwK2==SIoQ)++*zGgxv1?xB@mScOy^b)<`}9(_%fBKt)&+Gw&O9v z+=z&gfbh=k?d37n1wvwmO#08xT!Hp+#d!Cn&AC`qEd@{VSlF@-^oJbTwV=HxIfYz% zV6lOzHJpWNHkhU2u%KE(>hcTxy3clI^>|tS4p$0Raj!@1^`bgSYvgCm0=Rtk%8#xb za4qU#j_8F2L)!PjJ+s2j^}u60AJIbVBZzVFj_!kh5tg|P&o+l!dVk3gHCkEnc13&gKC+t!3Ae`l+K^gbI09mWVg@7<7MbX^fK-Cwxnj+zD9hZ>L zV?}BnNb3{V9C;?xD8=mA1ptFF?I&j8vcl}fe9=-+0Y70e!|LiavWxFa@0xg^6#3Bd z7-PT72#|qmdaO#sb;Z1=*bNMpKh0DhM5kQVmZTE7n;53Npukyy*?SWJx?IyuwR+sI z-k8Udcf_Rdkx}BOn~pE@a7pWa4)>ZO@T$-cjIO4((=u92GfY>M0u?T*v!C7=c!PZp z%Leq)3m#|S9m>N3)CgRc>r98Rx#A&Wvl9y8b;VSW?v|pP@IX~pz^Zep;C}frDwpqY zty7E%JoIF*+kV-@|6<)Y<$}SCF6X%JfU}{+atswLNzw7lUAe!1-6fhgd+^fakpKv| zp2+CiTM`et%`G5?2@6;n)?zZORPvF|Uw6QrG^Hm1kREkEVf-kH3nMH29>a-#!*_Vg z_P7V|t_O)H6?(8e<&SN#4VM5Mshd$~J0R{B^_a@sNvX=B+mG<04!v5|J+YbOXZQ2Inkz#eN)c^|8Hw8mAwZc4J>R9@6C$ai2L0><*87 zGHE5P^1%&KbKAhR!yU5F7j(Z*otImViDH^DwMS#>GNdL}E39(VMo+ z;b6(hUsEfaN$~h6;ZJDV!n!RxH)i&D9fy%lp5xvLcM93;SGxE0Y2zJ9VCKs^WHEqp5%VC>1W!Ua=wK+lKoH^QKn?Tcf zQ}k-qG2f2uHu*LK4>6J%o(>sBeXdx6t}|o#YbE!e(AVEA=65BCJX@q$knroW{g!S& zJ3jA3mD>~B_hpQ14+V=uK->s8Iz@g3`&}1DXRNFE{?zXwf@Hn z`yUT%g9feuul_gEV&K0iA0pzjUOPCrSFwONTF&t=^PD&A1>4TO@DMG5)XZT{nwOwB*IFhG&U0T!1IO8N%q8#)|l*rg3r9)J!!6B zedh0+uYbJjfAJ-MwD7o2f8OeU6#XqtOxXW>A=hykSzW?RPmeW^T$)I_!sT>8`dH)SK&Fsjh}ms+#vWXA~Ma8sG1PrsGRt3 z4a5!ReK2)}B>prSIm5KLti(UDF;l^{aO~h-cVyS(+#d+%4N1|*&iAuQs zGvXgF?BD!x{>sg`h7;zmB1S=foW*6=1iHc2$|p4-_T|Og2NE4IBg9q?#odYS?x}x? z;Q%&vqMa#wr>xY*`_dD7Z8nz}{GDnJ12p*ugZvWixzb_Qe12ZY$Q^m%*_b9!Pjemc&!}9M@aG7Z<-mI&rvFiC z>OS=QInhtvha@ce^OxgcY+>QtjGAVIMS-Vx3)bqFu_qO&GAK8sTtjXt^G`+vw``SR zrKOF0(RontMD=%k-bnRY8iBi{?W}g}`jXs{nJlf3^*qrsBtnG)=ekG5!C3y)d@E#^Qg@^Y_=Boo(=iW~UpV<#7 zKe>abhVwXsZl&+FiSI9734f*P{2%`x;ZPK6zpmSI#*;r)=_6(e8b0dcL>d54v((S< z_Rr;xt9m`jarO!@17rUxmh~CcYi*|P$K}ui=bpvIErfsaxN6nRc&Hrsq-g#SDZW9% z3sCUJ4I)1&Hql%83t=LZ(6n+}1NdE!j|Xp^!Uqm4f?2X*J! z_skNoDZfE~S7~Ll_!RJy9VDqx$pC%wjkm;<6`C!F@(_QLS#O|g^2hqqU)K%cXikB= zBgCk)!)^#3Ltrfa4vyaGf{ziOuqu;AYl;OrmaPR?C%y4rKb0R3AVa2+fu;%OEWC35 zW^PA0)@{NzNbe~vTZRX^LggL`cua2LKt4-TdK)6Qky?ami9ew6Dfw)||G#(53B(4a zu}=uMczX+5`(_t-yB11=r?kF(uD&!xDfc1xOe^$8eAd(0DKd4Sx4s_fvxZi2G3)>E zYc7m=0e-&!aDoqFUu;7`4m=Aswur6rHco7R`lZ1uwGN=q-T?0X8@>lq_{ogulS#xy zCH^sz7AC*ItK{F-14jHtvdSoOo(I1hS(~<-+J>qOVDUR(B zch&!+{{QE1I10eU>gIisb|F2#-b}vtGcu z2>w>8v)7mK#$RN`3@S3?VJ+xlD+e|}>TU<;DPu?~MYSvbF_8V$kM1^6P?J%htzS0M zV8}LGR_HX}fld#>?5#6a_MBbQecnUcJ)lUnPwa%w!$*8-2lohF-{6<4E3`>f-h*p{ zKv#W_qTMk;h2afXgLW*KJcS3m^v4XH4H+wBe*L3eE?qE#Udy$vCL zc^*Y2L|Urf$2L);CpzpdpZbN?!ngPo6iyZG{2rd3 zIizU#i9zq9vj~p-O@IGY-mU0(j4Z6VAWF%~z1EW&5V#&L8AsBiqeYa1q(ni1SWV3M z!+7S0!S$I7r!f;c@`@nvY#cbC;PY>ub^bZIEt`+V)_&Py#XqjU#?|qrWsl$TtmV(i zorPH+{n;X;WpTJzP?(4&;qey>HiSg3xEbt}@gNk=W&gxr9aHlp|cLYL96xjp8DVn$7Jq zi$d{opqtGBthNLUA;X5NbPsxER-Mh=-+_9`AYZ#hv3wV*bW_Z=KQ}!o)=eYzFEO*j=n zB~>@5Q+mx@9<99yVE`B6&$PZTD#2yH?p~2Z>T@uA0!tgYgL!lAZQNIbCKBhD_kkd-i+Yw2B5l)?#9(c(wzxJ;{sdTAU@SEngN-W;I@=5pRiN4JOGnodyS6bh=Bjv7CaHy4gZ3b8#>7g9k z@{Ml|;04oMEl}aNl=qh_WDIx;Y<~65;&$0PE5~`Eq^!e!omE2QxxiDpXJMcqO;v{3 zV!gZWL~lS=QTkKhFTzB$ySLr5YQkg)vgY|k z?R|+F%Zh`mGi2dc!hL3poRShYi-_}zQQbup6Ahc-*5LpEdoA1tN6-d6nO9_~=z9CnM$o%RcH-gyFE;Cp0) z63?X(tEXL>Z}RrG-<(budPe0?mh~K;Ot7F?bykGFlz24)yW=^;?3}dNn`a{?EX+!J zGNR4(+UwOAm&fV{X(vieZ}3~%i%=SdvA4{s+_mlQRU`lg*tMD+!n+~)@bK_DAxx;QCM8v3Er8K1cRn9me@LGrUZKszJF_wxc4k zO*Vk8X z+sCPcccc<=TfAlKv_j;Rxf{30IGDf}yPR6&>R$XZpRIPd{Ao62ddzY2PS%_B(Z9I8 zU|Lr%=YS3uu*k@Hhr$d!F1T+*1=VC4%r1}!!CWDK*Kh7wmB4MQ9pcQdgGNFrUwRb z&G<=2fkQ`+*&JzVSEhGb?dx$C*GrAR+YtiCmdFM<+fH842)0^iC49eWjvt6*c{YhRwp|vOB(-jY>u_faNMo!fN7m(5J;U$hV ze!^kRxPdLL?B^t9LwMt6gT=R~J>l9<=g(LuskW4>_n^brt!Ij^2#;8V%sesmt+8V5 zu{;1D@I~!qtgsKCzjEcuD-)l#pz(OT&uWTv9JsSer_J!-dBJZ^jKm=2W$uzbU>sHh zasaPgWi}alYh}4Om$!)OrLL9SFpRmAl?dVGX>`1CTNLUxIE-dy?&^>; zsv*o*11t{>^)?0G?V&NSNuSx3^w@Qz-Lf;tTtvAT-BE^PLbY{4XR47_mjhd5smk?Y zkP@9Q4~5@mn?e2a$i0Oe>qyk{@mQsY4Ep+*)L576oQDjYzvoxS!Cl|VVKk_8fi7Sz z)u$Z446#~JH(Y-cBCOxa+5djG^H*EvwtaWEk115$K$VGaWhP`uXudsQt!)8f`s>`P z)LAAn?K{(29^00sx}sO#M)?sx3a*ja=_T%uAyFCR@z(tf5r@q@IuACP6bGNe|NY_2 zdzzsKRaF-PuV4oskK5?3^`&`yir>jwJO|ZJ-`P$Y^w1ofa+)5@KAyJu{j;8EXB{+; zufB()G77jS?tDthP3&7+Zu3(*)PfGmQ3^KRSay!mH7FM1RoW<)JUJMdcquJnK})n& z!g3M)XB!YJv|gsg-_MUho5gBO^Ylu~6htug?CisCpiytd=X01xj$PV>JL~ZpLWlnu&{ZQ8vq|rg(tCzk#ZBT{|cX(QDA!t z-2RL3^4Qp}p%G`mSI zOyrcgovUtfvu8=f;HSRw!FZYDw&Pt{6D|~jy6w}RJpQxjy*=8^xsvBB?!t&W2*Ww< z`r6yvmzU=BfLqFMG*!A3swZoiebtnfG`nB#T*S1r z+HV^aCONQ6UF^%0-;j%@*Q6$g0=80B?CT;nkDYk5_uA>9QLiBQs=|7hTlS}!CP;CqYC)Z zwSz3U&txtXCGK?r{E-7$ZfMNGcU-?j5~l4jQl%G7?!Ckba1&!phqp zd_ueYu^<*DYDzJ%4MhL)8u-ROV>bJm{Re+!xsDrs8ibCDHJDG4Z6XsAPiuGA)uQQG z^oFVWjiYdi7KLuk+GE%s1g3>M@pv6<>&KvET4dJ5fZ=WI=(@O)q-#AZeB{@ifz%|< z=FKcVXbyFj8RQ7+xxv%#)RNKKFxEfN=Z>aFn?cdYJ;rg9E~%!I=W7Qoo5iPEmw4 z+A(#M*uDL4Wx1v^MKVeJCZ7U3d_l~Z553=Nq(kVGjY68}*V{(;hPAh+TRDO*_VC#v zBHpcG`vFUN>` zFMZAkn%hJcLi}>$J6_*d%{5xRc>S@);0kybt%W^FZZd>Zp<2S?q+xCf(B4ek_O-B6 zh)xbGrWb~4=I$nsae|IVvFdxAy6-tT))6YT@X~jDlPk$difniJQBkX|tp)1z(LtZf zc$%&166sTiR0U03+1AuTp|h}Hdo8zYXbj|7V!E~u;{euQNj7Knw^v-UYREq-Y~h=U zYj0KT^EAbLNVEe|FZC*pIv+o70cR@ZYE>&ME2DoXS*Bosz1un)Tx{8{_q(B_*z%QZ zXeTGqTRmCZKo8>stQI0GKGT)h@^#>6@8u2P)Zkm~2c!ch>$hT`5@|fAMeVy8l*W*F zRyE`F1V8|-A*mh*fNNKhF=o0aEo;raGNDN@(dFsYyF1Xq?iI4|9Zxzn2w98yN3tp} z`Z%;(ph1FLKGFhAnBC#gV=w^ObqiJ$C|oxDLb8!wwfGt0oTR1PmqjGQdU1UM?}g{&$aU%d{p|6JS-8UL z(C?_|J$0yqxBR0TzkZk3zALpyj7`{-N{;$V4^6NTO}73TcljO8Cn3@a{tWu#SJoRM zX)0G|69b2sF?jMu72G2e{fRabJ(ghI-&S@dxsB}Y*Xr4Ru_=4LsH>r?1Z~Qq_91ri zD$6}=HKthG@uT&_c9UI~g{Fp>Y8 zq(H;&b;DCO`0rJ^8-KCtq0QL{RMjmSZdmh+nYqRm|1wW{8OeR`!NV``9^I9IK?`L& z(DS~nGOQT_8Oh(Ud~g&gJRv+g^o_G8Y+yW*wOi4fr{2p!54!k8EvsX`07uM~VO+dA(WaRt zByHykwE9X(al|!YHb;DtA(0!47j64N4);P`-!K8QkublF2T+;g8Zj{yzD1t2mMoSC zvVMWE5#Pa7r{WvZ+J9=(rs71uqZ7R$?#+%l3qJ8OQLFa}qc*F{NAl(&5iv3Tg{&Qa zd^^yTIr>)?mu~tq<0l{<&#U#NHrIN)dDk8feL%na;(* z5kAw2YoYHrgwhi2nGFNtG0CQ7LQV}!YIiO1jm&$|i$SP~_i5U$JpRyscmd3$nW^VM zk1``^aNs!ZufR~e1RU$iAeWt@;nU3lc)WqnAphQTTXGhXvWX(&SZfZlxl`urwnBeV zv!V`wkzSd--Y{68S5GhL_yPK_P8S|D400dYL@Ov1@SFR@zx8DyiVkLSOH^A#w4eNz z%MHJAmG6GFz~)2w1n#99{Q3_jkS!MXj!VwS?riMY++TM# z@+_=>zSm(#@oO9TW#cLj$7=j;-fSGp#lO#;0L8uxui7uvIb)g=R2XK4=tk`Y_HLT|#ro*0`xts6yhZ9ejP&hlOf$mo>m{-_q~7sb0&H4SW~! zDMSSKs)n&wlJ|xPX>r|D$0`Q`RaS|}x(gSa>u}Q5nP%4{X~f-6a&&%JuLV!<@N0=d z13!wyi@0j_CRssc=ZKKAkJrTx@2%dc>RFNwUmV{zf$^;rNO7hAcxplnUFS-G0A^iD ze!~C*N1otszvn`+*xHPEw1;^ThDPa&)JtqA^w=6yw_LM(9Qw&?6=F1$y1=UZQrq<5 zqeqV(#$q?{YY*0WjmiE~$hZnJ1R1P(I#$M=3 z%jJ=MtkIMNSYPc#7~ekL+ZMHzGYi&^hEeyq((mz)2u5VU{HxO^$nJi~BEz|PI7G?O z#BU?t#LT??qhXvm`4P&2z6Ynu*ac;4e+iC3`w+98{B)*%@lrHNr)un5IMT0kt0=%& z@}oWZuNgU0yPgbL_xc3R3$ElgPK0K6J3d{uNbjwMBw4vU0U0QE!$g1kNvi3>%xeRWMBu$CbdqJ2^f9%>7+g8C~@r!_8Fcc*0W9Uz=e?u)nmd#cfY za{ca~&m`Jb7swBajN8nW-4B+It)b{x=8h9M6mzW%VmW__2gx{CQdw@MJWcyYSYOxR z%2y5We)*2e!0zxdWi}QH2;2VEt}S;$IA4ZBsheXTJzBF!kwUSf)fy7-0N_6b8?drR z(EVoaFwEq$Dv_vGa8K{TKISlf*V$I$65mI#-JXqb;Wudq*-DC=HSOymRL_P+SlISx z#vSl3ph{T(q}<5FLNULPiyW)Bjkbb`NV{5hs&xZfOj5)!Gu`QUeGAAj3(aQn z+Z`ga%^)ow1~=zY*WMGfJ0hmrx^3tQuFI};|I)IgF~s5?#%daVKHn5_CQj7l!=1Y= zu&-AUQg5}yQERpxhBHsxEWiwDj~V0p_j_+KGYTRb*B}Bra*OnHDBysAcmghT(~y z>5se@b=*$DmY&mF;pokZw5hmTzM@;w?+uV%nt`L|7!zi}82dRO`tS*QeVYr5M3Ss-ID zWVb09rKk$VjpMHpv(g(q38bRnO8+Fk1HJ$%(LTH~Pwu|x7#ui6r?B0R>sWE{VgjXm zKffIhQ1_*ojE^L!s$m_mdn_>0Lt1kQYVe6EYtkShJ94ReaQ_KzV7|GnBT9G^hL4%QszMh^Pu16B z#GDH+9~;fqDZW#vs`wWc-JuV2NbP#XGlE%>uyPcYgMp4%X_=f4i#pS6--otybNj1F zv=R@VbW21)anWrr;l9mV@)6@euH;VyA*_W_YVI(Iom@t1t(sCm;d%2^JytjA`1Q0d z>|)V)$z_8RwLjb-D2V&60%Uck(4e+RPG+i@>21339v4Ol&oA*0to4)dui3bWhd-ye z&%)}vC9-u0v2T%ENy*BSFTO;neB|~40tX^_DNWQ?9^_6VYa;E;Q{U%p^?W_CCC!(}E>uyX{ zB`PhQ@!L+Rq>V-hB>EWng2)0k84zEDyZ5A6)@~xq4*=@P*|Y_sBA$&iaIpQw7vQFs z(3ocC8=Phylmb(j5dP$O%KQ*guDU5VQ)44m+WCD^w%G8?+=K64*>mAeE)lK$Rw3=! z)ulY*egc^S1Hc}GllND$`H+;`g}gFq0%^Y3?Y3icXaI)+43{d6Con3?v=nUV9dr!&Irchj7ymC5P_*De{tX?0t~zjD_UNqouymrPv2XsO zFtPhns1Ml9+$MU&>BgNm^#EiBH@k8BI=sSn+Lpe?zB#OTV;OW*0(6+$~}D7`VR^J2-Kg z>;spz4SEx3T8cG1mim{9>~ECU+!`OOF?!`P8tFM{m7e{9j$}7MTeRsXYMg-kV@qYv z6fV6}TL<6yxEyRhigJE^NWrHzH`|{QX>`N`BDr@}*<60Aq|>JLx+a6_x`;;-P_<>I)|IbTR>wEsIX$tSOdC>me&}(3KlYHuphmPim*3dvje~-G(lQNK*ll zJDZ91c(EJ)f^dsWPR;zm2tJtE$TQ5J@Bs5-t(Z-Li5 z1*n8ziY#C0`|4`D@2RW6laISkFf9EE`T-BCZn=De6`JSo26i1C@m%_{y%kyh*x+Ax z8A+ugosN_RvAko~F+Ev1=Q|*o5ov36XNZd9pnQsSstsfXi{5-f8aj6!ma+Z1k7nM| z^yuZZ*Ikr(?k+W$J_Aw z3<1`X7BZK%dG9B19CobXJz)=3>QzYF9Kdo_MhGK2EUmxXQQWJfq?F$PxsM(9p)+~i zl8Xp)HS{Me1gXxmKH?|HZ+M~+YM)4)`_-qj4pOVzA2faG`ydKw+5&^B!FkFHBR!tT z6#kOly#`mnb8$Z$2#_V$Dh>6XSL$jXB|j;RmVL!V>4yxI3|w0z3T;G`nUXyN4lWPs zAue2oBsAk&Q*0YRCDB0mLJvJ|$J1~3jkwTkM#B0mnD{!EKL9&pC_6`1=0hs>_R^${ zTR#HGdeBYB`Ac^%`AeqweDCSa$ZZzBLchP@UbHub@dNLU%8~7UiR;n>AdgxKP4Ow? z81l#xOG{t6=Hz5|H5!77v6-@TA@65=QQ zjnuxEF%(@a02_}K9@LiFLZN>9^G^d501ay~-kG*F>Eq3U_P0I(Bi~>lgMZH9@q*JJ z?-`Z9M+fJlETY4NG{WTA#YrM`K7@tD;3a4Rjh* znL%~8Bi&VLR;R^*9d+bUkZQ|&R`dS-`*tXBX+`qm^C1&+1p&gW8XUh0^#<>Kfw0RR z`iG$ap}-{2>j%|unm*m}%*e+3CVSo2bqrY|J(S3p4D$KxalM?hUI-cL!{Yxc1k9qBEg7(V<`YP!RK%{QFQ7KCns%$Qyk;eY%qoa#)bDQY z?<9LE(}DDtBZ1Z$8k$Si>WAQMyIw%@`vs)pS0l5(mQZYw*`1JfJ@Gxh6->k_Xb3od zc?})i6<$reGeq6;O;+<42N%X5ICS6oG_8<}YDa<9l>A5l^7_iZ>PL2PAw_dS8q%eT zsP?PtK38}vvR%H|2XjcJ3y`c{&qw=>D*@L@1#mAv!JyJxXO~qFF4*^ktFM48cfQp! z!Yn=z<{}Lec{6^iHgNk*;lYJa!ifJS`ADQx!hHils@)6Ko_!P*QPs#c1~9I)kc0^L zX87WOwA}YG7jT^sz9If#;WDJ${E~GZgBeruHT`sM1aWtXaxV$ z7eM0M$zPB`Eur3ZeQ6z+q!l02~b9< zLy0&xFZE-P-GO|LScvX7u&`e?=7yjxw%TX8E+lT4kUFuZphx=rxhSB$4gTZZ84eJ#mdYS2ZT3d+2k!*sEh8e34h5`F8^s0=%L#_W&!49Pe1lo6%vb2}fp%Qg z$zq{biw_wnLw2IB1iXM#FRxM|)5Cf}p@*w2g)5<^OdkcHtL?y9&M-XbS{o@TtqpqHa(Z86; zh#6SyvU7|>Wd26#run2;cPg-uytei8sW>LA*W;x?;hyuYH|F&o|M9tZ9)u1eeB<5u zLsFY~Ef9DXv~qFQ4w0LfM^wn*Bn@O?Y3pI@1&qit+V*~13s3=c2rvQ^AWL-ePd%D% z0$_?(gE~s64lOEvfJ26vVEGS{vnoA~pwA(g5V@;m^BvYWWPZ%C&H~)AEJ!Tvz!Eyt<}W!g5r-K_U>_b$NlskGcNPobQGNOd z;?^MH8?2Y)vWL+`n}QwJ|4m&yqv4QY1VKnVwxdCEos6ukZ2N8q8yS#-QakiZ&b+BlfN(-;8b+o+1@I-(FEe8lCN)}t#cK!=)Z7M>s#`_d(lB9-ocE$z4(dJk2b`H#%2zd8N}XQ(N+`yV~PighA4NGwr6##75V zU6Cc|_s_lAbm~K#7Gt8v>-nd~8zd#6pS(flXrOwg<0mLDtwIV$SIZK0VMRO{QfJMA z>YKW6Q~i|Pn&9n!`(O0P5+1*Mba4Te3k8E%WJs`G-+;748mDy}L?W~-q>t|Od27)~ zXa+{A&7YuqksQ2=JZ+cxM{UOL2iCd9w;ZjvJi(|+@b6m92~`-uvxcn@S;*#UNC6%< z+Z*hU$T*C->~v!mdMX=@=W~p3 z!ZmmW@uRT!bwMm@F(f^cWB{v1Kp&aTnDWv>zEcM~;-bV7z^67#U25kVC3UYCh3WC$5H59whU@X*_j* z()c|9e#-r#I_QUg{YUKm1KJfhul;<_F$w3LmvM9n9F?myRstw8#` z-S6#&*aFHzS76cFU!i*_)|O3N5Yg9KJEqytx;KKWMsz{V%119`K2YA{6*#AJZ71Ve6A{QmfePcHTF3S3^$zNXo{J7=UA=nfKnv!t>&u-FWt)5ry!evRkV|K8 z(AA^LMx%LY#-DQl26pts4*k?^r+k!}Qv&Qn3M}k~NezK9v_R%~nUbzJT4eHDuBr_X zKs+RZZ$44@2gY-P9p-`G1CgaEJvw3Q+dXkm2J(7y3hG3$XI|edkJFO0hX}zG(9`6H z))1#Re&?Wi%gjr;Vx-RFE}@W_Y>JgD)%xS!6t%aTATSk=#5mRik|Way0{Dp(-2hlz zRx7lOXbvDk>&{qy*@X8bGctUW1@j?gP24)6;M)0;L$otAFR*xG2PGj!Q9tcX* z;Nak>!e_-p6 zU;4LxeDXPL&Td1}u-Xd?Zptn|2wDprkw!6DV}_NfR>rq;zl7M9ADR4P(mvo`F1sxe zd~GP1o4C#gnG?XomzdLCllE#rimn4PFnCGs^kVtc2M->E^j7}rIf!;J)<_1%pD439 ziHf8Vu z)*2cQfeO~&vR$i10ZJWFtBp-fYgKo{hEC9L_(Qe*fR$DUSe2PNSH$P}U`UG$h)JTm zJY_NlLB>s~O{vI&wTJ{5QApNEiH_zz=t#2hBAv1MI11mrJ!`jY&Cy!$a(RV?Rk|vG zOOS;t_bisr>)nhicz5tAjQ8jHzgTW=ZoXepQ88~QK=jx)?i~|Y01kpMk4y(i?Qo@V z()1ST#DK=uXpmgn>|#3Q!1(wbFphWUO>OP-ivTNU9Q5S){4KtjFm{iTh+9NiZ`m*h z0(9Hh+A5_L3mGK3X+WeG3rN_!3V6pvn0M+2Y^xl#Zm(at*9rO(rMqN8fe8ek-=^+Y z)W~+BF$KjjHssT9XKgL8WXY0;vSELfD$RciJqXEu96Y=N%Zr9x1Z$8*AJ8+d=~g1C z&Ma)r10zk2O&4~}CohcK2dp5{ZM!VwK5hU70QIg=ybW2&-~^C6bueDhkktMMJS-#N z35#1FFtvNJkO$fZja+^p85t%I-V{L-+mi_E`CH~S!8nHia9-H&78mLoN<>8D(H?@T zs_Hch4p+b-bpawPX9gOg%0x(L{p@`V| z8#9~W!$YeZk0>X=+Gay6jLc<2v7K4naX_o3&WQ_9x9>iY`U8|5lZnbnuH)E;b>_(epZh#oVV# z36s&+ppCsWQJiEs6#vZBMpXc8{v$625s=nW{1aAyPy|1yU&z{u*j_g&yA_-hS!Z&Xa znv+^t1@^rUpQb9fMB@V(w?$T&F!Nmpz_!<*QD$eA+7*cXXxKan_^UZGYCp_N-zs#OjQDiCnkMaQ;zKT1ln z;yYyjxeq`o7=mRtMWuDVd72qcK6$hA^`Ql-PH7I>4WHL8LxwnEPv`YxR)+KMSmlwM z^VRHKI?uM_Z_dHXK^LF3-q3jO=zJ0KA8y3bBGLWAhqOd-=Ztz;Mg==MI$Ebzok!d? z`0#)cpg!1^_3J-Lyo518ms7QmFR|#Mzap}eMA>iz?#=n#5YIeY4djqmJTg^Oe-=Q9 z=ben$Wk5vHQ{AHTo)!jX599^za8LO#cMJOG{Te1FJR3KfQv5Cn2oO2i4@Wp$n`e8A z$TCI}E-uOW81>AD=DdJ$a&n@IYV!E^t~CLP5O&hv$_@-qmkAOgVHJyp=%oj5CYkw=9b4ZrKio=wRxIdp%4!`u_HN4*~hloFM zZ?F7-Nj|#2#QxGjNo3Z)!2Oo)jg^>p2b&GUW(71f+qHV>{3m89*{*{>EBqmc>rW`< zk1z~WP<4pu>Yq?raljmBSi?!Y=3nw%{u8i&fqVWFu-{fK*#89Vw`sT#^`8a%(Sab@ zzW(24!49qAyd!a~nU=U{knK7$C$&YsXa37|V4okrZ&8>g{t4&wzxN`U)Bi``{C8jf z0uBF@uV3;*r&InvKAcVs;X7o zgpR6tG43+iGn+WdE6#LLrcw8Z{*VgG_y{3l_* zp{M_Ga$o(Y5`W)O{r^-Yu2Bh;=b}-;^$_RD5JTrzu3(|lj=b1Co96r%)W)R$7X;mP z{;MU{{+rL7eE9btuxW^e&i(8D#Xn)8CBUWH^x*dIcD4U^VZV1_6$&69i7g+PiR&T8 z_9ES${$^%+e;|-SAP=rkc0wpZNv`%cNLwy@*;>Q}XYr+F7N$0$N|K?eg=&{=jc7hi08LT$Yu^A7J_acg0Jv zva5VRv%($hTp}mH64I2w{6%xg*sM%Synle@1C>z3862_6JJ%cS z7LaLi#sT)%12#vS_yxSWeMhzr>|7eq`Xk+v*EtJsBgC?b`5)b8lR<`}w%+eM zuBb|bpl>`T?5eS+MyA66$eTZ*X2X0F0P@OpNE)vrA^>(egb1#rpm+(x^N(c1_)2ol z{()c5RRjg=sx4&I`td~k*`so*;(PJPCK&Df`?^m&^L{C)GrCdnZ~_Z}v{&#(#<(f! zp8-}?f8!%hz-FO&S6NwENCzkjyBHL<>7=a_^(9{1ewBZ{6X6(ccp)HyHDG6*2FUwZ z?E-%UY+ty$aNoPCD!)P3ix)5Q^6*gJkyziua%nC)1?r&0J(xCC+^O>ZO{v0|Z-1qx z0hmG^fG^-N>So{a@)|WVPmIhr4g>trwWZ~mPEOyd(}j>tgD(YL=Q`WJP-4oaYUIp6 z-epzT(1&H5Bg-INj_*a<`rwzVHH!J z9Fv%1+FAFxN4;xhVF1^>Nz(Xt`70p>xQB_N9oAG{t*)+qdCMNQ{t(~)G=sCqmWcvx z8xXmFYtm*8d!`Sqh>eIETQFK>YIXf?spSeg8I4VsPqCXuuV7&JlHI?5{pFsQ5APXn zU_Eni-P%j+myc}-uEvsI`fI<2CzoyA#S>e+v1TW-f_P$r9;&>#^pRJkYNRJ+B)_%l z!%)M=F{@Sw=45}fg1)YiK0&!WwWPlFGn{PlPBp|~<~ra)4lE6d>V_?f2?Pmb39Y$7 z*>CjX&vo4szs@5D*B<&=DLNv;T;(eSO$$B!9Z;Ao#%UiIIfI3qpQ0q9hQ+B zS4PdfmPLpAx|Y(=!L8GeFwM=>ID``QWLX__ia3?TxfR@9z7n0~0kGDmyFF`_71J=l zzaAdyYim34=nt$?&~SuVCh2x1*a|)-WmRpXokN2_J~n}a-9*d*8n;|;uxUU=&O(j} zai5JJCaGkJpzkgdiJ{&o6_ncgZ1V^#2R2N-Ah|8&ugJ*AM8mQGa71m`l>+{WB=lp_>+p<~lvCD5dEx46X%oVL)Y60P3w_lrmC?NuvQaWJhV}oF+ z&L8OX^-%{pXgc<0_Gfd;`Zq9ZiJD{ty|A5i;10a%T>odj{+0pXFNuB6dP@a(SZE!Z}Tai89zl zf5)OauG~0UtE$-ssIsVEb=g~ATubcq))Bk`V`JMB6w<0~)XJbChD6Redm zPJ5_HCFlstB|^S@`Qne4opYSIUMcVhE?0P{Txd>N`T5=EuRc+(lv|Y&uBxJP1fm0V zL0IvI@#Wl`^Q?s zQnJOEfmNy8?V2b{96OvvwiuyVz5oD*Ka0)h8|E#EWxXPH{tXU&C3AW;Z^JR^Y5`@D zm9v1Jxg838t6gwMLTi6KBXKx&;KYKSz=n=RJB@6v0+8`0fE%Rtsk%Mqo$Xxw2Ayz5 zX{WDm(q`gbeMb5L7hqG65&U}b(PBC2U`FFK-jPo4OeX7k@OUVMFE5#!Zzsa~w=#M05QnkiTLnp&t zAo~DX00>MzayHJNI$o{8!aZBHeUoRAfm<{X&fZcz|ADyjl#dePepx4g;%Ju4>->C6 zIs_2egNQjuU?S#jjMtW2a9$&qn#`6&yiNJIta<$t+0MmxgMEmE951|r+-9L|OXt(1 z^sTU>z#{mW2rP&}OeFX5@L8mAn$!uL)UdGV`R2Q|_4W!U-FGEhXXZ2?Gi+P{ulK;| zx4T0V9A^HTA6aDy;x8{y<5pe8Bp~x_I9z>1Ptd;Kq{(*9gzI@s8%oKmr~2@!S$?Tq z9UHffa7W@2v4|-LHvlNenFQ^X_OI7_2c0xZ`SRA6xw;Bg+B5-1R-?>=x&2+8^_1AH zV2+O$DfM*(`Kn(}}OIJpB=tWNoZ6D-daVLC$UP&bBx5;?h+i;t(f)TVgeht$yT%zyBB3 z0|f-sw0q~HrR0L4Upk8c;N+kT*z7H$ps1MZ^@O+sp2w)e35QNMXBNR8;v(2!*zS`u!+tJpE*9l?xwtYzN4Qh#T&%6DBUfL zI4^P`suEgJjOo^P4FP)ix+;KjQ`JTiReoxaM~)%_$QxUPx+C$W+jpBH)oQ{Iw=$_$ z@=zTgOrrx>$?1)0&56U@#c{&HJY|zUm$MGM5`Pata7E%E_};C=1mps8fd)R3URokc zv+wV|g=|ir;bc6LC>#I2o)ps$1;N^{->A*_M?VMx8KsXK7^>IF0ldvGUhI9=6ylqo z+^}L!Cgov*uv^(S&^Fzloe#ffCdCQQC@n3uJxIw@z2ol6nUDPAX(-r0E*GSovK(m; z8~b39+?6jBtxrsq=?Em4Z`v-ixE5$Si}HG#gaZYxz98M6rK$`~EFNqijOAHVdPH*BBkzKT zcFZTo_qNY;!9P$-85vIu-X3CyWa319bj8XbsY8&AuP zwqHpt-82LL{_uJgC4x;Q-{5BAWm(u+Jnu(Z8slFN~r)Qro zGrp(GXuo6*ttIc{k+p114sCYoM0sy^h?t<=lltDxm@dQGP}3j8Sw{y575K)E5J^Bm zY}F%1+l+&bkUw~@KHBNs9V#}mX=I?lNeY2#Ck%Qz4QoO@>nk|{7NAI}57*HReGQ)* z1-DR{?S&dU--g_{(#2a_OPhNjwpLC^o&~W^=s26`kb4>1mGd2Yy1Rc`RGm~-8Zr<# zTwFeyCk+r_YC4o&ON2pi!EQLH<`tEe zD%^c9%ilqlD>~979SWXnsC@d|QDdMOmR(2q#Tnb(4@E~uGTMFAil^n@e7Lb>^v0qY zLsf15wsx=))9;z(q+Q|>#rC6KlhJ!}-)8E*${p)g;KNLuMWXacz`Y2fiz#XlGp&0m z^VHqCOLa-(D{yccD{4hJrSLX?O6VerOiBkS7m2sC(ifT zK)r7fpvT_J2iC^sY@h3_lx&5*7^>~n`a0Id;sQszJ!8&&XHV-2mT{+d%ZgvU!eYy* z3QK3F*SjdTQ3llD+qARDXt@>QV`D#c)uOV9+cAUMHrvaYP! zbujJoP09BM=v0fXv(^7f9q!C6@)xnY%;P)vJSFznGK$rFEcz~)LNZL*C$jCdr?L9k zlY#wRxG2@s_pfhltTftL@kl{N>m>V%e~ydwN7s?7)b)jL$+i8e7*b9r>2*wYmgLY6 zZ;1N~-0D?_$5h*F6b&~xlNG|(FC=^kaF>|&{h4^;ACGLq#u&SEa=sH1@}n}FCQ>|AD5?$A z;vaB0%hXMSIVsAKJ74I!#8&p02280Ltlv7B;SAPr=n6I|uEpxu8 zMm^evr@g)ww`b?tQvw}&E15hyT-rPK;7g~a0I?n934`%_Lt%m0B?8%-E%oOn3VlaX zF=&^ZW5Y)L`89W(U8RSluk;Y7H3|=FoJP`P!5vOMEeQgKKQQwY*(To&t4j&FBkKdW zqg3a1xLMF(3A_qj$(4(82qV25qpg?5IX*-#knEsueu+|vFnRyTDgS_sbWe%EfxiCJ z9#Dfb|5hGbXGmarK*)|wNRU?v>93&}`yibC>7Q9*pJUj1v5j<}K4quZjr{d=n~MGF zul2-r4``I5sL9v1X>p9!*>l6Prpc?EpVsxpW%- zXb+~{@6V-fl=c@UIHq|jI=k=c8|cpw^M_tltAmkKYknS4Q*IFzJUNwBnB^z`rXhQB2-(3qCjJgbwwPVTUQ?3;GHUW+@&^TOJ(!a&{~S^cTSf58Hz0y5K2To0-eFzR z+=JKOX{kjw?Hjjg1YnI@&U>;oVm6(h!(uutv#IzppwHGauXQQ|vx)L~UB}uenGVr~ z7Q`j;G{m8DUPI;intjfx*1(iaEaZSeb zgp45h{>Rp67uaxCqCDqM{6jECka%sv?uxnB=kc7vk}-O6+6D-x8lmG!aHn{Ms1!p)^K28{eIl@=04GemTdP-OM&-o_U z8_W5YdNkPhLy{odCWxAG+9(+|mW)ZrGNM^HH#b*Rf2xjjoBArIgKRbTh3rc%-ez)B z@-y{P|Eo%H-yo+LFrsa6Wg554EHpUuV)kz#yW2z5qIW6C-QSqZCpXDD;2~bYfd?O^ z1}hQ{XEy`$GY{?88OU%Ln$~Ue_8EqXjb&&HD%)4=q+icSCF_KE{O`fO`8k)o9eAsK}~YIA3HxGP1GR%`9S@py^Gv z&Qr15Y~sbw9t%8v-a1x#Pu(TwNfG|;ME`3mZ2|Y8I`uBgoOE1(eXxB0RjE)mKQd-+ z4=IZS?#NFFF5?@sk_Z+2NBiSGpn7aYm<7!nzg;%8s*}7F_3Y~tIV-WQy9M{38Cg+f zHrLoTN4DInLaZQm6HU8P-fdC(+!+JR84qs84p{^#mITAO19~Av%!!hG2TKJh4TiICsMEfBcAkSTJZR zM)C$w&UG@;WvL30QBnTKsr#N?aubJ+1;dN@N09<96?G2bW~tn?VG7~yot7<;_^&-` zv8AUAcpEqynk^i@&MAvO@F>q_M7?}DT=889^uPS@KmWo(4fWJ&qt3X6mAvAS3X-eD zhE3ppWi*p(#zy;EF1J``lJ!@s6&tZ0=(jF5RyQ`Q?Cq#?Fl)34w{hLQYv;~5>+;yR(q{M4IRdE&9`P7tt=)P!r=(hvA+@$%}RY%74Br*-1;d+y=O^=xAAd?favgJ-&-?E z(5z?0GDAM3T+2ghPaRCG91kyfnzd#j0h|{DCF(td4nf;)9l>*-4-sg}gtpqJMQBN) zcah43m|6;Km3CU!WztRttej8zs%zM-FS6QvIlb}mnpQPux3-GJ=7{=a);*u!DI~Cp zISOZQev#wt?ak-_z3%y6o0t3`0h25;>xZ`?xEBUSxlyF@0Td9nIsF!xHEyu#yovs1gY<$oA z_p$`x*G?}-$z2aeWqq8LYi4;59~zL}_|CstNPK1NH8O)$`5q=6^(LM5&5zw{J6gn@ zv2^PQR9q|z>#981?bGC163`yv$%B@mMngqXKZ@2gi#hZE@`D)Ls`njca496L?yiUSuULbvItM+SoA@T+=n{zU1Y=Y^!h0&L~&PE`c0- zMBS875DtPrD2{ejMl+IPe&GgHOKVxs~h-~5;1leVYR#mpAKZ!57zhAjn>znCB)fO zMV2ZQCkfF#uR~>5E=!r_ZBG8o&pu#3Azfb?VN@h)3&>HhtE842-96t*w%%Bg?o%zD zipd^C4e_2KFkuOmZTxhIN7?c8_;qWus@`Tu79cHaW&+k-J-xPVB>o&5M#C0O8=}2Q zVa9U8EPRfz8@7oGdTLbZiuBp6oL$8OT0VWQ+~^|HQP1%rhfv+wd9JHvM-+!nnjGc8 z+U&8h4W+jlY{ED6P2KH;|2D_JXuJW|l^$3WCp>rL_uYlyxn*`*r=C1voq8uaD(b1e zpoQ3lY~LKuKH$uz3*_5$oZWMVS`enSTggx(dby8OX=jVs0Ug?HZVhMdkoZ-%W6-oK z8;|4yEiSG}T>h75Oa~0sCQ>kY26k|Wdjtvmf>pKzIuT!(nmX~|npa(E`UMJ~YE*?r zoc1{1QVcJN`a)&N(q(=xT(!3U-6QeTCGI&4c&gjg7LS(Cab5qbegd^YDT>@`n$-Z! z%m}y$s2=t`_LO@5DbGy2)~49Vz<{sD$R=IHMEC+e>FHDDQhZ*VzK+oOB_uKiRLqe% zm}~ERNu1<{&cv%SZQFAK7gj+6=q+Cu1Xo`lie5kpn_-Sr0*=oY(*=px_40l79m=+F zJ8rqcZv#a%2xvlF+TUUOouc7YWF)16Q|RLSN!35{MBRWfE8R%LZ7 z7xPLb4LlUNkj6nNtd^)8NmXAJsm^OiwOy@yYwIdPnuv^WseHud3KzECI$^in?nH*k z(-g!Q^@#pTx-X;!UnwiQZ8vKDC`eX+BOq zdup^^l)KsxRNihiNmI(6o?e>mf#2QvAQF6L`uP*}$5RJ;>x21F`;BZVYw59_oM|N$ z4~;*JX4|^Pv_Z-*KbryVA-%WeKB>=i0YOl*x!FtN#o=%WZ!teoja~LeXHLcf>bWDI+%V1;Rt<6PIExN! zu&F-x)$syeGwsfuJ5M#A-hbS5_U-O(9H^Yo^~3h%b~{+6@$L7&|G)Zc{9i7^2%&xX zLp*Vrw#kQRf?Bpn|6k;LCSkK2Nzh`xmC8x!?fQ`|+Ns>tY4X$Z zV#Jsz2(`5?;)JLUa9V|Pw0bXV%o)a;iq_Lay&pw~n&XQdzXe zs&fXbnA)@=8Y{QCrF)xBE5OegMU2x}!wYdVI*Sr_k!W`>a}{olNj-VUI;r;x3b8onH^+(@EmFIu)AXPrdZ zu47Dhoq41(k)J!_hJLm<=dJ5ShZ!}fhQeZYXQAAlh9RkyIW_N_joT1?w; z`hHwPqoVWaU47SvMm*LM);OGOiM8=pD9dwjF;y-(I;a*AZxb0=DwmLxQZ8v~bi9pZ zX$nE&$ca=a2@Imaj>_9pM1@g}RA5|JOob86=cupz_)(a~i@Eu#CVlf&5xjM5rox{3 zs@}CDE+(yKqm4%JCH@UI(sJ2qb)3Cx%8HVsPY_Ym{z3HefSG;yRY<%So<7t8oVlt0 zU#}jQQl9#PczF@3&IWzY3Le%xE-i1iy?jjlTNoLWCr|Gwbm}TiL;MdvI}0yPnzQpb zOYEhVU1`KsbEm$x06PF3lI?r;zTj{ZD(JfV(j^_{&4WR%4$==DF?t^|Wrv6|D&_Bh zK33g?cxw_>5E;b=%5?-^Utj2}?&X*9(sJlwJRZ7dZ&79BCR7fn?MnVsk|X_VP*w{d zOFc}o%2Gvvd2nYBwELJEA~Oe(Qew6YrH^#4F%hN z^LnePQDix|Da>CJpaTC!mxn~cE`gaX4JRVu(x)HcGSboJqR0gKx-GdCt=smdaTMAy zc$V*rRM6kD^~Lkl7A=N8jiYmN<_~U1<6i*zaLZ#SiLXKSHVi|>!m_ZcL(gIje`G~S zlUi&(yG~k_V~B2EDak1kBVg0iWxAw_3xps0F;;0V=UWAGh9rXH2=b@%I`pcgxv_+I z1ti-UU1WNDtMm&&5`~P7CmVGD)3=5@HZ+)KXcMD=8Ysa}pGA&7Br$AWh~hwMse4uS zk*Low=W*STfb=MXBKd_bVQHAtU{?{=TOxA$?djpu-%fud6S5+e=L6{=B23o_Bd))6 zx(d5XORrUKg?1B9wl;lf(IHyllHzK1tYOaK=pV?ARRE?q8I~+Q?b*c1Ir=hZjEF{B zN#QYSaVq3CNTHk}j-O$=; zdWfjYz)>!C!8C5km2zk3V>kJ@M?(f%*RXl-H$nx8LWvtjK%r{1jT=b31~*KgT)P>1 zpHRIV3@=$cX7r>S>Q`#+?%G+rYz2|ya1+diD~9QVfM?>T_mFsqZ}M0pYylO8U&DY@ zmA}O*HZZ9rdKTxYl&#zYc8keH8h#{Ax_FvFB(z7C5#3@iB~nK&VW2uowNv!lqm#)a zF%2X~_C@Q!cnbPoJWiq_;aLQuIt93G2B&T#Ml>bm?#`V%53UvveUr%O`-3r>gU_%{ ztII`Hb7L7uHCE76J_Msq>$5lS&EdE&nj0q{U8e0sup|*<3s(rzu*&^ChD1I9iUnF> z>v0`mAO*bFZXF~wY3(D1y);l6$4shO(BMO9z3`9U!kG8@px-hq6us9(L%SD#ca#wG z0f$fqBAW6hgkb!ppaRKiVBgL;V-Wb3%84Qh_A z!*9WJ<2_6@Jx;mR7&^9)NZoGOpPnYRD}9RBiRDmSIobu+aqLL))2EjB7)Ss_vs(+- z(+W5)xiQszN7QLT_CnYsFTBKc4i5f~n*SV=K*xFErBEId{{cT-hm`Ep00L1jB(|P?$ct~h10&-K6ErR+!`4Xaep}rccmipOlSNF5wd8&Wl@oS^b0(ZLU|Pj zC2)0hbvgl2I_ZxaND2%>jsndSM5vmHn&tdHVPiP+Swp3`-P*rFNTK;nkJ-|DF&(94<#BApfryt8pH+4wa#xgBD1s3^@|SL+Zi?lG5pmyx zMLH#DeZ#}P5|KN48Dxv-hL%1JGL~O-Ej#GdZM(&L_n2=b4@aeLk)%`7_@Gr;6RDkS z){v1eV%3^!@BjH*O2h5~8#U2}j1k_U8T)GZ5U5>T``nY<|Dy*C4r0mHs{h?xv~L+x zjax`5X$~>;AIE30V8(tTinIMM+!?YnN?xa33p*r&WdqDJ0^DePNJApS=5g@E+j!{( z&-N3uu?u|^CQP28b%E{17%U1jER5=$b71ux+N8E>L`QeVA<0cYanU>WHF|3Aw&lhtgc3OgGx<=N>$v^k6mtw-Xnkr# zl#ZUVNAyoH&RjV)Vo*8uBD~!FJa?ge$D&Ov&+6NFtJ&AhYT&`iMr)|AF)ZP~TE#G+(OQgj1S`%i%XRy(Rd{omjiUBem_ z`WgA>J#~J{2YpjgQW9cfVpa=Rhozg5Mx&6U8kQBbXGBQ*78xadBF6bzj>0x?aS<8< zwT}Q+IkL12X`6D{3Vvl_jeaz@s5?ny-*5tK7`jGSj?~NtB5!Jxlmep{E{T)$8b#bZ zJ4PfE_L6QkFdFg8_Saem%N{l}GwX4PRH!sSmy#sGJYT?Og$^${`4go-n=CEpi<%PX z|Iza^{4XC`$fOjV+Zah=vm5fmM{eLiV{&=tUW$G!8@8r8bR|jrMdpS$rkus@hi4Ma zImiIRoYy;q4eaT$1l5g!bE7*>YDoBi<)!suCZybDnBzBQAQu~k?aM+!Y_vR=#SMGU zE3+}gjFiWn1#dJ%sV&Wd)KCeIylf3UpGg|b-Pb-jO2kaqwAaNc!wu^nEuQgh=Ab+^ zTcL5SbwWX$0ZQSl3rVsJ$`GJajDkqFh@kE3QBb9Wv^sS14n{}@%W`pP2oFZebA=Cj z)OOkr^J;GwAw@@EH?4*^;J~gT*+~UX{0A&w0{WKxJB_5q&Dei{>Vy}rI)7ERu;E^Cp+x6>%}!3{E8cb2aeauR!0!??Uj zej`bg@RilDl#8l(NSby8G1!kC7#KL7-ms8BC3|1%!xOWW5ExTnty}Q=$;y$mJ3k4V z*z4-Pw%d2=i6HTFC}=VR7VO=;c=^qwCHNqb-@dpL)1kn@f5kIN?~w`i*9oFd7^QwH$T*0>&7hn^ihbb7^zU9r!trL}x z!c=g}c|Fn|X$~{*)eCbrk#cYT^ zcJbMb7IpPR3?+ZZ?O0Q4N;Xj=tC#j<6pC!C=sg{RWy4l^wOtX4t0s-ng8n-5F@6q1 zFf+gN1Y*o;t%n;i&>0n0CL4A;ZcB4mMr`yQ4{)g2KY>x7y5hx}S0q{Y{MKd27vD>rsv*Q^?$6 z#XZ@&8Z*K39&#CdRD4>~i#=*sKqEJEzv6mjuHOqi;2YlC9}p1y62 zl{Tc=j1+K#H}+NE-91TR;y=W^UJRMjd*?gO-V{EsQfnRWrb&WK;m#l(X5WUidr2bM z-+zqTfb3pyh*Yb!R##yl#lgZWgBNEFl&$mxvO~{gb$2wA80t@Es7O^UG@_3A#*R?(@@i@x~Kb6K-NYB6mLT16` z-XfG}<}pQ>xo;lIT7U#fFp?+b%<$L{8O-_qHP!Nx>^#9JnAtx0H{rF^A-$C5ot<%Y z^@zBSjoXbr=8@$*+t;Q91JI z>Yz%2J$s(HGq6yz@#LZM77`*$?=8Jf4sE*Nn9hAo6AV(Q3c!L^99v1!De%XI-nhED z({HlOI81~k&~DmFrHW#R*#UR1voAxfAs|zGIaAy5BSIvw0Y+jkUWA;~lOU;4nsJ>7 zIcTWk%7%RwXBgBrCn4~TS%yBl^Ety-k{s6w3Su-+i`h-=9UVo%CIt)I+oQZsy_u6I zr>+S508|C*@^F%K!s9NRuVSFeHoA;{s9&5o!I`GcJY%EnUicsbKFA?RGWJ(EK0% z;ex{eR);VWh^3mX5A@hnq<|pxQnu`AT0gdCO1UEXTXAm(}!{jBDyl5(-Nw5eDQGV#Nf_~Vk=z*ZS6hYNztw=91oIzN4tUTBjq8$2Wcy$B zLwO3;pfO0)TCclROzb)pgf9bKaR%O9Qlu!7adw7V0=O~H(tC&-0#M@sCKY?2(R!F{ zf7%s5PdFy^y8MTG{n?vh{ULblI}%J%q>Vgq2_5BL(c}j#a3&rK>>fa=vz-}NdgjB# z+<+Knmu%&Ung91(xiU@eLZ}+RmhG;*zQ_&g+q~rrewM-e@rE@xkdQg(Y3w*fe@34l zzd7#RZIEDFwaU|hg-;Ct6(A!FX;GGKEDt_k^lIGECe|i2=+5iX=u|k6LIRV~i$SLTrA};e76+-64QY5JbK$S)+=XMaXiC z2(rWD?cE(s2e@sI*}j%kyJ^|_F{O2MC9~jdz;L|z)TruSzS!7scbs>6#He*TGhSKx zzQB#A#x?%i(%N4nShZF6Sbh=w6?2RWp+fv{jrNDMOzQ}-2Qp(f5r08Ab7)dzeeW<* zzbo^uV_TmiH?x3=MhO}8Z#3;=9h4CJ z`&E*I_(M)HJG3sGP*I5(3-EkcrfzOx^RBCiSRg@AX)%tVxtfzsntg%gQ~^=2v$p$+ zQ~wqHe0~Kc0TZ^72B%SN&EvT_2gO+S8@U@sl^D}uG1vvc5efkUfVQ*oHwz=PT9Vl$bUsr$k# zg@&ZBfIKC@@|-}5R4%}tg}cgQU&O>JU=r96Zk##N8)ev*IW`()*trC@xLJ+DZB*N} z8QMh+ymT5VbK+Nw6mWvB|i9%N`0lQw$N}05SW5ZT+-jPr(lM63-_VnG~ zFXD`0*}l!>V;6CN>*KzF4y})2lu4Q+_K~<}ue~YSI6&BDyJ6+i$QFKa4<=pY%#S=p zD^wD{_9H5@{Zm%>S3zcEA*!ELXb!7W8eyRR)~R?vM6K5&vD;z7bc-y9KD68A;Oq?& z?A66|1~;zaG=4(LG{=!^5U8MxKT}H!AJZ@nYh!DZx+vCDEaxZH=gTJ2&*NiJ?4K}R8L~jl38~wWH^8x$n{Q*>GSVj(B%Xm~{FILE|LPE)q0%kPr*)mG# zj4PiSS{%6YXk@4_)TkxNxTgBSm6A}kp^CDoC>_Cjel2YZnf3h9x?fNAoXQ+gbsYE- zE@U$I&aRoPugp~pi-6i8?G=9eas9)?_WO=Lx#BKfYmN34zZQFifAk5Kd8V&TN&A$f zfS;g`K3iJ+_(T$}&!MKT$G!!TSt~>He4TrMChO<;F z_g`#|O5N5{ot~;+88G}h;9Es~Ft>y5AVF-Dkf4?8d6Kql~JQO-dPB$bH~$lNIYFW+*^Ssd*g%l{0j@i1;DY zNj__F0*uC}wO|bsFgj zD>LcpOK)=slQXe#zCM<%K78O=`wMbKyiT76@NJXyShuvC^Ub8qnZ5d%UdT?Z1dHZU z%cI4lMSwmMShCgX5OOYC!+l30+#~edJKDeJ5HdFY6BB(Rm`tdOS!g$nIk9z%pWYwH zl(kQ)vWtK$grj4IUDlX>Y+Bk!xl~hKbHwU{YZE%un#wKG`HExHi);?E;ZUc+P`T6v zol<5_-S5PU=wK~)H*V3YAk7?)U{~%80WBr3>h{aKg6`fOHLKH9Lw3a!J-@hgeDCtM z%;C=NM`DAIno6P_Ekbn@gsldYQ}JFk{FlS3k$|Znk-Nq989E`EDSGFSvD;upZW1e zVn802W!QxL6mAiw=V)nZAza*=HU_IxZ)+)i8X+O8W3Uq%s-9{z&(=`YOx4c%vFuU( z&xZpyC?RdUoJF3j7ZfJRGUo^Ea|oAL89iS5D~=uLA-PR4X=(SNwEsXqTp|2$q4k3x zL1Js=*rQya{clxU=l)U!10(1GYVmI2iVWHQo$$5*n$+RQkV)-R2`W>nt7Wf87A-|hK0=^ zKmY)XAGE*XZHeIjL)uqIMcH=mDj^6eDy1ML1|guJpfuP)Nhyt#$j}`Fj)5du^V9hIXZh<5805mfS6U{CxNrL<{_Fc7G1iFpKkZU~>gS$ZSE(;{OFB7fxi{{5)GP6`9x zKV4HkPMOHqTO{_8*OIiU;$DD;`7ha{yfWJ50%&Y^bugzh10IQJuH zuZBOQ=P|n(pT@U=Q453;&B3EpYJbUFyO?3Bh9QhAs!{IT_9a_;R6!#9+E0(RsjLOUNd zYcq6uT%SJ-*K{qUo?EY7wopvn{=*p|qlEWZKj+;xul*nK0i?8O#LNqRX3)@nnR%)F z!OSZ|C(>NkNF=BG11DVzOiwM}S#$AEcgOEDkfd#J2Qzp;kX_s8bCA&=yLkV<`YwLe zX+#PwN`J8t>Obl@@kaPuwU(tnJQBYjntK1lMcE-2jyu1kv+bZ8S#3;Yp;`3yx5!`L z3{wHJ9Kj7*1!j7#{6zvA*i!>-gZkAx$SzxPLBo36w?UtN3eZSyQD^(2!vBaFm`4<^ z$?IsRG`4-O12_bsS8=gci|K#t;eS8o|Mj0(xsiqz4j!^Pn4Uy4r|G-hRXZ(3X2c;Z z?JtuZ729j}zZ7IBsQtB|e^yN}f;R37NOT88e;FRVpj`cHDvj{oixajmEsg(W~ok^>Ysk8 zLn8kmYJqrOLIX(1JN$azb|2(cNY(UNfm*F!??G0DtS*Q{DQ>mFtgYX9Fb0`3neVl= zxd`&g1?=KGA%O?fr2P{-KZd;Nl90)WpS%R0=E9x-i?hy^64+4z>q(cGkpFm1f4`ah zeStLBi@XM58!BgL)(aD-+xDtd#lt41VvHUlD8)&~RBSF~C6C9t3u4zgvlK-{MCi+3 z4=a$6=_kX!9EuV8o~{UC<0}>%OCUR`7=2Bw-$Au>Bv7KQ+bk}|bDr5Nhke%Hx9SS* zM-F=#n3u|5bEU=pap2bHxQ**;IUMUbVQzHPdu|RPOok>|t&u;>SxgS{TzoUh>^aQb z7A~OuY$OxQl( z13JGcl01r>vv@>J0#!*veD4;bH(l;Zk&oxVjMN1s19#%^RiLP&#&*P)%yWzACG(4F z6r0yU?E$OEP^4L`x#Z$2SxrpHNu?wh4WF>-`V;8Wle)+>Z-hs6t6?2zneVyZn<`0K zY&RcoipfxX&#nBlN@(k+5ObT-i6E_p@-1^KE1T^jiH@>D&jw)a@ihm0MJmSyD}#I!WS`ueL6m zDO?jiTD%5Q)-7a=FG3FE-(4=NeK=n{1Y)ito%D)<6lb9Y70aT4O}m0v2F;;n2^WN| zgMsv~IeO?Pt`E`2tz23|xV*4J=K)u&p{?QwU_-gP0e`n}nl%gS!k&C=`B43^y4Yti;i@4aTD zVX-EwX@zdN6K6B1*7g};`9pe-(N+8m%gWc8)OGIfJY!tmzi>KMXhiK>*;fcWZL|Gl zb>>>+&7+Hx?Mrz5@?A!>#0}f>eIvHhM(&%duLpGF|^0CO7|CZHE3 z;WV9MJ^$LDL%w7>_bW0VUE&7|u3fIdTIc4*I1?0(Zq5yUf4iplnVt?cN!I7BMjQPF zS!MY#;AZSBkt2+ak83&}@Y0UkLZdy*K7;3zlv)dIsQ*1l{{Alw(t)E1`Y`kC;e1+F zg`3F<B=>rYI>Ro0%)q!0-sgm;_=`&JKmdytfS@l*vId?^W8FPEx4x2 ze27=7oXZaG?7tk&YF&N?J#ECnpZgVI+2z;Dh91%0ZV-AD6t+a0zwUuv8TOTMTKgWN zR4BpOh&vjX5AGo!%x`f1x^A?BX+dEn7Xxyz3aRPA(|Lv&2t zGf9NB{&B0mEyZ{Jjw1(!JqZ~_nQ$|k_)*jb3~^RMXW~7tS^Urc#t4c?L z3w?7`fAct&pgZ>^P1IOML?n-EB;70+$@KcoCfn&h_rJvHX)G=O5w1)5IzOV5ukw3? z*D%$Se{^R%X&pxuxIWO97QNjZd?)~_g4W_J|F!-(PqBW$0sM8W^PIIPb%-22scutK z74resi}^_qXG%@VuG1WbVO#a}WVPf%)hg?|4|_pW(s~^yjV?7IafVURvFq5cMpP`m zdjWROwTg{Vp=1bVQpm=cw6u2DcANLpFE{n%TchtPu{V3bcy@DTBq$jMv*jC^Wn_L8 z;t@73*L~_BjXOUr_LWZAzq+)YBx65ztCx50h%a-`KHTufy<&aYW7BA2e^HWEH2+VI zs6+S*h3g+e44a*sW2F$S9KDx*uEe#w0`0zO(^=8KZl=dEczFTjbxYnt7#@ETJ8dF# zGt0HnqRm2oy+@sNVH-ihzYHLx6{~PXaq;=tcCp{ic-iOi^O6pd6}{9)h;O&?F~7>z z6}SqMV_s@?4PRL?EaEctK3Oa9f`mkQ^2NtIb;SoXBt%3)?xj<|@c&Uy9p0B~a`Wqj zy>Eo&b-5edV2T}EnKiSpq<O~lNC_QM-iT)uCInqT`e z=RD1Q{{mff05Q;|@;tH6z8x9E4VW^{X>OpO*b&4o)wA?k@k7t$3e8!NI0-se`Z+fs z*nDpu*O1Czmkcb7@of3_{c}i0X>UuZ3!4|jxVs{zWgNnH+ih;~xw*<58dXEIyddM1 zl@ERzTqEyBkVrcRmo1`1_TeyU+H{JKdDY(~pdUz@Rn&qZpGB zR}aAsoNJMYG3_45@JLP!Y^fyyd7oxL<8CQGKx=P9a8@!h{*7H@pkRb)@6ipnxdE&| zlS9_)x54uuZ5FRTdeZd`rq)lS5uKVF6}hnJy+5$Et@>&ES5+R5NJFYg1ML4CF|s@- zKG7`y#z?q3a7UM3jwse=a}lk8cvmK+>mLi1e1GZCcn<$o6Fa4DQTmJ+vNSNR$klYf zK~L=&v43!*aqw2$=3=tnRPGPYYL&x*vdP3~MKIjd%S_qfb)5^MtB;|t)ROg}XY+OX zc4_K4cB)S*Si80F3R>H$`Q)78K8JN~?3#~c9BhP(qke~*|L0#Y1C(Gi6XlA=Mw$QB zD#5_NfAHc_&hivQPM1kMNLme44Ndj@+mHH3dHI(oi~swVEcA?p!1^Ruh5AX8w zKFP4n7LNqR!h6a%uV-cMrT&mN>}o zH6rH8{fTL~VZMTXuJw%Ph_w8>k@L$rpH??)JL(F&D-@5WW7VH=xGLk|LMf5<R>6+`x z;r4NT9HIxM+tOM%TS1C{2`bdJ?8ku0<0N)S_dZu{46ZggYvGh`o0Q}Ch!{u~-8Vbb zT&H2u5Ca7jF3(a{v>|v8V_0^7UwlfOJJdLRm^hhOrt5$oY(8i{MgqMra0cCtLlJ;dqBEP zJeqFZHYdj1x3Ut{b)P9%YA!3@ns<%xT2^RV!%5&3Wt`~e=;tpU{S$Zk!>aGprvwFY z-nHC^%KHb&vdqr4>Mv$&6A(YFnt;+gs7YFC<44U>%eaPW@nYLeZFT0`cz|8?l?i?4PVa*-?psH zsjTG=rOE(tpP4Z^uTH->W9G z&}mAsYt*l#%3ZN(nawkNd9ij2%rhs^6Bjvd6!kl44<~Z0R8h5Q53b>2*DQ(R6N`tt zCognO>L}5(WVeF1R&}H0YT3cLoSGHIR;zNksa|aCNC|zy&!_^2wZNs8i*&mW52h>a zA#7jMpg4gLgJH5isHuV!ey5%P_q*MUz)I{5Nh}?d-Xu33bl$mBF8JX?<6SD>p4j@e z79YE!rq-w2_d(!FK=H^yv3nGZj4EdioIO$N_t@Z)${9&vGP%&p)I5Ckf?u;KVz+d! zzle<$@9ZQvG$Dcdi*V<*La+4vunsmz;P46_HoK3I2Q6?h(r z-rUaM0NEDQt^{_wdam8PI>QMBT*l4fjICSY%jX{g)@iIydfJfM(6VW#NY{@Zi!7hOLYMh( zEz2Gc9CVxESHC2ik9i1YXcsxn+IQ!gG>NkO^;EweZF_&vTr{W;<`MYzVf_(-qJ zvZD#z;Vr1j?$H%B5KvEQ36k~dwm#umdRTEy)oaCZ&-WcrJpbV-nDUA5@WeRs|R*Wh5?1Gy;!EP!J)yPbUeeJP)=yVFVFb?JnD6bXDRAb7Ns z3WLA)mDuNrlh)@d2N$bo(aAoH=&W7+BafywY^$5(@Z+P_QH=!^MRftJ%%y%s18!eS z9SKZ5C-qr$E9qaZ>b?}Jd->UQLXW@)*s>(;ncE+{%746a3>iHSAD^%Q4T}&jZ_eF3 z)9!X98MalPe1Sh(mwS}dhqE}h-rbDo@jomQ?G9GXj68vuU7E$YwH+SSV;yg<(v^*d zYp28he37jD=1M?S1)bDl@X~a5o=z_u0tG+$hXp*woph?|!P(X5sI%tZ_Amx=v@i;% zqu*-rx!12mU$Bop3+!N1A62~Y@V4VK+CZAD#v2;}Y?Fp`t(m~_AiP!|0 zw=!!JZ!S8Ae7O*k#WjMkas~!&rygdm8U;y-z8|E`=^g*+NLpKpDQh2(`a-S|P0plT z1NP^c=$XXJe$kd^IUnvIqyD2m7&2v1L&Y3tXS2KmZ+!T!#q&qM&d3k<6;Q513rB0o zxHNjrSfJs2O!nC7!g#Nc*Xm7p^DpgZ=l9aw-^XWxOW&O;>O)rc2tzJ*P5FKNMEpUf z0hSJ#LP55gF592;1&_jHHhx?j?_el?jar5DI|B?-9S$QieXl+b-7=VsBxW6(r5bovNY|`eFiO<& zMlmhkS*7cV;kfx7?XFjog$l8f-T9YzfvGQoY@?lL+L-8&l`U<^HNq;2O38&~Y=(W* zq>+9{Wj60_xl0a_^VJs@p;OM;YJapO$PcTlRngJm#YOMyWWj)Btc|VD%Vg~vH*S>A zn>D^3-TN+wWJ|j6wv4Xu>UP5&{2X7ItPPoiiOdv@bOq3ar_QFhLt0PTq2lw?wDc`& zFxG8p>TOaes@~^uP#Z^9Z~8Qc^Np5@`nQ$U~#~E-h`QPvd4&ZmL-i36lNE3$ zU+|skE6GDvir-i#q3PL;1l@6vM3&{f;A(*kPtuww@ZS>OgD)Or8;fVJEk-l8?}Q|w64&uT`SBTU!kf(YWwowGDpIti+po(;6A9ceT|zsDp(H+(Uemg&@w zN3|SY8@8~%dTqVq_sH=V6474Z8OG(AHS65s79zH0Xp2RiF}gC;7mHr*u3AHBu-iAB zaq2No?v|rs3vKK_E&7KMj`N{xAO*wG*p!r@LFj(Fr1b~uDyzYvN51swG}-`SZ!RW7AQ$s5D=hhn`{BFYfYVh)0*WXzSyVrCnsD6o;y?nbF7e z7#?rnO&35lcv!o`b6S3S&bT}Ig41-@WAw&8?LySN{#a)ZBU7|eNV*<&sxP*tsSHaT zkQfd6LR;2epR?G7T8-nwuTG@mH8L04OG3`F;Ij1Rq*jhidm_a2IQv** z6v9Pk@a~Y|xOu031+VWF6QtVI9bM`)^EwZGxw{p##u=b6vXx{=XKy&K{c$9t{$BEs zgPq;+^^}amgfgVq!Puesl-@SFKfr1!4P@#kKZ(*we}Z(-1#Md#t|w^xu)u+%fDI2P z7+6qFI!(5H3OxUf8u*!oX%MvvWk{1sIOx2oU(md&Sw9D&R|w0=&ZbOwtv-%3BBxe5 z3lu8wSvnS)=zu~)m#*|q_zTg# zYiU{>U)`jN7k%F#gNg#0vKzD&j}i70&y@ zhj+pG=vP|`o=3Rm!?>mf8*A*6hUu<*41bQ!9x*Bp6<5~^l}!ti)zL1i8h_h}^GTLmh22B&SUU`~MO-Xgs=!L1r>cIS}k4evUX1N1a@Rbj}HkYP@_Uc1M< z;6dkeblG@;e1^S>4p$9mMAZH0JNHp{v?ti;HBT_AsxD4RH$vwq@Xm%^ zN2=v(YkI0{ZzU^gTbc4!26RN5>-{V-B1z7^AjWMKiO%Tp4J5p3|fV8Tl z8C535ubz!yWOtJK%b9!v znVFe;gSjrIr=+BinSIPWu=2d0m9zi=%10s@|aBX93%2V&k5GQhKb$g56OJE`8D z3%4+$w0z=YSz1V&mIX4N!NSYqH*f7sqB+)RYD-yW)sxRV+CO%*@7(C;ciF>`F^wQN zE4qDU*7s@vBeemAfRUxX0tUx|9Q5jm zPxr1_&QCWqSMr~fL6wNLxb>k?!g=;AdLSq3++de@!RpMW#nQY!f5V-*0-UWEvELa4 ziPFd5ayw0U9HN*|1OKUEW>puITUS_A#yg-q#m0M}O|=}nR>z{O$%=yR5lWkMiTPD* zqbY5U(u83K@j#Yy58j@o*TusoxM|+&(Oth36W-)3yOE<1Bi`x2PFTY^W>WD_B<$5n zQ_QN#bk)38lBT!r91}Nhe{&pL!MX{Qy}0k8(*_R_AAm_uv*g09Id@WmFFT*=T;(rh zcXhpTwbA-izc2NQQBoOhE;vacYM1AgOn24N^;2(WycXYZbVGC8!hnq$s+Y<)Fj7Z7*iGxH;MnlIXLgHJxn%|oJqoTwn#zdLEH9FU1ypVJ(SS)J z!?SY@K9EU($WT*ioGx(6p#+RRPF;q+CMf+(41;ufype8uY2k=prf;gUX;bv1WW%MM z_@8CqznRV`8n6pI&@n_a8aP9svE3)(e6Of^)Izhqax9);KZqtOoM+RGo9EgZ1m2$Z zoBN6BA)P@s$TD=jr{0V9m*v0J(i!BM{&VfF$kCK_GlFnOX63#5K8Yu6c!e_-TTp0bj z50at7+(5R?aP{L#6A>x1{$7VloK_`Ofx~QHH-o9tpPzjmkDZj5h|thi)gMIeGU({( z=%6lNz8rZZJm(MKBBq=%g@w0}@gp>SJpkTc*WjVebf{p-_k(3C-~6yGExYMYbioqd zi~5T71Uxu15+qaDYgHyN=Pd*jk9dlvp6e&=FKqE|5&^;_wez8oNj-cSiylkV|f=~NoGMbO{M1tSfY!-JF2Hjl6iO%e$o z68)Hk3V|W*rDcJ3IqL}*!vI6M&zadP+4Bbr%)MyJf`lUXa0GHlEMqhG3S`lSGJ@^ZrsU z^ieD`cz!Rd=rQ#9O#7pgn4?zvnU1mJm~36l#C#gJz>r~ANbpd7=+fotTzlB;71=7% zO@PjhA%1`~cVHmF7O-aVn z9w1o(QP@5W#-qhFay*Sc7D{-_u53dm#I?e(pM~iT>+*$NiahcrP{or6d5wMvJ5bo9 z6A>S8AHY8Lq6DiseT}BdbBjcb3F#`feUqoKH_mg-{C-*5nH$Q*{K{Hf#j6^NHWZq+ zG5Yh+>N___d6O_qSBjr1j(^; z?m`(_Q|e*~S2i@4w@iQxhVOQ6cy(qO?m=k3;(y3c;q_VD<*!Z`fkTZcyOV!kC2Zf} zAfHx}P^7!T2`}>6CU5*U*EV7I9yam(hEURuM)0rk^YQVu*RuXj3h{h26T|#ki#AMB zp`W&}YK#KsO@IH}HeduNBUFj1Dt_6Gps^c6O5Z!<3dg%w$aCJ$4%2Xb-r@$I5cg3;a#J>YBQvGj>%Ecj|GjLRg8lp%G_h zRQ7cRN+JdMm-3El2XVP&yJNl9@c~Hyna)E#7_0awA%? zenroHbP%63YhUX5i0qU1lulfulIKtQ_S=!q`Heklp6qq?dSy6xE_45e!@dWQ<9BmN zC-`1J0(AEa=Qr7IKDP%Q@w!cxi}4r?IaLpdILNVDcS8 z8bJlj$F06yP@t=C)fy}@^xNvaLFn?_bVrYsYOW=GcblmULbLTYTW8(POEPaoYdLCJ z%o8I;IGrAEk7qN!#(9cUb$DcrbsxTa5^x zinaKVk5K+s0$3Qu^(mhr#Jk=OBjvi<0M;n^n5(dH;Sf71GiNF8%#F~odsbA*^C7OA z+QLb3c8diJGW57;JME4gW2ncs`5xyf`&C~Alb~pnj910NexQX-i~8(tM#?rr^loOD z@BmaMQMAAcaTW!&W}ZF>Z-9bnE5(P!PlZadj#~m1b_=sKKl)Xu(m(4<&w7l6vv^&g zTc89L&%-B>Q;s`?ivtT}iW*6eU{vgK~b6s_L zcck80vE@;g=*|TgVl4Jq%PU4K@|3vHlEJfVgDvEmg+<+9l!^^F?U0J2Nnt6Qk`#^@ z)yjR7SH=tMz4wSc_VEYvFS^DvNmyLLY5D2X;z5!}o-w#gTp;Nox5|5ee!D$gI zplt3%cvmTpB)FYnU^U#}(Ch7?bWHT_V>F-C%H+@T{wr{pP;Lxfd%r7?KRx=<_BPfp zFsOzcdy$Rn*8QcOwDa%a|4pEYxjKPC0^s|Y} zrx$4WFHl*&shUZA>|aLqP8FM6zPUzN1{P#j>>wtjL3tD^Lj}LI3Gp8n-5F7X*@hQ| ziZzF^;#5m|bcb4Uf!@3W+$NUO0q?S^ku^fir|(5_RCc`KD2_*10->%uT=S*+lkW0z zKLL^uarz$fK9kW(NsrO^#|6jp=$68K$ZEaWONW9wL2j5!IQc$y3lXrHZRSeDNu&v4 zAiJQ=c#N}KLaQgb5D)rMmOXQ+lGoZ~GE!xoUuV#&L2%2XJ%=LlJh|_;lB826bUIzt z7}+}xIBaxqZHHTw9o`)p8p<&6HuB8x=n-s$F($9;92`7Rr)uK-uPyYqf0Om0hRV=z z87@W<_ogf0r!18QR~D|=cI2A7M*KLVrj8*T+hsE88qwP>i_liji2Fn<N|BZrCIAjKilB#=$r2OJbI-Mev1~V4XB*n9M{BNLosP^@T4uH$VYR z32z3tqshO!dN;k{F==~yU9Wf!sNF+dx?Ei}75Ibt3=UaU>njIGhp7PSL8h%S^aK_ok^xs*aB%HR>tHDgT!d4s$GS()6?x8{ExKzIoXA(-G8G4PV`P0 zNgV?C_Ig;AE6Yq9Uz>dT^hvMSMMXuWN22W&i~dOJeN+G;t9@W6`Ja@KhZ#7HCB0wK zoI;O=X-0GNMLPm6O5keB3{W~hOhM==Nb9$)V=FZH@Tkg4-*eT(0F8S0NI>_v_RfgR zq5D2=Q*^Tk*XZNS_f&JZ2@%=a+HR{pO>JPX=}EsUV$t^Y8KRbe-Zm=!IDe`jtLq?x zQ^qpj>^dj@r+BzSgJT++DfY$?5VDizfRdV4A!?G+*P`4k*7Zbw*&c8ew%rtR9k;$e zzGZ;|X2#%}SC?zl{ac#ukY;ogl7f3{_DM8!$G(4(ZJ>Ww4fhkIp&oFoadX7ZxaFPWvLKvMkn!m0Q@Qsm`x~60^m(_C^)h8fUq?w~%xO z#UhKF5+CCr>Px+;d-W`M9#pz2AU~MIg}Ns{@RZJ(B_45TksDaGuh}csg@_;*rxr?q zt5C4-AgB0N85hHv)D_>XTzOr`er+Lc3#FBN*TH`c%S{l}E$sqw-VD)9W}sR+JeaX* zbkRg`jqUnBtAPEooKa+9Br!+PnM17GAW$*4XjU*Ikw;XGcnv(DxG{O6-c`&b)1|ZC zgxmZ&{Yva_!^XdMr7Q*Jd;4wfJuL5T!rltCqU~Z|`mn=pR@r1!fSVKtrn;pA?Q_q^vCa0+HVwMC(ds zJr;&+=?5J=?$9Uj)skJ*w4}*ZImco0HtPjDFSBj(W}nT;uA)r>`<8 z7m!ki@_?|Qa*T)^OfbV|D)1TiIVxV-ozd)2?@~H=(Q9LbVoV5Ze&Y)RMqB4f9iV+@V{goNDi5C&j!R{YuZ>m0#QXE>Db!UoDs@ddu#R zkZA8*{dhO7+;ySFGQ?7H=pi|3<;U=^%wA?Lw>Sr9M6My^`qAyAkbkWo{OxI5!~GcA942UK$+*h8=9?KOQPF9uA+Txu?Ek z6pk6`VfSVh-}J(Ue%6N9lCR7Lm%~dC%+q!48_y-6bpmMk(8E5=H5wf4TD=JWoQD?5_jw5))RacvAAF815q~j~lVPYUfc6WMkiJ z{@I^MaU){z%Pp=+0Myr&RpoFdgan4}DrM!oS-JVk;~ntTSoLET*LemRGavrUj)7LA z-tP4E+o>i^(HC};*P0|z*&0`$ydPVNn=2&*a4cl3i#wWmGVh&(KPiut2GTqm2Lc*gb-+Z}IY_JOwA9hX@UAgMV z{xo4uIHpprlGVF5W1=)fQT+3|f==s#!PXxf^1rr=53lm=+b=slg4k@LMSVo+c|gj0_nEpDL%d%j_v7IMfY11(*v>w)3sjmy1Do@RjyqAK+Lgp z-y!f*Ci)4630dH|ev6!yKS{~HEu`vmW#5IzBo&9yv-skf0o z{`!%Z2o|`WeW`!0V%-Y5$$HBl4uL7E8w?s25NL1Y-&O1dn*#a8TEy`Y=34ydO~)5D(NO|jLQ^3^C#{BB=1atu;(0GD|I-m zyK|JV$#d*{Eo&iw1F0HNT|WgvNRgV;71F^!f7BqNySU1ZUThuE5s`8#9hm_FZ*t#@ zh+ckUCy2Eed)57mz->JMO6{7@o>|$Y%_!Xe0E&GaXmjS7EaR*5r6fGx#*`feSc-;D|o$g=) z`Qx)w>sJ%TLry5rOopwWz^_KFM{bw}+2LOX_-V>BjRGC@ zWzp);pNO(QC}7Imk7w~aaLKW5d^K-Oor-}DcKz^W9`oL^C;#(w;HHGu*{m zJDKu%Nbsjz-{bb}*~y+59!0r~9>P#TqXauG%J25wWW|`r{om$-Hg`o*i)y6gS9cUB=L*H| zSdae+P6$f%le*(HyMx&3=}=_I+qB1E(#UR^*+?S&rv2^wy^4%DEmBJ!qsdNv;@lLk*AYB6Y>z2Nva zqj`!y!yB*rNv5J<`iuudOqp4GLrnGDlAeWBv8;tx>s(IPpz)@AzpCTj z$s;YG%l8Z_ ze+Soy$@$b;R?37yc$6egrOG3=9}nP49WAyjui#b4lSE3}xArC3e2oViSoZycJh$H5bK z^Cm~X3_*{&orGpcx;_(dDow+0474Y?*Fq2DXiT0vpOGFsN=?$O$a{5c&N{a&S0gel z&NJg>SG$!}Rmd`fZ8e9`Es~6{rukIlYe^3u;17Mq`8J+JokDL>F-p07gMP^~_;d96 z3aEZ4^bs-BFC!PK{gyW9&J#vXnZSXzKSKN3) z!Iqwd0H5cpLR`+=h`xKknXPG{N0SEmR)185(8+AHoVfMM08AVCfJIz~37NjKACJiQ z2rc!u0GEc;Qj~Z>{$sg`&pDJ6ER*K%H5H*|ioXk*8hK*zBt4Z2(sPDCvZGEeHzzJGGMt{Fotp||nz_kt4S z#mNNsn6!z3@D$($%jCc4F7-rs(!Ra@`mFgq@?Cqf&D)b)qX=BIrBq4ltOh_-j3zBW z!5Wt4cRRuNhCiDG&Z=aTNwwI~qg6-3af(4-murr+E@!fi-5>Ox>XHYvSI>9e^{O=a z$~4Et>9)Tfn%7PEH8bKG<@6t<^xsDpgIv_SRdji)^0=xAfD?_|x9=e;BFoD^ zINdvTDsf^v4EKwih>srwp|gXQr167T?L#|5$f`v2{df6vls0@1i9c%Sioo;f!qq%a zUV!Ru%Qr6LSt(C^&j0k>muNos`}aeejR(qImp@Q(xM1=@0}RZ)-iBs4ly>^A%vp_{ zc{JEY_0~;&x5?w~fNjeOmcafLnl`eugAK7WDY)I(@6i(D<5bzDmCJNHQ`FPKofRJR z1JP#za4ffsr+8DS{Kq5vCK`G=K22T6FlOQMd!L@$HLmGgfy;GiSe<>&tnaLvXDyo= zS)Z@4qvp9Ik#b76w8P!Nm$31y|HP?dl3%=~7H#%xKFi%&v0U2mQtd1B*%_>jI7pR$ zr;=Hb8=CVru5;3T<95hr7W0{@pBW;RVbp2EMlO1EeVXYH0)6mq zI}YphaT;9Yw&S#dopW{7uWjQt9W$bZ(RSQ*G2Ar?mLFo1*g(hhT*fnqf$$fo-2zsH4yn=#? zW(#(`n;7(=!=%)B**xdFZ!+;y(Y^MB>%L7l8&-T}|n>nSF_e*!t-hOW~5eQS3NdB6Mcy@*I zSP(=A=u%TJgL+{4q|EAdMQ?GC8Ka)nTr=OJx!)qRMOAaZt;xO%>YUSn3h!lMm$hyT zOrp-3HXIV#FEdzO!szhJk8#o7XBiI#R<@UVhR5W)h-lwg8fv201k~QTZj3~=fJx_SaZG`5q(m0EgRB?P?Q=U$aJJG7Q)G^HxTn-Em*~*ri5tsEH5Ze?i zV$vp$IET}nOsj!1rTW6=$7l4Gb6BEi|J>+U){@pBJ!o)wClp?HLE4-?!u`d$?-vG6 z{#jC7(HkxC+0NV3jDk@rn2Y|?5<2=>&SCDHsux$;%}X_YCU`)gg)28}s6HI|9mKY~ zHW)s>V5=d7=VS~U$=;s&f_yeGXds5G;?ERTpZ8k*s*f}o9FfXZ#ai`?mjS(CxjfzN z1hS<&Cbhd;wOd73uEE6JWV|1=a5AdEgEZQm@(PZ6d=0K29#LXUOHvSHE%rwX+?p_c z&-rfeRpf1mIwkDgKl25g~=oPXa|~$PA@vh5K>D?0JWx(2o=V!=|*>sM?m15ROqGg z0zHe?IRSxGKXit@x}!Mrym`WyVn+1&cX&ZM*Qn>3Q=jR3 zwzbD-5E>lLEL%q6Y3PD(I|xpAo`X(;s?$9Ps$(!6fO1B-rlg50CgOd#&XW^_&2#8A z2c#njk-9p0=eiMoCutNa9^#b4VCehmfj52h#64;TLW@}NI~Tp3vsR%KIrXuRqlQj( zd9W^XiNvI)vosZ@#5H1QzuSUV+;r-vs%&M++VV_P$mhulB4Wh{{Q*}+Du7*^9ed+{ z!2|H!uA15KO00=Pbg--hneg6^$qdsvX5FGESfy%*o8Ko!)-Dqh@$3+j&E! z$vbEQ(tiG75z}MQ&mQG5K2O~-4hP6>xP-<=BfAi%1*>HO4LEuev!JC~LIarI(54z61xo6$9Q74y_Y($9K2AyE&q@x!?p8wy66u zs+~iH=|QXGjWb9P#DW1A!*G=Yo$ol)b1qvT<@SeMI>{do5o?QF>O9+b%6~JCi&4iDt_?vd`FlvO2pr~a_g5EjPIoZm(848U0TT_t znCM~*z*?#6WW~iU=YWc>g?Ep2l}h%EHZ#+Wy@-9-Y5DV|i{88T3ZJ<(aY%dsiUuu@t~CCk zv(Gd56Q)1vMgMpHROdhP_^o!~wXEeOLQY)9wTIiSk`>G?G?iJc!_ zmXp{`d)S$huWag^r}(%{%SPLK+OiWrdG|=g7#a6&9C&Jn9c@NM?%p0M3%(=E75wjx z?L_L2RQ`3=^sMJ+sbba%D;4G2Z{xvyIj)SgV^j3xXhf2W_y=&?eTa3N;$=N;Agi@= zq~|)^-GDf*@_~owEOnUt);9-!oLSUYwTr+X37=D&I1eCR0ME|wR2Q6{cBDsqIy*nf z8SS#v=WzrEP6h@2Z%vZ}z;q&#LlRqsA|2e>Tq-h=9Vr`*7q?*uiDyRPFtq}`c`L3noU2sA#txG&bUjEakJ zGmsaAsm^qZ;Ls@o-%fb}ddTR{!r@LF2nG*<(xnL&kb(KZB4rbuCtCBpa&L@C_dcm4w24^96^lL-} zt0`a$4e(~tpqn(_gQv)GqJ_(5E3#+&`pFn$kd@>NLm>@4&F_u3>54h@gT~m_9)=fHY*%C5o%<n(gaVF2Z|E(f zag5?*SI(P&BNyzH_G1Z{9i>EyFg3C`l5Otc*>sz^;TqrdGP_L1luU~}Aj@z`3al0# zDK9!Rb$j7H0ZVbyMwQ{FwSjJ612XimJr$d47TU!&323+@CxMQ!h4>Ltnl*we%g@Aw z@BpRBZB*-@1IFUUbwRLGW|g0Ij7bKIok+j^OJ1No3P{Vn&6%ZBsn??3*$q5KQ@s<` zd;83^xE5q;t%eSZlG6ivOU$vF<;6PV3$vp`h|(;d?9CS|)1*Y-Prl z8~6kd)tKEgcYdo?Y>baz=-iQ2CGp$XnBg#g|;|7j5mzTm}KeHeW2|Nv|bn_4ATo?7hmeS4EuPhzq>;ifQURU5p
    R^FCd_F(31{zoI!i9t6y&><_R?4btz}{*d zq3d+FWWS47`Wd6zF7xD=v3@gB>6Z!|R!WvV^8kCjTzyi@Mr#Z@^kd>SB-g2-%?}FaF%`X$7?mSck#9Y zYg^=!8z?wJ8Xq%|bh1GYO2W4mb@^dn)>7Q#3$~E5!&#~fEoknPi6TteW6Icd;%R*0 z=MK0isMmeMw}N)j-2grx$qA*3g{bb_@q*>|CJ^ZczEutsT1MGBBP5pq(566=j`fox zmCB(8;YQ${C3>B>t$GhCN9H+HN4*Ht9 z(^7hKolIr-QCMOTk(jo+V*e%V#d1j2@DJp}kCU&<|9!qgXlY@-cxBsvrQ2MjtHSHPH%V;g6!8s4euJt_65O8&!N5+HVaK)Q49 zcyrvGk63ak)}jp5+{jsO2zm(s>N`6Htf$$1%>H zUX-C!y3F06E|K_nbiCj`uFZU5J6kRzO0h2 zFCOK^OB?!FC%EX=Sc**dliR&u4ceF4AvfJ&6{ns0 zq4`pefDo7F*hX?ErUPaWD)CaN`bM`E3U6kj>H0${9zjI`hUPH>+J|IN8SQ0{i=KPz zDBXA#a6!ssh4r%RpPT938770Pk3szM>t3i&gTW<7d|zbRb!Is}7`jB>v&O5Z=)|GU z)|G2Ewa$E;1hbc^fqr5Hz%QvK4RqGTtl>2MXRfTj;*lp3tvm&^f5&l#y=rE59oxQ# zX;5Ou|FE=aB+((BT-S$+KCkPs50ZXO zvAjCV>G0`fS)lDhldHblhj>?yIe7i!?N**qw!iNT7>cj<$t!0=>sbyJvyyO=bSZR< z3kyKtGh|Hn6ND|LtxoE{U1KNLlt4Qv0G$g+vTu91>xCmxY>YN7DJDuiPI>{u515-{ePJ= zXk%LCiVXRvRYiQB>xzCw!G8Vgk`WWMIvvzf6orpNZw9px|0(WQ3CYg5v)SEI4|2|t zAK`#riYS9#$be+-rHt2L?gr<`I^l9DT#?@A_22nHHJupwI%qI2+vj_bMq2d3(L_G_ zQ(uDaKHucrih1O{`{ECyDiO$33t38;A9d-9n6pB#DjzmguA@^Fd(tS8BxPm_Ntv*c zEgsQHp#8{BoCg~NGm>Q^7GhENPN2^jmg8! zs9fZ9jCX~L@%h^Kdu>r5;Qp}_;H`s)=A_(;-oOXBdWIyESw|P}t#f*|)UllVk--L#~6&5T<$Y|9J<|Li7BHN&7b%fUjV zaTID2-I>gHTh)tJJs$c77xf$L zi!um9Tens~`FQ@S9z#Ce+Wh{+x}912e$2aGXXoimWq@^R2_=G#P?}qhgwi2uX6N9i zGZ)}7{iZG*JS~7zdQ2^9R=MScon}{h&!)ATcAS0cz8#4r(`)NL+giPbA1PCHM7o3! zO$YE;o$+hvjbgg==+*4!>{7``qSw#sD$+k)5Ta#co*k}II{g@n`#hT&F5vPPXQP1B zs8befDe8hrZn@Ag{3}++V;$dWBXEE1J2lgZF_=I5&ThwBf2vpxQB&ngRSjkfwEX+Wj%LDE^7*&tXgh(ZG=YA*m% zLj}p0CB)^@Y}=0@*>9!{q=ynzQVIlULr~F3k&r-)Dkb%|faHPCG9hwNg%0ARr_(VwEPUb?RC(G!m?$}oV<9$!Rt$!!g^*ktT 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%0AXdP+tD?!^Z`LV*_zr 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 bVjZD$7(Jn^LBM` zkx1Pe*V)a^-fDg!_wEg5*;BSe7Gk44A0bfH4tvxi8?3^<@JA5d|yRqZ|sL z0=35{@$1`8^@*J!Kc4Faa6~k$rLBe!ic8a@QIs~;A%PK`d+UqU62%JxZlAZraJpT- zE|LZ)RRjCXNBTv8kt{xk3bI>UoHXEkI$JFuAsyaYMTDSZ+mQL9Sf-DekRs?T9uK@! zQxSeMhA;HVfLzZ#93gN##*q+tDTNPQh;lhHrqttM=(x&?#a4{N)ZeGR!dwoki?`c0 z7?bjN+|G3esK;%J$J$)3O%@Dmr6Bi{_Py34ZZz3lH}N>{t~n!6mIPn5naBb)LZ6LY zP=A5`mI@!gGKez!a@^YN+!lGhC`QB3HS~CXah!@#_)Gut&e%b6Yqpx3hU|~}hwFDd zycV;+Xb}fd)SP9MhL>5#bZ5UI#jb-vCt~C-aZghcD2?m^Es`)B z2J7`$_OR!;)5NE-N*4{% z>RGS5RP8f~fXbcmnTNUd>XLx&f{3PyIG_9k@*}(G?bLuEkQe&Ix1to+=3lsfp5^R3 zthW{G>XRp~zV<$L5Udugag3us=3I=yOqtS3qaq_;tIT4-J;rGJg_ z(K1XJH|kiw**$$;S??DU!8JxCPH~gi|Bte_j*5D1+y0deTf(Fj5kyLmkWxA&q!lEG z6lrOY76cV(QMv>LL>RhLKtj4p7^FiOX@LQL=Xd{Z@AqBzv!A`*``^7>YwOH4*LB8m zd=A{8r(lo|^QP}l@J%L`O*YtNAyP-f!cCNWgoK@QAd(xjJ)z)SyND&-J5BmItXeCW zlj;y<{q{9~u1nveRJiMY=H8Y17!<46#9JyB+Gr;lG`SlTrI`8vYj0z#5KG28=~1eY zLm~)Tzs_gp#4PSuk*T``_3E)J`ZY3)%igqVExCRtHf&Kh`lVOIk_Y@dUDX6|ziYCGgorPER-#w=A5Ou4 z7Ba96NhO#^vZTuh$LxAtz#UorWk`2`WBu#5vk~$EVKR`EvR2JCrDBo|cU_G;{Odzy zo;1cPJ`{gDTLCDgzjWM`~(_Li_Dm z|1HUHE)(oVrr_>jUc7z1Ue%Y_u{V)k68nvhfDU#DR0f8~yvKXE+>j1zU<(A+?DlD} zFv$Qvu+J!|N)hT=Hn*n9F*t8OAv~`RkituEJ3(J1>q~s43i>$ZN}{Ugmt;5}y(Yv$ zcwr~#&{qgXS*MiztceLjDNVY*aL&o!uWXhJp}xRsPh+WnGHIWN=b?P9>4l4?*<$?1 zs-OY&fW)Y8ZsbNRpRE#LVy<=2WlQi#(OJwON?TS% z$DnK7!&SfVVUUvr!mwHM?ox6PD)9?YzHPwpGw5YVH?+zKdVI(uy(()@av}dn7lLFE zInjNHcwD^kuC_|1IsEqYOEs6-2h5^Xi#pBB`)O0^1n-$?dZt6b~|LflEA=Zm;rjLYf6A^Yp$ zLwEJv=ic^?Zmzn;oIik-=Y5{XF`(_tPh$5-nJr8lsn%JDQoe2I-8)8|P|-D!xVQo@ zU?(!|T?s>O++3*%v~^F(1G!KIzR^d>o|rVOb}=ouxL#aCQHT#bf_|!P@tGpF21+HKtxFjM`tws1q=*y$G++G*(N-;s8Q*e zC(&X18b~L}FaxgTT%xflp|=w_nC|BcE_pbjZut;w*Wy5Cv+D#Nm|nkt;%C1C++|ZK=hs*_l=%9~?SltW48LD%%RBUY#~ezZzV}@GhvV^|zkGn>L_hVo%;Qookrc)Hu8;EC$i8h|c>=lbw_CBK&g6iql`Qd@eY!dBKAOqQVTDb|F#~p)4jFz1}@O!S#b1j2bJptcH+DoWIx;&i%^EKvxH2{F$w27&0nn7dpi`{kz)|00*X z2-ba=!_{ENBBU4&K<{*u7^m6uT&zSvI{VhA9t8Kxlm2aaGzh+6yt)ce5>ncH=!j#rRcvn&@=vy>I zePzPsoC3Rs^Gyg419zqP^(Qxm$XRo5Zv7bLo%0@KhPmj^B=!@ka|o5l`*Q;+=S$IJ zTNk;^1(~PrV26_YY-^G#$oZD}yB~zbjp}}ATA3kQ*7Qcmg%?3ORH70iop6Db&>QST zlO+pZX;%6L?RfQ4%Q<`>zh`e9b2(zC*YHaNrB9$tBZc-6G_(Ydr_)^f_Tp};pMCSc zAq9W)> z+ogcsua;Le;y!kB3(a@IiKwJfM#Oa7G1s$i{yV3n#c=!|xdc5PdGM_Wl(u>8>aEb) zv^aoBV)9@Pgz}91YcewNgQ-K;%R87=*4Sn?5D#84NY&qdDG$g-S?h1r3cStW_Z*8I z=a)k!A4ANj;Z*C(+4kTI9rCzlt;tBrdDH07GN}RHgc^5sr}W8nTaa2=B==pCC91N@ zH5OS>x1s$>CL1<8_~&_0IfUSxeU_6Bk$B!=kGw@<1aQy~?81eyq=euS3EJlVSnO_-6X?q-jzM15? zR`ITKI-aKAHZ1(Kymdpdt0`nhM!vt1LYfj|v;&p(YbMmnA#TX}j`=cJ3KscW;_n}J zT_2?K7Jq%dR^Ve#ia>FX%P!0lJk4CNJ@cEDZcy+x;tnv!J41;9qY+}27&Mkt-*=;p z1*KD6G6oZ%t)Y5B-g*E2?bE6AsO~n&iGD$&@m7|~AJ7@aygqPqPV)K}L|B5}jtF=f zWjM><0;vC&;V6A5k-SD8^fj`09_z7`M|Za#{2$Mm6p7=02?AX9Jbd|UAO-eM?!oy? zU2$0m3#V)`c8;pPKFQ6CQb7P zyBoBPo-_&?Xnl7>UA8*;derV8dTM#O90WDrp3H3fU+KTZSf4^H>7gYo2pN9`{_CBD~}aw8yQ?t4B@7j#vz z=XP?1yks`A@TZkuSWb{BV`8m?Bmk}ie^(cbdPICDd3CNx=|TS2>*o)_Y1z3EV)}{8 zrm|}S`Wu}h_8xV=&gH7r_yI4D?|%f5vfAIiaG%?PjRQ6R3ue`)&MNv}`p7pCj9RE= zuNNw%BZh30E@5ec-Y?OiN4dV&SP5~ksNTh+PxnS+(F^m=URPezKW%3`oBXo1TtKL= zI>Vj8;Qr4WzulF8H~WjbQ(yXk-j#gc7YEvv0VL>*j5&l52CTt{9Ffy7H4zhV$Jiy< ze}^@F1y?vG1|Y62o^;C#_Y;te$CP%(Plk21yS|IiBkpvjyNP?4uN2Z>MFlM!f%WYs zDMo1kAnwyQJOvk0w`(O=ETTD4R!Bgz_pK}ADM~n6 zM)|zm5k$WhY2nPk{CyDCrozEvL#IcE7-iUKKvh}h;8HAM*+hjkmpMPO{kQ;mb09{e z9rq=e}C5dDX! z)+eAJuzgbP?0|G0H6>Ro*3rZKF&3d;p`4PoWkxG=`U~6u4_sg`^PB(;P?(&~L<;N^ znl2lDjXRY1nT z&N96v+cO+&w0m2L>D%m)=4`ovo=YEM(mu8BpsXwP6CO8F_LO{Z@4#O9SZgU3GSMSL zqqfL(OL;es9vB~Tct2wF9TgtCc9!L)y3_Y==e)Yv^ZcY_hD+GK8_DnEA#uc@#_fCN zMepym{r>>H{O)D`?>|7#j}I6{b|-)fHgRxYnW)6`XT;--RE=qU}gUQY8t^j>VEpaCZAs~1oM+`do&hq(j`C4b(8wn3K zKq#BuKcA0Zao?EOgI3I|+;Si*lI7PGtp58mf2`FV`)q>rg=LTyb>I;lL>Tgkhk!xB zXmTg#d__y3`%bSrlKsOp*s|C_oaIvR3jYM+i0b`P=$!)TsBXE4IyZq!NlK)F2)*BD z8+Oi#i;zZs^^#jt<_@@FsrQx+M!`Lg*&1m=#0phfm3Z5x?d3k~^7l+mug9)bj50M{ zP^J0ULBoii-Y*Ntr6Ybc$b2>Eh$aKnB&FF3zaNjkQ_1l$8F`x9te~5;ON`jO2+uG#QW?ykdx#AD?!*B}S5VSnj{+SX(J?A@z z8n>S3V`w*1w7{0iFVJr}n>oC49cvobd?%yds4H{6pQ~=t{qEG*BPx`0WM>H%iXo3m z-`>w1dN^h6&j;RtytC~@EQwP;KH_TwJa?|c)ag~70OpKG%OkR^0hiR!RNIUaUQ(<| z^VVZjLY8$>%8GYlKmxX6;fncv_^TD|Yr4T=D@vE{ouDE^EvdlUmj&&7WeAKu{)@|* zN&)c)fuxINar3p+d_kYamAr!us?H~^mJKGx&W=1;w*$(tL*J7sjZs{t$et;N->k3AzK_1^l`G>a0)?Mn1GPhXqHXz<7@+ zuYnWFkc?UBWm)Crw!DRd)C$xY>zZy@tj1sSewld>2Ks3JP?ih*m5KEC50PEd|Cu2B zon{2(^q*JwDo_8v)DZtVI}t_r9 zj;U|ulA*SPlGcf24z>O~aly#>ODXJx>@54FsLZe>I2}Jud%WtR+o|d*0=2cU&5nMz zIZ1r4$+q)Nf(zGQmV%;=2$g5tQUDeOt{!>6*uM;rH}u2^`~jJBvRfhQr8^S#!O_|} zSju4}qW;d8$S-&tN={T~^XmQlP-SkxwXa8Gwu)5?XvOeuhvab|iQ9JL%1NKs@e$Z}#Y29w2 zMo5W9C>dRUkSgRnF`g`q!)v=HIgg%N9T7lgjMxfB0ntbdY!w_Rg`v3@^##dA;-0g& z{Op7o;*qSJxmcI`+BtCsgyuFYYqeW4DayN==eO@HvV;OMTOAkgR#QEdbxP$>MPP1-1aWK!YF5m^de$Q|DbKhE<;7Qhhx4jzO%Z@}3vyq1FL|h9d1~^aQY);zmB3l^sk8847fZMDbwiI~0lmwO zcDYr$eO2euFU&bOe1+wc?-1y9R*EFEn2;+eO&zxOpaUY6YCq3kIpEk|aCa2Di zVl{HZRW`P2Ft146&@IyjaiW%%5+Gc1ePS#=5?7#wlNLCy+F7SxcN{>Y#&x60mum7R zugOs_>ksm?`ROH*Ap4K|HU@9ucix2EHYeMBAU0vBPvelMT_81@ld-AXB62}^?#+F# z;H9IeR`0>GLUKk*kY(x7QDm?Yg(!0CHLQ&NlJIh&>lb>EU}?}J^dPAp;fx`3l0AUX zbU+was6co)|Aa59MZ-xJGz=j_r{w0POY+W?mbl)L>MV765LxQ1?~*q>0w_jug`LBJ z3acXS6)HyR)v@BH2W8eyr*dy@7v)=jL1tWMZ%>`5V{^Q*dR(x}Y;UM^czmqzvWk%@ zs4wlkOz}sJKH2Cu57`x7GnVzFY239eV6v9anq^kJyC+M^P)x5#qx(={=poU>?y*lN zHhJZ^LTosZmp5f)vtnQ0y_PP#-F)80X7TyuVIEhb_*8<0s-m!?-$bJ;&tE*p2=SKs44~dt~U)&w<%k#epkbzmE zJK5dD15wZF_TQN*MBo67wRQA0n!_4cFSfAFdIT->n-QfPTdfnXE@RW(j*iK zf>`ByDYE9Qv`(@SyWV~A%c92t!Mkx8v9a1|Wdyxj^JASqWnq>0%a^!o;5I@a>F_yN zHRqG%Ga%o}z`zD}Vf;JF)DhX6KrO0X85hliSOj&dTyt3#bDUmTT^f&90qbcvY{bWKChhF6cAE5d%$|ZNMr! zbp_z0nFm)c4fzOdQZTYcjUTG2n~{Ozod-eILJN7$eC6&IZs!kLFjreLUb=enDSf}! zcb=Ma$h33lsRv5DW@a&tVz>}|wD57eO;#@0W-J7*6~S`!`6d;qN zx0UEZAYZAXpLRs*pfH#0SfY64AI{gqWC@=pwUY9pqgk?4>;UPlH>_#3ataUmYzpor zCDqc7=fG>0{Iih5aEVm%3>nYvisFgBV>Au(Y1Z$(+!wyXLe#_LBYJb-*cS_N-@7$K zyXg^Jfw;$8hYzGibr~N7zu+{ezFnx=RPXmksG_|7>iCT?i2}tR+L-J546#DuLDI&3u|I^+UZjPe8Ta>LV{^NTVO>4+1Jn~9 zM*=2!;z_}^t4qQkywVXxsOou75X*G!;FN+iDwSrmYp-x-=+f&m^y=D|!dO5S;}oTg zc_x1FgBJmkcH1$o3o*wiPY%0fKyAp(vM>r4U>Z^x_j4gR%#$_Fa7oj2UX>&vmZ#Ri z(9Ds&x7!iAHN3~-DkC+zPf{df7(QFL&zxB?JddF)9m$vJVo^>0L4HkD>`~1!x4d0*)g3P&adOGR7_%;l~*IPb&ajki5y|Z=i z*R6R`_YW09sv)z9d0Bs~qA%Y~ z(!5soCSps_S2-{yk;5Nsvx{$j(e5T0Z1Ur=lNS%~g!zVxVy)Zj_P|v|CCoO?elSM7 zj1rHSCo}~}HSu8BxfGM9qc-83xrCeb%)FzdpRuqB_&iGYclcU*ALls?YrpB1fX`z{ zMC-Y=!yk3YYnl0XNO6U@--1)MUjSD%_=UdsUl9>n>HQFwqwADJ;u>q~96}m3{w(B^ zKpf(z6RTaGiukL5pR|}H99nd zUMV4{VE+*Mcy~#{kAF%b`UnUR8sY*g=L}p^aSzCvqj)+@%XI%@uf4{Q)Ci-B?YJ!9t>;5xR;k0-`8Ge-G^~2|1|9v z8(X=WQ)J=qQp567wF!dcZx~1x)Lti4J{gNl-sUk#v`+We?N6!8&{odf4K7OGdji!% zz=;@qdhP}uc41Is{#KhH)@;uGd2-X^a8DnV@a@yFQaT0Fby8)=bW9s1Peh7BdP z)RlHan!|i3e(u6VHV!o7*ZGXt2P?Fla8UE4J99j^7;4+eE3}(sQh#((fAijka4R6~ z7CYyBCT`b3Bv40L>n}v$e_B@*HZ)Ey3ZL&8cMs}Qkh=15G76*~v9FWo{> z&;J6Q)-ZyvSLr>=@$GxOCvMZ_(8`ahlU<*9cRk{rw96jcl4S`20Sqz4I^e z=J3k1Yu`_fHtgR`zar`}%a{Jej!D9H^B__@)JtAJ!|n~K&1o`+AvcP{5A9nM`XoD* zH`c4}ItuO)-a);2(6A`rG`Hu{CA4xQ{Z7k$QD5&B6*HS9ns>Fvi&Z)TvCW0eQHt7H zhg)A<`Ue+4Xg1*D5Q2>B{~4s6GBx@lK{vtY#rjjv+lrj4|3o zu#MElcO|#Xap#$U^P$Vye*Z1gZA~9(QmGg_x$Ih1(mSEcWennf#w?8&DdQW~s&GcB zzNVZ==Ci!_m0=XUgK{UGqkIN*q{>(B?hc0+zDWD;1mTr$(By;ijD92XwYYACeDSAe zq%+%8N%n7x<|>-ZnCKIfVa^>P)t!A+`uT_o3muhwY97b0jR>o{qtD4Gah4I!WpogZcy3~S{a6L0e34kN5nGFEKGH+d_L70UBMil<>M$gTwQ2M<-5Rsu7~j3U{<|BI7($GHD_j?7|5wLeXIg^&Zx+DcoGMnI`pnVazduRqnAtyRAHci=!yFgNKx_wlyYlxVKu!#GnJrP@`3D|F39t2-X zg*b}vOIx$ct&ls|31jtz!?sAzrk5A4cxus#cT;So*1u%UI3W=9o+aL2k%@tpQY}tf zPVyls_KcIR7A--gzQ@vs3>caQDLgd@NH31Rf+gZi*8!McnS z)Q4>hNrW#*(hvs`@D}+I%ezbcEo5U_-1lNf*BZ;g_HUR3 z@}o`r_-g=VKl`b*+8>`ncj%an|&$^Y9#34h61{q2hRkJit zG7=jp2yi@3wWfBajcR9JgQQ+Thg-v?0bjhUV9jT`jmcX$zMCUHey4dm(UsuE{z95{ z`a-DxOH!&g7GuR9sorF`BJn^}-J3Mb%!!!|zGTTh`
    uxL>I^tjCOB(9RRETmP^) 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