From e1ab2a3540656747b5593be44d3870dd09f6e4a3 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Mon, 4 Jan 2021 15:59:23 +0100 Subject: [PATCH 01/29] =?UTF-8?q?Auskommentierung=20Spielzug=20und=20klein?= =?UTF-8?q?e=20=C3=84nderung=20Spiel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 29 ++++------------ src/de/jaujau/spiellogik/Spielzug.java | 48 +++++++++++++------------- 2 files changed, 30 insertions(+), 47 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index e831f87..f8a305a 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -79,9 +79,12 @@ public class Spiel { * @param kartenindex */ private void karteLegen(int kartenindex) { //WÜNSCHER? - if(pruefeHand(amZug)) { + if(spielzug.zugMoeglich(amZug)) { if (spielzug.pruefeZug(kartenindex)) { kartensatz.ablegen(kartenindex); + if(kartensatz.getHand(amZug).isEmpty()) { + //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? + } spiel(); effekteSetzen(); //kartenindex übergeben und anhand dessen effekte setzen }//oder ziehen? @@ -96,7 +99,7 @@ public class Spiel { * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt */ private void karteZiehen(){ - if(pruefeHand(amZug)) { + if(spielzug.zugMoeglich(amZug)) { if(zwei_ziehen) { for(int i = 0; i < kartenZiehen; i++) { kartensatz.ziehen(amZug); @@ -124,25 +127,5 @@ public class Spiel { zwei_ziehen = true; kartenZiehen += 2; } - } - - - /** - * prüft ob, wenn eine 8 gelegt wurde, eine 8 auf der Hand ist - * und der Zug somit möglich ist - * @return true falls ein Zug möglich ist - * @return false falls kein Zug möglich ist - */ - private boolean pruefeHand(Spieler amZug) { - if(aussetzen) { - ArrayList handvonSpieler = kartensatz.getHand(amZug); - for(int i = 0; i < handvonSpieler.size(); i++) { - if(kartensatz.getKarte(handvonSpieler.get(i)).getWERT() == Wert.ACHT) { - return true; - } - } - return false; - } - return true; - } + } } diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 794e701..14d4073 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -57,24 +57,24 @@ public class Spielzug { * @return boolean */ public boolean pruefeZug(int kartenindex) { - Kartensatz kartensatz = Spiel.getKartensatz(); - - Farbe kartenfarbe = kartensatz.getKarte(kartenindex).getFARBE(); - Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT(); - Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); - Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); - if(Spiel.getAussetzen() && kartenwert == Wert.ACHT) { - return true; - } - else if (Spiel.getZwei_ziehen() && kartenwert == Wert.SIEBEN) { - return true; - } - else if (!Spiel.getAussetzen() && !Spiel.getZwei_ziehen() && (kartenwert == letztekartewert || kartenfarbe == letztekartefarbe || kartenwert == Wert.BUBE)) { - return true; - } - else { +// Kartensatz kartensatz = Spiel.getKartensatz(); +// +// Farbe kartenfarbe = kartensatz.getKarte(kartenindex).getFARBE(); +// Wert kartenwert = kartensatz.getKarte(kartenindex).getWERT(); +// Wert letztekartewert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); +// Farbe letztekartefarbe = kartensatz.getKarte(kartensatz.getletzteKarte()).getFARBE(); +// if(Spiel.getAussetzen() && kartenwert == Wert.ACHT) { +// return true; +// } +// else if (Spiel.getZwei_ziehen() && kartenwert == Wert.SIEBEN) { +// return true; +// } +// else if (!Spiel.getAussetzen() && !Spiel.getZwei_ziehen() && (kartenwert == letztekartewert || kartenfarbe == letztekartefarbe || kartenwert == Wert.BUBE)) { +// return true; +// } +// else { return false; - } +// } } /** @@ -83,14 +83,14 @@ public class Spielzug { * @return */ public boolean zugMoeglich(Spieler spieler) { - Kartensatz kartensatz = Spiel.getKartensatz(); +// Kartensatz kartensatz = Spiel.getKartensatz(); boolean gefunden = false; - ArrayList Hand = kartensatz.getHand(spieler); - for (int i = 0; i < Hand.size(); i++) { - if (pruefeZug(i)) { - gefunden = true; - } - } +// ArrayList Hand = kartensatz.getHand(spieler); +// for (int i = 0; i < Hand.size(); i++) { +// if (pruefeZug(i)) { +// gefunden = true; +// } +// } return gefunden; } From 6e99ba3bcc04a141c7e7a9d5ff61df805421f042 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Mon, 4 Jan 2021 18:24:22 +0100 Subject: [PATCH 02/29] =?UTF-8?q?Audio=20Klasse=20+=20TestKlasse=20hinzuge?= =?UTF-8?q?f=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/UnitTests/TEST_Audio.java | 24 ++++++++ src/de/jaujau/daten/Audio.java | 76 ++++++++++++++++++++++++ src/sound/jaujau.wav | Bin 0 -> 178220 bytes 3 files changed, 100 insertions(+) create mode 100755 src/de/jaujau/UnitTests/TEST_Audio.java create mode 100755 src/de/jaujau/daten/Audio.java create mode 100755 src/sound/jaujau.wav diff --git a/src/de/jaujau/UnitTests/TEST_Audio.java b/src/de/jaujau/UnitTests/TEST_Audio.java new file mode 100755 index 0000000..4faca77 --- /dev/null +++ b/src/de/jaujau/UnitTests/TEST_Audio.java @@ -0,0 +1,24 @@ +package de.jaujau.UnitTests; + + + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import de.jaujau.daten.Audio; + +class TEST_Audio { + + Audio sound; + + @BeforeEach + void setUp() throws Exception { + sound = new Audio(); + } + + @Test + void test() { + sound.spieleJauJau(); + } + +} diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java new file mode 100755 index 0000000..fb0330d --- /dev/null +++ b/src/de/jaujau/daten/Audio.java @@ -0,0 +1,76 @@ +package de.jaujau.daten; + + +import java.io.IOException; + +import javax.sound.sampled.AudioFormat; +import javax.sound.sampled.AudioInputStream; +import javax.sound.sampled.AudioSystem; +import javax.sound.sampled.SourceDataLine; + +/** + * + * @author Sebastian Kacza + * + */ +public class Audio { + + public Audio() { + + } + + + /** + * Spielt den JauJau Ton ab + */ + public void spieleJauJau() { + try { + playSound("/sound/jaujau.wav"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /* + * !!! DIESE KLASSE IST NICHT VON MIR !!! + * Quelle: https://stackoverflow.com/questions/2416935/how-to-play-wav-files-with-java + */ + /** + * Spiel eine Audio dateim im WAV-Format die im internen Ordner gespeichert ist ab. + * @param path Ptad zu der Sounddatei + * @throws Exception + */ + private void playSound (String path) throws Exception { + //AudioInputStream audioStream = AudioSystem.getAudioInputStream(new File ("test.wav")); + AudioInputStream audioStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream(path)); + + int BUFFER_SIZE = 128000; + AudioFormat audioFormat = null; + SourceDataLine sourceLine = null; + + audioFormat = audioStream.getFormat(); + + sourceLine = AudioSystem.getSourceDataLine(audioFormat); + sourceLine.open(audioFormat); + sourceLine.start(); + + int nBytesRead = 0; + byte[] abData = new byte[BUFFER_SIZE]; + while (nBytesRead != -1) { + try { + nBytesRead = + audioStream.read(abData, 0, abData.length); + } catch (IOException e) { + e.printStackTrace(); + } + + if (nBytesRead >= 0) { + int nBytesWritten = sourceLine.write(abData, 0, nBytesRead); + } + } + + sourceLine.drain(); + sourceLine.close(); + } +} diff --git a/src/sound/jaujau.wav b/src/sound/jaujau.wav new file mode 100755 index 0000000000000000000000000000000000000000..fb15ccf229d79f1a6e1faf289d8897b4ac3f8ae3 GIT binary patch literal 178220 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 X$R}CET3^XT7UZi{HU?mT{_ns4IRv25 literal 0 HcmV?d00001 From ee6d59f3b04e15acb065dbfa873904551a43b902 Mon Sep 17 00:00:00 2001 From: ekresse Date: Tue, 5 Jan 2021 11:22:04 +0100 Subject: [PATCH 03/29] GUI Update Without Game UI --- highscore.txt | 14 ++- src/de/jaujau/gui/Dashboard_GUI.java | 126 ++++++++++++++++++++++++++ src/de/jaujau/gui/GUI.java | 81 ++++++++++++++--- src/de/jaujau/gui/Menue_GUI.java | 119 ------------------------ src/de/jaujau/gui/Navigation_GUI.java | 17 +--- src/de/jaujau/gui/Spiel_GUI.java | 13 ++- 6 files changed, 218 insertions(+), 152 deletions(-) create mode 100644 src/de/jaujau/gui/Dashboard_GUI.java delete mode 100644 src/de/jaujau/gui/Menue_GUI.java diff --git a/highscore.txt b/highscore.txt index e427f54..510cefa 100644 --- a/highscore.txt +++ b/highscore.txt @@ -1,5 +1,15 @@ Seb 245 Elmo 240 Moritz 220 -Alaa Aldin 217 -Fabian 215 \ No newline at end of file +Alaa-Aldin 217 +Fabian 215 +Thomas 1233 +Emil -21331 +Heinz +312 +Gert 234 +Kasper 24 +Jens 234 +Paul 234 +Till 553 +Reiner 462 +Achim 2344 diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java new file mode 100644 index 0000000..4ad7d8f --- /dev/null +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -0,0 +1,126 @@ +package de.jaujau.gui; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTable; +import javax.swing.table.DefaultTableModel; + +import de.jaujau.daten.Spielerverwaltung; +import javax.swing.JTextField; +import javax.swing.JLabel; +import javax.swing.BoxLayout; +import javax.swing.ComboBoxModel; +import javax.swing.DefaultComboBoxModel; + +import java.awt.Dimension; +import java.awt.event.ActionListener; + +import javax.swing.JComboBox; + +public class Dashboard_GUI extends JPanel{ + private static final long serialVersionUID = -7380187913989942586L; + JPanel panelCont = new JPanel(); + JPanel highscore = new JPanel(); + JPanel start = new JPanel(); + Spiel_GUI Spiel_GUI = new Spiel_GUI(); + JPanel game = Spiel_GUI; + CardLayout cl = new CardLayout(); + Spielerverwaltung spielerverwaltung = new Spielerverwaltung(); + private final JPanel panel = new JPanel(); + private final JPanel panel_1 = new JPanel(); + private JComboBox comboBox = new JComboBox(); + private final JPanel panel_2 = new JPanel(); + private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar"); + + public Dashboard_GUI() { + setLayout(new BorderLayout(0, 0)); + panelCont.setLayout(cl); + panelCont.add(highscore, "1"); + panelCont.add(game, "2"); + panelCont.add(start, "3"); + start.setLayout(new BorderLayout(0, 0)); + panel.setPreferredSize(new Dimension(10, 30)); + + start.add(panel, BorderLayout.NORTH); + + JLabel lblNewLabel = new JLabel("Spielername:"); + panel.add(lblNewLabel); + comboBox.setMinimumSize(new Dimension(60, 22)); + comboBox.setEditable(true); + panel.add(comboBox); + start.add(panel_1, BorderLayout.CENTER); + + start.add(panel_2, BorderLayout.SOUTH); + + panel_2.add(lblNewLabel_1); + + highscore.setLayout(new BorderLayout(0, 0)); + + cl.show(panelCont, "3"); + add(panelCont); + renderStart(); //Startseite beim ersten öffnen aktualisieren + } + + + public void showgame(){ + System.out.println("DASHBOARD: Game darstellen"); + cl.show(panelCont, "2"); + } + + public void showstart(){ + System.out.println("DASHBOARD: Start darstellen"); + cl.show(panelCont, "3"); + renderStart(); + } + + + public void showhighscore(){ + System.out.println("DASHBOARD: Highscore darstellen"); + renderHighscore(); + cl.show(panelCont, "1"); + repaint(); + revalidate(); + + } + + + + public void renderStart(){ + comboBox.removeAllItems(); + for(int i = 0; i Date: Tue, 5 Jan 2021 11:22:41 +0100 Subject: [PATCH 04/29] Anwendungs Update --- src/de/jaujau/spiellogik/Anwendung.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java index aaea1e7..2ab7729 100644 --- a/src/de/jaujau/spiellogik/Anwendung.java +++ b/src/de/jaujau/spiellogik/Anwendung.java @@ -26,7 +26,7 @@ public class Anwendung { public Anwendung() { speicherung = new Spielerverwaltung(); - gui = new GUI(speicherung); + gui = new GUI(); }; // From 624133bb1777de95509a4a5d3b7766197d0c1661 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Tue, 5 Jan 2021 11:23:57 +0100 Subject: [PATCH 05/29] =?UTF-8?q?"Jau"=20Ton=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/UnitTests/TEST_Audio.java | 1 + src/de/jaujau/daten/Audio.java | 16 ++++++++++++++-- src/sound/jau.wav | Bin 0 -> 178220 bytes 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100755 src/sound/jau.wav diff --git a/src/de/jaujau/UnitTests/TEST_Audio.java b/src/de/jaujau/UnitTests/TEST_Audio.java index 4faca77..375c273 100755 --- a/src/de/jaujau/UnitTests/TEST_Audio.java +++ b/src/de/jaujau/UnitTests/TEST_Audio.java @@ -19,6 +19,7 @@ class TEST_Audio { @Test void test() { sound.spieleJauJau(); + sound.spieleJau(); } } diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index fb0330d..11efa1f 100755 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -21,7 +21,19 @@ public class Audio { /** - * Spielt den JauJau Ton ab + * Spielt den "Jau" Ton ab + */ + public void spieleJau() { + try { + playSound("/sound/jau.wav"); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + /** + * Spielt den "JauJau" Ton ab */ public void spieleJauJau() { try { @@ -33,7 +45,7 @@ public class Audio { /* - * !!! DIESE KLASSE IST NICHT VON MIR !!! + * !!! DIESE METHODE IST NICHT VON MIR !!! * Quelle: https://stackoverflow.com/questions/2416935/how-to-play-wav-files-with-java */ /** diff --git a/src/sound/jau.wav b/src/sound/jau.wav new file mode 100755 index 0000000000000000000000000000000000000000..fb15ccf229d79f1a6e1faf289d8897b4ac3f8ae3 GIT binary patch literal 178220 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 X$R}CET3^XT7UZi{HU?mT{_ns4IRv25 literal 0 HcmV?d00001 From e19e42c63928de4a9f677e9fa2845ae959c78fc2 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Tue, 5 Jan 2021 11:30:14 +0100 Subject: [PATCH 06/29] Update Audio --- src/de/jaujau/daten/Audio.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index 11efa1f..eebfd0d 100755 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -9,15 +9,13 @@ import javax.sound.sampled.AudioSystem; import javax.sound.sampled.SourceDataLine; /** - * + * Klasse für das Abspielen eines Tons * @author Sebastian Kacza * */ public class Audio { - public Audio() { - - } + public Audio() {} /** From 24ad89126340148b398fe1f6f1840af9f71355e8 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Tue, 5 Jan 2021 22:51:54 +0100 Subject: [PATCH 07/29] =?UTF-8?q?Sound=C3=BCberlegungen=20und=20Umstruktur?= =?UTF-8?q?ierung=20der=20Klasse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 59 +++++++++++++++++++++-------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index f8a305a..43ef0c8 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -1,8 +1,8 @@ package de.jaujau.spiellogik; -import java.util.ArrayList; import java.util.Random; +import de.jaujau.daten.Audio; import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Spieler; import de.jaujau.daten.Wert; @@ -10,19 +10,21 @@ import de.jaujau.daten.Wert; /** - * Diese Klasse prüft die Spielaktionen und alterniert zwischen Spieler und Computer + * Diese Klasse organisiert den Spielablauf * @author Fabian Keller */ public class Spiel { private Spieler amZug; + private Wert gelegterWert; + private Audio audio = new Audio(); + private Kartensatz kartensatz; + private Spielzug spielzug = new Spielzug(); + private Computer_gegner computerGegner = new Computer_gegner(); private boolean spielgestartet = false; private boolean aussetzen; private boolean zwei_ziehen; private int kartenZiehen; - private Kartensatz kartensatz; - private Wert gelegterWert; - private Spielzug spielzug; public boolean getAussetzen() { @@ -41,9 +43,9 @@ public class Spiel { /** - * alterniert zwischen Spieler und Computer und legt Beginner fest + * alterniert zwischen Spieler und Computer, legt Beginner fest */ - private void spiel() { + public void spiel() { if(!spielgestartet) { Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(1); @@ -67,6 +69,10 @@ public class Spiel { } if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; + if(spielzug.zugMoeglich(Spieler.COMPUTER)) { + //karteLegen(computerGegner.cpu_Zug()); + } + else karteZiehen(); } else { amZug= Spieler.SPIELER; @@ -78,27 +84,31 @@ public class Spiel { * falls eine Karte gelegt werden kann wird diese gelegt * @param kartenindex */ - private void karteLegen(int kartenindex) { //WÜNSCHER? + public void karteLegen(int kartenindex) { if(spielzug.zugMoeglich(amZug)) { if (spielzug.pruefeZug(kartenindex)) { kartensatz.ablegen(kartenindex); + if(kartensatz.getHand(amZug).size() == 1) { + spieleTon(true); + } if(kartensatz.getHand(amZug).isEmpty()) { - //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? + spieleTon(false); + //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? // Spieler Gewonnen aufrufen, Punkte aktualisieren } spiel(); - effekteSetzen(); //kartenindex übergeben und anhand dessen effekte setzen - }//oder ziehen? - }// else kein Zug möglich + effekteSetzen(); + } + } else { aussetzen = false; } - }//wann wird aussetzen auf false gesetzt + } /** * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt */ - private void karteZiehen(){ + public void karteZiehen(){ if(spielzug.zugMoeglich(amZug)) { if(zwei_ziehen) { for(int i = 0; i < kartenZiehen; i++) { @@ -118,7 +128,7 @@ public class Spiel { /** * setzt Effekt-Variablen */ - private void effekteSetzen() { //was passiert wenn 2 gezogen wurde und dann der nächste spieler diese Funktion ausführt. + private void effekteSetzen() { gelegterWert = kartensatz.getKarte(kartensatz.getletzteKarte()).getWERT(); if(gelegterWert == Wert.ACHT) { aussetzen = true; @@ -128,4 +138,23 @@ public class Spiel { kartenZiehen += 2; } } + + + /** + * Spielt abhängig von einer Varibale optional den "Jau" oder den "JauJau" Sound ab + * @param auswahl true = Jau Sound + * false = JauJau Sound + */ + private void spieleTon(boolean auswahl) { + if(auswahl) { + Runnable jau = () -> audio.spieleJau(); + Thread threadJau = new Thread(jau); + threadJau.start(); + } + else { + Runnable jaujau = () -> audio.spieleJauJau(); + Thread threadJauJau = new Thread(jaujau); + threadJauJau.start(); + } + } } From 521a145c4ed769668e22b1e5f0c5578f32707e76 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 10:45:36 +0100 Subject: [PATCH 08/29] Spiel GUI Anfang --- src/de/jaujau/gui/Dashboard_GUI.java | 113 +++++++++++++++++++++++++-- src/de/jaujau/gui/GUI.java | 4 +- src/de/jaujau/gui/Spiel_GUI.java | 74 ------------------ 3 files changed, 111 insertions(+), 80 deletions(-) delete mode 100644 src/de/jaujau/gui/Spiel_GUI.java diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 4ad7d8f..70f62cd 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -15,17 +15,26 @@ import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import java.awt.Dimension; +import java.awt.Image; import java.awt.event.ActionListener; import javax.swing.JComboBox; +import javax.swing.JButton; +import javax.swing.SwingConstants; +import javax.swing.ImageIcon; +import javax.swing.DebugGraphics; +import java.awt.Rectangle; +import java.awt.Component; +import java.awt.FlowLayout; +import java.awt.ComponentOrientation; +import java.awt.Cursor; public class Dashboard_GUI extends JPanel{ private static final long serialVersionUID = -7380187913989942586L; JPanel panelCont = new JPanel(); JPanel highscore = new JPanel(); + JPanel game = new JPanel(); JPanel start = new JPanel(); - Spiel_GUI Spiel_GUI = new Spiel_GUI(); - JPanel game = Spiel_GUI; CardLayout cl = new CardLayout(); Spielerverwaltung spielerverwaltung = new Spielerverwaltung(); private final JPanel panel = new JPanel(); @@ -33,12 +42,86 @@ public class Dashboard_GUI extends JPanel{ private JComboBox comboBox = new JComboBox(); private final JPanel panel_2 = new JPanel(); private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar"); - + private final JButton btnNewButton = new JButton("New button"); + private final JPanel spielfeld = new JPanel(); + private final JPanel player_hand = new JPanel(); + private final JPanel gegner_hand = new JPanel(); + private final JLabel ablagestapel = new JLabel("Ablagestapel"); + private final JLabel ziehstapel = new JLabel(""); + private final JScrollPane scrollPane = new JScrollPane(); + private final JLabel lblNewLabel_2_1 = new JLabel(""); + JPanel imagepanel = new JPanel(); + JLabel labels[] = new JLabel[32]; + + + public Dashboard_GUI() { + + setLayout(new BorderLayout(0, 0)); panelCont.setLayout(cl); panelCont.add(highscore, "1"); panelCont.add(game, "2"); + game.setLayout(new BorderLayout(0, 0)); + + game.add(spielfeld, BorderLayout.CENTER); + spielfeld.setLayout(null); + player_hand.setBounds(0, 660, 1269, 212); + + spielfeld.add(player_hand); + player_hand.setLayout(new BorderLayout(0, 0)); + + JScrollPane scrollPane_1 = new JScrollPane(); + player_hand.add(scrollPane_1, BorderLayout.CENTER); + + + imagepanel.setAutoscrolls(true); + imagepanel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + scrollPane_1.setViewportView(imagepanel); + imagepanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); + + + //1. Label + JLabel lblNewLabel_2 = new JLabel(""); + lblNewLabel_2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + lblNewLabel_2.setAlignmentY(Component.TOP_ALIGNMENT); + lblNewLabel_2.setBounds(new Rectangle(0, 0, 120, 180)); + lblNewLabel_2.setSize(new Dimension(120, 180)); + lblNewLabel_2.setHorizontalTextPosition(SwingConstants.CENTER); + lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER); + lblNewLabel_2.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/12.png")).getImage().getScaledInstance(lblNewLabel_2.getWidth(), lblNewLabel_2.getHeight(), Image.SCALE_SMOOTH))); + imagepanel.add(lblNewLabel_2); + + + + // 2. Label + lblNewLabel_2_1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + lblNewLabel_2_1.setSize(new Dimension(120, 180)); + lblNewLabel_2_1.setHorizontalTextPosition(SwingConstants.CENTER); + lblNewLabel_2_1.setHorizontalAlignment(SwingConstants.CENTER); + lblNewLabel_2_1.setBounds(new Rectangle(0, 0, 120, 180)); + lblNewLabel_2_1.setAlignmentY(0.0f); + lblNewLabel_2_1.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/3.png")).getImage().getScaledInstance(lblNewLabel_2.getWidth(), lblNewLabel_2.getHeight(), Image.SCALE_SMOOTH))); + imagepanel.add(lblNewLabel_2_1); + + gegner_hand.setBounds(0, 0, 1269, 152); + + spielfeld.add(gegner_hand); + gegner_hand.setLayout(new BorderLayout(0, 0)); + + gegner_hand.add(scrollPane); + ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); + ablagestapel.setBounds(618, 267, 137, 210); + + spielfeld.add(ablagestapel); + ziehstapel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + ziehstapel.setPreferredSize(new Dimension(242, 362)); + ziehstapel.setHorizontalAlignment(SwingConstants.CENTER); + ziehstapel.setBounds(1093, 267, 137, 210); + ziehstapel.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/32.png")).getImage().getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + + + spielfeld.add(ziehstapel); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); panel.setPreferredSize(new Dimension(10, 30)); @@ -57,6 +140,8 @@ public class Dashboard_GUI extends JPanel{ panel_2.add(lblNewLabel_1); highscore.setLayout(new BorderLayout(0, 0)); + + addkarte(); cl.show(panelCont, "3"); add(panelCont); @@ -66,7 +151,9 @@ public class Dashboard_GUI extends JPanel{ public void showgame(){ System.out.println("DASHBOARD: Game darstellen"); - cl.show(panelCont, "2"); + cl.show(panelCont, "2"); + repaint(); + revalidate(); } public void showstart(){ @@ -82,7 +169,6 @@ public class Dashboard_GUI extends JPanel{ cl.show(panelCont, "1"); repaint(); revalidate(); - } @@ -121,6 +207,23 @@ public class Dashboard_GUI extends JPanel{ } + + void addkarte() { + int i = 4; + labels[i] = new JLabel(); + String path = "/img/texturen/standart/12.png"; + + labels[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + labels[i].setAlignmentY(Component.TOP_ALIGNMENT); + labels[i].setBounds(new Rectangle(0, 0, 120, 180)); + labels[i].setSize(new Dimension(120, 180)); + labels[i].setHorizontalTextPosition(SwingConstants.CENTER); + labels[i].setHorizontalAlignment(SwingConstants.CENTER); + labels[i].setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource(path)).getImage().getScaledInstance(labels[i].getWidth(), labels[i].getHeight(), Image.SCALE_SMOOTH))); + imagepanel.add(labels[4]); + imagepanel.updateUI(); //Panel erneuern + } + } diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 4ed7fe0..14938b4 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -39,7 +39,7 @@ public class GUI extends JFrame{ setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JauJau"); setPreferredSize(new Dimension(800, 500)); - setSize(982, 642); + setSize(1565, 916); getContentPane().setLayout(new BorderLayout(0, 0)); JPanel Menue = new JPanel(); @@ -113,6 +113,8 @@ public class GUI extends JFrame{ dashboard.setLayout(new BorderLayout(0, 0)); Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(); + + //Spiel_GUI Spiel_GUI = new Spiel_GUI(); dashboard.add(Dashboard_GUI, BorderLayout.CENTER); diff --git a/src/de/jaujau/gui/Spiel_GUI.java b/src/de/jaujau/gui/Spiel_GUI.java deleted file mode 100644 index 152f421..0000000 --- a/src/de/jaujau/gui/Spiel_GUI.java +++ /dev/null @@ -1,74 +0,0 @@ -package de.jaujau.gui; -import java.awt.Image; -import javax.swing.JPanel; -import javax.swing.BoxLayout; -import java.awt.Dimension; -import java.awt.Graphics; - -import javax.swing.ImageIcon; - -import de.jaujau.daten.Kartensatz; -import de.jaujau.daten.Spielerverwaltung; -import de.jaujau.daten.Texturenpakete; - -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import javax.swing.JToggleButton; -import javax.swing.JSlider; - -public class Spiel_GUI extends JPanel implements ActionListener { - - /** - * - */ - private static final long serialVersionUID = 1L; - private Spielerverwaltung spielerverwaltung; - Texturenpakete texturen = new Texturenpakete(); - /** - * Create the application. - * @param speicherung - */ - public Spiel_GUI() { - setLayout(null); - - JToggleButton tglbtnNewToggleButton = new JToggleButton("New toggle button"); - tglbtnNewToggleButton.setBounds(365, 244, 121, 23); - add(tglbtnNewToggleButton); - - JSlider slider = new JSlider(); - slider.setBounds(215, 412, 200, 26); - add(slider); - initialize(spielerverwaltung); - } - /** - * Initialize the contents of the frame. - */ - - //Test GUI f�r JauJau - - private void initialize(Spielerverwaltung speicherung) { - this.spielerverwaltung = speicherung; - setBounds(100, 100, 963, 762); - JPanel panel_main = new JPanel(); - panel_main.setPreferredSize(new Dimension(600, 600));; - panel_main.setLayout(new BoxLayout(panel_main, BoxLayout.X_AXIS)); - - - texturen.addPaket("StandartTexturenBeta3.zip"); - texturen.setAktivesPaket(0); - - - } - - - public void actionPerformed(ActionEvent e) { - // TODO Auto-generated method stub - - } - - public void paint(Graphics g) { - //g.drawImage(texturen.getTextur(31), 50, 50, null); - - - } -} From 986a8bb72696471043f1a4883038075c3d26947c Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Wed, 6 Jan 2021 11:06:11 +0100 Subject: [PATCH 09/29] =?UTF-8?q?Konstruktor=20hinzugef=C3=BCgt,=20Audio?= =?UTF-8?q?=20umgebaut?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 35 +++++++++-------------------- 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 43ef0c8..58a28e2 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -17,15 +17,21 @@ public class Spiel { private Spieler amZug; private Wert gelegterWert; - private Audio audio = new Audio(); + private Audio audio; private Kartensatz kartensatz; - private Spielzug spielzug = new Spielzug(); - private Computer_gegner computerGegner = new Computer_gegner(); + private Spielzug spielzug; + private Computer_gegner computerGegner; private boolean spielgestartet = false; private boolean aussetzen; private boolean zwei_ziehen; private int kartenZiehen; + public Spiel() { + computerGegner = new Computer_gegner(); + audio = new Audio(); + kartensatz = new Kartensatz(); + spielzug = new Spielzug(); + } public boolean getAussetzen() { return aussetzen; @@ -89,10 +95,10 @@ public class Spiel { if (spielzug.pruefeZug(kartenindex)) { kartensatz.ablegen(kartenindex); if(kartensatz.getHand(amZug).size() == 1) { - spieleTon(true); + audio.spieleJau(); } if(kartensatz.getHand(amZug).isEmpty()) { - spieleTon(false); + audio.spieleJauJau(); //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? // Spieler Gewonnen aufrufen, Punkte aktualisieren } spiel(); @@ -138,23 +144,4 @@ public class Spiel { kartenZiehen += 2; } } - - - /** - * Spielt abhängig von einer Varibale optional den "Jau" oder den "JauJau" Sound ab - * @param auswahl true = Jau Sound - * false = JauJau Sound - */ - private void spieleTon(boolean auswahl) { - if(auswahl) { - Runnable jau = () -> audio.spieleJau(); - Thread threadJau = new Thread(jau); - threadJau.start(); - } - else { - Runnable jaujau = () -> audio.spieleJauJau(); - Thread threadJauJau = new Thread(jaujau); - threadJauJau.start(); - } - } } From db7e63b11ad0fa8de786fe272381d439c25c808d Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Wed, 6 Jan 2021 11:27:47 +0100 Subject: [PATCH 10/29] =?UTF-8?q?Thread=20Test=20f=C3=BCr=20Audio=20hinzug?= =?UTF-8?q?ef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/UnitTests/TEST_Audio.java | 5 +++-- src/de/jaujau/daten/Audio.java | 27 +++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/de/jaujau/UnitTests/TEST_Audio.java b/src/de/jaujau/UnitTests/TEST_Audio.java index 375c273..bb72648 100755 --- a/src/de/jaujau/UnitTests/TEST_Audio.java +++ b/src/de/jaujau/UnitTests/TEST_Audio.java @@ -18,8 +18,9 @@ class TEST_Audio { @Test void test() { - sound.spieleJauJau(); - sound.spieleJau(); + //sound.spieleJauJau(); + //sound.spieleJau(); + sound.test(); } } diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index eebfd0d..b016dc2 100755 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -14,9 +14,9 @@ import javax.sound.sampled.SourceDataLine; * */ public class Audio { - - public Audio() {} + public Audio() {} + /** * Spielt den "Jau" Ton ab @@ -41,6 +41,29 @@ public class Audio { } } + /** + * Spielt den "JauJau" Ton ab + */ + public void test() { + new Thread(new Runnable() { + @Override + public void run() { + try { + playSound("/sound/jaujau.wav"); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + }).start(); + + for(int i = 0; i < 500000; i++) { + System.out.println(i); + } + } + /* * !!! DIESE METHODE IST NICHT VON MIR !!! From 6eee594d4f5179cbb737fa5e61b7c47ca2a89954 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Wed, 6 Jan 2021 11:31:55 +0100 Subject: [PATCH 11/29] Upload --- src/de/jaujau/daten/Audio.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index b016dc2..8e6ff48 100755 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -2,6 +2,7 @@ package de.jaujau.daten; import java.io.IOException; +import java.util.concurrent.CountDownLatch; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; From def26c1cb91246abe54681afb0d608c13a97184f Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Wed, 6 Jan 2021 11:56:23 +0100 Subject: [PATCH 12/29] =?UTF-8?q?=C3=A4nderung=20Methodenname?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 58a28e2..c5ef4c3 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -51,7 +51,7 @@ public class Spiel { /** * alterniert zwischen Spieler und Computer, legt Beginner fest */ - public void spiel() { + public void spielen() { if(!spielgestartet) { Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(1); @@ -101,7 +101,7 @@ public class Spiel { audio.spieleJauJau(); //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? // Spieler Gewonnen aufrufen, Punkte aktualisieren } - spiel(); + spielen(); effekteSetzen(); } } @@ -122,7 +122,7 @@ public class Spiel { } kartenZiehen = 0; zwei_ziehen = false; - spiel(); + spielen(); } else { kartensatz.ziehen(amZug); From fbcdc5631394e4566e2d2ca79c7216b00c62009c Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 12:03:34 +0100 Subject: [PATCH 13/29] Anwendungs und GUI Test --- src/de/jaujau/gui/Dashboard_GUI.java | 93 ++++++++++++++----------- src/de/jaujau/gui/GUI.java | 20 ++++-- src/de/jaujau/spiellogik/Anwendung.java | 90 +++--------------------- 3 files changed, 76 insertions(+), 127 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 70f62cd..6cc9e45 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -7,7 +7,12 @@ import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; +import de.jaujau.daten.Audio; +import de.jaujau.daten.Spieler; import de.jaujau.daten.Spielerverwaltung; +import de.jaujau.spiellogik.Anwendung; +import de.jaujau.spiellogik.Spiel; + import javax.swing.JTextField; import javax.swing.JLabel; import javax.swing.BoxLayout; @@ -28,6 +33,8 @@ import java.awt.Component; import java.awt.FlowLayout; import java.awt.ComponentOrientation; import java.awt.Cursor; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; public class Dashboard_GUI extends JPanel{ private static final long serialVersionUID = -7380187913989942586L; @@ -52,10 +59,9 @@ public class Dashboard_GUI extends JPanel{ private final JLabel lblNewLabel_2_1 = new JLabel(""); JPanel imagepanel = new JPanel(); JLabel labels[] = new JLabel[32]; + private Audio sound = new Audio(); - - - public Dashboard_GUI() { + public Dashboard_GUI(Spiel aktuellesSpiel) { setLayout(new BorderLayout(0, 0)); @@ -81,29 +87,6 @@ public class Dashboard_GUI extends JPanel{ imagepanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); - //1. Label - JLabel lblNewLabel_2 = new JLabel(""); - lblNewLabel_2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - lblNewLabel_2.setAlignmentY(Component.TOP_ALIGNMENT); - lblNewLabel_2.setBounds(new Rectangle(0, 0, 120, 180)); - lblNewLabel_2.setSize(new Dimension(120, 180)); - lblNewLabel_2.setHorizontalTextPosition(SwingConstants.CENTER); - lblNewLabel_2.setHorizontalAlignment(SwingConstants.CENTER); - lblNewLabel_2.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/12.png")).getImage().getScaledInstance(lblNewLabel_2.getWidth(), lblNewLabel_2.getHeight(), Image.SCALE_SMOOTH))); - imagepanel.add(lblNewLabel_2); - - - - // 2. Label - lblNewLabel_2_1.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - lblNewLabel_2_1.setSize(new Dimension(120, 180)); - lblNewLabel_2_1.setHorizontalTextPosition(SwingConstants.CENTER); - lblNewLabel_2_1.setHorizontalAlignment(SwingConstants.CENTER); - lblNewLabel_2_1.setBounds(new Rectangle(0, 0, 120, 180)); - lblNewLabel_2_1.setAlignmentY(0.0f); - lblNewLabel_2_1.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/3.png")).getImage().getScaledInstance(lblNewLabel_2.getWidth(), lblNewLabel_2.getHeight(), Image.SCALE_SMOOTH))); - imagepanel.add(lblNewLabel_2_1); - gegner_hand.setBounds(0, 0, 1269, 152); spielfeld.add(gegner_hand); @@ -122,6 +105,16 @@ public class Dashboard_GUI extends JPanel{ spielfeld.add(ziehstapel); + + JButton btnNewButton_1 = new JButton("Audio"); + btnNewButton_1.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + sound.test(); + } + }); + btnNewButton_1.setBounds(293, 346, 89, 23); + spielfeld.add(btnNewButton_1); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); panel.setPreferredSize(new Dimension(10, 30)); @@ -141,7 +134,15 @@ public class Dashboard_GUI extends JPanel{ highscore.setLayout(new BorderLayout(0, 0)); - addkarte(); + + + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktualisiereHand(aktuellesSpiel); cl.show(panelCont, "3"); add(panelCont); @@ -151,7 +152,8 @@ public class Dashboard_GUI extends JPanel{ public void showgame(){ System.out.println("DASHBOARD: Game darstellen"); - cl.show(panelCont, "2"); + cl.show(panelCont, "2"); + repaint(); revalidate(); } @@ -208,22 +210,29 @@ public class Dashboard_GUI extends JPanel{ } - void addkarte() { - int i = 4; - labels[i] = new JLabel(); - String path = "/img/texturen/standart/12.png"; + void aktualisiereHand(Spiel aktuellesSpiel) { - labels[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - labels[i].setAlignmentY(Component.TOP_ALIGNMENT); - labels[i].setBounds(new Rectangle(0, 0, 120, 180)); - labels[i].setSize(new Dimension(120, 180)); - labels[i].setHorizontalTextPosition(SwingConstants.CENTER); - labels[i].setHorizontalAlignment(SwingConstants.CENTER); - labels[i].setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource(path)).getImage().getScaledInstance(labels[i].getWidth(), labels[i].getHeight(), Image.SCALE_SMOOTH))); - imagepanel.add(labels[4]); - imagepanel.updateUI(); //Panel erneuern + for(int i = 0; i< aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).size(); i++){ + + labels[i] = new JLabel(); + String path = "/img/texturen/standart/" + Integer.toString(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)) + ".png"; + labels[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + labels[i].setAlignmentY(Component.TOP_ALIGNMENT); + labels[i].setBounds(new Rectangle(0, 0, 120, 180)); + labels[i].setSize(new Dimension(120, 180)); + labels[i].setHorizontalTextPosition(SwingConstants.CENTER); + labels[i].setHorizontalAlignment(SwingConstants.CENTER); + labels[i].setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource(path)).getImage().getScaledInstance(labels[i].getWidth(), labels[i].getHeight(), Image.SCALE_SMOOTH))); + imagepanel.add(labels[i]); + imagepanel.updateUI(); //Panel erneuern + + + + } + + + } - } diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 14938b4..6fcbbe4 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -10,6 +10,12 @@ import java.awt.Dimension; import javax.swing.JLabel; import javax.swing.ImageIcon; import javax.swing.SwingConstants; + +import de.jaujau.daten.Spielerverwaltung; +import de.jaujau.daten.Texturenpakete; +import de.jaujau.spiellogik.Anwendung; +import de.jaujau.spiellogik.Spiel; + import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.BoxLayout; @@ -28,15 +34,16 @@ public class GUI extends JFrame{ private static final long serialVersionUID = 1L; private boolean menuehidden = false; Hilfe_GUI frame = new Hilfe_GUI(); - private JPanel panel2; - - + private Spiel aktuellesSpiel; // // Constructors // - public GUI () { - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) { + + aktuellesSpiel = new Spiel(); + // jaujau.getAktuellesSpiel(); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JauJau"); setPreferredSize(new Dimension(800, 500)); setSize(1565, 916); @@ -112,7 +119,7 @@ public class GUI extends JFrame{ getContentPane().add(dashboard, BorderLayout.CENTER); dashboard.setLayout(new BorderLayout(0, 0)); - Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(); + Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel); //Spiel_GUI Spiel_GUI = new Spiel_GUI(); dashboard.add(Dashboard_GUI, BorderLayout.CENTER); @@ -153,6 +160,7 @@ public class GUI extends JFrame{ gamelabel.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { + aktuellesSpiel = new Spiel(); System.out.println("GUI: Spiel GUI geöffnet"); Dashboard_GUI.showgame(); } diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java index 2ab7729..5bd8b69 100644 --- a/src/de/jaujau/spiellogik/Anwendung.java +++ b/src/de/jaujau/spiellogik/Anwendung.java @@ -15,97 +15,29 @@ import de.jaujau.gui.GUI; public class Anwendung { - private Spiel aktuellesSpiel; private Texturenpakete texturenpakete; private Spielerverwaltung speicherung; - private GUI gui; + private GUI view; + // // Constructors // public Anwendung() { - - speicherung = new Spielerverwaltung(); - gui = new GUI(); - + speicherung = new Spielerverwaltung(); + texturenpakete = new Texturenpakete(); + view = new GUI(texturenpakete, speicherung); + + }; - // - // Methods - - // - // Accessor methods - // - /** - * Set the value of aktuellesSpiel - * - * @param newVar the new value of aktuellesSpiel - */ - public void setAktuellesSpiel(Spiel newSpiel) { - aktuellesSpiel = newSpiel; - } - - /** - * Get the value of aktuellesSpiel - * - * @return the value of aktuellesSpiel - */ - public Spiel getAktuellesSpiel() { - return aktuellesSpiel; - } - - /** - * Set the value of texturenpakete - * - * @param newVar the new value of texturenpakete - */ - public void setTexturenpakete(Texturenpakete newTexture) { - texturenpakete = newTexture; - } - - /** - * Get the value of texturenpakete - * - * @return the value of texturenpakete - */ - public Texturenpakete getTexturenpakete() { - return texturenpakete; - } - - /** - * Set the value of speicherung - * - * @param newVar the new value of speicherung - */ - public void setSpeicherung(Spielerverwaltung newVer) { - speicherung = newVer; - } - - /** - * Get the value of speicherung - * - * @return the value of speicherung - */ - public Spielerverwaltung getSpeicherung() { - return speicherung; - } - - // - // Other methods - // - public static void openMenue_GUI(Anwendung jaujau) { // Menue_GUI oeffnen! - jaujau.gui.setVisible(true); - - } - /** */ public static void main(String[] args) { - Anwendung jaujau = new Anwendung(); - openMenue_GUI(jaujau); - - /** + /** * Launch the application. */ - + + Anwendung jaujau = new Anwendung(); + jaujau.view.setVisible(true); } } \ No newline at end of file From 8ae046bfffdcc5539f83e68cc6e38d0453cc1fdc Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 12:04:59 +0100 Subject: [PATCH 14/29] Sound MultiThread --- src/de/jaujau/daten/Audio.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index 8e6ff48..165a321 100755 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -60,9 +60,10 @@ public class Audio { }).start(); - for(int i = 0; i < 500000; i++) { +/* for(int i = 0; i < 500000; i++) { System.out.println(i); - } + } +*/ } From 07888eb9bd90d2af8d8ed922f977813edfd08826 Mon Sep 17 00:00:00 2001 From: Sebastian Kacza Date: Wed, 6 Jan 2021 12:20:51 +0100 Subject: [PATCH 15/29] Sound wird jetzt in einem eigenen Thread abgespielt --- src/de/jaujau/UnitTests/TEST_Audio.java | 17 +++++++++--- src/de/jaujau/daten/Audio.java | 36 +++++++++---------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/de/jaujau/UnitTests/TEST_Audio.java b/src/de/jaujau/UnitTests/TEST_Audio.java index bb72648..e5ab97d 100755 --- a/src/de/jaujau/UnitTests/TEST_Audio.java +++ b/src/de/jaujau/UnitTests/TEST_Audio.java @@ -18,9 +18,20 @@ class TEST_Audio { @Test void test() { - //sound.spieleJauJau(); - //sound.spieleJau(); - sound.test(); + //Test Sound in einem eigenen Thread abspielen + sound.spieleJau(); + //um das Programm zu beschäftigen + for(int i = 0; i < 500000; i++) { + System.out.println(i); + } + + //Test Sound in einem eigenen Thread abspielen + sound.spieleJauJau(); + //um das Programm zu beschäftigen + for(int i = 0; i < 500000; i++) { + System.out.println(i); + } + } } diff --git a/src/de/jaujau/daten/Audio.java b/src/de/jaujau/daten/Audio.java index 165a321..af7c000 100755 --- a/src/de/jaujau/daten/Audio.java +++ b/src/de/jaujau/daten/Audio.java @@ -2,8 +2,6 @@ package de.jaujau.daten; import java.io.IOException; -import java.util.concurrent.CountDownLatch; - import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; @@ -23,11 +21,7 @@ public class Audio { * Spielt den "Jau" Ton ab */ public void spieleJau() { - try { - playSound("/sound/jau.wav"); - } catch (Exception e) { - e.printStackTrace(); - } + spieleTon("/sound/jaujau.wav"); } @@ -35,35 +29,31 @@ public class Audio { * Spielt den "JauJau" Ton ab */ public void spieleJauJau() { - try { - playSound("/sound/jaujau.wav"); - } catch (Exception e) { - e.printStackTrace(); - } + spieleTon("/sound/jau.wav"); } + /** - * Spielt den "JauJau" Ton ab + * Spielt einen Ton ein einem eingene Thread ab + * @param Pfad zu der Sounddatei im Jar-Archiv */ - public void test() { + private void spieleTon(String Pfad) { new Thread(new Runnable() { @Override public void run() { try { - playSound("/sound/jaujau.wav"); + playSound(Pfad); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); } - } - }).start(); - -/* for(int i = 0; i < 500000; i++) { - System.out.println(i); - } -*/ + } + + + //Kann gelöscht werden wenn es nicht mehr in der GUI benötigt wird + public void test() { + spieleJauJau(); } From ae2ae87284260c85c714ecdb6596c12bc19738e3 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 12:47:37 +0100 Subject: [PATCH 16/29] GUI Update 3.1 --- src/de/jaujau/gui/Dashboard_GUI.java | 30 +++++++++++++++------------ src/de/jaujau/gui/GUI.java | 2 +- src/img/texturen/standart/32.png | Bin 66023 -> 8463 bytes 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 6cc9e45..efc80f7 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -60,10 +60,11 @@ public class Dashboard_GUI extends JPanel{ JPanel imagepanel = new JPanel(); JLabel labels[] = new JLabel[32]; private Audio sound = new Audio(); + private Spiel aktuellesSpiel; - public Dashboard_GUI(Spiel aktuellesSpiel) { - + public Dashboard_GUI(Spiel Spiel) { + aktuellesSpiel = Spiel; setLayout(new BorderLayout(0, 0)); panelCont.setLayout(cl); panelCont.add(highscore, "1"); @@ -97,6 +98,13 @@ public class Dashboard_GUI extends JPanel{ ablagestapel.setBounds(618, 267, 137, 210); spielfeld.add(ablagestapel); + ziehstapel.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktualisiereHand(aktuellesSpiel); + } + }); ziehstapel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); ziehstapel.setPreferredSize(new Dimension(242, 362)); ziehstapel.setHorizontalAlignment(SwingConstants.CENTER); @@ -134,15 +142,6 @@ public class Dashboard_GUI extends JPanel{ highscore.setLayout(new BorderLayout(0, 0)); - - - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktualisiereHand(aktuellesSpiel); cl.show(panelCont, "3"); add(panelCont); @@ -150,10 +149,10 @@ public class Dashboard_GUI extends JPanel{ } - public void showgame(){ + public void showgame(Spiel Spiel){ + aktuellesSpiel = Spiel; System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); - repaint(); revalidate(); } @@ -212,6 +211,11 @@ public class Dashboard_GUI extends JPanel{ void aktualisiereHand(Spiel aktuellesSpiel) { + for(Component c : imagepanel.getComponents()){ + imagepanel.remove(c); + imagepanel.revalidate(); + } + for(int i = 0; i< aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).size(); i++){ labels[i] = new JLabel(); diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 6fcbbe4..6c532e2 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -162,7 +162,7 @@ public class GUI extends JFrame{ public void mouseClicked(MouseEvent e) { aktuellesSpiel = new Spiel(); System.out.println("GUI: Spiel GUI geöffnet"); - Dashboard_GUI.showgame(); + Dashboard_GUI.showgame(aktuellesSpiel); } }); diff --git a/src/img/texturen/standart/32.png b/src/img/texturen/standart/32.png index 51250770cc86ca8a7495c2cb0679e369f4baa95a..c7af09e57a1b1f0c03b34faae443a546aed16c23 100755 GIT binary patch literal 8463 zcmc(F1zQ~3((WL^o!}aV06~V}1ef40fx+Dq+zIYM0wK6Vu)rV*?mD=`KyV2zfuKRZ z-sjwXzq8N%0k@xLx_kBXl3J^()?06Nw7RMsE*2#g2n51akbkWSTz`W=NcI@Wz+IJm zf*o+dbe7k11A!pmzkW#GMdF?y5IsoYwWPN9!qKviq4vcJ`pNjq9*x1+9Rx*jRgKXJ^S`m}p&=)qZ*ulxM^MIDZw)11US2MY!DA_SrlzJExdy6%$rE_D;O@})k@}T+ z1+=83-KL zygTjJEPL9ir6&4DQ`5W}T4mB<+~Pn^L815NO`pD&K+MOFUM?<3Yg=2%pFhvcLg(h@ zIxZI+79O9h_+J?zQjb%YmX? zhzg{&g98H{9mMSH!#ci{uTZ%f{JY124#@xZ5(a~{SyYsN{hF1XjdZx$u?jk%ekmcZ zV752tospRtiBE@TI{WpFSL}rxoj)qQpx``+P2@c^K{5QdYf4V+{zSesh?<&u#@>Uf z2ExHHYwYKCcYRt}saQmGb48Zp7cW!d_!3w!9WZq>l+(Bs+EOw1FKr1j?f21E z10O|$xGdnieL{?ksGVck!onSEMlGlkQBee_lGm38UA?c#`98G7&WL{f`gLSci% zcEl!v^CwOBG!YriD!F3*$jHd7tgNcpLRO#B(x8ThOMtScln)8NV8NggFh8?SOE+5; zo1b4hF#{@SnVQlE0bXgi(zp%F^n7;`4Z1(fS=dN^dj)1d)+){`jtDP4{<*!4mRDLT zucNLG>YSeb?uM)z2HdI>Ge_`zH-#pZ7{lgRzsu#$O z<>loC^6~L8uc({DbsyN9P7|k7QGtF(BWCXI{kckqLmQhxdH3rvWx&vh@fjGUzW#do z*U7xa{CD&uW-u7V(QygY(z~*<(%b>2&5Gph?d|SP$jA4RN7|J;CxG(!IAPe#99c`t zmY0R?I}s|Ini>vO#G0vcIzzy7LGszzM(@NLrosuhASb7q4iq}ygz)V~%@U4W&}U@K zD@H>gfclPj!oq^Dy1EPEswxaI{rv9w1FIiqvTTg_Ad3p1iDS?G# zk?`bKR(|PKDY&yx7Zumn73%D4dOsKi^9TrNpVxP=SiuC#(u+_N6585MWI~e7ch$op z7{DkH$b1{s@o}T;lj34_F^ZVFI=-Nc49e4pUs7{93JIx^2Xpz_1@)xy@h9hDxpddN zNc#Z`HsopU{*tTjLr*s~^f1N6QBm`}oIa;+ItBI|{%G`!^C-TRKqPbOYIhetuAcp1vn5 zE94^Nl9B_%JqXyziG(}vuqyl=tc90|0pt3&lBG?I9RlrURjpQ91y@lqAw60tRb4x5 zvXILQA{%eHRc6z#uLP5oMZ>~U*F>(<7g%1PjE~=)#cpqZdEFBj9ZTg^7 zRl@|&08Zu=(c}&c@Qi<*{w|wW=pq08$G@Nb?~DIk@xROeXz2fK_}{(#Z%6-G{zoT3 z|Nkx@$h}d(bajQI!Ee^hZ6X_1ttny^3+|N&P!R>0GqaKqIaR!+B`8i0x;}%MgTMIG zr+GDm;tvCg)x^IE6qHbcrc3lN;Wy7drD1^PDr<;hFQk9YbAd|B%$}1UM9Szw&Msze z=Jmy^DXD6_Yar7)I@b?=)(i8N?7@Ua&0$S$iJuwU->?u+#c)|b$>BG_b@n7H{$w5= z8;b$=)q&z@xb~t3TEwck@G`A|k=GI+i`8a1&2laW(#v0SDww!^$IH&n6PX-5 z#0LnoMgFH`C=$O`qCQ4`#6Ot3Xy?;6SBY>r%6RFV2igrNCpqSa|Mkw6-77v7DKX%M1nZrEKGO-d>uvpjREif&_LZKr?3h4G7= zy?yufsi2Rhz}63&8i&;5cb@$4*vaAZiF`rVu+-geb;n%=g%{lK?4s)&Je>F_!y+5T z&TA~3UCp;*BhklOw&A$%&l6WZzj9kUuJpUz5#QX9Sza`5bKWK38HHZG{nZ9IyS5iR zHv7iR&)0`Jo$m387VEouLal%)MrVUWl$3ZArp_y-<$c9UN!eK3n;&5J#aqW*mDPwm;d~ zi8*-TA;~<7d9R4f$x+ZuFYK2WO#*`TIofIYurm4A5yXo~Psuia1={?W$J{&J9`6r) zD7kLVM|!*~IWBB+I~`<(?X0$>@>wwdl+2qnJ%rvJn1Bcfg3fj>09a~wxLD%HmMm2i zl1(!VSCt>Pwu_#Jo*(0a1_zsIgcGMT;o4jjYRHo>iD@y?sFx1<^-oZdc| z!>OxoaJcOHoJn{V_31m!PcO|v8sRH#;juW5xGU=U!$ZS0o*evdC$cs7w<8{JI7hOg z^YY@^cVjr|lQ-(-gieKLX3cihzm%W^H3&cqgW_--MriE%VH5|#LhcyfZ4Qv%nFZrg zolGeucob~v==u1OKS6r+YG6P@7R_-~`A|8oZ{OeNsNz(cI3=Q~Wt zjcU-q@Ur@7>-?C*xQ&+bLvG;qrCEir!z9Dq>f>@-h&qd@12!=+%hP6_3|7{OrPv`w zZSC52v0{?4r@_JG;?-+7jn*0v*7+9n&E45WjPs?9>v>_A9J zOYBD&0tN@Pszu#FNX?Isc)I>1wQsCfwlJU1H5OmXPyg&-U{1EUb^>so%P9vk&Dq+i z+<%l~}-Wc=?bd^e7-E z5gmc(?GOwWRw++@Zl1&xrj=But7GA@)%mD~m2P+($khG=zIgAa=P*t>@FlE;l?^)} zz*pc=oduW=HMPdZ&INq|qe4j|ny=*=TA{yPKPTsZL1leIWy2mGW;)3b7G5{zphIfx zjbt+>!O&G}2dzO4MR&t?&vROyN||WugJXGm`r;4nZm3lmcZWRjwejWU2kafw(^D!} ztb5T3yR582XdIJEtcYlGa=w)!IXT-fL@Joef`IbFU=o*m>55#(T?h%=+EH9O&*{&k zLs$3qI_nBy>B6qAP(fEzo3XXuTP-w-pXDdY$=>^OxwAyz_eT+)T-g{?9MD#kVfy$C zjLO)($jDIFLSbV|%j{X9g+Kr-0^m9#i~ArzWsPZbypfrx!ACwd+x&agpNNz*P)$sF z`#hMYM@L)VeVyb&(9~N-dn3(lk4D8i&grSMlEl;W{ND23f5Gzf%!w2>R#xonmwP`A5?>S_w5=AtS5j##A>E+oE)nms8`{(b(T=L zNuZ29>xT~$6CiZ-)_Z>0xT#DPf|II1z~Wsl*&#+#eqT!K_>@%uw5+6rfxN#D1S;^j zp5Ex@#WezpWtE|!YHQqwO97T-kf~X)%jQcvqGHv)JjtsaT~<~=EuigLR3#`ij&|Pi z0N(3bF%~hfm|-y+r_C?ket6Ugyh$=OXLw5Hc6*YQfM;*psl;j4k9P`ddZo>}yavB_ zypP?XF~{2pD@q9?8hC8iN?U2=@$u@HdQzJ)dLc@Se)AL4 zyAzb{QR(-skm*)Bla}sL1Z8Jm3C6S68pe?n+enZ27cgy$T%{ms3u&(+H{G=hf|fmp4e;NmSe#ZT9?3@J!t zXz2W`r+b+85D_=x^-&bxNA4*gPAHC?0E-j3Zhg2ejR{7HjQ#Q&U5%4UZ#y3s;&m*a27bSr)G<9DiTGpe zl;-@R#S~*3wtIPb;%8J4Dd|Svu8+@#)>c-Q&}D2$7;2VC^uB##li9xZ`F_!DX*Gdv z6>?B^b|a_XeY3YmODfsT83|VvgZ&w-HGN> zi%G$->cG49dr}9)ZZ<6|2DAaspq|{7gDxOy9@_Q-7Z=({U^C{7UG4NP3+gbM77UjA zD^gr^YUdi#f4H-u7K>doJzX6~z?P5!5FDJG>`h#wCLZ1(5P?HjMc3*xZCY;Y7?DJr zl|`RyzNIM7NPrp^9!+CwUV+QWRO~T?`xy8Ib1Zi*bINt;0U;MnXz|XpuMdE}SC($z zCKr_G=n30iNqqB)I04o$nV4!%n9DC-Eu%PHstePr0A^e-@(RmlTLohYlpGhiz~mr}Vz{y5Otg)eOhck9+&N>v~zbLLDE!@wTk2(HY6u7+O zh~K=vjxu}K)PE99JTMww_5x91*G7ttZZ!RHP?a$3azcN$FxmDf*8`99EitRT1BUFF z^KieIQ?i9aAW2|ocrNy7@O%t2`h&e6CY#Rg7*S2NtzS+Gj|3JLDlu`}$B|JVRg7^= zyWzthX<}^`y@cTEfVShKlHC2}RxqGVTL9`a?l3<#Y*R~R@7ny>@G!(P4s6P&byC4r z!{=i6%fIx;f9-#mGns3k zXAksJ;@t@(xhJ^=`xi%Ww1$$mNLWSG-j04!p7NYLN6zN?|F-P!jfiP@q%4ABA4 zmyU{&_7|0s=JI5}JS6m692Y4($P2upQOyd7zlHcm`R|AS zl4MUZHMtKu-BVOUn90wDICpMxMzXVu#KdnGBj!xx>|O{zJMX;N1&ch2 z7za>raR~;}hN77b5{+b{qocz!Xq68T>-SfLB;jw$t3BAHq}SJidS8oNlHVfEO@#t! z!E)WpG<$o3F34tP7&yJ-;ynNz=kLGH7T{v#;HFok98y}u?GFp; z={jZFpu?jh6%i2;(9fNn?`tzOOUrf3C?I(Sq@X23X^xi0M)IJ{%*^PR80?_#ZYk2N z=AMl{XZPN89?;3{DoUqARhL9|cx$T&2*|fE<>cgmJ}W-QR$cCzB{8U9+mJDA3UO-h z3PKtf?ZX!*udeg-@ZfXt^t5(RS!QKGF4r;ZL7QJNpJfH9m&Z-%e|J(@-X9fM--#Sj zy#8Z$Vmgw&_*+2{3y(TTaW=h(l!PQ2R#)!?^H;OPX=?J`p;68VYgi!?o&^z*JfWg8 zY>x%Ync9_Q13MVV!{g+vXE2GzII-Tt)5|NBTG*4FmzS4?Wp}B`Z3$%QOo=NZs-Y86 z%7R0I%*;GsSzQ|@8=67+Ir$kU{*NC3EM08}T;!?X=HU+(_TGGH8iUk^1}_~Q9dq-7 zFZK0^$;q1HVkQ9rUEz5-OQ?XO>0Y@==TrB{#aD zFspUXl2}`pRsbSRY5v>-*x(p4i$AV2v+GG}&i6u^nrmCL>Cni?NR$MOkUVWxQBhG? zMTMfG;s~z$0-FY#hsS(9u3S7l7=@LDoqcTsnT`(i$$B*N%lD0fI2%A+={@_pg~34u z*5t3+tU$sl-E&-{Wtg0fj*gTRjw=B-b;OhGM5i-dlW5x`A+fb3Fu|un42IJQxtEre z*#Y?setv$CyU}HG0w7xR!41&YqF=U*0 zv?6I7xE>l($lIemTf--3(pARQ4UvB_y`G*g`NHe!1OZl#l?_0V&6L*G&d#0ZdjNYK zAMd?i=2x|KeY*MV*)va1Pdz<7tZ=C+;(|Ko^=^*?gp920@nXYAgK(UJJdkcBy)f02 zC#6+#0OzpWi&|e_T^F8248*W|(Eta}v@t-)$hbDEyGXm0>0 zDlo3V#>T$A`ekBd0L<419bXnh$HH zu@r?~?%R+6AmwK_UEI{t0;CHK8fqUKE@5>me!oOPV7d5;@^Xt`3BKQ^rZj=I2OS__ z4i_2+(DK>+cK=)CG+{3Yww$PrmR6FdnoDmKA&_~wimIc>7#tj2xO{)KP{&Spq3qOl zK?)KOXvoUSS`?SbT>a7J*YKJlQL#w;{+yUiUUU=zGeAm9PtO+d`8G=7T;c>VsK*Hk z4V4C9^MSmm9AJ>);ZK69+Hdw%&(VPUAcy1F22QufB-w_Y(G zR#sM~rg`r`Zt-%EyO)h6PfSSY)YrO-iitTpJ40F9-Sr0a-!lOF$VAfB_1mR9ZV)iNM$PWg zGR&K=fYoVq*{tHoFg`WCyogK}<|c->paYCx)UHz z2M6sg_Gf91ZVHGUIM~?@8=dph)6+fW?~-+m0lz(M%ezE7(gob|9~ZlQt6L?) zJJZn=5)x9?@!$*StE;rQ&?j0)tniJdot)dtMJFXiMVw@KWj&&yysApvV_)0a+FCz4iPT~g0(#v001BWNkl5?Qzk|w6AcDQ?7 zc~n;6?gpCOy|cq@86HC}S7a#^;R}$$XW~2XCH4vUV?@Y5+*z5O+1;5zPXmJ+s3Y&V z{4g_BFZm85WVT|_XEv811P`xp=}TkSAHGu6|!;5M~}ZCOm7g@OTFy-wcNP1qsO0# z_}C^A@{TimwO`)~{OC4}{+A@1w*c0^G`79r(f{0a!FgeQX9DGC4em{g?FTf!&8_in z-#@PE^=&uXUK5SQUm|s$S7pR4djCHwWUq1b4}hMBTVJli_H&Xu9_lSM{CRNFP5 zbKDP5UZJ$!mZNPEvAy-LIhlBD;wh-iJHZD`uL;(#f(Gvj*$aYu8(%pBrph$WkSB11 z;SXQ`=bG6)VER@hWQ$IGyoV91ua94W1+1dSD_8QtpR##ry%npxply5Gpr9&B4#~X% zX1sB_53+f4u)ee9#(QihK_uV?qyfY^NB#il4Uv#7;v{gd>?8_?2tkGUX1G2;c_q-W zt7_;D(1QzjCH1ZsJBb+O*)rh+l-J8o>E||~t!3M)fEihjs1HC~Hz%dLz}Q`?l6UwK z;lxSd0oH4O?RHI_>77h*i`h02swR+xKo7WHx6q{Z4Fb1#>YE>%Dj)(Osy?84?L@$? zRiC;8;XQYk8y4HD0*Z+ApdoHR=+JiPQ+KvD8=N`o3 zh!5g=?Fg}(Bn@}QN$y;g6hJco*F)t8JM|i+3Er$S;(eRXwrPlOe~eYr6CiyxF!dKK zm~kDAUM;ORs8Zpb7y<84k5olqAcOeJHC*GSTBN(!SsQ43>-0#J2pS&5^D3Lec~r)` zJI8S=CB|yOt=1y|ajjq;(7bNF(k|BMnl0SANn~%B3J3sYiXK%I>1Pk1CZ34cxNVwcL0VRmmX|-e)x9eZch9+8n?Q+TU$bw2lxF&_8K;)kY}@pkhb5; zi1!xF3&48$x4a&uZ`)MKc~?dRKmnaTKzaQi+Qfj@qfp}gxJ>JkgeZcF(zcmFR`1q^ z`v&VK&uB+&*^g@_;#&^_?xdjRVt<>ea0>_#Q`oMM{*;uywXNH|eb zAQo7>4{}eSd_TQMcH^&mLt+-U2HXmunt-Pur2?R)2SDFT60*EC@ID5&-MA+az<>Zk z1R^qI2tWziYJB(r==;a5w*lOn<0MyhAc8uv@s#68m4OUlf_S7gs(Q>G!L3sY9-w^X z4D4n)yK~9C_QT++4pc)Nei5eMD4+rg0;oduwemkX;CFc9fk?dcf7P!#x?I!!) z25@gqY$G6ma#Chd4JoMr8M4NZCY1!ss*U)Ihw?ioVK+Yxy;CG^PHb!Y2LU3pgeHiH zF_wyg&?*|8+cWdPG!`AZy{qx*ogxu8=DPtE0aZmrV+;|gDhrbWy=xfw0Oc!++|LJV z#Jed9x3H6P)oGM#PRpEipzQ|$kr0uHK!HU_6^Y*7V83uEfn%(E;IHR0wvziUu3A~f5{Iid1+IMFsvxSY!XijW z0w68z#+4nC_yFa1acjg^@V)(#d)0R774K+am4GTO7Xg_GZ_rkN>jRqC^r4&j$2*%j z-rZ`gaNa6WV#$(b#eenEKmw|wOD8qn&wAvW9JPH1PVnVn`inA{tg10p6=6jKdI4xe zP*hzc_v=A0uS{CMO-}GWY;oK!$*l^iATqOusH%!G%PjvKe}(@O zfM^4Q+`P?ufeu$UwpUw1002a?h}7zf_|kmTs*eb0?vPmH7CI|eHz3;FfN_hr{Yt_8 zn&iItKb>ig7y6x2ij8!k-5UcpUVLVN21R@&EK(JaK%%DV0nO`Z(q8us-OL;} z>#$rvc;E6A(~IaZoJILwA{txcHG)c1j_cUBxIOUI6|=kBT0%A{OkYc4*w}Hg=<8V! z*Q#ywDZxdIQ!B-1F;6Rc-MCfac~v=Ew{F0`vnUa465j|fvvYK#GG*1w1Q9_&+OX<9g!h80psKB@13_PIR8>T1b9G5&Aw$R(5oO%w ztpV_wfo~2Y%Z4qTn>2VYX6l}A@U7A~+ng5?TU6j8i9lCAwhgS&Rwg37i(Ah@J2uHo zUWwq`95Y!7?MA#f18`>DL%bj$ubD@#Xkc4Fd~eM%bepZYVNVrqYHe09DKdyefY3S; z5obt##rB5)2-Mm|?qoeTDUvrlDZ9Wfdzbv)nDE|=H)k=){YvRQ<%XLf$MOQQdg(83 z{{&S~K?LO>DIyreyS}XPKFj7sr1j$aZe#oMGC+R=zUO&obn!hjkjfX;i@!_dkpk+g zYVT$AbsPEw7^W}6+1JYD9iRYT|7Yvk+Ze3pe$|_t+h)|t`N53@n#NK-HBu3g2)Ai5 zZMBYwzXC9uxqGh|ElQw?87C zMZu^dKwCFeL68iRT``wh53hiG2kTX?#&+-%+?3e_ug3Lk1cX3@7s1yTCJ#iS)}E~b zasl`4Vgq>3E4$mJEFUX4tv6u&-b{whRR$ALP$X>01znh`5$IBoAQ2LQD$ugmMdLa* z=l%NNn-j6~%vM+Z+86o#O7XpZa9_F=iHwL`u3&4b)|nk!iO^W9thgws9?<-Tjy|Wf zUJLTJ0Nij{$y?VgH2?rb83~AxSzrIcCF{7nW3+vhns%bWw48oo5FD^y>CkD9hhA1}@julPN#8sBfW-)4}{*#TF?6TlqQl9UMOyl*oWK?MzxA-srq z5=BEM_r8IoDA1e(Izyn8v*}%R0NgVuUux%wa3#3bJ(p`T&)1-L8$5n6+ zmV%&Rm?qys7zsE)1I^Jab3jCui4YNuApl?zRUlAMO)09PatPxes66)0Fm#c=sc>S8CpCVz~GwzgYHpyc*(b6yA7QL+{Psl7;5{r{?4zLD^V`NGUa- z?cIxtWI(tT(wBEMf(o-%b*-v^31b6*H3%A?lee86joXgkSJ?$@2b5oXDOZm93Piyw`OG)jHSd6nUp`S*8NQqAx*>NQMkC zivWO%K{m*tE>kn!bTr=*D&6He;LGsft&8BBlS1hF<@XA$D7a1&;hX943J8P>#@G;2 zT~#qA<6ILOB!kKb3EE3XRY5hgwzsoG);4vWLCXD5~SO&EOpvzh@hYgTx82b;RmGBsNWKs?r#nV&vH5MaPnY2UaJ7AvA^{v(W2z zebKGP<0?c$w0rQ#JLkMDM`KVmDgco&yZgG=_Xo#I!uke7-l}|q%QtglrRCdg7^|O-WGI7-NkQRYW5xDJZKYGZiq70p1nQTutTSD$WA{cK8>jgykU0gvlkBDAb*dPM1#PRpd*%#^yB2qNWl44?E zB4Z2*b4pP}QW7F=>p6v(R6(lqncvY^L>LXv+YDYrg7{r^`ZXDszX!#8d%zE9o)^k1 zgY`Se_lo$5u54JVBqs{W9EB4|ay~~QRsh7*un2o+KoN}r1(qf>b>8V%^3`-|og-AA z=;UszStRS?lr1bXppOdNN6b zpiNP-+f19gcA{+o}7s)5vB7407`g#bd-A!0Es!Jq)0~fo+^2`(Z_CM30WIO zxtfXG&eXg-yTNxblQ&0*kWva^jASn5Xc7ScGA72TstBNph78BVkgT;xs46-O$5vHH zNr^Bd5l#v!!Z0hiDyaPZHvDQA?+o?lnn#MUd8c&KMFFGAnjj^e!#yTSj z2-|EiRRE;RQhpC;o==s(JqGatJGwq_-wxkP%J0{+36-P7iZB5hB9oetrm6L=)9rx@ z0(N@6@o+RAPx^yi?!C1p#MCrFM5dDo0uW&o@ZRt2?)ErURY}Igl#0CQ7I}(|MK6NR zN~}xNgd8B8F^htsY(O@@6L&gpH;%9D%C4-*R}6(Kk>c<6)o(<8BLGX2s$m#CP17Uq ztts}Mp;R70a}FYPS#nGwBEqU_2%55zm_Q_^Bml;?6s5g!R8t6Nr>8`iQc?gANhwYz z($p0*Gms@mAW|Qt^FO8Xu&!!OOx^d2-Cw!RBQjp~7mDEd`?2fl`7J{Vt_bM50t??2 zY2DW~fCji44}bWZ`utnq+FD0`kYx_I7H(pSoGK7tmB`Uq$ILNCW(HA063`abh>#*j zPNA-=a@sN*>nw{;fS)v7j`kQk2Tv7;4NGa&iSM~n$gWvpH(|x48q6M4> zE7z^g8VU#NTS4WX2El~`SkVKM*st6c^gv5+QgaC#xAt+d5$e=Q5 zs#SusUaZE*_4EX6uE1zu(Lj-9GTAqEgV@{oeJcret&Pbe|C0OmvzzW=BYOwk2Q(2rs#E@bJO9uiaM9Y zl)U%Wdrrw3%<`h!?Zm{R5ycR8cXtN6gUM)Y5D-9Ehtp{itx5wTu^QQ855TRS7vM(U z|Jp4f8@{6M3X37E%yo~evlY(tV3EnuKaZY&o|2Owi|V`Gt0O2!y#y>-r8E1aSx z6(I#A8)JF){okYz1|R(StDf~=ID)V2&#r>0t_bDpv54zCY2uB@u1C+Nr(dU76Ce^A z=g~Ts=hnH{gp{IkR23FUq9KGjgq#dVjv;`mio}=%FtS#4lSC0z6+;u6rdHMAc+yn$ z!Q&??qRcUb6a$Nd5RfRTDiSlRVv6! zg(If~phyM*t#h4D#}FbRB2ltsN(6waP1D2>G;yr!@pw{B%gp=4jEQ67#8OpF2+=v` zU53_jr79u}DREWT=fe@O7$Ri}b?vRSStdw;1Vn9muxJtvDzl8?2OMAbd%I90x?z07 z%AA^bgNmtFKfo!LC;!|`4liWsCQW5ohm@Ko#t;xtR1mS5 zo{SH_%(_opv7`DkMKIoWFm}1_bmKEzVe~9s$G=~X#+F!}|Ma)h({BK6dvk`W3{Ovm z#W`b*f!6k{N?ATF%gJ<_Wf>7oCex52h=5{BQOZ(6Fo3&*ejTC+#~6}`&wQR`peiCU zMFbF*(P)fRc8VN?QO^qaV(`U zaqFn*+sW@0iSVl_3L%n1yr|@hK!lw^-xqnmQ#3JDb%ki^sutnFVCUe`&iVP-@cexL z(XOI-_Vig(Rk_cyPG|4Y{^<1d{CMK56+)L~)|wO=RRKU_$S7EAROsN~(a!Gf^JmY1 zlgo44L}yIh#JX;DHVi^z5$IPAvzwoeSdV*nR_x3{gxv8+7Y zw9@&yQGCu$+cAp>PvpSyrKGgxOh}LO3}&ApkOVT9t`~5JdzLtu-8) z!h2GUAplWbRgu|Rt1O@z>!t}oQ!)UjCuftYF$f8%IUkS5la#m#5s?tJ9RsN91};?H zZh3t3nC!|p@v=>9nvO4+>7%NuJk!+xs-{9!5Jn^gjVU20p##;X3Eq2WZHlpO8f77X z6oLqAOoT*;%xs7fGc#Lfy>o!7s)mq>Ky+G`<7rvs8L)^-im7S>0uq2+6sCMR5nVle z@ty#8Np8K$+Znf3kiVXctk*GYL=^#5L@2yxWmZNNBDCIuC?Jxx-6Ctv6MOr6RZPRP zbBWRV42{V$-&9qKDf2FfSZm1`=472AL&C}BS&E56*x%W)-k0MEAdt_n4y;OK>Z(RW zQI)omJS<-PVOzy8u36> z?eFhDdUX8aMP^8hJ0Fj;NjWVWkxD_^1V@C~f3CQ9V{X4AZV8UpGmcf1mfRpwS-T*= zpePp?CaTWpZ0n+-5R)3?4OwSn9jnQd6C*;X>+^DA$!6Y%$Vq@j0W`(L0$E4u7*&x0 zo2IfpnfQSm1k|+`xgO+@r$2uz1inDuH5b>t<#GkVap1)tas-fRj z>D)r1GP`(J0b3P~RMlEr6os+YdMijx9b!ztBBE%#s5VU#VyZ)ILL78E#@L_$WLTi7 zY9Le9vD1eT(xhw{D?)7VCMCqo`!>TsiJF)Y5RjCNG9#eOZk~Zlj;*?t0{AX)e3i7u zmDM<1UYsv`U)Wmh;(DnxsLfRS{MZB1FItLI_D!5s<8f6k}C$ zWJA^&=bT3o;iL-6ti~XyvY;_2T9?&yJgO#BO))DvK}1sX$~^{f5p<=X8^tlgTbHE3 zT>|&&@98D1aaDqM)x71M`B>{lxwdy2siLKKA<>QQI_5Djr_ zA)z*2iLAAvii9AdAc&Ac5QIR`=A{cO8EWOO_b$sbL=?7hSF`@x9MOum>e0^2nAes(b1Rm-_`{1nG4oraiV7L(c8kc7$QU9(O(`*p zwbpoth#=h5&CbDIuah4h9{W7+_Bw#n-RVzK-#A%vy@)vB)d_xBY*RLGc4ucK&tyL;8Ntjnr1Fh(rL zRMi!v)R@rTwA_cFnR}S1`nRNcBr22qGw`sEQ~6kU~?{F-7vM07L|!k~r3lan2ZrWQ->T zQs!z}HUcJ}h9*V9Iz(d)CypUjF?F*{k(#PPGFa6TqB91P#HMj%5R5S>91uxZTR)6~ ztQFAr5yY#9^-aiIkL_&*TxIUZbaqRq001F{7*5a5k^&iviYYW?$Qr9GKF=ugv2G+r z0!=9yL{8ip?Co^B-ELu351zaqQapbCw4Y}_%cDYOog?Z!+7}T3bwKn^@8OxG3n|X)|zWU>tdoRX#baX_Aj#Lp5t+yyjh9D*2HsBA086?`w z6OaV}P(nZgWkICYOP}Ytb(T{?!lEcL$q}ip8|F9*SD6*Xo?C0YMrK$!#iEbnyb_;5U$7;6wkm^p^T;+%Je zk}_G-&0J=U%d)Zw7}Qvwk|>~pNQ#Kytrg;K(IK*u%b>Ed}TXOyqba30axM#H;?co^#;3P=pnn0D55pK|oXlY%L*K=G7XI%zAI~ z9FU}C3n8K^c^^6TcDm$kIUK2~u|Ds1Z01i#&r=B2nWn0(_e}`E5do3NXE`8&K{Pbj z+4=aBkBg#X39a`j*er;s001BWNkl7L zSifP~3&8!g{Pxxs0t#TQBX8?+YK_S{-MrT?CsP0+YbTRwnv}-cs;X_Ys?ZAB>9oYU zQRA>E5|bD()&Pd8E;FBd>zs4mdq5PCripbEV~T-OftV6U7Ga(x3nR4Uq!96LB=N>U zyxd`K5$E=|EeJhbeAKvLi@KgQn$=XebblzKA=NghNdXbi_KE@sozL>31Ios^e!o{u zrXg{t>lzUeGi!a8b&A3ooYqJ0fB3scpZxb<{o`Nj^jl*Z1yrOMqs_9W4uK;AID-bD zF3XtM_yQF8wSc{u9UWBH4cSfOb){X}g=I6&3p>0G+~*e+YoIqTozsXws7ZvuT9Xn# ze{pD>>2|wSSx-*SPmYd5T@g`?9Aiw0`#U>;kY|}CnvO=3x;{mtprg}MORk@zjW0M% zC`{_er{}|Nr!$&X{oUO`zgLeYhexNwX%)*drc{=dB{Q8&BuSgWNQkN;A}c_^2IcMs ze4ls)3AxHtgiDBFTmmY(k^Ld6t8! zv8L$e29%5mWm%1el(WVoFU2s$>kY@P)YEQZc-NsOx#1=ZH75Pgo4`*NsJQhsb55{-V<8?V=(V zLC&Dk&cKlA?R5#Es_JehGg)>%)D(llOyyHfS)PCR!TbHaz3+eg>GbIM2mAXd2~-q~8ah5XJ$(B7$&)90d%G%v3P1(`&d<)DA05Xk zv@ZPFkZ{vi=&n`b;;O%D=ihL*F)u7eNEVX%t0FnCr%Mq6B2pU+f+%ggHEQNHoRuKfwPkkRHw0fzLgx2HFELwP7MeGV z;OaK7%;CG8)V~auYqdlX5fLOqMBW+!U=b8m1tNn$s0e7$XcQ=n$-J+ss;O&Gogy9| z9Wm?f-Yy_ERRzL`$P6rm39M^Vfq@KVMYo9w0E;}&yeo?Qd^7=_xrD&bLWwcB5i1F< zAE^tfj5j28-rD-MgzU$+gJ5;8Hub8XUn|n|UCTF1)16T?RTWWV?cVNguh%66B|>X` z-n7)fd*9#RpALu9^D`mC3<7A#c6ZNAmGiaVrvD_ zOP5~jxHiUidOe%jx@r)p<2@>JWCcwr8X`cfLv)_15JL!{O2(nda+`&K)3V_hnkHC8 zW2_)%xpSFoqCiZcu24ZmQ%oX)M693+s;nS0mpP~ks;I8jps`_4u0f-<^GC$tO0CrR zPK|BpmBH%=HfL-Q0wJit%WPN$B1$QJ@x_v5=s;X{kW(HyKet3QcM5!pCu2M`fC5|z7?)dO9iCANdF?e#WD$E?3 zL}XG*M1*u1aSfY9-*&?HIsn)uyV6yI{^kM~x2t`+9O7pXYK!m^At0!52q>n=^OjaS zYX~5Qm}Oa>=g!#OeqRBa7(>%Av$0^%SQPXo&$>!fmo_RexuUEZ}BaL)HJD?9^; z*y(n<-3|(?O5Vw*RXrY;EV8#V`1rF=%gK0jeBz7Z@nCRvdOA8i+dDYOytOK2Rgtyb zUjN1O!^W6QJ%bnmV;mXdyb}Rwnts36?e`?b$)qG}Lj}f=pouYITPyX#Ub;pWjT_>m zE6lURt4WA%Xw&N=;vE;j?dmztj9bsDlcK6P=dw;`+SJu#+Uw*DaB^}QQ|k8m$H&K` z>A0I0jwq%y{OM_EYBJ{N#dBfqb&JWQtea4D3It@4PNx|321TA#WqEXVZje$Ftn=0y zNTHlgi73x}zuym4GaOH5zL*QQ{=yfw-bFyty0Lr1_v||}h*ld9jdMbOJ|`!x4e^K< z)vXDc71~-hi2FM`gWXTKX~0mY*FQcydiwNf-88@Y^wVGe?)P4TnEo}KRmGLTmy+zf@a1+?QNoB+}n5!3N<_j6KajuqeS;bagal5Lhh!P^J zAS;6gfU{|Jc5-SnpG~Uic-+K<0EfrN6&h;{a73S_Ca5IlR813-Ni0=WKKkg-29JN! zOe$lKMKt$$w^NkmgvZlNRAN+-;pw@^H&t1pvDTWbQ%pxwL}HeiN$Jvu3R-Lk9)h}QcsE$ivj z7(#2$4_`=1nm8m*F<3*!nDf!((ca#{!Cow~v%_x=zx|_gHkM^oR;MSY&JX}htJ)f) zDj@6$_Ie!+^>{jE>%*iRo}H%{FHF~@0HP|fl31hhhy?fIcE+_9BYrFX9RIKXTURQ0 z*Rl;>9lyS_FI~P(1t5Z^936lEpU+?XsU96SO$}|x2T|sImU(N56BpeMl9`N0u?a+& zn2q<{PT`GVpqN54Em_(`7ySsy?Y0%mbLNyv0L}N{s=S5M7 zsx>Z#a6TFdYgtyUwc1*n7u~FP(0laj$G`q>i~hdw3ShRdEB^e5vBKu}ehmB7*Icmx36`xFBpG${hBb54{s zG?hvP001FIN$i~i1Z#*0vpmZnYeK^@0iv}=QZpW%Bch2EL!+u_OcO#AV~jx(GfRwV z=DbI^jJJ-lsh@ul>&f2xzo(sj+IB zZL?Vl(y$cjo1(68J7-NdOMHq`bdGa_k;r#Th*X?w62O&fW0YM_ObA}@mnIt^u zcOLETG61WFBvo10lZmm0If7~{=`E2ET4O%`_@muNyQe3oWmzJTvP{R*z&aj}_2Tj| zL_}kW%*-{j3S@0w-MqcdhBr&= z&h~eAjU{VHIPD!A#3l?+&v*9s_da<4*-uZ;&(1>Kh=_2?o%eY@9uISGJ4OEe)8~`2 z>UO(zSqn?u)RV~sRBe_4p!F`xyo6}10hYR~M0GG2AYx+GCMt_wdh=nHflhckSif^^ zx1m1jQbzQ*RK~e4dP7($OI+78e_W*P8%=~QP!M3|rv?C3RhnwB=tg>`s( zTGdr2&qv26=V#|gt~>A;MX5{Ptf~t@T9|Mhkyhofr#^&^^rw%a{@zqF$eTLajHA_ zTp<@VyB3s^*QDFDJ3*Ha*sHDcax?jEGszG|8P$LSfD#cPDWGu7tt8NTQqrS?ywfM^ zK*3wL|L6b_M<*x4GBj0phXz21+e=McOqKTsJ`dUcZ#~vUI^LNmtn#Bg}~*h+$CQ$%i4wDeYv1^_j6QHBCw~=oUMJ-udxy zIW7l#5s)HFRX3AyiMB}b9FY(Nkq`~E)pqD2@EUI}VZKU{i?0jCwF-Y+_7s}cx4w>? zsb1?k(wl7&ORIx;+nul|-+ucPM+Cx)N_Xwu&}0muF_wjg=V#tgo)=YFPKT!;Vk{jU z9fqd~tn=P+2zlWRAqdA108^uOf--#eqG^J2R#M9I9EiLjXHYvi3s==-IzG2(hNI!+ zpC-bLNXC0+o{UE<7Z;y`w3o}U2#XLR0m!l^^&K0z*BMm!rt@51!6;s3@t749m>Way z#1>uSO?YS7X?@pDz?&&PUVlu_>fBw%U#O_CBrC|Af)Yq+t+$5im_#^)prG8a0a0c^ z1WhqTV=WpqM52)Ac~NAdIvI}>CuLAoW6)XC?Q~gXI+>=JVr`NKVoqsxSqB0b zGDrl_hWgE_6C+(AmFCm}bs@y)E9-M>nYGyQqVG1u;p=bEUR*}pa=tdvSEwG+}pV_v^2|NzB%nP*)s7H|u=#{^S1M z?#b!!yKlb#@T2!W{^Y~a`LJ6QqGnP}Po5qA@a#nsA{o=_h!>@%+DMfJaE7-rR4?Tw zTtVFjT;>da>5jRgZZFPwh~8W$>BeZgtMBX5D}K1Bp-SJare1C2xnWfl!5C(%ie{Uc_)C@dE11n=oAC)4tA>P^z867aSBxx>IM@F(zH&B zQ!uvh-sic`3S(`I@t=SA$vr>HoJ*k|4#xt|nx-<=6-5DnRZ1-@nwc6^OdC~*aOHg) zxX?XDdh;Hi8=7;1T5pZ`o3p4cZ~7v-9*H*x)9LH_+zni!HL_kcxZCVzeRB`K%Z`q7 z8OX^%s74&Ciwgi$Rhij1iw5fuB0vh!7~`BpBNi8L-xPR`4anzCXR?=b;| zD2}17%i(YwqLkCBoBOhCrd4e$Ip+XyXTM|f0stb*a8fo^nfVOKTH9v-qDosmUS7p* zYk?%ZMXga<_(j}G0Mp7ERDdf^Dtt>?>s8Ri8!~ENho<7Sk^pcO!6ACB1LaEYbemI; zj0L323lI^}&`gbdvcKEy_knC^nr^R4#(X{=YYa~g9)Ym6_Pw3{V1KU;;ZOhgc~zG0 zzxSl*bauM=ix)3Uh>s2)9ixECN1wbm*xe-*5>Yg0?07OhLfqTwJ$di_$#Cei9G!K> zvy^|L| z5M?orA~Hr7&OB5)yL;uFIB31bIpFfW=NJ>QX{D*Ie@ci((Fbk+NbbfZ~oUIP4E(*)6H`cO(~@mQ)0O|_Y4{Zg^RL03VP{0Uw5_kRmuA$3$5W|y03j{ z*}!*0=e0iGSw-ZPuU#wq@#^xB^NVtvUmcvAgdh>2A!EqcloE5Y&Y>zHdgl-{^O?0K z!~nn|OoYbT%sB!89aYz!fia1uq1b}>(p6Aw>lmen;d0uh3yR%crz@b*a;qcu1EYG~M zfP(RUG#c*rd!#z4s-n}e&QC_8CkOi>hH^5=eD>4x=ehUBTCnz`58m6^-+lJ%d5Xd3 zna_%|!{f4QMEH_UXd4p(s;ERjv&`c)*`weQq-9g%MuTNWxMb&XeF z=NlnjCFKpaK+#tlpUFrxdygNPEc^AZex(uv%Va!x_SM%W%dK@;e_);K>>YG>ce5-z z{QkS?c--ATIQaE%K;`V{L^G7U%aci`D3bF}KK;$0TZ~RlKKWOFI6FCc`t{e&yGp@< z>Fn(8zyH3^GDFVU?5FR4D61NXv@KZ%(&jZ9LW7qV+TAq0TP7MJ+?FdYpna|)L35QC z*sW$iylYna&L(t$1M6*A)67V%t$|NkYcVL2d3^AwGw2T|({I1}Iwb)_N$LFj{G*RQ z?11TXI#lGxXT#8>!=IkT=@>zWN5|iN_3gp_Zol6>JDb=}x7gV|fAOq38-8;>jfpKG zvj7014R!N)ckk2R{O-FSetiD)r_6goeEQ>0qDqEDl&ookRaz?zp&A0Axxlz|O2;y# z3GOb@eOq9?nUik*?;_2@hb~>G2%rM0(!^*|>h-%tf6!D@GWBzc0T>>A11@2v%}}T!OpM#{D0{0 zJgz5Wu$gn_*|-1n-5>wPXT8qg!`%bdKlrWp=Ee7)gM6uqs!B*I`Z8z$m1h3NTP+2y zYT38xbN^tyflqs5`9*!}8BJ1!rmmY96yQLy8K1KtX_gXl6F?|55T-)_U!9Lx5+@c_ z6^N<9P@SEg?YzJD=*cJbWGF0%;G8qQm-TWa@ZPw*00dSA0+;7T9dhIt3{hl-D=tI1 zydmk~^VTN(cYpn`G_QSp24DXDfBe(m{Xg||gk(}mENqCpwMCHuC=wM#&McxTiYe5Y zGbZa8;|K$xVK6bKrktp-aT!Y@P+>7H%Q~HUI_1z9XMLyVebJ^WgxE|c6O9!bSM++B z_bQ~qbvYhQCd?9JRGk&vw$5`5y9XcsH~;hhcJSdxDLlNi2WdUufr|)01lX!*ZRr`c zhJ;x;5g{k$(1@xgX;ci=JDz}{s;Aa_j!g^|AS$piwm;}+c~MnmQ;sA?G6WzT%P38( zYfwd>84ID2PRCm0YH}_j##%)MVO5n`E)2>n#bM^ye|T9BuwF#*S5%o*oM~e&tg*ep zPLw37ok72vPSu#YEK^E5y{=k|#&maf!pR8()=5K?`n~ROGCm)Ue*4?cVhDAT{_dmc zvuBy5vaXx)#5y-VKJnfU_I3xmyCl->_PT@KXgE|+;~Xp0O@Jn{sK`uN)K`OMA3hJT zo*&ml*rpExFaU~*s21M+>frrHJAK>lPRhpktf|XC{@s5X?CkvhU;fvu3<&??_rF(T zW8M7e@Bhou@$vuoKmD8cKKgKUdO98rJKdgj&Z{b?Km6ejgGY}Dl~YtSn$qd<$yZ-| zxwp6X@vlA^4Tt@1VXOt9(-%ko@TV^)&tIT1#$szzZ-Zvr_@{@@1FYv$85KCS?n6=) zM6kvHXdUDEWH_uQ{LIub9lZZhmhFk@H9`7MJ{cT*@cDoF+eze4fA{;UvGC=KEE|`} z{KG$fV^H_@9@PoX&xWH~P z_{BH>{-3}7ys4wH7Kz$Qm+d7BqC!LuO5+2p=a<$Okz9y?C@Lu>L`*4hQU|biu$vj` z@AS$LLwRno8--Y4uix>gIjPM;H-~f8-CptjlSliH-{0SV^tXTg|BjA+pp-zQn-_Uz zavN<=tU;H1<0Oe@20ISA6pRTBRq3eT*`G|$RHwpXjB6c3s?etDKCtTtSTAJagUeJD zP;4_(LR}q)MiIMJ9V74VoOLoU923B^=ZB$*&%ghwhWrB^x{M{ot;g-{r33uyaG{FesNr#o)4R* zQ2=8M5sJtxtpW9cTR#~1=KZ(~zWV#W{o{Z9tGXH!*${)OTB0oTL>QaK7!K4yH zbjFdP>2xeAz1|M0)KwW%@;=YPk7ImzX%EtR4g#Vei1@O)1h$+O z`rWSN-a2Q!XO$3Y?-B?wCnUSy?`7UI!0w|*bqLk8QW2MBDW$|J3Y~7Ro8{$X(mLk_ zZKue9rHKj95|JVE@vnZ>8}#d{YRXcX8x|F4nh;}iVWLr00RTb+xRFv553v3j8TfP- z7Xr{$$|KO7exE^%&-M=XLt+(4k)M6{O=qz4!DmnUgTZusDxvx0v;V4&>8n5ev6+mD z-fk4Bn>vK3WOpBb(CwFJFP?Vx_IDn?*X{JEsnA;nIy*WVo*w(leoIU&L$Ju!BA|YP&0nZPxUV>S-0U>Ryz5oD`QGhbWUe9{R{a$w(MA4w?^KZYl z&i(c;{`JoO{#SqhH_o|V|M|bF%lgH$r>UC0_sM5Mbarxh^!zy)Jb3b?o=(f*$?l_r z-~Pp4?(RO8x<+q|Ex!BW^UwdoU)f?X_~6sW)C~=*axy<1zc^%@S_2J|0Z=ps63tYA z2MT%BhaQ&TZBWxi%{$PSkwhw5PR3OkBAeZQf2Ug@8D_(x!r)CFqbYood5p1ZY|m#o zfHA5%J^ShFKYjD%AAP?2(Qp33=AEjlEK;xN*-nrB0n0vOH?aj(XCcd7(c3F_9%J!A zW@?kp67$R#(14OyMumWY3h1(I*Mwn?}~yY z&2xa2dH;;b($<@uENCdoDT&5UR(HIgL6KvW|qpIqj_AwmL;z}t$k?(dCsj#?jt*x15KT2P)<1dlu_g1~kA776Vzam+qM|;?%rBol?l-G@ z58w4=5xOSDpbBJ*X0z$r&AqexcOSf4`a&`TxeR*w^2O!TPw(A%aQDFjWp?P3XtTLl zU0*I%>mfuUONKzzkYS|l#M3@n?_vFh^q#6H$kuCgo4=w8Tj%CS2UT4kA0J;`E_{7( zc=GV#`3o}UZ~pcl6x}Dk`dK}z-+AvZ1nfWl=l>&x{`8#>2;s@<=OKnW559kP_rdw| zM^8Wb&EetkkN*1aX2)j|M3jmN{Q74Vx}UGfAh0`eNEdf zTvZVOV9v}8qwdZAtlh)<&7<`eLxc)CYV9HzYs{=JPw&hp)7hr!d{sC~s2P!z#dw^} zD_?j4Fu=}?V$@tuXFvX%zg2~+^B1f2wE$XU>dC}=pAvw8F@j1ef(X`XQCe$D5HS)C zOP)=Ni-n4c*@7E!RG8XF>piUhaAecyF%CLfd?6tT;?;6_wYoXI^FYa>bwd_WHHdxI zl;h)PFAopSPVSqOhL95=^f|}2pP$~H9-KaXarNY9KSO|NVI#t-j~=p0CIQQ3Hvp(0 zLIxNTqh<@-2H6Y)q9LN)ir1*50Jxt?{r%UTxBguc1VDj+;MO|^K!imEKw^fQRX_pY z?97t>y6#)Qq%EQpcp|j-v>fim{yYIfgSzK;bo30xKl`NA)(hQhI zd7JbY0m`a5rm$?{x``^Xvy31>M5Iw?O7|(qK3e}lNysbN_A#?214JoCB=QJD-`T=7 z>qWb1gkucwi+}k)y)|*Yc)q;oS1){3HmmCphVy5SOyM@y=TCq26GH5}&2(Ce=*`u| z<6r!<2zRTED+=Lsb9uo6&!0ZkfBeT`(|`!))HR)PE;a3r(G%SHeeJsF`)d#DH-d1YJPBJ1Y z`z&$~>o*M5uwGom*cszwXMc!@&f4j88Z%p)AG~`ni*ZHm+;s8siSh17|K{J4;HSS# z)1!kA{_<~FVZFSFLwoPx`vUspHy>^;F7G{jczpkRtE(56FP^^ty$}B8@BgE^nFS~< z6dr%^lk)n>#}D3n=imL$|KajHAd3O|*y78lzXDX|Jhm7C6p+U0LPGpk86xdr{bvbl z=By%u%)+9A+oS{>;rHHuIIYU}KKS5b*@!x4JwP_-3#5aC65qdPCw1v;PN}q{3P2Qw zzT2!D&{JQXzW2d$wK$v~%?}RO?Z(%27rA#@Xwi!RqA(5tB1d9qlcYS9Mww9+M8yDY z>sRJcNNrDt>|ypk2&{z*#7O5d*6AN};dbepcZxh8_m^4wZ`R6EU^4}bdKSb24Qr3$HQp8VpU zCe<%6X936t*UJ^BeD&<3PbfNsvMB1=bZWxk;pyV0z1`MP1praqnz8TOF?(3QF|1W@ zBLwww0-K@Gz893tsT0yswcj1eY0%a z4hg%abw%0sUDLO4bcmdzYEF51wE(2edUO8rnRB*qzS>l*FvK|4uejwsp10n^ z`i+T@5j2QMs6eDV>g}oaVR-)Rg}26#K|@((=)2Omkm92!PiND*a9%}XPJQ1KK+gH{ z>Z%^5g)dNrjOqI!r98xqtfiV1IY(thg1+ryOoc1EuJ4B4dq;rGtg0z#W*(a_gs9u* zInk|Y)Bf7S`pv3FBcQSi*hB;f2;|5ZYh5v!Plb~loc%y;_2^eWseJL*fA#l>?)t?? zXv=rM|HII(e)-@3IfZ_H_P~30eg63R;@lMVY<}p<>1kcwefY3AddE^Js;oqWSI<6v z{NcZx-GBf6zx*p>okUeI=g%HJ|IPo)#vqQm@ub4zcN~XR_9f#U)^C_t1A>mzL;@hH z2w;$qz*<*S-dJPHX@cy_sy@2^{LzQj*mu7FV`jLzd|J$oAAJ8Wo5jUPzx*X|zW?rf z&KD1U@Z+rZpZ@EA+N>9+r+0km4~~vbKKLHkV;kBfu*<3!|EUzVZXuy@$Sc9A@M@O^jqJt26l`4hMw<|P(Q<7}k#n3LFt4PR>bUN+>piUBI9l)A&WQ}DA~O;hL&gv&N5+%| zHtmo9hrhUc|K$18XQ~qW=E=|hA7<{GW`2D9@h|?l?OJE4Sq~rn%Riwp&2l}NOk$4n zqmzT_B&GE04}Tqg`V&h=0EKhuY+X;hbM5l#qyPSoWl@%8VZBSSMdK045V0r%k}<}b zoVU(;`{%WX^_x+9`l=EW&M75OMX=25th@K%{=;|fmxV)Mify3@nZf(Rlf%l})J_SY zn9iP`hl^)x&UxxBT31%CZB{YoP_YZ84*!b2vM041eEqP-yYUqP$@#UUR^%E*eosqK$u6(83h#)7HKw{ zm(OHq*2W+L*lMzA`jE5c^z!Mmvhd0o0nKXNhh&VAoDJ~dw9fu8&nMPeTNI0%Roewy z`noEnckh6RDx2C<};rD+Shdy-e z&096fyhN9Ru;b?eKA@4h#?^NzC~n2qJMY<@2Z0qm%pJ`#zD4LqfpS^~;MF zk8|dflIqr!TW>FXWz7DC5AM(InOai$SKR{quH85sJ%zWU7os8{q%`_4t0(}}ld7Cd zoG(vKj;u8bbn)`#>iS|*xbOeqdqaqIRTPCQrw6Ed{oHtG-+lOCv0Og=v{f>7Royu~ zT3tMcdiu`82a}^SWkF#D#jo5jm#Idkqd99`Em?ea!Br6|km%k^p_st?|MSoz}W{Ar3U0%0Ffa^PHAXX>x-vH2L~l4qvqhCqI7zBaiJ;*1`xOV!lNVO?Mw*1cF(?K`svRC z<@T$a*hTmg|DZqefe`}ZcDhON*2z-=w$^co#>`HRin>2z9=*2%bQix_0@dt=LeIzcHYCqMb5)b(~)ykT}MNQ$0v)I=jYF!TW75= z#95q_-cCrwdKX1l1jbGCaWi+Ebi%EqD*}A>A%2Hp{ie{cU){g+Pkz7jkNw{jMsan( zt?iI7Zx^gapJ>h|$IYU>dv-zwb5WoO0Bmk9+nbA_@2jdhIhd}m&zsdsa!M&myZqqp zoj!5%@>vh60NrYRc6N4j_iVLkEXnfO)8*4ADW@1Z5pb5cZ=Zj>@P?eV<)qFzZ1uJg zL}ZkDKtduT#G@U^Z^2r>=}+qI!}{AMprUW>xKJG3(h-kf|&OYf}n7G(4-@79|zgq-qxHg$yF zpe?Hy!sWAPn{_vYkeI8gvSdO?{c^Kft#iubmp}wWA|(}7+&Z#vQzrbv*Y$I5)VC4b z^7TjSKRMv#kB$T~O8*j>aYhaSb!Y6U3QgOu*6YIitE;84h5ejG5F^Zw;r62!NG!e!bd=C?Rb{a0Ep~WZX&n+`;QNA#LCGbAJn+ z&o{>E*PMiWqhBEez-dQ^Eb^MffldvtXAy>}npy?b)AX@2_u{q*VM$0x_f zN5_YTsHi5QFr<8aadGwHg|YU74}MTqMbq`ordh34LN=$Hx~|{--uJArVdxo6jZ(-0*flDQ2!`-rK9kZF-WNsL zwhbY|cCJZ@h*`EsR)pUX;@goouiOgs^QqJC@^jzMgnZ7)xm~N0ZEFSu5fo7~GdZt> zi)Pcje35hR`W_JbzQ11HG~LjySM_XWoNtyZW?@Z_A3YM)*}-Ak^)bfzd^)5wttMUH zFIOvTP1ASN>GbC6I&{sLW2{!Il!AArNWrJLXocZRJ8unev?;{c3Xy+5Jr)Zu`)vxRZ(fzt0>HIAV461Gin6GNV21Dy$W`P*3Oqh$DOwC3g5R+LcY9^QBa9P zNIAiFDOV7Xh*a~4?$Gs%iwkE>jG-)wVlq)y6*Y*OQfa7|*LCT|IF7MffdF`GW|K0B zI)l!8;e@K35+T-;iMK`)rx-m^QB_^P%9#}~53%jqoHGCnF~^h?Mq^UiE}V~kkw~F$ zH_Pk8qq8K#D-iGg&{jb3>+Ris6Yym5yZg%i!O>bcg`QI$HAxYW2)C^cQB~M%+SPjP zofBc>EE*ezfJlqwdbw$wHP+axWy`3c8*<7-^!Vw^^Q&uT-I&*OU6*3SE-u@qDoaNu z=ETe_oI(_V)pFf*y(NS!3K(OIDX{{Q8Mhd>Y$J%MjPITZlQEFC8Pj&Zcnr)tJga^| za-v^X;Mhm&uRnHdPiIk(?VQCp^CY4Q1j@|JNky!6#yCX?L!VAK9q z%!bH&A7gI1-Vj=2$ z5mB>U`oeLU2fviy`~5lhTf_kVsbKx*#o~P#F}l_NMZ%rh|0w>Ch4)o8FXz+yckg*; zSU3&+v!~A&i<{%K)7jzS5K^;T7DbU&SIZko84&B~Y`JbkC9!(vPwpJG>rLTIOq`j^ zs;ujYFN=N%oYVUHdNQ58^X|LTNfDa1D9d^}-L&0LfA-7%>Y9kgq#6*dF$5&QBVqHI zQKx@B+xy)~N%jQaXCA`u_gA4+!93HXpk7 z=K8u>EUYo}+3e)xNRNW|&X84RM!%dYVjUgMF3pVv|U zu9b}V765|ZE>jZ)ARU*n)(eY06yIp>7Mq2_MWd)KbluBwj?k1ij59QzK988)kzPecK(i(>3Q0)Q}|zkIe? z-%P41#bC)K5fL%QDkv(6%D99^h@gsqfTRKfv^BFv)mKaDV}n#~K|H#+WpD~Wgri#w0*&W85+DE}pi0+wL$mfpr3lsSB6y+;qM7MQEFgmoLbg$#i;j zcE^A!bB>V;pE8d_S7WP_6lEKm5s3sTF$RGs{gakp7LlUB3i9f9;~x+ZzpF{e-d^~($O2Im6$GQIyGck@#gy~Kxj^}UP0SFuU^1dRL8o=Hymn z5m0r$$f6mL6gYEAG4z25LkJsk z0TC1m=jQW+dOn}e>(qD5xgWy$%ZnJJtLu7N7e&#vof2t@%xXZ4b)}!M>ZGdrt_?9w z>dHVrgy^e@E6Nn30F>UR6ueS6V%9CgIBpeh-fPwRu@gW18XUBYIy^v-&3bI#t{dRBX1rj$gXK0B=E zv(@E=FUmXjABy79e3nFCoIfWCLrT@eBvtR-+5LN6vnk6`5u2Od7^>>}@a(L#NgBOvAMG6p_OSlqXsyb+-G3DYAf!=}4~Rs>d0Q4P#Q`jdu!@W$ z&#JOGzYv8!3`d8@-kQ`4sOA{D3w500p#1|FZng9T(5+@a$ zSW}&z1b{9|)ArWV{O~Ym_A5O(J}4{KuLeXV15O6xWKxjP0Eo8ot#>(wJ9kgd?wrMb zm`w`F8B3E6=2tJTP??lPL^+}NsAKzHa2!if9SM*T%wr#B-%s1a`b%?=ao1!d9C*8m z0ssi2ytrAU*g0PSXyJ^K5l+l(i|N7PAqdY(KR=xLvI_k{v*`_)*}=RnOJ9~`C}r+D zT9ieKaXOpTv#B#=tRVzn6gQjx>SBRF&RZ}vqy&mF>w3LWRU{mnL)%u7ZtWRm??|wR z^_vuouhyk>?91RzSyC6PX59{DSxAm5l0?EVDD!Hy9)`hNhX{*xheTc1#gvWe%gY<@ zoU;ZLGIQVe!w^N}(??G)uWkqcRLGbt+B7XQuQ!|DeDtU)N=^xIlbBblO-h-FlofYr z$cS%veFSxX?P2}<*u7nIc}MiYE~8Zdg&3oXIzuV5ii8;ZewdV{vA!GPpixAS(D@>S zm}9cSeMm9J>9j7YDkc#o1r&wFavfrxOsaku5HzNoQ!1Qe#1OOUfZM$WHO9o0RA8Le z13*9?nGgXX#C^2h!}<-Njjv=hcEcf~f+Nmmv%7cB=JRRS_hIP!u6z0NqOK=Lckd1% zbnDIX=B6yFqmz@(rfJ5N7Jzlz9Uq_Gz5jkhGp*|9AOCW_x^`t%Rps%?(Z%ILn5~Z7 z2Gn(Zbmv4<(wv>M(|X#6`0I~8jFWP|LY<2dew zhs|oZUG+Je)cMW$DY(`=V54Bviy<7<^eOVd#58w8ltIi0aD{fIvqtTtyY{ zTv1gyXCM$zP%X*|0T8ypMUb*Ar_*{qn_27hcPupw&{ha@&xGuw^_SF)0HZsc?rO*} zDNz+7>Gp(z#u439)GVm&eR=lNcUeyHqYY*!$ z=0bMEawFq_h$=F2B*W0fFttSi)*T-oyQ1i0?z%9o>$AIO&X}QTXNLzVr2_Tk^K&%j zhd=spJ*iR%IR#rBv+6IpCS~*e58gXEIOt}j@g9jlWU*Q=&dC9EDI4;RT&%9WAciG0Kl1-i=_pb9i4Pt>rjM9L1PRem57+a zmy*mAX zJQ@kXG{hJ~A7e_{S{q~964;2h+byrzSnsbrtbZ@6$JX>%#f^#^DBCd%%px4KHXWiW zKuD2eF3TdOtReKBmCVMNEIbUs5m{q5t4(XIv&Il+?%K9TQAB9FuBxiCEOO4{hB>F? zj2(uMn5{J^ii(MIib-D4j(~uwpfq|U&~4VVzxJ^Hg4CJ-Nyjn1u^mImoUJ8e>~ub@ z>q+5U=A_J7b+g(KqAv}RVc~8F^<<)m!XlZCb<^2g0OqqARnIRjQf8}at#!`T^BDm$ z3y6AaY*nQpSi*WfHweJFswT!4UDsV+E<)3e0%R(3OE{|Vt$^zO+Qa(yCDyyWn9mF` zDDp#ej#8-J`(kl*<-9#RJ0)W#RoQGd z^>kVkWpi@_sCVw(J3KvJFP7zGf&d25I`{I)Q|s;N>2Xz-#OdH*?u+vJ`lfBV&8FF& zC-{nq1RN)z_Q>AD`uAUk0B`3}cktN>qoXn8o%PPv(;9*Y$6tu3pnIzBxn z5zWz{6ontv$Hv|Zkr5Qwwq{0=YqL*7ev78v!+LuWjSd?!Cf1|R1`(;qttL8iS}$)b zL9^b(m{d52VN%ai-wZ}L$JjM~QnN^o!)QYjLoY*%s%7a$I1(8Jjs33tXCGIsS4kwvbq7S>W^9rwbJs1Gqk zzPeh(7@eUw1QQYxwS5qUVHhs17Ijqy7tnO9FoY0eOf1(oD-m_hh7geqb8gy!nb)he zvBnybA!e4gyWTWyiir$?$j*Ok>z5#^U9)=htA7FX@BQfC{~3p81~8z?k~yb1G<#SB z01!gExmjMn6k#+5i3mU#Z>4lqn3-dY)>&9J2p}pcC&_G$?YpjRTW76`5Z$cMWd@_lf{68OI-k}mDlCY|3YQnx!!qtDnl1A|( zpU~&QT{*=VdIaDU$F}Ys*0(o^h)8+VQV>uC)G=v8B4-Oj=IC&Ke0+E~pAI27Zwqgi z%XKxWowf7%jClfxpzE&f0V!v$>xziF5GV6l>U-nd{P=irbxnq(o{O$VzDzLNBPwL=UDqVgS{PDO-aXhP_XvEG%=??lLO zD~_1rpdvZN5#p$-u!r^MrD~w#uqf)SLlOcaIp@m4Rnt0hLR4dnAv4ZG&1O?X+%&Co z_VnZ^=Db<0t+k~$WmO!X9>soAA0Aro06~~Br<1#PCi8>ymoJ)C;1rdUiWEgrI2(sv z2~~38=H7Z%7U5l!aa$OH(k;z5(%0WfWUKIcc@<-C$oOJDGq%joNkdW zsXwD69|6sISX>GbB}ymT(*e0VrLKAIbA4`vLax7)K&wczS)?%J6qB&9c17uY1*l_$W{xRG z1OU;IqaA;aecN9e;9I3*@!GoA_*q1^^LGF_h7g=FLmUQgY&ox;e=#(jq8fzKnaQNI zW)4UxE0Q5YN2e#Hb7=^!a7J_Cop+X14^B?&*-UdfI-CQjLA+e7)~kjPy!Q@~gsm@G zakX423mG%6E~4xz0l=+Fh|0HADg<%c@5+*QF0ZfpyND3uuv%Vnj*?jsV(eEp7rrd5 zb)v#CAdQL_1S+`Q6++gx1M4v*Wlluni14=|l=nvxo(Io zG7RDR^2!lO7S_~sH_MxwzU{~u&J6IHO31eViQh^{IKu}fAsq5E-WXl%n%>V!( z07*naRDD^M6OnK9P1fB}t_oWPS_MJ^#O?S#kSg4)Hk)p!%0fY`^I5d-2L!mfxVo{n zEDA&bq8LKE-Y84g4WE4S*cf9FIA;X}!eNL=^z7;L3v27ylw-;%rJTbM0HA4_uJ62c zhKN~Xj3EY9GK3j{h!9a^*Wce-Skt#~?@M#eImKqPK*ba~G6aA~wy0_vvuDs0I%5p0 z&^V3@G&;a$iUvtVloic*eu3r;Xvol4*=4+4Y*o+{hZu*x+la6)Dr?Bv^0$J@>z$!* z3bMDOL#SJt4*_61B1a%B)=*XWX+0Ujpdtow6yzlYYm9fU>$;Q^=R7tkg*o;e06Jq- zwWud!R%1{>z&J;MT})%oe*2@yIOhuQ2{Fbvn@%QBuQzS#673F>txn*$^{8Wj(yt-D zZg11){_?Y7c#8!69V&gBCO}SUv%V5$4#QaQ3Nt7mNf>muZKo;>Du{}=0iIQJW>nb? z4dCeLrz$Zjf^qJvB=}U7bIuZ#C4@HR#5sy^R9Oli9NcxT0NhpvIVU3gM$wD1H9XuR ze9Tx$UyVH>;@O=$$43WsU4kV!Ntq}l_fQS@SL2x(4hi@Cz1gNmHJl#3L-~NH!nV}-%sbvVpQ+kXNM4$@7z>-40 z3GEt)wqpQs`a&dg=n<3%3-3sT zW0=n72oQ%pv)&*gsJB=a9-SeivamwV8nbgl-Tt@zlDk0l){_wB)Z8dXJ39p=jXiI! z%;7u66}#CP0A+#b_JvR2coEK3!7d0 z^wx?m$AFwQGa}0Pb|5jcQ&9j#0;8gYgsNbiLolE!nZFWPYf7&$W#PPaMbT{5dFUt8iM=+ir~n~_zMNEqT2xhCm&?V9 z43%X8Afn=}TP>H&C6do6B8{*f*LlbMO>WPbx7&_E5YC&IA9dGHrXTzrxiYO@woiX? z{1^XF-+3QKEn<~^@oatd$@=os!Wj_|Bx@^^)z*i{?tknyi<=MsZ)428fB(Ovq02dK zrD#WKV?YrhK-n42E1&{r&dNdnJSJ(*hzb~^2q-MfC<>g^VA65xln@b(v0usY-8IV? zJ5?PsBoI-REu|_72&%d3)?w(3@p0%>LrdAgAFr++wOv1{ytht712clFIoy2uGcX7S zyU;G5{EWe1IUDn4z4c;I6_7EGD1snL3Lsek455k;0f8hDG9-XXG!{VuU=#^KQc@K_ zvd-B*{@)z>CdEO75mA`8XC;CN5DF?O$>?{&IT?(&mEG`hXuEc4?f1%Z{&i%}997jA z2fLMW*cKp=cG{+v^ferKhAaU#7murhqpGNi$-KFI8rtRT$Zei~(wzUgA9@5Wi>e=@mZo%$ z3;`17cKQ6na(Xa7I$f_<>lYu1t>^Fl8{zGY~nd1;+R5q_QknlE_LR8%PP-V^o5Q%IX zhsw$X&LF6wfMHfrK@e73mP)8u5tL~AlkFd!fv7JgEJ>1VQ|X<7+U*|!5Xr0xgutqx zAS%EtB1ebsI9I*>Bm?rW;jmT!&5bfB34s+A05XzF?-6zDU4b}qXG(g@If#e?IPZ3YHu1_ghV-BVV0|op%<9jNz2K)k**mjWdRXd8=1}0AvspL{t+2sX|H-lo3@y zCGp6!sHo7kL5@hu85D?FtVJRqv!Yt13_ea=~py}DRrmPzHD0auo;sD{1|AzB3$J~=t5ruEaO&tgBwkPi>$)pYvg z)5pwQdRLaEiWHNHv9_F)D!RD3DXZ$}_~>9dF@{pgRavmoZ$5dl-ZZi6EJ^WOW<&V#;5fO>Z zC|{xDnl^~+)cm*c`ZkcOjy$@8Zq=jTYM3UFoWtfq(x615s(`9$(TlPngq)F(ikX5@ z;qg60LY3|NsS4Y3&6uNugZf}PY}TZrSduH2i;Zfms$x_X*|IS6QVIv0A*-+mA+m6YLS#5aAS}G;dhYrlqKb-u z0K%$9EujFRj&9ees97116OB|Vh_x755J6eC1Lh-%IqCusfC_;o79f(8fQ+Rvh;R2g z?N{+CgE8Lu3Fm<`kNZ#vXq^-0tO;bS2DWGVZEP{t8RI`+z6HOeANVD|13SZV(AZva zXvo+MLSV8ai&kMw_YpPP$*J*E5e5}d7`uHULP&(Pqt$36q;ibI5D;N9KN$LfQ&f?| zd3|(tmQ(7w{%~5)z1_6^BBc}~sT|Gf61AF4&dyF&i)%t)(K}}+CwK35o6Qh{idayN zU<_GG4~P-<(|l@WJELsfC`3yNXc4~q3?`A&O$o+;}DQ4jeBzlS;stJoby5ikI=_N zR>{!Vx%p~fZGGXOu+FP$->tiLZMGBdL}~;9RS{_0KLt_P7H2v47=N!YkxJgK%I;vT zB1pKyINr*K-p&lb&UHc*P+9wxK}{eck;o(!f+EPEphkc+Gq}E6r^LdU$SAOG3nUyf zYZckjfue2Oy5vDQO77Y=WhP@FrghsF%cVuMMUhmI3|Mci4KcMLPRfFcs&AUS+GGF# zG~TyE6j?cAaH~S%c+4IFhnOl~RMUCacAKW_LKJ3WjNIO*oj{qs8aJ(gM2g*_ee~ZnuKJ)dx>l=(tSL|yNm*F6 z?U7Y8^Ry}oXFz!vdKw{~LXJX&%%T7+0Lr~G8E!8=n%@0ER>YLY_Mrhp!pv%o2W>ENcp6afu zTw{697c;@>KmC?8B=yZ(y}iwS){Iw{Oqc~gxW5)5hydE1 z75iWPBokt9eR{9cS66I>v|*Yy-Gq|1rVfN^qyuKqLJTzm+uXNUuhg7x>m2SE3zt&= z?N2}Dlyc&TkYQ+Qtu{pZ`RAXX9={AZBawLoz%tLO_T|f$^}m!c4@1IE+Ki9zg&WetEg7>htqU`|tmH7{~Bf=6TynY3lAGQk(94m0O#)Q-UDOt=6?{ zGZCdUx|?cE!-2s-OAL1uuBu4LoFGEAEY~k))d9dNp|0x{!4ZL3%C^*PCZ?D_JbwN; zF|3;sG7@{I&IAB}c>rQ{_W*(jQ((@LBD6G}hE%GpZp+q?Xn(i?DIuxOpZ+zcq~nj^ zfDlON0izIrEAT+LnKPj7q=r5cK_|Y$ZJ+4-{T=2$ro5CwX4sGQ|G)S5UlF!$|KRce z-Td~FK%CEa->=s%u7LWvV-2dspa1O+h_t6>(An*{+kFPR2ZZFTjOfS5>CSM&DTSt64AEm7+h zZDH=U)rfGHK=7um6jKx7WuCWf%XzTYL`2QDZ6l;8rL{IQcQp%(Y};n7G10oN+c*xx zXr^YqmEzi%xt0Gz6z+oaMH|La)kcEKIw7Vn%eyznAe|?~CrwVQt>+7-Z+n)a6B6f^9B05hx z0@{iMhNhqipvB4}J$F&S!%H9rAclfFx?(gU?2Dvb9doM`0N@cRr5}Ft{qZ;fMANpd z>pJtx%WNKpX_6tk0fwiXG7Utut=lwBdC2CD0IliacpRtk%lnUrcz1t)y1Rq$WnPHg z-2%Zp#%XwX`-Tz8+H^dP$J4y5KmGK}ynKEg6L<0AZW%%V;BAfiGDtF2t1BfTYf&sf zwbZq49v%Q@wzZic0wGIcKr=JgZG;O$pIXYqdEW)n!AJ}(az+F5L1O4Z{urc`kL1YH_{k{`>x{$k{)%r zH)`P#?q)k67Mtm8VSY1?K?3jC*{!IXd00TFB4VfS+0IbR9U@0^H*DKT9wbGJco?BEjFd~%6s)>Ay5ym6&cTCGv3r!ku6ykcWr!5uNE8q` zr|*9A{WNB6^?G?B7(~)_sovU~HxJYK^yTB{@$@E*qeqOx_F?<*@aE0&e46KL>>< zmm$e;xVt<)1HcbIeE0C?&E@%N97h(hZJn3(^XDgFzB`|fhmpa?=`f7bcpZNI^`pBJ zGeQvZEfTe3G>C|dIAviZM~NivE_tv}t1YxHRau0Y1+mr2eJpkeKr=-IHxCUa20}&z zcgBFW%-3f%KaR(xw%+^*lSim|zd4%&6DDRbQ6S_<%-Tw{At+dsDLjISdI?ewGwbnb z8ll^DdH-Ln=H>DX4?pnTTV|+VK0a#k;eg-&kx1N}5CRA&!d)X6p?O3^?^p>!JyQSd zh(Z+s#7*O-vi|m1-_%3_u|orK(;I>B54O)E0p{Tm!JvU^zA3b?uoL#n!^3;QP~U$R zAnld_9hbcQ0{#7jjxc*CX7tu<{~ZAdcEwXSK5z#>r#?_dw34jycv!(2ItCWkgk#f& zgxIWwGG|41i0t7_-Cb4PeP74)1f&QABqDQzKw>5UH7li*Z6hKQK|&VJIVHwvknex^ zE*($v<>k572tS=p-~aZ<&mZ4|`(exv4|m7=yZ3+jIo!u2S@7ZEAw)zNOZoix^yTqc za-L4d^W8bz$~^Dm-YZ0NQ#SN~gx4rCchzlaVG%$?wJ9N)tEnOehKHFOA`u3vby0~6DjsG03oB1CC64I)S{&kJWc95PFGjKv`Z zoX4EV)@Dg4BFsSu9RdS|(IeJkW&W6K*w%WU=93))lQVw&@^ZYxJDrtBa{?kH0!9}0 zrsNLRI#?baNDw=#1U&l63S}>Z`}4uq`yVfdmM z5U@uYd*}2q?(7BZg*?3f!7fJmW^2=*w(si)+<(6t^#ONRbs&JSZWFU}3(z#ml2TTH zO&b{&*hND%$`C`Xg)J;#BIhoEj~ltg-4TMB`<_1{N~zD!&vbJ!jtFM-u2&=CzEJY6ex&_AjG!C8 z9}%$g;mji(iOtL%)AUBvYqjR#=9x%%k6`bL0%Rh_gjh_Yw#`(g!*ssGdJXk$u7-dN zz0-*ZCJy(`Q5X;{BB$hp=X9PJ%a;!@9glC`LCUsm?c+~dNId)wIrWgLo{6n){V5oB z&YWO`h2yO|2mo=%+xqX7LUXI$@z(^8c-_<9M!HT=fgn_bRikNGpSt!T2O)fK(Ysb~ z|6%z0J#J3TU%|S++6LbU{qc2lb-1mbz#+oCciRZS4B~}_kn`eO^jicYK`OB!qHe2& z4mfR52_Q!Z__D2+d97RNL$AC0{y!gX-Z{YlpxUn283BfI7!SvkWwrgim0_IDXM#W? zGiN5@ltk8TTb7lHUDA{fDd+2D4hT1+lqHRIox==Sf=Ja7Fg)B0+_e-Yg1~Jn5CK4D zj;Oc2EJg$&_ltPGUf%~y$Gh=xh6sc}LqH@#aEKmC3J8I|rz-&>s_(A~1RzRp#{i-k zM3B*0&J(p6>X$6s%!sg5wQ#fj`kbZ|0OOQv_S*DPmV@Mj+#L_D%XWFWI?!-%LiE=S zz&@)u5CcRHZ%8a;`uOq;*UNZ1-X9OoWqtbmQ3I#*56sCe0wcnixtU?-@&E(|22fXr z0RRLMLWH>6ZNOF0i?Ugjm-+~Yd0 z!+1cqZEIbkyKFTeE|=?vkDn7`m^X*|>C5Hi+AG)N(~CQJYk&wut<`zi0AQZyPai*z zIrsUfyjGr!@vR$-2{_`}9%Q~C)y@9!V01^`c??kx>5e~pWatgPA zKxFc;zJZsXYz4cX*>~;dje5L;g#E+;#y8LiApkhSHDGD3wxi3p;j&$VH;_5Fm%Ge%G(GdD*z)C zZ&=9)!@(P;$->LFdN?5g01+T^N(m9XJK=c{QEU42^isAWA|!-F*Xvwr1;kGuKb5s4 zVN*xKQnzJZI@#LXg$V(f*&>!@skK4)hxZ>Ymze=tt!ma(o3?PjUas4=jlV z4|K>(%pH4xoKi$=W+@$su9SJ(HZ#}OP!gd4pn2?;Yyq8U*&EotadIMHioSXDaN%H< zeRmb$9$)j}@zo#aYpTO5JOTjj4Z|6?@J#^#1v~s4J1}zdgpP0axv%ETK>@d$;hWjh z1F$pX-2-2L)IPS~P!|B;-n+*RQg<<2@*;r2vc|>{98tjr95jlm-4DaoE?IJm=3rw; zw3Y-H^VMtzB6~*<5#g#807a52fVFT4470X15VvhXB!tjb=VeBB4CE}mk?f0) zbzO2wjI^kkTWu8qg{9PHc9G8ZLQ*qrDlGjDQ?1?3q33(p%`UaW{OdaRfAcNR00G^H zR_?9Uh!W6TbA>ZNL#zRY9+Di$!6MuMkQkA7?tWMVA~N>d`*tHc*Y@-)%ZlJZNhO;(AQ2iNUg!E%BpyKsn`%ZO1Olv08L`!Mqa%_)xJg!b z%p+=(8(*OB>B1cQ#t}(-j~>>q_Zx)|1CS7vsR#D$ z6ETX?rvsg z_HchUO*svNx7JJnkV@izCLOHOn)gnRznneH%S=^%sOfm$t3lT(f&te4To&#C8 zFh!DHaQeqY!ux=L(6=s5#HRZb(LhA$thF6ugRg~oKWjHU;&!+Yz(dz{z5q!CFKZb> z;6QyOY+ju;00INdZ+2As)VO!hH^lkdt;;tD>$Z*YTVt|M-53x+xT7z-msmI;hhtsS zIJNMl%^A{$x_KFJT4E-mN$6?*!oyg-23U?%w^cy55QSj;$_(l>+m5n_M;``QBp^aprgcx8VI^Dn7E*Gkbi0AVFt#`TJGl7Rpgpim3ASYIf zb0lxoDp2S-Pmv#%`8wrfb8|Q9J!tQd0y_VRm?I4LEMfQP`*e2*5$+@7t@dG;V8M=) z?8746+(-z(60Q+TpZUzJ*MB4m_iCGi2He6R`d1_T%{%jZc>n+)07*naRC)cj&)F9P zuS-Puiskj)9{4NuV{iKVKD7@X4j=@+ESV5FFKwZSQPQ)`2?i#t;pcRiug{7xi7c@t zpr{)~10f}(3?f8GhTX&ssq?WAI#B@$a!O1@%od=n5pyf`^qb#i(_jAbOaE-%zI{7P z)4XoOFiz9>`1stk0R|(SPRHRe)g|YYOKn;UF~58Jz&W+n5aRy+{&+lm`t;?~=jUmf ze)oqz7(`uW5gCss4@@bC&pir35%vHJ?BTibjXgaAH2Ey8zs$m)%g{L{bt z?)yLd`{)1hFMs;i=jQ(MLWu+ckN^g=Zr{@O%IE=%O1MI-NB~G~Rs#cw zm?6MI4cbm6-GLSFhj(XqzDi8vb@cq&umAPF9A4X@2=6-ZuiO0HLU8x$&DP9xJe~?@ z0~;t;Y6GP)rWNM_M+sY~9rDT003n08uS3EGutnruxD)vQzNz|F$Xz3naBEE%r)d& zxF8JEn8%6pm~tXQ5*ZFttD7?oclQRc%yX%wY3Z*V;+{u_fbP-p?ENJ-ZLNki0Pht# zqTtRYfUk_(Mv5%b%=f&$USHf^U346KlV3anjMyAQWmW?K-CYIPO2E<{4z#TH@NO8# z>G8v_0P*nl;dnUMl)=Fj)~!L_-$EfW3qrRDw?K4f@&GkgCnO2NkmKDCzuDxmeE!f% zNx0{8n;9`txIrLv*;q&01F3@=o$Ll0A!hBH&EAa$viArCfZ(f|5dz?hSPf7O&{y(+ zfXqO#YIBR?-XfxNsU0bh03pm@+n0Df->+@R9-(<#Zbl$=?`_AgC4U!p&1N$N67_w#xQn@QAJ6vd z3nQX~Jg!EF({wx@2Dc`{fIv)~ayp#4-NE5_9LJ%*uuMe6oO482Eu9yGB9gPNYxPKo z)8UwMZcW$qX}P>0VlCzI!7$8CH2{ci-^su3j)4FXFaxd_<{{aQRQK665W&qXN~2BzJPfVr^R^ODHxqN~KO}DOUl74WP*n*r zBN_s@VIF<08esrVV;(4lmSra9VE*OPBD5~omL*ZRuo9An3u8DCVR;2KfHf=v4S*Td z%(Y$T;$1SJ6n2kSc$G&Pj&HXD+X zs>N>i;TWN{W6)^sgn)rezyY@IJaOh7PK=0UEe>=%oLn*<9}w9k1?&w??PjjsAd8I23K*X;8oWZ>ri2XSpiNmUj3N>M#XErisT4+sm}*FqnC*7 z60{MM5F!9Y?@+xH(sqoGzNN(wA~9d*Ij)|Eg}O&DVXf8FY+cuN&BGwwQixz#R;`Vh z)^+>!*Y`utL>%GfzOHNcJ$rn7yk1jc?vO-jwU#PKwYf&9xvROmnb%f5@Rda#5wyGW zd{v9y277ehMlFwvHM_AN9MliA}M+^`3NbJ4;j=qjb?2^sVj1V;{!4~4*)x9p{IK8P54cU z5FUG7|4IefH=cvZh}jcRIGI5Hl$SZBZ9%Y(Hw2r^6y%m66b9dN8B z2F5ND?cNkSsuj0cc_&%LO=krWK}_Q~9;VUvH{Q!)WZr6FWeV``lLKxro{I8bW zeP%KP^WH7*Bg@Ts4I?^i+<|g1$L9+R=S&C1wY3UCKmd${lqI!R%_4w(7>8}O2yjc8 zX*vyu5&X0~z4ZETfF)p%1hIfNaWgd{?BtbJ+@x7`jQ|H#8#uihRuFSjLtyK`97(c< zTLBabM@d9vro`k;_vEKQ>Z2bKLiA;%2Us_$iGUsd_f9TG1oUuW*-89?9k5oj-YTeh z&a#zy7;;lJKw@-rhhRc8Z^cX1aY(|XYKTa>SzAfBGz=}DEe(KTJH<4je>Pv6rGT$= z*l)?)J1mF@j&!C1#WIr`UZSa6ZrIpGhB49$JdHf2z}4nF-6K+M7=acw4Pynpxh z^8E7o*N+cxr{Dhmx2?8qSs8(uj&~0qKYm>1`OW7CDj>qYE zI3CY;S~kftFI)S!UzV+gM^LZOH+P<|>MvxBNwzV~TLpLaTMH5p{qBzlZAQGqq(oE- zzW*o|14;|3NIH$*XZ^9Ht>j5{7Zy@QTE$L84oPF!%n3 zRLL}mJN!z(mq!hxMji_0wh}~lgAA8EggdZ=Hzalsa$`hi$G-3c>ZQf@q^ce!7$AZ> zSO$#fvGa#5Vk8pxjtxZsBub@IJv!dp^*!OLkVRCr?^T(wwiXddSk1a;mb+`SQd`Q> z!8t+@5n>E$g31c)EjDQB1TqDa^}GHnRSv&_BI4F-bkf>4mM;O^lmnQPN;tsTk`GZq zPc#`6LVU<~_3~6e2Zx2OjEn}YtW2;GHuC^LK@4>N+O6)d7U0c55MNnVNF>ZD<IRncu#9m!|3R{EWm}wx?18;4mHTPv;27@4vTNkq8h!{QB!S zjQ{w@KXT4$8t!**-yVnImtWrh%fI}OhljWS@Q?oh2(4@d{O--0_-%*8%gx{TUJ6 zKp-)D@r$?W(~;M?)mGOkQ{ybEuBxuhS{jCgB(-i{iid(5_YKZ>17 zh=7cYnazRov|q?66d;h27?ripIqreX)>-wPGwcR^!lFQPH)kOOWFl~vew3Ifz$1(i zi9pTzk?pyfNu+zFQFyIQn3@_PnkqA!I|i&h_3Uk#U2l%}9tLv^O7J)_VI9_%|K}2ncB5ol)s(0C9gl9mjlmdhT8A={Oyx zftg#*Wm`FvnR>WrEz99>s&4CYWg-U%clR)@EV!*}8b*w0?#L8w-6u*_w`C2$mw9QW zsTo0+?uCUD@=Xa8U-gWEHFSn6^L3bB&V^S& zDf9_F09u2!2m;CmiJ~(|)vSh>T3OPvZm%s6h5=@DBLqWkocF~@zyE3X_6-Q`Sa6TI z226=-L;$8N)dCTQY24Ozm=0xK5iFZhB47$Le0@<6yNZVqsIxx$mX(MC1VhcGY9pX< zbAYuJW;XMtN=XPqJ#GxpzF4+EEVVI_cY`Jab8k)8QpYiiU~9%VgD(e2%qgX2Eipx~ z1qg)(DD)Sp8+02&PXg~9wnwL5?~O`C0PPD{OI8sA0c&bYweM7BZiXhJXfyYKPAhW*q@7XS&1Y|J4L1*m-LW9TT$sn48R9e@zWb+t z9LDkeFYf_BM9y!&8xKdQ=TCt;6r3FK@gT_I)xhp5Y4VkGaYr|RykwwPi z@qB;&{P}5OreOpU4@cnhn+H?Vb*btRF=QHsp)5;~g!*1Mbh|&FUas4CI$bYU5xGAf z8REM?{M}Fg?VkY|Q$iLVv$tmE9jNZxYrK&z+{1~0In27Zya&j7op`%y~5rD{aX z2#LuZ+zrd#A4Ej+AiQ~cMdZZGRuc1&lQ3#iLduCeP_+%y5P%-)?${~lW(|fbPHKd% zuL*HG$MiPA_u(M?)t(A9fCUq@gmFBapRHZ%Hdt;9SG%6^ylv}7>pi~1vMj!hc(Q~W z**#91YD6Vq2VuY@lu$6x2@;KSTwZ(nSHtjEII^QO%(S)obiJzk%eG|qrLWInihP7%fwQnvi*KNbiTpe&Lt*vVA>i#@$=KbupW~S=vS^%)r_W1mA97hK% z>%6VoR@K}Hv6GRy3-DKH{YI788A0TRVF3nF!!xO*b)Y570emPmU+Un2>Wml+efq)p4Vloi9>Gy+f?kRS$e;y%zij6?qY?|*Bm^Ow&* ze|*f$Z%^s%yYGJe<<}PC5#6c=wEf-hfBW-KKPfVCBBr)n-n{!h4UkvhOyb2b19 z0%Q(iXd2MbGU$G1eS-9G0;mRoD5a`#SXjSr&Ah2GQL`SLgoNN4=1xQaVH)u&YVj~* z1WYVhxYSAjhbbF`siq`^)Kr;5sBaSxfG;-IK=9U2jP-@fzGVS`-O$u;#e{a&HDvW; zw&QVf8W(@GVgmHo9*HPpezGrvo|=Q3|G4*NZC@#JErkp_dWW|R z-7rJC$1{-bzO&XLM#1h7pA*0ws}UY`Ebhea!6jQH8XRUoRi%UfS_9I z=`dY9#*CSPbzv{-^OwUY3EWBu8f@#nE+PRY^xfLMC&42zGGkMesP3q5C<@g3dnu>zpS)1aGIRi^zxbtI*;M*%>aBM<@v$#EPs%uExb zh?qr$i)1E1z}kG>40%ZTK*9)!9z?{#?#8_9m%=xs!8{<8SP;qGhn&{y2hwmzOS2by zKExozS6mNtPMluamysrF_EesDI#I~go&+F!t8F7NlOv@uk>`|%lA7_20sPHqxc>^T zz!?A#?WBrfn#Rmy&JHmSgA;yy|7E#e59h;_lOTczGD#lFwp?CjZ8jZ8CdfGr<8*ns z5aDz>KR-Ti+j@UIB&O5(UUIIrjLWiIu3NKl7{)OlrYR3uYvYvWW%=~+OKI&Dbo@pH zheY&sUyBj+YK;-ZNQB)%CLvHDR3YFwZ(x8PC;<6b+)OdB6>HU5%QBOo*q9LVj$!<-@F^eR17YfNq7`N8O zl(#KHX_SCaXcZ9!jRCcU2tn)N3c+DK49wiN$3YHVm3QD7X$|4EZZF&@UCKxrfB5@95P@nb%X)YBur*!g@^qQG zugZ6OkX@CyySIEzZZfynm32%80SsOE)7e5zW8+<1(yK@iMN(i;bT@2%Z|z+KA&*cT z(=&@~s#?@qBc!OCj0bB4w!$7xTxFPAYpOJiz+4>~iQK)p7q-Vg{oVac%wB0sQAc!2G}cr>nO1bTRPw__)-jM5N(~CBl$KbtI&4Hzx=*=c)#)=a=Po zS$-U~u45VgiRB4g!CXXydJfo5L}kd)Yl5mVqpAY|N2i^4I{&` zB6_Ogev99N2O=y0(b2(g5;*5>T+k|*g|(E%F=rwIgyS?G#{or}NNCH1Ij3!FV4A=% zU|UxqENiUW>e>RZELY8`)-vV+3dJ;$u&Ju5x`lgPHf{ENomI`;Zd${y`D56nU>E>| zH@#wbpoh4rhoS6$z#+&XD4NI8;E*sOGJ^FfaZiggLn26G<+@1{^kmLXXFPa3J@s2! zlH@exyYu?;9JMHLYwD6wn?$G71rRRF_Lo2Z{Nq_i`;w9-PG44SLG!#F1{sp5YnJ@@ z0#8d2rhoaF|MTDLvf15f7ohbqH5AqJDY08kAa?C1>ev26*Q-br}6? zC{n+iI)U>rjf2SPFbzWE=~$}1fB!)U|J@({{_Z$EJwBeM5zOE)K3%uxmzkIobIuth zw{1a$98d03b zw}8uG9E!Hmlo^i?_m~sL(Y7^;0fwZ!t+S}QJ5cggRh^-_%$VAzr}~HA40p#oFBOQY z855etaZJRd?Te)G&!6w#-d!FJ?ZcPr)+}dgI_gh7~r zkO^~2wVDVJpgA;EPP8uGEJ;cc8rqQawP=g(7YPU!xCbO8?mRLw;AYJnm<+sFTkem? zkkbWcG?@6lOhwE57Qe4pHs5|ozr|8ESf}GT@#)z<9O!VQ4ABDYY1VlIcgPYC=YvO5 z4RfzeQB9b4%?|D<(2fYe2oa1NsA@ojOlv9EbxkRkR`EF5R+qI9(Xy;BTO|=SODUry z-B*<+!z7100Z+q_l3=(xGEpTC9wZIJkO0Yp5u;T@L?AJZLz0y8cDcGXGymJ}XeXFP zcPZ&{y+Cx3(|5yuhA+r#9S587Ql|nY$^d6@bGu{_w-^ z!}U6U`1$koAAZ0e{Qvr#4vW8)!gZlCgbvX{43MQ?pX3lja^0W>MntPzYBM4SI^@E>ou+|@ z)5Ysz^Ba5!gwOMryL6XWp6$z7?nPlKU+Ms7kQaRn^rMTmg<{(jFB`5E0Pr|+U{a^R zzWjHQ!Mg|O&F3uwx+5!gE3DTWKcdw3`SGPxBcbcMfy~b@7w~9iKmGLQPtz!f!b~Zx z>+<~koKl*v*U#f1fTmACWNPy~FYDS``}yZzo~KC?Gl^=e+UDy55zFQB7t_Pxz|3`B ztLj#2ZQ8Gr&P45vwci96h{(NkAmbzQ2!Y%x$||E~Tmc`0n`W zX;~K1@I)lc9$u@mQ0|;%tF=9UZt+Wshm#@SI6Als? zKm6f8eE;svkke29=9l^7=a=n=`#|_VfA#-W5>xk*LO>Bh4Q9Gk2qdKGz=&ub0KOI5 z75E5&;T8^|;RvvmiU@D-C(~}b2DO11LUicGn@1vuptT)+7kU5yF)7G%V!8@Y+C zx(Bp^7{rqU&GD2fn3hlcgy91W7k_rJjFWGV7n|?tJESOW9r19Uj+f8BO#Np6t3U*QwY2K!Pyhrm&+D?xOD&a|072cYG-B4;KK=4bN;##y z(Q4XSsna;lm+SM(OP17$5FSxm=_Z)Z&(F)euym9NN-d_AMQW{EYsytN|HDa7R7tdKAUm{mq@s^K9_7VbT3-NUpAakv*VLiULNhp9L1wQWnz zw4xc!Y}Q)4Kj+*g)6TTZWeZU>mW(VH2!s&uclikj36Ky_$mJ@#vTE-N>2&Vi{}15GOZ>++uX()s7$ zshXkz5r_gSSOk3aBFuRj4&7e3zk|7Ux# zDS>&WoEsvlNmE0GD&idPd;oy7dyoNHUvUZyd7Sd^7Y7spk`ZHgNSQ-%}WhosDhVtEKsj)H|sjJ`J4Vb zL^`IIoxkd=Tgf?*t-3ud|`mzMvw)L zYCREZD(G4*%xZ?JE$4{Va#mF`bL3RmK#&6<8OZ00_gD~dh<=RjcwW83>s_Y?M7ZS4 zfXq;9YfYH885$vlDesf+A9nKH4PkqO-v&Y-BN7o26QxwcaQMT^G!EUc{$Z?YYk?7SPE`BDaWLS(PdXJeeAOM z73-;-Z`~fuW?On1BlWNCk&FflT{u|RD(Ex_Ni=Ml_t7>Ex$MJHRr{gJx@bKXsId?w3 z#?W=cke2!7`8BWgaMfSm-Ds^o1a@3X6Oqp!s~X(i-R!zB>_+E<0cw-SFP|SDUk=xY z_wVk#^URc%rR!p8`m104c3Rf2Z5?|X=$V2k5q~uenA+AoP^Rs{TerlxnUz|Y9io=f zLI{Rfr8Y4nY-Q_~>!hOd>jI-M`G=eCNAg{Jbw> z#BbHPVHmdTyZ7`L|LK4E`1z+UxZQp%Dfg6WIz~(1-0r_To~tMnbQ_p#V+U3d1kANL zro-52sh7C`+U>3frm@4zny0yXj}^obDOwXKwW)!qI%W|Skz&49-36>-8*j;oqxXcM z+8jQSHADx-hOn-4g2AAeA%eV7n(*n+8@ZvhI^p8U1&t@Y5V^Z}S23?JU-{i& zA_jOEhjBO5Qn(`*x|-%L1|-_jHGtS!m0C4+TM~qkzV3+#3E0T+pWPW7C1<13Zc$ri zCS=_zp@P!kSh2hPSk2z*N?wdX@nrg=$s*E zZRi4$Ck2wqCPk!{OhnrR@^vBCD-kr+q4y=FrWyimz~W0vV;4ej!82?>8e4KfRxn6q z{LSymFMs~-?xq(oA46%a3!#Y+BNKo4=KF{HcTyW8Nv)UZM=vk1*0i)z@~f04=FAj8 z5z%{MG{@T<084GtT5@iNT4O-MQWX%!-Z>^_WWu^lTNHZdOKZV9K&X`hS|kP}LaVC4 z)DJsqO;mvN(7lQ#Ge%-l6kP~MvxJCXLP(6Owo?c<&D_K%3a-ES#Zsnx6YoQCAJdP4 zV`p(r&z1ESLWZ0$-;CFIo?9#X&aXwU2E8Q%XpH3Iz6h#HYn7RqQPo7+HdsJHQcy5L zR7BlUxc`LR1~U`yx^d{Q4*PMpll>UG*whrwdAA>jz`Tu-TdRkMhs(6SzMjURKkUYu zvotlS(XkAJb52B2Tgyq+9229iIf;sbHmM~o-ubO{T56k?bz|^t3NqdTVE5~$s<~7EIjxV+(@zh(pAB)(<_1413nF;$(TvE47!*;>oOfmB z%kOIN5fp^k`kjCQ_FJm5DLB$lQg)q-V@X9+(0Ro$RXN1935=aLwW~dE8Pcs{oU4q3 z2cnI?j<{Jn6>Ki~_$k|Oe;@zVUwqd}+oDYCygKi)WJEI65ITVdDsx&Nzq}4`3el}8 z6F{lr9lP!G@{(Usa%t&4P?a;l90)bKo~{TLk6yfg+9Q>=zxqm8+!NNJ*Ll^rtC z04nI?mdQ3VGz<(WR{-j|frn1tKnAF)hF4^$#zcsOWLejj;n1_+o#e98dfg6(Vf-tHUBA@FRoD0KI~IA>+WSMz@QTmiV1WL(o^SWQiZwcft`E*N1;->7-WW})%r3-G zOEZIQb;raCYN|}Aii+@0guso0;+UlgGdu51nj_>86bS%JE0BU#E|k`JBo!#zXH9zj*iOj)@6*`!*bJ z&LKjSCeyNr3kX(gGT6*GM(kRtNTfAO-+`Hz0xo=IN+bDkcXJ2xZ%wNhcY*uJYiiS4 z94?IyWCy7ye?hrKsT%=l5+^wO7h5J>Ihwb zJs*$N+I}DHlI9gu!Cj6OwIzV}AKvrr`}2SJ_v|PW5R+@{95#`rHmBmr)mew#IFr}u z!U%Ui|D*HkQ#-#_RUnL>yWQTlqK-Jzb8^uK=(t z%cqZD_E!g~#d+V2`|0^~e0g!q=gZt*Rfn)#Cg(V?&X>8A+zgf~uIFjKfU56@ob&7P zyvf8qe}Q2bykFD2EbEd>d-HkPKY5UV2~9T)DiP7vCt#wX4=HJB%{$jb%!CLPOr$vq zYdQb^)4yx0k;Aku`CP}oymXH@hg(&V(n9ds3=x6Jv8z(ME{<1Mlur;$3UbTjgNYz0 zm8<|nypnh8MTQ;J3@WbQBk^wRjPC2@DYeWtQ#VSxNOU1Vvot^)Pn+2EWvJf8|qY1|dd6a87I83b57i zz6+6S=^WU*}HJ>KG=F( zW!ZJR*zX?gi2!yS88Um%ee(V0YVXxjdP&(>GPMDm)EzEC1OgsmJ+>xd3-t^Pkq;aWr6>= zuF0e!z_0%O-*;Wl+oA-l)>caK-sO}Y*AnBrkx5Fetu@+i{9p6`Z%t2n^4&N=UW6;ad}LXtLI zU!OnD8#rn!1d4OWM9i?Rt(Ghy_G4WZ5F;YzgQ}hq-CX~2oiB&M&U3D{ZQZ?G!80-9 zZioOyv^j`x9X29B0&=EOYkqC<|Ngi0|MXXBH{#1_1psdS@v?$qKORz*bvoY<*Me;~ z0I|Kl+dsZupvS9Wa74t;nd&@EH?f;*H4_{6)T&fbRo}7W=DcsKv{IvYL(L0-nVmlU zRLV-Qwf_Moxf61aHt9hD4-^4Mr3)JK7IGFn~Q6< zOt@UT0aiQW1&MFk^{khLF5mf|d(qeFk%sPO_~w{j3zr)jNeyICZRQW1_GsHyoXvnS zRB5%=loPSDvH`aY*==o6w{>}th~Cio+sTM3u>ErJmXl?6tftHkM4E{A&dh3SUt^>I z0HrkoAYyH;EX$@NgKa@p3L>b1)r?w*9HAq}{{#bivp%UhW^!)3ZAh*EQ6cwjJ+v)i z)PT@7iWf1HBLx>gDyRW^4y{QO3C^V^m;Bt;Eoq1p!3SW*s_DEw9lBf5%0!O%?X3)7 z+c)H@5t~^ppejT_B&~roZH+p*>2)rhr&Wfb)P|?!BjfdHnVN)dxSPdNqVO zrBYc$j&mA1|H}{Mr!O|Ig^earRaw<&$EKB?8 z`HXcgm zoR^uM!#7y5fOBfbCb=~3dt|2@p~d@@vjG}Wsm2iV=$CNO-jClpaEqRM>ao!I_`BDd@Ax{cFR$f!9Cn?=mM7Ng0-v*H%|sQ6qVF6= zRa1l7#IbWB1|M=x+pS|`L))9y$p|;6B@&~m(HlktM0Gz7<2b|^OwEW&t>^P)D}9=X zcTNrZE)pXy$wU!x9Ct2;=&4=4wB^MR(F3TJ*4S}CQrh=7-*5J_v@EZ$r`Yv<^h1oh z!@fx|GZB3J_~krJOvpsuG2%aaKi-^Qo1FYBmkWuuz!?$|DF{|cua{3{Zn~*X-e3nN zR$h-^cHyey9iR|85itcL1VpWs5e;d)zS4DS1SYN;v?h*`fnD^Xc3j0Ec>ppc#>gdh zGP>z%7jN$Vi!Zyo8bH8bzrX?}X0(xH#%wII-(vWUH$)?8c4GVDAFfQW%=t*xkO zDQ1wG6f^b?5JDUs$Iy-a&`Xmfw&v1GQ4v9?YWkIxs|wD?EK1IqSq#Bc3jl(V^PTr% zpjuj6i6N);_4qu^m)Fzl<#I~rA6bt3{nfh2Vx@?T)whPvdGavqZ2z=8rIHSK1Iv7z zFXn?6USt)hyEbquEl+{znB*y)PxW|gugCgyDVN+@sZB&mEkKNbBGN>@j&`f)CJ2D7 zwXl(R2;WY9eCvDL&<|bk-iKkoH_>hw<1nbG^FD^agu%O;yX*e87b+&rOm|m@`)@xC zJyScA%q%O*%CNGn9#(1>hxPv9`s(HoVvNI}V9ea__7vk~J$<_T;mhSmwGw-8p#PCv zST}d2C?JyB27%Z*bedBtDNB>mWKCzGk@V?ITu)nG$ORb>N3|bQI1_hXFIym*Jrn^#V2qA{J=8CWcoyKl# z%~f2F?G!CKiAOmqz|h7yEvI(cg%PvW<+YA<<%Uw~8tP8Ra-M+-ffm(MZdr{SftYum zaYKm1n%35ub3qlBb!Nwa)I=+!W>r-fdGl6p8C`wz>b|8Dn4R-X&Z|KcMRqQB&aEbj zMEk3KYt=|E^>oT-@P(P2*bD${0ma%|vu#A#5v9RZ(gVodKwr)}|t&wz)tzmmv{v+F6Qk zfwnv~6-5E7W~P__g~c?1q|FL;?^Wpw!F+wN*kz6O|H!tEsW~8zY{Wh`F}5Et)$fN06)RhK|vQSXGpm z2^AnKo^vX#jR6aE?07d0&V}G1+OZ4f!j+Ia;hbx|!>fik;k?8BJ{(T=B2;hOy{qZ9 zy>^GIJJ(%cU39&Heivdbb98vhdTtw(f`}mU*wc=X32>e-UxAEPTMIsTqRv%;c}nME z35`H;d)97m@=fA^U_ST|!XlHfpfMYwV>G3D23d&s=K5Z&K3zV(9G@N^zo2SIHOdL* zm&@yuwhSgj7`#(e5o07KGJ_?j`EtZENjlavImg};Ih^w4_58A=xz@T&3j%uzYCy=$ zym4M?Qy{CbG+F^QvJFu^3X&INm8~NR8#xKkmVCa*>uX^V-*Ibu1IcDEQBy(1^)T&lED&Q_OZ6($E%^&^Qez*Jb z)9)gS8OFeB`sI1K+js0p#G+qsM|?b4vmFzu6*VF9t*)x8^EbrTKfLUly8ElbP`&qu zu_MHFt#c{{czZqcA>>x4CFfFxE;{ad7V#lmT^)+%tzsE>htqTvwc1ooYZhb-p86nv z_Gf?k`^VQd&kiwO?bpkN5N&HB5>hR(>$GHKpGAX@)&vm*uoA}@5pl7I+V;D>BU+16 zd)78}hwG)uxtuRB?b_%9zv2a`CVpB)s*xg_{1rI8A zX;Kt688!lU+>;TY(BqZ>-VS39F!Tnm)9>2VK?+C zl`oIaU~nq0Pp3zzmUD{;y+}(dGXbKgiOAMJsjTJeSg>wN3gcb-VBos`jp9 zW^x9G+DwXRHBcajK&VYbOOsl1a_qotU1#rj7{@iQrP-7Y=d!Qp6TN#{$1lrG!PwO1 zrid27(071Hrk=4I`@#n!WN5$r+y6Z^Of5W~8Y8Au)b!^cZpHe*_U*ep5s%S5?3U|M z6x?rRIjX?__v`&{Kk{W>)vWK_yXzr341~wi{N?eK*2)N1W4zjR#Lgo- zVkYPFx@_?|buolqtD07E`fq;z3+Fu|dS+(looCt-zYIQ_2@A$Ilml6Hp7#ufDwUnhz|Vn$HN*-leh z&TBr`H03Pwun$+)*Gx`COhB|QI=#*>r`MyDn%DOD>FLwwkLPtwRWD0DpXY{l%$LX0 zV@fNC1)?TRL^t-Vnluq&%C)I}^}GPo);5QjhyuL9o07@bx%F<>mUtjnTX zI9Rn>t2AeN%`k&#St|%MwPP;NHsNS}=vAeZJoLTyUNpxL4&zPl2Salma3J54AJ84p z4d{DNs-KR(pVvza9U`u4Vj>32DVf61cSH?f>i51s?0tXbhQq`6e{%orx4!QdU|-g4 z5oo3$EhQx$obQTAwE6Qt{yX1aYyYrRyx#RG$-eh0;yp8gW14dFG~JBntzq}IZqIK_ z4Q&RhGA$YZx4*q=()As6E=+TJdY+$O=IOlVT=&u6ANu{^`{4Lr|IPmZU?9y(PM3>0 z57GbtnnE)~>kj?8Ed3Czs#FU^m&ecfazQh%QbpD^5ur+Bsi7a#Pykvk#7&7*uC=0S&XHq6uob2`FS(YM znp8taYC;|nF|DPR(wbCFr7hZ2n#kr-CG#=(=;nF4oM!gplWEv5oM=6zu4L`0-j zT<7&XpBCX}0xFP8?RU`yuZ6DrJ2mm%t!XC0aU4rYpmcM%{ml=5PsGGVZkw{Umc;iU zW(IoI-=cYGGW31Qby=5v*E`VT>6BJ!;#yhREI0`shQ2=BAG$7{FVol$(nQx8V`whs z+ODo{cZX|kr)gPho|hK-VW;IxC}ZzSZ4cMIcXXce-R+oiL$F<3rWBUEd7ikn0$SPi zU;+jrYssH3r^g?k)<65+UN5Oi8=Uh*edq6YBOx#|BGpp)zxkX0aeF0fW-Cz;Rmr(D z%}uE5mURY-21pbPah<1<6NL`g)mjx95P?|@VhEZudT+IQ?}(@?}EA=P3V52{Zhi7T8`g-ebANqI4_FN#}(EID&za0Odo^ETv1OIsX zeB+1jN}kJlf7`EFzO1!;g?pgGy}RjX0DxS}x~`6SD`l8zAA)1oa5=We*YiGY+ zf^bqHgAjouM-`S-)-)y44KoTpIt5+yWJIGILx^)*=5kqc-Vu&Wh)}Bp?}pB=xwK{s z_!jR5Y+}xHt%Ahf`FSk{HV(lIT9c+qv~fPIGAvCIfIM*^bjIlR!*y_-@0g;doR)L` zN)$0u5K&}&_x|BF-U+mIozz;_$FxkXWOl@k&eQpHITEm;iCD|xIySMERk96!xW9Q9 zyDp{FTJ5@COJ0BaN2u-iG(R0nT_?#?o*q5f!xaxhSeA8NmX>lypkTFBa}+#ZUG?w3 z|3#Z$=IQL&mL$F#_PtSCwltB5m}ws!84$zO(B)h_ms}yTA!5qatTOk^{kr_%{a)Ha z6kO5$AjeRcZ{u z3>{f3Rce#k-uhl(O#}^EE!N)FLcwuW0|53xMKgtA+z>xcel90zGLXggPZ zE+S^mqY*Ir9p9*I&?ylS?|lf75D8%DyFSF{>C4B@KdhH5Nv(bLyPD;enfU$nhYt_m z-`?J=bv{k6qGD(!AkDO?nF%N%_S8$m6_#l^*II8o@6A#X0P8&iz?w=ETuRFpaComg z_}xRckj1(2eRkJHkY(G>~7r{4^F{()P!}st0_}dTP?DoU79FNBr z0FbhA%g}iu4?xhl{xICUNdxhXJp_mwIy0B_vV7?VuTAPAQdEnzYIUuQ{{6#u*ZUi3 z4UxL8OF8FK*5iw;%Q1!5LaHW;B8{wF`DAP^L_%EFr3XQBYBu)vez#aYU*G@C#UY=5 zL_~ykS?R8?WXU-OmDa3EL&Rmx-#%O|DP87L(sbz7+g(xfPiG)(A?yLL=4T?0?3jDx z_y721k2>Ft`LeXqR27y|7|8%GOYVbnjzG0-p`KEzNYf_hxF3U*6bK_rU`BFo7v`na zRWL*Y+ph9PY+Ib1h?uJZp!wLfT8j(g{%Rb@Ee~V{TP-S=!u8XkH{vUEhuNi9{c;`l zd%gWkpT+bJ@A8^Y^x_?lcA$1Xr`dMhez;knCaEJtFKJB|L{r71C^3R60VwLu4IUg4 zwN}!)guZj^hAu9PvU85vK%Ot3mb8Sf$H*#1#3I6;*|UlcJ@3Z;l2d6V#Ev<(EL96q zbDi_O7poq7!jM(lineMe2+gucYb|=R1~d>=Z6@lS7qyl)RxM~#_JGKO^26(IyDolv^K&39CBI>7`&~Xg?|Qj{zL^7C zL6|7Y^5RFO+i%u&ab2HUf_0LdSMIL6R%?Cv`0IDS{8tnYWqx5mXP4Jwz1!iul(BbJ z1q7pWr%U?j@f;m`$NMoZDI-Id17Lx#eCuKVOE3t$=4P#x%PjxzZ@OPTw8JQ+nseNg z9Ikt8eXIh%0(1j3~>3oylN~Zt-AOJ~3K~$ca=r9b9U1`7{;NFWtlu>0Mozt7qFco>F#ANHlStG;j2n25di%r1=Ru*Yz{yWI~5 zHA97$<72DoaCPX$F}L#W`orDsK9xK^w}VAcLQ&`323(0DG!YfO+8-)k7YpoQzMR%+ z>4v@U`sH$7a=pI3iZ!dsTM=L1wn2p89J5nUVCOwKsxG+BITC4LsugN#>`2Af6A(yM zX$Grhs2~uA=(8_5e|~&?%Z{6(fiw*i*OEjG$k1;W*UgKqOPao%K7P3Q-m`BC-gy9^ z*eihL^R?>>1k|$<^c^*+>6nMB2Oqm(XUj#I96Cd#)|_|k`1t$XyPy5+Fa7}nK>fe^ zAO6q(1(7=}hhsbxZOT4%gy~A#&CXoG{sFej9?DIn9r$*?+%A6?_AFHe7W4*+;kzT zF_mfHQvx8rZ|1+OkBRfWz0;$G{pRof>@WY@+n@c#`QzWChhm`#5n&TcsjBGfDcv8so2&lw%XD)H&PdDvp$~b8 zn9F9NXR`_z4FaN>O(KON!1f-o)S zMcW#g&bdfVY(h+mV5VYVuz^QJ3|fOSzm~G>#?cX0A{S0~u^*uz5sp`;#YDpH#xtGD zI`#+0T`DgXnrG^mAdYH7bnY-L&PM}C>*Rq-#Y=kDGKr{a`|9ZcRcTGUi|nwqrr^Ef zqzFC+VlrTaob%!OZifVVLfRZC`o=vL1#E=Ydwn0#kqZHd&;d9ux_+9UPuYgv@ou+U z^V<1NtYwoBJ(KIl=sX4I1N$sSrV1_BL z&}yrd$q~Gj#sMJJ5?q{94Sk>Ih4mQd!)d*cixhgBpPJh-5l9Phn2#T0e?>kNaK6Jd ze`IJCkjt^_2eC&N2WQ&K65>#*tog#Oi(xpwe)3({IbYPwAOtE^)NJTu@SJk)V}E!3 zuGwWdmvuTD=*{)LXF49A=lL8%977-|qS~|}5CMpaDK?OKnxl8u!+@xS)I_uy6Smw; zE+o9~2k(MsKTWS=Hyrj?t+hT3RVouo$!O?^r*(}XW)U30@XIENgD;F+5=_wss4ImOtOa*_2#y+^S5>AClPMN^mw z7!Wh>dwUzc$A=ccHeXA_&Cv7Vsv-rdFgW*xnQsinXm*NyH!m zB4aopUtgAI0-1%P!F7^&cfY%RP!-979R}}_TnKSZYpso$09jf_;t=|h6N9NCcd*G^ zOVceTp%4_g`=*J~Z2wOpnyz}2YyzBa|n$F9* z>pQ>vw#?75Yd`$@-&TK83Vy~A49Id$)tllyI<$v|xId)Q0oj&{SKpcr& zE~Qo}t*X{sn`o2L%vcmlT54@(kWyOaDWwbmRTZ2oVmuypyS;PVT05UF!_b?-x~`(4 z`7y1R-EMb2PsMd-zx3GO^W9nNg)g_^?#|u5*5{cod%C{vZr1h7V>{hmf4`&aFZ$Dp z>qB@y(2(aRq87bBu9?e9_~z-`$|Fo6G_B4BRbd1vGg}@!)Ld)RE_e~kxdulu za21)Bgf8~o@c#bY-F}euS@H{7y6Nd=puLwdA`zzAOce=B)7CTuM~I?oYC{*0U|zC_ zI%YyZz;(??&iUIwCi%Qh<`M44-o-w|p^xLxjj81GJV|W;vaZV(^CFMMrHX4wDJ=<% zi9wp=bF*gbK*Z`K-VOWiI_IpWeZOON(>!_a_q(emGB0!2_5HA$=c$Pt4p*XjK3|;o zyWOtj3Z}b$x7+Qxi*^38u0`6q)QAYqRuhYa8n4sok=V7SfM!bHez*(RBB4VVqFa`- zAH$&!KOMWNjL!AU{m@4+D|OwvOwpz5osPXzQTqRhdXHVpvMoJtm^tUN+Z=x)A|oT+ zy|?PBR8C-(NC~Kx08tHf)nJ>?rbnPU5+F(-OCm+7%(a;}BQnDrzwL6#{YjGgEj07Ib$kkO;gpwaMb?R8i(ad6ebl-Nkj!`cH8A=Zm8rKhX_oN zv*3JxSCuIsaZ+Ee&Z@d0GBHR$_A}lgMPcJw{Owaee)aiD7 z!rC))>Qg_NqcQfIv-RQW{&Bb~mM1MOx^a8Rhh?*B?Fsm9oVu@GEN^z>=4q40fejSK zj#ET{x+;cgn*4Nr_47DHwiN)FYT<_tR4HZWI01BryRu%C)@-*A-Va4tqbn5*lVOdM zPj$OoRZR-{>f$=vI)(23?LU;&>g4P)^iKvcUtSXx!_%kD!^cm%K1z-$rzFeTHI<7g zg%nF?&zDPP@o6X1!G~1RR95OJ77h@Jkgb_NTTziY={%42tYJ~|L1K<|RrLdOqi?Ii zS{kNMI2vO#l_aRaT%KM66Aji@T#aLhQ9GCbF^e!8NxE#?5T}?jq?v}C$XM&FN*0AU ziDU?4QY8_Q#5u(YjwV-t(S-q-@$IV0E`+ka!jf!-=uM2k^ zMw9o5{|qTIIRPW!naV6Z5J#nVcRMD$IIUY(k3Nl43@H$h5lJ#Wfoh_fbFP~OF{v%G z2niHLYluUPS)MHvY~2h7{CeuyzNP1_$gF$MronX1AFuewoh z`gf7z%kuM;u75oK0jqop*9N$+*@M-9tP8RlY z*Q+j)mt#MQ=#0ips<7`7A*G~z4{1aKDwc*}7$#AQRN^?K6xgh$$WcDi;HE586c;mqt78o7kXks#NI~*LhR3q z-#qzWNcI4vlE@a~J0hyBYz-AAJyoAbIpO*vh>e2EG% zMU||IDJ3Ezmkl!_T5A-UXBEmUF%p#|qJl_s$?teL4&zXjHIdQrhsu@XFo=P&S_v%! z47iA>1t7s>BlIX_Ka^SuJ?wVe~pQSe*j)c|;H&BA|&} zh(HWU0CLs{Ii@V2Oso>8keEze)M%Y37HtE_Luj zG(aXMMBys=!BxvlO%_FjejKK0EX%4emFEVtM?Yo=IVTX9i$Xvk8B}EU1OPvhmg|c2 zr=-~Ir+J1Bvj8TOd72q7V=_en9K{%3(RD5RVLQS!_i zor0fqM*NQN`>v}OjwzK@Ro9oj$nE&SlyvUSQRRSJHL`+>DTNI@7_w`+v;fEPsbjrf zUOR9%@m=P4X)a5a(Zm-Q%iW>(v`Sft)Gz@O7nDV9j)qL>jDiF-Sgosz7jZhqFuC@$ zKvCe30vk6CN8<`po{R@(HYBM%yMB6n7`$JcoL-!sTI-S@(N^95p{!~I>bql6H!(~E zF!qPCYJ;DKFfP~2MX5RZeu~bRwzdG!Pku&{&U5s(vdrX+LBy0LWf9eW3gZ+)5P{s* z1pp+;NrV|yWR|VP6b-X;#u%=^DMC(p7^f*9w32B&oQn1DtV`Iu=3^MIi_rsxy zyj0|sNFnpFczQi*~DLG9`bSA-JiVqix2RWI|7uJ^#oF@taR2SH zvEHXeT^>6>dN~|NXPB*H&Z6L$3Gwym?a|kVF&gJIM+FrSM*Zf6>BrTv8$R6be*VQp zKgJMKQJ6U+*RjS zEv^sgY0{yQ1q&W5j-_JunW~~WjoZ6b!za~=0_LA;EJOs7%c|YSqL-2kSZ5b?o8uG# z>!z)#RTYPsi!z6yDx5RMhcxc)yN5el)#302zO>E-KUK|QIzILLr>a>Pq;Yc_k&1fp zjKs0d)Q!m-=R|FZNV6V0=Ui8|FxJNeh-?exDri0)`m73MbBYR-Q&y1(FvnJe=eG$W zpmWBDICyWFLd;pzSuHHD+bYH!Q}!|C3?hk$O6OuuQ%HG=&YIHNfEg5tqLbTo%LR7Dgp$JDj6h8*;IwCp8ZSnRQ_3_CkUh>#_&IZ zco?5iZ%hn2W!R!j4?q6qXaDTKTU>n=b{{~}Sv9_Sb@BdK_FY0Is$ZqMcK}*fb_}Um zw+d<5N){!eFlZ4T^KEUKbMwN>xbb%;@q*XPw2cpJ_{^Obetf^V=Zoe=`#Oa2 zaky2dm-dwt_rvfO>_7q7o=sCU@lZHIZ~){}oLA)rDQ6(IkkF7?GE}uF8Ut4KA_iaA ztuangAi|iWZd(AViqnVN5B)g2IKMK?&2lx4eGpw%<@xpNx~R*l7Al5euUSB;v#zwZ zYL+pD^c2whkRa!I&kAz{FNsc*KTd%#8k@;FKZTS9P-67VMUFkQv1Mgon9)2UqM%Gf z1R*5=C=AbG%E^0c$XaWSEel%~cE-aCEIwpoS%i^tiyP6E;wc#$ z{6xg;j5UrT93CHImyoGwNJYVraYzi=L!KnX2#|>w=M6Rz0?<$PrI~DI3@fOi8G8Mb z>jSVT)|!LGus=NAe*5>I{n20l_#bYL{kUGh!yo>y{jqm!3zJ{I`Qv46KKV(&&IF%4n9K(Z8A?0O#-Hm<>@$<8;amU|&y7bbhW&|aa`|a?>D|d0)JU*qH`@M5q z7uFdzh}bOK-P1ONn6tJ`Gmg_g@hA*YVXZYLi#Y32ip-R9Lg1Wd(>l%^n>m{kVtfumR%Ah;8@%!JRssaX2c2oy zh@QcdCQ)aso$o(631p1<}g)`W6GQkb>%+$)4$q% z_{X>3zdej<8)9Q>c6GsIxbMRl((Sh2?)uWX7Z-I-_tqL8sH$HgJ94sW?|!)5{rt^E z%*&^zJNwXm`Ep$r)_n2Ro8SKayJs?;!=h-Mt8z;7ZIqc&!5EWLBqD`!22Rb+4N(<= zEC4!d(llj&_(bCl-69lWNaHK4P75AZ7Z3i&^;Fd!2G@0ZY|ZktI6vgwG3`mY#dY?> z=CI8b<9@L1>SOps8BXAwk$>3#o(hQbu%n7xlxfvjZ?QIti4kLhe>tFj6)ND4VbKMZJ1 zQ<)69-S;`?$A>44{%PCCu{$SbMrTZ6ZB^Q3<3u!BTZriwt#NI&ST=2Bpsn3zH@v^wGILHdIzuuj0f-==62gpjn=w>GPp{}aq@z7LF*LOu(=4mp< z6;etHXpA`=j%8Kml(OQYg0TM>iYr&c4n8dH@{G>9L;pViP-uAtZnSBW_5!%X z^|9;k(ru#ndHDtSAr0^SLYLa;FxC1u{^soilV6T6@?=l0vpw&6A3{h;LQL^l z?~7TKP(`yOnIcp!KYaRt*KZEp(Hiq%zf(qp4}CwxIHZ(Bht1Q&{xBYndFXFS8!TG^ zF`A}nR7sz1@5ZbIx_R8LR*QZZVoVRMfz+EkI)HHaL9!GU7>b!FUN{p%8b%*u%z5_1 zS+OQ77nVmcT(_l9K+@LLA%(gunSC5P{K>PHa!y%hD=`x7w!`zY6Xq(^vq+K<^tt;m zA9krK&DpXEDdizsGFe0<1E90k5T+Q0;iyH$sK(k^pEdL&WQ&ZD*f69V(~!cb_1ajA z!-GfCap;V0Q(2`HohuO`MX##PSrtJ*Lns-&sn4~V<)a{S=Z_iIoOucN+zla%ZL%W?m?jC*UQOVe1wXB?>lO-?eV&8W` zbYbpJ>(zd2Bn@ENzyI;7`exr9-v9O4;?;Tm?o;^H_jiBxi)(Xxd%Ie$rkF)Ux|@FZ z%o&a;5@L*jnIAWg0N4)$GOCDVEy~h+Ps}QsQ&ObV#hi0fRpZmU6q2pYkML-~oKrG&v*81a zOk0)`N;@qIR1U>SC0hBI2{7ho+B!2i!)=uSwwkv7;|HrsgeOEK6k}Rh5F^g8CFazv zZ4ArAOr^Dk2>^UdqY>r zDpMF1Wd&7bY}VEJ=hnG29zn#^C}|qKCw9gK5S^!_NGJ-1*%FG1bzB$L8Y>b7fB+CN zJyXSFz+nZ0nfBR@o*6V)o zK$3vQmjMZA$IAefbdX)h62) zDNOh7X_t1CY*7@)eC*;;QP1cq$heh9Vmg;gmFeT=2XE<&+9>V8?nHF$mNmWX^C9>R z9YTn#IF93(Vs`0JSaY0`ilCv^St3f3vp`7c=@<+fBs9cXviAXyM8p}kh7HrP3t2LP zSYu0PRpA&z78!g5h0<9hB*3g`^dY9~tj#L@80a~-tSJj1Am9{|GgLZLmDZLtg-{no zTNO!!Kwb0VapL=%54I>o1&|Qbu&JwZ3d7Xz&q{4p&A#&?CIyK}ljtn&X)62r`XptU zp>Bprvxbx{Q}~InJpaOmjNzDKH_V2`=L-)YR)w>MRlz_Qb099~Q*usOVn`ZUT}*y% z4UMN4^FRGR|M!2lS}Z~ird;pFtINw5 ztKw7RQcCP&VurI-MTpKaY`TWNJIWiM#uWGO4*XYN+w+t9x8L9X{PpGJ&+czOntlvE z#vFP-9ugEOCCO10kuYab6(*BKG$y2(kpMX*M3`?9U3avu5S6Ah#vhY=xl4xw?iQ&& zP1)3RAA1lyg~j8;+pV2~O`n@DRdAQKBaFXT|04I`+^{o2%W_dJbMLq5K~bC7dd;80 zE!41dCpL$af?-=#bhq;a!A$U%%nR@v}&q;48u4PYR*}dt+4=U z)jA}eSC8}mSIaan3y3I-7~&c2#mph4lyp8@hm=G^%yQ_*(lIDnafm)-wALU%QI>w{ zO(HTTOuc5FvDq-IrU6YQ$S@qcsh`}7iUEL7AOq!;vKUrki<}{3glWoc*+xk!C?K8R zlY#N*bw{uN>YqRU@OOkcrV$eT_@uAe^wjw`m&>l}fr#V&S1tHJadIXRZK>@&8XG1bsk|s%`q6Ice z1WHJxrUYUc{630jGE+Vt(gOgXAOleXWWq^n(=2sKq{MuT$4C7*c0(AmjrGlk_h0<- zzxn?E{Wqm4fYR14xT??P_HI8)0+QgE4xheVU%tM6^|IgZnJ0-;?Qm612+@?qp^K+0 zmy$f}hwGENAAC&NIs5hM{loTbm!TkJ1RuiHX?^?He_h%yKL5<1q&z&bDcGH;!-G6% zh9Mnt24hJ@Q^-Joh&kkSb>6@V1w}=2N-4EfgP;p@9J(hhuWs_E3C9y$mMLy&IOGAK9%^SnMGA~XgF0ddVdTTgd3R`sOeG z`)~jK|LmNZsHjB8Fj>EO|Lx!X$)Eq_|NVdb+rA&KPKp;*?s`03v=5u%Vb_OPe0H(C zed@Ny(K42$8K=~i@y+_f^};rF@$%d9?G&@POU%OcP0jz zPVw9d_j1^$U1M688`fcS7-iv3axv@=hlTGNxTJOWxN(=~Ct_M@a-29vkqjv=i0cWe zMcG>tQ6zfCQIqM%F{@=%Rb7};b26?>3Na>TOj!*f5@pE@C<-Y~Ro#RTowdjuqSTA^ zaNN17bqrm9sM^yo4jBm*rs23ay~=SUROaHieW)wz41uPU#m5MieTdF*N;u^R0FJ;2 zPfeY~_0Ufby8)i%qW=`cfS<(XMEHDUKm@!MMAI&4uH~_az6*49Stcx_*< zi}jO0m$nPHx-4FGWA_j~5#idLFBpb?v*mDl_G*PEopxR7S8Rsw*WdF=Lk zj6)8+Dv0D`ie*s%VNR)O+CCx*+KitYHaq#R;8+)8D16RcUQqFN&WZ-~TN#8`e+X|J~32^lxt7em@*^*vM5hlw>`@4IKDVrBpH7F!+nbCEN;8$`mB9_ceF)$x9!eE*KIir;q$BI<90M< zdm-qOAB7DVV8)b1^RvrMvxuq+)WynD8Dp^ELJX51tFi`(-j6AVa`|~r`_3OeTYSB+ zk}KGCn`L=^s!GQ1n-P$qKX>BMA-WY0X2n;6{y$d>f+5`PP?1si=TylM*vhTro(O7p5!d1Y`Cll zZQT7xnAYbnQ}WH}>*?^2voF|$S&1DzfJ&AC=v)oHS7dSxk%?61&=CL?b!qL>$6xL4 zz9mBdP&hNiIEm~0!&>z zEO?zk*-(qC0HZ0~tJAMo-Ob1QoGODo5QUgka?DWH$J00eHTh5Q@Z-(X@n!k6-`)Yc z&Z9Fqix9!)I9#4CvSwrW=CNC}cAE0B_r?$?teX`gNXpikA3kk=`LpY%-Dn6-7NxQE zYJb?5RaMv`V-m^6@?6azL@)@TP8Ov!Q34Z>Q}6v~*g03Oi~cyK`s8OjIUZzF{Z5kw@JRzE=fB8K5W8 zhNTCFsMX*l`6R4>MPcLT|H*;x8D=-bl5QSbhxe8 zF94LR%Q1ZV@K#L&HxH}RD=t^N$NS#*ZRvc!rJ^B#aq8FSpAEY%sQ_%o{!p&239=xO zt>bu1`%iJ0<}N_#Y~>6hDrjj9fOh?qlfQcT&BgTs+p%4)h|qA`6fXG#0NJ9ck*5&i z=1Cy~7{gRp8UAVe1DT{N47!A#XaJ9_y=q8KAC<5|Kyng-$fFZWVFk#BV z#6&cOWEoWg%TTyRBqO1*#u}G%F=Vu*lN^X4j3Oe%(xfrxD1u6k$|buNrnn#SVQJ1w zYJKVeRS9y)#*!ozj3W&TcfxEyb>Wts?3eb;cOi@SK7d9nu(4tbat1g11JI2h_UB*y z#qRE1Rha4c^ziOiyWNn~+;_$KGL_CA`$<&JSIzD?O(9*K)_?N##b!S$V9N2sQ&$xB zF!vonJQY!~I?a`M>>}|KZsd3zRua5!3Tn6y_g;_PlsKzX4N4w?VEgsz%ZL7B?>ZmD*XutrnRdK6ru~cN%UX(x zhmVi?c4g#D=Zf z+NVqi##RIr!T?~-KKnB=W_j}3n39Z*Ar@q+X5D+S#%-P+LQK}UYIQ}$!uvdk`|$p| ztdz0vQH?3WI32pthddlMX&Q|BWr9g4jX)yc`} z$@={K3^WasWUBfgrfg16mlkt4+;jHKW*9>^j3FiftV(AXm|)-e`(5XK?0UcN#zQw9 z`^ksgPvO{4;}rYJ`w(Nw;}k;3Q-~?b6ykC4!xRtQbm%8WT(q?UsEV~kpDdx|lt2{; zyZ!)_e2OW=I3>xFCPh*OWQXh+p0#ZX2%>paUKr*{ySbEZ3WJEMf(TK3jSEA}hEvX7 zCrn1dbLCGJN)C?G&0}Y+rmTnkfs6X&@^#qXrRWc7wJ30kvEM%)JrpFWkr+cvZR3V9 zZuV1Bv6feDb#YQ#YYzQHL@&=4PsicoK;Q{gb54`+-ZP902*U9 zWRhfK$QADH!?(-xuN>w>w^P#5dlmic_1F8yccy3;iwjU3_MfV%x&PrGEc4Ls%k^bK zO-Zp_K0e-eV}E{j2FC98_c`UM-`Qqex2tK|uTRdVp+{E~i^e~^s~n512{ZcR_ShkC z>FlblMCUet?8nLbP?h%L^t9W(-xtf5-~2g&fTrc@)pr}Z*`%kf-g3M=HL;x`KTu*+E2Llw=rkrPcTgu{$DMQGj zF$FTmdimN<`^94I{S;%grilK?1W>91O@~N~DP)O&hyt0MrU6ltq*Sc9L;V)Er3=p%Y8&0R|AwCrqloi2;KJ87zi&9H8P45=hZ@%^n2F#_P{FP2}vT=he0Y8zr6 zrm?BrA3p9>RFTZ_cnm(ApPe%skcbu;AjJ%TK)U2hQUXE+*zXS_X}MZkYbkI2@Mww` zN8a{%w=yTobRBuT8@?CGXZbY<-o^K$4mBK)eS)S-j>+dZx1@4TqCkjAg+ZNdsa#EW|G2u4ejHLt2+}quKKT9a zvG*x;_wT>|6_Oz~reZJYKKyn(+}F*bZ5PvUL^S>O zZW<4%AA&$#Ri<7#Q-pqh?1loSizP4COCM88d3)$`mJs7=QLmcv*pJ)8*c855U02m2 zk4ICsO4d&!NM9IG%^*<~F-|#p07vi`D!W{|yQo@e`@f{cjJ$7AGBnmTDVsg&uMazeqXD$BBjq@AA@ z4W@$k$6-~MaTtI7AOF|C_~-w!T3$U4hxK|%Z2UIx?zboHnfJ91v2EZI zNz>ndyY)#=+bTvOG=_=b z*d3vLx$k-nA5Rnxd^)k|I7Ep$Jhk3{P>xcb~0)QK!Wi+W^D!?8Q(H z87+X5K{}TlStjDb62Xm2DE33j&V0NdowG>#>Ut4U@=?EebN=1C$KujmoiE?s z?9SIsTNOoV`G5LX|GIJ&h=lGzEo#kkeXTUjnl6dSdrw3|-{+jGvS~_7@sVMq^5kfD ziTye+&u|qi?P)84Uf?-q-Se;yhc#cF^7)X)_tOt$;jW9%(8CTN_h~N;iz8Y%TDVL| zOUtE^nw7w;EH>7}+yY8UqEZ*dJp00D42U5%5vw0>Zz1byu{`b{Nb+X$aO}I};b7DVK$@3`j*;R3$4yPH9er zDv3wUpaRMFyN9Q{_n^5d%9K(+`jpf#xx(fw#xMXf)2c4#08^G6Q?%BUgGpCIbMVmW6eOnTd#w!#IUNh#ne7Ey@ZJa?0M1i6RzxI*xHn$!AxS zDF^^e$*x9IG8xpQ$tP#s=huInl1~~Y84!sWHOu_M5Xqu>?at-d+yx@CTr3cw@4CM4 zhshJtvPdG-*2SS4N&}ldH@;k)k6KtlTTG?0bmMQ zvK;&AtItk-%ERCbXMXecZhs8@7?y4M)o1I;Co}d#%96$%s%qgRB}Fi3mway6q?|1C zeCltSMNuxw^sbxkrF`M5+~-4MoAbO@1D$j+37?K}x(gpN=2P?1 zB-iu)cDTXD5P>43oD4Iyq^ik)W`P1TsH6-rjzdZ*&sK>TlZX&v%-LDvT$5lzs@c{F zit6-pMGC`ldG@*+ysJ)u*dnq^WqWFv*tO0TuJM73WqnC8IW}%};&Wzao#AG63AWIr zJ~LORaU6US;?lZB6pCuVRft%++WYPOc1tRV7)2~4Ko!x_a$Pwe)Arb}>Oy6D`1HHf zwHerlRF_VHeDFA5&>4;3_}q@wcxB#Su9{S-dlAF9eS(oBF? zm^H-nQhZ*~JTueiS=~l6JP`ov(k<3C8B&RpPok1@1_WzdQmbf9;ewBlAx^5IIb?|< znLs2*#rf|Nm~k5xN(KX@Ic8!cCdmq_eeMR+7q&*#x~ZGC@!n6_)V=njuFH-d=Ru*7lmbVq2r<6#&&AI7FK08%$6j9NOf1_+Sq ziZG*NWSaq8Q2^i!nm!!&-C?h)IZH@#wrb8+4KRe1Mo)F&V$5SmmSyU8+tC>2ZkWcx z8lrBPd|fcn{y4C8fCLIeB&sqq-^hwWo?VfmAt|Di&bE~cF^?e|R0$Z?M z{{KCl%Z?;h5r!k;Tr;yST{GQ1m!9zq#sb?2Sb)S9B;J9C;{{mq1PHN42!xR=Ft%)u zr>Cc@yQ-_QGV@#_f<;<9#5oGZ|Ht=1K-Ili>wLj@|amJ;R z`@TOO57rn&vOyjeL|NJ+%+wC}xbL|=2QiahiG;C5nI!Bp# z%=v8DjAQ=6)%x$BzdKuoF8D8xJ7-Ps^myHPLpS&R*(zG)l=@q8i%PB*2GWIl9JOQR zS+F~dqjNsSh7ekPzb|n0>IZMjH(aI{?xmiN1DN}=vlDc8?2YST)H&^7{D$xj3BkDC+{s+W((0bV6<@E(l@u`Evq0>t!xYt5`XV4hKi*T zF&?fiAGg8Y-W`Dai&c9}y6&PV3tEVYj;}rKG~5TDay?iSTS05wssB zXGj4+v2B`MstL z)LY|<7D5sRH0T=ZO*@Pa#)0vO3Wd|#yZ>IEy#%Sw_@PcSS7FXZjWr;UXxQiNGHkL| z6-_D4sf|d9HZSqMPOxZP@{4N1($w!BhRa7W4G*9G^ymNl+h4n`6OmojsmkS(C-zsr z{roR~@WDKPygZzlmQhoJo{pRL4rQDDC7aw0K$l0P9@ldxs(kp4Ywys zdp@e-BlFB-bHiUVv8tBJd%PnCK#)>Hh`@X}5o<+-*fp4mm2=8oLT?_%VXA50MPEdX zK?SH)0JJgA8LGkzpkZ~k*_h?!I2@8-Y!;`&Z0tc?XTTUZP19hgDxG(Wp?{caHI&rG zRCyTs(6p~U`lwlMcDp<4$e+KqO+W=r#TuwY>nCd~H3IRLaK9NyU`_$lR7*cd96y){InsBH)e z0s_XEVI0H`&UMo`Sm$O1GNI)xk+7epN5i|P zAAbD)`LpY9zdiKFizc1hy$F8z(T`W*cYpfh@9o7!sgg1SKtH75-D%AIm>TEa-5q}M z$yGm0i^k!mV-f2J#6OzSkj*JZf8k#uP%aq}hp}ho;6n&)!~xRqz~0)^R=>08%t52? z-sE=^rN%6}5{}!5#pgArzvgL?XqhSv@l0!D~q+JYXY-~N#Mfdy@<$p{S z`};RvfAN`0EzG9u3Q0YF_prM;TeYu#^s}qipPY8zt(Wm`KYn<%iQfF{%WW#M!Pt_ zGjCbsNqn}_^@AMV=dB@g4x1Lu`?5R9sWFQUUMOg<`>~#szbBi4e!nmhmH9?tUayu^ zts_9?!V17F&d~XhJ>a4X&YDFNqqokR=v@BLMNu?rT<2@11sQG!MD3!Z51ZP>aYeHd8sUQ-o zR2E}s*?Mc~{jNV8$CUGs^4w+3rIsqS%4tlw@-XGon3*-#k~622$5a)gZ`OveX**T* zAqZFHT%oWiPZ^w$0Yf5YruK6lOP#U}#@bNvz);S@Q&6m$GmKIJ5Uew`FcQus-o~|F z0)RO0Flr8cd**G#B(Qd-b7mSxbm8*Vr}g36X_|!V_04@hA+!AW;xtZW(NLPEuzD)O z%CLL)-(}bI(=-g_W;YHgFI)HV>kB|ARTt4sxs0jQDowQi15B$b%*5aLQUCw|07*qo IM6N<$f*+^y?EnA( From 3bc679a6576bf61a5e8aae47d46947e2250067d1 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 12:48:31 +0100 Subject: [PATCH 17/29] Update Image --- .classpath | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.classpath b/.classpath index afbfe1a..35b4612 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,11 @@ - + + + + + From 7cf8423cba53099df3bd7a39fc0b9f4bcbd07109 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 13:11:52 +0100 Subject: [PATCH 18/29] GUI Kartenfunktionen Update --- src/de/jaujau/daten/Spielerverwaltung.java | 1 - src/de/jaujau/gui/Dashboard_GUI.java | 64 +++++++++++++-------- src/de/jaujau/gui/GUI.java | 2 +- src/img/texturen/standart/32.png | Bin 8463 -> 8894 bytes 4 files changed, 40 insertions(+), 27 deletions(-) diff --git a/src/de/jaujau/daten/Spielerverwaltung.java b/src/de/jaujau/daten/Spielerverwaltung.java index 7143e72..460d6b1 100644 --- a/src/de/jaujau/daten/Spielerverwaltung.java +++ b/src/de/jaujau/daten/Spielerverwaltung.java @@ -95,7 +95,6 @@ public class Spielerverwaltung { int zeilennummer = 0; boolean insArray = false; while (line != null) { - System.out.println(line); lineArray = line.toCharArray(); for (int i = 0; i < lineArray.length; i++) { diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index efc80f7..0903365 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -10,6 +10,7 @@ import javax.swing.table.DefaultTableModel; import de.jaujau.daten.Audio; import de.jaujau.daten.Spieler; import de.jaujau.daten.Spielerverwaltung; +import de.jaujau.daten.Texturenpakete; import de.jaujau.spiellogik.Anwendung; import de.jaujau.spiellogik.Spiel; @@ -35,6 +36,7 @@ import java.awt.ComponentOrientation; import java.awt.Cursor; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import javax.swing.UIManager; public class Dashboard_GUI extends JPanel{ private static final long serialVersionUID = -7380187913989942586L; @@ -57,35 +59,43 @@ public class Dashboard_GUI extends JPanel{ private final JLabel ziehstapel = new JLabel(""); private final JScrollPane scrollPane = new JScrollPane(); private final JLabel lblNewLabel_2_1 = new JLabel(""); - JPanel imagepanel = new JPanel(); + JPanel spielerkarten = new JPanel(); JLabel labels[] = new JLabel[32]; private Audio sound = new Audio(); private Spiel aktuellesSpiel; + private final JPanel gegenerkarten = new JPanel(); - public Dashboard_GUI(Spiel Spiel) { - + public Dashboard_GUI(Spiel Spiel, Texturenpakete texturenpakete) { + texturenpakete.addPaket("StandartTexturenBeta3.zip"); + texturenpakete.setAktivesPaket(0); + System.out.println(texturenpakete.getAktivesPaket()); aktuellesSpiel = Spiel; setLayout(new BorderLayout(0, 0)); panelCont.setLayout(cl); panelCont.add(highscore, "1"); panelCont.add(game, "2"); game.setLayout(new BorderLayout(0, 0)); + spielfeld.setBackground(new Color(128, 128, 128)); game.add(spielfeld, BorderLayout.CENTER); spielfeld.setLayout(null); - player_hand.setBounds(0, 660, 1269, 212); + player_hand.setForeground(new Color(169, 169, 169)); + player_hand.setBackground(new Color(169, 169, 169)); + player_hand.setBounds(0, 629, 1269, 243); spielfeld.add(player_hand); player_hand.setLayout(new BorderLayout(0, 0)); JScrollPane scrollPane_1 = new JScrollPane(); player_hand.add(scrollPane_1, BorderLayout.CENTER); + spielerkarten.setBackground(new Color(169, 169, 169)); - imagepanel.setAutoscrolls(true); - imagepanel.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - scrollPane_1.setViewportView(imagepanel); - imagepanel.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); + spielerkarten.setAutoscrolls(true); + spielerkarten.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + scrollPane_1.setViewportView(spielerkarten); + spielerkarten.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); + gegner_hand.setBackground(UIManager.getColor("Button.shadow")); gegner_hand.setBounds(0, 0, 1269, 152); @@ -94,22 +104,26 @@ public class Dashboard_GUI extends JPanel{ gegner_hand.setLayout(new BorderLayout(0, 0)); gegner_hand.add(scrollPane); + gegenerkarten.setBackground(new Color(169, 169, 169)); + + scrollPane.setViewportView(gegenerkarten); ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); ablagestapel.setBounds(618, 267, 137, 210); + spielfeld.add(ablagestapel); ziehstapel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); - aktualisiereHand(aktuellesSpiel); + aktualisiereHand(aktuellesSpiel, texturenpakete); } }); ziehstapel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); ziehstapel.setPreferredSize(new Dimension(242, 362)); ziehstapel.setHorizontalAlignment(SwingConstants.CENTER); ziehstapel.setBounds(1093, 267, 137, 210); - ziehstapel.setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource("/img/texturen/standart/32.png")).getImage().getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + ziehstapel.setIcon(new ImageIcon(texturenpakete.getTextur(32).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); spielfeld.add(ziehstapel); @@ -209,34 +223,34 @@ public class Dashboard_GUI extends JPanel{ } - void aktualisiereHand(Spiel aktuellesSpiel) { + void aktualisiereHand(Spiel aktuellesSpiel, Texturenpakete texturen) { - for(Component c : imagepanel.getComponents()){ - imagepanel.remove(c); - imagepanel.revalidate(); + //Alle Elemente entfernen + for(Component c : spielerkarten.getComponents()){ + spielerkarten.remove(c); + spielerkarten.revalidate(); } + //Alle Karten auf der Hand darstellen for(int i = 0; i< aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).size(); i++){ - labels[i] = new JLabel(); - String path = "/img/texturen/standart/" + Integer.toString(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)) + ".png"; labels[i].setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); labels[i].setAlignmentY(Component.TOP_ALIGNMENT); labels[i].setBounds(new Rectangle(0, 0, 120, 180)); labels[i].setSize(new Dimension(120, 180)); labels[i].setHorizontalTextPosition(SwingConstants.CENTER); labels[i].setHorizontalAlignment(SwingConstants.CENTER); - labels[i].setIcon(new ImageIcon(new javax.swing.ImageIcon(getClass().getResource(path)).getImage().getScaledInstance(labels[i].getWidth(), labels[i].getHeight(), Image.SCALE_SMOOTH))); - imagepanel.add(labels[i]); - imagepanel.updateUI(); //Panel erneuern - - - + labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + spielerkarten.add(labels[i]); + spielerkarten.updateUI(); //Panel erneuern } - - - } + + + void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){ + ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + } + } diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 6c532e2..5812d49 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -119,7 +119,7 @@ public class GUI extends JFrame{ getContentPane().add(dashboard, BorderLayout.CENTER); dashboard.setLayout(new BorderLayout(0, 0)); - Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel); + Dashboard_GUI Dashboard_GUI = new Dashboard_GUI(aktuellesSpiel, texturenpakete); //Spiel_GUI Spiel_GUI = new Spiel_GUI(); dashboard.add(Dashboard_GUI, BorderLayout.CENTER); diff --git a/src/img/texturen/standart/32.png b/src/img/texturen/standart/32.png index c7af09e57a1b1f0c03b34faae443a546aed16c23..95e21068cf78c8a3e2c7d70f9e4c8192b4f3cd41 100755 GIT binary patch literal 8894 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 Date: Wed, 6 Jan 2021 14:25:00 +0100 Subject: [PATCH 19/29] GUI Erste Spielimpressionen --- src/de/jaujau/gui/Dashboard_GUI.java | 74 +++++++++++++++++++++++----- src/de/jaujau/spiellogik/Spiel.java | 12 +++-- 2 files changed, 72 insertions(+), 14 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 0903365..46685ab 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -22,6 +22,7 @@ import javax.swing.DefaultComboBoxModel; import java.awt.Dimension; import java.awt.Image; +import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JComboBox; @@ -36,7 +37,10 @@ import java.awt.ComponentOrientation; import java.awt.Cursor; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + import javax.swing.UIManager; +import java.awt.Font; public class Dashboard_GUI extends JPanel{ private static final long serialVersionUID = -7380187913989942586L; @@ -55,7 +59,7 @@ public class Dashboard_GUI extends JPanel{ private final JPanel spielfeld = new JPanel(); private final JPanel player_hand = new JPanel(); private final JPanel gegner_hand = new JPanel(); - private final JLabel ablagestapel = new JLabel("Ablagestapel"); + private final JLabel ablagestapel = new JLabel(""); private final JLabel ziehstapel = new JLabel(""); private final JScrollPane scrollPane = new JScrollPane(); private final JLabel lblNewLabel_2_1 = new JLabel(""); @@ -63,9 +67,12 @@ public class Dashboard_GUI extends JPanel{ JLabel labels[] = new JLabel[32]; private Audio sound = new Audio(); private Spiel aktuellesSpiel; - private final JPanel gegenerkarten = new JPanel(); + private JPanel gegenerkarten = new JPanel(); + private JLabel label_aktuellerSpieler; + private Texturenpakete texturenpakete; - public Dashboard_GUI(Spiel Spiel, Texturenpakete texturenpakete) { + public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) { + texturenpakete = texturen; texturenpakete.addPaket("StandartTexturenBeta3.zip"); texturenpakete.setAktivesPaket(0); System.out.println(texturenpakete.getAktivesPaket()); @@ -107,6 +114,7 @@ public class Dashboard_GUI extends JPanel{ gegenerkarten.setBackground(new Color(169, 169, 169)); scrollPane.setViewportView(gegenerkarten); + ablagestapel.setPreferredSize(new Dimension(242, 362)); ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); ablagestapel.setBounds(618, 267, 137, 210); @@ -135,8 +143,20 @@ public class Dashboard_GUI extends JPanel{ sound.test(); } }); - btnNewButton_1.setBounds(293, 346, 89, 23); + btnNewButton_1.setBounds(26, 197, 89, 23); spielfeld.add(btnNewButton_1); + + JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:"); + beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); + beschreibung_aktuellerSpieler.setForeground(Color.WHITE); + beschreibung_aktuellerSpieler.setBounds(435, 163, 156, 31); + spielfeld.add(beschreibung_aktuellerSpieler); + + label_aktuellerSpieler = new JLabel("Auswahlphase"); + label_aktuellerSpieler.setForeground(Color.WHITE); + label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); + label_aktuellerSpieler.setBounds(601, 163, 163, 31); + spielfeld.add(label_aktuellerSpieler); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); panel.setPreferredSize(new Dimension(10, 30)); @@ -156,19 +176,21 @@ public class Dashboard_GUI extends JPanel{ highscore.setLayout(new BorderLayout(0, 0)); - + //Erstes Panel wird angezeigt cl.show(panelCont, "3"); add(panelCont); renderStart(); //Startseite beim ersten öffnen aktualisieren + } - + //Spiel Panel wird gezeigt public void showgame(Spiel Spiel){ + //Neues Spiel wird übergeben aktuellesSpiel = Spiel; System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); - repaint(); - revalidate(); + aktuellesSpiel.spiel(); + aktualisiereGUI(); } public void showstart(){ @@ -215,9 +237,7 @@ public class Dashboard_GUI extends JPanel{ }; table.setAutoCreateRowSorter(true); //Tabelle Sortierbar durch Tabellenkopf table.getTableHeader().setReorderingAllowed(false); //Tabelle nicht mehr drag and drop - table.setModel(tableModel); - - + table.setModel(tableModel); highscore.add( new JScrollPane( table ) ); @@ -240,6 +260,15 @@ public class Dashboard_GUI extends JPanel{ labels[i].setSize(new Dimension(120, 180)); labels[i].setHorizontalTextPosition(SwingConstants.CENTER); labels[i].setHorizontalAlignment(SwingConstants.CENTER); + labels[i].setName(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i).toString()); + labels[i].addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + aktuellesSpiel.karteLegen(Integer.parseInt(e.getComponent().getName())); + System.out.println("Karte: " + e.getComponent().getName() + " ausgewählt."); + aktualisiereGUI(); + } + }); labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); spielerkarten.add(labels[i]); spielerkarten.updateUI(); //Panel erneuern @@ -249,8 +278,31 @@ public class Dashboard_GUI extends JPanel{ void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){ ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + ablagestapel.revalidate(); + ablagestapel.repaint(); } + void aktualisiereSpieleranzeige(Spiel aktuellesSpiel) { + if(aktuellesSpiel.getamZug() == Spieler.COMPUTER) { + label_aktuellerSpieler.setText("Gegner"); + label_aktuellerSpieler.setForeground(Color.RED); + } + if(aktuellesSpiel.getamZug() == Spieler.SPIELER) { + label_aktuellerSpieler.setText("Gegner"); + label_aktuellerSpieler.setForeground(Color.GREEN); + } + + if(aktuellesSpiel.getamZug() == null) { + label_aktuellerSpieler.setText("Auswahlphase"); + label_aktuellerSpieler.setForeground(Color.WHITE); + } + } + + public void aktualisiereGUI(){ + aktualisiereSpieleranzeige(aktuellesSpiel); + aktualisiereAblage(aktuellesSpiel, texturenpakete); + aktualisiereHand(aktuellesSpiel, texturenpakete); + } } diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 58a28e2..d24dd79 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -52,13 +52,15 @@ public class Spiel { * alterniert zwischen Spieler und Computer, legt Beginner fest */ public void spiel() { - if(!spielgestartet) { + System.out.println("Spiel gestartet."); + //Spiel nicht gestartet + if(!spielgestartet) { Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(1); if(zahl == 1) { //Starter durch zufall bestimmen amZug = Spieler.SPIELER; } - else { + else { amZug = Spieler.COMPUTER; } spielgestartet = true; @@ -73,6 +75,8 @@ public class Spiel { kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken return; } + + //Spiel gestartet if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; if(spielzug.zugMoeglich(Spieler.COMPUTER)) { @@ -85,7 +89,9 @@ public class Spiel { } } - + public Spieler getamZug() { + return amZug; + } /** * falls eine Karte gelegt werden kann wird diese gelegt * @param kartenindex From 25e34f7def0ea3a2f28cc331f8d843c9c9514c8b Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 15:38:48 +0100 Subject: [PATCH 20/29] Update 1.1.4 --- src/de/jaujau/gui/Dashboard_GUI.java | 84 ++++++++++++++-------------- src/de/jaujau/gui/GUI.java | 1 + src/de/jaujau/gui/Hilfe_GUI.java | 1 + src/de/jaujau/spiellogik/Spiel.java | 7 ++- 4 files changed, 49 insertions(+), 44 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 46685ab..952d2b7 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -61,17 +61,20 @@ public class Dashboard_GUI extends JPanel{ private final JPanel gegner_hand = new JPanel(); private final JLabel ablagestapel = new JLabel(""); private final JLabel ziehstapel = new JLabel(""); - private final JScrollPane scrollPane = new JScrollPane(); private final JLabel lblNewLabel_2_1 = new JLabel(""); JPanel spielerkarten = new JPanel(); JLabel labels[] = new JLabel[32]; private Audio sound = new Audio(); private Spiel aktuellesSpiel; - private JPanel gegenerkarten = new JPanel(); private JLabel label_aktuellerSpieler; private Texturenpakete texturenpakete; + private final JPanel spielfeldmitte = new JPanel(); + private final JPanel info_panel = new JPanel(); + private final JPanel rechts = new JPanel(); + private final JPanel mitte = new JPanel(); public Dashboard_GUI(Spiel Spiel, Texturenpakete texturen) { + setMinimumSize(new Dimension(1000, 600)); texturenpakete = texturen; texturenpakete.addPaket("StandartTexturenBeta3.zip"); texturenpakete.setAktivesPaket(0); @@ -85,15 +88,18 @@ public class Dashboard_GUI extends JPanel{ spielfeld.setBackground(new Color(128, 128, 128)); game.add(spielfeld, BorderLayout.CENTER); - spielfeld.setLayout(null); + spielfeld.setLayout(new BorderLayout(0, 0)); + player_hand.setPreferredSize(new Dimension(100, 240)); player_hand.setForeground(new Color(169, 169, 169)); player_hand.setBackground(new Color(169, 169, 169)); - player_hand.setBounds(0, 629, 1269, 243); - spielfeld.add(player_hand); + spielfeld.add(player_hand, BorderLayout.SOUTH); player_hand.setLayout(new BorderLayout(0, 0)); JScrollPane scrollPane_1 = new JScrollPane(); + scrollPane_1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + scrollPane_1.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT); + scrollPane_1.setPreferredSize(new Dimension(100, 240)); player_hand.add(scrollPane_1, BorderLayout.CENTER); spielerkarten.setBackground(new Color(169, 169, 169)); @@ -104,22 +110,31 @@ public class Dashboard_GUI extends JPanel{ spielerkarten.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); gegner_hand.setBackground(UIManager.getColor("Button.shadow")); - - gegner_hand.setBounds(0, 0, 1269, 152); - - spielfeld.add(gegner_hand); + spielfeld.add(gegner_hand, BorderLayout.NORTH); gegner_hand.setLayout(new BorderLayout(0, 0)); - gegner_hand.add(scrollPane); - gegenerkarten.setBackground(new Color(169, 169, 169)); + spielfeldmitte.setPreferredSize(new Dimension(100, 20)); + spielfeldmitte.setLayout(new BorderLayout(0, 0)); - scrollPane.setViewportView(gegenerkarten); - ablagestapel.setPreferredSize(new Dimension(242, 362)); - ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); - ablagestapel.setBounds(618, 267, 137, 210); - + JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:"); + beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); + beschreibung_aktuellerSpieler.setForeground(Color.WHITE); + info_panel.add(beschreibung_aktuellerSpieler); + label_aktuellerSpieler = new JLabel("Auswahlphase"); + label_aktuellerSpieler.setForeground(Color.WHITE); + label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); + info_panel.add(label_aktuellerSpieler); - spielfeld.add(ablagestapel); + + spielfeld.add(spielfeldmitte, BorderLayout.CENTER); + + spielfeldmitte.add(info_panel, BorderLayout.NORTH); + rechts.setPreferredSize(new Dimension(250, 10)); + + spielfeldmitte.add(rechts, BorderLayout.EAST); + rechts.setLayout(new BorderLayout(0, 0)); + ziehstapel.setAlignmentX(Component.CENTER_ALIGNMENT); + rechts.add(ziehstapel, BorderLayout.CENTER); ziehstapel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { @@ -130,33 +145,16 @@ public class Dashboard_GUI extends JPanel{ ziehstapel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); ziehstapel.setPreferredSize(new Dimension(242, 362)); ziehstapel.setHorizontalAlignment(SwingConstants.CENTER); - ziehstapel.setBounds(1093, 267, 137, 210); - ziehstapel.setIcon(new ImageIcon(texturenpakete.getTextur(32).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); - + ziehstapel.setIcon(new ImageIcon(texturenpakete.getTextur(32).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); - spielfeld.add(ziehstapel); + spielfeldmitte.add(mitte, BorderLayout.SOUTH); + mitte.setLayout(null); + spielfeldmitte.add(ablagestapel, BorderLayout.CENTER); + ablagestapel.setIcon(new ImageIcon(Dashboard_GUI.class.getResource("/img/texturen/standart/32.png"))); - JButton btnNewButton_1 = new JButton("Audio"); - btnNewButton_1.addMouseListener(new MouseAdapter() { - @Override - public void mouseClicked(MouseEvent e) { - sound.test(); - } - }); - btnNewButton_1.setBounds(26, 197, 89, 23); - spielfeld.add(btnNewButton_1); - JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:"); - beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); - beschreibung_aktuellerSpieler.setForeground(Color.WHITE); - beschreibung_aktuellerSpieler.setBounds(435, 163, 156, 31); - spielfeld.add(beschreibung_aktuellerSpieler); - - label_aktuellerSpieler = new JLabel("Auswahlphase"); - label_aktuellerSpieler.setForeground(Color.WHITE); - label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); - label_aktuellerSpieler.setBounds(601, 163, 163, 31); - spielfeld.add(label_aktuellerSpieler); + ablagestapel.setPreferredSize(new Dimension(242, 362)); + ablagestapel.setHorizontalAlignment(SwingConstants.CENTER); panelCont.add(start, "3"); start.setLayout(new BorderLayout(0, 0)); panel.setPreferredSize(new Dimension(10, 30)); @@ -269,7 +267,7 @@ public class Dashboard_GUI extends JPanel{ aktualisiereGUI(); } }); - labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); spielerkarten.add(labels[i]); spielerkarten.updateUI(); //Panel erneuern } @@ -277,7 +275,7 @@ public class Dashboard_GUI extends JPanel{ void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){ - ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(ziehstapel.getWidth(), ziehstapel.getHeight(), Image.SCALE_SMOOTH))); + ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); ablagestapel.revalidate(); ablagestapel.repaint(); } diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 5812d49..710f4a5 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -40,6 +40,7 @@ public class GUI extends JFrame{ // Constructors // public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) { + setMinimumSize(new Dimension(1000, 600)); aktuellesSpiel = new Spiel(); // jaujau.getAktuellesSpiel(); diff --git a/src/de/jaujau/gui/Hilfe_GUI.java b/src/de/jaujau/gui/Hilfe_GUI.java index a1ea6c1..2a0d30d 100644 --- a/src/de/jaujau/gui/Hilfe_GUI.java +++ b/src/de/jaujau/gui/Hilfe_GUI.java @@ -20,6 +20,7 @@ public class Hilfe_GUI extends JFrame { * Create the frame. */ public Hilfe_GUI() { + setAlwaysOnTop(true); setBounds(100, 100, 588, 382); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index d24dd79..2c83104 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -79,6 +79,8 @@ public class Spiel { //Spiel gestartet if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; + + //wenn möglich Computer soll Karte legen if(spielzug.zugMoeglich(Spieler.COMPUTER)) { //karteLegen(computerGegner.cpu_Zug()); } @@ -86,6 +88,7 @@ public class Spiel { } else { amZug= Spieler.SPIELER; + // Warten auf GUI Eingabe } } @@ -105,7 +108,9 @@ public class Spiel { } if(kartensatz.getHand(amZug).isEmpty()) { audio.spieleJauJau(); - //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? // Spieler Gewonnen aufrufen, Punkte aktualisieren + //Spieler hat gewonnen, keine Karte mehr auf der Hand -- Was passiert? + // Spieler Gewonnen aufrufen, Punkte aktualisieren + // Highscore Page oder Startseite aufrufen } spiel(); effekteSetzen(); From cc8653dd7a87eb895ce45ad977040dac9c5a5f58 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Wed, 6 Jan 2021 15:50:10 +0100 Subject: [PATCH 21/29] Update Namen --- src/de/jaujau/spiellogik/Spiel.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index c5ef4c3..12c29eb 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -21,7 +21,7 @@ public class Spiel { private Kartensatz kartensatz; private Spielzug spielzug; private Computer_gegner computerGegner; - private boolean spielgestartet = false; + private boolean spielgestartet; private boolean aussetzen; private boolean zwei_ziehen; private int kartenZiehen; @@ -31,6 +31,7 @@ public class Spiel { audio = new Audio(); kartensatz = new Kartensatz(); spielzug = new Spielzug(); + spielgestartet = false; } public boolean getAussetzen() { From 7350b7f80e425c38171d78d72143fd97a4859b7a Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Wed, 6 Jan 2021 18:25:27 +0100 Subject: [PATCH 22/29] Spielablauf angepasst --- src/de/jaujau/spiellogik/Spiel.java | 13 +++++++++---- src/de/jaujau/spiellogik/Spielzug.java | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index e4bd0a6..fee9eea 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -62,12 +62,14 @@ public class Spiel { //Spiel nicht gestartet if(!spielgestartet) { Random zufallszahl = new Random(); - int zahl = zufallszahl.nextInt(1); + int zahl = zufallszahl.nextInt(2); if(zahl == 1) { //Starter durch zufall bestimmen amZug = Spieler.SPIELER; + System.out.println("Spieler startet"); } else { amZug = Spieler.COMPUTER; + System.out.println("Computer startet"); } spielgestartet = true; for(int i = 0; i < 7; i++) { //Jeder bekommt 7 Karten @@ -79,9 +81,11 @@ public class Spiel { kartenindex = zufallszahl.nextInt(31); } kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken + System.out.println(kartensatz.getHand(Spieler.COMPUTER)); + System.out.println(kartensatz.getHand(Spieler.SPIELER)); return; } - //Spiel gestartet + //Spiel bereits gestartet if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; @@ -98,8 +102,6 @@ public class Spiel { } - - /** * falls eine Karte gelegt werden kann wird diese gelegt * @param kartenindex @@ -144,6 +146,9 @@ public class Spiel { kartensatz.ziehen(amZug); } } + else { + aussetzen = false; + } } diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 14d4073..37c1331 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -84,7 +84,7 @@ public class Spielzug { */ public boolean zugMoeglich(Spieler spieler) { // Kartensatz kartensatz = Spiel.getKartensatz(); - boolean gefunden = false; + boolean gefunden = true; // ArrayList Hand = kartensatz.getHand(spieler); // for (int i = 0; i < Hand.size(); i++) { // if (pruefeZug(i)) { From 005a3a64f3ac04ccf054a2060dee938f541e474c Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 18:29:43 +0100 Subject: [PATCH 23/29] Dashboard Funktionswechsel --- src/de/jaujau/gui/Dashboard_GUI.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 952d2b7..ad71c0a 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -138,7 +138,7 @@ public class Dashboard_GUI extends JPanel{ ziehstapel.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - aktuellesSpiel.getKartensatz().ziehen(Spieler.SPIELER); + aktuellesSpiel.karteZiehen(); aktualisiereHand(aktuellesSpiel, texturenpakete); } }); From daa468808f50ed27938c0f336d9619ea31bacb8c Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 18:36:19 +0100 Subject: [PATCH 24/29] Dashboard_Game Update --- src/de/jaujau/gui/Dashboard_GUI.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index ad71c0a..08b7cf0 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -118,10 +118,10 @@ public class Dashboard_GUI extends JPanel{ JLabel beschreibung_aktuellerSpieler = new JLabel("Aktueller Spieler:"); beschreibung_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); - beschreibung_aktuellerSpieler.setForeground(Color.WHITE); + beschreibung_aktuellerSpieler.setForeground(Color.BLACK); info_panel.add(beschreibung_aktuellerSpieler); label_aktuellerSpieler = new JLabel("Auswahlphase"); - label_aktuellerSpieler.setForeground(Color.WHITE); + label_aktuellerSpieler.setForeground(Color.BLACK); label_aktuellerSpieler.setFont(new Font("Tahoma", Font.BOLD, 18)); info_panel.add(label_aktuellerSpieler); @@ -286,7 +286,7 @@ public class Dashboard_GUI extends JPanel{ label_aktuellerSpieler.setForeground(Color.RED); } if(aktuellesSpiel.getamZug() == Spieler.SPIELER) { - label_aktuellerSpieler.setText("Gegner"); + label_aktuellerSpieler.setText("Spieler"); label_aktuellerSpieler.setForeground(Color.GREEN); } From ea911d3c208c8a29fd0e66f1a6d6220463354ae4 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 18:40:28 +0100 Subject: [PATCH 25/29] GUI Warnings entfernt --- src/de/jaujau/gui/Dashboard_GUI.java | 19 ------------------- src/de/jaujau/gui/GUI.java | 2 -- src/de/jaujau/gui/Hilfe_GUI.java | 6 ++++-- src/de/jaujau/gui/Navigation_GUI.java | 19 +++++-------------- src/de/jaujau/gui/texturenauswaehlen_GUI.java | 3 --- 5 files changed, 9 insertions(+), 40 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 08b7cf0..522278c 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -6,30 +6,16 @@ import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; - -import de.jaujau.daten.Audio; import de.jaujau.daten.Spieler; import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Texturenpakete; -import de.jaujau.spiellogik.Anwendung; import de.jaujau.spiellogik.Spiel; - -import javax.swing.JTextField; import javax.swing.JLabel; -import javax.swing.BoxLayout; -import javax.swing.ComboBoxModel; -import javax.swing.DefaultComboBoxModel; - import java.awt.Dimension; import java.awt.Image; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - import javax.swing.JComboBox; -import javax.swing.JButton; import javax.swing.SwingConstants; import javax.swing.ImageIcon; -import javax.swing.DebugGraphics; import java.awt.Rectangle; import java.awt.Component; import java.awt.FlowLayout; @@ -37,8 +23,6 @@ import java.awt.ComponentOrientation; import java.awt.Cursor; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; - import javax.swing.UIManager; import java.awt.Font; @@ -55,16 +39,13 @@ public class Dashboard_GUI extends JPanel{ private JComboBox comboBox = new JComboBox(); private final JPanel panel_2 = new JPanel(); private final JLabel lblNewLabel_1 = new JLabel("Entwickler: Sebastian, Moritz, Fabian, Aladin, Elmar"); - private final JButton btnNewButton = new JButton("New button"); private final JPanel spielfeld = new JPanel(); private final JPanel player_hand = new JPanel(); private final JPanel gegner_hand = new JPanel(); private final JLabel ablagestapel = new JLabel(""); private final JLabel ziehstapel = new JLabel(""); - private final JLabel lblNewLabel_2_1 = new JLabel(""); JPanel spielerkarten = new JPanel(); JLabel labels[] = new JLabel[32]; - private Audio sound = new Audio(); private Spiel aktuellesSpiel; private JLabel label_aktuellerSpieler; private Texturenpakete texturenpakete; diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 710f4a5..8b8c817 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -5,7 +5,6 @@ import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Color; -import java.awt.Component; import java.awt.Dimension; import javax.swing.JLabel; import javax.swing.ImageIcon; @@ -13,7 +12,6 @@ import javax.swing.SwingConstants; import de.jaujau.daten.Spielerverwaltung; import de.jaujau.daten.Texturenpakete; -import de.jaujau.spiellogik.Anwendung; import de.jaujau.spiellogik.Spiel; import java.awt.event.MouseAdapter; diff --git a/src/de/jaujau/gui/Hilfe_GUI.java b/src/de/jaujau/gui/Hilfe_GUI.java index 2a0d30d..27cb316 100644 --- a/src/de/jaujau/gui/Hilfe_GUI.java +++ b/src/de/jaujau/gui/Hilfe_GUI.java @@ -1,8 +1,6 @@ package de.jaujau.gui; import java.awt.BorderLayout; -import java.awt.EventQueue; - import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; @@ -14,6 +12,10 @@ import javax.swing.JTextArea; public class Hilfe_GUI extends JFrame { + /** + * + */ + private static final long serialVersionUID = 1L; private JPanel contentPane; /** diff --git a/src/de/jaujau/gui/Navigation_GUI.java b/src/de/jaujau/gui/Navigation_GUI.java index 653f1c4..14ee73f 100644 --- a/src/de/jaujau/gui/Navigation_GUI.java +++ b/src/de/jaujau/gui/Navigation_GUI.java @@ -2,37 +2,28 @@ package de.jaujau.gui; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; - -import javax.swing.Box; -import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.SwingConstants; - import java.awt.BorderLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JLabel; import java.awt.Color; import java.awt.Font; +import java.awt.GridLayout; import java.awt.Image; - import javax.swing.BoxLayout; import java.awt.Component; -import javax.swing.GroupLayout; -import javax.swing.GroupLayout.Alignment; import javax.swing.ImageIcon; -import java.awt.CardLayout; -import java.awt.FlowLayout; -import java.awt.GridLayout; -import java.awt.GridBagLayout; -import java.awt.GridBagConstraints; -import java.awt.Insets; - public class Navigation_GUI extends JPanel implements ActionListener { + /** + * + */ + private static final long serialVersionUID = 1L; private JPanel panel; diff --git a/src/de/jaujau/gui/texturenauswaehlen_GUI.java b/src/de/jaujau/gui/texturenauswaehlen_GUI.java index 88be19b..77dd22a 100644 --- a/src/de/jaujau/gui/texturenauswaehlen_GUI.java +++ b/src/de/jaujau/gui/texturenauswaehlen_GUI.java @@ -1,8 +1,5 @@ package de.jaujau.gui; -import java.util.*; - - /** * Class texturenauswaehlen_GUI */ From bf8acbebd2a1eaae3f693c8d519d15b21ddf604a Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Wed, 6 Jan 2021 19:08:58 +0100 Subject: [PATCH 26/29] =?UTF-8?q?Debugzeilen=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/spiellogik/Spiel.java | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index fee9eea..4cc343f 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -58,9 +58,9 @@ public class Spiel { * Organisiert den Spielablauf */ public void spiel() { - System.out.println("Spiel gestartet."); //Spiel nicht gestartet if(!spielgestartet) { + System.out.println("Spiel gestartet."); Random zufallszahl = new Random(); int zahl = zufallszahl.nextInt(2); if(zahl == 1) { //Starter durch zufall bestimmen @@ -76,27 +76,29 @@ public class Spiel { kartensatz.ziehen(Spieler.COMPUTER); kartensatz.ziehen(Spieler.SPIELER); } - int kartenindex = zufallszahl.nextInt(31); + int kartenindex = zufallszahl.nextInt(32); while(kartensatz.getHand(Spieler.COMPUTER).contains(kartenindex)||kartensatz.getHand(Spieler.SPIELER).contains(kartenindex)) { - kartenindex = zufallszahl.nextInt(31); + kartenindex = zufallszahl.nextInt(32); } kartensatz.ablegen(kartenindex); //nicht in der Hand befindliche Karte zum Start aufdecken - System.out.println(kartensatz.getHand(Spieler.COMPUTER)); - System.out.println(kartensatz.getHand(Spieler.SPIELER)); + System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); + System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); return; } //Spiel bereits gestartet if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; - + System.out.println("Computer am Zug"); //wenn möglich Computer soll Karte legen if(spielzug.zugMoeglich(Spieler.COMPUTER)) { //karteLegen(computerGegner.cpu_Zug()); } + //andernfalls soll gezogen werden else karteZiehen(); } else { amZug= Spieler.SPIELER; + System.out.println("Spieler am Zug"); // Warten auf GUI Eingabe } } @@ -107,6 +109,7 @@ public class Spiel { * @param kartenindex */ public void karteLegen(int kartenindex) { + System.out.println("karteLegen aufgerufen"); if(spielzug.zugMoeglich(amZug)) { if (spielzug.pruefeZug(kartenindex)) { kartensatz.ablegen(kartenindex); @@ -133,6 +136,7 @@ public class Spiel { * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt */ public void karteZiehen(){ + System.out.println("karteZiehen aufgerufen"); if(spielzug.zugMoeglich(amZug)) { if(zwei_ziehen) { for(int i = 0; i < kartenZiehen; i++) { @@ -143,12 +147,16 @@ public class Spiel { spiel(); } else { - kartensatz.ziehen(amZug); + kartensatz.ziehen(amZug); + spiel(); } } else { aussetzen = false; + spiel(); } + System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); + System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); } @@ -164,5 +172,6 @@ public class Spiel { zwei_ziehen = true; kartenZiehen += 2; } + System.out.println("Effekte gesetzt:\nAussetzen: " + aussetzen + "\n Zwei_Ziehen: " + zwei_ziehen ); } } From 2de0ea53c6057cfa3cc7142446d913c3114417d1 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 19:54:39 +0100 Subject: [PATCH 27/29] GUI Bug Fix --- src/de/jaujau/gui/Dashboard_GUI.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index 522278c..c09dd36 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -121,6 +121,7 @@ public class Dashboard_GUI extends JPanel{ public void mouseClicked(MouseEvent e) { aktuellesSpiel.karteZiehen(); aktualisiereHand(aktuellesSpiel, texturenpakete); + aktualisiereGUI(); } }); ziehstapel.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); From e457b21e7da9faf7c708f71f84b1f89daffe7e80 Mon Sep 17 00:00:00 2001 From: Fabian Keller Date: Wed, 6 Jan 2021 21:07:18 +0100 Subject: [PATCH 28/29] Weitere Debug-Ausgaben und korrektur von karteLegen() --- src/de/jaujau/spiellogik/Spiel.java | 9 ++++++--- src/de/jaujau/spiellogik/Spielzug.java | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index 4cc343f..b777346 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -109,9 +109,10 @@ public class Spiel { * @param kartenindex */ public void karteLegen(int kartenindex) { - System.out.println("karteLegen aufgerufen"); if(spielzug.zugMoeglich(amZug)) { + System.out.println("Legen Möglich"); if (spielzug.pruefeZug(kartenindex)) { + System.out.println("pruefeZug positiv"); kartensatz.ablegen(kartenindex); if(kartensatz.getHand(amZug).size() == 1) { audio.spieleJau(); @@ -129,6 +130,8 @@ public class Spiel { else { aussetzen = false; } + System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); + System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); } @@ -136,7 +139,6 @@ public class Spiel { * falls eine oder mehrere Karten gezogen werden können, wird dies ausgeführt */ public void karteZiehen(){ - System.out.println("karteZiehen aufgerufen"); if(spielzug.zugMoeglich(amZug)) { if(zwei_ziehen) { for(int i = 0; i < kartenZiehen; i++) { @@ -157,6 +159,7 @@ public class Spiel { } System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER)); + effekteSetzen(); } @@ -172,6 +175,6 @@ public class Spiel { zwei_ziehen = true; kartenZiehen += 2; } - System.out.println("Effekte gesetzt:\nAussetzen: " + aussetzen + "\n Zwei_Ziehen: " + zwei_ziehen ); + System.out.println("Effekte gesetzt:\nAussetzen: " + aussetzen + "\nZwei_Ziehen: " + zwei_ziehen ); } } diff --git a/src/de/jaujau/spiellogik/Spielzug.java b/src/de/jaujau/spiellogik/Spielzug.java index 37c1331..f4a4ee2 100644 --- a/src/de/jaujau/spiellogik/Spielzug.java +++ b/src/de/jaujau/spiellogik/Spielzug.java @@ -73,7 +73,7 @@ public class Spielzug { // return true; // } // else { - return false; + return true; // auf true geändert für DEBUG!! // } } @@ -84,7 +84,7 @@ public class Spielzug { */ public boolean zugMoeglich(Spieler spieler) { // Kartensatz kartensatz = Spiel.getKartensatz(); - boolean gefunden = true; + boolean gefunden = true; // auf true geändert für DEBUG!! // ArrayList Hand = kartensatz.getHand(spieler); // for (int i = 0; i < Hand.size(); i++) { // if (pruefeZug(i)) { From fc82f1aeae32ed2b0324e83ba3bb7ddb7904fbb4 Mon Sep 17 00:00:00 2001 From: ekresse Date: Wed, 6 Jan 2021 23:02:47 +0100 Subject: [PATCH 29/29] =?UTF-8?q?Update=20GUI=20und=20hinzuf=C3=BCgen=20vo?= =?UTF-8?q?n=20GUI=20Zugriff=20im=20Spiel?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/gui/Dashboard_GUI.java | 19 +++++++++---------- src/de/jaujau/gui/GUI.java | 7 ++----- src/de/jaujau/spiellogik/Spiel.java | 17 +++++++++++------ 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/de/jaujau/gui/Dashboard_GUI.java b/src/de/jaujau/gui/Dashboard_GUI.java index c09dd36..03488d8 100644 --- a/src/de/jaujau/gui/Dashboard_GUI.java +++ b/src/de/jaujau/gui/Dashboard_GUI.java @@ -120,7 +120,6 @@ public class Dashboard_GUI extends JPanel{ @Override public void mouseClicked(MouseEvent e) { aktuellesSpiel.karteZiehen(); - aktualisiereHand(aktuellesSpiel, texturenpakete); aktualisiereGUI(); } }); @@ -169,7 +168,7 @@ public class Dashboard_GUI extends JPanel{ aktuellesSpiel = Spiel; System.out.println("DASHBOARD: Game darstellen"); cl.show(panelCont, "2"); - aktuellesSpiel.spiel(); + aktuellesSpiel.spiel(this); aktualisiereGUI(); } @@ -223,7 +222,7 @@ public class Dashboard_GUI extends JPanel{ } - void aktualisiereHand(Spiel aktuellesSpiel, Texturenpakete texturen) { + void aktualisiereHand() { //Alle Elemente entfernen for(Component c : spielerkarten.getComponents()){ @@ -249,20 +248,20 @@ public class Dashboard_GUI extends JPanel{ aktualisiereGUI(); } }); - labels[i].setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); + labels[i].setIcon(new ImageIcon(texturenpakete.getTextur(aktuellesSpiel.getKartensatz().getHand(Spieler.SPIELER).get(i)).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); spielerkarten.add(labels[i]); spielerkarten.updateUI(); //Panel erneuern } } - void aktualisiereAblage(Spiel aktuellesSpiel, Texturenpakete texturen){ - ablagestapel.setIcon(new ImageIcon(texturen.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); + void aktualisiereAblage(){ + ablagestapel.setIcon(new ImageIcon(texturenpakete.getTextur(aktuellesSpiel.getKartensatz().getletzteKarte()).getScaledInstance(150, 210, Image.SCALE_SMOOTH))); ablagestapel.revalidate(); ablagestapel.repaint(); } - void aktualisiereSpieleranzeige(Spiel aktuellesSpiel) { + void aktualisiereSpieleranzeige() { if(aktuellesSpiel.getamZug() == Spieler.COMPUTER) { label_aktuellerSpieler.setText("Gegner"); label_aktuellerSpieler.setForeground(Color.RED); @@ -279,9 +278,9 @@ public class Dashboard_GUI extends JPanel{ } public void aktualisiereGUI(){ - aktualisiereSpieleranzeige(aktuellesSpiel); - aktualisiereAblage(aktuellesSpiel, texturenpakete); - aktualisiereHand(aktuellesSpiel, texturenpakete); + aktualisiereSpieleranzeige(); + aktualisiereAblage(); + aktualisiereHand(); } } diff --git a/src/de/jaujau/gui/GUI.java b/src/de/jaujau/gui/GUI.java index 8b8c817..b255ba7 100644 --- a/src/de/jaujau/gui/GUI.java +++ b/src/de/jaujau/gui/GUI.java @@ -40,7 +40,7 @@ public class GUI extends JFrame{ public GUI (Texturenpakete texturenpakete, Spielerverwaltung speicherung) { setMinimumSize(new Dimension(1000, 600)); - aktuellesSpiel = new Spiel(); + // jaujau.getAktuellesSpiel(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("JauJau"); @@ -122,9 +122,6 @@ public class GUI extends JFrame{ //Spiel_GUI Spiel_GUI = new Spiel_GUI(); dashboard.add(Dashboard_GUI, BorderLayout.CENTER); - - - //Event Listener @@ -159,7 +156,7 @@ public class GUI extends JFrame{ gamelabel.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { - aktuellesSpiel = new Spiel(); + aktuellesSpiel = new Spiel(Dashboard_GUI); System.out.println("GUI: Spiel GUI geöffnet"); Dashboard_GUI.showgame(aktuellesSpiel); } diff --git a/src/de/jaujau/spiellogik/Spiel.java b/src/de/jaujau/spiellogik/Spiel.java index b777346..7bfe263 100644 --- a/src/de/jaujau/spiellogik/Spiel.java +++ b/src/de/jaujau/spiellogik/Spiel.java @@ -6,6 +6,7 @@ import de.jaujau.daten.Audio; import de.jaujau.daten.Kartensatz; import de.jaujau.daten.Spieler; import de.jaujau.daten.Wert; +import de.jaujau.gui.Dashboard_GUI; @@ -25,13 +26,15 @@ public class Spiel { private boolean aussetzen; private boolean zwei_ziehen; private int kartenZiehen; + private Dashboard_GUI dashboard; - public Spiel() { + public Spiel(Dashboard_GUI dashboard_gui) { computerGegner = new Computer_gegner(); audio = new Audio(); kartensatz = new Kartensatz(); spielzug = new Spielzug(); spielgestartet = false; + dashboard = dashboard_gui; } public boolean getAussetzen() { @@ -57,7 +60,7 @@ public class Spiel { /** * Organisiert den Spielablauf */ - public void spiel() { + public void spiel(Dashboard_GUI dashboard) { //Spiel nicht gestartet if(!spielgestartet) { System.out.println("Spiel gestartet."); @@ -88,6 +91,7 @@ public class Spiel { //Spiel bereits gestartet if(amZug == Spieler.SPIELER) { amZug = Spieler.COMPUTER; + dashboard.aktualisiereGUI(); //Komplette GUI wird aktualisiert System.out.println("Computer am Zug"); //wenn möglich Computer soll Karte legen if(spielzug.zugMoeglich(Spieler.COMPUTER)) { @@ -123,8 +127,9 @@ public class Spiel { // Spieler Gewonnen aufrufen, Punkte aktualisieren // Highscore Page oder Startseite aufrufen } - spiel(); effekteSetzen(); + spiel(dashboard); + } } else { @@ -146,16 +151,16 @@ public class Spiel { } kartenZiehen = 0; zwei_ziehen = false; - spiel(); + spiel(dashboard); } else { kartensatz.ziehen(amZug); - spiel(); + spiel(dashboard); } } else { aussetzen = false; - spiel(); + spiel(dashboard); } System.out.println("Kartenhand von COMPUTER: " + kartensatz.getHand(Spieler.COMPUTER)); System.out.println("Kartenhand von SPIELER: " + kartensatz.getHand(Spieler.SPIELER));