From a4e6eca76e8f9d04903995ac3d0c1bb47e180067 Mon Sep 17 00:00:00 2001 From: bzanardo Date: Wed, 29 Aug 2018 14:55:01 -0400 Subject: [PATCH 01/34] hw1 --- .classpath | 1 + .../nd/se2018/homework/hwk1/Question1.java | 19 +++++++- .../nd/se2018/homework/hwk1/Question2.java | 48 ++++++++++++++++++- .../nd/se2018/homework/hwk1/Question3.java | 27 ++++++++++- 4 files changed, 92 insertions(+), 3 deletions(-) diff --git a/.classpath b/.classpath index 63b7e892..f49be442 100644 --- a/.classpath +++ b/.classpath @@ -2,5 +2,6 @@ + diff --git a/src/edu/nd/se2018/homework/hwk1/Question1.java b/src/edu/nd/se2018/homework/hwk1/Question1.java index d990b3b1..013e688e 100644 --- a/src/edu/nd/se2018/homework/hwk1/Question1.java +++ b/src/edu/nd/se2018/homework/hwk1/Question1.java @@ -1,10 +1,27 @@ package edu.nd.se2018.homework.hwk1; +import java.util.*; public class Question1 { public Question1(){} public int getSumWithoutDuplicates(int[] numbers){ - return 0; + int total = 0; + Set set = new HashSet(); + for (int i = 0; i < numbers.length; i++) { + if (!set.contains(numbers[i])) { + set.add(numbers[i]); + total += numbers[i]; + } + + } + return total; + } + + public static void main(String[] args) { + int[] nums = {3, 3, 5, 5, 2}; + Question1 getSum = new Question1(); + int result = getSum.getSumWithoutDuplicates(nums); + System.out.println("The answer is:" + result); } } diff --git a/src/edu/nd/se2018/homework/hwk1/Question2.java b/src/edu/nd/se2018/homework/hwk1/Question2.java index b04a7f86..d9f81eb3 100644 --- a/src/edu/nd/se2018/homework/hwk1/Question2.java +++ b/src/edu/nd/se2018/homework/hwk1/Question2.java @@ -1,10 +1,56 @@ package edu.nd.se2018.homework.hwk1; +import java.util.*; public class Question2 { public Question2(){} public String getMostFrequentWord(String input, String stopwords){ - return ""; + HashMap map = new HashMap<>(); + Set set = new HashSet(); + for (String stop : stopwords.split(" ")) { + if (!set.contains(stop)) { + set.add(stop); + } + } + for (String word : input.split(" ")) { + if (map.containsKey(word)) { + Integer n = map.get(word); + map.put(word, n + 1); + } + else { + if (!set.contains(word)) { + map.put(word, 1); + } + } + } + int max = 0; + String word = ""; + Boolean duplicate = false; + for (Map.Entry w : map.entrySet()) { + if (w.getValue() > max) { + max = w.getValue(); + duplicate = false; + word = w.getKey(); + } + else if (w.getValue() == max) { + duplicate = true; + } + } + if (duplicate == false) { + return word; + } + else { + return null; + } } + + public static void main(String[] args) { + String inputString2 = "giraffe elephant giraffe tiger tiger"; + String stopWords = "and a hes the of up but with"; + Question2 mostFrequentWord = new Question2(); + String result = mostFrequentWord.getMostFrequentWord(inputString2, stopWords); + System.out.println("The answer is:" + result); + } + } diff --git a/src/edu/nd/se2018/homework/hwk1/Question3.java b/src/edu/nd/se2018/homework/hwk1/Question3.java index 740d282c..3754ceeb 100644 --- a/src/edu/nd/se2018/homework/hwk1/Question3.java +++ b/src/edu/nd/se2018/homework/hwk1/Question3.java @@ -4,6 +4,31 @@ public class Question3 { public Question3(){} public int getMirrorCount(int[] numbers){ - return 0; + if (numbers.length == 0) { + return 0; + } + int count = 0; + for (int i = 0; i < numbers.length; i++) { + int num = (numbers.length) - 1 - i; + + if (numbers[i] == numbers[num]) { + count++; + } + else { + count = 0; + } + } + if (count == 0) { + return 1; + } + else { + return count; + } + } + + public static void main(String[] args) { + Question3 mirrorCount = new Question3(); + int result = mirrorCount.getMirrorCount(new int[] {1,2,3,4,5}); + System.out.println("The answer is:" + result); } } From 689481ebe0a0b83460953bf78d0257bc098f27bb Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Wed, 5 Sep 2018 21:00:44 -0400 Subject: [PATCH 02/34] junit path --- .classpath | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.classpath b/.classpath index f49be442..0e8c3848 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + From 3fd3af4aa0468f10a43f6d9b428bb34af563d6d1 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 7 Sep 2018 12:42:16 -0400 Subject: [PATCH 03/34] Test Test --- src/Hw2/s.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/Hw2/s.java diff --git a/src/Hw2/s.java b/src/Hw2/s.java new file mode 100644 index 00000000..ac78a8e3 --- /dev/null +++ b/src/Hw2/s.java @@ -0,0 +1,5 @@ +package Hw2; + +public class s { + +} From c41ee19cfe8d0faaf67f0826bd2e400a2e8653da Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 7 Sep 2018 12:45:01 -0400 Subject: [PATCH 04/34] Test2 Test2 --- src/edu/nd/se2018/homework2/problem1.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/edu/nd/se2018/homework2/problem1.java diff --git a/src/edu/nd/se2018/homework2/problem1.java b/src/edu/nd/se2018/homework2/problem1.java new file mode 100644 index 00000000..193e0e57 --- /dev/null +++ b/src/edu/nd/se2018/homework2/problem1.java @@ -0,0 +1,5 @@ +package edu.nd.se2018.homework2; + +public class problem1 { + +} From 7b17c21148804c0615c59239d4615a23fbb9368b Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 7 Sep 2018 14:59:59 -0400 Subject: [PATCH 05/34] hwk2 (not working) --- src/Hw2/s.java | 5 --- .../nd/se2018/homework/hwk2/EarlySprint.java | 20 +++++++++++ src/edu/nd/se2018/homework/hwk2/Horse.java | 33 +++++++++++++++++++ src/edu/nd/se2018/homework/hwk2/Main.java | 13 ++++++++ src/edu/nd/se2018/homework/hwk2/Race.java | 29 ++++++++++++++++ .../nd/se2018/homework/hwk2/RaceStrategy.java | 6 ++++ .../nd/se2018/homework/hwk2/SlowStart.java | 21 ++++++++++++ .../nd/se2018/homework/hwk2/SteadyRun.java | 15 +++++++++ src/edu/nd/se2018/homework2/problem1.java | 5 --- 9 files changed, 137 insertions(+), 10 deletions(-) delete mode 100644 src/Hw2/s.java create mode 100644 src/edu/nd/se2018/homework/hwk2/EarlySprint.java create mode 100644 src/edu/nd/se2018/homework/hwk2/Horse.java create mode 100644 src/edu/nd/se2018/homework/hwk2/Main.java create mode 100644 src/edu/nd/se2018/homework/hwk2/Race.java create mode 100644 src/edu/nd/se2018/homework/hwk2/RaceStrategy.java create mode 100644 src/edu/nd/se2018/homework/hwk2/SlowStart.java create mode 100644 src/edu/nd/se2018/homework/hwk2/SteadyRun.java delete mode 100644 src/edu/nd/se2018/homework2/problem1.java diff --git a/src/Hw2/s.java b/src/Hw2/s.java deleted file mode 100644 index ac78a8e3..00000000 --- a/src/Hw2/s.java +++ /dev/null @@ -1,5 +0,0 @@ -package Hw2; - -public class s { - -} diff --git a/src/edu/nd/se2018/homework/hwk2/EarlySprint.java b/src/edu/nd/se2018/homework/hwk2/EarlySprint.java new file mode 100644 index 00000000..4190fa94 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/EarlySprint.java @@ -0,0 +1,20 @@ +package edu.nd.se2018.homework.hwk2; + +public class EarlySprint implements RaceStrategy { + @Override + public double runStrategy(double position, double maxSpeed) { + double p; + if (position <= 2) { + p = position + maxSpeed; + } + else if (position < 10) { + p = position + (0.75 * maxSpeed); + } + else { + p = 10; + } + return p; + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk2/Horse.java b/src/edu/nd/se2018/homework/hwk2/Horse.java new file mode 100644 index 00000000..26a96ec0 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/Horse.java @@ -0,0 +1,33 @@ +package edu.nd.se2018.homework.hwk2; +import edu.nd.se2018.homework.hwk2.RaceStrategy; + +public class Horse { + RaceStrategy raceStrategy; + public static String name; + public static int number; + public static double position; + public static double maxSpeed; + + public Horse(RaceStrategy strategy, String n, int num, double p, double s) { + raceStrategy = strategy; + name = n; + number = num; + position = p; + maxSpeed = s; + } + + public void run() { + double p = raceStrategy.runStrategy(position, maxSpeed); + position = p; + } + + public void setStrategy(RaceStrategy strategy) { + raceStrategy = strategy; + + } + + public void display() { + System.out.println(name + " is at position: " + position); + } + +} diff --git a/src/edu/nd/se2018/homework/hwk2/Main.java b/src/edu/nd/se2018/homework/hwk2/Main.java new file mode 100644 index 00000000..8a73dd4c --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/Main.java @@ -0,0 +1,13 @@ +package edu.nd.se2018.homework.hwk2; + +public class Main { + + public static void main(String[] args) { + Race race = new Race(); + //race.enrollHorse(new SteadyRun(), "Joe", 1, 0, 1); + //race.enrollHorse(new EarlySprint(), "Mary", 2, 0, 1); + //race.run(); + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk2/Race.java b/src/edu/nd/se2018/homework/hwk2/Race.java new file mode 100644 index 00000000..3bac50fe --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/Race.java @@ -0,0 +1,29 @@ +package edu.nd.se2018.homework.hwk2; + +public class Race { + /*public static Horse[] horseArray = new Horse[5]; + public static int count = 0; + + public void enrollHorse(RaceStrategy rs, String n, int num, double p, double ms) { + horseArray[count] = new Horse(rs, n, num, p, ms); + count = count + 1; + + }*/ + + + public Race() { + Horse joe = new Horse(new SteadyRun(), "JoeTheHorse", 1, 0, 1); + Horse mary = new Horse(new EarlySprint(), "MaryTheHorse", 2, 0, 1); + for (int i = 0; i < 3; i++) { + + joe.run(); + joe.display(); + + + mary.run(); + mary.display(); + } + } + + +} diff --git a/src/edu/nd/se2018/homework/hwk2/RaceStrategy.java b/src/edu/nd/se2018/homework/hwk2/RaceStrategy.java new file mode 100644 index 00000000..d387c6ed --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/RaceStrategy.java @@ -0,0 +1,6 @@ +package edu.nd.se2018.homework.hwk2; + +public interface RaceStrategy { + public double runStrategy(double position, double maxSpeed); + +} diff --git a/src/edu/nd/se2018/homework/hwk2/SlowStart.java b/src/edu/nd/se2018/homework/hwk2/SlowStart.java new file mode 100644 index 00000000..038b7660 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/SlowStart.java @@ -0,0 +1,21 @@ +package edu.nd.se2018.homework.hwk2; + +public class SlowStart implements RaceStrategy { + public double runStrategy(double position, double maxSpeed) { + double p = position; + if (position <= 6) { + p = position + (0.75 * maxSpeed); + } + else if (position <= 1) { + p = position + (0.9 * maxSpeed); + } + else if (position < 10){ + p = position + maxSpeed; + } + else { + position = 10; + } + return p; + } + +} diff --git a/src/edu/nd/se2018/homework/hwk2/SteadyRun.java b/src/edu/nd/se2018/homework/hwk2/SteadyRun.java new file mode 100644 index 00000000..39864390 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/SteadyRun.java @@ -0,0 +1,15 @@ +package edu.nd.se2018.homework.hwk2; + +public class SteadyRun implements RaceStrategy { + public double runStrategy(double position, double maxSpeed) { + double p; + if (position < 10) { + p = position + (0.8 * maxSpeed); + } + else { + p = 10; + } + return p; + } + +} diff --git a/src/edu/nd/se2018/homework2/problem1.java b/src/edu/nd/se2018/homework2/problem1.java deleted file mode 100644 index 193e0e57..00000000 --- a/src/edu/nd/se2018/homework2/problem1.java +++ /dev/null @@ -1,5 +0,0 @@ -package edu.nd.se2018.homework2; - -public class problem1 { - -} From 424680f9865e6b863c6f8bd29d8bfdf018532c48 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 7 Sep 2018 15:49:06 -0400 Subject: [PATCH 06/34] race working --- src/edu/nd/se2018/homework/hwk2/Horse.java | 39 ++++++++++++++-------- src/edu/nd/se2018/homework/hwk2/Main.java | 10 +++--- src/edu/nd/se2018/homework/hwk2/Race.java | 30 +++++++++-------- 3 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk2/Horse.java b/src/edu/nd/se2018/homework/hwk2/Horse.java index 26a96ec0..0262cd00 100644 --- a/src/edu/nd/se2018/homework/hwk2/Horse.java +++ b/src/edu/nd/se2018/homework/hwk2/Horse.java @@ -1,33 +1,46 @@ package edu.nd.se2018.homework.hwk2; +import java.text.DecimalFormat; + import edu.nd.se2018.homework.hwk2.RaceStrategy; public class Horse { + private static DecimalFormat df2 = new DecimalFormat(".##"); + RaceStrategy raceStrategy; - public static String name; - public static int number; - public static double position; - public static double maxSpeed; + public String name; + public int number; + public double position; + public double maxSpeed; public Horse(RaceStrategy strategy, String n, int num, double p, double s) { - raceStrategy = strategy; - name = n; - number = num; - position = p; - maxSpeed = s; + this.raceStrategy = strategy; + this.name = n; + this.number = num; + this.position = p; + this.maxSpeed = s; } public void run() { - double p = raceStrategy.runStrategy(position, maxSpeed); - position = p; + double p = raceStrategy.runStrategy(this.position, this.maxSpeed); + this.position = p; } public void setStrategy(RaceStrategy strategy) { - raceStrategy = strategy; + this.raceStrategy = strategy; } + public boolean done() { + if (position >= 10) { + return true; + } + else { + return false; + } + } + public void display() { - System.out.println(name + " is at position: " + position); + System.out.println(name + " is at position: " + df2.format(position)); } } diff --git a/src/edu/nd/se2018/homework/hwk2/Main.java b/src/edu/nd/se2018/homework/hwk2/Main.java index 8a73dd4c..99918489 100644 --- a/src/edu/nd/se2018/homework/hwk2/Main.java +++ b/src/edu/nd/se2018/homework/hwk2/Main.java @@ -4,10 +4,12 @@ public class Main { public static void main(String[] args) { Race race = new Race(); - //race.enrollHorse(new SteadyRun(), "Joe", 1, 0, 1); - //race.enrollHorse(new EarlySprint(), "Mary", 2, 0, 1); - //race.run(); + race.enrollHorse(new SteadyRun(), "Joe", 1, 0, 1); + race.enrollHorse(new EarlySprint(), "Mary", 2, 0, 1); + race.enrollHorse(new SlowStart(), "Spirit", 3, 0, 1); + race.enrollHorse(new EarlySprint(), "DingDing", 4, 0, 1); + race.enrollHorse(new SlowStart(), "Kelly", 5, 0, 1); + race.run(); } - } diff --git a/src/edu/nd/se2018/homework/hwk2/Race.java b/src/edu/nd/se2018/homework/hwk2/Race.java index 3bac50fe..32f0e242 100644 --- a/src/edu/nd/se2018/homework/hwk2/Race.java +++ b/src/edu/nd/se2018/homework/hwk2/Race.java @@ -1,28 +1,32 @@ package edu.nd.se2018.homework.hwk2; public class Race { - /*public static Horse[] horseArray = new Horse[5]; + public static Horse[] horseArray = new Horse[5]; public static int count = 0; + int miles = 10; + boolean done = false; + String winner = ""; public void enrollHorse(RaceStrategy rs, String n, int num, double p, double ms) { horseArray[count] = new Horse(rs, n, num, p, ms); count = count + 1; - }*/ + } + public Race() {} - public Race() { - Horse joe = new Horse(new SteadyRun(), "JoeTheHorse", 1, 0, 1); - Horse mary = new Horse(new EarlySprint(), "MaryTheHorse", 2, 0, 1); - for (int i = 0; i < 3; i++) { - - joe.run(); - joe.display(); - - - mary.run(); - mary.display(); + public void run() { + while (!done) { + for (int i = 0; i < count; i++ ) { + horseArray[i].run(); + horseArray[i].display(); + if (horseArray[i].done()) { + winner = horseArray[i].name; + done = true; + } + } } + System.out.println("The winner is: " + winner); } From 9bfa675fe524f6b4db68e2b388386bdefe66fb50 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 7 Sep 2018 16:29:37 -0400 Subject: [PATCH 07/34] tests --- src/edu/nd/se2018/homework/hwk2/Race.java | 18 +++++----- src/edu/nd/se2018/homework/hwk2/RaceTest.java | 36 +++++++++++++++++++ 2 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk2/RaceTest.java diff --git a/src/edu/nd/se2018/homework/hwk2/Race.java b/src/edu/nd/se2018/homework/hwk2/Race.java index 32f0e242..4b5a905b 100644 --- a/src/edu/nd/se2018/homework/hwk2/Race.java +++ b/src/edu/nd/se2018/homework/hwk2/Race.java @@ -1,15 +1,15 @@ package edu.nd.se2018.homework.hwk2; public class Race { - public static Horse[] horseArray = new Horse[5]; - public static int count = 0; + public Horse[] horseArray = new Horse[5]; + public int count = 0; int miles = 10; boolean done = false; String winner = ""; public void enrollHorse(RaceStrategy rs, String n, int num, double p, double ms) { - horseArray[count] = new Horse(rs, n, num, p, ms); - count = count + 1; + this.horseArray[this.count] = new Horse(rs, n, num, p, ms); + this.count = this.count + 1; } @@ -17,11 +17,11 @@ public Race() {} public void run() { while (!done) { - for (int i = 0; i < count; i++ ) { - horseArray[i].run(); - horseArray[i].display(); - if (horseArray[i].done()) { - winner = horseArray[i].name; + for (int i = 0; i < this.count; i++ ) { + this.horseArray[i].run(); + this.horseArray[i].display(); + if (this.horseArray[i].done()) { + winner = this.horseArray[i].name; done = true; } } diff --git a/src/edu/nd/se2018/homework/hwk2/RaceTest.java b/src/edu/nd/se2018/homework/hwk2/RaceTest.java new file mode 100644 index 00000000..0f2913bb --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk2/RaceTest.java @@ -0,0 +1,36 @@ +package edu.nd.se2018.homework.hwk2; +import org.junit.Test; + +public class RaceTest { + @Test + public void test() { // Same strategies, different max speeds + Race race = new Race(); + race.enrollHorse(new SteadyRun(), "A1", 1, 0, 1); + race.enrollHorse(new SteadyRun(), "B1", 2, 0, 1.2); + race.enrollHorse(new SteadyRun(), "C1", 3, 0, 1.4); + race.run(); + assert(race.winner == "C1"); + } + + @Test + public void test2() { // Same strategies, different max speeds + Race race2 = new Race(); + race2.enrollHorse(new SteadyRun(), "A2", 1, 0, 1); + race2.enrollHorse(new EarlySprint(), "B2", 1, 0, 1); + race2.enrollHorse(new SlowStart(), "C2", 3, 0, 1); + race2.run(); + assert(race2.winner == "C2"); + } + + @Test + public void test3() { + Race race3 = new Race(); + race3.enrollHorse(new SteadyRun(), "A3", 1, 0, 2); + race3.enrollHorse(new SlowStart(), "B3", 2, 0, 1); + race3.enrollHorse(new EarlySprint(), "C3", 3, 0, 1.1); + race3.enrollHorse(new SlowStart(), "D3", 4, 0, 0.8); + race3.enrollHorse(new SteadyRun(), "E3", 5, 0, 0.9); + race3.run(); + assert(race3.winner == "A3"); + } +} From 4b5a1879f54c08ba1c96f90139ef8e1e5711ebc8 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sun, 9 Sep 2018 12:49:01 -0400 Subject: [PATCH 08/34] Add files via upload --- .../nd/se2018/homework/hwk2/HW2 Reflection.pdf | Bin 0 -> 25971 bytes src/edu/nd/se2018/homework/hwk2/HW2-uml.pdf | Bin 0 -> 40479 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk2/HW2 Reflection.pdf create mode 100644 src/edu/nd/se2018/homework/hwk2/HW2-uml.pdf diff --git a/src/edu/nd/se2018/homework/hwk2/HW2 Reflection.pdf b/src/edu/nd/se2018/homework/hwk2/HW2 Reflection.pdf new file mode 100644 index 0000000000000000000000000000000000000000..85e0037140ce1f0b5e452fe1f69b9ce2276c6b88 GIT binary patch literal 25971 zcmce+bChgPwYN+qP}nwr#sk@sw@bwyje}*YEr8?Q!qxe&fA=x-)l1#EJ~8 zIoI4dVvk%T^1`At474neBt6fCUyzLW^!Rp$mXO@s_;k`1wk8IS7M>=?_zXW5J|hbU z+fPFrUkjg=oeiIXkquu5pH2>+6`xMz=Sx|t+$Pp7VEV)_Ha#MaE&9G~UKO;HPLXA{St+S7kPl#@FIzGiG67Ffle@VP<1B zG%{jfVKy)_WHDegWH4r-XJlgK{r?`J^G^_*oE=RJY#`mUjSP)<&GZfR*&&G2Qv=mS z`2*{52RY%0*~Hmq}f6V?r5J|{?82L}N$s3rN zIQ_%yzexIb$b<}>4Xo|V{)>=U{>zO2ZTyt*nSNyWpHZg&@9_2Y^-c8kHD>^TBSfL? z0Zf>H7@!1^i&3L7(5IPhndnEOWS)0f>)3k%00Lh?kp5Tntp8w9V4^=;{Ht5^r~BXX`A2v1j&?>$CO;(D*+G4BX>_Jw}Z)ncB z$7k!aiAx(|eG;wPXZ`a{==sFCDbDxn`fTT{s-4T*_jMJ=@8!wl`K#!>`-3Nq{&d#j zXrLf`rjUwHF0avb3rlYYz^~F4`k{oO+zDuLZ|?wZVc)mU~Vg-y()-UvW??EIEEZ3s=%>JC%XYsyECe0{@*oD;zX!XQ z@#``Xb0A7jb*{E=JM`JsM*PhIq2OI3wlnJ_-he&3=APV^$PM&D5Kjsk1$K^L#& zB8zQawz%`CM*}va9;2Hk_6BRrrEDsgRk0Og-auZui)ng zB!C76VLJtd`)$r29Tj+sgAxLUAdBq$ZU0vyNC^|nl!T+H^K0Blv7NZt_SN&4du{^S z0Ky;dwSPMfD?AU~zn|^cl6PjOcz`W>47wox*Fk}?1987L`EYzbY#b#x4?93UCNUMH z#FTSqNme9vsIQQN(x0U`C4Vaf8F+dO<6q3@q0N!hK(UH3K?i8y4B+;pb^eoa8f3S; zb>~tBY#jUdU9n(wDgLF1gGafgMseCM$Mj5u7zQZPW~@a?^tb-zdq7YWB;7Tzyez$4uRgvMLIf>i>(gugQI6?me{E1Ya zrnx~)POe7}my>?SFFY~{&lSn7wW##C1y@go)pp)B>?X!K&zv_oQM z-R&mPK}xQP@X8F5_a|403+oHC{s|nK16^@2!8IoM`ifJTWTaFT )#=^Ft0)_$OS#1#pxH8V%9-;(O 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
  • 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 d;DJw6E`f{5(wrJlK_%z z0RPjtBqb!oB)BZO{>H?h$GQl=&T%>X2Lp>8oACXPk*w~ZCovL(BqH%Uj}%KX^gD@3 zh?A;3ZvXZ{$|rde151fYlT;;6@Q%eDe#b;1(o&@H_>Bh^lOkpR0~0@)kHq`44k=NR zli`V2DY0Xvk>C0tT{FoC@gzo?+dnWVl3(FTo|x3hdLiIr8HSkQwT)- zk9tYtLQ>H9J)fwk_#btMk{0C2d?X&p%kX5Zd_F~4F^G3k@B zBu7V*PvP(RNZ23ifP_i^56=aQBzYrZf0<(H+IW!GJ;`)Y2ZJH`FOsS_*5f$#%p^I% z{{3EwByIvjN`lQ%P%sz`K|#rNJnqggo&7r;y}ONL$I-g|z#B SZ6q Date: Thu, 13 Sep 2018 20:07:49 -0400 Subject: [PATCH 09/34] initial stage --- .../se2018/homework/hwk3/OceanExplorer.java | 26 +++++++++++++++++++ src/edu/nd/se2018/homework/hwk3/OceanMap.java | 5 ++++ src/edu/nd/se2018/homework/hwk3/Ship.java | 5 ++++ 3 files changed, 36 insertions(+) create mode 100644 src/edu/nd/se2018/homework/hwk3/OceanExplorer.java create mode 100644 src/edu/nd/se2018/homework/hwk3/OceanMap.java create mode 100644 src/edu/nd/se2018/homework/hwk3/Ship.java diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java new file mode 100644 index 00000000..d1438362 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -0,0 +1,26 @@ +package edu.nd.se2018.homework.hwk3; +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.layout.AnchorPane; +import javafx.stage.Stage; + +public class OceanExplorer extends Application { + AnchorPane root; + Scene scene; + + + @Override + public void start(Stage oceanStage) throws Exception { + AnchorPane root = new AnchorPane(); + Scene scene = new Scene(root, 500, 500); + oceanStage.setScene(scene); + oceanStage.setTitle("Ocean"); + oceanStage.show(); + } + + public static void main(String[] args) { + launch(args); + + + } +} diff --git a/src/edu/nd/se2018/homework/hwk3/OceanMap.java b/src/edu/nd/se2018/homework/hwk3/OceanMap.java new file mode 100644 index 00000000..1c51485c --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk3/OceanMap.java @@ -0,0 +1,5 @@ +package edu.nd.se2018.homework.hwk3; + +public class OceanMap { + +} diff --git a/src/edu/nd/se2018/homework/hwk3/Ship.java b/src/edu/nd/se2018/homework/hwk3/Ship.java new file mode 100644 index 00000000..f11460e3 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk3/Ship.java @@ -0,0 +1,5 @@ +package edu.nd.se2018.homework.hwk3; + +public class Ship { + +} From d7f06282e6167fd86c81cd6c1e52ecc6ccfd7d26 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Thu, 13 Sep 2018 21:05:28 -0400 Subject: [PATCH 10/34] progress --- .../se2018/homework/hwk3/OceanExplorer.java | 18 +++++++++++ src/edu/nd/se2018/homework/hwk3/OceanMap.java | 29 +++++++++++++++++- src/edu/nd/se2018/homework/hwk3/Ship.java | 11 +++++++ .../nd/se2018/homework/hwk3/images/ship.png | Bin 0 -> 7086 bytes 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/edu/nd/se2018/homework/hwk3/images/ship.png diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index d1438362..1e5bb1cd 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -1,18 +1,36 @@ package edu.nd.se2018.homework.hwk3; import javafx.application.Application; import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; +import edu.nd.se2018.homework.hwk3.OceanMap; public class OceanExplorer extends Application { AnchorPane root; Scene scene; + OceanMap oceanMap; + ImageView shipImageView; + Image shipImage; @Override public void start(Stage oceanStage) throws Exception { AnchorPane root = new AnchorPane(); Scene scene = new Scene(root, 500, 500); + oceanMap = new OceanMap(); + + + oceanMap.drawMap(root.getChildren(), 50); + + // Load Images + shipImage = new Image("images\\ColombusShip.png", 50, 50, true, true); + shipImageView = new ImageView(shipImage); + shipImageView.setX(oceanMap.getShipLocation()[0]*50); + shipImageView.setY(oceanMap.getShipLocation()[1]*50); + root.getChildren().add(shipImageView); + oceanStage.setScene(scene); oceanStage.setTitle("Ocean"); oceanStage.show(); diff --git a/src/edu/nd/se2018/homework/hwk3/OceanMap.java b/src/edu/nd/se2018/homework/hwk3/OceanMap.java index 1c51485c..4b1f0ab9 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanMap.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanMap.java @@ -1,5 +1,32 @@ package edu.nd.se2018.homework.hwk3; -public class OceanMap { +import javafx.collections.ObservableList; +import javafx.scene.Node; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import edu.nd.se2018.homework.hwk3.Ship; +public class OceanMap { + public int[][] oceanGrid = new int[25][25]; + final int dimensions = 25; + Ship ship = new Ship(); + + public void drawMap(ObservableList root, int scale) { + for (int x = 0; x < dimensions; x++) { + for (int y = 0; y < dimensions; y++) { + Rectangle rect = new Rectangle(x*scale, y*scale, scale, scale); + rect.setStroke(Color.BLACK); + rect.setFill(Color.PALETURQUOISE); + root.add(rect); + oceanGrid[x][y] = 0; + + } + } + } + + public int[] getShipLocation() { + int[] location = new int[2]; + location = ship.getLocation(); + return(location); + } } diff --git a/src/edu/nd/se2018/homework/hwk3/Ship.java b/src/edu/nd/se2018/homework/hwk3/Ship.java index f11460e3..3db327e9 100644 --- a/src/edu/nd/se2018/homework/hwk3/Ship.java +++ b/src/edu/nd/se2018/homework/hwk3/Ship.java @@ -1,5 +1,16 @@ package edu.nd.se2018.homework.hwk3; public class Ship { + public int x = 0; + public int y = 0; + + public class OceanMap {} + + public int[] getLocation() { + int[] location = new int[2]; + location[0] = x; + location[1] = y; + return(location); + } } diff --git a/src/edu/nd/se2018/homework/hwk3/images/ship.png b/src/edu/nd/se2018/homework/hwk3/images/ship.png new file mode 100644 index 0000000000000000000000000000000000000000..ab23f3097b2f669e91d7a49a7cd39dab815cd8a3 GIT binary patch literal 7086 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 Date: Thu, 13 Sep 2018 21:20:19 -0400 Subject: [PATCH 11/34] progress --- src/edu/nd/se2018/homework/hwk3/.classpath | 5 +++++ src/edu/nd/se2018/homework/hwk3/.project | 17 +++++++++++++++++ .../nd/se2018/homework/hwk3/OceanExplorer.java | 2 +- .../nd/se2018/homework/hwk3/images/ship.png | Bin 7086 -> 0 bytes 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/edu/nd/se2018/homework/hwk3/.classpath create mode 100644 src/edu/nd/se2018/homework/hwk3/.project delete mode 100644 src/edu/nd/se2018/homework/hwk3/images/ship.png diff --git a/src/edu/nd/se2018/homework/hwk3/.classpath b/src/edu/nd/se2018/homework/hwk3/.classpath new file mode 100644 index 00000000..ac37fb2e --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk3/.classpath @@ -0,0 +1,5 @@ + + + + + diff --git a/src/edu/nd/se2018/homework/hwk3/.project b/src/edu/nd/se2018/homework/hwk3/.project new file mode 100644 index 00000000..f94d3c17 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk3/.project @@ -0,0 +1,17 @@ + + + hwk3 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index 1e5bb1cd..5b3cf88e 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -25,7 +25,7 @@ public void start(Stage oceanStage) throws Exception { oceanMap.drawMap(root.getChildren(), 50); // Load Images - shipImage = new Image("images\\ColombusShip.png", 50, 50, true, true); + shipImage = new Image("images\\ship.png", 50, 50, true, true); shipImageView = new ImageView(shipImage); shipImageView.setX(oceanMap.getShipLocation()[0]*50); shipImageView.setY(oceanMap.getShipLocation()[1]*50); diff --git a/src/edu/nd/se2018/homework/hwk3/images/ship.png b/src/edu/nd/se2018/homework/hwk3/images/ship.png deleted file mode 100644 index ab23f3097b2f669e91d7a49a7cd39dab815cd8a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7086 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 Date: Fri, 14 Sep 2018 11:00:21 -0400 Subject: [PATCH 12/34] ship movement --- .../se2018/homework/hwk3/OceanExplorer.java | 41 ++++++++++++++++++- src/edu/nd/se2018/homework/hwk3/OceanMap.java | 2 +- src/edu/nd/se2018/homework/hwk3/Ship.java | 25 +++++++++++ 3 files changed, 66 insertions(+), 2 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index 5b3cf88e..c493414a 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -1,8 +1,10 @@ package edu.nd.se2018.homework.hwk3; import javafx.application.Application; +import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; import javafx.stage.Stage; import edu.nd.se2018.homework.hwk3.OceanMap; @@ -13,6 +15,7 @@ public class OceanExplorer extends Application { OceanMap oceanMap; ImageView shipImageView; Image shipImage; + Ship shipObject; @Override @@ -25,15 +28,51 @@ public void start(Stage oceanStage) throws Exception { oceanMap.drawMap(root.getChildren(), 50); // Load Images - shipImage = new Image("images\\ship.png", 50, 50, true, true); + shipImage = new Image("/images/ColumbusShip.png", 50, 50, true, true); shipImageView = new ImageView(shipImage); shipImageView.setX(oceanMap.getShipLocation()[0]*50); shipImageView.setY(oceanMap.getShipLocation()[1]*50); root.getChildren().add(shipImageView); + shipObject = new Ship(); + shipObject = oceanMap.ship; + oceanStage.setScene(scene); oceanStage.setTitle("Ocean"); oceanStage.show(); + + startSailing(scene); + } + + private void startSailing(Scene scene) { + scene.setOnKeyPressed(new EventHandler() { + + @Override + public void handle(KeyEvent ke) { + switch(ke.getCode()){ + case RIGHT: + shipObject.goEast(); + break; + case LEFT: + shipObject.goWest(); + break; + case UP: + shipObject.goNorth(); + break; + case DOWN: + shipObject.goSouth(); + break; + default: + break; + } + + shipImageView.setX(shipObject.getLocation()[0]*50); + shipImageView.setY(shipObject.getLocation()[1]*50); + + } + + }); + } public static void main(String[] args) { diff --git a/src/edu/nd/se2018/homework/hwk3/OceanMap.java b/src/edu/nd/se2018/homework/hwk3/OceanMap.java index 4b1f0ab9..7cf091b2 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanMap.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanMap.java @@ -9,7 +9,7 @@ public class OceanMap { public int[][] oceanGrid = new int[25][25]; final int dimensions = 25; - Ship ship = new Ship(); + public Ship ship = new Ship(); public void drawMap(ObservableList root, int scale) { for (int x = 0; x < dimensions; x++) { diff --git a/src/edu/nd/se2018/homework/hwk3/Ship.java b/src/edu/nd/se2018/homework/hwk3/Ship.java index 3db327e9..0716a6ea 100644 --- a/src/edu/nd/se2018/homework/hwk3/Ship.java +++ b/src/edu/nd/se2018/homework/hwk3/Ship.java @@ -12,5 +12,30 @@ public int[] getLocation() { location[1] = y; return(location); } + + public void goEast() { + if (getLocation()[0] <= 8) { + x += 1; + } + + } + + public void goWest() { + if (getLocation()[0] >= 1) { + x -= 1; + } + } + + public void goSouth() { + if (getLocation()[1] <= 8) { + y += 1; + } + } + + public void goNorth() { + if (getLocation()[1] >= 1) { + y -= 1; + } + } } From 2840c9beb7db526319dd600995945697bce263a4 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 14 Sep 2018 11:50:44 -0400 Subject: [PATCH 13/34] islands --- .../se2018/homework/hwk3/OceanExplorer.java | 4 +-- src/edu/nd/se2018/homework/hwk3/OceanMap.java | 28 ++++++++++++--- src/edu/nd/se2018/homework/hwk3/Ship.java | 34 ++++++++++++++----- 3 files changed, 51 insertions(+), 15 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index c493414a..3bcc818e 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -24,7 +24,7 @@ public void start(Stage oceanStage) throws Exception { Scene scene = new Scene(root, 500, 500); oceanMap = new OceanMap(); - + oceanMap.setIslands(); oceanMap.drawMap(root.getChildren(), 50); // Load Images @@ -34,7 +34,7 @@ public void start(Stage oceanStage) throws Exception { shipImageView.setY(oceanMap.getShipLocation()[1]*50); root.getChildren().add(shipImageView); - shipObject = new Ship(); + //shipObject = new Ship(); shipObject = oceanMap.ship; oceanStage.setScene(scene); diff --git a/src/edu/nd/se2018/homework/hwk3/OceanMap.java b/src/edu/nd/se2018/homework/hwk3/OceanMap.java index 7cf091b2..1ad3e992 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanMap.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanMap.java @@ -4,22 +4,42 @@ import javafx.scene.Node; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; + +import java.util.Random; + import edu.nd.se2018.homework.hwk3.Ship; public class OceanMap { public int[][] oceanGrid = new int[25][25]; final int dimensions = 25; - public Ship ship = new Ship(); + public Ship ship = new Ship(oceanGrid); + + public void setIslands( ) { + Random random = new Random(); + for (int i = 0; i < 10; i++) { + int xIsland = random.ints(0, 10).findFirst().getAsInt(); + int yIsland = random.ints(0, 10).findFirst().getAsInt(); + while ((xIsland == 0) && (yIsland == 0)) { + xIsland = random.ints(0, 10).findFirst().getAsInt(); + yIsland = random.ints(0, 10).findFirst().getAsInt(); + } + oceanGrid[xIsland][yIsland]= 1; + } + } public void drawMap(ObservableList root, int scale) { for (int x = 0; x < dimensions; x++) { for (int y = 0; y < dimensions; y++) { Rectangle rect = new Rectangle(x*scale, y*scale, scale, scale); rect.setStroke(Color.BLACK); - rect.setFill(Color.PALETURQUOISE); + if (oceanGrid[x][y] == 1) { + rect.setFill(Color.GREEN); + } + else { + rect.setFill(Color.PALETURQUOISE); + oceanGrid[x][y] = 0; + } root.add(rect); - oceanGrid[x][y] = 0; - } } } diff --git a/src/edu/nd/se2018/homework/hwk3/Ship.java b/src/edu/nd/se2018/homework/hwk3/Ship.java index 0716a6ea..80fd548c 100644 --- a/src/edu/nd/se2018/homework/hwk3/Ship.java +++ b/src/edu/nd/se2018/homework/hwk3/Ship.java @@ -3,8 +3,12 @@ public class Ship { public int x = 0; public int y = 0; + int[][] oceanMap; - public class OceanMap {} + public Ship(int[][] map) { + oceanMap = map; + + } public int[] getLocation() { int[] location = new int[2]; @@ -14,27 +18,39 @@ public int[] getLocation() { } public void goEast() { - if (getLocation()[0] <= 8) { - x += 1; + int[] l = getLocation(); + if (l[0] <= 8) { + if (oceanMap[l[0] + 1][l[1]] == 0) { + x += 1; + } } } public void goWest() { - if (getLocation()[0] >= 1) { - x -= 1; + int[] l = getLocation(); + if (l[0] >= 1) { + if (oceanMap[l[0] - 1][l[1]] == 0) { + x -= 1; + } } } public void goSouth() { - if (getLocation()[1] <= 8) { - y += 1; + int[] l = getLocation(); + if (l[1] <= 8) { + if (oceanMap[l[0]][l[1] + 1] == 0) { + y += 1; + } } } public void goNorth() { - if (getLocation()[1] >= 1) { - y -= 1; + int[] l = getLocation(); + if (l[1] >= 1) { + if (oceanMap[l[0]][l[1] - 1] == 0) { + y -= 1; + } } } From e2b9ff5238158554fa21e27966148d15ef13d02c Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 14 Sep 2018 12:07:26 -0400 Subject: [PATCH 14/34] add pirate ship --- .../se2018/homework/hwk3/OceanExplorer.java | 11 +++- src/edu/nd/se2018/homework/hwk3/OceanMap.java | 10 +++- .../nd/se2018/homework/hwk3/PirateShip.java | 56 +++++++++++++++++++ 3 files changed, 74 insertions(+), 3 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk3/PirateShip.java diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index 3bcc818e..b70e0400 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -13,9 +13,10 @@ public class OceanExplorer extends Application { AnchorPane root; Scene scene; OceanMap oceanMap; - ImageView shipImageView; - Image shipImage; + ImageView shipImageView, pirateImageView; + Image shipImage, pirateImage; Ship shipObject; + PirateShip pirateShip; @Override @@ -34,6 +35,12 @@ public void start(Stage oceanStage) throws Exception { shipImageView.setY(oceanMap.getShipLocation()[1]*50); root.getChildren().add(shipImageView); + pirateImage = new Image("/images/pirateship.gif", 50, 50, true, true); + pirateImageView = new ImageView(pirateImage); + pirateImageView.setX(oceanMap.getPirateLocation()[0]*50); + pirateImageView.setY(oceanMap.getPirateLocation()[1]*50); + root.getChildren().add(pirateImageView); + //shipObject = new Ship(); shipObject = oceanMap.ship; diff --git a/src/edu/nd/se2018/homework/hwk3/OceanMap.java b/src/edu/nd/se2018/homework/hwk3/OceanMap.java index 1ad3e992..4a89e9c1 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanMap.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanMap.java @@ -13,6 +13,7 @@ public class OceanMap { public int[][] oceanGrid = new int[25][25]; final int dimensions = 25; public Ship ship = new Ship(oceanGrid); + public PirateShip pirateShip = new PirateShip(oceanGrid); public void setIslands( ) { @@ -20,7 +21,7 @@ public void setIslands( ) { for (int i = 0; i < 10; i++) { int xIsland = random.ints(0, 10).findFirst().getAsInt(); int yIsland = random.ints(0, 10).findFirst().getAsInt(); - while ((xIsland == 0) && (yIsland == 0)) { + while ((xIsland == 0) && (yIsland == 0) || (xIsland == 5) && (yIsland == 7)) { xIsland = random.ints(0, 10).findFirst().getAsInt(); yIsland = random.ints(0, 10).findFirst().getAsInt(); } @@ -49,4 +50,11 @@ public int[] getShipLocation() { location = ship.getLocation(); return(location); } + + public int[] getPirateLocation() { + int[] location = new int[2]; + location = pirateShip.getLocation(); + oceanGrid[location[0]][location[1]] = 2; + return(location); + } } diff --git a/src/edu/nd/se2018/homework/hwk3/PirateShip.java b/src/edu/nd/se2018/homework/hwk3/PirateShip.java new file mode 100644 index 00000000..98f0fc8d --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk3/PirateShip.java @@ -0,0 +1,56 @@ +package edu.nd.se2018.homework.hwk3; + +public class PirateShip { + public int x = 5; + public int y = 7; + int[][] oceanMap; + + public PirateShip(int[][] map) { + oceanMap = map; + + } + + public int[] getLocation() { + int[] location = new int[2]; + location[0] = x; + location[1] = y; + return (location); + } + + public void goEast() { + int[] l = getLocation(); + if (l[0] <= 8) { + if (oceanMap[l[0] + 1][l[1]] == 0) { + x += 1; + } + } + + } + + public void goWest() { + int[] l = getLocation(); + if (l[0] >= 1) { + if (oceanMap[l[0] - 1][l[1]] == 0) { + x -= 1; + } + } + } + + public void goSouth() { + int[] l = getLocation(); + if (l[1] <= 8) { + if (oceanMap[l[0]][l[1] + 1] == 0) { + y += 1; + } + } + } + + public void goNorth() { + int[] l = getLocation(); + if (l[1] >= 1) { + if (oceanMap[l[0]][l[1] - 1] == 0) { + y -= 1; + } + } + } +} From e73cb970dcad7d8425e145d96100abf8b4f5f64d Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 14 Sep 2018 13:13:36 -0400 Subject: [PATCH 15/34] observer pattern --- .../se2018/homework/hwk3/OceanExplorer.java | 7 ++++- .../nd/se2018/homework/hwk3/PirateShip.java | 30 ++++++++++++++++++- src/edu/nd/se2018/homework/hwk3/Ship.java | 13 ++++++-- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index b70e0400..700e88d4 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -41,13 +41,15 @@ public void start(Stage oceanStage) throws Exception { pirateImageView.setY(oceanMap.getPirateLocation()[1]*50); root.getChildren().add(pirateImageView); - //shipObject = new Ship(); shipObject = oceanMap.ship; + pirateShip = oceanMap.pirateShip; oceanStage.setScene(scene); oceanStage.setTitle("Ocean"); oceanStage.show(); + shipObject.addObserver(pirateShip); + startSailing(scene); } @@ -76,6 +78,9 @@ public void handle(KeyEvent ke) { shipImageView.setX(shipObject.getLocation()[0]*50); shipImageView.setY(shipObject.getLocation()[1]*50); + pirateImageView.setX(pirateShip.getLocation()[0]*50); + pirateImageView.setY(pirateShip.getLocation()[1]*50); + } }); diff --git a/src/edu/nd/se2018/homework/hwk3/PirateShip.java b/src/edu/nd/se2018/homework/hwk3/PirateShip.java index 98f0fc8d..25b33fb2 100644 --- a/src/edu/nd/se2018/homework/hwk3/PirateShip.java +++ b/src/edu/nd/se2018/homework/hwk3/PirateShip.java @@ -1,9 +1,13 @@ package edu.nd.se2018.homework.hwk3; -public class PirateShip { +import java.util.Observable; +import java.util.Observer; + +public class PirateShip implements Observer { public int x = 5; public int y = 7; int[][] oceanMap; + int[] shipPosition = new int[2]; public PirateShip(int[][] map) { oceanMap = map; @@ -53,4 +57,28 @@ public void goNorth() { } } } + + public void movePirate() { + if (x - shipPosition[0] <= 0) { + this.goEast(); + } + else { + this.goWest(); + } + if (shipPosition[1] - y < 0) { + this.goNorth(); + } + else { + this.goSouth(); + } + } + + @Override + public void update(Observable o, Object arg) { + if (o instanceof Ship) { + shipPosition = ((Ship) o).getLocation(); + this.movePirate(); + } + + } } diff --git a/src/edu/nd/se2018/homework/hwk3/Ship.java b/src/edu/nd/se2018/homework/hwk3/Ship.java index 80fd548c..34a52f67 100644 --- a/src/edu/nd/se2018/homework/hwk3/Ship.java +++ b/src/edu/nd/se2018/homework/hwk3/Ship.java @@ -1,6 +1,8 @@ package edu.nd.se2018.homework.hwk3; -public class Ship { +import java.util.Observable; + +public class Ship extends Observable { public int x = 0; public int y = 0; int[][] oceanMap; @@ -24,7 +26,8 @@ public void goEast() { x += 1; } } - + setChanged(); + notifyObservers(); } public void goWest() { @@ -34,6 +37,8 @@ public void goWest() { x -= 1; } } + setChanged(); + notifyObservers(); } public void goSouth() { @@ -43,6 +48,8 @@ public void goSouth() { y += 1; } } + setChanged(); + notifyObservers(); } public void goNorth() { @@ -52,6 +59,8 @@ public void goNorth() { y -= 1; } } + setChanged(); + notifyObservers(); } } From d8eaf8033ee62d8b52de09ad38e14b05da24838a Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 14 Sep 2018 13:38:02 -0400 Subject: [PATCH 16/34] uml diagram --- src/edu/nd/se2018/homework/hwk3/HW3-uml.png | Bin 0 -> 48396 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk3/HW3-uml.png diff --git a/src/edu/nd/se2018/homework/hwk3/HW3-uml.png b/src/edu/nd/se2018/homework/hwk3/HW3-uml.png new file mode 100644 index 0000000000000000000000000000000000000000..cfdb1a584a04b4d9438021964e315710487fdc12 GIT binary patch literal 48396 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 literal 0 HcmV?d00001 From 75a466284a165c20713ae971a6e3cc2ca240ed26 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 14 Sep 2018 13:56:11 -0400 Subject: [PATCH 17/34] reflection --- .../nd/se2018/homework/hwk3/HW3 Reflection.pdf | Bin 0 -> 33186 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk3/HW3 Reflection.pdf diff --git a/src/edu/nd/se2018/homework/hwk3/HW3 Reflection.pdf b/src/edu/nd/se2018/homework/hwk3/HW3 Reflection.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3240f09bf9d0667e919639785b9d54622a544136 GIT binary patch literal 33186 zcmce*W0WY(wk=q;UAt`Cwr$(CZQC|>Rqe8E+qP|^_jk^{w@>$bV|4%NPK?MEV+H11 zGb1u1NaTe@X&7i(ph$XN3csNk@#*pH3@xF!x$)_wEo@B;94$OejPV)%TKG&%4D77< zbmI70_^j+~_za9}_&WG>a`=DqMDUpyIT-$W$^PT2{4a|hpO+WP#Mbzq>hS;nKA@QX z1BkMRy$L>@x}u5cUl=B~X3pmLEPuNxYGLhc;`leUHgGl(HZig@{_FMcRNlbR#tHu) z5`^rmU2JTf@R{-H6z=zdT6T8k@NP&G>7w{M$CQ z!~aVOJ-#A7ouZwc^WQ4|^{n)lQG5orf7R#uU%dU_>7kPl#@FIDWn?fiHDO|=XJO}H zF<@sjWHvTpH>Kw=U^L=jFl1xp{eSk*`6mcY&WLh|f0h3KAd*o3F!JAOlQ%Fk zar%eZf06X>kO>($8(7$G-%G^;2|G#DPzj$O|V*kG~*`=`&NyLWW^P=|Xr0?mH z_NzbeO5?^UkN_{<7##>}b?Qf`STRNUPq+G&0rj)Y2?$?#%3Ru<%8Wox$m}kFx<8n7X;I2?^Di@V)OVl#U*8im(s8 zff_+`vS1a#bP8Rc&)kEq2sNx4fk80Aa`z_2Z`qq_cf5P_b)AckMc(ax^mpC+*E$Vb zzu}$VJ7m^3_bLb3V`xqTUTIf>9EyBz4y`{<@6J1V#fS^#jdKAtDyP-myZB5AK_E_} zEIR}Jqv}DiL}H!$hPrn-#$QTYOD4gLj*o&;Q#Ks+{=0E5iNi2-lt`#)Io`eo*zEpA zOK%*v=g~IO*U&dgeqjgld8WL(MS{4S_SFxGRuOo!!-sXRt%>>atF+4E{tIc=R+u}g zvQZnZJA#l?>l}@IYbz%XbeE@v0~ssu09Dz;vLPn8GIQo&ZChp!C#0e;;=yP-?O+2+ z)f@gMsHV02b1b$nw10v!7X^mqWU;ZXG!BgKDaht$Z?S#=Yhtz|XkaBAQk zF-41vA+URZ^Q{ClMPtE>5cD;@FQQTM^qn26|9puj=F52Use}a-)1XE4&^>TOs(wgT zsPf?s&%s#$01zS|P7yf7V*?OZ$6fAmDuzdN`!kqZmy(H$!>$Ldr#cyvjoLb+5q9jm zfEdeo_UIEvoVj3Kir^8Biz=gz7$VlPhT0?>xopEOXii7QRdM{%6d zloFG^>MN_!xYZe{aR+__GA(n^ZZpK&KSW8NqrNdWa=MJ&0<4cE(S{3AYRNCS;izDUmrT$ek@5w0^D>-6{T2xH`CT3>#g4s-FI&teX-z+4dLrFghh+ z1hrt70MBZQjQPj}K0B@m4ohT$`cl|c*R@i}qBBa`q<@&V)VBw%N3{MTd8qT_#rfE6 zFo^zIxc+T82bu45e%5WzY=~p>;dn13UUv}PV*VIHR{iJD-Dvdnmv^##UjuJTmp#~h zuP_(_bR>D*6~0*nf$~^s*VgdhYA1VpgA4ep~CBZJGdG zOo3GbQ4X(^kBIuqH!Kf|SnK{oI~O!?va4Uq#W9G!&DBmtyIhWStL@vIRJHV+M2c-X z4qQOZb26N{XLM2N^=#(P!KqdR8&ovUsIB^h2+=;Kvf2_&&|lhXJ2%HEZrp8JhqcE5 z70qX|Lv_893fc^uK-T1B26poKO>5|l1_v|S}mBYa2##Fqn2eiJj46rY*IRU9KWuSP`x#^=)%qKc9j;v;2f* z;(#)r&^K6jR8r*ZU!F2|7`lPjU$ijZZQt?G@vW^gBp$fc@W5NubS5o2D_Q4vSAxJdS;ra=+vYWUD!uJ6* zY@W>Ea$(eX*^B`&X`uf)ZA!8$U#LQIGvIiJZ@wVa-z76uO?oy2&)%0bz=X#q zIELWT58n-QRD>_8wT2-?ez@7U1BSfN3p<+=zbW+HrT4?wrzXT<_+=m@Euc&gN@Ob< z-QO-Sm{S#}Ywy-8e569JaYq>*>9ETWGtip!gFXN1p+EA9kUD(l*h(xu&Qiy8>}1_KKvkBie?~x3n&8Fpalezl2mi-M9wE9Ua?C#6Bs(p6j^uabO zMV~W~@N&MK+r%rr6U=EVbqXHM6@o!-B<~A>roGbw!N&)Slq^xOz&=tC*%cpVf!a?V z^z??mIh_*(km?caLe93J4=~jq*g0$WNGgs*j1hey;wuC--IY0pJ1)q$j78Iu2Zr_y zEk5Y(4=6X3cJdb7+1EuUrWxq{BMVxM({Okm9$K4z^a@Q3NZoMld!YYPZD5lY1y*yoKF zeWEM+mKS~}S?m+fmvzYW%HxNZT{z)Sxq*-Kl9;mvn>PCdGyXEhvZ{x5KR?t1iDmrG z>vDU89Aap8N;M?wDTUE>2Ypt8Z?nfJib+fTk$3!)=kJ@p3duzO-L(HDAMS^DZK^8# z2750Hbwepybix`Gh1l#2v|NJf*-FNHu6>dZBrth5AEamzM%lG z`9K`2>TtM!pkH?MXnVwGui@45SqZ?EsDnz z8ts%oLm=tOyjMQ;J5ZNK;BjiZj529%{c{cZfRVDBeS0{DVN(wU%#V+uz6DK9V zP%KYkGWULCE;Q`QywRHP2T*hfzTS2s^<-k2fGbFM(Tl=-#1HOk7;Bf)mINT|B=M*y zI@-{r6Uwk{M*ajY=xwufwqsML9***$y&&^p7jw9Il&L5%P(uOgXcg@6TOFsEI&MmD zSAjQ!79-GNvr@Nf@>%y4wlN%K$gMnX*dPbzUXw&4t|rWQ7`*KYsF7+lZ5|jbH?XWM zmbj%2?F%#muN;_eS0v5`xAz^TI^IN;tYr-HtCZ0{Pv8#Y@ZdF(dl`XT{;jVB1N~k0 znF@wJ(F@gk6QS0STOsx1$h=5#P8Uw#BYc-v%(=)qa<9?4(&X2>O7n}9u@~;|+kW@8 zJbe=&^u0=-&d!)CI3X}D zBWt+&E`x`)@OxK~s!38xJW*WHS|)Lb`;AQ_aM<)x@fB_VCLWJtdJ@-n#OS1nVSX;3 z*z3}n5K|_;_zw(Hhq(RkD=;oLz^j)DbF7a7SiI0qPAHX4EetpPZ_+`*$FJj{*p)u! z>l<}Ctcmm5t*q6N0rhEnu4ayaM~c&#E-*DGn^U~coHq#l6LkDP0?C4qYoHBhHS}7e zVp*GXkMWy)1D~@gjJTp5Z!fvcJn<*%QGA&XgpXI>`rY^1blGHC2Y8clPkrwx8wNPJ z;5huJAc9Z}*9wnts}ZY$e8cTT`iN_>EB@dH2yZ}l`tZ5I1dLlj7$IiVahuVjhY!0J zgMTpO#NM$D-PmEV5JwOvYHv;wnjzdB^z(rgauW=BMQu*tG^z*j!q9^P*F zWBuih4KM0|b;&yd_`_9L& zn(V=Yyj>BU>9nWpySd?28MJ#>yoc4Wm1u9a^0s~2oc-*50l#SmK_1O^fbiz$#G|~< zJl?M7(9y>}%WFIHiFQN`=BrfnzT3vdJ! z&bJ523V+~gfdYJ-S3)*izoJ`tH^o+%0B}Y;>G?LhomdPJQVURAuSN17U3o*uhgiG5 zHbc%li|GtK?OSVPquqQ$)nm!UHt|YxWFSy z`fE~6QuS;&wW_8JomRD3^Jqp?^{E%;joRLmzQMjd zL)~9tfS}oOYc{VE+RQb(XUQCEHBb5F+Qs4TxM~l!%so?GSX62*agHU#tPsZaN1s) zpSLy?H9S;Q1CF+c4!6vnkSD){7@k@^)?~9e2Ntqki`wD5x$|Vm{NilUf43y9*~-0c zyk4|r6SWJ)G9Z`?(4fZ#bM~G0D10zKxyZT7xpBrdVBunOuD;n^YD3NQ;!Ja$+NNR>Be#K{?HUw`q-aA%kDfrEPM{iD{I;D zaQql^$*cZ&+>=uS^nS;%a%22nc$XtH7=N+YUC5S8l7rz?a4ozI{t^C;$VTo){!NBW zCQW828-K8a^K<-qcA$s-!)4|2nQ{;o%jbqI#_@fBXEWl4N5{o`>wb54co2K=e2_ZW zJh+3zhn$zxW8p6QmVQrg6f_Q=jFp0we325CB1hRm$yVg{m_pC*5C+ux`*JaHGpeT` zzpTHN{0j$tA?vub*Y9pG)T!lD0#cLmTHrAx^daR_B`x({E%?q1uRA^fZ#IeYwdUAf zLJHW=_qy{{Z|TtY_@^`NF{-kks1_yFL9LJT70EV?%K()dM6S2!^cORMl3kG3F7+q! zwf~0!XeR*KuGcCE*RI$r;B?YuCXlcJ@I#^AgvpXu>fYvQ%C!k$FpFUV8 ztk^C&Hz?B{S1a^(klU_K@c^Id;zeg>=aS^v3eAymY z@}-D9GPNkC->>F=q*l;hd#bO$x>_y&4Li;S^6qPb<8lgLKl>XR-BfqMGwZrxt9)gxk7BZ4|5zeVAaRz@!lVHZ>F z5XmG+ksK0;4#_>TI)%1LZu$fg1viOPiu)*D13TgIdL>>Vcta0vDZC-_;%~+@?&TU4 z_~P-#IPRI=(BDEnC4Gr-=LI+=(9cNE%zONiBq_u^D)NC;6j4qZ8iDvR6|BlGCKx&ewYMNVGl*J*AGFBoRD;QHQq|FrEVooVl zfY%XFqZAIw^_|%o-x{VlNOhuW<7#Euly1A!rP0xw|ls`y}7@+yLrI7 z#VhoA5C2K$o6g(i+v7WuyTAH0``me(c~kmC|4jSjdtLZc`&{{C`)v8d{O0=h`lkMo z`v(6O`^Nr3e#_3@_dEU>`sx1}{~31c#WgRLDersk^L0nG6QQX^*A49HeW=CuCH%>^ z`J}m}w)SUo2W#ouDu!5&H>{7}3{l;~b>wMG%o@YI$I+W%yKT9DcrEz^`u6n2?1}Hm z(Ho>YQM;vjBlSh?$?OT}N$UyfNzw~yex_Yp=k4VS?;a<8R9}9;dL8;S^@Z+1wYeqI z#!Z{~8m;Td1DO2)r9b-;eCdZrbLt)kxr~PBaZuPY{2;OGB)8t|xj=TM;Zlr~;&WNn#Vyw&+ z{DryYa;xR%Y#A6l&*Qmf2FKFtI|NmukB=8)STRY-C&$CsUK+FU2M8 zO4^F`3kEG3G!mvthJg&cw503#=q?KD;xfUSB`7G|VvxmY9N_gPl#EJ(BIT5t2!xzgWDUY6OOeS%tHM@MQMIh! zsAQTCDmJcgl0?V`4&sc{29-QC2o#i%r+_!=$ovDQy7pY$!t%!!)j;wOnPaBY`eB5M zfUP47me5U~gH+HRTQ1{w?%*^miOK{WHH(9c$#A6&_1a?NCfX)r#d*IX7j$K1T^xQ2 z*b*yje}Ebh^n}=kJ#~9kJEeH)oWDpr2bjZOrb>4=LlN`107l?*sJC2xBY>~Y6_jM zS7m(b(wNB%1kH_F_@b56W9}Lyg(I8nFn>#jl#xM1Pk|LQSz2TswZK|b-e7KHS!5rw zK+cf?Z>6lR_+4Gq?DnB01g@457^JFpKxmo}2=g~=2fS7kR1fgWIFnG9^FYOyt^I~wi$9Z7EY8^k? ze0WGcGz%ZssAAgScBpF3@&w}x1y># z(tNgp2?SQmV!7vWi`T?!V3mwl_DwsKwu^>n?jYB+;!C0uo}v<*{<#813bVW}HnFRd z`nIB7Y==47jB>IPsCaF0W7*=m%KPMnR}rx9eQ@t{j=&kLg|Jf|(hOVC>Ox9dFB0N@ zvsb2UvP{`hL9I=q`Qdk*V%mb$bM{V|ONfu_K6pvu^noB+D8nz+wJ#japV6F)r*d_X zFi=R>Enn`Fcjj*e=OY9eFcP9GMDDizo*L7=5U?fIt_!--IN>r5UzDI#x)h&B!fv z6hWwgWE2HWX`}iD`PCq1B*r>I3WV&mm013w{;JmT1x1YrgyWk=o2;FNe^W_Lz!-(i zZ{l>x=HkSr-^B9j%Go&f`ug-3q#R@tNt;Q{cTPD@C2iMj8?R7iAU81931XWUzT$-edOF@U}Wq4I^nZN@0Vi-N(U$ zm%Q!!-_C5bW=Nq~h-8S^r}T}4o#BLo+QEU>sZM!=n`8_x66O5Tg5=C`&42^{62px#rY=C)po9^$#yd9^sv^@D! zkxhcy*uPwYbV<;nn2}5bq?#x8JUO%}!bBX?vBQ6retD!nw;8N&gjp!j3vS6rgT9Ox z@Z?i0U(+nBqF5a!yrvn(H@)4=RwOw&#w1j4L*Bo0kz|YY*S`ZO(7}nLUh*O?N zz{gMVESw3g^yd$Xv7q2o$dGt@7Bo1~nI-LJ@L|hwzgN}FKB_va&Ed)Mq0;icdgm|r zBaQbF+;=%f6jwr?C}-07k^FdZaXcH^&XgrTkPW-R$AMk>x_7MtMcbAPn3M;+bBh;! zr*{H2lglArWKW@TDu+6Ke;g1I~U%c0f(zi zFA^SA39nkZkGzN99UZAKSFCNM>{JZ;3LaG@pEX|alY-RK62F$W&Y1qlaURXv$Wjme z+15@s@ag5~YZvHuZg^ULG+Sfd)zrRYr>>U8)5p zxk~PxDF+e95hYl9U<>-z9KfvzP@Mi2Qc)jy=y}WFz4epNXq4t~_A1ReZFA_bER)U|Iz2q=L!Le>>9d$t+{hhM`pI{vq{_Xd-U3#d7*@W@ z_?51^&dovJHp$V}*nU(;LUM#2({%r-P9pW4-#}8;fW*3NbmS+mJspW>WR%iSH@>DG z2a20CLfK=8Pf=5~UKALxru|KRtY{F;R1X(FgIh{IpiE~)?>M}`-gR& zgT7p(wlI1>+E6vPED2SlPK}I5WLWEcO$L1IIhPQz;b}Tx7tm;JspRA*i_LD^I}{X} z8)I5eKl$PKpr9#^79P$Jy{li}K!aXhOH*dmmHPB8Ss8RtC`1hEY_p#v#0rWH{hC&p zT3tS7EmSC$2##}%VWn=cZn$o(ZiApUFhb=6I3x>ahpQEoT*jE!cUL)Hzz)HHwa|!;WfxjH%!GF_@kP3$rw2Xic!)bIC+Tqd?>S4%-j)%X+*r`K16nKw!D_x2h=s4mVKzQz94&)?O_k^Nbes= zUjmC)Z&AAfDZvAw4Iw>%4}}KQ_kQwp0H>pyNZer^A3)tezeKo-;Y_jDG*mXq>CkJ@ z?RI_q=`J9vxZ!TKJz5qaDqg%@%BR85%2O%PM54QkQI9sahAYpqxuOQt+H~@wt9C|TDdQplk(VG!7VD(Yla=N5pV`hhD z&+_2BwwZEK=8!nTX7eVmn^JM}@TV5jlQKil?nJyBn31ge9x!GUy=z@g4fSgv|qZTx=Ws*#74PA zVEll2B2M~8mnc$`>P8s?V)u^i-5hVoP2(G~W4xs^TPxev3dC9k9?@-SF~#5!!Oc`q z?3wggf=6ZFF?qy(`bH8N9;x<^ZwTcU+O#2ck8X?H)8dZol(I$9Uxdi>qa?6=GCE>9 zXdczb<*f-Q%!pZe^F@w5j zVp=A-Nw8w<`7XYkwC9=p(sGclgF3RNN`q7LhqpYvkoPw`fcCD~bsY^2A`hbK6Z6Zrc1W%=cJkE1PT?Owm$JJpc5 z&WPP;Yu*|wR z`Lw#85k~OM7q0yePCth8spL>^cl-vx7>oB}BEa zcy@VKxU(=8&PMF3gMJa_tyWt>W`u&5mpFv-`wouzB%lh{GbYu_=A2<;Cd7-KNU9B@GFOG2e`cYmW zNJ;?*hzSaNV$?-r);6eU+`E(h>i&fNwthsN5cyz-I^-bgJRQ3gDU4db{>p{nCKs^P z9lEtwR(yM%7ukB;Z?HRh&Ui(c$^*T~gT=chNHJt~7C@4j3uUlXI|yORS0J4#mS%?3 zC>s)szkeod5@Ifp!{B%-dfewV#WD3+FwwW;M zf4di6)jiKC&n*cY+?es~pmK^F_e19c%Jsqk3JicQ1_W}us46|xk6PIp z`z*1!b6eYJ@Ji(RxRZc%2JBBx?(d@?(l21en_+WK#VAb%S~GqE2nVlc5q()ccg*&S z`_;8m8^)Jz_TeccEiQKd4%l4ZBx<{A`-zknq@_@$bJ$LABYNY%@0%RRAj=^uImpoC z>P{pKt5DP$J4b8L3Rd;3I4X~O)ok1J$rg+za`FQx}?Aa4b5uYZ=cP?V5)Gfk>M+Vl&0ygqbt}8qV-#W-lSRuuxO}kXul((Uh-tC02(e?T19kjWuV4yZT3TLOGA*=vl(dPnNi6;c$BfP? z%GHL)ggan(THC6Qj*qMqrLN~-;V;-b#r5cqoCwvK_JrohDIwcGKKf{U)<-@o%F?ZF zO3U9_fi1RlG7^$%6pxnawBd@#@W3zjke4fl z66+anR>;l7@&o|mqy7R#(1V5aN7XS~NK!_5BuE&0INV#(iI&qjh#ABT8iEDH=;2C_ zA%!MpKq2BUXz<3#(4i*O4Xsq3`s}O-hklqiC;~&)^g$_?Q0dAFoH?q|wdH?OTnSXs zX-LnJWk?$sBx)P-$fZ1@8(%9NP0q)XEu1XbH;$pq$Ta)c?i^j6s-%HlqUPE(bHKP> zE<(@1B7|sApDnlC9jv8Oj(%-PJEWQvtd7#fS)*Vu8hvV?m6f($~#j zEV<}V=ioq@qG@7F(gV84X)V+u0{Zx8aYfO9AXW9<27eqayds(tYe<69XkTi=s*o`z_b76R&LbK>m%wnNCv0M9hz^w! z`i^h&>OFJE&v{8+=u(n^m6VouIX7*GtOtIKz+n$0$r$!1_w?PNuxKawy3PpM5iDLV z`!K!7)Okg%==1ub`!lukUO*&rsWO>3XU+}&@4m@bqym)0KGW4%Qg|wdwnJ;F?F1+4 zJN0n}HxRv9$)CBxtPH*0;Qq@|6XshFYj0cG-rQJ$KoT~tU1uYG$#EJP+7wk%UtwPH zZ}t;ti7_%{i7Xn&xO!Dw4_g<9*mfy;zm*m4zyCu$uNl)_+SrVa*Rn3 zQ8Ut0MjmlZcAjWd2ov`(fWFXjfI+Ug2O6fqs(H}db$7vbBz8A)ZsF}R-+^Xh8~R~m zgW-{VOh`7*8P%Ddaxy$0XUb@4cPSF2W)%t~XpDPS>_ii?z{sOaFrKA0bMuT=mGD?P zabnBeL)+SA8|DP#!b*V=P=Qn$g^IBgHqJ)~HH=hY>@?Nbv}wji_7tUy*!xPx$NtHO zqkvMZX=y>vs7v+*CxLh}W9#XQi%FrOVCLoEa&iQV`H`_ko*D?*&z;$qyl)J+>bCcwnS+>{h5}AiR zAGry1*x9NaJ-$0m2fFG^`QySbnqacptY5wA6gz9ZQ*A@Jw3tbG-M+)BIf@#OX^1O! zaTn=Uo`<249V53;rV$JB-!FxqC%rELbpf3j#}`xZuetQs_dEwyGfFX1<;dsBQp!?` zF@i;oF_tl!Io2#BYdDEZhjm;k&*kKm>&1%e6ira1B^t~M`@&C|$-o=j8Sw;+2NFB5 zFcNYvv#aSg5~T~KPKlCTQYA>Ps0>k1k_s9Hhsn@PZY5q-n7Y>VWDaRlDD*kZ4yAJ` z9xfhQ_pRIrIEweBo6o?;9yQQp%lQF3YEBgwCz-#T^^I{JY0hzpx9XAlb4Dy%k9_YY zTkyYy`-5%xuEk*IHXMlF4^MOIWg0Jx?BV0@sNZf1 zS`DpVzzaKW(jH9Tz)(8SoxKkpJgn~`#*DnZt7u7B$u@X&1Uh87m`>a}$})4VulFG- z?pSa9hqgM3-5KapDtngpQ``BnbucRjaxjqIrR#wIDAQ_AFd%;BOJ~L>o|YCWNar_y z^84C+!&Yz_>GZ=|SjAW&2M+58k`8ppH)s!FJ}@CuJzU(YJ^bC*e)A@F>nNqk!z!#- zml?*x0js3gzMf<$XecxaqSCw~I{^}W)^zoan6;`x&7-if|8hitdDJ=hISN6Ld2u-m z1RkEL`s&{O?wa5Oz8wyiE^($!_QJ4qa6nEvucxc={bk)`T~r&cy)Q)D;$v%|1#) z$A~p%)9w^mk6%H@6>plb>Lhu6hj!b1(^e8Viu3oA9!*@g`;)toWfc>++iZmIu#kJ| z`0f(F&(5igF%U}9#@|6_**U`ohsF#3-(M`55SbYX2CP}iq2}PQ?4uIkbsXNYoFix>3Su2X z_Kk{K_zKwCT&*_rW?0f-X%exWlFqpn*QEkUau_^BgHEuQ(?rW`*+w5EJHDP(th{>* z^OfWMvFN|_yDk|yz1AYVVYY=0`t*};J5l5=I_*r^6HGc1xEFbzUQpOR z0xhL0kMcL%fImbiH&M##z&AZ0pU2)U-Y6?0)^S8D$MoHZ)nx{+m9=C%I~MZGlFOqZ z;aqYm6qc&@1u6HHR4Oc0Hi=cT&dVc}WSW=Ou&%CLr_E{_SJvBDKNPr3tZ^bb2aV+Q zc4nOls3~EXW)Bj+gNeGhi`lg6&5gq*VJJE)IC^SoA9OjUmqT%*Zh@<(#B$-YmoX(! z%J++q8f|qdXk%U|V80~%?3x^CGfX;{J4W64)=qu4UhD3d--gSVen|*-?qVGt+{e6i z_leR@rx`lGvG#rpHLUg+8fhof@2r4O#Y}i(?fUK@ z-=^D1xzc~cybcUEUn1Y(VaA!}Mf|M4x(Iqb&)jN#_IS@DFf#kby8-=<#XIRD{SFOQ zi>CYFrT5+a=zk5Nqr9|Rttu7nAX>0=oB-!HaSP=^=vYcNbYmPE^i?pH21wLrW(0Tj zpTRm{8vf`MrMuhTJU~W9+W)Ot0(ASPxJkK_(s}{8Egd#xx?>2xzJ}Jc0s2wO&pJkm z(y1Eu%J%EYx5)f9X#6zJ4i;w%{U+{Z=+(pyKicx|8b=PjLhI`(J*wy^ zXriM4!ycGR4wFPmw{44^wxhPRGROAUSj!=b#bc~oER$5qb~WpcyP5Wi+-Kl)NYo#T z#AGY0T{KyHvJ!Ee5f6^FHRta9-$tk%1PmKa!0Wl<^nJPf%U_{a<79-n2yYi-gh!6` zf@5jrjkddnTY>B9qu<3zh0x<`?0D$AD4Vmy$Gs$IM{9{d63h~Mqu(&e=ZmT=D)20F zS?gBh)6obQJbVq}Ge>Z+LaYpD#4%KJs8^AZi)Q{27);{PNJb7&(GiI2Fp2yO^yP+3 z__=XY>^G`oc#kcX;jps`%?-73zTEXPbc{B3vr!bZo}uNVHd}12ehWVBAI->N-%UU5 zDQ>zOj;AXrD+P{u8(+FF7h4UZImPkGopolX_g7mpt~WLs0`uYw8LdvB2e2Ik?#4Qa zvZA>D(%R=dpdQhu z+@%e#WX0=C%1GLxvQcHvohgkLHc#mlQxr}7g%Rz50|wiLMfPVWb7}mgkw#%m=ch7k zGQ^nLCY|?ZMQp}Ltw~l|R>|b9?g~xjYV3NaF#5PH)K-&R8RRsV^$mJ5x+-q5K67!g zY-MF**sw@is911y4vm?>C?G93gc%E-F4hvY>_Q5R&_IQw25eoP4{*@5_%<=95Y{4t z!ZPg3?f8Lp2Vf?9qRC^8mxqESC}{siZPJe`wsIyb~L;`?KEJA zJk*G%+Wki788}iNORqs=mYpTet#W3j4C?NWvGBNlv9J>wS{W^U9nH1oO-j!6e>oSG zxscDcZwkOnXwz}&P49-1^5qJ|EWb`-j%8<-lcX_YRE%nKvb~WyBIlUpm}#B13Rn_O z*jzBVCg#j9RGTpgj@1R)P-x_IGMgCPv)+^YPs`f&D=9Q&3~I`7b^sH%K+aN&tmQaN(%6HUw-r0i>)$lj2=hB~d^l8`WsMECBDDTlew3a_}$g76Z-U3J^A0Id+T+#x$o z0`LqMduaRAP9dUoRoXrTCI+0g608g50L6WiQ|vUbxP2BEiWB5^5*2nRx41Pt>Idn3 zrZZFXQVt*7l@qQ@yt&UkBHVsz@D?Sd#neD6QyI7SbP`Vm4U!h~{Hq?H=1Xj#uAAD~ z-&Xty=J8FZfboZJ0mUrN%^brwwy;e%ad%1#0U|Tk$X~n)CtQ|IWq+kZFm zOYMq-o#{H&t0QyOYg?C=d={=$5*~Hyzv!e`#foffVSI+EAr zac)ADL&^e`<(sWkcY+LUv&Mw|8=4K9I4r`&IU9FpxO6< zgv-~r~f)no$fw$p69dJws54N?XC$R z&68Cd=;ThupZMTs4UuO2$;Fi5366$uvd-dL{`N9uK2Cg-EOeI*X69!Fc(m}qooT>= zM$kp@tD~|BHPOW)@?-7S(-vdKLpr%;a;grCc*I8PYnFSWDc)j~>*Rp~y2_%68y7tM z+eAXf0>zeimWPhAT*OGrF2_<}rQ!)ed9xQCgCA0Z<*oh$ft^AXX|>2e_$Lm+YQ;nn#@DsaUz7ZAZ*H)iR!1kyL6&qp)sMXGhVx` z-gmJ+beRIr-bFd1wTE-F>|8a`=ijPd`}lh}guIlTLhUlU>7|w*f@Ujzo3;CMoICn$ zgle5^j>9X>zQby~9EAHQ+FZx`x;&O@If^toz1#O$w?&4^WLC1Ro6G+(qibhcrrs-4 zo##i5iDGL~I2Z)l7&s4!WsoUHrkpv|bZdF{6RCHoZ_mEpqT6p{N(u@oOcnQ{twJ-c zxe7L(0co+^iEZf((0LEEP(dG+M4|94)j_-6!qm=uwF-h;N45CSiZ*IBc+7d0@y6eS z+K52T;rUj~jb_{@w_P2CMPtmRuq=RDk7n_t*tVy9q{nY=DrbDqEP$x}S9;@`@iP%A zAtn;*H6nwG%gb`WJ?bOrj#bKxgV$1|L9 z65N|h&iP}@%UJm-H`@4*5eB((-3F+RRH+!Kek?0%sr%!%!_~=g7KE5c)|1XqP{a0m z$x#`38j6j~T;MUi%vxHJtlVwcob-;*v|MK_O*qic5hhe=FFSVGO1hqR;V>Ivn=;mo zs&mFdqWo~BauJw`W~*4G8YtOE8?c=Iu+R$~z@*;H&LMHZ`{QoTJ{3EpJPo`+#(3JCpI4wJYOzot!pK8Q-y$e9*SAp=`uF)T zuEf#3bFQ0M;n5La9}R?TXGe8Dj_{!!tecfYfaPCmx)<{6qlamXb1&5EJ4K{`^Nw#l z*`~bYPR;wHWWN3KAd_Dc(?c;ykerji<}+PwdL1KpSu2@Xf@UyAG>0cD~ zn~Z{nsiV+Z;Wr+_(D5~|cqv7zODpfi_eCR^yM)52p2!dGel9i&9_F^X+B%I&>|b5E z`W3!f(|T)F6fCF{V`CAPALypG4?ev@npnQP{@IPpZ!jLDM%hou%}F9CHS5^9<;W?p zacB>)LSP|WODN1%t|3|~V#xhEzgF4>i6t-!9sfQCbRDZSy4URaBbzq$!$oeN7M(^} zFly!7qD6X?(GDQ@jPZAgKb?u^RB?ym-J8aaT@{cWt{PZW^j*9bp=@;=Wlm{O51Uoi1_nx{8Tr#nCh)~ZCrwfBKZDkp~2@;&2AXgPlS%8cyECCpm zn_1|2<|hReevVq3S*2B^i_)DziG}lTdcgi-xT~RedJf z#R>qQ65;NK$0j6k`wKXdn#N5G$%!;AY!C?GN~}IGMx;hM#AmE^j7mndtH-Ryiykl_ zVJ!`L^hbL!rp9FCo?D!PLA~^n*V2SotSH9j#l?@0j{!qpYtSyn>!8d^ehJmU;%2pd zum#OX4rx)Zu(SYFBP9yW&xRTkvwowyx2BXp>OKU%ZgC1K+Hp;a3Kdk-@qncB!O_~@ z!U5Kx9vQUE%e#8_{5>e9Iz^Y-bCp<+U%jWYVBYMt&rP(1@#&s7FZuc$TEX{knYmG? z{J!_^K%tr_MI{iXT}0YL%MTA*=_rn15-s!PtjM7?g*{FYebw67!y_wrvw7Jfd~9^+ zP&2c@!KbQ|sb8fH?%O4SyX@GPn7B2S$E08tLaS3?jVh*l3paKP+w>DA{waO&2v{4q zJh6Uxv7cy2xUoAHi!TQ#X6Su_MI%Ik*~_ET7T^oeB~~R?YoK~B6=Aqir>`^J3Vwe1 z_5M`DBcnOrgt3mLi%)+lT^Ki+7DA%@#7wXrY<&P9IcgW z!1yLRk#<&?#48vsx@sQ?fyx;PdgnweF!l+BadR|R0sHb1#{TE{8swd0#e;r^`FGZI zbq=W()_1nG5SzkZZg$+?*lo(C_|@bPl^N)^j?EOmmavInx@izac^lM~OQnF;^qOkF zwIFI#*=XJ9xPEgcI{p|r9FtViuBch8UA~LO25-T)5UY_pAF{}PDp#uzyY=tTN>|S91uvk*tc6`%&7zu_%8CJp z5j$tGW9_x(wzPt%Prc+jX23GTwE`H|w611nV&lljhIbdQTdrg055wx(n!&sSc&ffy z4XRfvAJ^HQL?{&u!5<)0Rae=>&NRuFZj0w3v;-p5>%@3K7l7=T>(WCidB$II9y&NS)-!V;`b+gMTau z6I6#1Hw*EWYeI$++@spdl%z(QIFm}*P$Ys3X$A%m!y3XBAxq;^K%MFuy0;hl4QFPB zz16;DDL>wgcmu@DXO<=>j#EHV#dmsrrS#o2)Ad^qek-;ji}%6ApMF{N38Swu)F8yO z6YjV274@C8$g)>ZP3bLm>x`YfHu8&oT@4q)=W_$XHh-S|u|>+GG`YSjYg~BOe84Sp z?r;7oZmrE>X;fg$Y`+#G%>jrPt;9HZ>NddDq!}u=@~U(;(yy@~-5b;+iGM zcK_Q?#OC2pn|}Ess9)Qj-=zzPLi(qBRf6u(GiCa4HsC2NWj3C46DZ2Qv#b~lo98%HYT!(b^4$Vaaxz3O|~ZXI2xwg#7m$Kdd&xTF<(CyW3R;B!kXvh zZ83N~MfPefaM|d-Gchq%_LF6v&ZGK<%@CST%(>)Gqr;YYRZY~w&vZB)7km*g^~plU zd+d|Enz;Eiy4Gu6R}09-rLMfvnSEZiAg$FRjH2;m!3o2Y&!cwZDX^@NFA3XDLFJGR zn2BH7KaE06`Bi0@xx_yyfgh*In=1p#ZK zRE7~T)E1Tp@5U${H5bTS${h6{ydTK6M)$ej$gpe$v#U^3iz?MLt13lUyMUkFclMo4 z6Owt zq9c?DR8bWPRe{+_J*hCXo<~OfkUowLHnsDReTKk`q(9RQRK~A=G#0xqtS{%30IL92 z-}xAPIC$olSNd49qR0&L9^h*j?Tqc+`Tp2uJB6e5etWw!Gjr@kc0>#9U*#I5TouP6 z+JZrf@}Nq$)Pi*sjL9MCC(bz?um0U=qrUlFV(FMhF-P-aN%ZVU+)Nx*Bbqa%*Hf98 z(@OKV-d@OY92cC!oprXK7`v8p?>$ptv$0}$jJ&wABx3@~!M(nPyjRhSVK8WqX3AWqu<4H_q=OX^4$=%|ph{N$)fu}A z^=F@2A@uWDINyIQNPL=Nua!6;f7y_C(fMF~Wyof?`V2P0TVGh8xB1@Be&Xq$z4>ds zquy}T-uHX5azTy4+rj?;1>2_-3?ToJRAAvquGB`o&`BePNrIYWkqi!=P;{h$;{2yE zyZZOBg;kd|?G~k5k}bnzlrg+ojs$J7&xML_=Ao%Yt8mL!3LgKaD?()9$Ce z^oFd@MC8Jgnib4@Pgi|=QFI@yPjGV4p{eoa zt|4X89Zw$9nZ;^K@{L+x*RVX3C|6$NCM0vkZ6$O&-dLrA_iSx(R&DWd4meIxqxGyv zPF=-_8FpKU5Cm)UR%&qz)F7w)d&5HWe zIP4Af+7l3Mt)||0HEM$fT4>$%4B2$Owq%Z|aN%F`$zJa)eeUMVJ#x6e-48fs*F2t9 zS#v7EyKW3Z9^3c#))jFm2R{f%<~Q;{_2T=s=N4wYf;~k3LgTfpluBN?c&RS`dv+?I zc$E>QhM1$8tLnf0i1WPmab5lO@YbY#ef^zuE^`(Bexf>C$<)c%*_Zyly)p?^i~q6~ zcn;M~IG=cQ|Mb)k@_5k6aLK1PG2RT-=0Rh)wb0h|$dRpE2PUzNJ3wBK=j}j?QyrGq zF_xT&MJ8)P$VZv^Oko~0#)IX<@?w+#Ln|f)OA*{2;pzsrPAYVT3DejL|0mIx@Qm^7 zE-QSs(Dh!n$^^Z&9tQ*gniZ6xTktz#LDB11{NFI`YH_;FI6H;X_Fe&Ft$vc5p$@@E zW`-oZ!562=wX_b*UljV1tgKygwUWef`|bG%j0#sa_>ZG>x0APYj;cP=fH@~Y9tXsP z0)D}aaf2y>pZT9X2o@q$r=mGc`#uop^MKDF6YqAY$L7|bVDNnX#NA&atRAAmB8X+_ zyHaK@-+?D{Tf1Qm3VhIpXI)YkMoImLT935(fG@`KY}$4l^;>y@udE_ZyWYS@MI`^4 ziJbs2LQq|BtJ8hDfz{xLfq}oV)=;-g55Lt(>m+X2j}0j*e?x8WEB#BzeYV-!XyMO! zW^dn=B#3QpG1GRgi7}IF7RZWY6MGhQdrh!U-I1`JevVwyS|S6sRe1X>2|DM;uP1I& z6zM%f60H+#oQrrrakzLEw!34r)VM}RwAzig$vp6&%(_=}`dWA&yAidpI(A9c{L9`# z!Q#@)KTwvZ6Q~H`WKNJ1UJlmCB&4cTHd+MS2)FRgpBlZ6Ok z=$$~a=hf)FN7{aW^3_I2>wZ#X)D(5xx0?PnF-76sY|s{=g;BhcP0JgH&*lYANMH+>~c^Yu66Y;EovC(R-a`_bAAi34amG*<3e&ZSE3 zb@!%cX|j~noZyL~IfS`XuH;e&n%^W~NGfgQI7FbeG*Ry5m7&mJkSN!D3doZZU%Gnu z@v8T46^^Eoq;w%DwO+$R%_01;iJoVcG_I!J`GT%G>UTAv<*%SUmjcfM&+?9i>MYAV z+h4PsWZn5^PWP#1s`rYctMbWm33uYKsOd}_ijFm98^DC%aueUjsjJ%x*Q^N6zshj@ zCCi@82pToCd#EsZD0+cHX>Oifu$u3#v^;6mR%46Z!@9vbrv6F$zYBZs%2sUZJZ#Nc z#k4do6V^2-=Qb9+PB0}5hlE#cNxHJ(Jn(T?8!L%AJzw%3z4^L_n!8Nq3sRK^cYeo}*q#S)PM^0xl{IWjp>H2|k@r@&TZx6-v>4NMob8*2{YO*Y)mHgSX$rN2VgCWt5FFl| z=A&l6agf*j0+C08xS$juMp$AyrTfPeBL&pI|6!^r1-2X+E7A50DHgz?juZ=_E`YK& z^7Wu6Xu8-QwcBX0+;xVm$>a!Q7^h{M=x!4~uQ6ndY?-`RaXrI)K`MO`tQ`&tw25?I zl#M(Otu8voqmbq`T_~pJ@ConnHQ@5&4S0>`%lX5!AoI3a5Gl;7^N1m(z`CMTGUWMn zT1RAf6vAiB{>g|v;%_e~S9rims-!Ll`@z(9(1u527cUHTj_2!Upl^*({3;N>b8&_O zKA)m3J827U|6O9cx03_iiq-O2{OODFvxA8$7<@9KQ88r#dUIWFq4Y2LPVr`)&%dwy4`e%sz&TYKRMao zd=FM}YI8vJ7JnnY_i41qTpxlV1onG*F_bZDaAl7h+w6WE2bfVcX}2izja@fhG+Kh! z77h^ok*e}QoX4!19)Sai*Ov@7i)L?Z-kvr3jS1H>%3^)@^`u8Df@1?9!US_enKueJ z7yv7{gr0}qUkeysOQ02Zrl0LvLyU5oE_N@mwL3t9hg1XezyjyAwqTyYK06n8`TfF5 zrpv51au3hAnuFKD7YIrlz*sW)FKg*|@npOe^idFZy2O0Z#jCvOXZ)2P&r1u;px|hg zN92!-H@Ds>_my3CFlg4a8d76M)SF{an?_xTIsYvak~N(j<6sb2*mew<)Ya6Z-2Inr z87+n}n-(wpSvi$?p*snJvbbd8kndf&al{ceWT>_uagZ>lL?^Ipnh>K*)iUP((ce$#OuvqT5o5)xT2Q>RYpw+(Gz8jB#5Nmr(4PBRewV|E&x`Pm ztag7s?Tw_>*LxZ2F5&6FbR=A9OWH$o!{=x|aAna)s0%#!9Z~hD70+)AMw901J+2Sx z`vNkUoA!P>{n62MaoL+ND8maK!VISK;B9iVD_%t%)bYbRH9>6O6ykfEsy=T#?~Ha# zd@=aqUW{9st=}0;uw1??ntX7}nqc7p2`CX=or`%W@6~2iU2NyNtrU@G+ zD^-Z+G0oOZOykZ6pdjGTjc6WlAGj8;dkl2Q4!F_1Z>OoywsVl1{D|!YMz1(NIFhtE z7M4+6GDB_VwL@qwA@#JGDVT%JXT&_5iW_;DXs$E|ob+KmO84eGP3$t|Oid9t!W+#J zTM9P?@BWB@>GRI>`!+I`7~FvkFtON7yRqL~u#kGu-38Nur$GBk^Bi$uZl>JZ`4P~} z)6BclW|r>nUdK2;PlbW%NKhJUv)QD+kqeXnimwzbmoKfy;%RAbGP)tBP}##kX^X0$ z%pP!tD(da?pq`nuHXD-mHv7uGXJZZ>PJqV8cfwM=%$V?^;rLyA{V zk2ZQ=x#Ig;oF5+ul||b2*%ofJ(w-WrZvV;q(A}_DpKmcNbk!axK>YQ#anG9_x>5sI z<+TnF?HT1VQCPT+ahU&=DB^Cv)!B8v9g5~HO2tLS$Zvup*rzNd^C}m1IH>GYUfh(>kibzj%F)I@Yd$8r`?E-ol$o3&r$NFL$#%xiMG(35U600g`yON zSyEG!GgR2L15~HrnYADsQt(G6&n&MSUFm9V{T3=HfsU^US_f+0e}~g|B>T@Rp+zx1 zrFT&K-0SI`rPP`%&ei$*TxDId5NfQk)YeMqtF#t5eFqIj4x8*PAo_rX+b!2NTZ_Ke zgX29QfgY(k0$Kd7AIfkDP`L<#`LSdctLmJd(5@C%e0mrle;ri7)~RaRX1L}KW@Kgr zBz6}2mTt22j6b=fInGvjpLwoC@)rfhdXASNOIo|5WZ`EZ=G+N(?&p9%Y*%hkq|c*H z;nnU)rBIjr1?E&kYj^JhtRz*HrYmQv*ecy`qRsh|91-C+_fxR-w1@nBoX%fgW@=8L z>~_9W=KEeN0<7-iKHv5FC&OPj1#awvUEJIdYd4z^K9pD1bq@@^o&T`=7C@-6Z5N z%ypNZ6R{hTlBL98;vegHG z+w~-zzx!3+*2^Zc-t^mQD8rPqU>mloAnh621+8p6XkVs4zkr3(R=#i*kguxs7h=g( z^JZq{nY@<#FaF~9$|r`czQ1w|RZpf+&c@uS&9J5}vH-)Dz$?rv`{qE%_|S5VdV%9I zFH38dneqi6UMr#{3rkxbBMxXgXKm|%T+=fWw=mx%(?4xuS?wKqO8C%fK@YOXdlZVU3H$&ZkN0ZBQ1)z{qR* zc136*oc->2^qLAQej!I2=fTwPCeMglZZTQupqEshybEnhpk7ZA&pRDy`s}-JI6zYA zZ7Aj2KBl$NMGlS2m>vlKxPqQIn?B%`P}})pw$zuQoIp!rJa6 zJC7GlSe)Y-#3!_I%vNCXDaQZ1-u5}xB*4?VWm|ffk>v+jj#2g{NgKSkzkbRgUqo@G zOk1-Qg2-O@L!7T6FXqrdCJLJf>DH$PhhLsUg9= zeqJT+>V2RE@2>8lxnV`c%W*VV*n?PA-0|B?tILa|qfp6U`BwrJvTJ zT^rSv#-DBmNLcC%@-&l|ORU=eQO!!T33bVSSkMN)#U_z& z%D0imwAC6{Hui*CBdaDtdagu~3uMOE`>*S4eb_$q*Q&Xyy;Y!n`8IS9iXWY6{Zk3z zFUl;1(wU;B2TijP=7Y@JnHNGE{%nrD&j9*jPAeaqzegk2p)UL*mThl22*QKeUK-y& z-^*V@=dcDLtryT0Y^5H}kxZ}UH*-68K15H)FS4ib_>F~E|CZ?$d{PIn91_eNLi`PV z0NhEYQMT!O44glM10tRy2-kz{VVSsYr^Tz-@mX+GbYjS@1m3PycovtWmHtX5uiV2# zfZZ6CZe`v|R71W&sfAQ~yj@~>d?hu=gu#Y~wZn2wGH(K`(nB&NB%xd+)3c%r3pFS> z(2R#QWMbm@pd2OeQ1jQd$^^DuC2ao4bvNG#Ars)!n+O`~zWe}@)C=zm+*u)Wd|Ni% zxE0)KFpwXj4Bj$fS>ilFnCQCif7b66sO#mM#Zmwl-7cDkq~C?KMCBn0)ekRic5Fc! zU!dzN4d)E(Df3PDU%k`Qadkk(C+|M7%O{^IeRDa1>uGvGRI733zX2#MGhir;2epz#_$76)qrlNd?aI5elKKLAk(r`h<({_bG& zdL`_|ft~yHCydW%ckZO`dvK|?pW~5J9qL=uy{cEvvqC+;R2F%; zh8YvFP=sx3@uvRBa8GPBdd724PKb9kfbgNf&$#a_;Wpt+e{=VpYm=Gtz@;4mDfnjm ziZ2{nBHD`3lY+=d%L3Oj##1+nl}q2T`|2e$*fHf|n@AB7AGb_Y(e+Gr=oPXvP*}1Q z7=8)H!DcLy65E#BrrWC9@HzFX0pYdx)nKcW`rQ$6n=9g^*?w1!o3n0WfN`@kN^nid zVb|1^9Gn#`mD4cu(J(+0h+xH%asx2^llii1$cHZs)AYwWOh>P9fPG zg&nL7>M~(&4bjG$L7xCB+?kO@>`L7^20|j_7C?(>O@kH{M6AG4GIP2*kR3b71Y$!r zS0X|LgDqT7h*s20vL=YirUmhjne797&ddgO43W|R@-Ed|?jjw+59%M?^>R;Tw-b3n zcX>jF^WeK{y%m0c5i&&gaQ}u$76+m6{imtlh|hb!$;yvhSwaiQm>6Js*v8> z@1}X%rL3FB&^i64=hoxhQ@_Sq`3|-<^!9z>In2BI;`$e6Oa0NG`lIj!<~skZx3q6q z&q;s`aN@b`-Em8G<-X>=b?upT@=%^ATZ(ujnProz>@O_OX_vC7AuBIJ!rh`FNh=k^ zG|Ij$qpFlzTYilpP|-W<)T*>oI@!SOKJczPeYC5Q35bp%k_ zS6%jafBIX-hb+r7r2(YW!7H-qC`jW4oN#mhFT&mLAG31Lc%VPC-@{ID<*Tl&8=HhO z;AM7k*1U3*=$vJV9)&>ffLM7U>X@y}vlJ+L#jlujJaT+Iies~al}LCu7x%M*5=|a( zc-C~MqKXR+)J>8asp~iLs@3AQ9Q(J4?#k@Div`Goa3#!eUJF<u<7RyV)Brg4-+p_R3yppDZKX z{Kh2p03SY2b9j7a8FI>BNTm{wsSnzTZTo#OA1rpm5R8BBN;W6A1sOBssl?auz)5xy zZY?qJY$JXZg`V229@LI*#Y?z`NlLVntti-v_^wZP#_l0B^m^#;gIvN37{4kcLhU1w zn=QoO=nsdI&EC(7=f(DA_;KGkeYA{O-_o7^C{?p$M@*F=njd*^lq0>?8m()BFL$?i zZg(dqWXm}sauA>fV0#hY3A#{T@)Y;&xKd7JJOo>0<+qjxEdG#5gpO|Rx9*u`1*?d49UI}-#X7i|u1 zkZ$n2K!%@aCScAZAEg6&pDco&3NNN(>^`EbCogG9BU47`a6%1A&xK}$zdM_nIQyf5nM3_HmI zpKZxjA8_WWm4r9(BnGqVs`KiP*em|hM2ZL4M#pOVo>ai=C+D&!&}g>ah}PCJnsgp< zkL!Pa#vhq8)Sa)mPF|}e)r_k)vIV>6`_e`2)C|uc>dCYjo>}+TsWDQz<>>V7(uz9l z6RRt5!$vo-rAfrn$9bTzQNkJP0#dEfjZDti3UTUbnLa&d2%O!Dqq9HUwo>gkj3LlB zvo&4}_lYpSC>n285puVPOKJO<5;|WMPUB}?x~62w2iso~wjA&C=e;kBrWGVef6YJd z{Nmj42`l6@m+J@UMH%@a0yoA}N|370HCo{-EKUW-a7# z(KT?(Fdvo$+ffS((klr_x1S}$Y4Nd21wGS zO&)0m&u6$cdDW;z9N%@=@Eh@+PiZ7j*t2EkjD#r<1`xfnCOVzEL?GrO6eb``mBFnY z`^%FXt$|?gRsbfdme(T+mc#B*y!nZkd5jy;kiAgv(DEj-5@bpomx+PEXe8sjc9Z8| z`BCa%sc?a5W9)f$=1u^$Tpon^3BX`{vL=cy?jPDJK$pdy`3OGX8u|8!MG-!x4+jo! ztvUY^HE?UR;d-DED&VIDbE#0s=iJ53;oQ??wlD{5t_)Vhyc2x=73!{a#K_;}%HW3P z26P-=`$7@d#9ec^=QH1LmFaoGP%)k9EeIC{>)?M8lH-}3)8RlG7-2GLeB9yq4upz8 z1nl_W0-;Khw$0C&rSy77W1aUv%aW!|uapkB8Ef$5FR=%SN<1MKM018(bo+)eNJ+yl zR}`2WJQkP#Eu;)-H_15+i8?t%pkUk@1_I#x5CKF+=fuz?kz%brddh*}x7xc7LV&@0 zodHk@X(x1>Mr@v=Vd>ta5U`B%q-iCKRc_c@Om7m9aIuqN8D_=Iri27~2QFCKmw+_g zc2}})JQ)F<(0{jX$(wjIdI{u8IR+t|@K1aEwV0_e@y z6C+=|?+x4Y)OWc_0ZFycJIdPafn=kkqI zp_a2H&sR&q7r}$q%6)a;jVI4Zv&!mD-vuy%LUNSKa&q*fGuZ)ry(-!Jw_>hEySL43 z4Q|v4(v*>P={7+USpYALDj6Z#fXt;(^g5=0ThoN>jWZPs11CFl2tl%Wt~D`xX7olE zT`-=o=!f$D&Oe_co#A}a5a?CeN%l_cL7Z|YV$Kpu7s^&riIs)eT%CKUhExlyzt<81 z{2q@Hpvw^n`zoqK9=5u(RC-mE{IwO@rY?4|lx{2c>|5zixiFg!CA`gt`4;K5i$;{h zprTNt4Mlfc*f^o|zu}_QRx?E965F+z=zUs0$2Zh%&n;ju_pAMlJ*Ed)brg4XH4VZw zL~K5V@!r}*H!C?a`u&}urunWFHlGFUD{0OT)sSZ96`&SK$n3%SB?DBkhXitB5v6j~ zawlrCl&3R~r}WjQtD2n|O`PO1wKky2eK!MwZ!2}o@Z7_#pq@Mb!j_e8AHA|83LqK| z0kgGy6Cd$Z%;Ml!X?cgrvB7Hg6Xq{inDK4Z5Xuuff151bgmVqI5N93bm8mP6NsHB` z0pX=*h3pr=D3^?qWHHc;?@V;~YW=VdSbiaRMu|7?y7-Ez6>iw$Uv~xS0|x6Jcep%K z!~I{1qn7QQDzE?5h_nhs@;hFVv1{J<253AA0pNQ%=Dm-RY9+nqoMhp0#zJ~we#j51 z8&c_Yes0Lj1ku`!?kX^?!Bs|K1UIEuL!@p54sbGY|2TwxL2mD1{qdzEB^nO> zvS|wa)po=@%l#^Zm;zMFJ$rIHO_DBRkPd~mes_S@;&d}cXXPD3)Lknmp<$Hxh1ewv zn1}X3b_{P%h;vL8xB7UGPACYwE$J7(j25HB4_I($@TI-{6;xjB?1EHhE}gP{wczh} z)be$A&SvuRS&b|b^_w*(Ysw$o;ZF7sjszNrzK&yrSx(5Fqh|yr+^RyTG0+wN+HBSi zWLF{UkqT^CQox!#EvNph1wF5LfAoVeTlRkNFX@M@wEE(N-~dXrGedA#GA_8&)@Qz9 zKa+hl)gE56<*ONpI(`t*{gkt0u!WscgorNauQWAXN||3M?Z=%kS}W|=va)H2iEGsC zt?l=+%Ke0ZFgvs7p@!g4gjnUo_#-L#5F)FYZXX_lMdSr*t z<(jfS>@Xd=n&Nd7rkd=A3Z`1!f_#W2)V){B_YP|RJ8z1FiiSaMF zYN7NJN~I)%2rW=Q+!)I>rr%d3Gb_LtNJ9ZU->roG$&W?ipOS)1Vh*3D0JbD^7yX^j zZi?wm3FO_I!DesK_$BVwVk2x>hvBmax-862r-(PM3#Jew)Crcy4eOghu5cOfX62w# zf#yIM$RS?gm_!BKAjzdPok&m*dHW7|AbPd~zuN1jb;UYN1=0S#CPO1>1NX%ZRil#9 zcTf;*A2Fp&)p8#y7qbcg#QU40wXH&(_*uL|2# zN`Q^8ct`(~K2w55VTWtd@jd>yjj$J2hWiv45&hL3M0EBaYAOdH;57s@>3kk0O( zmwt^s5Ko%8bNOT6jf}m-Az#G$llM+cwErBDp0vtT`})s+9uks}z1UhX(spwRv5kT2FtkLoFF+48)8~s7omWn} z=vp{)3)jY0qn|Q7vhs{Syfr}lt5pr6&HvF=GCjQFlB7={|6>#6 zsRzwTn;5E(E`+adYe}ut1a8wdl$RUgs-V$fw`{!v-~sW{-(qYfCp_EPKQ#8E_ok06 z=0Giyh%)P1eGLZw5%nxb?+|W{C7yO2^VyOLr>vS&p7u{2D*x{mBbY6b2?biVKjP(_ zjbk8x^2dXwbr)=wP5s7_Am8h21%zEZW0!#BeM>q(F5~gV@>RXQ+IQATK8Q@D*2J$k zY9OMu@vg&+>_*&fyFrJs%wG`o}r zYGfL>^eM%pWn^cz=^PkFAC?WyvFIQ7w)N@Q4=`}HF zmCP3mTR1+BK_P+O=aZC@aF+Gut`!7NBY@aqz6+3I1G!QU^SBR}+-h7Je{1N({w~4F z|A@DB%u+0>Mf)bxs@R#_G`ht)-*#;T@&NG}BlWS|3Fsnyk0S5LO(M@HmZdwia_|`x zB2pXnn*V6$(0_#qnl(n^VSUD)Ku=%`f8Y!=+m!+4{ zN)vU94@$Gzd)OGRsN=Dy@{rwCqsdBdjUE{rd=6JRDAi;nB&?H5tt>_HbCIbEPp@+K z1s#DgQC)AtUt|&sMvg|J^s&p*i=zb^oqEcv46(xIaq_VkRl45N%eb{Y3|niIBk$tj zRYzK{VMQ8jsNNxiD1z!JC&;B0wN{axL5?WUoBcRxZRQ-JkW1gRp}zb6{4snm0!m9 z?qFDEDk2kssY_r7gmrt;QTu;R9V|hku;SHZN^cj2O|mkfl$(J6r|}7~OfL5ODu<7XTaP;MDyGL=-R?`FydjlT<_t$@56(@5LGyDEY2xZQ z?w5G@RH~3o!>3b)$t=T|f~%J9lsH^!cv{(jw|@;&|71K4L_#7;2a`?{7iu(#+H;CF z4zUvgOa8q#PJw$6h>@yC^m=L~m5xP(4H?L-Q>hMqiB8q!5V*y=8Zm9u&AOV1%&Wzl zt?k6X;PrV`ld!h1o;5kpLAF8S)_el@8WhRL!L4~VVe+f2Z1KQ#5Gj2$eNt5Fq6V{! znNcvKP+4(tW}Nh9MC#PfwOK7sGSXW-oXQYM8P|L9~wlzv0M6 zk4}}YD5ply!7tO89g_xesILJqgO+4a%dOIiA+Mkh%s({D?->(k?YlHk#-&&lO9)jj z6t#PzjzJ&h^61ck;84}06EF@)O1oC{b3v%#;#EW*n4SvST6tjqc^_NKpeAe9A_b@g zuRBN>SV%}PFUE}(*F`S&fA$-YQHX(T20R$Ig{;0jsH#e9+^IU7j5*ZQzkS;A2Mi<{Ome`iG7xCNy;A z3P(`st#=Y8nYyKyDJ%0nG;&{V_tZNt>dp{Qeb3QiqC)^G`!U$xPD z@(8E@BvhG zpYcBxn3;Yu4c^k<b(XnPnVstQK7u! z1nJIuaHWHRJ(Tk1#vVd@=7r{W=vzb=`_%8w_-_9nXeIamKeY0ng3bKjj7r_4Nvols z$YRf5undc0_2d##a3cwn;N7Reov%M6aLaoau znzKtYDG(HBu$9RW*G1{*eEWsv<&bz=U6~Qc=;~$t>Ae9qIp10>*V*Q%ML8>S%jao; zs;P*}hmGx9Mbdl)uQ|S0q2Vc6HqoEy|BUC9%k#Mise&an-Ep`qYZR-3F6v#xkmMt- zMN<-lb{Q#IA^FPVo~YAp5OiMsekd^qmK9O}&YRUp3S81tbo5R(a1>!ZVxYrBQX$tD z(o7xRkMg1g)>f2}mKGi2c}`289V2lvz4T)E!jLe4e}irgcY~epeigqA%+|iXf}w|( zw)~HAVE&It{eMc&|3yJ77+ER1*#0jkl>MLZ{QoYZ%l`*>7q@hBb|Gf{?~-V&@aZX2u zvq3+EB;voc-2jOM@_r2HKq7<@Q6fSj5}g(~x6KVqLJomwHXS*0#os0@bX&Fd1%T8Se7H4K~;nD1(C){M-t+!Mx zd)Db&k>zdM+Fa9C_%e|ptN_kF)z5NjOWYy%Q!Bpn`C+rjc5(JSWK=Nl0@JIVf+BE{ z&Hx$bnD63UOa85#&TX~(H*YYLuhMB7nQkPkZIBS_Y%JZKyj{Z_c6&ELVZ`tSHH*OR z;>74?TmI>?=!abj<0vMN>j%X~TgTJvG_BoXy(S@Z7Lwb2#_$`6=s|~3M|^CWjNx^M zRq5Zx)}#8-%~!% z2>TeQct|O>@LbguJmqfq;V-j8W+Sjd2w3(R7Z6uH@kiP2_%cGEa%2qaU(fc|Fkj;d z&qIYYNvDr2AAX|iKqcX%?uw>ZZtu~#6fW<`CGUs zSqO@`#x)fUld$?zCIpyjt@ZK8dFH46_R~2jEhX9BWql2k`&Tec=WK(!C(~B;o*)B{ z^dF1<|KR1B|3{o^08P#QSClgU@1bbpV(RoSByIko>7u5__9mvpO#gNL2d&%wm#Qve zZ{uof=S&r@AMyl{XZ1C`ad_FnV99@`Ojuow)8Un*JhFuCDsO*u`nB( znXqN1D1k9OhFv>e* Date: Sun, 16 Sep 2018 17:12:58 -0400 Subject: [PATCH 18/34] correction of pirate ship movement --- .../nd/se2018/homework/hwk3/PirateShip.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk3/PirateShip.java b/src/edu/nd/se2018/homework/hwk3/PirateShip.java index 25b33fb2..20b1effe 100644 --- a/src/edu/nd/se2018/homework/hwk3/PirateShip.java +++ b/src/edu/nd/se2018/homework/hwk3/PirateShip.java @@ -59,17 +59,25 @@ public void goNorth() { } public void movePirate() { - if (x - shipPosition[0] <= 0) { - this.goEast(); - } - else { - this.goWest(); - } - if (shipPosition[1] - y < 0) { - this.goNorth(); + int xdist = x - shipPosition[0]; + int ydist = y - shipPosition[1]; + + if (Math.abs(xdist) > Math.abs(ydist)) { + if (xdist <= 0) { + this.goEast(); + } + else { + this.goWest(); + } } else { - this.goSouth(); + if(ydist > 0) { + this.goNorth(); + } + else { + this.goSouth(); + } + } } From d81c9644f387c48915efe35e4f8104804519121d Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Wed, 19 Sep 2018 15:55:03 -0400 Subject: [PATCH 19/34] homework4 --- .../se2018/homework/hwk3/OceanExplorer.java | 2 +- .../nd/se2018/homework/hwk4/Simulation.java | 100 ++++++++++++++ .../hwk4/model/infrastructure/Direction.java | 9 ++ .../hwk4/model/infrastructure/MapBuilder.java | 69 ++++++++++ .../model/infrastructure/RailwayTracks.java | 46 +++++++ .../hwk4/model/infrastructure/Road.java | 85 ++++++++++++ .../infrastructure/gate/CrossingGate.java | 128 ++++++++++++++++++ .../model/infrastructure/gate/GateClosed.java | 48 +++++++ .../infrastructure/gate/GateClosing.java | 49 +++++++ .../model/infrastructure/gate/GateOpen.java | 46 +++++++ .../infrastructure/gate/GateOpening.java | 48 +++++++ .../model/infrastructure/gate/IGateState.java | 14 ++ .../homework/hwk4/model/vehicles/Car.java | 117 ++++++++++++++++ .../hwk4/model/vehicles/CarFactory.java | 75 ++++++++++ .../hwk4/model/vehicles/IVehicle.java | 13 ++ .../homework/hwk4/model/vehicles/Train.java | 61 +++++++++ .../homework/hwk4/view/CarImageSelector.java | 23 ++++ .../se2018/homework/hwk4/view/IDisplay.java | 5 + .../se2018/homework/hwk4/view/MapDisplay.java | 52 +++++++ .../homework/hwk4/view/RoadDisplay.java | 50 +++++++ .../homework/hwk4/view/TracksDisplay.java | 35 +++++ 21 files changed, 1074 insertions(+), 1 deletion(-) create mode 100644 src/edu/nd/se2018/homework/hwk4/Simulation.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/Direction.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosed.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosing.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpening.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/IGateState.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/vehicles/IVehicle.java create mode 100644 src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java create mode 100644 src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java create mode 100644 src/edu/nd/se2018/homework/hwk4/view/IDisplay.java create mode 100644 src/edu/nd/se2018/homework/hwk4/view/MapDisplay.java create mode 100644 src/edu/nd/se2018/homework/hwk4/view/RoadDisplay.java create mode 100644 src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java diff --git a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java index 700e88d4..167a4bd8 100644 --- a/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java +++ b/src/edu/nd/se2018/homework/hwk3/OceanExplorer.java @@ -29,7 +29,7 @@ public void start(Stage oceanStage) throws Exception { oceanMap.drawMap(root.getChildren(), 50); // Load Images - shipImage = new Image("/images/ColumbusShip.png", 50, 50, true, true); + shipImage = new Image("/images/Train.PNG", 50, 50, true, true); shipImageView = new ImageView(shipImage); shipImageView.setX(oceanMap.getShipLocation()[0]*50); shipImageView.setY(oceanMap.getShipLocation()[1]*50); diff --git a/src/edu/nd/se2018/homework/hwk4/Simulation.java b/src/edu/nd/se2018/homework/hwk4/Simulation.java new file mode 100644 index 00000000..9971bd12 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/Simulation.java @@ -0,0 +1,100 @@ +package edu.nd.se2018.homework.hwk4; + +import java.util.ArrayList; +import java.util.Collection; + +import edu.nd.sarec.railwaycrossing.model.infrastructure.MapBuilder; +import edu.nd.sarec.railwaycrossing.model.infrastructure.RailwayTracks; +import edu.nd.sarec.railwaycrossing.model.infrastructure.Road; +import edu.nd.sarec.railwaycrossing.model.infrastructure.gate.CrossingGate; +import edu.nd.sarec.railwaycrossing.model.vehicles.Car; +import edu.nd.sarec.railwaycrossing.model.vehicles.Train; +import edu.nd.sarec.railwaycrossing.view.MapDisplay; +import javafx.animation.AnimationTimer; +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.layout.Pane; +import javafx.stage.Stage; + +public class Simulation extends Application{ + + private Pane root; + private Scene scene; + private MapBuilder mapBuilder; + private MapDisplay mapDisplay; + + @Override + public void start(Stage stage) throws Exception { + + root = new Pane(); + + // Build infrastructure + mapBuilder = new MapBuilder(); + mapDisplay = new MapDisplay(root, mapBuilder.getRoads(), mapBuilder.getTracks(),mapBuilder.getAllGates()); + mapDisplay.drawTracks(); + mapDisplay.drawRoad(); + mapDisplay.drawGate(); + + scene = new Scene(root,1200,1000); + stage.setTitle("Railways"); + stage.setScene(scene); + stage.show(); + + // Train + RailwayTracks track = mapBuilder.getTrack("Royal"); + Train train = new Train(track.getEndX()+100,track.getEndY()-25); + root.getChildren().add(train.getImageView()); + + for(CrossingGate gate: mapBuilder.getAllGates()) + train.addObserver(gate); + + // Sets up a repetitive loop i.e., in handle that runs the actual simulation + new AnimationTimer(){ + + @Override + public void handle(long now) { + + createCar(); + train.move(); + + for(CrossingGate gate: mapBuilder.getAllGates()) + gate.operateGate(); + + if (train.offScreen()) + train.reset(); + + clearCars(); + } + }.start(); + } + + // Clears cars as they leave the simulation + private void clearCars(){ + Collection roads = mapBuilder.getRoads(); + for(Road road: roads){ + if (road.getCarFactory()!= null){ + ArrayList junkCars = road.getCarFactory().removeOffScreenCars(); + mapDisplay.removeCarImages(junkCars); + } + } + } + + private void createCar(){ + Collection roads = mapBuilder.getRoads(); + for(Road road: roads){ + if (road.getCarFactory() != null){ + if ((int)(Math.random() * 100) == 15){ + Car car = road.getCarFactory().buildCar(); + if (car != null){ + root.getChildren().add(car.getImageView()); + } + } + } + } + } + + public static void main(String[] args){ + launch(args); + } +} + diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Direction.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Direction.java new file mode 100644 index 00000000..8fc5532a --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Direction.java @@ -0,0 +1,9 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure; + +public enum Direction { + NORTH, + SOUTH, + EAST, + WEST, + CUSTOM; +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java new file mode 100644 index 00000000..9c3c757b --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java @@ -0,0 +1,69 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure; + +import java.awt.Point; +import java.util.Collection; +import java.util.HashMap; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.gate.CrossingGate; + +/** + * Creates all infrastructure for the simulation + * + */ +public class MapBuilder { + HashMap roads; + HashMap gates; + HashMap tracks; + + public MapBuilder(){ + roads = new HashMap(); + gates = new HashMap(); + tracks = new HashMap(); + buildRoads(); + buildCrossingGates(); + buildTracks(); + assignGatesToRoads(); + buildCarFactories(); + } + + private void buildRoads(){ + roads.put("Western Highway",new Road(new Point(800,0),new Point (800,1000),Direction.SOUTH,true,false)); + roads.put("Skyway",new Road(new Point(400,0),new Point (400,1000),Direction.SOUTH,true,false)); + roads.put("EastWest",new Road(new Point(415,800),new Point (785,800),Direction.EAST,true,true)); + } + + private void buildCrossingGates(){ + gates.put("Gate1", new CrossingGate(780,480, "Gate1")); + gates.put("Gate2", new CrossingGate(380,480, "Gate2")); + } + + private void buildTracks(){ + tracks.put("Royal", new RailwayTracks(new Point(0,500),new Point(1200,500))); + } + + private void assignGatesToRoads(){ + roads.get("Western Highway").assignGate(gates.get("Gate1")); + roads.get("Skyway").assignGate(gates.get("Gate2")); + } + + private void buildCarFactories(){ + roads.get("Western Highway").addCarFactory(); + roads.get("Skyway").addCarFactory(); + } + + public Collection getAllGates(){ + return gates.values(); + } + + public Collection getTracks(){ + return tracks.values(); + } + + public Collection getRoads(){ + return roads.values(); + } + + public RailwayTracks getTrack(String name){ + return tracks.get("Royal"); + } +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java new file mode 100644 index 00000000..c38f4dab --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java @@ -0,0 +1,46 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure; + +import java.awt.Point; + +/** + * Railway Tracks (Entity Object) + * @author Jane Cleland-Huang + * + */ +public class RailwayTracks { + + private int startX; + private int endX; + private int startY; + private int endY; + + public RailwayTracks(){} + + public RailwayTracks(Point startPoint, Point endPoint){ + startX = startPoint.x; + startY = startPoint.y; + endX = endPoint.x; + endY = endPoint.y; + } + + public int getStartX(){ + return startX; + } + + public int getEndX(){ + return endX; + } + + public int getStartY(){ + return startY; + } + + public int getEndY(){ + return endY; + } + + @Override + public String toString(){ + return "Tracks from (" + startX + "," + startY + ") to (" + endX + "," + endY + ")"; + } +} \ No newline at end of file diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java new file mode 100644 index 00000000..b498d712 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java @@ -0,0 +1,85 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure; + +import java.awt.Point; +import java.util.Collection; +import java.util.Vector; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.gate.CrossingGate; +import edu.nd.se2018.homework.hwk4.model.vehicles.CarFactory; + +/** + * Represents a single road + * + */ +public class Road { + private int startX; + private int endX; + private int startY; + private int endY; + private CarFactory carFactory; + Direction direction; + Collection gates; + boolean clearEnds = false; + int roadSize; + + public Road(){} + + public Road(Point start, Point end, Direction direction, boolean buildCarFactory, boolean clearEnds){ + startX = start.x; + startY = start.y; + endX = end.x; + endY = end.y; + roadSize = 18; + + this.direction = direction; + gates = new Vector(); + this.clearEnds = clearEnds; + + } + + // Adds a gate to a road + // In case a new gate is added after the factory is assigned, we reassign factory + // The factory needs to know all gates on the road in order to register each car as an observer. + public void assignGate(CrossingGate gate){ + gates.add(gate); + if (carFactory != null) + carFactory = new CarFactory(direction, new Point(startX-roadSize/2,startY), gates); // allows additional gates. Needs fixing + } + + public void addCarFactory(){ + if (carFactory == null) // We only allow one + carFactory = new CarFactory(direction, new Point(startX-roadSize/2,startY), gates); + } + + public CarFactory getCarFactory(){ + return carFactory; + } + + public int getStartX(){ + return startX; + } + + public int getEndX(){ + return endX; + } + + public int getStartY(){ + return startY; + } + + public int getEndY(){ + return endY; + } + + public Direction getDirection(){ + return direction; + } + + public boolean getClearEnds(){ + return clearEnds; + } + + public int getRoadWidth(){ + return roadSize; + } +} \ No newline at end of file diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java new file mode 100644 index 00000000..187661d6 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java @@ -0,0 +1,128 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure.gate; + +import java.util.Observable; +import java.util.Observer; + +import edu.nd.se2018.homework.hwk4.model.vehicles.Train; +import javafx.scene.layout.Pane; +import javafx.scene.paint.Color; +import javafx.scene.shape.Line; + +/** + * Context class for Crossing Gate + * + */ +public class CrossingGate extends Observable implements Observer{ + + // Crossing Gate location and its trigger & exit points + private int anchorX; + private int anchorY; + private int movingX; + private int movingY; + private int triggerPoint; + private int exitPoint; + + private IGateState gateClosed; + private IGateState gateOpen; + private IGateState gateClosing; + private IGateState gateOpening; + private IGateState currentGateState; + private Line line; + private Pane root; + + String gateName; + + public CrossingGate(){} + + public CrossingGate(int xPosition, int yPosition, String crossingGate){ + anchorX = xPosition; + anchorY = yPosition; + movingX = anchorX; + movingY = anchorY-60; + triggerPoint = anchorX+250; + exitPoint = anchorX-250; + + // Gate elements + line = new Line(anchorX, anchorY,movingX,movingY); + line.setStroke(Color.RED); + line.setStrokeWidth(10); + + // Gate States + gateClosed = new GateClosed(this); + gateOpen = new GateOpen(this); + gateOpening = new GateOpening(this); + gateClosing = new GateClosing(this); + currentGateState = gateOpen; + gateName = crossingGate; + } + + public Line getGateLine(){ + return line; + } + + public void operateGate(){ + currentGateState.operate(); + } + + public void close(){ + if (movingYanchorX){ + movingX-=1; + movingY-=1; + line.setStartX(anchorX); + line.setStartY(anchorY); + line.setEndX(movingX); + line.setEndY(movingY); + } else { + currentGateState.gateFinishedOpening(); + } + } + + // State getters and setters + public IGateState getGateClosedState(){ + return gateClosed; + } + public IGateState getGateOpenState(){ + return gateOpen; + } + public IGateState getGateClosingState(){ + return gateClosing; + } + public IGateState getGateOpeningState(){ + return gateOpening; + } + + public void setGateState(IGateState newState){ + currentGateState = newState; + setChanged(); + notifyObservers(); + } + + public String getTrafficCommand(){ + return currentGateState.getTrafficAction(); + } + + @Override + public void update(Observable o, Object arg) { + if (o instanceof Train){ + Train train = (Train)o; + if (train.getVehicleX() < exitPoint) + currentGateState.leaveStation(); + else if(train.getVehicleX() < triggerPoint){ + currentGateState.approachStation(); + } + } + } +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosed.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosed.java new file mode 100644 index 00000000..d99a37c2 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosed.java @@ -0,0 +1,48 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure.gate; + +/** + * Gate in CLOSED state + * + */ +public class GateClosed implements IGateState { + + private CrossingGate gate; + + protected GateClosed(CrossingGate gate){ + this.gate = gate; + } + + @Override + public void approachStation() { + // Do nothing. Gate is already closed. + // IF there were two tracks we would have to keep track of how many trains were in the station! + } + + @Override + public void leaveStation() { + gate.setGateState(gate.getGateOpeningState()); + } + + @Override + public void gateFinishedOpening() { + // not applicable + } + + @Override + public void gateFinishedClosing() { + // not applicable. Gate is already closed. + } + + @Override + public void operate() { + // Flash lights + + } + + @Override + public String getTrafficAction() { + return "STOP"; + } + + +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosing.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosing.java new file mode 100644 index 00000000..7d678d03 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateClosing.java @@ -0,0 +1,49 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure.gate; + +/** + * Gate in closing state + * + */ +public class GateClosing implements IGateState{ + + private CrossingGate gate; + + protected GateClosing(CrossingGate gate){ + this.gate = gate; + } + + @Override + public void approachStation() { + // Gate is already closing + } + + @Override + public void leaveStation() { + // This was an unwanted event. The gate wasn't fully closed when the train was in the station. + // Nevertheless we will open the gate. + gate.setGateState(gate.getGateOpeningState()); + } + + @Override + public void gateFinishedOpening() { + // n/a + } + + @Override + public void gateFinishedClosing() { + gate.setGateState(gate.getGateClosedState()); + } + + @Override + public void operate() { + gate.close(); + // flash lights + } + + @Override + public String getTrafficAction() { + return "STOP"; + } + + +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java new file mode 100644 index 00000000..33e792df --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java @@ -0,0 +1,46 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure.gate; + +/** + * Gate in open state + * @author jane + * + */ +public class GateOpen implements IGateState { + + private CrossingGate gate; + + protected GateOpen(CrossingGate gate){ + this.gate = gate; + } + + @Override + public void approachStation() { + gate.setGateState(gate.getGateClosingState()); + } + + @Override + public void leaveStation() { + // n/a gate already open + } + + @Override + public void gateFinishedOpening() { + // n/a gate already open + } + + @Override + public void gateFinishedClosing() { + // n/a can't be closing and opened. + } + + @Override + public void operate() { + // Normal operation. Do nothing. + } + + @Override + public String getTrafficAction() { + return "GO"; + } + +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpening.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpening.java new file mode 100644 index 00000000..adb4352e --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpening.java @@ -0,0 +1,48 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure.gate; + +/** + * Gate in opening state + * @author jane + * + */ +public class GateOpening implements IGateState{ + + CrossingGate gate; + + protected GateOpening(CrossingGate gate){ + this.gate = gate; + } + + @Override + public void approachStation() { + gate.setGateState(gate.getGateClosingState()); + } + + @Override + public void leaveStation() { + // Already opening. + } + + @Override + public void gateFinishedOpening() { + gate.setGateState(gate.getGateOpenState()); + } + + @Override + public void gateFinishedClosing() { + // not reachable except through error. + // Raise an alarm!! + } + + @Override + public void operate() { + gate.open(); + // Flash lights.. + } + + @Override + public String getTrafficAction() { + return "STOP"; + } + +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/IGateState.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/IGateState.java new file mode 100644 index 00000000..3ad398fd --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/IGateState.java @@ -0,0 +1,14 @@ +package edu.nd.se2018.homework.hwk4.model.infrastructure.gate; + +/** + * Declares all operations that GateState classes must implement + * + */ +public interface IGateState { + public void approachStation(); + public void leaveStation(); + public void gateFinishedOpening(); + public void gateFinishedClosing(); + public void operate(); + public String getTrafficAction(); +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java new file mode 100644 index 00000000..0f45fed2 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java @@ -0,0 +1,117 @@ +package edu.nd.se2018.homework.hwk4.model.vehicles; + +import java.util.Observable; +import java.util.Observer; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.gate.CrossingGate; +import edu.nd.se2018.homework.hwk4.view.CarImageSelector; +import javafx.scene.Node; +import javafx.scene.image.ImageView; + +/** + * Represents Car object + * + */ +public class Car extends Observable implements IVehicle, Observer{ + private ImageView ivCar; + private double currentX = 0; + private double currentY = 0; + private double originalY = 0; + private boolean gateDown = false; + private double leadCarY = -1; // Current Y position of car directly infront of this one + private double speed = 0.5; + + /** + * Constructor + * @param x initial x coordinate of car + * @param y initial y coordinate of car + */ + public Car(int x, int y){ + this.currentX = x; + this.currentY = y; + originalY = y; + ivCar = new ImageView(CarImageSelector.getImage()); + ivCar.setX(getVehicleX()); + ivCar.setY(getVehicleY()); + } + + @Override + public Node getImageView() { + return ivCar; + } + + public boolean gateIsClosed(){ + return gateDown; + } + + public double getVehicleX(){ + return currentX; + } + public double getVehicleY(){ + return currentY; + } + + public void move(){ + boolean canMove = true; + + // First case. Car is at the front of the stopping line. + if (gateDown && getVehicleY() < 430 && getVehicleY()> 390) + canMove = false; + + // Second case. Car is too close too other car. + if (leadCarY != -1 && getDistanceToLeadCar() < 50) + canMove = false; + + if (canMove){ + currentY+=speed; + ivCar.setY(currentY); + setChanged(); + notifyObservers(); + } + } + + public void setSpeed(double speed){ + this.speed = speed; + } + + public void setGateDownFlag(boolean gateDown){ + this.gateDown = gateDown; + } + + public boolean offScreen(){ + if (currentY > 1020) + return true; + else + return false; + } + + public void reset(){ + currentY = originalY; + } + + public double getDistanceToLeadCar(){ + return Math.abs(leadCarY-getVehicleY()); + } + + public void removeLeadCar(){ + leadCarY = -1; + } + + @Override + public void update(Observable o, Object arg1) { + if (o instanceof Car){ + leadCarY = (((Car)o).getVehicleY()); + if (leadCarY > 1020) + leadCarY = -1; + } + + if (o instanceof CrossingGate){ + CrossingGate gate = (CrossingGate)o; + if(gate.getTrafficCommand()=="STOP") + gateDown = true; + else + gateDown = false; + + } + } +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java new file mode 100644 index 00000000..9281bbc4 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java @@ -0,0 +1,75 @@ +package edu.nd.se2018.homework.hwk4.model.vehicles; + +import java.awt.Point; +import java.util.ArrayList; +import java.util.Collection; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.Direction; +import edu.nd.se2018.homework.hwk4.model.infrastructure.gate.CrossingGate; + + +/** + * Very basic car factory. Creates the car and registers it with the crossing gate and the car infront of it. + * @author jane + * + */ +public class CarFactory { + + private Collection gates = null; + private Car previousCar = null; + private ArrayList cars = new ArrayList(); + Direction direction; + Point location; + + public CarFactory(){} + + public CarFactory(Direction direction, Point location, Collection gates){ + this.direction = direction; + this.location = location; + this.gates = gates; + } + + + // Most code here is to create random speeds + public Car buildCar(){ + if (previousCar == null || location.y < previousCar.getVehicleY()-100){ + Car car = new Car(location.x,location.y); + double speedVariable = (Math.random() * 10)/10; + car.setSpeed((2-speedVariable)*1.5); + + // All cars created by this factory must be aware of crossing gates in the road + for(CrossingGate gate: gates){ + gate.addObserver(car); + if(gate != null && gate.getTrafficCommand()=="STOP") + car.setGateDownFlag(false); + } + + // Each car must observe the car infront of it so it doesn't collide with it. + if (previousCar != null) + previousCar.addObserver(car); + previousCar = car; + + cars.add(car); + return car; + } else + return null; + } + + // We will get a concurrency error if we try to delete cars whilst iterating through the array list + // so we perform this in two stages. + // 1. Loop through the list and identify which cars are off the screen. Add them to 'toDelete' array. + // 2. Iterate through toDelete and remove the cars from the original arrayList. + public ArrayList removeOffScreenCars() { + // Removing cars from the array list. + ArrayList toDelete = new ArrayList(); + for(Car car: cars){ + car.move(); + if (car.offScreen()) + toDelete.add(car); + + } + for (Car car: toDelete) + cars.remove(car); + return toDelete; + } +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/IVehicle.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/IVehicle.java new file mode 100644 index 00000000..90d10968 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/IVehicle.java @@ -0,0 +1,13 @@ +package edu.nd.se2018.homework.hwk4.model.vehicles; + +import javafx.scene.Node; + + +public interface IVehicle { + public Node getImageView(); + public double getVehicleX(); + public double getVehicleY(); + public void move(); + public boolean offScreen(); + public void reset(); +} diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java new file mode 100644 index 00000000..e1ec4161 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java @@ -0,0 +1,61 @@ +package edu.nd.se2018.homework.hwk4.model.vehicles; + +import java.util.Observable; + +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +/** + * Represents the train entity object + * + */ +public class Train extends Observable implements IVehicle{ + private double currentX = 0; + private double currentY = 0; + private double originalX = 0; + private Image img; + private ImageView imgView; + private int trainLength = 35; + + public Train(int x, int y){ + this.currentX = x; + this.currentY = y; + originalX = x; + img = new Image("images/Train.PNG" ,120,trainLength,false,false); + imgView = new ImageView(img); + imgView.setX(currentX); + imgView.setY(currentY); + } + + public double getVehicleX(){ + return currentX; + } + + public double getVehicleY(){ + return currentY; + } + + public void move(){ + currentX-=2; + imgView.setX(currentX); + setChanged(); + notifyObservers(); + } + + public boolean offScreen(){ + if (currentX < -200) + return true; + else + return false; + } + + public void reset(){ + currentX = originalX; + } + + //@Override + public Node getImageView() { + return imgView; + } +} \ No newline at end of file diff --git a/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java b/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java new file mode 100644 index 00000000..2b16b3d5 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java @@ -0,0 +1,23 @@ +package edu.nd.se2018.homework.hwk4.view; + +import javafx.scene.image.Image; + +public class CarImageSelector { + + + public static Image getImage(){ + int imageSize = 20; + int pickNum = (int)(Math.random() * 4); + Image img; + switch(pickNum){ + case 0: img = new Image("images/bluecar.PNG",imageSize,imageSize,false,true); + break; + case 2: img = new Image("images/graycar.PNG",imageSize,imageSize,false,true); + break; + case 3: img = new Image("images/greencar.PNG",imageSize,imageSize,false,true); + break; + default: img = new Image("images/redcar.PNG",imageSize,imageSize,false,true); + } + return img; + } +} \ No newline at end of file diff --git a/src/edu/nd/se2018/homework/hwk4/view/IDisplay.java b/src/edu/nd/se2018/homework/hwk4/view/IDisplay.java new file mode 100644 index 00000000..d0efbde7 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/view/IDisplay.java @@ -0,0 +1,5 @@ +package edu.nd.se2018.homework.hwk4.view; + +public interface IDisplay { + public void draw(); +} diff --git a/src/edu/nd/se2018/homework/hwk4/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk4/view/MapDisplay.java new file mode 100644 index 00000000..a10879fb --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/view/MapDisplay.java @@ -0,0 +1,52 @@ +package edu.nd.se2018.homework.hwk4.view; + +import java.util.ArrayList; +import java.util.Collection; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.RailwayTracks; +import edu.nd.se2018.homework.hwk4.model.infrastructure.Road; +import edu.nd.se2018.homework.hwk4.model.infrastructure.gate.CrossingGate; +import edu.nd.se2018.homework.hwk4.model.vehicles.Car; +import javafx.scene.layout.Pane; + +/** + * Called by JavaFX main UI thread to help display elements on the UI + * + */ +public class MapDisplay { + Pane root; + IDisplay roadDisplay, tracksDisplay; + Collection roads; + Collection track; + Collection gates; + + + public MapDisplay(Pane root, Collection roads, Collection tracks, Collection gates){ + this.root = root; + this.roads= roads; + this.track = tracks; + this.gates = gates; + roadDisplay = new RoadDisplay(roads,root); + tracksDisplay = new TracksDisplay(tracks,root); + } + + public void drawTracks(){ + tracksDisplay.draw(); + } + + public void drawRoad(){ + roadDisplay.draw(); + } + + public void drawGate(){ + for (CrossingGate gate: gates) + root.getChildren().add(gate.getGateLine()); + } + + + public void removeCarImages(ArrayList junkCars) { + for(Car car: junkCars) + root.getChildren().remove(car.getImageView()); + + } +} diff --git a/src/edu/nd/se2018/homework/hwk4/view/RoadDisplay.java b/src/edu/nd/se2018/homework/hwk4/view/RoadDisplay.java new file mode 100644 index 00000000..1fb18d5b --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/view/RoadDisplay.java @@ -0,0 +1,50 @@ +package edu.nd.se2018.homework.hwk4.view; + +import java.util.Collection; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.Direction; +import edu.nd.se2018.homework.hwk4.model.infrastructure.Road; +import javafx.scene.layout.Pane; +import javafx.scene.paint.Color; +import javafx.scene.shape.Line; + + +/** + * Draws a road + * + */ +public class RoadDisplay implements IDisplay { + Pane root; + Collection roads; + int roadSize; + + + public RoadDisplay(Collection roads, Pane root){ + this.root = root; + this.roads = roads; + + } + + @Override + public void draw() { + for(Road road: roads){ + roadSize = road.getRoadWidth(); + if (road.getDirection() == Direction.NORTH || road.getDirection() == Direction.SOUTH) { + root.getChildren().add(new Line(road.getStartX()-roadSize,road.getStartY(),road.getEndX()-roadSize,road.getEndY())); + root.getChildren().add(new Line(road.getStartX()+roadSize,road.getStartY(),road.getEndX()+roadSize,road.getEndY())); + } else { + root.getChildren().add(new Line(road.getStartX(),road.getStartY()-roadSize,road.getEndX(),road.getEndY()-roadSize)); + root.getChildren().add(new Line(road.getStartX(),road.getStartY()+roadSize,road.getEndX(),road.getEndY()+roadSize)); + if (road.getClearEnds()){ + Line line = new Line(road.getStartX(),road.getStartY()-roadSize,road.getStartX(),road.getStartY()+roadSize); + line.setStroke(Color.WHITE); + root.getChildren().add(line); + Line line2 = new Line(road.getEndX(),road.getEndY()-roadSize,road.getEndX(),road.getEndY()+roadSize); + line2.setStroke(Color.WHITE); + root.getChildren().add(line2); + } + } + } + } +} + diff --git a/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java b/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java new file mode 100644 index 00000000..ee932414 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java @@ -0,0 +1,35 @@ +package edu.nd.se2018.homework.hwk4.view; + +import java.util.Collection; + +import edu.nd.se2018.homework.hwk4.model.infrastructure.RailwayTracks; +import javafx.scene.layout.Pane; +import javafx.scene.shape.Line; + + +/** + * Draws a track + * @author jane + * + */ +public class TracksDisplay implements IDisplay { + Pane root; + Collection tracks; + int trackSize = 16; + + public TracksDisplay(Collection tracks, Pane root){ + this.root = root; + this.tracks = tracks; + } + + @Override + public void draw() { + for(RailwayTracks track: tracks){ + root.getChildren().add(new Line(track.getStartX(),track.getStartY()-trackSize,track.getEndX(),track.getEndY()-trackSize)); + root.getChildren().add(new Line(track.getStartX(),track.getStartY()+trackSize,track.getEndX(),track.getEndY()+trackSize)); + for(int j = track.getStartX()+(trackSize/2); j < track.getEndX(); j+=trackSize){ + root.getChildren().add(new Line(j,track.getStartY()-trackSize - 2,j,track.getEndY()+trackSize+2)); + } + } + } +} From fa95d47acbd040dae5ffd18acfe3c22f347fc030 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Wed, 19 Sep 2018 21:13:29 -0400 Subject: [PATCH 20/34] adding new track (no train) --- .../nd/se2018/homework/hwk4/Simulation.java | 25 +++++++++++++------ .../hwk4/model/infrastructure/MapBuilder.java | 6 +++-- .../model/infrastructure/RailwayTracks.java | 1 - .../homework/hwk4/model/vehicles/Train.java | 2 +- .../homework/hwk4/view/CarImageSelector.java | 8 +++--- .../homework/hwk4/view/TracksDisplay.java | 1 - 6 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk4/Simulation.java b/src/edu/nd/se2018/homework/hwk4/Simulation.java index 9971bd12..c74a2c29 100644 --- a/src/edu/nd/se2018/homework/hwk4/Simulation.java +++ b/src/edu/nd/se2018/homework/hwk4/Simulation.java @@ -3,13 +3,13 @@ import java.util.ArrayList; import java.util.Collection; -import edu.nd.sarec.railwaycrossing.model.infrastructure.MapBuilder; -import edu.nd.sarec.railwaycrossing.model.infrastructure.RailwayTracks; -import edu.nd.sarec.railwaycrossing.model.infrastructure.Road; -import edu.nd.sarec.railwaycrossing.model.infrastructure.gate.CrossingGate; -import edu.nd.sarec.railwaycrossing.model.vehicles.Car; -import edu.nd.sarec.railwaycrossing.model.vehicles.Train; -import edu.nd.sarec.railwaycrossing.view.MapDisplay; +import edu.nd.se2018.homework.hwk4.model.infrastructure.MapBuilder; +import edu.nd.se2018.homework.hwk4.model.infrastructure.RailwayTracks; +import edu.nd.se2018.homework.hwk4.model.infrastructure.Road; +import edu.nd.se2018.homework.hwk4.model.infrastructure.gate.CrossingGate; +import edu.nd.se2018.homework.hwk4.model.vehicles.Car; +import edu.nd.se2018.homework.hwk4.model.vehicles.Train; +import edu.nd.se2018.homework.hwk4.view.MapDisplay; import javafx.animation.AnimationTimer; import javafx.application.Application; import javafx.scene.Scene; @@ -45,8 +45,15 @@ public void start(Stage stage) throws Exception { Train train = new Train(track.getEndX()+100,track.getEndY()-25); root.getChildren().add(train.getImageView()); - for(CrossingGate gate: mapBuilder.getAllGates()) + RailwayTracks track2 = mapBuilder.getTrack("New"); + track2.toString(); + Train train2 = new Train(track2.getEndX()+100,track2.getEndY()-25); + root.getChildren().add(train2.getImageView()); + + for(CrossingGate gate: mapBuilder.getAllGates()) { train.addObserver(gate); + train2.addObserver(gate); + } // Sets up a repetitive loop i.e., in handle that runs the actual simulation new AnimationTimer(){ @@ -56,12 +63,14 @@ public void handle(long now) { createCar(); train.move(); + train2.move(); for(CrossingGate gate: mapBuilder.getAllGates()) gate.operateGate(); if (train.offScreen()) train.reset(); + train2.reset(); clearCars(); } diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java index 9c3c757b..9f079a31 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java @@ -29,7 +29,8 @@ public MapBuilder(){ private void buildRoads(){ roads.put("Western Highway",new Road(new Point(800,0),new Point (800,1000),Direction.SOUTH,true,false)); roads.put("Skyway",new Road(new Point(400,0),new Point (400,1000),Direction.SOUTH,true,false)); - roads.put("EastWest",new Road(new Point(415,800),new Point (785,800),Direction.EAST,true,true)); + roads.put("EastWest",new Road(new Point(415,800),new Point (785,800),Direction.EAST,true,true)); + //roads.put("WestEast",new Road(new Point(415,800),new Point (785,800),Direction.WEST,true,true)); } private void buildCrossingGates(){ @@ -39,6 +40,7 @@ private void buildCrossingGates(){ private void buildTracks(){ tracks.put("Royal", new RailwayTracks(new Point(0,500),new Point(1200,500))); + tracks.put("New", new RailwayTracks(new Point(0,520),new Point(1200,520))); } private void assignGatesToRoads(){ @@ -64,6 +66,6 @@ public Collection getRoads(){ } public RailwayTracks getTrack(String name){ - return tracks.get("Royal"); + return tracks.get(name); } } diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java index c38f4dab..49963615 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/RailwayTracks.java @@ -4,7 +4,6 @@ /** * Railway Tracks (Entity Object) - * @author Jane Cleland-Huang * */ public class RailwayTracks { diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java index e1ec4161..078e648c 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java @@ -22,7 +22,7 @@ public Train(int x, int y){ this.currentX = x; this.currentY = y; originalX = x; - img = new Image("images/Train.PNG" ,120,trainLength,false,false); + img = new Image("/images/Train.PNG" ,120,trainLength,false,false); imgView = new ImageView(img); imgView.setX(currentX); imgView.setY(currentY); diff --git a/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java b/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java index 2b16b3d5..fefc5be8 100644 --- a/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java +++ b/src/edu/nd/se2018/homework/hwk4/view/CarImageSelector.java @@ -10,13 +10,13 @@ public static Image getImage(){ int pickNum = (int)(Math.random() * 4); Image img; switch(pickNum){ - case 0: img = new Image("images/bluecar.PNG",imageSize,imageSize,false,true); + case 0: img = new Image("/images/bluecar.PNG",imageSize,imageSize,false,true); break; - case 2: img = new Image("images/graycar.PNG",imageSize,imageSize,false,true); + case 2: img = new Image("/images/graycar.PNG",imageSize,imageSize,false,true); break; - case 3: img = new Image("images/greencar.PNG",imageSize,imageSize,false,true); + case 3: img = new Image("/images/greencar.PNG",imageSize,imageSize,false,true); break; - default: img = new Image("images/redcar.PNG",imageSize,imageSize,false,true); + default: img = new Image("/images/redcar.PNG",imageSize,imageSize,false,true); } return img; } diff --git a/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java b/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java index ee932414..bc0290c0 100644 --- a/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java +++ b/src/edu/nd/se2018/homework/hwk4/view/TracksDisplay.java @@ -9,7 +9,6 @@ /** * Draws a track - * @author jane * */ public class TracksDisplay implements IDisplay { From 1ee20807ac0446560e9cf3562d8c065764df0af4 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Thu, 20 Sep 2018 12:00:23 -0400 Subject: [PATCH 21/34] east train --- .../nd/se2018/homework/hwk4/Simulation.java | 11 +++-- .../infrastructure/gate/CrossingGate.java | 46 +++++++++++++++---- .../model/infrastructure/gate/GateOpen.java | 1 - .../homework/hwk4/model/vehicles/Train.java | 36 ++++++++++++--- 4 files changed, 74 insertions(+), 20 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk4/Simulation.java b/src/edu/nd/se2018/homework/hwk4/Simulation.java index c74a2c29..5ac3d255 100644 --- a/src/edu/nd/se2018/homework/hwk4/Simulation.java +++ b/src/edu/nd/se2018/homework/hwk4/Simulation.java @@ -3,6 +3,7 @@ import java.util.ArrayList; import java.util.Collection; +import edu.nd.se2018.homework.hwk4.model.infrastructure.Direction; import edu.nd.se2018.homework.hwk4.model.infrastructure.MapBuilder; import edu.nd.se2018.homework.hwk4.model.infrastructure.RailwayTracks; import edu.nd.se2018.homework.hwk4.model.infrastructure.Road; @@ -42,12 +43,12 @@ public void start(Stage stage) throws Exception { // Train RailwayTracks track = mapBuilder.getTrack("Royal"); - Train train = new Train(track.getEndX()+100,track.getEndY()-25); + Train train = new Train(track.getEndX()+100,track.getEndY()-25, Direction.WEST); root.getChildren().add(train.getImageView()); RailwayTracks track2 = mapBuilder.getTrack("New"); - track2.toString(); - Train train2 = new Train(track2.getEndX()+100,track2.getEndY()-25); + + Train train2 = new Train(track2.getStartX()-100,track2.getStartY()-25, Direction.EAST); root.getChildren().add(train2.getImageView()); for(CrossingGate gate: mapBuilder.getAllGates()) { @@ -70,8 +71,10 @@ public void handle(long now) { if (train.offScreen()) train.reset(); + + if (train2.offScreen()) train2.reset(); - + clearCars(); } }.start(); diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java index 187661d6..c43be85a 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java @@ -3,6 +3,7 @@ import java.util.Observable; import java.util.Observer; +import edu.nd.se2018.homework.hwk4.model.infrastructure.Direction; import edu.nd.se2018.homework.hwk4.model.vehicles.Train; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; @@ -19,8 +20,11 @@ public class CrossingGate extends Observable implements Observer{ private int anchorY; private int movingX; private int movingY; - private int triggerPoint; - private int exitPoint; + private int triggerPoint1; + private int triggerPoint2; + private int exitPoint1; + private int exitPoint2; + private Boolean train1, train2; private IGateState gateClosed; private IGateState gateOpen; @@ -39,8 +43,12 @@ public CrossingGate(int xPosition, int yPosition, String crossingGate){ anchorY = yPosition; movingX = anchorX; movingY = anchorY-60; - triggerPoint = anchorX+250; - exitPoint = anchorX-250; + triggerPoint1 = anchorX+250; + triggerPoint2 = anchorX-250; + exitPoint1 = anchorX-250; + exitPoint2 = anchorX+250; + train1 = false; + train2 = false; // Gate elements line = new Line(anchorX, anchorY,movingX,movingY); @@ -118,11 +126,31 @@ public String getTrafficCommand(){ public void update(Observable o, Object arg) { if (o instanceof Train){ Train train = (Train)o; - if (train.getVehicleX() < exitPoint) - currentGateState.leaveStation(); - else if(train.getVehicleX() < triggerPoint){ - currentGateState.approachStation(); - } + if (train.getDirection() == Direction.WEST) { + System.out.println("west train:"); + if (train.getVehicleX() < exitPoint1 && train.getVehicleX() < triggerPoint2) { + if (train2 == false) { + currentGateState.leaveStation(); + } + train1 = false; + } + else if(train.getVehicleX() > triggerPoint1 || train.getVehicleX() < triggerPoint2) { + currentGateState.approachStation(); + train1 = true; + } + } + else if (train.getDirection() == Direction.EAST) { + if (train.getVehicleX() > exitPoint2 && train.getVehicleX() > triggerPoint1) { + if (train1 == false) { + currentGateState.leaveStation(); + } + train2 = false; + } + else if (train.getVehicleX() > triggerPoint2 || train.getVehicleX() < triggerPoint1) { + currentGateState.approachStation(); + train2 = true; + } + } } } } diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java index 33e792df..b65553a3 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/GateOpen.java @@ -2,7 +2,6 @@ /** * Gate in open state - * @author jane * */ public class GateOpen implements IGateState { diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java index 078e648c..c09b7478 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Train.java @@ -2,6 +2,7 @@ import java.util.Observable; +import edu.nd.se2018.homework.hwk4.model.infrastructure.Direction; import javafx.scene.Node; import javafx.scene.image.Image; import javafx.scene.image.ImageView; @@ -17,17 +18,26 @@ public class Train extends Observable implements IVehicle{ private Image img; private ImageView imgView; private int trainLength = 35; + Direction direction; - public Train(int x, int y){ + public Train(int x, int y, Direction d){ this.currentX = x; this.currentY = y; originalX = x; + this.direction = d; img = new Image("/images/Train.PNG" ,120,trainLength,false,false); imgView = new ImageView(img); + if (d == Direction.EAST) { + imgView.setScaleX(-1); + } imgView.setX(currentX); imgView.setY(currentY); } + public Direction getDirection() { + return this.direction; + } + public double getVehicleX(){ return currentX; } @@ -37,17 +47,31 @@ public double getVehicleY(){ } public void move(){ - currentX-=2; + if (direction == Direction.WEST) { + currentX-=2; + } + else { + currentX+=2; + } imgView.setX(currentX); setChanged(); notifyObservers(); } public boolean offScreen(){ - if (currentX < -200) - return true; - else - return false; + if (direction == Direction.WEST) { + if (currentX < -200) + return true; + else + return false; + } + else { + if (currentX > 1600) + return true; + else + return false; + + } } public void reset(){ From 5fb115b007d12ab8ad96cf6456602d69ab31fe9c Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Thu, 20 Sep 2018 17:36:18 -0400 Subject: [PATCH 22/34] crossing road --- .../hwk4/model/infrastructure/MapBuilder.java | 5 +- .../hwk4/model/infrastructure/Road.java | 13 ++++- .../infrastructure/gate/CrossingGate.java | 11 ++-- .../homework/hwk4/model/vehicles/Car.java | 24 +++++++- .../hwk4/model/vehicles/CarFactory.java | 58 +++++++++++++++++-- 5 files changed, 93 insertions(+), 18 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java index 9f079a31..f0fb805e 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java @@ -29,8 +29,7 @@ public MapBuilder(){ private void buildRoads(){ roads.put("Western Highway",new Road(new Point(800,0),new Point (800,1000),Direction.SOUTH,true,false)); roads.put("Skyway",new Road(new Point(400,0),new Point (400,1000),Direction.SOUTH,true,false)); - roads.put("EastWest",new Road(new Point(415,800),new Point (785,800),Direction.EAST,true,true)); - //roads.put("WestEast",new Road(new Point(415,800),new Point (785,800),Direction.WEST,true,true)); + roads.put("EastWest",new Road(new Point(415,300),new Point (785,300),Direction.EAST,false,false)); } private void buildCrossingGates(){ @@ -45,7 +44,9 @@ private void buildTracks(){ private void assignGatesToRoads(){ roads.get("Western Highway").assignGate(gates.get("Gate1")); + roads.get("Western Highway").assignGate(gates.get("Gate2")); roads.get("Skyway").assignGate(gates.get("Gate2")); + //roads.get("Skyway").assignGate(gates.get("Gate2")); } private void buildCarFactories(){ diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java index b498d712..8be0c9d5 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/Road.java @@ -21,6 +21,7 @@ public class Road { Collection gates; boolean clearEnds = false; int roadSize; + int roadNum; public Road(){} @@ -31,6 +32,14 @@ public Road(Point start, Point end, Direction direction, boolean buildCarFactory endY = end.y; roadSize = 18; + if (startX == 400) { + roadNum = 0; + } + + if (startX == 800) { + roadNum = 1; + } + this.direction = direction; gates = new Vector(); this.clearEnds = clearEnds; @@ -43,12 +52,12 @@ public Road(Point start, Point end, Direction direction, boolean buildCarFactory public void assignGate(CrossingGate gate){ gates.add(gate); if (carFactory != null) - carFactory = new CarFactory(direction, new Point(startX-roadSize/2,startY), gates); // allows additional gates. Needs fixing + carFactory = new CarFactory(direction, new Point(startX-roadSize/2,startY), gates, roadNum); // allows additional gates. Needs fixing } public void addCarFactory(){ if (carFactory == null) // We only allow one - carFactory = new CarFactory(direction, new Point(startX-roadSize/2,startY), gates); + carFactory = new CarFactory(direction, new Point(startX-roadSize/2,startY), gates, roadNum); } public CarFactory getCarFactory(){ diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java index c43be85a..9ba5bc41 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/gate/CrossingGate.java @@ -34,7 +34,7 @@ public class CrossingGate extends Observable implements Observer{ private Line line; private Pane root; - String gateName; + public String gateName; public CrossingGate(){} @@ -127,26 +127,25 @@ public void update(Observable o, Object arg) { if (o instanceof Train){ Train train = (Train)o; if (train.getDirection() == Direction.WEST) { - System.out.println("west train:"); - if (train.getVehicleX() < exitPoint1 && train.getVehicleX() < triggerPoint2) { + if (train.getVehicleX() < exitPoint1) { if (train2 == false) { currentGateState.leaveStation(); } train1 = false; } - else if(train.getVehicleX() > triggerPoint1 || train.getVehicleX() < triggerPoint2) { + else if(train.getVehicleX() < triggerPoint1) { //|| train.getVehicleX() < triggerPoint2) { currentGateState.approachStation(); train1 = true; } } else if (train.getDirection() == Direction.EAST) { - if (train.getVehicleX() > exitPoint2 && train.getVehicleX() > triggerPoint1) { + if (train.getVehicleX() > exitPoint2) { if (train1 == false) { currentGateState.leaveStation(); } train2 = false; } - else if (train.getVehicleX() > triggerPoint2 || train.getVehicleX() < triggerPoint1) { + else if (train.getVehicleX() > triggerPoint2) { //|| train.getVehicleX() < triggerPoint1) { currentGateState.approachStation(); train2 = true; } diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java index 0f45fed2..55407701 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/Car.java @@ -20,6 +20,7 @@ public class Car extends Observable implements IVehicle, Observer{ private boolean gateDown = false; private double leadCarY = -1; // Current Y position of car directly infront of this one private double speed = 0.5; + public boolean turn = false; /** * Constructor @@ -63,8 +64,27 @@ public void move(){ canMove = false; if (canMove){ - currentY+=speed; - ivCar.setY(currentY); + if (turn == false) { + currentY+=speed; + ivCar.setY(currentY); + } + else { + if (currentY >= 282 && currentY <= 300) { + if (currentX < 800 && currentX > 400) { + currentX -= speed; + ivCar.setX(currentX); + } + else { + currentY+=speed; + ivCar.setY(currentY); + } + + } + else { + currentY+=speed; + ivCar.setY(currentY); + } + } setChanged(); notifyObservers(); } diff --git a/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java b/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java index 9281bbc4..cda6fe8e 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java +++ b/src/edu/nd/se2018/homework/hwk4/model/vehicles/CarFactory.java @@ -10,7 +10,6 @@ /** * Very basic car factory. Creates the car and registers it with the crossing gate and the car infront of it. - * @author jane * */ public class CarFactory { @@ -20,13 +19,15 @@ public class CarFactory { private ArrayList cars = new ArrayList(); Direction direction; Point location; + int roadNum; public CarFactory(){} - public CarFactory(Direction direction, Point location, Collection gates){ + public CarFactory(Direction direction, Point location, Collection gates, int road){ this.direction = direction; this.location = location; this.gates = gates; + this.roadNum = road; } @@ -36,16 +37,61 @@ public Car buildCar(){ Car car = new Car(location.x,location.y); double speedVariable = (Math.random() * 10)/10; car.setSpeed((2-speedVariable)*1.5); + if (Math.floor(speedVariable * 10) % 4 == 0) { + car.turn = true; + } // All cars created by this factory must be aware of crossing gates in the road - for(CrossingGate gate: gates){ - gate.addObserver(car); + if (roadNum == 0) { + for(CrossingGate gate: gates){ + if (gate.gateName == "Gate2") { + gate.addObserver(car); + } + if(gate != null && gate.getTrafficCommand()=="STOP") { + car.setGateDownFlag(false); + } + } + } + else if (roadNum == 1) { + if (car.turn == false) { + for(CrossingGate gate: gates){ + if (gate.gateName == "Gate1") { + gate.addObserver(car); + } + if(gate != null && gate.getTrafficCommand()=="STOP") { + car.setGateDownFlag(false); + } + } + } + else { + for(CrossingGate gate: gates){ + if (gate.gateName == "Gate2") { + gate.addObserver(car); + } + if(gate != null && gate.getTrafficCommand()=="STOP") { + car.setGateDownFlag(false); + } + } + } + } + /*else { + for(CrossingGate gate: gates){ + if (gate.gateName == "Gate1") { + gate.addObserver(car); + } + if(gate != null && gate.getTrafficCommand()=="STOP") { + car.setGateDownFlag(false); + } + } + }*/ + /*for(CrossingGate gate: gates){ + //gate.addObserver(car); if(gate != null && gate.getTrafficCommand()=="STOP") car.setGateDownFlag(false); - } + }*/ // Each car must observe the car infront of it so it doesn't collide with it. - if (previousCar != null) + if (previousCar != null && previousCar.turn == false) previousCar.addObserver(car); previousCar = car; From 5b972cf42680ea4ff8787b46f1baa668d2f960cd Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 21 Sep 2018 13:39:27 -0400 Subject: [PATCH 23/34] reflection --- .../nd/se2018/homework/hwk4/HW4 Reflection.pdf | Bin 0 -> 29713 bytes .../hwk4/model/infrastructure/MapBuilder.java | 1 - 2 files changed, 1 deletion(-) create mode 100644 src/edu/nd/se2018/homework/hwk4/HW4 Reflection.pdf diff --git a/src/edu/nd/se2018/homework/hwk4/HW4 Reflection.pdf b/src/edu/nd/se2018/homework/hwk4/HW4 Reflection.pdf new file mode 100644 index 0000000000000000000000000000000000000000..74d79a70c83e96d9cd1e0d5c6f6deb6a203ebd19 GIT binary patch literal 29713 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 Z9J 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 literal 0 HcmV?d00001 diff --git a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java index f0fb805e..ea3e994a 100644 --- a/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java +++ b/src/edu/nd/se2018/homework/hwk4/model/infrastructure/MapBuilder.java @@ -46,7 +46,6 @@ private void assignGatesToRoads(){ roads.get("Western Highway").assignGate(gates.get("Gate1")); roads.get("Western Highway").assignGate(gates.get("Gate2")); roads.get("Skyway").assignGate(gates.get("Gate2")); - //roads.get("Skyway").assignGate(gates.get("Gate2")); } private void buildCarFactories(){ From ba8aabcda4cc493e3432ecc4634168cd7614965e Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sat, 29 Sep 2018 17:51:27 -0400 Subject: [PATCH 24/34] chips challenge --- .classpath | 7 ++ src/edu/nd/se2018/homework/hwk6/Main.java | 51 ++++++++++++++ .../se2018/homework/hwk6/model/ChipModel.java | 48 +++++++++++++ .../se2018/homework/hwk6/view/ChipView.java | 40 +++++++++++ .../se2018/homework/hwk6/view/MapDisplay.java | 63 ++++++++++++++++++ src/images/chip/textures/BlankTile.png | Bin 0 -> 197 bytes src/images/chip/textures/blueKey.png | Bin 0 -> 500 bytes src/images/chip/textures/blueKeyWall.png | Bin 0 -> 372 bytes src/images/chip/textures/bugUp.png | Bin 0 -> 503 bytes src/images/chip/textures/chipDown.png | Bin 0 -> 502 bytes src/images/chip/textures/chipItem.png | Bin 0 -> 400 bytes src/images/chip/textures/chipLeft.png | Bin 0 -> 558 bytes src/images/chip/textures/chipRight.png | Bin 0 -> 550 bytes src/images/chip/textures/chipUp.png | Bin 0 -> 464 bytes src/images/chip/textures/greenKey.png | Bin 0 -> 480 bytes src/images/chip/textures/greenKeyWall.png | Bin 0 -> 365 bytes src/images/chip/textures/portal.png | Bin 0 -> 281 bytes src/images/chip/textures/redKey.png | Bin 0 -> 480 bytes src/images/chip/textures/redKeyWall.png | Bin 0 -> 365 bytes src/images/chip/textures/tiles.png | Bin 0 -> 25547 bytes src/images/chip/textures/yellowKey.png | Bin 0 -> 501 bytes src/images/chip/textures/yellowKeyWall.png | Bin 0 -> 371 bytes 22 files changed, 209 insertions(+) create mode 100644 .classpath create mode 100644 src/edu/nd/se2018/homework/hwk6/Main.java create mode 100644 src/edu/nd/se2018/homework/hwk6/model/ChipModel.java create mode 100644 src/edu/nd/se2018/homework/hwk6/view/ChipView.java create mode 100644 src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java create mode 100644 src/images/chip/textures/BlankTile.png create mode 100644 src/images/chip/textures/blueKey.png create mode 100644 src/images/chip/textures/blueKeyWall.png create mode 100644 src/images/chip/textures/bugUp.png create mode 100644 src/images/chip/textures/chipDown.png create mode 100644 src/images/chip/textures/chipItem.png create mode 100644 src/images/chip/textures/chipLeft.png create mode 100644 src/images/chip/textures/chipRight.png create mode 100644 src/images/chip/textures/chipUp.png create mode 100644 src/images/chip/textures/greenKey.png create mode 100644 src/images/chip/textures/greenKeyWall.png create mode 100644 src/images/chip/textures/portal.png create mode 100644 src/images/chip/textures/redKey.png create mode 100644 src/images/chip/textures/redKeyWall.png create mode 100644 src/images/chip/textures/tiles.png create mode 100644 src/images/chip/textures/yellowKey.png create mode 100644 src/images/chip/textures/yellowKeyWall.png diff --git a/.classpath b/.classpath new file mode 100644 index 00000000..f319b0ab --- /dev/null +++ b/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java new file mode 100644 index 00000000..d401d260 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -0,0 +1,51 @@ +package edu.nd.se2018.homework.hwk6; +import javafx.application.Application; +import javafx.event.EventHandler; +import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.AnchorPane; +import javafx.scene.Node; +import javafx.stage.Stage; +import edu.nd.se2018.homework.hwk6.model.ChipModel; +import edu.nd.se2018.homework.hwk6.view.*; + +public class Main extends Application { + AnchorPane root; + Scene scene; + MapDisplay gameMap; + ImageView[][] tiles; + Image tileImage; + int scale = 20; + ChipModel chip; + ChipView chipView; + + @Override + public void start(Stage gameStage) throws Exception { + root = new AnchorPane(); + Scene scene = new Scene(root, 500, 500); + gameMap = new MapDisplay(); + + gameMap.setBlocks(); + gameMap.drawMap(root.getChildren(), 20); + + chip = new ChipModel(0, 0, gameMap.getMap()); + chipView = new ChipView(chip); + chip.attachView(chipView); + + root.getChildren().add(chipView.getView()); + + + gameStage.setScene(scene); + gameStage.setTitle("Chip's Challenge"); + gameStage.show(); + } + + public static void main(String[] args) { + launch(args); + + } + + +} diff --git a/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java b/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java new file mode 100644 index 00000000..e4efe37c --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java @@ -0,0 +1,48 @@ +package edu.nd.se2018.homework.hwk6.model; + +import java.util.Observable; + +import edu.nd.se2018.homework.hwk6.view.ChipView; + +public class ChipModel extends Observable { + int keys; + int x; + int y; + int[] position = new int[2]; + int[][] gameMap; + + public ChipModel(int xPos, int yPos, int[][] map) { + x = xPos; + y = yPos; + keys = 0; + gameMap = map; + } + + public int[] getPosition() { + position[0] = this.x; + position[1] = this.y; + return(position); + } + + public int getKeys() { + return(this.keys); + } + + public void setPosition(int xPos, int yPos) { + if (gameMap[xPos][yPos] == 0) { + this.x = xPos; + this.y = yPos; + } + setChanged(); + notifyObservers(); + } + + public void addKey() { + this.keys++; + } + + public void attachView(ChipView view) { + addObserver(view); + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java new file mode 100644 index 00000000..f3876f1d --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java @@ -0,0 +1,40 @@ +package edu.nd.se2018.homework.hwk6.view; + +import java.util.Observable; +import java.util.Observer; + +import edu.nd.se2018.homework.hwk6.model.ChipModel; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +public class ChipView implements Observer { + private ImageView view; + private Image chipImage; + + + public ChipView(ChipModel chip) { + chipImage = new Image("/images/chip/textures/chipDown.png", 50, 50, true, true); + view = new ImageView(chipImage); + view.setFitHeight(20); + view.setFitWidth(20); + int[] pos = chip.getPosition(); + view.setX(pos[0] * 20); + view.setY(pos[1] * 20); + } + + public Node getView() { + return(view); + + } + + @Override + public void update(Observable o, Object arg) { + int[] pos = ((ChipModel)o).getPosition(); + view.setX(pos[0] * 20); + view.setY(pos[1] * 20); + + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java new file mode 100644 index 00000000..5ec9e98d --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java @@ -0,0 +1,63 @@ +package edu.nd.se2018.homework.hwk6.view; +import javafx.application.Application; +import javafx.collections.ObservableList; +import javafx.event.EventHandler; +import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.AnchorPane; +import javafx.scene.layout.Pane; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import javafx.stage.Stage; +import java.util.Collection; +import java.util.Random; + +import edu.nd.se2018.homework.hwk3.PirateShip; +import edu.nd.se2018.homework.hwk3.Ship; + +public class MapDisplay { + public int[][] map = new int[25][25]; + final int dimensions = 25; + ImageView tileImageView; + Image tileImage; + + public void setBlocks( ) { + Random random = new Random(); + for (int i = 0; i < 25; i++) { + int x = random.ints(0, 24).findFirst().getAsInt(); + int y = random.ints(0, 24).findFirst().getAsInt(); + while ((x == 0) && (y == 0) || (x == 5) && (y == 7)) { + x = random.ints(0, 24).findFirst().getAsInt(); + y = random.ints(0, 24).findFirst().getAsInt(); + } + this.map[x][y]= 1; + } + } + public void drawMap(ObservableList root, int scale) { + for (int x = 0; x < dimensions; x++) { + for (int y = 0; y < dimensions; y++) { + Rectangle rect = new Rectangle(x*scale, y*scale, scale, scale); + rect.setStroke(Color.BLACK); + if (map[x][y] == 1) { + rect.setFill(Color.BROWN); + root.add(rect); + } + else { + tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); + tileImageView = new ImageView(tileImage); + tileImageView.setX(x * scale); + tileImageView.setY(y * scale); + root.add(tileImageView); + this.map[x][y] = 0; + } + } + } + } + + public int[][] getMap() { + return(this.map); + } +} diff --git a/src/images/chip/textures/BlankTile.png b/src/images/chip/textures/BlankTile.png new file mode 100644 index 0000000000000000000000000000000000000000..c594f20d05eb4f5e1809aa569f95d287c3b20b1a GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?3oVGw3ym^DWND9B#o z>FdgVpG$_BQ(?O1MHZltY-UJAiF1B#Zfaf$kjuc}T$GwvlA5AWo>`Ki;O^-gkfN8$ z4ivZcba4!cIQ;gUqacF;&tZdn^GA(gDY88^IxJSZcTZ7y$au!*^?{{l8W@?`cq9xG f4nPgTe~DWM4f7+Evw literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/blueKey.png b/src/images/chip/textures/blueKey.png new file mode 100644 index 0000000000000000000000000000000000000000..2c6b249b148527bf66c1af6179b47b7cef47a8de GIT binary patch literal 500 zcmVWFU8GbZ8()Nlj2>E@cM*00CG@L_t(o!|hjFu7w~B zY>f-+&MZ5_mCgCUqIl$Sl`B7|iO~>4$C-AD3;;AJoO3i25v}Vw3Ik0vIDP~ncu;ei@Gm&bzTc|z;QIsGiS0z>5 z^D+k(mL-7d&47r61lw00lZ!~u-k5mE!c;NqY$v?q1IyC9(cO-ivYQ#jKq5g+qP{-h zTwnnRg=b;OPZHe;27uf+7LicpH7S^HN#MON*MO?-z3<$9F{gg;z?9~i6Pmt>57?Ud zfq}TeL{Wm43Rl$~#7U0m8HIhDrlHY$+|1Tg^^%D=z$&cFf1&G2XOrm+0%ql#Q|3T) zIgrF!ITYq`j+7Yab|Sh0VeR`0fGmiLQ+7WSCLkJ|vZ)R4g!lf-L(WCq+=h>s7&K<>&kwgTTqBeT&{2GE1-~UW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6u;r=;usQf`0lhot|JOOE{`7_w7DgtYks;;hw*ml+Lg05 z=(Yq!&6!@P<9S9$q-1K)3sFrz1vZDHi~;N74L+9@ie4)!fAF7y!RPLJhM-!W^O6_( z-?6Qoy3*KTTS@-L%9CO;VnUMI$!wq2`UP3pb-&?E6m~fJy6?QhZH6kRW`WOqSDM<+ zU1zTN)3J}CDp8u}(H>@9#p}TdA~g|gYM1^iu!}K2QC)uEDC6DVtBsgS*eBgQ`Tcs; zGTjJU&E1v;T!MC@!p7ZVf}9N3tzEmAe=xLk3UdM(6U_PRKAifU73u==yr-+5%Q~lo FCIANcfMfsw literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/bugUp.png b/src/images/chip/textures/bugUp.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd8bb065fe1092721d0d31840c993307fb7b159 GIT binary patch literal 503 zcmVWFU8GbZ8()Nlj2>E@cM*00CP`L_t(o!|j(*a>F1D zL>CVS<7O5&!zWWeYIOubMFux+XX>ALNMb$hA|VH6W;}G|oDl)wIF6?nu;JnBZv&*1 zs?WCqq?Axf0RWUzrXjYK%)RTk14!nr1+xAY1(*S%*ZUs<&<~b?0I=_=Mg0vZA*NPC3k{3*ADli*7h z=<*T>%kwWA6tq^vvL-My_fEs4GwuW-BRCmA)PX3a*b3;3+kqhfl?9>(kquxe5Ir3) zG#jh+f8Xm$&`ONix?A-yKF0{K{Z51)!yE tCB8ZpO#`e9qW^D3zX~Acnf7(#^#Q*5$S7aA$xr|Q002ovPDHLkV1n*I$BqC1 literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/chipDown.png b/src/images/chip/textures/chipDown.png new file mode 100644 index 0000000000000000000000000000000000000000..1d06deb161706b436c092e345c1525d7df403a71 GIT binary patch literal 502 zcmV(0000TX;fHrLvL+uWo~o;00000Lvm$d zbY)~9cWHEJAV*0}P-HG;2LJ#8Y)M2xR9M61S6dFlAPjS+-mAG;!_C6UvX2%@pFqpR z$B-s%Xo}q=b`vr)L#N}M!vFx@`$qwodGlLUt78mrfJM&lYlsX_!1uu6hzI}yGZ&Ni zp!4~(dipg3b7}Vd(Xwq?-Z}QIvCywNz(-h+t+I z$8iIcey{PBstlY-i-=+-y!Y_lSIMwC1F9MURW$+y;O0h@2944(1DrcbZ7Bm26_X${ zv#XjhGt6v#x=?55isX_bp{n@|Y{-=WCj?4*A=`wk3LeKYC)(dHBpwq`)j6nhYw+2L zt_jrGV6_p2;JH$yBr;hTN@RCX!Zh8I2>*)>{MH8!jpWL_zQhq9y$vw|aCMn$OCSZ8 z0r(?qn%z|@mKK@a>v2B;?inkQgc+Fu~IYG_VCPW)a(PVaxZm;}&0a5^cy s8c6cHp`0uwl3ijqOV07*qoM6N<$g6x{dxBvhE literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/chipItem.png b/src/images/chip/textures/chipItem.png new file mode 100644 index 0000000000000000000000000000000000000000..bc087bee17199b29fd97616eb6e39701f07a7b3d GIT binary patch literal 400 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwgn^{C!j7Q}CA)t_KW=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6#wGs;usQf_-(i&-(dwFZ$bXYnGe$+rru0+%G%7JnEE=g zz|rBg)v>KpnrBMNNm-_MFfc5gvfN@1XM~&A%S~!Z*Nyd{P$*vSgpRt3y}` zo7<7om45?lr%UK6T@3mvx#Zn;j|{IZAuJ3WwyYfc$>St0GZkx!dD|aF7CF9$EDJ_M_YLOkKtd|_*_;pMlnu~BK3!e&^{k7r9 zj#Q`hOs9Q*e3rT4xnpvH`a{1%`#lad&y0NCvxR4aiPU11sjn@9|GrtlQuTgTv~fR^ l*rP(#8LKVNS{|PKnDt1hWq-vnn{S|i@pScbS?83{1ORMJkFfv% literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/chipLeft.png b/src/images/chip/textures/chipLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..243a4400d485673d02d198b1f3bf3c8416e583e4 GIT binary patch literal 558 zcmV+}0@3}6P)6}I^k(H`@dHv*DD;6N znQ>6W?q-{8DygdCp$H*h0)S;%p5m|)xD(8reU35yhkyZ#l<&tF!OT@c(=W32VT4-1 z0pK;NfT}`O4+`|gYczWzN<_XSB)vqgmAbVB<<2$mA9jH+s8SG7+6p2X+K%Z8JjRH5 zo*GXg6n4Yc6GyNy-4%eZYGccTVmmC7Ku}2 zy;mdARs%IfW$Ta$p&nOC5@)kX~mVP zS!@uwd}bPIKe;}1dfTok(bNUvs(QtjCe`F(YIfIvSg&^)mj^x!v=#!TADOgg-}Q{; wrUOaKqCE!@ug0@?kEP)Lt=7u!3*6 zV0B)J{yYTxAV^^Ka7w9bl_3&>efJK&0$%##5dx86X6Vi4E&@^MMWm_9cn8$)xCAe2 ziHN|=Fiq2?LBm;41NE|d5D@_u@K$DwJ@HN{ZQy?Ao7`qV&X7g6D-y}fEK-Wk3eF+M zK2BtF_o^CK;2>|!95=zgD@3)z;J&|85pNL?k#q3QelXkuFN=+nzqc6;x4?5gf?ufd zdjt zFqV$0+Rg$`V*OKXVP+nDK{AvDW3&>Mpj8rJ(+6c&4Ohae3kb;%uay2d3rF}s@632Mg#Z8m07*qoM6N<$f;u_ne*gdg literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/chipUp.png b/src/images/chip/textures/chipUp.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfb383cff87f3e21f06ec4483f17b67cceb5884 GIT binary patch literal 464 zcmV;>0WbcEP){%i6x%+JEhvWF?14uu8E zbgI=x>Y+%;PH>z|W@fl4y!TiDAcW9;Sw!CcRrM5!f?e6JfDEX_FZ0qJc%*zzomiJYL%PiQyy>AwbnIVKwbVpTf(?B=)8X*Koz#yOt?rxp766V!B3TH~@C5lOq#h<*SFx3U``Rbrw50000<>&kwgTTqCNO(3X11}G$(84^+AoS&PUnpXnkGB7w7r6!i7 zrYMwWmSiZnd-?{X=%unVFfh7!x;TbJ9DX}JR;XElr^URF{q$L>JTd=ib`1?{8$zc{ zPdm2qa@n2yPn%tgj1Mm;IG4!QkQ(V`m~iO94`v?r8U6nz&V0Ogl^y#AuGx|tPxdRn zV>8-%XW z#+%pMem&__%M)8EH1A{M^^fdx=XR|8Vc;b@fBJ&ZMf>a?IEm?)$Zaybqj_yQqb1<-PFggOtmc zp4AN13fZSZOU0Gs5?ow6<}+p`%okw09r07nWiw~}O;MMW%QJL8zLUNvcf@L6KZA&( zl;6!-^*atS1*f8?UE)yGWL|1?W{0NIkrP{Owm+W~dVYsxRQi!0;=<4G1T>g4SMLs& S6#L)_3TRJPKbLh*2~7Yob+=Fe literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/greenKeyWall.png b/src/images/chip/textures/greenKeyWall.png new file mode 100644 index 0000000000000000000000000000000000000000..6c9660b8adf417c8a5b890d2904dbc4359081a2d GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwgTTqC_atf3EVxW+0W=KSdbAE1aYF-JD%fR4Vl$uzQ znxasiS(2gP?&%wlqL<1J6u;={;usQf`0li9t|JOOEt8KnS8lP4%A5B0BG*VjdzG=XT#3EZC^RwsPp zn8%#a>bq9vLgmNW=ml}n59T$te)&I<>&kwgn_E7 zQ5*u39<>&kwgn^{D`jQfOw5l~1rGbEzKIX^cyHLnE7WngeFN=+nD#py}i{egoMA+usVt^4HV8**3hnahFkvfnn)Z zK?U#gJ9i&uY~Yx6%~sY>>oDV{&u?Zhcvz)RW)yfUqVk-{!KH4x>jQ>uCHWOBGbH8q z8Cj*L&A2JpxjZl<%R$=up>}D)?hlK0TPLmD+tc(YnX5`uO3TSN@PmpC%Zi|`cM>~y zU%zE&?CiIsDR0?N&uF8??-Kd<@W64G?TFC*iHM_AK~ z&{GeM6I(2THRC0{j9Xebu3XyiNcFTp@bOO(^Rky#9X);RwczJ^pO8|m1N?FacZWys R(g+6yw5O||%Q~loCIF<>&kwgTTsxzA}Z5qHc&`5GbEzKIX^cyHLnE7WngeFN=+U*jtoaQ*m(vkpHq zO*8iTY-KpPsjB;|`?dx1Jk(FmYTU9(DDU3aFpg@5I~JFicd;1=CF!$gIqs|FUn6%g zn_=;WmD8DbDc0q1n`ChxGTt!x-~Yk~CJt7GTrn~aPHtl2k)Cw--1o~h%XBU7YVNi) z;1;|mI=Lf5Qz?jHow92ea|L5d=l=Cm4GI~4v0V4Qdn*0@j!uxTJzf1=);T3K0RX_5 Bgo6M8 literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/tiles.png b/src/images/chip/textures/tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..e633013aa939786204777e3c74d7760e8a25b191 GIT binary patch literal 25547 zcmXuKWl&sQ(=|LegEP1U9o&WlcXxMZfZ%Sy9R_y|?(PnO1ShylaCb}4K;Zhg-};^( z$M&h}K6PsE?zL9;j#g8V#Y7`T0{{S+@^Vrd000~i0D#9pg?}Hh<(U5PegV43>AM2} z=y?A--~idV#P5SB9`ef4DBEb{@N|?UJ+FlT02M%9N?gl(?Xp+-gmogF(tA(UZ0>HL zkQb8UM>L{K1!c6zrbY1S}cr{z&Nf?1oz+&TZL_d4Z%YPXzwE9K=4?{i&x?HE1WDpxQ90220dVCe3;|$5M z(CKbWgOx7)RhixI-fH{hOVLzn$*G6FS^(Wr!R+1mrTI~g?Q(QDD_v6&ylNy=iS}UD zeQ^Uk@de=v$9Jykr+ z|74ag43dDFv4i{dYy=Q3Y5@F&L}nmfKFz^cC&P!!HGBw<5c;|B^%(8K=^2k6CuC(J zi7;82rhcrIc9$~ltv4#kn~9LrHy(drX2H_&lhS(0bkZh#qlevkgrh_FnIg-rf<(Z5CA}QlsPffreYHBlp+C4d*98eGV>SiYXVzJcJnm6Lk5IMztH^n+U_z@I~Kdm8sLaF(^w>q5<%qW0_|I#G+h@^gTe9 z3(3+0=3X(QlVI10?0rjpzGL6-$37IWB4P?^%_ZCq*vpNxE=2e#A^9#j%}J)8+sx~b zw$5Yj|L7ySJxv45vqxM%10b+N`5q#CNhkd$2>8P|i^3?UT;^POqI_r!CifH?aGBKf z=#Q@52m}Mo;#p@9qIZL8>w&~d)-8{Rc$TBr44;^2puY&(kBlty+mSCbY{F$Y%7Fm4 z;jIM|N=rsm@%n81U+CA+|9CJ$CnpB};+!GLh0jMF?t7>yjO{(Il9BSXhH30eZ5mJc zHht`UQ&5;*6`F~OvHxMt>1idJjs)C97Z%BNPjb`G(334KLMCP@!$6B)dLW`g+_PxN z{=F|fCoygI-10E>1)boE(<4VpNfcvP3^sz02i)h;ks?&f5G%H_Xa+UAX0>zqZazDTF^ z*l=93UZM6U;h7_f@7&9AlrEy>2!1$g__i@?mrhhkTxJf>L#h~^h7;0V#b|IT(}WUN zHT+$L2`)IZ{v^w^jSPF=G5=TracxsvGt_$U%odK#{&E(ylyz$hPc6rbot5tKL(ajP z3QB&=FTuDh-AdFLGL?sgq{Uu_8J9HH8pIDz<&A?O@zT%O&bJ)5f@G0>L1+I`J|f%Y z2A*GLL*&t4Truf1hTx_^kWbXGpDxjz&YdpR|IvU&tyUYA_$2%%@fpl=cF>6DP5~od zyuFS4Ov3!gF{N_g)&8<#Kp~QKLtt|^3tk#+%3?VO05+a8=G12d;<A>VhcVxd_1#;@?>?y`xmk{wg%`q;Z{lo_T#{mME$y|v1(8KUwAuGV9H4pAz9WNh0*e7rA zM69)`f<*Y_ubfK?5VR51PI;6fkK0#PLy@8`_&DKtj(m`*(_(5pTQNFpnucpBNVmV_ zwEuxw)6B=#{jh|0Iabsx8t*n_-0C+XDhmyF^Rca&^aha320;_olF$h3T*~DUFccZS zc}ZN{K%+LNI4pV#Rb|JA60z~!oowwj4JNy@teLvZRNduJXfXWAje4(*Hx~^@HwTN(*JjazY*Qt&xDb#H7KxGl@bZKtF^RN4{f7g2~AI)~lty zH>R`CF0QrBxPnl^T93*@@%SA!K+=nimsHnY6q5bxxOq4!Y4BJJMD*%jD`9P5;%Ioxg$e9fw`BYrK-58>jUHrs3(J9QX( zOA?{*6ec`tv2+W6c=JaVxE;qUaDdxOHvyf96`&AbnRtK9_WpndXbQ}4GKaB|4`Cof zR=;a+n>a1Br!pQk{cS;0;Ko|hdV(E`_32@ineE{LnCNuF0^bIZ+ zVtkHuoKOmK+A#32UMfIDwJa6L@KS?;GxfGj!_a$lO^b(iLlY+)`z=3qv~K3vf)X0U zzmc>~^an?hC-Dx*($MvP0b6X&o0yw}uUL5<=8`q$rH+u@!;6rj6j}xU;tg~kcCL|~ zGRPV+{*H{7)t4f5SlKzJCXHm_wPxG{!vn)^ZNLNT2hS~KYIJg)a-a6?8GBI`+H3hX z0^J5ZU{6y(4x(k&+w%Y(Y>lSfA|uN6E*~>Nu@7P4rI-R=IrN4kP|Grs1Fxc!gOxxy z$|};dAwOC#;yv7|ae!`E`A>5-nL=ItYY38z4GCh;^1Q0{+Dfl0%}e`?CW7YD|0}e=7$je(QL9nVU~4jWNV6Y z!)yNpkix*{Au>oQbtv2JYFCHhDpIZ9pnA>5Y?XmYQ@Iv?eb)%^O_irPM5?C=iMROh z59OgL#_yhnWhTnyKmBN&%;DZ_V5^F7)U{PqvfbgVOoaPw=UuGjcht`$so#;7QqNR3 zZyf1?zrG@FH6r{-c4;vAeC&i*>7)A{-n%m{^qNFM8q@eg-fT4yZg^*3i?0+7DGwvb zFFC$Xz(#C?%^yS^8%QRx=!#BSe=;5+ni@J<&CT|EkCJjeB`p^EZq*A(S@*bm?suW@ z@a-yc`vvRHq2T*}F3D6WPY1WAhi}X*HB+MIvtXjWn;ho`ZX@yZ`mE2fSnpk z#)>xEY>|Nfb^)NE*WCb7Q0{G_^Oo?aSipShPdS#JO z&T{APBuIqO@Zu9^SW+O1C7VR zVU9S3)KV@cSpec_0T>g_m1geof7UlcLezKp&y2D=jv!sTRt<9F@vMfq?jp(q-2^(h z8(smg3w%{kZWh^DDkL?C144s*cIQTlAWzOX+Ssgp4wujoe%-3yLiVYMOuAO2XDLg| z=Cl{xZ5wULUiR@79F&&VW%)G+=Uc0CzEd(;YBbGeI|`+GD-J>Mxj5(etFsR@3A-I8 zq}0qrhy6D=;eY#9sm9~u7UyzaAqk;az<2lK@xhN@$UCG;P(h7{?5)j7`z$k86@QN2 z%!jJyA8$2*pL!XPDD>O;+9~(880u^Y*2wT@2y(6>;-8H4nEngtN3~l(qNLBf?O`^? z3oCWLa$0qXfDz)Fw8{bF>JC3)$MPwxk<|mm)5!GEDlDD7=OWmWbnToWhTPe6i+kM6M0s^M%mUjZTmy>^P>(Gx5`j)_&(#aX0R08PBI&YB_*r z7Mzu}^g}i|!zPjSh5zc$4Iku)vAM_X!@Bl{@S2v`tIw*c3K!a?7u7_FDdz>a zWXI}FjH`|F3OJ9$r$?R5lv)wxot6C$un8GPWJH}L*`Np>f%rTV53pK<>@^76;&xX? zZy17NV13abSlzn|a243^ej$_Z`YrIt+xS-HSqdzIpGCopvjyR?M|!v!=31t~31E?J zy<$!f&csyEtnFRB$!Iunt!_gXel?1JMW5oK&A=dKz!0mYsKf1-l$^;<@H0n<#-flN zFb+qa-K(nADtKJmZoG)sZTk_D5(k{P7^$yTXWq^urbCv2@c);02>TLHoh4zcGL%AX z9mU77_NK8R1jKX`L*p5+%$$_MNFLWTw01!`*&KJk@fj~l8T34-EN{2 zcyyWNu@v{wvdC<<@uplyJivswc?R6g0E0|ib!9^_;mS5-ygI1-$-QR%2>$9PkIKs) zDFLo*oQ&h|Orv3PYxTeHQ)}!bX`sWizMp)*aLqB-y8dZdD;j=*-R?PI!k!Q^vq&5S zM0tALo4#tpKVWcVfN@Ri*C%n=S$Ew{D6jaN#DzHW{b!no-J2H6%ul)wVW0SrGb8=g z^wyj|O6AUNos7<68vg6yGyXxO^5Mz+KNE8GQNJ>Y)VVX`q(7uFNwuh$X}rS2c;=E7 zCk|VCU3XLrp%5bC-iDw?ZRYNkaP3;wU4ISAtG^-QW08I|=(If{M;QJ_%`~=P{`6vuexlN&$Q%(udnW$obhyi+j zDRZ8ehR?SVTTsg}t_ExFEWpoK0B(M^*)A>@Y2aZ|xr&uM(rDQdT(5Tj@IA$hOCR*L zK)?(kKykv1NqAVOoyo-m>$Rn8x*|hctp*Xlq8$U)!pi|J^Pw^$3DYD9QwW5W>&#>}#e{>2R$_gC2ueH8N$0s$+ zJruA!lhj&sQLKn5hz@XY@TLp4x2<$;WsZ=QT0bWyNNlzL{d@q+|9}Lu1r7GWAzB39 zYSdtyB_^{r&xB!md3Mm`dEkVQDeuI4%%?m8FXH{i<4Z0ujllq2beBAqWjs6S!NY>% ze%SD+g5aOC!l$qdkPScX^ReozNn&r2sD&eQINBrs3L@Q1on}=&OS(KlUtW6>K~tXC zXKXh1X(nEYc0}}6_|x4w!ksJoD(pdsjZs&dZ9W>AZ_}tjDjiPk@Q8t8?Jf2)CP$a6 zN|zb?f3|W^d#+|R5dxk&1q>tv{#_v;VmZaOPnS09h215!h9C28HW3AQv%>r*b?zojNI6+;G&(tyVf14LQmSZ36`hge&eP z?X8mR#;m-JXLMy+A}nP_!Xem?1i#1}P!K+)VtrdxTagO>ox7^$;Akm72yHx4tuf&P zs|R@BL916RoKM!ce790ZA>2ZXKa5aT@Sa_Iw+!v~v7ODmY0DcK9#hD$sd+t`d3e*< zOGQwri4mZIr@wPWjHb4ir(uU(^Et%cA+{;!J8ct~Lfn-PAM4>*)jti?%sMwIgA(gB zzO9cxjj$B*8Vr0uQE<#=_`PfX);==8VlDaAj?&nshoY;h(w>tno-SK1nvYAELQL%Y|JQBw_ut0GIl z#!a$ zKjV8zmpiL;sk=C{eWZG84q7f>^{v0N%8WAb-aK?!){8M)-KLOLq>!EL)WC_L9_wo_ z@wdVswXGGXRcPdZiW(1o`nay(M2=$X1o`?&9!8GvJ2Du9cxZURN_dsGszrH8>$t0Y z;F&0qUpA+rIu9Rsk)nw}FK4%nYiVBU|Fuejk`UyELU5~Nlf`&N>j%7~pnk>E9*_yQTM(=L87;S5?!%ln zUZWt*^VArUz>CQ3cK7|sGjME*s-tm z_S9W8dKme25$}`FUE!EfN-fWtsRUJt;6;7{TF7uAyNFO+iy%8B&o5`L1|6c&45K-2 zCuWji7X0_!4PkV>JMOBRr43|8pK}Whdk4}g$AbjLyY|kb2ZOI?$3J3Lr|PAPh{#yw zH#zRHMZfzzu2610wlYPGN3QcwSL_*2p}b@6*(#zeDIwmbb+^0_=9&gUwVzy%V5i}N zUg?ONqpW1?6{duR))cuQQG%@<_nBq``AX>eWqTljf}lC4xJ5wMv0H52=Nb(Yzv2H} zMAHSib^eNCz>)$9NMka$`uN`d!P-pC90R{GsQsPxQv*m{9HkU z7&UqZX+Hmbb+~ws6zHA;cDHaF?&3Jojl1a7q%aft`#qwjo%B}9k$qeB|~VhT`1fltj#QAZx;Oq`f|t+TrXeqW{=XC zQ8`A7$b#@lK*r0pNIT7LLX&eEtswFOm-L@I#4fbMaSH&=4>dP`yfCbGhm36c^b=Kh z*4)@jn~i2x;u~eT*>yPZnpxODn%OeL7-DR=J0%T}`x}jrhBwRj{er%_W&ev5gXHXy zyn|q3u6x@cAf$0tO}TFE3qVmAC7PIrMu}wBx@Utj6-W=v8Kx!0f3CEDQ_m(*0x6Yee?MT$Fn01*Yw!^5FRpD7uJK#zKfnVxVqBIz>kp9 z2A_dscNODMQQlK?_}uhOs@eR7;V1FJ73(y-ZzV=n%9;F- zjeIE>5*{t{gTIo2mOn4twnfe+TrEOIBpSijRR+ZHXP1VuChp~k>SA#L02n!ust@qKFv;b*(1r>0>~08}LSa_f z15jQm8u2HqOULqye#Q-$oKIV{Cl^|c2~s39i%U?WQ#Jc zxaX1=;}A4Km?L1G9WK&iQ%{G%0XDy@(M$TWPp`uSuuoTDwR)8!pN%~xu0%K-W3xZU zEI}T4ArnV8dy%Y~R0e)PJ2$Ef(vkvAD)8%T> zt_OpS!bmpzQl$@J>>15(2cibT%0v**Dk>7}BtGgc-^*zKPYM*^(837_$4b+%;8lhf zQ%aR$1npNMhPEpS`O$7|E?4H;DNf+uxE;Ubg5Pmq!k=BII1YF0^6-uC>zhWroC2t4 z-oFIdphu~Sov~)0|fHn#6dfCqm&<{jDt3MuQ%1*&kJ9+-{I+{3p1lyRjhmm)#23a~d?OYF| z(hhTE>_4Io-OLgVD1e$7qBGWm9w{ont?lWXovqrT%_kX4Xq<&@dpy+DzL@sY zHut!dj4{)dOqj8NaJ$r%;88C94w2v9)RE6_i0@A_B6kLI zWbe1ZQ(V34VF{*I;unNeZCW#0En09X?MJX4S6$wwEcGNJIw-hmre+9dKkKmbMhW?^ zzm++SUy{utx&Qmzh{ZF!t zgODu4$YNg^|7*w?RBA5qcztqz87B24A_cO8-0-g(K^dh^FHGFfEd*D@K9H3JhIym1 z-Bw_yi8SrVtCTrCEf?%L-k%K+qvX_?%WsF?@;FCw59Rfb&E^LOg2^4pZ0zf5C6Qo} zo_HiYhu8dS?@6wslMywdTysz+#i>E=&hLP%`}>yN#}Q7ww^nKh%{0=sB{A|KM9Hk& zH8JW$E4F@J;XkQuQyJd5`~4;aWM-9OTMNqVo|kupO?>DNGU=#nyV_QuBOUH|V2<=a z=95}7q&O@J-2`O2UVG8|vn?M8MhqsFl`b|Fu+y%t@%hE&AG8^(f>3t6SHlJRa3FKm zso^k{aB(+I2>yIiFx(fs_<7cl1ZZYLFMv;eix%0gd=R$;=RPOq)VEasg}Y(nME6ar zs?M0DR)hp-jLF(DscR10s3r;Yzhy6tZ=4mNXf~G;i@-{?S^Dn%(gyw2+NT*IB=WKF z!2g}aaTvegR8RUO%cVdKYr>^ol}#M|PKCFPyUw_i7);uLf|oKp%n9ddzDd2=2+xlL`u&O+}~G`(X~yrJSDmu6P+DLb=IS zkVuP)r`bLLqzZ@*MOO*IG_J~jGJzZtMI-EZl}aon?Wc+YQ_wLF(pCas#;JPo)7fn4 zp*&oN|G#>P+D%W!-4NEs#`9e)XW20`$dT9vB;G`ljnmBV7~5g`O?`QwR0l_wKm^l) z!vrh@ma_YTuHA7t=*L&+IUjZBC^~>kw#+dWoi?W%Pulw*lPgazTr>?@S1%(;6%`Qo zOV?*{8qZV&{OZ8E8iRWY(*t5(Zca|&AajSHd+KD#qD~?b+H`t#Kni`Q?|pm>rau-o zYO2YAcHAXP&zrR-=qvuXZ!)h2NxOH-J|#X#Q%@$3l5CO#mhG0Fsai6bqexRAAp&8)=yG2bzp0(hqW*xMZ@7TFOs? zo~bH!OYxoL3UXG8=qf(`)_psgwdbW;tMLE#xjfOF!-ba0+Yd>v@g}jaO&`IM730nA zXl=>lsr7ME8FPATv4r4}OKo5@=Zl_dk_{B&ieh2O*6Uw0uZn6h0IckCe`YxHhI~Gy z?eU*FQ?wFV*$Y{nyc++TI5oA(nd7&E5rpR|Rtzn%y?ncLn-;|dj*Xjv5d`x=_%T`q zpt@`SuLESxp~je+D7at(@JFV!dm86blZiK&cTZ&_7mwcE60F7rQ21geUK}Oi#GxQ_ zcC~s^qZ9poZs--CIV#t2-0mv*gU~qnYQk-uTxj%Xd_9`>Xb(&mlyn4c#VdLW zb#HIOy7{{nYp=uOgRT5mI#ezcDbKI5GZQsN-;#veQ|{cT;wVC>L&8kr;I z8`Qz5&GvmA2YrJRTT!4{;Hn~ZCjz2HtA2m9|1sklO1~ZC|8kW&6SVoS{pls~dRutZ zsMaqiFNSvSOR~52<&}Gp;yyFW+%to=lhLJ=BO)LxlLP=z6&_Veeic6U@4%r40QeRB zE+d1L3IjynaXPo~_I41ywgVO=%tv2G3zgG-`uG=FySv$bdV3ptnuUmH4aQ<$62O62 z3>60+@FX;o>rNeYtLx^12WNTA02buH1%`$iD{Lyn3l+L4V5{g3uK!nGd- zL9Se%+A2;li4exQc|JFUOX$dQcfay`h!3INj3jE)RQ4mM)7V&sp#}rtcSSl;c_wWs zI_p|WpyxnTQ++QK&?lHwIXbd=2t$T_A!qW|VuwS9z~E-BuU~3ILiSdB7z3h{j5=sY zG$%sV%!?NiNGB3M9NN1lKv=3YRlTp^a z8M#@u(P_~((%SM$K~qM0--y6=oH77ItWYwq7*_~Cnt&iK1m|T}Ydb8%oee@6(cTN) zA*=c}xR0@l>N9w^^YiRe3n2hXo?fwx1XNl;!=ToxO+c0H3-@FmDaX_}Cz6m0ZrVJ3 zARx9mLbRZwi=*YrQRGqfCD-bZGDKs6-~js(@e|WNB4^~UX5kdIJ8meEN;w(FXDtx8ia>D(StFF7WcF(t$(nqeFGTz$Af&V zkP@7BE7Wkk)K70_r=XS!~zp$8tSUlT6^eWHQKhir(eb~49aRz}h!-oRgQM%X4 z*69{Ds&%lNuJLiCGgM)b{5a=0h65cV3_7WJPRCBM53M8Yw{QkAp(*>$6%3WElPQEM z^4w?_X>g%;_gr+{} zmPe$8aw-ihwZ+IoM$&a-I9rGk>b2+4>w7c?z`JJ#J{nP8eIt1fyvQP~x5eSelgPAH z?r9d#D5>vvNg65(h*oo66ak5?St{I4H+>nJ6Cl)gf>60rBxr3f;m8QED8`NmC>@e1 z9+czm8|h7}wlrCMfna3J*zNeEqVF?#w9`#5)xr4xNTxB+2yw6vd&lNHwVG#zgB}C zW%G(cHTXO&QtC}iFT)Ooc9M)=bgg^AS2t-$` zZ&!90wSJdcsRclZVf{p&v0mzXseeEPp6J$R1tzEJ?E)}4?=o3Kkjd#>Hxb3DYbmkM z2KdtARDeL^*aajN|MkgegK>zfhYL?{9)aiDtskD8#!Nnu0?c|kS3v~3tE5(sjUN>s z)e4X24z$kBuymz^O|w~Hstpl5NR-BSv7{4*ltpd`i4VsXXCh`$*xzVJ*q&b_rBEtg+;> zbdpa!yy(Qejk^PqTGyEsyK`pQY~G9i?=ED>;@2J;Mex5ZXt8vbYrRKTk)#Bnr-?tg z*}AE&i7`f8!fM~mNe6n*phb3f%85K&|9;==pHDAUN0$!Ouag9^wPc*bvrpHCt8L0Xdu*2J?O?vr@hf=ILaCAgfc|%j?i*c;v17F2{*l!*BJ6%lv3~WB5fy z@eaI&IFvXB8J5PM)q}eqbh^Tw*sOc4{UX3|tkn0HwJIC4Jmk0p!C~{qKJBF_AN!3@ zTMOQ954F8*`Odr6cBS|Dpt*t9iGuN5DH@~|+-YV-Aw}j79wvCN(^)QwaV%Pey+?+L z`qu)X4IxtQ(9ZYTBE9z=?2j6WtXbO~U?(S|=SQiLYP_>OEU=C@S>sop?p1qgo8y9F zFaQXT7+1JzaPr^ycU{NzZM`41IkK;Mok-Yh(mO>VyQr8=bdA{^w-^6Yu0;QBd38VR zE<94QgQP$+>J~fvM|;)E?rk+l2G;@xC~0Tiazem9n5&BD1kxbMfT=K@h+Bi$iVg1b-6exFt;vW;q&Px1Nd(Cs_HtaQWXzHX2<-zF z+`=+&sqg7XA4OJl<6y+f@8bIFl)|S43)+kH)Xur%Rkg}ux02?!3M33*3MQ72!csmr z<@qv7*ZpUSJ~_&k8F*v|lIo7|C3ri_REF#3TV-LzUN;blTNq-Tfcu6R;oXl%Grp+B>(7GfcL%$ceuK9dO`31*=078kQ!FBA5Y*A6*XQFXD|t1zT;RpjVj9N{s3R?6ka=%EHo9Is58SKy{Va{P06pKSTj!sD7@Wu*L_`k;8ES zY%k>NNqaMa0YExhCqv7LN$X}ZbTuhA$6^QE8LSD5DSZlHLcb=jO znp>pb==;tF`!#4Zb-?_@gBFqE_{2oa`G{m|WHogeAGJ!o0Lt#6=GF`E-ArGk^phvP z8T|dM;mgIc(AOFK`)2jVfDNg#u<#4?E%kpBq?Q#p<7|#P8tJC{jzA@wrj~wDjSfg(Cgn^n-9;K$u=# zf>EEhMBexs92I^d#F;va1CZfy@K4bSsnb_?|rWvr= zYdah8d=Fd%j-FlUW_w#1JV4g8QWjMX$hWp+6omsin)B#mEp6fE|6v7XDN2xQ%Fql1 zT@^%uC3w?J%9WxMw(2t-@~Y)qe=a1crE(#c`^VHfp6N~q87l5ql#2>amvmt$gK zXa}ez20r*WKl7tQCjZJu4GA~l#$2NYm`*lhOGzYkiDFGhk$&KRDzfnJAxVspSNllz z-Z05v_F;xKwR?1(j8{N3qO+;v#WyB}abKcz>Cv?dv`KQDPHu9>{iqVX49q=Q9% z*?a0zb6ojZ&A_gk!k?I%xYXfbwPb)pEaqtUFQx;S6_J0;;F648nsX!~Ut1b!YM<=G zvPq%)O@y1Ibxkr;y1o@_B(A-lr#bn`Anlnj{(w>%Sw3ZP3DZE_T;mR|=^{bqsAC+e z(3fJ;NrvB=(z)aC!xn}FVs3RB9Wfw^7<#an0ueEbLFpu&88+&=iLVab=eqviB|q%y zFqOlP411X)2|c^57$?J-XtLpjq$FZdbJ>M!PECP`i5CB~IDQ{yR0g|EYq!^i5^UyN ztcjy)rQDPZNXZcb=P`VILeimw&-t8L<*#K@?8AhKe0mcY!C+uYht}2g7R~_hYF4HB z2Q_Mgdm9FQRQ=a?aD&h5-}TqPvQvRdor8BA(-M6I5qe^zgx7acX#SDpaC)^6J>GmS zL@udOU6O{4>yNaoz>53_T_1T!-Ft-NlDao&f}a;T?ljHpfz|ZFy^T6^UHr5X%o^0^?aFzfwCY2s$c7jEkDoZ~VN`)K^(Q z;TPlp8c#dFnm8>Z(4OR`@*lhTt-IKoqx9ExbJNPZD&cIOH^oA)3GvvAs8CD6MWgR<7G#L zod%=oa76p$>*8`=x>5byEs4f+klHnA>M5%b=JD{w?Jls(Kdv1(r3c0opvA}oN-!BL zJV06^sdPq2-`h+PBo8$_Ozn{^tivu$R#(en05~>?9?TOs%txTpfZIVeA5E;V?<~ zlpL~j@O&|?tj+4`jZyz!A;R*jL6oSHr56~L7b|ulI1-Sfinu`;3Ad7kX+RT^AH{*~ zzTYVVOzfH#Ab9=;t7byoJ#lJ_HF7_irfy19_5&pVm}qySxs|%>xa7(mMAL_@_0;sH zOKS%Skg`cQ2lsYxc891+&I5G3iFphblEM2F@`sex&uJTaAuk=C6 z;hez*xQL(gUs_buzZD}mQ!Eg9a-hgw;dN6m3#KhYZ?qU}(j>HaBO^ULBBF-2jU=cSm{dxPm+DV${ ziY_dau)!A`?w7xwPVgIDg4*!QUzg-)mxhq~wH(^=r*T#7pN_Kv{OP)~0>M(bbyPQO@8k*n=3{q>&+(HSgRHm2BNhx>QZnmyo=YV8q=HEID58oCymQ0 z*Y9c?@YfHLHrwa6W2!mlx~1&rcl~P*(B%3Ku-BG~1+;&Z6XeGZN$)kuy=zzOAfjmd zpnW^Uu*e*XEmESCYu z;Ywd``>(Gf`|nljNxiJtTa>a~o8F=mulP+DdSebUrEm+A!>ia4!B@D-$p}jpMAH z>FXS=(f~Ua2UfPPey{O7kkAt2a}+BR4faO4J7Cpy8lv_pVSKHhZOn+j&yFc`RW=D9 zLK^W?o`*e!nf0xBh|l2UQ|1a*Omk&U54BW|914Ej60>&az;PA+9*wo3vVJF0&A3vv zI5>>(mpPKEG~ry!@?G3Oja#z2ycPO1vYEPkPo{c8EnHLch4)<|VoiFG%`VVK7X{I} zQJ2~4Zx#U4rE-M)ZC*~^`*IF4zOU!N0gusBRptzfhZZHGIqTC|nk)nI;?l@jB-|p2 zV`*3R7PsY0f1?%O?+G3F(#xV_Zj91QVH&P}Y$WI5Roo!6N_A0HvwTgm;Z3Fdo?Kve z%nTTzO2ezls$s=5C1BUArI%{VkL#|*pr~0p@?H<8=psL4D7LHKI5IR1|E@Hy{hU6q z4-Kkx2p5w#T#4WafyX~oLly2R+&+^54-D`p4=oR~*3XA3RnZtLD_y>z@e?36SL85@ z2Flmqth(#we|F}(9rk@5H7XkIQ>kJX@H+@!>1(_-)O2vgFgeBhAP}Dvm5qs8r~ca< zj)!sD`$C9218Y}b>FzdGqXG?ym^oGprmS^e>8hz1vJj9tnL;^iqlT_ofEZuL$Ddz}Oo zy1N1?<34EzHllXXA^`E3`aW8Y)vl4Zp0+~xH76Ry))Y@pk#OtSKKRrxh|Rl$?V$&| zfI8br3JZOhw0*oR!fP92YMhl$o!qCWrh8WTxHiW=9JM9437JgDF0IqSmy+brxKXHN zX|X0Sf9u8Fda;?+_*fUt**0}#ewdR7?JDux4kmGvL)Kn`%csw)q$J%a*H2a>XNMmN z1N86K$S`?T?FxQjKK0_ZeVEjf8~eSe%Cu0$+K~kdf3xOv))$S|@?U(D;@Wei62B(hQH&#C70mV0Xlo{S!;Y(*2+ z#bX|NUJzAyD{>?q$DPG>`=CA_KeV5hzE~b zn#V-e{k1S%?L3glPCxfte9pBR`(GL$AbV#b)-=fnDJs1X&3UEX%wQcb&7kN1OE3d& z`!xmsRi8^doxWhBB>iviLP^7Hfh&gg@FV5+kCy|#A5MXW|6WHsuJbL}-wBN7Qn^pU z7lH(SU^GMXFvI^VcO=95_LN@&v*|g}0Kt#vmbV`f06RYYM@Datxwr0zw4#k4TGIcW zHT}+lw_~d!#lnhrQJRnR`@?47Uwas?>i5@06%YsDS~T_HHNen{yEWechd zkIw-P*9()~9^HXE;tZ)pA6FCak$2+zlAGhcTO>I^%Ufz+^iG|m@sRnX{_OGT(s7)G z#2odVAYyx^F`{-gx}rJYL{LQ3kdlsi!O1v#L&Ldhiu}czejHQnG7H_i?L%IUcV5sv zWPT|iEX*dWA^#xDD=76Tj&WU1>L5+Z0_n)|N4tJPUW}v*LCXn;nuHV2dW%693!d?< zwum?rifI&>6+P5;eoK&W12qI>G3n&sipS)$kEy7`qmuYO@r;9IoP=SKw7(_Hm;ic5 zmS2gig+H8=ob$^uLWktNTO_tVko9U;MMD1dv;@&MFZM<5)D;HiCsZfP8%=l zWb$Nv_P~Q|MD81V37TKD9O*>kx6(&`4y|>w!9!WAdyEX6jw6$4d{qU~0}q<<6i5Oh z+t1ooAe<1~=Vr0XuGkaWho6@}72Ud!#^!g}=jHRm!U;*GKqg)4&cpd?3_c!tNmRUg z|78OkQiiJjX+6TFm#yB3>ii-l!_noXuSK}?mQpe&hA~iaChUJQD-m-a^qy__*oD6$ z^j?+2?N)SWj;<1N)C~>iK_2;2Sr^`m>;04+t$HQu?R<4O$G5*F+$dz0HRpTqrIgv~ zb7&PWPkz=A$v>^F*N@#!?#NIn0g3D64q6Uea|}JV@9EW4F)6mkDM=dnN#Qufafs>_ z%y=I>>Mtu&g}POqBvw)+Z#UI&gS5fb|Fo3rR<~{h!>qJtV+}P_^v{~J9fY=vi{TOS zq05$U{>_63#g*cpP;=j~AikNWFEXUlIe0319R6$j$#^}Gm#!cI zPku@D1l=P$$Z=ge=g3YMeImX_Z%n$FEt>WW@t)zg*8kA%F}3Tjz4u*Hy8eK>dOR*T zz@$HNWgTYtkK^3)&KYzv-EWAC$e1lEvuqy8Z?&%{Tbr`irl<9f;386vH?v;8PE*}; zR1Ew_pIZ}f+2^<_7pjqENyjZU?e?jT?|QEpA0KnwNxm;V(_QMgUJd;h_c-uu`E#S{ z|9S!BecJh2(AjOjT-jMP5E65Cy=(If+!VcRAF!wf2H|1f2_(HzHRuOzY5E!mLOxd$ zy~`maw)c3ONY}*U$FNa2&(PeS&8ag)$4k2D#}N%8@Bc3lBk$bzUQB8FCf0p4%xW4Q zsp3qY^^d_Av&PUJx*n@w?|9JXAYsK#TiCcIr&CX)R*phQynzxk(L=M(2%S zJ4Q^o7hcQjSM;@a&KP3R+KHufgn1{q^c*B~@Uj&krz3c7aXm-R=oHQtJdUFuA*o(z z=1|@Y%uF(1X;7+Bsa{|cf(|n4hk`IS-bY%N1rH|Mdbcc#IyX`Yj8KK0hMe>qBtmt9 ztf+o(+~+N58KcDy02Bbcq62d_W<-%XccOoSjU1Ov4L^?r0N^Y*cDfhELPwgKZM+xm zBkAaI=}KcHCyV9A%1@?H<=d^AuvY^Tv^qg0B=kA6Kwb+Q1||vNBVnmkdVk|3WC#oNJ{7SKE{loFewB zbtQ2?FUrLQjReWwnCF?9qQjN`!h9D2?MN|<0H92daDL8A^-Sqz`-Wx8x?oY4l!An0 z>-*%aZjbz)tm^q@5jU5aDqa8HzfnUXvA==c$$Fip<98EIfNzqV9_%o+6t>A+>50Jb z_QJ3Oy!&v{9QVv#?9ayb=bfA$S^X_qZW(Fi%r6#`OQNh!P;U}QXix_#jg6I!)UW^}_+&uYAr z47yj?d7UI^`{HU5opxSVCPDIj$HtVsNv^n1-O3VHj4Y-jy`cNML`5(36Ea7fip}ci zyU{y!uM-3ZoNc}bi5NEKd0rRSXfV zpckvq*zPG!gj>Dq2#*7*{*B%11SLr5@<2^Vc@Ge!;wEJE} zVV$5X5(PTj0VISFWdoHRhpV^>yFI<{lja9e0%Hqc>#cC)3HBq2B28LG<;LW?+cKwI zY&TJliVS)Io+YN#z+@|2ty#zOU2DU>QW6>1STzb*XIdj*Kxx=CkB z32!gB`&22eT4_0=$=}BuKi=-?7GmAg#k20rcftM!kwi_jNN*B4x|TjrE;eZA#gSqY z3jEq#G}9VWR51N+=Hq?4fUW9CB=**Rp6#&>7!Z5mc7MvK0%7Wf9{JM%7yzJW9nCFN z9LA!PXah3{>L$h7RyDwv*}V-?(e`I_i!%VS1m=v)bjuV-Gm-$C{Dg+5)Fuftga=FS% z@WFVTN+kJ+5xf{K{N+k>mndC*-{C4^BjXNZyyg(DX;c<=PJi;QT-%kzo>$7%j>@3n z=BIKa;dqg2r9M3eB_@x4hC2eGhL2qyV4HK>9`PpqP=Tv{b|TcZP7wR}=G|96{}m;o zq1eZwa(CARO~h@C5Q!#}pRP%6w=pd0Y~h(eF#5 z)w+At2_m+uHqF(p=5Nnao8~#>_*MSqJS3i~HqCRitNhJLNIX&fji;!GahMcHcvxBR2-b}#wpNSCHE(Qu`LID+>!Y}IMESzme9y50~W0Jrz%MF ziw}D;5(V%eLPK%?ur1`)aTLE)k!^rs$V`YO^gp4{P%yBjC9C9(Uv4N@j|H-ZCsCe~ zM3eJ0!Db!Ug7BHG7D)qzoikeq5ParJt30^?NeYK@oeJOD2%`2?5-Cm#(4K@@52YoE zKs^*92~`gzaSoHRzhNDj%01PXi4FW=hwfCRXko3!eJ@aZ;#Ay4Nr(&*FQFyPSYN|s zK8k}w?V}5iNrFC532YQMZ(`C$fLS+E9jL6CI3|DzvJ#QGkcc41E9Xn*y;N?zgnq1M z9T!aS$m(&d=iNsqK_4hVsQFNZ5Lv5GX=6hP3N|qp8|qIQHo5$2*~bv@wAK{DO#Uhf zo|wG>W<@p`Ux|dM5`wRZMDT=K!M-?aV_Il;Ew;Q>ehvf)p}%opBg8C{>on#_%2Htc zBsX1H6S;9C&O%rhZzHD-*a!)bkd{RO#_@6^X>t(3R)>wN9!dp? zX7)y#jd0;rmV_S?C2RjY&u)I&h%K(F^%lsD?mpako;hQloh&@xLg-gnJ(MgGWl7q5 zlMq6PqJi?}3(HWYT0ml6W)2*TvOI>A!2YN#-;~!+MNcMFv%k@I?=QWkPLtv!L0<|k z5;c2&-p%h8R>#a|jZEP{!j&rcOZtlLZs%DkeXVzEf8#E4<0XMzAz+$}iPvR52ti$> z<)IacfXd#0M5-Rj%J-Qhy!B8@jB@4}AvFpb@=aM=-~x+3$n$r*;Zp8^c>h!^H9JB~(meo@d1(ItLGquEQ6{gpWzWlhSx2 z;SSWGi-Az2#0HFI$(xHcgK$_`qMO~vq)w!eaCaMppjH~%bMTM^kgv>#6^L3Bmiy== zcI}8jB9MYL*p_96IqJnS4Uz#k{j53f-o21Yec1;n+uyj_fvs5%p0a!bZDl32NT8oA zq|&t>%GI6_8<4s2*}jbc+6&n>$+>lYW7NCI+kX-Sh^p_ek{IX2M)P7N?xK6uLm{>U z2I?X~Y*%fXt6eRC4JqX{3Rk{BmyFYvTSKs;!e)jgSzV-P(^j`4CfBeUV z*kFwLqTvOAV2mBfxJ}4y-4XbJry|$t{_0U-52g|atR`3Uw$DEM?7Lt8&ey*V--WOL z?Cpo|{`Pk)&FZtyK5L*;9jxc{VB7AdDzfX>xD;iq2Y3H zw*eFYaAc4;M#$BA14DiOoqxQ3__KfaUxt7A4}Rw#|7QUB&;R#-yZq>H;3xl$`qSV1 zUtaJ*C|Ma8pfBBa`{W4ppQaZpe3>pdgL(Qpq#@Ia1!!TeSV_BAA7%a^yq}LTQ zYdGyeOGtQS1s*ZgN44l&T2{mMum7V|5?>R$3Fo8 zfIs==FMs*%Zx}zxz=owb=@nhgu__5!+=n%2cXQ54^ueo&JdmHtf`oo@Jz|V8kaAg; z`4yjE?FtY5`3K+l{hz>}{PLH-{KhxFp}$oB{J}SV-}{qW)?@?9PpaypR_atc>VyD< zK!rLiJvwRpuEVN1_ApMg#8`VOB}|h_6mtoU1KJOM@PnWH3 z|K;1?{`Oz~ufGKVzw__@zwOIRY+yZjP4=ozli-zh`=)+rUpWbB=oSteGSJ#1w>u_6 z>dgR;{q1a~T)^nszVmng5a18s`~Oz?tp3Mu{?`7tKmRQN__P1*x0MzC(=Yzur+@bk zKm5P{h9oz3lQDV5sv$f~)HOGd4PZpuvMjun84y6=1&rRn_(xy)=K%22F95#(Zvo)X zHm|O3%8~WcFaAJX`5gq0m=BlFGarWJ1Y>yAtL7`aSk)?8+}s0&wP%g=xG{V%PT`d$Hps#6(O@@6aB%dHU5d`lVYSNP_Qq6`gSM0%uh zKiBCz9w-XYUXS{{uUy>kZ6E$A0Q|uG?(aBP{e5RVe*k~_w`4z+HXK8L-SE@cr-b1# zO_lI4mT+Q^+RCUNo0z}%m2bkE3kGf5FMjVU@TY%!qZk0|hd`lW?W0_lh1c^_93GVt zX&jZyi_)V8_CNp_?v6*VIfmcRk&|_C!Eg07HG~cujkMe_CU0US!@UL-5?}%tRZ1wm z#v8md)$X z{3rKU?n+E2`y|4VhX5e@S{)G;KlGVXu7Gq zS_3VR@8nMioAu*rZ#3zJWpUP<0io5DPRL#F8`?khMh-=ao<(k$jvc>w+RU|TF7PWK zZ@#0-6&=S=d7slVNLp!zdgY_DPDnV!??WVnFROWG_dW$ZP15z=FjH=@E~ishHC^$l zh*fuQsG8fmH_GnkYc2Zvo5wIY8J%qikI*;nhd4Xd6LK%Bye8x}NIqT`-BNplZHYyc zSF*M0FW~43Etn(4BtRTjIpp}xK5lDb{1mjTJR`#WXA^|D2^sF?fI6W1-bp(9K#?Z* zdeoN!?g40@-$0t};88d@W5azrd$q=L!?AF8 z$$C`33GhshQ7AVKEAns=x-1H!XgWi?aw0u=GtX}*Cd2RGbKZO1`K~)Cw2k1sVO9hR zrsXh*mha+C&BwvTzTJtx;qJdzEWi;vi^BzRZ5+272^JWs-ZOfdhbg zk1=MH@3kOi=0A;Z5QBHGYCKJLnUPlm3_c7}RXEZ0L5E>pmNIxulW6j;fpH3KXm-bZ zk0r^nEXy)4%RCHxS>}X76XJUo{6$3U^o7W)1O|qIQezb!fH5d71~g4#97U6NDbIlo z1qQ|R7T;q@G7KC;r9=S>vpdTbJNX)sd`w`d#oK)^zMF0!<-9B!9_xfk2>|o5h-p%y zW4)NrS^;AmMY-IVomQtxDO3y^6Cad^NmC_V)tcAkwAZ7Mf}%CISf7~?vXcCo3Z zBo2Ph(hK80Pg5W)rX-=+#g@Lr0zV@vTJB}{28L_Hs1K^7K@&wQxy%)a4hsPK8!v2D zU@!(!V$MCOy}>zGU~uoHzE`7Jy-mSPGu_W%F=wtcgh0^UM6@g1%bEg1wiqe(L5#v{ zjTGQS>rSporY1U9M_4s6pOmmb0*ryGA>jZ+L=Ce$_^Gtez``wbN6tCcg)+RiY@g~4 z5;3vR*8Y|Wkb2gr5@6^bB4Ds0ua~(V&t5U&D!q4>8|t2ng;XinJh{8c4q$MY5O=UQ zC~|{x-{Nfzhwt&4DEG_gn+!CuAVYV}-`_|B!$e3zun>$5twgy)rv6lHmnT`j*tV2X z0%IW=;suN%6bHr~@F0p2uJfxJe8>`c$H`wwK`asm5XFTi7M3&7$LjD0*nlsOS!;+ZF{%og2+w) z0E~gbsYzmgH+zGA-!lGM3w$wT8&DJ~=D%6cP9XZG7{!ZL0u0x=M7O+My8>f|1#nVk zawI+SbuN3DrfGC^4E;~*d*X@IyX}kT$c+qm=q+#|ruBy|uSv)E%Fw&ZeA3X0q)aT& z(%JX$Yg}x-n|H&62#f;D+kI4}P3eDX%;@i#gD5eHT$gKHvnmc0n&(-W9OF2S<7g>n z8Za0qj9_fQ9rwli*&E9;bI!J69^1sSs3IbF%uJII!l(F#?S!EJi6JaW2VK%OOtRd& zbYRGo&ax^2`2I^N=p_J)of5P}N0d7ky&cCH%gXJkuy zY>?3J84j_y#*`anm~x9r3NTEaDsF@b)L*PDNgwr^nEHM`+z9HHWx++>G-e(k4!4UT z?rN^mnQi80aYZia_D=3sNTQ`tW12^Rfka2>CmIIIs&;L0hLFP?6jd(mZRG~%TuKR2 zdRI@i3cHRi3Ow$xFRn!gV+nXDHl+&e16PL_hu--|u7h0fs9j zEJIAg0Q;l#=VFDbpWINgpAQ4`oi)&F75CZS(8?cU96(qb`RZN(dAm#Q zexl#_W&m>U_Nw$#$eCtIV!tA8X+R(jw*xSUj$ORDpMk0Kd?P5o4$kHQYayex7Uc7$yA zTs12kXn04tk@QmmI#A(`3mp|M%JpirdPvb0gxgjNIEJFIua--kSTe8AM1^$&rhMbAou42BcX;>gcbFeCilGn75Kck7ap$n);|5Wof`K(#wp}Rk7lV@ltpVp zh+gnF7Y1wat20z*sqSU)cAb zn7~kqSd(|$;O==1o20smDM-Z7^vbZ2Vqo}enCEEJ^L-XDv_j?Vrr{%j7#N)zsQMdI zXEk>e;s6pX|1?IHn@BQ7B$1s>U7sUo>^bJ*i0Ouozz{-=LR__Ju68wlyR8nLZf%;T zQHYBKk;Kxo00rkz*K>j@is1~U zeR_ku6EKu(@@kKb4ZY2`c`5j^%u@1YnS-&0&js>^9W>l8r`cXSe|tG6C#h2=*on90 zjpjX2QJvT~ac7-0RrNy3Jp)*rr(3;a*W}fX#ztHAa`*GM6}NrNse&nkIo!~0i) zydD*6aQlUgdtt*ZXINR|M@p%-DltoO&KcW^^WJ+!KL+HjSoy-n9qbKl6|B4ZYV%SB z3shJI3_wcB)DI7c_QuiJP_n{` zX5@NrzlgomJ@-shQp%3SD1$3{PRhvy%vBH6XOR=eRsk?( z$PLbQG-csRo6ca^WI+e1&U&CQO!ZAWMA|Udkf6(rTx@9Ly9qW1vt2qBS(Aosfn{u; zoQfsaR;VIeDkY~Sg!Df=;#{xLggpZl(3~xMdU`@DhuUQuEItRFu2)XTcpWL(ZtK?uEzMuz`UAzYBog6+9|4@jNFs z3V@Lu#BE#p2w-F=RHfuYz<4aVu{IMJ>-&lyabcqr7`h&A3Khz=na!C+hWKg*Ffu$c zZ(ab56UvRf{e=%6006KouL2vl#=tRWEd%hXRb`{KaKOkS7_#vPhpsAl7ay0fq$fon-+qbUf8L{ZyCSh{+AS zx&s*)^$LGTP+&+vU<26S1;~U1Tl2srZ!S}}_CiAKX{h7+0Ki$$w7rYmQ0b4AWVX!l z-~HV+FU&F7N6&~2jS8S^7BpbQ&2AP&1^BjsLzA@YIV>9(Dv7$@W{&bf1~At9NPw-n z@mk|p2I1j`MbYI(O+1y_$JqP+yQ_-zs(@i&L-%=&fyG=}3JllZS0F1O94zFWD!QZA zg#?iWQ)V~w$O@#SX<)=lfV;~-(Y|V8Z@78GUKKEQY$!7Td;%!E9smFXMoC0LRLmN) zOMRAiyviuwvOLwuiZqL4s!vdISRzkW*zBu;!GcWhF8_3F)W_kfaUKS-EJD4%DqwhQ z@i;JK*zzWx`v8+&r#9DEeiMZwyU;c{&)Zse6QEzWxcqB9{C*|a zq6*}uIU#^#XA^n4N#xQcH`@4ccZFwz2L?tZDqJ(#sP#rh1<9%bSS!|TRzF5Xz4koM zGiRJ)XP*iim)t0~#a)XT1EVGZhk}8=gEx6~C=$dvNRZ`))UDtS1iwO|olR7z+9s#E z&cs&9jgZAm4A4j{v}X8FQdXSbH?oZqFE$mti9o$>x;AAcE_l>q!=11uoP^mugo=lA z7t$-@5d*+FmX)|zJ_{RD|7u#Agu9@IDqj|pIG`7mD7qIgl-!{A0&o0<-k%s7S8bZB zb!bmge?wmAxZ2f1_QvmhUbEXfZ(xks-ccA<#bj^L|=vj0sa~!c4`33w&{nP#M^b2k8{`MZpZ^D~bGFjc_ z#y8=OdWCTE5X(QlXYu`yVX0$CT+*XfZiLnw^+Bsr?wX3{SYI6aE9MD&PfJpH#aD=# z@Sm*b^!_zT%e{HLzwQMgDiP5Xd5q9wyB8aiP<}DWa^GZM82t73)eZ4<>&kwgTTqDAIQPu+KR_Yb%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq^m7)5S3);_%yW?{&=vJTl6B&t^Zob7sz&*e8-fUUscE zn^vlZu!P#o+<3h4%ozg>Cyp7639;7$B@7Y^{xI;c8*KkKapv~w&|1C*^}f4a3=B%| z*iu%hnj5<;S7>RlH~8ok`I7IzuFArlZW$g7X?{Z=3MWy;ovbucoxz=LduGBBhR>(!0);l+El@Xs~dP%uy85}Sb4q9e07Ik0?f?J) literal 0 HcmV?d00001 diff --git a/src/images/chip/textures/yellowKeyWall.png b/src/images/chip/textures/yellowKeyWall.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a5ea1a1634e4314d84127e0bec76ea30720358 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7l!{JxM1({$v_d#0*}aI z1_o|n5N2eUHAey{$X?><>&kwgTTqBuDNrq;11Kb$84^+AoS&PUnpXnkGB7w7r6!i7 zrYMwWmSiZnd-?{X=%um)#jkt1IEF+VzB?_D>xcr6%i~7}ZEnfvnxC%IVGNJSUZs}9 zy>N=y^HdpcA!BaV*rg&>u3gL>i~)rVQ(lXosfmec-Fip%hdl#>_jm1v5c$Jq%)c() zUGUZDDpQL0cd^;qa~$_hI1v+RJmG!Gq)Xp7pI9jHjUi;uyB(}nYz9KJS|iF9h;1p^ zCwt(j`xU01LuS%PQrWAV)-6Av^0X5RHZJe5^~Pi6Jw_v^p< zL~p1LDl1M9Q>xKYOB2&o5@J|a-X+5RfssR4T?oif$TzL~aH`ubIt}D^Pgg&ebxsLQ E00SO?n*aa+ literal 0 HcmV?d00001 From 368fb89b645771adc115d76b04f09a2b54f46082 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sat, 29 Sep 2018 18:16:08 -0400 Subject: [PATCH 25/34] chip challenge --- src/edu/nd/se2018/homework/hwk6/Main.java | 27 ++++++++++-- .../hwk6/controller/ChipController.java | 44 +++++++++++++++++++ .../se2018/homework/hwk6/view/ChipView.java | 2 +- 3 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk6/controller/ChipController.java diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java index d401d260..0c743f42 100644 --- a/src/edu/nd/se2018/homework/hwk6/Main.java +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -8,6 +8,7 @@ import javafx.scene.layout.AnchorPane; import javafx.scene.Node; import javafx.stage.Stage; +import edu.nd.se2018.homework.hwk6.controller.ChipController; import edu.nd.se2018.homework.hwk6.model.ChipModel; import edu.nd.se2018.homework.hwk6.view.*; @@ -18,8 +19,9 @@ public class Main extends Application { ImageView[][] tiles; Image tileImage; int scale = 20; - ChipModel chip; + //ChipModel chip; ChipView chipView; + ChipController chipController; @Override public void start(Stage gameStage) throws Exception { @@ -30,17 +32,34 @@ public void start(Stage gameStage) throws Exception { gameMap.setBlocks(); gameMap.drawMap(root.getChildren(), 20); - chip = new ChipModel(0, 0, gameMap.getMap()); + /*chip = new ChipModel(0, 0, gameMap.getMap()); chipView = new ChipView(chip); - chip.attachView(chipView); + chip.attachView(chipView);*/ + chipController = new ChipController(gameMap.getMap()); - root.getChildren().add(chipView.getView()); + + root.getChildren().add(chipController.getImageView()); gameStage.setScene(scene); gameStage.setTitle("Chip's Challenge"); gameStage.show(); + + startGame(scene); + } + + private void startGame(Scene scene) { + scene.setOnKeyPressed(new EventHandler() { + + public void handle(KeyEvent event) { + chipController.moveEvent(event); + + } + + }); + } + public static void main(String[] args) { launch(args); diff --git a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java new file mode 100644 index 00000000..de60d8b1 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java @@ -0,0 +1,44 @@ +package edu.nd.se2018.homework.hwk6.controller; + +import edu.nd.se2018.homework.hwk6.model.ChipModel; +import edu.nd.se2018.homework.hwk6.view.ChipView; +import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.input.KeyEvent; + +public class ChipController { + ChipModel chip; + ChipView chipView; + + public ChipController(int[][] map) { + chip = new ChipModel(0, 0, map); + chipView = new ChipView(chip); + chip.attachView(chipView); + + } + + public void moveEvent(KeyEvent ke) { + switch(ke.getCode()){ + case RIGHT: + System.out.println("right"); + break; + case LEFT: + System.out.println("left"); + break; + case UP: + System.out.println("up"); + break; + case DOWN: + System.out.println("down"); + break; + default: + break; + } + + } + + public Node getImageView() { + return chipView.view; + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java index f3876f1d..bbfba665 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java +++ b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java @@ -9,7 +9,7 @@ import javafx.scene.image.ImageView; public class ChipView implements Observer { - private ImageView view; + public ImageView view; private Image chipImage; From 06b24928b913a143eedec0f29ff5c7c385b84fc1 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sun, 30 Sep 2018 19:55:06 -0400 Subject: [PATCH 26/34] first deliverable --- .DS_Store | Bin 6148 -> 6148 bytes src/.DS_Store | Bin 6148 -> 6148 bytes src/edu/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/homework/.DS_Store | Bin 6148 -> 6148 bytes .../Chip's Challenge - 1st deliverable.pdf | Bin 0 -> 24033 bytes .../First Deliverable/ChipsChallenge-UML.png | Bin 0 -> 124690 bytes .../Screen Shot 2018-09-30 at 7.46.56 PM.png | Bin 0 -> 83637 bytes 9 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk6/First Deliverable/Chip's Challenge - 1st deliverable.pdf create mode 100644 src/edu/nd/se2018/homework/hwk6/First Deliverable/ChipsChallenge-UML.png create mode 100644 src/edu/nd/se2018/homework/hwk6/First Deliverable/Screen Shot 2018-09-30 at 7.46.56 PM.png diff --git a/.DS_Store b/.DS_Store index 1bf324bb71e4fea5d6ecd508cf8a3be30612ada7..0e7daef5b54e3ffb375124d4f6538074cb84c66a 100644 GIT binary patch delta 66 zcmZoMXfc@J&&a+pU^gQp`(z#_O-UApWQGieOojr_oc!dZoctsP1_l8J2FBLOYE1vw W&CGNZjEqb-Ycp?Q+04%ImmdHvTM*O$ delta 43 zcmZoMXfc@J&&akhU^gQp+hiUl&B?J$@7WD3bQFw?EH?);Z(*6(ps|^q<1aq|6>kjQ diff --git a/src/.DS_Store b/src/.DS_Store index b5a8eb238053614d12f267cd7aff1c87f589ec38..a59ab3d8f4aa1234a618c6aea3ed444a77981fa2 100644 GIT binary patch delta 23 ecmZoMXffDuhK0?{Oh>`UXmT8z(`FIY4?+M~NCy%C delta 24 fcmZoMXffDuhK1e0LPx>K$Z~Q#o8x8?)(=7eUS0=C diff --git a/src/edu/.DS_Store b/src/edu/.DS_Store index bc9904b8320129fd224595d0be2c97d3c8b87169..e733f3f1a563685837d2b4a35473a2aaccf7d64c 100644 GIT binary patch delta 20 bcmZoMXffDuf{ESCOh>`U$aM30CR0%WM7ahD delta 20 bcmZoMXffDuf{ES0LPx>K$a3>}CR0%WM4tu; diff --git a/src/edu/nd/.DS_Store b/src/edu/nd/.DS_Store index 65b67a952ead48411aa06a9c485b9e2ce1bfca74..8c806c533b9749a45fce2ff37542d8d378dae53b 100644 GIT binary patch delta 20 bcmZoMXffEp#LRAHrlVkFWV)G?`L_rFH=_ka delta 20 bcmZoMXffEp#LRABp`&1AWVxA>`L_rFH;DyA diff --git a/src/edu/nd/se2018/.DS_Store b/src/edu/nd/se2018/.DS_Store index 7eb9a91320a8c39e753b0ba8f5e0bbeb49c89857..d31efb03b2af52947524091d8538a25779071d5d 100644 GIT binary patch delta 20 bcmZoMXffCz$;NJGrlVkFWV%^_?TH`&Ia&o? delta 20 bcmZoMXffCz$;NJAp`&1AWVu;^?TH`&IY0$o diff --git a/src/edu/nd/se2018/homework/.DS_Store b/src/edu/nd/se2018/homework/.DS_Store index a0ed726be42163fb7440eea8a54cf3689a17c927..b6cee2add86d9a738c925b28e60ca83081cbf4f7 100644 GIT binary patch delta 85 zcmZoMXfc@J&&a(oU^g=(_hufJsZ5g_SUCjEJah7slXCKt7#J7?7#J8oPYz%aXEd9< pk#z#QnVF7)k&)?S4>nI;v$Ei#yqx^Jbf7xMiG?1U**X650|4ms7f%2H delta 28 kcmZoMXfc@J&&aVcU^g=($7UXusZ1M7(ik_hbNuB80DvY4%>V!Z diff --git a/src/edu/nd/se2018/homework/hwk6/First Deliverable/Chip's Challenge - 1st deliverable.pdf b/src/edu/nd/se2018/homework/hwk6/First Deliverable/Chip's Challenge - 1st deliverable.pdf new file mode 100644 index 0000000000000000000000000000000000000000..70eb86e8dc5506466fb9a57bd06f17f361df1e04 GIT binary patch literal 24033 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 Ku*hpD;Qlv!#GCK{ literal 0 HcmV?d00001 diff --git a/src/edu/nd/se2018/homework/hwk6/First Deliverable/ChipsChallenge-UML.png b/src/edu/nd/se2018/homework/hwk6/First Deliverable/ChipsChallenge-UML.png new file mode 100644 index 0000000000000000000000000000000000000000..54bf1621c0c300ece3adf7d65607fcc8a84005c0 GIT binary patch literal 124690 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%0D}hbhKYk7)Zn z_v`gn-$e#EDlFggd)e;bZ%!2K+1ly&{35e_KOf7ixXFB;>dOb{uvP0b%I&zRJ?R%7 zamr3tm%KdgY~q)aE651m(_R-V-OFos?OurE4*wL+BR;xxh+hv-*)Z-fwMvzfbYmd# zbt>DEddqthc9$L%xJNqIqVRLmosLZFkK_fdD({ zJmN`S*|3AmvPOnwM-OU;@J9m7XvrQc(=qpRjv2BIH2MhTyaZPrwz zI~t@%C6YA#hJx9`^Ce3M76BAQKp#l703;FjZOdYvA9R>O$4)J32X(p=EHWyfZK3%E zVm?*@#luY45xndFAk@bpV=ORZ%L$;gEJ{9$;k|#!QL30Icy!v2T#YBKa# zN2V7cN0*nSamETm&8^!yzc5xsbmd)dhHRJ<%;w94I)~u!lq>k__W+%kq9Qz-ne$HH zbET;VQn0h1Gt^h%iLRg3x4*KR_*O|^$kZx?zu(fqEF1v46NgkVWv*tuaXI5ZWeel z(szK4jdYY$s|aRAuGlxU!3crhEfTNQRl21c-LJAbB{Z(AqDA%e?{v> zueu1$MYp0};j_fiFTUORu~Gx`tog?nH>w&4E@T4k=PM0;%ID*JVN-Ppih9BEkB+_4e@~#Kk2NV*QbBA) z2^|H+a-+_*S2b}suTT{NNttCok%$^}O+emcj{geHQM57reXvIf%2suN)G}mg5vIqG zPLirR*nh0^ImR@Ko<<+}5DLjUz3xeBvgno=W+Y$2J zA0s<+8$#*+%UnSGyqMENE5ag3XJcH@Ga3zLeofqPJZgJM+{Yj%xTjGfcMY95th(pg z#{87e&RrTMmxZ1{$3$UMxWy6_-oe~oL4lGqDQ-g6#Cr?iBcTKxc_FjC&<}biNpar| zneH4_rpiZnyd2Z2c&UcZx9=9-71q9|;IHF`nACKGa$peqxUJ#`ocTM^9#e1cfe|%| z6<<&9^}emHhnzNex* z#1$n_-Y(xD@7n}5`6@vJvFa;Q-5`_@l*0CBnGOprmXTkk+T?on>|x#qO@MsS?QP%+ z{=#)1qMEpKejfMd{XA>Ig(rWGYw8h2;;gGHfi}cjww4?a*ZBKgJzlIc0Ce5~mPB@N z6B#CS+{6E#QkMW6wrr4HUB;Y*vhnvp(}3mhCGPdD+~>&(aAqBC9i(rz4B#{3lcj(` z_`BgytU6q%Pn4-9O{<+9IR*L{HqqzMy{4x=@O~6zTA%G<&5qF6k`rvr7SzdN3d^_^ zIZt*K@-F9#DLBQ;3mOkhA)r|&?YvKOs)hzq$%2>yuyfQ!&jCe&;l7Z z4FjVO^St1%rO&li?Uz4WSp0zWP=NNmdz2D!ClQ9Soc;T*lsya(QviC~0Bb^qHt!45 ze>hen1pe_8+8aECRIl(b>_c~}x2~+u;1F_zhYHQa<)lx4vDtm*@imn(y7oFx8(M8k zeji^sm)36fcR9gFA}ae!qZeVbRubliU=XJ8AmCP9p>Jpt5FHQ1sFvesog7%`8d^C) zVQG`|6L`nWyUpiW^N7Kz??p~PW_tL;rBaVyKtb*jkAY!PCQL(UNpT=5x^hIm^{GK% z%W8R`Gb`9c4j{4rGQa#+)}t&FEM93+KjBslVV|@U`YwUjGZ0LZQN3TKKhmO=BB^I2 z+jmd)m)ze#m)d{)_f*mkT{@|qVuZ~MkQDR7DD@edgz%^1M1|PHfaYF4SDkgl9*&NI zT{C*&t+MKDnxrAl`m%8Q`v#XkIOFK?Jn1_7GU4X>LlnCkjC_)j*ScoGQF+bjle{06 z!$i!>lVK~eg+O=zN+3Uv*y&b{R9Zt>H}}EVzdKyAh47q;%kH_sW5{OkA;UeXsUZ3D z^l?i1>3iV^3E9D~oKu9~_O`jFS`BXeIjvO6M*04j%;AWKr(6a{v-?AlYrDUmV?o45 zwTy5Z$jWCdiMC}4ub7)3I$skDBE(M3x2~xFMGKa;fEJo*?=Kl5G3C6Ef*+;;zwP5^ zkgsh^xcq+m2P7fUlCSxkNhZt&V+YpLJ!5mF61nEyx`5U!3p|kcT=0tfA1eFA>X^qn z)gM2b35J{K>}TcDn-IeXdcU5!Jj(S9nt@5x--7>SE=U4Pd4*5(xp2u8e075n5S5Ap z|B%ArvHA{eYQuD6tJwy^-2pNeR)npkH#~FxU8-XQ=Tro~qyKgS$->YMO0DqkZlqGl&-L z(*PJ#GH{l@BeQ~xN(qEc*1H=Z1$;vDP69yMVA3~;@^TQ!9o@l!Xfio}F?HAxkVe=S zSAb^kYdioscqRaJ>Vc7mR)X=>MW_DV`+RwD1!aW3*(ija)*B~TYX1`=zTCqTr-E*l zK;taucpt#9X9rlU@QjXWgj2tcMHWC)zK>qO750FVDdyE z`>=QS3L2Jy!VMW~0m;exml8O7E)3uFX@kkL{Zh{wx*7}e7Oka>y?^x^c&#&bT>?`b z;M{oe3B%Mcpt-NAD)F=7nZU@pZx(oa^atZEOgsg1g3J^Ijap2>nKrCA1t|4T#Mw1) zGjCY|*u7p3-f@;Gm-}|R^RBiUb!^=E{2%B3I-JDq=6AI0NR+FfSLMKNfo*3Gpg7VP zFQ~!KO3=3Tnn_i{r7Dbc>yvgPb6QC0y@8*!LKw*-K_xti*~+cXz<$bnL0V*F?Ax3c zK^?}{@D_?nm4fSuB+(C6!BZ=kKvC*yLzVv-T{a8}eidpNHHcz^`!*7036n4K7{nR8 zfvJe68JGr`TbWeRn;B%`EpXDHOhOt;n$BJ0-a>QlNzhvWjsC~4j6nx&B8)g`U4uEo z?<(U$Rqmt4HpTnyUns0luju5*SHvgBpG=^u=v*JrwJF@Zq*1#iEg8(}GjrY|DI$jh z{lya|7A79YeIYuBFc7>lBG&u2j0k-I@XJA6uJA0>=0i}=~1 zxbV&4m`yBSaMFQ!8ca!Mo-pSlnI-O~FUk={MgDrJ<+7ZF(76XShly|dzc*@M_QzW! z$HU2bZn+QMf+v}Nxc!B*y-y?zo02bcis9wY9=8+JQO+TOqQ9S-*djuABK(3 zWRDhQ+C`^M5BueUF{}zDq?Z|yVRKh;bo=$t)LGqO{Fk8PoN{mCEq=ct7;|rq!<@x% zP>Rt_Fdk*?3&*mZ32+@EfA}EGTE_PcASC{xPIDpLMg+fLG3rBdj})#kr!fq~8wZ^4 zK8i;jo(&RWl!6dy@8ub|#eR-?oNRcgupL`-e>D1pBgZy{MIj%)JyEL@{K9VIRQaZ-a)JBx^VtqwK4^ z8-{?J*VEVgZ}$`RWslxpO?_E%-7leu2*dRpMlY?w*}i-{AGcoVS!ed^)j`|QlFz{R zPJ+{#p8I&kY3&;$HpA@)nRmt?)WZfzrsKg~3uCqu0x<3fDlXe!6ZSp1Q&FA?@n)=%U2p=t$D1)Cd?HPdMZ z7jVim8%)&8@ZjDMP3DRUYART?ZNIFMk{gtn9`PWGpCkT6$95oA{pa9gmISuE^Z4@B z_m-03BB)ktkS~(AZ|^n7oQqd@3t|46GwVDf(xspl(&prZK@WWo=(t1BDF0jeL7aa~ z!IYdCGXv{DC()B!zYp1J<^A!7`0b- zaP$OdZxOhyT6frbDSr4)*cYT9SQox7nj4AcXbSmuj3U)PjnivpTZ!;FaYp{F4^lT8 zEc&z1TrBpPMz)^sPCF8bqRa>{u+Azfc2YIAC2XqQV*M8Y?_wG?kkO< z$elL9v&kdJKaoq1?oC&Zdf1|Ns_nFcFQ?Q8q=GeU?#`>}hZKCUCwRo-!y_L=vVT&t zF*lGC@HgJ(nOEgGmDn!Pz>U*7!$55#uL6}fs|I}5Csxh44{;-~I%Mz2zMD~Plbk3s zWZJmu%;-Z$;p2CE=!BqOm3~-Ph)0@O(G@e+dZs<5H_Ua_U}@SA5+t8}mt3pNkktpR zQHTEoAB}JQinu=wW<9e`{mvDi)-7O?uVlG$YeM)bZZnKkzKT^g@2M%Z!0g`N-}$@- zm04M5jOJ6nvJQiUrI#OF)nXK=I*6t8eeFieXMbQ#c-Fna8DA}?eUmH*F-7CPh*jZv zRs*NpYV0@ezYLOUswjZMpKnC<5V)NB5I4v_3frzmD*wG-or}+5x;3YZ$$kp5kHj&O zm!-cMjImX;j3WH2{5V&L8mfRY6aD>B<&%DJU8H^3mpc#>ZM*5wrsPx&@W=83scl64 z>Y0(@4?;0g*)|q<^>m3Z?KvB&7QRp_8FXf!(eP?>7R=er(2b|) zSq5rPnfqL=0-qReGSyA*6x?mA|1p4@hxpxU(4q7JQf+D%^Xh5v?wA|z_?2Lvnd9{o z;a@s`xuIpjTPQH~^nG7l%vr(nw|CF4Sp8E@5zcE zm~*(*e^VVcuAm1Knb%PVFg}3=SVYn-81ClUz2N)d8KTgAtL1z0<-(fV9uh@`#TmbTq%2;tx`9bhutUG6#l96A0(R{PC!(j z0OK#&gN=0UsC3LPw_9Ay3G5>UEjshEVq=OPA^z~|A}bC4y}Y6Q9rB@B1a3$Evq37LcXUm?ya zu72RXZX3{eu^XmYa1P7(KYst3S|m6HhUd+KYli~N*fp;%TtyhAOyGmjG%y4&V~w~L z!FPxxVB))4f@GGFY}R^v`M-#UQU^j`gzRSzq;y~{m)f01P(KX-EyfV0OkZ7}LOdj5 zfuVW#IsokbZX)WJ1aQgHJ)Ie84}0%Aq-{2@XR{L#AWzj7wGirsNMXQz2-NB=Y}AiV&P8)XY((hH}lYZFz@olDQZ}6NI&^@I@P@O1WEHCy z$`p0)@2&ShdU-w!u2h}wNX3iskWJFqsVO5fC!RwhB8pQEf@-FQ>IM3WY03pOq8)A) zs&Is^oM!d`Lk~M$0D&e6Yd~K1!0ZMRBP7R|`pxAE4K>~49!oSEbzXO`gZGmgVxZOo zQqy?k^d>`=B>2>&8Z=0D`Y_SaD(P;sJd%I9!<09Z8}pD>@nGl>w&Hsaz=c>uBk=MU z5aVZjzCdP9W`~S-zsm_CX@pF5f--0}ck?+WQu?Bj1_IJ)m$_bc5V&Z}BIK+0PcNco zD`1C-Z#4Tp9IMRr6h-o`5<79C(E-R-liq@+M5%Q1i=SeTlSpn%jVMykZ}s*C`vUmg^BVQ0HP;#SEtwn>{^C{|=&%DO6ufQP#4Fvz|#e0h24Ne+}Dw}Ls( z)H7Z|_w<29aw2HV!a*Z;R-^JR{Z)O)G1C_>8oWkIrkO~Zm3@O;o2->A&Y|nKzGDYP zOgfCbfAp5*-0EkJq-oKHcQEgzjJ-E=(gE_1Fc)1)ygbd7eW+(<2uHF1de2d=87gt(i)slFDy>wKv;HDLRUx=b+jTsc53U0NR0V&MD1?>nZpBN_;)s;$WCdkW zZIt2IqYfmvh*3Fds~Uq`CGAnP#w+}lINuK8sG)%^k(kHWwY%QGv@sX)w{pxmPJVlN z;tKjGU7x?7wO=T%6IPK-j_fVBLDG>QP`(Z-37Zdty}ojeR?)KM1fQP^$f82>uKQ}> zh+s&zX!}BNqy4IOje~^iSz`iWLaQ@wA~kNlUtUEUKR!M_CO2Su9AOPA-~g~T7%Y6J z(u_gWU>Z$~Uf*o=?|@nPCE<452HY~Gcnc<)H#w8&I8FhgO$Z0yka~?Al17dm>x=j6 z_N(-Js-+V9yMZT(W2~L`UlfO7f&$rji{f--p}J&zX3_|J7{PIj&i13acIklURD3~u zSWpX0i)Hq`oJS~BMj$O<9B&#apMWFZP{9EmV3d}^z(y2ytL${0+1_P9D*-1@V(XGDN_EJhj4 z;u&AiC|?-{%emmtW5(zWF7WDVKJA2a3+J#0Zb0D##%_}ivOrxOcP*uAJx5&GS+nAr)gghb$<{Di&mu+Gpaz!IV_A7l%R6(bl zoSd0SseNSlladv1QGJ}-iF*&%1J}|vLAuXqLZ#c!QHkz(EePQDTW*ixdip(7>R{>3 zq>KuZ88+2jhpCa|^(>&-;D#5Ka+gzJE{)iK!c^<=t5(L~cc<6#i(X^$xZ)!_whB_( zgu_3Bp(Iwm%*EWrt0?e7GuGT;ACmgJ1!iqn$B)dXO{EhSQVp^b!-^at9r3+&WF6o# z37wq-$8k-+n5Jfi{3O#o#s1$P@?^$Ho;zQ{G`97>+G6|np8rM8m1HZSr+1(xYgJ3t z&XJPi2d*eg-ACJX=#zhxUj$Z{#~@)jSfL&0E|EMG{&bwe2g=7lEqMha)khtF#(`;W zzeL=JSV2VAKsrOJO7;uk#<-OeatE;HJcWs~U05BSCee{oNwZ%-eyD=LMZZi$Ly9$5 z&uR-00>^l5>?JbcZkCBjh)`!JBK&fPuntm6zN%7fwy!VujKFBzcQ1<{vnC5JR`jTp zPMoA#P`#pHl*HSt4mqZou><(vvO26yxV$&SL+hqiT*!AH>^!Pa`QCxB%DIkq5 z6=3QqO{CKqsZiYEq)C#NlVvt>v0nt_Ec{#k%MERx*6j#nLPFAKPv!UODd&~G&BOuf zmf0cs$RzhwwEyvRYVGb0kd%)kHxMn$Tl2()=;6RyS{*HE%WoFO@ioNS&sug4sBP7( zkp6i*IPsaLg0tm+vj048c)YOO&wlrm9-5z>l@Zbwae$uL*$2mn9(7m`zIv0@-Y2t? z6SGs$JfK!MICT9#4hocHZRu|4X(FH1s*_479RouPFi2^s5HN#Pz~BE+vt9nXN&dS@2>u&A{~U*ZFPHxwjQ<{t{~nD0^B#b6^8e+*;7h1OXi<=r zP%T!~e8!M|2Q|7dbo*(9(Te3|%DVhfkm>@hGepTx_b+w~e+?pqW=fla-Wrd4{HJqX z)^(*xYt(x0b%XXmf5pb*%0G!tE66E$Boy`jYLh4xZUR}Y=(WAZO>Lc{R-Bx;zI8*) z#Q6FlA#NEAFja5Ov*1tu&{c;MAbm=7Q`3H4d_V6d$-+OGg%IkT%FF{x@;@;}l8N9P z5&vY)jZU$h-TdUz64t{%skjC?52w5M-#o+e=F!Hq6STXSm(D5oHMvkOR}L}|A8MdY z9VIL9|72*Xq{mMNQr_*&|Ca3aTeDMpko@pZh8bZo&WO?F|GDk?N*+w89wYXq7=7JY z`)|!ik_hr1A^Kszzu)8$e3KBtxjx5E_$C${3y%-~#12UWgOkG!5pwzCjhs3Rx z;P%)zBZ`y028a4kdOS#ws7dVpYV<9y!Z(qjUY~nqk#fI}_sp-Whu@?MmZs`jXUku$ z(kalbuPr^?2fjNCY7{KMC*QFGHIlL-N9k2yuHz9Ovv?TC@P-fA_}?B($1Q*)yfh0% zKP8PC5)y+yS^yvwb;9ynqP%|hP35>>KUm=qD2ER{%J?Dnx3mPWhA4z~1ytd3NWtPY zD1bEviVS*ylZ-h*L>*@c116n-ZhQ_}vP@{nDl3RU==>fKM8t#&PChE5y%EL=FR?{! zJ^5f)P^!T@B$XZW_{*R;kmOX_e}@985hBd!!D=YS5JBmt0%ka7gD~wfGS~K?#6T>% zEQwS*wjm?x5&D)y{`uP|qUPp&v)q8F)n;MVv^=7}_)Y^uoUNexpaL|s(Sd+hOV5tN zs1}Bvb;CxFxcF*1at+kUS-=TDm)`+tm=ZGbP1m-xsT(-BD9}J9Izc_=Ia2xA0|As3 zLIeP773{5UCUooFqwkGCcE`*>CvpY!|H!-)g093YknUtb8RJcpO&AD3X@CZwg&CX5 zpa%2Q5Bu#LY7c4r z-Mx9Z)|}LgN&1#){@uobG_i<)ucH10RVJbxK>Ar92fc%dl(NgRFI}M&Ez2fv`4X7@ z=b+_dg#q)*vr}Obq2Ws)VN-@CQdxJ9F?EB`G!~{~{@iSgo(BoxMWg^Q3p{zKsy(cC za97l7e0RrPPqdnw$Y@(uw#tgJ)V(}w#+*6Q+AbsokrtQ72jvUbBi@%VI(w2v-f zAc_^9p%Fz7eNG=xxVeVts~o$AtM(2c-Bd>OfJraFp6P0x8?b@bnwWiVrHFeS^lrq0 zHfarhQH#uFTkW1)jpu4I&y?+7gO+3*4%7EzHY(;vEsc#_Ni@pv$#Ojx;8swgVYNjk zp%+G>7@58pTcpg)(w7M0S4(U_H|r1f>Lrl(F%@}%K=f+sFbpP2@O0@PUM*&cSgbe< zauf(vbfoO*U#a_?T55kontEd!!ZK#7A`L2Pq;0*nd8D~Xo>0U~cX#OEA9!Ll?w4eH zyYX{z^^eza*2@wl>@UUkK+(q_sFFq@SRna!$p)D659GZFqT+oGI^dHYxewD+E$1%nF#)qJkJGLz zh8(T@kG~Fd5|Tc@&Oms+V?6SgMVrGSPj0Jw*~d^zNCq(s`=#j^ zZBqJ}{?g8)*Et*MC^&dJuq6p}xQ|oIvTS&jpYe0#mSqyG!rf|1z&d+LqwCV^@98Km zoAsQ^Z$^c}BX|C}n)G0w)cD&O{pHj&eB6lxQ5^W(@!1CLD^TEW){X7xwCIqNQqHzG zON$jJJFRXv)LlP?ls?WBU;j)nV&iQmu#k2Mdt04fo}Y~(+A~DiQ(HEwBr52muGrij zEX~xd+CvJE?FRfleeTY`OLH0pH`1IJj?jgH578>sT)V;~8_J;@uk$IiqOr;Icjd7><-;qj z>nL2UG!K3-|79ZGNw}!<0@Vt}JeId^ApL0nJm6{g=&k?DM{lJj;d=i5ifhGtc)pzA z1~0_Z}#zgU*G7Z761fZR<4UTf*w1 ze?B=N3V77N=R}ve3shcwK>i}vWyRczxSUTF>Ljqlr_OQF+m+Oxu(N9ZbJa`YA!_sG zBd%_LqoCGtls`-(F=4u)NcovWf?9vaHW`QpTKeQLHzqoLd3p!7x`we9UOa+G`whjLYB)b4GSIaAy zk2{>DPb!EZ_I&mE%_&Tm!cn8kg?{-yfuu^bASAYei#pe5TtMb5a@Qb8AscEGFX!%T z0zOlM6YQ-aaYM%}#tD!>R=jxvJI)evWpje++H6eLhVI7PHMr^WzaK~$^d#LtsFewJ z9Q=qDCCeqlx|27lU^uPRvPVS&&VOxt>n>||&?rk(j z>I6`?yHHfaCy4M|88&H@u;1rFaiZ|KcZ@IKfxS#dM3Z&_pmf8~sBZH_yI4?L?S>H{ z5DMUk_kqY8>ZJ#|4q?z)^dSBwApa;i0ElqwvWI{SW)|8mulqTI5wn4=X~ebkF_3RD zEyA-s&TB!GE5rBU9_ohwc0Oze@Ens9+7$-2kEJUYfj!{mmMIit3jjk`>P0%|UNtMI zILZP1y#2?W#$-x0E#yf*1~*mX6iWij#pq(;^LQsv;|;u%r_pshlws- z>Ad9^5#(F}QlIBAP^)E6{i{1bYSwK;ex3~=PK?&*ec*&CXIQe=VUYW>58Kg8fK9at zCx8R-C@Hi)?m32C?5cQW5)fs_@}b6OW?~wk8}-piK%+@Wr|5nCB?NMVH;jL}Lj=Jf z()MNmh6&sTDXDj$3GvZ#+4U50tJ0=3ii(_-Sid0LyMA^`cV@T&5}V#i_;t?YNrVgB z$b1L{1mxRPSzfXN*Mm|D*e4?`7~PO@P(uwk2{&9R#@y`)juei@cEgrvi*|5iP(yBZ z0_GWLtw@)-*LR=?Qvpd|grR!NIEZGO-d(s0WynkJd!Q=f#OVTQfXI($s&)v7sB>;- zfBxh_%={bZQJHA;A{&J1Z8Qi%n}x*ZF@ZuJAJUu02e>y2OhFhBqsJ3duae?SyyWYm<3y+I*#t3x4MR)bxxOAyNC z&k=lG2q#(DhVv)yy~;i)^m=0P2I;jI;<^@ zT+XA#w+N;g!u~=8N=Pr%#8p)hNNt+LRzBZia99`X(ftuIVOsbkdJlVWzua7d`$b&( zbj~dwcOspfWMknGXvuwsXl>Lmwn)c)MYqC*YtA1)3lTq$sx({05nxG`ux*c^S-`%> zYq3qZ`RbXS-Tke`#Sgi(F;@ACt2Uu<#pwP2g5o8 zgVE~4Imv9S1p}qT&X&$P^iN%DqL1;#wIdc=Q%#a~rqc}ZbAEDf!le95B!T?61ZovY zhATinca^^Fm7it@aUNN&wP}mZ$9;$yJ&?VSQar|*sb{s;*FYjk2okB%HmBQp60crB zR1(jAWFhNfl$0nIs_-$kXdeMU2bNM|ZoS zD=t^otZft8|0|F^6!Zn=xLMflWrnx05;v=wiv~^Rww$A$Yj9SXLD0>J^^YnDX~kM( z)2+T|&SoNCP#e;IS?zvCg{*bOtD%i!^ukG2q~Rkjxx)ijBeHzsL>?>tHj+2zaG@<> zY@fw2DCD{+Zs?Qt1^9VGkE#@z01rjtl7^66YCKKBd7)0x)pwWNv|G3d7XRq{TTv zIGJ=nl^{7+!KvnfA!_K~FlTdH#S!OHSC*E5M)Oy3p|X7^>4@Up<7hkuvw!-ZIwAOC zYvxqO{5Q~#2rAsy9rp9d4e;E&r8|jat18e{x=Ere*w%YhfbUDA^BENfZ^cAzzS@)q z>&zhW+za-l?%reA2gP}pjN#QZ_IT=EPNSFD$k9r&On?0Q(}a4Xe6|F64x%RLH=ni; zu|bzjoRoO4qZsLYc1x(ea}HP^7GF6j^*kQ@ojC6rIK1fW%j9fi31z>SZ1jE-@{FI| zj8{I_dMUME+ayH${ZB|3>9QOmAB3r{f;u#4v5k zPkV*#q!arU@55Z(9`GJXZ;wb>rS^NayD)Rs**01l^&Z?tSWBwRe+7#fo_%wPOYH4d zee~`A_-T5%XKpj`Q%iBnv`NR)`Zhjb3S~jvDCG7}KV{!VxcnEHO!p~uQ&8$gx+kv1694VYo8!^f8`3k)do<69!#gQkm636|^1|LYhOuS%rU$Zh7m7f^!GKg#r>P znUWvpd$u+u0eMi5nV;-fvVgY3qLBeDvD({nE?o+5xEtHZ(lD;NtM)uQI<1`(x2PtU z%WFy;%ItOT8CTL@p*?Eo0(}FyC-GvUvC==^r#Dod-Ew;c7etE??$b3B$eo|8ZpF7< zYAk!W)WecSTZ@}vglK&@;v*I#JA`%_pWI(nWF#8Dv)Op557koEvhrR)pv`J_Tj`X< zmj}lt&ze`Xop#(#IUZ5q+;(XgC94x0^>Cvc^t2-0Gv&?9we;`%ADO;bhMVI8jz+f4 z>bNw?$Zl&A(m?WZz!sm(yR^CJi|E_R_mS9TE3GwkPFi_d zqP^-+l$|A)?O@4$=xJ{_J#sRAYp-G?s)~TJ=-YrY#j=a#*^{gy(X~y%mx)b}%jCV(<4 z?{I~bouiykX5jX?$q?=0d6lZbJiEgLRn-mfYkQ){wc`qBAet}}vgSsk^)r2!5up(@ zP(;kyVTnR-Yv49~XsB%0uI3ndM^Cty!!wbpYX*=pl-*~)%Izo}Sv;+B%qa%;`Bb$I zUVyQ(n>Sol?Hu7cZw{2}XST6g4fwPkWwpR**HGtGejdl>uDPb5P9?idA?a0t;-qPt zCV_{R-V)3b_%_S$AYSx-v7a6`Yi!dOaB zsylYPvF*SSdS_l!jHS%5~$e!#P;xO z+m{WpoK)H{=PctOF$>}AC-eXSnXZuSCb$Kc_vtZYtMsng6eb&8UKhQcHJUhK%B~P2 z)?#1gbZ0zR+uYAu)#Y0<^r%nO1Kzrhb^j?IvuJHNI0rN}#ZsWoHM86s(|i6K7xU2Z zLg6&nS)>(3*+wmP*pNTjLQp3p<5tRHn$BhfU)GbCE={rtcTUKZJ*mH=*H-){36@7J zL_s=Rjdw4k7Z*&P*bNSNd!in9nqCc;M*F{ve#%bMXpE+LO+|hl*Of>iM_8*;E3g#%2^NVhRHx*QB&*Trp*FJOV2LXyN zkLzxaK%0S8fq@o$1>8`qeVLD>R$IeqApzFb?4X{DR6Sf@Lo@jI(1J)b)o6kt8Hi5z z*N}4(KikkVk$JkFBX=ijD>Q6*AI1K7K4V0G?RF~izJ$%Q#-DdHEJ_#ku|dUpDz?Z`vf|v zJE_NTJz;&_{V!Sx>M(rgxd`ifBKG+VTv72Nxu^aisunsO{)9o=aSmI`NJ9j(1lH9ka;{r4RGPVqW(!qh+Y{mUm4 zrsuVj6RLq9LySldiw%KLY;ZwUpVds|gT?4h5>@n(0up0=#}hc-x262>gWD>T_PmNf zx1~q%0nxCIurHk%^EG{M9xy0&5T{)R4)5)4;UhItPx+DxNSw|;pNbkQ*ivrahw41 z54HJv_Q)Cmat5Wk z%=Dr0_9Vyk4g;u(-czSKOovjXArTkx8wl;n{=;)Vf+q|t@lZRiK+a{#-qBWmn(Z{uJ++;9NII&A{D_j7gKUi{q-rA%dE2U; zu!Gk{Uyti`029-@OX7Zvh92I)v91eF@{Mf-SDxNI-`K`eBFcXcUe&0)o$4W}O9VyD z1rnD_d6HJJ7zYr}A71#}#?}FU^Z(KrOHGi9MH-sGR_fL)G}T@Qs>dq$@^bC|-X%`N zLtPgg#NI4!rg4?4)}&P5sZ*i!3OtI7O;merUei;X6PO|n+1JE zZqdI8s9cdU8kAO35D$lZ>9%JD6Xf}`&KiwRG>4p#)$_RYzte2%^7|H zT1^>g3!QZP{-+1867;z`2d-<9$Tx-}3gWaxO3wkg=r!5zK;>V@iYyz)-n>&#+8pGF z*v=Xyg6FXem2Z{#_rqEi(pdT&YJoY^EGT>nXue0Gpf#X_uY<4Woe9$OfkH#tIkpCu zj0~IJ+!aALs1iO$Qk;s3X>~=;m}==eYUEmaH}PdTthiNOCEDcj_NRmT3ywblrx9_XYz8*}e}lea@! zKVF0Xa5rNx2if9BXdU}B1OCa+5GUs~sJCS&i+RXgGu0B>`koP%jildRVEur!=>-Yk zA0cc!Fx*fEFETY|9aqx{v{8man}2YPFP`!JoV{jP*3 z*IT654tjc`eghSn(>e;()k*HPG+@5ewgg?5zf>S)RKz#TS7F-=*si~}8=p1+LI@r( zSfUO~fKEML+UrA)-={MzkUf#IP(%8wXuVQN)eq$gsI21N^I zUy%ky-=oz#k$E&z6e`Ns>&l4L{N{2*ALv&P#2*%WmU7@Pk0NgqIhX#?FAwB zHaTIkEyy{}1Vs5ILs8sgZlL%xTcfm~d}RliJSAl(IkZR| zKCsPLgx5}ag?VESNEsPz1ywmYNYxz!&b#;}uKBY+865#QPG^L4!J#*#xn6_k+Pf{k zYN#0Ku0_zt&yy68rK`{0MVxRD-)R~!xtN9IToEV^ozW$vGY?cSw*-gU&sI*DUYM}{ zVjK{~&n4$l%5ij@7#a|hU5(Q7#{U*=5xGX247KypD|6goN)@sMHFh~?;P;E-fXaWC za}Ft0W(Ye#$WVmtI(I(@TxTo|*{~g$QFHetR5BF*Ys+?I85#`akRC5#n6x$JfeSu+ zFAUt_cQW$rz5r{wRNO?rcqHiHx~@eWiC$V^2&ub^WEPTL%K#n?kXb zSJJ(b^;PLFG}RUSHU^=>*q_%6PUTL*8`A%Il32%P8D5wA! zyQb^b5MM-KrE6f_jB=scgw#LItMu2=4>gtHZn`yf(_=rc(k}c7cm#auaC0$*zTVL1 z#p#efBgNV9W~K#P&4t=$Fj$7NmG_86GDRS+EmpuBs``%!IZ7lGps$Qkj$<^AneZYw zH}#>GbF8P?lFXH2Cc%6}NZ~T-C+bH|0|#@`v|${JiZhEQ6K*hWreB0o2FrJ7^O+x- z5!Ru5Nn|_;+NKPL=$#IX06sd`8qGC*b9)0^OQ?Mq!I2wtu{?L$|MC@Q_5qG0m1hP~ z`v`?enuNHIkv2nZFY40(;*5b&ikG>b(;A`atA745`!~~`M*N$(?dT-^TaTI3ajKS6 z^CH6?pw0DeN1N6g-BYZ3K3Yt~+(`uyK4po__^SMEJalh9ld8BZ4)@KqMNW(UG1#0_ z2H-a?)4P*Eb~pvrl4O1sQH zl6{~cUrw+YYnCSvN2a`v{zfLq)08j;wVYs#5{C62*#DvWHZN%g9(0Uxl-<^12QRe= zYE6IKK(I`=!!kHXj1p=zr@A?#;bo^ zbN;O;DF1aD-a91&I&pq2?Hjd@#&^W05<=;3ZNPZLZs2n0G#YdJ-=)lHH9zyP?`Z3b)6xY=CKCv_+9ozEH_yzX&F*&mEr>zbsT~4GzWWd%27cqpmCoRq{-Em zwaa68Si$ioPTdf>OsLjKNXV?oev-0~Iq-NT%#(ak)0E$jOHii6U&+CI$fHlZp+ctL z-3dm7m$OTd=2tZ_1-hZ>fDp&H_KphMYz=aKbIl9-_W@K~)D>zAl-WiUL~&#))jH=C z&&lsE-+HEiVF%J~;bj=&r^7v#sO*H)@Rw7!Bj1+f5+7y$RuUyhk%qOr1@f%dPb(%& z=SQt4)POeTQutMR+NU9}ZNW32RWV|f`Y?ewog<5+1Js&Jxwnxk+Aj=ymW+k$BfkV> zt%T2=&)&v1%5eC>Bs|T}(4S4!M`ha^S$N@9(;2;Y!;!eI*vrt>XVpcG#dZ^k1d`M8 z7$h!-6Da?F|H>cF*rdv16ON z#!ZAr!S0t+0AIRZmevj3aO3Uu&8IXAbIQ!7E?)gfFnR%>iK9t)Br7SzZ&Re6k>Re3 zfo~_`frq&wlp}0*N+G+j{5RUh3~88J5&IFt%~%30iw*4swc4b%>bVO0W!}9VQLk|> z-xAb0I!*N24{HDQ9z&zY3G!LWn+uaaJRABa{ZLJnfxTj5nz~?aLV(4X8Yc+$#OF3- zc9$;SY!~Q>$ql!Kal)aXvMDgYd!*3Bv3%jH)WRbuycxCRVlPj|(SU;CiG9oz1XP>X zcW^pIi7;|2XtbHN%S62w$(Ntcx4;78hT=!Jwfu$6erqKUcR-E|JT z>6=~Ad8AD?3k zQ29a#?V7j$*D-a)4tt&TH6+Bp0I|yAd`PO-gDnrQw+2_swO+zav-aYtn0ZVM=mOQh z?>_hr(St?8V%;U;Q-G;2 zZ9~{puSvKaq7bqR@{z;9(gIzZ`himPe8`WxOYo3#$kheWWdS19>g|q0^k>pN5HX30 z!Bql}dd@olZpvSFunyYD`iK5&@M0zh`}Y~6qfNOM;_c$|0<7pT5ZK=alj$E4)-wtI zycnc;#~?7s<8IKj;vU3c1|o1JCq&vp(1Sr(O;-RH5nqHDaF|Hh_1-PL3L$kW(CXqb zpwXf^-`NW!Z8W9uWDueuA1Ow9N0HNS~cdByS?Ecqg?XhAL z%Nl{XV+eB=cLfowolh?`X&M67I~KVqW!Wc@;2(_bPR{5-FB|h$@*MJrY;(|rpw#I{ zb9Q`t_6Ml=;=o5ME+x_;!+GJ_j~2pd_tlOn$aeRa*J`QQyPzc$?vmu1A z@PLjv86m0qts4T%D%I0c^Roxx$}qcF8N%TO25yM-L51c&%i%68^;3?sl`A^baG$6= zmGjiHa$SdzGZx%BD`i!LI%H{+fuIskQI`Ou5i#0$@zM5EJ@_BcNDYDmL@U z5|~_YfDqEw9D+dqY7Yp0=OD)QlMJd^f(gJvYU_bYx(XMv#QR3X4f%Zw_^W;-%Ry2` z#6Q>^F*JBXY*L1HoP6VMS=OZy1~gvMNZTG``c0jkTCsy8;i`dB-kQCzg3$UjEla( zH7(A7?S0Qxl=E`WqowD_fIw<>of^9}ZB;gamF+Is7avg+&;ky=Xdcw1Zzi@mx@6H;|WMjtzKF%Os@A`n`N_8vOO?bqIk9Ytag_x8_uZ_esoZx0QEl zLl{$7+L!6$DN(@ldO`4?V>J@iTBeKrg6@aImv?HUgKj=G{P9F3+vUL7FAV$6h6G!w z$mGg>x^)t(X50VAuxSm7>Y2KVBC1-6Hqyd_%;(u2CGr&XO9{y{H+fLZgiDLT?!Phn z@pnKLg}j+7s3c@-8jgKG&z6)Cyxh?T=hd~}HIVwll9dg2fi&g1S(8*h2E?RnnnWZm zEmRHxjSK|SCnCNpsbD^n3x#XNGAZ6owIIw5_@rsP9M?FBMTZu5Pa_%_XpNn}3Ss|s zA^ggY@v`FBgREYO?cp2h_o^t4O7j@gC*Yq4ai~%BTkkSj3&2nb)3}A)5|* zE@*UwT#|&8+LHwJN`b_dzwFT*6KNT1kgAF5mMq>;)M?2+;d4ubz{p%TgeOTM7jzxt z@+N21F@+Y)m}A5tRY68ETeXdh;|VBjJh zQp46|MRH=ByvocvSP2s<={>j;m|Hz}h0!N3SLp@gY%&@bxoMQ!G|^w}M=4wq(UKJphOTI9e}5s+mWwo!lCbUczipJJ7ZV$G zSu0w@AY$!yDwb)6wCApb2uf~;@AWM~e!=2C?VKy5S55s%#!ZSJKAktJZB)5%;@y3M zXVZ&WcSWV;0%$94x6|HE)gon(G=Er@0mV$R4;i2@?4CmOqeW-GUuF&p0r_;EQQh+; zL;7Sz(_Xe0>GzZ7m3f}(^48tTQ!*NX)7u6T!yMXP;+1Tw>%U!Muen4gs!GSmN>ao_ zi}+&TJNodxnEhcv>FOm@elL_(0v%vrxG$*{@qkLoQu}2GEgAcbrWNje>JAsDlDc2> z<5+pJuL;u|(**E&94^o5Z5?4M@o@PZLKqv?!C zZTUkAC(bCeNmPDzCJnAl03Bv2@$l}e>lm!+dxi?57qWy4db=Dr-!=3X|Mcwd^%~24*h85;_gu69zj!Aa^z{8d9k^%yiEBvn3=mT6?_RR=Q&T0o7RQkIcv5RuBp5FAaA~pJSh?uQ3hV%G%8<;nQmun8zho? zm9oM|ru-Bg2#Km~GCf5voE{~cD+m#z)ZeG~5sPzx7DZ)SQVG#Vtp6x9{#kWp<}v#-=O}3jCm^mNcPw$4X-~M*eLWWi5|BPCah&UZs=f zpB0VFASv?A7Zs$Ksr%zdSPxf_k`8dz*b&_C-!0p3%O8I3y3T`(eeC)PMmx#P7y;$o zlfsXGUu`4T8(zD^VqUq=&u85I1(D7W7&XmX-0sX*mUIx()K(X~>=2}UGICrD?8FxQ z&IW!H9L^QLS|xqBamoL6oG1|TI|2hgk^qE0iw_7cGZxGg3nCML9NGhg6Fy`{taPkGK56EH6%h_2}- zMD^J>Il~RV05(^)sezpNTd*P5J$5!cdZF`g<;Z;P52RHl_Q>blyH7;d^z!bdPOVls zf1K?~eaQsQ@>;ouQcmM#KY#YT|2h1#j>l?(6?@RG&UxCqjCT%Ax5=lk73m_4OpPQF zM*D_~Lxk=uh0o%d;n?`APD^^ox{E&P0s&4xL{5efjHE-nppEpd6JEjC`IpFlYH4&| zS&tiVuqAF8iBOXKw-?_f=@Fb}d6Qb8xbe zz$77|Q$KV6y$=Oqb^VLxkTFNN<(=-beS?COexzup^V5I_cOBF0 zyFdLNUI(Qg?#+(~%+G6Geo`za>1{j#*B8Jj+^JJ+6=B}A3~`8}bp^n$H5B^SpC8Ku zLVXB=!6`;(i0*u$Si+e1-cJaA3n-aH`hTuWWZwv2$oYJTj;DV=)ipz$*cG!+H7o{i zo%1RIOkS#j)Oipeh>jmDv047zeNsI|(RM@Lk0_U%vJHXB113?&LWp%c0S*wTfEE)Y zzCyx0YhN&LpmTf^q`}6PT`2*y+fV{yapDK008``NmfRq3iD`%!_{pF={&X5~y+-;R zo5C2EZmMIeIudV+-WhiSSW%d=?m1n-zWoP5eDTX4GhHT&7H(++P#E`9! zijA@Q^8Tq7OmpRiIq&U&HL*l3|WjAVK#N^AxNNw zF6mgNa(Fq^zo5Tj)qm08wDxjYaBikUjz;>cp%XICj^u%swL2{QX4fK8H|Fw+xWI(>syiy?f3t&`3tNoaW1UCW)aiVaGOAa_+Mo$iJtR zrt*5rNNrI<`1hn9F_)t+T8+S7BR@-UW?xY|lVRDDaSssaKw3I>m5kiCD87-istV?V z81qmP&2oG53dmGO`eXaKXq2#3!gkZ8MC0UB3bF)}^wq`ud(9$VDhXjm9c$>58vbf+ z<>Ph!q8)PY!_=xj2And5o$ToS+NTvvjN9~=N1TAIF%{lko$HDr`3-@3MVZ1y;z{;* zSk@$zR>0XWs*f(W!$xduH5fNLub_XHMWqGC#u)d+b^Nu^tSR~wds8U4dOhT+w<~}} z9a+OYZ&G6K1$;QB=)q8L&&%#`@Lh6bO)K@!o<6Vr8EV)ThJyr5+X?~etfhE@Hd7W` z({KtHgzjZysG)#US9MCPN1~bM%6N)SGsqa_`^c>H^rKUI3>MtcvIPtV<7qzEDPAH` z4y_QohQ$&(Rg4nN`ciaBsKkct;<+Ud;Mdh5PTZoG?5CPSHp#2fU7c5lxp-Tp+!PcG zud-|KuvckjYPr?@(5R~w!n4Hlkrjs0a$*$~eajXOs4|CTe?oK}_@Eaf7IAw+|* zlx1RW>$ehb1Z2T_#lFqBU64|7ld>5%)g)XJgHkP{7IRAS$%maF(iiU|kH_I;F~`0~ zGWw%^KrVl{0wDir88y<-T9GYoFEyhCSuqN4bdY^J6he*FUKAFr++@R;T&Wr-DyVqJ zYX9h@rJgz&a%)}~O&2%phaSqu@NLw}2k@mP89^V6#F&dbE9x(5wSUBjxfKU6iS{aK z|DZmHFT%O4&vtyc)a8LuI$>G&eWQBE{f(%avD^Y}*EN^#rQ1`b#QmyD=~IzUWDO|Z zqPeFEi9b13REqefG&Eh;iXRLuKp^>$4Bgnnb4kk^x8Sa`(^7w82VC1*N1?C8RkB52 zs0Hg4=45|p0fP3yNecs4JEDpkWS|xObsvr67w>uaeH+jX zTv!YVp&=}kp2}3%ON$Yv^&{U$DxW<;(Z4-Ya$&2y?I=w z$&{MG{nLUrcglM!l&wFs)N2ps4L@_$x6?j#*(`{blI{n<9?PBSn#*e5S<#7TqXG+~ zl%K0Jz<`*-EmZ z@c?Z$HLB57Zno$!Uxw0W3QGLN?bxck#htB>)yCJLd5dyz#76G)I5(x7o7u_hfldZm z6UtFnS}D>Z3w&uqgI{*=c;c+;9RPEPQZN76v<_@#tf}R3_LB2=S^xmnv_EolmAiDS`ucKdmq zyl+d*7LT%HQ1|N+HhYM_`GN;&g{G#@t0wqFRX%rWyq^n8C{%->f(!-sqA9zV42UWlV_db$S*g|4D@bE$2(Ojcitos}7j zN9AL_hH|A9T9wgNY7F+bjni?4Y@dHEA1GXQj2)Gs6)&5M#Opn;x+PqVm9s*rxxXmp zDB|7GBT$8Nhf_^ng=m&B_%fq}>owN5upyoEl8RAqt(Y(sqQ+gGh$cF7tjKXU;ZDwr z!~|VPjaRF#+&rePHK9O^60{6GWssvp;T{=g6y*66$mVjQO4-g^dxK;-g&Lw~>IdB0 z<6onRX6G(p$=bQ<^xCA>F4(Hsb)Q6E)I6hxZG!$9O|9AqIkI|}g1P3B4bEljyvy0s~9Z#fMJZ>6EEeg8DC8cVsKqT5}8e{B3X;q|OGlu5{-pWoDYU)W_>u|uS zKY!yCSKHoFAJ)%Jqhra5#qen#Rc?1rCt3?j^{|~(@aefjd)RgZJF|{zenL@0=1zih z_KH2#v!-F;W~DAt-m3<}hiYNQXG6?mk0o%-l&9XkaUbg|&2r8q&!zG%IxV|@cjSf7 zLXsz7J$%56NZo*mCNi^?M9QXTQP!$j*k#%AU&+=rdaXymRmnH_i@m#L6p!K-q!7l* zG`Xh`!YT`G@h*253VammSWF{xv?KH8SzMLgWGW|DRaSL# zdRmH3z;EUB0nEhu5}{e$cM=YHwGUGdyYGt3tEX2!|4hrOc~xz00ewKzU%i!*qeeB`3&lT*fOr3W2v<&OlnCf zw*Up#yZJr~%OBR&ZHc>MalXuW%0x3;CFWK3WxM27H{atf)R_C@ zgL41+j~2kf^~P$;tn#AF;<=u7IAuy;#p4t%GHh%j=lWHK%;Pb);gl%|Z9yTYj0hyj ziZeZ?OI{rD8XCgOY};%V@};lF*iNJ{nyy^Nn`Pj+X5wTs`cwMYnz$dA9WkbgQDrEd zPSIF>q4cJaJ56Y{TrIE1_jkLq!TpKmR&G`P;^`zKVu896R-M8JM~5j@G$H&@WpwzY zc;hrEHOn$wxV!WET(-E|Uc9lyqMr+#x_QYjYKg{4SXAt$S^Xw|;2VeFOqKVUjIZvr z%J;k_N@i4NE+y3}Eq`Kpndze?UeW&%wqJXxyWcehujlp~ zV?gRhI#;otC$M38=BFTU=IQgK3r`HQ$vSqiB*`{%X6*EfQ%+LM>8Q!?uNpY=xah`B z)Hn(6+bZ`znH14DR6MT$K_r>s&i0nRYXPHQMw#4Doac-;ald-{Fz#lP!!PKOBD|s# zh*@lXF`nZTH=KpeoJv@o5C8q{_IOg~PRMb-VBPd@xNV*-ts-r6YPn z{m|w6B;IZI;$q%@C7zfKsbT-tr+aCcGrX9W0V}B@Cn;Lhp0!Xdp@*8Y%X}@uGJ)K= zJpk(wCYM1wSIHqIOLjGcS6@W+Lx(a0EqOUteEz|V0a4@n7w%1#CZ>&S*o-T=^QHBn zvkllY^w)1Py-nsnMfN+P!G8;EAX@WsBfCx(xW(;0U_mn{ecxCA8~3D-oxk-7PZ;Dx zstQxsjq@2K6y1*4^3zxNiL)Tc8M7RUn)68^L+z_x6!BSBS1g3Z}H1IO1eT z$=s~j{L-G8v-*TGK5KYD!$NIuD>vQ@a-V6+%yK}{^vs_@SDbe}NzjRuFH4@l0j)OT zgq`j|MiiZ!SYGhk+X~|2V)HHzLPNDlBiiXfSBes1i;1%q3~~Lm&rIY`vnaVzjt5>= z(6aY36HkgvHSy?0=Wm8i)FG6Vn|;;WQ`_L=@>}b*^ntGc0c76IwC&M&_64wS$2BAN zELQCOtz4A*&ON$cK#)yf%ll&0x(2^~7SGVn;(J-xzG{;IzQWy$O83Of+QIEY*by@S zQod*n^;>Ron<_cm+IL*)dSrT+Hz3Iz0yJ*9Y2pZ@&?kJT$ShwAGFYrO42t`AF`Rrh zPoc(XPe~H;H1Sw$1){jxz)u^pDv(HXqR3H!HSc0iQSgeanoiUQc=^Y8zK6v%9@ME- z)aM|nIa2Nr6Q3Aaf#zPb!#~4aLZlPIpP*FKik3t1VIOb@-63_KUYp?VV3N8E5(@{) z>}Ccfc77>yTFo=(1Ismx_jBb_AMkQNR85wiz1p8K$u`+oE3mv=uu z#%+Y4GYUO9Iz<^nZ;qb2V$Yfwy^Q8!PdfprZ^-H3csNZwo9aX|NGlH(-TKY zg<(snG8C3cBlE1FoL zgjK@d$V-@p&XUHUQ+tE3LfDH;SFNLIIj0=eMRIZwepcV&jgN}HuMoYGty)3n?>7e3 zqr#>|+HBGm9vE37K|AMWnblhPaCx5FT_8q#A^BpSM^HwH4RuFZQXXjD(h52s2IO%1_AJ}?wb;~K9o9n5;rliu&=~t5J_BQT! zGb>f|P2{z2i~&((KQ~HWC%?6s4s=IORr-45M)`bnlS^hkYA_MA9LijMzco^2`BH78 z&}njBuU!m91;NVKzSBIqMKOD3jOQnx>Lh%5Lke6^E3}`?H!>b@nkv1`R!_xZ*<27I zVCB=V%wyyzea7#dB`rHe$xXWX8}t3sR%FJs_xCXV&Qrr8dYhH%56Km|y8t-qFo7dOEk^T3^XL zQ!%eRPo085R>|I$Z{%9Kx7W9~lHx3>G8Co4H~PK8ecjKnSx9tH?PAV8Q2>~i_Pv~y zk&_gxvM&8{a7JACR&(I~1w;205me_>No?$?n1u|20d&WW;SCQrB_;RKKlX{c0h|GR zr`qEr`YyBiU`R9%SzmhqSm%=c!;!PTQNuQPzq7GjEWP)N=#PI^tcBd(ORY0jfCGJe9mwYOFlU|NMH(>YX@$HmBMJh^DC>(g4BNe zUeV%LMTk;GZEymexOc7Pf)|oWk_*)8|Jsf5Y8B`jKMjxt>uGTuK(4t(h~Gw6~z=UiUJX zNcouY%rtc2$+s-J;5}ry7dFHIoN@cSe*Kuyg|}S zk$rRM1&AoB$W`z1G%|Z~1s%!w^0jL>`2V8&+U#bFxZnD3eo^Gun3IOH2*Iv@-;hiV z&G@$S*5yY&lZ^HCP%Em2qtt#RUc=&7ArQ_56?vn5SK;WA+ zo@}>wFw+3EcFgO3_$tdc(B31C0VV_vrKYtcTJHQwk#Hf=pFj*RKtERDkYD7oI$fQDd0rT@vaiQ zKK8{4e@Tv%gy=_pOIdK0Brxo%%^f!oGcQ8>1dO@;LN#%ma>4NNVs#BE%f;R2BWH)_ zQ{g=&MHW&6;si5vJ)$o1@d-BzW@nLNN}_EwAYJUwGhPHCKq10X_GaBS{{7L8bqJ)~ zW(bqflcVoeZB6&Y!hN2awYE`Kjq0XBqqDVj+0=1S=&6wnxb+v{MYsWvl*<8S@y2zE z3+@z`ZAOQo31cL2dH=e>@1?T-h|Qv%c&go+Q3TxcMkau6OJDo*5^1^CSTMFsGGDdb$qRqHZFh-BxDw1)EU z`Hz5<|BC&rN|zpgy>_0_^&udZXuYO1f=Ps3SIyw)bjwBpR{)J~0TuiZ%VBZ$Syr5h zA3^#d^v)@DA1Jk*2%=#bHldMZ#2g=Zxb`(nsCN5spSZkMAxxi1tMB8zU|I}e_h!lk zzM^P@O4lK5=topWpJEHpx7kQBk{TF02u#*b{Qz3Pj+d|OaEKA_7klt!1L8}YQ>bZ+ zoka!vQm4pb0EFQawQ>|hjDAR$>PA{`EZ}P%xIoAc2Jr$6x(SG8+8pBo0KLtFwrJsX z0HSq)8sD(RWGE+VzoZwarwDki;0|li-DVgxRI!2&2D^K6^erJ2E>sG?_zsbZgI`>5 z3~Zf<`VxRcW^U=^o8W1=*}GxoB!9jG-Af&T78`s+g1=9Bkf#-UaKyB07-$!iEvOR$XGE5 zT9{nWDSVi4uQd`{2;got&2jD1@=o)SN!CDGiWb{W+&FhTKPej`8^?wIFVT@WGuOH9 z<}khzt!y1(noGtH>(cRtt$1lvsa+f_dpHm{S<*Mxa993yBPQCeZixW5)iP^u@FIpbX zuHega=N8GYLA-@cLI7t1|Hcbef7z=P?({=Yn_jMbs34kvbF75IX05DSmuBSNf>vmw z*U$=RFrWxp4;?>0tLK|X_R;x$GUF?eh8t~i$#OdrXLcUi^%VW~eORATXhU&@{<>7a zg?F|v{1N5XDj#1C?5vted0HJ%oE0;MSH4QcKFZq#0khO2)v7 zlTgo`*pQ&}B7+995p0;anBBA@=g-E0Tg6rbmA1~~lL-2JCrom-?8ubaYHcIJi{QOR z@qIWfkETxB^`581v8x{2k3|1``=IYyH2eZBr+FB+zA&&32~Fu`i?S0A7hB=}u!3}C z)6W~TRt5et0%Dq?$DKsdfthhHSE~?baCSy(U)(Q$rMqJrjKE+_kFg-ay+m+ zSUzFmPl$ZWSjQ6_zoi5W8ART@z=r~((N5luY|Wc3GWXrX)l-rcwkO9c4)^4vURCa! zBEjDfo#cEpvO5p)Ox?D=-ecC%4-h9{kN4Rz#9Z^Pl!)Olk&$vx*{ws8JpkIuWefRG z;CG>kE!T|6HDFF-s9k`q6xB|ltX`o^=x7`kNxBhOPj^mhK`chs{VR103|wTba+xB# zbS!k)+w{56m(7ka8K>34aB5R!B)=I0lv-ZYAxWoRP_kneAA1OPw4!FJ7e%n{& zqECigcxvTaw}C-+bkJiT>*^#R^OxgRe|wXiGH<8f!;i4AcT)Quf|EKei|vOTy%(r~ zz)*47Llgqq@Ga(G0WwYG+phl|0qmv;;FKWhmUbl_jQBVkn^MT znTHM+1N)%5&J3bghlC_-H?Ll4?t{U?#xh>J!SMi_AJeU&5+08?&cJ<`G+(wtzVWrM zT>~c-XrbduLrxG%=Zl>T-H2>L&q|g+eN+du4Zf+JAz9>C(1mj~cxwy`oQjuY`BSm; zvgjuV$Pyfu9=qQSO?xKf^6=F{_0GlTo!g>6GwcrR2|Sn|!%AH#7;n1F8NaGjrsTRh z8_bVRKYkm1=~B#F{S-y|na3I0 zve1mW=8_-6XCTfp!iqh8^6cia$D@S89rX8apD6a8aI6}MaSu`ZJ*jy@B|gje6mh3v z)aG15OUQ=G%D$1225E#Ts6PWXsnhnmnNiEp?W+d-LlX|{{*N)C8NvdA5-9%Xgp8QX z@5e6a7PoZ2%hoA_7_K@K1dJn2y1}g16@4?)+pHmXUj+5yLqXRyQFTEl_BJFc2zjSc zO~<40(Dzy6T7SIM{;TFar?p)6jUeqwMLSgA>q6@-{Wu2WCL;HeI7M)5m;M%f&k)5t z&(sQFP!Y202v{M^qp5ytS9#z*ko2V6o_rWK@}iNJyFuNTk&T}dFGYg|3RdW5Afj5B zPK>M*d8n3vVVx!#UuwP%XP)`g`|;-ADdY3Zz6-^DpRm zNRhN1j)@lcTm^?83MTSv*XXH8@oZx=c8Tg=*@qiqZupCPy%Cfy$6icB#|UtV{VVn_fALnd}_@MnZWnJ=MO=3 zOLR?Y_p0E3^$8> z>TdoZ8j8YIF;k;$P9@AW)rnYLjYvHJ0=zIqDe8V%BU>(}Fhp15HWgYMVbxE(K`AqB z7XxWssu00wc9raUw8_rBs+|Fkjvf7$BYWW$Fjt%(s-Lwm<58K{wS44Wi@Lbw8|taYCDNf|ZuVHP z`ug$e>DE%}hNE80*RJ9U7e^~ab=Nj=0;WrAzMi1-bmt1@GbV_taQ6&SS%5KElxDhG z9m1v0oJ0m{2(r&%LEJ`T4_6*Gr?%fs?2Fp662><)Jd9KM^yWv2?Jp>K{d2+RjS1&e zbL!!*%fA-!Ax?TTa>R4$q-l}U`Sx>aoUToI>Gn&~PY(&3-h-=1?|Et8TbDVVWpQC) zfm1thsTCtJyRev`QxTv;0}BHM`YllTTvcQ}GT2i=WIi`z_TkylMJVyHvo))_LmP*{ zwXNC)q>O3upF-j@B0m~suXUWn`CBlt)igcj`FP(t>hn0;rcL^g!9sN=t|FxD%x;>= zJa%edt^DUt0uO^IxQehvXwA*0_T#AFy7pfJS5P=Fe+_^wy*hk(@hEHND?ezfFoF@{W3I115w=m@IK#&6U;s zhOL?d1G`bvRNAU_k2R52%{wD!ZApF53HYSB^ipVOem5*KJLMKq>)AI0dv2aFcwW6t zLHStEi6`S@cmn2~I5^J@Z=o-;ho8>B*`Y%(HlaLOuQ4?ow1PbC= zF!CcO~#Im1am|q@&}l2k2lf$+5EgS z`catMOF3a0S|b`sY^@S1uoI2xDcv^9;&sHHpOEPkAX4d-sX+})(RA`jwkkw>(pzR{ zI)g)$UK1R7^5e-CxcT@K_}mO(ZWfiI3u}?l!MJdYo~G-g`V^vdPlN^`NC&RjjU6M_ zj&53My9&{*`PV4L2?kv$Q5j3ub_zH zO%LrwOc5gX-62L^P;IMF=2d2TMHu*r5k<<9M-bYUdwQ3){ff}GH!D9Ru`wd}0q;{? zLEaFpr5?ZT*XrPXm_(}>l9Rn^Ly<=x_0jxeAd_{@sQeTzhDShp!%d>Ob?L}+p~h|F zovHh0?D+O#ff{9qRvvenE=ba-H0i-@$De&_T033}efy754IDDOUh!gAf!_Mo2suN6 zC|wSf5L{g*2_G~gOML|QA~Ed^+*O1zS?XSV@jmJfK|yV9EaO9(X`Lk~tz}fxXX&Hv z3>80!@|SsYj!xG-ZRf?ty(?A2(P(yKODxX~WffwV#`3!i3hpmzt(o-PEE?lxT1tT} zh|gcwldo^Z*_vE^S3oOf0y00xn#U8~Tc7>CfgR$UcFwuCqd(^3yl!x<;;H2>qD?|t zhH&kokB6CPNPm0IxtEf661_R{QTU^IlFa8wr5;&NG7t#ZqD`|7mLMxzex4*E1Fvu5 zysq`=+ku`iqNVEG3{DEp%aJ7?>zEs-hcrypQoYS}OBo^*mCAxHJv6G9QG+ z9MnpjGF+_Qz~aHNrp%gWcjj1Ffspk=jcQTtv>2F0CX8tVYa!l{(v z!rwa?AHEOys?M8Oil0S0I0n8Agw=(hhaZNyu}V&t6yd4BhM=oV(0kDPd_F3K-d2iv zwp|IH<^gE^wBY7Fer^(eTBgdA;?QS4TfeQa_yb2=t^&dmWPJ9~9zb>yG91qfx#oLBnhX%h(Y>n-sI!+9R|a!R(g=QcjRh#!B|bMuGca zKLnSH5NEe;P0q0-qo{q=o{Q!_`GusUq!sLH4B-Zwe8~ipJz&%C8q8Y*-zC~>;I;Yy z!YZvY+|;Lc)~@Rd=FpBe4~{rloKk`ackS!69IN%|DFke59u>L1 zW>LLvpy9&Lx4RU+`I3w$Net5qUPm>B@!5a~ISa16ir{5+mr(uTT0+zVvw zi-Sc403_Xl!=*sNeCgX$7+k*o{a4d=2lt`wyD(1}+$zOTslCC?M+Uc|P%%p}f`1*v zs=Dy3(udDxu_~B((K@q{`}`_1A1=)+viUp;UwaH+oYe5 zaW`L{W@=J9MrIIWrtc+mEPJhG&T4PM^z+O{W?;gOU%$UMVUK~bT6H^cQsN5=L*%*( zfN8N>GKT%_vWC-1$6)rJwuO(U26QuYf%w=9*{ z((8cEK6~z7e!yRdXnijB*P|_DZ7oR9e6!q<`Wtx#$-(V`Pm(vNLUY~9jfeUGUNvkY zm*4p+>q7^X6-ZTGtXDS|KtE87lz3g}yL5zbgYnP@9(IWv)wL|^2H*Rx961Ze%KMsU zC-nt_NH?st|I&uYP{z;*&Je;`ouSX>m~QG>nNy4hgc;x!S|wvUA} z`N#Z@&C>4IuE&wX+yB4tcp^=Ik!2Wn$R>dQ4>^C_D7vm{f}hv9^k$6OZ{Dse&-kV& zV3OI;zV)3~%ycj_W%93sKbKekPEf7<`d*=oEbIpp4K4nF=@me$qp(w<#{BaaGFTP5 z`vQLbQebXsS1P#Qngv8iZ=t!m2a7;C9O<<;zNzm5Y=4G5KKbr_5!);HB3AQG?M{k? z{=5&EFy03cyQz16JoKJK_4sY?ny`}z^33z?t+!2M?(HX|ECi(cy4^mR%jareQ(w?R z%hU-+$d=l>s{q1U{p4W%fxjq^6$o!z4xZ;-3#$S8CF{|z?@QmJ?9EkA-0r-`6k%#X zk@Ue%Jwt2dXr}?&r0{(wKBsq{wjUd}K0$o3L@TAm&P}ADw zCk;{I2{MMjhId3L9v6@&qq#Ec&t+>iUW=EaBK%a7H2m{(g|}5ABw#BHGx+Xw^UJLh zR;;pQyVu8E7#R9uI)x9;NR^m61E@ewbv;~Hq=%bOavHTNng;>}q!h%Pd@m*0t6hWt zG=mK8nd4mN*>7+~=z_2F0(h=qUQ+BaZUf8^;GMaJ;2qDe9{txxPa+?+?dfEjhMPba ze)0ie>E`^#DF~6uyousaj`LY-oj(a=zm;T}qf8!43F#$-5;!b#e5#am=1yVXN z(^dd6Gw+oZJfS{$%{doHquzr@8BphT&$9o1!E07{-Ha*BOGBvoF@|D-knCG|tYRE3 z=aEgy=83>YW={{%CT z;K^tGV_?8;1BL2Ex;wyo3j%qsW3XLi@)YN2CgB>&hP{}w|Fqfee+LPWipXX`9f}sB z@OP-u|Idf^eppQog88Sp^gNcNPY=%`bE1K2Xa=G$syViFFGusKFU0Tufg~w~)lhNkWIRz){>k2s`sahx8nB$D^dm0&St2DP zAdUi8qP|YUVnrHcY0Xod2XKNZu)t~{zniMf?_X~`&J6QJ#>Oju&5K(-r5~zeEW1*b zl^@NllJAbH8^!G5c(46rPUaHhVqieN>K%^ix_ z=6EPN7=Rk(Evjea{~4#fr>}+iH4#lB)&PZM)tMxJZl}w>sOwoBa)3e_s67h&Thk>LrOb156qbivUSX+whb8 z(EscRISCl6xsvIs7H0@xu7DKZ4KlVz^l^K)`w!9Dl=>HjO&t>>w zcLVQPvWvhMZh}3eRjnUQN8EVIYuc8ZoI~ z}s430n%nUtx`dYt5 zZx+R||5?l=r1D7ZuEyJrr9S|2=K|C^2z?mn7x8<#4|BPAjdZnQsJh-baO~fwdp;Z( z9R60do0Z_ep9S!!BlPsT`6xw^3YLK6Z}iWh&)fGQYL+)3X<_`IRUsz=6O?o|aFhhp zfd$-CNXc496r;f2Nmq#i9}3-#&Bp+)sr+j#1|5Tul7GiAf`vurnyFiogLL5Ph+z}h zJ(j#GQN+O!h%VfAwl-e>dvd?Pkrh3*At|NQS#+Kc~!BBz}z=Qle z4?hOII#aR$`6hfRZ2>sjWM&$VgcK=X_3miS1YY?R)5D+_3Z>C89^#v?LVho0}|X1qhEa60^MXG1dc<1 zW1+v?<`>-kg$CYzOfQg|LKL9E0=IL0e?g^xKHd*`4BIJIbyC2LUn>k%K!qjC-&NoL zQW6%k6^J~vimh(X{&O4rjT#y*!S6CA`Y#0lU>ytR=m*}?G4EOItBBnPl+2-+Y>nzG zw)t!g+T=zD1N(oXjlCl)i4#7)s<(08R38fQ5oImXhArstT3`&Sf%8C-vI+L0^#2~P zo|1vED5uGFFWY3OCO(6_zQLj|hpCl_w>Xm3RJZzjw|2GtIJb zu!&dugmUP$fc$<&b;cS3mzQ5%d3RUlK5}Q2h8qr=VO#093I;0%k$|v zU``4z8Q0%}dmvF*>OLa!f{n%*&sTb!?~WC$YK7moj{NT%%fd*T*!S|^6i5fHiBhys z2NvQ}#*ucVzmN9PlTv*X*-)T2B0IFZ=KeG0UZn`v_>?>HL=3RFya$%SsRTcbilE#5 zv!rNA$S$*i7w82bl=!mM^Pjif{Q^mZsC;JAibk(ca7G(~$7B)zy(YFK36a0U?TkW{ z4oKlFIB}95_@9mJS+ftKj+8G4g_lYv7QiQSx2eNX({|!sE<}go(ay0#?q&d#lZ}Mx z|IeKS|CGi+ypwb|tScANLu;r_#fNaIvZm@kL@rYpHD+E?#Pa~o;@coj8846Z|7T_H zevj8GvaxPh=1}=U1vFx-klc|K!2@TtCaH+?(}Vi}5vT!e7Va~J*nb8K`C4Dt%XZ|v zRwZ}RBIVA>a(IJ`1py}MWTesLJG+7_`7H5);| zGz^tHWFp$aZ+U2DcwjGQ3g(Pjh38+Hg9P`*o^>Sq?<{$KhF{#e^4Ik(`)frWZ@UXIxAiNB8^PfU3Sm3@6{o?6^_|JB#$DJ2;GAF0Z5Jh z(sg%Lb}1Z$6IgPhP*_7RoT*<&D=T{7LRhk9N2nz^9%Et@h&o=Q*s|`e5=9n-HWwBWNN7cJuCz zlH8wv#z2z!F9utD_rt-B*GPQ@P54oDWQ3^C?2`>~uag(1u5etmfKrk?h~)+mF9@H? z&SZs(xB#F?@j>^RhGl~7eG~&3uabrlcO3IYhVkpfHclT#FF6Nbf43(Deo7+gae=yc@U&|vwh#1yo9l<3BSMKwjIdaF7j-r=s-ZsPqy9NBq*q!SJr9ez(JW{!?gBfD z(8eMs(VSGr$i^qP+mE-aKB~4U{XaJovkPp0!pAG@VjiF%%yI04u!rz!<>YROmkK#^ z#sVJ}LnQitLxkvHhcw8ek!FZwVYDZqV4j{kYyyOpBdv&m1qAtR6fZ&YX&)#j%)oAi zIl>6N?!a=fCgg~!1X_~)NYhiU4)v`j`Pf9a+z(dMEfH=r zEUMq(_;DJag!DQ59wS=b7Q3{G0$;?bs|>dPIbyw55ry=4Q6JeA_jq-S(@5YbSxzIV zF`yky{GgH}RYnsc?f#yEQ^*$5ji+t;5Ph_ZroKki!@XV}RVib%8ab*?ym7%xMQMBz zA^O9Afr&@yF{>iPyFr+jU9Rc63rGjcx2HN8uQ`7cA5!7|jK|+cp84xL zV;=4Qxn%yv){_q(C4ZdTKMr~dyZ-$p$QeX_71r-ooxJ;P*nF%rr!_2!)Y3v+FR&;} z#|=NjU7ugI7G%OEUbca{Z`S)9STK6aTryciYTYlbfKtP*=={_R4UrO{yE|@GI6lx; zR&(Gec`!7M?GQ)gOzCU0cmik=?Ac4SofmZLF5B~S6#qGrB$-W-o3FmLuL6wJXg9o6 z1mEu>6P+O>2~FGMNsK<|6}B7mh7qv%27CNhJJZ;2fPY0Yw&of%)rcW{N6IJ?Vi{k6 z%@R(q37`JNo{gg|{L+WAQ|#0ryX%CWx44=3?tQ{=yxL(~5m_Jp#ZZY&3CJ{r_wgs% zsd;Ee7FlRRAqy1IHXjTcQWxZ0v+F61zVaZ_-vx{*z^_7#(+J~JxscyHe2p!K=QKrB zr0?$l&Om#2YyP&V8NZnS6FQAug*35Rn>lJC(=m*Z16TS9nY<(cn46vKD#qs`*Xl*H zbsU)2b_krxj%zIJr1O_8h0*`<1Zv&&1Om{1VpL;}f|f(*opM65TDimj)82c>Q~Ce# z!;wB64bDLt=CM_jGLFbRcD6*JL@4tZ*)!RjvX02eC>0VyWN#^DW*jRcvO?DVy83*+ z)gSkLKkk3-|9<`1!{eNDUDx}1zhAHCdilNX8GjY0(Oc#1?K~1rp_Jtcfo@(4PWI>2 zQYF4DO?6f|djv;-kWlwib@%kB@__D}*ILD#nKQc&xcH;B)>IN!lBfnWKl@PVeR{ew zbL}-q21G?yv%Wwpdi)CG^wwNmN6P>GrGzd*Cw&`o%>7UOTquSeeb`e95peB2A!Lj! zJVhqBIAYPm49$h}7pl2_cuq=PJgIuE<|e#KeCm(H-Oqdh=#`eD^2uzsqaj-oX|TW~ zP;4Yy%9ni8F}EP@34gX3IQ4Ke0`aUr-Z{_#r^NNU!ih411+w?e(9bUPWw3}b&oUr+{cma}2o+(DN&7UR9%0n7y zIQCOA!xXZA9ej#=G&#eb%C||gS3A(XI)Y{X^W|R1mzPe$l*a7oJ>*$0k){<1LvW5c z`ET>NqX2cwm;blAMWy8npgzCa^tT=x249+?bumueOBQpECk3%bppL`ci{d*r`cKTB zPKdg=pZ5E0m%0k(@e{`^%_;Xj9681nmH-$71OWCG?UK1*8>bcc49{ja8n_S%!v3y&h3q@pPNhB$Wf zY81_gXvj$Vxjzjf`W*DPWY^A?aX5eLzXhj%@z%!j0Lo;4?JYUZ&!5y)!?sMnzD75;ivCqge+U#pgR(8yF~jmpo7kjUvKisL!Bz z8{0mEdMbVB&((WUnx0f!itJwbf}XzMKxChOv(zTm25D2Z6>fFRbns=;`jn(UrRFpu z@9^w-l-P(KsXabGMm`EFg5j+YJ81+nB6?sb3H>KKzs&R&z+M6}60a3&^FtRBb* zmzd!h#o>eBU880DuSJ8am_}S1Uv!BZY-)x3S9!d92_ zbo$E4kPZUUmYxXR{!r(5at<5F81u4y5zg{{kc&S9CV{X9VpH#{uqWmN@N^d@c+XX; zOTIwR3&{5ozSTlEJ6Ki(@eSPbUS()P%*8#vXW>L`m_dKTJ?Cl-w8rPW%csiWnE3{f! z2%BK6or4*1gcq>?x&S#_n$sm(E-Hw#0WL{UY! zFJC7gsD)FTPrvGK6FLdYFQYJ~tyUeDAE-~PelL?fWU!40771JT_rf`SbF4A41c`e9 zBZ)CIQdtO+q1Kd)Bc#*5Xa$mR59=N!ytEGGL|(Vhd9${c(DKv(3Owhx?;w(>gV;h!H=zN!1^rkd(gXc+B7^C~5GJJ0PeJ&2 zemi(dvu;D|%V3uMtP^DjOwo*{Wq{(zNL#r?tCZ6MIhwN4RC=EoRlX@#lbHoV)$CWe z&`C~5D#UF3f`*Or637E@$J^kkJw>c1*yRq`qKTD|uZmz*-2a@sd~Lcr)qAH5afqm;#cA-Y zjYBhi6Lj%*^YWtH&U3xLy(h!jG>*+z!S!TAUj0fN>tiHVUo)XAe? z;hkQXJVmCRZgxRPf|&L3&iS4kwBm%r(+lr@GC^1JZ7*s0E$fGP13{F(FLDFUerJ{c zvrLelpSbk`=lWUST=cQp{#M1aI{if-@+WS@;dm8p0nug!>VUgYua`ea0`V>aW>F^6 z>_f^us`f4+8Zl00H@3_{;XBF;J207f8ZTF7=hz8N4pHo!$u&qsbFiQ~ey&cGuX3*| zKyC9B@~dY=CLyQLkj3p{1}?EcooSB!=o4ZR91w+2d0$x6_L~Cx(mdnCB=tAQB@Kj} zALc&?Qht!`lPHQO?pg50T)*+;UzQSC z9x_sU2uoF@%o#al!8k?UXaoo#P&G||%r19}$ZO6y5%Wk)%W_tf`$0?on>Zv+PH+dX zg&!c_D%bf=EwNrL%7AzYm1nPe(j=QJr+5DJ&R3HPFTL80W=+_=!V=1gm ziuqZ_t(M32gcxP7pnU05pjGg5W$c-&uW~le<_pSYrMIe1mq{yxpST71>7jR@Rjq*`hl)YH&NV1QBy{gYzl>vL^-oKWL z0jOWXFx<#MV{T>TOb>{&Gzgb3yUjrbA;ifYmvd{)#szg|inYoR73LbY*Fn1B0{5!1 zE{n$M=w)udS)UV>5pNVokNw}lD!$&zf*u5%1OD}HZeN}|FF}VpSfws(JMDC1 zrdH$X;|o9bmU63|+-FE=?#oT(y=bs_l2216b4I!4awhe7oJP($D?xg5)C^M?M(_1>v|>SL;EX!#=51xU$CZ3`dR4)6G=M#ukHva3<* znG^NaDbW%-Q~6}CbDVCDn>k`YQ#rGiBq84VDdS16pn1E}^5u{Wg9LjDCbzGTyM|U1 z+ajpVZC2`V|6Mm^9*CEkVkLjc7<8qix34sO6+~Jq~F^hYc-srMP)eUvK^QkGKZYXPAp@$ z^HjJ5wD$MsyiM%sj=z(^Hai^i*aGqauqd-f5QIsSUb!oWU4qKVWFO zFjcE>8vig@EMk(TYJzbpm2mzdXm$M6{NVz7z#u#c;}43WJ{EwQBPbR#bm|hH zC3(eef!Oadcn`&YP48JRR@C>=)96+yG`fl2_t~RspXPx@PoLHhSlCn48?pMP~J~H`$hdMQRiyO4Ee5(lKxy-=~0!$65vasngI+ zaR|S#m)uMZ-&Z*R~=l+O5)icV~X&{HMVbXd9m{ z!{I&XscfJ~TxoIs+HLcR>BomRCavB%_yA?goJV$6N|9(|&Tc{W>dos(e7KMIe;2r9 zh>EUS4x8CcJ5sAZlX#wu!d?X=jQPs0E)y5*#T4cPr3xu2Rz;P6R80RT5&DHhrOB*eF?Y@e)yrMr(8sw%VcY?w`UI{T*y<9D-8sKP?O#nE<1( z0^a_Qy*}#XCknKvmMU?PHOd`+N13@IHF`w!CiSns`uB3zk@slf$c-&2sIT=|ANsPg zM)8s7de~ffZgBgGp%Vl$zqU%%t~mcsg~x_H@Wwh%vi;31?F|n3(qZ5ni%aJfIP~Xd zN;RS8xYejwB*aa%Sq)I*5!FbjDk7Z(B6j>a`#iJ}TFR^s(p&yA{BHU<0KFdUv@rAq z3ZQ5$`a}Qt5^0bR|9GtI4^}G0+D~DpChzWnik1LE~!&)9yyJuDsM1&1iee65hRx(z4hGw=}b?<)t%+2(4Q%i_)0TEq)EzY2hY z9vs)i^Y)M>tdd0_mEdMugNJO(IuNS4rhc}@tseFkfVx- zb)IQv$g8;^+4MyeFYkW4dd0yWyrsgoKXAmq`33;6q*p~a^TmG3Bzwyt@7-3AD2TGEw0NBQVn#gygZXd9iFJhudF($htVfJ6O=61h#dXqkbKJu-9Ds|MWzmb9)A4(v$ue&>lEG@tk>2 zghs9(M$ni8fPKE~)Tg-D+pt}~IT156Y`F;0ezS-*^c$e~eN#JDs$uYw%fP0Zg%+0m zO;?biOo8o+2`3{XBA!V97%AQKkSp5u0D0{fkCWd&{Pop0APxb=u4mkvWkJm>?jp&Z zRo4uosrtIJ)xPN}m&SkQo0j?l1^?|g|Q2B;cMUi>u-Qso- zzDzVkmeim3Uj6h~cE1=vp;Rs(tSU^N%sN5og#<1db47ie(j|?8Sj`6M=n!ogbV{{h zzP;F}Q{3;u7QSsH-B7sinn zecPSFi;`{SI`)J(sD9A;J< zMm2@RBC

    2t^=Hyq0YC`TMq5hR&!E@Slozi_KgF*)`8SfZpC3VMRX!9*SZS5^ z+|#m(9~6<7N+Xb_66I3e%dbLuG7tVo3-Gh9An=NACk&Tg^B0T{?tiz{LSDjq;nl3z z9e3Vx{@TwBL5r}!e%zB{X{uGsGcovi*%uA-On-X}p5$}2R*NmmsiFo3m~b{r_q_NM ztvlcDt>g3puRjb|#bxh&1YIXPjst72bP(rK%(lgfNFcHYvW_-9-+T!g6>7ga>vgAnmUS_zm!EOU1t6F%D8Mm(Y_8~?xrbVTpm=_Q^1O3 zbuvkdojnlzp^3Gv(^b%DId2fJ;0t>Xa7DGbU85oBM3w7hpSpjPr{2cSfYo+FIHbsb0Ln- zXFcf1QZsfkxjGC6fqyQMv=MMeFn#a6y*RIXpp29RYNs@h=gjA6Da})FG91de_n<$+d1w~gF5g%tnD^nc?_IZKpa&5^z)h)lbUEKSPdsQ|Yo^5; zEJEx%L5MquH^>w_fiUJ;`cP)dvyWx;z2o)u$9}06{BAYzk&QFEQktsI7%5OQ>-Ymt z|7OXweP^XmdbA2=0gF{nCIK&xK>iO|e@RgoJvO}`pjbb@YoAlk?LjEAYJ88%>H<0f zPt#6;PkfrneYnt{|Gm8M&5UGI6Mr~dd~Z!tO!kf8D_g-t_&O%HjCFre9f=~#&QF3= zywx!bjno~(_QqZd$MruBZ|L*Sjq8;^eOK|^-HzeC_qwdEg7Liw@*{ZSDXN3h$z3Sl z)C#tdR}&B6RQV8sDrn$VJSdZl(@)^xn$*Pr5-uuy4aY1`O8W*T#(uLO;F0*0>@Idu z){0U|4e4Z~N%c@!>Gt_Fcz{ey&}A(XSNL5}Wc=p;^*FKIiTOIf{wi>A9~8o@1@gt< zp2A+=3Wok=j{}WJdqQKA3={_?i^3xGB9xlJ-RoKt0E{hlsABQF`zl?Y?&N>>~A4n;k655^&$ zSH6rGu-A|rJlWgQbRC{&Zz)NKihBxcGgW<9r7-w{)kj~I3b>7KazPm$IgER#29gz11E@RS(eOdb9@a2m8$$?>UT2+rRj5K#2TufeF1<_U9=Ura8 zS(dnG_xm&avffw%-}D!XPoAHu22Z7Q5xrY~3u=-jr-C@*UO}TzL zK(s(;2{{9A0SXn=?Lja)cy1C>-lhq`NJc9xT!6b!E(>PtRhoGePnqbSElSC^6$VFJ z9t&#STh^nB;P>4OCzG?lr1Wi#_WRP~(7C;vKmS_>^}^yXlJ_* zMnY)^goR>o^omd}GLwX}5k&S=rmmv3!ZPPR^7>#XB8&lC35t7ex3owsLv;TnfN;x5 zk8Oim?1JizF@`E`qRMGKfPlWiD$F^e2{eAcj=lKww(1QR*6hbeHT457;SOqFlx7&{ z{ju4x$xQfn%0x_*&WCA9P}QGW1DcbU#X`Z8oeal@<^Xs87K9y}-WYjocpg8@v)cv) z43~=a!Y_eE^PElQ}n}Emanp!CBZq)!Nt<%n=lU8bS>| zgt}0S^e$My7QganZs=2QfqcaCFMw9(#-G-{b4Zl4Bot3_-!-BYq^;ikv9BO$`M|Bm zm!$j~{uq08s?TDTxYW(q3!=H==@vb#bItF!8ZzeM>P=*+p=91ORPYqe zgdHDqY(EgRJS+bQsu8DeD>4o>El^~j-tLNdB*D>nE0QxG0*4)fHjoQ=IDWygmWdV- zcbpjlLIH`!E5yym1&U9!W&qoi3+(?cl`SlcviUCE{2jr*@rQ^t_XjGQgjXlHMEl6u zQveg@UvdOJ(A9`m#SSpoxdhGk51f?_%F?y^!vXES4&cSs0C+*U zLL4I=cTYst2DJmK=+IGlXKfwihKS*1`z=!(lqJDcq6zT-mXFMuxBh$ax&Od_v^=Sd zsNQcC7KiMC;$_Mg%p@O?dFA!841|p<)Ughvk05b#EYR^QXe2BK0nlOX-)g%jTI}nR z=|916mF1CN+E7iVWCfs>RI7q70y0D3=##n%Z4BTGIrTS`v~PaD|PwTh){xHB6sfau+?dzl2ee}<^{o_?cXD@!6tRi zD*tQ-AsY|`E(K0j`2nBkg$#6JXeD}Q4zvT~v@!|62JjbDx zmL}!I>`SDSshlLJrVL^4L0tALj||;UW2f-;_h`g0$Zf0Bk~z)OBawi9mv`p~NWtnm zv+or7JS5l?I8fO^yYM4G`TdN2eIK7+Hcj3GX>a2>56PKm zuIN`Mi>tQir&@=!emWf%hV=4XbV$tfn2FdJr3d+3%O-5Ba4K&LO--#RlsqKBKEV$vLet?e-vST?3%fu$Cl3l@? zf$|e5jB`EJq94K>C^dEB8H>9m(Do8rDP5HmP zS%a1m_zL0slDEs0KW-rlVEDiF53O9sp(IFX4}-6$w4{6L=W?ngWXt&OzYT@_7r;VI zx6m?y);$6{wC)N1|LY$7j0J)_ki8#ziPfjzX@uw^OVt0z)tkpd^@e@GhzydkWM5|N zBtl482V-9bg_0s#$X<5Y#+qd;S)ybODUu3_vPJxCWh*L-U4*hkyw}n5yr1WN|MU5j zaps)+-1l{TukZ3hfyUPv0xg`|fvJ5ik7pI{r9yoL8s5=gb044d{s*LZTR1ROll5!~=2w z1_+57(x1{g>bqJMkU6MN5>DEqqR!}Sm)OZTXH8gt4hUBBtf#U~42qF9lm;(z!yS54 zcx)f)I@Wb=nc<4*Gw@FOdJ6bRcQ4J9Z^<7rNkp|hmNV7Yqc5Aevgw2Bc9{PPY6mfE}eUF!al1cAB0ppR}!{8?-mWmcQ1CPR-)Tmo1Lv2%J}v-j%Qes zp@Ng#qL)7-<}b{BR?WFqQ-UV`?J9K$Pn<)75BW|v&>ByyYQ3i7CB@nf=BOM#(Qd5h zY}53(!&SfLq*5O`Ok7-bOK*jzsiEV%zKMZ5DH@%claW~DOe+9MuXebUKQGO$;Qab$ z;JC2sZ-r1;w}B?CD{&&2BXm12{dLgd zG?jL+W|d9&WTHp{sl3_Z{LxGTZf8z)$}h_+ZCI|g{5&s89gcxNOEYIR1JPSRKZ|;c z7+}^u0iN$T!n>%gj;(HgG_}pGv7%W~2Vvww3H8GF6OHy4^&wdpNpS^5M0^wZ}gy(EqqmztXk@g@a=5 z$20!LUm6nc2vBKm5O&ZXV-RaxsyQK2NijK6Tzd*=pBc9g*r>@F428n+#p$na=UP$s zDcCoiBlI2z6-^Y}5320rwNSQbxS>nTi-2*+%qto*l2v})BJk^zGoW@h^(QSX!?$XofbS=p>BvZcRo=ynspxKsWO#D! zxfC}_dqwp0`F1mvtKdTFDIV;E!x&LdR3|mH7`yIQC>4feGP1mH$QsNsoimz7R^4_P_iRTAWS62@6{At7WBHwrXG*D>6O-XSKzWsEsOo z1vDM>^LPhtGI789yoA_bJiprG12wksC)+zu)N2LLeGrm@#_oy|;s*>dQgr~=@!0Dh zSw>uuL4V@D1V?FUrCdgX#Gw-*yFrh+O}>5r*Vx({qlFOE`TDFxFhnr1K??hYyN`p} zg!B|F;o2NRHLzt83|W=G8Y*mStAuTH0=+CVpiH{+F76{576tN9&e8tQqWc6oSK}khpF&)&8&s-K z!NqtT|Lv%hE@1O5!g1Ph-)_{5M-^8RE4A~iU;DWF_G;2*ai`|1sV&a|E;AZRd0?OP ze(vRsIV7?k?1`0pAsL|t;N79m&0qZ{88^V1w=UbQu7fR`me)f=Km0b^eI$$-%Cqf7 z>!4C-b^%g6(@}0_G}|TLQ_T}Fcr1!O&BIGA1ae)*knH;0Z%}S7r5H-f%B6iMisla} zfzIZ3)?`xqug(OB#kJ>RAvwd*5@wAtYj^(O$ZFX>M6uLaJLC^cctgt!a6pV}J@p9_ zsbLGH0@qO1Pz|zEu!g}i8Bv8rZbNuU_a_c(HfXGPWXyNOiDLtX6y-$JuUr4I%ZcehZ z947c9(-4>pe6>tgJH#u}25ptwUUUq=>V}D7i$wHPTQ+^ZCDT;YHj-~0xcDp@ai8X0 zV2W^5C6ly9Avc~c@?qW0IfoF0*JYsLcmuoyGhvB-w1qTY-YpsZv+7WlS_GMA=5GklMty|lAS(3GYTo%_MKWKZFf~>^N$t-yI>HEWzPG77R-TZ?fvXtnP1q0rr9|MdN@YkCnM5Uy(wZ<e)1W}r%#9Y}$k_!CtMcQtS4_ajr1(Pk#~#oNHEXK5A1jsq=rhWqm6 zQ4U*=Fy?f0Wk*|X`K;MF)}jc(1dV5^<#_HJ%E$puW){B!C;iVmzqvIIdq7`WLrbh7 z+nI>MzuCiPTva(^`W4xXMW{haaNYG%n6^Ab! zfHVC~${^hne8)*J#C}X+lFVyaP4W_F#mWRLAinVDHaCH&HVQL7r-g^0vKnM33+zQ# z5_c9Md;3V6CY?VxRG-sR5|%8}Y1jR%ag5HBp0W;1xViN^WXX@f&bK%@lIXYXpia7P zXHREOH*yllriFP+w?kDtUI1Dfb7s|+rOM>BCB-8>bly+SdE=&HmLuulrmok&a;LKE zk|%p_UhALAa~c*HD`YKGPQdxoDSPNB%6vN`-s)6HyHLd5b2& ze{83uLaPj240-dldzxb5=4`aaQ=zG`I_l zNj%DNz|M*bV-HExPaa9miLOeyjTNKY6Ll}Hptq}YP%a~Q*-YqO&xYP8`DJxajd-~? z$R+9^1^pDRSe%_WAG(tcsuhR=%H7E=ZL1*tylHiHoL8)=%46E#0g@#uP337}(RR1; z*Q97b>tpHIIL%vgLMBZYY@89(jT=}vh|jl|U4V0ko|_WqBk^Ivn}z+?rMQ-@su*@q z1~);|C3;5iscmh)mm*Hvff%B72%_ev&yo&0BniZS_#AYwHYRy3+2HFi!kTLl6c+Wz z%Di5zO7ZaAHPQJA-oYca`<{|%UrxwbeFaA(3Gj7+ZNGW70i@OZQ?f0ho zeo+fw{(dFf;9C*nT``G6h>XeNyhBi1BiGR=ue1=W$7laz%im;5j{9(8WD|x=dg-L7 z@f=qBQYQ>7;!$+W<9l)=D(_)|Q;M`3dPQs5dQ~7#7xM=Z@9gq+Xu)?}4W+Puj`(&- zOgZ*xVB)hEVZ7gQ1`0RJIK;7RK=^}Jd?SJJCLrV&T;AT{knsUq?U%Vm@oE?m>~4^H z4wEvS#O;+mQT8eey|yyvO52`;^og(Ow=A{-g0Sq`3mja`58Pz*zt8j zHD1^q3R*N3XaE$PR?jeRxV(j2--H^nlWc80Rz`nF2)WLC$aPNFw;x5WGoB*vITFH1 z-&b`FV?uMKc-ILIf%ua;uKEM+?S@%s)PXRE5ncOBd5TE! ztVUf}EEQ;Si*Zv%t*{yVv;*Vog^w|{Ou?RdF^C5z#6m@b%=@WwHEIzlfDc;ZH@jwgA zZKCvyvvzssxhoaVR@AS?F=vpEM%TcL9Fz8|Z!j5Z6>1&mk<6%XHNbrUIM{#B@1ub| zi_Hmiud&aGX-zveMXJxbk*Xo9cCak>u%Y)-r~;4!qo9O7S(faTUWC^e3jH*^19h~B zPC&cnVb84c_PjwP7Nr(}2A3+&n!=x9LsNluQe|AH!3Vzk`gi7y75ya%Iu2|rd7&nG zBM<|3tl~=kGP%0&4?>7sM!J*ZS`KRM7LtaE8kQT$({R?oHh7q-Xdn%Jw~&xr6dn4M za&BBZ5lV`}m6clQ*nng>P)O&YI-F*A|BdXRVVGWkB8Na?;|u#Sd(8XR+($$4^6=5AfWz=1kqB|h2@~Ph6 z+oE(40?86dwOeKQdmpRZZy8@ccKRR`xLP6ujnexoniB63sT8bq5`zCLy))Y|6rFVXBGTz!W7d zFUdv-l$@wAdgLHz>YdYu1sKOg>87_1$<~37C82|;t?Q6Zs;q~qF`*nPmG?$rNE*Up z(WDThs+&^d1H4PCXdAM%@BK+}{!UOpH6U>nL4N^i9R=y%?8|Sr1ASo!{k)8v_mUY< zVr`tIh#^U=zX#CI`EugDJo+(Eb;cWg1qCS1cNuW+TTpV}{{mH@j&)SxQ*MB-HBdWD z$QQZDSX-At|7~sO)h0+Jv*%OtV@GN8mhK`C<^nvJD;yVJ0HC4~CfEzvu~v<@gMB+h zGT3HOaXmk(+^Y8eEXZuUJ;20iV+~DhVZ_Wa|DFe`3GJWV8~={-`HqfrE4kfx51ZV6 zjhxtfE$sy<+0I_s`IGn%Xtf@5n#$$?g`rm!B%8(fdZ_gIwoF)mB-_aRi@krBrQodr-v_|0XTBQb0^?yMY zuByx&(}wIEEkwG= z2dKvSU$eow*!jbsnw>4L;%~zv`_4?dCl~0VITZSR7y=@;eU{$_-;wEW4!#FXcGyp( zdRHrUMp{ro4T|tG@WW3&JavpJQ=S_K;1LW-UVm}QxL`zCGjb*S$$+$d584$b3f^$< zGh&tEg1I@ zcU)9x{(A22m+I@68|ipvX#3e!u*v|p&zoUz0p_kBS*sX0q^pky21Vuwm&a9lwcTlq zkKPIma!T~$4Al_X;T`?Sw94A_3rSBfXRTU?(VF}Yi|2KyQ<-0O^*}#y;jZMF`0t2- z^ofjnc`Oi}x)9hKACsT?umWLPAXxL~T+m_Lw`BGx&+sA{GD1(YLVg;&a7%geE}lJ* zooTSynf=|FkMJ^Da>C1a^w0&o*gQ9h+181_E10@PMBR1+D^vT3gp}R<&_Ogen;(Op z&9qSuNnhY#y#U2y+%?Nc)ieyuwpA^Cp|7YYwoPyUg$vN4VmLPr{d%S~3UtGSB zYX(=NsWyRhbc+c4O9+eogwe(xo8t-pjj(HYZd8Uz?3&5qKBqJ?H?iqplux`Gxx%v+ z?Wy$=;e+ggpnDlfM(RT8>X}-migU5Xsx~@f{+g-cmiS2FuIb5un^1kSNQaq=trj%EZp!5!- zj<|EQCG|@IR{v92P31&^L2B*eWF+>oyB=Yl;5{alWKLiR7EgGX(VkG2U2NRN2g1Kwy)a7{7VHRy z;!RxD2~lEv!OfNsQ?mf7^t}joL7PlJHEqGX%(7}m+VtNojR-v+$8cVnoMmA<1dvH@p*V=Q4u%bwPM`mur5ye1x( znVid<&xkt|(K4|IT!z9@9>PR^jp2#70gWr3YSdyM@ZVlCafsdE{w@3gR+^Us3+_K- z={Un~u;ndNZP(0!SzV&r*6NfCI{g=2mVxyN1KpL1_7GWt@5y@)tXW=wH5s}uL z;+3g-)~g|UI;NMv#=44sB6asom~5QBKscjB>^yo8LrahcLyI<4Czu-yUllhbh_Jjg zsZsq~VC^(Ys$o+S+^MfF`#94{Egz&gpr=lXA=By@cQi}aJQFpG6J@F0G}zcOU^ipS7Sh!eN8pWS#`<*(-kA4wLZy2Qi(hWef$!(k+6dh<)YJd2S?dlurVFjz@E<_*H@uF6%Ym371dIUt@Yv zo_!-m8Kq}QjMdH-U>5F&#=x13jXQ<9p2mlc*h%>LZRGjY45FYG9_hNMF^+<9c(xGY z=0gXfl=gL0-_*AU-uz|yO+DDx7)2PJ*}7!+UURe7R|pL!^{nKOI?1}5pyERYdR4SOn=6~sDu+sNjQva z*%CaBuKh*J{NDOnlA2j44nHA4lrH>=$fRoW%7v+UsZw`xNom9+EkP}F+*i57tLMP^ z;$vHqL2^U8VQd+zm#i$f?W`&c*%()`Y9LPw8z%H;a6y z8GcK;rYXi;Xm|72$XhK@r27&A-T_8$KJ4JqR^Pm>e^@EZrZ!Lqp7hm?hQMywFOHo* zjN0EfF@=a|O^MOVHA$;whD(2IID~s%B1?W18KkMg{h2 z^PNhgp!U?u<3(v5YDy7Q`r7_q%mljs@C$6-*RPlZwP8gvsFUu$G>2a^8RCod)j65M zOC(Eg{Lot1fFMVhDtx>1xyz1+9#ldnc$}t$sNeqHQiIMeUdyjhh z=Jqm&)mo(HE!{z5e@)I8opQUL_kchBF6osxFYDbh($h_bNPWg8oq}NaXedx<71CPlPHD^3+ zgJR8_7Uz3MLI#=m&jDw8fx2(qLG8O6|;+#)*sV)>fYXY!DmFI z?r^6(mUIBQVhYDw2v=o?}P(SNsu?!$gDdYLTJ%7m5fpp#~$^3;Y_6A4&k2iVA#`hnjB-Q#eTD_xmhNduI% znwU6f)Gfq1U2M3SSM^gCQe)XHD@hh-98V8N%5glpu83G&ggct1e(D%NC5_jihfnB5q zKQi>E?HwqB8{4OQX=iig?3mwZjc1>)qA33~tT*RApk>#7fwFrHD!(z{bU4;BVwxUwF48YkyXNv>!;FESV)jU*j=}42X}`Xo2J9^D9L+gg$&U)LDDIRM&}g zDlgo|PPzCCA#CRjfVJu%2(p}#b`z~0@QNn_;ESgy zyalgT`+H+WM<-}HMj>pEY^Hx3_%ln;$=xLDlcNyXE<#*zH4i25`as+zg7V{omf^yR zs|qDI5Y{?^NcoN^OPXwPEuiVB)i!$uy zAu4o18WP8S!DHlHqD6P9RmB591Y%FaXzR%_%V?zhI6WCJAFsU)gQ0}pwS&p}0+yBh ziZ?R(v`#nRgy&G_s;}8&2NBps;#?)-x4ik*e!MAi32w+M+2hh})zA{Z?no7Ty|p&; z8ezb2$zK_MRt?;v3oe%tx)0DAmymf*zPaT`yDG<631MV(y*39}hBqSIZ}1Of()WW= z*|}_(NmVystlov&Rv;{=^Ds!{Eu4T*)GOpAXs*bJ&k^`?UAevL8}DB?5qI>E)ihN> znG$^mGFQ?Y?O%IagLr&zKt2B@C>ZbrMFFDzeV8#WfsIVHA_QW;`u)4|9>2*c15^tm z>}r#;lXVB#dQ@1)C%rH5LwQ|XcLTbJl|yDi%v5D8PZcoK0G;V2QaHB5NjzC>lqDD= z7>*DWh}SIilRbWbi`$K3NpHA4fa!b~NBZd&qlBviBzegP`T(I>%qZ&H?X~}u5?Y9U z_3NKqj%7&HN)nh5A0&L`Gc^qJH%R3~Ot#J+Mc;uRqG_|9F`~|6Gy5kyp@0^NgUB^-BW5adHe9hDw816vNs<+L+de!>8ImKLv>W zG`I{)t(?vqA!U-PNhO>=lz^hgRs?oQ*;`bxUGAokp+`LlP^DpvNm>?y#=JXs-MjslU*ks9;Y9p;-phi7nP0{Ng|67^z<7S;m0VkWt& zWJw~Wqic82Uk`J|;XDDbQmkT)u#CJ`Wc-JCl31^;&@pUxd&|iex};O6i$c&n~DPm zMC4!VrTk|2#ntmlS*{lH$EUQ$E4#kL}%}$5$tn%GlfW*doebA=9?K(Mu^XUAhb&pi=QX zTCyX60Wdtr>)3q07Gbucox;X)ONE0Z?+Jtx;%pa3Yu>!^P+mQPk_+MZD>A z%LLW(;-tHfK;0SzhkC1GK~|FPP-vIz(NFS-hDJ!Hc1Un&%I50*GbLKd-(>M{OX9^Y zY5`pqqd+D8siv}EF-7Mwbn3mKw={}DUO^w(}ewt zIYhS*HLLxigU9=`u<&cpvf+L5@!CHi>e_kXj)TS~NzXcSH~BKhw=u6bFwEp z-s{`x<6_J#Qto`*Fb(-m-zI*NYY$OG)ymRY%vi@XwJ2>=8K!u%VpN5AvDs+ zy5~cf;}-u#SXrl-rrPG)T`0>xowaPNT7D%l3rOIR@f05dpK_J`y3qcd^TBf6L1MI1 zUiAscis-!6ap$Ih^aH;nTk%O!E@%abPX8n~xQD#ds2QEsgR%%i#c9k@%l1dZ_L7VE z5!N@-cPfbwwUhNr6o{O0ogmu!_$i8XlZZ|AUV$dW*E~{$SY##FFE*p$hhwjb5+9|0 zM|+))63Mh?coxN``%Yi)WZtI|Svu2=GwpODA#i^2(mceN1cF%&y~(E>wy7+&;JQ*? ztl)LlrsT49=qs#)IZw5SlEt-)n2yY}-OV?Tzw;rb-v3bvqfU_7y@{ie`e{j|$D1_Q z^&wil6|2{wtRJH+EP}Te!oBIBq1XH%OXS0a%K66PyN#PZD2+I>GAu_CBi|Y+FpWBD z8Kow%wu7Ld8%+yAW~z}k4f(WK|1tSENuN!=ULWoBE=BnNsxL4r!O&wHsM zt1lpJvg_5}$!c;k&n#M~@p3p!NivP9qmcge3W_9yX1V?@oF?mjNx}1|eezlgTXI;5 z;hCGXEQznWcE+MvEL3RwnW{)0F7dtB^coPpfPS0*`5Vt71L5E+cX(xWK440u1w$5= z)TH0kDBePQ=&5*}`U+K;NR7s{=3CF_vwuS|8~Dsq1_pnkq<)1&e2=(9Rw{fLvPt~a zEcPjf+(sn-y8HTiYEF*0Vg(G!I+Nx)bRhdni8D^G-9*xB?b4kjbV7*?!T!(WN%pBZ zY&5TfBbHkH$bf8GCP?WDm|vnFlY59N#%FJ~Ptq_Owx_&5KA`gOkcgGok@s}J#ZK@= z)JK*$)yGN>mLF>pyk^bxSm$^wcQ{%v4BpIh+*8X*mT9j;Ix z|6i6i5NN~;!{Zp`wAmS{tAbM#n$R@DN;hJa#pr6IYJ|E}?rOf(e2~15Y_`-t{iS%! zQi;fWz%zQHk0)3LG!eTDbeScV!U9vUCoOLFE6aVnFN=Hk3`RH^{`BuPpL+4ul8*08 z?EzL>kX#S+_}5$W3|oZ@T9V}kJz5i2V@Q(!scuYg$90 zeqG*m1-A8mp0V>Omg?H0y#D0mxd%@ti5i2@4`IIx>a=+d!PppGUTplCO?h z&a8@u^K?-P1CJ*i$oYs8Z2_+5NK4qPX|YEF1ApZ4?vkYf+*=bh`Y>@Uv^!~63Os`P z6drm^OAb9qVUJ1E)XwrBZ~|R|_m8MQtW+)_5HM$e-WzFp!octHoSIgXtrMJpWlAIE zcfks=jSm=OPhtGiM{!iw?xBi^sYqlL%qDmkDl&9h)lD>@=%>61F%M?B z&0?OXpU-XFoVdd>AfhadmFcK}hqHwU0o2T_a-reS=BHfU1?1o7>@^*DJU3JM!1|9P zG6DEu_C2}vNn+3jwRwMiF6#`vTA1_7OMQD?uL~)1bQ38mGa$?}M4BoV*WZZP=^aKx zM0Iu2Gb|m{&|{8Q6`9D5!mqA4+%{Y_S>@U~$#ASoY{XAaOItSrTEW3Ev^Xy^oy@6~ zWHY_RD4v!Tm!8XJL#!z@6ZD5`l`sJ<#0avvzhpkU4cE#hOhpnRog&slo2l{Attx90 zD%5XfMioGGT7qM!+FIw zNo^A&!fz>G0fp0LgsqKIdS%+NgsA@@K)h>ze2n@`C}pHm-44BY|Wwu3rhAg1%9 zsrrRpR9HEJ=DPHj*(0qvAEl(CmaXX7E7HGYk5uiA)OGAa@q3}j;I7n8ZnlixGw2we z=zJ}TxGyFJ@#$kP*y7Q7WWU1W2|c&A;7h*-xz%gXSe?6#Nqa*!VRVKg&%;z@g%}93 z48A!=#Kjbh2)`TaEF;diN7}*ksSb%Az3=rw;_S)jNft&qj;58+1BZ{tr*J7%04L4+ z^kQWMqOa({UVfkWLJ=GB4H_%CFM7W9L_t27s5}kcUY~oAvhK-dY7nKqfDHS+fYNdk zK!5koKXiV-z44=dpF}JI)m)F zp%VcA#OhfwWtWFQwY^u2c7f$UlBYJa2DqR?BKBU6a(?2WFqraT2l@TJQwDZsOMc2K zi$>oR=OwUwg+ba=Xl#~pyt_StEE2=)jOcMA`3k=l>ZguEm9ezcxOdwZQi`*g&{;6e zQ~Z65z6l&*PsP+CT8l9tyCw1{lyzS8pSrsQGk+gp=@1zDmdBlJu>$Sj7|@+&yVbUD zxGck@&I=)IA#S2b$Hj;J0;-%BO2Z&^spN~6iBC|Ry@NBWe&^m62y29=Bes$4Z7nQA zf>1Knp^VZV_#G;0H=%`SvVcH5J-}2CRZ8IEk znDYp~ioI&ZHRGxXFp~UkzO}zpczmU;Z z4#^`1=k{ll$5G7XCjjyCI9FgTBJK)afDb&A5CDGtI6tBBIBb z)F|anUX@$`3$_Hx6xO>EjzZLY#3xL2wDK_xAo>1M1Mi)-5COY``SW%UxP{fbbWcRf z`PB(_e-vkPCoutZVY(|F&n`t%{fgpo^Pm+7s{G3%A}PEy(Rzo`1$8y%KcL~&z$kwZ zH-@#vdT)W}?Vr#~!d(wmeku=}X)}a#gkbWpYBmSDxNak`|IZog3cbjkNV8yA+^)wo z@Emn>_Ah#`n(cBNKrpXnDfVg3n~dUJ{zus=E`lBO>*%Qm9W!;K4tI{xw+3%^fnJOWs-vYROD9J4&wH6}Au$nG+=+Z6@-)fAThF}xyxtiUzWvmv z*!V~v3$FJM`+pS{i>U+6uPY@dXOw7?C08Wun0$O0jFIbz@sUJrfBG;w&sg&#g6PFy zJJX=mT&-ao+6|lqihYEM_b+4V9-n!9Z;I`pD{5v#9*)U-N{f=ccFT zgoPwl?uL9cali^z^h>GQlUgqwus4_m(<3#lrSJpfNuU;)P4KAstEW7%xp)(m?+ZH0 z69ZEAWH$bZsF9hdHJV%EH3wwrMS*_*hUfUD(5W%v&)@IGqn*+k`N-Mm7-?9gcwe`P z*(_A&$?kyL@4F0d*p+*m{_wuADrX}~-H!-PPl?ZQ!cplEOMxvU-evhL*{MzioXw6& zR7bT#E4@XlW*Kw9e+g#D_yt1YRYD00|y68}~2Q^2nu3E&31=Ev)D_-n7B&$H z;!&AHW)B=l533_JEAywN3?Yi@yEdn)J(+x1q)UJ*m45Q}p%O7VW>ZV+a9QQkbE&mw z`tI*62ZPXp9s$M}T-zolD^Q)AUAI2rKisj;T}atBX*X=4l*5{_!vz0@+CF_v0zC}J zr*YW9JS^N*q<@qYiMo}s&hEe>NZ<4X>J~SkLmnPrpg)JJ3qGmPh;6}8Vx_TvFbA=9 zX0t24?fA3+adGScI&1^DnmiIbMz^2k`no^PlMXjOFq$|>m~?EpJb0jS6Ajoqpe%(A1VUIM^K z>_Bz_WEufjV;DuNrrBf7U+t?&NH1BkW@chOz~yxLdc^F+mG&7;ZAv{Smolw_b)nHr z-VC+?%`DovsJe6?0d`2_rVg(V8o8wDrKJCoa~ zwi%;=+a8`vMNYW4Kw2|*`8PG9qGY>N@)#rUxTOo!&Kq9GahI5zj9Oj4F5=?tN%zzq znM^d&Deb`>krL(=z)-{EzA^Jt38frU(@)=c99@7@R3qf6u)YRH7vfW6#C7jlynuq_ zk1fwfU!(&mQ_{`+cEXRB&t}4K)~Z=R9b^CTh2^BdMo;FnJf^z5+_r9#ZP$RVW zD-;JAC5_aUx0!(%`Db%`G~Tj7v{3cXt{QSIaf$SbS#gT@6>rAN zr*IYR(-*oBCKXs0;H%N_r_QZm-3RfZzf?&XtYRiogbQU4G=i++;63ktgGcCb$|y4w zF(+v1$Of8JtEr(hk~MBb$N@3U@TzQ-Ju$FAMMPUg;Gq51@1cw5mke!MVN6yAor-(| z(n)`-m3f)Gz-@Lz{#^a!cta0B01GBh4OiPbClG0t-+!+V1+~UO)Cu>mqma3F>+CNr zsN`;@-rrLu(MBdgt2y42hbQqsBhT9J$om4`KRr_P-IU(}#z1OqgO| zlzD)v+q6xW=t?J!ib;09bdvmUzWnc<4*XMT*B#oeS ztlMrhDcHj0_3M6zTG5;Dw9ie~&(->S!hBf@$k$f5HsAriRcdj4jxHrrNKsIWo(mP! zf`u)ZZN~T>(Q%8Eb$a)x4tZTrbpE8*&PE5j?;S@$g+uVMO}gKKvgw6%rl(h0SexB# zk6np}Yn6{O5<`W(fDi7^k2#I>?ZGrHfje~vTLO3Q1pk8Z+bi1)K(Zf{N(13-(Lung zFUgeX)MxtaATq?&VLpi{N)`s6BvhwO2|xos6LOfWIWF`t*mBdmgxT^C<)^frOE8&i z_zR186j@nr^87t32tTs8PWZ+s$6P5Wb5!1m|0LY0l=?}RhBWPtOkvNvPj%8S-JI>k z2Hr23s%HK!x=;AMJq)r#L#e9+oB3>af(i(#L5METu_~;NlCr640Rx5$if*IB57r=vq6C@Bb|N4> zJW~qz-HA927|bD>{R@!LF-afR1`rhTc{ofz^7hQlC3`a?#N`%I?IrS&FgjLIPJiW) z-5pr?2p|2i>3oneT)eZ+{#P=`^ulc96&#zdL1e}t^uJe!!w4dumK;msp^1hs6P_)n zoO6JhUE0<oSsSisKgb{!2Aa@ON zX$ZeIZ1?XrL!ycx1)+lpzruT@w`0taSi9bQaFD~}2 z(WCS0U+)0bt_CrwKo|~)41ZmyQvhz*TJ)O$WM(me^6-9}eQj)5Cn%r%VE;boqGs=r zgdV2eln4FX29$lZfT-7kdDK)-GUxiCj^Ds7CMtUUDCm9IRfApcgTIio0z|o!i0jC@ zk;jg_>p0{!oS0x)iCZ@+o{jWY3B(hfPFj~8f!h;@4ntzS{=(b|DNA%to?-+C0pzjD z>1d3nWeFBf-k}Vu910%(apXW7x7G@%PseDLUu`B2pza)@9DIZ7bhv*Z0nt9aMIC}P z2ZFvEOkKmim>>AJ&VckjoA>PJjG0h7@4wG+QWFG69Iqq|(k%h<=xCCqDt(v-+;y(Q ziSQT^I^K6=5DJQBFK`HRNlr9t2Eh@cU^hbdYF!q+HaF}5X&Sc#d;(j;pSKZ4QPegY zn%&3TEEVctJVbPo?RnaUaHcL%gUnuf1HRg8fa>Kv&O86l%BL5gR6W7I%j--HhB51P zOt0T`=@vpJ&Jr`KYAGTodpo&I7mG#~a`QXF6Sx~@g{VUUYNL>*bsqBGmX7u_J6r$z zdL%lkfNNdU$N0`mp@?smn%yd_JqAz4@q}R()Y@xX6Uy*bU9cxhO^*x=!@@?zzXeCQ zu`~&bQ7tA_wwh!Arm29TCWZ2Ir}m5^%E6G`HGx-f>2+XDRsB=!oRIZ_e|PSBU5e08 z=qAtK+F(>1ek;k>xq9c{UEE2mb9l1{1L!4y`}#jW;SAF8PDgd-XBjYR!;QOv`H8?0 zh#?A+qBU~O&UIhL3*2uk`c-t>YB8;xBQlwWy+R~<2^Of^rxF4Jb4V}$(g?X&c`57* zG|^JGIsw?Z>N*DC6|!2E5Gnz}`wAWe0=W=@_7Eq!r14}f@BTe?$jt_YTf4%I;og0} zHn52h=aP1L4ZsotcfI7OaUX+SeBXfv_`9QEvS97C2vMOE$ZQ`T{X#8p!v=zl1!)cjlf1pvdMWr;S0DQ>e|4Mf%@cWYb8)zDENJaN zWq&S3P!tS->*3?p(g^4G0 zX;lC^>U;qy)hG;Czk}AD{qEqIAJ|bL3%TxPxuEV3K1HkS5 z4Kg=kssZ;=SPOHQDPgXA2cTz!BlcoYi&uCYnX5RzS6v@&4hD}9eA>^-*n9>YYko3q zADBN40N2~D_~7Y{QSUJt4%_dbm35Gz2Sw=Z=&FO~YdrFpk5z{ml*8HS2CM<4rh@{Q zEA{H&sd)>u6Zx+ZU=Q4D=H>^VEHrFRFl;l9G=HnqZsppW9_O66OY4Nn=T{AI{5yW~ zLit*-?eK!y;`(ZWsp58Y=2ZbiBe~wOv$bYS6Z>oz%QqtSVBa-uY{2T`kLm9FuMh6S ziX(resQ2JBb`SIbg3-&Noq%W+E}&rkxDTYt?EaKDi0z5c$qEp_z5+((mj?(xdkoAA zCy?-^FAK0~2P@i($Gwaw-^R?a)BBab2aqTDNyY_)d~_PI+5|1%qKI{w3;j$1e!7)w z2-PrD+fZqW*t~sPwiT!Zt=-stxP9x&^V{&E3^y!~FtJ?#!Gx9JCrImtk!IJ0n|(UP z9@9!g(rFn`vrBEM2Tmine~(!#IC*r>V=O@&7NqZ!pg-yzFEg-J-SL(DC-xhUYjv_q zUw-5Tmpdbc|7WA3;81ky2NR9Rx2~ngc>ueYco6l(&)&=>sk|24R?`7NCR0wPGb+FQ zX*kPtKb=!q1k0KKj320s=rQ45g8wP4MFbcM`Z>>Z-%r3`b8@2l5s#IoH&9f}A$TS* zb@quGJjz?ZlKOl=g!&LuagGv%;cT=EB@KIS>Iekk8#mh(`0k3-mO}cB;Sl6<`*thO z)F2jU2gI04A@Zyyl5f>x@yxxs2}0NV$o(xi^I0^}KDdfwm~}_vX(7a63lliBem;`J zb<{RSzO4Yx@M#Exa(x40q9t(rSUj^XN+Zs6Y8E5(2XUfws~JCNA-5K?{t-q$(@5sq zmxz(GjYs~d(C!~JY@=@VEBI}SiOryX?M zHBIY1Fo(#sv`1`uGUuzL1P`z{ffD=}R$=7PA|dAXI@&-+Pp>_A9leIAk!|K_^mtGv zZ0X`^*ih*Guux@F4>!^@ds5D++)zK^SBg4){tR;MoVMrfp?zlX=L5RY?b{oDTljSsoj zPns)S^g6kc>Fh{lystAoL>zvDyPHK@MB}*m56i}_KjfXHWM36|hKgl+acn*M z-OZWP`?b(qVnJ`>+V#T*+l(uw&+a>7$B_w2vMgyQw(TpKMkSEhVfEtPpNy&67M3q7 zWI7opAk&F`Nh;c4_$%Pq!o04$omFXNcaV62RMV+4bUvJ_(v5Sv4~$_j_)|_qw-*3UW8GI1EKU(skOc8jog6AJI62 zR3~O9P+dU(mOe#%)A4V41MWMXCp%^%N-Hu@OSr7b9iSD4dr*lqP^(|^P~+oCmv8TG zU1d1^o8C~*IPE-}l7`NNz#t2qq1S5Os^EOsOFC9EFYcH4q40ADn^=CwiJ6wBcO4LP zq^Ds;tayeB^;tW=(fY^c6>G{yK_)~o@G?Zsr0Q5dt)*|W+pvF?v2^cP^`u$mv-K@T z{jjFYTL!HjY^@zALzDoU^Mlc!m#-vgTv-hdb$;J57%1p(es2d`$lg!wvNLab1#VD4|-iuhO3&zb;W6-ha{w@hWzI^EN#{O z2s-V`Eh;i?HF)8a_=ed;nXge3xeFZBLPICa?|2vsInk+Q=vd<(q`#Umzt5!EnYr=| z<_?PYeF!=UIzk!x$ zUBXYVkJ9$iXJIiBKbrTb#7;a>-s8K5#br&w{2cx0O6@6}CnZ0cpwHs)K0<)Wo!m{v zX7swnkx=gkOPy34P z$}dOpqgZo{nVD0b^?F-?SpBC*a(ZV(a%=;EI`=C1H?g+=Aa;uU!05%-k)GJ`Qt=WA zVJc;PO{sOpR=i%V1{=#Z12E^<1f@DJM(!7bof}fzx@MQ+EO|>%gwfQ-%v&_?x&xvs z9e)(n6+d(|vJ@{ClzJb}b-8s6T}*nO`GRppFMxF&wH1H8lQq5JCpdH}4PjS}0tSS0 zt%#Ms0$-^_iqtB{9{f&&xo)_rzLj&gS&n<*ETY^1h$V``J&!JX{GGx7-GZ~aR-ue9 zzs4vWrDR^JVUkZIZcfrtu?jg;Hbv5ZV_OTwWSzQIrpmb*8h0xGvRU=Rc3xQr;?!V) zLrsqh-sx;NR+zm&@4$eS|63I>a{eJ7qUOxEYT-cSz#zB ziTA!)Ue?o>88zy(N-U1lLw6`5?We;*b8=X#{G)vL$>u~In?qZaS*A;BOPAkhwvoaq z4PSh{E|y$rWYijZZe*tS@lRU<>WM|Cm!$kvh;Qs;A5t?(SNJ$&MODS zNFoPk*Z%*$|5JIgAG7es==^O!4Pfy$O%b<*`Zn!Ot}6^U>HGxr z=O;OI;wx|uI<|I)fqDBy9ec@f4*Rdi`-Nw2EEx7JBwXrotox?dR~fYB)v49_0K21* zO!^i0z~}nKvuafTyNUvID}4xD&tJCR$w_db55A<wxeYOcj_$B3Hx7q&=Kh4XHY=^--tGfjq3crE5nT`;hra!f@*)^f0T+$ zqVSg|$Ye-=WxZ{>a$UB)j>*d{2rb>6{HN@@Haq%Yq65^s-)p?`X4 z|6P73t?0Z3jO6}(qS4<^D>#fKf<1mPYG=ZdM5*emi|Eo0AC&~x>O0P-6gaVFy{Osk zl828>yRFdwy4f=x)*!nkv;Aw8mH7%!u~K0{-5{rZ9I)Va8u*MUu)kwgfX^sU6k63q zwQx`d3qU;Xq{`|(BGKyac4ECr6SIHo#xcUCk#7-u0LUmue4eDw(kR+{DY3z?YlRUK z;5MPDsQ#$YQ)(*^JpQLy|4wnY`I+{=50H8{`0x%D5YcsH6S%c=(7mmaCeNQd3xMB$ z!44}hh8})94!&TLt>C{EW$TdFfIx%$sKI$c$gKzHb|nPOQ9Uq!5#<;Im%v3;+zcQ3 zWII0-&xk{@(ZFX&#$Eq}k<oq7Pa5*WLkEK`ui$RO*Lb_p2aTl|25}rKv3QiYpBxJY_pF~YUnJoo%o&fMz#I#( zpD?59(L;=sjaPSq{Ftqf}Aj z{d`#-kg7wFv{od0FTBJ54{vWCPUYJE5AU>OiCAkP8DgzvnMF|{^E{7H2qA@3#z;uC zWS%9;kfB0CqRcXnnaUW-5Gj!%L#E$(xA*h?eRt1$9Pc0RalFUVAN$zblY6-C>pIWR z`59(`Q~kQB49Mv2NH8xDWv{P5L+1P23#iAlJmvaqZzJMhjI=1TsTq^WZZ7B7%uuj+ zl&RpIsn`imY0UrA_|8Y`>nT2(_#3r(UfO)>GnfAhdS zupy5Fdto#^h~x61rLo6=8q9;~ku#!|K+w#lL01a$XQs2}>FPRHd5t1TKzHUHuNiU&Jt}b$vu44YPKgbEa%yFi`$I*l!yk&Z$!r ze=pC^6nnvXF@X5@i^=|Y>O6W1F&^AdwA|kBzn=(~$+W*2DelqjNJn5Pb(mPac{xhUhyRu#eQmv;&j@t z&KSP?YoJD(atKl)2A-c2=fV=WL;)~kTgloOQhCVpLde_HQE-3nj>T0_;mLZ>%=<9INX8cT7m zqgK8AYf&-p<_U*RW((A*@Xhk5H;gTma3b%>!3WlB7|iweJ{2~ZY~K+W^!GMZr=-b2 z^FIPA#zPb?H6{w5(iPbO_Caj>V{U?6rr2?)=rNKF7?C&v4%xu$2j`{{gaF*uiiAKQ zG1ur$coD6LpBRFKt#Yp;9SYl4gmfYws}@5-s{I_$2(TGo6zsbF>!%wK@Sd?9w~t1G zAs&j^MLx5r@JRZuRFqLD)GoKB%Cg^U11yUke8fCQGIjl*_x~7)*es`~*C-)DkD-rR z@nvLGNI4(;&z^-jcCTwu>F+&jE4n{8j1pF5qi7tf+7(RjW@8%zxcS3w;MQ*Hg%GAf zsK;-BBJcqYM|6V@1<0hBb_4oRWlin&?*PFHLx&O^q!3=T#B z&Cbz?G@}owNrq^O8E>Y-wbt}KJ6i$xT(2)2Oo))lO)Ej@*iXCUBlF*6JKYLi(D-K) zU}TnwHfdo-w#dNBUrZEC%J_L^K|K>$$aA;`8_+RV zT;F7dO4tZsTob~nvKEH_;R2L?qIliR;a!Tb%M@QDa&AcxKPdL4`UQo6!AbLMDb zkP^Fu%<_B)1-Am_DY5Vp1dfrC%@d|F$dzP!Qr?HNXOuM;o*l>|fl1`J$=`B8gR3QEwBr zC@*CaJX5-tUb?$QrRAN`_otJbB)+LHh?pNy+C0;(28NZfb0cH318l~P$HG_xF?@8W zrJugV5ZHoD5?F%ajdt-TX31>;s{FmYboR-^>EeZ>Qj;73TkpXIVgJh^lVYadXs$c2 z!X}?ZmLca;Un3XV-@W0Pkqa}$b^(vpKDw3I2}Gu&+e0rr6$_NN#Iy`F3W(g%>CGv? z$%3B?P0y2Vx(z(xCpvTbV>TA3M%r8=1{O9`ugUL60H}Rlz78HwhP|iKC!!PiLe5z9rzX{qnI7drEp=5E^~mz zPX*(CU@4O(TC~d9u9en?_IpjTdV%}zho8sqZ3MVvoghRNbDmXkJr>uVv}kB0!Z3N! zrvC1M=O!E;z#=?liN-a)kx^1P#@`i$pj^H0jyv?)Mks+Nn^xHRk4B1iN8ZbR^a%2s z+N`z7x6#%k8`>1PADK6t>;F<>S8SK@LMqmqP$$~;i1#*N{^X;P*Dh1lK6USNZum=i0##o;p{Z zFU3*CQEkK8!)lJ1nKGF&3;40)ezs}HUjR4F}tZ z_H9(klN&x$ai&6KkkncojmUBH;9&d`MW!>SA1_llrhGL8DP+G%{{AQ)aX>eRjq&BUO>Ife_4CfBd4dAvdx-k| zYdx?QuW2?QY;Om&n1Elf*!x?I)(@q_se4$vH42H+} z^kK5(a_=1Y@4UdcyiWr5bqe;zl&|W>I^5%-4JrfmRJ)zAYF}?IDg#}`JePS0Hoq{% zCZLCIwB489RuXzapAj)|MD&aK0M2MoYx!^su@)6T0@D-P&!5>L=1uIDVd*2`KzD8( zng$`csR-TcvbK3=?yZk+K*LV5r@Uonc z`*+jj2j}JnIG}m()_U&G#6>~87V2{5#FHgVcew~XVH>eYG$&xD(y^b%p`Z|=5-U3l zVM!bK7m$=&e(*OAS_=NM_q9wERdKH2nn#bV9EznQG7{+;xw1%8Jh^Rv<&UTzXH1H| zFH*G<%P&A!R@V^)DHE3t!B}gi3FSC^`%44(>mL#s;Zs$U;BC0#5O@(>WJZu|)%CaKzYvf-pREnt^1f+K| z_Wo_mOP_>LlT}CR65d~i5hVR&)E@Z?Y_A$5_t?%+j%ooJpWhI{0dutHj0lgpeA zoQ*D=v%||D7w9a!`>Ur9ZkDK#FXqoX_eEjQd-h<(3AeL(_R~RAgv{ZEP@xC?Z9l3- z8`>qiG?`tv21YzgL0Y6O)hLduxpGcqsi#1GGrb#5I(u<8Ik@;71R=hz-N#l6V?EaN zyExHf#nLf_q})%yBo`oj_lZkkOxb?806ClQSJjFIDq3TZsFIv8&;~ z7)r9DOn&$>aNjm7I&Q5YtjQP}(zH%}fLG1VAy0yC0!tD7!)r_1Lw0<0{Uu1iaTf&} z2qa#C)?VfGvs#9H^h*-=uum+(S%u3Nj%RDN68HFrd?(`~9(q-N3ZUsYUpGexG6=T` zSvHI@Pu&>Pw>}^A&!_jHZ&++t%w<#zqDD6JyL%Mz1!%Hwed0iEwj0tmo2@xeJg$c( zt>qL&YjsqMCpxDD2$}5)v<7H?$|Q8omjjf9vIEor`Ll8p0<8@}l;?t2n8yUm?h>!2 zH<90fcKZpF4_EOo=p4jsiiPTMeObKic%4??kfNB8Fg{rWLPisrM6%;4V*`KS)7kR2 zt{nRnjqbv?_A;>aLUPwfLw=!F-qsuI2NpHPB^lE{sn#S%iSXg6uiACUHn7*>(&AF+ zb6W1OuPffR!4&zZT51;VV@|t7Sr>bZdm`q__ziA)-?$HP7;klTS3e#$&x|%oLkJZ( zu>_u%5569cY%8=KM3#vI=S7dQ-qfDdkZ-A2>!cyiz{rCXUMlhpI+o*SXS@{Uzsc&o zd3FxU`hLYnc?(LJNc!(Zdewkn>7>LJu1&o6ZGkt(^Edw?{>@m>BX z45^>rr9tsr;5|1Bg*8}T+>S5q9%`C%V| zblvBw;p2U!{E<^k=~LF^?i3mCS06ysJpvMB2Z^x4Es?rmHROLu7FI}UFi~y?c5SN` z>6uVnVKFXoXV?3@QekW9V)*g(3~VjoaDU#}8~8nOf!l^Z4)oz0m{d!TdT|?QC=LUI z=H4gJr(9{qcyz3Bjt?{5T2%Ev+#;ba8-FL-btNggaLSGG0b`#+6*?xEqML1hEs|uh z4R(76Pk!H3)zw0)+{*MJzab~Ds9LtdG&LSP*lRgwEVuAXBsNRz3+=MvQdSC_`(=50p}W`J`Y9rslLe9-FFv5S;twZ2BEp zJPw@Cx4%D<$#m2+FOY$;%Lw2VLZ?F)=(GRgLj!O_WAk7t3lj{@h!1CaEV)vt z4+$$&Q@N~OT|~QtVVZ_1lvCq%(PL>ZvAs@6O4gMO=anWqzLUq^-wQw1b3^?X)Jh%A z4a-}{ez)|j?-s)rFFbCpJ+#PFB;G?6Y+3iM>hUQ~ArQD<`;If4KhP*BsY;+}T@Lwe zc6rkH5=P5zWL-0@)tRQ(Gr#M=g;CyL?5f_#+btWTQrM*VO*vT~&2fy%mr)pS5$>`Z z1?Lp*iLY8fy1T8Tl^Cy$ZlLr(b^UAN*SqF6hh4}XJ=?Ud8QYP*R=CY#w4&yM^?%Nk|qJf5tEuWA=E zt$bV|5QXk!WG@HG(_#40V-med*8bF*FS&Vn{M}9Obg53xP;qD`RgPg z;>z!DkKSYKrilN5{$g|QD!K0#BVWIP(>+ z30aiC&$WBk1eK`0aU1_2!z&qp^5>!Jx(*PU>9bj+fdkcRzJY?w+)m$^AJR_7Ss%)h z`JUNv_Az2We{nMWH;ZUkEUD|ssy6a3Xt95f$NYtem?@ikDzD!cV_F2@*f0$|8-X|z z@1anrj=EugrTdXTQhmk*TbtTcfFYhcU}qJkk8f22+A#{y zhwc8>&_lM?00HKqo5|D+BhVBs%)>EKA`pHy>wAM6{Giq|{c0eL<@XuERDTrEnt34W z#6BARvgL|_8+fSz=l{i5wk1)b^@8WrsD{)OI{Qj^ms$E!TiIV;Nrv`@Ejw3-5Uqj= zFwZOclJMXlg{cbc^Ur?dy1>E~1w*9;uKl#XbCE#a}*l)rsvA_VDUFn3CQ4q4XNy z^MMLaCm<+F!B}do42UgdUb|6MVtZb{FyGzXmOJnyo{{AN?Y#_zi`jfixHcovlcA?b zN>ldoS(&}cPxtWm;4}ClbyeD;6%Cai^C^WYf6jWp`)j1;+o;`8|Jdr-Hw*9QB?G|Y zWnR7c(QaM3t75?N<95};=F6@*$oVM*Jfkj@S>#$COq9(|0uS(+QBEwdW?PZ?(h6|S zs5<447ljCk?V;?r^pLAxu@%?9uAe4#deo<@piMS zqLi&_P(_=!R^UW20f=A@_QzLHno6Im#aTx=V(AeEMIAA{3mu4f=!47Ejchken>e_F zGVfAY|A15FH6oUT(1^JVi%$|tSCk8Vz>8(XRAcaD`qkjbt(U1u?vK3|d$fJ_x9s5o9A z3>gkr-8A&W820I|G$&Z~s{{04HU1FX8-s3&06}$z^(qHEwuGxAr9D8ncLWwf%5rUb z+g9Q-RF6KEmlwG)tDA+XTrz5lGA~+(yoI`AQdwlgTD@{7r39%H7C%25Q^C7ayr}F6 zlx4ZjN3o$SKO>ta?|2A{@!!UwzbSEzUkbji@a1HNIXKi^1)}aMz&NUxIy1m!DBl)OxKv3LdaYG*qODLcodf<-pVdU5YW2J5x zgvTtel58u4(pB!yn^rK967GiJ$DRchJ{jo$eS+afhk@-R67>0&-qktg|16Zbr=mY^ z27i|970a~a`KjwOCzfEvBBk^bPqCqiPY^HnNwIIRDpk^z7$*xI=B<4!R&yj*&RR z#kLT~>AMm`bKBoaLsw(}X0d%wUHy|J&hb$RQ6#G5nhM!4e?~9*L+q_PmC=w^w6eH& z53Y6z0W*WR94}V3=+Aw+&K@(>+L8N$PI1O10k;%s(k8R{kSgOy#vJT5qUH~SOSU>5 zMgLfrLtEF-f0OKWW86Lc(1)vGiG4PyM=Z{V_tcJ9tQCu26RQGBksH&_W|7U%s$%DJ zlrZZDZ(oM$?3n{EV(Cd!gG7;j?)&C8KF;-@{Xb;EL1GygPk+K(i|>#$nrahX?91!d zr)=hChf!2g6`A!&i>T%r(KWpn`S)T23HS`qzljsaHByzP9P=#%O-o#f55JnpEl z(++I9q547>aWMUPcP8K50Z=X^e(7zqssychyo3-7^9+|;FpmjQcw(jD^C5mlQ8n|7 zAxWV<{?4HfW7mE_k$=-f(s$m811v$3q=Ys${)#z?IlJ)y)sCTCy;Y9h^fiG`D04k+ zc#4gX0DDk)YSNTc&th5(s(oFoA5Fvv_|J`fS-n4(X8V&=?gVGqOvNbxQ0HI}v_!w3 z?2F~OyBt7o;)DNWHWKb*Rae_Wb-1ooJu7PSj%>@zMk-;&u0v_J`1ak-6txf6ve_N0 z^7dXI0ymK_k-^XM%iHAK@rtp0K3Lm14d3F5;}|?~?+r zpdU|H6<--DIte)eQ8u5p6Dt!+5An~(-Lq2 zFR#uGt@dh(c(t&}y;)QU?=F!qBq>X;`(3Jy)qmYWZ%nW{!>pl-PvHC!dxif&BrNSv zhL-tF1N|dx<08*8q$>4r`AB?4MYfvtVb+?`Nm*qH)`h+;S9)<$z8Y)IU&^Sds)tS9 zKfw}vI>XAgrn1RfD1+CR=+TSb=9!YpKG-=>%K1Xn-ssm8wEpz@eTH}{aZ&+8lTN8u zv|n7?bZ`iu?@_xc#yu%kv;r|Ng%yWPJ#}YlyJ!%o`Fxj%G}bMrB|k%I(J#C17H7X( z)(qdy(~}#j|JepNbltb?NVTFn;U@ynWKBG6?Gm_GFVRbqGm&^b4ojVEkLcH57yNcB zkfE7MGYmIwiux&*Y&^RCNu5bwcJ9+(wL=Q`PP^KwgvQ5&P48vr>;O;SskP~9y;ii`H*PD@s*JqYaE|_%s3aw3Febwr9AGVN@`#0Wd(zV}+F|HwE zcqw|u@?7KQ3r83l(GRw3}XZRM^&8m`p~L ze;q+5_}><&71gEUQ>o~qci=B~dGHF&C{OY0)=G^IVxJ}>#Ae4WC-O%1xfKq*ITAE_ zUf}eATYOu^{fe??*ZB)&;+`+Hcb@(1AnkGlo=~Dru#Pd3BS!0?io9R8X%y`yqZ1CW zom^ozfLx&xP?ijVh5Pq19*q&b^}i(f?y#So>S2YX6Dgr=zF$x)dH?J}=GK_j9IFlZ zNv~^Kq0~sOGcbPMC20m)uPB)b%*9UgQOqj9qwBqpR?=2QP4=CypV!;urpS@UC%AF8 zSLM7>bz}6mN0Cgvn!`tiZJB>7z}vbbMw0*^ErR=`xc6#suy%6BetVa_E(xGwfk33Z zMrT`#YAt(REyZi@@hPK&^k$c8MO{1a$K?Ft+=4a^gBi>!GU0{V;wpH(sd5{Sq-@EV z-E(Fd)p((l95nkis90M5-4P<5!i5km{4wf=p0H7Nbd02C8FA7z-Z1xFVVCdVHn*U* zj9P2CSV+=Yp&8i(Z-$q{l@YmiJWeC~zgpmgXuft{wxCRqzg2A-^FGZ+n)HdcRmNBz zN`1#nK6*(Z&<}m>lYth8opk{@@W67w8l*RCTMrPfYfvJVI0nZyZEft)pNJhp^IP-Q z924gU>^PZ=*@v{`y`+H=Fy(~p*Cx{#S;2gvHbGBwOb zo#(ha3I`?2heGQ+qhMI#ef{uMGhJ>@kWBusb{YTQH}m~OPt}%`Il4v8b`0EGm3QeSDU9aGoyf2)Ir#$BD5s8A7 zu#2-{L@}@l&OFg(@$&_3#yrYcFcF3Gou}b3ey)j9#*3h0H#V^~KhA+VgSlp$Inv9) z-$df-@NvC8Zoo=1fzk7Gm^6FM3V-lk=l%kv^47L&QOv}2xL9W)@b*6d&;RhR(yvF? zP<66v)@%1SnJ)SUrDh&=$SrWk2>tB%lH4428}&cmQ^?L9db>%aPXwGK%+b}iZjZCE z;b0JjLaAgJBfkw20rIE?BPm9Gb`#3S=eDh}XR3WRBn-~J4&jOZ;+FR1r=t&i>!7IFs0=J^fJ3?=ABUUJu)t^ z97STL1TD&o-=;_nG*-dleHZqTavK@TyXh>;dO?F`3jdd@o2%bV$GRGLbRO7d1(X3S zI|pe&YtrxGiIhO7_o19KEyi!Xk7f|dp0^t7>@rFviaVw5#zqe~0X?x^<28a8yx zu7BEFPiPfkZ1sQ3-WuTx%a$FnpE?6Vfib{6g z8eFKq83{XRb8F{E)Blu(HBV1Ss>WF*v2Q*y4VI6DvO@L#q=I`on#8gvWs~#)qoaoE zO_cZe7zMfx=C0*rV|9;DmQd6^X3oj%9s$J0D@x(LnXa%OB!o#R_6)h+(~0o#-<4!#0O|_JL_n5z_p2{@AI{_zxFA zYC)R$NGn%FHglF;5{#TGPG}?r`~b67qEcbFhg^nH zENI?6@4k%5kkWZ@+@&X8e>snJITtt?UH89Gk>A089cT&Cs3|?^fX=F1g>k%hLlaD7 ze6`J=f?~minYT{F!3uNybD?%5)seY1YZZyeVM^u8)f5_skN^*mR^ssGkw_p#~yk$bvPp~ zj5+28PR`+@4kkAN0e7m-=vZoE4^QPCIK}ID3#efmX5^#jsph0CyXVza%OCtG_yX=J zq3r&hgnL#SFw}%o+b5D7&!ssL9Uf$*A#rM(j_qVeeUC#WCqq%hCod3&+<3u8ZhwSC zU)@}tOL|@(>xd<^YH7%7k32$HQ#6T{GgSB9xai@C9J7Ta5neBGY6dybVd$uM#xBHA zBjvI|zjxjY-$tjOiCE}A&2FAsqUN@Gq4wj^UUQW<9f1;cFEdKExi`CnOmMPbVOp?3 zMf% zhwFk!u?ubo^27XgH$SFk$=Q>mEZp9nurvwUh;9#+#GO>l7yi{8(F1K7XN__Qj%97h zU$ECD;I_s!A?k#j-7iRM^0mNH5NVfrezzv}fDk=k4wD3|aV^OM&TF*q^mfErH&_st zRvb$W;P#DTJ<$d=`salLWc+IU-0XS*djb@v;>wz=fxhUUs@<>&->ty69trt|I~a2n z+CL94zVhBf7>T>s7Vol$;VFOPO$-k|X{Eq#yM16CD*TO24^Z$)i&6~mQr@^BR|EdN z#_qf!bpNvx_AGY3&iT)N;6!yIWFPDY$`8|Xg5`D54G(I_(ZaGIZHJ(-_IVOxzv zIVXK|uqs-zua&F5|MbsF#(1xwf51BhuamAXBTWFD61#cH)vbSjTM1N5ZMv5aJ1F7L z)W)K=g8fKayirUc3mZR_xO)Lc@>bDHegG%qjxh5xL2|>BbR<0W97VyQNQDJ4p6k{zJl`~4?hZi zEOCtMA*wxK^ANHiYaeIag9d>VATM3b2@Jn?Ef$C*@^gDET0t#4yu%vlRK9(9T@dt` zf!lu>=duWqKraB9yHqJYb3I^1t3`TYxpwo`boHk<(vcDq!IgBGn-f5nb>sB#6FLX| z?A7YjObHnj!Ts+BCGSZ-f?cAUPvu*v7lsR3UKgeqX9!-sbnl_8yB0KaU8cenfj?-2ktpYUsSdbe+|c~Iwrun zJw6gm2~xVmXb7iyt(Ik99$oiLvE+IIFBhg=qS`|xpk*sb3a^)aw{$%+5q zsJ_^K5X^bxo4QbQ`*Liuc_L}z0wlmZAnfZQo#!d(fw6Twm1`W7@-u`Tkbmb?XlG#x2nMZSSR?;0nBq{;c|jG;@$( zJ{3+v(ZEtkbKGTPIojIRRa*n%1e zvWp;BtMpsUnhm-2(IQ8O2(wq$E*zBG_a9!K)%p7cg$y5-Q41laJ(z6z-3=w#&n9U+ z8CBmYgAH^?rk7U5N`zvl%Jeg7NN)T*Q>IrAZt*xE&KIf$CctxNGQ4YATlTmwnzgx4{ybNcQ<><<(y1(%GULrPSm;jhfW zE(qV15klOpSGs{|@ni_>`J}Z|GUUMNX$`fL^n0NeGRAZE?w_Y~xJZnaMXhY}`L3D? zZgc)!!#flx13Emb)*f!Z|`&B z6z&L&k^SBUkbVLDyoOqr5Ogs)3F>D!;b#Z*nHbY!YFedQCCDLm2Zgw3{`$e%d0+{_ zNZvK-&J!3@&OnH4ffegiQHFp-9bdkFg8_8{zsHRWiTStG!}g?JW7>m7-@9GS85nvx zFb016@LI*RVGTyzgQqECY390;;(0C3s#fOOsNw}6)PaW6%LmdFnJ#i z#&Q+CeU`Kk)^pp782xcZRxj?o4)l-?zdKx;hb1lAe>W^o4>0%};W58I8zZYs$x!*@ z@Vl=IE8`o{@SFRPN?DStRm}^c*m%eXTX%UOrB+hB^?8ypO(^|g_ilwV+4=;eR~db5 z3Y`kM8kkm>XtOUlaKXRMvAm%SEr1D=Zh-% z0%)tJ??09PUnfiXt8{?=S3MBWAspBb%ZgaCyX5kJnOH|Tyk zlmRYg@xc2Pc!kRU`w#v;a^<*0VP=12T(onX`Y%=~1C;wbgNo%On5{uQ_J9BU|MM5$ zb{4z2@|*+cjOsoDLu7Cm}Ym;=pHjx$NxcfuR_*Pm!zxc(>at~oyE*OS+M8UIo7 z2%a9UfB7$+*Z=p*|Go?P{R{wi);)Zh^OSQBwfOAo8M7BjomIO2|LY!q|6~^P9_obI zl89|nft{M95J+Uo~%+nZ7j*|X;OLz)?E%<=juBGs#Mxsa~S(EvW zZ%?hA+WW5?hvyJ&iQN0ZEyogmUHLklP^U*v(s(IOt$EcwdHAoF3@;piks21o(DQc< z?_%Un(TMMEFZg|T^4olP*yl&>Z0S#js%dxGHHWH2v&w%z4f$alJhWHm3Id-J{kINY z13DNzl3q9m0Mu)Q)1P0nbF*UnE?XXm&Rpt)j(YW*+6^I7rXnlO0wIl&cE9Ch#GQfkzKV$ZfC0A&GhYz*vW>!fAxE9lVf-!Kic&s=$*Cb%6d1 zKRDqy2LTwxh#U@yO91NtoBYA=3pNcyaHN^QRA$Y^MYC{(vueFM6}Ft}X9f#@K5{(8 zCKtZe)sMVVjwWFto0<*v8UiX!AvypK9~%QZxI?FNfID1;fvX3S;s{Y1dB7iA1*`I5 z(9$3?O=MD60Ug43Fexem*t(xbH~9;34CMbK7D>?NfbwGqvB0pgiQf9Ec&-?@U-l`|%u*^;@4)DN7)e5chfo#e2Ogd*LM;D` zYnf_MtGjxMM{6|`gd8C8uiZp!`=a>#`<&C?;VfAGhJ-AqEx;i;2O@`;Fe&+f_%#68 z@K%{7ezwEOwLOtIxTbmyh3ns?HL4EXV zDLn6&B``BYrm)fv#GU5rgcPq}aGfJaEzT?kIDi8(LaydEnI7-H>l_9nEqpG`e?1Wb zvM<=bJZ_8)Rw*RqvD}{ohW~TOtQ5AIxTLI1s=Nu{oJYs8=0mz~L8)uHyR-crMlY}6 zOBezV)99<}>tGQhT`&b4=C9TtAnl?U91=f(3hO)K=umrysv^3L6Q$VDZCQ152=b#p zPw*VrgJu34%dI6H1eOLJG_Se0ak07|UR((BJ7SjK+QJ~}wKV11WKngqBrL9D53j)0 z#!#ky2xC20?w->JC;~Edpy2m|7Nm?eeF<0x@UcBo(+{`^2b#%$-600vIWPiGUB9vr(I%Y}}tx-G!AePEU!(8z?d}j~Q@}w!RC>Kc;%HvE&FC`oyQoeShhG7=?^U84ItZQ6apa}`q0-~c zQJf2s!Y?mF;K#6?xv~lS!_rfC0%S|oS)yF9mrcLP?JUyUDF#a&DOIIwuS^~uT!{H+ zPW{Ihoudp}t-$w$=?AOGJxn<&(~{^fW~xSvumqQyKxu%m$M=a@&X}PZkU=&eDGnl{ zO1CuF@3-F<@nq(r;GIBhrSonqP6*GboD#w=LsD+_fF=F`?09h;6p@Z`l~J%6yac*( z^Ruwm;KD)kGumnCKO=K#G3Aj4P$w;e15<*xZE|vFr zbd(fVr(LiFuu3rZhD7knX!-+dJi5K=LEMr04euVYN^VHDW&-|lEb0-ey}@}P`;QwX zM)Sdf{C%v;bD(W`NAQfQcb)9!cR<>=SQ&|S3r=9nC-`wo9>HSNBH3r@G!=_ngo#ry z=5v`>&x)q=1AL{s`5Tz1t`b^&%Nz%UJr%0~@Vs@njwDII;=K+N7>?a@!KhNR@rv*? z`hu~RJ;J6&T*g&}wNX0#{`Ijn)VohU>3yPjYyN_bnO|3X$@$W?o~Fjp4Jg$IS7zTm zcOI|1%Wx0lUd@3{?}#Z}MEuJI02WW?lZ6o*eb7nrITGk14J`iqaL2-8Rebn3Csf{} z?m(x~NHC%T3c5IbHw-Jzl|H7Rl$Uk;E%?012%WM=N0RTj>A`EcI#%iR3Zj|{wo)X+ z+4jU8%hA_`Ib)}G_1$x^s$&}FNwC+r4RC>)@YeFzky;<;qt$@+SdO#riOC%aPBYiz zcFDc}4$^53pI5{C5HpC!d(TcEylP&pnil-1_z}gaiHmrX1ULYf&+pqfkt3lS`L@OU z!KsK1HCT8%FZ$L0>pjuJsm@a`Y)?mwR-&**i<2$6u7L+k@8P=&^~cJ5H$CX9BDZeh zg>g33HLABXf7Kof2@~aw*yv8wD^`^_HNkH)ju-&xwjr5}nPLgApb@P}>0ZcVb-SS5 zpP3**VV%6$@Ya$m?0*+`zyEnE0kHlN+`FH|XnBfRh^{E(b8#ZFPrS-flu*ntyNOY6 zc1z=sdS?7zrJ*}gb%UNY5S{hRS?OB4Q}squ=)ogj{jyKxC&;3De~vuuqH}!w=gk(1 z!ya-9ON>@T3Z3pt4!P-26wx1ed#)(<^skXuNDc~^)!8FnGm%c)@Ke6JaDKj0*k=EIyb2FOpf~J|3j(ffs|^a368Zn+V~pEcBE{flU=vkoPC;B*`fnS zGEx|Lz{k&O!_(*lr_MDb!4@f1a?d=!40OCAWWYX&_~IFd}w5yJmQkr8V$Fo0^sp}ljXp-$pF89qL{3^mLuo4s2oDhIJF0gQI<+h~FhP}zvq-k*v z93^U{U(NpANWl;ud3t|OGKz@NDb9CppM`uWPZ{9njc>Xy!l7-FWB8c1rwB+MNTFH* zNnJ>E`AZs+%5IAg#8@6e!b)$1oL+=Q_ZnDpgA97o<8_2O?u=0+4?Ex!;tGe9fmeY< zb|ynPgckUAMeue`dd!(P4i=^(N*g36(UTw9q#$!a5Yd{>Oeufyfj3~j{-MP2eit=1 z-Vq~-)x*kdctbu5OMqa;1vv0lU5$vxaStL|SjpK@oN~8BnrC3Md=7q2)vrJs_Z~vN zY+w_tI07>T$|0!BOrT=1D6Rx1Xr*6nJaVwj_&bO2(elU{H)$EqQBk1Wb zIPcWV?iNlH6C51ufpGeyXj{)|*h@$XU=QwXCQ?`~PBdCLOT&RHhH3{zt^`vWyu`auR43!^7evG$EJ$@_9QL{6Ut&{*523y87%Xr6=znIX7*? z-Kn|rxAE)E-Sj(g$E6R-UhW&J6V#owi~vsKPIHoz=+HtIOx_P*NA~)Y`fAqn65o z@jF!h=Y#k{2SeE6jxMwuowqVijwDCFLztFSipKemoBcC>pCf`48 zknF-0Sci-fA-xY<^1zd1n4GwBCyWt`yU)9gw<3m%dN!EUy>T(c2}D}8u9F*KP9l)W zD*0_@7x1jLLAYtob3cXtY}Z@W;V2iK51l4alwpMKXi+cF)xE}Yh`k0s!G>iGoN$Ew z2CP2s9ZgrWRLBQ8={lv}<)|U7mg^Jew1gPoVq+D>OOLu}Otg`jNdX+=;|S*kC?Xy8 zFYgG9qvL}kKxXwxe^5%@RP{hcuZ+gHH+%>@M_V2Gz(~z4;4>xA$hc zmCZ@V*?aD3j!Fo&CWS1=T&Fay#Y(o;YuwVF4m#9c6^>}3~*mpZ;=vqi(3vsJDnarHZbrE|NZSi@&d`)j^|0B7;liGDh10+NEVj>gP=-Lh55n^rxsi zxdOQIn;yA{1iJIxsF%pQKl1RnV%1(dUSIqpTm}c(Nv)I3fH9p(oL|?FmC_$$cIU2l zY`2%{}U{9-fPAnr!n*Quhf&Y5Dn(%gu=EJACVU|lKjC`_D zwh}Zg%3=~Wm$(o=TH*O&_4@}IA?c-W=C|vk3%`$?%ys0_=Rg7{p-!K_E>(b_jHya) zei4gFY`*&b()LK4iop@~^w=E}1{H5Kq08|?^`4-)X{1sE4oKpzL70gD(N13() z0XunA9SL?1;Ff5iCbZ@2-j3bAGm=E=m1uuPk`>0#DCqqRhji;}Dc><-AairfU1JhkL@Zw+l^#3>PYRhSWzg&si+0|*H z&`7WpfH|7^vC9|#Ttoi@t`jJ%_lq-*QRm(S6OY++1GIq8Y1$b?_4v$2@?IU}V^0}Z zgU4cSNWXIFf4BhBQGgow-DFxs+@=FPfj{$Qm%aiPVViKxmMa1@RsFhQ>kV_0?{JJ3 zowf8*>8q{ZmzGm=w97a7Y3}@gKVwCt*hB??RYZZiYGU16`26N2IkEJJEp&H+JRupe zo>r*_yODM{tv>lq-n}xApHc-zlqWBB9I5~b!m>1v4PhHm_OAkm_Z+wzUxg~~OqP0# z^cu_eCa}C7gvS2z48-fmiiib)e(w#KO$yeE8hzdLI5=GvwQST^_2rg@8o!o*&Tz0GRNZ_~Acv6kj+O5dM%ibmDVh@9+{3oni2Cy<{|| zYGhvF@!SI7nAL72`XL1Ju_$+UIm@;7>F5^VSl@y7aU7+eUju3u^F-ysO0WjFGSw2( zREZcnJ_8HIt3yTHN`+Zgok%?h2jWX4FC8*NE}wAhUy((0k%H%|D}Ty2V~IZ?=&|qz9w0`^gS~;eq$Z za5WRJtV~>bOf@fngcDrp^GPY0BOlAJJ8lA($+znC6YUpJuZ}{4IN_KJMnGLj)rjNq z!Y=qdyDx$#&tqY8;=V43-fBq$n;$J^S8H-&&Otfo*Cw0K$o$y@f?Yne(cu*tk|FX3 zk+KX+#}!!pCMOv4+tRirXcF6lb8&-ui=#8b4QEHN`3z#yD+o8uMtMcZAcNc$zlmAL z&;la*ZC?4;VW22g9D*~~1_{_5g+vHpZG>Fp0qnHFO0Q*e_Q&>gb=HUi;!{IJs|-4x z?8U`SY$6uMYT*XBw^53S9daIc5(^7m>O8^nh_-(d{OL+1T7B}N3`=wTy9`qt@Olob zfMYn)(GBiW_{>D!loRXtm%J0M9H&Yb3Gmis&HJAH`8|;YkxHdp?7@AsG6ADgsvx11 z*FGW)-*HvlJr_nO!QVHEldB(nq0?1HX(?B}IS`^1`=3)k(66}AdA@I5G|_>;Ip7NI-x`xo-B9` z#?b_TfD-vGzk2^&GeR0m58Q!UozM9~d88v!@v<0^&bV1FAF%H^>net?(fnh}Ui z{EVQaPJ5yHuceLb)3(U!PV!K4gVl`*<{60&i^2SE&<@9gEM^5W2k5aW1nP<1occCp zlNHsz!h3-&I!`Fu3T?bDp?tqPN+SCjz-^N>>;RKm{zS#0bZ@w3)TktrHum`7OhgD`9`97M{YvT(mf7V9?$Q`I%`%JF0Z%4UW&d(?JKu}6<=~BzS+mrf%OL5>6`B-qDuU8aI>b#lhC;n?L19&AEpq4hzBbm5b4Z&LftQY z{i`_$ddhWYiX7cZ%M=iB7m3mI|(N2NCwkrx>UmnlsxMOKf;b>rfel> zsGrbnge_L6oJ8>Q=SdAEFF6l;AIMj;q)aL4MRKQ^1@9b0KPEqzq&txO7#LkC$8)2_4icY)&Nr;N+_Pdi zU;WkMznWH$xeAa{Pe+_(HDHhhKXfF#5+jZw zV2adKw33fyDKpkEhZsrY3RDYWA!7Kxh~z|{!|Ad5uI#B2>Ms7%C0N56K+(>NxV7dQ z9H@e^&5qg;KQ!58e%bB`tID5OqKv17y|VsMwyZKf4V@L{{1Vi|^o?{&nwOfi8W&)9 zD%TQqwqN}=Ad=>xP(LN^?=HEv@z!_}_%HtgDdmfhtu;?7(fK|WmmL^fhYWn9L$0Cg1 zsbL6nLKSgGqsK47UcL$=6*B;Ast)M}?q`~VERSW)v6#LW3uQAL1-(@ubdds0*-~Yk z(fBQ>G_HUNyJeZwGwFnwy>lWn7oESubDD#(;i|w_qfo{;H(#*j&!dT5%~^BZ^1_?U`cZ#UQ30LS$VF) z<9pF}Is?Skq6Cn7-Vfgp1A4@-v}N7N%tw^DX9T}M`l`pGfI2|pD=(dguZ@7 zNLYLK(H4Sl{4h`lFS4Dy;_Od1Fa;>%ML;9N!UAP(t~gsGBGmp;mkXY3t6%%t5gTfx zhFL>&J7&-nZhxdXC{zfX-LBok5?HXkh#S|fM4%?%QoHg_g4_D%e2pfkq~o_IId=<@ zu?)=@ZE);{sgGnD=e!Pk3Ur?CFNy(6Tm_^I(8gt-)R_5B*c$r}$ATe~$61oDCRw#V zG|UyTGloI%xinedJdpMwL%Cnq?b@$=fy6^%E2qVCJ%A zSv>|27aOow!;(sAsZ*wR(E-TF;RJ-UQ#OGLlr>`tpl~Zh-EbI+j-3)@a@uxZWMKjd z!Te^Z`UV?ok)9JtDrd&J97m|M!WDC1sgjq30FlD969LNZkB`kD<7Ajo&Vkqd3ph_2 zRZMpxLH9-790=()hRo)(evpNLjMBahmpr3+iY@@J@1kb~)x)RUzgWTHJEB#n%y%); zzh2a^P&p9+6;bWd$wNo40hqW?n#5jLFjtV`}j{QH+(ASU}$VZ2pRC4C}n9;0k;wg3EB zCluh8q_cDNu)z%e_H_po**a@GA_7jt=ql$cCDT@~!nbD{g5w^6kzk16F}KMR=J)&$ zsduWG$Dqm3{J#W(fmf;;dpIIxrNu;33^0!Bvzf%T6lmus&hBQ$!cr#;NR!T?eV zgI`?Q1zQ)kUp!B3oqdlN#{_V1tKGfHWn$P6r0|HIgK$79{UZ|91-P`a!nBYUrm%p|+4gp$n6D0_yCi0mjTGD_i6B4i6mR>+7% zHX*B$t>=9EeedrtdOgqm{BifXdv$Sr=KFn|$9WvbISO@F-*Z)oC7|ZZoqzR}xKya_ zA7*J$`+h3c?>pdvr5Jlfous<~=5d#fg$9+k^o+)(A26P{PXAEUFp=t`nap=R7SCj- zI$GKv$`)+8$1}*(K$ACDa@+L6{4ZVJzxpHJK=sqPf(xM9;-1^|pBspIs8c+BSfcG1 zQXU(mPHCkP^$r;kUvM5^pREI=)|%~0DIZBmKEWQy9>_*^+VDPf=p3&SHX?=}7RBe# zv`==RI7vZpryO-V5pY`F0EyN@o|C6BjHwdv9BxUE(Hg1=t`H&{W}|LcNmL$6f+e@N zC(pdU;#TG*q9r#l{mV_FW zgi3CXN0oU?-`sJOVv%S^rhmb+H|!AaEkNQ9p`#|e#^uFj%q4rYqhr3I%n=mS4t#D7 z=t-<)_pC6jhzHx_)LW&d`DifF62n*;xf}HNMpH*yVGhf4VB@`mQ*;XH(tg5plKJx3 z&?KtCv?0bPOgI-s9D8|U1687zUPEZF#&k#oqM*bGc5aYJ~u> z<`=Z!gvk#f3zYr)+`~B<<2NK4J;nQ7<2*FDB;~Eou*xURRf|VcS`&HE{B#?b)%U^@9{)~(4ik{sMuI$)Jw`#i82|3ZJCoT;gLZ+C3n*BqckVQSjfi>tM zBv={~hQ!R&pB^2(cBM1(cI1&0U%=pmmvQ(Ar!#3D0dq_b3K}O}%~9KPE9ppDf1W7* znNHR^JVq@q8>Kdow}&_4JVau}5AkJ;kRQ|{`b9#`Gip-~jfzGDV@y*5%XX zv5$K_q5tRezL*($O4ev2i3C{(Xu(!x@;!lRt2jb3>;vP(jhDw^e`$I7x_;&D0~3k` z7w9;Fw?WLh3&)!XUCtDr@28aAew6b`WQ;Ilbkec6g)(OT1IpGagZd#EZK`W5YnJg- z59#+u!do`uPO~3ix|H&Ag3yd`q*M-DUOr~{=-xKslgyVVQ1 z5YV8?L;KdA{fCk6y%2RVvn>ul2qH=x2GPN5VC8IhqWU(RDCpShAnKGw-I;IRQ93A4EAlDBn0o z6(2CNc?B%_y2tul{_wbM4dDro^*)^-a1}HUg;49QCEZtm*tc&`;Ma2*1oec`xdA?D zu>_vwBREM0;!KTi?^cOIeyNLjmx5cptNaN*qQNTn+mF<+&b*~DDS!kBE7t|sVM{(! zw}^&e-2n4?u?Rt6ahp;Xi&9t*8e0OtFaM%_3A=fvp&#_Xd*PW(9{Q55Rclb$B5Mc( zUcQL)_3W^V$) zpi8;<+kc3+%wHP%67pym&!r#>R?$t+J}yn8VL_J;+BYKrtR$-_gZE?QKy3#Bxt5d@ z1HpyR`1I1391*55j0f$NYg)t^^YQ34XUIaleq_YOMCb(J`}$nRaYbs^Ro|gt8pB=t z2+M8uatJFX=H25Q9*1a;4dc4UHBv5z0H1=}?6RO4SsEF+*r2dwBNb9Y&H&ztd=M?- zEOUtYEQ>p!|ISkPnJG=Z+OZJEYxR=z1{V4feGu$8;~i8c>MT=hr)cr(I{?syjgt~% zbE!NsLrb9#<`tUv%a^J|9v-9aAom8iKVrQ{g*%YVyYBE%bZTU3Q;A&FxE%_g%pf&= zU30}*|K=$j-<>O)+;=36UH49>4U^jwpiihK|BSpG*Y8-*+(=#*ekNF===#RB1B*)E zK-`o}8i$Y~n5Ewvxk$|6s&P}e1;-x?Qe>)0-l6t=S`xzcaPN!76M&Npq>*Pdch+K} zA5K-YQ2NR;N)MzS6P{V0#Zj0HbLbH_3zy3{BfWp9Q}w!VNDw7HN@x}K7l{*f7MmBu zB$$ea-7S(MPA!WEGDLkqMNPN=mJxpTy2XjWx((o1odd|vvl(I=Dq$A;BQjb^Mmyzs z((js@P|Bj*{Y>EZR zBs~ZX!A1lLvL+El#!SiO)*e3;8XJ%uT^@q91Se)BkNzH)st*mv0~{MYZ@;iK-tEg` z&r(S-n{3p?rw=8}*egi8qtS9Y%0jZoF4TwrrI!4o-QuHQt+~&PQK1ueE=MLoiST(f z1yzd|gF(`w-wW$29j~znEg=VjO-7Zv@Ogf@~d?-8G<6reSQq@o&#Uoz622sjR1#|BkvU8eq!^bU!_x{fG_#Q~whZ>PF5oR+ zu-7n>Nd|F+4Kc}|9o@ss>v)VpK%+&eRxPZb$%-gSmQb3<`-M^2$NsI+C=>pQxVP0R zCxTo?=4;s7-aAm>6LZO(Qjc$RO`OfPLyz+EWnn@wI-`;ZO z(Z3FQ}liTaYmy_*i%%gxzck8+t!GK_!ajLdnD7 z<5ZG0d0~fck;eAL-k+%IgW+)+G#4ayH^A&S!qeua^qG334OAcv{_-@dLN&I%yx3UktsQX-*ZQo%G zXN-j!;O_389t`FN>(hSCI9wD+vH$x z{Q}xb)(n8Y?Ylp(u+Ims>hTONqT7MpBGD+>pT@!|wq0M4>=V;oPUdl{j$7l)>48#j zUB2!PNT};x7GG0-^MqE{>|M#J9PM9HTvuwvid`Gx4(obF58az{$^QRYtA&E-YQo8z zK-fJwTar5SrQ$PbBhG+f#m)F#o=T{f{o#>8EE}Xn>D)bhGMs0)m;ec z66?+#&LSt0GO5~5az%1{8@K3#_=Mtnbdkh%a$L1}r{741v7*S1I472+oAWMx(UOprcD;rciF*Cvm;{Si@blY1hR00heY(ES#aW*EP=jf(3j=X zr+j}OD{2@I#FuN4DRgW`Y8HSk`Mz)wlo__aL!TC(bV?mo-cLeH?yRxwYGr*n^M;D+ z&9XaZHk--XJtGs2Y&=~pX+5BPSYapBCZT}uBf2bJ7?06n>I$Z-6|Gg3Ph$NcsccXG z)&pr0SIBj;hKkvKKB$p3JKxZ z0324en3&*Esj4JcEx3y;p<1JE|vL->V~7Ypage`>RDP#3j2&j!Wi%i^Ptfc`+zfHeuhU?97$ zN9DA>SNb$|7)=g5uEj}R!%cYS$n(^cwRO|XqdONcrn|^Zgj~-Z$#N%Y?0a8bwL|?@ z==2^cIn>~WQsX~^}QFQXo|Jm_(uzX`2<$7pLHNx%qatcU`FH=UjM)$p(;3B3se&W5Npts9HXL>a?RZT z2iyk_bXO&e3h;)8?>7{Vfg++Ht6!=NhBE%*GY7ke8Wrx0OhaX!V+2<2U%Y(gnoQOAGjXQQDl z^ibhG%ww!c6=_Wn>x0-+#__p!djXW?!@5Pbe}eeLR- zQ?!m|`;jCS1O&ZMV3ue^*LtO{FM)GhfcVFKuvg8P7atoe<26`_*}(4JaE~*z>RAw+;1521TRs^nVT^^ z(C@YzsH_ON!20byw6cSbCWT6S%oZSVV6bYfwBm_XrDAzS#p0T*`Ut?;Audf62n8Jb&NoJGdR~XpM&6LG&X<%>}3M4n6IdH0U0M~@bc0`@V?*X0Vflwp{Z6p(USgi613@Z^Sw|3l z>8L|(6(WBpj?f;|Byy>hQ&jp0qC-}qn&!PQw;(wmrD&*Pf1@H2&6Z3d#f%_L22{hh zq8Do^wTe?|gM#wd={}BC}*rd+u zme5V1Tco#NbYR()%imOl3Q2j+o6<El`k3okcCoY_ zO#u1uTt0W`jbg>iq3+n!Phve+zLb9=Qn|-+n#Hw-yrp?}f(_IK`@}8AV;tpk?~~g3 zi_@Ehv&Q~r&0(o}dDCY92g(nJ%xJamEjSe;lg7EMv+NVC%c6Zx(8xmRbL1{VgrtPF zAmn5uv<=cAj$iY$atq$MR)@;Xg1)o)xJW-UhL{znk*g>tU(om;@qoLNB+Hkfd#pZE zxLqOxDqrW(R9nqbxn_lXZ)ii+guYIo5*rAWHpf-w&<_|+_FyY6gBwlcd0QhEx;a?J zVD49W0#}2t#4e}9&|GZA_24?t=mMHH$0PAPdOV+3hTAL{`&tX<2P=^?rCWXg`vNF# zyG!<{S=7oStHHKr2Dt$`IbVK&jjXyeiup@=}tXzLRKmth`VV+eoGYS2_iVcjcp<_Kz#(DyG)L%(}HX zZ|W=b322&9--61Kpm5elusTIBdJYCK#;T{$^m(He7tIedfzdmPgAuOBVh>POljp_t z#a?)yut~i4-G@^OK?)N4YxSHpSuTz1=CZBRGUEh<4jdLxsc9yk#u0F<7C@T2#EG}tBs52~)K^=qwcfgQy%{Iwp5 zZoJqt))bitwiuoX+!FS8Bp(%}x(L>iSldwhUMq{nRN388Z(m58YNNFpFp)jOdnJZ z>u;T$D*J#{!HP3OAVaXTW5_T@k$%iBLT&5{-c=lqLK=653K!8sszj*$t68zNqdHto9QXYPW;+E!OOf11Xxo&-C?hCOq8xp zMvYe+Htzs^&h4~SD3KONAIqTW+Vd7N27@pAUs{I$PQfUyrwx1O{+2jOeo~TGR9_f$ z5b`yY^BQsrJN+1PhjGBk>`8paevlr)8ZV=<+5R%4QC7Zka3Xk3?FnIHo*Y$D} zN|kg|`lvX6_6m#U@Il2+7}3%sT*}sbnEYV1NQTRZRghlIluIv8g52=&tzgL+*6gE0 zq#0F`r~RtC9pgbH&5@z-&4uCa>xQ^ntjEeKlik+}{>F^s= z1?7h*B*kvnerdj6o<_yl7)dJnsry0Ky6dct+k~jYUqGG?J$xfi%M_WIk${4*Y>$Qz z5>Pn!-=x{OA^LE@Ii>{INsxyIBh&P#0b6+@eLN7xkwlMYHI8B?eP(s8WQ!W@{1$95 zpwlx#cuH~@sCElypLs?j5A9ptQT6qwyB7?^y2`mz^MUb2h-m}xg*!}&{QUL9rW(@UdYg708eGB;T0bwgME@<{1O^uEnK-eFgNC6zEvbO_gS_k253v3 zxB?74(j}r<@%iNf&b}v4Ci;9ix4#I^L}ICzYUjD)0%}p;M&cI;Nt`v106YMV`I(j7 zQlwTQr^OCYLoPhV7mpSo!tlGH7}JUAP1;pdTQYLmAmG_XTh$mV)Ql9h#D5gHR=j zC!X-D+>+-4{&=160;Uo)Zpi@00X|=8yu-cu`&1mq1tcSN)fWIHyQZQq1NM6(^=~jT z&&aWw=p(>l8s;o#4L@Yekv@iGmL8{~plq;ezBe??-qHY!nH4r3g*?GzMjJtuG0@P? zz<`N75J!|w|9F<)@)A-2*LnjF(o$$rFCaXP%1X$p_|@jzmzZze>ONtWTUo#6hKoZ| zw9!wb@BeCUeZK+!vYz_vs3H>^CJ&27UcW>IU$DHQJfUV%IQDkX1y&Z&b7vq$d@sQ9 z=RPanU%Ag1q<8_sn*qUa<1w~%)b&B5-QJ$)1xe{Q0JGvj&2TiO9TeScnvDogzg1GK z1tsn0qwnZPG!d>uu4yBg{q*t8&%v_u3#Qyy79TnPOy3O2FW~0&g8Tz_*WRL11LT_; zHLpRzXo>vaNU|$nFkHFsV@Aw;44G|xKUj5WGfV%n>ad|@u0dS2gEBxBS#@Aj_+n{~ zW-ylFZs4qU3KzI~ke7LNu<#9;baQ_!oZSzS{tIKds1! zYT0Y>kz#IhA0(lTG~tYPI4HXekG9xAVpc4sl@0js9{=U4B8 z+mQC%Q4#ek`r|;0@$-y*o#H)1fQn1OF`?mc^R9-`0j81;Uu3+OheDPp_?%Qp^AZH1Z(7MAlD`9Hs`5aHWjN}S^6~F2IS`bK6A_JuPl!R`|u-AKadSzT%?KU0oW^^u#UE_)(-|_ev+Vkjv^(>^m@Mcx z*>hABb;lKQ)DDAM?LtFYLn*m7JoHN05Ug2OAPj-80*$GDn|1dOKNECJxmkX7NlO<0A&6WT)P9}ruu?>M`F^KHQO9j zho6pCZivZOUzQMZX+IQ=bL>k59zE(>6NoY{fpE($E!M3~Jn92E;yFF4vDQW=i>_) zzBHRpbKjGmRsU|%e(yCnl~IJ^Ugqa#|Dp#EB6`s7MBxLBCeyj0o0#LU$o&cwhrv@f zVX5VL9On7*F{?~D%Its=Y`M>6_?P-GvCG#bS#i@Pt)I9`A$Rr91RWHvasgeX_=jyW zicEU}RgCV672tM6W|zKr+mky_Duy49K#B=@p3iC*r!DUfb^-P3AQj8=EDi`Wl38k~ z)pGf(IM;>T5#cU(^&c8`m{N>YWvJA1YeIc(67Pk67c?ksqGy^qjj0N?>wmv14vM114X-?iYjJ_uNg zXJH$#hQ+P`v2^*%1J~Ey!^~P!=%K$v5xpq0H6zJ63{BL%dEkgW@OF7fyoB7)a7GER zPJTpG%Z56nnygu_BdLRZ$=E@fBi=v1n!#KB5*E4(kPmVd^zJC2l@6w>_dCAXFTi39 zKmX+&Y$vv;D;mjoT7pYk*OHp+jryoUNi}!@hUOw+&Uz_?+b;hmmj^Ip@!B17Ox)W~aY_o~eY*b>dr~tD zkM_40(9%D?dlE^`0caI~+d)4;z({yp2Ih2ZrS}5RJ!aiP4`WsClu07C5M}Eqt4g>? z!mL)KW`HSAU)+8gGq0H3+w<<9K@dAm_RoNg8XO-vZ|ez|od{aO<1*g=1fY=p6M(XR z2uCvx>Rbm8GnQizAkp*1@3(KO!V0+Luiabv12_yMf?%;1mmq+k<*a#S)=dzvtED^ z&mei^6>Q_)02qzd6&2s+ol;$fD=}NdQVfhh3`+rv{w7Fx9m(Tk7VGUsbJa()B7Ltw z+f_vOz>d4X5_1|5!qay9%Q=^|kR|tvN^J!az5LJ_7D_j8Pm>RR28IdRX4oA9mbP;#R)Ra%sS@NKFRFE|z_P_4`vc|@qWp@?nJAPs z#qv#&FYcObBP8CI9xAbDpzx4oAw=esV@|`0Yps5pBSa2d9~HjTBVx6_VOoNboC=H* zV)le;BwzUqi`(A4dwibsx&MsiBm&VwQ1CX#(nRkq5j!mTtxx`BMY|fQAmRt z>3Vk=rJjR+gi|e*oT1<=+vWr!#kQ49V!oA3G9@nm=mB>0rX0`1 zwZ3O+-8*R%f2<;4h_jpuXj8*O#81OIsMO0n5BOznKIg!cu*cX=$QDgQ=E+~$KyTnL zvnZJ{+=>vdMshX&>EXjb6||kfv+gW{Rf*xU=v+z^Jw?6@);fDviuT(O7$-Gb`f-O{ zJf;P`h(BiSX1G=0w>DnA&q0rY-})~ZQZbH?MPi}=Qgk?V7g}xq`T$qNQ#|xAvD1=7 z*>d(xqC+_F0f+p*V{#x{@L|CJW(#h2tE7tnNSQ2OGw^OChX_39i%*F|c?7s_x zB~pkv0sq8={vG|%z$a&Vzd66PXE&#uBV{r7<2Ty4 z!IEeUi^hLHvh_Iv3Z~qBZ5AK&2&wuUnPMU^&=)#gXC`7rh?Cnz@XsGi+(cNuIOkqk zQ4Cg*#c{BTpy@Vi$jrd&6R}MaH2?kBKR?jU3|~$rDsXaFz$nEspcMY|Ifk#GwKsZL z;<3^{pZd=iFcDw~7|4-(xq|~uA4B6I zPfkm1{B_ulaM%Hf!cyq45B3y0Jw~DZu=wESF1nof>##N9S5H1oB7nnA$H3TzA_y0O zj^8v(#hoAIf83U>^JJ1Iz%*g2B^U?@W3^1dk@PWBn{^Gyf;flyh(kN>O@IWPV;ybM zXJ&u7c|tVE2)6uOxGID%e*FCF!~VoL{XJJ|z6xNlwI)cEuw|+MTg|Ya%WUY5>n9fr zpXT@!Bw|R23pE@>i7mi$!Z-!rgDYl@EhulQ)Gtt78xZktpq9 z&tl(teCPF3<$=qW{=j}u_%6&OxhHUHSLX+-0p%tAG;9&udDoe60lNY$3H6i0;1%N* zf|(%TNxJtwNm4|T;E>oK@88xBI#Ds@Mz9_$lHV0zN>UCA$728_y&(iKP;%F`ozI_~ zKOvTHx99~|Y63zERv`%ONrZW28ux|Sk1`DA>^u;*+i)Bd8pjlrb_M(-E{CmG;8_wZ zE~|$JdA2=I(L(!l{?P)U=S4Lie(*t-1UWn|dZsYcdv@(E{^jV-r)pO~54z+Z6F!p5 zF%e>*n!uyk5_M4wbb%j)2)BI&{MvPXIn&9xl{615)8KA`tHt>M|4}>1w~em!pC##^ zQ;;i$#pKQL*AZj{gpZhnF4baT+q+)@lL@tLB02tCcDA1HK~H#hWRAd3R}m8en70B~ z`70MJcZW zdFoZztAByMm%UQt=hj#M@kc-myf`;~0%;jBSPMf_&%l7BiZp}6A)g4m73Pv^nuE*fI-rq(AR{r!vX{)`~UTr z5?X6LZZhsX3Y;@M+A&%}ZxnU~M3BmW{VAUJya1f!#X7pjM1Ng9iJV;l z><6%LnH(_zFt-S;!^mf@zqRT7`OD=Z;OxxzssDf_+a~~3p&+lffZBE6zaKNI-@suC z;Z|k;e#`||KYs+?*Bq%3Jk1MsK1sVU@2Ht_M+r{CjnZUl15*TAgbS~HqWG6*!x0>n z7h$P{90z;Se?Mm6+n=F{i(vfw_hS~l++K^sHArXwug9F4dsYvPKC1nf=b{tp)T_m4 zf(@acP{be4<^McRDe!Qv`UHN3hm*}%Zr}yV-T)Rtdf{Q(-hW=Ze-_{%L)cwLDVyhU za!ex_l&;`5)!ASR{=S7e8-l+c&nR9w(}vxF@Y6|hseqV~{-q3*#kul3k0Rg@+FK6Y z8;2ER83SF0LKp|z1Kc|8dbJQ{=i}xh04v51;z!=F{(A-hm-!jqz~>NgbZc(k@tvy? z(Z(MecVVh&>hFtW zT!rL0&Et!mg9mPs|GBoH$8^vIes78vt{)bzT2csDc>@T~>=QhBKGt9VTF04T9pAS? zC?Z3Mt1p%Vsnu1m#l{11{r@~>AC~!)-|O!HPelg((-m{$T$qdLRDxs1;TGNt(V&w3A?H4>EZ+2r=(xOWQT4L7^$7p!~;M z63~YBkn3Tzre_GT#(}~*AP4-v{k|$;si=ZLxtl~-V_|jG-KV&!yyJr6T4Mf$FHAq- ztw>9`wC4~NL102^GZjGAU2~BsRyQjD_t?Py) z`cFlm$?HX_WuOX+nCg20$t@tn@@aw|OYID-oL#UWx-LrsuX@p>XPof+ zy-{QYo)|I8&uqc?`7q&d@aiYfAtY;uGx0!Ne`*Og7&PFlZg*-G(uIEMq zYS-9Tu2`YYF~3P=-%E>zVNu|LXRf=W;BDxawNvvkIv9Yx#SVr{=K-suBAkm#`qoLGu8UYr>jCrJ3z?r@>;&sz^SJSH>1cjkiLEhGDY zSt-}IIgNYcVR_rH_hs0X)U&B3m~rL-xqAhTO}UlzbilRLd5a7bU(iggX2mq!xf_X8 z{#&N%!A=uzy{H%E-@}eWKl3BBJ!txXX>LWWM-cPm!)93;;|$iGkk8PWS~9X6MQknj z>_f^1ph<4jH31RTD8UgKv}cr{U>NfTsEYoa(#g2QSY9*f2zro$`u(Zj$RL>?C^p6 zQk&^~e%rIcln2kst;LC1Ed4>O_xz)(?~p{7ODa%YrN;^5Y8!~045rp0Zd@PUPNU#4 z7)a4i;iQL~DyOqAuAT+4 zxBtc?<$#!NVer-W0eS6)=B8vn=qq*0E^9>*jnGWZIRa!}AriC(-`;;%RKou41Vj=r zIGxafSO(VB$44*AkZ^&CZK~!SL|uMHIehF->M~4U!sDT$tA8!v3FcElgi2Fy$3^m~ zrSqcS<{}3+CXf92)-!>n1Jk6R+0KEP#Gx~0(xkqHf2te040+`xr<(w)md0pyMH(<( zhmhjpn3u2zXlf7m=sIQyX;(kRw8Ffp;(;s{Z8LM|Bs@QpCXcvfw6}hPSIJ4O7)I^Q z;RW=ZE?(>~y_)&>#G-WYUD#yZ25zA+gD6^kMk&{NqKMnSejpyc zF9mu^#hczENRHfZ!kgJe;l%(F)jTxOOD_;F)p?O3r|N9l)A*7MOPNVe`rR(4;I3Aw z6EbWsULSD*JXKPEAkV~#mH?{LwvP{8rPsmha?{juS2Y6-K)Oj)$qyP}U%|5{1Yri< zh&nAJINB-%=6_bIWL0TZr(Dm$X*HF&WlEjZ3txSR=Ld@V+w6rjc_Ogdy(RBRKdnx5 zW3{5l)nFjAvoOmy+Zi;x?jQ>-9X#589WUQG9bGrLXmaAbTUK4p0-i!A1b>!V)%Nib zJzqu!{c~_A8Y2z$E|W`kZ#KUy_or-b2dsHGSTBNkuCm0Cp|_EQkDAB!)2n!SWE0g> zv|XA9gis>n1U|Oe#7N-CU!i^nH=g1L)X*N(@g&PsvhX#w4a?B=oq=wK3-e=4J>1I@ zTP1#?ZZW)p?$?a>uDTjoJf|M=dgxhSOYHr6G1>s1v-$P&{n8ANOlKXn?7}NX)tA#Z zWQ)_F5Y+s@240r>c^CT+EL@Qk*LMshMlo0|#{uX$76yOsL*k4=Wj zUycg!$K%jbI#>%B{8JrHqd%1x(aT;A$8SHvKopBq4SHE;-|ErY?!BUC!V}Y!e7p>L z+O0$py}LLq-5x!o=D<_rLv)1w{Uv14lvm?V`1o=Ggs>$~##YZg;o&a)X2_g!Y>0?)cTfCfGqZ@liYPlG0K)YEqJ} zofRNP2`bsIbfpar$~uqMznQ|1>c&jY$X5b1;ysh(aIHvQoB#Y$ z{G)7)&fQ27>I#L#Wf{Ov_8|)=HkVn4uk)B{d^)0c=9=0Yw*w9riruBU7ho_$+3!j3 zB;(%}=|XxwxD!Bwe2SKf#VvEyOl~8KrvWB-0Aw^!uAu;fD^cUX_$@hlAzo?g}3=EPL|+H z;{1DV*6q+A3f(=p`CGfH!?id9?Fmo&FL9jdP_o{BY@)!)JiT=*4i{Ph$M!9^@o};tN;rjq zBw?0qr{G@|YrTsg1&b?RwqW_HoC@EF5i@cqh`l7oCUklR+>3`qHG)PJCnn-YKy@FY5$Q%RJ z!)d)qP_n&h5-4ki`5!1?Q1} z8mS7{oujeHi)K;SpC3UJbzv;25ek-Vy2ITuWOu~-+fmeyMhFoS0AfXpRzMr|DO3CL z71(T43KCuhARQGN9s+Nnn=V6pUxR=0*PV!YH1L zw){u4F&}03EXusD5I^abKCta}_@}__*bt@r$(}_NMN^(>;0VD)A0H`^N{`*q*&HkI zm@`JXJlSpDkcP>xl`M12q8%BlCW(4?8bGV;UERm;FwJtQ}>ca;;~PVAU;^58tDtI{uZTo z5C}ip+nxuSE9*xifQLK?X3+K*s2_ZzWyt9aCB}R49s)Klk(7UJae9J>*bipJAZY<9 zF?5?9fZ=fc1z_drq*U-N!081@1;RgbuIHX`t}gBxjDWfTdqvbeaiVzS(m?XZcyR|~ zG;__%_d4hb`-JWKRnju!L;c_$&;A!?>&$0_DKBczWD4t4KgrSd`~(?IG^cIXVIMq= zM!S9v7p%1DHuio_%Iz{*KNR>Gxut>=4lh9wV(5>bKT~Z9s4eOKH!4rOAiR9;%nqCD zEB&nnmKKVlzwW~ho}-R-recPHJ1Glq;QTBndMXXY(uVP6zU2MiK{4XcJHV$fBya<$&U({JRb*N|Ds>r)P+ zJdG?fFouO$Pp0v|)(3uXPQ)i5&t%R6ZM70HD?Nox5OfIKS%% zrJ89^miSLaY7b>p-pFDflX7TDl59EMGW8iqRKFfIv&+B_fqBR4<7+>^^A{!~6`qnD ztC)I^q{+caQWm8!B+{t&W&H$Lh4a(vMm1U82E3{vF? zXxfmZcX1I2L#Ml$27xb9wL{Jy#gm-AKSl3wxkUbgo&!%Vj7^HozN6ulxq7zR5)O9d zre)9znE=Zm)1;_v+YF%`?3BCW6lvlVml-dw<_ z3AX9Zx(!1B+&B*%{G@kn?7aE=J2X96t7puHVPP~Zd{p;1&!(gVqvPA8o!F5Xb~c3P zD9Ed>oj1!mbF{GPJ3JpAU1@N+UP_xZeJK2C#vb9-3ilcN>UcgI)FF7jDxlD+*7U1T(eQ5as_YYtF;R>ZRn62KNXM?0 zLE1w9OJ_Z|Miaf<2i}nZ4*JTQIh6X!_I1?TcZvZhDmG*lehOYDgq^~MxS*(9vXJ3L z$6_%KdrFT|X6IdNfoRBiyKCAfH6i^6$Ng;UAE}E1}5x zZ1%e7Md4$0_P}EPdiLK}bP_hb;7ot*fc_6EwgHxn>_gn*Z$4NFlJu4ZF|d8k-YKQ)mE~SwUV>5LUp$wZd0KNL%SDHggsH-)3F0Np zfgE$!3+;8}9HY2mG;%d{q+ca*lB--sD);AXwu9Z2cTBI3N(het^|L9u_}*_;U_%gy z>6)X)UJG%jJpVS`!_W7PF!U(}kSli z#(Ma+o*nqI4$bNQIni_PZ_BIuYUvO>?KZi<{Y_UXdv#)w^)lo7KC(Mi!Z-X4x4%fs z&_izziIY!=)nQ7m4v)WQ$6bII(<8tCz0KKy-|Zax*oTno8LS?&eMcX%>4{!rHZ`zM ze^?BX!t)+@Jd@=l1JF`#0ohT&I5IF6$+y|i<3;ag1nTflYkJwxlejIuetcjQjVU&Hpwt`qyhyaPsIxo84rm1g_ zTJKQuj!J|{21=2k`)bM*j*wI%xR;DR7wCx#a16+k8+NM=Mc09RH(tbA6GX=k5&J(Y z3l(ezDK~^Nm;yr01JuojUwUz|XbSKom9-J%<5M z`ESE%-gWZ6e>hevN?bc!ajGLyl6V_RmSeJlqdNNdi5VdarG)YPqd})XA!ye;KyO4M z6e4bO0GUi+|F#CAEGhe%51^NCD9RA}2?h|1eg#26gbu3&0pKH($Cd=JC-W6Z2Q8qA zeg&=7#F}!@KbIUsj=LPK3rdqj@uhQs{E$-C$@k0|1DHLt)Qu96kizg6*iCzo=2Ko> z&jNW~<2kh$y@6ZRppJtFwh*}SG8g1TmL7=^+1inxT@ZoACXp^>RR&tt2sh7wTg15= ztf!4gk$~9P=?Rqe4q=w!C0P{!cRp@xz{o{pU3rRcLk^Rva_Exwz;|DX@R`rJHVm(niJNz%J_yHQ3RNt{84Fr4d;*j-)%o75EmkfOmMNDNy6W(#}nU+rhSNeKSY0z6SeZP-~U2HVGw zq$6PH4XHR+K#lne*h2%@S!d9|L1Z!6ScEdg0nGhw%xUuFXp9vQ$J6p1lN}kqd2`Ew zt~9KYyuR+aHhALz9}Fb_n5M9|DdoiLwfpjCh~j7r9Rn&L{`*|TH8+n<5QB`zTW4zo z-$DLtGz)1Kxg_uKWHv*uiIo4xSkpw!8UD$SCCIVce|>ERdaf?w_KPl4oiNJ5^dzF5 zka1g}Q`a&>z7Cn1U{a4^rYC5+KSLy`;b#&VWW4u?s=4Suyph-2dAyLy7k21bpTZ9a z==uY_{~3)W=#IXVW-omF-2x+TfMxmHk{#5pH`K;ZtnVdkXN$RA)qe5%1_T-u+n(U} zIG6j>^d*XRZQx8PuF__HimBnd@UpmSiyG{TLRdUoS(o||{;(TYdMAYgQPgV6YC>EuG_hwi;ifsV5x; zJ>+Dsaavx(;#@nGrDZ5E4ZAV|&lF~dsqrt^1LyS+A{_;Sy3#7S=5kAl&c%SO7iT{|FAUPbSWEhRkw!Xr@8 z;nihU+nldnHF)&oi^1yiv0;+moi{OxM9%mxG9S~b&N63h>Y8SZbrX?LIi5_d+?(Z~ z&ZFuJPAH?VnPU^ij+s+H75Z*~s@L#{E7w;4!LVutBuAx8dLbBnJu9Ac-9k&iL`G}) zaeBy-B{%AHb_&jzN{kP*J5}movr>kaE-biMjmN8x-GNHU|A9dwEE;)eG8quK6Bsqx zXpqYDvv&*o@Q0uGZy-Mcw|ZH^g=QOd#FUJ#MCZ6MmR@BGK$`2uEWvVB!sG~ah5h+& zK)RxNot}zz`1KBFTVEaRlWBOCMGaNK+|I()SC8c7^tc&iJP`vr&V!-u1fq%514+Sy)><@@N6Vv0cz3>W;qkd(pz({nn^fjJSZ!AkeFOB4vu345T z0*v6$avB)dW&aA+w&{47>Us~K+IiMdFju$mNuASN#Zqb8FZd^yfh;~4c@7h1hfM;W zbXyap<2QfeHR0CS@)jP0sEcoSrNXqBV}}7P$b1wRcXN2b&-iN@_OQBl_sjm=B|)l& z^h+7XmgJdgs@kQE2+V?ds|Dqm!zWPwdXx=}>2q#OQh9e{}hk zaMgDTJ1s`DUPm`Oe_V6>V_yy^VTAp?FHRz$Y9Wwjt}L9Shl+!7y6ve1$$Q#gBm zCj8$q3ecebT1@>~p+Gju_mpsNt6*_D@HXE2-Y$W;45Z|#GHPpk_zP(28I|G4@-<~Gg zzl80%*o1pm2iX{Ua~LEXtNL}yB9N)*eUZkT+vQ3EPALMSc+}yT=_~1&A$jrsKI(H9 zz3~PIkM?#B9*0c@7JC4qcV8SeZ z5d!rtStolvMQNbFfVB90Ipbmc_z<^+M(frgGm`N^R}~qFR>@iLv3mDD0USWK#}7LX zI0g>bpCdfyrrIDV^!~@hypPsd!c+2G@Du!^ax~*r(55=-S!6K)EOBWvD}ww@@G!YC zkA;%68saii=b%gF@fso8H5VA`0$5PAdlvD84?4x5ek_93c_?%mb~Z~iI#PPJ_zg&Z z?IDFNlk_JPPFIituUj3|32=+7q2vDwC1)E0=T`=RMWZ?+3Q~uAs8q=y@f!sv#v5fn z5FQ&MieJ5t=LSjG)OCJV2YP7et$~%eeq$5%EO%-*08?%QBAv@_nJ-9gjK%O@Jk~u2 zgSBhWJa6Q}0&hVNNEXat&a=~y1xW1r+(`J{jKJi6746AY&-C*ip_zYZWH7IOZfZ70 zPa27|%2N2KNnk*H$t_cFT?c)($ z*8CnH)4a58t~K!&1x;JlSJ_aVMsa}lWi!Xtz!74oMiN%>8{w?kmBH;Q3mi5IZjj@6 zSn^HPLD+lp0EYHL3*FaK_uXgL33%uWfGF&NAxpPy-G(4<<&xKrak1cdl72+d;)(R0 zXF95-X~3dZHWP0hbys1=bx|-wnC4ay6SWsGm(5 zZWval_v)OZ$N4xJpwdt z6PiK39rX2Teb1SnU%1-3oqdTmA&VdH{R)`U34DU&_8OBgkQ3VQ<&uxz5zw5$ zJ*hgAcCL|?HDC;=IBOIhiPD&a)Ciu&vrV+74Coo*F}dpZg$1f~sGk(|8FT~Yb;x0H zgutwv)7nE1F)#0QqY0xevTIjpj-jsTE@!Aw?D5j8t zp>$76!srD%zmww7O8zFVO_WArfCeX?zns;k`ML}yYZ}FPY-t?MQfEm0ta!gg#p(v6 z;F(?&50jiH$jUuueztHNcH%*GDn}#8S<4B_16DAH!Ua6wIk7rj8B!K$jWWTeAlq`i z%1hW)Ol^bWxeD`5t1;b`b(wg*MYS}1pvat*-Ws>7FNg!40neP{d!f-#t>5iopen=5 zPDxvZt9G-asYmfwkBh?<*|&TVS26277dd{>Yy}2^PVih`Ov>!NyK`$o0^{mLk!$p( z1i_&O?G+9Km41;dg;i(OGITC(X2)nWnTmixw^uv!DgFdM^T!XVCwHHp%!oPL6>nhw zY^;%F!!?QYEB$TY#jYwr*OG@^#BwMzu*^({7 z@BDi1p6Ay4{@y>{|L#wpd(2$d^}WvJIFI8vCA0_P$&dM^qqSmsVS56qiiT{BlW$#V zAT_i}%p+ix@-dAf%V%pknx#DU&|5hn4lWrbnY6AQZXNx~;s9+U1mfjA=I(W7)< z{m3j5?x;BFVEfa!Dwb!Yy9Bc5QMTVtAlIxcJ3VtD{pZIBeP=a_59cq%omuECJ$pO* zG(qn}+Hu0uOb>m0Cv?(F2W+>c*l2|e1O2k;>`#6s$}FUk^zQQ>bL;iApYNGCe=hP_ zeDV6)YB!wx-otf&QTeeVkg?4hS<818;fdswJ&Z#eXp`n1H5=g2kYH?~qCTTO=X!SYTu`bNR@`39>E@3#OO3tfUyDx%Jl>Az|-A`z{ zI;E50z8rzRV`h5Mq$YwEX~s-Au=V9k1WOd@7-4xCrg+7c6C{V@H>j6CVN4TAuXBO? zC3c+9p7B2W(1Cf~u}rLXUsapVH7*jK@F9IdaY4O3iWF~L=Kf+eG=+48#fkKipchVa zHUCm6*vKpbyjyHPDhNJwoPDibB zWctKCALC-{_#>k$BHkMLE+zpvdS(mhBMLv$CG!cU^>uu`$A$WzH&B<(luNDb$UG5~ zn7U>-@?4QDP1t5ZhKzno+W{PKsKj?%&Ka|QO-ZoLAgOp=K9oP?u3n`__SotC+@}uD z`oPNNL0VQrm>jf9;7se!Vr9Y!2_UcjoaL)fug8 zGP=P%tItE~J^9r$nPa>=?TNarYxUnJlMbEC2BvblB5x8_k9|~hHRMQcoBsh)zwXBj zn)>8jelDb2ZH$*^v?7zLwCw|I{Xz^4p9!C&45krjk7rG^5qbr$Q)vjzB;jaAzfMPH zk``H9M}@+1QA&M*7#~T|n$J(YwV!6Po+X8A^@YKdGrcrj|IK5Gd3BlHlwlLkecppk z#Q@4RlaDDhGWMN?>um^yD7;!oZ%<`!pUgS+Iy?0ZDQUi9>G8{i66Khe?)6hFw`>Y$ zB5HCi-Wngw;(Cj=i7m;gQ3majn-7ao50O_7T}aose&r!lYXm0f;|0~vcm zCMf{2OM4#_Z#KXhJU*@3!dMm?s38By=aA^kx#6d7f(EVO6K(XO`}L(WuC`H$e*f$y zd7aZMuB+pz^YsiT?SUj=&h`pns(cFlH}O7tlu;xH*vH!Fk>ush@lEjBnfj;p0m8@I zU(QCHC^=WzYIVx6BD??RmFGk3b*DJKXV?&?1i#I9om@G#aNgFluYs^F%d)|6PW(1y z1&M}m{h5L#d%dispN--BCnBRM3+0)xagp{#c{7Ip-mbq8V;@9Yt3IFHOk~i~ds;D+ z(VM5~l5*5tMqBpB@A9fMqI%~rDfXf^L9Z&fH$6h3)*Guhnz=19wV@`SWy&f$t|~v) zv`?TMGy;=|4#|=N2Rkft0EzgW|qx!3Hkx40Ux<9)a2$K+Kh z=eZO`13tHW&EtGPA#QCgZaRA96}N40a)|AGi1L(HP90wFfK5uf%zx$m2lQ4pu)rVt-5;bG;$k`sd~q);n>Hh%h0(kdjr!ESjGhz<~Z{V(oiKLtA(fCYl2TIkuU zyJ<@7DN9*>ZybpCrcC5BolwA{7j0;UII3Q02E_gCcX`Wp64YAt_K2+?6qq;EvQRXBy@{KHU8NUD~ zI*uA8EZ_SD_Qj=XQ!t8P?=Pjn$VJk5MB@N>6#J;uPi-Z{eFIjiMyQ8X1UvH=7%MxefIct(-f*d>y#vR z<_}3f4@Ol@reKbPn$I;LuPg$2+z=*LXWJSWDm4L^D6fTXZ*XNE1_fPbqvZQ%cx5>6o0&rLrxbK#uY+ea%lgSC%TRN5CR%` z#LfgL;^n`gxf9W!Pc4j?{cFKR=kP6+lgH2!I5%dN$L~lf6EuM8*O*vZ~)&Vh>>ERK@D_ zy+vE==KaKB;GWq5DxC|jg~b2u_feVkBVreLu@sTY4Y+G)MRsvYnCx)2+S*m3yw;;>0&9cn__JV>J zc}cNDi_y6?0EIhYm^9(4Zuc>f=mql)SC~$9Z{KyiUszlmcGxVH!t3z`jR#?|GeVOL zfN9mc24{#{H!{tw7wUPF*-V@Z%+AF6zqh7052O}=j6s4j4B<`4-g)Xn&Pl!Y3`gtV zb46eU(QA-TXFPffSS)tWXjou&Fs;zeDdV)cl^HhZIV}AY9&#yvpLwhO+4)uvbXbvY z!*e1t{o1d&;k4ooX|!k8bFOy3$;L=?g1xNkWG;t&*{A45P*tpHUi>IU&ka6uqYVrv ziSATuH!7F|?R$z2-MaJbFWmKykhmw0R&ZO}5(hU}ndF&85D(vHEkjFKU7;B-O>F|o z;7W(d`ueIpa(6Tqltvqe!Nep>dcLV+Cf_1(-LyVEKPa$i9OMCL6Sdei!j)gJ^00`e z9$5axS~^ch0Kp#vVuA~lJSE68B27zM(nf_i3j8s1xV6PblIviWbsjuFCIO^6MD>KuYp-{&V=qoQCJLI4k*q!P?51#P2568LXVXc4#hFoTINR`vgD{x zGw}GHmc3mv0y>E6_4O>iH#(5AM^F8RUM$VFX4#qJ9o&A^q=xy5r$Y7YRUaUwKo3Wc;~J|B>w zw)#=AwX;Oh`)n-mPYQBg66D7bFw~?gkTaQ?8{EP1b7T5p;A@?w_QStWTXEU%@2p({ z(ecwlNK{Y0;lwChXD-+oVTTFB8o zl`Opf{)xP6tD&;f4lMU+jIJZM9WiW+0ZRqARA<{|x=nTEXT!YJ72bIxz|Txh>g@0% zIT1K&R^wBmNC(Ub+ekmY0-lj$EBa7>Y{E8vNbkALTP}9N+_oiYmd`fUrTRZeo+RGL z*AnseX9mgDL!9Qm)lT0=oy1M5#@?+p&mUp4=_PUqluq^0-~e9pK`gkcGm|n3?2X*W zIsxAruF%Z9dxG*33Dc%yJ0pG0JTtY9l+@oIAOLqI$1N@@I7?VZK1G<1C0O`4$X|T2f;nN) zvQblxA~Bm}+@2;`s;!sYMes}0XCTd(km?RuYJGtzeBrm>?krI@W;`jvNAtg#=%pdA zM~+h0JBzO59Zokz88pvZ0O+#tE=x?$$WSLIfx$p|z%no~NJ-D&hDqCgmb@dz%}1!V zBuH<(3shOjL#hXO7_?I3BvZ9Sxk+puNSiPORYNP=hc;K1(?lr8FB^E z(-8jhGpBV)IA1Naim;%qUIRlzTPq3RuExM_%F;@b?1JcNJ!{e~8iss|LZDe8Jy;<_ zC_QB&&5?yQRd!N~u6j9(%Y;!ZjUrkpR3Yjy-!w8&520~J^1Jpz%1YKY-K91wxvoG} z4ra&<4IyTcE;M2J17W1Y`M>T)#eeTkBznu3|KS3_Ks_HwQt_`Pn#9j0ZCBs91jB!a znLF{Cf1?w@(AQY?gzZ+~O~h+GjaPW7#92dY%B)Hv*KWTHxUfo}%Y2mX)l3phb`^P2 ze3Zm<=Sf_;V$>Zi4wP;yuBonli}Y(6PcMS4nXy6oVl(V6Y%LVjoo>pWAgqp{3+~M|nd#!}2udrqpF;)55#05RvcU{WA8x?jKJvBV$)(=p^ z6CWuY_lh~Fts>&Xs&~vrtnBn9=5S6$o+kl))<_ zDOK>V(9k_wgK}0yDdgdKPN>r9;hX&E>`WrpRBo z+qc|W;%hEjoh~)ed(Qeky^t$MaSN|19GRGOCTx2@LmJLg&yPB@e{NQHHe8U({vnT- zxHIrwradD`bnPw3Nv%jmhb6N@J9^Hb{6>DapD{6=bU@e6|6#@phrVUZ@>Kb!C5wfd zH)MNjREU2Kk_S*@*>O|i35F7R*TLA#r9P3#YgyD?Eh4~myIJ0q2U&J)IsJ$gVB!HD z944pITrnLjQ^~u$oFzcwY^TdZ8OvGA(_gcc22aqgb)Vk4)7GjSqXdd__F{H@U#0%? zrLREd6vX^|J5baAZkO0R8F7euc>#Lga|_v@!JjOGdMm*U8;Go86b_!<72qxD|4I2s z*W-8M0cLktE0;g+qR?TQ{pqO-^pnExW%>dQbbk#8Q_jF=ZO_KCNRWvNecpFaNa~^5 zJa&zz5t=)-KbV zRLTL^gU)&_&}Yu&zXSS1HY_Ev8}!aK z&NRYA=@~%w;8NR_5-+|3gxvos;!{q+Ef75&%j8ak6Zsj|IA4KRJJ`O4F{1xnp|^{O z5T(!j*PBoqE`kK~3n(KVI_0o|o6x_WVc0on%JNP-nwnG2m)8NcryFM5H|6|sl;Rcs zDb8vF*t{hxAQecujA_B1>2o@bOn0{Gg8nFjx9?9JeuQMnP$4f@%*fN4-rRMX>Y)NI zaHi3hnn~l$Fqq0cyb#L9zvTyDGvQ9AT!`gnBb%y=;ZvdS1`Z8wg|oU}0GsO~(MB%s zWsmkGEy=0t8U20wIE6sL!^B`n1Yn^HiBJIyC$e4Cy7LI%-%|ULhT>Pb2TZLdp)7}z zu<~QmuI*bNWD6gZWqXh2{3ypmaC`v5zze$LtP>s%sKLg&&n*slUb$bR*)VU5q;G76fQCVyod-Ap5dqUrUa zI#_?X`-z7I?%xl=8?TJuhNPPO3MMvK_Kk>n@vxGzZ(&M_i$)Pz#Y1zR6iK4ksHG9) zPmC-X%Wo_solycKhkps5z!3o4Y@{q*mJP^}KPEU>ceZ8fZVzIP>K6!Gb~%LmyX>mTmF4`r1ZQ5j=2%Q#k>_>;(h z8S;GiFJA;=G}W=Kz?zaS9PTGi@*=TB9S57fIs4Hk)t6tkP4CK z@}QgU^j}m#pv1ROJ;bx}vbw`YdgI{-qyuQoNX(`2wNQMK+q84&-!ppR7eofE7H@>&+yb{lv5d0>$}5O?{|3b$pEWigO%f zvoGNS>PdalqUf_Q#e!7|$gy;-X3y4GgqwuVStJZ#Lo{Vab_;5~hDCeqN!o{)(FNL) zBLy=wUtJ)2Z*?WRy!H5#!SSaXs}{Ien168^7!6af`$^;dz^0ek>m9rHqJckJcuuo( z>rc&tuY4NU<*@S^*pDEN4WJAcigvuef^H6m67r3ujMKMVKn<1M1=9Kcb;`GqzX2GB z?)`Cr>*7d~o~4%+l@BtbOfEKX6v6dV_W-2;36x7g!GT9MHUF!<70^VtL}+J+_sZhb z)s0`xx1WJy_rM;uWc2?@2!4c87YW^9ht82ZqK-0KLRG&wK)tscsmj%O4g&Ww=J4fE z;Azlra@dFj3bdyQ34x$fXX5_Xcfvh9f-W|?&S58vbx*vY+Ux!rR_Su)5D)D^cesum zxWwEoChh}%*3vP$ z|GQT7U$+sR+VfWUOE*9$OOR6<)YRz$!^_B24i~nUc-&(SE!h?YD*1SE?A5KG?t@sc zVkJBlNP$deIl!wSQq*WSvK~Q?2(<2(sCMmjiHUUlcM#e}E{~4HM1x;$AM(qEkrr~m zRg^yFk6w*xQ*$5^o&$b%_lt`vllJeqwtOd%4ZQ%EC@VfDIBo&M4biQD>-^U`&cPS$ zQObtXQDE_Q$EB?w#l!o)!>OyPef(3hN;hKT0!@{s<2Bn(bgeidh#L_sg|vOt6J&*3 z(^v~kW1?@#<^=n^hGc>q8DIg{Z^1lerp*u={~CBV_AsEy1JGs{dNKZYu5eoLc!^JP z9Im@U90GqgnQkD^{&SW=35$%vBw^iZ%n|Ew%^ONm|NiX%1jHBk!yx+=9#TTCRW4Ld zHh&%)bmg$+t^r|#2e*C>4-aR@g(p=VweSLUBAFL}-*kQbY)InTf0zi@-vecX<$bxu z$IUmC-L`%j9gI0bwF$US>~MuLxf^^V*p@t<714n_PYI^RHb5=O7c(j0KR`CL#Zbi? zeetEFs+Kcr_vVnY3&1=2`Y<-s++o>>FhoGm4I&H^#}98YHXwe3GG3!XM)OPH!df02 z`tI3*w@ja@?2wBhe<>aw*E1l|e}*aCrF8S(|ITe7y#aTcvl?GY7C;cw4WP{w)SI;3 zAK4Jd3}iu|`kV*K)g*}0=#Bfv55m9xH)i;nK`#0296QT^HcqD9mib!bc(H0#fok)f ztS7vNDS-`ei1I;~rnuE*X8AP4Z~az=rY6)r02*`^)OYlw+t^vq*J=^b*nJTITO*L; zZ9hg{vc+J|0^#mM&sMHzfce0KP2>s6P40!eIh()DogDZQc_85L0()l~nt%UdTtC=c zsGDghO3P})(hLA5Hm#*%w_hT_b>T4-0Poo&XKJ9mi&G?9VE%QrIP4Cn=?*p|?W*|* zuNazLpmoFn<;m)s|CbOY#1AWYL@!}V!p^q!C=b91SZ1~jpNB{!p0Qqr4( zVqbzeFy%f269dYR>#8ara{qm(aDwnz`RGjVd9=w5nY=<_ZH2#~A+?#7j}t+@V1$GP zpOQ``{_o+S|Ds0cg3W8$t_(0cM4$$tvEgkAC4J2DUD1;z&7RqKcCg(e_w0A z6x^rEMpZo8f45-(UpxiH9vK%|@8+4Er2qzy` zQmCdm5iXCIi$N<*KBuTL89}XK;9o6G&j0!+YhrCu7G_xk&d_Bh#_DNfPU-lUKR zKDJadVe`g>@_c-5c2d@5ENo$_o0She4wLh3#R)?f4sL#{HLEnJ!4bTUmZYSw@iuL?t*U|Bh}uA%9p9jy{ry7_ z4(1J*iM1YhE5$BeFZFb?XP`Gd^z3vy3hw zqvF*2qIr0+eDJQaz46cP{8!wx;Mg;?S+}SLyoPslTv!CsQCw(NF$Jn+aHixG%0I$K zPGq7VV*I}!qSS$mjB@Udz}`glB<;h5&1c9&4R@q=t>zhw%YG=OLnDEnECn^i(Syev z`n{1%1vM?DV@da7<8L7^X_%b_0w8_NCdtMPk`Zz`1IB7Xq{#Ue)H~EaIhwTw)*OpK zd6pXV98UlxshC(f%FpC%2kXqu{S=90vL=I zK#I;#-n!AU;x1mMSnw)#T6q1z@3fA*Fiqy>l#c) zxA_Ey$dQ8jgxAWK0Pb6l|JdQ-NaR5@!Ke*KtA@b&x)a%}L%uk1!I-861tL&Pq4xOq z0fMf%2jcpIxWN{UdE_mDS1$@@c{*kVkm$p`$uN_ejs=-k7us4uqqn zU&~#An_9e0C*g1=OkT!M76_%l$S8$Y0d3yt2+)Piq7K}8*E83bV0Cy780Nb*!KQ?P z>8BMgUP{A6^sYK93l?Xw9^mwBbnLiXbibNWpK$Tbh7qHDW=|D2)t~Bp0PZp zQ3frDDH@c*2&!jc6`CNI4c+{aPfOEZUL@<~7m;7W|LEBN0)7jgAU2bdV+O3eW zKlC@#ZY2T2NA#k{*UFoqg2+c(TG3LTLWwhxu{3)u4*?vnFH-`FLc)w3w7(sNNT<07 zA@qC2r%uS5OU`%M-bcw)NmP)6gI zK3jrcqA)LL&0PzB1iOs^AUoIUbon_=OSjhO6(P|7U@{!EBk#aa{$&=Hpf?0V3Lizi ztHRy{TxPEBs3edmkWmV&tBuSuOdvJ-vI*_!B)WXkuNz(LM)g?~6=t*9ye*g2=J=Z>K@H zqR|Go`+C>FhSj;x@RJ+iA7Yy7eea6C)ERG&zWLLd9LAdo3(G}RqELo$q;+~l&6f%< zPyMOKFQ4eJgsh0AD#&pep2!jSBD709_ct`Qq01GiQPF7K^0eX9?ws6Q_aB34!nY|O zmOP@@J8k1pp#LL7(`5WN1mhxmEz*53adyy)C{bp4U}%yiTnEGaBHX6iT6ZMPnS4%T zo+M!r;Ct%bUGYx~UdV0$1E*51_t(wzWF`^<4E=K?bxW7fC|Pp1ju{JXA|{%~kVSAp zYdNbzu=-kC#;3}?7#UK6;me%YE#1cjhl3zGCea4wiW)ZIeIA2geVmkrV}5kErb?C)yB$MJYweR#6-RqsjP zf4K00{@&}SG&WwQrCR@ICKJSf@ifna0gC>w$4&t=Olnz!hrr!b<=T#vs-1o*DjUYO znR|3kp1hInJafWEJbyLIp2kMk?wHGbIokPNr4*NJf6gY|{`nlC?|0iih-m3X0w4ca}b zY~(#E-j$RWfS-dld|$IM_aPlg1=W_I%U>|Q#`sc?#qrkt-;(JTXHWc|RV-bZ$hspJ z7`9Xa19m%WUPv6i5Df)6f3me{&;F*oJ~Adn9t4$+#&6E*a;h$`v+bh5Bnn_cj@V`rb=|Mb0YC460|4Vg5N-8np_PIx+?GmUjf`8 z@a=04GgRylqS$+i?-h*#Z_q_A5(=ciWkWH9xcK1k9~phmC*8lr+AlY^O84m`2;CE_ zL?y(VLUXn?o4LqY?<8J=4nrfn^D9_Wb{nH6Pfg;2e-L=b3*tY92fu21oGkj99E2sJlUb~@<-*jKUwqGlPfXHke6FdIy1bAj{r&sU{#kN89S*pOv|Ip z?9EMqG5mdycAjU9yi7$tL4M`_>j&@)jxz)?_y1B)IkBXS`vPykoA^qm#R^E6uE2#f z1Od}ocd`BGjL5U%uE;p;0B#NsLh!xd5T|Xp4|5?7K>~Fq^j;yHGA#hiG3RG)fYhkx zJ-uaJL{LWK`BzrwL4iC8TIK@a2kfnIg_VWpVC%I}scSZe3Zk|5*ulUGtX_0L>i_+s z=}+KXbwvp2UIUr5_H|X~{a)_8GY@v{_Y>m@BZI4^>vy#Fr*vOOM!6XNY`ANI=@o!e zY}z3KjuNO+`w_*-4Kwe=;ScHZ#9pv*MQW?hz}$LUNsx8}9t&bm*@7K@6aXO^a>_IZ z?286=pc>5jM9U39X|%5}8?s2j&0kLS;R5$c38mc=moLX%kIFv(>OFLSk)QWvgBQ`c zmzUI_Ay^IdXoSs@ai5^<#_9zeacc?KKezXngU%QuIXf12ux{JlM^*;#{=D@);*D=X zG0$bf4D1GsN?bBw%{^}l-z5WhOs_X;zD9c+$>e+8G#N|fJ@S}QjWJTlns?_Bb_u2A z57^U5L1DbFlz5cVlH`x5J_tTFAgXBk^D%#_nXa~Q_f9aM<>e@)+X1? zI@P!iz;ZO&&mOxz0aC3Oaj5W+~^6ATEGGcLr+ur zMAz|_cRReFyhKKDGsv|U>f&6i#V@oM9^Q%03U28BJ27v9$~%mmL)Hdf0mxsMGu81t z0ZrWpyT~k%LBXs2k*8Y)XEdjh1)Jlqv69E|;i^=#cr_^U)~l4vyl9D6;2$KqezJC~ z02$(I+Y!zRg0D9gOa9B(J20y16)5d5mwGMrcF5QDBK8dcC(|H-b5P-Q^eqL+R0GSC z%ajx96Zl!w=;Z*2x99w(52<$n5)Biz_hI0?%@*EKt4mPUx zteC(My*MyAFlDbz69{#>myk@;sL0{z!kN`zhDUD34fkH&SyVFEZ7S8J^2?>8&EO{) z873Ke{Z3k57M?I`3MB)pJ&p_eDV(Ut7@~>~KavcGnzu`S9{zm8iwD-y3U~~L7|wwG z^isyc10v6Q77#yP^XT0gao8|Btq>TT>Q5p$DtmW3-|H_a1Npo;tM{WC5KVvHwNHK!nd!_ zW0b3OM~A})CDX^(!HN!HAyGGLN?oZ$6&H$t@Xg9g!y^!st)_8?aTxzt!91y{+N$ko zQ7AV|l^2UOd3}4sUS=ploo>6fD*Z@MLv4MCy8g=odvj=RhlAw&bFYXV5zO;%vpQ1^ z@S_EPKF+GyP{DuK%#w$P+5#8+GVg=sz;$?G65e4I*OGWC;0iyeP$+R;J8PiuMV?>5 zc<^+HA>;56$Xt41b=v^a0=nPAiw#~l^Mgj65MgY_Y*7q8GHgM$OBtNVMX?Z;zCNav zynEQVl7~%OTfv`^kFmuC+S7uWJ9Wz3usv;`zOkdBids`j$;pew^{Cu5-cL9HI%geNE% zE9_uYX<_n344X`G?frvE5QS`j;o@a(JwF zr3}JQlaqAYH0kN*YB>%+ep_evkzJj|JYqZ&cWUi%(%P;`O(}aFr5u;``3rO;R#ZoN z#n=`&9^VLbR@33`snos)FiJ~ALLQkANHvyxr!W_Lt&9@7RB9UoXHV0Mw>KRp=M_18 zzxW2TMdnc)g)hDnF7mu9ouWPQ5(VJl>6VxD7|7wp{C1d}m!78iMC~=)8csxe?=+P6 z$|sV}RZnqT7np80r5-ZneB75I&@4Sfr(QJFTk$KVCI70vEAm zaC%vtLs8eRDy|9^voo014y1NPtH9eka!CI^uSot5c@gq#Hdly`KgfF});n=$H88uaJS&B}r;_-*=`3MER5Z8c3$LkUm z9Iuxb_g*@c$MEsQX}k45ubg1$LEf*kz`?htt`k1@tSH*CS{RJTGr*-VAJv8L4lGi) zC>hpNVNWIElhec_pOMtu>Fp!Z5a=8?Amjn8c@JFVFINCdm?K4MU?Px*3|x-wM6ME z%mu6hmUSG$qvPQrK)`o(nqxm=tm{28Y_Gf@R@v z)$)4w2H$)J6<$Dnp={19p^e_iuv?JTQn)WJgsq|%QmUrvfJ_-d_9v#AFF24EJY}03 zgWqJ)9_8cbp&Xn6zM2cHCv!!Op>G1J_&uTK%5H*j^AxNpHb+UW2zIEllze^|EhwZG ze+P3B1$l_)lBs-au}*bDF`eGW7%$8NH}3#WB(wVR*LP^QyCA~{B#%(l>Ztw_gw+^2(FEt*f|_<&=OK}VZbDkg@TTs&%9WJdGpQO4Z$V) zol*JlJ`}VXv;IVvADCpo{m&cMfE{F`@pB|o$Y~YCL0@EIp0ZyAd^c_S6b*o0(^<_d zU*!ZUo1-0e30@p5e0P;2LNfMfD_4MKA_vfj9O#FU*F@o^V?b5Ek7~+QIE6jnMsaZp z5miy6jcR;9=BVm=&Xc#wVB6*IH1+e( z;oTdrF_6O$jnU;sHH+9YdSv{}71-M#PsJ56yu1E5Bn4l*I|k2*?Klkwk=Vkc^~&mu zdN5gMVmKSTuS{>%@~aflYnOz5WJd^r!ChCw2PNuy)D)CefN<*KizRLI!MkS~YULKc zyuF|cc4O1Zl8ld>9+|ivast7}{UZzes9oU%e}h5fWCbXz3t{JV2UyhlNJnBx*hKyo z;)iec7fck&82Ok|FI{WFRb3t+p+v|0<=r+le&2h?XwHUj&rE?JA2t3?Kbw|ltc>HS zYB})Ri5(Mi22-twr;^O3<-v-=sZ+XIamm(|Hxa6_vOm?B7N^Cxi*gDFcSpKVb&Mxg zNsKX`J?GFCS>)9W8`nOZHdB46n8Zm_nW?SExD?KM@9QvUOIUCp^9PMd9A{KBW79@q zud9*U*wcU#*J1czGHlJX5>)c#A z-2Y#PJN9H^Rgc2dJBrs%XJ>g=y(@*ww%SGZa4!XOXNo-gd|^~`K**<89EjvJCB=DA zNT{(5TsT|B+4ck*5)=XLU#BftqgI(cxLNZECPO7qG&Nl?+pVV+I2f`B(}!vS5$o+2 zoO+5J)$(Hkdr1%3$fJ#K2c1tbgv6pm3Aara??C^>%|Ku+T74R^YW#IaGx?zp_YzZ+w^v{ylOc_7cFKu znfa2wcm~Yawxm=ZilhMVMcerijop{IH{Z~pKYyJ!SOO}$-?yOw&D(>j6H)l2`n}kk zdJl9jehGcv=8T0~!5K@~DKvya6;<)p&;C^vwkw44CT>>^J^Rc*vK20BWPaYpfn5QT zluV-Ee{1CEziVXPgTKLGtp{wghGEr{#%7WdE%=g@I0DRsQL)P3PD_A}r5|6fg}$l> z(&t{OdK2x|HDqj}t0~w1<6;U>UMSmtk3#5lMG=xR<*QS@XnlpvTnZ%@e(qAz(S}&~ z8ItK~x_79l(LMHN{l6Dz_g>EeU{r9;soSj%% z*f3y-7~U}J!G7c;1k53^AAVZarpl+Vx1wYDFqdv{pW>1nU|C>q@LD}(FtW~h`6niS z{iTQNr5Nl7J4iH9c!RkGIDRG&OP`H^j&$OQl)c@?E$BN%zV|?h(TjjP{(W~FkaaiO z%mE7D_if=YuyxyYVmYxC=#;%6+tnCehTau4VkO0}|E2__oqNK4)kcA+Xbea*o#CFnl*Aq3+4M~0=oWZnJV<}?w}Tt_sh7ZR z8Pv@+Odc?+xasge3^n22swcCm??rBS|GxUKXy2bX6v?CwTPHVksy}FWWlo zq(Fkd9uQ=jcTkuNz4Ekv)O(BzUl;n+5KA7doLJbR$U0!f(@Ei zmt?1>kWbj76HNOway`ETz%mJow+Uk>KCHD@Vh7_x!&@o|gYixId8{|t+o1r~c$>8D zi`T)7{d&Y~JoiDBUaXy-jEq5<$2&)i7W;9f^#T;8iFug7ToGcfZ-$aK+HOz`)>qLs zKag>p?$!hJ(5zYu^LBQI)5Qp+LRL?=e{x;21PiRmQUu@yez=-b{2tZ3pF1G&TU~dw z4|seNhP1s%k>vW-J3FZ?0#+9wZCD311AoyVSgohban;}DI8bnC0u?_fZE%tHaNiHV8g#U? z(B4ef6zYmMQ+q7;^*t@%gt5OOaXVSA9Dt`CS|9jiEoz7OCEsbO`(I*Lr1*@?}2=8 zxE*zS&}T;pV56#2Z^E{)9z-}4YspA9fGAH#YIifA8FIPsn_ zs>p`vB-)pb%KM|_;a?tSa5++rK7qj5N8eZ!ujq{|fAULy3o6GUAHznBI(<{vvm%kC z^=~z`=ZtLi0&~B83^rtJVP5)xM*0`bl7#1|t~2iZVNc)5`8jj6TX;46-dWmX-b$Bq zE@fh8G1c9Lg8jwzHM`r!Ufflin02y-Cf2o2@t3JFHDi?ThQTYVkls5&*r>ADs&>wW zo3kE?>`dgH!QSz=Ya2uVnQtb`29HZlq)F&oaRgbnH$DtbPbL|r(E5HT>yEycPQx&N#R^x>U@ z(JJKq;Yhd5ha5rs--j##px%~;e9Am<0{iG%pe%g>r|~bT>b*bqY0HI&?O^$a5<4PL zU9G*m{N9q|)R~V0zX5hXnlHd!qAjf;yyC;l#QU)5k@5DYfwU{yDqNO9&VsH#u(A)oJi#WTqM)t5 zFloDLMPt$X7+MT-p?&cN%4gvT3=gFXX5|ju3$joXIjwLtF_eFjN<6|n= z1Jg1*GFQa0TCVh+#?b|ezhPDIr9Ka=Q=&R-sy;08jOvAG(4k2)<>4XP#Ifv@-vtKE zmET6p+yw$2*<9WWQ98QDSnh6a+a467CsB-+^|#?sVfaYKk3i-+Yl@d1eeWxR>&AmV z_Vb3|C1;YaQJizP9D4R44Tp-!y;Vy1@8TNs?Sx2>X;Ace93t-|DE zwJ%&;Yv+INq9DMuBK34n_k7Sp_q{#3y~v53IJh_kQvNAa)O94Q?9vD7Xrnp)&<~Wu z(fsUF6YRt>?yK;cdV+8kb1QckqtYZxAwvR_IK3gV*Me z)kRbYbDsVHrS9vBghLnoH*GcLWni%_pBVU@LQbd_C<8oVcdHGw>dHC_?y%cQydvou(HHE#6@}>HL}2UD43sA_up~-K%6-=S zU9LuVL)HL+H*wU=>B?qUwB^AHQ20!owl5?^X+M$g6b1k#0zpW_oe!t1PeIF@SC#eN z4{wMKEVM_6RRBq+J+rUf%I2~k~= zvLYT2;SK+v{!IZVjH%YuztNrgGPq8p?kt@0q+kFO(S%j=07Qut7Sp3*6fHh@$JIqd zqy<%`TQv#I_IuXV8d@QFE+J!e7`jUn9y1$P)Y6~UIE_Mo72~5>nD-Wg?1Q=FgeWdU zn@3BTV*a-}J^s&O^}!#%o?2)kT%Xa9GznlBt`1^r@Z4nWVjgOP4F~jw6mX&_-FOAp z!2tWkmue~g4xaiY7|?%5jf3mpSF}aQKCQ?%_xSf`uQ+YPMPs)IyHTq=m4W8uo~?}Q zq(MD%#id%t4j78$1)GG>5D7f!cB}rm-INq};rdtM`l~eRl>hJ7FT5!FZ4j++fnx8G z4hPV^HJugp8OS?B@xqJR1@{j{E>b@yBxM%(;$3lCu_Y}=f{~W44Ux}K;B`Z&MX7Vv zgGdH4XfZH}VyxsmIISoz+NWQD>@5X8EK7iSlz{!I??LkGLKIahi6X0lH@_dYC(hO# zADPg`q%aXt7it20tIfF4)`&!cw_IUO+IcUQ|3oKM03Zyx%RByX0YtXDuLG$M;?ml4 zA#;HD9~-8$8-7E_7)4`0?{@*;PMAJX_Aa;ft&cR7}&oLYxh`j$Q z=g{ae^6Ju1Q8XO(gswtrwG26D(FeTWkFpAelBmiUh1^Q6_7uI~i#ZT&I>d4z5}CBh zL2RA|@Kt1Y4;-3OM7I3(bCk6WG5x>yRaOpdt6xxmB-Z=vIkZ`Qn=@13&Y!Y+@Gcbb z_YexjC`mD80%)aWvKOFZ&o-3Qd56-o!Q15{m(vFx)Jd!6S+~>TpaO`xgDQZo!p)rM zwFwLF--LzXjb_;t5{X>>=PrGqBbPa2@EP`MhU1viBRavuP!_nyA%rs29-Wn)x}#2i^ed!H&LAel$;??qD;*w zpV;6lK%*o<0{c|H9FC)h-r&}86Cc9R`U@2B_IRM&<@Sb>wFo!{F&vAKS~OS!)%UjC z=*kAfK4kl^HE*)*2;3b)a7LZl^IT&XiDY6RT#Ujr-qLm*nnN*FgR@VL)FL`Dmvh4* zKL;dk?t$G+<67$L-_16Jm#3kzaDpz^2^k@EIswJ}d^tjI8UfVoIuFDeh9vY(mfPNm z_zm!f=tB`l4P*}BcvkDq9GB~ZY9e<*#<3Unz(J?8ta!s&>rfr2j*1H?RVgI&vqDMz4h9~|^s%i9$#4PELhs@1WW zW-Ya(if^STFTa1!wuwI+)wUgc(sWeOpH2vO9`c>7?-dZ9Xix?FFVVBt`|qbd=NNJI=sIWB|l+uc0Q5Xk}i+{)tB99 z(^e@4zo|Cn5Rfb6WC{XBa{QR<B|y8OS8&YAE^q>}gmVUuoHlxvdwvCk zJC4S=NnQx^X<wIac%pCQN(UdWBlv>~ZWL@JO`ePrMW_N{kR-v zatj`Kj=Se3q#kV^Y{`EPHe5>AckMWtPEkl?1O~yQ7StYJ(17N>7q|pQJ7M*&(D-uG zQ~^b%6fnqWUdE#XfN@>9e%zu6<}z%VtYt8jfmo0O&QNEGG~tpsG9D4f12vSg27!v~ z{51FOSp>~7R{fl-7Z-2aF;NR>;paH_!64)WADoziz0*k?TuX3VhSE!|^N zcx`Gm^@chmgW&jbpOLXjvVADsmN^d4+sdO0$tm++#!vHLcSAU_;CX(_c@yxo(*0Ai z@Fte;ZI6D~i)tzsq7GA3^*!GFPV3xPzW&LoZaVx{L}I8d;EZVv+9%;6_`SESx&k$i zx{ZJ$0ZN8~gWUSVzMKA(R#tw{DYDVPpj|>6AH-W=yTPMB#_H^3| zDh78jDJq4?(g@X3Js~K}3;TcAdhc+m-}ryLL^j7J>l}`m5wiEOS0QDltOhbuWMmwB z9g>lFanb{-J@A>lne6HX3y1w84x=I|cao^ATG1F0z2*`^BhHI@- z9NmF8S%EouaQb44nFpX!uV#{X#MF!w@Z$*bho~J4{9;TLomy$)wPJBEu`Q|W4-h(e zs1Dwe2i(K%FA@cYR*52pCKGlz`yODp?A`|pda9kB-ia-vWOynzUi`B{hg&1aTmW~X zvL8{3wetYOV25p zQV&$6^hXE7`Ch=2U9!AE*76(AbVk_gIz40hn~RQCceZc2N8a2Z(-HQVB0ko3FrYEE z`+_;+?bp`L%@%NA!s@eVG`-W&%H!T}I-dXM^Vs0ZiO%G3R+m#l^GJnG*O}*_0n*q) z=kXGUWZ0^)uMc;{+y9ZJT%<40yl=kPbRbD$a~HG?04p6w7TV&umvwGlQb_Bi$+K8K zX)CX7gbFY*;IQ3EGKYoDJX@PnSob=wpR;siX3n6A`6Ix*PjGZ3Dh@Hu?A)u79axaL z3tHxz2!hXW-}$CqijiilkrgTOY*kYq-ADIS>=I-@A5!lDOoz+gI2s-%`Zkiy2fc8K zr`H$V7IAqS6wcfZ)_?Nxfzwc9@aqkL?cJ%{c(?m^B&kWbG}_J2UON)Acv;hhGT;pN z!OGo#zqJp}l!Qq86}lU}Nst**>}0bump${{Y_X|&WcTJX6oFB2NEQyF)QFe# zkoa_T&kS`055GL{xtk=5!w~4;d{T1kd`%V;1+z}j%Dc$ALnsog_`Z(iC-A6t7Wjgh zPGeUt2aHC`8;D%9ns@{IoU)kA*XM8nM07QJ+nA3%nMuU~N+D8bVGVEcKP?S>ae6pP zm?SKfryPkpM2P3I)RUAq;Xd|7Xc+9tsW$00d_y#ZI2+Vj0SNFu^CXl@GLd*TZKf}b zHq=i322fmqk!r0r4i%$Bg1E;K3a3CVL3&6XsQDmdmjK-lO;WS{3$#fO1MWI$xY}d;^Pmz;2EFx$5I%GfO4q9nmhLz6?k`rzrPdw(G z5b(fvwid0Q7*GiMK{+=968_@ouGT^oq^T*wLDvfhT5 z>nbzJv$y{uZ5JdTZf1P`P|<_eIDvvg!g14Y&K_X9UQOX_zs`(9tB|$~))MZ6U9m9` z4CmszHo%aLg4aE9V;81SuIT$rXB3(d0-vtCBOQDxE&K2^l~9EVBPo1{?1efc$36Sa z0iYzK8*^Vw4D9sD_~=<0D?)UpL&AP$RBhE-R;NddWDq{yq>zI zxz3_R>qzwp#;mtM+6H7Z9b8}_G1CnVJSEjuulICHlEmRzMCG6EpIJRUDQ?`(vyJUf z77^*zR&R#N9#pcK@xQ@5Uxo?_k@}h2* zlGpP8kF}WW1O7#4bI)vRul3JD#hm!Kr%X^y<;j74CtNwQ-VpH8~Ok>Xj zN;;R}Bh~g|vkd4&|fn~b; zLEXcCeW>2|D!F~aDpJO}xA@{LrV-5UJOeR67I72v z^p-C-g5r#PfM@Lu8c|aWyt-imEV6^{{R8E40v7g|YQ}b5ef6{`AnAROq7@_%WxpQg zFFWuB7{~5Hd|5UXlR3RKqUpZ{NYj%D;`_)OP;Kdf^q#>^Hgf?`^~ViJ{~pLrhGq$m z>+*R+cE*=ejU=S{7^_)|vDjBiV&@_XZ5T+hwDZL9 z(?}|Z#6TTw0oMkVc8vZ=aqMgxeb2L3-#cSk0G`S=Obzc$(H5w~x53O=uogznbBdAP z4=XXqJfTuxPh4XC#z#7d0P}Drw?r8C1_WG>F;pid-rg(~+ z+{YVWvi)IK3KXnKd>cjB?f10u?A``6M(*Dsf6BNjQJT?m9?3;~fcs_;%=pU!f@vw# zax2LPR=_^+llfjwB@JV6PUVP8#zm?j6C_BdqD(b5Ywm{ALoBC8ETsb_LtLMXzSZ%! z$&YcHlQ8}0)PQR44=$Lzipe2sG|;H`?P3nEbp{s+A64r6la_ALHFPcW@|LqwPbT}6 zV&*?~ELS2B8FGp&2Z-!d`J)pYf~0ZU=pSz`f}WEh1o1%DYiNDdY`p=;nhJE4EgV|uy8raO4Y|W+_R011 zlauh|-p~4~Ae{)PoH2jJ0bc~%!IUgf4pCAnl(5H7-01=(Z5Hb?^Wtt({&6}({nSqy zTPa7P{Zqe2JF9>~Y81lS#Lc=9QSfyd5VadQYD-vG6Te4RYL{_v)~3)I=4xiVG?n__W3jI)<9BKOw2wxyJ_06*%$Q|4Mvne#pB-t3)IyMdb z&>L|+w{=}&yG~CNwCJj=l8ARVVtpD<%3D`nk5(c?m2!E{=`sWiIz)41{gUw{PsEdA zb*GU^PTswQpU$k&M5G!=a}yE1q^v}_j}t#)qmb%fS8pMVUdM@L^<3rK6)7;tzfR?% zVEdid`MDuzT^=hob#f92gQ$xqEJDNCra+BwPQL5M(u+Hj(w8ju2o*dTRv$|2T3!UM z&+lf8uJbRXB6rirf7*4avR~6`e`a1q*U!#|961bgBP7uKoTHn$H59+zrPrL}e~;Hl zp-6N2iNJL;JhZFP4GL0Xm^D+;JK^_=6zYPRYE!3_-;D8{(eF6*|-PkV-A+7=={Ug9rR~LMgEX;ArKvlDd+|1n*dnz;E|)XjO_BVSV}vGdJ18&BrV|*RIxb0X=ZlYSM@e zKK7T$^6!a&-&E>^P|1d>z{z1)`s;$3m6&5cPxgpxLtmBH~h-gz_3A_1CX%Ql$Cu z-mkE{2nXE=4Z&EFv@Hw(e`@+c+rCEbDDjx{4|u#4GZjc6d) zBNeES5`F`lraX>kvV&caslJG)q@q_lbcIvzSK34;XrVl|_x)FMj24TSS)}Xf!e=7C zd5URg*<@p}Q$Z$N9+y^VFuHPXGM{B`dvV`)c|-?-AX;vvm+ht+#a4#Jud%lMnq>(C zIykg8DW8^A57djLv8$}aE2;R%XbIpxmLvW(iUkP9xaQ%>m8q{Z_Tp8#ze6euLUr8+ z{o6-s~lfF#Gg7e>6<883}6q48ghuFvNX;rh-skJH2;&NBKyt#dD-9dmuWb@VtO8=&j`e6x7 zHrbB?9ft*UWw0KLyQSs(Y<|Il1DbM->F_HPWWk?s%lMkkyf0wT2{;e9N&jx@_2Y(ml zxU6vnvtvL3`*{&nAY6;v&RAaICCS24)#XAQ#V3fd2wX|l;np2>7d_~fjLnEY7T5D9bT!jAg9@d2-$UdW^BR(*5* zUpWBrmR~kOdYwpd%>4>DY|Ae4ZI#Y>;?UnH(y}V265BvF^83!lukk~}K(LBez>#&+ z$>U6a)rovn&HkrSH(vrOJChz77<#u3Y2V{Xt$VUsIh()ic?Ok0`fIjXucRL=ZniWM zJO{wc%dh!Bi`cFA3!m~M8i2SHpDepOjB5gs)9@c$bBC56fKz0_>w;07PbBrf1myjM zAqTRHWNc(`7&6&UrA&vEKkqiy#4nv2md6!2I zwr*ZFqD^vzV>BZ|3R}6TM=R#YHn$ul@b(sa*U*VxiIF#G^|7NhDlCeXr~mOK^y5sd zu&=_k6`xP)$GW6z5!K%w%)s%R9{T;hB!LRdtJy`M#&eO9eEz(9L#@-TQg-JhKjC@{ zV+&mYz2k5AT6s$=HGbyfSkTDXU!xrGxA)o#wQAN%z6A5QbPs~}AtCvJQ z@Fv~Lw9+i8JSbD>sPm&MUjf7!n!FhU)=2R ztJ0`6DgT=iKhqv~px_zJbs#<-1HFQ7=?5N36)pulFpWzJGO6 zt+G_C)k^oR*jk{#Fp{b*+(cBHp~vV>O-nB%zc}3+)UU!t;;iat7665RhIp4N8CiFj zNJR7yYJ*&uC#_Ln)!HKBf{*XimC3jC2f3W=^oAayh?T4q51Y{w1$zi3zg)o{^78G1Yh&p*qyoJGhhWiucgKRSKyzEscZWLviUcR)}V zVFOd<4;LmVp-LV;GOf`(gNRRQ0%F(cUP-gYShs2pKfKLO zj%A)z=6#Q9CSPts)yABu%<|>goMOz`QIc>o>3IgL_`_Aq2W$0@%0xwvA>=^vj8@;E zUu|{`a4ME^p`Jz51apYzjvuq#khd6+29Dr^Yy<^hjNK|FrIfW`s8m79tI&bYI?#=`;_%qX<+mU6=12DM(fKLeJDE zt2VYH5LdS{$+W_pj%02)S~coF!+jPPKr2;)CE5v-?vFpVlP< zKHk*X;zJ#Gpmb>Y9m4D|G7K7p2?$ZRsA2U-M&Go(**Zps$uEG;yH`gntevDKWsi5; zW8V8!{+Uk#T+%5SPH+TfOdqkV*V7vFI;+V-2}I?$Il%Zf5Cpi!j`V1X7p~%;i;d< z9tL23D$>8$GIglVF|%l8j7O!1aFY#)kX|DsJeKTd2_zXuy=~q}Bq{4PItE8zTc>#t z2^~Xt7=i~El_T{sO*2tJGhCX-p=10b`PgQh4xMgL&-?q)+>sF+(G2rQe=1Mk8x(mY zXWrdUfzqe#RSYK_QMCf;!W+T9zG4!#+#WO|761h~sUJ73_d-v$k&^3%Tr>6e`a*we z^?0h5n7UPE$J-^E{@BN7Oxo~IyNSpw>RoPej>4H5RA|G%Z~DhZ;doj+AYDrqN9UsM z+5)z4(F(`hy*kS+EgDFn-rbr=-1`e+0`U^*C5@cVbm~O`aw{Wa^|!vAw;al6-NZ)Y zD3tBE|bcx6uBx33C(9}75kogyDJVn6G~*GLl7{o`14tkzQFWatJ~g2w*+9ap1c zAPpcI$;EsHzK)eIJUlqCI<0DLWLl9({RC7X53U{iCbDGUkoANm$4a^C>e|f;6ML&W zmN$Cd#N4y``S*>3Y6>RjC$5o3*DwB>aJm(qJT%jpd$lF&rzL7iIGusAs>k{qh@q=9 z?*FxSdj8_d5L+WndW&>bO}-5dosE!|9kxn5jU(5*-p-g%7I8|wZu}k=wwKNSM4v9) zUZ*1>QH!~gDvfJoFleh9DUXF1m-jz9ci1fmVSjV|38gmIk|TJRytSwp)46;UNHq=D zK1~bi?x|dcNz*gX-$$I>ey+RtNpu2N^0qir(k~=Dm^Grs~{T z%6WsF^UW>6yx*vLjbaoi4DBmdRmR6U^O>eUlCjy1<%ImXuFU+$>g>kS`ICS3XR|t9 zB>die_+A2UuM(;LbKE*KkhfQ`l_aZkJLDsA{Y`bkoA0fkW7o8+b6rT#{+|Qk*x~lZMFK79D zT8AGBG{pO@6LXgqT^w)tEJq1xv}@h+%9SC>MxWSS!VAU!YdZ3o$H>Y@ZEGP$mYjTy zr70$~QHa`&kumq@rE-xi=C@V9GWOAtF0XH=e`h0^(?O_F`S@d|X3>=M8gy$Y-Na@s zLM^sbOU0o>EB-x0Sgx5mACz3u7*P9XdbhvlCJ`VDySbaA#Y!LWgTx+6dA2@9Wo}f7 z1k|k&W-sfCv3rD%wEO3+e;RAmOxvV^z_&2{HX7>2u3M z5`u3k6}THarZBzqtRCeXz1cjKV;VYFWbU4t3>9jTZi;Vw`E23c1)Hgxk5Cl!Vg7q^ zX30k=wCVhF5+>`l6P$C%bVRl=AHp5Z?wFmCCd={TqVwv~eHL4NMA`p?(~a^P zpWb7(8pe$G-lGgDo|g!F2*5w-+n!oC#CU0Il1gX>MJxsAh>-`;{cO~q&N50N*BaW& z%em|F{;cIyHj*J6`-g&-`Xl+|voYFKl1*ridj?~zvMR$90=gzeXD^W_AMFW>ef9oD z^3||f7G={dA*Ft2ccYgcRtxCz5T*|T_D#m+-P(U*F6wF8P6q2`$5sGRaPEOyVI7^J z%$bY)q~?hlS(HY(-U+nn3~%4u~ksi zJ=WYXQ!v$3LF%V9u@gL7AWg`&<0>Ze@xA1~&@$fl6nmY?kDAPq?8iX>N$PvXXe?b~ z71^+Y{_0HYN&TIV4eMqlf1{8(s%*UeE;6o zu@^kIC3CGRN^4M9vHkd_0t%y64vUkY1$Xk5!dG;5V<%cJ{bthgFMn^7Y_??C`?j>_ z;bIb?@FdTuQ563-1`o#omjW$;etts($8)K%EaF%hV_p=ra&$;js7Xj4#{{CH4rH<|4y z)b>dvRchD7d}kC;6AiN8NFheCxz|ms^3i3e=iDGI6G|`y0Y`Vz<;^-@vilkSCy3{E z)_ug}<{nvE;nv7hX;U#`7!8bm)fYD2m7G~c$ra=XMmgujNh;rNgsUbsGQbPGntaVp zl)tsKQq903Vo$9W#_RVk)4i~fInBs_P5BHcGNrz-48;R;vG^$4*oL)ViQ?%`W5=g& z40SaY@|+Vaw7`gpcEY>nW3;}eI}GN#WHli;Vv{d_7hb~*5lkAb zQM?PLEmj>j2ns95TWBxwo~`PYCEnlYJb?C;uPtFa?mw$;f$|#hrv~YR7q#77<(RPZ z$EZx~T!Q8KH5?7XZBXg{3ElV$SjdFv-v9$PBP&PFbwD9iq$B&f?m|$sEtP@BJU!0UuR$V2HHK#lzQBCi3YY0~(;fh+gL67*xDQ zDPDlmHz?uRscQeef0mbmT_pVfVgyU#zqOa= z>O~cDiTRC6Tb7XBl$o{p->ZlhZ5YUm)Hz+hfAnD%i~M0Cq}5=9B^#1v8vo94c;~!6 zU-(@`agF<$3F3N2i8@#--SfMT0_h>_+Q+YM@{yXyf)H%t8tkYO0+~jQ#RYD-zl_w( zve%wmd=X5d!dxn>tlDhUr`8E7UUMmYqdUZ6NIq7*N-kc2zWP|MEG+Vn1rhPGP+Wo^ zRK)G*M<@iw{Nv}?Z^|fq1@KZ;itiA9{6t|f()U;=qe7WsPk)VM;lQw+r|`W#;niY8W%ij3XTN- zBpZXZASolr16&*x$}aGLQrDK}%N&Rlz!{y7Oqh->6r}5Fcd@k*Ejp1zd!T~ zLgd$&ql_ga+76pMRQL=M!LHOVNYHJHtg_Wk!s0;M(TtBSPPAyz8T zU;dDOq7INA*+7cOUj*r%kk0huqN#p%N)Jd>kMGqnU_Y)}20@80eBYC&HzxW`(0E zts4gTX$TydK!W|Zf!2Th<&1JS(gzB{oF2yaDu5JLK&sL*=ofq-7sn@AWi6&mQnGF= zoTl);|7}zdh*sro<=qFz9za0r)`;&}L}&W_C(`nS*fE`FLO@420)e;-J?j60wn6OK z)_p6-zjv-IRy0i^1J&j?|J5Ks2!fq&LmWt@`|oBxz)nn`YGO?JfU`5i3rmXP51&>^ zL0MeHSEZOw&K+ONaqtLTFo{m+5G0k>33C3D=@O5~MBw}c2=XuzIi<@A;m%Uarm;6< zA%d5`8Z4$$;7p*q4eXBfD8w|4(z2g=H-2IiIuiK#n_7H;+3^5woz7(x)`aO-fWUVp zfm#&!)(ViXME*f^agY^yC_@n|>4%f^ECk|8o)hl-2h!K;a=0Bt`oK{Bs8qBULIN&5!$m3dYy&ODOwXeJ_?*a%rqQ@KT94rCO41L4)Cg9*(xc$e%uJG^Yn~H%&x48~24fx_^ zc~HiHTAk@OBy`!P#v^sE?KTxp!LYFhzK|P15EhUHJwAr?7Hd6HpP~wg6IT+jIIt=yYi9!#j%WC$SG>8@fiKS1c>a1ifs2$&pQV$ z3m@An`q1ctywj!AKV<*Ye>8CRa-jU$nA{L6@dxM%_bPv%aXzIM5YnY85gYShjHC|6F& zJFB)^l#*3 z@ip;JR}ll8Gls~&k6YH1#vLzUpHhnHLaaCxGBL7tFTks9ckTdG>b;erjmoP;rcr3V zTmr?J+XA)at;MjI$v}&6xO*>a&gP;@Q3(X!s>rQ5u%RT^zV+sur7sfq$N402%J<}J z;5U%)erk##h%Ch0S&A?9zOyIF zD6RLvjL#9GX$M**1%CIeTtpLp15}T?E3k^Z>CccXk40kqKvuzt`2%Vot4m00;vQ_x zK(7Gjddl%51eV-FFjR(tkLvy`H69bsn%#%K!ma8uZcnm+TZLv3)_t3J$VTekZS`>@ zwIQ#U%{^flb~;8sP9aOv16uxF}8)VnCD3Y_*%bOB$QHP^3ei_ z)#R=zr}@qz#BaQOiKlv|g!i1Q1^sdM1U(CX(GvWU z9(a+scTj5GfCw>E6F94vK$Y<7_YV*y$b*On5_43|ObVQ77z24c_0=ts34u_|P|u#u9WnzgfhSov#~e*EN6l$w@Nev6=DUaW z5vWM#qED)AS7eFgl!GUIeSHb*nv#2+Hmq| zijLOgE6)oOK9FX3rzH*krZhbJZtd<0ZE9rm0*28$`0?F#!>=i&dKkqf>6E%hb&m>h zk$(%vmQ5OsDAdy8nXv{_ETEue4DnDcjt0qHCgUwbDWg^5VHBIBy*rUD)@y#?x#tuwm2$g`MJ%(vYP&v#%!CZ?rDlv7x@zYi zSU-(N^~(*JZ#UzrPqd3wM2~3?{Tkj{o~Sb^%+cPZm@_aowkwT&95a#XcJllaXFQrX z_apH4QV2+wad?4XT*(A$VjqJ%$Ys<=E%J!gc3@R0lk;}bGcb_mW?Y10>;Zk*FG}MH z9H^e#GjbtN5Ip)W=Hnhd?r@bXGDHu#u z{FGtc<8$wh708uV64U+v_kr}K&`uE^%lX(89cU?P_+;29(j?1+|B&E!X_o)CAn*A!U#} zpSo-tmTCxWI_Z5h`W^N_2rIBWNoXge5o!}6>e8VaplY?yyhw7wykH)0N7LGk*M0-_ z8^#ysE`Dg{kp~VB0u|scmpJM?qBP@-H*#z`mg9hPgA8B-b*q$91p&Y`X$g7QK#l=rh~zHN}j#?I4AS3>p$nSvG<)PuGV zNE{4OIWNU@$4sF5=xQ((Ki+5@PZf@OgB}aYryu#zq^u}v@+Uv9PxHLN6*szfgW6$O zJVlWyn;o6v6zT;zO;7=kzP!H48=)(Lk?vE3a-faf!)OVWi0c2tzYQs+{fy=<%oVf8 zf5N-u@PfYNn7KA1?)Gyl(TzIe>=sXOuN@_|MdwYZmWNSErCcH}qkZnZSMn$G)}*9* zlM`CBWM%$!_!r9~LZRBEa_%bVBgq1Hx9OA@FFTOM>`_)xSDo-2CGvMuYf$d;-Z_X= zIXbUaOrf19tnm#}BsRh`JIY8R_Jn)s@6sEcZ!o+5KT^s^Y|q~I@mc=$GqWY1)6{%M z6*h%f^Hi?9<~xgQe*bfo&8s}Ub)rVJZq#~D>Yg(x$SYjoo@Z_+4pu{=E!cZ?_Lyu< z84Fm82v&kQ*}Q&eCCoXFXvvL^Ss-jBDkFYZ(z1EQNP1qXzGtw;`Q1U~Lp@I_>KE+f zC(%EG)Dt+SMTaV@BwvjkkLqJE_G;cH^I;#JW5P*Wu}ccr2gWARH~ffYoBI!Ocn4kC4>Q<9>f1S!D;PcivkS@lO#OelBAcE{P07RZy&iZV`^OQkuSpkT$Of&+ z#>cGQwQkK!h5KfbC~{$k^&!>jI>oPQaet^X_BBZ-7|2Gxph@e=iRVW4itGq@tdka5 z(w}VNRRRI-t`zRx3cc{QnU|I+&W7ha`yhyfV2xX zR``_u-2Pm!!H$YJyS>5?PB~=Vi0b0O5GYAa$4kKhg5oCCep%#Mp`bsxY!cL4nqhas zNNEPQC(K>?q`ML&Ozm(QJe}0rD=>RM5Y5)M7hb{e#>N^yw8Mq_ho}5ZP>`^3H`sI^KGd8KX`7$fqT_%0(7+1!ML%vzW` zDnFD%3#3iHn`%~UYBfk6O7gJodQc!^GN-TJT=(Gz>(>-iA(3qhFYt3U>$cR}@hDEi zhbJ5b%!=O|W(qRq#fZT+C~(Fq#v48n|QTS1-^;()}1 zN}Q0WOR9w4{EUjhgq8Ghy7p#;bhBJ^Yh(*WO$H36DvCmR=fp+5iHYy!5qHbaL!oP0dk)B<*icz&j z(rpFiL}5-d*@6UYvnBXjki=o}qbG{yRJTVaStabQNrlF48X-B_HN=ZZP#Y#vU{xBd z+@2kuA^!Y|VfO^p@>s$RXyQoMP9*hKlTqkAyLi7v+IPVe-h{J|U%Hijr&AS0?Qbucc8#+XFtXw3l8L0ZI2;RiaU^VX zFF==2iB}d5{@bkRde2DLmu?t>pL|L)`&i@|9YYno>THh3C+p}{Q+rv6aD<)OGV8cd z7KIY#CRt50K}FWxEOfFX-l7-_j7BUkO-jd4;%mIWfUY2A zpyQ>ORpaLKj{=|9#;>O6Q?U6lKg5!E)-tBIm@NEOuywV$`>!gq7Vl>YISpuUxEg{< z_g%qWkKFKde$?^LB-Q~iSPdteTBLHFG3`VNt%APO8~h?U+*Xq;Ulp8#1t>{|92FZ2 z{$fsUBRXqD31JD9cKqKJrWm!P4L{tAOi1(|6YX%wIp+U_I(i>M8Ajop5EA(yDpTQC zUc{o;UGNc?ydHk&E}0OVc2C3A)H+N?4*s&3=-inV9kX&H1?y%r%ZV*jB$p;nL39ApD05(jd5AhOaqTqjXA?l}GlW?DZ#R zl*lz%V+@;!VYLwAngE>@!+=h9?Z49V-(THWfGAc6ZGP=xN}-3Btt235V~8RI4^fSF$Qv+S?TNKm{F?@l_7U4IUT4U>Nz2+JTc5$ssx0lnNKl>xk$_z zAS~bJ`<5XQ%H;-XD);>+U=mj-`Mlhw^5Suf1KREr@9e;zu)sN>r;oFvy?*aw{RUY* z6>FXPAF+Bu97J)5n9?^PeMGP(%PH?`<^=E!OVmlTF9vlW5+Wk+UA(;ub&x7xlUdCeymFKs>VG%k-=)YD}B z|AzzIe}1uQX5_A*KIej8#UX_+tNIb&z4uv5aR*cMZa7{N}URHPrcfDTYTgQbBcksrbXGz1KLNA5D3n6hmLrC!vi zl#V{Dx|y~IaZxwou=gQN-oY9i1`OP!1-i^D4cC{6y`gc53>|xPEMg{*NvG*xNrU=bGhy>?cUe?)e!8U z)wTx#uL(C*7FBGtdCG57O`MI-&NTh<5+Prh8A57iN$%4ZiE5v`(I-THqTR^iUIK0L zSpc^aSICszwSoh>We1prIjbJ^{(4?lL{A_RUJB#&qmJ5_s$$&YACRvIWwj!{7fK;^ zEwEit+lgUL7grj)e~J6wC)o^Cs2S_!V;?R^lSL|R-(1dW-s8qkBNT_^i?y0V7`0Yx zy?oP>bz|ZZoYx3HPaD^|p*CX^gd@|DVFgIDg~THMwMtY7xt*+fUl~2Utk&eP@JDl0)z05ER8 z05SN;!s&B7%wL;&l?_uJvx;9!Dt}ssFC5{2RV1mykdE@O(^}Nc4g20;oL`Ck!B50c zwF8$4n1BW%skZxzUPtetzv;gWRXUZ~e4>SJz;}^b!E5Y_bqi)6P2;@~^-DYUeX_%M zqCmFs%en`Jy4p)SNLA=1?6H<8w8I=rwsYc#;NZ?Qk&=GmqwGJ#N$r|-AO^A@q*^_E zbNA0N%Tv0|9Xq`KV@Kl?W3!d~FjNM2CaISup4dNZNqtRdCKiiXRy?eKeXov$XsF^sU8^MorcCTe0090aFpFj#JncB0+ixyQK^qGA}a zrqmR*`r{d{a9}5ZX5dsfeIFx<7hvi$j)|~Zov~~2F4j$q4Sd~;OFFp=6)B?t3cC?S ztR2j}3TCh(z2G)6nWkVc$VMeOztmBrY@TNt)o{lp;VkZ0dfQFHDt?8N%>V;GT*b&$ zi;*|2WH8Q4M52r7ssu0^Sq+ylGlCw| z&YyHtDJiMLtiP({U5LySPl8W)p4!fnY7xKflpCX!c!B^G^+xT7MjvT+c9WYxw;6IQkM2_?fd2 z{6v6uZHf;+1@nU2KRpJ@Ap>0x#^KBS+WhlI7MX8&{LFFy`tEGUQJ6|UIcMs)3}2`_ zh%0Awqg^{~--k(N(_X|=G9}nezbKeF>LOgF)S-~{RJ~%3x!pF#rj^s8YUX3X+4mZt z_C0DL%W(p(5iUaQsnVfW&htW;q|?WRh@Uqar;uKP|9em)codLDVyN^}Ka)D0ned_Y zj?NA+BdexeOR!3=^J!!KDYw)Y(um`ZQD#nl^JyE_?5qDGNohn`V)g3bEd7+1lV9d@ z8Ik27;w5*K%;%XB-HcH-XtqE22b0=~4rNH}dBHNUT%A@hgBdL0RVICE=tEHy$SZI) z(Um%^8cZU2?mN?+-~MA9?gw<;_rAtGg}9rubb(MRVX(Z5jM$J8E=O8@|C;7_^soY+ z$8(^={*h#)RT^mL-!wojwm624{GFRS9973Ffi`n;1iT&qEVrPHa zTL5p?r+E}fF~WGxd3`zmKi@r)!ujOqY7j`vU+v+#jbwCy+mD|*#VFT6_-yPsgMxer zV9g3_GQ7o4c(y0pV0O=MC=R~8`=hLn-&qbx;*SMSe;9)2IuDEAXhOv#heGiM4Kffz z6afdEFQ-0QxS}x-MZnCrGp{s_7;_YhQr!Pr15+Lramm>%preH>wTw<8#vH2WC)h|1 zj~B*#=mG)7m$7#Z+`Ic)YmF;vuYD8T5~94jR&|Ycda`_WIa7yuYI#IZruvW#5R6Ei zFX4qZW5cPO$A<~Fl6uAGC+;Kf23nFqpY3zF?K(tDxmcHU-9I^t6s~5~88OADD5N*L zPc_HBhEj6GU^;;qbzhD6bcH{!czbZC>%e5jP1*qraMLb1KmUg-wL0#>>vZqqgtOfC zG?FI;GlCD|zDvw?pDYtAZay^UBBpSc5v)vuzrQ#-HA^q}t3=vyE*@N{4&HgUv;_r09kjt$uB!2j_FvNoz>aI&}J@2@(Zl z6LdABU>~1?S$69GjDjngB{HQW942t&VmDPud8Bv@j3=EgLhiuxW!Ncw5pD(Yf6De? zMIQxTFyrRiDmIOFXe}O91)rS7_O*?eeR2cpLdKmg%u2cTwqMKk}u0mn2?tC?s1=0(s+uVwCJ?^^WLB(G6wCCUb( zP-X;GUxpHa!zZ7X$!)Vqk;I1FhUNb?E+L19RN#=_LWgbJ743Z9PQ+ds1s+r^i!-)p z5Gk>_v%S28bih0~eSHFJ3lW_;qX6Q;DZzC=2DUr*it=`wXaRbARw0EU>X7SZFt!l# z1=WEwo!e%bEuuPjw)^$k;e!~Eh-}M-I{M;vk(2d4lYF$803w54UA)BWc7PpxJ$6>c zOZwk)zYg49KJ?4AFp#VR0A1UQJ_5;9ZWSZo{Amh4-Z20jhKEUbFnTpW%27T1{U}n{ z)C5m0l4;-pDg)gFoHi~gfQ&yF>QUA-Ns-E$VA#HNGuIR)#!+Di^BYV)L@5=wAm{O! zXumk{Jh$HXE%?Kif#ADIud))FatpETB6)~65>TNV7vBU0@Qaz*;t58Mq^hD? zCD)7(Cfwav2R_`Y2|RB(EJXQcfn3`-$8-MW4V?o#s9X)SZ0Bjqgz_M7sHvix4}(P1O%9;SiUGsiPj03wK|9 zC}-623leg?QGDETYws`JXv?lW@BqpA}0X>DDM?W<+$Gsb8OtL{0qboXu_uoKq z)H%lk__7j(qC^P%Y5?r##GKBeo<%4sp;R=MTM_U+e*LBeDQB#!-uGc7zW`j9i3t(q z5Qg%wOw9Xd)Gxd{bx2Pm*dV_3tKae-g@lg8u|_Da<(}en=3Sm46cK6(PoM@0WhRK5 zU**8^sh6ACXht7el9c0tkmW4d9+kui-k58RAb4KD$sob7O=o>~g&*Lctbrl1$WXTq)( zOAsaY*`gUl&yDm#%ZMemN0_hEq09&*DBI{bjNe0|~3FfXAX{OX{oobTzYZ++}GG3d2^)uy~s<4JltF zr_fa9--%@0TtRkcV>Br)sxvG?E?f#gYY>UrUc0FIIs~F$? z(Tq^3EfQZXYn6Gf-I6)ygM+q@z;kINg3jGztr%Y9jI5qy?>OQ1 zt~Fd3X<#b5035cO>9KRg9`44CdT5@{xN@9DEaF2KAw&3ciE(0PIjo{buMol^E+RQX zAFrat5c`Btx`!#<-U0057*eyVsf)$n>|_;UsAl|@cU!r&hO>sJiW_s*fZ_$%&R_7S zR}#^7FFot0S@}DD?UiJENGq#41i)sQWy2`%{WY5KFgN5+*$3aEOMk+Oh-91v4D!q1 z*7=-DhCmTXcxB=j8aNoo)!mr<(LHFU9nPWyQ=|>$p87*Yoa2XTdPe$Xt#w$>L9| z6t?p2kfh}QBO*~4DB%gHSG`KZuDl!r*{=NTsxB8Y23_jDa|;6+r;FORI-2Qx(z&~}c(~!*y1b~dzDA7E$TQ4wZ{?`3 zlY#n8kTjSTo=Ox)1!F7oRVlRfTPG-t?C#g6he|>dL>XL zx^Lxmw(Zehr1Lhz{!SS~TAhp5{4P5IRZyyh5!=mK?c_iGXq3#6|HJyr;t4o}$rp>2F64t`pn@o)MPg@1geNrFNHTVmr zb$fn&5zQ9HMocPV>F}1t+`%|`$G1&C+LfT<|L(X*sF`aglic@mw|WG1 z!q_PashbmxE-w5ycZcUJI;Z7i9gAH9w|$%cdL?_7&sq6|r*cV|!bi}$D}UdB3Z0tyA=-k(ydt91@)`7Om&KY0W^2YH;lO9HP1 z6f8Xx5|DrdB+v{2g_iuSL{w#}_vv&>CGFZX0kT`k4rQ>>Y&Po(kMB`e+ueMy3I)w? zaaMq}&Ot4|Sx~&G7y-{gG1NM0jDUh=V;gEX5|DrddM1F-vfJ%?MldLLG7l*?r$?vu zOrU2ryhCJ|Y7%IHKnw?qKDRBzWDLUzkiCCA9#h+plIHmPJVOagzLAC5OM$x1>10000

    ry+WP!p<2a4HZ^_nY}bKp$_AI9h75lk@yG%TsW!%FWVQV*`60ANDb}< zXvauhCn7cZgpJ*^0sB?y8&fE|)0`kQ3i2k}FJmupqHTa z!h91vl&i3FrmQ0Y9q~T~fuoFdap^SK4g-k%-GnwX~tZPq6ZV9$e*=`uNrZ8~$vrj^@FOE*`j6Cdv5#9~P))w$nNiG!a~= z_{c4Z--{T4IjWOt$~+*|{N#1M97cSmuxm`W-Jw|fqKQv1jkDyfhX!SF!KZNts%;59FB!U|5zeow!E3lITfJ8|dc2sW%=1<2OaV zftbdTE&FKIHg|qV6I*ksj9T3;`%zEIpn&3q+hpjby$yR4Uq<{wbDytLqsSj|x z#+O%lDvwF-ZaIKS^iincbU)%xMc5;(7HJOHpj!xK3PI_gpoyE)>Yx?%W~y;Gd&Oe? z^{pB9$=|gtpqV8UU^AR7lv=SB_&t*Xd0bm;b{d2a2QS_3pcw>VN=0PpR3-BZT<(c* z08-8d-?zWsqR&fEXM2RNYUM9)qvyM73T!OFMwZf@hMV)i4={|-!vSP}PI+zs4w>fW zoYIO{HlpXi+CHMyVv_89wWRJHKydvbh*zvaldl=-q0%?e_Fl}Fh&t`9FgK^U-UVpD zQXGhY#;B?n@miv1FUM=iOhD>_fm?}l`fIO8O&d@Dd4j*9Hrw%qy)LlmmmXtX+GpxB z;#3v_@J;iY=6@a$bz(k9^(&|G+S}H`L^?y zUvxb^)d%4Cm0?Y%BNN?L!*46ag5*^rlvguiYdQbP6V7Z{!%G<^7c}2?1&Uv+2hug? z5zUqR#}6j;N-wT|BCcq4A9+e4|Dt(1SI6#CY@CCZ5KK_vkJg!pw(qI8 z_>Sw@>5V^_-trv_3)--w4|8HYfHDpAS@ViYaWADON3XMxF`Y#mDOH z=a8KQQGm}ozf{wkk{#T|RtKI3NW4Y?7LkXgeBC?bWv>vzvi<&{Q8vHYS5lsL8RYB4 z%czA?`R?_^eH>K?WV)NMI@fpp0<9Sr@!O7lGCgdfnK#cuce2cVBbSstyg%oW2x zUcl0EQ% zeGmXMrxqHot(Bg66{@m)ct3SPekNIS^AbvGWDfhB=$V{P+$>anwx*SX#+Vo8P>yZzc}560LuXoCnOg|lpO>f=>*)? zxyN5B-Aia4pm=u%*!B7ko5`6b1~7B?+gI;%T}OIK^$I4=eD`|?kb2YpFvT+|FkuxmD9u8e z0iJx&ehi|rkdPci90#?WWbgZmM{MM|UJ+V?d;x#yKT#Op?Yd@!iQ@5)xep}de@xW9 zOCM!9wRV8NJlkLV6k@0bVBR71CQMuS1~X+} z0wtplqP(KRGe~q5gnN8KIFVSMUdV-d3M#_-9r1ybowWdDjs{Ze0RrT-ooi5^BxGq| z_+@V~r^-V;I8l*E6@xV7GfoZH`#MpfcN}XW0ui>?RDyDcc6##u^mk9ZU(5-aD7N zkZ2G{%s}$N3PIm?p)uXSi#x?J=IKRuSZloyzL^g-w;D&BMa~)C|Bbpxp?wLEyfA@O z=V|bXW^DXG_cqOsBoW*BK|ds5a}@;thy)d}G$XC`KZlOps1H5rJofc{KC}+y_B1E1 zPjIgEg9~1@%6r9uG8Kkir#O9m|E?jDWr0GXy$D(+MCOB({KTir(D^y9btH>)Ql=o4 z^X2CTeeH+}FhT+3Ln%_OFiIrR<#q(DaYWN%!(s$ppyGr4>$^WX_Vwl!Zq-^o0in-v zCwVkGM(bSS^tszdwW?LH$CF%}FMZI$@Hx?F)RxnXWWB>54{uVr2@&tcE{~N|3%alk zTosPTn>b|8A2Wh9;0NLS0xnU)E&*2uM^zvsB^HAQ7TH2(?t1D z{5(Zg-@J37aOg@rsuVX%!%zKC3X2kSv%!qXhaJOUd;H~kUem>d2L&mLfYfzPq-sOe zp8@!s(-N(-jm+*=$Vip@cEJqxKsPOVA6R5Xk%&a7^-!TG4;%_|MPm_BP9OBN4BlSf z@3EM|#;S)q?G0McfN~l#>d_@Yjzi-xsJl?0ciP>FUAPN_S}-Rh;5pC1;J}WD{Dvo9 zu*cCTO8@|aWY=Le*q)Jm@ZSdkDJX;lOLItykn^{#g4q>Vjinuo0%O4g?U+spV8Z%f zY|NKY@=6FtdreuQM%4lIT=&IYP>I(>Czf^xSoVa(7Vn;^JDN*MvD4iJ9R>|( zyuR}(&#Ea3i#71yyU#tUS!Zg zM#52Y&NcsQi@^BI+6l#cq#>h=USV2rQIK6xx`ZcMIqm=-{?Ic`qGWY^?3 zFVa=^0V5~Vrc&>STHq?-vuWT^o0O~MPy=qx?x~lId3jX!9(yC}Rh;s|< zbK634@UXNK#1+Z!vuSJ&?m*NRim(7YW7t_Uyr_Q(gt_uENO-s?3{#FuKx&^XW1Ucf zvl@)+2pzSmTMZgn2MjLom{M0Vgkf-ol%r3E<2D{sds-wDW2f2tMICGm5(J-1Cx~=3 zJ6COfIWEKQHxY8=RLxfG!S&SE6@RIX)B-M;d z)9}#w%6Iamv)RZDM!W75$qb5W)XxyJC|i!r~~-(_}q!-_F$Ub8fIgvq0_ zy%xmCw4(M4DXMR=5ESU}#F@luYd@wK;Wl})t4 zXyw)Um7max$Ru1k?E9eRqW|rwFQL3v$yFEw%+<2UwaNw0#jc7XS|e0GI8hdaFTc`u zvaT6oNMZ36BIG*VocVuVf(fDjC_|rGInVERBLLghSZ=)bKl1q%PWf>{2h6?nIVTh%6n%99{*1Z z0N1Lz!6Lbw*ohxa0$Utj@x1Htk}G9z+A2O=)V{rijN`mE`qsT1tEN@v0fcNH^wMmO z%pw*;qWuG&-?s+1-+!4>eE$3OhO^4zi0{LY*n!rnPoJn_&(GDe?AZCgiSC?b7+#n6 z5BFS79-f=Yz3L`jGm}e$La?DZz=sjtz$ zqVYj}Kq0W$)FBRhByFJdbPO)o1QTsP)1BJ~x>|OYqf;CrN3m|i*+GZSaE@JK<>x{i({#XCIE4|MA?p@)T0z)I4q`t%4vW!h!U}6?*q{4e}{Y zYW)^V`HnLos3?W7yqxiaDxn6YaE$P6&Y4RlBQzetdY&?nciRAj6ozVa+Av!cf~13G z_Jig?bxS%5kDeGpg0iYw`PfEC&*WGyhEwz_R!_YSe_5$h#W~{8Z5#NRA@=tckcEB! z3a6yl3&VfU#eC^GbvEiKH|CJGrY|xl83A8p4{^{XwWI|((y_C~AH_PMtV?y#EYuJS zi{6Vlff+^eY3EE>HuZvHDk7trc9Hf=Zpn-I0P1shgS}+vE?ViOr`Nad_=jU&2aW{0 zGz)mI*Rq^D8R|8%m!%2Njn_Qn->22RFN7RnmCzC&fprsc@;Nf`R7Y|m2~^ceKi~|( zT?1*6e;sEw$3{_(-vy*N0n-zTEWT=)iV?3{(~IMNG3LQhbzH`lT`j1BPD)BjZV*Cz z6f#bpK4OXyD>F~%y($YwlO@iLp7K?!6ejiBl1^a(-h{tx>ZuiX@*{(T&g=}q8*f3d zH+vj&81x>p<4;ekn26sUBs3N}mZ<;KubawImvYhkv%q{M*x#QbjYDeR z6c4yUnO#&{-vo&&An=(gJmWEX5GzF!(Y{*+^JEluy>>T;8&_Q;>$d6mtL2nrFHQ8L zo{syP5*|`#8vz71NNv+BAHGcL&5XodF!mLr^?i-uUh>mCeiz)S@5nSAfiRC$iK;z_ zxiV!s`-tJFdA`YXBFB4v@^3CSN(Ju%jz~6IicBV`B!qqlpyS^@UnN&}0Gt7-0DI=^b*e=7)biVH`$F~`(J zC*rI%G$sTW(3d)t2E(AfH}N;j_T$SfJxm%(lfGBOn|S>z+9sS;5w!|bK&@edL~N&M zA~AOSQJu6RHmU!#{ zqc%%H-(Hj0$8%l(>Ri@Kg3M?A(!{7ST_u{BNUx+@uu~@|2L+aYHEAd`tbj_1?aMzAq6b=|vXAY*$X^Qs`S1m=JlGGTTpuX$%8)VJ z^Han4X<}d|YZ(+?Z0SB5(e1AwPM~qtDsJ?r`TVU%a2%Tn+YFW_h$$&7K_qy6!!ZXk z2U?p3zznYeb^1!a$MRH{L$?OY9898pYRT6)Y8VeP)9d2Y_2PhBGAh`^N)aJPbI{L2nvq`R zwDNlSc|y!t>*uP{%pEEM$LYD~(njC-4`FmKx_lq8Qzc!>^!AS~ItJ@iRDklSe6OkI zefEHQ#)DboXk+X-)21lBb!=1&d#v2m{ClRrIrl+<#&q9N?+~;TXX{$ziFVIf53u*r z+!TQz5j_-12g|`+l1nn3W!Cz$<%B;P=&6V#9Bn=FzUv-iE&{n+dZ7XxZ(FwvqE3gT3Fe?AIv3SkQ6Nd+xuJENNW zO4t0(Dv}9357lU9^!px28`X)`iXl-Do(Y!-EK_WxCq8ZZ);8GcQCA$~l_nWvQxUm& zCe`S^>u~{r)E16#zGPDa7H3KCqQ{La6jvveCiR8c3H0Znn(5YNBAq%?!7y?6N!1{= zXnM1{>X3!-Y{FV!m_Nf>C$WtPqRJTbS&Uht_GtW64Pz*-bsbGs0OLV>zF3Tly<0du z{%&$DjIL6eV;`>tPV%RqCuqJRLQQms4nN(Vl}?a7NRj~?5&XL&!srKyId1l33?R5YGCtwm5Q+(TkK zU8g7h!6mYuI@M&fnVhpsOuJNgEyPDLNaWyg`m;E;-+p;@w zZhto|H>Mli+RJ029WIG-5nMXYE+GN-gi*aZ{pLZ1M+(9eiOw6RNhcoHuDC-$f+pSJ zchRCEWit#D!e+9eJidaqnik=zqCf9lqcILw6*KU$dKrC}GmE#+=m2K&>R?z~1~1=% zXfj?c@@%#adA!b~C|>q?t=Z5IdokK2wZ}Mr{Yk}+)E#Pb#`v?`se&YKKeoeNM=;T2 z%LXpg+1xfC<@arWSbHEUZcT1~nvEm> zilL*duPyVH^`9M^yRjH8Q(MNLnlbS-rcmSNXcK7y=+47exJh@et~ixch2thV6^3E> zBi%Ny$!gDh;q9I&I_?3v{#nH|CyG0%17;2!AMe3k$8?}6w4=}0$q6^~R>&xF$TdQo z9^pbBH{E1+bP2N`8wpD~;-CUCY7P#E7_@kgawa?C_9vFiOemQyhlvJx zaZ0~3vN4%_G9K|Pt7EHPJfSm@Sf^X3)H`|q-PTm%!9JexpQzZ4!!;gnEhY(rStw6I znb*OOq}raw4P1NGmj&GgubBI+^RhD2P031+$>{@%%W7s;{W=SK*-RnjX~Ao)ynv_pL9$P1k$q%p z2jfL6vV-p;)uHk znpq7NUF$9}hE5Oijwc^JXAq4$fx$H!D;*QupzcGD6=iC_BSb1HN0XjjiB7(q7?gbWNKtK; zVhCNGl2!sM73o;LwPGAa7framSkD_FZ7-FCuA_q?2K(PdHK7b*g0k$!HmfHM`HntM zjV!fTdBxFnWHGTKZp+ALMA1TQ+8ia2{cf+O@B%UO%<5Z_kl0UKedC5If2s(_a4F7u zCG@C=3xq+j#St^td6m4+uQz1{mo}5{Ta(9}iW7EVVP2Lb4~g|+;LwmD|9892);Ydv zPqWO7t=J-}kJh2oDE7!cFG&h^a`oGcjhm~^-OB2soKZ;(_ zl4kkvB&yKgUHP_V!coi@Eiy)fZ3F7AaCd2oOVd}-%+o9+KJp>3jI#{pTv9tGa+7o8 z0)~T%Cd?w{>* z^NH;)qskME#fLHRIR{F!?VJY_{D*+e#L4s>zmD$$t#M=N2$6$4vumy4<^0mNRYBul zFa0-84ShmkWkTiEE=nFXdQbnkREpP}fTDamt+0f!t7o|dMDJlT)@3u!GQ7Z|KA;D9 zp2%lt3HHdmtZNU1V@gu!K$>RVKZK|NoDx}5H(HWF!=|BiiEHA*q^G~+(s>8Iy4T&M z|4iexECl9Np3A~bO6b8*Xh+g{_95 z=%-!p?wtBy(R=iFZ=|70{s6I-1H9}yW!ugCibnnOUVC*%=Gmk+kgl>y+&4?eNX!B zS((v0Pm52g{fM(#@E)qyUpW8c0F8wZS?Yi;?e^|6hDNnX_`%cGp`RZsS3c{lGp^F> zcb@vI#5nEyq+V$-L}z}h<;q(vk+|^p`5=bj&N#;_n!mKGfX^i73EpXL$JcA;1!^h! zJfv9}6E^@+jDP+pF;njySOR1(aqRyDC@-UHHr)GHO|cJ_B(OS0Fnk^nniPS1Q!d?e zNej~<_lPe-W#g%xnU>Ya>j9hDQeo^Jx_YJXkQd{}Gqh$vZ$EZxkZ2It)7y2;S zhk+0&ScANNe&6(qC2g^*OB$btSTL(?AD*2f+kApI>sUwr$p5RxO={m5 zKsj%9LGsBh1l!iB=BSth2l7EI+Lu~$5hPP>O`MQv{RS;@9UeF;w_y}!&wNF=qUbH= z{hXI|wbw;1i@4@THzoZ;0<<8sC7H32g}&S(H68N~#O>YP0Ot&icpHojA{Nc9!77&(C;Hs|ZN4Dr-63 zPhEUbv7{^;D85WfEy=|POhjJq>LQ{*x;0f5CEqP{8c20PrrTfERlKq8Lm|26#vV-i- z;w|B(u?l$HbN5)bMs%mRScF`&#FB@v4Ly!YefgzRvzgH6`Fp2l^)*7eQ>7g_iVO6b z{u*N_{0(+1O9=H~GE~0FVWUt3I1Iq;QyioHrH5j1!R`d$DmCR|?WSd^L^(R{e{bAv z9#$+Bni5+dxi{uf%DGJ9=xDCmS$%<(DtuYX)Vx8t$t-N8SE|2$nsmcnO?dW_F}6AV zKvx_w;owpJu>0(fCrd9W?HjtHn^$id@P&uoGXk#kpiOL!7&BYZt0E{TmHU z>v9;l6k%$=4_w^Q(INLzhlB34X$yuVGr_R8=(Pk#4#0w`1j0O;8CCM4!SBZ^{1K7{ z8AXFwz|paOXqj!90z)P^=-=jKwN!u&*ehA}xWS-SD2Jncuu*^*NQAC_I$;bK5q?H^ z#iC6Gw{Bd`SZj7{t=f~Ij<5+#dN7B&`nbtYcha zyuZ(ZpF+NB_05iJI2tV;r^*9;C|{g3KM-AdXEoO+VNofe?0Kg+LLVZDskNUJEf_-S zLwa7O8IR(hE69xT#MN%15>8VQ&Kfzi3u)E`)GN1eHp_%**vQn`zL|c4Bxi(ux25L{ z3IM^pE%Bb5$<;%jbvqiil@f40`PTmZ*d}JXYBGZ1lDVPNr^|?(hR6qX*nzbXR!$bq z&@0a)9cbuFE%m~>0#*3SI1a2s!L_DuPtYAKC@`n7!2kDLy==~lV0SR-;Y|&lUjaL> z@3gMN)d|VGT)iK{xjer8-vpN@{#vN5BIr!UCLZoE+mVOcPtQ{C!*c%#FeL zN|DS*WnxhHIRz%AMoSITe1%;?Q^?@E)m!X$YzJ26Tw^Bj-Bw$6FM}T=mGqz+D$3uU zorLjg7mqWV8U{VbVFi}P?9OxQS#g}rq6uHIc((5akMHL+h=)qWPoAw4sj0_|cx|*^ z59n=N?PDD~@9}Ws{$W9U`MZ1j8ylEwc>N5M7G@^2dgF%QJ`|RY*f(mAOcH* zxd{`!8tfzrb6P}X>g>|HbuV~A9(oaou>}Uhk+7t(!RaC-q2sifMMdD)zANTCgZ|D~ zox-M?dOukjXKrKri?>(e<=5|K$Pbs9J(5#@K5gzE37zeb$!sF$`)dde@Mv7IVIpu0 z{2I20M!$uf?+CKVHV7G)H={jC854ASbw@RIeJhSvo2{O5nOc(^C#Y@H+<)@(3d0r7 z8g_=8ZP$2Zu-0j#rdyv&-acqgm6ZHhAJ7leWldtKoK3CA82#O+_I1G$@57H(_{U8# zI50SftVyTZX|Un!B`8!*sHrkOz;lg^JUg=U0E`roU%Qj2f{!4?HECi z!yR16O2OodOYQ6@#u~blh`VnZS~EER$YQRlr%jMdEBPm%Cb4}kF5;Y`JgAD7F^JQ- zV(l#1@7ihfbQW1xDT%32#L(t=+LR};yFwxhhB8Vf3e(f{v~4TO{-3diTG1efnDBFW z8De;Nof7_BUBiABkFzqVn0fRM^n0G9d$VV*E1e)jd?zsa;1;wCO6VT@R0rY|Erip# zY%U28;JA%HL7ML&W7>Eue**yYV$bCsGyepVY<5Dc;ePOJ>R9keR%#9g%TkW!l*H$q zt4$XVn-CKRcfn!J#(7ZlFk>i>qI6O>?#$@qfP6$Z|zqlp;r|LwU005?AQ9xZ( zajco!hhIf!yQ^m|UtcTT;Qi~J{*18*#VL{8=xIT8AK}0C&BnkRa$E~?#;7-{tZ15` z#h6@^{+GOmw$t9)_*Dfi_?QyEaZMJc%1)~zMNGuNA7$@P6U$BjHN8_xY*1|TW0a=E zz0%;bLABAu`XJY!s36aAUam_??=6Xm{!X-1;jJ;~Wu3#sroA7C;$V=$#u#}l){nN; zWhrs&sUNdD6Z6^MfsLPEzmS75Iw+SnuEL1_R?R^3ZkuO8u*mHXnLIdIBXi*&S~Ika z;i%k|gT66a5#w3-L!1g6We+hNxADU0=c@B+2U-b-%2+XCmfqB?3S5sz@s~$J@OE;~ ztOTh_H3(`klCc{^JCB+f%zdSdo6^MR7h5~L4aX+B{%XSWx!=MGqj3`*^MHRR^9`Y!VFrZbngwl+>&N8YLj0G6hSd_qd!If6I6do&q0K zx2=$e@h_rl2*05~C4b;;R)Ae#uRJ!1PDahEr5h#Gh;1&${PWQr?pW|v_@0EC_n7ss zwEU{}`fL_Y4)ha?;4b`>OTg97Sm2m2!p)19x{m)0$_aW(<9zEvgb5)o;`n(ke`yNc zklHRgJt`1#)#>APmJHeAKA%FxxnSRDt@8`OwIhYiVA6Q{lWMBb2|@p>c>Q^i1vTqN z=YqB#yPZ?ZU;CVYFOm0>C?2&Rk%Sd~H$|X0soiOB&+OUr4=0ifK=zYBxkBbUT#``WF#Z_i$U97^9FVt?`XYnfZ|<7rs|1MW=8KkNw}W64^b$-M zQoe;x)EhD$Ga6Z6dpFG#MdDp0=3Rqd?<_ik9daWD;Ipbjo-4#b|`%N zj?kkaRUy>+psoqAvULby+RHsImj89(QxtUEV&>zRBdkEoli!=;`yoayQL=5LSov6j z75;qx`^wBee_pK%f4(iF$l97d!*}GaHFRsP@aYfDpUvGSP_8o`akiRE{Qc)S2jI8l zg}quUGlZYM<)@hD0l&Oe#Oz0@3x!8ShzQpY#ozFPPPmjIq3{m6;yR_2)Kup1Udp&o zpLFH2hSnkaSf5T!fyR2H-~Es8NldRi@!5xV_ZPq3I1MB6kdqTkV(vza&|lXdKj_Z( zyMWA7mLe49u`hTcEjN!SncRaI>a;IsD9BPXWDea+`JY%!iu?f=2#=;m*CvrIKQ11= z+_kae(a}KoazaDRqu(&EZyr36XEROi!^n3lt4V2QjqkNsJ1AW}m4mLm!TpOlMmjaA zEM!%=tyj7tk8^@EEk|ppplGTdJK~^2EO^QNd$UN(gWLM_!qQL)+&kYGS`8iEjXnL_ zGU)H3C+p7kQvO~I8n*%de8B8wYlM8fD+yUFwx6kq9@UN zZ=<)-4a1mka^LrP&U4Q5y??yl=lA2f>}&76_F8+Dy~>Wz)ls7)XCfyeBBIn#SJ5XT zx`rkqB4)U8ozPMogi;|Qy2)d&tgNe{to%Uty~|tscQ!;s>Jf>_q=sL9F??7P)KFKq z3%sFD))b+irwNbaHTq5yub@Q6##T5Hr%Ey&6nVq=jjGCEHBrUH_hi-Y7*bx|-wmeU zvk$n)vP#yPyys+XFY(Vy&a2^*WyA>QjXe zPhE-MzKc;=W~QgVo^=z6f3)kYV9sOWWYY{r{=lYFF!%lm0uSB=VptfbP^1;i`U#{rpR7|2ohz#Gj2^~t< z55)d{|I~s&7WzUhxI4WK;L;y-Qas47p4C} zf&KTJ{!97peIzHJfs{-b**n8#iHBxMmEWB2PG&zXP?F=;iU|Ms?aEo|2fo_mecEP` zht5AQuc@J^9IxLY$}$v?en3~j^2YkrTa}5=b9_eB?LjvkV>`*;zbKC^=P^mYFT2c| z(eZ`2^QN#lKUDLr0e^4!;r)a9lzwZ<^LKq~U0ggUmFYv`eVWfk59YtTY5#a@Ql@|H zTZ9;*F{K7prM;?RqJ)(-uRnqA@zqO-@@5$b+2@V@^ro)mVD>?ZtC-}Z~U)U zZEo*D%`jn$QTC11u7mhbHgEPva|wRNu1Wq5y#=32y+cIwyEgXH5KO|DcjH|0Pt-G2bxY8UI8CuuXO zrEXA>jgw`3oE9b~L9w#i2DuK9S>I&(EwFOF?drZhN``5Z&4#Qq+b%TxU|^-PJ?Lm! zoYB!e2Ynlg`-B{Q|C4bt=2N^{9O!3~{Ijgrr6>`Us&Ub-V|F;7O`h2$hphbSA|8mV z+q;j=<*cET{*ck3^Kz}6;Tz49a%)psFEVNNrMT*S(`KZkbA9-7LfkSBm#E2d`Xr z-L3d|SCYtf;YxtQgReK(75UYPhhJr!xn@MRXgy)%zp9!={O#(N0?EYHn&6C=R1;K8 ziWCx8`aVQu-M1k1UNqadE~vojLwcQ>n2k;3W6b)4(D1vjgC!o6g)`m`|Hw9|&L00M zk4;G>vPYGHgH!#He&9Q0hq(E;wx49nGDCqg&l*0nEQ=nHb?EXIM{MSEpycdwq$CEBoA_!J3eecr)={LQq0{!pG+%&uyL~ z5@L9PdVa+s3dS61akIbT-U#@L`Eu5$&S*7jp}DAZM;kdh>lDG#3ubZ~ z^$6<3*vlX@k6+ia(4wpnaF+f)`9Q7s`e^DVAme$WzKO15VOLRYk&B&3s$_3il1g`e zY1ZhF&JfFhT;YIGXYqH#I$jDxULz*Mvcg6~&XUw3Y_X0>ugPNr*(|>o)h5y3-j=Px zJB`!e#zkJHI|XJ)Dd4Q7tiG%!s2(eDe7M;!qRzC+6v$)|trWe(#4XA)DAYhU3+>Am zEHD`c3?oD%QW;YDdp&w@_sXU^rGm_u%$BNA)o<;M9PSTpzIl1m{d!c~FVkNW{dFy; zBF`ZSyF7D+Ho2Q>z`Mtm{#7-xVgQ7xKm5dV2Oy=Dp^$MiV^k_y3ghVpbez>_5cU+` z${gFdUn)6eEn@4jzmCh@UC;I#^BeSYKdRXR4sDH#4^WLUZnzA{7tK5Vc(Ny?E^g}R zI+E4(*?HZD=ZS@*PtTsDLDWWf&zmG+fYAA;qfbho@}5n9n)-D8)8kJ|pC~?InC8W^ zzt*MZrG68&7u^sR6`>T*a5S^^>-zL=)uB_|+{J5byQx0JH|Xs4;j=?qhA9UAsDLP` zDE}l8O_%O_-Mrn7#wvU!B{xg7jd#WhtG|fOHw@sGaeSYAGb|MPq|@n>tJdh( zv>HQmt7(~Osp+!vPvx(yDLTbsK$3kP7DIKTOMNlt4r_0c?MacJS8U#8>`EXnzsAz302>xRQoOOk?t)8PJK{&-4BeZ@lki*R}5-7CxXp z)F?#%sQVH5gH*9o(O%J05!9m7;vN(mMy;fzY#cW8W}{N#o0;*vN^-;@S0;IWXy-@c zk8(FFZ_$Q{hUG5OwvB(Bk9rbC{Y>Opkh<}5>d$jM20ckVh!(p}WU8U$hDH_WXlA`q z=;-TRA;jys4s1u+rzU3GyWG)^(I(MQCM#yV9NU9zk!<&ax?hJ}R$3$4bPvTiKuRmx8-kbN|dic_Y7+kPrhy6ii<8(A4yrttQ3F&?(xpCDLx#2s9m4B z_Zg(&@Cc_mmAIB@l7e~l_M+!n<%lhrEilzd)_-yvcBXiS>}^?dU9IX9O-0x_kIT&a zPOowt8m!g|Jb9s8m*xLzuQelzC+aB!?!`+JU9&wew^r1u60S8QBo<6|nO~-!uWsSt z9?=#5SaUx=DBr33Ub2(vN%dFrfb90Nyl=~g@B0oYkW+ZG%dLgT5qc-S3=?NdRSQlF zPwQ&TW=8&I{#kzP*hjd%X}5)WPW2X;hO@C+l+lW%G2i5?Oy~ zj8OJg`xPT7+M3#zF(?ffZ5SCt4^3BB+$#MtcD$Y0fB*r0WES{MW1al(`fHv9f`&l- z5Wpp_^Kt-JN@_th!YU$Nw@;1Jb-On71d$Doo1d6Wm>6;MK`oBGja^lSe8S}xbQIOfc=+?^fkw%^wm&6YORTPt-9^39p(SWwpatuk#* zb!^d$OFOsE)_J;b_V$_2nD;x|&VfC-cl&1^u%yS({eI_^IiQ8Q(m< ztgWH8uVLP-ZY)hc{Jt0Uh&{3$jY)$xSatus%<3cJ<0^URLF0MIdWV9`pw%YCDZu{h zU}0VkVzrqzGmd+H;jnjnATH(NFc$-vo?;!vF9637ftU_f54r7&b?p8&>>~g``WDOu z62QMc&OdWpANLP_5gg23^YyVj`OELwMMXr7Wmi5V-RQryL!?{4gMRy7kq)CF8HjI> zJWsPozf!n=<$*IB(W|{r6?esie;S@9-EXl55pAwZ427!1Z?0$UsfLI%w1%~`h+~O9 zr(QW_XSsK8LPX*;pXs_k^M@tLNa<{?H{JuK#!np(5(A{*&yZ^=3-2EVjC5KPTn92& z^%w3$L=2pNey?cgKinfCx&pN~H1#mm){?SzaT0j-#^tq*fRB?ap*IncjE@xI)yc-= z)dL@=ch2roKC98Ap8YeN@SiNZorj03l%Sxux3_?|uz<^ZTR|a7NlC#cPX(VoeN5=_*xlFJ-`l%-*tqXZL^5A|NRE z=Zm0_z!SlL%}p38^QTox*WSnGovDhwlZ~@G0fwB=lP6*_e+~GLPyY?_--f>U_n{*H zW9Ywq`e&$&;2#wJ4W+;7^;au_U~=R#g8w4E9Jw_r#D}mS_v}>whJ@$UKbu2%P!Rs` z{Qdm%UOqk))OSimq(G#hqG;%IWqXz^ov!1UbgvdM!(V$xl9(>};q{S)yP_@a9M44b zXaq+Jg_r;;Bzkz292&hw?bo+*3fc5D3`Md~H2VsTdUPbqraFNn3@;{t3|^N;vIb4E z!$!jJVg{#uan@OM5f~0zH5c7(-pI_%Nli_qvvDpmjI42Kh1}iF6_N zlv$>hS`J?-9Iu@!*5zj-x^hE-=qmLGBH{=Cynd&fsIbx0bulqE9;$JgE_9l%87Tuw zI}GNKh}sW*jEszY?av<{g5aMB&H*xPr-=fmdOvJ(7?;vqesF|jD7PkL9Y)V%gq6y{s{=H@1ylZ85@Y2_J{-#N!fxwTru z!Ea`}^?}OZ+}(rwM06Wxq*u)UbHQR)E1n2GdPGL<`JypuD*esArI{I1)h|#Hs>yDt zl~EtI1183a5Bn@dix1f(1D_r2$&!09d$lY5PqYb3+$MhGHuvp?uvz_k8{J0lovB2# zY6p6{V+VjLa#ynmf6fEK%*@YedRzJ$>sFNz{l8IfqWNltk5!`&!Iktz&q(sDwsD|Q z*}+sL-qKjJRLRAs4we>;AphVd<^KTxfSR@t4u{!vC+T6(v%vcgCbtlYD(>;HSpKKwXg{H%&SSm_St>-F9oiAWW5Vv?~daK)1~9d1|^s&#oy zBe{Ku|6?2xan;p>l1WEL$0GAu=f#bKlva?u+4rMIyiUeB+A19XVv7Ifk7+9faAjJf zF0emSHh9;IN++3-iaDJZi8?egOt+l9lx^YoUkvqUEH&+CSht{ARk+tY2(zH%8P{Kj zPmsf3w3sSci;hH*mO^%c#rQY3M&a0WeX9VP?S?`pbKc7_0mF+~*`hjpvti@3bM*0N zr87zQ4S(Q{Kfg zLSXRisNrAA`_Z5hD}9~mOrP|crem(1kpj``caxFruq}-MHXt^;{SlF&33qdev#`;- z85K^_aMbBX+M+tO{!VnH7v$KAKhFuOomUD)K9lyeQz|tVWyCousd8@cZNX|rqb{BD zwbLAnUgL}%D!Q``E4rw8oe>BxNc5}((t%Ce^Z?*jgc5Za$|k9%o?jVPIf6f2;s#_- z@M29WeTAKXR?6~|8@f`6t_?$D?8*_m94dH1N)YcKYFRoLa*t?`)_b!&a*;nn{*ml(tB7i(w=WXwH5n>fWMpmKqiZtzt}Wnr~R7 zFsm;LP0bXDTxyFQAQrP6uHnSzH`Ff`IjZHn-7$;0jL=!$v5KsDH=)8e7BO`>y{4xT zYt0N7PL-7{e@~8kwdnJFXCz_j1~R7*x(W06B0lN4SgUtRZ!|KxByv(`Ayj8Qa-&NFG ziO&~9#Zov-=43z6DT)+ci))v>XweoZcC=f>pT{M*>Dl1*4fR z-KRJUGbcCDfyc~tCwzhfQ0}I@Sv4pwHs6}`R@PjGbv%kOFf9LM&?j2c>XITlgYMG< zN~AT<@onyMl3IA7e4`}?`QLi~vsPdT1>;**Hwa`1pWiHhiitL^8%G|oC(5ytFZD^& zh}y>+|Kyc$kMcI6kJ2^z;WGQ2dE8KUvQFV?e@8D!|R?$BZv&ChkW{* zNkbpIyW)H1H0jWc6Ljcf$94JS7%n3ei+sSn`;(dm15f>um@AG%^*&u{GUWP4ygmvF zeJvvXoo08uG)0c~NHz>I4SV$R2k>(An2wkQ0c*W6k8Dn!#K<6FrZ}tuYt|Mvlt5 zDk`I*i?Aj4F=`wi8PL}YNcz+q7wKIsaq!yb#-s(lgMA9S`ed`-k%HGjAf~E2jd$v9 zh}&MLQbAhL)MLZus?gMXKCsiCbLS0^@1@0ed!Y<`%M*ukM`;HE-1{gm16E;ByxOeM zz9rv*9~~fJJ1uiB(-1PJZb|fTqda6c;B?z z-i8RTGDuizl)>^aj@I`eIz($e2y^HC`CYoU6kIpj2Fn$-Z07d+ViSccd;{I`xz9r_ zx;ZQ)l6!j1VZ1!pCt1;}G}|Q`RseYgUA_#yjATVAjD>n`Z7g7$Had4L%opOy?-JPH z143bEXng&*ISZNh_wgT5>&f!dUktUJ?e)MD{y7C)fq#p%@sTV13_T*d&Z&-7FA z+CX7<@6nW%+5pGmIkW#D$v8e9>lvdl)Hu!p^JmeE2W|v0Khu{#&OU(u9I`v6KZfar zU6&62+Xw{wx;oe@dn#2&IFN}vU(CF1@)?dqn{Cb^U_30Uqjpk5WqdO9LHwU=R_^k* zKQ#h$Gb9-7Yg-roJbZrm$d}|yT%aHmBn69dnT%C`b&p}E;WDDEkoHOtK~jMa6Z_4T zIpt3|=zT5iFDtbvHnuT>*%`>D5}$9c_eWIK46WEflrM&#Z-6zPj>3NE%+NDVYmy;H z-8(j5^Z08!gMJvT>kNN19+N><%$%?59qrGg`5mSGdW?gd@{CsdDb391FOY8;fG3Fk zl#`})UN<`FQ~s)gx{~?Em?Zx5bTQ{SrRlC~k~DBoZC>b0yI=loYIVe^mSv>g5Wjd#52u$y zS(;aeCY651(ZzCLCyTYYH>aBTNT`yB`vbhUjC=E5iC=Qi4uuIcEZ&|npkFF)_e(wg z`B>z#dZi_)DaZDak6Ce8F??2`JGnIH`F=0&fw@*;9{tWtDWa~hE1b?_9>PaWs+~znO`DU%NI_1|GQ2j} z`iS@`Pu^bWAybU`&9q9yBkMWjxhmejhcwVBQ=nA@zKh zzw0T&xb=^<3%FYBN+qZRBgf2oO+U7>Y;h{$hGxYG%Bel}W(XCH2ie;rWW~w2eG_h}$UwXfNtHjf9=hzsS?jRaQl4b$XGCdLWE8KM3a|;XB;T7{c<=q@ipcus zxpH>5jxDOe-V}os>;BT3ptm}{L0oS^#1FO~;Z8?1?HAZUuWeaGR8+<{RoK8JINY(v zv}N$K0XRi~MOHKF{ww@TsqAgThMfxKq1Y9B4OFYou2z~BmCmo5`c-MKo3<{IS?&PI zpyot(_78)+L#(rh#nazEWP__=d)$oWKC;kn;F&_2JE znYYI--=0URO`w~=7Og=qM2wwsZ0<|x52_=F2e;;%lKiU7)KyE(udBKm3-O;bT)3>i zS=Ijd-6t8;Ta_xXKU0?+Z{_*mp4(<`u$kYXOPf9F-Iz|% zRvfZ`FLo>0=-uNCuwZm|Bb#eSohAn(tR#oA(^3ex{REGjv57_~E)><=5tS37#^ z@lseD>HUy|N)@=#%B(iv?LL-A3m zm;$djosBL9VioML%YZBP_ye%*+mzAnz+M^)`EHtVACqLv358(z1G(ZFlqZwiiJpOv z*Ex7?XvcQvi)b11YLi0l<({Ee`o5)y&aW)9)Z^0(4}AAv+}K0b0ETF3Px)15@zekj z#Xs)m4{rkMv8vjd$CI{d#UB*IRu zEQpD5H4x(p)GU=bN9zrA{7z5#}2-ZH*^BkGy<;@t6*hUN5JyI7Y9gTfB`K31eu%H@fn za-x)a0O#z7pY$6g#yz?H#x4vny;|7r$re4sE2Ai@EXUoSbYL5`p#ioqgWUzX1F2%u z3l`kgEzgIwpF(4r68son(^#dPh`WhiC{%3IG5K$>?ZbNv05t^)ee{`9<=l<)?tB0#h&VSp4E1Fk~>S`T0Z@s5u zG#IR~>1J9BKPOomECaSdCuqFc+kVeI+c?04VlBbn-u^D(C?kCipUBgW$t^={jA zGB|!-W5iM1P3*%3xx^%Nrd77qs-B92;*IvA0FudhKS$f}VhOVL)^rxXVIExMfzdJ4 zpHZQ<*?x-a*)$uwzfXNe?p^L=jx#Pct4qq1ei?5Bp}t8t!GGZRjyewOh;#Op5{h$K zy!=tR(*Plwv@Mu)Fs$BEZbTVR;Dg{*vYiANNVbK4qn{E-N{vB!S5;51-o5ELQ7 z+&vWuu$$t8hTl#oTvNPeKc6mC2=_@AKrXf{40g8<9%^!^^&eY5P~yN%YA&ZI|0*)u z;|Ka=*p}(1RH+JzsZY!i^^n$MSvay0JAgUt)LY=Z52@~^!<2gpl+|A~?H{5clH)|Iq2nZPYq`8$&mcxL=P zb}E467*0N8vFD4;(`b~*p%>2#vDTxA*rBgsZ}Ws>&O|f( z-dOP(*}hS|R=-tIXVj0}e$!wiQ@dSzwNCoB+aO5NbQO|kbhI}h)FN>#y&C*)}nN;~fy0yaXm`koW?cf7AJB7g`GhBtnkP!M6N$vV3m{ zdSALhLAm_dh-rvF@{6jXk9yl$7W2*VVfWfk1w{vTw(@#2&tjg7ALVBMj8~mXTQXYA zM1C;aL$R)B!d9d1@2Z*1dU5R(7p*X1*`8ObUrBb}eNM_+&k90#3vLR`wWB8l4kvMT z`pw7RUQ3_XuV@ZCM{Rd^Je{xwJubDXO%i)on6tV0xT@ZZcGPfGx3{x@BV)~$7#1W> zx42=s-lgy^>V%vBq$A{7$AnChuffXqFa0?zs9~>3ako&5Q47EI{T}9rugdOBsxM|v zQ&m%ew2s`U3QAn0Lp(eY>mt2=N4$OyeAYuHIb#cA>mK7muSCQG(~pN)66$X@`cvJpA{bJlJB;}jOVVq{U4GS1sxO%g!dUR($im>Hh)BDZF%V?+OZ z=Ih!Zg-Zi!Sa13m<>4LB1&4${udowLluOQ!3X{&LsM`DzxMG`2KC7pvJ=eX-La<_fSJ##@x2^rp|*P#*zZ~-0en6EGdO$4mXZX|}-KV{PsCG5zG{*YUEiY%z5(fLi}f z*zch(6_#-iF{QVpC368^J1-1aQeAxH20_JLkE-s8T)f?H7)aOA<)NAWE6~2c{FquA z)%@mH{6aXwWzq6z6!#?Yz@l8n(&IK&cgix9v1af|PJ{RL;kNgpg|&E%xAdmRNuqfabU-7v9> z8wM*YG$U4b$uYH;U{CCbx0}@2V@7d0G@tDShx_kl2`RsBcx$WdCvGvH_D_G2ccIg;*j1(KEW*>@{fXwK88!LZ@4!na;p*p)?Eo-N@A zms$kci53+{I>7{LKOgB* zVa42NxGb|S3V#06Y;5>q4V^15#{qS0OOHf%{KVRW=n-S7~n;Zv;NAJ4q*WvWCTjit(C_iRy7;)5W^!L+&sb03N^ zVMYbvb6EjXa2iUP;Cs!LCRd|}wU1ZC;FT2sw+|f6py7085MRm&qM+=O5 zL8{c~QNtl+E@>tIj zF)s2%qox}j!S@^XaelKN^}GYLOJ^c-vSqcp`2A17|1+mt-CHzUowyVui5RY;)$LiZ~ncN5=^rkAXS z6mYRQnAJA z0aK}RwK|EEXu8~gkUhUKJ^;UUnj~=7>7SF63*qDxW|AlVT z3phk?nG9K*%sqE`!`|13Hr^BjXeNi8hfi++2j?&!`3~>7v1;JsW2?JfGNrk<z|uFHnfpX8wWq5e-~p|a?7b~ zA3|KkX8jK4P^Hvv?$va#Ej(y>hwi3Lj0={gqs*j9m80{LuP#kmr@}QhHn3iv0)~r2 zgSbk;Gx_2}fMt?5qO}cEW@mhHk!j)pdHHey3QSyWLFxPRY_C_5FSxM2{!dKWMWoR0 z8&0|R&l-FeH9cmV0JdJEwXbxHdSUW0SOdSZZMUnlKKrppCZFK&+$pKSEmXmXg}9<2 zclpP^qiT1E4HsEh+)P6J`!n~gEJ8tF(~<>Y@j~MIu^AoSTQxr|Y`A1p_;~^Q&=anx ze!D?|-La8@_)+?*ohdz)*@j;Xcyl93dL%^jcylm5GS#;4*B4ME!_NY>UynW;pw3qq z1&a!>yYothQ#ZU&Zj45P*_v|osb(j3fZlxQ!>E(TaOgxJfk!HgPmKhN^5g?B3{$1~ zYm?+$v{io+kJML34?NBghH)G*Be$BPz znUnN8LZr^69g+G;9D){sv3230RQwb0xsstj*Rhh7>EIj3Qa zE(o-dyfT#$#W4qAQU&Dot1!}#4zJ{r>h*i=dtWb3YEs3_UcwjH-QJsY0R_nCGgDf} zM=P8;wVB-bdT(IGK9nJFr`wKK!#OU7FTH3Ri zfJtfz4wFx65{+=in>47ALP7T_=gcoaY|eu-GvLBE);*!I_A~4I*|Q&n;dxNZZl;{M z;zJi6NYtgDNpPtQ$~o156zauEDVK%t`*~F1cUQaN#H-TUO9cIwm;EQHnxoU-T-;c= z%)Aqh2xv!{6c}`MaqFe^p^_cHaBb*(>_8BFZP0Zie<_{&Q*#Z8Vr4~Hp4_(zu&k8o zE{=InRX&&=tRMe;$BV(10}`s*xw9=39mDd(9fYwbhHb!Z@_=+Wm>(52#=DJZj0K z5n%&boaKB+7Wzg5<7Ctg^~FrV!7S*o0~;m$$m(3)P9Hg3I&A|}Vh zdsl_ilesA1y3e=`fEv?hE1!&er^|e zM<)9=ERwY^YaY*Zn9GSQT{_yw2XJuJB@QkeULW#C)Z{m4(;sa}_Yc!9E~rG=_O}9M z#xCq3x0e|2o>t)27y5ebx;s0L`nJQJ2H@#keNw_oPbmumNzu=GRo;zmo*i9$ERQhHf@&5pX=+WSXk8r0bBEjNFWs77(w{Lo+7JKg$>cE12iIoZg>1qhT_z9(2|$1s_Q8!`kjCHck)i|anLa|l{gZIV$PjFpYsd;Z3WzCFOIPgjGF5Bi9BAOP%?OaEw`m+Y$JDY=)l*XdaIFC+{3+8zqftPbW@)j>4rdJRMq-z@U3NAg7oBH(jzBI~d) zU=AQ`y=!!wZyk0sD;T@W(p>&<$?czf*u;%OgO#@ax~S!>o9WWtWxZh2a@Fo+y@=Bl ztD`x@NWIge>UWO>)}{^9FH3dwk{M5mN^&l?m=M_yG%<;)giqj zJ8>HF>QI+39NSFa$|$rB(?`k)V~zP(5MJg6`x4WI_J{gzaiY)S0pWL&1&hTD%Ii8c zn_S<`>C3I2qzJypqXenloD|P4JjC6+!hD9g3#U~V!6`g5!?tei){Z63S-r1Ws;OCR zsGACghE_vCo$iBI|Bi$_A#0DR!z<9CUBcG^^0<+NrCG}=l>noeZK@)lOBpv6AJM_i z=nYT}jfwYeqwr|*akdlgB*!oozRvEz%&7n6H>U73N-|-J{}xAhE>BBok;Kq!F~w-@ z?3bFFUBTu9CvO*uM&H*BVdt68t##&+i&&x*u!*35+U0Iv zkJ|MH7EL7LpbJ~l#eM3V^LHp>@0dYXZKe$#j5zdpPU#=N{ska+<|i+F#PUyN0Otd8 z4B7Z#Zp-8P9GyZe>1RQ^r+v_ne#X>LV%Pq&zkD=mM6`4)1J+maemNc?{J9xJCDz|Gyc)PX{pR=Tk;-2c zUkV%){4}5SZ-J!eokj*}qaPJ@p&PDBQ(( zD_=P=qEZiHL3-hC`z?(o+x;$K?eZT*$Y%t!FIMfcNG~03y4|n(3&M}&2ZV5h9OM#K z6c&d6q*K3vv}$czV*9Vs#SaSai8og|$VXN89URmx$daaN+KcY~y32M%{8#qF;DK2k zsTHX>^)*LuSFx{_`gfPJ}3kc=Y;s{>Cw>lrilxR;)n5i@VPLq!nAer zzdiGRtKM5kdqjOMCGnyz3SUHskNzJge6u(Q13*KghI=!l#W{77)fO|e6qQW=wfMge z5(*1xeAKcimULeH1`K*V#2==UaZsG6U(`5VPV+ZI{Cmx2VC&V2JN@3~2rs8SPuBzg znc%45qSmJ7W;rXCntzU?{|;e~^TyBDKyWOAe#cEzPfwZ*;`rJH|I zGN6=rg!PgZGb0>_V|i+OE87*YJdkBTM*U+;{7Uc#0fm>O3_hDhu%3|fH7JCI?w3G6 zWP74q(QLS&vMBGNW!?Bl9t9@w8mT@KjGLfh(^=u36ujqV`-P4AFKRV&T|I5XJ3iH2 z=OPv%EZjkNfcVM{kyM2$*JS)09q3}etAz$*b%A134CIe>M$Fuj-v0hz=X5FJWRkl% zY%q7&i9;>sVOs8PLn~-&tklrJK>2-2g8BK$PFqA^)6|Ms)f@}jE1 zz2S=QOwu0f)a@W(Ox+TO+0nEzXb<}n^}YGa8~H|XX_#=*=jHvx3|0JV<+r0m@_c2c zdq*3?m9cf*t%R*P-_JpL$)dmnq=#Ijh zvOH9j?*=@U|JIhY#!1`OxSxbInFfp1#cz9RtH1d5)hEw`vPoD>1a%C z$@=2nn0Nek*f{*ywexnoOmju$y4Aa%-IvdRU|(Ny=Z{v3IgM8cSh8OFhQ(A1{aWIK5@EZTo>}Y09P@b+sda%k~ z<+0heQmo8@`sKrN`VfCbc4Hz-34ShX>Wfbz-zfL2h3*C~*yg=*Qmz)&h3jJUuwhBcMQ1$+I#sTt<=r@cDF&6UQ0R=;){-o1oq@=hzCzAC$X$Z1UU3)@TOzscf~8kk=btl@$!CxwA8&w5OyIYWT?BXM zYorR>{d;cSk7nqj_~&Bfu&1 z2t;_b;FRQb>lkmNoB-H%6}-=qU1ShcBXsL zK_sBL)CadZyy(<+u_T$2vtS#)Sj{~PU_jg0*bvI99m&Zt1QZ2%W(Y@~H(MNNz1zpJ z<3Hm#+Supb`iqD)#I(v5FE(c$MMPZI$Cmbd{BI^3+3kz)M{hKL+4(B@rZ0UjRrKH$ zFCSk~W220zb5~gPl;|py-h}@SSm?IbHB00>Uh4;|(74d*D`0}0>JH(IOU>x%&<8o_ zmhqNJI`rm<&)N10J!)kQwKC}Cdwvlu9^Ni^>V?G1R?{(-bT^SqtLDzgS>DS?K1*jN z_m0tD{F(>QI)d-rS&jN&C701UyWZYpTp zg)O^vS_n_hyz)=~cr>BTYA^g8vD?gi&n+1SUqeV_%y0=l!~D2LHIU}gtZ^W`4U0U_ zVJkgA%+rtQ(Rk0QBC6~H2^`E~)%uSp5dYta!Y{1!mZ9&9y6&jq48P4H5(*4=rcV(1 zwrXwT)5gZgiz565cO35oH^BIMNb+!jp7g$_8e7+(W5hD{{JYJT+u?7WrT(v-wAwo#bNRO2+M zH2b!{0PN}Mu^2+Qpk^G_+7#Gh`}i-VK*-m2&H|{wdx!L{{avh=XfIw`qDypu z=cg2KD{twFoBd9XBr{iJuQg4AXJ_oc;vg;e)>;kwEm ztz?uT=j($i=i9@sRuP5y68eB-t1@(ca^+i^h#)I4^jrY39pCiWohk&8)X^aHXBCw! zL*Ix`ZQM-f1EHcXjIUl)NPI&tP(k?iAjS*yNYwj2U(-h+O8Iuc$GsY>m_YQkwDj-N=7rlP;qqND<(xyqM{AdYf>+ z?R5?W{Dp{sH|<_`=Y>0lpbh@uehAR0d%U=|%2oNF>R+Cam|%qYZtaiC#Q{b_$# zFCeJA6*McwzTdR{5D*N(dERCX;P%^=%&Nwcqua_9b@trE3(?fmE;#8=RX3kZHVgaiPKv>ly?~6iC;s{ zdvD~AROG4nC;HN%9URX7KQ4xF@5Y9ZyA7x|cWuuws4L+v5_scXCGlSF{qoNv`VG}9 zeUe6&oq(@T0?oqV!T!ntnDd!>_uznfm$Mg`8D?^f1x@YwUq)iOu9*My5m_zg#mtN$ z!$rbJ+-=C|blS?>mzOJ%6SHB^3=gi1Je|7`*it@_>qrODxkN$|qT0vIoubP77FG_#CCi@Bzx?OVp^o5%Z$NGMH^C>P-MxHGQ`YOl7v)}Elowal-*TEWUM3W6lKUTn2>0Ub%xoV z;~cwGuJ8T4p4adDd+vYk*Lk1U**V8~9LHySzu%ujna(j>@ygz=?w;iOU`=Cv-7{73 zaQ?618@xw-^Ar*Q=wtbDF#v~kYYs*4A@kM=Bc0;5E+oC2Yp-`3+X#B#QE~2v8%)>h zu7sO-7?{?rI#v8|y=O034k&$;8eQO!!8yYWgJ#25H@vwqG?R&lMlpUtW^2}q@vi?hd!`Cccwy7Ls|eG_ z8L-ZQ(&F4NxB3grHwt7E_vU`NdkGGt{jyHM{H3ilvg(JfSynlFfu=Qu7MageB+uTl z(S9()(7yJsCNcp8Jk~9ipR^h<S`k5zG-UAk$_n*CY%mVScg7H0CjgQ@(-hRA3 z%PT!h645^teOCOt=(8TuvfN^U@^Wz2n@HI|mP>slWfv0P1}x@9I!ewd#I5FgwC-8| z&ZCW);l64s7Js%gZfC3`H(Ay0@#P)G&AoA!Jh)ZeX26;KLdyTiI9k|}Cm zyR}otDftO@_oj@tpFJ3$MJ;C3qgBZ2n1(dFO`V#kit4TgK)XUJlh z;TLeHRd~2#1DlzxCYwRJbn!t~0q_)zHA9cEOa zDQtNa*RDbZ&z0@Tj)r@_G~Hts743i97N357Wmgy4ck%jfPdr7B*%MYD4$>??d4X?~ zu{YHgi{Pbv^k=eTapu`{-+PHLx;H$$Na|KURDxZV^W6u#K}vX-|8hY$@wU?7!#m44 zi`SjJi^}5!8JY^+!Lb(6K)NgUxw2B=h=hd134MKuMc)p9VzVD(ZN26~?c1P->re0I zuo%%xb*>z#cyTBOR1n(_x0FT1L`D5I*FVRk*t|9bN>h!*tOvt>M;0+`ozir)(GmkB zaEKDY8dBY$IJUnb7ru7!Es}#@-rMQj!;gUan5FH4=r)<6? zntApHJ`@6VnB83k->y5d`MX*-YVwn~!isMUva{ajN3Tl^amC#CXcG*l*X)k=6=nQg z(+z{(mqyMP%)xeUMPrIgkd|CoU`8X_K_BDsc zSQ2yWH!Wd=AntHb+PMRdkC3mQfxRA+a>SlDY2GNUYmdaNSW z!e211e)3zb-_!FDxkJEhHWM^V*YBsBQ4KT7Gf}KW!EcDY*{0Xz!uP}Gz}L@BUoZ*6 zGYWS=D?0YU`lx+@$$CNfA0MX21XD^jkef(pai?CdWuDUfVVZfJ@QzWZ<#FOyNR7)% zcGZa?D1vTr+GLxj z_3Oco!L9Z&!nKh0zyYk`p|xMT{*Zb5joqEAa3eSOSYCeIw2c`FgrNO;$Y;tqXB!@0c6yrFBe?Ou@HOC2fcnXr19w3;DcEJ%G|^{0g}j53T?X&9<)vVDU~0!=}Kh1 z)uD$$)9?_CMo*D1-hUOb*t=JjX%u*F^{QHB101%xeNW8gn6*osh%&pSw044n;|9+H zU}^1>bL}Cb4@OGUeQl}|a*1{8!lvW@zRB6jZZCcIr<=>?GGdQ69mVZ&Ba>8BYk!=T zA9lRM&VDGkWfMnC6aDJtY2*e7otxu{oqn@g1TOzzxd>W7%2JITa^$88 zQ~FFuDcxd+^q2>IC1?S6(lvVDzb1a5p01mF93bHkE-N1R6An71Euqqic5W^af>R+7 zp50B1ZYJ_>Y{;OO(}kWoLQW1^zfr*OmsUEdS)2n~_oc^MN360iV{Y!OMYR8Lq+fDS zbs27#KJJqA(wpPu4*b?W$mO>`{lv#&CpxD;SQ)dkKu$2aDEQ&SW3Df?g^_VV`YYvM z4B;sJnj!ysgXGF2o2$d%%I|IlLI?+F_l%y)u&#LFL&Oma7BH%gd{O6nll0CK|C@;T zTeT==wOiBfTxG*Nnl8IN<6>k(u#!1a4((!^_K{vJk(4e5*GeFtXAT!n_Wyu)GhTc4iCNJA|Vpm|K#(_R;6Ad1O%ElDAksTRF<{ z)HSU5=`jx;`^Ql%ek~6qS+gahb7Q)m-m4Ine=+WnslRK;^=@56Yp8OI<1b@E!)oR@ zR}+F6f+B`6+QD+>H9$W7SgV7L7t*99qvrxEay3gCVoQGQ>nGi=^0f|q?bX$wR)$gn z+k*0!s?hw5CK;f#{WsfGzhSBABT+B+lJ_yw#VZDj<%WM|z!l!82%(pIRS2^mRpqQ= zdM!GvM0YlyJHDzOdT>oE8Z^=Z5F^9Q!S{Gm!d&dE!$JS4udwi9fh0dXjQ8=trNW@p z8~^VFPW}ETj@XsL3^PUY>y<@z2O)P+a&6O%Y~r+ByPI<2Me_yVGeuIQ(FYZGO0h*$ zN-UYGPesh=YFR4b4Fxwgj(PBAPVF>mjh|1e!kpof>Ni`#rMw0E#u3Zt^u5$7k$RK3 zB)Z6ZQF~C7nD#)y()|-Dv?*;0IW*I(50sBkK(vjEl~GlV8!Q4&s%MQP`y-XX?`}T2 z1c71*LGK(Ljhlz(@k6xr$=p9I`=t8=s=@rzuluyN2u*EP5WqwM-4bf`cweccVNih; z8QFe~kFl%p21%8n(rU5@uhrTO)#}j5YaO!mU7!r;_{ydcKxBw>nSx(@<%q0NPyRV= zo==y+0hE5OoD%~z|LY_N*VM~DSx;^$Mf+@k)zNim_UXG9PfXDPf1f!6s#N+IxMC0p zSWNx5?M2}^Ce@Kq&#h`1_}rnEvh-E0af}(M2_4C}{ho$W{D{j~Mg0?{nV8#`^6)aA3`5 z5Jq*1sF`u;I#kTr?cn7K0zQh=xWJ>@pJl$Fav_M#VmPkg$v?ZG93}KLRUG zgD(zLorB&jQ+YFr_0-X7UL@+se>D3~90P1NHExxEAve{MVlesKbm`j%dMMQ$s_Oou z0t}F}N3pu7WPE|FS9)d9%LU>U!+_0{eE1j~Xdh!|!%|o>!Fn$r0HKOZ!4qo;BjIoh z4bv(xrT>$?13;xCxRje8brqp>q&mR*f3|~wMXSp=$%hg}@SpEsBTF?qg1IY-VE}kgs_`?KW&56iAD|f@k+F^0&Rm6#0 zv@E*M@}mfImwG#?!RpU9{UCD=xMQ#~UID6#@!2f9dJ^GQr z>O$H*RaAfc89f;@)KT!|-X&l{A3xgU^+KVeMYC#{)%e}KM>;aP)hwxA7Y0G*e{FHA zYQ?;?Y^8p9-iJarCuH}(2r{E~H`B}gMC1Yh1aVX*THFsD+FRBogc8VFn0!3u1XD36 zDCmT#>0zK=gPF>qS56;xiT(XaU=h5xX^bXq+m0SR+PDBnARD!OMWHTmrhpI`#i;!h zttV$w`&K>Z!Gj|oKgAqB-rZap`E;i@+Ea>tV&rVbtUie&UaUMF202sgD~_?;xp}@Y za*uWtq(`hOn*r3aYAP~&m1@d6|pl`m5nyDUQ&Q14^$y8AQ+P&+Nw)z5tS@-|R^>;m&pQ|I0x zJEiwiby@A=K+p$NZNGkhSFy6>2C|d>(KaUqWA%@}h4rr7=X}y{f)sgNZcS1%)ZozZQ@TM1W`Q!s<+&B)CUWCCkdfNqO_Oq zV*mtBjN*Fnd&$v&b12z4cW^DzX1Oo;d6?AZUm|zUg?2W?Z%?wzVW-S07V<`j-fA*o z8eMO?k*h42*JU5;h;O;>c`TT7PF@&!;62&#V95}pTl5RuD6k#mUdVsiI~3eJno_n; z^kV#RV%~mLi1Fpp7YZ}JDQ=DB`yKD?{!v-V*BcUr;e!9{6=tuH5`9H?-sTJ4G)udk zQ@ik>_?`af?MdgaV`o2o6t0-%Iv@3 z2G0XyiFH?&Ns118N@O43tnXqKEML@E=3KWQ}1xlX@p%e_Q5FRVa5|K^sbie%?)OK9fYEl+kGtC!4nJn4mc^a2s@&#n!+mu+n7Vhydo zsaxdKHZ)$E0^Yc+h7_P%QU=wYIEAXa$>aJIVR!XsAi-#w zm%}bDKJK`ZJ{oW2xB!|3Bd6u8@OLFOAnMH-d>N-S%6eF zI(Sf7mu=oh^^{|4&t{i*b_}}jKy7|dk1ILc#e9a5LSUxjb?SSQEFf9nfxc&-KV;X_!h8Kt86iI zNC@WmCMzKF?44`a>YFLE(MwjNM1+y=d=Du#WBm=Z7o(lT!xuBF&*xh-NNOfo`$*7` zcQ&hC=820{cy|L(TjOq8Qb^T73J5U#2{|sSYVbCI!7Jl@!V2R3qb{H7|F+C?^>eRnC%0!jB@E zLol$U_BL3Jz(f80fO`OO)52Wl7sbqA`Uh=6`z0EEH^C%(ES%`{sZCmFC<@cyrXF>pGTPVF)U+yiU)pNf#XyL=W_Xr{ zGbI;es2Z_QO6eS+tBuGt*=%#K^ePh@yjsH3R5=-OnlzuO$j&?a3xbnRomkw5>M8G! zQX!C9emBo=XTg{<0TjK~bCF*<4(@-)Il`QE6o771z!Gi#YA7==g5Btc^wztX603?} z)9@MEvo&)PmL08|hH5y>I=Z&kCFB;L^*m#q{5yzRwGiaY)j$;l(cFh87GIzo6!A*m zjL;1d#)1x>sqhOY{Xq_X(9KhYHyX3~%J9LFUd_=_4qyRl5~&qBF}-#u=!M{qHydFI zV(^{A#SW1O)=+Mh=o{i9R^9?6{N%xdld^-4F@v@W0w<*7!(XK=r4Ljkam>9~iJpp= zqyGj#dq>sG07;E80)Qdt#gPc=IACm@1NuMlh6b^Yyy9Ef=NoXn(u-*O-#hvEw9X0M z2R!sRTr-tA08x^|iuDo547e)nW5)~MaVZ5)92w5}%8Qw9!p!GXx!q&GLaVTQFhaDi z3Q!*K?(CJM*UU7P(|Uu5b;NGHyyN>Fi?SCjPWo;M_X_3~_$q(IhkTYZMHA`a5&i*< zOn*2Rb!}KqP9Zfg1i2^|IYg)rNpNVCE_U!k4Z7;R?eBKB(qg*VkGCW*PxKT9dW9cP zi0#Ghr#`|(@ELpZS3(Ic(`NS94ly>1@%hg5rLs`p5lO$EmfrC~7d3EX82o#2I3g^p zx7_uuB^i?$PZZ+Z%yJpdnd1YfZ@WRxJS%1&O^)k$S=Qw1m_{BC@!9`)u`&V>&z>6k zv*fSTZ`t|e$uwaGl-_-X%~d3KFEkr>Zg=vm9_V@NZy#ReWP#Jxj~zNR59;CgQIje* z+QVUfO?K<0IbZI3{B_zzrI6#hnC8kMyf~RHkb#~%q--0G)noF>F?(~+igcOvo}I^= zT1vwegc(oGE&?45kUrf0x^Yb^BztHV9*_iSY<j{#=Xd>{SfqQ#c^f z3pbw)qYtc~(7r*RJZ0bygE^RTEAfTjkHF7pg1p;dRecLBI$rqE*PN5O>4Pt)NV3vy zkrJi=;PGoKlBvEf1N4<7zVXiIqqD1^sCp@?o#YIs-oYT+=LNC{?h*y21a(4{p8KVL zWSn%MWG+n%;7q`PeR67vdLTHqjRwaF+zA?Z7Y^I6IwS|}_>cbQy8CejTKoSkdSU}*Qvz!GKXEusMa6t*7jYOP3AqozgCYueQkbdbDRaFR; z1b%6)OHd?3k_9NDg7%aI(4I0mrZGNG z0L?==5$ZPx%NEgg%Yd8!ulqG{+f>W@%<=8ZZB^Bw2ObrCht{nDR z4bb*9l41-``H0^GX$X-R;_qWU*h3_Yteh|7c?1Wuu7ceM`%Z7hR5UIJ--5*DM`FJw zUt7UYg}k(a+EK8mg?1Tej>yDZVrcgfiD1wWlq6mOX;-1FCU*HIfv1j|<%ycB`g@mS zXHA8!3xP0|FJ|2ie14H;;g?fed)V?BNd5w=T{#2NBi%~lS(EYE)^aGo8tptUvZKL1 z$_!*yZ9B*HYW)%u01^(sZss;qLLfAYTp;C@o*q&17g$sUkeT$3W+oGM9~{bF02F`l zAb`o{c|b`HM~s}S&UEi(gIZfYw-Uy`2QOGPxyE--I46?)h?At53!Y;bLh~1@qwK!-g8ThpTZY?7u!DH?tpdn z!rM=m9ctK-xWxYR5pme@isrRDsGn@j|2|p}c52}<^A*u=uKVr(yy?8UYHIMzr#hRS zMjUInQ6{!iy1%bI#@!0VxKjBAYo((=Rcpy4DpTH(t~~CD?PzoBaj9(ymyEIeVk3@z`geG7Z=oIs;h z@_Wxe-qLlYpW$JP;Apn%m7Z@O`ELX=?f>MB9!y6Jwafvf@#C#0+n`_rk+uq*{#WfZ z_FL`rK<1BymuJ%3y4nvnrXKh-FDs!qMaze>;i%>`{P+i}IZ>3gL;@ zv+>i}#>V<8XbB(NX>dtH2|vWHMwu*PzW!{g;XRxH-PuV$o2kEQ%wt#m(|r$!y->ZZ zq_hxzV3%C3UTX4+&Xf~9s_aXDxRt_6a!P&aGTWkhE^)wo7eNdkvTa>BH&Gg-vg+JU1sU=q7Fnx4iIJ+ZSj~z`SiRBSc&+m#s<0^c3HE90VU*$ik>kv-5TIFddudeAXc+Fgo8Eo?a}x8j{Nn{|?NgW6 zp2>H{0;i{k-bCTnwzA+%y-Gc_lap!$7OU57`%q3s%|M7fiJ6Wc0zL$r<^yj0;?YW?9|n$@doO|A%`EJMsa4CG8ig79q@^7jq=I z@&A)m2l%k00gaRtu({O_C>*L+P*wM&+m`PYXYM;#x{MvRseBfC;c>M&czOR#*RXk? zL~;`LtsL{19eK4pX1;%`rji<6Nu6E5>@O`6Veg;EQ$?dwHqOK!%f4 zlQ}x)E5VmCl1~}BK6*!wRW`8uqnT9W3fN)Q##MicW22Kf8t&dhPKm8{P~{O5tzksb9tVz7i%R ztZ*9hm>t=~_=?K^EE)&+r|Z8~k}3vUK~ibs9}UosY=JJd+tB_Cr!{J4llZo?3=8Up zppSA7fcX#+6~Fgkqh>ei>dsJ2ZHyaK{iSpB{*+c~x$}~o0zRjPMt~nnFxvY2L~=3% zJVV`}+V6S(;4d=AQTH`Tf(d=8sX?1?0ObAiZ~Ol-5qRyyE9>Ci$u;CM+bXIP&}dW( z=y_^ovpvEPDQw4vytUW<^bQS4{lcSydDk z77i5l|0m92n+8q(fX7{epLF9;u{YL#kE;VC-tnq%1>b8*%E0C$t&5m64E}aUB{~I% zu(xk|F?krAYzvJ>%VbcfD8IVwRlrX@^8cH9jAkg!1P%kkIbOj+v#m&)I2GSoC_7&;8E&8ZLI z_6%IB!X+%~+79v>-Lwb)x@ZrBF;Y@eTEBihd+5x6bJj6{%>TliHC~g3?f=@)&Fe3& z5Y(k#>y7B|fcD08$v6L#Is^}rntO(IF0PD%%+0c*-n}!EoDgfidP0fj#Wkf<%Zx^! ziq)XWVLB*VGun1y_q}t%uxcpw=#Yb+Y%#ec8%MJMmJ`aaW_@T6Wkmz#Igf2wBQh{j zx0baRaL%1x&vR=YD8t?y1vXMx`Y=XCMMZ9Pb@io-7aMv15Z3_k3`T6#li^tu`Lmem zcYUrRuD0bm>?V8``hYRCD%4tjH7jWvBiKT$Z2q?TxYdq4E~k}Nn_dCP*%#rO4u>^O zqx@M4rdQUSdtKL0fbHR#FK=35^y#(4$)$EU-S`VW$1y4c%9q_vE}5bH4|tK}TaR^1 zr_Z_$@;1+_23ujs171ljtFt^yyYDv>lV*K`AMjG0H6JHDou+K~^u7DCt69Elmt7zO zrTtbNx305c2sJi1$)=@xqv-?u(UN9OYHcRUef{dT(_pSk(8h8XrNgg4s zw>(`a9@-ZEj&~AEwk*vm;S_M58)>+$a7ML=Wen^8HzB59a^mpO7@N=L+RuD_JZE!!Aa5~X_?*6)Di-?wr_&8@1doeNahNJ4Vw$Lei(K8ONYGTfQ;1};IT1|w?UANNeTh@cZrA-}7} z*sf>`>`>KTM%uHhap@Bt`K;{>PUkp>6vIU!u)kaN}8_u&B4O)0A63W zh7brt#(s0w(0m+XW(kiEIC%j)fbKz*1c0J!!+dwaObUVX22WM2>F#D1ZX^Zw`ZMb8 z??XxYB$1#3ui*Qa(ndmU(>?hV#O6>^0b!p_lKl~|XXX+!bO#b@PL-c+9N*D6Kj8NmnFz~?Df}gCJ=PyxQ0IF z)b1M|m&MfjfT6k^uxw@(XY8&_Jz>)>fmco4;>#+=)!yI7TffjEf$5*N-iQfZ zf$t)}HL@e8YnQK*e3N%pp!1AHGESfsE=fA7!a?S#UfRK%mlU^;8MkPsU?>NN7YXW7 zTmv?QS8`_L#k4`N2FkzCC*ogiF{3U;mY^HXn#zf3^dOASuw}pDozhpUb#u;{u53HK zR=w{wC8Xw2KIa_SzA%cn*eA)5O&~v9$A+#nXcqRh>ojO4ORewEJ#D_x(=}1m$k?+7 z>)WOn!qsY&+WM4tv#N3x+u-(7uy@IboBOXkcmSqthY{sy8d-svR(NM2lxD!!l0H95 zbPCY2#5-z_lNd#HzwTcT^}Ulp6^g{p{$X+(LVKTImS1yN(pUY ze_$~hT-jPsxz9n^(rMGOWOW?5NHsm6=8@&4c95}7HARlJC-#lA3s@n99A^(Nf3|r? zROiiAR)`OH(@oCdkefRyf{e+b>Do*8Dx4lX3%b&1rJ=ROg)|zVa;~A>hgl``BD#6H24O~-S%f4KBrY-N7mZhcw%V3 zE(nhmhxThSWY2Az9&QdAv}d0~l|sePOSgK7M?>~JCsuFW*+J~|5d=gc(D7E7&t(LY z*u(_{LhUvu(Q`vfWR)V_0Qn(J;D_LmPao|Z@U5{akO|P%{k;&p@96h}vx9F6M?0)Z0dGoxLvMPXJD@uFCImk9K{fQIT`_0i^59KD zDVbYixoCVR_kX9o!<<%H+49S=qwNFZVBP7cP-Zs?? z*130U6Ox=-f-5e+daG7QKnd;*DH~es9iBh+ zbvBiq&@4af{jA>YSKspSr3FMqB-k!q3Y>uaSAy)aui5ff8PPG-4rJ&hA2CkXsNe{U1_*7%leqvAND7K-UgQ>Rz$nY|w%}AhZ1MGH0jn+adbgK}a7*kAzo7OFA9o9V znAd6$w|5|6b)-Kvddur)8(B^mYyCrVV3_^K6LsG`G+2dxcw6@&wCOO-)DE2tmWf^L6WI2CuufI}zkDQ8P6l%T^qE^`+AX1_J@~ z>cQ~9e|6iNhnqsvz^nJJZU-yhk>OZLT2C3Ip{};0L0!<^Znt&I79+S6R3mPMYUInF z$^7u+c_{UDR3X?J@NLb#A2G*#FMDnzX@W95lfS1}0W9AWIfL=Z3RTCB{kkh48!Fl5hbw5;1V1C!8u;D+jE~o1mVZS zg98rtr1+k!A|)V+T18a12WoNa)vlAYw7+boluI=c1-8doh0l+N?? zFKm>F;u#z7$?l;nDEJ`6(ad`z-vDwAS;!@CJW(DQ1=(iNz@4I|L9*g*ZGb=PXj**p z4S#pC>d^9k09(Hk`Gg0)zodi_?B*Zq5c7#2Zk!i0fFI3`fms)Y9WjMQk_KMWW)S!MmK|?NnZaE&!ha7l z;pc@DogB(lu8nZ)gUopr_TANgoG=4Dtvz2010i_X8JszOc}=VXU@_@aMutc09}jT; zFc%(#VKX}cJ08h@V@KV)|KyGQ>^p*T+y2XC!Tva(Um>c0fL>Er`|$dY{aN-AudYJ1 zoqpkzVb)PJ7KW4zUV6~tyTPDW=jXqTRx#f!n5}=fHJBy;5ayGf`M3T4i0Z)@Aqchb zx#{D$q2GdHqc{%a5f7Z}5rinkZqh%KQANMU$bdtYF?2m>K~VW4g;Z9D0ia{=1xqXN zW455sn1rvN3}zjD42<<4cbQDZID-DSFzYDYKjiy!sL+xonN$A+J(d!5nn@+iIrdZM z<3{FusAS@7hk!%2`ucxO&xvTzo)aXNR)nY?{3C?~0zQm!5*1zz{aD!Zz<;fg5CVZe z5Ppl$Gj&nK$eizniof*m03@h|pgF_N4#^YgaL z9KT_6qk(jFfp@3)QyDX+`k6d4_FsSRmO{^ya*~2Cc)8#vV&?881if*OL2gA;SW=e1 zP_I<}Z(6AT)7UYWX0AH`Ntd!5iOX4zn`1FW;AqlIXtZu=f)N^2ej4Veq{G?cX+Lvx zIYFmy&s~2go1q&lz&TNO4+NaDCs!yxoV{XL6Bs;$(Luq|>fUM9f89C1@m#?DnQvvdMwm&s8}cs}+*QYxYXXwC|ssRNk0Q@e~yE!>q-)Xhb}E z6e~xY3bCz{LMaBQs9h<5E+aa`Qu5z=hO!(?H@CGtbeNo{PGRW`i4tpT z`@>t~-38E$4k~KW94BgL&I$k{ABRv)LZNSif?52<@7Yi!?KyR7RJaye4Uyogl#>wN zextYld)lu>WL8vK_x(uggA*kZ)^|Zb_%!bs@3&gbWl&*g-%n70cwv8%OW7cgt>w%o zt6j>*Kl+II zZ9Wc_q3)?3)IezR3AS2RgXC~T8pHtGXjxgsE4M{vLV%1Ts(y@4?pJbyP=Hq-T1;BT z`JGe(`qA`PkFGdE8O1OHGl*69L0EOkAjWNm%DiG9*;#X&S=QO@c46XGHI9|>^}NjS ziJDEBvwZO5+XVUT1fA{>zR_6-O+NK?gxX*t4UkUoX@C<@1F-&43T|7wEKYZ<>du+U z-Gk>SRfu`eqbre_V<=e3!?6p86EPAAl0&_5hDyu{O#h(HFA(m;Y(;X(J;gkRSfySW zUzLh;oTx;N+RlfEZgGFBF9rw@P+Uf07zwhv-42-=oV8#xn=#~}&HO_@5gve`fCFdn zI#0PCmcZ6HUj}hcZ0{OQW;}5>5GGAYKAkAL%+(iU^0e0>Mqy}xt{6VLP z^1S`ipOJi?s%mY{S%jW(OkoyY^p1)b_UflOX4JZ?P9hZ;(RC{q!Dr^H-oVZ*o|8}9 z<^)ca&f2)6Q|-u-olvmWy4@;N3bLw}7|St=QA@Dgrlex6`v4-gGDFqfURpp!wm0bH z5|vz*1W=N^86xn6Dkp7p!P2@E0QuDhW2oE$wtqS)>2|cL(ggVp0RR12lXPW60rL?X|vax2u74|0AKZ;?b$2 z%-3iCabjl+)Q{Mq{lru|m zdnTC@=9WaiBW#gH1xH)}zgean?R+9tJPcCA9M?7zhEI zHaV2wAb8$N1~2<$2!Zdcnf_()=36kL6bIg$TnFxA;LZy!Aj1gciMl619}wOZuRK(a z`JKeEn)A}1Wd-lb%+-rv3-h*Yj>-7Jml6K>vPO-$X8#W<_7{z!gV1K$Kbr+`bFG9& zy}fOzn!c3BM=(qAncy&EwEGT@8+$<4J%#y0sJG>nKdZI1wE>B4U0D&p&S|ME8H39l zVV+z~AJRg`CqRYOg%-Q`fRN?m6FcNPPKiHjkYr6B%0jceR!$Uw&r1gClegP@ey{R^ zwn5!`3iB*fX>@)m3mvpwD;gBdzLZsmwiOTj?O?pDPZUCfMq4F*Rrg!Yharam$zMyu zpdY2Jja~`~74;IHkCA4F0wXys(d`cr2m4N96CT%`XTMpI>CE;p{pkuqqql?+9!%5) z3RHtiy>{8aFIy1!J`f_lIvzTBYy`C<#q~nVP^}9{1pd6Ym-L=PebR(@&UmpY^aB7S z)<1m+{`_?>1N5WFpyOgt!X8a3znw=s_OXCo5f}Tu1Tdy?xBCeYiLfe`Xh^)U34MA2 zWeZw2;ioGY5*xha(0I9uW#4HHLUWGvgIS{9xiZL6#WWURda$I-lhO5>G{y=t0MGqM z$g;14@f)BbAVuB1O#^Ca$i1r@XqoB(hrZvHAFaMr~; z2h31FtaEj2CyahQ_-kyB{og5q_7qOq+6LM*Qo(TN$yrM{4U^tfGw(g1gF9m#Qf~}3 ztWgCfca$?08A>cZr4-7eaRY=b7rbJQ}1xA7PCyKNQ# zvd@CR`yznbJFKsuZwLNP?so6I;69@jXi`l==jkS1ag%a1%ezgXCEFH2pA$l*8mqJ3 z=3$9Cq#Y16L&aY-;5W`(gNA7Qe3PddVB1vM)QaT?dq%1`-~CxFx+rF=+(2(@Ft5J% z7pjt%!e6sruW%CkfU!@GoW;JgnNJ>9&Z1$I^6Aq#ntYtm9?~e2qd&Fh5 zwvwuGd(NjNuDrrlj#t%T$EV1N#ee*M5%t&XezdPpqb3b}=g-78#A?0KN|4QDDFAwywhPhVYP%(Tsj>GYWHx~Id0J~ff7l02+^ybuL6?V!5QzE3H(jKn z&w!ZMzHtqN7a6S|m8v64JYNxuZ@=ITr=E~u5^y~0!|xOa5~5S!-jvLv$}{kf%eYHm z3{>RPIWo?}EX(kcdA6N;(clRYOpDrJ8-Aqx#Rfi{fgkU~{ry?I4A98|Ps&uoKeC6G zF!9{jzMFr&gfcM3o?sY5EJ5xT#F5LL1^8y*0qc=AG5uv?@e)4nSGi-mMBd0d@&Fei z_6=|L*2-tl^pO}a=UVrHu z=^lzf9`X*BXbba)u1rCjOn)W#6MWqg+?b4jq&qKEZN-Um&`aaCF2;Y!Q@dXsAZVz! z`bQO5B*T({_O~&S%$Q>?#*m9}DbmBI=gQ4Vsp*^v!}`MXHU1S?y4q8a zw9A|w1Q^e7eysr(nC}C=4w(Ez>HPqPKfb|mBXDqE)<*ym7&y2ysAJOM{C+$zJTfn8 zp$lMikz?@!eobB5<*#Q6i~^SM;}O5*snc$$aRH!K<0-q$`BI^*?!=9bA6Kmbr!ciKaR z&leCNzb8d(&b|y{(D?nwP9RSZJ@VW3CPP;MI;M>a18otOAZ6Wt68q}WVEVT#MUDYC zTvJ*PG2SHuCCP>Srrk+8%CcNF#Nr`>oz$^Hl`r_Z?*-{Do475SHI^SRn=XGdZZsz+DscKqgb|lfGG4vsK8-n zqjo+~$l!)EPf0~UtQEf<2S1d{$5Ycm3C>73>@CJg_W{l+h?hSf|76>`2<3-uZ3UjT zWAO!QH5pP3j5lrb_SZnv(t&s^n!wutLRFc=*^eQVM5!$~4uAcCZDFEv&A%$9P`c{3 zcBMTw6y=#K$phdAlHL660GSC3(!q@cAPp-g4zyf;g(wro7gdh-h)wO;ukWoEbG3VN)8QS=~0~dc1xz;(QS@FI$u`XKpQM*L> zx%k|52oJ1l>+@IWHYGPaGP6^FB4@awFnqA}+z~a)741Vx22*pTU#|(C(I4H_3BQTt z_bCB&YbG;($34bS*V46?HCf#Uj89Lg!CZfK9i)G)^6k>3k+H89(nK9m?Z4>l278>S zTwA^`P;9C8W-iETcwFR?%$7a6ZasRk|6yJ|u^kDRbpP|yTdli5V^aap852=#x&?-6 zQn8b(MO%1A=@w;c^;nFevjko2a1M1;gEp4vF{V`Cn%I^G;LT3FX3aX8}{W+oVSrgJKgvU>5)x_r8c=5*wV`Iz2(O%S9e9kD#YyH@2 z9e6Qi-ATOIc$ByvI2!zkri)^UPRKxOp-|;V{o;wbad+Yr*{3#s*^CYgl*pIFK5v9Y z@+K*khYRR|EkxzF`bzix-4DobF7uL|IRf!^=1YP(h)Bzf4HzKsMVi-!PD4PzAM*vm z0Op-nimWGCj6HyWKln61pne8^uJl(N@CsmE1i6AvIpYIW%75ndKhtDAR@7(@j-vZFh3f+3#8^IF8 z!{2dJK-SF}6FQBnlJ?gRDKh+7o%xzS3!F!#&d`G%17g2155BA|9hT zy{nt6Z$|jDik8bdnjIKRGbyIXAv{Wxp=JRs%$#5Kw1Tv<+ZUvj%lPu0N085%-Bw|1 zy=z#yQ?oad`DO*zd0_k@5#uQQj*u2fY_Nn0P&)TT!ja4_Do>}DSIHheGh>kjj$cH&}6IIyR4KcK`=d=u5np1c!L= zn+?XEJuv=|g0>qil9IvFcJ^cnyFB=XA*K7V`ZfL=f3AjniIY@Aqk<=>{d6;Qy zh>7#twUGT4L&0NV2;G?a|r) zv)Fa~fh5Jy>Y5f9tb#Ef9(2_1_EN)a0_qArX-`P$Z-gYEX=uPSb*NIoWHte}m@;Y#WWga}?hdQ6kl*BqBK z(odPvig%W?mz>;v-V&b4^t-;r8-h3$V~Iu|4sAxm=C`atA5I)|C;s{KuOOBI^h7&sYZnpTXLQ*xc=XW&%Lq3!0)QAZT|M(zO~L z2j!>Gv|i5X_Vq0mv8383=Lx1IS`4-005Cq233cfF%*NqC3fz4FN`Zlt_i4W<*>zlp zJhT@ShMS3u5Gj`?J=6h8t#++7(>$N<#KTORHjT$)rvzsY|B1%-T14!NYW)^Q^k(DB zPDdkZ($tPfuJ`&*{wqvr-72NMY0D%dkDjG830OxpRIybte)koZ$=ve`5q`Wpa{dva zP>g_u#ibjB$f&(`o)@Itu75izsCi5%Kz_CVp3i~z|MpF;>p4!>jb&)t{@|Q;kD%4* zb1S_ls6KAoca*LzJfSYGLKj7CY;1INb4&A}d&(JGa-BCXdGiATZQX#5GdZ)Yt0f)J zN>7bT#QX19TCZ?CZ9Cg|vD-yUJR_6wu8YxWKidrxUr6-eR(AMtK2pNA#f5cyBMv<= zCL)Nat|lhjp=;C5XEs?w(B((q!yu3V(LW#HuS(x#yK|C*#pJ?LcfeJ6$gMp357 z4V?g`&70wYj$zP2!&+xP$08x)7*8Q%9wt}N6cZs9@8GF~Sv`DK)R2zVV}>!grAKwdQXWeb5o zV_suR^7}w=5S0CVc<`>r;MAUrp3Jm$U0>VL;A8`LE>9ooH&Ygq(>1On8F4{Zn^lc4 zt48tbbZ~MIERT5Zo&q>ifxHa8!B^V{d$38M)7j|jzMp^Vq6?nI=z#Mik!ag=kEN;0 z@Dk3EQZf*eDAAC5RAe3Y`AHCfFpR3rsMK|elt)pgd0PP66dD$gnf4|;Jy~~2#W%*_X{M9`HA;BW^n zlz3Y@XtRnLpA4onz|pzJ;ZFP8E^$_|1;@qwY9faQ+1uU{;OicTH|uTpx5AjUMa>2$ zV5!_d>|MDY$a%e%vvr!?gUo@J?zu+u&J@kZoF;dh-)_c{0gi44 zV{#lp{mzyUbwDNlVUSn)x(o8(RZ5KK-@WMH4`Rs$V2A8YnC+VKI8odi}`twX3)|dgLOZJY_Ln` z^(59Z$pA+Ue*?{cDpRneL<(rrnd2bGx z-0@7Z)+2@=QXAl#{-aX;jukM%SL!gn`KT7Gz)>eFiG1bcZy{uj`Xa)JTE^RUekP&_k14olUK61#khhz3Q_wSU@@AX-` zYMlF?(jfUu_le+f9HS@ z?@GTFzUxa@lA&n~is5j)7vu}5ElWgeC|uBs(ge-|DjwKcjD^g`Mgg3l^oPZ&Ga=)7 zS_mz6d2Rwwas=>V`!w;TpVbg#3agHhSxP~160p?{9Ga^|Y%jpwZDvqEX8;~gR>=(= zFi1bhzM^aG=Qnq`#O8D;4x-RWHZFL2Be$nCU@2bEG;oHdJ$bJ|Mz@o@6Q+gN$`%LG zfL#*xoQ_>T)=?yf@|=wD8Q_#j6MIVLJ937b^A;_w)Anp%EGH-z3+FP5Yq0|jNM{7G z7tUg4_qz4tWwc3EcA#JX#lm`y!%LS$>7kAw*X^^wgaK_#F8C7*7tv_$br0VTc51dD z30e0Dvtq`alI2+}$`aHW$)OXQ=;lH=Nk#&@8oOR@fbN~z(F0CrDh8)BJ?y>w5T0sZ z`{m8X8m=isy)d!0E>Df&O|$_U*7fnITxKV=3E+|Z<`sSXz$9c2d{23&qb$j&W*cOL zvWmHnWjo4wA1DhcpNN7TnAdgjpS9)Gca9Gdc*&X$aF}ScB*OvK|2nq;hR{mGbz@H# z%U-8C=%YOHue2qR3I1tYbaBlY89nV{qO9(>FNokMM7P3Fjw`Qw>%;KyG<+K}hkKEe z5k}~ExtC_kzG!M#!8DO5MEN7i+H7R-uU4cbc>1z(Q_+pw?ixy--dRmy>nuS-aQNA<@ZehL|JaxCIU1cN5)X&yv=7O(pufdIUzNnZ=FLxcRG0W6lN|8$(|GZdslnX_~xhsb@si z#b?Ydiau-D3r`w8%ix(zmuBAY*1T%DpROh~b0=Hi!$BdmfW?_xlxbmWvWaIzM64J! zz>r$v5QiDwfC#^4z%vn&Gv<|D!(cg50qwkFulO&^jnDFzooMh3M-7iauNzx zuD{6rO)dr2Zv%v2dlwfMH-Yn(SORIdk@xWj7WSiULnCRmjQ}8xISJKUt(}^=@sw$- zz%NpRx$Mu=&rcubc4n)$G(C4q)EV79=bbZv<{@rTOTzOCL~eq^r~UP$^45d~lBUgS zx@~I@iQWc#y)cF4qV-qZ1gU7w&gC)9GDNGEKY+GK3cIwc6qd9q(+>njEUHK5+#9&gz%L4hHM2oQwdxlIlNE#7NP82f zQ7A|Xqny%#c8QG+p(DQ+tivxI2^3dJam}8uitmSg^;h`s$N%qKdEhJH{cUn^k7fk7 zttk@ER;$s3I!Q;Occ@u^{VDirH3pJHt3t#TOu==q@ZGO-m37!(xeG}du=2Imkv4;6V=z{4>pBy9Q8 zc6mMI0{n)fYF80~(P{5lh`>FkzOsK)a9cvI7Mv9+8XO#440^Eo=3R86C`L_}GhY3| z@;qeD>NO;jyo3XvL;yg|LZnRChfU!??2M;zr$M zo@edX)_>Bh6|+Uxu1H}xtg1=D?5aNc|6CEQMB4===Fh1Vpp&g{>~!jdv5 zL><&*7_s~0LqnkuReY(OSVpE?E@&rqgm3l5u5D_ecbj}NVxL$8_r`WSD+5Ot_oso_ za2kRB;m8!g>({lETlUw#-17REcGda_t_&I#X)pu-@UXi-1OFxoSnyxzB+P!|r=sGwBqsDdCx1!Sa4tqXo?1!VO`c93W|_gtJWf*A|w#tCCU&Psf!s%009+92oaKy^_}yw5{QWH@Bdw2 zzrVeD^*Rj_&-qyo#jfNNeone@Ym5(loh_ z!eqM}ZCk#v-FiE`G@+*?z5-`ARb3*UM8R<8!knA;Xt%JxZp}m{Hqv#6K#Rf(Viu z&=mPxIu}swetk)@eW+fFB+ZzO1{qI_Wt(Ob4H9$)iOBE-Z~41KSw#)Un&c@ew6#nN zZj{8efoR2q=ymZScgt%plYR2toiqT_RnOSdjnV;sEHRmxyUfIwRJsYx?jOR^?Ur%T z*Di}`o>%)OH@g(fOOE3Co^HP}3j;{Fxw{N|N7=Fuddtgn6E~&;(V}b> zcE;uVM*GGBY1o+I`W)`hU&+V!i13|#z$X#LCtJWb8z&z=fa>jm8-2u{;Fx*_Fyu<< zhp(zYA+MHm>mzZ*j$m^Gtal@y9Mqh`E^NeC%@3Bobf7RRPkAU?IW_=Ld*6>mx+1o?;P!F>FWrGDk}T4pEj8hb?2YqfDK-1Rhnj83bm>E2l6dY5xj-V(`K zrQ{1to1EY~w^H0e_$J;>O0ib}LQ|=YMZb^LxY+|w4h-o)5}rT7+ncasOT<-VYN`Gi z*4g8C@ZG(TWpMBYQbbX+)E!emFGK{oPBM<;`QxdhJK$O`~j-wny zcdD-UemFER!Y$}rh^Z&V2FSQjkiRcbpOM&5Yw1b2^Gal)l<=+s;ELd0rhgn9sHT*= zXn@{z1oi8MTSr}O^?sc3GO)ahk`T{v(S6fp7)G#=A)Ke~%k+!~#0tea1L(psr=px- zCTDv-KM*`Eu+wVUevGwwSF<0SBrd@%HbnrFE8V{nJxBY}1chF}Ig(MC>FEsSNVFTN zYWhl;adl-&VDWB><*n9epjO!pL?oQkuY>|;pnK;V1wH9KIu)BB=$Y495q|~ZtCbI3 z(P`Uznk)3;YB_*_DZy31=FZWWAxm4jPpxlM9GKDOb)njY-n8T?0|1Mxg8=0ArnxL& zaKY0;b2XP~#I?XC4g%QW?aB5l;LKDS#D2X1wOx$BQ=E1LZlL|=29;_Ykc%;ms`K|) zFc2x^x$AT4{PWhwvXmDdnnN^sP~0KBaiTvh+M;pL5QJ7eIp zEU%?xy>dd|g|mQn+j91zIRc&*)^*Qr6V3)x9wrW!C8eG(A(E#&h`l=xJbF2`gmr4y+f$o$b&5uLMNxE~z z5%zE1SE*JJkD^s^8f%GsqAVJGV-Zqc%W+?@&@^g{-lEgwkn>Rw4UW`*&-49HR|3_O zVqDV9VSKZ0V@;$2ifDDfAL4tpwa-s5q&j2=VrL_9uh?IB3S>JIVbt(9dRCkhEGLHm z6scmxBGV|PV@K5yjAq3B!x5NEV`Xu2evJ#cv#6ecm6f+d*VSgi7Y4TYS2k%V8RC5} z2T}%<$AZnNl{rd$R$-Qy<qmuk6G?3LjB8o;Wi;csi1?&Q%RLQ(|cbv#wx9!X8%`h1*3B3?=&! zdq6P10=aud-ApxYr}x#VV5Pu-Ke8ffB22O(xwk*Dk3O-F-p4fS-4X!%=uNFBGB>v` za_gx#7ms0P1QOsajXwN_qIy7yPUQu2NvxXoL?qQgM#ogAI<{K(=lKmAZtDy{#cF_* z;=Q~H_oBY(}W>Aj)SNMTl zfgwUdNZuq+0cm5?Lr}o58EFrfzO))UFeUHD=K$oLN^r>#cM->d323wbSJ)W;8x9Xp zCUAGLTn@37%v*z!7F94`?hQP7w1LC)KMA|!)dGaunp?_p(3i8vRT^jKfEtoI#QO5% z51`alIet??k|;PK}#(+#dCGioWu z`GxFAa9%+iCX-v9TnGbGTMwfTPSv7MWVqhFQAN1)i43QTc=#_N!@*)#zZEJ}z%$6@ zJIiq`zXPFEKSaGh13QTf(_|?gkZH03$F-gECrXV>Mww@WvJL@}O|d9!%tw>PR_B8L z6!#DA6DE)5_g~QmHQk8a-7YHbY9-YzEnMeaDeUeP&sZeoID05E2re5qP zMCcnOP%`1)R<4LP6QAWcc3O?u4{3#Exk(z$Il(0s_YHcHtRqd6+59){CT*0@TRm08 zT2gtv{D4qWDsvYhh{T!|Z($*jGwZbK@|*(pJmJ=lOhhsvJhq|_9y@41N*L6ca>H@h-Bv}0mz7;kmcm#m3BU|Va@xK`0S5l4r%7DjHd zAaWxe1OOG_7uM%TEJCS&;P&tRkot$-=>w>LSZ{I>J_m5>nz`jXed$E$QXVhpg%F^D zU;an8Q3?hcltjqZ{YnF%lxrrnt_Mq8sG?)DjVbB$maBAwl+89&s_y#y@%S_AmMtm{Y58^j&DIUhrkf?& z7qX`k2SRj!Tqaun^zrAbKHz6)%Sv&>iByr*Y2p7EMD)ehLo+@QB#}n>;pdLpllpW1I^&EBrqjmWdFE{FGTN3QVAcPe7e)e2q+&aC*?2*Vr z{LY5gG$y$;l}ZUdZWG|5y~}KIE#0!_2htJTmFC}vA)063VT3pGt;V*RDSwC#N>#BV z9o7X4Wd2JxY=RUOiVr8yD<{GRnirb&NcC)h|0_t#x20* zyU4%wWzI~=F0DPsLTSHUC~VD*8s%GSUe?9@PzlRU#i}nbTmh%4X4v@OV3F=C@wi!w ztQe3dvv2ppTrHP11q{gA!6Nv#df+~B@*@Uevm4NSO0?yZSKilP$lWR2RQ*J}68QKv!yfe!z?{8umj^T$!x5!jQ%SfT{pc ze_C_!LHh$b8`e_r?-W5CqepGI+ZCx|1LQclaiXAA%2n$MN2WXuY)0gUTH?EzhyEL# z1ov$B=7#tSWRyTOQm`ApbHh(s+u~%RPML(F@FvI>V z)BYS~VZf43CR|f5#WNNFZcv(A2gc7Tnhd2CC3!!dHqHf1%vjh5&q`GawH|2uhln6c zNJuLNG_Z;k$~@>17@<|i7dfiPtXqc7hmax zXX%FPHx~VcZgMG!3RUrekot>ps9`+Vm>#nJD5{1ar)`UO1xkMB}1ONBvy3Jljnh9RTb z;O*6wSQy>Lhu@xxKeJfh*c|eXnJM`yq@cYK*g{bdWaC|hlq7U~(E5GKW39TV==fTC z%KJr^Fc_?ZUAV$+e0ds<#YL%O%XUr^#zB{j-l;XP4~;3C`joJ}kKZeFU7p{#6$%z4N~D>4IUsD@-fp(l56Fs1e}N0Q zFM$gi^VG2r@1kdIG*$Ev3j!t0x#l=V% zWbNUZTm6r3n%iR;k7AI4fbbI-(Ka3<_-ZZ**kyJZ19j_+Sz~{|46OS;*(VMZ)kl(B zS^`9;#QTW4)rHbMB*t078`5k1sqn_@xhHgptB=^3auvn2?!~yG_fqzts3y4mB^1@@ zbCN{y2aN=gQVX-{8}e(&0?XL&Svo}Fw9)SM>2l>mZ3Pq+3k*1t5}tM&kK%7>fFX27 zH*v2tP)>iGO7sooiSNAvx{o(wDBDW!x$VZhz34zy)Nv-2-T5f>*o&Om0bb048hzstq1J%1(3poiz*8ye*} z`numh_tCgORRNKzh_OqO0XRo*#wP#;#Lq^1%*&KCET{xSIP=Vrxx|q_-5iAtFq&%-4X?dn+iOK6~@4`f=uJOnQJQ4~8VC-^TV6{(ZX^>_gQ*i^y< zHJAayjf!Ku%5%RjY~A49@=)0F!xl~94XXc6iU0iDV_%zgg z76@pCxejFDJ}LCT3rZM zU0nc5VF1==IK~B7x*tyxkH!e(Zl+i{y~V6iUiUHNyjO+bi|SV%r$g@h6;zMW0lWm{ z#Wf^RzC2j;A`+V>9qqt09vhHFzc2(tAMk?RF|TSfzgTDOC407e(P&g-jBUrsn`;n6 z7+3!$+JR}k>at`PEXD8sE-{-&8*yGT1({zq7*oy^zU19TF+zw(7RavNTyPT#unqw= zJDF7H;lR{9>2x9F%?IF*o(ym$0PjG6Y(fGcVFjwjqh$JdW4*k&gp>$KSxS7KRs0ok z_OBoKPaAxDW<{EpAg&bLv1s|d$u+grS-17Pm+2ldFI!;&So>pNyhVX?1?E;R2$Lau z-jvj(Q#cwbmWxY}C30&DHwtG3T$zSUu2eC8;M*Pn=njkg({UROFn!aibr|(b_)74< z-c}X!_Y03vozbt?Y}Z3{XIls1#?E|$RO%x73lsIN7u$S=BK^TYQmAUY9eg%aTsK3Q-wiMWTloRZ`f+spfDg%8Y8z@dWE3aW?VI1lcx`U1fk5It*^4x}BtVlmX^W zU?1vQOm3j=5hoykLd+|9N5Kg|L&iGFTB3ETWd7hq03z-|aCy*>%(5y*r&75;Jkz|2 zEH7V2M|%WrbgR+Dbw02EPTpee$@&asnGTt=3UxvH6vOclr+JQ=rm&ru23Nlr(vDu@WN+OQoqY~^7hl>3|+XTwE-)EnDg^e)C&XEo^cuiyuQy&my1hXCBo8=?O8VkDz(`YXyRPt|^a!;rZt@t+}KyM8*% znpA1?Gi!}ump~Y`{a8+llknRL-T;s}kP#B0(rZt-eAAE2`N=&@+1v1wd)U9(J?s-- z^#fLN|0*6;E)NQSlU>0*EFU1#fvA_bbHzmeAscP>lD(i#ML*e42kN>FSX)&Ys;VG* z^(tT3wVo>yybI}fcGiBdlSB0jc%NUW19QR6ppzk&KYEit4XYWIo{n_~QTa%c>eNHA ze)GRUK60!9Fzd9cZ~O&999e$&91A;m(;f5_u5m6|b!4z=4_f#FW`z$!#UfEai`lJN zy}?aSnDbJwmjT=27Gv{Hc*AaUuzBcA=2f*4fg3Fvc8 z^0>Be9jwzF%OEQ1p$s6fzvZEf#yaWUJ|g=GEmtCvXx&9MxRPVtZ_R;ToYveMT{Mv%oWxSOpovz>p|jsQNslR@kGJ5*gq>$Y zc6|3QV3__3c19r2!M1B5LBdC*_QXr1HiWpZfX4#^KAlBI|xExoalm6ZPO*@l90%GIUDR4Ofaqcy75_I$H$I8n)| zQ8of1cpv)E%Ntum%``BHTCriEPfI^l!Y6m`58LveMy(LgI~lH$$#_$62^ZL~*v?P> zhE{_WiAd@dT+Aro%N&?hmNyqcp~D8syTRzkDmlsMhoJg^legor>AYO6g0+@y=axRU z{-`R6f_H_NKf)k(Bo$CdVv2!5#=B=M;DDGxmDl5B^=+D1p5{N4voV4>z6F8R{8%^O z$43b&py(MB>%hO|*348Y&8cnv-#c1LLdE&$H~iD(1K4B{V>1=7uC8$K2w@}Jjo9GU ziS;Js`9H#bHXvNI8U?oSPH>BhB#$JS|G3AlxsS=#T0Abjqr#)onn{-Wq_HGLte}p9 zH_iXe$Pf{RA_ot7%i~#{@sDhg&X*BnDwZfY7$9t|K`##}jxnpWDPw{1LF-U%#88IO zTESIPG%6Vywxk2s!r6q<1k-%{rhQ6=Wxa@ZudSjg#w^W*#%jdM1AyO@zQ!ojGVZ58 zyWELC$n5H?^4xb~B6Vh&E~x?hhPLKK938nZk1UOA!*;k}Q*yfeN=%{#b;VN%Q2NY6 ziaCO{q<3o>`W&zTrT~3aNJs=c3n#4Xz!!8m-3)Rihr6IwmaB!=!**T=^~xgDKvdnl z>~D1gOr<=A49jT(sAV%&og#~C1N(*3&4uWGk?e~Z;+ft@P;2Eu^)X?2@)(VUgRtSc ziGk4R*_sKq0+P7g;8q>(BI%wMBV-fFV{lh}NU;JdveUkv043gDGeG#lPh6)Ebz~mLl6YOW<)BOpTCD%uADNxablJN&+jj=ZC}{OqNUxTm+2G~Z)g#n zEX-aMEA?5W&+)|8qvFHAVZVbxggMXUXT@9@hdW1BYalyHrqUchC2lM5b05+p^=5(j zFlY^Qq#aL1D~Fp@R}K~Fu7G~iLU}@Jiy#MeXbN;>H9FNYSFqIJ;ZDCaG^5B=S||_g*}MKEDBA<3N`+rA4i)e> zt@s}m@FQ61bF785{s1_35SdTf#NgN8RT@A3Cp)hfATqqWg_Sl(J_p{d8L!q2nINFF z^UOBjusZg$Qc%}8qFg|dgP8{czbgN(h4&`o-3K?0R5_AC8uOP)3c|oy=eb?W=>X1)|S_Q5Dsiu&3Q~;J?h$p>H5rBth?V# z#(jAbKRI|ys@j7|-~V9f{^IrC4$acy9d7cHY9!enIGwH^_Wr4^MheGx29q4rmR~RCBIKaB^q@UcyNbQk>`~K0 zSMv$!tEk4LB~5fd!^hTDPvBHBsEL_%vbCw2vdLY*DAD;DRfMIb~m{(ZINwI;9LXDpRWb(tFOyCGEy4v zMY1?19fgfvuf~he^Pk+^u;JZ|_N;i~xFp0(9-Nf2VhpeSoYzzw+jirnD=t-PNI4%-WY0zXkvUU|PW#cF})Ii$rmJ7q3Kqfxqvvq~#?eh|{;O z{26yC*Di~(>&bDu4i_(mXLQD2Z8Cp@qv9mW7NwWc^>*w9E?$w9Hn@Gkb*V@ibRj^e zG%Eeqy5zHKA;Sz}~NgR|@2JEJ9fH}`#p=!GR8Cg)t3kldWdj;&f5c&%RA;xuZ& zvgn!cd2D@3d}di^t}n?i5a3(r%0ooN@f?23u0@Ro>k9+3@v-*J4^^~wd4*5Gh|Y!V zP(R)Civ^|O^bAit%`?;TEp&lKyLkc^^R=UKV`4G*S+PN75xwx)_Hn`;8_OpVcg*q_ zjtyO`@O`UT^j>EuKV^75R!`~s0k{++ivN{@zswkkQo_K z1zbH?)gr*XYZY3 zB~rBzajI?dihD*>dvWxHat1$fCyyoA>->=r`X0vUG!?)KHoEMJZEOq(XSd4hi&+tr}^dR1(LCMzn_Xd zvgJPydp^2hLgh*jxdy4jRz73;3A{!DDc~YKBkMnFOry@{=-0Y!&HtR(-Eb}dbKa-m z^y#Hsyx?0Z@>`3x%2BcxgocP~U-4@?5Sbeo1&w082Vl5ag<;an2|Y&^Upj-?Seav0 zjJpseILR`nlpRyinx-x=V95ooktaw6>^VE#bxfoDj`l2ZS`he-rjC@RhNkPqlX||m zdmg`))Usu~=g3$R|M7a`w3EkKEEOA4ab>qs z8E~qs@Fw{ZI)Z>aPhmNLBNeU`dqw3!qsmvpR>$n#JW6k1M?v#CSvMhD*QAYfL=pF)0`S^_CyARJ5qesN6AbvR3h3D!1XT zq$qB#9@vaDV^;YsxoYA)??8Bb&|RLN8K~a&#zPGRBPxRu8WSX4b1EQQSmYb(C|o_T z6&E5-*SgU9B^>JVqNy}(S6LtP!)GzizRv~mY z@zvvV^$iWKCI?>sM}9dVFXPr-ve&Zx${|Nt&LuEWTlN>K*@GE&6ZoH$?C7_-qr2q; zP9EEHze@nRnx6;`B#%V4g|#&bFGk1vvnhXW?zl?NDBN(vl(ar4v8K`f_I%=iMhI<7 z>Srr7TxZW4+9P01sX!ZHZr++TQtH-VUk@Wc_2)OweX^;wZtMd`PgQm9zPn&n zdR`G1c*b-cpf!;!&1Sj7v;JvIbiX~b zd{{`}rCcYrr2NOPPLg-u3l$D%jOVP}w&RzO9SzB`xp>Fln`a?kCAKdoHqF~p3Kwo< z%Z>Gvbfik^Lvk;b%pzu9TwiDjuLDoC5dqJ15 zfx3H?cH(I>nM-dzoz#fG;N~+KS@+x1VZ`g^5uw6OQ^M3*d-wd-*Vn_3Hzm;Yo0+Lb zdecMiI(zA~-v?g%{X^zm1w?Nz3a&7Gk^=~>ktcHRYIv|%lBz=4vgY^;%C8x|Z#tcw zK+JXY-_j+LW>3+4Ez^1Xk}jM=3-;`}zJ&POh;Z|^$L|boiBDCu-d7}BLI7I$bo2}+ z>D^McT0iRKq{rjNs|jw!9&%4jO}#9cJ=B=FH+X(uBS^x_dj#(3dz71-D?;iL)CA9O zS)bq-7ZJb$)i&|^6`96K1WSXhc%1Z}D}yxH;|$W5Sy1`*`)^eJbdGh!)qkgUNy5+O7-aBmjsuIO!9NugJke8o0b|^1~9_&L_KT={G zE7sb#qkr(w7e>6db%dUAvS6a`vS5WYtv6pAq|v=SHs{OFm~p9b@v{?QB*YTRHpSN( zFIb*=mPKW}SVG+TZC#TvOuX@fABKo8{8i|u(Xf%qt?UWxx`RnosiHlWB^~ zHWtk!cm(pV!D&#yjY&F6zJ7thj-+_owEA9Xn<;5qSv;0_c8g^Qt~z%Iow50eTWdk3 ziLTIey=Xi!K+Elh7E{1w>8xD2vRH0vqDDBef7K)U)s?e0u#ImTWgKTcc)EQAVi@yg zh2&;f?i69zn~jMz#`~9F%EE7SJ2U~=d;Q)hqRXo19>PspVGHa8_OqG5=zh-h@f?@R zH|V?|Baur^k+<+Xgd&?EHS*aBKk9!Q7P8|6xT~}GNbC<0bmwwaoubf?KzSoOjliT~ z)d{R%L3`p=qz>JqR0O~8Tm8N1b&$A)@*JrvX6whC2DhH@ahB8LE!8~YPjr{BGcApEy1Z5U{-$c(Tha1bZHvhLgecOVneMtG||IT zQ}}au(T&q-t)U;$g2^n|X7XpJh7D7@yzcvNexxKuI6{!cIQ5ufM!+^6;?9-zmYvy7 zUt`}G$>kXB!tw+5VLkbPaxSg3{l$}!m-Jw8>6u?hpumVDVES6ipNM9{ zbnF@IN{7vpK~AB8KVsi=$$LijCUH_5FX;reenS;=Xkv((s7&vA^E}m!yM725Cj;ie zy0D!91KL-avQ#gYBooyG+mRWZw59~vXhWENN5FkbHKw8nJ@sNxT@9LXDV|z${H{l7 z0zX6y47MV5ND^-<7}tN&;c&~&FC9qI_MJdYyYt@mpL0SDGO3bR5!Mf96PQnt&(T-$ z_g?KSGI3TyMn{EL&NSPrq&(@3NGCfYm_0Qqm7YynGnlGl)ZSoKb%S0a&6Knic(uQ@ zJu%zNAAT>mkn|@>6NaC2a zywSv*-9v7D=kLX>_T$O~RRq>Cj$1V%YKZI&_<(qBg?Gs)@uhWsf*DD1 x$*GLGNpsZS3CF#z^%DfpHVP&u@mQTCi%l={jjlxM4g>$JTW$4y!ne*x{|`!5Yis}j literal 0 HcmV?d00001 From 37c60984bc1042c3032a209104ad97bdc2bf8b92 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sun, 7 Oct 2018 20:34:45 -0400 Subject: [PATCH 27/34] chip movement --- .../hwk6/controller/ChipController.java | 68 +++++++++++++++++-- .../se2018/homework/hwk6/view/ChipView.java | 11 +-- 2 files changed, 69 insertions(+), 10 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java index de60d8b1..71d2e888 100644 --- a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java +++ b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java @@ -7,29 +7,33 @@ import javafx.scene.input.KeyEvent; public class ChipController { - ChipModel chip; - ChipView chipView; + public ChipModel chip; + public ChipView chipView; + public int[] pos; + public int [][] gameMap; public ChipController(int[][] map) { chip = new ChipModel(0, 0, map); chipView = new ChipView(chip); chip.attachView(chipView); + pos = chip.getPosition(); + gameMap = map; } public void moveEvent(KeyEvent ke) { switch(ke.getCode()){ case RIGHT: - System.out.println("right"); + moveRight(); break; case LEFT: - System.out.println("left"); + moveLeft(); break; case UP: - System.out.println("up"); + moveUp(); break; case DOWN: - System.out.println("down"); + moveDown(); break; default: break; @@ -40,5 +44,57 @@ public void moveEvent(KeyEvent ke) { public Node getImageView() { return chipView.view; } + + public void moveRight() { + int[] pos = new int[2]; + pos = chip.getPosition(); + int x = pos[0]; + int y = pos[1]; + if (x + 1 < 25) { + if (gameMap[x + 1][y] != 1) { + x++; + } + } + this.chip.setPosition(x, y); + } + + public void moveLeft() { + int[] pos = new int[2]; + pos = chip.getPosition(); + int x = pos[0]; + int y = pos[1]; + if (x - 1 >= 0) { + if (gameMap[x - 1][y] != 1) { + x--; + } + } + this.chip.setPosition(x, y); + } + + public void moveUp() { + int[] pos = new int[2]; + pos = chip.getPosition(); + int x = pos[0]; + int y = pos[1]; + if (y - 1 >= 0) { + if (gameMap[x][y - 1] != 1) { + y--; + } + } + this.chip.setPosition(x, y); + } + + public void moveDown() { + int[] pos = new int[2]; + pos = chip.getPosition(); + int x = pos[0]; + int y = pos[1]; + if (y + 1 < 25) { + if (gameMap[x][y + 1] != 1) { + y++; + } + } + this.chip.setPosition(x, y); + } } diff --git a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java index bbfba665..60d93a05 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java +++ b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java @@ -18,9 +18,11 @@ public ChipView(ChipModel chip) { view = new ImageView(chipImage); view.setFitHeight(20); view.setFitWidth(20); - int[] pos = chip.getPosition(); - view.setX(pos[0] * 20); - view.setY(pos[1] * 20); + int[] pos = new int[2]; + pos = chip.getPosition(); + System.out.println(pos[0]); + view.setX(pos[0]); + view.setY(pos[1]); } public Node getView() { @@ -30,7 +32,8 @@ public Node getView() { @Override public void update(Observable o, Object arg) { - int[] pos = ((ChipModel)o).getPosition(); + int[] pos = new int[2]; + pos = ((ChipModel)o).getPosition(); view.setX(pos[0] * 20); view.setY(pos[1] * 20); From ab0038327c04b93df1fc32e5574db43b4da8deed Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Thu, 11 Oct 2018 17:29:55 -0400 Subject: [PATCH 28/34] get chips to disappear --- src/edu/nd/se2018/homework/hwk6/Main.java | 9 +- .../hwk6/controller/ChipController.java | 82 +++++++++++++---- .../se2018/homework/hwk6/view/ChipView.java | 1 - .../se2018/homework/hwk6/view/MapDisplay.java | 92 +++++++++++++++++-- 4 files changed, 155 insertions(+), 29 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java index 0c743f42..f858d98b 100644 --- a/src/edu/nd/se2018/homework/hwk6/Main.java +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -19,9 +19,9 @@ public class Main extends Application { ImageView[][] tiles; Image tileImage; int scale = 20; - //ChipModel chip; ChipView chipView; ChipController chipController; + int level = 1; @Override public void start(Stage gameStage) throws Exception { @@ -30,12 +30,11 @@ public void start(Stage gameStage) throws Exception { gameMap = new MapDisplay(); gameMap.setBlocks(); + gameMap.setLevel(level); gameMap.drawMap(root.getChildren(), 20); - /*chip = new ChipModel(0, 0, gameMap.getMap()); - chipView = new ChipView(chip); - chip.attachView(chipView);*/ - chipController = new ChipController(gameMap.getMap()); + + chipController = new ChipController(gameMap); root.getChildren().add(chipController.getImageView()); diff --git a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java index 71d2e888..4708af19 100644 --- a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java +++ b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java @@ -2,6 +2,7 @@ import edu.nd.se2018.homework.hwk6.model.ChipModel; import edu.nd.se2018.homework.hwk6.view.ChipView; +import edu.nd.se2018.homework.hwk6.view.MapDisplay; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.input.KeyEvent; @@ -9,19 +10,30 @@ public class ChipController { public ChipModel chip; public ChipView chipView; + public MapDisplay gameMap; public int[] pos; - public int [][] gameMap; + public int [][] map; + public int keys; + boolean update = false; + int x; + int y; - public ChipController(int[][] map) { + public ChipController(MapDisplay gMap) { + gameMap = gMap; + map = gameMap.getMap(); chip = new ChipModel(0, 0, map); chipView = new ChipView(chip); chip.attachView(chipView); pos = chip.getPosition(); - gameMap = map; - + keys = gameMap.getLevel()*5; } public void moveEvent(KeyEvent ke) { + + if (update == true) { + gameMap.removeKey(x, y); + } + switch(ke.getCode()){ case RIGHT: moveRight(); @@ -48,12 +60,21 @@ public Node getImageView() { public void moveRight() { int[] pos = new int[2]; pos = chip.getPosition(); - int x = pos[0]; - int y = pos[1]; + x = pos[0]; + y = pos[1]; if (x + 1 < 25) { - if (gameMap[x + 1][y] != 1) { + if (map[x + 1][y] != 1) { x++; - } + if (map[x][y] == 2) { + keys--; + gameMap.setMap(x, y, 0); + chip.addKey(); + update = true; + } + else { + update = false; + } + } } this.chip.setPosition(x, y); } @@ -61,11 +82,20 @@ public void moveRight() { public void moveLeft() { int[] pos = new int[2]; pos = chip.getPosition(); - int x = pos[0]; - int y = pos[1]; + x = pos[0]; + y = pos[1]; if (x - 1 >= 0) { - if (gameMap[x - 1][y] != 1) { + if (map[x - 1][y] != 1) { x--; + if (map[x][y] == 2) { + keys--; + gameMap.setMap(x, y, 0); + chip.addKey(); + update = true; + } + else { + update = false; + } } } this.chip.setPosition(x, y); @@ -74,11 +104,20 @@ public void moveLeft() { public void moveUp() { int[] pos = new int[2]; pos = chip.getPosition(); - int x = pos[0]; - int y = pos[1]; + x = pos[0]; + y = pos[1]; if (y - 1 >= 0) { - if (gameMap[x][y - 1] != 1) { + if (map[x][y - 1] != 1) { y--; + if (map[x][y] == 2) { + keys--; + gameMap.setMap(x, y, 0); + chip.addKey(); + update = true; + } + else { + update = false; + } } } this.chip.setPosition(x, y); @@ -87,11 +126,20 @@ public void moveUp() { public void moveDown() { int[] pos = new int[2]; pos = chip.getPosition(); - int x = pos[0]; - int y = pos[1]; + x = pos[0]; + y = pos[1]; if (y + 1 < 25) { - if (gameMap[x][y + 1] != 1) { + if (map[x][y + 1] != 1) { y++; + if (map[x][y] == 2 ) { + keys--; + gameMap.setMap(x, y, 0); + chip.addKey(); + update = true; + } + else { + update = false; + } } } this.chip.setPosition(x, y); diff --git a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java index 60d93a05..f1bfe659 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java +++ b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java @@ -37,7 +37,6 @@ public void update(Observable o, Object arg) { view.setX(pos[0] * 20); view.setY(pos[1] * 20); - } } diff --git a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java index 5ec9e98d..27ba5ac9 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java +++ b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java @@ -21,38 +21,89 @@ public class MapDisplay { public int[][] map = new int[25][25]; final int dimensions = 25; - ImageView tileImageView; - Image tileImage; + ImageView tileImageView, keyImageView; + Image tileImage, keyImage; + public int level = 1; + ObservableList root; public void setBlocks( ) { Random random = new Random(); for (int i = 0; i < 25; i++) { int x = random.ints(0, 24).findFirst().getAsInt(); int y = random.ints(0, 24).findFirst().getAsInt(); - while ((x == 0) && (y == 0) || (x == 5) && (y == 7)) { + while ((x == 0) && (y == 0)) { x = random.ints(0, 24).findFirst().getAsInt(); y = random.ints(0, 24).findFirst().getAsInt(); } this.map[x][y]= 1; } } - public void drawMap(ObservableList root, int scale) { + + public void setLevel(int l) { + level = l; + int chips = level*5; + Random random = new Random(); + for (int i = 0; i < chips; i++) { + int x = random.ints(0, 24).findFirst().getAsInt(); + int y = random.ints(0, 24).findFirst().getAsInt(); + while ((x == 0) && (y == 0) && (map[x][y] == 1)) { + x = random.ints(0, 24).findFirst().getAsInt(); + y = random.ints(0, 24).findFirst().getAsInt(); + } + this.map[x][y] = 2; + } + } + + public void drawMap(ObservableList r, int scale) { + root = r; for (int x = 0; x < dimensions; x++) { for (int y = 0; y < dimensions; y++) { Rectangle rect = new Rectangle(x*scale, y*scale, scale, scale); rect.setStroke(Color.BLACK); + + tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); + tileImageView = new ImageView(tileImage); + tileImageView.setX(x * scale); + tileImageView.setY(y * scale); + root.add(tileImageView); + + /*if (map[x][y] != 1) { + tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); + tileImageView = new ImageView(tileImage); + tileImageView.setX(x * scale); + tileImageView.setY(y * scale); + root.add(tileImageView); + this.map[x][y] = 0; + }*/ + + if (map[x][y] == 2) { + keyImage = new Image("/images/chip/textures/chipItem.png", 50, 50, true, true); + keyImageView = new ImageView(keyImage); + + keyImageView.setFitHeight(20); + keyImageView.setFitWidth(20); + keyImageView.setX(x * scale); + keyImageView.setY(y * scale); + root.add(keyImageView); + + } + if (map[x][y] == 1) { rect.setFill(Color.BROWN); root.add(rect); } - else { + + else if (map[x][y] != 2) { + this.map[x][y] = 0; + } + /*if (map[x][y] == 0) { tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); tileImageView = new ImageView(tileImage); tileImageView.setX(x * scale); tileImageView.setY(y * scale); root.add(tileImageView); this.map[x][y] = 0; - } + }*/ } } } @@ -60,4 +111,33 @@ public void drawMap(ObservableList root, int scale) { public int[][] getMap() { return(this.map); } + + public void setMap(int x, int y, int value) { + this.map[x][y] = value; + //tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); + //tileImageView = new ImageView(tileImage); + //root.remove(keyImage); + //tileImageView.setFitHeight(20); + //tileImageView.setFitWidth(20); + //tileImageView.setX(x * 20); + //tileImageView.setY(y * 20); + //root.add(tileImageView); + //drawMap(root, 20); + } + + public void removeKey(int x, int y) { + tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); + tileImageView = new ImageView(tileImage); + //root.remove(keyImage); + tileImageView.setFitHeight(20); + tileImageView.setFitWidth(20); + tileImageView.setX(x * 20); + tileImageView.setY(y * 20); + root.add(tileImageView); + } + + public int getLevel() { + return(this.level); + } + } From 6f7dcec8e39991df17248547cf1f13dcc40e5172 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 12 Oct 2018 07:53:40 -0500 Subject: [PATCH 29/34] game states --- src/edu/nd/se2018/homework/hwk6/Main.java | 2 +- .../hwk6/controller/ChipController.java | 39 ++++++++--- .../se2018/homework/hwk6/model/AllChips.java | 29 ++++++++ .../se2018/homework/hwk6/model/ChipModel.java | 47 ++++++++++++- .../homework/hwk6/model/GameRunning.java | 27 ++++++++ .../se2018/homework/hwk6/model/GameState.java | 8 +++ .../se2018/homework/hwk6/model/GameWon.java | 29 ++++++++ .../se2018/homework/hwk6/view/ChipView.java | 1 - .../se2018/homework/hwk6/view/MapDisplay.java | 66 +++++++------------ 9 files changed, 191 insertions(+), 57 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk6/model/AllChips.java create mode 100644 src/edu/nd/se2018/homework/hwk6/model/GameRunning.java create mode 100644 src/edu/nd/se2018/homework/hwk6/model/GameState.java create mode 100644 src/edu/nd/se2018/homework/hwk6/model/GameWon.java diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java index f858d98b..78ee7c1e 100644 --- a/src/edu/nd/se2018/homework/hwk6/Main.java +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -53,7 +53,7 @@ private void startGame(Scene scene) { public void handle(KeyEvent event) { chipController.moveEvent(event); - } + } }); diff --git a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java index 4708af19..44cf73d8 100644 --- a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java +++ b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java @@ -4,7 +4,6 @@ import edu.nd.se2018.homework.hwk6.view.ChipView; import edu.nd.se2018.homework.hwk6.view.MapDisplay; import javafx.scene.Node; -import javafx.scene.Scene; import javafx.scene.input.KeyEvent; public class ChipController { @@ -17,21 +16,24 @@ public class ChipController { boolean update = false; int x; int y; + boolean allChips = false; public ChipController(MapDisplay gMap) { gameMap = gMap; map = gameMap.getMap(); - chip = new ChipModel(0, 0, map); + keys = gameMap.getLevel()*5; + + chip = new ChipModel(0, 0, map, keys); chipView = new ChipView(chip); chip.attachView(chipView); pos = chip.getPosition(); - keys = gameMap.getLevel()*5; } public void moveEvent(KeyEvent ke) { if (update == true) { gameMap.removeKey(x, y); + allChips = chip.allKeysCollected(); } switch(ke.getCode()){ @@ -66,7 +68,6 @@ public void moveRight() { if (map[x + 1][y] != 1) { x++; if (map[x][y] == 2) { - keys--; gameMap.setMap(x, y, 0); chip.addKey(); update = true; @@ -74,7 +75,14 @@ public void moveRight() { else { update = false; } - } + } + if (allChips == true) { + if (map[x][y] == 4) { + gameMap.setMap(x, y, 0); + System.out.println("level won, " + x); + + } + } } this.chip.setPosition(x, y); } @@ -88,7 +96,6 @@ public void moveLeft() { if (map[x - 1][y] != 1) { x--; if (map[x][y] == 2) { - keys--; gameMap.setMap(x, y, 0); chip.addKey(); update = true; @@ -97,6 +104,12 @@ public void moveLeft() { update = false; } } + if (allChips == true) { + if (map[x][y] == 4) { + gameMap.setMap(x, y, 0); + System.out.println("level won"); + } + } } this.chip.setPosition(x, y); } @@ -110,7 +123,6 @@ public void moveUp() { if (map[x][y - 1] != 1) { y--; if (map[x][y] == 2) { - keys--; gameMap.setMap(x, y, 0); chip.addKey(); update = true; @@ -119,6 +131,12 @@ public void moveUp() { update = false; } } + if (allChips == true) { + if (map[x][y] == 4) { + gameMap.setMap(x, y, 0); + System.out.println("level won"); + } + } } this.chip.setPosition(x, y); } @@ -132,7 +150,6 @@ public void moveDown() { if (map[x][y + 1] != 1) { y++; if (map[x][y] == 2 ) { - keys--; gameMap.setMap(x, y, 0); chip.addKey(); update = true; @@ -141,6 +158,12 @@ public void moveDown() { update = false; } } + if (allChips == true) { + if (map[x][y] == 4) { + gameMap.setMap(x, y, 0); + System.out.println("level won"); + } + } } this.chip.setPosition(x, y); } diff --git a/src/edu/nd/se2018/homework/hwk6/model/AllChips.java b/src/edu/nd/se2018/homework/hwk6/model/AllChips.java new file mode 100644 index 00000000..381cd45a --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/model/AllChips.java @@ -0,0 +1,29 @@ +package edu.nd.se2018.homework.hwk6.model; + +public class AllChips implements GameState { + + private ChipModel chip; + + protected AllChips(ChipModel chip) { + this.chip = chip; + } + + @Override + public void allChipsCollected() { + // TODO Auto-generated method stub + + } + + @Override + public void levelWon() { + chip.setGameState(chip.getGameWonState()); + + } + + @Override + public void running() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java b/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java index e4efe37c..4abd89e4 100644 --- a/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java +++ b/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java @@ -10,12 +10,25 @@ public class ChipModel extends Observable { int y; int[] position = new int[2]; int[][] gameMap; + boolean allKeys = false; - public ChipModel(int xPos, int yPos, int[][] map) { + private GameState gameRunning; + private GameState chipsCollected; + private GameState gameWon; + private GameState currentState; + + public ChipModel(int xPos, int yPos, int[][] map, int k) { x = xPos; y = yPos; - keys = 0; + this.keys = k; gameMap = map; + + gameRunning = new GameRunning(this); + chipsCollected = new AllChips(this); + gameWon = new GameWon(this); + + currentState = gameRunning; + currentState.running(); } public int[] getPosition() { @@ -38,11 +51,39 @@ public void setPosition(int xPos, int yPos) { } public void addKey() { - this.keys++; + this.keys--; + if (keys == 0) { + this.allKeys = true; + currentState.allChipsCollected(); + } } public void attachView(ChipView view) { addObserver(view); } + + public boolean allKeysCollected() { + return(allKeys); + } + + public void setGameState(GameState newState){ + currentState = newState; + } + + public GameState getAllChipsState() { + return chipsCollected; + } + + public GameState getRunningState() { + return gameRunning; + } + + public GameState getGameWonState() { + return gameWon; + } + + public void levelWon() { + currentState.levelWon(); + } } diff --git a/src/edu/nd/se2018/homework/hwk6/model/GameRunning.java b/src/edu/nd/se2018/homework/hwk6/model/GameRunning.java new file mode 100644 index 00000000..0f6a35e1 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/model/GameRunning.java @@ -0,0 +1,27 @@ +package edu.nd.se2018.homework.hwk6.model; + +public class GameRunning implements GameState { + private ChipModel chip; + + protected GameRunning(ChipModel chip) { + this.chip = chip; + } + + @Override + public void allChipsCollected() { + chip.setGameState(chip.getAllChipsState()); + } + + @Override + public void levelWon() { + // TODO Auto-generated method stub + + } + + @Override + public void running() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/model/GameState.java b/src/edu/nd/se2018/homework/hwk6/model/GameState.java new file mode 100644 index 00000000..b9db5768 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/model/GameState.java @@ -0,0 +1,8 @@ +package edu.nd.se2018.homework.hwk6.model; + +public interface GameState { + public void allChipsCollected(); + public void levelWon(); + public void running(); + +} diff --git a/src/edu/nd/se2018/homework/hwk6/model/GameWon.java b/src/edu/nd/se2018/homework/hwk6/model/GameWon.java new file mode 100644 index 00000000..e2c423ac --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/model/GameWon.java @@ -0,0 +1,29 @@ +package edu.nd.se2018.homework.hwk6.model; + +public class GameWon implements GameState { + + private ChipModel chip; + + protected GameWon(ChipModel chip) { + this.chip = chip; + } + + @Override + public void allChipsCollected() { + // TODO Auto-generated method stub + + } + + @Override + public void levelWon() { + // TODO Auto-generated method stub + + } + + @Override + public void running() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java index f1bfe659..5975960a 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/ChipView.java +++ b/src/edu/nd/se2018/homework/hwk6/view/ChipView.java @@ -20,7 +20,6 @@ public ChipView(ChipModel chip) { view.setFitWidth(20); int[] pos = new int[2]; pos = chip.getPosition(); - System.out.println(pos[0]); view.setX(pos[0]); view.setY(pos[1]); } diff --git a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java index 27ba5ac9..047b623b 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java +++ b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java @@ -1,28 +1,19 @@ package edu.nd.se2018.homework.hwk6.view; -import javafx.application.Application; import javafx.collections.ObservableList; -import javafx.event.EventHandler; import javafx.scene.Node; -import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image.ImageView; -import javafx.scene.input.KeyEvent; -import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.Pane; + import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; -import javafx.stage.Stage; -import java.util.Collection; import java.util.Random; -import edu.nd.se2018.homework.hwk3.PirateShip; -import edu.nd.se2018.homework.hwk3.Ship; public class MapDisplay { public int[][] map = new int[25][25]; final int dimensions = 25; - ImageView tileImageView, keyImageView; - Image tileImage, keyImage; + ImageView tileImageView, keyImageView, doorImageView; + Image tileImage, keyImage, doorImage; public int level = 1; ObservableList root; @@ -31,12 +22,14 @@ public void setBlocks( ) { for (int i = 0; i < 25; i++) { int x = random.ints(0, 24).findFirst().getAsInt(); int y = random.ints(0, 24).findFirst().getAsInt(); - while ((x == 0) && (y == 0)) { + while (((x == 0) && (y == 0)) && ((x == 24) && (y == 10))) { x = random.ints(0, 24).findFirst().getAsInt(); y = random.ints(0, 24).findFirst().getAsInt(); } - this.map[x][y]= 1; + this.map[x][y] = 1; } + + this.map[24][10] = 4; } public void setLevel(int l) { @@ -46,12 +39,14 @@ public void setLevel(int l) { for (int i = 0; i < chips; i++) { int x = random.ints(0, 24).findFirst().getAsInt(); int y = random.ints(0, 24).findFirst().getAsInt(); - while ((x == 0) && (y == 0) && (map[x][y] == 1)) { + while ((x == 0) && (y == 0) && (map[x][y] == 1) && (map[x][y] == 4)) { x = random.ints(0, 24).findFirst().getAsInt(); y = random.ints(0, 24).findFirst().getAsInt(); } this.map[x][y] = 2; } + + } public void drawMap(ObservableList r, int scale) { @@ -67,19 +62,9 @@ public void drawMap(ObservableList r, int scale) { tileImageView.setY(y * scale); root.add(tileImageView); - /*if (map[x][y] != 1) { - tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); - tileImageView = new ImageView(tileImage); - tileImageView.setX(x * scale); - tileImageView.setY(y * scale); - root.add(tileImageView); - this.map[x][y] = 0; - }*/ - if (map[x][y] == 2) { keyImage = new Image("/images/chip/textures/chipItem.png", 50, 50, true, true); keyImageView = new ImageView(keyImage); - keyImageView.setFitHeight(20); keyImageView.setFitWidth(20); keyImageView.setX(x * scale); @@ -88,22 +73,25 @@ public void drawMap(ObservableList r, int scale) { } + if (map[x][y] == 4) { + doorImage = new Image("/images/chip/textures/blueKeyWall.png", 50, 50, true, true); + doorImageView = new ImageView(doorImage); + doorImageView.setFitHeight(20); + doorImageView.setFitWidth(20); + doorImageView.setX(x * scale); + doorImageView.setY(y * scale); + root.add(doorImageView); + } + if (map[x][y] == 1) { rect.setFill(Color.BROWN); root.add(rect); } - else if (map[x][y] != 2) { + + else if ((map[x][y] != 2) && (map[x][y] != 4)) { this.map[x][y] = 0; } - /*if (map[x][y] == 0) { - tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); - tileImageView = new ImageView(tileImage); - tileImageView.setX(x * scale); - tileImageView.setY(y * scale); - root.add(tileImageView); - this.map[x][y] = 0; - }*/ } } } @@ -114,21 +102,11 @@ public int[][] getMap() { public void setMap(int x, int y, int value) { this.map[x][y] = value; - //tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); - //tileImageView = new ImageView(tileImage); - //root.remove(keyImage); - //tileImageView.setFitHeight(20); - //tileImageView.setFitWidth(20); - //tileImageView.setX(x * 20); - //tileImageView.setY(y * 20); - //root.add(tileImageView); - //drawMap(root, 20); } public void removeKey(int x, int y) { tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); tileImageView = new ImageView(tileImage); - //root.remove(keyImage); tileImageView.setFitHeight(20); tileImageView.setFitWidth(20); tileImageView.setX(x * 20); From 708fdabd3ed6d8a71d981af9f1e328d8715e4179 Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Fri, 12 Oct 2018 21:23:33 -0400 Subject: [PATCH 30/34] progress --- .DS_Store | Bin 6148 -> 6148 bytes src/.DS_Store | Bin 6148 -> 6148 bytes src/edu/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/homework/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/homework/hwk6/Main.java | 30 +++++++-- .../hwk6/controller/ChipController.java | 20 ++++-- .../hwk6/controller/MonsterController.java | 58 ++++++++++++++++++ .../hwk6/controller/MoveStrategy.java | 6 ++ .../hwk6/controller/MoveVertical.java | 26 ++++++++ .../homework/hwk6/model/MonsterModel.java | 38 ++++++++++++ .../se2018/homework/hwk6/view/MapDisplay.java | 19 +++++- .../homework/hwk6/view/MonsterView.java | 40 ++++++++++++ 14 files changed, 225 insertions(+), 12 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java create mode 100644 src/edu/nd/se2018/homework/hwk6/controller/MoveStrategy.java create mode 100644 src/edu/nd/se2018/homework/hwk6/controller/MoveVertical.java create mode 100644 src/edu/nd/se2018/homework/hwk6/model/MonsterModel.java create mode 100644 src/edu/nd/se2018/homework/hwk6/view/MonsterView.java diff --git a/.DS_Store b/.DS_Store index 0e7daef5b54e3ffb375124d4f6538074cb84c66a..b98e5fc51d005dbf6990dbd50c36f65758a9de36 100644 GIT binary patch delta 20 bcmZoMXffE}!_01Ap`&1AY_K_)d7}sbJVXVC delta 20 bcmZoMXffE}!_01GrlVkFWV$(+d7}sbJdFj8 diff --git a/src/.DS_Store b/src/.DS_Store index a59ab3d8f4aa1234a618c6aea3ed444a77981fa2..f1a4edb9f3e505286f4daa618678d9f2b51f597b 100644 GIT binary patch delta 24 fcmZoMXffDuhK1e0LPx>K*kE!zo8x8?)(=7eUJnOA delta 23 ecmZoMXffDuhK0?{Oh>`UXmT8z(`FIY4?+M~NCy%C diff --git a/src/edu/.DS_Store b/src/edu/.DS_Store index e733f3f1a563685837d2b4a35473a2aaccf7d64c..686480c4d96d111e068a16aa0dda4393ca7b2522 100644 GIT binary patch delta 20 bcmZoMXffDuf{ES0LPx>K*kJQ{CR0%WL~sTH delta 20 bcmZoMXffDuf{ESCOh>`U$aM30CR0%WM7ahD diff --git a/src/edu/nd/.DS_Store b/src/edu/nd/.DS_Store index 8c806c533b9749a45fce2ff37542d8d378dae53b..790a00f5ddf905a1d68a0d457632bc8f48c07119 100644 GIT binary patch delta 20 bcmZoMXffEp#LRABp`&1AY_OS=`L_rFH(CWe delta 20 bcmZoMXffEp#LRAHrlVkFWV)G?`L_rFH=_ka diff --git a/src/edu/nd/se2018/.DS_Store b/src/edu/nd/se2018/.DS_Store index d31efb03b2af52947524091d8538a25779071d5d..d2b12a6443e7f0ab0c860623ac55dceeaf245a8a 100644 GIT binary patch delta 20 bcmZoMXffCz$;NJAp`&1AY_M5@?TH`&IS~a` delta 20 bcmZoMXffCz$;NJGrlVkFWV%^_?TH`&Ia&o? diff --git a/src/edu/nd/se2018/homework/.DS_Store b/src/edu/nd/se2018/homework/.DS_Store index b6cee2add86d9a738c925b28e60ca83081cbf4f7..44bf744f0c7a6df65dbd1d82daaa0f61020a1f54 100644 GIT binary patch delta 20 bcmZoMXffE3#LjMDp`&1AY_K_#eYOAqJ^BTp delta 20 bcmZoMXffE3#LjMJrlVkFWV$(%eYOAqK0^hl diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java index 78ee7c1e..7764ffd8 100644 --- a/src/edu/nd/se2018/homework/hwk6/Main.java +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -1,15 +1,17 @@ package edu.nd.se2018.homework.hwk6; +import javafx.animation.AnimationTimer; import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image.ImageView; +import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.layout.AnchorPane; -import javafx.scene.Node; import javafx.stage.Stage; import edu.nd.se2018.homework.hwk6.controller.ChipController; -import edu.nd.se2018.homework.hwk6.model.ChipModel; +import edu.nd.se2018.homework.hwk6.controller.MonsterController; +import edu.nd.se2018.homework.hwk6.controller.MoveVertical; import edu.nd.se2018.homework.hwk6.view.*; public class Main extends Application { @@ -21,6 +23,7 @@ public class Main extends Application { int scale = 20; ChipView chipView; ChipController chipController; + MonsterController monsterController; int level = 1; @Override @@ -35,16 +38,34 @@ public void start(Stage gameStage) throws Exception { chipController = new ChipController(gameMap); + monsterController = new MonsterController(gameMap, new MoveVertical()); root.getChildren().add(chipController.getImageView()); - + root.getChildren().add(monsterController.getImageView()); gameStage.setScene(scene); gameStage.setTitle("Chip's Challenge"); gameStage.show(); + gameStage.addEventHandler(KeyEvent.KEY_RELEASED, (KeyEvent event) -> { + if (event.getCode() == KeyCode.ESCAPE) { + gameStage.close(); + } + }); + startGame(scene); + + new AnimationTimer(){ + //@Override + int count = 0; + public void handle(long now) { + if (count % 10 == 0) { + monsterController.runStrategy(); + } + count++; + } + }.start(); } private void startGame(Scene scene) { @@ -52,11 +73,8 @@ private void startGame(Scene scene) { public void handle(KeyEvent event) { chipController.moveEvent(event); - } - }); - } diff --git a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java index 44cf73d8..8e441beb 100644 --- a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java +++ b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java @@ -79,7 +79,7 @@ public void moveRight() { if (allChips == true) { if (map[x][y] == 4) { gameMap.setMap(x, y, 0); - System.out.println("level won, " + x); + levelWon(); } } @@ -107,7 +107,7 @@ public void moveLeft() { if (allChips == true) { if (map[x][y] == 4) { gameMap.setMap(x, y, 0); - System.out.println("level won"); + levelWon();; } } } @@ -134,7 +134,7 @@ public void moveUp() { if (allChips == true) { if (map[x][y] == 4) { gameMap.setMap(x, y, 0); - System.out.println("level won"); + levelWon(); } } } @@ -161,11 +161,23 @@ public void moveDown() { if (allChips == true) { if (map[x][y] == 4) { gameMap.setMap(x, y, 0); - System.out.println("level won"); + levelWon(); + } } } this.chip.setPosition(x, y); } + + public void levelWon() { + System.out.println("level won"); + gameMap.reset(); + //chip.setPosition(0, 0); + //chip = new ChipModel(0, 0, map, keys); + chipView = new ChipView(chip); + chip.attachView(chipView); + chip.setPosition(0, 0); + pos = chip.getPosition(); + } } diff --git a/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java b/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java new file mode 100644 index 00000000..2e7ca2dc --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java @@ -0,0 +1,58 @@ +package edu.nd.se2018.homework.hwk6.controller; + +import edu.nd.se2018.homework.hwk6.model.MonsterModel; +import edu.nd.se2018.homework.hwk6.view.MapDisplay; +import edu.nd.se2018.homework.hwk6.view.MonsterView; +import javafx.scene.Node; + +public class MonsterController { + public MonsterModel monster; + public MonsterView monsterView; + public MapDisplay gameMap; + public int[] pos; + public int [][] map; + int x; + int y; + //int direction = 1; + MoveStrategy strategy; + + public MonsterController(MapDisplay gMap, MoveStrategy s) { + gameMap = gMap; + map = gameMap.getMap(); + + monster = new MonsterModel(20, 10); + monsterView = new MonsterView(monster); + monster.attachView(monsterView); + pos = monster.getPosition(); + + strategy = s; + } + + public Node getImageView() { + return monsterView.view; + } + + /*public void move() { + pos = monster.getPosition(); + x = pos[0]; + y = pos[1]; + if ((y < 15) && (y > 5)) { + y = y + direction; + } + else { + direction = direction * -1; + y = y + direction; + } + + monster.setPosition(x, y); + }*/ + + public void runStrategy() { + pos = monster.getPosition(); + x = pos[0]; + y = pos[1]; + pos = strategy.move(x, y); + monster.setPosition(pos[0], pos[1]); + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/controller/MoveStrategy.java b/src/edu/nd/se2018/homework/hwk6/controller/MoveStrategy.java new file mode 100644 index 00000000..a5f3f74c --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/controller/MoveStrategy.java @@ -0,0 +1,6 @@ +package edu.nd.se2018.homework.hwk6.controller; + +public interface MoveStrategy { + public int[] move(int xPos, int yPos); + +} diff --git a/src/edu/nd/se2018/homework/hwk6/controller/MoveVertical.java b/src/edu/nd/se2018/homework/hwk6/controller/MoveVertical.java new file mode 100644 index 00000000..8d5395d0 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/controller/MoveVertical.java @@ -0,0 +1,26 @@ +package edu.nd.se2018.homework.hwk6.controller; + +public class MoveVertical implements MoveStrategy { + public int direction = 1; + + public int[] move(int xPos, int yPos) { + int x = xPos; + int y = yPos; + int[] pos = new int[2]; + + if ((y < 15) && (y > 5)) { + y = y + direction; + } + else { + direction = direction * -1; + y = y + direction; + } + + pos[0] = x; + pos[1] = y; + + return(pos); + + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/model/MonsterModel.java b/src/edu/nd/se2018/homework/hwk6/model/MonsterModel.java new file mode 100644 index 00000000..1ec90799 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/model/MonsterModel.java @@ -0,0 +1,38 @@ +package edu.nd.se2018.homework.hwk6.model; + +import java.util.Observable; + +import edu.nd.se2018.homework.hwk6.view.MonsterView; + +public class MonsterModel extends Observable { + + int[] position = new int[2]; + int[][] gameMap; + int x, y; + + + public MonsterModel(int xPos, int yPos) { + x = xPos; + y = yPos; + position[0] = x; + position[1] = y; + + } + + public void setPosition(int xPos, int yPos) { + position[0] = xPos; + position[1] = yPos; + setChanged(); + notifyObservers(); + + } + + public int[] getPosition() { + return(this.position); + } + + public void attachView(MonsterView view) { + addObserver(view); + } + +} diff --git a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java index 047b623b..5679eab2 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java +++ b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java @@ -16,13 +16,14 @@ public class MapDisplay { Image tileImage, keyImage, doorImage; public int level = 1; ObservableList root; + int scale; public void setBlocks( ) { Random random = new Random(); for (int i = 0; i < 25; i++) { int x = random.ints(0, 24).findFirst().getAsInt(); int y = random.ints(0, 24).findFirst().getAsInt(); - while (((x == 0) && (y == 0)) && ((x == 24) && (y == 10))) { + while (((x == 0) && (y == 0)) || ((x == 24) && (y == 10)) || (x == 20)) { x = random.ints(0, 24).findFirst().getAsInt(); y = random.ints(0, 24).findFirst().getAsInt(); } @@ -49,8 +50,9 @@ public void setLevel(int l) { } - public void drawMap(ObservableList r, int scale) { + public void drawMap(ObservableList r, int s) { root = r; + scale = s; for (int x = 0; x < dimensions; x++) { for (int y = 0; y < dimensions; y++) { Rectangle rect = new Rectangle(x*scale, y*scale, scale, scale); @@ -118,4 +120,17 @@ public int getLevel() { return(this.level); } + public void reset() { + this.level++; + for (int i = 0; i < 25; i++) { + for (int j = 0; j < 25; j++) { + setMap(i, j, 0); + } + } + + setBlocks(); + setLevel(level); + drawMap(root, scale); + } + } diff --git a/src/edu/nd/se2018/homework/hwk6/view/MonsterView.java b/src/edu/nd/se2018/homework/hwk6/view/MonsterView.java new file mode 100644 index 00000000..74fa6961 --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/view/MonsterView.java @@ -0,0 +1,40 @@ +package edu.nd.se2018.homework.hwk6.view; + +import java.util.Observable; +import java.util.Observer; + +import edu.nd.se2018.homework.hwk6.model.MonsterModel; +import javafx.scene.Node; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; + +public class MonsterView implements Observer { + public ImageView view; + private Image monsterImage; + + public MonsterView(MonsterModel monster) { + monsterImage = new Image("/images/chip/textures/bugUp.png", 50, 50, true, true); + view = new ImageView(monsterImage); + view.setFitHeight(20); + view.setFitWidth(20); + int[] pos = new int[2]; + pos = monster.getPosition(); + view.setX(pos[0] * 20); + view.setY(pos[1] * 20); + } + + public Node getView() { + return(view); + + } + + @Override + public void update(Observable o, Object arg) { + int[] pos = new int[2]; + pos = ((MonsterModel)o).getPosition(); + view.setX(pos[0] * 20); + view.setY(pos[1] * 20); + + } + +} From c9591ab08c0ae1b06da92f2973f5efd2f4114efe Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sat, 13 Oct 2018 21:46:57 -0400 Subject: [PATCH 31/34] monster strategy --- src/edu/nd/se2018/homework/hwk6/Main.java | 22 +++++++++++----- .../hwk6/controller/ChipController.java | 4 +++ .../hwk6/controller/MonsterController.java | 21 ++++------------ .../hwk6/controller/MoveHorizontal.java | 25 +++++++++++++++++++ .../se2018/homework/hwk6/model/ChipModel.java | 14 ++++++++++- 5 files changed, 63 insertions(+), 23 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk6/controller/MoveHorizontal.java diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java index 7764ffd8..a6f570c2 100644 --- a/src/edu/nd/se2018/homework/hwk6/Main.java +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -11,7 +11,9 @@ import javafx.stage.Stage; import edu.nd.se2018.homework.hwk6.controller.ChipController; import edu.nd.se2018.homework.hwk6.controller.MonsterController; +import edu.nd.se2018.homework.hwk6.controller.MoveHorizontal; import edu.nd.se2018.homework.hwk6.controller.MoveVertical; +import edu.nd.se2018.homework.hwk6.model.MonsterModel; import edu.nd.se2018.homework.hwk6.view.*; public class Main extends Application { @@ -23,7 +25,8 @@ public class Main extends Application { int scale = 20; ChipView chipView; ChipController chipController; - MonsterController monsterController; + MonsterController monsterController1, monsterController2; + MonsterModel monster1, monster2; int level = 1; @Override @@ -38,11 +41,18 @@ public void start(Stage gameStage) throws Exception { chipController = new ChipController(gameMap); - monsterController = new MonsterController(gameMap, new MoveVertical()); + monsterController1 = new MonsterController(gameMap, new MoveVertical(), 20, 10); + monsterController2 = new MonsterController(gameMap, new MoveHorizontal(), 10, 15); + monster1 = monsterController1.getModel(); + monster1.addObserver(chipController.getModel()); + + monster2 = monsterController2.getModel(); + monster2.addObserver(chipController.getModel()); root.getChildren().add(chipController.getImageView()); - root.getChildren().add(monsterController.getImageView()); + root.getChildren().add(monsterController1.getImageView()); + root.getChildren().add(monsterController2.getImageView()); gameStage.setScene(scene); gameStage.setTitle("Chip's Challenge"); @@ -61,7 +71,8 @@ public void start(Stage gameStage) throws Exception { int count = 0; public void handle(long now) { if (count % 10 == 0) { - monsterController.runStrategy(); + monsterController1.runStrategy(); + monsterController2.runStrategy(); } count++; } @@ -76,8 +87,7 @@ public void handle(KeyEvent event) { } }); } - - + public static void main(String[] args) { launch(args); diff --git a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java index 8e441beb..596cbfda 100644 --- a/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java +++ b/src/edu/nd/se2018/homework/hwk6/controller/ChipController.java @@ -59,6 +59,10 @@ public Node getImageView() { return chipView.view; } + public ChipModel getModel() { + return chip; + } + public void moveRight() { int[] pos = new int[2]; pos = chip.getPosition(); diff --git a/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java b/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java index 2e7ca2dc..92464800 100644 --- a/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java +++ b/src/edu/nd/se2018/homework/hwk6/controller/MonsterController.java @@ -16,11 +16,11 @@ public class MonsterController { //int direction = 1; MoveStrategy strategy; - public MonsterController(MapDisplay gMap, MoveStrategy s) { + public MonsterController(MapDisplay gMap, MoveStrategy s, int x, int y) { gameMap = gMap; map = gameMap.getMap(); - monster = new MonsterModel(20, 10); + monster = new MonsterModel(x, y); monsterView = new MonsterView(monster); monster.attachView(monsterView); pos = monster.getPosition(); @@ -32,20 +32,9 @@ public Node getImageView() { return monsterView.view; } - /*public void move() { - pos = monster.getPosition(); - x = pos[0]; - y = pos[1]; - if ((y < 15) && (y > 5)) { - y = y + direction; - } - else { - direction = direction * -1; - y = y + direction; - } - - monster.setPosition(x, y); - }*/ + public MonsterModel getModel() { + return monster; + } public void runStrategy() { pos = monster.getPosition(); diff --git a/src/edu/nd/se2018/homework/hwk6/controller/MoveHorizontal.java b/src/edu/nd/se2018/homework/hwk6/controller/MoveHorizontal.java new file mode 100644 index 00000000..07cf7fff --- /dev/null +++ b/src/edu/nd/se2018/homework/hwk6/controller/MoveHorizontal.java @@ -0,0 +1,25 @@ +package edu.nd.se2018.homework.hwk6.controller; + +public class MoveHorizontal implements MoveStrategy { + public int direction = 1; + + public int[] move(int xPos, int yPos) { + int x = xPos; + int y = yPos; + int[] pos = new int[2]; + + if ((x < 15) && (x > 5)) { + x = x + direction; + } + else { + direction = direction * -1; + x = x + direction; + } + + pos[0] = x; + pos[1] = y; + + return(pos); + + } +} diff --git a/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java b/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java index 4abd89e4..701bb8ca 100644 --- a/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java +++ b/src/edu/nd/se2018/homework/hwk6/model/ChipModel.java @@ -1,16 +1,18 @@ package edu.nd.se2018.homework.hwk6.model; import java.util.Observable; +import java.util.Observer; import edu.nd.se2018.homework.hwk6.view.ChipView; -public class ChipModel extends Observable { +public class ChipModel extends Observable implements Observer { int keys; int x; int y; int[] position = new int[2]; int[][] gameMap; boolean allKeys = false; + int [] monsterPos = new int[2]; private GameState gameRunning; private GameState chipsCollected; @@ -86,4 +88,14 @@ public void levelWon() { currentState.levelWon(); } + @Override + public void update(Observable o, Object arg) { + monsterPos = ((MonsterModel)o).getPosition(); + if ((monsterPos[0] == x) && (monsterPos[1] == y)) { + setPosition(0,0); + } + + + } + } From 6655bbf4f136d4622331a0a8b040783313ba312d Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sat, 13 Oct 2018 22:00:30 -0400 Subject: [PATCH 32/34] reset level --- src/edu/nd/se2018/homework/hwk6/Main.java | 7 +++++++ .../nd/se2018/homework/hwk6/view/MapDisplay.java | 14 +++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/edu/nd/se2018/homework/hwk6/Main.java b/src/edu/nd/se2018/homework/hwk6/Main.java index a6f570c2..5ed7defa 100644 --- a/src/edu/nd/se2018/homework/hwk6/Main.java +++ b/src/edu/nd/se2018/homework/hwk6/Main.java @@ -75,6 +75,13 @@ public void handle(long now) { monsterController2.runStrategy(); } count++; + + if (gameMap.getStatus() == true) { + root.getChildren().add(chipController.getImageView()); + root.getChildren().add(monsterController1.getImageView()); + root.getChildren().add(monsterController2.getImageView()); + gameMap.resetStatus(); + } } }.start(); } diff --git a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java index 5679eab2..a7b33922 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java +++ b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java @@ -17,13 +17,14 @@ public class MapDisplay { public int level = 1; ObservableList root; int scale; + boolean newLevel = false; public void setBlocks( ) { Random random = new Random(); for (int i = 0; i < 25; i++) { int x = random.ints(0, 24).findFirst().getAsInt(); int y = random.ints(0, 24).findFirst().getAsInt(); - while (((x == 0) && (y == 0)) || ((x == 24) && (y == 10)) || (x == 20)) { + while (((x == 0) && (y == 0)) || ((x == 24) && (y == 10)) || (x == 20) || (y == 15)) { x = random.ints(0, 24).findFirst().getAsInt(); y = random.ints(0, 24).findFirst().getAsInt(); } @@ -122,6 +123,7 @@ public int getLevel() { public void reset() { this.level++; + root.clear(); for (int i = 0; i < 25; i++) { for (int j = 0; j < 25; j++) { setMap(i, j, 0); @@ -131,6 +133,16 @@ public void reset() { setBlocks(); setLevel(level); drawMap(root, scale); + + newLevel = true; + } + + public boolean getStatus() { + return newLevel; + } + + public void resetStatus() { + newLevel = false; } } From fa1aabe9e73365929b18c76b24d3fb951484319b Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Sat, 13 Oct 2018 22:10:13 -0400 Subject: [PATCH 33/34] progess --- src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java index a7b33922..fdf0d66f 100644 --- a/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java +++ b/src/edu/nd/se2018/homework/hwk6/view/MapDisplay.java @@ -108,12 +108,13 @@ public void setMap(int x, int y, int value) { } public void removeKey(int x, int y) { + //root.remove(keyImageView); tileImage = new Image("/images/chip/textures/BlankTile.png", 50, 50, true, true); tileImageView = new ImageView(tileImage); tileImageView.setFitHeight(20); tileImageView.setFitWidth(20); - tileImageView.setX(x * 20); - tileImageView.setY(y * 20); + tileImageView.setX(x * scale); + tileImageView.setY(y * scale); root.add(tileImageView); } From 900055dae063fc70d72a82e3813017a80356d11e Mon Sep 17 00:00:00 2001 From: Beatriz Zanardo Date: Mon, 15 Oct 2018 21:00:35 -0400 Subject: [PATCH 34/34] final --- .DS_Store | Bin 6148 -> 6148 bytes src/.DS_Store | Bin 6148 -> 6148 bytes src/edu/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/.DS_Store | Bin 6148 -> 6148 bytes src/edu/nd/se2018/homework/.DS_Store | Bin 6148 -> 6148 bytes .../hwk6/Chips Challenge Reflection.pdf | Bin 0 -> 54953 bytes .../hwk6/ChipsChallenge-FinalUMLpng.png | Bin 0 -> 169402 bytes .../hwk6/controller/MonsterController.java | 1 - .../se2018/homework/hwk6/model/GameWon.java | 2 +- 10 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 src/edu/nd/se2018/homework/hwk6/Chips Challenge Reflection.pdf create mode 100644 src/edu/nd/se2018/homework/hwk6/ChipsChallenge-FinalUMLpng.png diff --git a/.DS_Store b/.DS_Store index b98e5fc51d005dbf6990dbd50c36f65758a9de36..4840edb0650f26e83af3cfac3b43e68522b66b3d 100644 GIT binary patch delta 19 acmZoMXffE}!^~!6p`&1AxH*VK&|q>ro8x8?)(=7eUKs~K delta 24 fcmZoMXffDuhK1e0LPx>K*kE!zo8x8?)(=7eUJnOA diff --git a/src/edu/.DS_Store b/src/edu/.DS_Store index 686480c4d96d111e068a16aa0dda4393ca7b2522..a716f3f6e9c01017c08b1baa60c047a35ea07db0 100644 GIT binary patch delta 19 acmZoMXffDuf{D$@LPx>KaPv7PGf@CPNd?dV delta 19 acmZoMXffDuf{D$*LPx>Kc=I_XGf@CPKLyYL diff --git a/src/edu/nd/.DS_Store b/src/edu/nd/.DS_Store index 790a00f5ddf905a1d68a0d457632bc8f48c07119..f40c4712784ca44259758f6f4b587c97f45ff556 100644 GIT binary patch delta 19 acmZoMXffEp#LQ-7p`&1AxS50bj|c!V_yr39 delta 19 acmZoMXffEp#LQ-3p`&1AyqSafj|c!V?ga|~ diff --git a/src/edu/nd/se2018/.DS_Store b/src/edu/nd/se2018/.DS_Store index d2b12a6443e7f0ab0c860623ac55dceeaf245a8a..fe429f165d1bc4854621a3c38f11c1d31203b056 100644 GIT binary patch delta 19 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