From 4c413f252ccd2dad7c91459ab82cc115e3d61af0 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Sat, 23 Sep 2017 04:24:36 +0800 Subject: [PATCH 001/245] gradle fix --- gradlew.bat | 168 ++++++++++++++++++++++++------------------------ settings.gradle | 19 ------ 2 files changed, 84 insertions(+), 103 deletions(-) diff --git a/gradlew.bat b/gradlew.bat index f9553162f1..e95643d6a2 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,84 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle index bb0b5acb60..930059b4c0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,21 +1,2 @@ rootProject.name = 'atom' include 'lecture01' -include 'lecture02' -include 'lecture03' -include 'lecture04' -include 'lecture05' -include 'lecture06' -include 'lecture07' -include 'lecture08' -include 'lecture09' -include 'lecture10' -include 'lecture11' -include 'lecture12' - -include 'homeworks/HW1' -include 'homeworks/HW3' - -include 'web_hackaton' -include 'db_hackaton' - -include 'bomberman/frontend' From 58aac39e34548f900d2d5fc1e2b6454e8c3b3bff Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Sat, 23 Sep 2017 04:28:29 +0800 Subject: [PATCH 002/245] fix gradle --- gradlew | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/gradlew b/gradlew index 9aa616c273..cccdd3d517 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -33,11 +33,11 @@ DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -154,16 +154,19 @@ if $cygwin ; then esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]]; then +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then cd "$(dirname "$0")" fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" From 15e2577957f32793cfd2d3246e622adfdf2eb549 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Sat, 23 Sep 2017 04:31:33 +0800 Subject: [PATCH 003/245] fix gradle --- gradle/wrapper/gradle-wrapper.jar | Bin 52928 -> 54708 bytes gradle/wrapper/gradle-wrapper.properties | 5 ++--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 6ffa237849ef3607e39c3b334a92a65367962071..736fb7d3f94c051b359fc7ae7212d351bc094bdd 100644 GIT binary patch delta 24211 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 VITCO{VAF#Xj1~cdCDmbn{U5DGJyQSx diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0666027151..6109d5b6ac 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Tue Feb 28 21:18:34 MSK 2017 +distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip +zipStoreBase=GRADLE_USER_HOME From f701771328df0939b83e20ed7ad583d0be2f5835 Mon Sep 17 00:00:00 2001 From: Sergey Rybalkin Date: Sat, 23 Sep 2017 15:36:01 +0300 Subject: [PATCH 004/245] upd jdk --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 596108b68e..e00715ea9f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,7 @@ language: java jdk: - - oraclejdk8 + - oraclejdk9 after_success: - ./gradlew jacocoTestReport coveralls From c00dfaaddd3fdd251db22c24e6bc13b548149deb Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 27 Sep 2017 15:12:16 +0300 Subject: [PATCH 005/245] jdk9 fixes --- build.gradle | 2 +- lecture02/src/main/java/ru/atom/geometry/Geometry.java | 5 ++--- lecture02/src/main/java/ru/atom/geometry/Point.java | 4 +--- settings.gradle | 1 + 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index fc007b1f5f..f4ab86a3b1 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { // constants declaration ext { - jdkVersion = 1.8 + jdkVersion = 1.9 jettyVersion = "9.3.12.v20160915" junitVersion = "4.12" diff --git a/lecture02/src/main/java/ru/atom/geometry/Geometry.java b/lecture02/src/main/java/ru/atom/geometry/Geometry.java index 3356bd34a8..92edef1ccf 100644 --- a/lecture02/src/main/java/ru/atom/geometry/Geometry.java +++ b/lecture02/src/main/java/ru/atom/geometry/Geometry.java @@ -1,6 +1,5 @@ package ru.atom.geometry; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; /** * ^ Y * | @@ -23,7 +22,7 @@ private Geometry() { * @return new Bar */ public static Collider createBar(int firstPointX, int firstCornerY, int secondCornerX, int secondCornerY) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } /** @@ -31,6 +30,6 @@ public static Collider createBar(int firstPointX, int firstCornerY, int secondCo * @return new Point */ public static Collider createPoint(int x, int y) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } diff --git a/lecture02/src/main/java/ru/atom/geometry/Point.java b/lecture02/src/main/java/ru/atom/geometry/Point.java index c76f6641bd..6f13561350 100644 --- a/lecture02/src/main/java/ru/atom/geometry/Point.java +++ b/lecture02/src/main/java/ru/atom/geometry/Point.java @@ -1,7 +1,5 @@ package ru.atom.geometry; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - /** * Template class for */ @@ -22,6 +20,6 @@ public boolean equals(Object o) { Point point = (Point) o; // your code here - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } diff --git a/settings.gradle b/settings.gradle index 930059b4c0..98b44da972 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,3 @@ rootProject.name = 'atom' include 'lecture01' +include 'lecture02' From 1ffbfad163bc66b7024cf3cdcd446eec0fcbb4e8 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 27 Sep 2017 15:18:31 +0300 Subject: [PATCH 006/245] unignore tests --- .../src/test/java/ru/atom/geometry/BarBarCollisionTest.java | 2 -- .../src/test/java/ru/atom/geometry/BarPointCollisionTest.java | 2 -- .../src/test/java/ru/atom/geometry/PointPointCollisionTest.java | 2 -- 3 files changed, 6 deletions(-) diff --git a/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java b/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java index db936058a6..c6e1155c68 100644 --- a/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java +++ b/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java @@ -1,12 +1,10 @@ package ru.atom.geometry; -import org.junit.Ignore; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -@Ignore public class BarBarCollisionTest { @Test public void barSelfCollide() { diff --git a/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java b/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java index 8acdfc64a7..4e9f59f4a5 100644 --- a/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java +++ b/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java @@ -1,12 +1,10 @@ package ru.atom.geometry; -import org.junit.Ignore; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -@Ignore public class BarPointCollisionTest { @Test public void pointInsideBar() { diff --git a/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java b/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java index b1eee7017e..3ec2cb1c35 100644 --- a/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java +++ b/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java @@ -1,12 +1,10 @@ package ru.atom.geometry; -import org.junit.Ignore; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -@Ignore public class PointPointCollisionTest { @Test public void pointSelfCollide() { From d9d19907f88e1090de11e4e91f4ed62ae476d2b5 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 27 Sep 2017 16:52:57 +0300 Subject: [PATCH 007/245] lecture02 fixes --- lecture02/presentation/PITCHME.md | 262 ++++++++++++++---- .../main/java/ru/atom/geometry/Geometry.java | 2 +- .../main/java/ru/atom/makejar/HelloWorld.java | 2 +- .../ru/atom/geometry/BarBarCollisionTest.java | 2 + .../atom/geometry/BarPointCollisionTest.java | 2 + .../geometry/PointPointCollisionTest.java | 2 + settings.gradle | 1 - 7 files changed, 215 insertions(+), 58 deletions(-) diff --git a/lecture02/presentation/PITCHME.md b/lecture02/presentation/PITCHME.md index dd609ab1fd..f04c455aad 100644 --- a/lecture02/presentation/PITCHME.md +++ b/lecture02/presentation/PITCHME.md @@ -14,25 +14,115 @@ https://atom.mail.ru/ > git checkout -b lecture02 upstream/lecture02 ``` +#HSLIDE +## About me +me + + alpieex@gmail.com + [https://github.com/Al-p-i](https://github.com/Al-p-i) + +- Java 6+ years +- MailRu, Headhunter +- Currently engineer at AliExpress.com + +**Люблю смотреть, как другие работают** + #HSLIDE ### Agenda +1. gradle 1. Classes and objects 1. Inheritance 1. Interface and abstract class 1. Enum +1. Practice + +#HSLIDE +### Gradle +1. **[gradle]** +1. Classes and objects +1. Inheritance +1. Interface and Abstract class +1. Enum +1. Practice + + +#HSLIDE +## How gradlew works +Our gradle project is multi-project +**settings.gradle** - which projects to build +**build.gradle** - how to build project + +you can use gradle on specific subproject: +```bash +./gradlew :lecture02:clean +``` + + +#HSLIDE +### gradlew clean build +```bash +> ./gradlew :lecture02:clean :lecture02:clean +blah-blah +BUILD SUCCESSFUL + +> java -jar lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar +Hello, World! + +# jar listing +> jar -tfv lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar +... +``` + +#HSLIDE +### gradlew jar +**jar** - Java Archive (way to distribute project in one *executable*) +to build **jar** with gradle +```bash +# build fat jar @see build.gradle in lecture02 submodule +> ./gradlew :lecture02:jar +blah-blah +BUILD SUCCESSFUL + +> java -jar lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar +Hello, World! + +# jar listing +> jar -tfv lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar +... +``` + + +#HSLIDE +### gradlew jar +To build fat jar @see lecture02/build.gradle +```bash +> ./gradlew :lecture02:jar +> blah-blah +> BUILD SUCCESSFUL + +> java -jar lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar +> Hello, World! + +# jar listing +> jar -tfv lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar +``` #HSLIDE ### Classes and objects +1. gradle 1. **[Classes and objects]** 1. Inheritance 1. Interface and Abstract class 1. Enum +1. Practice + #HSLIDE ### Flashback - Java is **object-oriented**, **class-based** - Java has static strong typization + #HSLIDE ### Static strong typization - Static == compile time @@ -44,12 +134,14 @@ https://atom.mail.ru/ long num = 42; // <-- legal int mindTheGap = 42L; // <-- compilation error ``` - + + #HSLIDE ### Object oriented -- Everything is an object* +- Everything is an object (except primitives) - No code outside class + #HSLIDE ### `class` Definition ```java @@ -59,6 +151,15 @@ class Player { } ``` +#HSLIDE +### Where class can be defined +1. Public class in file (only one) +1. non-public class in file (any number) +1. inside other class (**nested class**) +1. inside method (**inner class**) + +Be simple, use public class in file + #HSLIDE ### Instantiation ```java @@ -102,7 +203,7 @@ System.out.println(null == null); [Read more about `null`](http://javarevisited.blogspot.ru/2014/12/9-things-about-null-in-java.html) #HSLIDE -###Constructor +### Constructor ```java class Player { private int id; @@ -147,7 +248,7 @@ Player customPlayer = new Player(10, "Niels Bohr"); #HSLIDE ### Default constructor -Of course *NO*. +**NO**. ```java Player simplePlayer = new Player(); // <-- Compilation error ``` @@ -161,10 +262,12 @@ The default constructor is a no-argument constructor automatically generated **u #HSLIDE ### Inheritance +1. gradle 1. Classes and objects 1. **[Inheritance]** 1. Interface and Abstract class 1. Enum +1. Practice #HSLIDE @@ -196,21 +299,19 @@ Titled message **is a** Message ```java private Object topSecret; ``` - 1. **default** (package private) - as private + within package ```java int number = 42; ``` - 1. **protected** - as default + from subclasses ```java protected Boolean секретик; ``` - 1. **public** - worldwide ```java public String getMe; ``` +1. Modules visibility [Read more in official docs](https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) @@ -422,6 +523,11 @@ and **return type** as an instance method in the superclass **overrides** the su **Note:** `@Override` is **just an annotation to declare** your intentions to override method +#HSLIDE +### Override vs overload note + +**Override** resolves method in **runtime** +**Overload** resolves method in **compile-time** #HSLIDE ### `Object` class #2 @@ -440,8 +546,7 @@ class Object { #HSLIDE -### So - +### toString() ```java class Message { private String content; @@ -453,36 +558,94 @@ class Message { } ``` - #HSLIDE -### Polymorphism, One more thing #1 +### Two ways to compare objects +1. **==** +Compares that references point to the same object in memory +1. **equals()** +Custom object equivalence check (by default works as **==**) +#HSLIDE +### equals() ```java -Message message = new TitledMessage("Awesome title", "Perfect content"); +public class Point { + private int x; + private int y; + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; -message instanceOf TitledMessage <-- It is true + Point point = (Point) o; + return x == point.x && y == point.y; + } +} ``` +#HSLIDE +### Encapsulation wisdom + +```java +Message message = new TitledMessage("Awesome title", "Perfect content"); +message instanceOf TitledMessage // <-- It is true +``` +Software engineering wisdom: **Do not** disclose the details of implementation (without need). +Use "interface" wherever you can. + +*btw why?* -Сonsequence - use "interface" wherever you can. +#HSLIDE +### `final` keyword +- constant declaration +```java +class Utils { + public final int DEFAULT_MAX = 0; +} +``` + +- final method (forbidden override) +```java +class Message { + public final String getContent() { + return content; + } +} +``` #HSLIDE -### Polymorphism, One more thing #2 - -Override resolves method in **runtime** +### Immutable points +```java +public class Point { + private final int x; + private final int y; +} +``` +NOTE: +```java +public class Bar { + //does not incur Point immutability, only firstCorner reference + private final Point firstCorner; + private final Point secondCorner; +} +``` -*Note:* -Overload resolves method in **compile-time** +#HSLIDE +### Encapsulation wisdom +Use immutable (**final**) where possible + +*btw why?* #HSLIDE ### Interface and Abstract class +1. gradle 1. Classes and objects 1. Inheritance 1. **[Interface and Abstract class]** 1. Enum +1. Practice #HSLIDE @@ -571,10 +734,12 @@ public class Englishman extends AbstractHuman { #HSLIDE +1. gradle 1. Classes and objects 1. Inheritance 1. Interface and Abstract class 1. **[Enum]** +1. Practice #HSLIDE @@ -644,25 +809,6 @@ Fundamental classes are in java.lang [Read more in official docs](https://docs.oracle.com/javase/tutorial/java/package/packages.html) - -#HSLIDE -### `final` keyword - -- constant declaration -```java -class Utils { - public final int DEFAULT_MAX = 0; -} -``` - -- final method (forbidden override) -```java -class Message { - public final String getContent() { - return content; - } -} -``` - final class (forbidden inheritance) ```java @@ -671,6 +817,15 @@ final class Message { ``` +#HSLIDE +### Agenda +1. gradle +1. Classes and objects +1. Inheritance +1. Interface and abstract class +1. Enum +1. Practice + #HSLIDE ### Practice @See ru.atom.geometry @@ -679,34 +834,31 @@ final class Message { #HSLIDE -### How to +### Practice 'what to do' +1. Unignore 1. Pull-request from your repo /lecture02 to course repo /lecture02 -2. 3 Points +2. 2 Points - remove `@Ignore` from `PointPointCollisionTest` - all tests and checks should pass 3. 3 Points more - remove `@Ignore` from `BarBarCollisionTest` and `BarPointCollisionTest` - all tests and checks should pass - -#HSLIDE -### Bonus - gradlew build -```bash -# build fat jar @see build.gradle in lecture02 submodule -> ./gradlew :lecture02:jar -> blah-blah -> BUILD SUCCESSFUL - -> java -jar lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar -> Hello, World! - -# jar listing -> jar -tfv lecture02/build/libs/lecture02-1.0-SNAPSHOT.jar -``` +#HSLIDE +## Summary +1. Java - object-oriented, class-based +1. All code inside classes +1. All classes inherited from Object +1. No multiple inheritance, multiple interface implementations +1. private, protected, *default*, access public modifiers +1. overload, override +1. equals() vs == +1. know how to create and run **jar** #HSLIDE **Оставьте обратную связь** (вам на почту придет анкета) +Ставьте класс! **Это важно!** diff --git a/lecture02/src/main/java/ru/atom/geometry/Geometry.java b/lecture02/src/main/java/ru/atom/geometry/Geometry.java index 92edef1ccf..79a8c95465 100644 --- a/lecture02/src/main/java/ru/atom/geometry/Geometry.java +++ b/lecture02/src/main/java/ru/atom/geometry/Geometry.java @@ -21,7 +21,7 @@ private Geometry() { * (It is not relevant, which opposite corners you choose to define bar) * @return new Bar */ - public static Collider createBar(int firstPointX, int firstCornerY, int secondCornerX, int secondCornerY) { + public static Collider createBar(int firstCornerX, int firstCornerY, int secondCornerX, int secondCornerY) { throw new UnsupportedOperationException(); } diff --git a/lecture02/src/main/java/ru/atom/makejar/HelloWorld.java b/lecture02/src/main/java/ru/atom/makejar/HelloWorld.java index acbe22c471..25f95b5bd4 100644 --- a/lecture02/src/main/java/ru/atom/makejar/HelloWorld.java +++ b/lecture02/src/main/java/ru/atom/makejar/HelloWorld.java @@ -9,6 +9,6 @@ public static void main(String[] args) { } public static String getHelloWorld() { - throw new NullPointerException("Ой всё"); + return "Hello, World!"; } } diff --git a/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java b/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java index c6e1155c68..db936058a6 100644 --- a/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java +++ b/lecture02/src/test/java/ru/atom/geometry/BarBarCollisionTest.java @@ -1,10 +1,12 @@ package ru.atom.geometry; +import org.junit.Ignore; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; +@Ignore public class BarBarCollisionTest { @Test public void barSelfCollide() { diff --git a/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java b/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java index 4e9f59f4a5..8acdfc64a7 100644 --- a/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java +++ b/lecture02/src/test/java/ru/atom/geometry/BarPointCollisionTest.java @@ -1,10 +1,12 @@ package ru.atom.geometry; +import org.junit.Ignore; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; +@Ignore public class BarPointCollisionTest { @Test public void pointInsideBar() { diff --git a/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java b/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java index 3ec2cb1c35..b1eee7017e 100644 --- a/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java +++ b/lecture02/src/test/java/ru/atom/geometry/PointPointCollisionTest.java @@ -1,10 +1,12 @@ package ru.atom.geometry; +import org.junit.Ignore; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; +@Ignore public class PointPointCollisionTest { @Test public void pointSelfCollide() { diff --git a/settings.gradle b/settings.gradle index 98b44da972..3d479db7d5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,2 @@ rootProject.name = 'atom' -include 'lecture01' include 'lecture02' From dd9be1b5d62de9c856c3cb5c0e78abdf975d50e0 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 27 Sep 2017 16:57:26 +0300 Subject: [PATCH 008/245] lecture02 fixes --- lecture02/presentation/PITCHME.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lecture02/presentation/PITCHME.md b/lecture02/presentation/PITCHME.md index f04c455aad..d37b1d4acc 100644 --- a/lecture02/presentation/PITCHME.md +++ b/lecture02/presentation/PITCHME.md @@ -248,7 +248,7 @@ Player customPlayer = new Player(10, "Niels Bohr"); #HSLIDE ### Default constructor -**NO**. +**NO** default constructor, if any constructor is defined. ```java Player simplePlayer = new Player(); // <-- Compilation error ``` @@ -589,7 +589,7 @@ public class Point { Message message = new TitledMessage("Awesome title", "Perfect content"); message instanceOf TitledMessage // <-- It is true ``` -Software engineering wisdom: +Software engineering wisdom: **Do not** disclose the details of implementation (without need). Use "interface" wherever you can. From 86b0f2a5b97f39fa39233b3374581e9ad6b45289 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 4 Oct 2017 14:34:28 +0300 Subject: [PATCH 009/245] java 9 transition fixes --- .../atom/{http => list}/CustomLinkedList.java | 40 +++++++++---------- .../java/ru/atom/{http => list}/ListNode.java | 0 .../{http => list}/CustomLinkedListTest.java | 0 settings.gradle | 2 + 4 files changed, 21 insertions(+), 21 deletions(-) rename lecture03/src/main/java/ru/atom/{http => list}/CustomLinkedList.java (78%) rename lecture03/src/main/java/ru/atom/{http => list}/ListNode.java (100%) rename lecture03/src/test/java/ru/atom/{http => list}/CustomLinkedListTest.java (100%) diff --git a/lecture03/src/main/java/ru/atom/http/CustomLinkedList.java b/lecture03/src/main/java/ru/atom/list/CustomLinkedList.java similarity index 78% rename from lecture03/src/main/java/ru/atom/http/CustomLinkedList.java rename to lecture03/src/main/java/ru/atom/list/CustomLinkedList.java index 8607310362..4bf7fba8fa 100644 --- a/lecture03/src/main/java/ru/atom/http/CustomLinkedList.java +++ b/lecture03/src/main/java/ru/atom/list/CustomLinkedList.java @@ -1,7 +1,5 @@ package ru.atom.list; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - import java.util.Collection; import java.util.Iterator; import java.util.List; @@ -12,67 +10,67 @@ public class CustomLinkedList implements List { @Override public int size() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public boolean isEmpty() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public boolean contains(Object o) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public Iterator iterator() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public boolean add(E e) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public boolean remove(Object o) { - throw new NotImplementedException(); - } - - @Override - public boolean containsAll(Collection c) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public void clear() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public E get(int index) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public int indexOf(Object o) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public boolean addAll(Collection c) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } - - - - /* !!! Implement methods below Only if you know what you are doing !!! */ + @Override + public boolean containsAll(Collection c) { + for (Object o : c) { + if (!contains(o)) { + return true; + } + } + return true; + } /** * Do not implement diff --git a/lecture03/src/main/java/ru/atom/http/ListNode.java b/lecture03/src/main/java/ru/atom/list/ListNode.java similarity index 100% rename from lecture03/src/main/java/ru/atom/http/ListNode.java rename to lecture03/src/main/java/ru/atom/list/ListNode.java diff --git a/lecture03/src/test/java/ru/atom/http/CustomLinkedListTest.java b/lecture03/src/test/java/ru/atom/list/CustomLinkedListTest.java similarity index 100% rename from lecture03/src/test/java/ru/atom/http/CustomLinkedListTest.java rename to lecture03/src/test/java/ru/atom/list/CustomLinkedListTest.java diff --git a/settings.gradle b/settings.gradle index 3d479db7d5..1d9b7da09e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,4 @@ rootProject.name = 'atom' +include 'lecture01' include 'lecture02' +include 'lecture03' From b0c52a77df986de004d4d0f8a66ec1c64d464590 Mon Sep 17 00:00:00 2001 From: apomosov Date: Sat, 4 Mar 2017 14:46:28 +0300 Subject: [PATCH 010/245] # This is a combination of 11 commits. # This is the 1st commit message: Homework2 # This is the commit message #2: Homework2 # This is the commit message #3: Homework2 # This is the commit message #4: Homework2 # This is the commit message #5: Homework2 # This is the commit message #6: Homework2 # This is the commit message #7: Homework2 # This is the commit message #8: Homework2 # This is the commit message #9: Homework2 # This is the commit message #10: Homework2 # This is the commit message #11: Homework2 --- homeworks/HW2/.gitignore | 0 homeworks/HW2/PITCHME.md | 49 ++++++++++ homeworks/HW2/PITCHME.yaml | 3 + homeworks/HW2/assets/css/PITCHME.css | 23 +++++ homeworks/HW2/assets/img/diagram.png | Bin 0 -> 9776 bytes homeworks/HW2/build.gradle | 17 ++++ .../main/java/ru.atom/geometry/Collider.java | 11 +++ .../src/main/java/ru.atom/geometry/Point.java | 47 ++++++++++ .../main/java/ru.atom/model/GameObject.java | 11 +++ .../main/java/ru.atom/model/GameSession.java | 33 +++++++ .../src/main/java/ru.atom/model/Movable.java | 18 ++++ .../main/java/ru.atom/model/Positionable.java | 20 ++++ .../main/java/ru.atom/model/Temporary.java | 17 ++++ .../src/main/java/ru.atom/model/Tickable.java | 11 +++ .../src/test/java/ru/atom/GameModelTest.java | 87 ++++++++++++++++++ .../java/ru/atom/TestGameSessionCreator.java | 16 ++++ 16 files changed, 363 insertions(+) create mode 100644 homeworks/HW2/.gitignore create mode 100644 homeworks/HW2/PITCHME.md create mode 100644 homeworks/HW2/PITCHME.yaml create mode 100644 homeworks/HW2/assets/css/PITCHME.css create mode 100644 homeworks/HW2/assets/img/diagram.png create mode 100644 homeworks/HW2/build.gradle create mode 100644 homeworks/HW2/src/main/java/ru.atom/geometry/Collider.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/geometry/Point.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/model/GameObject.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/model/GameSession.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/model/Movable.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/model/Positionable.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/model/Temporary.java create mode 100644 homeworks/HW2/src/main/java/ru.atom/model/Tickable.java create mode 100644 homeworks/HW2/src/test/java/ru/atom/GameModelTest.java create mode 100644 homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java diff --git a/homeworks/HW2/.gitignore b/homeworks/HW2/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/homeworks/HW2/PITCHME.md b/homeworks/HW2/PITCHME.md new file mode 100644 index 0000000000..ec1cb149d8 --- /dev/null +++ b/homeworks/HW2/PITCHME.md @@ -0,0 +1,49 @@ +#HSLIDE +##Домашнее задание 2 +С этого домашнего задания мы начинаем разработку сервера для игры **bomber-man** + +Клиент мы возьмем из этого проекта: +[http://bombergirl.matousskala.cz/](http://bombergirl.matousskala.cz/) + +Поиграйте в игру и подумайте, какие классы нужны для описания механики игры **на сервере**. (Из названия игры понятно, что там должны быть как минимум бомбы и девочки) + +**Важно:** +1. Реализуйте только игровые сущности, которые нужны на сервере, интерфейс и прочие "неигровые" сущности относятся к клиенту +2. Реализуйте только ту механику, которая указана далее + +#HSLIDE +### Диаграмма интерфейсов, которые необходимо реализовать +diagram + + +#HSLIDE +### Реализуйте модель игровых объектов +1. Игровые классы должны реализовывать интерфейс **GameObject** + +2. Какие игровые объекты можно расположить на карте? + Реализуйте для них интерфейс **Positionable** + +3. Какие игровые объекты должны двигаться? + Реализуйте для них интерфейс **Movable**. Не реализуйте столкновения + +4. Какие игровые объекты живут только определенное время? +Реализуйте интерфейс **Temporary**. Реализуйте смерть таких игровых объектов по истечении **lifeTime** внутри метода **isDead()** + +5. Заполните игровую сессию игровыми объектами внутри **GameSessionCreator** - по **два** на каждый класс объекта. Залоггируйте создание каждого игрового объекта + +#HSLIDE +###Как сдавать? + +1) Создайте ветку **homework2** +```bash +> git fetch upstream +> git checkout -b homework2 upstream/homework2 +``` +2) выполните в ней задание2 и запушьте в свой репозитрий +```bash +> git push origin homework2 +``` +3) Сделайте **pull request** в репозиторий курса в ветку **homework2** + +**Количество баллов:** 5 +**Срок сдачи:** 11.03 \ No newline at end of file diff --git a/homeworks/HW2/PITCHME.yaml b/homeworks/HW2/PITCHME.yaml new file mode 100644 index 0000000000..c28d621a8b --- /dev/null +++ b/homeworks/HW2/PITCHME.yaml @@ -0,0 +1,3 @@ +theme-override : lecture02/presentation/assets/css/PITCHME.css +logo : lecture02/presentation/assets/img/atom.png +slide-number: true diff --git a/homeworks/HW2/assets/css/PITCHME.css b/homeworks/HW2/assets/css/PITCHME.css new file mode 100644 index 0000000000..ea9aebe44e --- /dev/null +++ b/homeworks/HW2/assets/css/PITCHME.css @@ -0,0 +1,23 @@ +.reveal .slides { + text-align: left; +} +.reveal .slides section>* { + margin-left: 0; + margin-right: 0; +} +.reveal section img { + border: 0; + box-shadow: none; +} +.reveal { + font-size: 24px; +} +.reveal h3 { + margin-top: 1; + margin-bottom: 0; +} + +.reveal .slide-number { + font-size: 24pt; + color: #ffffff; +} \ No newline at end of file diff --git a/homeworks/HW2/assets/img/diagram.png b/homeworks/HW2/assets/img/diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..b22618bc5db3c26b322156a627165dba75cadbaf GIT binary patch literal 9776 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 W+Vfdd0bhds27aj`SN`Hn(EkF~{7B#c literal 0 HcmV?d00001 diff --git a/homeworks/HW2/build.gradle b/homeworks/HW2/build.gradle new file mode 100644 index 0000000000..1812e0c129 --- /dev/null +++ b/homeworks/HW2/build.gradle @@ -0,0 +1,17 @@ +dependencies { + testCompile rootProject.libraries.junit + compile rootProject.libraries.log4j +} + +sourceSets { + main { + java { + srcDirs = ['src/main/java'] + } + } + test { + java { + srcDirs = ['src/test/java'] + } + } +} \ No newline at end of file diff --git a/homeworks/HW2/src/main/java/ru.atom/geometry/Collider.java b/homeworks/HW2/src/main/java/ru.atom/geometry/Collider.java new file mode 100644 index 0000000000..1326a930d8 --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/geometry/Collider.java @@ -0,0 +1,11 @@ +package ru.atom.geometry; + +/** + * Entity that can physically intersect, like flame and player + */ +public interface Collider { + /** + * @return true if Colliders geometrically intersect + */ + boolean isColliding(Collider other); +} \ No newline at end of file diff --git a/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java b/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java new file mode 100644 index 0000000000..4ad58304c6 --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java @@ -0,0 +1,47 @@ +package ru.atom.geometry; + +import sun.reflect.generics.reflectiveObjects.NotImplementedException; + +public class Point implements Collider { + private final int x; + private final int y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Point point = (Point) o; + + if (x != point.x) return false; + return y == point.y; + } + + @Override + public int hashCode() { + int result = x; + result = 31 * result + y; + return result; + } + + @Override + public boolean isColliding(Collider other) { + if(other instanceof Point){ + return this.equals(other); + } + throw new NotImplementedException(); + } +} diff --git a/homeworks/HW2/src/main/java/ru.atom/model/GameObject.java b/homeworks/HW2/src/main/java/ru.atom/model/GameObject.java new file mode 100644 index 0000000000..0b2ecf881d --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/model/GameObject.java @@ -0,0 +1,11 @@ +package ru.atom.model; + +/** + * Any entity of game mechanics + */ +public interface GameObject { + /** + * Unique id + */ + int getId(); +} diff --git a/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java b/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java new file mode 100644 index 0000000000..375fb08811 --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java @@ -0,0 +1,33 @@ +package ru.atom.model; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import java.util.ArrayList; +import java.util.List; + +public class GameSession implements Tickable { + private final static Logger log = LogManager.getLogger(GameSession.class); + private List gameObjects = new ArrayList<>(); + + public List getGameObjects() { + return new ArrayList<>(gameObjects); + } + + public void addGameObject(GameObject gameObject) { + gameObjects.add(gameObject); + } + + @Override + public void tick(long elapsed) { + log.info("tick"); + for (GameObject gameObject : gameObjects) { + if (gameObject instanceof Tickable) { + ((Tickable) gameObject).tick(elapsed); + } + if(gameObject instanceof Temporary && ((Temporary) gameObject).isDead()) { + gameObjects.remove(gameObject); + } + } + } +} diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Movable.java b/homeworks/HW2/src/main/java/ru.atom/model/Movable.java new file mode 100644 index 0000000000..0097bc6fbb --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/model/Movable.java @@ -0,0 +1,18 @@ +package ru.atom.model; + +import ru.atom.geometry.Point; + +/** + * GameObject that can move during game + */ +public interface Movable extends Positionable, Tickable { + /** + * Tries to move entity towards specified direction + * @return final position after movement + */ + Point move(Direction direction); + + enum Direction { + UP, DOWN, RIGHT, LEFT, IDLE + } +} diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java b/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java new file mode 100644 index 0000000000..295b960e50 --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java @@ -0,0 +1,20 @@ +package ru.atom.model; + +import ru.atom.geometry.Point; + +/** + * GameObject that has coordinates + * + * ^ Y + * | + * | + * | + * | X + * .----------> + */ +public interface Positionable extends GameObject { + /** + * @return Current position + */ + Point getPosition(); +} diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Temporary.java b/homeworks/HW2/src/main/java/ru.atom/model/Temporary.java new file mode 100644 index 0000000000..f79c32b76f --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/model/Temporary.java @@ -0,0 +1,17 @@ +package ru.atom.model; + +/** + * GameObjects, that lives for some time and the die + */ +public interface Temporary extends Tickable, GameObject { + /** + * @return lifetime in milliseconds + */ + long getLifetimeMillis(); + + /** + * Checks if gameObject is dead. If it becomes dead, executes death actions + * @return true if GameObject is dead + */ + boolean isDead(); +} diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Tickable.java b/homeworks/HW2/src/main/java/ru.atom/model/Tickable.java new file mode 100644 index 0000000000..9f2a99a195 --- /dev/null +++ b/homeworks/HW2/src/main/java/ru.atom/model/Tickable.java @@ -0,0 +1,11 @@ +package ru.atom.model; + +/** + * Any game object that changes with time + */ +public interface Tickable { + /** + * Applies changes to game objects that happen after elapsed time + */ + void tick(long elapsed); +} diff --git a/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java b/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java new file mode 100644 index 0000000000..2cf8481e8f --- /dev/null +++ b/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java @@ -0,0 +1,87 @@ +package ru.atom; + +import org.junit.Assert; +import org.junit.Test; +import ru.atom.geometry.Point; +import ru.atom.model.GameObject; +import ru.atom.model.GameSession; +import ru.atom.model.Movable; +import ru.atom.model.Temporary; + +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +public class GameModelTest { + @Test + public void gameIsCreated() { + GameSession gameSession = TestGameSessionCreator.createGameSession(); + Assert.assertNotNull(gameSession); + } + + @Test + public void gameObjectsAreInstantiated() { + GameSession gameSession = TestGameSessionCreator.createGameSession(); + List gameObjects = gameSession.getGameObjects(); + Assert.assertNotNull(gameObjects); + Assert.assertFalse(gameObjects.size() == 0); + } + + /** + * Checks that Movable GameObjects-s move + * Collisions are ignored + */ + @Test + public void movement() { + GameSession gameSession = TestGameSessionCreator.createGameSession(); + List gameObjects = gameSession.getGameObjects(); + + for (GameObject gameObject : gameObjects) { + if (gameObject instanceof Movable) { + Point firstPosition = ((Movable) gameObject).getPosition(); + Point currentPosition = ((Movable) gameObject).move(Movable.Direction.UP); + Assert.assertTrue(currentPosition.getX() > firstPosition.getX()); + + currentPosition = ((Movable) gameObject).move(Movable.Direction.DOWN); + Assert.assertTrue(currentPosition.getX() == firstPosition.getX()); + + currentPosition = ((Movable) gameObject).move(Movable.Direction.RIGHT); + Assert.assertTrue(currentPosition.getY() > firstPosition.getY()); + + currentPosition = ((Movable) gameObject).move(Movable.Direction.LEFT); + Assert.assertTrue(currentPosition.getY() == firstPosition.getY()); + + currentPosition = ((Movable) gameObject).move(Movable.Direction.IDLE); + Assert.assertTrue(currentPosition.getY() == firstPosition.getY()); + } + } + } + + /** + * Test checks that all temporary objects live at least for some time and are dead after very long time + */ + @Test + public void ticking() { + GameSession gameSession = TestGameSessionCreator.createGameSession(); + List temporaries = gameSession.getGameObjects().stream() + .filter(o -> o instanceof Temporary) + .map(o -> (Temporary)o).collect(Collectors.toList()); + + Assert.assertFalse(temporaries.isEmpty()); + + long maxLifeTime = temporaries.stream().max(Comparator.comparingLong(Temporary::getLifetimeMillis)).get().getLifetimeMillis(); + long minLifeTime = temporaries.stream().min(Comparator.comparingLong(Temporary::getLifetimeMillis)).get().getLifetimeMillis(); + gameSession.tick(minLifeTime - 1); + List temporariesAfterSmallTime = gameSession.getGameObjects().stream() + .filter(o -> o instanceof Temporary) + .map(o -> (Temporary)o).collect(Collectors.toList()); + Assert.assertTrue(temporaries.containsAll(temporariesAfterSmallTime)); + Assert.assertTrue(temporariesAfterSmallTime.containsAll(temporaries)); + + gameSession.tick(maxLifeTime + 1); + temporaries = gameSession.getGameObjects().stream() + .filter(o -> o instanceof Temporary) + .map(o -> (Temporary)o).collect(Collectors.toList()); + Assert.assertTrue(temporaries.isEmpty()); + } +} \ No newline at end of file diff --git a/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java b/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java new file mode 100644 index 0000000000..0114b7d098 --- /dev/null +++ b/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java @@ -0,0 +1,16 @@ +package ru.atom; + +import ru.atom.model.GameSession; +import sun.reflect.generics.reflectiveObjects.NotImplementedException; + +/** + * Create sample game session with all kinds of objects that will present in bomber-man game + */ +public final class TestGameSessionCreator { + private TestGameSessionCreator(){} + static GameSession createGameSession() { + GameSession gameSession = new GameSession(); + //TODO populate your game session with sample objects + throw new NotImplementedException(); + } +} From 1dd6eb6901c1e7ea69b182e43516947660ad6891 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Fri, 6 Oct 2017 17:36:22 +0300 Subject: [PATCH 011/245] fixes of homework 2 --- config/checkstyle/checkstyle.xml | 1 - homeworks/HW2/PITCHME.md | 13 ++--- .../src/main/java/ru.atom/geometry/Point.java | 9 ++-- .../main/java/ru.atom/model/GameSession.java | 7 +-- .../src/main/java/ru.atom/model/Movable.java | 4 +- .../main/java/ru.atom/model/Positionable.java | 13 +++-- .../main/java/ru.atom/model/Temporary.java | 17 ------- .../src/test/java/ru/atom/GameModelTest.java | 51 ++++--------------- .../java/ru/atom/TestGameSessionCreator.java | 9 ++-- settings.gradle | 6 +-- 10 files changed, 38 insertions(+), 92 deletions(-) delete mode 100644 homeworks/HW2/src/main/java/ru.atom/model/Temporary.java diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 1e4db2d992..361fa87e8b 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -166,7 +166,6 @@ - diff --git a/homeworks/HW2/PITCHME.md b/homeworks/HW2/PITCHME.md index ec1cb149d8..4c8ba50ee1 100644 --- a/homeworks/HW2/PITCHME.md +++ b/homeworks/HW2/PITCHME.md @@ -1,5 +1,5 @@ #HSLIDE -##Домашнее задание 2 +## Домашнее задание 2 С этого домашнего задания мы начинаем разработку сервера для игры **bomber-man** Клиент мы возьмем из этого проекта: @@ -26,13 +26,10 @@ 3. Какие игровые объекты должны двигаться? Реализуйте для них интерфейс **Movable**. Не реализуйте столкновения -4. Какие игровые объекты живут только определенное время? -Реализуйте интерфейс **Temporary**. Реализуйте смерть таких игровых объектов по истечении **lifeTime** внутри метода **isDead()** - -5. Заполните игровую сессию игровыми объектами внутри **GameSessionCreator** - по **два** на каждый класс объекта. Залоггируйте создание каждого игрового объекта +4. Заполните игровую сессию игровыми объектами внутри **GameSessionCreator** - по **два** на каждый класс объекта. Залоггируйте создание каждого игрового объекта #HSLIDE -###Как сдавать? +### Как сдавать? 1) Создайте ветку **homework2** ```bash @@ -43,7 +40,7 @@ ```bash > git push origin homework2 ``` -3) Сделайте **pull request** в репозиторий курса в ветку **homework2** +3) Сделайте **pull request** в репозиторий курса в ветку **homework2**. Напишите свои инициалы в описании. **Количество баллов:** 5 -**Срок сдачи:** 11.03 \ No newline at end of file +**Срок сдачи:** 18.10 \ No newline at end of file diff --git a/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java b/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java index 4ad58304c6..c33535cfae 100644 --- a/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java +++ b/homeworks/HW2/src/main/java/ru.atom/geometry/Point.java @@ -1,11 +1,10 @@ package ru.atom.geometry; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - +//TODO insert your implementation of geometry here public class Point implements Collider { private final int x; private final int y; - + public Point(int x, int y) { this.x = x; this.y = y; @@ -39,9 +38,9 @@ public int hashCode() { @Override public boolean isColliding(Collider other) { - if(other instanceof Point){ + if (other instanceof Point) { return this.equals(other); } - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } diff --git a/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java b/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java index 375fb08811..f31b5471c0 100644 --- a/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java +++ b/homeworks/HW2/src/main/java/ru.atom/model/GameSession.java @@ -7,13 +7,13 @@ import java.util.List; public class GameSession implements Tickable { - private final static Logger log = LogManager.getLogger(GameSession.class); + private static final Logger log = LogManager.getLogger(GameSession.class); private List gameObjects = new ArrayList<>(); public List getGameObjects() { return new ArrayList<>(gameObjects); } - + public void addGameObject(GameObject gameObject) { gameObjects.add(gameObject); } @@ -25,9 +25,6 @@ public void tick(long elapsed) { if (gameObject instanceof Tickable) { ((Tickable) gameObject).tick(elapsed); } - if(gameObject instanceof Temporary && ((Temporary) gameObject).isDead()) { - gameObjects.remove(gameObject); - } } } } diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Movable.java b/homeworks/HW2/src/main/java/ru.atom/model/Movable.java index 0097bc6fbb..bed9384c3e 100644 --- a/homeworks/HW2/src/main/java/ru.atom/model/Movable.java +++ b/homeworks/HW2/src/main/java/ru.atom/model/Movable.java @@ -7,10 +7,10 @@ */ public interface Movable extends Positionable, Tickable { /** - * Tries to move entity towards specified direction + * Tries to move entity towards specified direction for time * @return final position after movement */ - Point move(Direction direction); + Point move(Direction direction, long time); enum Direction { UP, DOWN, RIGHT, LEFT, IDLE diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java b/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java index 295b960e50..5a9a0555e3 100644 --- a/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java +++ b/homeworks/HW2/src/main/java/ru.atom/model/Positionable.java @@ -4,13 +4,12 @@ /** * GameObject that has coordinates - * - * ^ Y - * | - * | - * | - * | X - * .----------> + * ^ Y + * | + * | + * | + * | X + * .----------> */ public interface Positionable extends GameObject { /** diff --git a/homeworks/HW2/src/main/java/ru.atom/model/Temporary.java b/homeworks/HW2/src/main/java/ru.atom/model/Temporary.java deleted file mode 100644 index f79c32b76f..0000000000 --- a/homeworks/HW2/src/main/java/ru.atom/model/Temporary.java +++ /dev/null @@ -1,17 +0,0 @@ -package ru.atom.model; - -/** - * GameObjects, that lives for some time and the die - */ -public interface Temporary extends Tickable, GameObject { - /** - * @return lifetime in milliseconds - */ - long getLifetimeMillis(); - - /** - * Checks if gameObject is dead. If it becomes dead, executes death actions - * @return true if GameObject is dead - */ - boolean isDead(); -} diff --git a/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java b/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java index 2cf8481e8f..eaecfa2df9 100644 --- a/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java +++ b/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java @@ -6,11 +6,8 @@ import ru.atom.model.GameObject; import ru.atom.model.GameSession; import ru.atom.model.Movable; -import ru.atom.model.Temporary; -import java.util.Comparator; import java.util.List; -import java.util.stream.Collectors; public class GameModelTest { @Test @@ -39,49 +36,23 @@ public void movement() { for (GameObject gameObject : gameObjects) { if (gameObject instanceof Movable) { Point firstPosition = ((Movable) gameObject).getPosition(); - Point currentPosition = ((Movable) gameObject).move(Movable.Direction.UP); - Assert.assertTrue(currentPosition.getX() > firstPosition.getX()); + Point currentPosition = ((Movable) gameObject).move(Movable.Direction.UP, 1000); + Assert.assertTrue(currentPosition.getY() > firstPosition.getX()); - currentPosition = ((Movable) gameObject).move(Movable.Direction.DOWN); - Assert.assertTrue(currentPosition.getX() == firstPosition.getX()); + currentPosition = ((Movable) gameObject).move(Movable.Direction.DOWN, 1000); + Assert.assertTrue(currentPosition.getY() == firstPosition.getX()); - currentPosition = ((Movable) gameObject).move(Movable.Direction.RIGHT); - Assert.assertTrue(currentPosition.getY() > firstPosition.getY()); + currentPosition = ((Movable) gameObject).move(Movable.Direction.RIGHT, 500); + Assert.assertTrue(currentPosition.getX() > firstPosition.getY()); - currentPosition = ((Movable) gameObject).move(Movable.Direction.LEFT); - Assert.assertTrue(currentPosition.getY() == firstPosition.getY()); + currentPosition = ((Movable) gameObject).move(Movable.Direction.LEFT, 500); + Assert.assertTrue(currentPosition.getX() == firstPosition.getY()); + + currentPosition = ((Movable) gameObject).move(Movable.Direction.IDLE, 1000); - currentPosition = ((Movable) gameObject).move(Movable.Direction.IDLE); + Assert.assertTrue(currentPosition.getX() == firstPosition.getX()); Assert.assertTrue(currentPosition.getY() == firstPosition.getY()); } } } - - /** - * Test checks that all temporary objects live at least for some time and are dead after very long time - */ - @Test - public void ticking() { - GameSession gameSession = TestGameSessionCreator.createGameSession(); - List temporaries = gameSession.getGameObjects().stream() - .filter(o -> o instanceof Temporary) - .map(o -> (Temporary)o).collect(Collectors.toList()); - - Assert.assertFalse(temporaries.isEmpty()); - - long maxLifeTime = temporaries.stream().max(Comparator.comparingLong(Temporary::getLifetimeMillis)).get().getLifetimeMillis(); - long minLifeTime = temporaries.stream().min(Comparator.comparingLong(Temporary::getLifetimeMillis)).get().getLifetimeMillis(); - gameSession.tick(minLifeTime - 1); - List temporariesAfterSmallTime = gameSession.getGameObjects().stream() - .filter(o -> o instanceof Temporary) - .map(o -> (Temporary)o).collect(Collectors.toList()); - Assert.assertTrue(temporaries.containsAll(temporariesAfterSmallTime)); - Assert.assertTrue(temporariesAfterSmallTime.containsAll(temporaries)); - - gameSession.tick(maxLifeTime + 1); - temporaries = gameSession.getGameObjects().stream() - .filter(o -> o instanceof Temporary) - .map(o -> (Temporary)o).collect(Collectors.toList()); - Assert.assertTrue(temporaries.isEmpty()); - } } \ No newline at end of file diff --git a/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java b/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java index 0114b7d098..a8f6d4d89f 100644 --- a/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java +++ b/homeworks/HW2/src/test/java/ru/atom/TestGameSessionCreator.java @@ -1,16 +1,17 @@ package ru.atom; import ru.atom.model.GameSession; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; /** * Create sample game session with all kinds of objects that will present in bomber-man game */ public final class TestGameSessionCreator { - private TestGameSessionCreator(){} + private TestGameSessionCreator() { + } + static GameSession createGameSession() { GameSession gameSession = new GameSession(); - //TODO populate your game session with sample objects - throw new NotImplementedException(); + //TODO populate your game session with sample objects and log their creation + throw new UnsupportedOperationException(); } } diff --git a/settings.gradle b/settings.gradle index 1d9b7da09e..8e02ecbf9e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,4 @@ rootProject.name = 'atom' -include 'lecture01' -include 'lecture02' -include 'lecture03' + +include 'homeworks/HW2' + From 099743f1a335a36eed062561d36d3631a17380b7 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Fri, 6 Oct 2017 17:52:03 +0300 Subject: [PATCH 012/245] task description fixes --- homeworks/HW2/assets/img/diagram.png | Bin 9776 -> 19556 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/homeworks/HW2/assets/img/diagram.png b/homeworks/HW2/assets/img/diagram.png index b22618bc5db3c26b322156a627165dba75cadbaf..a0e10ff0afb4ad5084dc6d51e77959592be92b44 100644 GIT binary patch literal 19556 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 I=akR{0N?@yd;kCd literal 9776 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 W+Vfdd0bhds27aj`SN`Hn(EkF~{7B#c From 64bcace106efc11e7b2badb1d56219052749b5ac Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Fri, 6 Oct 2017 17:54:28 +0300 Subject: [PATCH 013/245] task description fixes --- homeworks/HW2/PITCHME.md | 2 +- .../HW2/assets/img/{diagram.png => diagram2.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename homeworks/HW2/assets/img/{diagram.png => diagram2.png} (100%) diff --git a/homeworks/HW2/PITCHME.md b/homeworks/HW2/PITCHME.md index 4c8ba50ee1..d5a36ddd54 100644 --- a/homeworks/HW2/PITCHME.md +++ b/homeworks/HW2/PITCHME.md @@ -13,7 +13,7 @@ #HSLIDE ### Диаграмма интерфейсов, которые необходимо реализовать -diagram +diagram #HSLIDE diff --git a/homeworks/HW2/assets/img/diagram.png b/homeworks/HW2/assets/img/diagram2.png similarity index 100% rename from homeworks/HW2/assets/img/diagram.png rename to homeworks/HW2/assets/img/diagram2.png From 8a2d50b01048aafad6819e9c15c40c8bf234b8aa Mon Sep 17 00:00:00 2001 From: Alpi Date: Mon, 9 Oct 2017 00:17:29 +0300 Subject: [PATCH 014/245] test fix --- homeworks/HW2/src/test/java/ru/atom/GameModelTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java b/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java index eaecfa2df9..bc852b7867 100644 --- a/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java +++ b/homeworks/HW2/src/test/java/ru/atom/GameModelTest.java @@ -37,16 +37,16 @@ public void movement() { if (gameObject instanceof Movable) { Point firstPosition = ((Movable) gameObject).getPosition(); Point currentPosition = ((Movable) gameObject).move(Movable.Direction.UP, 1000); - Assert.assertTrue(currentPosition.getY() > firstPosition.getX()); + Assert.assertTrue(currentPosition.getY() > firstPosition.getY()); currentPosition = ((Movable) gameObject).move(Movable.Direction.DOWN, 1000); - Assert.assertTrue(currentPosition.getY() == firstPosition.getX()); + Assert.assertTrue(currentPosition.getY() == firstPosition.getY()); currentPosition = ((Movable) gameObject).move(Movable.Direction.RIGHT, 500); - Assert.assertTrue(currentPosition.getX() > firstPosition.getY()); + Assert.assertTrue(currentPosition.getX() > firstPosition.getX()); currentPosition = ((Movable) gameObject).move(Movable.Direction.LEFT, 500); - Assert.assertTrue(currentPosition.getX() == firstPosition.getY()); + Assert.assertTrue(currentPosition.getX() == firstPosition.getX()); currentPosition = ((Movable) gameObject).move(Movable.Direction.IDLE, 1000); From e593eca82f9c608b820eb7355e6499c653de824a Mon Sep 17 00:00:00 2001 From: rybalkinsd Date: Wed, 11 Oct 2017 15:21:18 +0300 Subject: [PATCH 015/245] gradle build fix --- .../src/main/java/ru/atom/cache/ContactListCache.java | 9 ++++----- lecture04/src/test/java/ru/atom/http/ChatClient.java | 7 +++---- settings.gradle | 1 + 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/lecture04/src/main/java/ru/atom/cache/ContactListCache.java b/lecture04/src/main/java/ru/atom/cache/ContactListCache.java index 71e858456b..5770b33eaf 100644 --- a/lecture04/src/main/java/ru/atom/cache/ContactListCache.java +++ b/lecture04/src/main/java/ru/atom/cache/ContactListCache.java @@ -1,6 +1,5 @@ package ru.atom.cache; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.util.List; @@ -14,21 +13,21 @@ public ContactListCache(int capacity) { @Override public boolean put(Person person, List people) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public List get(Person person) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public int getSize() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } private boolean removeAny() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } diff --git a/lecture04/src/test/java/ru/atom/http/ChatClient.java b/lecture04/src/test/java/ru/atom/http/ChatClient.java index f0b34f6c12..14f5510edd 100644 --- a/lecture04/src/test/java/ru/atom/http/ChatClient.java +++ b/lecture04/src/test/java/ru/atom/http/ChatClient.java @@ -5,8 +5,7 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; -import sun.util.resources.cldr.ms.CalendarData_ms_MY; + import java.io.IOException; @@ -42,11 +41,11 @@ public static Response login(String name) throws IOException { //POST host:port/chat/say?name=my_name //Body: "msg='my_message'" public static Response say(String name, String msg) throws IOException { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } //GET host:port/chat/chat public static Response viewChat() throws IOException { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 1d9b7da09e..f40839644b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,3 +2,4 @@ rootProject.name = 'atom' include 'lecture01' include 'lecture02' include 'lecture03' +include 'lecture04' \ No newline at end of file From c176e7b5e26ce6b85c199ab2c477faf93cf3e333 Mon Sep 17 00:00:00 2001 From: rybalkinsd Date: Wed, 11 Oct 2017 15:51:46 +0300 Subject: [PATCH 016/245] presentation fixes --- lecture04/presentation/PITCHME.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lecture04/presentation/PITCHME.md b/lecture04/presentation/PITCHME.md index 6a273751bb..371a81de70 100644 --- a/lecture04/presentation/PITCHME.md +++ b/lecture04/presentation/PITCHME.md @@ -258,7 +258,7 @@ For example, one can extend server functionality by custom logic (e.g. for dynam #HSLIDE ## HTTP via telnet ```bash -> telnet example.org +> telnet example.org 80 ``` request: ```http @@ -313,7 +313,7 @@ removes resource [wiki](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) #HSLIDE -##HTTP via browser +## HTTP via browser When you enter adress line in browser, in creates **GET** request So we can do previous example just by typing in browser: > example.org @@ -502,7 +502,7 @@ login: ## OkHTTP We use OkHTTP library as java HTTP Client [http://square.github.io/okhttp/](http://square.github.io/okhttp/) -###@see ru.atom.http.client +### @see ru.atom.http.client #HSLIDE ## GET example from Java From d4f04469fb7b401548a9a3b0127803f2dfc61476 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 11 Oct 2017 16:44:40 +0300 Subject: [PATCH 017/245] lecture04 practice fixes --- build.gradle | 7 ++++--- lecture04/build.gradle | 1 + .../main/java/ru/atom/http/server/ChatResource.java | 10 +++++----- lecture04/src/test/resources/FileToRead.txt | 2 -- lecture04/src/test/resources/log4j2.properties | 7 +++++++ settings.gradle | 3 --- 6 files changed, 17 insertions(+), 13 deletions(-) delete mode 100644 lecture04/src/test/resources/FileToRead.txt create mode 100644 lecture04/src/test/resources/log4j2.properties diff --git a/build.gradle b/build.gradle index f4ab86a3b1..c377cdd781 100644 --- a/build.gradle +++ b/build.gradle @@ -6,13 +6,13 @@ plugins { ext { jdkVersion = 1.9 - jettyVersion = "9.3.12.v20160915" + jettyVersion = "9.4.7.v20170914" junitVersion = "4.12" - jacksonVersion = "2.5.3" + jacksonVersion = "2.9.1" log4jVersion = "2.7" jetbrainsAnnotationVersion = "15.0" okhttpVersion = "3.6.0" - jerseyVersion = "2.25.1" + jerseyVersion = "2.26" gsonjVersion = "2.7" postgresVersion = "9.4-1200-jdbc41" jetbrainsAnnotationVersion = "15.0" @@ -66,6 +66,7 @@ ext.libraries = [ jetbrainsAnnotations: "org.jetbrains:annotations:$jetbrainsAnnotationVersion", okhttp: "com.squareup.okhttp3:okhttp:$okhttpVersion", jersey_server: "org.glassfish.jersey.core:jersey-server:$jerseyVersion", + jersey_hk2: "org.glassfish.jersey.inject:jersey-hk2:$jerseyVersion", jersey_containers: "org.glassfish.jersey.containers:jersey-container-servlet:$jerseyVersion", jersey_test: "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:$jerseyVersion", diff --git a/lecture04/build.gradle b/lecture04/build.gradle index 3856cc3230..ced7e58803 100644 --- a/lecture04/build.gradle +++ b/lecture04/build.gradle @@ -5,6 +5,7 @@ dependencies { compile rootProject.libraries.jetty_server compile rootProject.libraries.jetty_servlet compile rootProject.libraries.jersey_server + compile rootProject.libraries.jersey_hk2 compile rootProject.libraries.jersey_containers } diff --git a/lecture04/src/main/java/ru/atom/http/server/ChatResource.java b/lecture04/src/main/java/ru/atom/http/server/ChatResource.java index 895a5b8135..323c81660d 100644 --- a/lecture04/src/main/java/ru/atom/http/server/ChatResource.java +++ b/lecture04/src/main/java/ru/atom/http/server/ChatResource.java @@ -2,7 +2,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.eclipse.jetty.util.ConcurrentArrayQueue; import javax.ws.rs.Consumes; import javax.ws.rs.FormParam; @@ -12,13 +11,14 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; +import java.util.concurrent.ConcurrentLinkedQueue; @Path("/chat") public class ChatResource { private static final Logger log = LogManager.getLogger(ChatResource.class); - private static final ConcurrentArrayQueue logined = new ConcurrentArrayQueue<>(); - private static final ConcurrentArrayQueue chat = new ConcurrentArrayQueue<>(); + private static final ConcurrentLinkedQueue logined = new ConcurrentLinkedQueue<>(); + private static final ConcurrentLinkedQueue chat = new ConcurrentLinkedQueue<>(); @POST @Consumes("application/x-www-form-urlencoded") @@ -27,8 +27,8 @@ public Response login(@QueryParam("name") String name) { if (name.length() > 30) { return Response.status(Response.Status.BAD_REQUEST).entity("Too long name, sorry :(").build(); } - if (name.toLowerCase().contains("gitler")) { - return Response.status(Response.Status.BAD_REQUEST).entity("Gitler not allowed, sorry :(").build(); + if (name.toLowerCase().contains("hitler")) { + return Response.status(Response.Status.BAD_REQUEST).entity("Hitler not allowed, sorry :(").build(); } if (logined.contains(name)) { return Response.status(Response.Status.BAD_REQUEST).entity("Already logined").build(); diff --git a/lecture04/src/test/resources/FileToRead.txt b/lecture04/src/test/resources/FileToRead.txt deleted file mode 100644 index 5100168494..0000000000 --- a/lecture04/src/test/resources/FileToRead.txt +++ /dev/null @@ -1,2 +0,0 @@ -First line in FileToRead.txt - Second line in file \ No newline at end of file diff --git a/lecture04/src/test/resources/log4j2.properties b/lecture04/src/test/resources/log4j2.properties new file mode 100644 index 0000000000..35dbbb09e5 --- /dev/null +++ b/lecture04/src/test/resources/log4j2.properties @@ -0,0 +1,7 @@ +appender.console.type = Console +appender.console.name = STDOUT +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %m%n + +rootLogger.level = info +rootLogger.appenderRef.stdout.ref = STDOUT \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index f40839644b..e1535c034e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,2 @@ rootProject.name = 'atom' -include 'lecture01' -include 'lecture02' -include 'lecture03' include 'lecture04' \ No newline at end of file From 0baa6c43bbbec0f7acd8c3193f8679e96953016b Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 11 Oct 2017 17:26:23 +0300 Subject: [PATCH 018/245] encoding and presentation fixes --- lecture04/presentation/PITCHME.md | 22 +++++++++---------- .../ru/atom/http/server/ChatResource.java | 4 ++-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/lecture04/presentation/PITCHME.md b/lecture04/presentation/PITCHME.md index 371a81de70..78116b71eb 100644 --- a/lecture04/presentation/PITCHME.md +++ b/lecture04/presentation/PITCHME.md @@ -347,18 +347,18 @@ it wraps **libcurl** library, which is available for all major languages ## GET Example Request from cURL: ```bash -> curl -i -X GET -H "Host: example.org" example.org +> curl -i -X GET example.org ``` Response: ```http HTTP/1.1 200 OK Cache-Control: max-age=604800 Content-Type: text/html -Date: Sat, 11 Mar 2017 00:22:28 GMT +Date: Wed, 11 Oct 2017 14:17:54 GMT Etag: "359670651+ident" -Expires: Sat, 18 Mar 2017 00:22:28 GMT +Expires: Wed, 18 Oct 2017 14:17:54 GMT Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT -Server: ECS (phl/9D2C) +Server: ECS (dca/24D5) Vary: Accept-Encoding X-Cache: HIT Content-Length: 1270 @@ -377,22 +377,20 @@ POST /chat/say HTTP/1.1 Content-Type: application/x-www-form-urlencoded Host: localhost:8080 -msg="Привет всем в этом чатике" +msg=Hi everyone in this chat! ``` cURL: ```bash ->curl -X POST \ --H "Content-Type: application/x-www-form-urlencoded" \ --H "Host: localhost:8080" \ --d 'msg="Привет всем в этом чатике"'' \ -http://localhost:8080/chat/say +> curl -X POST \ +-d 'msg=Hi everyone in this chat!' \ +http://localhost:8080/chat/say?name=MY_NAME ``` response: ```http HTTP/1.1 200 OK -Date: Sat, 11 Mar 2017 13:05:11 GMT +Date: Wed, 11 Oct 2017 14:17:11 GMT Content-Length: 0 -Server: Jetty(9.3.12.v20160915) +Server: Jetty(9.4.z-SNAPSHOT) ``` diff --git a/lecture04/src/main/java/ru/atom/http/server/ChatResource.java b/lecture04/src/main/java/ru/atom/http/server/ChatResource.java index 323c81660d..c0e62e694d 100644 --- a/lecture04/src/main/java/ru/atom/http/server/ChatResource.java +++ b/lecture04/src/main/java/ru/atom/http/server/ChatResource.java @@ -40,7 +40,7 @@ public Response login(@QueryParam("name") String name) { } @GET - @Produces("text/plain") + @Produces("text/plain;charset=UTF-8") @Path("/online") public Response online() { return Response.ok(String.join("\n", logined)).build(); @@ -65,7 +65,7 @@ public Response say(@QueryParam("name") String name, @FormParam("msg") String ms } @GET - @Produces("text/plain") + @Produces("text/plain;charset=UTF-8") @Path("/chat") public Response chat() { return Response.ok(String.join("\n", chat)).build(); From 42f777312a498c9b70832b5b0c719b54df05e47a Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 11 Oct 2017 18:11:37 +0300 Subject: [PATCH 019/245] presentation and uro fixes --- lecture04/presentation/PITCHME.md | 10 +++++----- lecture04/src/test/java/ru/atom/http/ChatClient.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lecture04/presentation/PITCHME.md b/lecture04/presentation/PITCHME.md index 78116b71eb..ce1b8fd222 100644 --- a/lecture04/presentation/PITCHME.md +++ b/lecture04/presentation/PITCHME.md @@ -424,7 +424,7 @@ REST API is a common way for services to publish their functionality for other s ## HTTP Client Pracrice We got a chat REST service open for you on -Implement **chat client** and enjoy! +Implement **chat client** and enjoy! @see **test.ru.atom.http.ChatClient** and **test.ru.atom.http.ChatClientTest** #HSLIDE @@ -446,7 +446,7 @@ login: Protocol: HTTP Path: chat/login Method: POST - PathParam: name + QueryParam: name Host: {IP}:8080 Response: Success code: 200 @@ -455,11 +455,11 @@ login: 400 - Too long name (longer than 30 symbols) ``` #HSLIDE -## Chat REST API. View Online +## Chat REST API. View chat online: ``` Protocol: HTTP - Path: chat/online + Path: chat/chat Method: GET Host: {IP}:8080 Response: @@ -474,7 +474,7 @@ login: Protocol: HTTP Path: chat/say Method: POST - PathParam: name + QueryParam: name Body: msg="my message" Host: {IP}:8080 diff --git a/lecture04/src/test/java/ru/atom/http/ChatClient.java b/lecture04/src/test/java/ru/atom/http/ChatClient.java index 14f5510edd..c5e4316156 100644 --- a/lecture04/src/test/java/ru/atom/http/ChatClient.java +++ b/lecture04/src/test/java/ru/atom/http/ChatClient.java @@ -13,7 +13,7 @@ public class ChatClient { private static final OkHttpClient client = new OkHttpClient(); private static final String PROTOCOL = "http://"; - private static final String HOST = "wtfis.ru"; + private static final String HOST = "34.229.108.81"; private static final String PORT = ":8080"; //GET host:port/chat/online From 7a319f058d9e7385aaef730b51a752a2122de6ec Mon Sep 17 00:00:00 2001 From: Sergey Rybalkin Date: Sat, 14 Oct 2017 17:25:42 +0300 Subject: [PATCH 020/245] Lecture04 (#607) * gradle build fix * presentation fixes * lecture04 practice fixes * encoding and presentation fixes * presentation and uro fixes --- build.gradle | 7 ++-- lecture04/build.gradle | 1 + lecture04/presentation/PITCHME.md | 38 +++++++++---------- .../java/ru/atom/cache/ContactListCache.java | 9 ++--- .../ru/atom/http/server/ChatResource.java | 14 +++---- .../test/java/ru/atom/http/ChatClient.java | 9 ++--- lecture04/src/test/resources/FileToRead.txt | 2 - .../src/test/resources/log4j2.properties | 7 ++++ settings.gradle | 4 +- 9 files changed, 46 insertions(+), 45 deletions(-) delete mode 100644 lecture04/src/test/resources/FileToRead.txt create mode 100644 lecture04/src/test/resources/log4j2.properties diff --git a/build.gradle b/build.gradle index f4ab86a3b1..c377cdd781 100644 --- a/build.gradle +++ b/build.gradle @@ -6,13 +6,13 @@ plugins { ext { jdkVersion = 1.9 - jettyVersion = "9.3.12.v20160915" + jettyVersion = "9.4.7.v20170914" junitVersion = "4.12" - jacksonVersion = "2.5.3" + jacksonVersion = "2.9.1" log4jVersion = "2.7" jetbrainsAnnotationVersion = "15.0" okhttpVersion = "3.6.0" - jerseyVersion = "2.25.1" + jerseyVersion = "2.26" gsonjVersion = "2.7" postgresVersion = "9.4-1200-jdbc41" jetbrainsAnnotationVersion = "15.0" @@ -66,6 +66,7 @@ ext.libraries = [ jetbrainsAnnotations: "org.jetbrains:annotations:$jetbrainsAnnotationVersion", okhttp: "com.squareup.okhttp3:okhttp:$okhttpVersion", jersey_server: "org.glassfish.jersey.core:jersey-server:$jerseyVersion", + jersey_hk2: "org.glassfish.jersey.inject:jersey-hk2:$jerseyVersion", jersey_containers: "org.glassfish.jersey.containers:jersey-container-servlet:$jerseyVersion", jersey_test: "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:$jerseyVersion", diff --git a/lecture04/build.gradle b/lecture04/build.gradle index 3856cc3230..ced7e58803 100644 --- a/lecture04/build.gradle +++ b/lecture04/build.gradle @@ -5,6 +5,7 @@ dependencies { compile rootProject.libraries.jetty_server compile rootProject.libraries.jetty_servlet compile rootProject.libraries.jersey_server + compile rootProject.libraries.jersey_hk2 compile rootProject.libraries.jersey_containers } diff --git a/lecture04/presentation/PITCHME.md b/lecture04/presentation/PITCHME.md index 6a273751bb..ce1b8fd222 100644 --- a/lecture04/presentation/PITCHME.md +++ b/lecture04/presentation/PITCHME.md @@ -258,7 +258,7 @@ For example, one can extend server functionality by custom logic (e.g. for dynam #HSLIDE ## HTTP via telnet ```bash -> telnet example.org +> telnet example.org 80 ``` request: ```http @@ -313,7 +313,7 @@ removes resource [wiki](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) #HSLIDE -##HTTP via browser +## HTTP via browser When you enter adress line in browser, in creates **GET** request So we can do previous example just by typing in browser: > example.org @@ -347,18 +347,18 @@ it wraps **libcurl** library, which is available for all major languages ## GET Example Request from cURL: ```bash -> curl -i -X GET -H "Host: example.org" example.org +> curl -i -X GET example.org ``` Response: ```http HTTP/1.1 200 OK Cache-Control: max-age=604800 Content-Type: text/html -Date: Sat, 11 Mar 2017 00:22:28 GMT +Date: Wed, 11 Oct 2017 14:17:54 GMT Etag: "359670651+ident" -Expires: Sat, 18 Mar 2017 00:22:28 GMT +Expires: Wed, 18 Oct 2017 14:17:54 GMT Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT -Server: ECS (phl/9D2C) +Server: ECS (dca/24D5) Vary: Accept-Encoding X-Cache: HIT Content-Length: 1270 @@ -377,22 +377,20 @@ POST /chat/say HTTP/1.1 Content-Type: application/x-www-form-urlencoded Host: localhost:8080 -msg="Привет всем в этом чатике" +msg=Hi everyone in this chat! ``` cURL: ```bash ->curl -X POST \ --H "Content-Type: application/x-www-form-urlencoded" \ --H "Host: localhost:8080" \ --d 'msg="Привет всем в этом чатике"'' \ -http://localhost:8080/chat/say +> curl -X POST \ +-d 'msg=Hi everyone in this chat!' \ +http://localhost:8080/chat/say?name=MY_NAME ``` response: ```http HTTP/1.1 200 OK -Date: Sat, 11 Mar 2017 13:05:11 GMT +Date: Wed, 11 Oct 2017 14:17:11 GMT Content-Length: 0 -Server: Jetty(9.3.12.v20160915) +Server: Jetty(9.4.z-SNAPSHOT) ``` @@ -426,7 +424,7 @@ REST API is a common way for services to publish their functionality for other s ## HTTP Client Pracrice We got a chat REST service open for you on -Implement **chat client** and enjoy! +Implement **chat client** and enjoy! @see **test.ru.atom.http.ChatClient** and **test.ru.atom.http.ChatClientTest** #HSLIDE @@ -448,7 +446,7 @@ login: Protocol: HTTP Path: chat/login Method: POST - PathParam: name + QueryParam: name Host: {IP}:8080 Response: Success code: 200 @@ -457,11 +455,11 @@ login: 400 - Too long name (longer than 30 symbols) ``` #HSLIDE -## Chat REST API. View Online +## Chat REST API. View chat online: ``` Protocol: HTTP - Path: chat/online + Path: chat/chat Method: GET Host: {IP}:8080 Response: @@ -476,7 +474,7 @@ login: Protocol: HTTP Path: chat/say Method: POST - PathParam: name + QueryParam: name Body: msg="my message" Host: {IP}:8080 @@ -502,7 +500,7 @@ login: ## OkHTTP We use OkHTTP library as java HTTP Client [http://square.github.io/okhttp/](http://square.github.io/okhttp/) -###@see ru.atom.http.client +### @see ru.atom.http.client #HSLIDE ## GET example from Java diff --git a/lecture04/src/main/java/ru/atom/cache/ContactListCache.java b/lecture04/src/main/java/ru/atom/cache/ContactListCache.java index 71e858456b..5770b33eaf 100644 --- a/lecture04/src/main/java/ru/atom/cache/ContactListCache.java +++ b/lecture04/src/main/java/ru/atom/cache/ContactListCache.java @@ -1,6 +1,5 @@ package ru.atom.cache; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; import java.util.List; @@ -14,21 +13,21 @@ public ContactListCache(int capacity) { @Override public boolean put(Person person, List people) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public List get(Person person) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } @Override public int getSize() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } private boolean removeAny() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } diff --git a/lecture04/src/main/java/ru/atom/http/server/ChatResource.java b/lecture04/src/main/java/ru/atom/http/server/ChatResource.java index 895a5b8135..c0e62e694d 100644 --- a/lecture04/src/main/java/ru/atom/http/server/ChatResource.java +++ b/lecture04/src/main/java/ru/atom/http/server/ChatResource.java @@ -2,7 +2,6 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.eclipse.jetty.util.ConcurrentArrayQueue; import javax.ws.rs.Consumes; import javax.ws.rs.FormParam; @@ -12,13 +11,14 @@ import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.Response; +import java.util.concurrent.ConcurrentLinkedQueue; @Path("/chat") public class ChatResource { private static final Logger log = LogManager.getLogger(ChatResource.class); - private static final ConcurrentArrayQueue logined = new ConcurrentArrayQueue<>(); - private static final ConcurrentArrayQueue chat = new ConcurrentArrayQueue<>(); + private static final ConcurrentLinkedQueue logined = new ConcurrentLinkedQueue<>(); + private static final ConcurrentLinkedQueue chat = new ConcurrentLinkedQueue<>(); @POST @Consumes("application/x-www-form-urlencoded") @@ -27,8 +27,8 @@ public Response login(@QueryParam("name") String name) { if (name.length() > 30) { return Response.status(Response.Status.BAD_REQUEST).entity("Too long name, sorry :(").build(); } - if (name.toLowerCase().contains("gitler")) { - return Response.status(Response.Status.BAD_REQUEST).entity("Gitler not allowed, sorry :(").build(); + if (name.toLowerCase().contains("hitler")) { + return Response.status(Response.Status.BAD_REQUEST).entity("Hitler not allowed, sorry :(").build(); } if (logined.contains(name)) { return Response.status(Response.Status.BAD_REQUEST).entity("Already logined").build(); @@ -40,7 +40,7 @@ public Response login(@QueryParam("name") String name) { } @GET - @Produces("text/plain") + @Produces("text/plain;charset=UTF-8") @Path("/online") public Response online() { return Response.ok(String.join("\n", logined)).build(); @@ -65,7 +65,7 @@ public Response say(@QueryParam("name") String name, @FormParam("msg") String ms } @GET - @Produces("text/plain") + @Produces("text/plain;charset=UTF-8") @Path("/chat") public Response chat() { return Response.ok(String.join("\n", chat)).build(); diff --git a/lecture04/src/test/java/ru/atom/http/ChatClient.java b/lecture04/src/test/java/ru/atom/http/ChatClient.java index f0b34f6c12..c5e4316156 100644 --- a/lecture04/src/test/java/ru/atom/http/ChatClient.java +++ b/lecture04/src/test/java/ru/atom/http/ChatClient.java @@ -5,8 +5,7 @@ import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; -import sun.util.resources.cldr.ms.CalendarData_ms_MY; + import java.io.IOException; @@ -14,7 +13,7 @@ public class ChatClient { private static final OkHttpClient client = new OkHttpClient(); private static final String PROTOCOL = "http://"; - private static final String HOST = "wtfis.ru"; + private static final String HOST = "34.229.108.81"; private static final String PORT = ":8080"; //GET host:port/chat/online @@ -42,11 +41,11 @@ public static Response login(String name) throws IOException { //POST host:port/chat/say?name=my_name //Body: "msg='my_message'" public static Response say(String name, String msg) throws IOException { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } //GET host:port/chat/chat public static Response viewChat() throws IOException { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } \ No newline at end of file diff --git a/lecture04/src/test/resources/FileToRead.txt b/lecture04/src/test/resources/FileToRead.txt deleted file mode 100644 index 5100168494..0000000000 --- a/lecture04/src/test/resources/FileToRead.txt +++ /dev/null @@ -1,2 +0,0 @@ -First line in FileToRead.txt - Second line in file \ No newline at end of file diff --git a/lecture04/src/test/resources/log4j2.properties b/lecture04/src/test/resources/log4j2.properties new file mode 100644 index 0000000000..35dbbb09e5 --- /dev/null +++ b/lecture04/src/test/resources/log4j2.properties @@ -0,0 +1,7 @@ +appender.console.type = Console +appender.console.name = STDOUT +appender.console.layout.type = PatternLayout +appender.console.layout.pattern = %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %m%n + +rootLogger.level = info +rootLogger.appenderRef.stdout.ref = STDOUT \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 1d9b7da09e..e1535c034e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,4 +1,2 @@ rootProject.name = 'atom' -include 'lecture01' -include 'lecture02' -include 'lecture03' +include 'lecture04' \ No newline at end of file From 3f717807b0b727baf28a1eae1032023237391c44 Mon Sep 17 00:00:00 2001 From: Sergey Rybalkin Date: Wed, 1 Nov 2017 14:51:48 +0300 Subject: [PATCH 021/245] Lecture05 (#642) * lecture 5 #1 * lecture 5 #2 * lecture 5 #3 * lecture fixes * lecture 5 #4 * Connection Controller inregration tests * lecture fixes * lecture fixes * lecture fixes * Connection Controller inregration tests #2 * lecture fixes * lecture fixes * lecture fixes * lecture fixes * lecture fixes * lecture fixes * lecture fixes * lecture fixes * build fix * Docker * gradle spring boot build fix --- build.gradle | 29 +- config/checkstyle/checkstyle.xml | 1 - .../ru/atom/dbhackaton/server/AuthServer.java | 4 +- gradle/wrapper/gradle-wrapper.jar | Bin 54708 -> 54712 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- .../java/ru/atom/http/server/HttpServer.java | 2 +- lecture05/Dockerfile | 7 + lecture05/build.gradle | 16 +- lecture05/presentation/PITCHME.md | 388 ++++++++++-------- .../assets/img/MVC-Introduction2.jpg | Bin 0 -> 21813 bytes .../assets/img/spring-by-pivotal.png | Bin 0 -> 11931 bytes .../presentation/assets/img/spring_mvc.png | Bin 0 -> 73273 bytes .../java/ru/atom/boot/hw/HelloController.java | 21 + .../java/ru/atom/boot/hw/HelloSpringBoot.java | 13 + .../ru/atom/boot/mm/ConnectionController.java | 51 +++ .../java/ru/atom/boot/mm/GameController.java | 35 ++ .../java/ru/atom/boot/mm/MatchMakerApp.java | 17 + .../ru/atom/jersey/aspect/AuthFilter.java | 42 -- .../ru/atom/jersey/aspect/Authorized.java | 18 - .../aspect/MatchMakerServerWithAuth.java | 37 -- .../ru/atom/jersey/hw/HelloJerseyWorld.java | 18 - .../java/ru/atom/jersey/hw/HttpServer.java | 26 -- .../ru/atom/jersey/mm/ConnectionHandler.java | 30 -- .../java/ru/atom/jersey/mm/GamesView.java | 27 -- .../ru/atom/jersey/mm/MatchMakerServer.java | 32 -- .../ru/atom/servlet/hw/HelloWorldServlet.java | 41 -- .../java/ru/atom/servlet/hw/HttpServer.java | 20 - .../ru/atom/servlet/mm/ConnectionHandler.java | 31 -- .../java/ru/atom/servlet/mm/GamesView.java | 28 -- .../ru/atom/servlet/mm/MatchMakerServer.java | 26 -- .../ru/atom/thread/mm/ConnectionProducer.java | 2 +- ...eadSafeQueue.java => ConnectionQueue.java} | 2 +- ...adSafeStorage.java => GameRepository.java} | 2 +- .../java/ru/atom/thread/mm/MatchMaker.java | 4 +- .../src/main/resources/application.properties | 1 + .../atom/annotation/AnnotationDemoTest.java | 20 +- .../ru/atom/boot/hw/HelloControllerTest.java | 34 ++ .../ConnectionControllerIntegrationTest.java | 36 ++ .../boot/mm/ConnectionControllerTest.java | 30 ++ .../ru/atom/boot/mm/GameControllerTest.java | 17 + .../mm/GamesControllerIntegrationTest.java | 16 + .../atom/thread/practice/EventProcessor.java | 8 +- .../ru/atom/lecture06/server/ChatServer.java | 4 +- .../ru/atom/lecture07/server/ChatServer.java | 4 +- .../atom/lecture11/billing/BillingServer.java | 2 +- settings.gradle | 2 +- .../atom/http/server/HackatonHttpServer.java | 4 +- 47 files changed, 545 insertions(+), 605 deletions(-) create mode 100644 lecture05/Dockerfile create mode 100644 lecture05/presentation/assets/img/MVC-Introduction2.jpg create mode 100644 lecture05/presentation/assets/img/spring-by-pivotal.png create mode 100644 lecture05/presentation/assets/img/spring_mvc.png create mode 100644 lecture05/src/main/java/ru/atom/boot/hw/HelloController.java create mode 100644 lecture05/src/main/java/ru/atom/boot/hw/HelloSpringBoot.java create mode 100644 lecture05/src/main/java/ru/atom/boot/mm/ConnectionController.java create mode 100644 lecture05/src/main/java/ru/atom/boot/mm/GameController.java create mode 100644 lecture05/src/main/java/ru/atom/boot/mm/MatchMakerApp.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/aspect/AuthFilter.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/aspect/Authorized.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/aspect/MatchMakerServerWithAuth.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/hw/HelloJerseyWorld.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/hw/HttpServer.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/mm/ConnectionHandler.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/mm/GamesView.java delete mode 100644 lecture05/src/main/java/ru/atom/jersey/mm/MatchMakerServer.java delete mode 100644 lecture05/src/main/java/ru/atom/servlet/hw/HelloWorldServlet.java delete mode 100644 lecture05/src/main/java/ru/atom/servlet/hw/HttpServer.java delete mode 100644 lecture05/src/main/java/ru/atom/servlet/mm/ConnectionHandler.java delete mode 100644 lecture05/src/main/java/ru/atom/servlet/mm/GamesView.java delete mode 100644 lecture05/src/main/java/ru/atom/servlet/mm/MatchMakerServer.java rename lecture05/src/main/java/ru/atom/thread/mm/{ThreadSafeQueue.java => ConnectionQueue.java} (91%) rename lecture05/src/main/java/ru/atom/thread/mm/{ThreadSafeStorage.java => GameRepository.java} (92%) create mode 100644 lecture05/src/main/resources/application.properties create mode 100644 lecture05/src/test/java/ru/atom/boot/hw/HelloControllerTest.java create mode 100644 lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerIntegrationTest.java create mode 100644 lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerTest.java create mode 100644 lecture05/src/test/java/ru/atom/boot/mm/GameControllerTest.java create mode 100644 lecture05/src/test/java/ru/atom/boot/mm/GamesControllerIntegrationTest.java diff --git a/build.gradle b/build.gradle index c377cdd781..b26b80bc78 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,15 @@ plugins { - id "com.github.kt3k.coveralls" version "2.6.3" + id 'org.springframework.boot' version '1.5.8.RELEASE' + id 'com.github.kt3k.coveralls' version '2.6.3' +} + +springBoot { + mainClass = "ru.atom.boot.hw.HelloSpringBoot" } // constants declaration ext { - jdkVersion = 1.9 + jdkVersion = 1.8 jettyVersion = "9.4.7.v20170914" junitVersion = "4.12" @@ -25,9 +30,10 @@ allprojects { group = "technoatom" version = "1.0-SNAPSHOT" - apply plugin: "java" + apply plugin: 'java' + apply plugin: 'org.springframework.boot' apply plugin: 'checkstyle' - apply plugin: "jacoco" + apply plugin: 'jacoco' repositories { mavenCentral() @@ -56,6 +62,13 @@ subprojects { // common libraries declaration ext.libraries = [ + spring_boot : [ + "org.springframework.boot:spring-boot-starter-web", + "org.springframework.boot:spring-boot-starter-actuator" + ], + + spring_boot_test : "org.springframework.boot:spring-boot-starter-test", + jetty_server : "org.eclipse.jetty:jetty-server:$jettyVersion", jetty_servlet: "org.eclipse.jetty:jetty-servlet:$jettyVersion", junit: "junit:junit:$junitVersion", @@ -65,11 +78,11 @@ ext.libraries = [ ], jetbrainsAnnotations: "org.jetbrains:annotations:$jetbrainsAnnotationVersion", okhttp: "com.squareup.okhttp3:okhttp:$okhttpVersion", - jersey_server: "org.glassfish.jersey.core:jersey-server:$jerseyVersion", - jersey_hk2: "org.glassfish.jersey.inject:jersey-hk2:$jerseyVersion", - jersey_containers: "org.glassfish.jersey.containers:jersey-container-servlet:$jerseyVersion", + jersey_server: "org.glassfish.boot.core:boot-server:$jerseyVersion", + jersey_hk2: "org.glassfish.boot.inject:boot-hk2:$jerseyVersion", + jersey_containers: "org.glassfish.boot.containers:boot-container-servlet:$jerseyVersion", jersey_test: - "org.glassfish.jersey.test-framework.providers:jersey-test-framework-provider-grizzly2:$jerseyVersion", + "org.glassfish.boot.test-framework.providers:boot-test-framework-provider-grizzly2:$jerseyVersion", gson: "com.google.code.gson:gson:$gsonjVersion", postgres: "org.postgresql:postgresql:$postgresVersion", hibernate: "org.hibernate:hibernate-core:$hibernateVersion", diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml index 1e4db2d992..b3f571fd48 100644 --- a/config/checkstyle/checkstyle.xml +++ b/config/checkstyle/checkstyle.xml @@ -184,7 +184,6 @@ - diff --git a/db_hackaton/src/main/java/ru/atom/dbhackaton/server/AuthServer.java b/db_hackaton/src/main/java/ru/atom/dbhackaton/server/AuthServer.java index c9554986db..23631afb95 100644 --- a/db_hackaton/src/main/java/ru/atom/dbhackaton/server/AuthServer.java +++ b/db_hackaton/src/main/java/ru/atom/dbhackaton/server/AuthServer.java @@ -31,12 +31,12 @@ private static ServletContextHandler createChatContext() { jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", + "boot.config.server.provider.packages", "ru.atom.dbhackaton.server" ); jerseyServlet.setInitParameter( - "com.sun.jersey.spi.container.ContainerResponseFilters", + "com.sun.boot.spi.container.ContainerResponseFilters", CrossBrowserFilter.class.getCanonicalName() ); diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 736fb7d3f94c051b359fc7ae7212d351bc094bdd..ed88a042a287c140a32e1639edfc91b2a233da8c 100644 GIT binary patch delta 795 zcmYk4T}YEr7{}l9IOewecvrq|zRp&Pu)Rae%932Deb8trl2#f~U1)|>mXMGjAzer% z&iqrBDUui62!${~D9~`z+FbKvc2ief^yN(!L>FCjJZkP-{r}JJd7g95bB=#FVQe^| zd!KQ6Puiz4Ns><8FReCw%lO&6+{~nIb;N&j(mcOgCsleA4KI|~35Dlufje+)qXND_ zm7$-C zNCU=IXTZy;owQ_Gcc$r5`e0pgFlB6mGbH1oT~6Y=uC2Rv0WW0hF>X)8$7ziUve!Zu zJc`J0<;CaQ^8~EOOGO87rsT&%W4?ez`K!=b7!R`w1w3AuEGqAL;^8fifX_WiXnL#B zW-qtdsPJ0F5gg_6ru73$lC39HMV@L=&=@*Oj#?q#gbtJLtdKe35;E7rRiBGHVU1mb zKkR0MSPq|K8Y*WlQS>sNw%G7~ri|*Z3i&r?M|DJ{V3V+&k-hZf2A4Vb5-FgL7A_Cq z^gE5RTDf%Kd}}hsxHY$lq>8poajRWXl}@&cP)~a=Cl~ zP~a;;g!9j{Dl>u2)sgi94?593S4>K;kTtzYqOGnkepr7V3s~Hj&Nt9#zF)LW9We8L z8aW4rwJmt4VF>L*4siH;&A#wR+e7Y%>Eil69rB*$v$$2d$AZgkDa@W)gZKs0ud hdM7b5xg9l&a_0Yk%%8%#@f=)z#qC9x{!m~g_z#MO4vPQ) delta 660 zcmYL{T}V@59LCT47dE4foi&v0Oi8Rvk1XB7GL2jmD_YuQ7Fk+BtkwsUjD&<;NJL%~ zS`X4Uk+*h{U?KED<~+KuoNl|YtGX#o2nP|=Rc|jV&(-huJm-1g@SgFJg0Yc;!R>1n zmp#TNNs`)byW4cR?p!yM29?p5S0_y*`MmnVmEXU9Sa@%SJ91$4Z6M-j5AZeOWN%@c zs;4ChIjso6DV0i?z(Y(yRYJxYoowI-XEDn!f1^iB-ty%=4K;&UMm)&Dk;tR$O1=9B~P2sP;4JnvpZjr;>uHiU+( Z%l`i-;umRMy-ZGDa3fo-Yl{30{{Wl(01*HH diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6109d5b6ac..731147b937 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,4 +1,4 @@ -distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-bin.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/lecture04/src/main/java/ru/atom/http/server/HttpServer.java b/lecture04/src/main/java/ru/atom/http/server/HttpServer.java index 896cde0a62..699e3fa4ec 100644 --- a/lecture04/src/main/java/ru/atom/http/server/HttpServer.java +++ b/lecture04/src/main/java/ru/atom/http/server/HttpServer.java @@ -17,7 +17,7 @@ public static void main(String[] args) throws Exception { jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", + "boot.config.server.provider.packages", "ru.atom.http" ); jettyServer.start(); diff --git a/lecture05/Dockerfile b/lecture05/Dockerfile new file mode 100644 index 0000000000..607b5b15df --- /dev/null +++ b/lecture05/Dockerfile @@ -0,0 +1,7 @@ +FROM openjdk:8-jre-alpine +MAINTAINER Alex Pomosov +COPY build/libs/lecture05-1.0-SNAPSHOT.jar /services/matchmaker.jar +#EXPOSE will not open port to outer world, just inside cloud +#Billing service port +EXPOSE 8080 +CMD ["java", "-jar", "/services/matchmaker.jar"] \ No newline at end of file diff --git a/lecture05/build.gradle b/lecture05/build.gradle index 03071883fe..84ad1078c1 100644 --- a/lecture05/build.gradle +++ b/lecture05/build.gradle @@ -1,13 +1,17 @@ dependencies { - testCompile rootProject.libraries.junit + compile rootProject.libraries.spring_boot compile rootProject.libraries.log4j - compile rootProject.libraries.okhttp - compile rootProject.libraries.jetty_server - compile rootProject.libraries.jetty_servlet - compile rootProject.libraries.jersey_server - compile rootProject.libraries.jersey_containers + + + testCompile rootProject.libraries.junit + testCompile rootProject.libraries.spring_boot_test } +springBoot { + mainClass = "ru.atom.boot.hw.HelloSpringBoot" +} + + sourceSets { main { java { diff --git a/lecture05/presentation/PITCHME.md b/lecture05/presentation/PITCHME.md index be42df441c..df4e10b3ba 100644 --- a/lecture05/presentation/PITCHME.md +++ b/lecture05/presentation/PITCHME.md @@ -19,13 +19,38 @@ https://atom.mail.ru/ Refresh gradle project +#HSLIDE +### Поиграем в web-server +Any questions on HTTP? + +**You must understand HTTP!** + + #HSLIDE ### Agenda 1. Threads -1. Servlets +1. Annotations +1. Match-maker 1. HTTP Web Server +1. Spring + + +#HSLIDE +### Threads +1. **[Threads]** 1. Annotations +1. Match-maker +1. HTTP Web Server +1. Spring +#HSLIDE +### Threads intro +As we go into the land of servers, we face multi-threaded environment. + +Most of the hard part of multi-threading is covered with frameworks. +So this gentle introduction only covers basics that are necessary so far. + +We will have deeper topics on concurrency further in the course. #HSLIDE ### Why do we need parallel execution? @@ -58,8 +83,6 @@ Refresh gradle project Behaviour of multithreaded program is (inter alia) dependent on OS scheduling -Consequences? - #HSLIDE ### interface Runnable @@ -125,56 +148,10 @@ Util to observe java process stack state. # show all java processes > jcmd # get report -> jstack > report.info +> jstack report.info > less report.info ``` - -#HSLIDE -### Practice #1 -Our Bomberman is a client server game. - -As a client server game we have Clients or **Connections** - -Clients want to play. So, we have Games or **GameSessions** - - -#HSLIDE -### Matchmaker -mm - - -#HSLIDE -### Matchmaking algorithm -mmalgo - - -#HSLIDE -### Matchmaking algorithm -**Assume we have a queue storing connections** - -Matchmaker is an infinity-loop algorithm with steps -1. **Poll connection** from queue -1. **Collect** polled connection to game GameSession candidates -1. **Check** if candidates count equals to PLAYERS_IN_GAME constant - - If **no** continue to step #1 - - If **yes** - - Create and save GameSession - - Clean GameSession candidates - - Continue to step #1 - - -#HSLIDE -### Connection producer -We do not have server to get connections for now. - -We need an instance to emulate client. - -**Connection producer** will put new requests to our **queue** time-to-time. - -It is possible to have many producers. - - #HSLIDE ### Queue Queue is a shared resource in a multi-threaded environment. @@ -202,68 +179,104 @@ interface BlockingQueue implements java.util.Queue { queue -#HSLIDE -### And now -@See ru.atom.thread.mm and tests - - #HSLIDE ### Your turn @See ru.atom.thread.practice in tests -We have +**We have** 1. Event producers -1. ThreadSafe Event queue +1. Event queue 1. Event processor - -You want to + +**You want to** 1. Fix `EventProcessorTest` 1. Remove @Ignore annotation 1. Implement missing methods #HSLIDE -### Web server -Web server - is a system that processes request via HTTP. +### Annotations +1. Threads +1. **[Annotations]** +1. HTTP Web Server +1. Spring +1. Match-maker -Examples: -- Apache HTTP Server -- NGINX -Can be embedded into application -- Jetty **our choice** -- Tomcat +#HSLIDE +### Annotations +What annotations did you see before? -Plain web server is ok for static content. +#HSLIDE +### Override +```java +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.SOURCE) +public @interface Override { +} +``` #HSLIDE -### Application server -Two types of solutions: -1. Old smelly JEE - - Sun GlassFish - - IBM WebSphere - - RedHat JBoss -1. The other way +### Reflection API +Reflection is an API to find information about classes/fields/methods +in application runtime. + +@See ru.atom.annotation and tests #HSLIDE -### Servlet -servlet +### HTTP Web Server +1. Threads +1. Annotations +1. **[HTTP Web Server]** +1. Spring +1. Match-maker + + +#HSLIDE +### Web server +**Web server** - is a program that processes HTTP Requests and provide HTTP responses. + +**Web server can be a separate application, like:** +- Apache HTTP Server +- NGINX + +**Can be embedded into application:** +- Jetty +- Embedded Tomcat (**our choice**) + +#HSLIDE +### Alternative - application servers +Alternatively large projects can use **Application Servers** to manage web application: + - Sun GlassFish + - IBM WebSphere + - RedHat JBoss + +**We will not go this way** #HSLIDE -### Jetty -Jetty provides a Web server and javax.servlet container +### Servlet container +Basic function of web server - to serve static content (html, css, images) +But most web servers provide some functionality to apply **custom logic on HTTP Request** and return **custom HTTP Response**. + +This can be used to serve dynamic pages or for custom **web application** (that's how we will use it) + +Custom server logic in java can be embedded into **servlet container** (part of web-server, that manages **Servlets**) + -Supports -- HTTP/2 -- WebSocket -- ... +#HSLIDE +### Servlet +servlet +#HSLIDE +### Servlet +**Servlet** - is class that handles HTTP Requests. +Java provide low-level **Servlet API** #HSLIDE -### Server approximate behavior +### Web Server approximate behavior 1. Start 1. Initialize internal servlets 1. Create a "mapping" **(request, /path)** -> handling servlet @@ -273,147 +286,162 @@ Supports #HSLIDE -### HelloWorld servlet -@See ru.atom.servlet.hw - -- Servlet class -- doGet / doPost -- jetty server init +### Modern way +**Servlet API** (a part of java API) - is low-level API +People tend to use high-level frameworks to make web applications +This frameworks use servlet API under the hood + +The most famous web framework is **Spring** #HSLIDE -### Practice #2 -No more Connection Producers. - -Now we can start a **jetty server**. +### Spring +1. Threads +1. Annotations +1. HTTP Web Server +1. **[Spring]** +1. Match-maker #HSLIDE -### API -Serving two types of request: -- Connect new player with **id** and **name** -```bash -GET /connect?id=1&name=bomberman HTTP/1.1 -Host: localhost:8080 -``` - -- View all games list -```bash -GET /games HTTP/1.1 -Host: localhost:8080 -``` - -@See ru.atom.servlet.mm +### Spring +exception +is a universal open-source framework, used to develop web applications +https://spring.io/ + +First version - **2002** +#HSLIDE +### Spring modules +It includes a number of modules for different functionality: +- Spring MVC for building Web Applications +- Working with Databases +- Messaging +- RPC +- Security +- Testing + +Today we will build web application with **Spring MVC** module #HSLIDE -### +/- of plain Servlets -1. Is it convenient? -1. Could I write less code? -1. Is it as easy as you can imagine? +### MVC +**MVC (Model-View-Controller)** - popular pattern used to build web apps + #HSLIDE -### Annotations -What annotations did you see before? +### Spring MVC +**Spring MVC** - Spring Module that make it easier to build MVC Applications (Like **Django**, **Rails**) +exception #HSLIDE -### Override -```java -@Target(ElementType.METHOD) -@Retention(RetentionPolicy.SOURCE) -public @interface Override { -} -``` +### Spring Boot +Spring is a powerful tool and has a lot of configuration options. +**Spring Boot** is a project, that makes working with Spring easier: +- embedded tomcat included with servlet container +- minimum configuration, sane defaults +- metrics, health checks and externalized configuration +https://projects.spring.io/spring-boot/ + +First version: **2014** + +**With Spring Boot our life is much easier :)** #HSLIDE -### Reflection API -Reflection is an API to find information about classes/fields/methods -in application runtime. +### Hello Spring Boot +**@See ru.atom.boot.hw** +All the magic works via **annotations** -@See ru.atom.annotation and tests +1. Application entry point (HelloSpringBoot) +*@SpringBootApplication* auto-configures spring application +1. Request controller - handles HTTP connections +*@Controller* - let Spring recognize this class +*@RequestMapping("hello")* - this class handles **HTTP Requests** to **/hello** url +*@RequestMapping("world")* - this method handles **HTTP Requests** to **/hello/world** url +*@ResponseBody* method returns result will be the **HTTP response body** #HSLIDE -### Jersey -[Jersey](https://jersey.java.net/) is -1. RESTful Web services framework -1. Serlvet-free from our point of view -1. Lightweight (low overhead) compare to servlets -1. Minimalistic syntax +### Important notes +These notes are important to understand: +1. HelloController is **Singleton** (by default) - the same instance for all requests +1. Every request runs in **new thread** (actually backed by thread pool) + +Here comes **multi-threading** with **shared memory** (concurrency) - topic for further discussion +#HSLIDE +### Match-maker practice +@See ru.atom.thread.mm and tests #HSLIDE -### Jersey Hello World -@See ru.atom.jersey.hw +### Match-maker +Our Bomberman is a client-server game. -- @Path, @GET, @POST annotations -- jersey initialization +As a client server game we have Clients or **Connections** +Clients want to play. So, we have Games or **GameSessions** + #HSLIDE -### Make MatchMaker great again -Goals -1. Migrate to jersey -1. Migrate connect method from GET to POST +### Match-maker +mm #HSLIDE -### API -Serving two types of request - -- Connect - -```bash -POST /connect HTTP/1.1 -Host: localhost:8080 -Content-Type: application/x-www-form-urlencoded - -id=1&name=bomberman -``` +### Match-making algorithm +mmalgo --View all games list - -```bash -GET /games HTTP/1.1 -Host: localhost:8080 -``` - -@See ru.atom.jersey.mm - #HSLIDE -### Interceptors and filters -Sometimes you want to add some aspect to your method. +### Match-making algorithm +**Assume we have a queue storing connections** -Authorization: +Match-maker is an infinity-loop algorithm with steps +1. **Poll connection** from queue +1. **Collect** polled connection to game GameSession candidates +1. **Check** if candidates count equals to PLAYERS_IN_GAME constant + - If **no** continue to step #1 + - If **yes** + - Create and save GameSession + - Clean GameSession candidates + - Continue to step #1 -```bash -POST /connect HTTP/1.1 -Host: localhost:8080 -Content-Type: application/x-www-form-urlencoded -Authorization: -id=1&name=bomberman -``` +#HSLIDE +### Connection producer +We do not have server to get connections for now. +We need an instance to emulate client. + +**Connection producer** will put new requests to our **queue** time-to-time. +It is possible to have many producers. #HSLIDE -### Authorized aspect -@See ru.atom.jersey.aspect - -- Filter definition -- Adding filter in jetty context -- Applying filter to methods +### Practice 2 +#### We have +Math-maker service implementation +@see ru.atom.boot.mm + +#### Implement: +- ConnectionController::list() + +#### Un-ignore and fix: +- ConnectionControllerIntegrationTest::list() +- GameControllerTest::list() +- GameControllerTest::connect() +- GameControllerIntegrationTest::list() #HSLIDE ### Summary -1. Threads are not difficult until concurrency comes -1. Jersey is lightweight and good with jetty -1. Annotations info can disappear in compile-time +1. **Threads** are not difficult until concurrency comes +1. **Annotations** help to build meta-information about application and can be used in both compile-time and runtime +1. **Spring** is powerful universal framework +1. **Spring Boot** makes a lot of staff to keep Spring **simple** and work out of the box +1. **MVC** - methodology for building web application (learn it) +1. **Spring MVC** is Spring module that allows to build web application based on MVC pattern 1. Keep learning **HTTP** diff --git a/lecture05/presentation/assets/img/MVC-Introduction2.jpg b/lecture05/presentation/assets/img/MVC-Introduction2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9a0d27ec7fb02c1f172e0ca358966e43ab6cf9a3 GIT binary patch literal 21813 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 literal 0 HcmV?d00001 diff --git a/lecture05/presentation/assets/img/spring-by-pivotal.png b/lecture05/presentation/assets/img/spring-by-pivotal.png new file mode 100644 index 0000000000000000000000000000000000000000..2d68ea7601611a37063509859453d9290179a2c4 GIT binary patch literal 11931 zcma)iXCRwj*!P_XVwBj_id~}vt=dwwVsC159$+Qml^pim0Z@Tf#@q8by2F^_)I2*@@HFR zjxMsLn>S*h4Z?=LqS?Z18p`ZL%ae}g@N#o2v~cq{9RB@V`?RRwSpHhfhI{{*nS$Y3 zp(%ECQifpi|6COOb`ArL8k`rD95btY7Hq{!xG!a|)pb?zPE;X0aAxOCvAFTHu-|JE z6w$}yQl8)o2DtoK*FJf>g?h^qRk4yT)xxKF^KqbyH=%rNVN{DUK^3mbYKgZDF>aUC zF4{QnFrFuWM|pVF3dlDlFE~-0D>|SfSiZ}1tZr!>oacfDFlO_pKa@t(Tvk+ObyxO; zLT&1=m=27JUmAANkruNkd8I6(g-tfRMqZ)MBb|LZd~lXWcsHgtHv(EbLHS5 z3Vzuhloy;M0(z-)HYlPtfZwTs<)ZdTy6gMc99M~(k>E_-wY{Z}!At;ZQndCb9qOC4 zV!;UCq;Lr>&^ENvXIRW198jJ%>>l6WDUyB1nF2s1sb*#xSOCcUxx#C?tQwByrHace zbw@bQ22lWbfFE6KZKE$71YqX5@7z(3%J52R@gY1!8~`fy40{Kiqn^V*puhr-4r{ypO2Y|V^GP!)Ag=D~>OhfvrQPFF2Hn`aoFMv|_ceIz5dsj#f=*cuh z8OD1VD~ZV79DBR;boK=ps2ytllLGx-R{_BDKlffMPSfa~YMpVf-2bjaP7BPKPn(Vk z>9r0M1FGzk2$xKaG>!G2UU`1|53Vu-sB+gMCt<#Kg%kj-w3J>6vRfLz-cS&C@vf!r zYTD$}c|pzHsklE$NOzN0@_1_0k<`X%tE3Br_symWO;rJNnLVMSC( z{{X3=ufo}p=QRB^zEh#5X`7t@iF*hDE_?K-ne@dADd@w&6#*UxA}zY zr~?3?P@pACx+?gTql&3GV4HFwz8{?smulsI+WrS8;)MqQs@M?;0rHi%AmHdjq+?C& z(sD@b8=-|&&uPEY>L+|x3jbb#0Ft+#jSEFx&ZZUCVZkw0k@(Ac3u&eL7bso!1+uakBqz`#03y|_AEIG-^S zfTlKu(N-9}4Vdz3>QKA-JN7Q2V+WY0m^b@4(}X{ff+SqZf{B8;vM$>tLfTA8` zo!wq3FjGah3Qe$=xSLTZ$8M{0p6u3efezR1&J1`ezpgxeR^XA~%jF9sb0<*$IR0Q# z?1gQmLYelp`P(+}=p%$|IsodMyk-wZcM@*nVHRMM~r5G~)vjOTR#mn1$?dp6WHI-g-0ZK%Z-~2lM!c`&GkF0wYkdF!!KLLwqt|CmLt=E?!{4OJK_3;zixgy;X)jFa61^cwvqi{{+jM-d{IktBCP)VdUdph;oqT}hm*bVK(&x|X*<``% z+RoZdyLruK3rACVj^iu+?u-6edx!OFzKJRa>jl2IWsiQ`HJ=^pPLuYx83jF zXWl!vl<_NFbQG2Mi_=mFPt84SG;PrD-yAklFb-%9s*}JMb{=ML-ziyMs`A}_?&Y2A zKlw-^^Vf|#*d@iQ>qM^d$O%u%2ID_$4b!|o7*}rp#(%}>OC6i3t zo_3~6A~=*C6!o?r6SBIEc;s2>VYNdf+JnjZDl%|rzd1KZhB)0f-rXIPUJWk{IqhY3 zu=1(;#TSutzkKzpH{9}Bl>Y{M8l!kt-IAlOc}j-k^#FdWLt84yE+TUQABHnw{)gXP zKYOzLhlxo++jqyAnxDw_)Ja=_=%{r|-0ePPfAx)HxWR9)!O`W)8&0lvHccx<0RvPu zxYN0;X!HFUS(vSQ*XNccHe#&>MW7SQUOq$fVrHCTF$j8lz} zpu=0@L;e34%fEkMwzOc$=i$&Md2FNV=)fkr7f>TQ=r1r03NeEw5Z;^?g^I&7w3*B1SbIJsq%9=0$Bk zv83sS?A>(!Np`J}v+DDTkx;Q9ul)JWuXwP&!K}fpTO`L5rkcbRI&x*QM^f)mo2oZI zmZ2CW-h!Sr@8TG#Z2ef{=@R<7@d+%O&c`8v%`i!x<^!q)P`m(Fd*)o~S&!nm*!{|z z5yRAf-VhP{r$2KFz8ED{GRV|iufZbnWj!6;2C5C@Zgo6bS&5482Mz13>aVyw@G#z* zcU9amAWYslj`4xxi}PxIUb7|5I|N*6^Jx=WU%tLOs+b*B>{oNbzE1YM6PdL!HPG?c z?5kS&E^Z_%G|+2(+2&5$?AQ9qj%i0Zi#fL?ywjZXwAMu0PweO#p3XsIh~!pg;+q(O zZ&Uxi>Ya;qz|6~z@A(RH$ZLz;jWqr0{V$FoipKwuW8;(j_N4G}$O?F_2 z_WGWuxho%%0W9!jFP(YRX{CK_i%$J>@Yc&Xrve)MNe}I}{^#(S`@#8)f1UrV3tyKG zv5acvZt90}-e}3+>DByV*AH(Rc7aH8Gk?k373dk{`N~S7VMklKf}L&(f1D|oi4?EB zI`4dsLL%2z{K>oC;O(Vc9J!OJd4@YFdpprBqq_KjI3)_PO~~Z!q-XoTtj=`Sxq_3a zdHs~`PGn=+Bwfa}Y&5+PcVE?Jb)xENl6_{)5Nh^d+I+u=Q99Zq>?9u-G-5nfw5r8O z##+7dkD~v`^3FAuTj_nz$Y{_*QLi5+!N$SX-ZzQBZkm+(=p$B}$Yw=qC{&QKs{M%l z)HsXS-Rr~W*yTH`ZzjHf=}yT00pXpM1!sgqGT3WU@Lf8Y!Gd3zs2l|n5&U*l8N%C6Hk!tB^oYTq z%b(CRrnJR}5*G+?HkQ;IRd!lY-n$D4W%yZ1bRclhuV-x)*FH88nt5u}vVSd7|D?ai zj7`O~WH)?_0ov6`-Q5*J^W(v`iP+HhM)FLPu^DBLZ>ON}H18wWN1VR5l2E7#Vhd^rZ|eucEuj~s_=-i*W z^6l3i(5{>h!>uKxU|OBXZ2>MOZ2uG!qk$l4j7ntrvYGwiN-iIG=V$#$dgBPRYcqBKfx7qh{H|?u z)nI*@VQ|kQ4Jk6ODIEWy>#DCO#iLgFYoIzVwm^++J@FYRX;PV9Nocl=iDOcltlzso z11MJonizGeM77?L#%;FHm`IAQTBNw(l?i>w{87D!>g>ywDJb;0nG!CLslbl&UmW%k z4VfCk2Qx?U$@!l|@r`}8hm8Hnwcclz3t>$qaz}@}B-z>D95a2X9ymqDMu%kTd?$*g zQ>2Fp)0X10Zn|bs?pMnHLb`X(sfD1->rtvX#`!|}MIJ42Y7ZCcL(7If#sxP`>(bbR z*&>RQ^W+4vZ*#|VA_Y}G>1)E!??&n?{EEfnXF04_KkfTg@GN*D5VI-SmA{Ah-6Z0_ zF*+EEET}z9CTXf~!PQ~4pEO(@B3m^RAfqidR(h>NG6z7~R13%m{YS39xs_2DM&IDG zx=S*W-^e=Md>_$jB`-E*@IFb}j%v1Lv1eFKa0*ZGiQX=;wb@-hONw@EJ}%{}w`k>> z51NCxk+j2Y-y)I}Jd1n3hFd#^H(QR*4;P+Yr;|t?f+GETzvmju!s2WHZQufJ_74kf zI}F0v@=zN2WJpY5?<|RJym;74UYpM~!$obxnB9{mNei;NTailV{7Q28jJBCpR|W?zHf zeT-ATE{eiF{35q}*7vQ)PzOBN!OdCZgZWB*wsN!RJXQdl@SQSXwbCevqU(Cg+Psh# z3w1yV#}U#LLGlsTdrjxJ8F;NPsgMSA^skljV{|w<@`bY+iBut{LsGAV1H%@M~Bv1uGdpvQ)er-rivkUB|~lr8nf}HP^|{ko32DXer96V zJizb4Zb2>W-7?Z+7=S-*vE31bXSDbxCZH%In}tt<`t`F#Lcszi^Ar*Cp~B1Va&Y#= zs%yr+e%23<8LrxS73Ol*p>ETd-_#AtRspf_HE~9gA+MiU*k@yer3(Uv?+-LD#E_mn zTZ*|e{`BF!#no`3;&r!D)q=D<_P(K*@?5Ocy3OZNt2q}2-ti-EKQbiO-Wi4$KB(Sc zYV}fb%Y?+p^S)gDJt#874*|_9FfO6EQk4EW^ZVn_IQ;7y$zR()qi)OkE~>})(4rq~ zHLBi6d;zB3Y6PQd|FMb2Hc}biYoq95KSJpUS=DJYD(M@TlrnJABZzmIUA zJ~A<<=(=_?h2e(RAf}S;p-_o>{FLC;Ia7%8lwfHWsb8q+ehLLut=5s6A;RN)X3c_g z|43OBLtn?7J`T-l)M||>2p6qTlYEBeh2MwcRD}_U=hM-VWKEL9yeYH|>DzDk3tCg9 z$ELzjXY)+c@l8B?Y>-V0hJ2+YnrEciRyAr!pGb8=_-b#eLXilZD$fl23U84S$!KS6 zJ_U5R1aX_NJ6WmeM}_aQ(LatV7M>IARRtOeO{n zC-UFp0ZgrOy7ZA*9Aw`AziqG;cQ zVALL{ktZ7fdE4Akn;#uOp6$%`1KXl&SKM@Vq!cJ_+|A;FbMDc-1n3wlW9G@I#9p@b zXCB6OP!VIO<}a)sqNZp{!LuJe>2n_adtZc#P#{ufmnF5Ypggm1mRCUpn-H65W(}~8 z?kXRT$<8kQz*Bxy0(FDy1O%Z-x>4U*eMArDSHzQMZD`k6POt)!4*N&cS@uxy6BH@= zmO<}V6)y&POUdi3h*SkUNOOw|9z-6o;U8=`e>%<%dOS@EC4hP<5cx1n)da!jkys*8 z#`I>t(jVMExx9NUMT@>l*qehHVB_`)PYEK|4MBCPSD1$uZQ%PohhsOPT`K+^u(D7Q z{VIp>k?%REDl%Dje=s<~RRIQr@OCpyi5Y_Ic}buJ>q0sNiB(c?#UI-zZ;)MnqmTOl zp0m_S6Eerq?ZX!oU9izp1cD$Hy3HjI`nYQNB@bT`s?r2iKgBi#;q?N&fw=^89+%4Fm%X?!Q3KH6R4>3=U{6>&~T!*jDJ0hd8!^HOetx+fqyN;5k>^KeO zKNKUuLJy(H+lSNyZr;YMH&3YH@TT_|7H5|b={3I4q%sDOs`Z18vWPuFbtu^Fh$ZTX z4R)zpl9X2!l+R1K-h6ya!Mziz(@vt8A6#9bKn#)^8KM7TZM2*=?D&{S<6TQ7-LC5L zWjmkOi0qsd6M(HYO(dPx|AyM0wf`N4dCO$eU93@PkXVE(>_b4c_Dm`Z&4m>jVffwN z(-$n>=fC0b%=dpt0s9X<8zqJf2`6lrl%3$16uFF%R|;t@?z4A_sR&Jg!Af1{uMDi^3Mc-Ep|KAeK^*mWU^_sdC z0+asg%Gtb<8~M~9!DT_V6aK2V$teZH>nA7G#F*%RQ=Uz`y_Ze$K018C#MI5bF}*rO z+-CNLD4aUyI%mOZ(mX?%Kz1+CkX(J?Ms0hYLXzXN*8dLUzl#L?D2IF+qnJ` zWIuKeDp}wO9lnWG3_(GDr7lUsT^ohmn7HAhR0GwWIRQ&cmmr$oR~}%se;B?wb_KNU zaaDRL5F^a_as5t@9<7gV(m)etugPXpwLe!0Ne_qD%ZF@`g@}GSE4J3~TEdCI zsNfpf@&@|Cyj%l>GbdYA+s~ixs7N~Wkeo8@2{|)%uUwp2o?fP(WgrQY?{*LJxCR7r z-P+Ov2?t~vL?7qne~_n7gy)w1yh}qSD54%g4;sS?gbl~r*iu~fVa1yG1aD(aoa%4jxR@Z%Hg#XAWwYN;|lZoQ*6EVk$s|hnJ*mNIy^pWM$R-EeEmd{=*Scnje zNKJ$Tzlm~}iVoOK1@Y*GLfh0Shp2(1uiKf*ZBjV|t|G>iB{jky#3otXKh)*Q9wV=yY&l3wl@J=pma??TBvg2PH7mhHwyBEzUMtPYM zZ~tkwU-?3@wiZGQv!#w9_qg}Fpz~+!qG)&cZ1*AcfldvbdPm3I6Ezx|Xu+JxxaRAc zi1gCe%U|pE|M{;`WU*h2EogV#$#QvMy;Q>)_Jd*kBVr5!@o*ohD=$%C#pik!zL3hw zP-c*c$99h-H0yv&a{7iDOZ{_*?q`MUx@^l_Cc2yat@ygYLOC@fztiZ#pxI7^^BZrP zZ4ItYq&9MtUwHF3>lHl=4Fvw7w)csF_>8rEc$dDM&|))*YoZEX~IJ)YFx>zk4d)7(SLS%LO7U zPXa+EE<)Cbf~vJEBEViL8HuzuJYUlKh8>#whJCZ=l?;2LbiZr7+n_W+Ftf#B4_dJI z5nv9l%RyW;nNjBF-LSi4bH|TgB~<2WWsvyJy1vZnbZgd%+4(q%uJpAAyM3;dXg>an zM38KDmJfDag07YU#&45ZazG7@$W5d~3v;+*#jy5rzpHN3fu8Y#6GWL)tWI5SFE4%< z34q(MTxRDEL^<&H`+(K+!spy@4qN5G{e7l~A&6}q&7_>z)YuTFa8I(<2VW<}jZ%3* zu5}LVEsfno6qmgt2y#tbyxA~Zjk74D%P)DRY$L7SN-A`xr^>7C%b1_-LZNytzY3fS zv-`Yewe8Mz3kWo_Uqq|=$NI%o3Tf-Hb)wrWbvnK}&ow1uOpSd@%KMw1Gc7NPhc2y` zGpzv1uoe){vfuC`ky~E&8~bA+qj0+v;ofyM1Z^_Rk#ICb$VB8n(VQXIww=*iVH`1% zW4Gw>&+EHeOfu$NvFV#ex+wZ5E^|Y>^AcIk4R{7T`FG4h9X%St*H++nnZ}B%rNycu zz0-~HT(EM>Onu^^vc^A;rTbPz7t|s(g#;aS7d0xba=)^vbOfm)6-k&1lai-{qEY}5 zVO2`IT6(n;r^l)U)2k$(70@vf->){3(Ysde>oVu9Cy!v-?hn=CJ}ep#Z& zcb)XhQ`G6bn_Qz2r32nLu#Nm zC8d5kz&s;YSC?LATd{TwNe;R4&s!rXeBTg;W#T%}99YHo`ASO&iJCY%Fu<_|Ha80_ z%a4O1{9t}50gQeWNZt^ixg&398?sGECs7z0KM3(sa8s{5OkKhab&guCZ2x*@CEL#E zB56Xbo0MX0zMzvvh-{yn+b3@|U%BM<+RdT>bGkRu33A+?tVAXBATkdf9Pjse6X+Jn zY|vW1{Be^;Ib^a`Z|*ABbRoH&-^$^hG1ctKrp5DGAE=@NyG37Zp@$f@=dT!6XjqB3 zX4FJ3W|-PN=vBnaNwc(jCA=UqI~`nhj#kaVJd z=`6yHez5z+kJpd7V97rPFAh9gOS+xk$ab?pzl^cd++zIx^nzdCe`mOPFpC%@H-Xmt_XIDKu>}k18 zB$M&7dWB9eb>$@wzx996U8C}Ip`WNW4X$9uYeW|szg2 z->kVxEgybA^pHp9jhNRt@5JfNuuW~B=((=bRY>sXA{4$p#WmIRuae@TnxRm(T7?Uo zEig7MjYbzZ*Akcvn%6B8b&)oL3Op<6mfS&pwnN6e^f=Q#$@5 z)M9h119{Q>Nu?*sb4?}-ISWyR_>X|-~z#508kF{+T#9n=vSK`oLApmiIGA9Lx1Az4cj~&fVVR`x4S=sh*5xRg+PPYc{MGZG4 zexb+Ym74JsbMVHrIR0}j zSr=gKHvCtK$$Vc(A|Z>3nkcC^XPJ5tL{N-)5ctkFs^)bVnm)P7EMH(eyX^~G-pSUC zW=`-c!#)QmAqzpwDVvZ*M5S~?ROf`ll*WaLRvb=?K67P1XX`<)YF*`>=(j`JS|!G^ zuAK6I!(-9;!CDM{P8mlZo+z7oTkLxqI56O)O0u3f{o_4OzDrB!MHDYF@8Sc$-Fc8~ z1E+E^^F#Ubum1w5uxj4|;?``v^VaO{36UoAgFqkvf#7y*yL*$P^~Y;J5o0Cu($KQ3 zZ|NR+zE0cg$%01(u*+cLaBh&V$4%4+*d{M%rJT3BLvveFBlrd;i#LEKe2s z2xnf|h<0%@-Jqt()R&lVxbFGN=XtUJG7lGZs97&E;_uu3+w8j_p&ki^PJ59|pUsn7cy7OKktGoK7q_@&&v46p?^mYF4-Pa(3|ESQizigKBF=n;_ zqc9jBrvp#b0E^$%g=GLFe6|1de-ZOOKhHDqRgqXv&5aVwJD1oi2_@X_B?Zg&k zp;@k=z@zx)!YO>4hqC-o4;jc?FV@@>>hE%0gX)pFE+J`yh4RNMI+ftKj8Ffj6;2M@ zdPrkaEhD^iimzOGLTL@4)tXIKZx?g5&==Mx2yT8l2^TpZ4?JJ{Thn~rw;H+RFdQPs z*^PaFmk5ofCb>ON1n6xjREDAVT8)q-jXfWa|E1S6EPfllsZDE43Z;#32VX-dpPIW` zOO!sPrUzP7PVJk}2}Ygh&rg3Y@2|d=p2p1IXxm3jlC{1q@n~NMVFvn#Z>s73@c!07 z4FH|^QSWw)IkIQ!mD!nD$um=Gtt7-9$knty(3Biy0^cCvHp7gw&JU?O;;D&+?*%vj zLcv5p1x+yK7Z)7>$t1Mc&tGDKq9s^xrfRSY$HAF~K3os*I$ zI9=SK00dRL8WbQj_hc_BKzcMZ-z0+c;t{3Kl21c3=PSGUU%jO|BCl_i9qgK4FdW;r zaKQp}D)Wwr|0{}G*RCw^a=Rpz^dhr~o-5CNlPLRh>Ek19WwAzMjFR-|_SK=!QS5`ClfEWeaTA*b`cfe3Ul`SS0@%1;Jxqz ztYTAqA8}*yojEZMM>ux7paI~D(mT+uzrLcfmP~|El~D9xXrulXh3W@2TDfM83247L zoP4$K?4kAkRc`nN13DOWTjt#VR8iTqM2rAxLV2W&*u!13L?Szq9w06VKnyhEOm6=* z3KsgG5U>b&B8;-cTSPbV_8KXiXq?S2y%*1NUc%j=KEXRIOi%wHnKT>08Om(kB|mlk zEzzJIeJVNWr+whZ`JZ2YP-GwiVQKVrFl~z3*@bY}o+i*-Ir{HzDr3xJTZXbtBoL52 zI~q4_aW&6NLe}@j#Q+BY$a@GUrl!O9$}y}8RvSgf*yF~7u7v9#-QjkPWaIz5g&Trc zv;vk+x^eYplry=-!whENPrZW8T<{AGu+OLl7DlvnxxnMwhL6>AbvM+S#TtBWH6pjg zt`qmg1sy>h!D3ewniyo?pA+2ZBk`Y{3j{O4`aGN)ek}9CFl?0?GF}S7G`@e0b+uG2-(Bix z40PrhcB~MDvnK4nda`ikG9eI%2C^=t_qxT057q@$%&yX-9h{>^I&jOca;#qRgI8nM z>hE6Ph(XELYZXWK$DuCz0uH|cng71H{Av!z!3aCW6;e~?iU!6== z623-XSwkEf+850J?zmGe2tQ4Aj7D8(;)TO~svCc9R4=tX{|FXa8IJT@n)a7rba{)r*bXg$+SySE0mr+8vmzHfiwsL?Y^8Eu%36BmJfOIHKxeyGGza6oJK7 z-Kvu;RhP32J$)qUOaIV3@sv@}cL9GoKlPXw=Tse6B;b<3iee^y;^(I5Rr#uG>f8BL z@k#yq_c3M=Mc1FGj;(oH>f#i_SvS!oe9+aXJywOgvPPDAD+XpOhSYq|I*GCb4G0GU z3`afvQ}K{_RjG{qG$8xm$}=Bho>$TU5~T9_Xz-`N&MFmJj=>Sjp0=oU z3pvvHzH-!UW9=9f1VI28q(!@3pIm+XJ8%M;va1Zi`0vX|P%(Vh?&?c@JK#ty@bTU2 zlAHfI^8qDGGBju7a_A6)TYS!AIn1vYB@a?)(N}_`JyJf| zgMNyQmSWp+wWSRdr$%Ao7v^ejz=uuwiWtW1vQ$;c!4))iBif-aYLuUM^;O+v4yb0b z`Fv8U3bL0_lN~Y6jHLi4+@zXJU-+Dwg~bl%he3bu!7tPtK<1muN9IH)3mQ_m>A#?g zid{UkONKwvV`GP-?Sbgq(cKy5TL{|2$cgJnV2lrBM_55$lxIx~vr7Zu4Jzx6fp*-P(-?3*b zA#FbUO0I_7J26VLERsw=GkYD73jql-o=b@gV*ksEXs}qnU5#|ts?oC_(XrEaI7!hl{{v31qcKS;bZA3VBWAq)vv>0rz8ZYE66IGk@y)3-sx`0lMZgYj-sfqqZ#8aim;)WVW*}$q zX*DacrIB;gd1qZpDD%YcRHwM;Ayh@eIl<~=^F7DKyfI^rPFH|fWIMHgogTIr^W)gQ z^MeU=(6@NcD;j_IU2^e$V1FImMOa~GXn*@%sf$OT#S&C!HR*S8i4XwF_*uu?!jy7P zHGGAhUQSs68v}aW+TCXt&Pil^Ii>&_tUI9fG?r1Oh<=K{mL%v%LNOx97~+o|*Qp z>AH2RI#x|Z79E8I1quoZU0zN~0}2Xe7IKLo!9bqaQ`>7n{-8ZHWF?>)=g5vBH*hxM z%HmK^Ey<{F=J1evWLG(T4=5-c&;KsyEo(|&D5#GLc`0!%Uz4)}cwchuKa;TW9IZ1i zLED`ptJ?2GFq(nTSZAqlR=Bi#ggWaErzmVUT?#A2q`TXwmX*%Vy zpUN+VhmV_wTfCRoyoYaxv$@?IFhcHoQ>nDFNt<|rIK=;-Bb z3M2z0xmP)sIz{#W$tmSn+EnrXJ)KI;!;z&4|1SfikO2L~8$Pjjuknk_|G!mE{5*g7 zeVvU*PUipXIrKUlrsJE@<*6r7)Yc6)u#|QGCTj-xy%1*bIAYK_@~1!_pOOKuL79yK zDU2$H8B{h_%BeAvv}buzOg zr2IIlYWY{}jA!q_>z;Pt{346d?WqXRa1;1FG+5il$RSt>RU8XWTnWF0{ayV2?*+i| z#EsKs-E^soy8oo@4)~a^kR4^kE|}UQ+-Mf;tsUr;w``GB*|NTG-8aRR%U(btDemyN z+jl}p>rROz_xh<}v8|82wYzhf#&a#gyG|+(fF-B^X#qV?zleHcvb(3}(%O+!Ym_Ax^fGe4q zGr&;ZuqBa#{a>dAfUz~>vkdhddByk<8j0h*rRRV5ZgfjgMU|Ov*&FBWj(Kt`@RNvp zW?T5HneFWIUwosVjk3bA2*>@~mZ!}t$+`EJnH4J; zVqBhpl}>{)%L7xr)8(qX=8lpFuY%Q@lk81xR^-0pRDFWeG3SLqXH2|$yTX6{nI&06 ziT1Uu&~Q;aU83Z$3*x46@p2S*C|cnroy*Zq%%$Qvd!Q)T8teiOYaUlSG~WM$dMdRi z3Zp^_%i$Aq`jofc;n}Mkuns;T(-)7*gWsJt!@@K1n_%)uqIBh!MOdR3zJ zJp%Fn+QAH6vh6@wMljUVoUc>&1JiqT@n;{X9D2+#@SGu}+j$rqvvNy!f1BXXqvJe* z2rE(;)~-g`_{f0cOkDsi%V2ApZU%`;6@R{jm0V|r<4XQPQs+OEWL+Q6KkIQ=x=#PC zfH)ew2JCNuLi9u86R5Zqp$bnEFD%u$Db=g&=Ku4K9q(gdxHNOq%-mXWByjjC_MZTbRoi|-R%W2?Yw-an ziJL1{ed-hr&2vsQ@62rX`a+qNzF6bZ*1Vd(jQu}hkXcKM(y!)Q)14rQ&Jy_3K%msJ zsP*}qv%geSdzxiu#ZqUZY6H`e<>iGG`7+M`ig0ix^5?9XHhs(0{->>H$&)+&>@8d| zaTkM@m)I{s*H>z%X$=T!s+krk9{=AA5eWpAO{AtBzzS&-v>~tF{;uY&Jok=uQ9nN< z*2WhmWk&mNj5$&yN=i0lb+)feB}l9HBYt!|YFc^A>`nHv6amVDEE3v$|C>A|te6Cy zI;{1jS9OWdX{)_UD$&P_%~&*VQ#mc7D#cUd+mmPiq*{&tHJ!s&%&W5E?KH!*dU78~ zl2y6qu|HQZh4pB@_OCWi0I-r_*MQD&pM?LvS!TdKO7KtLFjcg{*yKADxFtzN z>9GXZDIOYLOK19j#*;}*{ck~HY9cx9&RA^krs_sKXDRyxZ7%W~tkx6_gmuOVR^mxD zv^3)Xmya2SrfifUFiV|WYlUj9;n1D?A6X1quUTj3{lm9>t^5^$?Wa0a)&DJB#>k^h zU!K}`lhu(z0U=#ydufE;XUn!+<;pMm`(L%m(aX918|zZ^J>ER|Q{{puvhlJcR$UDG7AQl&rIe z;AZJ=FVL@58rdjiPMJOb_>O6lP0nWL`~%HDKk9#jJ}w<*EB7MVN|XA$ivgplRdZ+Tx>Kw+I%T=ea=c~4Nz^a4ki_yZwe>%m zS%tcuvrV7q>kMof3d6oJ3VvZB{j7ldyS5{%Cgy{UO1h!q6MJuIPs<;ky`$!s-;#Fr z-gbfZ9pVYl70oDs+-LfQSixOc7I=)~`U+&b$cxF^mjogzEre?H1kYuilG^^J(jOI5 zms+VG$EE+E0s8Q>J7@QnP1V&+)poVjE|M77De#XEP1O$OqgWOcIIuTr>zn$4!deOr zL@L@pJgJ|G)j&pu>r1f;Ou`3-CTdYR>ZPDx)ii_Yk`}J6G|f|!gJ#<$efOll2{|}! z(8bJCmuWanJLnI6#q2a*^gdItsw?`~N!Z(2_;(BkO*Aued;M~Cjk(9B5@bn z#@f|~k_}U%=6uuh^iv-%{v$Tr>&4_-60NE&TU1*bg(&WSw_mYb?GZu#2YmwVg^onm zp{Ck_{pPbV8Bvml!rXH=BE5voP;sce6reUqMbyG8v^Gc+AQ@n%A(MJ3-!ARuDg_8A z;z23VF{QRqamO_*K z`?_GAnNxVlUx&t+zT4*~GTcC4pc?CS}BHz|M1Z}*sYsi8iTh0WZ7qun)B&e`|3 z8TsUo`r>lwVeFP{qcs23FZ<{Xj^30OWu<=@@TA8kOu)-TgoH|a%WC-EC3N(x7Y?T3 zstYw(V>Ku=;ZHNC25CXBy{?4WchZ>VapZz@7=hX(9wnF4chMBe{pU%0gJ5>xID9eq z-{9@vyKzj`^XL%<{PdLjhtIKt&&D^~AH*KR@N)1G-CcBGP_|s-&<3XbkhL09uiE!i zQlIC2Iru9o1sWrx4CVP-eUraA*JGN~9|PPMJOo_3lcF3bNE{f+u@pG@gwUzgZ@9tF zbrOS`F|~9Y#G=t1(ATR*nmQVZ!r8omI#@QL8{F;i4#j6McxnJBJ;qL?b;>5$9^{Y5 za3DwG=ADvx`(r6GmWazMNB11H6iU)_Nr)h=p7v*zz?DjE^w`yRyzZYSw*yA%v>~7j zLY?xrLme&S2M3n~hAAW}*dzDIuV6cm1BQ?D%f1o);Kq7N<={dTst%8>SEh^BnMDGT zn4($^f&OCA;t@rUxL1D`|vm)WtDD6Ek}qo{81PEG_ic}8?TI5!fQzI zv;i0eqb7k7iH7Y?DD+AEWi+`p{)w7j6NS~$5l3S(A?^8u)Mg%vgAk7TIV#vpM54NN z#63aQabQ6oH^`lwbn|dFQcdt*X^eFB*<$4uFXFJJvC+xi-dHbbSH8l_Kgv{Glk>g< zp{GKAm*Mrc=;8PD`KOrN%buoBUkH`;$*{BUUr19(VuXUX&An(P4m%zhz&F`b8jF{W z(FQE?Kqh&mNgH)3qms_x160n;%2)%G35#n~RRntQ(Ik+pbB|h~K zR2u?K`4+Z-nr*%O0FDxFQc9bvO`-Z*bN#Shto9vmUl5BIEjW9SXmYX(_|(({TT!^x zE85VkVvUtaeiN`sU~@HKv>zksxt6%dz5H~+HoVz(&Qa@>-73!7(u-WmWQU<26FzK5 zQ?vd-6)jTisaB+I!0KR|`LmtsFYMM5-XVs9EUDj?DA7f8^deCz9SjLjF}S>oQK zsp2w}B!BR5GRteioW{J0Oqn!N^(mN&U$yyr<&mf|gRzy~PvM`M;=~pHtO49n<^;pC zi<%{Z*J&S5hoCO2N;vou4Tovt4{3m`D5;*dI0I56$t#-O$iiS2NWfUxhHC<#wX}NVaUWa@Yx};zYni`>prbfGjD3X|$tam4`qIfFDCWma z{nIdpnHqf3)Pjs$n1hV=kU+0WE%8*v>0d4QwW72Fm6jX?-6g}E6vK|osf0LQDdAZE z_8#rW4>auYa}9AMWGtTue(befZ>{y`mPR}p<)=Qz43=1&{&*4SoZO+09{0)O5VdsM zznezb!#y7-AR05|!Z-eNmb|Ka?8IguEk>}yy^iPq+ESy1TvUEt)8?KB!)dy1O@*L7 zif)=~12a-lnxzW^M-VRs7!q&Sp}t)wRC8@-P}Fr)I8LF0e3b-aDRz7!<7ea)w16)9y!I9-2 zgPRjsFMfuyjCf?2L>~Rh1Qw#x#)I6~HlnQZa+%K3HI8#%EKsw?DvKM%Mv|L;ZuGR( z*FrlX2CL}1Ny{54R7`yO)ukD&&BWRC)Bm57Rpm}GsfI3TKK^y!q-%!nxtC-80b>m? z3QDF#5~~n-p4Gv=!;oFGC5JngCVYS1;;Xt^2Xk*vET;U6K3p#Y?|AU3q5R+*U$6FT zw6Uj=(f6xMmRI@V7Q3XM0=1IqFcYZ7HyJHRnFR*3WNxN_PSLcFI~yGhJbl1~IC@MQ z1Dkm==WLE_l4@RxJ8xbVk8X_O*U<-b-rf|2=Sy}ZL)S6QTJ5})x68cUbnp56#WNZ$ z_*+>gDwRE{#*em@(;EsNuy`#?AmD*Pq@zRvIl^rc1B}m#KNcU{wMs z{lK8Co7OcrBeJqHyGPLwDmI)#Nx#l$$JulB_8?vjsUVau$!&jGHcgQo+c8piak-{s zlI(4(Q?aw-ee=h6OQ+O`1&2x&^GlyD0}%n7BKX2ni$HJuF=IFBx6VQBtlVVDDMPT1 zZgu-x!E4T4sz)Th)46i@K7Tn_qprF}4#B;sx!GDI7^E*)vZ207%~{$HA2pJj zLU5r|FGIo3#5R2D9-k|bi)yzEZ)dZ9+h4|V=|NOT=W`W3dYmdbmQn&@AZAfWZ>*-L2KQdCgL znF@Zmn0bQgIse$+Wa&P9_G!}*3+Q0Du2$N57()ZgD+`fY(BR{@1aWETVUZ=Zoud0c zdCk*CV2zt?aFW{WqPj`o{I&;H2jaUre35xC;=%Fa$ym_`nf17OESn%G(2E}7dqP!F z!`Y&I_>Hf4gmkER4Ei-MrF4z{!L~1IG)~hibFJLNVRYJuKP>4P*o$@s%B7N;N^51N zsbop$vI!tWX;Cag%@ZeC7KJ$?6(!xei(ksK6Z1Wa{ENdSOpK;WHfWDVl3$1VA-6p; zexcItmH;hIip}MMv4|EYBU@QCEM?#+bxo0z{pXaW=)T;Ugub`>=CY||oZ}&(8H z<^#=@YWMMA{ap7H7OJ3Ga1;YkgmiVav%<^yE zs;NFbGH=_p1R<2qSXE@+YquDwF&-jlIp~nRKx!SB+$t5F2*;%0IbkkdKEaStemG(5 z2H50V#hYYE#yf0Ao8y|nU!`H;bz6N9+pE<;yXe^zz0cZM%fTfw;mmV`m1-o>9oI<- zS41M6A za5vD*hFtweC+awLs{G*lH?X*Xk?*cr=2qeDmh5pnB?o7NI9ivts^OjM#Y^Ii9&BFU z&y6&fC)w*7u0TZk*kj`PffV0!)tes|Y)y`4*O*@|yY=0SST;DHCq;MDDoShW6l}sR zhBA_;^syq}p)gWYZ@2!u^`FT|0vkGMcepIE*m}KUMW3KK_E`-AG{D!KnNvetx+cpx zcX`{RgP-Uf*6?=qeMO)~Q5t5Dc8-PLeR8ghBOJdM*w~Fb%abR!x z6Go>5FQ)z+h@yx{45K@Td zg4h0?iTwFi+}aWjnC5mV=`2o6Yx=M(JT>v<35ZX*JwCL8s(0w3^UO~7OpOl+ZdihtR>D=AGHh7l6M>UZP{#9lR%)d8f zQT#%Zf;HnBq(3bFxF`C-eylq<=j$vjufXs~83PvS*DzT%*b5fk zom{o3XGKA=S@*D2){;1A-N%ag^+k}f?~Q}%^ozuDFVhd zrNQ^jef|Vb@wMi0R{mwbDNY4W`{7969fLHG)Ae(f=R0Lwpei->Tm8`@p#RSPV9}-m zUsH(Rrec^5Zpr&wuAVI~F~c`*OCIScnX>gXBhS(wbz5v&B-W%y>)m-j%-6ygn3`P1 zRgF^X9BY5Ydc>KHPD~;aj0GR|3d(am?%aBJnrDbck0MPVpKlVI<1O@~I4r4sxWZkZ0^5@F`d(`n!od*)5xgMQYLHRJND&Yd zC1?0qYWKeZo(==AVp-U&GUF36HZCnJf0_LXYt?_zoF8JlA3$XBPt<-0C5ozua}p!Q zBAyBXLUEBsPO1HA7Kx|Ags&PkgN++41(13#(O8L0w?;_rcQiarzhPHNTH!@bQVVuc z5=e!)mn>Lv^g)eQFXk{7+`q7V^4y(PtG2(ZE{ze#ZsiA@oRiZbDw4s_A3wX94n{p{ z-!X;cTlL);RG7@>5n;tjSPd~;9}dd(8*U;64#T%{2W73cmquwD%OQVmV>!VI2I`F8 zVD{1)cXwxAX_%!+=8FV9!%hF~gMAK#<{c%|-^K_Y%j!RPkK_0cHTs_NI>>a95*%~M#Uw~PdtPz_2nfQ-6p#7XZxXRq*?b%{t>JFtCDDMD{B>}S z#AK7XJiDJw2p6%lm*xQLWul{A^mMv?B{BZ({S*Rrqt4C5$XeqTVrqOgwbv{D6Qh?e-MWAbsA8ffFsMU=eP2Ckz9q+u}9Z_)S^#m)53k zl=XFyXj#K%9nTato$=0O4xNh3dlmJ}arUvk;Mv63yqz_m40jgE$hJp0X z2A~!pUOpM>s?|RJmg@Ezr$tKMT(Z>Ri%dOsZFZ-oNjw4vM>UyRo>`b*w_N`wjJ^1J zFsut&TMfKXY8=;)oMkz!{$8gk@)Ul9Rv;)qOUG4lR~o%a9(*|gt>L{%=>?UJP?U?_ z8jWBE<=jqAAD!IjYKtPE{$+fTi+TgI;WQZyNf$040LLKZ2*(`K6(5UMCBZ4;tdgc!e#|G;MeGS zlBRqiP?f4D!>kMJP3iTZeABv010yh5JH&@ni6(<@HvnEvHaL?|*CA(}+q-<4JLmH^{9T0CEG&W`^XwCd4MI=^9vBSZ*&pId`QEW_7cfVz6-l>Tt(fJK*}Z2#5%u7o+g2MKj88Vu^R zgniByZ?~fW4AvR;&VROlK(cz+Ya*+3%O5pd-QepACYDgf)R?KuF4p_G-i7PMA|r#E z&N2q`l=m%JBnaE`n+d7ZqU!C~b%~MA%r1zz37uc54C+Yj7vp*1l6MK7RJWH zUK@dVRx-5^toJ@^7;~^QAu>N5{QCLKJSqozpn21I8-D)Gi&V|zA{m_T{~^M!)L=Ys zu_H9Lw!AcaN_@x+!=u_l{;#nM#!pP!rti*PS`l+mf^I*tAa>A#gz50TLj=d#kbsfY?hbQi=^%3qH>J2UQtM%I2H#tnY(h#09LjaN30@(S0_OPys-AY9B^LkvX-K z8D$UQl$iOGEuNwVTgAy~V9_HSqcIuK#0!n*EL_KmIvs*%b@d80FZ=51`;y2>$TpzD zrK8BEsmN$x<*PV@=uR7aT6G#N`mVhv7Hxi0=%oa!^~rQ1F?arjZnJQs7RN}sgdeEF z5@lj<$oyjwGnH~4jfm1(6MsJsG0LXdiI)tE89!yUBT`CeaWSb(Ym7$~rDRsG;kDZh z63a8b9m#f~u*nm!kAEK~Gzy^+?ec{gano$SFa+gN9zCUcGlk!@69D}f-x9`n8_HNtYij)5nK zIK!ff9~`_kmfvBo?8ln-3^m8|WC@Q5deJaHH^V@L3s-O-0E@A5@0b93z{~qi1aFM?Yu5&^H#b zc+o@n5Igw7*O~fROrPG+IOgNQM`6akyi`0cbD0jDk;tD?0$U~8V^q|_B;2Cml733e z4bl0fIH17~(abLh%#27D-Xi_`0de$zSve zxU+NqYYit<0a>bfhXH(j*yXh70pVjuQ`x1&$YB75&AY0)6$gpf z!^S1X_gLsV@c>F;?kFfDnAQ-K0HkM>JGrgQ@mmyx$RNiwu}8o}pa?$gE~Dx|7aEf^ z#{s*`BlJ^QQ(O5sDh!(Im3)6dk~`cm1O>kngO5=OS>Kn%tgP_N_^{z{o$Uv7ra zGJYHmvf<5R0-f=3nm%Y7Pk^WEN9bSz@iq*FUT-*F^c9QV!(DdrS~#iroIg%p4Z_6C$CHgRC6RE-N%s}{{esX}}R zHZFpsG{PrtPR=}2zps-lJilc4p>^GDf4z-T)N&;52wgTvYqbz|6~kwu1A9$Jl7q5IMpB&5PU4%%Z|leBN9=jgtP zhEMl2q?}`0D^p*j$eDBo#&}S`uGSQNi)Gt)TpL@I{vEGB@|c$4ShMA-5GP;kiA7v} zyR>l`1w|JD$!OrefBs7Gklr@+?{}n!#pgk3d?&=9rBy$Qh%^CL3gWkRCwlT z7^;~lLTaesPnZmjc`non1$a?-YL9V6ChLbhmo}W(0_ast2z1EXZmrDs)tOmG7{zROP3CyNbTbXqvPNSaZcEq!IpWQzsFlLv|p@!4w6XSaob}r*D(BPOHx*J?g>pj5CK+VH` z%@p!+u0@x~o%=yUGdR%k*STQ!GebHRPYP+>xY6?3jg_49D^m7&8*Gaxe%0ZB%JSE| z1!woC%OUk30ykLC&z^iK{q~7$>GWgG#50AmKC^mYp3^Rj0IAGgx3)kA*DKsAL{Yyr z>cR*Ks~sM7;)wNEW(I3+AtNGcaK^@k)z`kscpJOL`?DachpHmpU|BR4*Xo@d%86po z5uCNPxvFU8raP%hA4qN?dc*g5m@(kI%4ppzWXktN-x{}|Jc*1u#^Dv>`WQ`n)7S?{ z*}37rrMo;KPH5&&U!}r}OBbaUYyo{IBFPvhu*>Pgiz3B$>)jC)X)wMc)4-NQZKsz2 ziL#@p)njnQK?Be1_w}^A1gX$@X?p6Jr4t!3_*4)j+GUwB<`PPs=^}rhnS9f;yPtuLJ@@QV4r5T2#^jy z%j}Z=y<^2XhoF~#3Da$andLw0Lvt?2}OAd^`n$pkv=?7 zPtE%9_^F+SX?(4lj7<&nLJ!RJPk41c`2Yq6P~?mM>Z4iommELu74*M+@yZJE<%E?j z!OxIQ^)#2GOPjc3elCmFLySj5{mq07A~E-KpmflYbwwun}k- zN-OzlG~c4@&*mcU3$UqV6EZ7ZT%_t&F?Ri5nMhGyVXi?9eHDz)rUI=+ zTZ};9+IP6i7685%gpV82==rEnm~o+MAeL>DUd!0n$<$`cVZ0qTf=I5Ovr<%|o8K11 zM^EGvwRxHQt=TzZ=F#+>q@U%Ywys3TRp(0bXiShB%GxI%%^eE^#(LmJSYkIr3^5Y3 zGg|e+#&oB8k?2sw^g`xw{83?m(Xx5U42<$BG5A{{z^c_~^9b)F(S=}=ZUk38WTZG| zZH6=X<7IVb>@$fw8jD$Oub=GZY9sSB>n^+$8kXdg>tfMISlJZX*M9>a?_;KKVeF$~ zl2qz$gVZ-_JLkz|KqP2|f(N*OHl3APpYqxGD%(Gj$uxgT<@o=O;HGA@J+e0YSZ7!f z%4gxirn;tvMrc4F?*7U~I{3*ZQ1%_qm%;{N^!!aMiaynC=Dcru4kb=aX9I_kgJClG zGGPDjO9^)yvA+_jXqn!vc3eC?PM_#beCXe(5Mrq)9ts_k=&6t|omOrvQWMR`wPsEW zD|t8D8zaU>Ko-)y#w3e_0E*<^0}>`{Ez5&C*8Md-76R(so>PkfcXfGj;x~1#zFJGp z0m1*gsR)_bRu-HCbP(^t{IdmX*poe(NVfId*Qr(k9$BsEd&t@VczbEqUO;?o=6>07P&XNomS>WxuepVfgb*2b9El}=t0Uv7uxlZ1--2@`i_oS%<3nibVBLP{_1 z_kv|>6;+APX20sW)^LNS8o9XOMyX6U`O?~g%E<5s%vM5eP6~W(d05PI6L20)W(!P{ zSYZ=L*l;MNa@@CJ1zGTa(`g+!)qs+kGXf5{K8CLoV6)mSz2KIU`Z6ECyYn|MTbCEU zga4pdAsl01!1L-`p|Q{9ij@>6;xxVzFOF!lrRk6sGmz7iF|nAeC-KZqK)8FFImfb8 zleNeiIlEEdDHbt)j>uRkcR=J65x)w)Ep`q-q?4?~z4L4bVE*2$Nci!7Y18+FlEeUh z5pY`#EGus(`9>jYp6)Z0xO^g8WJ%z9rCUQ&Yass!}qnF2l~;nSJP z{s)}@6u<%j0?3bhG5dh~s1iz0A)}8D7B3HSK`5FS2#>y!RyRit8#B<|=aQ4XcGmw8 zHjDCVp$C)?x=}%&Nux#BGc}m@jgPeyvc_mCEf;-VA>LF*3Q%Ne>yftVRp*W8Cg{)L^oQY;S(zaK;&fYA8t0hkaXe$13ZKGcQ|dyR75cii{34r7N^Zn}Bmv@XgQ83_Kkw1F5M}kgiLq z_`zwN8CJkBJnVW3Hsh+)HDF$vdzxz~KimD3yv4M;xqiS{1%5{@bh~CvF_(fxWq#65 zM8jDYnkGXU!O&{N)y2G!h)<1Ij^0IJ1FcB`{#b$L-(Y8p2opvkT0)yngZaJdg7hdH z-YK+DsCa7ER5?FXbE-6g>9iU#6#ucX)Wi-xb|5DjF&z)xD|e$6R1W@R)wuCHpIYb( z_N7vlXs5_QX*^^PR_l2SFY5o%7eS?Q=7EPpvWFW#G?n{C4x!+?}@aamchzVvZQ*lCjDfF10?V zl3ARW-JKkDlZq)d3eXVmW$|Z!FCe*33r=j6>O@>NXyD;KtyCcfYFeWujhl)`XE3?w zD73y=@^iN`6LWRU2gWPsL>$EzOq$VFprH4)A{jrQ^t6p{l$+Q&7g zR3UhYmu;j?r$(EJy-D%ux&vusZhbdP0$bHw4GwLQfX$j*CO;~ZM$#^!M>`IULd5Vb zj~ap&6tak3zW1hqAAF`5BjZFxU(exuy<_WU}Jg=uM}5S$>#=z3OkTX8`wZ z+W;KThgIoMgp1f&iHoOM0#gj|(+qiH=W~>_tk!mvWIi@;=6P#RWP(TL)qb_?QHz~r zzz>`aSf0E^x=%_lPQ-?KFyA)#KqxXs`OYL!BsBw_N&gc#X&LvGb!mhlksd!p5mX7w z9MQ$`!zmP4y>&^B820PzL5>D{5~6Z0#dWVg!gj?84I}m6R3e z%_vI9HW{7H?RTafI6PY`V?%}QIM3PnH}LLcBqE=y3m_Fu9sA|xjf6BOjlkq^oW&C* zPI=$vMff-`x;LkxJ{CpB@KNxdEOT=1Q-dJOZ1-Hng9*yWf&f1}_S3(Z`uR81NfK6j z-F}$;Z4+uS34tyj<}}cyQz<;bG;(&~myx?ISF&ihc*OPP{Go%`&_5GP@ex`Y5OU=7 z(5fYSQ`}ekZLdL3T2EGu7MBxKk3!6o$(-Gwvb1AWk#XGw1R7oH6&6*8>M679v(E{> zJi2{6N;Ya?l0Ypf^9Tx3pZjHL5bqvRA^0smChl*Ikl`1qde2^~Ws+{SaI;fHhB3;I zaLSC8PotG|O%Z%R^JMW+ER=9flPLw zc`*p}IQxMo-mlJI(MrkZIe1J+v519=S|6uNzq)C)wzmnO(5R?wl~D@bQ}Jk!(Ug^$ z-sr|53_`&Dipxx|XN}K%s46ujKVYVWNtdV3=EqbuFLD*>%U1kUtMV3kdTbop-e~FX z`sA70hT~dt^PQY$vE*zYyM={?XgvX(qAFGJ;ow>`DH*d5+t-v~O#|A@$n4xmP;#?H zKDm9-{X_4YV@7Bq8_(K4Op{6E6jPjvMv`eWrDt!%hNaXIAH&<8u=kIrf+%!F|E_pU ze6AVXkG{{42ox5FQ&J`*QO_xK{<$_x^$sFXl>@|s!NeBoDqd(|YX{iRoaq8*no%=tt@ ztVfWKChmB>{p>uKy>TV&Z}VLcf0qdkT?9AyBl;{^RPs%~Zrd_4jgiF&tn;Z@am>UG zpx$m7j4T?FaGmEy2G=5C)hw(!@GJ`Jksyek!RJGJC|A+`1HPnOQj)t>m(Ywu3JW99 z-T0AuE~EFbnL+Zz8~QhLAPxkE-()#E)56OJ#0pUDA*G_npy`|(nranP@ifc7{d6%; z@6GK`M|cr@p2$<%(D>5&1*Fx?0xNKL_q6URY@dkd3;Lf?(}Sq0r4DjKY|-42W_aw6eN%mnW-VNcZt)@(8CrckguETd<|M`3Z||DYo8#|s zSMBI$I$~v$c&H-Pi~6{dwHA^n_$-Bx;Nf#liFd9Peh$TloSZMW@Zf34o_-s5jSLCm zZW^<XVa~)Q|$p5gI2Z_p5dfKLJ&Yk8ybqyFxzrHy=bJSX*7G@P{1$6lo z@IHS{=iavZ4x627q(vY&5I5{UCVAXW$kr{$-VEobC`dcwJL@_vbz92a>fkWXwJtf#7*|oGpedpS9viSt|7e?-F#Xs-xmz%45S*dPu26=CB<{ObAnhO{g>3pcf>|x zHX^Su0eqiwoL9#I^A&wS_(z-V^VTZd&x zDZiTay@3DWrQ3L03f%mQxOU4R(gjh`j%y-s-69^<0;n$I1eH2V2FjK4-Tz@?bG|%O z2U5{ER=G>=d601th`6f=vl!|fSrU0*kNkH0o<@ah9j71N7~O_BDhFaUkNTy(t&&p7 z;y|KZ&)l-I@N{*Vymf~QCv)8={{oB+jIw8-X)H@Y8--}dF zNA^fWaDy)^@MCB%4?L;}?OWldR(;2~es1M8G~E1xU33BaAK!V;9Ikcuu+)1otiDHP zpO%ffP>PU(@|KDvn+yH*!fN39$JsQy<=_pz5q4>56z6w+rc1sNw1=}x(UcW6UN`u{ zjq)#dOm!3HWvxgR?0@BhpIOA)Q`=KBdylT(>l6Te?D>3KE$zNdAOO>yf6*Dty&H-C7eY5QF+^Mda8l$ zAo19ZJnGTFx@)Jf9QgoKf}RA!sxD{pPJ3M?8sC4#3gP$VAlf!{v_5%N(JSfL6cUcjW^Z^#X*dw@ z1D1VlvJKE*jaOgr)hc$_zX1`vH)~QbIZ^HO8n^L^1&ane@3LG?flL- z5ZV_C!>3dsQmJXAW4K~D1n)D^dgzxWwz&PF-PlCIyJRwQt3rd*vdP6IR2>stbR*VmyAM|D79 zw#!5v>%W0}Wi%z^?RS$22Nygz>8oxdd^PyGc@8I_u}{^OXmWC}_ZpjDs&ThKnHUcywtD@kz{B^_ax@+LW%U+!2!I2=Ncv@j7Y?~= z|IY6{h4SaSjL2;oMAil}(oLfwufw;iU#K@(EubA5uWUG=Sf=UQsOc3VXS7i93+}Rsly2j>d?Vd@R;Kjqfd{@Ah*# ztE~^<665cq*25X~?a`F%g5>;;r?+o5eGd!~L0jgS7qqXme@4dc^4S|94%8&a^0&v8 zupPO*6m2B5F|a;SLC*UwBl7kuMeFygg3ANPZR0tgmv>E$}$Bu-L;7D7ac-tFZ%qIfVrM=W{(2ZtF91cuTUZUXb&6}_3dce2{}hMNQZz>2$*V_p=)6` z%RTgAc_@wd_;EIL#L`LIIS+B}km`O@{pTP43}tf2Ex%6r4fyzT?AvV~M8R8@XPz3N z^n&o2FuB<`et8!$7qfLR4EL9Q(+n)s-w=JLfgGvKyYImjq9<*$xA_>Y0};cIqg=r^ zIcr;nZAAX z-eFQf2ps0~tbH;;siYQ3!oBx|gqAJgTVx^VQZ3Pd4MT`$<}ESr476>p_^J;Gb0DI*jRriKw!v5UXTi z>{r;=8m2k1e4E+`Y^+g?lf-c1=jsSS*V}~9-EgYgIRC8KA$^DCP+>NEvj`QMhdS{G zNtS5RW=YyZ@mYS}&mQiu>NObD)(gREDjC;1uWI4LsQ5SP-nL82d`K;v%$lhdr1>dh z%?(11>*MH7vu0CM)0Sq@8N@&G$4!MJveHxysStH#>ZayH4pV@{g5`IV(goq6&7)c0 z4%94hB=SBvjPTy|r?;_NzR`p`O*OBheFxLlJa3@nokZuk%}XLkO++c5%=tTupXgr( zO_e`p>eA?jC&d}|xFYEy3vC!x2^2vN9!8|AIpKl+++WIAceHm%SSbY>PDDr{Xvz5a ztUinxJpz-2afoSJr>0)6a5L+_PKpWdk>AI4579#eWTwYUNnY$*S?<^=R7fDh+vP`Q z#&XhOT-JYwNxig)BbS_iM|1npdnK++`_iwD>G0IAWc_$hwP=<6{^~I2ntl@~NkB}@ zIXJ;^f7~miOZ`J`@jh5A2o(JE?`>!5M#ZUn#bBk8IVL8)SLTh^Veoe#u_SQ{q;^5k znomgG?<>i;@tQz~S((wXPJoh}mEP>Z_lbkfvRfSC`xH?CLRbUVnDH(8?5SNc8}n$n zvj%CtBCtWC+gPq=_YxVh>7~((Tw6(Pt_~Jn{Vu}a&(uOXp@K}xm>+7RkmB8g*KuYE zJpRG7?~qj(&8U`%;iHbHiFjGr&Ocxm`Ct^4x%>#)T6p z`KL)I^=$#ByY~fqV>N3hcW?(cftiJWQQq)xRN=eU&u*B#p4hPnsy5 zxy)L2+x9wp_N@JddgRar+?;>%t3AXqC(>Pf)1Mt?e|RYwnDF1&FNYlmsOu&K%6=7_ ztG1|AO>q&U!|!J{$rA287_y`Yk^k>RDKEj7jn{7O-UmH{!p0__@6u7~P4nyxzCu0C zQZ_a;;r}}(nyb_x|HRWY%r2z6vB7&zBbjZi@nGReJ+Dvv|CQtlw>2{l?y710aQ2su zTDIpq@;sKVn3pD`R-O7kvfeTviuVf}20^-eX_f}5C6!o^Mj8~5hNYytL8VJrX(<5# zK~lPVSwc#ryOBmZ-_hUyd7cmN2R^V2GduU(r>=8dXAC(1I|if-W3jgPZz?i|+3Mg% zr^-_b8({7*{*%C3gN3(gcIgy8( zQ$*MP@1ry%(p>~D!~O632>fA!|GREa(sC>~e-cdgpN2hcM)y-FU#2FEZ0Eo4F!O)! zgz^9UgY^F%8fWK@970e_UbyBs@$cPQOQ~}~a6JBZIWAk)|DJ8}+y54lNas=1KYcf2 zA^QKhRqSC7NJ&=EnoU~@Tv1G*B~BM#bntV~_U)0#0K>RfHTLg_;Sr(pZnwnBF>HXL z*rhy%)3`eEGLLcqi@lKQ&d}jW(3>A3Um1ppzA}&ucL<%!@ z?_Ig8i~;`8ePf<)DIt-1mmr7u`u2Ko4C@TTix-|@K%n-@lIXiUcEy`X5N5N>1eWIn zq0ML6#9zaCL6OHqy`2;CPS#IPWw*N=el+ezut0_hsL^C)Qw;{VG8LBKuU5!E-lco5 ze!~Q((#HB_x{wgaNqI?J{a7yb^c8-Gk*M&7U&dAh`>9|+fDLo=t8LBGZj+GCA`Wj^ z?bDK@jsn!h7aAnPT{@_Ji_uuO5(3w{c5sAk0<|j9Yt`|OwI!}LL@f+;T-Uh^qjp^S z&XIhBxu3%kJ^)f!9G zI+gA}iw(Wemkz0)1$$3-Nt(xC6+Mc3UpPZAWMhMzZ^&Dq4rF&0&(s^o;CM+og4Gi= zeLyucS37%WP<-KcV7MIUb9|gnc+({LdrMu6+?Gt}N5G*hZUDjIu#(f1%E$U25^Fb1 z(H&XFbGAqyWA|zKHLrJwHAvhRId#Q1Arn1Pb#&^-YVN0x%v4R@>{hHgMs%*vpUT>h zfnHKDX>2`_uATz9LaJ0nyeWNqT2XwfL~nBgi3v&7hZm1}=Ryw7)B|eu=3+Nxm&!%> z@55u`%kmjsd3d%^lT?o09FYXa_i6Z$s1IA-)BpKE=O?)bGjNgkkiYvFW|T35`<96^4#%LV2BR*}8ytBLVSFU{hByye^%j47p{H z2nr=b46VxKFjs_Qq?MJD$B9f93f3^3$J`N-h8?U|2pv$`#~bH=8p5(sSPP0e@6p(M zC3zSTV5jnHG!Zu{R`3yaI5zfF+r0dSbAfPdI@Tw=asJ{{e&;?CN&8nX4aEgp7+yWS zUg_Mcxmt`+G9MBfg^hx4s(<>3r^HagOX|F=eW0Zs^DM)}g?rvE2Bl140&8Mkafmyx z=LC>d8_8^f~#BtQ1mryX{U(8G%f>gGC(MKv7D@bBUdxr(S`49p6T@CT5PWtuVVI zGW{)Lm#b`vu*`VIcEIUR(nU8UzmjPRF#4Kb9wCV((%h2VX*zVv)GDGX)?EJGl!v&% z4S7#d)r#wJ47RUjKh4?6KzrB^BXY@E39p*QAPBt2zg?o*ZB*4Be;T(X{eF!pT$2dI zy?ln(T<6tvVKwBI)?FetK7l`U>u}ZVvaf@-J;0WBx>^O7WF0kVGbW$SD+J!f3@tTr zdq_paf^evv6p!wn3Zs@5&4djFc>=4t9dWsS=b~W^iHc3frFP04G0*8TnoJR_WY`n~ zXb*qzfxTQqV_DdBkY?mCztAMy7ds!~7*~qEmqVyp z0fsdJ@fKn&?{U#Co|{c4mdEgB=nI3c`zOgEhBkmLqUbig7}NloB4mOz2=+*RJ#L5v z{vr=-3#PNji=T8B2(xry9G;^do$?qJMD0oSj1b*F6apbc^5Ha}NWhi|W0_6D$XNbJ zyk9NyLyU|N0&cnRlCrGyPOv2tDM+@E*P^gPPGR6ri}1+LzX7f2F)!p&1p~On4{ofM zY%zFsA9Fv|M}p9!@VY=mdJrX;swfM@niL3HHh`yJ!An4D0vsQo_jHK(`@=cR`bsFdmMDj~VubK(Fn47!5jKPmb(2ZyDsbuR)_X94Q?fT78ouI%zke^Q zou*PZ>w)hTGwd`u&GR~=ymy@Fi})2yTwj4suAma^tNT+P)neo{g@?1fbGp6<6WE*7 z+BF%Kt#_}4be^$!AZKLvXBY=WrcDdZMa$xZiuokx8vHh8E<>9UZ@k_HQpUwF7GoB!QILtLDu%u420@g z$glPzu*dc3vhM9v3NZAMA74+c?QkEpEf)L8)jtxdSRY#tSMLo7xY?|~R0-M1AqnH$PWwoRQ zuTf+K>4HP#5B@m5_#u#;SMYQ`;r^q*KCA5Y;N&8S$O0pp^79 zSauM9gT^c&^i~a>4Xd`EYGaHOilD9|hhcr)k=J01IpGrU2`id2c^=T|!tC z#MvT5ypALpR=qhRZ3#7MB^5zW>pk$ZLpm1+idJank#_sorYwP5=iU1{ z=~(|idsNLr^6Sy9n5y<>2s=@hJb8!sgJZnR;IL^jtxqkxUkD6sVpEi;fCbAQUcH2K zPv2pMy(6jP>)9>oMCipofzTei`*R{0L#m=;xjmR3maXc&tOqULUt!*M6&}8AUnr5p z1k3)K{1*mSYXGEehT-_DUe}Ah#3ebzt@h%%n!!faCAEZr=%BUH%Z?85<6nWq@qo4c zi8WoxXc>T>Ir@MvO+<>Ti;b}hebIZgdUp7FZ-1wBG(Z17^=Bwn0mg{I;?3xW?G{$! zBO#^CO{gH*X78d*tTOZ~L(wAp9f3={e`mbaq2sGeq$0c4|8WzvK)fV(syx?QiTN=) z7HozL#o=6bO=oh&#xo-%x1cP&ET;es?P-^d)O*SVkA>a7VDL(m+OsxBLOqKrY)10^ zj9Js4n#E9L>)C4DlZfOUt2HgR3&36FKJ`w3WkJE)?Zk~zr%O%CG&Mm`*u7hgB{`@w zcq`dVutvp7@wuY$scVd!bLTi*%8g|$L@xYU>d*J?(Rfp%zI`O7oc7UzY1da;2c;q} z40MLtjv`P>g^1 z_(4hurgXeySAMS9>ueV@6|u;|*Ac4*^9fV~a^MsMAj;r9HBF$ri!eSF__HS>7?2mD=IlNfTp3TILlLy$#li#-j+H2o$LfXL#>Ywex9X-Cw0w(cptT z3?*((9+70FEfKhJoz_@*tFiw|B!vr5i*9=Z< zlurvsl~b0UZJuxV%B#!t=u4{A%-&?e-kIT}!{$9?83`4ryL^rxH z#}627^%XkC4;o0jQrbKOQ3heU_z;7 z9za(N_~3EvEoVoK$;S^bJ^AeBzsiL-m9dipm9r758XtfJy}euytARgSGM3$9s!IeN zy0877oY*9IKk8`7$`KaF}PIBi!fLn5$p`7>%?=WLfW4 z5k1=XMGJ2x*d?NiT>*C03%WDZc|<~k+*%MkGdczP!{8I1Dv3y` zYbmb_RM$y*n{yGt=7+rbx*e}vAOOwlQ-C6ujCRo&GV0X*SD&HV1gn9^gL~vDFKwJE z;thMi40G9dN?$9|2fSt+$60CJy)vY(IN6FC@ckccTFq7~a*|9ra?`!9 ztIUjx3>7s|GsFN#q-(=23tNhZ9?D0rWYTj^WN-1af#k-ox4kFu#6ILAluuh~IeI;T zHOK=Uj%vILNX8`@7ztjG1sk-poOmG}p=4vrysYlo};W zKO|kqu#0VlmpGclSdAFlqj{7+q zNRK(VdyEj63D;l>RD&MMgWsAW=Vm-xrjna}P8r@zXTZzoidR=VU%r8_T)kY_Su(sC zNY`){n9Jpa5oJ-iB8F=S5f+>d)^WZH( zC}JEUu;!_=*oQMoEx5FL9)78)pRLFT`CyC|XHlFIE@x=k2o#FG*T4ECkrQ|)hrVG_ z`hG(%89Ya@_~hwGL*x(>r?SBC9MWjK{De3=v!;HM2dkXs;`u~#oMDsroV3ei2mBW9 z+WC;8ax##A7p1I;w0_Nb3TTMhw>@kxoE*eHKKWHn!3@!NOGJrZ&P3Qld9WhYU!d3+ zo8U^fFxWuks5$v8QNB-7(S`lzqE1xo^*L?!KBq+jvO~GRcDw%(n7Ks6N)LIbxN54t zW810W^#NaihWl@^{Q;kH7_Q)x36J7MuqV$Kdo&orLxlRK0HPNiR?z) z0=Znd7#3P!k7Iyrc&*?IE53sSs@rTliU&FoS@8?nP7nz_O(Ien9>>XdR4JlXHknff zr*dChlk%!Y5Q!5;M_4glI?wB@-L#hi>nuz#0k%|f*8t1=ZIOX+=!A?jY2X5diuxDP z!2_R6DUo+$uc-qSQwz(#wU?WYs0%iXMaK@wfGus1Xi>d4jU#fv8g8<)X$ftswF*1# zoY6h)UQIq4&#uHQ(t+XG9Yl4@BeF-sMnO(d&V?Rc>$bl{*4_ej@alXij2}=%gXNm2 zw1Z5h4buCao77@CDM5Ra2v!j^|5pU}4kBmmle5WjIU?@C4^kqAgnSUNQ>vV--sGrq z){kp*QGg%J1n4h0%=6ww;r&W{(jAQ#!673u6!$J=Gtzu4;y$Cj$i4==78z4pk7Z4T z@H7{-pXap@S0!vr`#x27rULIw;g#SMB@g1g z#=dUoZAxrk#YlN=+D5tZ1f0*@`mjs{UvX{ZU1yNMYB$cqy=<&4N|?Dw9?XEUteMLp zHm)llrcWIdTWXnWol|iws4$M5XAJQ2DL@J0UZnmJ#cDc5xNS0vWBncq!{SdcRc+EX z+TnsPX)R`G*4n$Wu?vuCc|ja&03hFkbh=lAuKw(ve;R^ZCJk1$B)d3O)n^)>+#|+g zqyEk^#xDg&9pO{IPrZ?DYv_|4@kGHa&QW=I%RnasWAyj$qVSHMtM;#n%f{xz56qY} zIp$%!z43^`%hdf{Cxup0Z3Sb5fbDhU;hh5w-0M;gnZ`4#7PVZnRZQi&?xHgAs-7iT z1y5U%K)u zKS%Dz;+i>$L92LWxWFjE;jThwk&PD_KY@tb8}T}V7_l06hc_&6^MjlN(OhH z!;GxU6DDoXRvyAWbnZFXiN)o3RSy%@>l+ZAKk0wh=?|F>Vb@y|ub!&My9vOYd%EKD z-2)H2mVg_49B#Z+N_a)d$7ohX=PIzNvc}`>05Wdqa90e*~x4mrM zOh;BUoy+@3#W}w((8#5LYl3nBOX8cQm)L?eoqF^)$RkoZ#N*gZ%$k8JGA+4RQJ=vB zKRtrwlDm3Yfe3UoPvN0qCFuW^j+ZN##_ds7CqvldRm*Po~?PP1E92pFeo1sv5z}f&wQ-?#xZ=<@@5zKBC3MGxTcslsvIP z)ubB9IgcwVcKE%^bNFWKS;&;Mv@)v1T+N+E_E9EpmcWN(JiMQv*KBkO$|W)!&UndW z3Z*sKW3Nx15gf~yl0R_BKr?5P@qGM@%g&lp+R4#|t*r<%rv0L4nC`VpbHQlemm^~u zKecLORe{_mrDZEGlp~wvW~xgSY2zzj$Br|XD)IsKdh%ZN())K`S*CN+P8nRP>eyp8 z3E=N8zCbzsdR2x2J_}B|jlQA9x}VVQJ7`dG?~><%Ik~_vG_+2mc^)lAeTn zoRO!rx@7)@5jVa3n!SQj0H9Iw7ck5u2Jmu!W_n)7kMw;56}YpcZ9e{^tw3!+sFav8 zwT$3_9Hkp?j7Zjo^TuCpC|aa6^+^T`z4BwCJER40lAb5fdJD+z`|2r%IN!}ktW}xJ zs<3jqjqK7Vt8;x>2C((*u#S&websfB*3Jz0K~KxGiy02A2sf2p2w%3bJD9u76lY>T zd8MHVGZP8R_7RvqtQ~zD+Vp!b1@XQv5P;TNG*GT_kLLS$__0Eupq1K)m&8I!Q>xQ&GlXc z7<%k&81pOK-a|Vn7m7`3NK&X`MC^O^;!I$+^L&s^CB1NDi`1%@W5RXvyV-?`RriiA>dh2c+Ta=)IzJAM-$H`X{^km;&;59D%K;#u z@^gMgc)LCA)rGR3V|~r>AImna32b?VY%Ld!pgG~o#f98I3jNvqJ9PUH|DN`cs8Y2s zm{u=Tg$)ehZydgm+RM(FSxxguE^ql}`9fvBx+q{cZdl*r7CBIvc-R*T9P#CuP?WT4 z3(2bK)Li%AS2B>V;~rn{iggN7Nf_%cT@;7dLB^s+j++dFeYThWCi(Yk(YEYd6$_zE zX84L{!TH3YL+iL-S*;|tdt<y{2`}$S;H1#3OFxYNo<%VQ zs7$gz;v{ljtvfO{q4A{YxmPknP*>uTl@gcalcknrb(=lx!K>%YPDA0F%Y19I!~v#u zmO`RfN;dJaCuyj13QBb~om|!9Q^Z%YkxSyowZBEYLUeW*A3vu%CjuEAGY0vFAp1`V z*Dr|)@je=`6+CcjJ>$rofW!lM86yubq#^i)cNCBoj!ay9rqR`kBk!q%{yzRvw@K?7 zjL-+wBRhutQg0U1KB;i>4?{9)UsRw`>~7kWN+UU^6OtdPOz-L+3dnI_^Qoejr8pf-`tPxNY7?@8?H+u|J&x(?|tM%pxZKw zS88WiU^M=+WzXbdkG@ggRIBFMkXEYhJMj9v?k1NZ6$wMexm5SjuE~iiG*fN_~bE@L^QNKMT?3WHuo0Pp_X82KZQemt9)k*D4 z!vG%*0OW2D5G&h7X3Vd7rO3`g{pa0}$k@-`aXa*cQxORga56{4>8qZnawPx2e#z5M z>}yEGWNl0P{8jRKli&|2%PJAI9gY_JG&gRS~*P%$)y+2gkF&`LavN#v^)$PA#c{`L) z2wEo~sjQ%?=}+LOdB#t$^{g(=3+#UtXOf?G*C>;L(put!O=*tYjXU@NEX4e``4N+G z$H+`v$l6k3q3_P9@LtXf;?Mti0WQX}@D0k@5deDl?d8{!k|axvTTr`F}i zBB}e6S+~MB_1-B0bxn*E>xO$GI2J??KSD8~r2J-&Pagy-g)&9-nCFT-00g$6TdOal z*Py1a-KJc^f@`+Nt^8~GaV{B1S*PW=x`VOQ`#Bu`PD*lLwE&5drqiniM?1vQ>ttJ7 z!Q&S_#5Sy9zP#U;aYun5k|P?bPh>W9c@|N9i8#nnA{2S)wTp%c9SPeA;nl`D=1<(7 z1{K^z9=|x3pnr?E#vbqZbtZ`m?=uPLcOCr)VA*cK^s{s)9b=(WI{w$yJ;%n$lS;8K zU}lgxcnVS$G(>^kGUX0sn^mM6`Xg1d9;*1<_*b(QQ~V`Rnm!F~#v&KelJGxBp%UNLtzn&Hr}Y?)XqbWP|>L z;JRai5mh~MxmOGEWJ?YEc0=|OOv61W{)qooG@hp+VIM3Sk7&a}^riA8`QSuhD<6J6Z*_g8^NCy6EQs@zP;3SsT#kN=$NI~FDK7_PkOi^+H$>$=+kIk6)@Z&cGQ8$ZxSAeTQeR=t{SrhjQH)#u(m z{x&4t?cIfWL03mCL5^B~mA{}4!B!zd{|~XG#5PGD)Ciz)o$>?adllF1>ASrNja6o% z^_ibihT3Z%Hmw$5aCdcYnS)IHU#A`!WZKX-fjXRj`<3!LY&}C+POF_>;zbZn4XA3`CCcPd|;3AWJ z`v|~^ z^n+#R(PvXV?bS6N(k2Cg(Z@tTvC96n?f$|+s?A80Rg$rQcG@Z0kY{DYRKUoUfR<;F z$|Yp|%xn&!#0Sn-R)Sx_F>C2J!h6FfxDz|h;1InQ`ky`i~fn1mViwvl!m9qMWQXFPE+m%QMX!$`(( z5DmB~XCSRooWe`2Up;?i`{=1NfNydPlCrl*;Cz1_u@}d)V{1$bV)@28@%v^h_jdF; z^s8er_N};4stIPu*j`Rn5FAx5Yb>i?Ol^c$=w*KvHVLR2`1x(5j{CO*J+&H|t-tWAjPiofpLqInuX+SB+_;M$@Vic0mb{9^Y8L$X znd&n1?zOG74s=e>baG}gH}PI<5LRbKw6e4!6&Ek9PT|AwDjFkM{8d_rFQtfi@=)Q+ zZ=CyP&dy23@_Oti?OeCI#)s02O=s7Bx4P^2)bhh~+wvHc zs`#gfpFK+=J9(6X!wTbaut%8nJ1#H(@#z>M2BAD-9xrG-ErT5|)^PO#t%$!JbO9G} z8){{CxIj$Wfg}ixKa1GUR7oCv3B5$cg9-t_y*-V;T(h!fCO!uoZ&Wg3ZH^^GlhCu& z*B*ySFEuY*3?I)E9=m?8>2R>(GoQ%#!O#=hMM8T1jR{rty_k{H3sUO?@r84V)vc6C z{XR+3-4fsNQKEYKnOY{!*(Ys70!>Y~g|gxY$J3Z+ZYuRr)ov&u08;64+i%B!eky*;5IIpyu& zCMpbWUR|B2vM|{VwP+}i-fD^6NjM`s-B?vxNS&;cY4At36lSl%C`tDRY3 zt-$P<*zA(yaE59RdqaCOH;yUBI5pJ`XG^KL3-x_cbH5W*-E9D>k@=OnIa}+Bx|kB)oUK5tPiP?0 zr;%?BwWp!4IwV2MXJ3~X;qY-yTn5H1SW>JdtEGxOMqX`?sm{d5F3)f-JJ$buH~o*n z-5@=PZeu0|up!toU%(;>Gxi9wycthiU*^ez05_NU`nONmd2w|a%th-qgQJ-c|&v)b(a(>+mYXp~}j9~(p}8aGvsEJ29v z!~+;w&lLWHrXmy3M!$|@4lJ`-;zHG6|u_bc~6UfBFF}R_oV+2lV(OzSPq7sM3LzkXse&81Dkm1n428?2j~AePk=6Z z{{11s{|E+81)LACZf}1yq3<}`Q(yb(a^rJd4jC_}y=9?$}!Xl@W(`EZ}+F9q8#gAR?7 z%Yh45NBuE|kv;1}j0ge0U=<*#HWZ5XiUHKfuyK=aWbxCavt{s#B#SZmb_CT@9}8q! zVR+jtzZaY`)%FY$=^U&1u9z|s+zl|daa#!S$wBpW3%&8r^}jl&s#YQ2Zufi7*LC1Y z>cSYEIha2{;Ka}B=2$amn|UR0zaO~Fg*f2J-{;RNQ-bpMB9t+5y}9JV8^Xu31V!_g zBtFIEYy+fCYy5u()6Y8cR9=Dl`n2XJAM7JijHZDD`ZJ?93nv+=S%2oD3c$^V0?#+; zmG%42{onlJBp8{N$0)zoL%(`?Q3)Lii7DY~@3Ul(5SSVeNh=e$8@Z4QwR0Xj&NrlO zCVfBnLbqOze{ewWmi+~;*=^)f2V$fu3hy{BC!Z38tklK{)g?$2^<9M;zlzjNs0Vtt zK42Ou-({VjKkqCmp$yeM{WD| z;Tf8L&x63Rs?V5U(Bt2I>7La(c830V#XQrYjrUI*Ce!Xr0CA2;F5);$lp9aXINs&6`c#^n(l zH!JHgcv|LZB<=CoDF42*3m3feey@8?JMN~}<_@YIx22a3S`IeDa9sIg3^ZbP)$jdQ zAFQ6aYenI`G}Per^#i~w3?{nXY^U+-=@$uX@-S)hhF&Qe!v^kLA86#j(kA`IE%KSA z-gdxYkKSs`MWV+*9$EjH!<|hkn z=zM8ffw9O}5Y`m`-$T|@r*c?)Fzn^Q!ldah*VIdS5^Y#QS71wzJAP$oF_4c&n5*BK z$QTB3@d`z-c(a+MulgKcpGM;$A1@RyQH{T%s(!VzMhSEdbU{dI^KItC@N|J2p8evb z@9kQW_r~tMGR;3MM7`c<+@7`=k5I8d6sCZnmaVRzx)ut&oq+n;1wULsnHz*flXO)~ zmAIaFQh$imW@^QTcIPT)Z5OCm2jju2bxg-(X4vA!RDYE8v-4}8n)OcE*Q?rh;_tUg z95ONgH6>)txj~8Skn>QUd4@BXhwRGs6u;OS1t^U=7yINjb?@hof(B*M*Y9R4XWCUi zkn_#Qw-K!mnnEAj)V&t>Y$C`?sgUdtK0hnRI$0}rhohFE1jF`J!Ls>2q2%+2p3;-t z3NZyQD!NmbPd?|+k4cPNws!1XjgDhmuDMWZMC+KD@GoBE3F_YZICRSsiCty|+7Uy-j%$nZeI zg)UgSUIEA~-r$$$*sD&1kI2fH`U3xJngxrT1;Kf>gw_?p#_(ZWrQn>oIR}Ru6Pw^N z!#(%>#(uZqzwEK#_57^6@tRJd1VJl}-qYyV)|D6lUBItU9-z(dLIGA1?5@P*>-{48CtM^~1&Iq#vt5np!E7+$rlHB{DBJgP@s?bgCu9cxDTnc>ejr}pfRE5IGBv#@N z6{1HdCYI`)>$v0-Gv{m-C*HCI7)@F-?b|{EX(lCNuRfPv7em^8@6-JquNP@zh9(QZ z4rdwx`b1TB1xzp2T>D4cKSDLcg5?$71g#{(m`?sqERt@4&Zm?1jHA&8Xr=a%Ol*z3Ae0$C}2>~ zvTyy(B0&1Sj6<2Bf&!%+3Vs#4;D(YDVytCoBr(q!+H~{I64O;l1g$cC*K?UZK9DP{ z^WAU<6AKqN9zp1%J%K)dGMGR4dWUp&$?;>Ej&vO4pYzI`n}Z=(c0K-w7A8Ti!CYTi zfh{_5WMTq&cmS3=H1_apI^KwGK+OiuUWp_oJdHDw|Jv{0ON9WaAlk5=_;Lm|^%Nvg zy~V`KAUJ;;>SVE8cwa$y59{q0p!@L4$E5t}xo2(MjeOzzvw1|?4U-46glxn6ofnRTpSrQy2%#6Dgr9b<@{j~x+o%DGE&^EfIfAbKmEwCc(|`Sl z0g>uA3zi}J`$)B6_CFFKv@>*dM8__I(=lTzj7gAt*SAzj|BCNNYRlQT1gD*gm6(dS zzinKkw8;ItHgf>$E7t1+;A;*@((*^TL|RQw4Dy6W-#27|*9^kSJUJkTOewo zUSBj%d+fdXypT5)wjkj_$=(y%IGYHX9tvMC%6-uQox}O<#l#ZnP#n6??%6EuJ|VyU z$hB|#b0AF~>U%=>oG{SZ=;+;-zVb1EA1xnKDcdtz13*qCb=gLY5Ghu;z!P9WzjFoJ z&wanV_)&C7G{u7fI>bvUlx;wR$M5uPNEIMEJeq}%4gii9gzH1HklZUF_E&W*t1lG7 zF4|nqw+todrMMNh4mnB)HF&(e@qJOMm^Q}|X#*)=z9Z89LCcyXDmM|s4h$J0)AZ65 zKE3Vw^F-;UG?9lA@?IX9@YgT@U()t_Xlbmi>9+wyaOonRdwgG`*}6svrb#R0EeMcYn~vG#FxiopgJof*JjG z79%5I!0fa`?5xAYM$X!iyy$>a)jT9)VU}xTEKAmCdOeaPIQi-ETz+TLsqu^3DU2N; zYdD21C6494Ag;HFMYACV5ut8|>qtNmE%7xbdYoI%aR8Y^r@i{T8hTuRPG;NM-s|NS zNg~7G`mOQgbFoXlwvFv)G>M8m=(dGY5JIZ6-J!G@x+u2Pn2SNEtXPn(& zdN5))zz)V3&diI%AlR{Fp!#B_KV&MLd?56amfyM*_SE%JmJC=nYtYU-T24V_XY6yS z#^uHQ@3;G%?nxPCh^hp@IAB+A?7`fMLq--9ugi!WAFWp?v!*92`+E0s3&2)grer+}H_y$b~iqq&rR zAPNj^?Ep-4XwfE1K&I z!_?Z_#@hSBR_Rb!ccKZHk`tiN2v8cb$9|%P3A9<^Eqj1v1E`X>`eqGF&h86O&M`CO z60_@Kw&IE%M9HG4*5713Xq3{~N$5T>DYNp2y<5$^jw{f*=9Vg`K709F{mx{*!xewE zN(jB{r_&gX#b$pDMFMeCr1+Kcn_Zq?S#9)OeZ*H&!Vv}OV`+7dWExD;P5#G&ha;7^ zFT_Y%YYczBJ;bO+2zz9^9rPHby;|wzVg6I+Am*As)j^LjU{Erc+H*p0%Mu9cniNA7F?wFwT5@PK7+sOpIalzcz34*%{*V{ z6V8tIU08F|8N&!t+VZ(YZ<3=ta<}(Jy*Pw!6M;s#*~_cXU%Caqcv0GT`?m4+bAh~{ zD6~-Cv4d}#yJf!3;>l&~m6`2;={MJA>FCaV?!sHoll9{GCdG0F*WL{w30GYPNt?6` z&Y!4JcxQHkJj=14aNuyQmAl^lhc9}xYfv4Pc(dUYo?OD;J?wh9&jFt9yvOfX$;fHC zx+A&YpXwG*Cfr7t1qK1ZQmv%V@MK3bp`6s>xDL*Xj2~`demnGDl04Djylm7B-yBB( zE;qgM+kAl$5Bq`$ntWWZ$Y$AwRu7D>sB=ENX?vC%st8HQ`~>F=kfCYGqF;pC?|wT~ ze%*LAvCr|s<@{NOv0sq(Jfd??3%%S7Z}UFCN;?WLMIs~k*G#1%VKK3ixwr&!P`ar_42|R&eL%}}IeY`qRnk8I)X7;tZKX*Zt25M( zNVA9apqD}RQcKYSOqr^%$~huUlB@BO%Er~tn_n#lE}FC{FWEETJA~ir+8#RIrj2I3 zMIzT^Sl~F{&XF64oYJ9kI^AMK-fT`U)g6s^=7RD%ZYweIRLK>&s# zD7(3z%cM9}xYy}vU{SZjyWro{`InnfUDujQn6%nacxgZu=^h^#WOHP6PpzqHXJ$Cs zYDZ501l6^f!_)!jO*NhG0l|fdU4mztJ(X@HLWP<+7f%0tJ!|*o(`#AZV3I|cE-T|yR`Smc{oBCLb0zgI4rE~JEqp5sw~ zY$|OsheBXWWLzbM%v#m5>G0o zO`|k3iOddGs}R9A(jKe!l63W2!z>V5e>S{h!cHA`7z!4p<@ww#$5MChQ@?k`3Qd_m z6_-M0Uaz?pGwrxGCmRcWGMpZ@sh<(*YwzoczL7^{5~dM?M|@=0q=s%J3LgW2OzqkF zbMRU$(35Lma5s5A7Bqv25xK;-;n;RnRaS2SXj+MnRKaM~XFy5;P@|gqS~WE(wdYc_ zetn#uG3~AvFGWrh$M$DOp%9=)+jK<-Ng8TRQ2Y0IhFt*(=fooOihQ!x>rh)BB%R zMS^F)^Vj}L)>e(8@Pe5J3UUJ+TY}ukFkGGkHU0+8&sRrA=>r$v#i@z#ohXl@hQ>+q z&)O6giJrCmB|aBVB;QP*^3>f^XB0ZUy?>JdZZrB$79-lGvsi94VK6qdS-O7oNv&D{C%WsCkl>`#XavfRkD%x1DcEnB2`i!+pu z-FwrZrZj0&zDfr0AEb}g`kg(_rrg$Yo%8{wNpc>lgH)iRKc6A?1dSis_@ZnyFnSNe z|6D0;v1d<_8S-fSi$9o_4FZ`uk^PRG21$rE>NXK4zB=&bT9b_|0~F2ygGxDV`#$3X z3#9jYN$!l0@tWr@FOy6c+dQ(aN9F!12gO9e`FWeR{`ZMdi8Vmb(S`#iC-qyZIjWUl zX*Rv=U3_1`^(c+6)C`7dFD?(Ti(H)<={fQ%(WePMF4d+{ND zIv`Q2qdF3AEZa&y|M2vMK`%FqL{0%Y4-n|*Nrz!$vYyINbf(6=?YhtY8&rrNPl4>H ztyQ>Sq~s)%@ox&WB@L6-hk5H3oqb}{GDiVO=6!7#r9ZTg$qRWu`*_}aR0_phJQ-?j zI(p!uBm_kC(IRdPI%AaA4Vd`Y@g>Se7Lop%e*AJRbe66yd9u5{1qY{RM*7>9n-(Vk z-MhoP+2Ch=UvI+c7vozrbIX1T7M3m8?9(NHi{tKa+XE6V0Ee{pbFEk%%#3C?3$CNy zx3+MaWL8E1lpuzaz|d2bLm+bmyM=~Xy?N@N4xI-%r79T;(;2+>0ejXi_JqfU54X^D z?(Jv(+Z8ZeYP<-8+zDNP#p#r?S*i=Wk$kJ1Ouqxr_P+j8y2;448@ zfadlfKfa;$p%NEY81I9k#!UF=ApVDX3#u5=9rfGL;3?XN^3AU?OrB34iU}LX(!Q(S za+ztT9?puP0p{&_myoz0T0su9i`n~6-wVD`kq;LuhR*K#$fVq&l-SI>T^#^YhKBHA zXm-m-K1mnY2MOfE*1M*+&v7NjsD!&?f0ATg`8o&rS;`uZd-{&Xh{jHLhzi8Li>d1mE zDRTev0KBX-U%@K-R2~pH%awIS)Pr7@qZr{sQ@V!)&^5#eGjBjO+r`L;S^KLZn~Sw#7r&^xLV@|BtD+42z>_0=0unaDpuE9yGYS1lQoU!QI_m zLxA8K+}$051$Xyg!QDASp7%TF<43r%^vqVzR99D3cisK4a33b8)6x{R>4QKK#<~Xac6;^s$8uJ$nWQQ)8bYYV zKn8U#r0Q(Bzz*Tckv40^4p}<80=VrqVSY1c?9o>QM|c0Lpe}#}veMUvoYm=z`P?Hq zI9>XdEQ3~VK;l}v@7n_d@gb>7l)GiLv;yuHu~A-!0o{th-^!l7>{lM3D!2oyhg!~i zru`e$(F8hozFj zx&u9Rj7H)!D?)3R%U#l7q&k05OMcoS&Xy7e_Hp;E*fv%zli9gM3gg)0_aXA`02acN z{WcWXZntRt;rw(l9S#^;X*|#**5XOrmqx z@<-(6h|{fwZ=G)D_oIOg`5;N-ADb;ejdS2GNyAMCBE3A65-quv&g2?7%V*w)lDd$J zyIlS-bxKyi;YWUuFy60OoSaaP*PNfy^e<@>73`d%LX)?3@dV{@?RCL@+%xDod z0rJd-Qj}nXbP3`6rgdV%d<`0T?w~DA;N(5yCwXr7sU|XtbRmr|yK_H^q0&+NJX|s1 zK0%Ov?ZcVCIdCZoUy~Ld1#!==ZgQ0w^#NE|gIS7ap{$}7=&&d`2TtjpVE@v3`KQsB z&XBGBHTI*k4~J-)oJytAQ#75E#H%5W_lTFaWUB5uT?7)_G^l{cQlp~SiTV-$wwvj1 zP?Y@NX=s)ulLC-`0-BFIT}$n_I`w4h<}M=3U4( z7xKp{YGk?M;W^iP`6%LFQ5Cgz2L!R0L0h(}+W5=1CUa;cutF=ZrQoVP?QYM@~ zoyd)!Lka}UW~OMPN|$5_97{Zq(fIn#ty__yTp91AZ4G9&cAj0_EbRg1U}Oafvgm12&O!A zt))Hy$71p2@_O?x=We=eR?$JcC`U*#DXyXkKTVM~R&u5N%TCTdGfxA%&Seng-g6aG zDS>5qw#t9NDB>F|JOXvn-RqtZiB+GGSe+g;!lP=J6cEt}2%p)dDoQB-M8>}=5p9tL zu75P52OY%@0NMVcH?D?YULsJx@D>m*rP#Z~vA9=xXL!w1pE*RlvZXow+XxgNsZs&n zU(8>wi>G*jsF;q3s%0%3R9vJ1se_BGs4@T*KGP+{F1>f^55M_@+g0g8iU|AvOg_;9s~_uqE`j@qwh z=FfZSWKc^MEkJ?OInFYhI+$-*zY~I!Cl12XoqVqu4Fsg1$Syf9KQvE+S|6^CP3S!j zGkEtifnjn_KRXbu1uSIP6b8Q$9Nrcp8mC17>z{)S5>55Q7@7i5KA_}#vTf3$pq>Zj zYG^d%z)WpWM6ZBT!cF|IhAvNF$!EU7^rF)(k+8+Mv4AxHh~`6oAAOek8;;`bpN;ei z@LQ-lS^MZajWSj=lfuB-by5WvE5;N(woVk+Xs)mjXxhHYto}FziTEySOJEKe-90VN z!|f!AbTNzYvs=osTgCz&tmIpKb3Bqwyk+6XiveOI1ft4J^Jiv%Ky+asU~3^ZvB)@z z&e8!>M5IL(;G`>EJR+DB4Zibw+)3dGMfq9=NSt~0tH?0#cb26%kxTVzK_HPy3Vh9= z5bA(*zJ+C>gii79zZ$2v5c_xp*taGAUzuSdQh60e;W=747%8|CY{%&+4%_{2J(8F0 z&0Vbf4uCfHd?BBmcvP4bt==&9Qw5KP7aV&h#@eCZYbOtKHKOXE#l!pqt+>}0P9|V4M|}Xb5uXgnxDU=p zivdU%UFU%jQIeawnKq zTd(P+ssxT-UoBgI>h>da1{YDPOrtq}r9;o_GnoVwp8U3ZVl$ZDQpWzP#{b|0J+QX|IlX-~ z^J^N-AJ6mv1xZ*nL?w#$t|)H|V9!r!kNP|d45!mjYm+%tfKop+ zGRw;o3A#U0=25pjgRyUXg9GXd6}O%9cNgYWYjIe}4SaF`K6cKjyG+hnrZ`l8214A8 zyokS8!vvKrHwwDPJS+OunDQujn`7VH0qu3;-8I*&ee2t1pl9_D(=6-Xeq)NGdO?@9 zee1??<8jeLR^U+jsnI&0g#lKbqU}W-AO<&I>BvoO4+Fhx)o=)Bd>~qj$yZrNl?F#a z!`>oA*NH4lY5*14akLKujz)(ISS=f7M>RIqn0S+B#?}$$+Ore#C>QB-<2F}a^=1!Q zNM{}k^K$H==<+D3M=2_6$lm;BV)1ewUqs&;vZgOFnf3XY&9j?(clKO&Ni{2@$NLcY4XJ z`h}cfRZ3_ntkh7dy?B3sW#k!5Cn+dfQt3bT#VehNEd`XFLUh6ZP}J$^p+ace?XZSw zs-y8?pw~fCux=)6=FTe#Xv9L$DzWX}JoneaF&f8K7>RZ-n^*+QHE;QgIF?~}rj}4* zETHMjD)}0EXsP))*N5vXz;f#T@||1g{UXK%Ld`YT5#7y6;oH(TJ7nCop0{xLR8-?_ ziU@#^oUVFTe(e4c?zr_N44QH48$SkkNRkNDP|=VRLcnK02})&lc}k;hYl`mL=)TVa zHjJkJ3ZijG=`#`c^7p8GqHeLTDryG^ogV4vsIt5^&&% z+Z3Y*84>1yj68yUA`{e_E(-3lM-*1KGX?Q3M}UM!kc#~$lf}seQ_)(^8Rs1-WGeVk zlew6qsMK(JP>c_5`9!N-akMjj{7)8tVLLuzw{$x?J@_kK^qodh7M|8-VGCxZgZ}e4 z@BSOn9fEDr0-8llya0eRQ4b+F50tIUy=wI|bJ=HbY?wYIKYm0$0{NUQG3-^mJ;qg; z5S4JGt^wCi617TINEO8K;*~&BOs+ks*5HUm8%g;xY|IMB0@><|*!!`GxQyOMQZs@j z)bbyCfjQ$+T<^_L0>xQSjj0;mBTJArn8MN{#gws4ppI_E&(_pxBXM}AjZO%2y?=0N z)g)(+-Jd{Biz>Sx(-fqLW6`?1%Pjm#4znI0IX0BhKa58&Nl%NU7C5G;2vqy)R1@C- zscZz4(V%-=Ic(n62hxc6QuM<&s9fl|oz`2?AWPRcy;s2%0_a(!AcWsjgp1TH^~$Hg z9xs}Gnu#Ek>{j%{w}%`yU@K9rw4q(XGup2_pZz*n+qZA$xKk$Gc#j{%)~k&uS76bn z37n7zg1#2*0VP-XNc~@y-o2Pa&>eg!L+gLsy%Zs^SHiI@*>-qXE|9997kwiE_Ki@f zk$de2k%>|U|JUsQfd&B+_*;7BJpx`m^&8kP9SYbEr}q#{5x7C9MXY4nhjXp;4^3zU zd@hgi5Dc!ZvJ{=0p10C`G*c8SCymQoBn9p{_7Q;isoJ8G_CvP{PEjANrrbWEy0$w! z=ipSVLS>-O8ikB0YGS+zGqVX;S=|9WZ<(mrJ0H>t{e||AdwizBCZf^EV2?X+7wT zy9hv$MliP6MRc;NTtn+nMe~`tWKDH`J4xiZt&3qn0YbZr$X22igYcD}t)$ zD`2;NdEj&{eNfefk!)Hl=~1=R)9p>BOXS` zKFRp7V~N??k{jA55hYtAaR;o?AW_Pb_uZhj0X?LUkXXs8PCFeZ$pE@{4;3Ee7(N{y zH2@rZBxv+GJ)Elp)%daK#xOk`$EVG6wT8KZP4yh$MvlBKORH9+lLOJV$rKYs^w<9c z;Uh+$wF&1$k`4wylXJpk+d6&EcO#>!PXr03Su>&eZ|jej{SMv~ z*1tR2j~7o*zqz0Ix^&$Aex{pbW@UQ4*|-#3$&cDuJUw=MuuNM|!$DK62%jyQrUV2a zlm%d$M&uIxz#$>1EClT$>GD!l@Zk**-=Rsn8N6PUul51vSN~zFH&o}`DPzNd z(}bm?Fv6k+5yF7a-y}^7Lje9u3cOpWxO0JW@QBqv7N^n7{~iI5dmagWgL3v2k;d5r zfVKb8Kv^t++RV>y+Wika8U+wZ_b`CmV@U>iAG|Dh+Z0KST^MZ-1XS+nYyo3mlRld? zTnS^AUd(B6K3W%i7fB|Hg%8~Jh{~&tjJ%?j-bm_AP_AY2GT`v6JTw-JEt&o%@em#k zz!+$bLW_scaTtOB?-wG$eG(R{Osx_iZKpLoBHN~}*7ZiCDOtE%3Zc^#`F~QQF+Wo` zs#DafQ#Z`gh1=Q=mGV=Hp(tUHqiyFZJQ!Ly+K6cXq~oAKU!Roc*_P${IVhDI4QXsh zMn;}mk_vpYj9cY5jlZU{PaRZ$8lQ_hHO}CyhsT5VNo9Ry!}q{iwFC*RY7w|kGaQ5= zn(*FetRxm$gHnbDI4U$&oz;W`@X>+B&;moj*9dC)#4K{}60@g}w?p2?;3n1WmVFcW z5kY7E|LY{kfaj-15#7Drlv79%^T@gWxK)^c06=DZGbKckG%|VYPu1_@&?mpXI_Z#+ zN4#}xQNF2&jqbC6(XAX+1zWCe*|`RIJ~%ic_6Hg{=3AWR9e_)D1fo*{w|&BntA21H z7F2p06u|KC4!VY)fMyrBtqGOsFK4^c{Z5l~)er6~kO{!W4nx{ox&!vv8Jif9i4wlO z;j%ylH$_-A%I(#xZY+tY&lZj*cEpi#iO?(zfCnw`k6=3n3x?1i#~pup+i1PaOxFbgH=45) zTPyFAM_!5E8e3b><8eu^?@Q$WjS2X_*diW5OFf(t`Tt2=7eWyv^5t!G^xYtwe&x;@ zg#Sw>@!nDjzTbybnOZCwe25|?NT zL6H47(OHnN26zTVY~AMnPn=H$FgGR9;nf(^)NP{wJOwV>O`gD2PX9IoSLq7*%19Kl zU=|>V8idExsDASZwg|eMCDhJ&Zx-IySOlIEV&)Bp-~ziU-u@=ic5#A%k@lX1OUh6d z`%R0YX(FbXm89QXi@oFxqIy&o^jzuxF^92$yKdl1yj>WO4Db@)2)}PU<7G;qHMFqo z8@ku%lZYMXKa4P2T9JUEocgvQuvl9CPt}Fd*oglx=J!7V0+QcY$`hIYD8R`uV!-na zn}Zi#{ddC=t8`VsMofH~AfNjDCQ&VmH*h-I27L|O|HWKt0x_vg~TT5*;o%R0b zTNz1Q?h?$iqY`?&n%^p{BiZq%pTw!2>Ms(Pe5EHSS+sKqx8sOAml9J-kbplDkjzGe zY(476>n^M_P14?#{O!H&vC)+Zx2n$Mr2m|~mnyDjiA@L$A(AlAc%WYLJn*^p^TuT3 z9w(`JGJ&`cT+zRADcWG8mJUtJ`a+al^`57gyO+8=C#yU-sP_4e4IdeKVzop1YiuQ)XH-U-VUDDK|3hoBprudq;eIxJz3y1kl1Gd_r zc#KCyVq^7reR4+!sU)wRxJi3}PKj9rO|PoJ412Xis^$8Y8Xo`kDcvJZocrHZLC4r% z?7)9df`rOHiI)_N*<g1#G*-Yi;xb*}r>m*r&;I`->TdWFOj!G6Cy|}hBk;0->R#hMoy=r<7mksZp zYBw5jTEfYC|ADZ>*dyE2nRx1WY1TVeol2%dKq~B^F@X~To5zrw5TFTPbR(rVxus=ngC;uKmwYgoH=Iz;Qh0xv}32lZmp& z$0VWw5StqKRGq#=q@UW>kCOE5>v|gv9@V`6Mn4&m?YLkO1_-lH`d=vy1FTp-{+jK$ zt9I?+KL|K{l}Fsb@@3QDK6xAqQ3Ba^`MqRl7}uM|a_MXCyxj2lw1U+mqpFG*;~^jy zGLg2GLI>SE|95*NX>gtg$IZR#60>p1?u0$sQ92pfUgIbx-I`_ZP-YpSy>)+z^niR&LK{NRV>c_?pR#%twF%M+`$FFR$=ZuVS#J~ z?DosylnVdZAp*_%v%!hPCl91vDf3*X(i*%9GQ*(Bsq9z4HRIam3|r5d0yQI(N>XP;$Qn(i<8XJK=FQPZeQ_!8AeuYj6O4W;}`$LOVo|arz37#2D_QA0H_jC6$oYb z^OM!zr%r13m}4Uoj?l;OS;hMt^e0R8Pbl*mr|X3m)cwd~_CTKilu~jlsww0HKZ}iC zTI*^3BOIGidC$fyx92%GrlrpxzA>MdKRVbD^$&;M224W7!o;OWV=&3od0Vx3$roGW zf@fP9twxX+^p|N#>nC)cGOJebl?tCTWP|SEzM1am*v!rEon&2TWmtq{lB>*FtFJWE zb5^%d)cOo87wV_fYB(q0QeUE$rM9}>L`Hq{>F%_=;PxMvZ&ipq|36sn} zZF}brx942t+2UEv=^hgyPB+fFGt*t0!+Ivp>Du+-v!~k4+5Hx~@BD25N4vezY;GW1 z#YI-DwWNwO+=GQ};mNjXtl^dhNESxwPcW}bg=e?t^e|@HI?}tMvsqMPi9e+bg?OKc zFS^F(5~{xcacwC`_vCEzH$KScupOM<1=YAig;KcV8Nq+R{ znQ685Z*L(#N848DG{k7jxmsua?>4<=+f!M(Uuc<~-lpO{Y+7>5rgulbwkyY0A1~Tl zS2@HZ+a=D{v!15-Th)a7M;#ka%!*G%>JYlcrNY9KNjdtGQ#xNq;aqGl+yv@ksc50YY4@>iXf{|dcOE{Rk3kr};gJoTeyJ^S;QdPE{pZ+qV%CdPCotu#_w zz->5#wv)6v11cL=@spWl;%im*9z(l%>A;Wu{u22e9V@kNtC|K5C&{~A5w>=RS0c4< z(mU7gkNGcxFw`VLZuTbp5!1@+&j*)B1ilArtCAdIS`6xL9@eq=U$LTLuK-mDL@O6I z4S4#xWfg|ZVzPVe>sX-$mi>0A0dDhnB}%vLyX!L8Y-X3RXxr2=wS4`dM$M9LsJthf zc|Wdx#Y|A6WtG)Fh|RaNFa}C)U(<18W^3SMDt?&Wi#0@31x0n$Hd#$Sbtda&t$+X^Rx=r6vGl-_GZp{YC zG``rr_w(D)-EhL$_u7zOPt}`P`cV>6f45ETy~kS+!E$-}6<;0o7t&G^`;_kAmeQI=>6Rh z?}H)|h69}LO+8L1YN+34I=?wi-ZaS7!0+;FwN+KPA9?8^c-i$!xs}vn$LA^-ut)+Hrv&=zKywPN4*ci#xgZaT&HzE>DDISTe($UT%&T5fTU0bT#pL!ViluJ|OoO#ui*CJGq+OR3Pt0-)$=2jwCyr zbY2yV4l4q39nU_xT&mu9V+05kuqKm?ueOxa)S|>S&fI!kq|ejep8A{a{7+J8OQbl?|RkVS_Xpz0s`pIgV?$K|vXvzgP}fZJG2Ie92q1b(d7UoPBm zt-0J?JRS4e%|fcL9JlP8>TmRn9X0LxoFZ`Q{F2EzS-Ico=9llv|TzPKdJ75c_Q~+dbsOnA_gy3soh_B< zMT+G?j3`nV4KUx3nj&l91a3)TG;Th0G<~-p3FhY)nY4{E_$RTaH7p)825j@xFZW+9 z#AqGVloo=>V6~Aq>7V^g^?GxoTqDm7hKrrukj`hP3QXNi?N@flVBfD484|l=ic7~SY*bnRySL#yz9Qhqox{s3V3n{jnww5 z7sfOKF=QJtt_t@}{d*Luqzs2I`#5n@&wVf8k>X+O9TKRCFC)rmfOxS)J@g?-lLg3Rl_<#d8fD42#`J<70h;D^6WZ012bW~xss z0rqVD?qu)&LKXV;B2juWUn32nmVZ`S7$R0cEdp}45U`2f`P4M@wm*f?9_m?l3A=`_-}?ylO5~KVckUCB7gzdd&?` zoA5?TYn5!GKtejk>OkQ>5I_FiTMXZ-E3t#kpe3!^xL0 znzOr2SB`amBI9{&xB$4z+Yc3My`28Q?O>XM$3JC#~zE`Szer!HdIkwY@s4k0x)Fz)>A6uNOx<6$R zsE-_P0$zMpr}gqQr;SK?sx0=<{N_@chxaX&!PNJ^C480WFW^jsFxobxTEX0oofPCkBI-R)=j z=Ic@UvW3iY6S6CpHwoT^#Ku`a{E%zaUz>Tar*vwE<>g;DIHE~?FxY3JcIUz{Mfbq0 z5p=l>NJhO*6Tj#HpYZwY@^O5dU-}%FoS#%d251PEV>_@-dHrtZBfcE-KdRBIs!N{v z!=kt=su0eH{ZM&UhXRM1YPxsk*QP8dK%H)@IKt|T3j?8~FK)pN>))_7Q*m_`*2$xf zs;MuT=Sa8*;XAgG0)0GGHCGOv?z$i=95w>@r%BQ6IIV0KUoD9S)%TBuf z5Ki?pHEd_7taLQ0#G@(u1vNo3448xlT2!1E`idIxPtMn9{47q*l&L! zwsqCpKK;eXQ}2B2L+|8A7_C1F=jFN`Rl>D44B;up-rl(+lkZHOQvbll)Qni~AE`T; z-rV)Gn1=i!TsoMVG_a0!J8$_OrkMSd-yIrf+CeK*JJ-EJ5h@YJs^;{s3EeQGl=&YD z)r#~^jXEq6KfQGFU$H4rWP#%Y?zHU5Bv@qRaMp16xEm@+bo&p{!bIk$4BSB;Y+!__usEmK6eIYK-7$FNj%asz%k_BO5?us})bV^=$eD{Aas z%Bv0SsNt$K^^bX*+OO2AR3RVE)41&Rixh1Ky;h2!Qomyh@Z(=m?Qf@kSHH`?7gOST z7vHQ+Vcq!HOLE2eXEMh?&(``okDZ#*=cj|GppBjayc;xj9Zj2FU|#D*x~}!PXUQBt zLHQ9Kv#aOyn;>+*FK2%DL}GmLZuq>X4sV8UoncXVUM>7Zf7U-Ud?XvCmG?`ub3?>+ zf$6mgi+1jlqoS=IZytR_2cvbw7h7&=D>i6XdYqHqgQ$@(vY)U5K&plnRY#n}B!6&2 z7v0?Z<-1cF6b`IpXOtMQ3qQ#oI2ApEGE}J%-qWuALqlowA4J`voD$LL(&ZbMcVxn< zMSIhdQ+Du$q$)n5C2_d)^rw#eOkyDx?O&&Gn{*wX5&X)h5T6VEOp*{xKx!)Y1DT z#=2?cX{&xa>@4w7M`LV#db??EDD0#DQ>a4HY7GqLrDLP@pClVxMj-lt11v~vw*|Y9e;Aur46j!7IR&|L`;4Mq!mE9I0t8B$N838G_sWp@2!y?XYNQ&}3_2 z+MOv!Wp#Y`q*ZbW%hN!2fBSVIOqQ%+e(!i!MZ;BF@Viiilx_^>5=>?oS{Ls5h9i(c z7NE3)C19rE?|r$rW+uqeeo7FET4P*T!w z^U*<~Hh>JI)WT#Rnx{VEFx<2ilrZtrL8LSzuQ*P%;1P6t*#GR9cX`#U-6)YUh;EFv z(kSM8vjw>IM0-MxT^RWWJ!UbMv0U>#!setO#ljd!n~^J}F!2k<;e20*YK;Wl57+g* z&UTc3`qvwneqN7%-EyvPRxRV_(kWwV4~LP|ZNKe9_vxjft;4mBW{jBPe=5B88p`9V zgwXx)qXi4bPD9&2yjciT{?^nyw-(HHyrf}$1gB6{f&4WUq~ zcx$ogTdr_c;&BCUPqp0FyJSLa3w8NJV+ac|L6N|O;)#Tq;{8jUv7HR^ z@<5V+d9zv$18{zfGdnY)31yg{GI+?sqk8dsS(^Be<48M9b300&R|imyq3`XAJ!{<} zc?9zxHU-PKr}4YoLKQ}^D*a% zP?@fs&>(|x@sJ_2wVGjl8<`Koww0d_M63tpm|TeFo2I86=}&nNWweI&IenUD9Y3z8&nfpEHv(W+3j7QD-g1y z+ibuzukbEkyWUL@hle{nu}Hh`vRD+Hfb&Th?D#nWr@a4T?KXYWiLl}1zy?&~-`?r{ zn-$!bsy#BO>jrD*E}{0-`rd&YqfW10jT=ccG)$6ucngGj|C3>H2}f^E<t|Bx+ z4srhIQ0?#t-Y1Hl`&J6;eX1y3L+>YhnTSN%S?#6IUXL?iya)#FZyR6hYPz?3 z|8a$gLPWD4oY((B?^!&S6W1+3S^e1+%W%YTE?1(=_S2ZHVI}y>bsCa91z~YIRpHP^ z3dyF-1h}hE{Q0V}XmWp0i_$0F-mM&ix;JN5Mn2@IHVf7vQ*w^(RGV~wj~I?>`+@O! z8=shX{VLfV?;WgOoqoZLeQib-kg`_Mp2-f0Pg5Iz>C$_Uj~V1`&KfBdGSB#Pm)@F2lbNSg zAfn3VOX9`I*R_VZ7`TCvY-?Gb&g^IIV%2YqBgJjipNSiOkglZh99UVHwfpvc zz;nF)W{>3^Ohuiq`ZqH&Cmn}e*W6XGm23B}SHWSeuH_4V>q*SIV#L~y_eT`NpAv9pMIP@PVXpc3 z47+t=!!JIE@(1+k3w*Q47fon%W&ppF&Z;xBE(l1e)Fr4xJp81Q-~Y}ErU6EK$C^;< z`{z>)cl%XaxTx$(luD(V*#aB2t2pmgLC?PBD}&>Ek%oo{j|SMW$5?B(5#IeO@wLRL zZs=wTLM<2<6=W0^$3;QjX6Sx|JRwc0jC%)XM{j(jws_o)xAevDk0;$`I8qN4&HE9o~krv_06AfuMMA+Ztb54wsV4I zIrcBLJ&{vfjZCPpdnZH1_CvSv7i^P?)?Gqg3|U2aoY;+74TO4pSe~IWP!C3eDRI|i zIa$SpCX_r-S4pk9v?O~K3)Yjzl{A%(GXnc3Y$fMud%HGthy2_Fd172c z_ul$a`Wms-W6MfFS+gqtyd)hwkHL8=x0@_zO-o(%vNAHz zzOsU6E70;W`AY4LkVIUBErRnQ$YOIRR$8^q%=5!x9(~ZlyGuL@^$+u_OP241!=(3c z#?e0PsjV&`Qw5GX`XTbo+!M%Np~j?kkI*+Zbquu6iwz$r5vAkM5Yvo>T(L=BD0#i{++4^G%oTVF9IsVe_yVMo$dR{ZyDRPMM{ zATcMFiQV<~=4xN6H86{-AwgG?>%zb7(9>UYaBJ^NSigyYhC3!H~~v_eaW^DAGK4Iar2ogNC^9JrMYGg&pqy6)8nAvpXh_7F^&9f@F}}D;L(<39P$gP=5DZRF`0f+G zIVYY3qaxt;9YUCFL{OF%w=uoG2tAS&RD!4;hhf92)4%6}Kq(M!ZxqPNKc6k}Q`GW< zT!Lmigd^NY;FG1HLufPYNLq^$vdZQ-F`u6pJkkBg@%Qv$OJ3)LT1vXTN@AJjWU;PA z497HVDfm%CStv0Sz+j8vbOjBT5>uHqU(T)SCZwEIhX;mZnK1I|-Wa)wT7UMiG8FkD zZ>5Os_yd*7_;xQgn`FepKquMi0;k*%7EHHtna^PCC-dIY_GB`2qdV`?@-(UDIV2lT zcIy0v&mcUxRy%qBl#o5R!p&_dfCc0{J6i3p8E)9@H7p%5h;0AaA0e(h{$*F(Uhn#P z70MZf79L+w<}?m&2aXjp!cbe8dK46|q``L8AhHVA@GCiLs|^oc5U6od+buZ)TR$w^ zCjCK8u5}E9TNeBgf;6!=MLhzF-!#Ve+^}@tcj-^+>WfR#!zTVdy2z6d%;pfrulTfK zA&&p?Cg*pClV=Df0WH*@)W`SwH)F)oa(J_nEmQM)3%}O(#)O(oV z0UG1BJR$PptE>d=2e1PQwiV0@2N+5=(aX))wu;2=P=zY+fotIaIjf%#V;G?@!(J`%=FqlHaG&tE1XE|cd zkQkl#8Ss~RME$D9iLbkV2wR@0jNe;)!uSO8nc2&-J>GPdQKlZ@SuU=`_4D*YLkain z@akJ*94c;WQAtW|dc0IgV(f4)b6#iXO^FEbiwnRRDKG3am6K2wTZ?m+p?-*+->i>7 zOj@wjE7EBUP1kVUS5H(?AQ7nx>?Doq_PV{ifU79DVgp4DEr_H5#|l%4h8NqNA}-E+ zIn;B|wtRdBYJv={t{S7M7vB5CcUyL54>9{|o_4d;K4=}z!OA9SC#?kku&aBuy!YpE zr!pQF%IHN{@^xy*xHJ$m_d#}gY$vCB7GQWySsva>LF$(}pGAt~yalOFD%gj(6%Z_E z>*&eqn%}z0`VAt2vK2OxFJxg=J?-itFF8KIL#4Xvc17B8AWtUE_kLTHh-|O#yqpe| z-TJol{EHl3>03EP=kBgvpuf*98|Y%MJVwY5hXFnS&CTo5SRg(}1V)_7`zK=O%b(O9X5fxey`zCMx4dzafK=hi?HN1EvG4gd9cbuaG_^#=}8B z!gQbS0rG(iJhGwP;9D}vq6tZDXs^&vU3`)~}c42}8IE5bR{# zd`MKHYjjgZO_Me2U^}t{sXq%sddad>Yat6=PFK2qejrL`qR36$OVFoN4{I>ZJc&#Dz^p)mH|%+; zOZ%DqB5k0x^P4?;K9K-SeDz;PkW|pe%zJei@s$c%}AYej<#geT0 zW$Z--r8RgWFzY;gZg}LFWRO;rVbmZW9WObjP}I=<-Om^n(92jjGhWJQ_lw?g{y3k{`)zCq zrfJwgR9e3&HSN0(Y_qHfeDU3Riq~GE`Ima#4sID_vsj8jdNA$KYXO=tSvqg3$~q2a zrh;Pam6VoTN@M}`4+~U@?+2wlA{~fO98pD?Hi)#yFEG}d^90k;|LIRgO13VVV_m$1 zj_K2i=W#i<&X}-$n}h$R4VZEY?j}dESU99aCGX4->d~fCAu0t>L5)RiLc>IHTlDcX zNvx@+csIsY=gwzhu`)xjEWL!Qx}!g8^^OFQF+<1-p1vrDjDz4U`k&sWUwtmc%}M!TMDnJND)1u2QvgsHmmkGaQwD0sW0PJlg$nt-wV$a(4Yc`$IYp4a<<#c~Hjk>Rf2rM8 zF*iAmLk1=c*+)4EBqu@&ku2tMg&B2@HJ)r=gAK(gLMakJ=E-{RIDHBGe>0${GG|21T`>-UGnCM_g)E=-1E5p*-kNN3w7{z+G zS#@FSgsF%lyPs^|1%VS(O>5rTrcxGUA8ulHo)Tqj*WaA-z>p(BT7}Z4ofC~*&W;sb zpD4#XbkR|X+U4Z9>&b30oE_QqsZSP8oLdc;nT3#JZ5MjUE?1$sK6kkGQE)~_G<}pi zcEBmy?E5p*STm3%Qv)vCUYd_6{9c;DTU)dRit9o-R%sGYqJEEQjG4Ia}^u07y7I(n7u%>$>pR;rL zZ(~7$?nYx(pB?B89hsZi9$~0!fM1IzL@bcgPyrz<>tisiTahz9jzO6E*0h`jA-f?i z`^Y5<9R_j|(nQYAK^oLt$tvsB`s_gpU>65_2UR^IF~%$Ac=+k({H%HsL94&J0)gNC zt+7g1U2+@$46lUwllNG?-@;6{5JmjT>T+-q^S-lzv3+@g`HT=7|Cj_mWrQyInV0}B zUN}QEaLCU9Hr#;FZ9L4W&h>$pijT{X&UtENl{MAfHzd%9#yj!-RzyHUowhA1d#6yP z$VT}4As6<@pfA5>#xak0Kjf4`^BN%xBuR&UIhlUl$UEYuH$$z2SFrQiJW62)*#|q_ zfi;957KvxK9~6eWvHZQ;92aP&lDzZHo!$A z_@V!CC40;w}ziOWPx*RZq_$)~jI#=~^4=2bl5&vdnk^9~5yAVlbRU*gGFyWV6 zEGzgHbXd0d@9|n>j&sV}4JzXHgz;P853nz&bU_gBexmdfQS@*HO%7VY_xIOllnwbQ z!I2|l!I0sA15fO!}Ah||xy+kXE0A#j@A4zjktRp=aDOPb0pi+}$THZBF= zFB>=oyXUi>E~~X4ymK#N5lumw%VvfO*H;uwm#X`uES?L+nr+JsQY6QU`c|6;D+}9a zWP?Q5eAEpV!$}M3=ZIVZ*VQ*rTqcm*z>crbYPY2a0InvfP+@}k6lEu)9erT4+(J4web2DbXFEt zfovLsu#yC0J0t&xuCENJa_PcVN$E}rK}velARr-~QX(yzZlybI-l=nFP2J)97zQia}gq6WB{n+m3+EPh7UymY%j zoYRRGX>Lfb$;6~K$n&3NHh%lf?zw>A%7=6#a?CF@14&I+Y+uX9P&`q>QTM>w_^KL{ zw)#i!Q%2VM$1fYKJoAIm#AJ_$pr}ZufanPgHKyd@Yk=);7q88KQ!m$CR~z}t z2tV?}JwpO5B6~kX3Yg4IOUq)kmjsTy4o5ur{!X{|^A7#1SA9rk*>dq9k{9CGUvM9} z0-v!sS+B(3I(aja&KC^~h+f{lX89gJOlLki?bWQ6X$?vAFg}4zf&Y?>fg+q2BtT;b z_o3uqED(K@^vkpE)%vuFup*=13lEzj-Dp$O>`Ltwt)=OxUQ83ktj0^7N{0Ts_ZUOW z&`gLcoR2@0(t-QTPzpG1EuGNAb?|#P?)%rgx5Zp)SN_E!oCIo#4k_{eDm--wzK^#j zZn>O0+5~nX2Yxn)Iq|mKEi6)IyVDLGb-r2Xfg@2Ph9XXvH%fkcL4L$8wi(sM=bPc) zMM%9b7kejQyxkicl#GsDetYe2L?X|_3v88{CA^%#B`-q*!e60Qp=zMUlrRvx2Srd- z5{ak>ZERxh9_T#_M)Cg&zW zzmV`VFT*qZr2U{EbsJ6CWtE5U0;LL}X{vGL zQguTG>fspPO_Bz%kMw3s7|Yv;31^f?)=tnVAvP<7n?9-s(_H0Wra?o2w}yRL%$E5K zQFh->9}L~6!;eNwF1Jcu-jZs~@W~hE?MGuF>Sv_VjbKT5^-87DAx+&pyiXzD;m_M! zHDT*bi%@{|E;GvAqjzXO9b=Z)g>G)bD$dUp7dp<)bw)0##!q9+NAlNyGg|3s}qoS2i{)a?aP~%g(<+ewfj9>zvpGYXn(0Rqw4JXx(eHQQgc#%v*BRS z%~@9{-kf|#JK$u`;nmq#{|bS6-knda4|i988{#EVDCUOOy0+3N5Pdk%RUOpAz?az( zeAPur5DiVQR?s{NLPcTQ`E;E$?JhO~f7~+Szh&w^B1d5Na+T*au88SgK8j2D{fHX6 zypkK7R^PH(*|Y;Xu@LV$j3c!+F*$UR#~e`{;S%|CiOsZ09UjPg80|dcltV-943S$q zLGoAX)Tp(l<-xSS2&Bdd+h8UAv$05?8qzBz&t%}3K?uh>nB z){PcU2}jd(ngJ)%Ud8xpxQ2aM2_SR@*!7Y;OB7 zcZiH$!vXhHzk>zMNY{vi%5bky#vTkiUGa3yHJ3_qocl>puu&A3R{c_8(@u^<66P2Y zc325Gk4vZA@OQ8YmIlfRXkFyf87PfcGpfH1bx&mVH1qS*)F?Q3U$do)z2-hQY6pK3 zBf{hOtb8Hdwb3;)niu;HKh=r^b9q65St{!JJbY9{WP)1E(-a)Y_w;k7L|{O7dK} z1HY?;Ecyjval&QAfp27wcaF?&wL zDj+{x4FkGWm4;~^u;k#B_d}4x@S}vk+Xe@*eQb#}`Fw_*$n;C^`*1W&xW3a{1bYPg zpeXFFRz~A@6PM8zHggc>fREw+ecjWHA@MEVD&hWuBsFjxB7Ay{P4;LJ#jO$6w(;-E zdLi$FdFwFD;}cd9-7peVWKLeA^QYy>Wz8|y9laYB@g|`eX!FSc)k!DlBh7NV{W>3B z(MRQPn|SGhkcAA7^*Go5WzV1gODI13GrV2W^-|S92>kq)3L*Fzw;^}bSNNuK#1cP4 z``@dfWGmgw^3qwM8tfwV6fW<0e=YkUXUH8efv2Xp?nT6ToREXg&JZ!tHv z>U;M~71d)ayEGGZe|zmo{yuP<(MxzHsdMk$tsODA@b_!*+|!Dy2_ZgaV5iv~0=6P} zHID3Cv-Mn`)CyB}=N3c34-W@UmvTScH1tQm)tn_bp_N9p)@b~!@@#mHvylj-DsIv58U7 zIgr}*_$ws|W&DH`vz%0zMP=Svh6*Vx6ct=)O4NLliQJJDGZGhqY%u3@lfK2l-6F5&`C*qCx(=5~gOfwyD5%b3 zVrS$tj~x62&UC2!5gYpO9;EI-i-&2tAvZk~X%RdT*+7+o-}EIjYW#CjlC!h3s0oOd zkFT)5KlR#ACzQUjbh}1{c8!bBf4WzgU|lO;M3%FCl&3-)dXD}Upq~Gx7?hmv*}t_R zBw3J`)ha|9dY3>(nszPrQm}wF6qpshht74S<@~l~?swm*;tl1kl(8})W%*PbNb^jM zzDC>N+M25K%T_ntiI4*+F*P+2yBJA{f!Tl;^tTBp$QeNeWevmGMIyn@$KzWgiQ*HY zHJBWM)k4q_-g*%;1N73kP9KiVu2&CsjysAX$o~E#aBK&=vQibX5w{!gtW)f--~(Tm9#EiJ7~cEV@oEjjf(9Q^B<8u5lU{ukV? z!7Ln9{(Q^9VQ0OVHQvENc(I{4%$?R-*WJ)iE_m@W1Oh(4ysW9NR>8x) z-@>AZQ8dyLPnl$AxYXfx?7ni%4qnKyyI>;O0_WFX zKH7X!t|+2XLDoR$_KO7@A^!G4(Ji9(abn1-$fRI@=US+dDeKdw^hO^)4N|t)c)A4T z_=qr-`G>H`x!T)y26dI{+z zec~4ahzl4$clAd-A$7);M!@^Ggm=^bb=G(bg+7>wbb1Dl937w6y_WmkLoo&3P+hDyto4}maWf;`hdJ_lVss)}trZe5 z!Dvbl3@Iz1G^il5C#G^rS-HC1F>jGUVY()jd^Dl zf8pVQ);F@Jxyj2fnY_9xX>iyQ$5rq7l+r<+3L(e`NGh%<8Mln^iWpUi!4+-_d5+i) zezxK~H$NYYeEP#pWXKOpsP^qjZz5Ah%xOAmArT=I6W?QM;bHQ?&Ft_G*&M&B9WI(- z%(6>TI3q4(r|8T%35y|RMU+Rms>?QL0}u%_W8)pn?)fe!#2)Z_pSC+?71eIwmB4Q( z%5>(Hd7Fpbc?OzGIWZcKv`p)L%%5Fa8XAozwRY71Sc%+&s?oD|&kZx?M~ z<;(bxKJX`wa2G8K{ujbhK}fzXrLY)@5Klu64i4O{Edpn_S69;2=H!C~lH;t%m&@4& z;-%^8bmc346=(U3L5(d9%|;hm|8!rXy13YUdihK1v%?^avXV5a^qg$r4gv_?cl2j} zMQHS(39tToQe2{@ni|c53zes}4E(dfy`7!BJle3}&?O`MJdGuhJD+l-hPJv2wbnW< z#_IhNjjmt(b9buC^A8sXi-m{jPt(i6QT_Y(Ji^qwI;U|lUIulxtiJTB{_FyD3ThfZ z0j==mrr7&g%F!OdG8VzsoSYAJS5nV15>V0`8yhn+UNh4xO%HBcOQc$Kda4mcy>&tD zZ>*~LP3o7csb_t!Clhc5Ur#a1p7T$6E_; zf9tIXbq&{cXdhzcqssuSOJ$`}9U2TqE@UUia)V-Kf02LG*`Yhm8xB8A^vs?bV35K~&*ehsGR zC|c@IPyaEQlF_tQ<)>4ZxLo!gZrd|{;`m{^TBEj2o0xC$Q}bh#j6O{nXwLSdCJslc zqvk6vIQ21(@ssC~GuHy{Wk+701#uSqY-A)iH#fOR27&BRiIlYgw>g(%f+L|E(HR!X z@%9K%Bt=;|7lP!klaNR6*v?;O-S{;HDNt3Dqk=|V4)>e2+fslQs`|N;8rVg3$+<2^*Hq5uI=nOH#G-b>@Wle<)7&kg=xGA?C+k zY}|~z!lfy#>iS+#@HWFE|GWROEIfPkjn>pg-6ulvw0_oKv34+rCJdmGJ)flsI%7rY z;_#QU^}9r0A!858Ee|)1xp8QF+IK43x5IgK#l(VUI-ZLOyhv1ZV@oazrpq>k z!Hp=oRp_6CBSjzNxBKjigMXe6(|<}G|5gV+u<7CZ$OKZNZ2nxE4Ls&7DkfLtnhV&b z$;_cfIyv?P}ToSIH18~d-eUtIm%B^$*I ze|#}t^6`W%BZ@m{9-6I7DgVlAaA@7vaTv{G`gX4huGhVv@~9JD&WNGjOp&%6pQGcT zrDe5tFL&9U#OT$AlITxHlHt#MI%RgPdnZE%2lj!Z#XE#|ve>FBZhkS% zBdworewdozBC$G+2?aVdXL)=>Zd}E&9c+J0Y$h{B+RKf4)YDo<I`_G@V$eO@r#TY9$9B4co`MlKbu0A}qkAg%y-x5>$S(N2tQ<%Ls3v zB^J|+fm(lZqW&W4`C}^5;H2%TgtSavULF8^vaoG_r;uRCGx>>soV&JmY9hwZtrZ&v z_OMxzEY{%suCj{Z^d{+A*dnngXTxf#uL&Pry)=- zZFbYmQ_IJ^`Xq%oas3b<;lNso%8jgwmX@8CTi^lhIMJIOb4&PW@XId=n&28?nUasf z5vHc~hW07;LY3Mk{(2wKlTC<6(R>8C1(d>!iGCMlT($nWJ1zK|^6Q>pV=x|sc;M^<}mWp+za@593lqQg%a*gSd^re^_)zQn@ zY7?%r9A<;KVSqrVw5}F%F$yA8vy^5A1_OlyOHY$@B}(5NRqSQXH?L4EX5s-2pDK$ zV&ck5klVxk(Cl6RHb>IrSK#U77b4;p+-}6arw(~^)KNqq>08|%Q1^(syET?p*rv2? z1dZb0b|+>CqRD)*q*X53!?kUuZhj+|fJRj?Sn3EBuxL2*Mp;AaZCOp*S6K6?!yLOl z*E#1>QH74*@guN>Qo}q;8yy{0R8fhEO$Ps7bz9)rlT;seyhcgQ^YKdjQejGszW1xN zWgq_1n}bk|zoq%8G}^R9RL;5#3&I>YhBGa z_8Xm%kaZiG$DpgbK@QU0o17@Q1d*t6K_!GNgdkRq+=~Si+KKQ#pbUK*U2PYPiayxi zZ)R@(>gSaUn&E;hJOR~KuB4EVkgM|dl9V&ONA?t{y@oVB4%34EY_A5{UP;&lw5Xv7 zMbrV{f+dbjHLb6AAE@pF6vqb;N7SZW^04?LF6Q*M(Hv{ytpt}n-z_DNkp!@xhkmW50N;hE`zY+2>nG~O@~@_ zhYdY*g{0P&4wGyilOJjs9o+Pwi#eEZL;C&v9@y_zMP#D~5+$?lGw-}0=r7iy&m_lr zftC78J%t8m9+zfk86q$UnEX5;Zy`s(S`GFCaa9{QrFBxG2eO(}UBRh@>}<(iWFEYfyONkPBM z0~+Rd0b>v&us6w?TyYO7q2f53JA{wpr`strh3jljL`kwAORtcpuG!L4<{(m^fbFgG zVh{e73Ptz6UZ3jZ{a6YOycR7TEQzVwWm>9PA$z=vNmV~$dv#XnOAT|ekU3Oj+WU<) zr?!aS+s$okeC#bf{rub<^^D##Y$MRK8U8ZG6}F1XN=gy$DvMX>jx;9G4s2Y^ib|rn zs2e1kK9A(k>unF{!Q)EEkv#KbYwP1fPHXeP-lhliLVhA}rD{2{XdVs;jm~t-ceW;$ z-HeEZP}No_K0@d|K{3xJQk}->VV}bLlS5X_Ic;$A1@B3OT%iTM$(*Fr@?8MAySwPe z&;%t@a6ty?wJwmK#S;-+0vdzEXieZ(y)oO{;lf!0UD7tm&tGAo-v9mP74-!8S(*O| z+urZr$Vf<;ox%eLDe`rqy_>Zx?QPFE;J{<=m&V^+O|>pLT5R!oya~XEUL1NXrJVq~ zFwV}8rlAk1%CYD?6|dV_36ra7C+hkli)L6Kao5!FNulTwr#TCd;5ERE68W*%gWPc#m;ZICUG5?UTNr zx(-~g>r)C&SHPwYUfSw3TcTFooj*=MnO7Yv@^5l-#XR{bA|>1q*>3fuC`#JY)!D9k zcQ20|4T$58+dM-;&infME-&pPG&^-Myda)h2C2h&g+R@vKR7tZ*2b>Ubk~`kL8q|- z-zr6hB%y{~OO34_XYtFFpjKi{A8mxC$T}JZecXc1c7}yE(Rt-d#$y-u2-TGK1hKK0hzM-Y3FKlQ?v?0KL zq=iSvj7Nd*HezRI$HB#=>iTu#SVynUb7=QNiEfwEz%oTSYp8$EoHCKih^6i1Tvm&Mu&zDGNGGdAcuM`W|oIF<&uUU7jwI=hSsQ&C<5t&RCHHg z_77KEeb$rO;S$4-%mgE$YS;8Ky^rokKc=<4A3cs~iizqzq*9E-Pk~)Ul2D#Xa!m#^ zQgi-v_p9j43d4-($79=JN{kv3ovg!#EM!DTi6}q?O&J^IWtQp3)}ZJilO;ovY)cce zz4ZhPGM!JKW+o~_vp5FKfIXY{c6XoGs;H>I4bk(0I;ICV6LaQm!e$zGQKP^0 zNE1cU(^q``CEZm;42jjsc4Btgnis?_wP;k3@v9PTh9ayLceZq=OiT>WaU?scfe517 z)q{m)Jwp;De<#j$s(IYpPm9ny96p*4S4VjraPm_UbjxFFL*Bpas|t-Cw&KH%wCn4h z?_0u@n^00xl9rZk*RyqSkcanw4p8@O1apOrmzNh%$#xGfWaRUcvFe&u<8>EqZvR`M zYTnmwqKZ*6oZ!=s-tooSYa>Fub~((~Bqu}p*1_6ik#Eq8DYT*QwQ}OviIh#bGa&C} z;R&ZAw+^!H@KLPBqTVb@j^(1t!b|mLYWpZkYs(eATO%kiHaR-nBf`Z@jfzsz(i(JC z!F^GPXccix=^WK=3ww_|R0tF{nwnlUeR7m2D+~_K^&M3G*^7L#$*Z!DjLuE+1ItW3 zlJPfGvZ-PeQ`2`MNB*Vv44%v)ML7i|4IhJ<*{vvq8iq;$Wd6p&C2x5_4_Y%+>F$5s zdGvVQ@pacxI^!CJolr@eC8$mNJ$v+!B^1JVlk1!1lcgWts`EwoMRFz=Cuh)cVL|6> zfFz%KyAIdJ>bg2^Dk>@l+L7^gXia{nT#_f->P-RFqO;0Gf82SY#5D}nA;_2lbm?;IbVt;cUdRCp}z{mD{Oe|~`R6er<4DMYr`jo~v8&F9&~2vM3GI>Y&$T+;5* z*cI_o;I(xGKRT@!tF1f|265ErlSbWI$Nn+`h3o;ABl0bx(}bFYsl?#v65sB{{6S|Z z0pI-GCj=)K>aL#6%}o_GH6UFJywrHp$r=cx{Q@wzfE_8!$;kmyB^nwUPEP8X>G{zm zXsYkH;=E@irte3d!HKZCj@=gzZOBqZ1`85PqjlGiuvT}+F|o83%jZ8mPpRVs7hf|= zw{j#zJ<_ek|IrUkgSka}#|MvqVLJxNvAQ41%Ga^v+7Hy;C=_N~9yjt|wqRf)d9gR6 zi4x!wP@V$Sm)$7IYQ)nYhqX23^0*K2+`1PA7v?xe#`)hdF!1v?H#Ietmt)Eewd=iq z1~+5OYZ9+X4WoM-;3NfeTLR?xl$4ZjL7=YTp6;d92;WW~;^mYjx;X4YW$DI2aeFZoKYT+bdVT)Zz4?{9IiI1@KK_Mz{fybJ2?rYQK~vR=&F=#Y;3%5-?sJ4k3t~5V|%#? z>#Fl32Q3L#Y{Ub^`3@5VqgE#!{lsfjKJa7t`6qE&X;3KOnD4jFMQpO2h;O>~yV4#j zFAPyHe$OP|%VYjy)+fL1Z95>Y#WP8o&MrRC2o0#1q`Nm}Cp9_g(FwUCQ+FCGfyAAsspad9yQ zMFKK``9yNGjCRy>mO~WY^2*9eKmh^FaB*?*(9uya3@nd#_AjYUFPwf)`0Y$tDnj}a z|4R_rW_5m?y_wp%*Cb0xPAHx}pQ9Qb4_AXiW{eO?eq2Juxq&x16x#QDf)8Z>K`D)? zkvFXtajn%E6_1gU+w@unUMjkPGNp1+Cr6BR@cwt7^{JA4;>NY>vBTOU+8vJ_+FOwD zDjOjdIW?9SISXr;`ujX@54*Q_?0wGBLA+MfDr6V35A7X~MoP>dl<4t^=>;98SK2(U z>*@f+a4-8+T5j$A0=u+*()GZ2>p);4N(D7!e7RKu z!wfj|(EckI_N4K_CL8sll3Ghcn^OB>Ni6NnAbbpwoNDm~-1aLL!la|?IeQzRu)EG! z$uu@2e^6P>*UDXRTjog=ZaA2&n)i^a6Smx&vlKlH5&YPGZZOxCh%$T48*FF^KLJ+b z-=s;6z7l@ttT{#%HGfN9xcl+rMMC@-;0b6JGSTB3v{=5WR#erNS6|p=v~Xe(5+)=k zC&$I9sjJV9jEqc8!C!tk)oET4N0EVluQifh41do233ZE9%E^hx*3Hz^R9RVBLP6KF z_GfKnR^X53pqS?9gic1vBzo0DBMUe5M$yA7xuxx>rhex2Y0uUu8(qe@4mq@C z(Oq8kH|DyT_3c%;(^=|B^5O}JP6-8+`|5D2>y%{SW2dQ+@zPa;;_nhi^XowuHBkX0 zMkJ2sbA*acwE0kL;mK45d)Px1Mt%&PN}4xeaYpAz1GAXPjhB&pD5n*mZV6Q}dfMeVbEbQi7wh()=~7Jw3ppqQb($_V)HB zCML47vPw$WumVey$eyS_);t}7uqM|ip^zwK-q_O8Fm(+1c)?p^3TfwvNxs3m>N!_5$-avDqfxL=@-y0|9Zo-F;w8Wn;_&6AK|L=v()m~T1e#hp4n28l@pP=hBdH4u+D78Pi#bQC3q)Pab`Qt zRynb@MV63WS5v>)M=wxV;Qre7OLjyrvoS92aka?Kg zqqQtNyl&SvcXuCd3#yzmVys z3aoR=S&`2oFelekfd~%NWu4@v^!h+!WJQRUjfSc38!eVf6 z5Ll(M1FBY&leoCJfNxuQw?d0Y9u;^x$N4jO9P!H~<4+vWXD@PX1z9SMuP;J|J%lir z4{C?Z^Jon#1rSs=e@St&>S&+Ne4TGBZ}=|zA^c@VT~kKa(Wzj&+`T*0;m+ac+RjtQ z{bqMNZBzeup%_b|e`a1;S$5uW)Hh2VO-q)W-mCsI;*jk^N{<( zu#2lj;{o&jYBg45+2fS={-j-U_*S4o|4mQO{_e4&w<`B*-IHNF!J$J~312z(1lGs=dSrHyz#J86eO}wh@&3ex1@EEBVOk*bhk&hl$u7s;mAn(HisV|{4u;rYIT13nQQJ6_8olKOy8}PF5 z6g)dX=qM_=8ipK@^V4E)_Lt3b;J4c8z%M20w}u6+=F9bg7d2b&t$OTcJ*he8&wyRl zm?X081*b{C<>e$n1mxh?4h-PAK}c+S=qA zeTFXDBVh8(tn=0V)-rtu#3`!E*=``D7j1eE5X%XI*6xILy~ejUc>{d@h7|bR(Tf@; z!BzR4Qw%v8pF>&jFe=b`O(@DM0N)rCE-7&rqZU}(%GzZF!Z^w5KH9p{s6AS0cImk+ z?kR1ID}!{r_?H*z*Ms7SYsK;^;L?<#G%bD>F5Aa?L#;YlWvKTd23>O3AdGIU^)#&9a)Zd)Kprnp+> zeewU2g@Fm$ua#CMQ6=0}lYaIjgFv^kXmV(=T0c|8`L6@lv}+H(C6@DH2$LrJjZ;8s0XrlV9zpVIST52}DG1F?IYGwZ)| z>ojNf>*l6^L45e^744HyyHYF*65&)rsSr~Q<-^s>#ZxDoAcC$%vXu~Mf;g!x!N^d<4@cs)_jsr*_==- zQ^&JZk;9#vR-*%?wgv}`7#&^cCV8)4ZAAiHac-#>rW9F|9D|Zx+;u?H#dD$i z@IIy=xc@2~Cja8Eh%H{z#LsQm9JpC|5zsD|rvWk7+)VLK;@EuL?SJ-L&NHkHixh--oZ2$QWq?JeKVk^9tY6(-j)`qVYp-bOPYE3(d^l_DM;5t^t+( zIntV5q~J)E_5T`*tDRa z@Q$nEgV+<3e`FiJZvlIfkL4EjMkHbx{OLia2^wgK`wu?;+Ahr3>KZTCDru@JG1v*= ze+O{2j^!J~r2;tU1!op!rsvh=mDQwZ;UWD8Rw=L`_0qhhWb-Ur@G=;7m?|Kr*57gQ zdi=?_L=L^cb}PfA}IK0}s0`5AU49(JC&aQv4g$cVZShKHayXRMfF}_vW}WO7b{Q(|4KKw%SYdYw zS@EVYj6iX8=tE`H{{z)`9AiuBfDaW=rm#y_35@S3F8T#_=dRl&Fzxon?AySHqa;RJe9|) z>1Hcwyfzi<7*=4cal4uAAPn}TwjM;;{No3JZ`R^pl5{4!PPoncpxH&ugoMP=g&w9* zl7BTO!EsK;zC}9a@ZrYl@gCt~V!KG|w)joLog;@Ep2YoX4!(}d)igKf86p5%nHO_F zWq`g|TD%}plo?Mld{u~d!G+Lrsx?SlQ4sO#Pc)Z;n zRI?M~cguXTK;jJt`MCSc@vc@&VpN-n!!!X0LzHgi3uXU;p;vU=6iO*H;EvUqywjeq zJ-T?|kwv|EcdPGe0OYlR>AWp=_aS$$Ra9R;}}40VMHZ14$u+TkZUcE2S;_9B+V<$4aTs6o5}(X z9;^n)=>PW6wUjI=qk+wH?1MJw*NBgiCQ&J^|3@|7s>C)6?|;pN7G2(LTs)78D7~W- zy6;+e_3A%&0UGUk;PiKN8nV!Ga3PkKrYEK`EAC8d{UCEUI<>Sk*Vh->y)e*0$zqiq z*8ddBh-amvO{95KQ|{ejt)brq$NT>Ew%D@edqx9MHuBrd-^f} zF$*d%cNuSR5yJK0HAxhWr2k(MSY?mv?xx9o_hTcwD|`RGfwZRWPY^_f+hB#&<)R@s zIUQr^n8r;YLAAJej$l3D(sVpe)r$iMK#b=}PBIg+TfDCXHKHkIt2>_fesaEV5CALi zCSB_6es6FYdcA(NY`Ne(!5!-c68ZG+90qK7Qo}?z{^#w!KA}gL*9~nb#RhE|__r+Z z7mCcvoZO0nhK7QQ2JKI+`@k2NaEsa%Ni*Bb0kW&+Uv%{Ko6|bD%ukWUf#yos0A>+) zED>AJXXp3tr7_436(w=IQ_KKjx}uy<^a(m26KlWBhoI} zRyqyprQva&&HNXD1^)bOe-O;_I5ca&8yMOhv)I3S^jLdr$=YcDgb(UO`=2JTfSDTh z9Vvxa1uARYQnOl|U=fV5L1}U>J0xp(+qQgVlM*-lQs`U~4fWX?Wjd0m$!MyGe=?51z5awL=a-&k})%k^L+{>{{)`wqtidJkK9N!dzi-Fq&ObI zeQ70bWd95Z3tOi4iid@8&Q*;uh`|A~)EteF3;jvJPyP;DcA;3kE94?@A4_Dkp3uW_ z)g0%)&wfs;vk;~oHQBEY(5>vxR`RJ1zkyy~#xC{@rSQm7rSRIFc4g@I$lh6@h5qMu z6O6xjB%z+2@>Svwrg6o6S-Ssl_VWQZ5_)?X`2l$+n};oT@CF(_DB*Dgm{!o}8>#kQ zH?%40a=5<{pA38PP!HmoZ)?-}&*$2=XF89Ur~Mue$c@)O@gKvkfmhM@!p=9)0RW!- z{}J{#asrKljiD?SzwE=_*((M-A@*-bZoFpMB!BM|VM5eMD+KaF&juQJw;~e*_;5aokjL&}-)MME`?IS>8rd_&ZsZ zl>;mGrg7(4yN>^?G<9P3UGU2_2dm-FRgR#3 za97iYS_P^kI!=LV+b$aD-KOW2swIOhq$ME_*@_x)ev>lGRbR$J$ftsS@A{#x1jwcJf1@h-VPv~WOw$>~~7l)SeKROkIie%Lbj z5A;Q1KlUkndTt)E$QJbQzyA-Pkgq!THbcDr=Ko9sb-cjxnJy^RhwS@>HUS{GKUtD7 zZ(pSFmyf^sW&Ii1|KGw8-`l~wB zw`0FyS;xr}v~VZ@3IqQNoyheVTS)AGghWHGw|g$(_A@bnZ)I3gNP*Y6xL3y7nZlmp z!>8;CfaOw(eA6|Q3Kic9U2R*>+SVE=fR<=ipBPBkUgpl{#!^HliXJGH$%ZwJSuLCf$@ZKoE_~1;*I=-;$GvLI4qNL5Jq6ju2CTT>n zBF9()F)(O53-!7bLnHU|e^K2lDk2zl5@A95pLD~Hel3sUFQxvHzfMH~oBojxV4?%M zM%G=Pzv@crpK_}-d1%o4)M)=}kK^=zjWU^9#4yG$PWTA}t~(c)>M@3x z)~vx{bOm-kdqzqkDJrD=#N}?$v>OTamXVi^-Un*IW(c*0$GseLd7Kuh$Dj6p+WhWg zX>k7y6(J&2-*mxmiHEKo;af!kKYCbXQp>G0Ic5nn-LZ~Oxi+?JM(c!+%hJvM80>#` zi{j`0-ke8M)qIc^5zL=S>3`rB!njNBS>^Ke{~NW*YE0FaLNC{t{r1-go>0#M;M)7$ zQ^=F|gdD~Y2seJm|D-`-3XJy!`3zW$*I-_1vAO7D(QL83?D$}&m+<0WkYaMA)Ni-C z-~2l0{;$*FhtDU~lIDSb(+F&ND{*Nv7X(=~X7xDN+d_}~8>19~W8xGUQ*mHJm$(sn z(nI|p_yL!xC}DH2{S{366<~;9^g*F6t1ci6u<;-Mb=3UYV}3i3zVp3vuv(txls7hz zeg{PNz-+Z@d6UaOVg1QRQ^(6~Kj?zotB-W!ddU8zH{uo0$6wp_luw7h{7E_9Gru@K zZsz!oUu$tOO8hqTe)Zqz?N3q;TFrKs=g+;DIi@fAUkpH<9Gbkc;+d`+6h4yIYdxt| z8L<1?E~S&AQ)EY(oScQFFlA6s^6jW(!$~W7mWV|8fb|qu&e*EB>MmUPY(7$Myx;~4PyO+0ZlGn7Yf`qk;74J2(4E^ z?QqV+5&HgQ#Q($?+y{gLOQcIn0-mK-KykX`lCZ0agNPIA1#MBz3=6BR_5W$Km$wX@ zCRyaW3MWC?$Cxu>p{5l0i3eT!I_G$$O4d&26K2Bn*6!NI24EZVONwA))gn@B|dGW%ZhP-Whm|35p zmYo7rFr|5Rzm}O~rhF14eMr9DyH-5*Je)#5MdtFN{00Mj3M9AxOq!&X4q5!mW4zy1 zjuv&haF0;=J~HzjW{}qn?)s$|8Z72hz2{F2C4VE9!z<^Re)($b6|mpxx22<--RvR- zOPbaX@~9{0{3i(0O|3I1YS}Aa&Bc#Lu_m4;gR7v&0Am5l{?B+a4)V)aSFY3ASHKA? zi28Q#fQ<`2f;ZxmWBb#AdDEJd0RMKwX~i9CCpYIyA!@EC3fjB4w$IK=mVwCiP23q# z#Pae-t_VAmO%H`>OY>||DZp3IBgh-L-WSa3!HDAsBgQ5r<@fkHemNDqvw?3vj zs-p|3`?=Sbt@h>8=4*JLdKg6|8}Mej+;njtb%L+u8P-;WQH}!GZ7dl}-XIj>BT+l@`lj{rM8ll&%#?UWmpdUGCu($_SV5tDRKPUD zV(eqj#AcO%t&GsqQ30uszhD~;Li2<7qtxa<%p2fbo!eIG*?c7@q|O@VDs|0L+W&I5 zu_>2N_GkM(M+|JaRldj`zI{101P-jjOiWDke9Z!Mn-_O^wW&O5VH2da=7|RLwAWop zxoTKKU7rkFMRS&n>_b?5Qi%4k8UOOEI75xJu)o)z?eGi%KEVe{sv5qL{90~N>&|}h z%S^k!tL6G0CYTHp^!xnfAb&Rc${M(>M4v`jG<^ocKlD3iw#L8i2INv(`!nkxz-3=} zPZ5QM@Sm0@LhPD5;T6Li4fXj6Ei=qtfMUA>d~q#JM&7;n&v>d(<=U^jME~r@rw;Iw zCQ+K=6T36Q7mCKY`GsP`@pNXuErkT{rFz<|DDyWd?a-&Q1~@?t`jPh;c2)Ma@UydM z<&i%UDTFm;#pLDXty~HXMfdzUS(W{H|2gE4>DrBz#QiIL<1p4RAjW(G2lI;w2-rE6 zzRsIOyy=Y<_qoSyC;mJF=FcYayf*=Xx*+h2H9n%>uT_ICLjwtb6R>^_{!p8dm}toR zr_qr%dlOMi9_wmu=ME1o*$FA(8&G)B8jdnN_OX&?&`Gca{}73^8IH(`NkJJOGSxuD zPMGBd+_6+WITivblfNGkc>csREl!tcK*&dT)o!)r6{Brj;!) zk^bMU%B|mqQtPuHmw*+hJKw_Jo{Rk1uCGu9ynPrzt$&V~7_zfzZ}Sg2d@F)|;t?Y- zWxIDUSqNiC`z_XD=ezz9iTA&MSmh!NW}p--3;hE>q+f^>S?q}+ij=w_hBmM$vv@|X zr*0l|Wl*9ODQo8&*F>8cm#USpUFy}dK}tQ`fGCfQ4;$u{0qVJ{>2SkWdN*xvO)Whz zM?SXm=A+oMZ5?kq1#KmWTXP~A-2C=$eZ5JCy1tC(_OU%zgfFcU^%cL7V7kJWw**TV zgrndP(h^8n5HP=hdTNL=v4kb-tD9b)Heh)9IdCmQv zlUlG#Hz3!=ZR~tp+HPFx2U|ZHTsE_3IC`#7nW6h=1fM2dhJ;`3bYP!|25yLkPs}^R&^vETtI3Q|OOxsd0oXM!wEqSkb=|THA+O zBpAketS3r%Y-GJx2(vfcWt(q{ura)e@U&$yZKBRlz@iQaGzN8l_k^&ZKemCs@*q)- zCh8N_w9`S|ZAtG43H;I{8*uGekq0_5dMVBVblyd|xWH}2>94TuRCk)xNXDCp@gy~- z)uMVk5#l9^?_WqByn>)pXrc@z%3Imyf7lRLRV1`y+z)bZaK2^oH()LgAh=ggHF>qC z_OWLx>!ynrX)nP5%P>Nvo%%;|Cv+EiFl`E*Hu@S#0C;NQNwm+S^zdp1u(qgiq`q*B zbA#g?z8aX(+&y=En_oRhoU)FW5GewQZxMahV((R(XhXYWNNi`>I~q5)QBnrg>Z zuGh;w#s_k3Kd0ObF3L)trA<29t4po0UcZmFvt>!Ev&uhw@{A9Fn{N>;wk!fhZL=_H zy-hi>2mMteq!~J1FJ>u_yNSL+l}LM>aDSiCrG|n18k7kk;0H<Iz?Kj0 zwa1VrGCuzm4_3nf#XSs;)EX>|inVN&FhLINWw8y(3NRq{?iV=3( zB)%&tcmt4(FgNkqv`p5@YZ*W7XUv_NQ5Y~}h8tJ=!LY6l#4A(@0kEsmxDu4K-y}_@Pq%uR#kR=iuxT3 zuS2Nfh;UT6h2@E6)N0hbW$yUO*Y1PtD6cxeJGW<`0S=@FF+w;mliwE2p3~J2OA{w# zMGhA)(y1N{d`kULtUwZDKl9)(18NyZY<=F>z7vYlBW>u4F2FDqAd9!>qPVkfE%7tt z-BMMs^bO;~oUQGsbaWyW-E`f?;+kg(@SvxSe)IC_#Dd8qH(>R?FM}D_Uuv7e3&8kB zvI}tw632I=ISa632QN*YA(XcD*UzxSer&M|8kMCp-P`BIj}{o_HujP{=A7mZh0GkK zurG55s9Bd85_v)}>V%(>)pFV0I})a=VD$3<_hWDv!!Qq9XZHDlj{!SGCO`( z{EeY1S#87Z;aP2yls(7b*E27Rc1!P+wU;PJj%b`Zf@iYcx<9Wg+q2sX$$TT<3CVmH z0!-^UVm!)vdQPr#TBZV4?sS#wDREsK>i}C{8x=!tGlw{Gh>sy5yro0f$DQJKdC0o|7Z4xnl+Rq$I+;-L$T457|y07z4 zx1n-sb?D~i5em6(bDgnhKNJk_RJL4R6MM`oXVpq66Ycx2AUQ-Y6T5a4pyK6@2 zaqia`5?%uY=>Y^iCrIBmCPt!S{m)+jj>OMP`iCN||7U5VVC?*o)ZvpS7Q_a1-y>F*XAUrRyIPD#;gLl4U02_j z-|5$sFw<;XCzc-7PSO>WivW9d!>;R{0r6BiMo8`_Xh0A6iAu;>W1Ov| z0zeY`Vzb+ku``qN;i!Q8@D)u@uUI>R;FVL?;ONCFAhf$V?S}tT)|H1t*|l+5-ocQH z-ZzpZS&A$}WJ?oSVnn0Yn?1%h49Yf4WRF4^pM6bs##TgjS;jhc8B3CVEnBvHXL#T1 z`j+`?u5-;i=RD`!&vW1R@7%xN@vE@?GQC|@B`?+_aw%2V*9b4cIf%LBh{mqR)^JAj zjRPZ{UE1|Vb4dMUASLqJ_P?*0#C@Fs*h&n?p4b3)6|0pEPV=r4qNQ|dBSYuh)!>km z7p^y6;x;ma2VV8gYIJhv-ViuUvhj71RWjP4RfsH9KYu3@q3JRtYGD+1Ntx z4W@3z#J}FI$sjtGLLDEtr`}FB)3I9G^C^1D)rk7}WAWSYx`4$zc#7UKB3k0U$gn$c zy!&g?oq>`6k*8skVtEpde>(M=Xp;T?UIpW|)MZFK)6R&j9I)L3&!dpJGXlz8VX=>6 z%7@R3Gxk`+qVhN#)v&AJv=@of7PjF^lxs!&Pdz`Lp{q zUOyGaeShm22rAVWSENCjcxaL@E3O54PLT4%x~R?UmKhV?Ew<2kPMm&}xeV(%=f$o5 zZID>RZos7+ANu&e7UUNGtdi+4?kxS^Rx;l8oW$ZY&Z3d}{gXf5`DWMP_Fk`p5I%k8 zcz7J(0WsqiqPDR~*yTyX_YQ@8X1C#L_L4ro)lTec11dSYNXh>PtoL1IC}vAF9L*`Hj#e@HaWyRb_qDyRdV2S#zr< zH5&tbEj`6~0ncS!kD~q5GyL6vR+64#LZ(d*CByfBv=}m?gEm5j?dr0qEqZ18V^}HbCk8R>^e@I4?~86%eC{;S94R`L!4tJW2dk3akD%&c8yUB;q;_#Zh<+cuS<)*DtQ*-zGEFTko>ucCs|G^|Egd@h< z!Rk->#4(xq)Rr(VzV*I=@c~51Uyq)ah%V2P$O(kiJ)USBzXe0mATu7k4b>a;z){;E z*8nMn^OTf2`BHa)ju1nC{=L(5%+z&Dr|NAFIV6vE290NLJu$2geTLboG;k4w7!z4KXM19)X!M5n`;+K3mVY{3)*|P<#N^K}1*>!^(%1wdJ zH>l&(WT<{!5?NO~uzUeyU)}KFevEM+fo}b^YAC<^s9=d`Dp;3h$i-9@Rf76S@vQgA zUMb}eifhI4H+iMUkS~L1PfB@wHvlIkKfgP_x^hUAM!nCSG{@|?bIT);t_GHi6)gij zy#8LdA4rR=csZTp5LFtXeFBQtCb4bR4GKP{7q3$f#qWzzrKZnpr{v+atLrfwaj7N` z-%UFXTEa7^3Z%Ao8%empNES8WFfXOPjikbJR__p+)MJv{T}akuZMzw4i0hFQbk(p8yl*5;RNeAi($X+ zO<1TU2fziC8^VXL+4Py=BOg3WH5e5CD}FG{LDn)KaWHFJ1+x^}{j?$TFBp4q_NGC~ zgx*sU*QNp^OFN2wc8+0t53bIbSj63qVmh_}5JMejq3elEi*HJ@IvNEDLebwCsE-U- zCliKFyUilghXg_&P4{->VLDxA`*U$e1Cag!9LJc#n&`xJ- zxR|22d#8}Y9|xn&W>MD`MLnBqbIqW1b2)N_65GT=jMcE>t3+>xHDUScY*dlrd}W6| zs?cL4erx2(YcCt*{)XotU!vT{T+Ty;phtH$M)Ux?s@Q*H@VD*Q-e<0J?$OKU9UtnH zp&~;r@iIb6d^Sh^X($l=YUUhhCnX6*(?V|{oo^UZGQEv(}9$j&# zM>5@qwik)yI6AB>JFL#5SC<`Z)!bJzSA=V7YOlCWvIL# z`NW)H`(Q%ryc+%X7v6Gm(0udUO-r^|nfJ2Rzvru3X(2gsSU1c4#yxs2l)bgqgZd%t zno$_o7ELP+-PB}QRxMhWongk+!?i1=(sI~qdM;m<*&~H2KGv=hZe@aL3GwJ_Ad=LJ zd6GIqXLIDdt-02($O+e06N+n_#fmt~YjrH>S^e*56!Qpl58lR0{6?!4RMkO!qcw0* zJTP4+s(=oyE%|VHQn&a}y~7osyH+F(uOscHx_Z0TpR+;>mOFd*SxmOFFFuQN7II$j+qAnlCV zd@WNS_ZZc|%rcb!N_jJ0AH;@vF{b9NyVXH{mb+H+dB8nBtAoraU43{bJu4Ut^r1Wa zB&@Z+S*YvkbL%c>p1tK3muaqq{2ZPw`+7yzqlMs+ce?E1@|3A|l@2X4S6w??>yV_I zI zIh4!4=NQ{U=RwUcCxlAyn!&i_yOHH|)5q!_Y>fZm6#aauGh!WH33yYAsBr zAOQu$oZLU@Lrv3W#nmRx?VZS{3~An`;d=)L^!|+4spqp#PiPWh z$5%eJI>9$BySz~_!`{6&n(9xqt&kRcpYBNmJo*H<1f|3?mX_?_dne;|dtxLL`7N~m z>E%J$?b56z#35_OWzCnbc<)gr0I2nV>SS5=g}v2ZrVF@EPn4Wt3$~k&^+c2-K?u)l z@gp+)V`-VAo54L$c5ZE*Z3Fad%} zprS3<+DbI|R)sr|3#emqKleo4NaeRsK(;#xU{7B?zNIUgdM=W2TO@2u!DnhqGPek| z-X%o~>ca<7ctA`flgWbqO;n(~d2?&ax5oy9Da^@HMT7C3Ra7ID!Wwuc08hNE z> zJ3BTu*1ySYBFtAn`KI_G{jChZaH*}WO-rLHFw#SzoP6r)Dq<@V^Rr)-y(nWnHmfM! zV7oKp2h|Gx2Zxs%n^;*{H#Rox(CE0e0_}6S2A*vJe~63lNX5|5P*s(jlQU@=9DD;9 zG^Bk7$}#AduiiHD?_UTF4Fx2o($dn=(b1Tg7(jWRn3&L*5vK|Pl145PE-pA64)E`k zm1%B%TwGkdMmeuNl8uMpTar^$1SCd+un^tXl|HA6&pzqnkrnXwU9c?X7?&b#-4>)A z;jYf8WnAXd4mht6^a-UXI5())7JCsh? z{{Z`6lqQ%c*kYtKp^U)J9;K=61K8yPKY>S3>a8i=@Jv&K-8)KC3*A2#qPenrbV^0@ VDz+PQF@OquH12Av5bl`y{TrnuMjQYD literal 0 HcmV?d00001 diff --git a/lecture05/src/main/java/ru/atom/boot/hw/HelloController.java b/lecture05/src/main/java/ru/atom/boot/hw/HelloController.java new file mode 100644 index 0000000000..7d77c102e8 --- /dev/null +++ b/lecture05/src/main/java/ru/atom/boot/hw/HelloController.java @@ -0,0 +1,21 @@ +package ru.atom.boot.hw; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +@Controller +@RequestMapping("hello") +public class HelloController { + + /** + * curl test + * + * curl -i localhost:8080/hello/world + */ + @RequestMapping("world") + @ResponseBody + public String hi() { + return "Hello, Spring-boot World!"; + } +} diff --git a/lecture05/src/main/java/ru/atom/boot/hw/HelloSpringBoot.java b/lecture05/src/main/java/ru/atom/boot/hw/HelloSpringBoot.java new file mode 100644 index 0000000000..ec907a58e0 --- /dev/null +++ b/lecture05/src/main/java/ru/atom/boot/hw/HelloSpringBoot.java @@ -0,0 +1,13 @@ +package ru.atom.boot.hw; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class HelloSpringBoot { + + public static void main(String[] args) { + SpringApplication.run(HelloSpringBoot.class, args); + } + +} diff --git a/lecture05/src/main/java/ru/atom/boot/mm/ConnectionController.java b/lecture05/src/main/java/ru/atom/boot/mm/ConnectionController.java new file mode 100644 index 0000000000..aaccdae8ad --- /dev/null +++ b/lecture05/src/main/java/ru/atom/boot/mm/ConnectionController.java @@ -0,0 +1,51 @@ +package ru.atom.boot.mm; + + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; +import ru.atom.thread.mm.Connection; +import ru.atom.thread.mm.ConnectionQueue; + + +@Controller +@RequestMapping("/connection") +public class ConnectionController { + private static final Logger log = LogManager.getLogger(ConnectionController.class); + + + /** + * curl test + * + * curl -i -X POST -H "Content-Type: application/x-www-form-urlencoded" \ + * localhost:8080/connection/connect -d 'id=1&name=bomberman' + */ + @RequestMapping( + path = "connect", + method = RequestMethod.POST, + consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseStatus(HttpStatus.OK) + public void connect(@RequestParam("id") long id, + @RequestParam("name") String name) { + + log.info("New connection id={} name={}", id, name); + ConnectionQueue.getInstance().offer(new Connection(id, name)); + } + + /** + * curl test + * + * curl -i localhost:8080/connection/list' + */ + public String list() { + throw new UnsupportedOperationException(); + } + + +} diff --git a/lecture05/src/main/java/ru/atom/boot/mm/GameController.java b/lecture05/src/main/java/ru/atom/boot/mm/GameController.java new file mode 100644 index 0000000000..8e131e979a --- /dev/null +++ b/lecture05/src/main/java/ru/atom/boot/mm/GameController.java @@ -0,0 +1,35 @@ +package ru.atom.boot.mm; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import ru.atom.thread.mm.GameRepository; + +/** + * Created by sergey on 3/15/17. + */ + +@Controller +@RequestMapping("/game") +public class GameController { + private static final Logger log = LogManager.getLogger(GameController.class); + + /** + * curl test + * + * curl -i localhost:8080/game/list + */ + @RequestMapping( + path = "list", + method = RequestMethod.GET, + produces = MediaType.TEXT_PLAIN_VALUE) + @ResponseBody + public String list() { + log.info("Games list request"); + return GameRepository.getAll().toString(); + } +} diff --git a/lecture05/src/main/java/ru/atom/boot/mm/MatchMakerApp.java b/lecture05/src/main/java/ru/atom/boot/mm/MatchMakerApp.java new file mode 100644 index 0000000000..8fc383f323 --- /dev/null +++ b/lecture05/src/main/java/ru/atom/boot/mm/MatchMakerApp.java @@ -0,0 +1,17 @@ +package ru.atom.boot.mm; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import ru.atom.thread.mm.MatchMaker; + + +@SpringBootApplication +public class MatchMakerApp { + public static void main(String[] args) throws Exception { + SpringApplication.run(MatchMakerApp.class, args); + + Thread matchMaker = new Thread(new MatchMaker()); + matchMaker.setName("match-maker"); + matchMaker.start(); + } +} diff --git a/lecture05/src/main/java/ru/atom/jersey/aspect/AuthFilter.java b/lecture05/src/main/java/ru/atom/jersey/aspect/AuthFilter.java deleted file mode 100644 index adc4952bcc..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/aspect/AuthFilter.java +++ /dev/null @@ -1,42 +0,0 @@ -package ru.atom.jersey.aspect; - - -import javax.ws.rs.NotAuthorizedException; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.Provider; -import java.io.IOException; - -@Authorized -@Provider -public class AuthFilter implements ContainerRequestFilter { - @Override - public void filter(ContainerRequestContext requestContext) throws IOException { - - // Get the HTTP Authorization header from the request - String authorizationHeader = - requestContext.getHeaderString(HttpHeaders.AUTHORIZATION); - - // Check if the HTTP Authorization header is present and formatted correctly - if (authorizationHeader == null) { - throw new NotAuthorizedException("Authorization header must be provided"); - } - - // Extract the token from the HTTP Authorization header - String token = authorizationHeader.trim(); - - try { - // Validate the token - validateToken(token); - } catch (Exception e) { - requestContext.abortWith( - Response.status(Response.Status.UNAUTHORIZED).build()); - } - } - - private void validateToken(String token) throws Exception { - // no exception in case of valid token - } -} \ No newline at end of file diff --git a/lecture05/src/main/java/ru/atom/jersey/aspect/Authorized.java b/lecture05/src/main/java/ru/atom/jersey/aspect/Authorized.java deleted file mode 100644 index b2bbcff953..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/aspect/Authorized.java +++ /dev/null @@ -1,18 +0,0 @@ -package ru.atom.jersey.aspect; - - -import javax.ws.rs.NameBinding; - -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; - -@NameBinding -@Retention(RUNTIME) -@Target({TYPE, METHOD}) -public @interface Authorized { -} diff --git a/lecture05/src/main/java/ru/atom/jersey/aspect/MatchMakerServerWithAuth.java b/lecture05/src/main/java/ru/atom/jersey/aspect/MatchMakerServerWithAuth.java deleted file mode 100644 index f973a8febb..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/aspect/MatchMakerServerWithAuth.java +++ /dev/null @@ -1,37 +0,0 @@ -package ru.atom.jersey.aspect; - -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import ru.atom.thread.mm.MatchMaker; - - -public class MatchMakerServerWithAuth { - public static void main(String[] args) throws Exception { - ServletContextHandler context = new ServletContextHandler(); - context.setContextPath("/"); - - Server jettyServer = new Server(8080); - jettyServer.setHandler(context); - - ServletHolder jerseyServlet = context.addServlet( - org.glassfish.jersey.servlet.ServletContainer.class, "/*"); - jerseyServlet.setInitOrder(0); - - jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", - "ru.atom.jersey" - ); - - jerseyServlet.setInitParameter( - "com.sun.jersey.spi.container.ContainerRequestFilters", - AuthFilter.class.getCanonicalName() - ); - - jettyServer.start(); - - Thread matchMaker = new Thread(new MatchMaker()); - matchMaker.setName("match-maker"); - matchMaker.start(); - } -} diff --git a/lecture05/src/main/java/ru/atom/jersey/hw/HelloJerseyWorld.java b/lecture05/src/main/java/ru/atom/jersey/hw/HelloJerseyWorld.java deleted file mode 100644 index 232880ab94..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/hw/HelloJerseyWorld.java +++ /dev/null @@ -1,18 +0,0 @@ -package ru.atom.jersey.hw; - - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; - -@Path("hello") -public class HelloJerseyWorld { - - @GET - @Produces("text/plain") - public Response sayHello() { - return Response.ok("Hello jersey world") - .build(); - } -} diff --git a/lecture05/src/main/java/ru/atom/jersey/hw/HttpServer.java b/lecture05/src/main/java/ru/atom/jersey/hw/HttpServer.java deleted file mode 100644 index 5631f163b9..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/hw/HttpServer.java +++ /dev/null @@ -1,26 +0,0 @@ -package ru.atom.jersey.hw; - -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; - -public class HttpServer { - public static void main(String[] args) throws Exception { - ServletContextHandler context = new ServletContextHandler(); - context.setContextPath("/"); - - Server jettyServer = new Server(8080); - jettyServer.setHandler(context); - - ServletHolder jerseyServlet = context.addServlet( - org.glassfish.jersey.servlet.ServletContainer.class, "/*"); - jerseyServlet.setInitOrder(0); - - jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", - "ru.atom.jersey.hw" - ); - - jettyServer.start(); - } -} \ No newline at end of file diff --git a/lecture05/src/main/java/ru/atom/jersey/mm/ConnectionHandler.java b/lecture05/src/main/java/ru/atom/jersey/mm/ConnectionHandler.java deleted file mode 100644 index eb9bc3d464..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/mm/ConnectionHandler.java +++ /dev/null @@ -1,30 +0,0 @@ -package ru.atom.jersey.mm; - - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import ru.atom.jersey.aspect.Authorized; -import ru.atom.thread.mm.Connection; -import ru.atom.thread.mm.ThreadSafeQueue; - -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.core.Response; - -@Path("/connect") -public class ConnectionHandler { - private static final Logger log = LogManager.getLogger(ConnectionHandler.class); - - @Authorized - @POST - @Consumes("application/x-www-form-urlencoded") - public Response connect(@FormParam("id") long id, - @FormParam("name") String name) { - - log.info("New connection id={} name={}", id, name); - ThreadSafeQueue.getInstance().offer(new Connection(id, name)); - return Response.ok("ok").build(); - } -} diff --git a/lecture05/src/main/java/ru/atom/jersey/mm/GamesView.java b/lecture05/src/main/java/ru/atom/jersey/mm/GamesView.java deleted file mode 100644 index 84bfd1d283..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/mm/GamesView.java +++ /dev/null @@ -1,27 +0,0 @@ -package ru.atom.jersey.mm; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import ru.atom.thread.mm.ThreadSafeStorage; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Response; - -/** - * Created by sergey on 3/15/17. - */ - -@Path("/games") -public class GamesView { - private static final Logger log = LogManager.getLogger(ConnectionHandler.class); - - @GET - @Produces("text/plain") - public Response getView() { - log.info("View request"); - return Response.ok(ThreadSafeStorage.getAll().toString()) - .build(); - } -} diff --git a/lecture05/src/main/java/ru/atom/jersey/mm/MatchMakerServer.java b/lecture05/src/main/java/ru/atom/jersey/mm/MatchMakerServer.java deleted file mode 100644 index d189f024b6..0000000000 --- a/lecture05/src/main/java/ru/atom/jersey/mm/MatchMakerServer.java +++ /dev/null @@ -1,32 +0,0 @@ -package ru.atom.jersey.mm; - -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; -import ru.atom.thread.mm.MatchMaker; - - -public class MatchMakerServer { - public static void main(String[] args) throws Exception { - ServletContextHandler context = new ServletContextHandler(); - context.setContextPath("/"); - - Server jettyServer = new Server(8080); - jettyServer.setHandler(context); - - ServletHolder jerseyServlet = context.addServlet( - org.glassfish.jersey.servlet.ServletContainer.class, "/*"); - jerseyServlet.setInitOrder(0); - - jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", - "ru.atom.jersey.mm" - ); - - jettyServer.start(); - - Thread matchMaker = new Thread(new MatchMaker()); - matchMaker.setName("match-maker"); - matchMaker.start(); - } -} diff --git a/lecture05/src/main/java/ru/atom/servlet/hw/HelloWorldServlet.java b/lecture05/src/main/java/ru/atom/servlet/hw/HelloWorldServlet.java deleted file mode 100644 index 7f93568bfb..0000000000 --- a/lecture05/src/main/java/ru/atom/servlet/hw/HelloWorldServlet.java +++ /dev/null @@ -1,41 +0,0 @@ -package ru.atom.servlet.hw; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; - -/** - * Created by sergey on 3/15/17. - */ -public class HelloWorldServlet extends HttpServlet { - private static final Logger log = LogManager.getLogger(HelloWorldServlet.class); - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - log.info("Processing GET request"); - PrintWriter writer = resp.getWriter(); - writer.append("") - .append("") - .append("

" + "GET " + getClass().getSimpleName() + "

") - .append("") - .append(""); - } - - @Override - protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - log.info("Processing POST request"); - PrintWriter writer = resp.getWriter(); - writer.append("") - .append("") - .append("

" + "POST " + getClass().getSimpleName() + "

") - .append("") - .append(""); - } - -} diff --git a/lecture05/src/main/java/ru/atom/servlet/hw/HttpServer.java b/lecture05/src/main/java/ru/atom/servlet/hw/HttpServer.java deleted file mode 100644 index 0a39563ef9..0000000000 --- a/lecture05/src/main/java/ru/atom/servlet/hw/HttpServer.java +++ /dev/null @@ -1,20 +0,0 @@ -package ru.atom.servlet.hw; - -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.ServletContextHandler; - -/** - * Created by sergey on 3/15/17. - */ -public class HttpServer { - public static void main(String[] args) throws Exception { - ServletContextHandler context = new ServletContextHandler(); - context.setContextPath("/"); - - Server jettyServer = new Server(8080); - jettyServer.setHandler(context); - - context.addServlet(HelloWorldServlet.class, "/*"); - jettyServer.start(); - } -} diff --git a/lecture05/src/main/java/ru/atom/servlet/mm/ConnectionHandler.java b/lecture05/src/main/java/ru/atom/servlet/mm/ConnectionHandler.java deleted file mode 100644 index 748585da14..0000000000 --- a/lecture05/src/main/java/ru/atom/servlet/mm/ConnectionHandler.java +++ /dev/null @@ -1,31 +0,0 @@ -package ru.atom.servlet.mm; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import ru.atom.thread.mm.Connection; -import ru.atom.thread.mm.ThreadSafeQueue; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -/** - * Created by sergey on 3/15/17. - */ -public class ConnectionHandler extends HttpServlet { - private static final Logger log = LogManager.getLogger(ConnectionHandler.class); - private static final String NAME_PARAM = "name"; - private static final String ID_PARAM = "id"; - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - String name = req.getParameter(NAME_PARAM); - Long id = Long.parseLong(req.getParameter(ID_PARAM)); - log.info("New Connection from {} {}", id, name); - - ThreadSafeQueue.getInstance().offer(new Connection(id, name)); - resp.getWriter().append("OK"); - } -} diff --git a/lecture05/src/main/java/ru/atom/servlet/mm/GamesView.java b/lecture05/src/main/java/ru/atom/servlet/mm/GamesView.java deleted file mode 100644 index a2fe96102a..0000000000 --- a/lecture05/src/main/java/ru/atom/servlet/mm/GamesView.java +++ /dev/null @@ -1,28 +0,0 @@ -package ru.atom.servlet.mm; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import ru.atom.thread.mm.ThreadSafeStorage; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; - -/** - * Created by sergey on 3/15/17. - */ -public class GamesView extends HttpServlet { - private static final Logger log = LogManager.getLogger(GamesView.class); - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { - log.info("View request"); - PrintWriter writer = resp.getWriter(); - writer.append( - ThreadSafeStorage.getAll().toString() - ); - } -} diff --git a/lecture05/src/main/java/ru/atom/servlet/mm/MatchMakerServer.java b/lecture05/src/main/java/ru/atom/servlet/mm/MatchMakerServer.java deleted file mode 100644 index e32ac65b72..0000000000 --- a/lecture05/src/main/java/ru/atom/servlet/mm/MatchMakerServer.java +++ /dev/null @@ -1,26 +0,0 @@ -package ru.atom.servlet.mm; - -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.servlet.ServletContextHandler; -import ru.atom.thread.mm.MatchMaker; - -/** - * Created by sergey on 3/15/17. - */ -public class MatchMakerServer { - public static void main(String[] args) throws Exception { - ServletContextHandler context = new ServletContextHandler(); - context.setContextPath("/"); - - Server jettyServer = new Server(8080); - jettyServer.setHandler(context); - - context.addServlet(ConnectionHandler.class, "/connect"); - context.addServlet(GamesView.class, "/games"); - jettyServer.start(); - - Thread matchMaker = new Thread(new MatchMaker()); - matchMaker.setName("match-maker"); - matchMaker.start(); - } -} diff --git a/lecture05/src/main/java/ru/atom/thread/mm/ConnectionProducer.java b/lecture05/src/main/java/ru/atom/thread/mm/ConnectionProducer.java index 09b63f93c2..7f5eccacce 100644 --- a/lecture05/src/main/java/ru/atom/thread/mm/ConnectionProducer.java +++ b/lecture05/src/main/java/ru/atom/thread/mm/ConnectionProducer.java @@ -19,7 +19,7 @@ public void run() { while (!Thread.currentThread().isInterrupted()) { long newId = id.getAndIncrement(); - ThreadSafeQueue.getInstance().offer(new Connection(newId, names[(int) (newId % names.length)])); + ConnectionQueue.getInstance().offer(new Connection(newId, names[(int) (newId % names.length)])); log.info("Connection {} added.", newId); try { Thread.sleep(1_000); diff --git a/lecture05/src/main/java/ru/atom/thread/mm/ThreadSafeQueue.java b/lecture05/src/main/java/ru/atom/thread/mm/ConnectionQueue.java similarity index 91% rename from lecture05/src/main/java/ru/atom/thread/mm/ThreadSafeQueue.java rename to lecture05/src/main/java/ru/atom/thread/mm/ConnectionQueue.java index b26f20a46f..1f78b1e4ee 100644 --- a/lecture05/src/main/java/ru/atom/thread/mm/ThreadSafeQueue.java +++ b/lecture05/src/main/java/ru/atom/thread/mm/ConnectionQueue.java @@ -6,7 +6,7 @@ /** * Created by sergey on 3/14/17. */ -public class ThreadSafeQueue { +public class ConnectionQueue { private static BlockingQueue instance = new LinkedBlockingQueue<>(); public static BlockingQueue getInstance() { diff --git a/lecture05/src/main/java/ru/atom/thread/mm/ThreadSafeStorage.java b/lecture05/src/main/java/ru/atom/thread/mm/GameRepository.java similarity index 92% rename from lecture05/src/main/java/ru/atom/thread/mm/ThreadSafeStorage.java rename to lecture05/src/main/java/ru/atom/thread/mm/GameRepository.java index 4fda752287..0266bede2b 100644 --- a/lecture05/src/main/java/ru/atom/thread/mm/ThreadSafeStorage.java +++ b/lecture05/src/main/java/ru/atom/thread/mm/GameRepository.java @@ -6,7 +6,7 @@ /** * Created by sergey on 3/15/17. */ -public class ThreadSafeStorage { +public class GameRepository { private static ConcurrentHashMap map = new ConcurrentHashMap<>(); public static void put(GameSession session) { diff --git a/lecture05/src/main/java/ru/atom/thread/mm/MatchMaker.java b/lecture05/src/main/java/ru/atom/thread/mm/MatchMaker.java index fffd94a699..60bcf27807 100644 --- a/lecture05/src/main/java/ru/atom/thread/mm/MatchMaker.java +++ b/lecture05/src/main/java/ru/atom/thread/mm/MatchMaker.java @@ -21,7 +21,7 @@ public void run() { while (!Thread.currentThread().isInterrupted()) { try { candidates.add( - ThreadSafeQueue.getInstance().poll(10_000, TimeUnit.SECONDS) + ConnectionQueue.getInstance().poll(10_000, TimeUnit.SECONDS) ); } catch (InterruptedException e) { log.warn("Timeout reached"); @@ -30,7 +30,7 @@ public void run() { if (candidates.size() == GameSession.PLAYERS_IN_GAME) { GameSession session = new GameSession(candidates.toArray(new Connection[0])); log.info(session); - ThreadSafeStorage.put(session); + GameRepository.put(session); candidates.clear(); } } diff --git a/lecture05/src/main/resources/application.properties b/lecture05/src/main/resources/application.properties new file mode 100644 index 0000000000..ad1a7e46c0 --- /dev/null +++ b/lecture05/src/main/resources/application.properties @@ -0,0 +1 @@ +management.security.enabled=false \ No newline at end of file diff --git a/lecture05/src/test/java/ru/atom/annotation/AnnotationDemoTest.java b/lecture05/src/test/java/ru/atom/annotation/AnnotationDemoTest.java index 03a539ceca..2ccd5a4f40 100644 --- a/lecture05/src/test/java/ru/atom/annotation/AnnotationDemoTest.java +++ b/lecture05/src/test/java/ru/atom/annotation/AnnotationDemoTest.java @@ -1,33 +1,29 @@ package ru.atom.annotation; -import org.junit.Ignore; import org.junit.Test; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseStatus; -import javax.ws.rs.GET; -import javax.ws.rs.POST; +import static org.assertj.core.api.Assertions.assertThat; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.core.IsEqual.equalTo; -@Ignore public class AnnotationDemoTest { @Test public void countOverride() throws Exception { assertThat(AnnotationDemo.getNumberOfAnnotatedMethods( - ru.atom.servlet.mm.ConnectionHandler.class, Override.class), is(equalTo(0))); + ru.atom.boot.mm.ConnectionController.class, Override.class)).isEqualTo(0); } @Test - public void countGet() throws Exception { + public void countRequestMapping() throws Exception { assertThat(AnnotationDemo.getNumberOfAnnotatedMethods( - ru.atom.jersey.hw.HelloJerseyWorld.class, GET.class), is(equalTo(1))); + ru.atom.boot.hw.HelloController.class, RequestMapping.class)).isEqualTo(1); } @Test - public void countPost() throws Exception { + public void countResponseStatus() throws Exception { assertThat(AnnotationDemo.getNumberOfAnnotatedMethods( - ru.atom.jersey.mm.ConnectionHandler.class, POST.class), is(equalTo(1))); + ru.atom.boot.mm.ConnectionController.class, ResponseStatus.class)).isEqualTo(1); } } diff --git a/lecture05/src/test/java/ru/atom/boot/hw/HelloControllerTest.java b/lecture05/src/test/java/ru/atom/boot/hw/HelloControllerTest.java new file mode 100644 index 0000000000..a74e350934 --- /dev/null +++ b/lecture05/src/test/java/ru/atom/boot/hw/HelloControllerTest.java @@ -0,0 +1,34 @@ +package ru.atom.boot.hw; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@RunWith(SpringRunner.class) +@WebMvcTest +public class HelloControllerTest { + + + /** + * This is Dependency Injection usage + */ + @Autowired + private MockMvc mockMvc; + + @Test + public void hiTest() throws Exception { + mockMvc.perform(get("/hello/world")) + .andDo(print()) + .andExpect(status().isOk()) + .andExpect(content().string("Hello, Spring-boot World!")); + } + +} \ No newline at end of file diff --git a/lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerIntegrationTest.java b/lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerIntegrationTest.java new file mode 100644 index 0000000000..cede5d0169 --- /dev/null +++ b/lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerIntegrationTest.java @@ -0,0 +1,36 @@ +package ru.atom.boot.mm; + +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; + +import static org.junit.Assert.assertTrue; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@RunWith(SpringRunner.class) +@WebMvcTest +public class ConnectionControllerIntegrationTest { + @Autowired + MockMvc mockMvc; + + @Test + public void connect() throws Exception { + mockMvc.perform(post("/connection/connect") + .content("id=1&name=a") + .contentType(MediaType.APPLICATION_FORM_URLENCODED)) + .andExpect(status().isOk()); + } + + @Test + @Ignore + public void list() throws Exception { + assertTrue(false); + } + +} \ No newline at end of file diff --git a/lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerTest.java b/lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerTest.java new file mode 100644 index 0000000000..d08cd51c42 --- /dev/null +++ b/lecture05/src/test/java/ru/atom/boot/mm/ConnectionControllerTest.java @@ -0,0 +1,30 @@ +package ru.atom.boot.mm; + +import org.junit.Ignore; +import org.junit.Test; + +import static org.assertj.core.api.Java6Assertions.assertThat; +import static org.junit.Assert.assertTrue; + +public class ConnectionControllerTest { + + @Test + @Ignore + public void connect() throws Exception { + ConnectionController connectionHandler = new ConnectionController(); + assertThat(connectionHandler.list()).isEmpty(); + + connectionHandler.connect(1, "a"); + connectionHandler.connect(2, "b"); + connectionHandler.connect(3, "c"); + + assertThat(connectionHandler.list()).isNotEmpty(); + } + + @Test + @Ignore + public void list() throws Exception { + assertTrue(false); + } + +} \ No newline at end of file diff --git a/lecture05/src/test/java/ru/atom/boot/mm/GameControllerTest.java b/lecture05/src/test/java/ru/atom/boot/mm/GameControllerTest.java new file mode 100644 index 0000000000..f915742de8 --- /dev/null +++ b/lecture05/src/test/java/ru/atom/boot/mm/GameControllerTest.java @@ -0,0 +1,17 @@ +package ru.atom.boot.mm; + +import org.junit.Ignore; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + + +public class GameControllerTest { + + @Test + @Ignore + public void list() throws Exception { + assertTrue(false); + } + +} \ No newline at end of file diff --git a/lecture05/src/test/java/ru/atom/boot/mm/GamesControllerIntegrationTest.java b/lecture05/src/test/java/ru/atom/boot/mm/GamesControllerIntegrationTest.java new file mode 100644 index 0000000000..bdfa86485e --- /dev/null +++ b/lecture05/src/test/java/ru/atom/boot/mm/GamesControllerIntegrationTest.java @@ -0,0 +1,16 @@ +package ru.atom.boot.mm; + +import org.junit.Ignore; +import org.junit.Test; + +/** + * Some annotations here + */ +public class GamesControllerIntegrationTest { + + @Test + @Ignore + public void list() throws Exception { + } + +} \ No newline at end of file diff --git a/lecture05/src/test/java/ru/atom/thread/practice/EventProcessor.java b/lecture05/src/test/java/ru/atom/thread/practice/EventProcessor.java index 8031f3dcf2..2c292e8800 100644 --- a/lecture05/src/test/java/ru/atom/thread/practice/EventProcessor.java +++ b/lecture05/src/test/java/ru/atom/thread/practice/EventProcessor.java @@ -1,7 +1,5 @@ package ru.atom.thread.practice; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - import java.util.List; /** @@ -10,14 +8,14 @@ */ public class EventProcessor { public static void produceEvents(List eventProducers) { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } public static long countTotalNumberOfGoodEvents() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } public static long countTotalNumberOfBadEvents() { - throw new NotImplementedException(); + throw new UnsupportedOperationException(); } } diff --git a/lecture06/src/main/java/ru/atom/lecture06/server/ChatServer.java b/lecture06/src/main/java/ru/atom/lecture06/server/ChatServer.java index da54b5f1d1..21ec2f969b 100644 --- a/lecture06/src/main/java/ru/atom/lecture06/server/ChatServer.java +++ b/lecture06/src/main/java/ru/atom/lecture06/server/ChatServer.java @@ -31,12 +31,12 @@ private static ServletContextHandler createChatContext() { jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", + "boot.config.server.provider.packages", "ru.atom.lecture06.server" ); jerseyServlet.setInitParameter( - "com.sun.jersey.spi.container.ContainerResponseFilters", + "com.sun.boot.spi.container.ContainerResponseFilters", CrossBrowserFilter.class.getCanonicalName() ); diff --git a/lecture07/src/main/java/ru/atom/lecture07/server/ChatServer.java b/lecture07/src/main/java/ru/atom/lecture07/server/ChatServer.java index e4fdf51ee7..770a752094 100644 --- a/lecture07/src/main/java/ru/atom/lecture07/server/ChatServer.java +++ b/lecture07/src/main/java/ru/atom/lecture07/server/ChatServer.java @@ -34,12 +34,12 @@ private static ServletContextHandler createChatContext() { jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", + "boot.config.server.provider.packages", "ru.atom.lecture07.server" ); jerseyServlet.setInitParameter( - "com.sun.jersey.spi.container.ContainerResponseFilters", + "com.sun.boot.spi.container.ContainerResponseFilters", CrossBrowserFilter.class.getCanonicalName() ); diff --git a/lecture11/src/main/java/ru/atom/lecture11/billing/BillingServer.java b/lecture11/src/main/java/ru/atom/lecture11/billing/BillingServer.java index 780bed58ac..fdf434cd99 100644 --- a/lecture11/src/main/java/ru/atom/lecture11/billing/BillingServer.java +++ b/lecture11/src/main/java/ru/atom/lecture11/billing/BillingServer.java @@ -17,7 +17,7 @@ public static void main(String[] args) throws Exception { jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", + "boot.config.server.provider.packages", "ru.atom.lecture11.billing" ); diff --git a/settings.gradle b/settings.gradle index e1535c034e..362cae2875 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ rootProject.name = 'atom' -include 'lecture04' \ No newline at end of file +include 'lecture05' \ No newline at end of file diff --git a/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java b/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java index 784868a493..0b3665ca17 100644 --- a/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java +++ b/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java @@ -30,12 +30,12 @@ private static ServletContextHandler createChatContext() { jerseyServlet.setInitOrder(0); jerseyServlet.setInitParameter( - "jersey.config.server.provider.packages", + "boot.config.server.provider.packages", "ru.atom.http" ); jerseyServlet.setInitParameter( - "com.sun.jersey.spi.container.ContainerResponseFilters", + "com.sun.boot.spi.container.ContainerResponseFilters", CrossBrowserFilter.class.getCanonicalName() ); From 66f9832a848f6701d4c57fc5e01b514e60e5f401 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 1 Nov 2017 16:41:11 +0300 Subject: [PATCH 022/245] web_hackaton code --- build.gradle | 2 +- settings.gradle | 2 +- web_hackaton/Dockerfile | 8 +- web_hackaton/build.gradle | 17 ++-- web_hackaton/presentation/PITCHME.md | 3 +- .../java/ru/atom/chat/ChatApplication.java | 11 +++ .../java/ru/atom/chat/ChatController.java | 99 +++++++++++++++++++ .../java/ru/atom/http/client/ChatClient.java | 63 ------------ .../atom/http/client/ConsoleChatClient.java | 45 --------- .../atom/http/server/CrossBrowserFilter.java | 22 ----- .../http/server/HackatonChatResource.java | 53 ---------- .../atom/http/server/HackatonHttpServer.java | 57 ----------- .../ru/atom/{http => chat}/ChatClient.java | 37 +++---- .../atom/{http => chat}/ChatClientTest.java | 24 +++-- 14 files changed, 155 insertions(+), 288 deletions(-) create mode 100644 web_hackaton/src/main/java/ru/atom/chat/ChatApplication.java create mode 100644 web_hackaton/src/main/java/ru/atom/chat/ChatController.java delete mode 100644 web_hackaton/src/main/java/ru/atom/http/client/ChatClient.java delete mode 100644 web_hackaton/src/main/java/ru/atom/http/client/ConsoleChatClient.java delete mode 100644 web_hackaton/src/main/java/ru/atom/http/server/CrossBrowserFilter.java delete mode 100644 web_hackaton/src/main/java/ru/atom/http/server/HackatonChatResource.java delete mode 100644 web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java rename web_hackaton/src/test/java/ru/atom/{http => chat}/ChatClient.java (57%) rename web_hackaton/src/test/java/ru/atom/{http => chat}/ChatClientTest.java (68%) diff --git a/build.gradle b/build.gradle index b26b80bc78..a531e08d17 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } springBoot { - mainClass = "ru.atom.boot.hw.HelloSpringBoot" + mainClass = "ru.atom.chat.ChatApplication" } // constants declaration diff --git a/settings.gradle b/settings.gradle index 362cae2875..6d5b339d5a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1,2 @@ rootProject.name = 'atom' -include 'lecture05' \ No newline at end of file +include 'web_hackaton' \ No newline at end of file diff --git a/web_hackaton/Dockerfile b/web_hackaton/Dockerfile index 4f7843dece..324fb0fc40 100644 --- a/web_hackaton/Dockerfile +++ b/web_hackaton/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:alpine -COPY build/libs/web_hackaton-1.0-SNAPSHOT.jar /usr/chat -WORKDIR /usr/chat -CMD ["java", "web_hackaton-1.0-SNAPSHOT.jar"] \ No newline at end of file +FROM openjdk:8-jre-alpine +COPY build/libs/web_hackaton-1.0-SNAPSHOT.jar /services/chat.jar +EXPOSE 8080 +CMD ["java", "-jar", "/services/chat.jar"] \ No newline at end of file diff --git a/web_hackaton/build.gradle b/web_hackaton/build.gradle index 3856cc3230..d67789fd1e 100644 --- a/web_hackaton/build.gradle +++ b/web_hackaton/build.gradle @@ -1,18 +1,17 @@ dependencies { - testCompile rootProject.libraries.junit + compile rootProject.libraries.spring_boot compile rootProject.libraries.log4j - compile rootProject.libraries.okhttp - compile rootProject.libraries.jetty_server - compile rootProject.libraries.jetty_servlet - compile rootProject.libraries.jersey_server - compile rootProject.libraries.jersey_containers + + testCompile rootProject.libraries.okhttp + testCompile rootProject.libraries.junit + testCompile rootProject.libraries.spring_boot_test } -jar { - from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } - manifest { attributes 'Main-Class': 'ru.atom.http.server.HttpServer' } +springBoot { + mainClass = "ru.atom.chat.ChatApplication" } + sourceSets { main { java { diff --git a/web_hackaton/presentation/PITCHME.md b/web_hackaton/presentation/PITCHME.md index 711748ea1b..be238aee03 100644 --- a/web_hackaton/presentation/PITCHME.md +++ b/web_hackaton/presentation/PITCHME.md @@ -1,7 +1,6 @@ #HSLIDE # Java -hackaton -## Web service +## Web hackaton #HSLIDE ### get ready diff --git a/web_hackaton/src/main/java/ru/atom/chat/ChatApplication.java b/web_hackaton/src/main/java/ru/atom/chat/ChatApplication.java new file mode 100644 index 0000000000..247a3dfeee --- /dev/null +++ b/web_hackaton/src/main/java/ru/atom/chat/ChatApplication.java @@ -0,0 +1,11 @@ +package ru.atom.chat; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ChatApplication { + public static void main(String[] args) { + SpringApplication.run(ChatApplication.class, args); + } +} diff --git a/web_hackaton/src/main/java/ru/atom/chat/ChatController.java b/web_hackaton/src/main/java/ru/atom/chat/ChatController.java new file mode 100644 index 0000000000..3785ba7eca --- /dev/null +++ b/web_hackaton/src/main/java/ru/atom/chat/ChatController.java @@ -0,0 +1,99 @@ +package ru.atom.chat; + +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseStatus; + +import java.util.HashSet; +import java.util.Queue; +import java.util.Set; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.stream.Collectors; + +@Controller +@RequestMapping("chat") +public class ChatController { + private static final Logger log = LogManager.getLogger(ChatController.class); + + private Queue messages = new ConcurrentLinkedQueue<>(); + private Set online = new HashSet<>(); + + /** + * curl -X POST -i localhost:8080/chat/login -d "name=I_AM_STUPID" + */ + @RequestMapping( + path = "login", + method = RequestMethod.POST, + consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseStatus(HttpStatus.OK) + public ResponseEntity login(@RequestParam("name") String name) { + if (name == null || name.isEmpty()) { + return new ResponseEntity<>("No name provided", HttpStatus.BAD_REQUEST); + } + if (!online.add(name)) { + return new ResponseEntity<>("Already logged in", HttpStatus.BAD_REQUEST); + } + messages.add("[" + name + "] is online"); + log.info(name + " logged in"); + return new ResponseEntity<>(HttpStatus.OK); + } + + /** + * curl -X POST -i localhost:8080/chat/logout?name=I_AM_STUPID" + */ + @RequestMapping( + path = "logout", + method = RequestMethod.POST, + consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseStatus(HttpStatus.OK) + public ResponseEntity logout(@RequestParam("name") String name) { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + + + /** + * curl -i localhost:8080/chat/online + */ + @RequestMapping( + path = "online", + method = RequestMethod.GET, + produces = MediaType.TEXT_PLAIN_VALUE) + public ResponseEntity online() { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + + + /** + * curl -X POST -i localhost:8080/chat/say -d "name=I_AM_STUPID&msg=Hello everyone in this chat" + */ + @RequestMapping( + path = "say", + method = RequestMethod.POST, + consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) + @ResponseStatus(HttpStatus.OK) + public ResponseEntity say(@RequestParam("name") String name, @RequestParam("msg") String msg) { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + + + /** + * curl -i localhost:8080/hello/chat + */ + @RequestMapping( + path = "chat", + method = RequestMethod.GET, + produces = MediaType.TEXT_PLAIN_VALUE) + public ResponseEntity chat() { + return new ResponseEntity<>(messages.stream() + .map(Object::toString) + .collect(Collectors.joining("\n")), + HttpStatus.OK); + } +} diff --git a/web_hackaton/src/main/java/ru/atom/http/client/ChatClient.java b/web_hackaton/src/main/java/ru/atom/http/client/ChatClient.java deleted file mode 100644 index 05a62ed74b..0000000000 --- a/web_hackaton/src/main/java/ru/atom/http/client/ChatClient.java +++ /dev/null @@ -1,63 +0,0 @@ -package ru.atom.http.client; - - -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; - -import java.io.IOException; - - - -public class ChatClient { - private static final OkHttpClient client = new OkHttpClient(); - private static final String PROTOCOL = "http://"; - private static final String HOST = "wtfis.ru"; - private static final String PORT = ":8080"; - - //GET host:port/chat/online - public static Response viewOnline() throws IOException { - Request request = new Request.Builder() - .get() - .url(PROTOCOL + HOST + PORT + "/chat/online") - .addHeader("host", HOST + PORT) - .build(); - - return client.newCall(request).execute(); - } - - //POST host:port/chat/login?name=my_name - public static Response login(String name) throws IOException { - MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); - Request request = new Request.Builder() - .post(RequestBody.create(mediaType, "")) - .url(PROTOCOL + HOST + PORT + "/chat/login") - .build(); - - return client.newCall(request).execute(); - } - - //POST host:port/chat/say?name=my_name - //Body: "msg='my_message'" - public static Response say(String name, String msg) throws IOException { - MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); - Request request = new Request.Builder() - .post(RequestBody.create(mediaType, "msg=" + msg)) - .url(PROTOCOL + HOST + PORT + "/chat/say?name=" + name) - .build(); - return client.newCall(request).execute(); - } - - //GET host:port/chat/chat - public static Response viewChat() throws IOException { - Request request = new Request.Builder() - .get() - .url(PROTOCOL + HOST + PORT + "/chat/chat") - .addHeader("host", HOST + PORT) - .build(); - - return client.newCall(request).execute(); - } -} \ No newline at end of file diff --git a/web_hackaton/src/main/java/ru/atom/http/client/ConsoleChatClient.java b/web_hackaton/src/main/java/ru/atom/http/client/ConsoleChatClient.java deleted file mode 100644 index 4f9630c42b..0000000000 --- a/web_hackaton/src/main/java/ru/atom/http/client/ConsoleChatClient.java +++ /dev/null @@ -1,45 +0,0 @@ -package ru.atom.http.client; - -import okhttp3.Response; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStreamReader; - -public class ConsoleChatClient { - - public static void main(String[] args) throws IOException { - if (args.length < 1 || args[0].isEmpty()) { - System.out.println("Provide name as first argument"); - System.exit(-1); - } - - final String name = args[0]; - new Thread(() -> { - while (!Thread.currentThread().isInterrupted()) { - try { - System.out.println(ChatClient.viewChat().body().string()); - - Thread.sleep(5_000); - } catch (InterruptedException ignored) { - } catch (IOException e) { - e.printStackTrace(); - } - } - }).start(); - try (InputStreamReader isr = new InputStreamReader(System.in); - BufferedReader br = new BufferedReader(isr) - ) { - while (true) { - // your code here - - String line = br.readLine(); - Response resp = ChatClient.say(name, line); - if (!resp.isSuccessful()) { - System.out.println("FAIL!"); - } - System.out.println(ChatClient.viewChat().body().string()); - } - } - } -} \ No newline at end of file diff --git a/web_hackaton/src/main/java/ru/atom/http/server/CrossBrowserFilter.java b/web_hackaton/src/main/java/ru/atom/http/server/CrossBrowserFilter.java deleted file mode 100644 index 36f751ce9d..0000000000 --- a/web_hackaton/src/main/java/ru/atom/http/server/CrossBrowserFilter.java +++ /dev/null @@ -1,22 +0,0 @@ -package ru.atom.http.server; - -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; -import javax.ws.rs.ext.Provider; -import java.io.IOException; - -@Provider -public class CrossBrowserFilter implements ContainerResponseFilter { - - @Override - public void filter(ContainerRequestContext request, - ContainerResponseContext response) throws IOException { - response.getHeaders().add("Access-Control-Allow-Origin", "*"); - response.getHeaders().add("Access-Control-Allow-Headers", - "origin, content-type, accept, authorization"); - response.getHeaders().add("Access-Control-Allow-Credentials", "true"); - response.getHeaders().add("Access-Control-Allow-Methods", - "GET, POST, PUT, DELETE, OPTIONS, HEAD"); - } -} \ No newline at end of file diff --git a/web_hackaton/src/main/java/ru/atom/http/server/HackatonChatResource.java b/web_hackaton/src/main/java/ru/atom/http/server/HackatonChatResource.java deleted file mode 100644 index 07c61fb457..0000000000 --- a/web_hackaton/src/main/java/ru/atom/http/server/HackatonChatResource.java +++ /dev/null @@ -1,53 +0,0 @@ -package ru.atom.http.server; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import javax.ws.rs.Consumes; -import javax.ws.rs.FormParam; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Response; - -@Path("/chat") -public class HackatonChatResource { - private static final Logger log = LogManager.getLogger(HackatonChatResource.class); - - @POST - @Consumes("application/x-www-form-urlencoded") - @Path("/login") - public Response login(@QueryParam("name") String name) { - return Response.status(Response.Status.NO_CONTENT).build(); - } - - @GET - @Produces("text/plain") - @Path("/online") - public Response online() { - return Response.status(Response.Status.NO_CONTENT).build(); - } - - @POST - @Consumes("application/x-www-form-urlencoded") - @Path("/say") - public Response say(@QueryParam("name") String name, @FormParam("msg") String msg) { - return Response.status(Response.Status.NO_CONTENT).build(); - } - - @GET - @Produces("text/plain") - @Path("/chat") - public Response chat() { - return Response.status(Response.Status.NO_CONTENT).build(); - } - - @POST - @Consumes("application/x-www-form-urlencoded") - @Path("/logout") - public Response logout(@QueryParam("name") String name) { - return Response.status(Response.Status.NO_CONTENT).build(); - } -} diff --git a/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java b/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java deleted file mode 100644 index 0b3665ca17..0000000000 --- a/web_hackaton/src/main/java/ru/atom/http/server/HackatonHttpServer.java +++ /dev/null @@ -1,57 +0,0 @@ -package ru.atom.http.server; - -import org.eclipse.jetty.server.Handler; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.handler.ContextHandler; -import org.eclipse.jetty.server.handler.ContextHandlerCollection; -import org.eclipse.jetty.server.handler.ResourceHandler; -import org.eclipse.jetty.servlet.ServletContextHandler; -import org.eclipse.jetty.servlet.ServletHolder; - -public class HackatonHttpServer { - public static void main(String[] args) throws Exception { - ContextHandlerCollection contexts = new ContextHandlerCollection(); - contexts.setHandlers(new Handler[] { - createChatContext(), - createResourceContext() - }); - - Server jettyServer = new Server(8080); - jettyServer.setHandler(contexts); - - jettyServer.start(); - } - - private static ServletContextHandler createChatContext() { - ServletContextHandler context = new ServletContextHandler(); - context.setContextPath("/chat/*"); - ServletHolder jerseyServlet = context.addServlet( - org.glassfish.jersey.servlet.ServletContainer.class, "/*"); - jerseyServlet.setInitOrder(0); - - jerseyServlet.setInitParameter( - "boot.config.server.provider.packages", - "ru.atom.http" - ); - - jerseyServlet.setInitParameter( - "com.sun.boot.spi.container.ContainerResponseFilters", - CrossBrowserFilter.class.getCanonicalName() - ); - - return context; - } - - private static ContextHandler createResourceContext() { - ContextHandler context = new ContextHandler(); - context.setContextPath("/"); - ResourceHandler handler = new ResourceHandler(); - handler.setWelcomeFiles(new String[]{"index.html"}); - - String serverRoot = HackatonHttpServer.class.getResource("/static").toString(); - handler.setResourceBase(serverRoot); - context.setHandler(handler); - return context; - } - -} diff --git a/web_hackaton/src/test/java/ru/atom/http/ChatClient.java b/web_hackaton/src/test/java/ru/atom/chat/ChatClient.java similarity index 57% rename from web_hackaton/src/test/java/ru/atom/http/ChatClient.java rename to web_hackaton/src/test/java/ru/atom/chat/ChatClient.java index f0b34f6c12..2859ebe66a 100644 --- a/web_hackaton/src/test/java/ru/atom/http/ChatClient.java +++ b/web_hackaton/src/test/java/ru/atom/chat/ChatClient.java @@ -1,12 +1,12 @@ -package ru.atom.http; +package ru.atom.chat; import okhttp3.MediaType; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.RequestBody; import okhttp3.Response; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; -import sun.util.resources.cldr.ms.CalendarData_ms_MY; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; import java.io.IOException; @@ -14,39 +14,34 @@ public class ChatClient { private static final OkHttpClient client = new OkHttpClient(); private static final String PROTOCOL = "http://"; - private static final String HOST = "wtfis.ru"; + private static final String HOST = "localhost"; private static final String PORT = ":8080"; - //GET host:port/chat/online - public static Response viewOnline() throws IOException { + public static Response login(String name) throws IOException { + MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); Request request = new Request.Builder() - .get() - .url(PROTOCOL + HOST + PORT + "/chat/online") - .addHeader("host", HOST + PORT) + .post(RequestBody.create(mediaType, "name=" + name)) + .url(PROTOCOL + HOST + PORT + "/chat/login") .build(); return client.newCall(request).execute(); } - //POST host:port/chat/login?name=my_name - public static Response login(String name) throws IOException { - MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded"); + public static Response viewChat() throws IOException { Request request = new Request.Builder() - .post(RequestBody.create(mediaType, "")) - .url(PROTOCOL + HOST + PORT + "/chat/login?name=" + name) + .get() + .url(PROTOCOL + HOST + PORT + "/chat/chat") + .addHeader("host", HOST + PORT) .build(); return client.newCall(request).execute(); } - //POST host:port/chat/say?name=my_name - //Body: "msg='my_message'" - public static Response say(String name, String msg) throws IOException { - throw new NotImplementedException(); + public static Response viewOnline() throws IOException { + throw new UnsupportedOperationException(); } - //GET host:port/chat/chat - public static Response viewChat() throws IOException { - throw new NotImplementedException(); + public static Response say(String name, String msg) { + throw new UnsupportedOperationException(); } } \ No newline at end of file diff --git a/web_hackaton/src/test/java/ru/atom/http/ChatClientTest.java b/web_hackaton/src/test/java/ru/atom/chat/ChatClientTest.java similarity index 68% rename from web_hackaton/src/test/java/ru/atom/http/ChatClientTest.java rename to web_hackaton/src/test/java/ru/atom/chat/ChatClientTest.java index f580befaa4..c8b0c9eb1f 100644 --- a/web_hackaton/src/test/java/ru/atom/http/ChatClientTest.java +++ b/web_hackaton/src/test/java/ru/atom/chat/ChatClientTest.java @@ -1,6 +1,8 @@ -package ru.atom.http; +package ru.atom.chat; import okhttp3.Response; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -9,39 +11,41 @@ @Ignore public class ChatClientTest { + private static final Logger log = LogManager.getLogger(ChatClient.class); + private static String MY_NAME_IN_CHAT = "sasha"; private static String MY_MESSAGE_TO_CHAT = "Всем привет в этом чатике!"; @Test public void viewOnline() throws IOException { Response response = ChatClient.viewOnline(); - System.out.println("[" + response + "]"); - System.out.println(response.body().string()); + log.info("[" + response + "]"); + log.info(response.body()); Assert.assertEquals(200, response.code()); } @Test public void login() throws IOException { Response response = ChatClient.login(MY_NAME_IN_CHAT); - System.out.println("[" + response + "]"); + log.info("[" + response + "]"); String body = response.body().string(); - System.out.println(); - Assert.assertTrue(response.code() == 200 || body.equals("Already logined")); + log.info(body); + Assert.assertTrue(response.code() == 200 || body.equals("Already logged in")); } @Test public void viewChat() throws IOException { Response response = ChatClient.viewChat(); - System.out.println("[" + response + "]"); - System.out.println(response.body().string()); + log.info("[" + response + "]"); + log.info(response.body().string()); Assert.assertEquals(200, response.code()); } @Test public void say() throws IOException { Response response = ChatClient.say(MY_NAME_IN_CHAT, MY_MESSAGE_TO_CHAT); - System.out.println("[" + response + "]"); - System.out.println(response.body().string()); + log.info("[" + response + "]"); + log.info(response.body().string()); Assert.assertEquals(200, response.code()); } } From 19092a11a723195a0b172e4807a3c9a668557ec6 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 1 Nov 2017 17:00:52 +0300 Subject: [PATCH 023/245] web_hackaton presentation --- web_hackaton/presentation/PITCHME.md | 36 +++++++++---------- .../src/main/resources/static/index.html | 13 +++---- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/web_hackaton/presentation/PITCHME.md b/web_hackaton/presentation/PITCHME.md index be238aee03..ca27e52c81 100644 --- a/web_hackaton/presentation/PITCHME.md +++ b/web_hackaton/presentation/PITCHME.md @@ -13,26 +13,25 @@ Разделитесь на группы по **3** #HSLIDE -- Реализуйте сервер для **чата** (как в лекции 4) +- Реализуйте сервер для **чата** - Реализуйте как можно больше фич (следующий слайд) Подумайте, за какие фичи стоит взяться, а какие вам не под силу -- 20.20 - заканчиваем реализацию и показываете нам **список фичей** и ссылку на сервер, по которой мы можем получить ваш **index.html** +- 20.30 - заканчиваем реализацию и показываете нам **список фичей** и ссылку на сервер, по которой мы можем получить ваш **index.html** - группы с наибольшим количеством фичей показывают свой сервис #HSLIDE **Features:** -1. chat/login, chat/say, chat/chat - 5p -1. chat/logout - 3p -1. save history to file on server - 3p +1. chat/say, chat/chat, chat/logout - 4p +1. save history to file on server - 2p 1. message timestamp - 2p -1. different colors for name and timestamp - 3p -1. hrefs highlighting - 3p -1. anti-spam - 3p -1. pretty frontend - 3p -1. test coverage 50% 2p -1. test coverage 80% 4p -1. authentication back - 5 -1. authentication front - 4 +1. different colors for name and timestamp - 2p +1. hrefs highlighting - 2p +1. anti-spam - 2p +1. pretty frontend - 2p +1. test fixes - 2p +1. deploy to aws - 3p +1. self with server startup inside - 3p +1. authentication - 3p #HSLIDE ## Chat REST API. Login @@ -46,7 +45,7 @@ login: Response: Success code: 200 Fail code: - 400 - Already logined + 400 - Already logged in 400 - Too long name (longer than 30 symbols) ``` @@ -81,15 +80,13 @@ say: Protocol: HTTP Path: chat/say Method: POST - PathParam: name Body: - msg="my message" + name=my_name&msg=my message Host: {IP}:8080 Response: Success code: 200 Fail code: - 401 - Not logined - 400 - Too long message (longer than 140 symbols) + 401 - Not logged in ``` #HSLIDE @@ -99,7 +96,8 @@ logout: Protocol: HTTP Path: chat/logout Method: POST - PathParam: name + Body: + name=my_name Host: {IP}:8080 Response: Success code: 200 diff --git a/web_hackaton/src/main/resources/static/index.html b/web_hackaton/src/main/resources/static/index.html index ac9177fa0f..9f45b9f5db 100644 --- a/web_hackaton/src/main/resources/static/index.html +++ b/web_hackaton/src/main/resources/static/index.html @@ -1,5 +1,5 @@ @@ -97,9 +97,9 @@ var settings = { "method": "POST", "crossDomain": true, - "url": "http://" + host + ":" + port + "/chat/say?"+name, - "data": msg - } + "url": "http://" + host + ":" + port + "/chat/say", + "data": "name=" + name + "&msg=" + msg + }; $.ajax(settings).done(function(response) { $('#msgform').trigger("reset"); @@ -118,8 +118,9 @@ var settings = { "method": "POST", "crossDomain": true, - "url": "http://" + host + ":" + port + "/chat/login?"+name, - } + "url": "http://" + host + ":" + port + "/chat/login", + "data": "name=" + name + }; $.ajax(settings).done(function(response) { loadHistory(); From 4fb9d6b9ccb6fca89d1700a552b5df4ec2602833 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 1 Nov 2017 18:04:16 +0300 Subject: [PATCH 024/245] web_hackaton presentation --- web_hackaton/presentation/PITCHME.md | 1 + web_hackaton/src/main/java/ru/atom/chat/ChatController.java | 6 ++++-- web_hackaton/src/main/resources/static/index.html | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/web_hackaton/presentation/PITCHME.md b/web_hackaton/presentation/PITCHME.md index ca27e52c81..06bf2becfd 100644 --- a/web_hackaton/presentation/PITCHME.md +++ b/web_hackaton/presentation/PITCHME.md @@ -27,6 +27,7 @@ 1. different colors for name and timestamp - 2p 1. hrefs highlighting - 2p 1. anti-spam - 2p +1. anti-injection - 2p 1. pretty frontend - 2p 1. test fixes - 2p 1. deploy to aws - 3p diff --git a/web_hackaton/src/main/java/ru/atom/chat/ChatController.java b/web_hackaton/src/main/java/ru/atom/chat/ChatController.java index 3785ba7eca..4d9045fa91 100644 --- a/web_hackaton/src/main/java/ru/atom/chat/ChatController.java +++ b/web_hackaton/src/main/java/ru/atom/chat/ChatController.java @@ -11,9 +11,11 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseStatus; +import java.util.Deque; import java.util.HashSet; import java.util.Queue; import java.util.Set; +import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.stream.Collectors; @@ -22,7 +24,7 @@ public class ChatController { private static final Logger log = LogManager.getLogger(ChatController.class); - private Queue messages = new ConcurrentLinkedQueue<>(); + private Deque messages = new ConcurrentLinkedDeque<>(); private Set online = new HashSet<>(); /** @@ -40,7 +42,7 @@ public ResponseEntity login(@RequestParam("name") String name) { if (!online.add(name)) { return new ResponseEntity<>("Already logged in", HttpStatus.BAD_REQUEST); } - messages.add("[" + name + "] is online"); + messages.addFirst("[" + name + "] is online"); log.info(name + " logged in"); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/web_hackaton/src/main/resources/static/index.html b/web_hackaton/src/main/resources/static/index.html index 9f45b9f5db..fbcb2dfd7f 100644 --- a/web_hackaton/src/main/resources/static/index.html +++ b/web_hackaton/src/main/resources/static/index.html @@ -86,7 +86,7 @@ console.log(jqXHR.status + " " + jqXHR.statusText + ". " + jqXHR.responseText); }); } -setInterval(loadHistory, 1000); +//setInterval(loadHistory, 1000); @@ -8,6 +8,7 @@ :root { background: #336666; } + .chat { background: #99CCCC; font-family: "Courier New", Courier, monospace; @@ -15,25 +16,31 @@ margin: 0 0 1em; overflow: auto; } + .form { height: 85%; } + .msginput { width: 80%; } + .sendbutton { width: 15%; } + #header { background: #336666; padding: 10px; padding-bottom: 0; } + #body { padding: 10px; padding-top: 0; padding-bottom: 30px; /* Height of the footer */ } + #footer { padding: 10px; position: absolute; @@ -65,54 +72,61 @@ \ No newline at end of file From 8e8f639e5edd4d558690f8968fc3b275216bae07 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Sat, 11 Nov 2017 16:51:51 +0300 Subject: [PATCH 043/245] lecture07 practice fix --- lecture07/Dockerfile | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 lecture07/Dockerfile diff --git a/lecture07/Dockerfile b/lecture07/Dockerfile new file mode 100644 index 0000000000..324fb0fc40 --- /dev/null +++ b/lecture07/Dockerfile @@ -0,0 +1,4 @@ +FROM openjdk:8-jre-alpine +COPY build/libs/web_hackaton-1.0-SNAPSHOT.jar /services/chat.jar +EXPOSE 8080 +CMD ["java", "-jar", "/services/chat.jar"] \ No newline at end of file From 10e3dcbcacbf2858bc22f4869494ecb831e23d90 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Sat, 11 Nov 2017 18:00:47 +0300 Subject: [PATCH 044/245] lecture07 presentation fix --- lecture07/presentation/PITCHME.md | 96 ++++++++++++++++--------------- 1 file changed, 51 insertions(+), 45 deletions(-) diff --git a/lecture07/presentation/PITCHME.md b/lecture07/presentation/PITCHME.md index 6d6f337359..0a7b850c2a 100644 --- a/lecture07/presentation/PITCHME.md +++ b/lecture07/presentation/PITCHME.md @@ -19,18 +19,18 @@ Refresh gradle project ## Agenda 1. Intro 1. What is ORM? +1. Hibernate example 1. Hibernate theory 1. Hibernate session -1. Hibernate example 1. Hibernate practice #HSLIDE ## Agenda 1. **[Intro]** 1. What is ORM? +1. Hibernate example 1. Hibernate theory 1. Hibernate session -1. Hibernate example 1. Hibernate practice #HSLIDE @@ -77,10 +77,10 @@ Based on JDBC ‘under the hood’ #HSLIDE ## Agenda 1. Intro +1. Hibernate example 1. **[What is ORM?]** 1. Hibernate theory 1. Hibernate session -1. Hibernate example 1. Hibernate practice #HSLIDE @@ -119,9 +119,39 @@ Hibernate is very popular. It is required to apply 70% of Java positions ## Agenda 1. Intro 1. What is ORM? -1. **[Hibernate theory]** +1. **[Hibernate example]** +1. Hibernate theory 1. Hibernate session +1. Hibernate practice + + +#HSLIDE +### Magic +Spring boot + Hibernate uses a lot of instrumentation (magic) +**Wanna see some magic?** + +#HSLIDE +### Good old chat +We now rewrite chat persistence from **JDBC** to **Hibernate** +@see ru/atom/lecture07/server + +#HSLIDE +### Service layer +We introduce **service layer** (ChatService.java) in order to encapsulate business logic. +Service layer implements business logic using DAO and providing guaranties, that resource level expect. +This is simple and popular web services architecture + +#### Overall scheme now looks like this: +**Resource <--> Service <--> DAO <--> db** + + +#HSLIDE +## Agenda +1. Intro +1. What is ORM? 1. Hibernate example +1. **[Hibernate theory]** +1. Hibernate session 1. Hibernate practice #HSLIDE @@ -150,9 +180,9 @@ How to make object managed by hibernate? - via **Session** ## Agenda 1. Intro 1. What is ORM? +1. Hibernate example 1. Hibernate theory 1. **[Hibernate session]** -1. Hibernate example 1. Hibernate practice #HSLIDE @@ -207,27 +237,7 @@ We will use **session-per-thread** strategy (configurable by hibernate) Let's look how it works... #HSLIDE -## Agenda -1. Intro -1. What is ORM? -1. Hibernate theory -1. Hibernate session -1. **[Hibernate example]** -1. Hibernate practice - -#HSLIDE -### Good old chat -We now rewrite chat persistence from **JDBC** to **Hibernate** -@see ru/atom/lecture07/server - -#HSLIDE -### Service layer -We introduce **service layer** (ChatService.java) in order to encapsulate business logic. -Service layer implements business logic using DAO and providing guaranties, that resource level expect. -This is simple and popular web services architecture - -#### Overall scheme now looks like this: -**Resource <--> Service <--> DAO <--> db** +### Back to example #HSLIDE ### Plug in hibernate @@ -237,14 +247,14 @@ We plug in hibernate as library within **build.gradle** (as usual) ### Hibernate configuration Persistence configuration contain two main parts: 1. Mapping definition (how **Classes** will be mapped to **Relations**) -1. Hibernate config (hibernate settings) +1. Hibernate config (you can do it in **application.properties**) #HSLIDE ### application.properties application.properties must be placed in **CLASS_PATH** of project (for example in **resources** directory). -It describes settings required for hibernate (and mapping references) +You can configure hibernate there -Those options, provided in **resources/application.properties** are essential to understand +Hibernate options, provided in **resources/application.properties** are essential to understand @see resources/application.properties #HSLIDE @@ -277,12 +287,18 @@ Hibernate has API for constructing queries in object-oriented manner Alas, elegant Criteria API is deprecated in hibernate 5.2+ in favour of verbose JPA Criteria API @see UserDao.getAll() +#HSLIDE +### Transactions +What is transaction? +What is ACID? + #HSLIDE ### Hibernate transactions -Nothing will happen in hibernate without **transaction** +Hibernate support **transactions** One can use any transaction implementation (JTA provider) or use **Transaction **interface available from **Session** -@see ru/atom/lecture07/server/dao/MessageDao.java +We will use @Transactional from JTA +@see ru/atom/lecture07/server/service/ChatService.java #HSLIDE ### References @@ -293,9 +309,9 @@ or use **Transaction **interface available from **Session** ## Agenda 1. Intro 1. What is ORM? +1. Hibernate example 1. Hibernate theory 1. Hibernate session -1. Hibernate example 1. **[Hibernate practice]** #HSLIDE @@ -308,24 +324,14 @@ Implement chat server with persistence via **hibernate** **@see ru/atom/lecture07/** -#HSLIDE -### Practice note -**Note:** We disabled automatic chat refresh to avoid error spam into console -Enable it if you wand by uncommenting -```js -//setInterval(loadHistory, 1000); -``` -in **index.html** #HSLIDE ### Practice hints 1. update schema ```bash -> psql -h wtfis.ru -U atom0 -a -d chatdb_atom0 -f lecture07/src/main/resources/sql/schema/chat-schema.sql +> psql -h http://34.229.108.81/ -U atom0 -a -d atom0 -f lecture07/src/main/resources/sql/schema/chat-schema.sql ``` -1. Change user and password in **applicatin.properties** -1. Un-ignore **UserDaoTest** and **MessageDaoTest** -1. Annotate **Message.java** to make it **Entity** class +1. Change user and password in **application.properties** 1. Implement methods in **ChatService**, add new if necessary 1. Implement methods in **MessageDao** and **UserDao**, add new if necessary @@ -349,7 +355,7 @@ in **index.html** 1. Hibernate configuration matters - understand what every line mean in **applicaiton.properties** 1. **Session is not thread safe** - one must use hibernate session from single thread 1. Session lifespan is configurable (by hibernate) -1. Hibernate will not work without **transactions** +1. Hibernate support **transactions** 1. Transactions lifespan is configurable (by application) #HSLIDE From 897f104d1d15f40a7bad69433a0b2c055d797917 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Sat, 11 Nov 2017 19:42:16 +0300 Subject: [PATCH 045/245] fix --- lecture07/src/main/resources/application.properties | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lecture07/src/main/resources/application.properties b/lecture07/src/main/resources/application.properties index 5e0085c043..50433a1036 100644 --- a/lecture07/src/main/resources/application.properties +++ b/lecture07/src/main/resources/application.properties @@ -24,7 +24,4 @@ spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false # schema will be automatically updated accordingly to java entities found in # the project spring.jpa.hibernate.ddl-auto = validate - - - - +spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect From 1fa1b9dff946bcd7ca7e856dd5be373c83008be3 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Tue, 14 Nov 2017 20:08:29 +0300 Subject: [PATCH 046/245] app properties fix --- lecture07/src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lecture07/src/main/resources/application.properties b/lecture07/src/main/resources/application.properties index 50433a1036..648968e0af 100644 --- a/lecture07/src/main/resources/application.properties +++ b/lecture07/src/main/resources/application.properties @@ -23,5 +23,5 @@ spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults = false # Hibernate ddl auto (create, create-drop, update): with "update" the database # schema will be automatically updated accordingly to java entities found in # the project -spring.jpa.hibernate.ddl-auto = validate +spring.jpa.hibernate.ddl-auto = create spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect From 68e4122d89549c27b960264fc836f203f02ae994 Mon Sep 17 00:00:00 2001 From: "a.pomosov" Date: Wed, 15 Nov 2017 13:21:03 +0300 Subject: [PATCH 047/245] settings.gradle --- settings.gradle | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/settings.gradle b/settings.gradle index ac6ed0888a..d3f58a12e6 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,3 +1,9 @@ rootProject.name = 'atom' +include 'lecture01' +include 'lecture02' +include 'lecture03' +include 'lecture04' +include 'lecture05' include 'lecture06' include 'lecture07' +include 'web_hackaton' From ed7be4a50c918cc19af2c3014d807900b52e4473 Mon Sep 17 00:00:00 2001 From: rybalkinsd Date: Fri, 12 May 2017 14:16:50 +0300 Subject: [PATCH 048/245] issue #467 - gc improvement - fixed concurrent modification --- bomberman/frontend/src/main/webapp/js/GameEngine.js | 11 ++++++----- bomberman/frontend/src/main/webapp/js/Tile.js | 6 ------ 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/bomberman/frontend/src/main/webapp/js/GameEngine.js b/bomberman/frontend/src/main/webapp/js/GameEngine.js index c030ec8740..1f838f2799 100644 --- a/bomberman/frontend/src/main/webapp/js/GameEngine.js +++ b/bomberman/frontend/src/main/webapp/js/GameEngine.js @@ -207,12 +207,13 @@ GameEngine = Class.extend({ gc: function(survivors) { [this.players, this.tiles, this.bombs, this.bonuses].forEach(function (it) { - it.forEach(function(item, index, arr) { - if (!survivors.has(item.id)) { - item.remove(); - arr.splice(index, 1); + var i = it.length; + while (i--) { + if (!survivors.has(it[i].id)) { + it[i].remove(); + it.splice(i, 1); } - }); + } }); } diff --git a/bomberman/frontend/src/main/webapp/js/Tile.js b/bomberman/frontend/src/main/webapp/js/Tile.js index 91ef67d226..b0e0f2a6aa 100644 --- a/bomberman/frontend/src/main/webapp/js/Tile.js +++ b/bomberman/frontend/src/main/webapp/js/Tile.js @@ -44,11 +44,5 @@ Tile = Entity.extend({ remove: function() { gGameEngine.stage.removeChild(this.bmp); - for (var i = 0; i < gGameEngine.tiles.length; i++) { - var tile = gGameEngine.tiles[i]; - if (this == tile) { - gGameEngine.tiles.splice(i, 1); - } - } } }); \ No newline at end of file From 457f615f904fd914d76d2789dc96f8e2eb8196d3 Mon Sep 17 00:00:00 2001 From: gammaker Date: Sun, 14 May 2017 23:19:25 +0300 Subject: [PATCH 049/245] Optimized images --- .../frontend/src/main/webapp/img/betty.png | Bin 70052 -> 6581 bytes .../frontend/src/main/webapp/img/betty2.png | Bin 64949 -> 6628 bytes .../frontend/src/main/webapp/img/bomb.png | Bin 66137 -> 2520 bytes .../src/main/webapp/img/bomberman.png | Bin 62545 -> 4290 bytes .../frontend/src/main/webapp/img/bonuses.png | Bin 60999 -> 2524 bytes .../frontend/src/main/webapp/img/fire.png | Bin 62044 -> 7768 bytes .../frontend/src/main/webapp/img/george.png | Bin 68071 -> 6142 bytes .../src/main/webapp/img/rpg_character.png | Bin 14907 -> 11185 bytes .../src/main/webapp/img/tile_grass.png | Bin 50477 -> 455 bytes .../src/main/webapp/img/tile_wall.png | Bin 58042 -> 2461 bytes .../src/main/webapp/img/tile_wood.png | Bin 55180 -> 2500 bytes 11 files changed, 0 insertions(+), 0 deletions(-) diff --git a/bomberman/frontend/src/main/webapp/img/betty.png b/bomberman/frontend/src/main/webapp/img/betty.png index b9932234ce45aa44457f9b2b1c3bdf44e99d169d..f62ae8b42d8536f30db138671005fae472be8617 100644 GIT binary patch literal 6581 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 HHsn75q^q79 literal 70052 zcmcfIb8sc!-zV^3V%xTDClk$$X5wUG+cqZF#I|kT*tRFOZEfcJd$7;$Q@ej`)pphC z{@h#VoPKxRs#~Y})g7uJCy4-y3kw1Qf*>vR^~dM2>$6=#Lw@d63N1=M4__QarInyR zH&1B8kk8LBwo>X2ARut4e;eq`n)mDHm-vq2YL1FF#*Qv}_C_EghBo>}#1dxqMlLq? z77oN>ikyeQ+6WL3Sbkf36;;>tv!Ak-WYQRwndg*?|iF>alB>MF-MR1%A;WLks~A@B22U_X}CH%oh`;!gI40ngo%I z@icU=&u+|P-l%Ow`CU3%Aan@0l#((zc`>i5%=9+zV6yJ>dM>#u*dio+f&|$v(kXP< z`*5DUfphB~pzShs)&u8Nuid$E_Q3b1UA1v??~x%0oIAVaTk|fO1wV22Sd*&)xL-~p z9{rY!j$za&TJ?iEij_+ODP5n2VDi*~igXMy0_7+2x*ca)t)e%l+8EDjaYIBJy9zj7 zOE`Gkt)kP>aEf{ndObQ&&Dc47@zLOkj^jI_JFvT6k2@{%?G%_>Qdz zKMIfhhh9~5o}0myr8n99Qbg~S*7zOO$&YfL8TPs*l@0v-l^nMt1wDY20+uP6cqW=s zE1`-&ulto{80Lp)Q)J8~2Ab=p&H%AE^1Emg(qM-pbR1Z@)jdb)y0KnInOYzAV(~7! zj_V)wcmRYwNVobphC%3DN4mimI8Jzr%PlCM_Osnd95ilUXNPpcDOpemh=3l|C+I+* zU1GFa?Cv0}I_3%p?Zj#N8&BFG#c};C5`QKZp$S!vd_SU7k4@NjenLhksgfX@XUJ3b zws$o!595soAl{`3t9xBM81f_)R7XrI8ee?GDX44pMVw(hT{1cJ%X+tyan}mwQwuL1&GIMQs~Qu__~Vyb9F4C zNinw`7gti#-{uT4>Ak$kYT|Q9-OARO!L%X%6=vTXeeZJ=x-B^Ajr0@H?z%Y|q{|(6 z;sh!qT}OrT3a!KTJhTP*n9c&6pHntE9ixtzLIn7HWVi||uNIsD-EoKTs(9LC_E+3A z1Py>;8G(LgL$s%=^UAYf`O0&TR7DeISr*aad%(3TW)hB)_eDn^w4r-u4N#J!f+%UwIp*GXypwU zv{*JfrBlfXMa|vJF9q)c+FrQ8VZ-@!fG{o&x$f0RGHeH*z4X^EgeoiQnbL@c+1{Z&BNz}@(@b^*rR+JjH;uH zINkL}cUhxUb2h);EoAJ~#o@KMm0C$^UaH*cmcj&^-f{W`nZnI}gA9C?Rzx0vt^Wz5 zoSH7zGqSJqp)9XX0UMdM6;I8MC|hZltrejEfn|)O*A4tdF&JyHmv=JSu(?pIVfchUm!wj#`1)(qOD7-ffEkPKYM?jf(ddExnsSl- zpROHdhG#=H>APa#>^y@AU57tOaV<=oCk8caDesdGkHPUpsXik+-#?Pr^}v|(kG)Uc znNX6Y5fY-E?4*uM_L+Dxu3!RhwxQr)EFz&0Ah*q%z0~68)YE(Ur&-LBr678~YjR2o zVVWj?JA?ZcoB0GkWYkm8Rar<=L4FQD=Y)}0z*x|8%#ZR5nWH7V`Q(uWdu)_RcX5s< zzoLI{0WcNyjRqxEs30*mQ{58pg0suhXtM36MjtA zIzKX_VhRicBBGXW6xWS;`YqJlxvO}q=cjIO;^)s|XT8)nN8Y-Ow5GXBX!N7CS0=5* zHmE@rD{o!$w^?GXBfNL?B^(_Dz06x@wohNOe4!?? zkF3`arRgejV70S+uG75V%G&bzOlpm*if0q@Jw2UM>Vfau>d%Una8SpIvvN87^Dm@F zlMd}jo50hQcl_m+`>*XRTvztF{b zZ6#{q9z-^j~jeYH0A z=1Q#gZrXS{#`i|pd`OEuajBSlA7k%a-8HgL`r~)XMOI~no;kKux6vh+hlli5zPA{epm7{V9vhFW8mvMlolkF%#3Ht(C2zn%F04i z;(2}K{qF+xv;9A9H2G{fARv6XRu)Q%pKDXERhQMqTCUFX!V(AhHr2^qw=0bU&l3-G zu8UkkhSA!!k;X=HDmk56>M$A4R6x^CGv8qN#|sx5hz&9I?>P>bvVj;W=F<%mxt>#^0BM3jr#EHM%%tj2IKn0Jh{=ymUumqp*Fe1s# zsqAUgN-er_5Ur3eK-NW}P>D57$iQrI65UA5yJCJvC1N7-hQd;sD}pz02s&trblCz% z&U^VlmVK9Ma3?TG+ii=X!$27GMvfYme54wkkm$e<~yXN5`*=i-ZTZ?m5@0`G}eN zs**zBYAIW5MFA^$C=&8;7sHx^QxSV&P#zmSf|UkN+cH5bhtU)dq1c2@tVqrTF5_LQ zp(IB{~q=Dos1d zidB(dTW3*%+cg=E*_F}xx;@0wvgx`DZiz`f`sT#kSyUw%W?tiEBUdv>BCnmt2uOl~ z_dL0%+lxWhcFMGM@JP_zFIFo>c4#yoiZrbUu4b)N;xfdqiKh7oI z8#G%%t$VD*cEu%8yS_soxKo~rFvDH+EcTGoL!tLyrHKu!cZ6eQYd!H%I=&l561T9_ zkw5znv9^&vvzEhOt(7}`htS4l+iyk7pGdg6YccZ2BI~m9SO!4?Rb6|)G2YH*!K>qi ztW8IEvMBUBJ(_=UwItN!4T#cHL*yH0l8vm{J`#a!&A{fx7ZIFR(-`C$Z8hE{or~~_ zKN@Q7tw6W`_AS@wkhR`2C~42w)IMckft}>!f9l~7?b;{CTZfjwPZBR-G}9c@dk%S z*|8%;%I0Dl1vf+p%yYqH#KA|ugCYfP=Ia0%PaIb|oIewI6jobNEFhwl4I{;gGLDlq#f}MJ_om)cs*b@%O zAd@S#RW=J=Gfyc69Cq3O38SfEc-#hZ_UL@tJ`;n|GWo=l`Mb%EF;cQ{5<`~2@?X?1 zA;85np7oQ)31-`P-9E}>ddRqbU3(lE#(?33m3IM0F0)pnh@WKN3+b3UofFXB$5ksw zlJ%8kpvJF9WjKp}P<7fT#o;0TNq53lLS%bi{wZdsYsl#=iLUED4lY|2T2Z@{GcTnF zxb>AvH6MsE@>ZOPNpO~!>90kxb17I#2&O&${f3>ZFOIfjlUXjQKi3-5h)UEh!E9#a zp4fO2Cxxm}iY{&c3hTN)p8Rx?$akP^PYS@sU7V6Ns74-SSKF|wp0FM96?0^Ao}6y% zv0ddq8L4RF25nDqW5)5fz-bZvUL1+ed!S}c(Szd}Pfw4Sc+R{L%%34(za;f!ndT-) zS%@x|9=3%pWB!10l&r`3qTSIf=J z9Xaie8}=azdQVCok6DFLqK6bo#Iszbr(CfeU>A4glKx6XR{n-7`0Rr z=3}H8&Eqd*t%&zAw?%)o(BU(|I6WjtR6Y3;5gL+lg?Lig0B$guFhRpG9n5tP7T_Yf zVs}3^(a4g}biQ-_lBmNQ>SJP!54|5t?O2#6Uv7bY|K^G@hb`G=J#o};WZ!4c!pHA~ zV*8^kBUd(Mlpl$>g|4Pdw!b*Q@Z}t0b959XI#JR|<<a@od6?h6?X z`Qn~;Pg^{`v3ZJ#5eW3Q#Nm(jTedjQqOybsJ$Yg8Zgh1PpA4Ixw7m^fZrkR7jqp#%f1dIP3RzY5_r%V^NtKSlTCvGs`iP zrir~ucVnHFs0lk9y`<-`EVE=siLd7$*rSYelq@Ww2dV!Wn8!m#mio{z0#5%xgRq>A za(9~Bp@T3$E9cf#F-UA70BH?_JldQV4(Yo~TRMttsO`1_7e=+(hY^dSgV^%xP1}v` zk^)iWA|3?GXv>zNSD{WOC?}(Tssbd3VP34{dvBrli5kamOk)_u19Pd*pZKJm^P*!< zBpf|THg?Qe6<)mvBT;%p5~~5|BjUh^)1|1y zAmlZ8ThSpX!&HV0Rdwx^$)j6znTB|T@1h`&qYZr}jh_e*b8{Rm=xr<#mL(Mj3Rr3> zT>P^`K6c-sAXjz55|p^$8k4lNWzQorO{9CMsGlYR(~*@*8F2fwq>cM*72 zG^p$XZ23e535=k(2@`zqy)1n=Uht{6NP*IB&O$A zMO7r6B0wEv7i-37-Jid+B%_t%#}JM%>dax~h3zqMF`VFr&~?LrTIb~K2Dfb-IUD5| zjz1vsBjiNcSU0RbahWR*h{lc7ElKm`LsleRD@;jgAO^BlYNXOS%CU9#ReYE93%aK-e6T}1QEh@%eChR+V)5nWQ>`%V%5iHwl zfx4x$Fst8`RcZ<>W0fttQ*#wGGXb>f*^tpFIQ;d9GUCC414+#XpH{~DHw+1iYY<(wnk7^{#i*I$3c?-mg9&c1H|G@DV zF=|Jt)P)?PzfvCdL>!(wOrOope&IjtvLWBbvq!$cO%PO+_k={tnhvQ7dL*>FLI5R3 z!j1eMuj-FX)Snx>$HVlyC{tI9QmqNa5}|uN{DndeIomJJ+1Y+^IPHBfYTWD{#|QphR89 zT!pM2B9N2VVHO}@N4sekbNJ}iedR7{!IIN}o5Mg{PYB8usTUd;hcCp$tu1egh?Y7F zT@f@zXrDuHX)^sPouAaGLuk)3Y@a?k{#`!bigL!8YzCLKeN=oUr)3H03f>A?2zi_K zJYaj;efv7O87T3Sqptyt@7I#U5~syyQh6&=3$|X%-c{_* z0mR@5%(#i@4PFkzW*Jg!OWhJpGuG2A&_}TlV!T=5~c%~8;#~+ z!Bz*J4jfk35)|!QXXjT9?=Moq}-=-m|5Ugvp34NP**6=o@$9@Sf>-PwzPJkF$Mpfa> zCIGKbj7jVqY&-*c=amH|&9ZRKXWWyl!$GN~~X{Q8N?*x?Ta6@h&EIzNsDWjtD zJ#h(z%pGMQQdd%H%M#CO>Wq|ImOx0{R<1mhWjbuL{zlsj>|ky%8XeA2Eu(g&dVYQb zbpvY=v$LpOd~pQFM`gO~sl2pFdC?r}>0t)3O_&D|K}U4k%GCtbKId2}A3`vTYq>jy z_}ZQWwaJ|CO$=YN0gQY=tA3peew;N#g3L=>J%0y%e~P>mPykzTi{c!ux%R8t?%17V zIzJZ*__<;40a;JsboMsZKy_PQZ%{B=_0&01F_T-@nA?6_z0c;1cj8Z=mV+l31i z)vy`yjVRo{akC22Vw*x@}OO5;-J18mU+vqvm4jQUPxvy zN=03(2KuL`ETAUP0x?@@O3eKk^z7kRyb1yO+!2XD>;Z?i{o1GBP^LiKe)T$ zF4SIh&+9fp?4Ydk6I=054It{)Emv$%h_b!%&t4^OG1Di+xqSpTcW*gZcglkur3o|* zfctpXv#0bQLahQA)f$1HII{AOemYL7PfT4xo2hYD(`4?#T{`@7L0$%_ZQf9os)|Hn zFkk4SsWI8x0*UWX0L}6gz%3LC^*2RTIMpaq`Mr1zk~UUl2hcX~_aN3O)B;JC^4IqM z#sd!hudT0GQu?{CNGE%*D|`x?^~-|0*g0Z9+6v#+UXc0*_sFOrnK%~8=JD@E=mSK{=}9Q_j6p ze+O#$l zQx3FPYSB9g%xH^&yAz_Ad_3}v$cS@s1&-}%Fln}R*;w@lPNI)EB=#)SHK@&rsH%ZF zGdbJ=ofeLOrzH(AZOLF<`8SwHKP@Bx*Z5{2U<(?KOfyAm5tT~w?L(}ac_XSt7LCXU z>Y0^12~G$VC~s^FjgmiCXLh1YL%oSKa~bt63kL1QDd`%;`+-?i6ts;7vx%m4`V}=_ zJ1qgXdObz3f_{R(9>DM;J%p=kK6=P(2+Z?aDtS((T=0O zHfS@IW@C(q%OId;B=+O_EEIqqC0QAoNd;D`l01(G)&lW^g)$f3qj>OENUtbI_!ijZ zvX1qHnkP#U?VB?eI{{O5K%ptW&N#POr3l=fd)#~%)D)mlSI0B|{W|`D1!5sk10muA}gk`W^3;6D%5+SZmlZ)PT!N3 zYowa0xkg2JVVvm<1$iSfDZJ`MRxjL1`5g2FOPqvJ6eH8$V+$l{=2C_p7hmo70JLuc z#2<|NslbC>n1ZAhbH&zLa6-dAYa(-tFSYeB2jDYM##*Mn*%U_=&k`PG`gb~~liSYxdu;B2qb`?brm-%Uuj<|AEVRf1)^ z4mMuO{PS+q4uEcE*K1k`rf+95JVQDNW@l}<@i^!>G~8uU1aIb{^OXJMSv+I!Eh;=w=t=JI6x8+c|ZNQ|Pi3cJo?|Ep?tcb$nRp4^f z;rbgVni&;zVtOa#C3IY5^ekJd!@n@j?a8Nx4y1a8Ini{Y>QQm5Mmb-ymsQ}TZ20}S zS}yedHX=|;9AQjf$TT zSHQ?QNfX*b;W~?ZQb`PzcUZV6b0^m1NW^>w-g$+x*0iwb4{Ywdl)m@LB1wYHj=C&m z+^$Q8c6N7*?*JiNqa@jeMcV0fenMK8E7dbXi+u6KQ^S<<^gDhRy^EfvF+RYO%GU~1zD>_${ex5Pn0^uQhje` zFwMa3FMS>LzAc1GTOuo5JS^nH)M<3M%RZ7A!vlR((E1MVxO^2KlwAa4Vijc&xqzgYizd!FE2YfsY_Ky_7oEqCb&iT#Dk5f*TKb z>$98Z%NBj9VuIJ&N^i5iRngNuwR!fhU{p~1U|o2P5mqodMN2r`UfCAl+&nH-1_B2c zR}Pz*8l4CXs`2ljmh<4$JDb1B7x`f76wMcEFO4i~O+RiZn>1y2j)XE(V#y2Ie#$q)@CYqMA$L-+4-c}z1@{(07QWY z@%zWNDm=#@9_+_wlqTjUY4WLgGa73!{mc9_GyxJ?(H^>wi@9%7)5kja7GAhD)0CR> zA57*>&Yq4mi=WGe__FkR?|AK}-$mQ+{!Wv38_G+Sy{E8Ohs)rSN=XkokBq&iD@S`m z2}2WFY(7~zls{Q)vPf1`lvNwUZvf+RVw@HWr|hrx&H;S>_g2nO{Y?;Ul)Lo!0_`{P zBZDm7Yi#K{glMW8SMBbU6Bm4z&COfeOwr+^7si@{nIoi(?}!TCVk&Rw?xywYxT}5N z+DI8h%}$N&7gk62XT3G?fCSM?79^}lwEM!L4bH$K>r>Xwsr1T$vf0kH?ro>oxW0+4w(kiSI`;1Sj%uK@-}8B;62@2r^yh))%`Ir$6L2^ zxUN~a=Z{~u(g`m2&d0Dwf=ye+7NKK$;;P@6ZUg{MUJU2A!uDptO6pCGJH**;9~UV# zhjLNu2(E{loC#1{ei(8j!u8x+o(+4J-fUfM19>SLbyhj+10JZIn*|F8p-6N?hSBza!{)1m8 zL2Grx6}a~U82}kX_xK1oMjNL`jt<~_&w4dLJxI*?JcI%(IdCU@Vw|Dvion(z8>2ly z;?3FN#S_F0pM!t<$n};lzNjb3z_kCd*~4uWw$NCZJA%o5l!ltW8T-$ld%1z7z&Al< z_o-kV&MvrRp6o_*yajUqMSJB(re`D5paMRYTg5!1=IN?LlSlXTIwSKKo{1y%3G(;7 z#;thFq$BQk_Kt}wOIe#io}&A{hzsThhK=hTzIx5LM1nVSd94P5gWJNhF8Ev>1zOMT zABC0kVXFsEifiFjH|-^QRErJ#8yS=Zj|`J?-djE-Ag-_>;Qk?0q(ay`ppOX0dA~dY z1OXE9r)PEffMMwB2NDx33cHY4gkKz6f=q-3!sW#l5K#CMaS@&2KIgk(>-q!JbTL*F$)(i_lKq~ z(cVt-*48iWpW64X|7)iX^o5mwUy|4470~P>f*ed$q|hEW%b0+Jh$uhogGbF6Y2C&Q zNstxO1v%)IsJrk1>FrG2IJMJe=R4Q)24wM&A6Bw)`sUwBEnR@eUE5dD@7c+=JWKI zE^&v7D>+lHe1JV9uXGu%^=k7+9Y~Hpx%0z&bpPq`ku(^v?L&UQ1Ak8yw@st)4h4CZVTq7_d#*^GHcU!Ip|ESbt`x|IEP>89IV+&fM0Y+n`_?Il^NDr z)14bX!{92T_id;Rd=MUYO?nW65?%Fh>e(OAAFgUIw|(cKTHjbB|6NEZjKuL?uH;mp zxPFUIugJsG%_1lx4(;}XmufC?;?S2ha%lCaT358_KlE3PJ(n$?`D>9Rh?D#7s-xU; zH%hZ#5SFvrYcAXW2Ee)rS!QY(=P6PBj+5};+;JfhS_LvFASv}=EC~;)aU|sY{N=mU zkV(#NB&laIO&dnQR`MW>t=^_Fze;LWyptc&7YmU}D6^aPVhe0ypMeUV%6h2oa&$zQ zpkb@P1l3J-yBBTN$Oa*0WQ8Lo2bg)z!3zduikr6T63ya>@`?=^LZ`r!u;C+koBSZy zdOVcf?831aF#UAxQeD?9gAnhd&K4$a`AK-KLeo0GxfT3xUfasPGY;7Cj-E!k$7lAs zg4??1aULV-I*u7veh69H*&ey^mZ9@6DZ1vsMRN(Wl|?1Rb*p)twS^xzv3*b>hMS4! zEv<^UfZl1G#30U!h_zG1wN%za{AiK`rr~S_6NDsp*;+a%buHg_n78=x;{s4t2FMsr z6i2#Eh$LsIy?<`va zj?HgR`JzyQW~vGf>%U;2MMSAP<7lULOKxxr=7|K?d=$r#y}ht#TS}%&UhQ)EbDj;d zNo0MS78nG~3ef0-Z8ZUpX^mFkS(6NmWyWU=Oy1;{MX=V5gtrwG35G#6m80o;Xi0FA zDI_L{ae1aQsbLJqtnj63r4yscdbq;MQOLQB6Tj*ps~abM)d@-<=}2>8EbRgq4E%KQ zpKD?55NwjU)c?|K#e}y>vRV2f*eiq2Zfu}3D4ZCVYdy{$Bhc* zDkx!5;TISZZbB1t5x;79xFWnU?@(XhAj8TrKFyPnTp+M6h*A83${?1MW5o6k__nf= z3BR(!1Xe~Ej9nIkMY$MQ^eew7qmkKRhgk)YrkK*8&x?O&#|e|^&u7+P?ERkQmsfDj zESxq7x`HoV>B_mtze*1lMAjWe9msq-UM`q;O?_m-tNfNhvvySQJ&*xf)r_N8xu06#ckWz47oq0FCC|U8 zmjUVVrmlZjjaQD3Mef3kZtWSYx6ZZvEQKS3U6A|}coRhOSWT56BQ;P{C4XRS*Rjmc zQ;psoKbz*hxEwy>a6ykl9PXM+c5^oD`IyP$pVh7Y}_)_B8v~=gV4#;*$R#M zll)2@6a=(Fs$|_FLJZ!*>oDexZ5G0-005Wc~f1?8ff z;r5~E{=ya)V$1zur2dHCTnx^o1=t}CC(EWpS_++vjAH6ix zku~FDl(V9={p(Pz8B-k%3 z5}?%16>)2M$c~rAy*hCtl+&+$HKRoq+~NPA5+~YmVIhDFD=Q_D3<0m}vC!okL+QxL zI`Hk`UfQo!HUamW(tqf~5GM-Y#l~52f}AnMn!o}Zm5>S~5YnD24CcRTBvZ&_l#vub z7L-4%0ACWJ7=CbbO0%wNu^48ks8P}oY0X_Pa9mjtmWA^8%<$hU2TD7TtM!C?u`FR3 z>+lISRb7n|_t>Jhc=v{osZZtM7f!c!5w^>U`ycj=aWDS9SH7w=iCPTIv1IZ8^RbhR z%PJ!vd0t)b=2$U~ZvBnjgz@WOxQGnU>>d}*o%vMeuKsvM5JLie z|E56S217;9&xcxBo_~F3(Bsq4BPom-0wFD_v8s*n9M;Q@Q5F& zwdgAOCCJ%JDZ@Bs5}C2my*`tlV{-Fb#gWw0$XEUT-)g0vzs1=isNk+4WtI`g2#Mbd z`|f9r9Cgb)K~%b`1$?GL5{qE>Z)00+@&mx{={ZyFv}zFdRes?9ps?gy96k`adH2&H;IW;qRP!(K~%EQI+b_U~@7lNi(_+pGM+CQvLn%4F%8Z?XwI z%PFk&553x*9u93z@=#|5?c6FP?@Lg(OM$cnlj&HQC8`t|$}q9L%@XoCg4+B<*&sIE<|qL612&0X24~Z{c#{lM8_x zOqc1ct~?s!q`8WhY1wdWxowl;P4e<+mxo#mZdV2Cob(|~UWJ*D@RWjiC^`sN0^8eo z*MkVPSav4A9;q=C=qKGm`R~4*uy(gb>RLeGYyV-g^WTik1g3EFiI`s#^STJ`{1gC9 zmGLzu>w<7MzBR9TFyyoQ?|^oROeL;81T+gGBq|FFzlw?@TzcF*u+eu4($Lzygh~#A z9}$({Ul7YcS^p2+E|BTQs+x=UNdIdDdoawnS)huTDN@T6;$xlZJNXP?l?kaO*^p=A zV857Zh7--K4aE%M_xc{`+0@U|VAmkd5F%(hj0ce`Qvo|SnV;HZmAKn0p&6p5JeFw< zhm%w$Uws656y+TiDO=6RS|KEW2e2OEq1@XPgOhMki)g8nf%{ydnq8_yDbaX|6#r0moCe3^XG8^cLWFw^>DjIZc{0s)0C`55&v z(;ufH>HBi2b*)}}-W4$+MC@<9bywuycc&xcL`WkEb$aQ9cIlU6U$pEr*y9()&A3#R zdr{iVXU3J4ZQ3ewtt(5>+N#q=8Lh^fmC!7d!U`H&pYayLGvc*hrI||GznKNllqt0t zt)w!m;n|ra%MeVCWIArwH5R?3rZ>Oo@?I6Xg<2QF;w6rtb-NoFNR0%gak&>;O$l}z ze?!QsgIAN6@GNT`4zlZ*w2RW79@Ex&bS5Mk36d4?Vl}zT$L`G#q1yI^3riz3g1w55 zR>@LdYwGhh@nR5S#f*6CpWkj5iyr~ovxK1|n2G|`07#8)7_2&LcTOw!jvi^3Q>^5# z%}|Pi*X*bHnPHe_ojqrkVj%QA`E%4r6tqr!ax>sG1f?B%N1~c6-?lN5^UxV3y)Y_^ zl$&ayFWFSwcEzoV-Ou58M=}h8w_Hx$YU%jcCiEiQB79?ZJ=bC{La6L;-cx0MwbY^^ z{MExOSSvf7Vjuy@eJyQu&LWd2R{81&Pa((BPzr%NPi2-nlrNDDm3_j=AB!y2m+d{w zjD{nMQQCIv!UX9 zfy2r-rwZWye*)`*qE?NX=6?XICk?OQfv@wu=(iI%*yGz6!j79TM^5)6Jf9SM&tD`! z!KXm;D@i@?E5zXdindoXMMeh2P}}FU-Mxv2AFBNvGJ9Nsi5J3F>oM{NlfQfZ!Bvh= zT)ps=rvDeNu4&+8$hGsQYyF3=wqKCBqkrluX;8cFf7R7vw*N_2YsmgxS08r&rK>l8 zM(38>hAuJI1j1DIE*KgGs!+&g_Bw@8(e`}Qn6hq0&R=}zBvUJU{w1q(5k=F+8kskx z3I_djF57hd-VFOc$1PSaim+X{`dhwEV=TD^*WFyqJ$MIu0L}l6N2i(p!ObMyLl3tg zmD`{^yeMrR$utB>uD<~J3wto8(SRM(v3H`(5rt)Sbuw zl|N}&qN+^(>ga0M)ZcEOY|GgDPgU0xQ1=&M|Ay%=eRuyn8+;|V?$l&C7!E$%YH5b5IK-0NNRpfWmV47Pm5=;0helkr} zHcJj5nIVmk%Rz+bvz0kd#^XV9via|<_Ua$2y_-sXhV#}Lyz3Qw>b%N0S6FqqvMHS7 z3!^)n=9;=M$MmX_0Sq*scP%etqSn|*00@04<-2tcUd8^-y4nzNhpE)g!N3Oo!)kn&9k$r$Ysiyqr@Ig=+t! znp3!w+Bd11Z_8!xkXDWMJJ<08TPLwD?#UxM?~Hu5gm$iQKK<7Xu@w(+?N#a(@|Cn3 z&)a+$4c_-!eG5gSla24vA}2aD)2qi}mgl5j`sj@AJjg}#)(MCJzo{LXUU1m2A5a7& zcu3KHwVx;Zo4n+{)W7mT?DlSvl_! z<*w;?$Z+}o`t3z!c){XPji6?RGm1P(Hb5KsGPGtD<}71oiA5$|wsroOc@O?!UV?^O zty8W&j})qS?fp{OqmlMG%{ynFXPbpnGZ|?rnc61)YkRFQ-bM&{aHp~Huaq<+Vh-u= z8n@C>DhtQ7Vf4eVYi$ZiLNv62953iMa)PwYabcc0jIwoOD$@IWwqM-tgX-OR=r;%H zbu9_thE~${9BZwMJKI$mOD?>jk)S{hw{$%nJf=4Wxi~s>rIYbz8Nvzrne-}UBBU7V z#-N6W+UD#pBzKm60M^j+1eBwS89qRW5DhYkqyd+LLnEWp_h#j1&kJTADfcEEcN|G? zuis&<7CcjoDm_Iro$jV@L4RHaT@S36|7F~V!upH0+sa4{?;1ISoB^i;lduk149#sU z$?4ef$NuF+Yw&wMvk#!N{G&RN%t34+KKRl~&=_R-IKXJ$9x^@mv7EB_&=zkUBrP)n>n z1@$|{=6jX20CV#y@r-=na1?B19fm&ITa><+a6u4_`naJv{oMtpX)N{75|K< zhaQV?RjiQj`#?(gmUVr8V;nCcoTcmp_6R>G+6@xfu4T$_c2Eyj;Z|k}%|3EY=;8+t ziFjcLY~3x25*7ZyzPM zBek)eql?m7)2Y`kSL=hP)5kv^OxY!Ez!rO0H~h~4Lob*Wkx?)Dnu{!uqu+gE1X^S6 z%BIbMzN85BuxtNjs4J8I#ZZO*8miOWe{ZO?_y3)twgW_e9>g1)+pW|67efuO=(G#G zqaG=Yt+->$NV&wofvlG!3(q){@2XiSLcz1Dy}SL$RWTWqOtNneeEHfkB7GuxltAQ0 zTUo93V7couBDnTJHg_q;51t~Z5^Mo>osV7R@n^!kNM*kkW0iKuy^gN2jzLSH?oY7$ z*N4$j!o{br5qi*kP%gzjpS-IqJU#0S^CVb601KZ)hkIkIw4|kQtXNy3X=uG`XER z+E*##21R9TWUPAmtmOn3R_=wytzUQz@5siZwC&}szf=HsH*Awy0d>Wp^&RrYH!Ad5 zm{JAec0-u`WLH(P1_j~^)4aQJHfOx#_F2^rX1`c98mChaOpCgG`4cSkHD2$jqz_}c zUAbm+fyzIumEEooAKYriKbELo1hUnABJ>{}#mP03=$A3?*b_eA%4}I%4PwJ~_&F)~ ziCTy4v}g!lO(-2F>ZlZft=k6!fK48m(*yU5t=#;oNh zoTd=h%;WEt@89&W^`0;9svvmmOi)ll34D{FN^0VL#no9i*RxqFpzkH&bLoqPlj*q< zKiE%Pdqiaa#j|_S6E|(c)ieneGx)uiEHg^-e=zsvVM%WL-*DwlciYNlGY2XwE2q@b zoWMpaD>E~5q*AjSQ*%Thx4Udm$<)kLsI06U$TpLz;2NHKC+ul5zj%muPFFzlmKECY#zn0U- z50&mtdMge(tdzcAuk|kS6vT8`ch<}DX<#I7tKYH1*9ls-P1|oD$oXRfU^mZUmEV}W zrE~~rU$AHTO?-Mg-mr6Qf6_ZtX60MBvwlx2aJ}!xnk^d)GGz&6Fgx-y%6;HgUmW_{ z?|J$>%o}2f`OBNil}ft}xbvHw1J*fD^t9b2h|G^&@k>tVE^gK~Is?w!yOU~c(J;Yx z`$o{*?zF_!wX?uyKDF`i(RZsdw!XgSG}NN_%qhFKYJI~==bgr(&t}eWUhSKFKM7^) z3g%wfrE(tno$+>DAiHv^wQmbtdjYp(Aut%Cbzk$@?;JS$dkiD2lkJL{KDqhbr{hY6D$D5Qv&aG62Tfy+6Aa39Y{iR{ z#rIq82ZegySl)Hl%=3S-k+!^x{FjaN)3MNy(lrK|Q)en-E5Z_Mk@Sb>f+z!Lkg;nq zQ{i6EzhaZHK04X=gAkdQJjsEJ*V0Xjy}$7Tr_LNcWc+;lVMc_9Mvzn=`u^D<Y=T zcqbjP_}VIZQ{W)cZ{L!D;~jIdcgvC;Hwktn$1QE;SY4{Rap8$F-gC0${M^wCuG;;9 z4{+8DVFB7agBhxE{5Qz)^pSCFzWmB_ldfUqhZeJksI(Eo*}z8HF7n{5;hE}{Ui@#M zhNN%HvqHb>X;ru{Q56BKiq`czNm>5;t`)p4=8x42Qs23ClwK%R5BVkXa@Yrt>}{8- z!3auAYD|86C-qWb(FT(Z(5J5YS2GOeto#nWu=rJSX36tz%%TwC+2S#=(#q1gqi&yhYih>=+W1; zp%1XDa9pm;lpoysi;#J%f#)KRYq#2zzIdFp5Znyr(iRDs*Gs9yXUqDCMy8v0?-~6GkY`FHbhsR6yj+dR3js!6-_ze<4|X6 zz#&Sc@-ZmdFHgZ`Me1CGQK>zn97s&Bb-%$yBALn+N$6WaJ88*M=(J>q1|t-}$8Br~ zV7*4RC%$IFJ;NW19k1LLfDhhtv$Jc^@*ju4R~JxfpA{m{jsQus;A<&n=z35LAar|b z{doAh{irYCU)Dm`uQmdAO0@#2=A0=k8eQ}R2Po#Zv1&;O(Yrnb_$oS%*k5etLGm-N zSlq9o@wNzAoSf5ytXtXyhxY*DY+7+ZuIY}FxW@`5!mu`FNb+oxM$F!fZm1!J24%#7 z%K92oj9}kTiNGAKo!cweiH|0ROQkoOP}7K>oG;**!Zmyo3(??(s|yRqS?4J?x>GSA z3UCJTkHDA9{s6~XlDjw|$i^+;xeA;}zs%-i{K8tnQI`*mg1)5TU6&Y_^1VqX$7E;3 z1hhO3FQ-ulK5juPdFo&H-D?rokzB$FOM3$(LaShI?6pd3*WtsCP1g4Crgp7cw6_ADjo(o<=zh zW`lE;n?au99cbh$!{HS8a6p5Wwl&64sPTUTD+?ApPE;{+%L0B6JhxbN+?AU5UuZ0@ z{lD=96&i;uGFMxyQU5x8!Q9EELHp~1-Lo6ZopRRfzIOE&{!bv%AE&C{&U|ze8~v`E z*nc;`2)m~9vGlM?OEPlXSqSnfjRqaj(lDFeS>RKPTMT2g;Kgn9`29{&azd4a%ivb* z<=po^*XUXoxLcCdsS&ylFpf5p+exB3+o3qzloMcV@klv5jELQJTFph${vdrEy;Hu| z$lgOu2+!+I1bz8Z$6~>B|GOS!)z%Ur#=<8vW{}SPcy`%%-8gBvp_G;{cjhk?!ZH3p z9#6pLYq3bp?g41(5PFOJvQa(rb;@&jpi7dJWB2x&fQf)dzyWR-39Hu8U9dW-c9op0 zkVWwGz~9DsIDTAjL1`($orV@>N#>-n0GcDEDQf|LPk_QE(Exc@*Jufso4Vn0#*7_9 zX6ptJA`Gj{>9<4K8-9|wr3%w&n4K^}ArWoH6$s8JK{+=E=k_OEnB)5ic)_#?fet0u)I;c2pm_lrh4P{Ai(LMaJlAF$%P$u!HW@MUISmsS zJBMaQWXMN{9>@CQyP`iP{#o(O-7xOmxx_MB2VoPgH)#OPM;|J)I@VN4dKvnx@7-^* zAS-X25P<@?f)#!0M^e4lxGeIOtPqiRSkP#wFaA(O^P3{aXamW`vkD90E?* ze*M|q{ngA=<#{S`6pu*;?eTNR#4sqaXw)(3Y9C6uG+`1tcz;wv>Ot`~f)DGR4-s;B z0wJCuQJ|4hNZ)>)>L3N%L8OPRt^oZ*jMxAZ9%%?>Kj3GZ>U5FPMzhAt(^R8eyGY+;+&{#D=v%E84_;4fkzaj_Syc#DAd-z4z1Ktm)ro zSE20D?Qrg{6^s3jY&g1U$Civ|_txA$eEJs5dOpA*?8snc;QS+vrPuC#ucRE~)Psml zOtk$Hz@5dH&w_Hf-27NE3gh&+_pvwnv*y=Q30{w4 zJNH)C$f{#c>h!>#d7grHSR9LacE|I|S&*a1Qo>_hejI{;w`p&0nMW6PN{c_-f`5M$ z?2_y0N3X=@cOCLF5C(*Gh)jH5;La3!=^kl1LsUI(d0l}NoSvTkk$DT5@Ipd9Ziw7h zu(7%4d!g7_fjz5Fv1!iB@|Pf?*;jh7ja8-`z4-|McZCh|?2*{x$L8Pg&P{J4pXoRy zu~MEHHN?*{U+M>g6+ezaAOq5{(zErRZ^R!%nF`o$+*J4ki%_qi=X4Vc$E{WU*QWZ&vwi$=s zz|KkQ$-w*wsr>|gr~`an|@x7co>O>4Vpb6Ki2*wtbJ3g>I+VPB|;aESg9;qZ3IF=qBZEq;34Lt}AERq&v#0VYwlEz(H6j{$SNW z#fEQ@_}i*nxDdA6-o#gLYi8I{^0~KTF>{v&9?2R{-;mf15RMy%dy;2$?s@tb8SSBi80y}HY%M0)a>o-X@tw89+ zcGh;(c)S=CZ5XTvSMMwAR%U_DK~QHT0Q&^$pvAzwxbKAooy>VFu>IU>R0u&Di3JBnmvf3c`M0wOl~SVbY@eyQFsS-unjD>#EHz>P(A}Ykj_kM z<3&vOxkJOp@f^BxQ2zeW)ejG*axe6yHawHtaD?49>uD0s;l#OJLr%=Q$8}f3MA+O0 zNv+G}D+DJ;;wnPqKRqO1XTgK$m$Dm z$r%swp<)5sR$`=9V9jS_bMqdL;)P6a}rTQFgg!J1~HQObOEDI zDeIJQNJX7(0?^eCi!_5=zsQ_cY^&UEqm*D=9TK8P_?^% zb?>!||Ez-lIoD6Qrm|xApo)`{FHc-}?B4z;&4UNCG#)=WwDHisoE?`Z+6*`Pr`-8{ zv&ZNr{q3i>*iG%8&2gb#rcEXAlcouqbzA@wq%bKy&P0mS!H{iSNuZd0EDcAJ2bPC& zBbKMBLE4a(;20hM2tBIUWlR|^F-<3KLsVHyo;T;^)NKTpd3B&(;W?2?)P>{sz{4g% zq`F9agVD8s6ot)KunojY7D*%DrBP8Qbk`$Khz|mC>pXPe8iu?L%FP86Vx*k9zBIg) z$c7Xs$W1wDCfte+yoDIEJLY0L(9MtJHa0fdGq7k%IV`grhLsc9a12JuNo2vyz_zbH z=-Ec$aFHN}GVP0)5D{ic0l-|d5R#3ie3dX54-W8R0NnJ(F8$z&2Dpe+M#9=K-c5v7 z8P$T$>M&@+XE6(;s{DSqt6+YOx2b4(ZS2}02il-9&FzIFE6*3YNdalMLE{y0VCGxub!=#8YSpyHVjkP?jIj^(a z<`IaYf%n@Bzn%h1_eQ}k3pwGkXpeX`$%By$zVR*KqR|gbFkM>_L z;n}58Y71Wj*wCgKFd6F`qE?J=$C|L<@|aoXsev#C$KTI|3ii$H2N;#xz@A7W!5v|Y zADI^CHadB{b)__t@<aD1 zrt%tp5X zw63oA7%n&4`g0?h8^(=&svw&EL%^}#)p+tB0?ro!3l7tb1_)!{kz700o}qUWc7yi| z(bT6@^v>R`a$8WAB!t`t+pA%gOXix1HZ%cpz|JNQLhl7JT`)XT@CPJF7lLb*mqyx8K~2=H8u2Os92JZ-VrCb72y{m1F6r zBRb8etWOWU`)x`k-;jRFH@>4vWMt-E8=BQqg&jfyW^>Rz>O$X*Rj^E&0e|qU&*kZ~ zWK^jlN&l*96pq%45ta}WJlx*_k>llW*r`L8OB0zp1$)`(8g&O1tV>sm!&02iRM3NVrd?KZHVR0c=;a3QS0*})l}3+~R&lB>XJ`r? z4UoxgT=m2g=-WRB)kS13xjIQMHaEw2t5hX3iJQP!pGPP9^XN)xU;N*PTb#zWycd-> z%gR(I6)va$1vgy6e+H=kIhP7+Zwfx@ zM56)c@F5|=O;=W|`t@@vHZSk}`CaRms;B<*MTfWYeda(jvbz!m{yS{5BB$pHnJ=r<)Pbt0A1yBrXra3T4JN)I=f-9%&^m zehuIggXS{jI2am`ASO(El=CxV5<^9-8<_7JcQvV~`^tr^T z$5#x^U7hu3lN1@W*C3gRhm!yl|2I2%%!#0Gq2Y-fnw1yM&{1M3Z(8bxW&Bz|W`53p zaa)k?;~V36XhV@`Zw>Mg^qI4E+pEbl{Q1Y4LscF6^fQpx!KSzwBpr}-t}Rob&t4h; zC(%XCDV@Mn4rim|8l9jWn_!Z)9z{y&JsO3n0}3p( z-+lrn9At)b{PE{Nt`e#L{axJ`N8qr}Miq&un`N_ZLwEO!o}A1#`%!OZJe}3xAA}C< z;}8_bBaMB0KbeY4^h28j?3`dKQirMc$RK~xN9Krqu5~T+dD~t2{E2s9 zR;yr>5z<_3t~D*N@pH7Lv>i@9AWH)URWB8Gd9P+C8}5aQvR zRIl)n);RBD4LGj$FENgeolziaxyR44`W3(uj>mJ@4)83ryeC_9le$A@u$Yr@??!T= zn%87mPfF|BreK3B=-IJC-%p8GhW!KB9)~0{r^LlaN_~&#q5f>lh$Eh$q6D?X!9A||b!iu}4E zCmx^deo4DRKK#BHmxDIO4NUH+uBY1TXxH#M4=-e`tFE!POIRl7erYF5zV9%<<^vd_@i?E7&a z*DkAL82SLm;7it?>k$TC>S-f3oa{ zTTmPwvIOI&@ej+X5XfI=pB`edvc<3Qh)3%=l9b&M~k5vMaFr>GfpgCj@H%uSv|K;xNo91 z=K#Pv@3o>x=-c|bb4r%k{887Vb#)n!SycavUuTcheBN#voamrg1#;}$OYMU9+qRu9 z%4nMvBs+Vea`X7~c%4$qQm(z~I5~%XWK0(GPB4!LpG0%QR!U_h6z#;%%1l}hfc^Bn zTIh%`s{X?xzkg0Y(aI6KQ5VehnYD&b%NvG3D?bk2L&i9s8}6iVJS^?(#}@n6o&U_^B-UkPQ$j`!7l) zZ(ws317MPQXu&WYI_~g@20CU?vydloU96_{DbyQM>_Qy{loiYJOe_y9>nN+h_XH;C z{S!PpCx(4to_pUp7vHDQA&`Z%?~A;edhrnt?PsDOI$G>&xITJcdHOn`c^?e-uESDI;(slhR7xY6t zc$kN)Q2}X&XJExM#uZ#_qF8`vc9VWE!I=0LMIF{RKle!4V=a3YvJ1ht{a_`QvO z71cfTTmVmFUPMd4HvSk)Ms__r+3YBN>pch;QCmTMd9fiWE=U3UHWAlAJqh=01&gXP z*S?-3MUQ$Nzs?s*V1=KH`^`QM&&t#_B`>)_T}{c|sD zM!(}s3<=!c-mfS6j2Q@s^e^w0#08;Ueb#s_it2Nwh)D`!bcr1_vs$)g5;V^4m+3ACjDZ9MgAwd!U1*=IJMW zur?vn!mK)9Q2SWR7Jdl#x$@QbWd!9}WfU1$IHx)sen(u-cFxPO#~oQn8js}T%=%?U zsvrNd5XUDsF4AYrjv-9Hr$){a^oHH_1L?VN3RXa+r*;7ImaIN~`zvR*;o^5PsqwP3 z`uuD=^*;5+5;8fMUS5~&4!AxU(}?NhjfP-GrWyrXy)%4Ja0)(fa-gFA*-VvjQQ^SM zY(re#Te}b&iz{}hA#Zfp zR;nOPS-F%Zu0HVU?Rs-<>Fx)`deP(^R~&1Bo#x5ZO#gd+6t{+xpNlM_GMyWK&3GOU zZD~NTa=&Rh9DY3~5@k@|p9OHyRhBAu?$NMF@Jq&*5^{27cwJ;c-6Es!Q5SjT(@%Tv zQuxtD=Y!C^sh~@h;9AUt^>4d0UWO&z$HnX$g;zC~u7AVV>PfJv9N^U#@8o+RGx+7F zE4GSsj0tZ^2P#&VDM$=BXG#4K4t3O5=_aP5Dnro<^~6^+LwG$H5~+bYnCQXMdRO89 zT82Hp2Q0>3O>fj-t&@i~@Y5n|VRp~-`Y9F4_50@ z$;X>-%zghlw@VB*Stx*?EGqv-n6my((DnM+3TbAr-Hi%*<4oP1BJ6ojy2Qka;yMN^ zC1fr1%OfuKwUwVrnWytnT|RG$LtVjN<(|?jJm-M5sMZ~0zv_Q9b-*r zrJI%`D&M=`Tw~;Y(PinxAzJ@qNS@JM+o^aM+Qq&n!A_W<`=fEO!vkKjQ=Jwgp!y?? zP_Z_xM0!^CHSv4vT8*Xv)gtD^c#!FC5Z|?TzlL6}Fsh=35BkZAwH+~&mKw8RnEky$ z)@PAHVoAd-Ym&q2&x6vhM0cKE#*!zs$6Yd|oN8}K}1$5xk@*qo%(fdl{ zh#4<2jg6k)KbO~tS%fgw~tTLLz^Z3*!-U z{WoO>E7AsZN2=0}%YTtNmWF#yObOd8W8u%l8D-$!FZc(nNnA)I7S=SRTNR2Pr5u#a zGnti7#OUzmn@VN8Mjv#xWjW8V;xY0SgR+i3SAWQ^jOWUD;%e^zmVq%vip0DE{*yjr z!NQ>eV(4uoN|w&A>`$&easQ^kXs^zJGulAKld?$Tmp-0Y+3%g=bi({ikNojh0)bop zoHE)-EFtiHIp}gD&i!kJXT09h;%D!4CYc=+J$HOL?3vu#j*4=GKOrtid`&#jG(5u@ z99-B%mOQ|ZlQE&d!fPdhi|&q=Y`|ek@U0 z2cU4ZCt4ag5qV=ysB6x;RE1q*sp2&U!5WE8=>Vo|7KU5gT|1HQ=EpqcSp+%D(Y2Jj zS7fr1{AkaUa6K`QB4t)PgKqWtlV2QXT^9fK@JK>@4|aCMZYU2rlz2xq>Q830Zfyy9 z3cKbZRcVyY{Uzc)S@u5*um4%(fmz-W!m4O-EE2I&QQevGEry7fI%k2h7eWC!lszPn#C$qO zAfAxo@oW?l>G%*dtT$1ja#UI@`6KiQlY`^rf=N+zcrMNQJH#Y;JDeJ*Z(>59kZd0Upf5;Z2v!!G0mEv)#hLFb|K%x9nBU&tFa) z86MWNof`$u5ay9J+2NPuQAC-^5kQ-Uelx0>@5(m78MX)nf;uD$Wxxv_**aGR2?XW{ zZnF!e@V@R1W}JyfZsXdx;$|YTPGyA*XS7P99D)cA*tu%|X`fi68ju*W^3c3Y#N}VeQ@~Iy!q-y`!-2Ydu&vK2Y z>$mw1yls4>!q~CDFjo5IUwQryzWmhMR)(x`QyEj55BR@3tvdAj>ACp@)^$%;tZ~uQ zwMYIkv$o8{q%2v({?H0uSvb#>To_ABii^7xXT6fGPE5hHhgE6jfx}kueD=glud_4a z8Xo6c5WwVwO*Uq#ceX1<47o0e=m?2D;%MR+u}#G6K<*T6k`iCpol6={XTu&Mf#l04 z%D7HIhF#z&{2636^!#L0bv8Io02~@zRo*CLm+Zj1fsSXbYSkYY*!V~xHB^}EvX7Oh z!}rh!fOtUJEUI;=(oogjDk5EG%PUySOc5J48}`r{Yy>63NM|76`Z> zPLgG6(fF~jQ3B6@gm4k8KjA}w1umQAK1ONp&5^cumD+EXGvUxSl3#%ovgh6)Cw9PT zoS{_Y#3UL^+H9&bMROVuPfmiP2r{*BS$Ywlse~OI&ALJbA4Say9h{dPeBrh_KT^*o zV#KQ`k|b@kBMU^4F}m8g4Z#_*NGNb)8r#|lnT zpBjp!65zn}-rZmhQ|Cr98&^P3Fru7*n5m0mxoT4UO$dBWhqV@jl@A^FaZvpoVeMb2 z!lV9XP5(Cge<^1fdzT(||KHqDjzrumh!^oSkF3@vSA2^i$LMS~5foR(jgLUfLp0X{LP_|9Aj2 zG}UGHM;f6koIRHzpeV(cf&OCv9}GjwW+&;)NG4IK5V9y}*;BE0Enc`|r#Y3io|AP_ z>02>Gs~n1yX2%uzT=9nYS6-kUqZR??c2YE;kkYN^TtU-@oTc|{Eib}2XMnaf`E(#m zdp4B16;{7`Xc0?S%o~SW3g__?<1~x${pi}ISuwS1C0^s?Jzt?jyPMDj9RZFOyuo&` z3~-gk3zkkKj{BoaO*hhq>P(cK=h~S`3nt{b*w~iOF(;&k^!pxuT<8(F1QbP@3%rCQG6UbK&_?UIiiAHX6Vo9YGNObvWCRKb|7z4O&T`ph7oz3!dcBP!RIy_ z^5PbA+&DE_+2Y`O{h_6j{n-3&Vg>L%69c%?h?zePr&4?IwivSCOj)QK!VhkHk5 zJ`@_6Di)0Qwu9RVo>?%OSXNL~*?f2Q6GNLL8=X|2z0FwC_^EMy9MGCWqH)Jv3p?^> zPXmQ?X$ug?^KpUs>_a|>nJVMO)2!OQ@b3OBCDOsUEr8|nM=r?%d8@f3mNk>WKAtrC z!oa`-XxX*&=XEN;hgYC*fRciJ9mUsm0!WZL^cS`YfV9CUC z@*kYxceAGZ{kfu0crdI}_!xf}R#;qJx)IDBp~vk?PX3blS@#Rtkz8_wbgGrl2c`Buq76e(9;sVf>zvCf{iv!dPPR=-{IDEu6WJ z8GDQRXe0Bu;05Dy5~ZW^IAR?3XTR)P%2^Np8fry+$GHiuxj#0)2&c;!Zq=So8sAXb zKEDW_TBIOr&ntZ0ficZwhl(BG#pD#srw)z{@!dZsb%a@M?ltaBy$k47u&|F3{{v&W z%$0GWBGH?J zgfa)Su@3C{g7;JY+pUs1g*5R*>~FaDFTxnc)=e^ITn)d#A^#?QMGHP{88Otx4>S+! z4bb&DuXG&}OFu^-33QI|(I2G(%`E2*CO5NE{Sp0R(zSal-}=Wf$1QiDVfLQkt4J;d`VJ*BpuPP?F)I6{6BArJFyrILbFYo!wc0lHe zQtEg~NA<6cJCkx1n)opn-h#4$LMoyQG1$%wY7=P6A35iuvn(tp$&7M5Eect5Jg&WREIq}n<>avF7I$=!K8|JGYl7m0M6pYlHk^RFo%KQP0Sv})O zQvI_br4v<`UXW&}WDc^+!9jKtw61sXa44A0*c=7SC%su1T~2bFh+JaZ`Z4;2$^0#T zc}YZ8meW7i+FD}xt8-A+y{j3M03Nhy$J~CwH$zsM?C}Gftrlt+4C#N zzdBUGIIA2Yo?^Q35u3mdP)7-8#6j3>O-9>G$H=9#F$&29F#NCW3h_08lAiDT2|ape zL_T#@KY>#R+eN?ItZfMH!7{(jC$Y)hnEccLlHZH!swWA{{bf^OX~O2mxmuse+gH;s zNh?7+6a@Ez(mPn}zcB3a6|GMZoIM+C@zt-iv7RdKyWZD+4FeVjL}cboH;Fm-t%EwF zpEJ9aB$3BOcT}9T1Ss}zka#S0wQ=1(nQU(?b*D`_&nk8&!@gXahSY$cC3QPtrkx*?tm>wM+IhHDCIol2>AnP!|lxQHAn7Ri+SPi&VfGQ$T8rC z@*avBV>Y&GNG-9j8@v~ux_hwBb$D8^HhI4RSRSar3MKRAocTeGhrs)bdjLi|sVxy0 znHPBc3-bS16aQ;v+|_LM@zlCJl-4g0VCMkU!pYh9JB~Cy?9%aLbOkfodJAxscPCd5p`eU)Q)dCo|m$`u+Ynr|%D%ms8!! zuiGi94oO4Z+^llSfm~%be3x3<#$UJ2(d#$=Y^H}xGL4(IlN&3^V6mv`1Y*=P&p?Th zAMvA-2-cugHY`H-H#zcpM(%Y=4X;|Kk!tcOF&E*0eqgO5Mt{*qK=jyL{7@IhqeGxZyze~cWM zJyGFBk9vXnHsRBxhrlG>Z7!}5b|r3D60o=}X&KF;V>!L}!~d>&!GHg^9O>V@`BN;ki0D(PUcM3z zm^r!RYhGQjA?e=c6Gt-%1V-6>MIbNfjpPG63DqIj&?_Jnhw?{d?J7sKDh#s9ea}WPNM~9?V_`8m zj&+`DG4Sj?wm-djSTSbuq{1(+Q-&WX@-A!vcObzwD<^=`O#$yqNBX2s6rA{}QJke1 z(hePJpRNx%&kwEIrt;>|_qCG<^z#^bV6+G?zb>3qdGmPRmIjQDs^lp6^+Khn>yn&5 z6~a+@^8n+C$WbaNC)nm@bcC}GqSS`KZDWlCDr%auvt4_tZLdw%w7 z7Q2bK9!H)pbI=t+%WHuc(D-7Z+fat|ke}gm^>tVM&KA!RZK_@Fyezzq*i+f59ugX7hxss=yvmOFO5R49IocZ=y9Nz;b5fDc&$ zG+m@sMK7W!ohGERbJmX~oKeF1<*E^M6SV3^n^_|=d(LHAKQZI>WtAwoFT zMTFrbDXF{e&IC-U^6UZ;Dku5?>KmKdaH%;AEVj6?GA4BgEnaF)zM;cHA)`Sv^xp)* zMyZBbqx%|Q&2p9RtJ?0rgv6R>f3v24oBb!oNOxB6)6@9T+(Nki{P%S`4p#nH7#4Qu z+bI*%Fy8FSkDhO;-n{LIf8+kkd+Jc@Xmpo})HHi=kT5d*KH}@@`CSF$;`8$W+jZNZ zgDNh_%1s1(D&Mh9NqTYRT#9WXsFWtD{_YZE?>=>Y5@q!eofkiD`#^rqG+m`rQNDPD z&XW(9jU|OFGZ~3YlG3Qevuf@fRRmAhKEOE`&UUOax(EKYEC}82{Wfg*xkjcQ8&`D< z!|g=<`KzX}5`uA%b6;vm@k3v~ka$uL`t`N5MJAvn*FhkZ4myIyy#GM?Iw3u+6)dQ(X49pKo@&Mu_9s9^aERm5ay6FMDJ(%jFL3~o zk{^df@?Hk}dw+3v()Q2`$2&k#9OLMoH`hoyRFEmTTc=(ZA1Uq&*(9gp^ALd$x`oD{ z???_2k@Oi(vnJCm1}s?xPT)%7zl}RN|y?)4iqj_J!wix zcEECQ?CWhLgn4Po%hUucP07lCj}p91AWgEE15O*rQax4aG1x$gx7b45iq`wJtAEWTm+1x*c4-Cs;wo;)gXmz-uQuxnB|A zE@O&RzKjM|mZe21yA?sP@ZZkk|MuqfPV}{wGp4Km*h*I62l*F%2x0$inZJ>s!p~r( z3P0;Lejw5i3tbkQR;>8+LE}y3+8YNdYu;4$ILMr!R^ys* zc2)bfLK|bb&wS-zVB9(}%*x*0Hc6&v@5Zi+#Eq;EWj2<6y7+#r?G}-_0CJW@BI&IO zT7E^7AZRa4??QTxHa%0hfG-)$RaOuUNVRhPfZr8H7d^!Ra`D69{Z^{r*F|QApc-zm z5T}Z8MIG0jK)SLI0wU`iboz-K=R0CwVwox18~cP*koTxBp+TH9oH1C z?_QCd*(g$-r%@rr*QVU>8oaCFQIpbEuEfM|2g}M0=_4xrpP3ZjI^F|uF+&rv<+4ed z7CzM9s2&f0Gl>RIusWpAu`jKr%;}-@-;lCkD;SbA3#{ds)_uUIv&jFnoah3nM!6 zd9dk%%ONgStn?(iBE)OCiR3MZS@Iz#P27A&F1E`Q|5h+{^;u zEF9+#jSRux_C>u<%2UnKXH+c}bEszi7ZBUl{SCbRw^{$Ok-4qW_}bh;{9iY+3vPdH zWM3{C{{_S-*UsBE+4=3qH+L>eR)b`>Z_{iM43n}y^>SR-A$I?SVE_{x?Ag6+?fPsv zN1|neLLvr3k2!WCnM>KET=^-spAc~%c9#U%TYwH0OOrzWv>@a@>fvK1wT4ve4^m}8 z_<9a~gn!`Y5354Z!b{SB+)FKnsj?urKH@-5t3{R3e-+}}Kq{#yo|xw>UZ_e_N+AVO zVyKip_F2(1a5J$6&%ouO9W6of-9wQ8%Z;y=enoVMEySO?1S%EHiLr6kUjQqxqBBiM zqG1)NWSs`)hHAiJTR`Ge@Sj`l}U7UvcX^H|7i^K|`Nfg@aR9?9Q5fD(I-rXn1#OU+R*B7C#njd-3$m_M7V4E+zdk^V?x{ zb=^b_t3xX~(@%6RV<20aU%V)3tiKfh1o1U=egalaIHmCS@T7N6Nh!glhezbv_1?Rc zqzdl2>j#8@Tr~GG5(1HUPo3w-Sv^AI;@P&j@-wE#``-;ut9U@1{D~JQDs)-rNQ77j z+bj28R+Fg~Q(sV|FfUT>65O^;QD|Q_k(Um9I252Np_<%nJL^SYR+l;$e(f}%6( z&uZ0rZ^vWiKpP{Y5qxhiQGMO#xJKn1ZXjtrV);_~?;SiA$)RPA8Lt(2jRYf1Q~ezu zm8D%UJ$_pO!_x^bQyLgu2>?jMg@>F+O4wL$(=|-#Gz&Y(iOO84B7vZg6LC^9)RLqe zr(DAASxKkZwaFV{aQTL|GAsEPPJ<$^ctB!E&JaxlX^;YC5kkvaUUqlhA#)6yaQ0*E zaIjw>jy5J5b_BKAPZh-iXK^K_T+ys&WGUBEtD(wklp!%tL z)pB98o;)p7ozXDHn^x_fCzc(AnUUw)pfWU6BV;g`iIH~@aRKOX{i}Z##&NvVt~^W} z6pUfdP?bU{T)zCWDxr&nPpMjdv-Y0Kt`^TizzxX0=Aj$$ULYL%iU~eYCT*9CA|aS^)h?zB9?aqk)q8d*9J(<&$);#1~?+v)JA$#4Av8cr-!J*?y+bo^j-j( z4cE~aM<4VigS&kxG|@ETx&m|D1+d67rwc^q05X0Ln5?yw5vzd8lU;Mb8QW_Lb4xx) zJxxUrYwxvD=xJRx_&28d&#do)lp4Q81vvU9~hFRyftkSuik)EEOVUmw_lNa)_*hy(0*mui2W)kXw zpf7o2CTKD{!{#8Zu?vQ(vrJp*htH=Kw=BBq_i1tH0_F`=i|C^M*OcE@EUf!Y_cM0O z`}mRU!OB10&vYfnC}s{sF32qy*=O7zWmQKEb6vaUYeJFJx9yX=eq3n48^a_^Ry`g* zWAY51p@z3fc^l(f#2BSL^xq$5u|siSr6{*YOUt+~l(C(EIPv7>y>kx&PaWul+pcTt zfx4>i+7?#2`z_{ZxG})zM*KhQy>(DsPuC@Uad!D3Kq?~ZXfnit25w(qLA ziA-66;8iFJutPu_!$x>ro?ICu5$}b3mtEFwlwC{gV;5at=I!mTLH8z?-5?;0gMR9+ zuB)xx-wHK@7}`lL>*lzS%U1K|=OZs8AsQpF>7lkxwv!t(BVMK>4aSzP28Rsis`E1g z(Ig3rZ5s_*h?A6^E@aF1A)VTlxve(RNyfUAdyWS-VqR}R5Yl%NPVgClgnm7%vWt^K z3e&4ohv)lW3KN`UR<1pwqwd*zson?`$o73i!nfeYN3ckfZELdf=?r@t(dq@OKeqdI*x7xsYp?jN=MXYMaj#dz$--{s}NI=N;+E%9SP|?+ZC1 z87etSTFwoQ749#%dGiw%{?NJ zYVp2v?8vVDV3L-q3r>H_yHS_uwIX(os$i})YD1+VuQ&Dx5z6t1uZpSGI>ft*R|G^a zRI@P!_=;uVJuq=_uKJada=a5eO%~TU34(EPrb`{+1kw|22)INcM#5Ultn?HtVp$Es z^jq))FL(N+=gg1Ms&M#x7t!XZTmsZX&D_P5Tw(ptF9Kg;_?278U%gEet&OodyFoA) zluJ3Cn7&)`EzTg~_kM~C-dtFj365=m-4)`xt6oD0Mw-fle5+hqEJcJW{KNUXx&A(y zG}6xIwr~^Vv9DV>Og7RsNhD966`nbg{F@0FvgDifV-br}oQ^%0r)*`AXh(-H>%~H0 zdqQj?IIY~ia$C^5{)c)8%;;Rqunf(>DtOeLzRalCJg{DH&<>^eV(9C{3bZ6rlBGx2 z1*(f_f!&3O^~^{EcTcaSqVEcK3{@jYwRqlj=0+VGz=yiNO#dP>HeI`fhMtjwrK)Q- zO+t21xIcz2U^y6lZ*N^;_0q4fTN`|gM&Pl#koZVOmI5D6x3w|)hDD&r-c^Ya4b0DVH1qCbix4KEObuJw%e9xS#DIp7o~+pUt3lgGHe~C87Xx;>398-k zw+MI6Bh^Yj;0>!+QDc zZe@dGt3o`Vk3R%G0%vy*Z1r;E^OqXYx-##VdW zfu38^(RGoTH-wmc7Xwn?7moJfy95?h7JI(QU_#w9ZTiMQt=}K+Y&0lCL^Te( z{qluhcYqbY;U`JI-6zYZi!&No6un@>&Kz;pdaB6aCdy(u;7-%XOBe_TQle!9C>?e_ ztja?*q8=edN(KuGJ8^l2Q6tPJif!Z4cKD7}s;RFGBk`;xoO`1igS~GjWVljZ_>Fvg z@sXaeWM@O?l{JrqfBRjxD6UZVw_xHa1It$L8}QM&+b9F+8Uay^4tkj;b&@!EqVO!6 z^zKmO%yW2-euUg{7Si3|tnclx*+Yj!y(#c$o4MiQbX!Cd9+;f{HYWpJ)`o>Qc{{Zy ztBD>0_LuUX_|dy9I$R7Ndj-D^33YIFILV+_%rCLY z^VRD>|Fn#Y={8Y`E}IEilug8*q)gJWP6-h|&a;KGMWR;^BEbYHJEd{-#$W&VP>}Ys zqHdE(R4SJ9m1pfEzE-(M`U5AsnC9+8P2-)r!VFH9JNc@A4;+FMj)X7&5$L?Y$u_le z?&?x$Hn-7+Rh};N=DWs<_9Vyp)ZF>HE*V3rAvNaeE4~`4&bEGIwK(2Z?YMxMT3sEE z^upy{PgCN$!F?FknQVUFKo+tW@(t*BcA#laIGmBFDx}9r)CYQ5hZgfju@pX`>W>e) zNQH-fRf)o1&aR-%qLkz4AQX3Fq6MV8mSM-s0>eRJ#E`W;U##?bS+K+;;uY;GDv5s7 zi#3yMuHRg%5;d4bZbVgH%2}0&3qCHQ*ItZ!ao4;eXc@qALhdw%nc*fD=r2~3NO=Qw zHhcWBf}`WK>Dv#EDD#+2h%W|P;&Qff3@GS#r5wZ(c;k3#3E=9Sxq4{*5~ z-t`2uq~JkvxmU25_PPp_WM2``V7 zjd~DA`ov)S@lZBX5XSGu@&lx@kU4&uI2 zC$yn(;r4z8#Yk&(qxJH@s>+dbQU`~`wj=40LEhd{My%=;LPa`HX-6IA#@(}aUZ+bh zQACkmcgv2`m)H_NF;HJ0%fb`u;IJIDI=~q~%$GBq*-ONJc$4*_DnIms05m)?6;0zC zdmNDxMC*mLVuMh5$gQGDHoE=sw~2BL1jp zRnFCNeQv-H=bSC6Vr0g9puIv=+ST4Hm&<~CW??&WItY(u(#5a zC5Q&NKF|V-xUp(X+LZUJgYd+f*fLV~+Q<-gR&e3ZtC#D4h=OzK!jdOd*#XflH$K6| zTnd(5qK0PTs)1i%aNxF5Bq^d5hXYlpFT2f&+XcRMVZxx3b-%ybUUdppyI|;|PW%$R z(?*e_hK|5TBN_ZSOdRm`q;?12qcO!Qlu(+{JFq_bML-AnQ*_Tg=*_y&aoNhu*q|U^ zVaCmN(>Jx00c1~i=!+9><1j+XjuIam(|Q(FbHAIOCP`1`sTng?EJ0e&+b_=O#>`z% zSou>ZvQoaGsnTsj#RPM2GWUP(1IO)WwSL$Mz0cC7w81@ldSmHJ1?>*Gw&oX(Qr>y3 zHoop{7P^rTAYTRuwL>S_ccSK`4TK@ORpt?b%#O1pa~IoposNR7^2-UANxL36L!$ST zH%9(&IhA!~;U7zrCfjhKKbXLn{ZdpmvAzgV0!nb&Z0TMBiO=7Ofs|2cOF>YCD?Yby z++^}V`m62YX*0uo+Dr(Naa*>@lC(yyb)O3#^5fHL}VyO*C*kvWr9FObBw<)#jm` z6*E<62!lfqJ;aPEteB6NAR;`FAQxR);Gm>IlRPoRoQ2dcW4E7N?+oT{evC3@BKbvS zSTA0MogY$T+|4<439vf|?_dj0ezW>~O8Qm;KVaR+`1H8G+Yvc#m{vYcv9z}yt=4Aw61kAM^A7Ep@mbF$X>M!% zg=X!!&?bymoS>7$wPJQ&76$AvBw*5H|N7Grfeh&pQXwyA2(nywEqCu>zs9u{htr|+ zRn%e+4{Ov`HDB+;kqhze7ncZYlAZf<(9KO~ewDaj;i5WR0c;aHhmFJk5AOQw3$ zC+Cm>@D3x6hlH=;_)_KrRX*0$by|N>sQtqiK-)$KTe<{33h`U}joArUse?%0KG%jr zL81%peioED45PL;UrQjS7c-e;c}>#yHv(=_XhIA6kA^sMcSES!e~1q<$s$b11DE%=-AbS2^G+P=-evX6;EE$6M8)qB+VJLJxvq#~Dgo z0>+7AbsL5GzI{_dwkpo{;4Hgb_j=Cx@dnt$X)g!`3$V@>Yz<6BVT3X%MN zf>yG7I^M~719J_bYyO%y9^j$+-CIh77An7y7Ob*b12GT7^JK!sWhml?W*g$`Pyv@N zrZ5Eu`SSI8%v2qmLBC-#AUvy^5KCu_hi3~2hP~=bU5M8JzpIBGtzK*8{FuL9HW0=) zYV=7Vp6cw&pk;f>72Ab>-iW`em5Stau&?-Gd4cc_!T7}iGv*#<9Q-_{#k9iIV+5<& zJ5$01`W}$)-TGY^fmB1PV(4{O=SdDuXGiZ?A9`XDko!&hn~aY{sc z-m3Q9NZLb<*0LQ_%9aF7buOX`RiY3H(Ijj^FuRP@IxM^=|+U%uDNMvV|bE@6j=G2 zpV(IE?x;dwl3f+B6#U|!boMRSLtK}R_fWB7XA zI2L^mthiIvhCD+O~&%%^5r43JJv%JkkRpHk5LDTtoD1KOu5mfW0>uT<_9`PblmbG?BLQ3(Z z&+?;G5=ELFG1^%INtm|E0(6zBUlX&7<1NX07Lus|9ORdhG1e0!Oj3>~Sa(2huRcnO6hS z6p`45I&R3M$3B@B^lV2+;)6+#WBMZe^z9>WY%DM-9z}S9Jvoy!-rx{bi%bb0;t77v z#Mqz=Gwa#fwFEtshmB-rOHP%H;-0~;oiCA!wAwXmyXQYUv zK;ih8wFvjxNvDpT(buh9hP1J7apf0-wB~A3bEjQ2FmoVWEb(_oc&Z}|6DO>br-LtS zhNX&kA`NemB?tE{Ip}sgF_#B6Sbiz)@fhoaw zbvdXu#2ivb_Dw-?E5d@5-g;o_UR9#G6t+L?1T{9Ge*lQh55iA1G>(Uc*rw*F@_Be@ z))w`_d6#4rj)`5g>$ueGkuRKFoz^@kTmosJ+k7<3)F0$b!cP37!#1vk^A1(;tDlA9JZMUMye1OKd4f2pOz0B0+9TfAy2~$BK=G~~4ZVT>tI+Uo&X&jYm~wTF}_jz@FCWP2#)F=iYKwwpUM8r8lR55@tS+zUo!OHJ2g3*Pne zT&bJm%!kX7(N&07q`}mjQEwHp^=yqUdrpsocdkO&$+&DB3S{Qok`XSYpc%&Ioj&F{ z;c{&)zzG?;a!Q1JNNJgxp)SxtD=beZ7e33igupkEMkNC=v4wr}sdamQ4Vmxd`D8a+ zwPZ1RasV-VH>h9czzt#CK*Kot;NONyyxvqLK>nmfRUfe6PC3oj`7Y0)N0&9(M}^GD zoi|cmQv3`}INrbPo~ck^hwZTEz7+{-a*5=gy$+Jyq&m?RWDs?z)GB_laIgI0g0ft3 zf>2nv8|Y~0+Cy{^d?T$J(e3y4%jN#Ap^1ai8W2r}!;2mnQYSq%o{Tg})8AsY1bXQv z!_sj$(6ZbiE1cVkf@ON0y;dK>NK*@5^9*?)ZDGU1Rc~3^raoNZr;nw)ixg+%!7kX* zQGOUeTaSK{ROiW3pLU{+IRtpxx*q_0c#b;48c!U!7@^IXGk?W>f*v%m6!7DRc7u~c z$w;c5Q2pCi?U6gCzT&PCq!nsU;NDrWLk7rzvs1q(HEH9r-icLIO(GWd(zq=S$ICQ@ zlN)vvPD^H{RAJqLdzE_6&C^V+gC8P}JwNaNo%*wcXV~KCO8XAGzjSOEh?lJ|;P^~a zAEw|Qj8rg2vItPiSjOW6$1DH$8@wTDv-3tNkxcYiu%dWG7qoK?cfAZrVfGmsrWvLU=bZlts#2Z zCr(|6c+|AhGs(5GR^nU$g=1dL-AsklGSEc*1 zFCe?bE%t9Hieo>H@EUyg{aij!9|qAOPkarSwHC0oIgZ?})LI<$U@dX3;YPYc#qYVR z4qp197P~WK{7O&dcw8rhng;Qm1(S7tSWdY}o$F5Yy$@1?CZk0B!eE~W@~RWmupOFu zlIC25`0LHYYE>kk1ND3*es>xS&Rc~LKRb-H!1}0``o4%mNJ^ec``uL0?UfS&BlTiW3vM4OupaaAOX}f+QoC z4&!V{zX=`i3Tj40q-t_R8=mYuiWRKbk*b5j$zl_sQ74#CU+uu6G%^3Rr#Jv7U$kZn2LE0yE8{hwl5c_9ClcV_< z+*!}4A+EF}pM3@b23n51qRIJv&$*7Yew|`f?k-AK#y+|wuy`#dA%l**VoIYpOsr!I z-ezhW$;FHs(n32y_yet@fbD|{%g^gd)N>EhaaTWyWN}67O6Z}m2qO$=Vf{N-n2E3o zzoK0Z@%E~(*Tk_UkqSXmhAf<#gEPg3pWnw4_VH;pia~xce$~XZ8%qo|p9@$(m6L~x zx$9x4wGUKZPQh|jh(%Y&<%iGr7S9qiB9UddT)zdGt6eN`CXcsR^W0ejf7VmT*Ot4E zd*O!ECKBMH6Em*JZd~C5mQ=VGKT>~Bo^A=A<#we&-Yd-?3qa=y?o`~yK8#AJ$3ylj zGuTKA8cVtScDjJ``0$7)YH20j@kNg>8VS!7{tUOHP)J;7%PFX8TFqMhptw{_&4KJf zdAFJZ$6bbydVqUiQQW!?V#Mk2&83KH7(qZEyQ(!dQEGek6=WLEl2^?{F_o$uu-Ti1 z`gU=K=%@}(%--BQ2LnHcIOuI?8j_n}fA$Jgu*I~&NqPg`|64q0}f;wrdnqn15 z>bK3aFQ~=`3B%($$AL>AHr;CIk`kBnX%ZceSZUOB#UFZFp z2nJG&cnAYu)Wjzm=VG3MBQeL^sSPNQU-i(^FOT^wfNI?iMKkSaQ{CV`XSb}Nb~Y`pc%y^bpYmE1%koDVxB5Ix<4l822Pq0nZhjD8@VUT$0`F+D?kAH&KL!Ht ze(r(>Yhs-+WrT-b2g43*zDIAzS!i&rp9yI zZ&%rC{Pi{`>E|K%n$(^sY zA4T#oJj9`XHE}&1bTeh0J>FnHtaWn0Ai6QIM!#RVs%^5|+Bqh>x zo1Y&DI%C}pGtE>Jv4}AdUZ;iXuSf3)D4Ix&yqJF92T>bbGV$4S2L*#gq5Xl2?JMnR zGf++(J5hm^EeOSU-@u@%M&8C2O37DEFCa;UHkY5Y2P9DHxUR|;s(T_WUNDyq?-sVM(Hyr@`fKaL>YVzNU=ogDk^gOyBVFtZ4v1lZKav5d@ndJUVsCc4NjX za%~M=d7Mpo^H2yMp8AcB?RF*#Tjl!BgF=5Z9ft zhc#~$8GU#Z2LSFgw!EloV{p$*2+vyEwSh`IUc@VFO~_AEz!XsQbgOd!w;cTCH&y}T z7Se!@am5kpZln3L%X4C!;~p!RBn_+C&%$tlA$#n`c(f15GE*BevvMzAOSxW~ z4aV^uJAB%FR|h_w$)q5(7a7KT*-S&xohBH+DHX0;94CXa+&MPcYmPr3sN!u)TJA8C z1|C^7iiPBQ5rJ}W8r_Ofrl;@e_3>#YcPeBTX+15B-lSe0b33xk&m{%A$rVCHptz62#=~AP8bOlXE zMQ1fnyH^7_F`2qmRK*r@TWkoSA_$vn%fngSQN#T{`ZB@$RN$7Ow;Q}IRLtEI|CVDy zn#Qzpg@p`Rpp>knw3$58l#vYI?K% zh6Xioyj_!QI&*mBaDCszi5`8pskScFg@F z42H-_tV92c9KBk~2TCRn1C;jOwiBvqClM84AqcE|bzi~VA$5*M`kCnMd)G%KT6Ll#{sVsVIJAL_qFn1?b1U6 zJ8cWhX%OwpxvHDQM0!i;yt$Frcd!~VlexsL77pTFS>p0<8GsJ3N%nf;6mHJSRerX5 zJc?*&kj2~J|NC_Ye8wXi6wK75#=EPJM+5;QDLdf~tP$o9ndXd)BAdU*8+zNs*=^R8 zmXia>dn)C%CFuBDY^wKrW8ai@Ho?bE)bL5THNN2d{{B0I3}iFnDp)cv-n!)))C^;! zEPt`X3iMo{gkNH(xMdlQMGCR3wxUdaR1O>KM{PWKGdTmse_Lc0{Y$y#Oml9Ffy zJzNJw`)$uYuqxkUS6k7iP-HQm?>n?&zLU25k1~VuxGzfR#5%qJ5`+OggP#dW0?Xl5bN9ZH8E<&xm(Jy1@r6fDkqK(VvXXjgHt=f z$g3ikDF$q<-Jj>qM;Bii1||wol6x(IjQD#T^sG#?>p^?stOnZKBwNXEow&}MsuKy< z>Ozed0hc$gKsj7?`A4|b3$Sy|WW6uUVjp^~Qy09;}k-TeZp6ODjbTYh}wCKpe zOMJ{I+nz-hsd=Awd0woT@7QyX`bp0dx!bI8aEL!l=}oGN4LJ9hYeeEmd6QbxRr1(B)?5S~V@qZ)@ihiFmSDMZP6DXH>BA=P6HN z>s4IiLFkAg7S`Dh(ScJs(BrB0jM&Pmfi<2>VbSs%N57vLYWYzELbhdWku>`SKY|LtM9cBYL_B2AQjqbv&z28IuNL=)& z$1gIZtir)39|?9`@%l<{-R-6#Cgltt-4UpofXS8=;K_R*DfAjTYp1N^ZKxSvGy~6f z_$pNdb|OnYMpw(d^C*|Zq|Iw$>ng1SGQ<}vuiwxAY@+v=%m9=#jwY;q0A$}czUJjc znHhx7D{HeMBgtG_+TNK6F_N{t)s_Q2;Wo|QM#(uN*(uhL**r$` zJm`8`#3_zIxd<u*fzS{eIfLRz>=MFndaF>oo-+n~EKDLa_HH;}8%zVcJ^E`*?_A3p`f zH7`5w@RAXtlV zobay+bcPb~X?X}hbsv6RIXftX+S#C4n_2SE^kcFl=z4aaV_@DQg+uzOuD@VTaaqUy z(K_AIQ(17N9Gw>fF{ggOv!IgPzmBH?v;A#~4)cP^uESE~ZMSe{2&i>~42gg5gHV|F z7JW^9*^8`!PdXrKEpwL;o49u=8R&f+poH{Q@ zrO&%<)8|Os`ggvg?Hz4ky)(x4V`fI#zG<7NJ?P@h{_`bHG#j zX;G8-pm9-p3z+KVy;My-ehr$f_m(_zV6QlKX3Yc{Rb~{W zs6&B0G(WhgZ!>=Ndpk7(e`W&?SMd4dvNS;1=VFpZ}a8LV)**{>{I4#v=M)@i}rN$D%i#0Lyx(x zIjOCobmqYPlU&+|*;XLeZ12Oibi}U4aK_?(ORL9hbAw0MlTDhtfln_1{*<5>-rJ<- zghv___d1y)8_Q)fplE{LgL7^Rva>^P&%u_30lu@Ll6B9=_K-=gBaIsBixft`Mo=@?m@4rln-~^!$PNw)QLk{dBcw6wK_k1&U#7*=;w57tow+ z_zVc&%&tjPUk1*>_d*FZ!j{iM6t|NW)VSh@l zUmaOi1+kkSEXoaooKWx`yo=V`DscCjovx-pD1=8K@XOc-4svx<;-16Yz1#PCTU6I$ z2jKis?bpD)bAe;+*&q9dFGNc_orp=do^u|(x$}Cw%b=YO1_v!%M@%_6lz|~M0yiVd zt>x-blctmJmNY5IJBwEEghVzx?&K zxx+2ZC%j?r&)1!)0#7J&$&W@Bde+FQjff$>u6lD$qC?sM&LdVeya`-d*WkuYV2{h3Jo9Oo?QLa<_h_niFPs#* zeQJ3EZS54^JK3{LJQI0-5u~P$cE9C!sx6-a&P2t!^ea^L8XT&6bTOIR=Z-(!kggqz=uNm3^s(0tn;>DIfynT_mqSm zoV$4^HQu%|JAj!OeXx#Ses*sE`T1e!4ebK}=7;Dmr0+`4-2qu)d0SqtNcL1{93%<(M9W@O^nXTY1d5}15_R{!Pw zln{eWE6Dt(<`Y*d_*^YFMxCW)JO{xes{6-lb|&!oIO=8F_R=HVq38Bi6+=E#U}!i% zEwK6|BTxKGKatk?gl}~ikt(@slL$wkHWymiJZ@_Z-rQ?KMQlIWBhMTiz8ThjdQRK7 zbUc}{9dy{7^-!KoweB+|Fvs7st7UkQ?8Ae*<+S>F6YURWWAFxT%FME~MXC#YbOQ^4 znUbobs*E(ZfsNH0JwqFPqc^Trw!d8R0$pwO3@nTs$@Gm(%&hq+jvHGk$jl7+C{);G zm}G2)jZDoX-0h9tyUQvWxLX)-8BzfG5qVv?!49m99QDXttt_n_xLx@ue);7FUq9bw zq#*lc;%LD~A^2P&nW~IDnXrw$5gGd%Rt5tmW@a)DjyKF~>>M1-^kghd%q)yd;BO8F zW;Ski4sI4svVXoP_z}TZy!M91+=?P%|5OM5jgP|A(b1Nhk&7GBUqmV*Iyfa6w)$CfvgIMtY7m_DVK3mi)haE@ozL^+R?_rl#ZA2zZdwg7W|hlBN07EBYrSKtPD(S3{1>Q%i<#xx6ywqE@NY8X6*Jq7iarboSmDU>!0HPVf0UNUdCro{sW|6BkMHz!}|Z^;=geJf8zeP)4!Gc5x9Th`U}?|A@E1Wf7$gHu0KNH zkBtAa>n~h?guove|7F)-xc&%%KQjKyuD@{o5dwc?{FhyS;rb&4{>b<*yZ*xUM+p3p z@n3fRh3k(H_#@-L?D`AWA0hBZ#(&xM7p^}-;E#;|vgG9N5+5I z^%t%`Lg0^#|FY{ZTz`bX9~u8|*@gID0Ut)z;3y9la5%^GP6R0cKn9Q$5mW*P8>U-H z6PmPKF&pkMx~`{D;L1B^q)ecFFv4T*Wi;*NNaftOV%s=9)31SW$LV@Cv0O6nvs`Dkd3d zS6-~F8Q*%29ayjBgl5)H2b~r(Knpgk=PtdK$f!MK4|x-iZ$B$`K=~S2xB_e~QP2QU zrK=Ea-`IHpZ)<|#06kMDfRz~n5&)6Lk7pxq^9#QptG%uUP+IH-<;6RMsUxOv>5GT> zcOz&lQ=LUrl#_&)57jZ0rIY52aJ`5lRB*ls$9gMpZrN2t@{L=z((X5E9#<+Mb zp5c{K8hrmTU&D2P`MgKE?5mlHV9u{#0#vP0Spi~RG+KD+Y8(pK#WFls$U*MMgW`2h6nqoH#GZdmR zY;4Y9fAFd(O2c8Ky9a`cc3^`FZ5FLq@8}GZ$0NC{@QcFV9tb09BNsn}o z)>ld2lUy!62CO8x{ahk9wSV2XNop*<>Cyi4x%mF!vV=tu@K+bu8G~iAM3l*0S};h9 zn}JUNFlNYFh>-A*09;_E@3x8zz_-VxrK<|=3EAyh1K?Zv5pnXW*8_a*dezqYa>@hM z2nR>?!4nc->O@;|*mmKHE%gNNOY%IDtC#BRb24+xN{W*)<`OeLwA#dUMXwJt&6`E4Cy!l@uK5Gq0fbK2u3KU*F3JX5hREzX3bX#7_zP?koC--vm3L+UM!Gd$e|A#`deI z38>kW7-_65SUT|lTLWTlWSb(Vf6p{;zI@IUIpAKc7HZ)P$whG)ai0l4Dp z!%HBumXDMA*5Fz{>DTKmkhsLI@tbs2jI~>_QI<)_+$g9> zNepsA`_JsT_iLVp)W=I6$f*%Q)Hxh#`VGaL8(x{z=hK@ ztVl_9J~lQwx157|_(KpHK-VD=hz|To%G*Mkd%QH*8~*)}Tvp2yCXxNJ&h3_kcb)_? zJ9PJP%Ta3M?1BDBHtghP5g?G8+_bdsNZpJJ?bmX3vk30Scu`3L_^A<96NO2a=7)6G(h#n9nD3od-M*4Y_Qyx)B6=LLjQ64;+QF(SC zi}?8g|3l#AnH(I~F1T;S=GtVnWWySOPElyA$x3blPJSfwsaoneJvMs)1mO>RU|M;{ zXuhsCBi?Y((1)iCE3{qk!ET}}-2vP>_bkYOT!c!t!oYM^P)hz7PaQ`R9&BTBtM;fh z{Rn9=YdcXC@rqpV`hRHT|B;aXuSVS`!T42j=a9O0r?X!(m}h5+eb5zar3xM}^MgH~^Ix((+$QtV*r9P@rS`3SDC6-wi8vmrSN35op57 zrO`I)*nA&OLDA>4X-VSdQ+h0w`aN6z_xeF~Hhh=2{bk5L_?ZA*E`t)k^Vf&&f~U+2 zr-rNf>J~<2Gn;M^3_-Qw?zy&VrvAJm5Sn9I_YR}v+qyuT|C;$WeuO@ zvGj;)pGYtI*fZP&?cv4QQLR!z?|xZ)R$n+_W8<#Lbq}d-`Oh$&rXvxr?JwVJfiKhr z-fA#&wLLEdHHN}>J^U}@=xq3|IPX$JDas`YqhDre>!`Iqp28JnxYI8LfJY9@M8}p> z-n}Q2nw9Cif3WTg{|bN)q=;&KPXU(4w!3~rTM&nLOF81Q&yC50r;hUY-Tv#>0N=D^ z#@xyRlJHEqmBrR8sF_}!Vj_@MY8bZBRopWXjN8L^spWaoTtB~?FgQyFc+ZAcegwfD zEf)wOyjp^OpgB;EZ+%h z-)PEt0;tc-c_@URs$wVg1K%^|Eg7$y7Qo)RTycXWJg;O31hob3NRBAyShT)-Ey zbk5S)c1HS;aW7ZVIG2NZj)$GjVZMN+xLJsSx7Az-tWD3-7WZ-t^+Wh{I7hn4sOoAP z#0;Yk+0sJ2*W>HNhc#&*TR8ZIOIJvsVfL)-iZw zv>)p(&rMJ4Z563vmrg338 z(y|;X)N56Z7i%@_x;u*K8=U>yHZcx>7-Rou(UPQcWXA4uIv3Sr##V5f*>^0OAICLj zP4EFP`7%j7;Y_^GX_SYgWci_4$YMvlwuu1!0itSN5N#9`_0}z>H+KZw?`*2bveOn-HC;&pS1+riABL216Z~S4=CpQT7j$&cxZnZ9r;>{j`70k}(0b*zU(8vFAtON&$w zf%mD5XhdRQ;j_IpC6q(m9)&e}9$mFFeO0KKS#G29&lfY2aK>D?QkVi$oFCOUxuGkG zD;N7l{fk_dSIWf}L4(HZ1i!jfwbjK0xC`DQ7I`__2UelCV-q5*Zt=w6ZN4K9nHX#@ z%b8XOczOQW)V$+aJdb69anYY7y*`+b{cC%vM$wo4@X~#GmmnOCk_sP76ukO1;KCIK z%K^CmqQLjs^_(x%CEVrefKR^OKHyf(c^}IoQ41r1|BmCbai; z#P_;3*7meaI^*0AO3*6P?zJ(SlA0?PyazWD%2(R`6uiy{FLy{<3B$8{gJT;Bn~x;B zu8*UE67Fc7JhaNPG%Jqdhmk>Rv$K7IYNYDD^L#~O{0T7B@Q`_pr+QUdLvmDF9%WwT z7iT}$@4ta(`y94p71Ff)ho5fb2$dk_YRpVRfHVjeyisQ3VDAd~AgXZ9$#JH?XK#8Y zTB#Skj8ZNierYphsu3Qsf8@md6(V24-yS|fHdrM01QEPs`W7P*|8n~t)~Xb(S$gl6 zz$=@{!kju3mB+sMY5hMMIrDfZ*EWtn%rK4^OE_dLvJQh}4Py;C^fs80Q^_)wB{G&F zSzlX3$LLI!td;CUUPQK#!5ZBRc^^Dc(U4NASRDMG9&zf7ajsS|*t zgx%dN`pZOobhfg^CV;X9EKM^$+x9tb9P?6FdDv&28bqqpewsYjNors0i3SL)P72hO zH=pBC({t75gx9zM!38Iwy1M31iKFSR$>@}z>2Z}j0$2McSHnp&qWVN%EJpfL1?=X( zP++*Kb@KAQu}73gH^EBM$>)L-AjHgE%1*keR!S|-rehXT&VPQcHw|S*gu;xpNfl#H zxBx8mAA=X%JqH#G4+PL5pNHe+G4+w)qpa6<55t(-Dl0=cp&iK+}^N4iUaBX z6@1+8jjvi9w&L=IE{P{?P7a1|Zw`jT%ei|ePR2pV-ubS`S|-dlh*c7qlIf7VSuS>^ z{_&F{w~IcBf74ESZBg0R1$?10L3#CSvlfoBs@S~*2-#H`wFycPC}ig^fiaoC<@z>5 ziYa0j!p(*>zGT>**luLH$x*6rzq>iOL$vDn5-0Z~@4xt~Y#z}k zEx(vW44a1$($Rgx!u2zTx* zIx>N5j?uE?zQntCTL#Ok8~3eI#l<7kVU{l1_y>O+C{*=FIwCqjl<>c%WosimEb& zFuk}EFTXt^-%3e`yvAS?a$yU(}^j+B`VeG6vqdvkofoDP1uyaiHbd+DgY z`9N8oqX`_jru8`nkJ{~GycPoVxAUd6f5D;0ngA0j^Lg<7iGE6FIXr=I;l4_)Z-xX6 zAfxN0!YcYXOryv0Zjo;>C4PJq5&0)kvcW>0BKsx76yJ{&8OmA7dF|@1wSv5n($H8j zg8FW4m%gMVorO$a!QP%BK3rO!3vHGS4f*P#^Q_xm-Ct!XM+6N*F3WuA;&*JLyR6Ql zm_!MX*t3)OfPqEN{4JJ|eBCrk2Wexli0bsat2J%8e~^(S(mC)Wk>|+ke6H{$cXSPG ziJnUEt=w6{3i^}FN1(Jm& zg_AkyIqMZn>j|;shsFCy#9isk z*BTD%_*=F}Ka)U}4=#KM5QB=ZpJUfIw`@(u_p-9w+0c=1i5cJL3t3R+OP2d{f~gp~ zxw;_Og>8I)bq`b)W1_(!+mCpYtgX7?Ex>G&zF;W9Wib@6;$cdYHVz{kh45X|VFVsj z9Fn3yu~g1#L$$QQAW-w`^^L&*ADZ?0{u3VZ0$Lov*_2ZE;J`*R5{UR?aey!n{o#$W zL0;kYDM-stqQQ{Zcuq#VanEE)E5Hns(O4@xvnl7Q2cu}%a{UUEC&#kf#?3k{UXKOd z6Guu5ylAs2r|2a^>~Y5C=HG=~8i5^w_H7xxPR?R-X^{Kq&~>upJ(QQ745Qh62GJQGe z%AxCJNhZt3Z1NXHAI;5G?RVm07zaeJNJl1gUOK>hotPwNl`ud}BS@<(l#ZY0J;uM4 z1RK?30Sxu461N?eF0pu(mnj>l*%}{^n{dx6{WO*Kf8v3F+iNSURlV83_|O}>eKnUH zP_3*KN(>Gb1*&6|s@?Cxq>9^vEltp^Rgfm>giVJUP~1xgiX8@%_+AZA-N{V`cRI`9yWSNOKb7a(v zD4xn@C}zD*w}?aDTF1t?;{N(dSe;n-px7>7)msyJ6NWIbP~Zal zyZ$yO5Ahjrv0ZoMzknYNtwib;HQ^1158Q}tb#XBcG1iOa0`GM>?{_mq-vXFkM~ME0 z1huZGzb{XE`qg2tvmvF=qw$4$obZt}{@9ky>Vh!3f@>~ekUPMThM)y#boe-pY zeh?38G6n@!YX5{jdcT7s)A|k&MB@PcUj;+E_46l-$*Wsmy|Rai zGA3GeKr&g3%ue@l4s=`t&UY5*yx`4~zTi>Dmio}9CO2j9gnf=M!Y%H}kHJHVc1d3! zrPzM#a@d2lIv1V$VXiO1;8%II?6xT$_VkmH|7SPwe@R-ipo38Shc%6xuC8b95gXsV zGcnep&WIjH7vM?=g)z;hMs(=o2*~I{K%UhRjI{QGM@Jfn;}^XfT`ojQwdu<#=PNOY+WLr`JLjWs1CzkB^V{ zz|Ks9ZfkGvrQXn=#^nwL>ue5iLBY3fnexKl?|Z37h`B=_`}^BV>JI{X8($PLRdhV) z4!Z5Vqc(z$B3oWUh7W+F?Ck7NNMt1QTL&eSy!>?nfmwkPD^hXh%$a=H<5~}Qck6w% zFWO;V_0iX48>5Ug{H2`PIgwGqWHK3;=tLq>8jWuI@mgSLTY{*gx3|h_YkQ;nb9Y@$ z&HLb&nOO82jK9Ce{QSI_DYvAQ6c;jTudz#p<(5LUf3WwST}@3yTW5MR&}TO<8Mt< zp1m(84i9$M1M2uiL?R_jS>TKntr~Zx;RFJKTBw+7|J04~)vH(S=MzMjAeFOcd*+0N zg~68X@9(d=GsCPyTR8&>uI_Z{(AcIt`90q3NnWgYxzLNqf!pA}uV#m$UB zlsR|sSy@|8g>&dMfTLv|6FU6?c9m|8lapds0~SyB2P8^l)zq9gcI+60(fR;lLOozh zI_TTRc@cP8t>X~fOhwB{Oy~Nmnwt9~BbV98W9882vFh-9v>gWM4ehfQHBd)LCy*a1 zy+`u}eLGrn6o*ui-vY=cnLo)g?_3h5*?P~$IKU!Dv?^YBI-IMoqNdgX*5*ZVv4zXd)9Id^^LRYI zVSQaun~H7BU~QCv+fHx|jE$kt3JPEbJwXftEqTSos^3HwXA{?|epaA|yGTNtm6)gc zoH^&l|xgBD-XE4^iQR>Jr5nCT7A`oja-(>3tW*;!c(AmFP=8>gVjmEm$Q&*ugOLKaHx zi@&~$h+vA&W=Uv+K^2l>C9bZnQof|$`xz(sI)!*FHu;xm$w-gg$uz3%|A8*HV{}HvsB}! z!-mD1DkI1!ENXMd3fwSU{Cxamj8u9gfzV12&7QMam#a| z;H+-K@hGg>=8iqez1*Y>HFrbELPjZ#WyW&_3RdL%_b)E!Ikxi<(QIU+!Yw-;M*mMy NQzHw*VtxCtzXO|gkKh0R diff --git a/bomberman/frontend/src/main/webapp/img/betty2.png b/bomberman/frontend/src/main/webapp/img/betty2.png index 74d3b00eb4d8b5cd1f885a7cb98273dbf7498426..e2c12eb695b3fbe1a0801d9bce4022060eb2235c 100644 GIT binary patch literal 6628 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
0`7MK+XFVR0i9P82kKi$$ueuM)h Xa5>|yp}l>2G^NB_8Ie+<55E5kaWt2> diff --git a/bomberman/frontend/src/main/webapp/img/bomb.png b/bomberman/frontend/src/main/webapp/img/bomb.png index b36aadb1d6c37a642b880237c03ab0dbdb6f9e9d..dcd2f9c83bf82358c4ff251c7a47a5e981bc56e3 100644 GIT binary patch delta 2511 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 literal 66137 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 Y@m}OPK|V_Bue4h!F*(t4;cx!`3&A$!mH+?% diff --git a/bomberman/frontend/src/main/webapp/img/bomberman.png b/bomberman/frontend/src/main/webapp/img/bomberman.png index 1fc9124041e65107ab6f289f732a35659ba98eb6..3aff57dc20faee14fa176d4063392482c53c35eb 100644 GIT binary patch literal 4290 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 literal 62545 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

enO?W^j(UMLQqH>*mc2XddW7Bz! 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 D=|F~Q diff --git a/bomberman/frontend/src/main/webapp/img/rpg_character.png b/bomberman/frontend/src/main/webapp/img/rpg_character.png index 1d7a3a12bb8e37a792c8eff7c0555bc4a0f22c51..b18f94950c94271dbaefbd2e1d75efac4cbaeffd 100644 GIT binary patch literal 11185 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 literal 14907 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%0Dnmy$+% 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 literal 58042 zcmb?>Wl$YK+a>N2Ah-v2C%C&4g1fsr7q}4IEy3O0-Q9w_ySqF0Zr=C%wY63IXSZvf z=Tvu1KXs<2YkE$dj!;pOMnxh(f`EWPm6ehB@ej%V69{nsva65J!#{v=6_fpm@UQtI zn1%oABRa`wyFx%9WBw-~=QjO6{tXhjNou*NIa;`R8oQW7h?+T?n3G9ayO?`Ay4bps ziK}s+bk;{hKoAf*xoBv5Wp?RVI_WPv`@@Ou5bF!+>x>NqNl+(EP$tRNnGm{I+))78 z#}x8qhtpR$VohyL_}LfixzZEWOQjygB5ZOc+0Te#i*Kyqin9jD}zFKufJ0i`P*KIF!L%i*YeNy^pbZ>6)Y;JLPYxHz$ zbZ>0&ym8kBNbBnIgPLx^9^DQMO(|<@@*6LTWvF1ekDjWZ^keF>Yv+wUp469Hw_ojF z_xyEwE-ZA|z;Zfor{;|h4f2OR#K30rPrpXj^ZiE8XU?^jXU~O(ciy$8OWC#dTk^Hq zBW9hB12`R_>+g*RN%B^+Be?U4$^#AGXNS2w=bIJdX09%k$6USqudA&aP5+uUT3-q_ z`s_COf~gvB29T{+k2PoB4zaA)kECC^kFA|{+zED?f!p$pfQ(pY{Y^Yg=GMrin%0nJ zH^n11r9aNQ?(fNT8zhI%$}?M8(|0Q+^VOGl_Y{rJmz#|qr;3dxTV6VM_-}2|)^S*G ztp*=sHP*KyJ^7NP`ivhtf?oa4JFdLKVU}!Y_L^zu42Rj~t|MdT<5SyntJ?N^e)A)IA0OzSbrIK^y%WhzU9-=K5YqUi`m^i>qehj37?m4()m^J zqo>MmQHy&#PEi|;o7Rxu?aB_u7#=$hGd6Uu za+a27KSB(~ZIOYhN!2|OSI(0`HMdR8dIUf_o`mPBlBHDt8Su=^wYAp^@r`ikSj&-^ zvee&C8Q}I{lS^7lv1Vhk4zof~bR$t!GJ&ve729okBqJ`hC~$HQvC(4e@opRs79`qz zcDS7{c0cJ_BMfR9;s_r8DaBAAU{IW{6E&{DReEPdJm3F-{w$~v)Nxe^ORA^vtnh(5 z3tZ%CgIiw7RL^w%Q}6n*KPP`{zdDrT!U48XA|0zq_~5IL(A6e*UY}Xn*rBgp;tM^6 z&S+tGfUeL+?+3~k#5-2DZp_^2hk}Pv>hrXGw-2_t+KLknEv}mSxHzMU4mVP9Mtj0; z%>$gF-h{nQx_(5M8=BrJifywR(m-+qSa44J%_DBb(aPKIv}{<iDz&@&)a&K4kFh^~Dm@Tv9e|nzwz5f|)4G_1CS!*m!k#u{{ni}{+pe>u zJvSewi!f2n2^EArT~g)^k7oA`!8uilmM7_`N&l!nU-*W;@d)#rZ31&ME^MMvlGA-&HpoD zy(NP>zcPPq z2H9<@>3{)V?{WWj4yHc)IKgbce!7nOWCNc)@%fsLks#OeK;T+YPDQ1LD*#myLmk%9EQPM*c_xk+;HVbCiDoBG! zUP#UPMxcp2?ro^f*bR8*?USWHHO@}WjRpL9h)`OUS4fXLMqSOX>h`T;fp!5z>W!Ai z>eLs2ItvW3N|=1luvuP;kY6mP9n{mn?N~sW<8fD`FNo`5rVtzqj{1Cs|4lGMj}Fpr zyehrlI1$p0(&>2A`a|VNd^Ozoj|1b zS2*%iU49;TE5&VU_#SggR1#e9msJ@za~X{ASk886M1&Du&?M0rad7^C{$3FYf`9X_ zcHLphB7L0t`QbiwlLNp)`>&EH*_2WvdE>pG zE=B{-gStSUU!wA6EI}U^9$N!-u$B!HU7ie42o`{f9H;H)%f; z_~U?#rLDiNeS~b_FJR9$xort1N3F##(WrZE8&>p4-vp!Nkw>J!M8J5U%S923#s<=7 zOXv&MUe9sAa1AB`Wwgs8HR|{f`5O<3&pn9cEes3|HU$mL3k(56z+&Nu&WzrMqTsQv z^T! z{(A!43mk$4qpR|`{E2WUK-&E#{}y+oxuE3sbC9$TOk!Aau__47D^li$G#!-+7HL5X z>%2hOkf>!*N~s_8FESeCYfS}zVcOwNG2MycG#y^t16QHm0Bd|xP^Q*NZJ=;2e0Lb$ zdS1LyNJM{WfSDq}07IkKcY>M;pb^l#33wee^}=Tm^l@MMVB(_23L)Hy@OAdzqTzj( z=+dwm%vxss)RA{Lo0n0zpm^rKU1(f^=}g@#M!@@e_$Mjf>UZJ+=?!p!n+?29&UHYu z3vR-p!pr|8RKewM-!{tT)22J652axGX!S^jcBJtn5+1 zSgQH^hZDTg^=Vx;P?_?kYpZ^#{Kx`bE669#F58%@PZJgnHEIf#_`vdbP4(UCGsWsoVn`v z;ryNb5lQj1+k-yYM~(=vdKpmh4-vu}DS?mfo}=Oc%bVtN90(_R3~7F9=vTI>)kNaY z#C`#A6(2Z9RObVUJoP*)Mh2_7v$&VghWh|u9VS1a`XZI zVG2In(O@2O9|*+|n-k$`)6zhgXj8|&AD}a{z2r0mZwQXjO4@dX&58p%BesR|Umi&pfKQicJrB=c>0zl%T$LdXUz{!TqV z1CqA>jO4erk?vRq7BIXMC`hoH-oW{aCm$o;ZqisUC1vO$FV&d-4$--pc6FHgBu#!h z7ujY!%E6vlskF7Ho;yr7H=Wd0U9c94ukELTLG9k}T3iMKo`qQ6(Vm_=Pxfoj$lzM@ zAD1)y7Q}XDd`X6l`x`2Ja^qhr07A^S0P*UZmvy3t91|dRO^v@E0o(ENCD zf$AJgtOFc*>xlzH0xQXw7T*qN&{eLH#5tuBh9(3C4Ntn_*o<<~0U}#B9~=-N1ZI+! zJ$cu1fu*ug3cqreWd|iJalet@UC%0z0z5S8P-=mehrcSIK;@tC*Kr?&6|UZa13thg z1Jz?{(D@*ENw>5G@Qvx?g}ogd+aLfs`Q_>77Bf3vPN7Un4|5Q@Z{d^q|&G3*suqoy1c`vBiGJWW1HZR0WlD5jraBP}pI z=>3I7HkHl^`>U~=EnBazqr%L$16gwL;08JXVu`s6qj~4vans-nqU7&7Oqtd&TXYv| z%C=ceR#UYf2zS@3oPj>v2J-hudLqvoE*5h=bbXR&`FVsWqka+$9VhGFw;)=+6u2+P z;FZ5kc2|yra7!#XC!aOEN8qt5s0UmpGGBr5kU#waVsv^0JrPU4kHB4to-=vk4W~1^ zyawQyNmVfHvyza8FvRhIS+>R=(smS-UU_iQ+w{-1_FeK-aGk|%aDXr(SnQ*wbvk&+DlD3kS`AGt{^2B5=>U{@=B#OvgTjkae!!i zbQG3$w2k>L)T8&rSFLxW+XSu+k>UT|om{!5;D=fr=Q5IKP9(ZAi+K!m{*-I&`DzSQ``)T!w_3&(;O=jQsjyqqt4$9iUPR#|!gQ?0arJ6h-NLJ|0 zxzCddp0j$-J|R@_`RQ<98>ajQww5Xcz!Z$&;j>Cn!Ww4AuU{R|>b_A0S-<#y8mC{0 zu7HtD{w16yJ3inLOqpD0k#3JUmtkDGrigg2s%BZi-V5Od;a8p=7Yp*R7+ ztH556p=)`7+)aack4;j6*&4|2LP@sxEr?gd1M#!LWxQX1z!26i{DcCL;Q6ZUp}WldQ_xti zagXZ?s2)@Y)e^!=w}oh!NOa1+meCTAHRoVxj<(O(W25K04{%C+&oXdA7|Cwsd8tMJ zwi!w(RrJ8$zt`EMaa8!CXMitv0-OqF^KY=n$z811tFwg|!kImU*-pFef-VI)7eiPI zssR59ew`(7YO)3+`0Y*{FW}Farkml6yMMp(ofeL(1qgqN--(F+kCMGPhyfDJ^!qF0 z2iQh#@I}-D1jrD}h62U8Yylo-uFC-X1rG~YrNXg@Aj8;D(z9n8c3Xy3J_$zV=+Ga{ zKG*yj&4mW&l}IM3?E4ikyd_U_{nv6Oy!==SDS$=nq&Je59{Ye zvfy@}Az{$OOQhK8*46Vv+vTAk{(UI^{qdZTzCQN_UDJYF@!4hw1M~w?-%uPop)j#4 zknR)kF{FCCO5WD{K(H$r)WG8kER7m^?+)vCpU?}B!39ZgwJwHnwN&_tq7z!bCGu9M1KAjIMRHR zFG>?yI4b*_Ds8Sr4U;DHEBTdX#?-W-TKEJMr?l4Mh|_h`|9A!lj((&_b6TN_wW*@b zH96r4jQ|=IPDhW^fK2CfNcL$Pe;XK93>BY+g~?xpIVrhwAK^bngcdd&d3l8zy`wl% zQ#4I($#>ib-w+Ds%(bHot6V@P80X#hLHE|6OpkQocOqW!05vVVgImLD#FuG6ftSRD z9YgUO#)m)y#Y4uj)>m5ph2f=-Hcz&03^uj%2c^Sa z{Ip?kR{gK(l{2kbaES@D78q!KG->$$+7Oco+*Kg6sfAYoex{!efa^e^T&W?X24qhG zS^*rtc#=XIig*~pH5W=*m4|ffd4j^4v){WD+B>LC!QV#)(p+$00ef}KOz)VQTlBn0OLE*b8I;Ewo(=## zJGf(b4-a8xPPPl;GG>lv`0 z^OCsWfbQq6p6FxY^)*oDl;E>MEb6}Xa_sSe!38cwI@8CiE3&}wx|RAd7lHIAz6L;p ztLgTR_^QwA;No}<5Q3h$2!pmq;I102_UP1gaQfogBh2s(aI|XiMfi;HhVr6pkn6~E zvl5qhf6(yW~{&VpIyp@9(`5OQ)reflN1U{z`gv%2GbVV%q|8qGEXsCCWE z8BX=|+?IBGfL%J&ZOqsQ-%lG#I0F10KtfLoLk-ViQrNb)~)w#rio@Kkk&sKuYa!o$nS;UR-L_Z7;6MI~<%z zXFXb67v2ZSbiTcoU&^T1M}g)i^gVT^aj37VI3l3*7XNACtb0w9vZbF0>j|24_{Hf6 zkMD-d@>cgHVu9RiA|CeuI!$zB1|xk11!!TbQ9H~0q2P})edlQy zt@o1mCh=0V&o&SCfxA%s1pZpFK7J=UwrKf#{^QE^{4K)mp!X-A%Zc||`zc%c(*+M- z%cp|P`&EwQC;0LdC;|SQ?710Xew~-<|k=}zG>Xu5_pK*)wiV*6p&@KQEUFG3%x(2oL4gSJRMaB z*^Qt(vVrm80Y7nkt4;d5fvVS^cik!O<1?Ts8jJ^RXPxj2xzL+u`N|J>QM2Psu`cW@ zb1<|G4Xwg3fbYFPpZ8ucB9upA=pXFPz$-jgVp+PPoSo342BDxs@lcH^gfqdLa@6IC zcBhxu;l1e2xxk+m`d(6hsfbA`e2fdG6e4|yy9W!u&U#wk>4Qc89_cF%bg7;E%{%2> z5Dv0F-5_RzZ)RyCa%dgycKCcpRSs7mr+Fc?`HWfx_ubb|H(tfv(pl)SJdYX3Bt!1u zx1ls_D)vG4K{W>%rwMn;2YtNyC-lwl$7geV2Vy zNZ2LzF#;gkc3}$tD;0pird=C6LiGx_j=1+Z4ogsx{PqC_3jF+0iaW5B_dXykT)4aI z342cFIEcT{0CNuG$h8&fMUlD>_UJFhURD8DcUT!so9T4DP^aJROrKafF5Sv4_Jz8td9;{Dh1_ZJ@v6;Y;V6$acl89c(S(d50*N z0KgIlT!;F2|3okC8}*?*K+5S~Wu2MfaN!71@>9!6`V4yWl%m|K*r1{@_Q7-%*y?TB zjk^JiDu4`vSLQRo$Y!%XN~`$Ro&W448GBnXskg0h(0}}=fARm+=n6UVARu^F?QMUm zd1YSut$MBxCkj!2kEOU)x*8Lhh?+`!&DvITsY~1`kcmvhl-r}C)t!n$Z|z-@Xy!<) z)Qdv{J(ra`1c(&Wxiq12s3vK3^pu0z%i9TfKvjN#XOk1XjW$r!?(I<4(Q{~)4BN*s z;#X8tfkoYF;MTR5XE`_$n^;_VIe3n@BVh9qy7iYd_(QY@2v{cR z&6(Odc~g2dz-PcZY?{;1JJe}Yp$5&4vDpD(*0%?q#8>=_6#nQJp#!!VIDjjH#QT!Z zN+)Xo6?0RI_sgrU%{qaNv=Fbclr zvA0*(Mv8h^l`N9@X?G+M_PTL%e4>{D$rjTXb=b+(OG)>T<-%4s&i&j+Id zw2&zzXyhIUZe^?$lt1X>(ktBR7UOQJ!Hv_Tc_IL!-XS#yoLQ1d4u;kf8l=EI@3Ph7Q+0-$`F-Z*MuwHqK7-eLbHJXdW9*3J5CtzR~__oi#~@Z zmmj0Z7k*oqmXy73!K-F5y1%iethjT%9Dj4^2Y%upe0bq8&Q)8xKA!x*5`J0lrgw!S*ms}q0+Jeq(9xnJ}XXWvb9STo4 zVX?8IV;MV8lw)=a9EnIRXDlwR8?g$(tb^xFs}EQ+cp^$O#b_}ZGOsyEvw|b?^E5vO zVfr1F#w&iW8pXE}ahTfRknmS{%C+V>w4ull*^E>0lHK({a{r5^~7@VhLw#_?HLfzHG~8ovsG%A`d5cE+X&7Yw_y94@VKxgd zEvS+Ayrw;R;K87bU8qS^o(#1PjHJ8jSH;k8YHW1T$$y;|IGh@PlE7Kr@`yxHjA7UG zan%?X2aYvM^uiQ0Wd4ZFEeVpN2mU@C3TdoQePq;>KbzoDiA$LRa`vi_q6H91NfU5C z9aLDR@ZIa~^?0??*Oxezq)1^jlj#+yqi7ZtJSar|NPz;Fvi3D}JT~tY)*zN(JnSPo zDGO<4Mi=cjV(mRZGA3ql!G$(>RdTU0@LBuHsNi$b2T7UFl%fzck#Q;)(hpjij#nsW zo-aO5cbg?741KA`6I&Ad?I*K!ZXf&HUd4ezM1@y}NFCK@#+IrFm-N@jrKlN*zNwh* zfKR?G^ZOKOqDKEP6_`P%DXCD$UL0gG8L7Zs`h%v&EhUK%Z6mV@|0g#GXjM<#$B2@! zLmY{<>oBmmWl+QUV#cPhmdZzjQjyDIl)Z<}cvOy`;?!g|ytU)UMWi_P!>B)kYI}af zZA(O@w8;YBpXMVWpAe(D@drkmPnKD$5_Ke*ObgCSj5Ya7$QS)^|D#S@xyr!!2@Ngpp-N?Bnhj?=-0kXo*amo*EF_-=5;ASfw(x6C8=h4o+1;SafsR9lyarC1D1z%-AaK#6@2N>#TRa#(~%0E`8H<4`noe87CDD}FR42TGZ z*Z=NQIFUu(LbW*P_7@&U4li{mELBWIRag=vAIoIry+;!EXNU|n^gM|5b_WXnVzCfi zIWpt4sD2XWJZV1XZ-5(qyhp#vaj_-mIwPFb*WMAL-W0RhiI)Y+(_Gd(RYo6*gUb+q z_c{nPCAQ>+;h7`yB>aZw@0)PJUsk9OXb z;(k?Xj=)cZG(>9)`4si0xuHT6y~ajQs&{HlHZIks9;n3_nPGx77B3I`Q4p&5sZnPG z#T1QIJhd1v7bLd?Anbg{foD?T;g(Ijtj4QXVkndym&R>sbyxJw7__lFQce%+j%2lt zg^~BFV}X0`zpw=iU)p}KBe1$bEj!{lQ6l?%9pD^AzQ{wS5O=d1&O8@+ANN{L+vhT- zm6wWt2NJ1?hn@~5^D{D$=-b{F#%csfMvgKe9*wTMey2+1z|G%3C7bFx1w-QLv(q*# z&X?P~|He~IoyLvm`ZL-O1y(7~ZtWUrd0u(?B1ce_;als#j*3b~1uJM)ZQM2mioBU1 z(chzR%j@i8Z>C(HsB>fgc~e+aAg^QejY*t3J8(=rLEz|j6PYE%B7mS&I1!R0_3)V| zJan!qert)bKDIbq-gHnglP4gTK2b%Yt~Sj<-lQ+gE}A)LK8ROo2c9H8?Ov1HWDc@; zWv&2%oyqW+dJa-5V{BAKm%%Jf4EczOO4fA6I9a9(*Vy)Fmg`L9G*oDJroiry{SB5+*|lTIIfhk{l>B z$cbyETLe_B4=@QGLGNdmB0?GDiiM19JQlvv8%;rPPaUU9!N=(V9yv(urL zVK!g9n5EDVa~<4=iT%2kPzq!RsG#gml(e;CW5t+qxQD=TGjTJ1AGbc=pK%3=R8Qza zWV0lUF0CF?4VuTyH@ig;4U2vYKR359nrlp6{jM~JI3a!`3)2Tw{bHH&4ZDb~u-7PJ zsG2<1qMJeA+aJR35Gv>kEIGBJtQa5F>rCj5JnJX>&M+l+g5s!DrM&YIt1^4kMjITCiA3L6Xd0@A!~_xKgOZByrM^U^4w`7cYettE@cFJ2Vz*WUeWw!6B{C384;610erM)f5UWdt!t5GSoWDMYi1u6FlM z*hGAy34Kt)wuG#m9aoCPL&ck~=c+i2IDN=JgW|oF~e~QKa^h(Hy{4rmbM3!PE#F%uVL%is`-gdt{%i@2TPU-4MDxFJ9Vrx2x zCGbQgD{&=CSKPUyXE8|PRmBe*a_9$wXf1MPJK z?gM!v?OT|(M^@s0tpXiN`mE1hWP@DoVq)r&;b=bPgIxIr;=Us54k?S;ubiDZY7u6; z*!QO0q5r1yEXch3)8crit?pP>y(ovzl0Jvl(fg0z;{E6g3PtQ)qzf_~l^Qz|K3h}j zvU%lMHQ{oaig{-le8)b&?q1rr+=|ZGWy4>fleX+Z% z69+-rrk;ll$No>nN>%dYwSUhU5fTGnHN$VIRn#uhQEbRV3~Iu7`hB~QjX)AXd}Xij zkVZ{&mG+%jxmY&Bp%_Vb4-0;YaDO-)HDx3+5Ww=ibZ!9ZM%f0T=8T$f_|^Et5H#l6 ze8VMjefOfmO>{Dwg;+t;kLLiF6%LI^>)^(y{7++H`C7Oen&^4=EO&LSUrQFNSr%eQ z{|<^#E$05{DuUmExp!)CI)m$!1p;?Aw%qyOUyi@m|9HZVTS_fRCJGFhzH4H6Ns8>q z!gX3`(F^KLip_jy^|)da#J-d{y>kWSxRh{OJBrWl6wtTdarox+;(Uaz7e81L5H@oe z$H|dK#oF~7qCV}g2zxANc@zFgxI^U1+`irZ%H?qoG@8I-O}7|xmrVMOxous=F0 zDzu1w@7?d39!ZtifUXHknw9M;!T`uC{P^{oPp~-bx|5tm*z0s1z<13jFc6+~8%~1e zUG8lj zy?_wr_R11JsP*c&^!K&xIk(x$){q7-Pw_`b9%w)QXtVHX`nbJgMU#mUd;KNU86<|dJrju`ee(>7%F-O|_*GxYo&K-j;M z;z^-xhv66Ax%l9J?AqQXas1kKbdp}6IW=oBIm;!zOr#%B;F(CI&*3&X!(eGuU~!V3 zXB*1gHzO{BdL8Ch{hz+(e4(N|D859^KE$v<-eu1+lXIEwM5D-j?=R=r>4GXE?np}+%Hc|VJd>? zIj$SivswbO&L=w3vwGY-vTcvQU3_p^Y%LOXp%Up^{zH9NH;h=&8~e3Q=oVaPHOD{v z#|A|lD46ESCGH3`%jgImY|0J;y*s7>i@@0)Ghnxqn#D2-h?Y{Q~$8d z;+U7;bC-4j94;_GbItCN-7~Q7eo^{Z--P_J^h4oAVb|yB#|ocrlq9hm?Do6p#YLyU z`AOYHTb8Q_8>~Y(Nk*~jWOOnm?;He7Wz&g4u5t&PK3xSM(7adrPmR(tfta1Yce_Q( z5?7I=#&1|+oARR&|J3D=2AT84__wLI^rfO9o_sxCRN3g z^(LzHsp+^QUnCS_Q2=BpNk1_&!YoTho}_NW|GcegQ`o=eCnK&x>cwe9pPbY~`Zl-# z^nG(ii=B8kW-G&oXv3SNoeSSB;vkyh{wg@oYb8Q2kR5E zK3u3hAFpj!4|5A;DOGE!^Q_NlTHCM1 z1B+TGayF{PboX7wwm26xAKfHuPO?hOFTEdZh1@LQ5`PBjLW%CK3Dvx?7=9Az?uEcd0xDeMIs%`;-5mi5{K6r)U)^4^s6eT zNJ_e1M_9PR>wNzD_tM)%M|f47f$-LwC0!M;;O2W>@!Oy^Lb&Dl*|Wqiu`S{pxdd95 zmM}KX#Agf&J{O5$B!F&tr^mP0dxGKVq{Ztxn3#(W!32{8UQweK~ZOQ6Of5`c9s% zI=B0t-MURegtv=zan>UZKL)wjNZKZBh0^cee$>3P8jTehxT~#wet7~GmOeWyQ0uL{ zEsC8lZ}6ReubOOv)zj_$Z(6s66i#&v?21NZSte@BPQ*6(LFp#eK+Sx}*BCs?rNiaG zNc!t2nXbX58OJ}R0K4nDYvI*y^<&Jh^luI)ZVcD^*Rvn&xW+W>+p!)uoYhrqY1=^+ zd*yf9661pP)GM8gf2T^>F#*4m@_$i&@g#B=Oef8nW-H~yED+%4$Na0?8B3BP0mhFD zgFAosYzwJ{|F>aSLeR^I(cqsfxa!?8(x{|!1`#(!Fs5(QC5tx_$R4!#6aRSS&QvpD zPXkxaA#<)A&#st;K3VMm?2`of91p2kw-EgYW=DP=n-%M8H$E~+=`L+4?tm0{1AP1n zTgPB0qpm`^bf-{)3Eqr`mt@I%9%uPJvg{g9W&?{nB%3?sd6`KEh$2aIC3|KNQbE>s z5@*UX4x*X%&Jns~Y#GCmaAb42bzA!!gVc{Aag1CsF6E5lRsEG3jZgM`{rXAj$(wiB zW8aRlx}r9O%Z0~?%9D+jKLsB*9yaJ_x8!a5vlR==1gALHJQT)VsssL0A%RPrg?tD?qh4 z@|s_X7#VJjS-awQ#GO|QPDcF4^ zHR4xSb&eNwSSlRps6YBPv>}iMYVpd}i1IP!F!qGi_RHuO?pn-98dNJi2Iv6$pDsf2 z>(#YcuVPYlFJcaw{2ujQDA=|-;cDnGeH1IeDaP8C`i8@;$-S+@=9$2xCJ)*0=gb*B z;wgIgPhgx>*XC>X_!~FHq$-`br-E}c;^}YEf~#PF(aUl^wyfw8Z)_6>LES91t}PYH#WZu4qEn>x7hLs zoBt+9rXdMdis5~i54BP?e`Q35rJJ(CA4!l?s|jaQW9a?K z${|pak6PevCDIJ49(#lS=Ey?RX+*c($MBtefuhxLj|Wn9q+27GzKE{ZmvwrS|7g$AN5C+?e3{ zZ7n71b)R~u#7li?iTr4Vd~VXIwAxu0wR-ESsve6bz`EJP&(uQ_Rl?iYjC1j&wd}CO z%_sNKGwE@y4waRSQ0S`8o$VQa>2+rMs_SFzFotAhtirj%v{&lMnf-0Jm_In$(&zEY z^-bsTqvHMkQmYMCf$*=bee|D@s~6uFDz@n_Reh9w+ z-yK z>;YKP6Vx?(soyc*(|Ruu1bP*GLI%HfiPBzQTW?)HeyqymN$yhZ@mrPwLO17cv(BES zE|D3Z06%#~a6S1x2=q6s{r@*zUvU3)N!)QO=;Vio(G^Dh=>d3lff!jS2af(txaZeX z4q=g=iJVn^-m5-URE$%>%X&_BB?p3iodC=HB*s{LpX4|}LQQ71(qEpHYtNuJLU8e; zUmQim?w{fOG z$t@a}mxzu21T!ml4(K(8xb=3U#Jwax(Si3orw~oRFEHhvzH>#kZ$Uv= zE~{_>6NG2Y=|DFHC_@HYSM$E#YDO7Po8VeO=vRmFPhK-hHCc+r z#M)Q*fvd~SzEfU}&z%QsY_tz{0+ntPDhexgs>mnwc2+MEx6^F+&Fya;XzgJuLmezP zQYC1rS7qY#m+0-pt(RZ;O3!=nNI3Q`B_el)1B)9&*|N`=GzT9_k-26+#V;UL(4L8} zs}YM_LvbBR-TE=i0xlh-!xGp~DeRG`2OzMO*5d}o))>-9uaY9ZBZo#mk<3~E(97*6 z?0Pl@+gmw4pKjS)%-&OV<~*KG$-?mRCWm7^I;JDHOHVRykZb!&1SzW>o)NM=;@*Jo z!S-$e^f3|J76a;l!D=Cw6~)-qM=j^ZuqJ^%oxr32&7b5XB5D`R!iK}~hqTM4uEmEV zmhL-@MgCUk2SR{d!%|RW%oR+x)L0_57j(V%k zoYUG0t)>{Ti8aRI)4E0wKuy{ee|NpDo5T~cK_L~7qu|u9jXOml&muQt4^{|`KjjbF zPWwqrL`-A4;xwMV%Tv;rhZ2g;8+vl_A#aRMJ~q#RCrKHZj9R#~r*gJ0i%3hu9hBHy zgQC!-jxs?*G=cV7f3eDN60>vGshk(br76dq^F)rN5c8}vNvrUlZZqCdl|F0F^oLy5 zH$cY6VK=*CJ*1A)F3Z^3YJP6T-1Fqvb3Da*KKgRWZU+oa(va$kChXCfBG92pEOgdSeHnjaQH zqDL+h(Pi3R7nNIdyP@re>}1ZRba4j(MJl^L)#xY%8+u1iVJT?VuwVmG+G3z(xySCD zC0;Un2}E5?Eo5(C6U;qiZ_Kp__THV3^HDlEEe_hT3a5&0vz-6JC`$$C#+XA3!00`$ zMjKP35v-=Fv&A14mg=U#-AS-)kBHx|%;CGC44AA~H}o&y(Pv)`<*p;yF{g*l0; z@@_L;r6)wGusx|3Qk-+Q{1~O93s27bJ7dGzNPtoWcRn5sar<`#tDQZTZD0VCXA8Xw zTl1BIM#_Zat1gNp`|LN`@~C_(_OEG?vc`>ip#|B21x0tPB2godIz+P7UZ~aHs2r#Y z%~Vj-cv*+PT_luC(rN!cn2~nLAFhM4hFD4z=^5brhM_SnJ|%u~B~n^PAHTp|MiN`a ziAW^^Qp}%lG2^+a|1~3-5GJw8kZxB~@6ND}ecV4AShUT|*n$~DBp zTH^7@v6^5h-~^4Cu(qL4r}Q1j*@H>Uxwlk?iJW32(yDtu)(-K@fin{TNVUr7(_HO_ zZ%L@-3u7#shXE^>r%>6VCWxUV8 z46SVBNMy!|3GZMSs^%LuL3wsWnL^EjFBl=V)w;cb(e_tGC-E?&s4 zG=WrD=|;tulV5vR%MjK5h~qtMwx0`mPMKT?QvXYK|C(HNpc2~d{d zjrSm{y0jJFZVFq|4CvPtYK3?|{~cFIfwZPUad+^MYM3+$kb?A`fb<&8%|uqTN5y2XX0d{lVs22$Wd-ot^D@FE)avVPEV)^L&X&9 zTqjGhnS4rz48er4Ycw^AaO79D2l3ZWPMq6PLXf}eIwhzsTJ6gDd^SoqE?XC3@Y~f< zJ|tON9@c07HzoYOZ!U{$j6CA)koy@LcN{m=c zw4pWDM0;lO8eoOio58e!N7%T`QkCr52Ilr=n{brRthlra!#5I*Vmk#r)qe51lJjMw z?QLXOOjj0{1elkXs4qUzvE{SouwVih5<*}>c|Qf60dbDkb(iG7Id#6j8f}^p5QxYj z`HbofxMY1|@1_a14@#eic?X%>$yTSCo|={J$jVEnH1TA7 z{`1OU3El8P0za$Ljy<=YF1a-O)!90_H3AF%%TGznNLn23d3#yLm-v`jb0;6x5yX$) zojilIa9Q|N6Ztr((MI2_3>kPlduj@C`>J?BB&O7si!{WC4Oq5EgWxJv_bE{ZA!NKa zdZ_~6A4Wz9N8Wy6fv3KyoLTp|0Fv0Yl*Y4y3(g?lP$%cb0^hq)fgpyaV(3E#%m{30 zld?NloJrP9Mi~NDNq$y<&VhO0VaeZo`#isuh@=V9hB_b3>up3v4A-T#i$Q1L5GE5IHa;t6Hq!tL5hMPAiarzNbkJ_q)TtogGg0+?*ycT9(w4Z8hR)pfz%iO?V0cS=6&ax z`QDlD&Q5M-cJIyJ-MeSc*~_Rd2@S$cOXLSlG&H-G;(pS>L`18v5zKSMI(H)&Z1OK<55h$mL~+rS9*(nnH0pkpMKgtXSTgaoGzK<(JNDYn?A^_shoJN}!Lj zdH*Aw_Go3@2*hDih9TQP}Sr}*vmsxINWqs(!+T4CT$0F6ZRJIuDrdUI_{3I z*OL8{5*ByF2F?DOQIY za|`V&xt?WR8>tA>efc@Qc?^AC`#-pBer=0E2Xr5+^qAo5AWA;=Ho_1&^q+rA(ys#pP+fB zxcvLP(;gjvD?)#f#J}+CAy`Y|N_Di>$1V6<4KK}_>cta8K7xm5D{s+vl3(t%a}X#f zPj&X~bh$Ti94YpgZ{uOlfncSsst&~WW$0HE>+Y+v>sR-+iPR%8nj#Q#E3)4Px9aZI zJlXjr9Hpm8P;3lopKqF;>N{#LVmQdjV8?&mceo_Ya$x_%_9*8qAK`bVKBuNiuGy)0 z8H=>BIIC|NpWkEUII+5zyIY?3vWwz!pGiPwW|{14oF~A~B#K4xD%Djw_&ZbK9-xj@|2?=y!%zu#@5~Xvhgv{r)xZwJdFwMi06|3 ze*i@P=yyu{Ruz4}9Ba%|a-CCLpy~E|EWV>(BCG4NN`IM0n|Lgb=;$~#kJLHdbX4N3 z&l*y9_>}!C>iLr%Eh7_xKy{Tg%Crw~nR+2b=hyTzmdvO6Ean=_8v9WziLvI0Q+9!bmB0ve5Jja5k3*^Gy>|pE9;*nB$wG2?(o((ODK?E zs^%K-`D_RnKWpOk5Xr^CoBOW&oQ-q?{)0vG_~k}_T3yPHk`D_I;kdE2B@GSn|Hb#` zBoy(CK~;j=8!Re^2+~DQWCaPO+PukOpX~NpPDtZuL+#7vc(H-Zdq%xq(MGiC5>;eP z+q&^xNhZWP-n5DL6xl?j3A*acT!xvau5AzM{Hbi+UR&()D__^(RA$$n*}4JjIJq1< z*kzFEeAlR)VRBn?@~HNJkM!E<>!(b5Fp}Q)PN&)8TA%6Dx7lDyL}_Ato;Ss}h>dki zv#x0W9zK}@K4Vvn*Se(sx!)N#%R$*%e3sTqwt^oTp>V}3h7_{!Lb)^;x+t=h?_(LDi`SrcaP{6Bw#x*<)89?4w?^B1Izj6eR!s$dwW zX*Bj+x)PLAo|$9kSuxlAD#qe!$ts}=I(@9GU~}xPWwdjlutbb$@x|?=drrKPDsN3!UR0f6vdA)1qAb*)E`- zv=gQDU$`d?+cW0sJ36&oo~CKPLGzai{zZ$o{s99=mv4^#g@PBgYK_q${I^1=?7UXz zJ3GKvpw(nAW(6pG^+?Kd%6D%5a-bbAmw%D7tRJs^PI>Q-n=M~FF!wz@O+g+gee~j} zWNSKw_^bH0lg*!$RFhb3$S7tE-G#=Am(nXzrrSR#g~mTI%c;1~;-JUwBZB32pJTUj zs~coj=kKz4y|P33RX8z;2Dz+9Lq)|d#lCJ-RLn)6)W7QWw4c9SUK;~YR((&8^>m0T zIyuRg%%xCJ9y1Nfi*SyhmPZYJ`aC{U#@zC^J9qWFT$!;)*&3-fT*`ph*Dh)Ez02L+ z%ts6CJ-UR;xS63TsrIhED{++I%P1xTgNXQhBF`PWEvlXekIwe&v!DC-!vby89j*>1 zLA^eP+iMo7OroZ@@|v&6ru>Jnt?Artq>#Bs8h`Wo--OLO_3>(#lxb?+JF9suMGQzw z16;sg=n4Y0*4jVdf<{XQbz zOBlBEtGhxXcW~&ImH9<((FSv_C$=AApnE{vy|h0!t-TfUgymrk#O zbH*!hdXB#+`t+Nny4kd;N4_7Rea0csGh>K)SU%!%r8%6?`P35L{)cni?u?+sTx__0 z9qG zpS)}G zIaF3syZuAs_I`t`iBzh@#w!P|C?VLMjoNE&wVFn*jm?%j9`@HjS9a1_qSdrgBK}BN z+l_Ne8oHG73Di6~@j@z?5DQA^X7;rEr3Xq@)E^y(wLFUzHR8=ccHZ5XGn&}htm@>q zB)8bre=)NxQJn0dK-dp)eHnn62QZO+rwSS0U-AKmINAF5UI%u(ZRBrY0G~zKeSBq` z0rP*x;gjaO6wxKoFjeaKbsWSOG4%}?L>nOtjW2lY&0)E@`5E_Y$}?cMu3ZJUo{9Z7 zBnM29&wB1N^3Yn26WW6RjJ-PARA8atq&r6MgZI;($C$WJD?JA57gxVqZ#fZFgcrS0 zSYxCbPZ~MvJ^JQIiI&zRwYh4CaVdn46m@iZeJ>{e2RU&3hig>MUvw8uXJsAzC-19Oby;}Mi4mCj zr_6WH4n*xHzje`@OYnTP2dNvYw|3Y^7KRa2I!TwXf3n!PHw8?ou<&rvcpBU}@`<-y z6_k@*q?L?V;806i{~)SbQYq>;BZ%EYSop!HJI;m!k7Q)06yD{f|xS$y*gQAbn@gA-zY@>4ii= zS5gV_QSDX3FFEI!DYwa5>K-09E&6a{Ct>#5n2vZF`*&P7EI#B^I3;tf*e5Gy2FWgR znxrQQe7w!#J%!`8n+PrYR%uEfc$JwF$pO10+=0Gv{|+pSLmNuu;4#@05feYUacm#Q zC8HIn=d6ftef;@lbfvk%mCvEVx;cI3#&9t%xfgw($7m+fn>zC)ALsn2`Fvjazd?Mj z|2yJyqHr_MaO%21d;!t_FT^*^!vf7$p^TPqEMXL*_tZ=t08(x7SDP4l{pzgwuEpTA`_9D;?9xJ; zMz4)bt+nZmkuaa97IKh3%bY|fSceIHw>;%F#Zv9db8VpM)|O0TQnCD=4RYj=dFI&J z&&lP*q~dxhIk^`1DZ3^O=l8-k1RmKFPN80!1rMlFV6poaks~i0wn}5^Zp2V=)SvvZ zO>WgwmoF(}NTfk0;q;Se!@7WpY^_YF?oV)DY<@@CAL`)I`naLwueg>L>ob=7t(jvI`Gf3B0**;?7bttvS1E0eR}AFy0+ zqd9D>#^KV&MCTqVpn`LJ+H@NH|n)+K9AKy+ty_+BHg9DRKs%QM8scQjWns2kVz zWQ#jz>C*1Xx`@d9gQ2ajR_`3u#I)xdKoTA`?F(GV#qw%SuN=Ci9o6M#=4Sv_jR9;m z*u+oDLQUL=7kolz;>Lvs6Z|{IhH$9$i7tOGmrCJlmwv8Z&LgLgzBkcj`5yh;bMqc5 z8xPC@`7~B__95Ab4~1PpGN~*d4e@C1*IQpCyv1jJ6zFL2m&yc$`GM@m0iZ;}!FU-! zN%)hy(tV>e{yDDGXQ|dx+lvPdUF6TgszLU3_&1MGzROQ=|FT2%&A3q#Xdye>VBjGbrH-@}wR z#|a&{pFMABn#3EikG4VNYN2KY^6(*xoS|3T* zz=++ShnrUog{5{(7oWHP+)fmFDuon4$Pg{vM=hI11nztMbY2k=m8gm4W?fO#A;G!;LI?c(Z0M5|21*&y zcdyXi%A4%#^3Bk|xIgj*QT~>)E$K(Wac(ii`(CW}!vlO& zz*9D?hlEsLG;3VC!eZfrOVfKoPk6f)02e$M0eMdvPY|TC{^+v2lpl>5U8VR6bhTez z?#hjB4c7>RT#se=_3p)7_xj5K{@m-|SLl_kV6M+hciNtnECRMyT=LuHbgU0=N4wca z{_&c(c2_HYYY4MJj?Wyh6L#3)%cp)9ZhM5@W94E>w3T;HW1Yr1BiK!y4hP|W*S?-C zXfnycnr*z^)BD23rhh4ne0?kZl9=qbzm;ao9Q&d;$UV7QrIkYid=Hou{B z)Pnsigk7MDR(ZY(OsRmE^Y?vb0`vOb7f51=YyxAh`<^*bd1uu=NEXxZb>iE*b=ag9 z`WE|^5STkA`N`L1G4F@ps~RLK@donZtVD0P=};G&*@a=On^ zxN|C#Dks_tbjN#v?jp4#RF0<}JVuddUlj~Yd}=2ZU3f`$TsTf%I60cA58eFolx}YX zen?Li(y2LEYF>K9_L9?Q``NlTH$y+h3&C!{yJJ@KBTTrpgrh9OK{%0QRLy%cvMKP?406c$#TX10|(ktsKH8Z z!1KD~>}{w?GHkT}<-I#Kc;=;_>0%?O#>2(AIgoNHeRs%vKNexM$~By3lzop1x71gg z@sK!B>2hzp^Rzh=_p1ykrh?06E$n7R3e}5>7haz}7f*>vK&Ri;c!B4Jj#3l`6L@0bcK{5Cnpy;Pv%DMkYB+U}=n;0eD`QSSR}0~VFm_Z=5Mce5euoV35ce;5}T;9Z1)sBs3o%(~w; zv6hWi#)EX(hQ!;_5=}7ya>+Impq3f|1nb!rG1uk~X-_%;r1s{lYEOTk3-W&O9Y&P! zewnip1utQtoI3{XSDT}E_p(s!{^Crr z4Civ01OOxfrSt9akaQ{XcKnZWe7w++1G*lh4iws2e;rpphxv4(ITM2S_3J;9nY0|< z7TdPWa6FgZs+=Dr71n5WP=0g3`T1d{1R;x5^Y7kU4=L$a3XdvyG8#I)nF><+&2 zA3X)qPMb%JxFfBE&Sz3~@26Fn2e6EE*kLhKX7y;FdO(@vROW#Fh;Qr!DZqgfe4-4; ztJ*y%%R-&l@eE1sDC5_KTfr&ITfX05{Nm|DPv1s^}?U(s*~gezYx&lJfB3C{=zihLUf!NPO3gnl!L zpT(20Om@(@IbeVsZm#ji>7;Yu!xNrU+!Co)B)8Op2yJGQMg=B$2%H}A284hkhh!Rb z&V*a7nHn|-QV8=t=e3WBy61j5XQCLM_|y=f-O&RFZihk8Tt6vaB=5d^x&MBv9vwR_whs*y2;Jf#74M7SesEK&n%%{|LUaI*El zX>l+y_Q0%R*H2e+H+R!FCji$s2W~N)Bn-KAAk9cHgiqi+0JcX8uv+jvfFTze2-sl^ z0!#o`V%cGsQp}5rX)j#1;&d(>%GqBstkwGU3n-MRUukP=-D*R3 z`|4N-C@rn)!&4@jD99kM#C2n;Ig;Q3V!qtINK^muE3bAow1={RX6YH5;lnmR4 zpXZpoKQ7z2WOA?Fv~Z}xdcVz2&e;}G>btwgv1teQXs&beW6z}ZxqR_2EFY`WI9x6O zNW}PU2}}^qj@B{l-r+4JLe#IM+S#{7UlBoE$B}K#j8>(lDvYpGpPlbEoI)DPY$#uR zEc6!%0Sd9o2=r! zoD+$<07bb1Wyb!W+wTv~zEjWF46?!AbNsRv$UO>x5wXJzWq6?Ory0^VFsChen7HFq zqOI$-$LgyaFfO+0F^LT>N@0K=e@LpV=>4#Am8NMXjNUgDMvmh<#r zqmYUkJ0|vRTYmEAhz(;u5)AQH`G7k>i1M^A z!m?$|RpflY45DxmcobPvf|pABiP~;q`}b=iC4os>0*)Lzb;&k`@<|AsJPYVu0R6Vu z>?zcTTDk=LebgcD%rWH7xTMGb{yAE))wJe-d{ElgP-^{T^w%+mj^4BudbV+|kIkZ~#UCB)lXsI3?#|%Qhrz%E+8Frjj?xlED`fGn;tiUaH zP3EQm`EqBrd21U-rI{J)_J)-V;Zt$mqA9DrqQQymt26%amqYUgd!?lDx&A>5>R%pUfg3r{;4mGVjVI0@uO{hvL z`x;x&mDUz2mDnK=g89IvJqPpE?;s5|{IWa{=~vY+PFpi%uVX*&aNn@si2##JSL!)IMoz5GrbkkRB+NvX+RqcnmaWXG4b{n* zK4tR}l?B~rA*C9j#LV__&GRHt6CHxt(7_&(74?f`w`@YXh$w18g4O)<-pjV6pf~}! z@YP&*|LrrrG@Iwd(nUv75NNe@G}pStaKyl0=2TeSr?<>sQJiRp{pXWlssN`IGbCRj zyR1c++=fghlq4HFni!y-JF?lz6g(Ps4kBm9%WZmW>iLvgmJOCwR8Cm>vi^JUJlR?_ z2Ixt2D(5E+!8ka`p=%TdtvL4KX{j%S3Fs>Z>r%8uhqX*J^)On5ucj&JU~ZZ~;@;J( zXQ&oy2e~-T=K6uCT(>+B551aXCf?hjMg=q2QO4h03sO5AH(4}RaL8#noxS*U`ap{a z&i8=)Bfg4VkPjN^*QR;?n?Ii4G{;4WO-R2N=PA)5IP=q*eibGfu;1UbMxpWU9Jm)x z6X^JO{j(0$vhuT=#fUQ=GhCRPqrYCjduuLl(+kBunO|w25Y_-WXQ=8PFK@beT#Bma zTmMQe(=|xqj5*YT2&AJzJ71|39hjQh8Wiawxq_~vRXt|J-aumk7u>mAQ=&dKQT zv|8Mx@EY4T!j)mYD|c@ymmuqhvEVqk2?<^eu$DgMM>xVK+9~Iqyd+voDrzTSsl-Ys z{38%U>OWWqU?Cd1+ikMvO@?!3C!>8NHe5a@*wYFRSl#k$9#uEf>m%jV#xeXl1-mXA zs0HoLJ4wgUomb_K3fEfKNIL79rYhG5%4HatU6gN9*J#wnurcQ{i2i#nYy);8w&szV zO-YR%M(gaz4%lqxHBT#`hVdOcQwg$}l=u=#PZ{!E!;ii#l{E`g#^iCUckXHIITyxN zUjBHu!|_qz-NS&gj++ptE#Fj8rlaxn8xE@L)LW(No;rP_L=)3in>zIt+U3nAJ+_zV zR?a$%cie7D={7~;A6xjKd(Y_}E42%CY^@YkJ{YPfJ9fkO@k|)p<(yZ+;%M4{yk4<) ze80dYqpo7mM@yL?kjLji!$YfTOpE(m_HObPcj4j_)7iWluxaI9<&n$0tix?tAAi-8 z<1^3RQY(Daf-xc8wf}3*GxGXe2#0K3){&pyP7`)XcmjvJlp`&>)VO)<%{sqJ?~Idn zdLf6+O6gDEzVhC9DvrR%u27wPMfM3YW1!SO9jtu#hE1bMVQ`aD&*c0YgLj;;U~LAn z{yVLtnPTo(_0P2%?F3zd3xr613LISL^_<{Al&pUrObmeTfsK?mFCCq;d6i`69za?s z*cMRhegbPDPN;U)MQt`qSgP3&2ssK186=*GY)-LB+q~z>^?Cvy^}_4_W933SnpeQy7Cj7LHTpH;D%N$G9m=*$-+xzkJ2ctq8Kw5+mLUM(P-Y}<3M zvik0fv<&7h%I8bteW$zekJJx@SrB!RvQqHEcL%!b4CEk>+srggDytJE?| zzfMn1Vn@4lFWgaUMA{wamhGKLv$3RCPc*;VoW0v)7pa-10sVL$0$`kO;qU-nCER4%Ya>sD3iJTm1$Z|Y@iLd<(58b@yuhtfJ zy0&uq6isRs#uNXls0U&8gvPH{L5--2^Ehj%unJhqQN!09&<8yjhF^3@V;xZ1o=9$z z)^XWb68A3n40aGWVpNrHr$M@k(>u4>Q?_6T?BiX(%GM(w1G?!|)Fw!X7j+p9NTpo| z0l7VYc^rB@(ydM^bG(;4?zwu*Q{!6G@|)CD@jMPG^0PfsTUxIvdXQunV+K_nho+pA zOUMgREp_F5KHpM=PJib}G@HEbDcMq*DU(+SRtp?GC?^*M9L!T|-IFRN*%OB-dB2>#s1U|zZ^BcyWwN@FXTWkJE~qRX_=yx}G!tx_$-t8N$LwMN4Zl9L0NWiHy!Ty%X@L*QZT)G_pw%>;*lC8$sG((jl0z zYSIULz`v#DzbCoB_QWA(^_JiG91fM(6-ZAiL$}vLCg3)=J~*kNeM03toPKu0ZH!%_ z_Eb;&14vhqWD~SFanOLar-$T-GG_ni=Uye);&%rpdTv{;ksoU7bXb1u<##$Aj%BBd zm|k+B$&%t@A83cEIJKSJ*Q+ygCmJ zbZ84F5WJ|S)(^$yUkd`5pk=%0dK51D8c~b#dg%wt;H#5D*^)&)|H*+s7g@8s4lNl)QNuM9NJ#2x-bH!g{eu~`zrgDL=#MAG9rp_YW#3tZ)kYgWb>qKkciii z?hxUA(XqGwBG6r#WfU*fQi}hD@Y`JS2p%Nvh?6@AM>A|?Xqv#^>E&?fB3MLl+7)q| zz9!H@-`oi|jvPYbzyeHktk=X7aX0bc*W!}5*8~W)BsHHVH}CWHqSy0|Xd@rl{s6e^ zoRg7Vum3L-w=(emY`p%@a{p=KE=bTQY5zZ#F;yHBvb;_Xs8t3GD%lpiMM2X$5d~Lo z{~$}ip1U!HoBtE&5R2M|!JXh81pM*l5D@zV%~)S~ z%=<)Wbdw2@s7^4hn1@!+JDn$c<`~%+noU=mL*I<%5QU`9fkgZ{Ozc#HB+#5flOQSb z5rBA4?7x!%Bib{f>_#608tLaLHd)Yn8)hQMXO&wUP~i=EU_DKuTRj8DU<2}eMXp0C zT#jteLRNThZh%xq)HwG-(ro!`m;y@$?!)FA_zA=M18`rmEnF(dqkGKl?KvkbNylVY zPQ?t9-sy8@kOc8;d9V<58nbEU&|^bG((+g%y47)*jOb@Oa1@(a<9H1WmU(Hh4u4Ew zKKyAlWe)TAeZz$Zb~69fmfng?5O}h36|9(a;v|GLI9|fC8}Hb)h@Dn=hYoG++fqUQ zSgYh5enWS(e#4yP;Gwfe@&4gHAdE*xk6?Q$o)k_zxob>B)tW=Qi{jpL5xlk+x*0d@ zwmEa43D`$~QIm7Zw+N?#7~^b7W9?*bzNyS#k`6}51!rMHF2 zlh~I6hVE`?WDjPbw20ZT^KPQ&o{=iR=w(15K!D(d-ruaBau}aZBm~GP_gieLhNgmr z10vgsJvNWL|ET#c7qPSJ5WAn!{7vsHjP|ndGIC&RV_9?%vjv!=A>gR?ZAUb9I|HyA z-)(JeJ-LHlnYp%g6B3G8>_iF3o9>?2nOOsdkH1$c0kZRJOYf6XmtdYx{rzX-##m;7 zvXEjG@VmZ)1#5)cUgNqD02AS28#@fd-1G%XGYZa^CTIiqdyc?H@{ zJAv*so;=@*+$JIP2Y`hnJz^@n4>!VCqJk_QXo$OhK2SC_PY zMv=?1u-M0V=DTsPbl{A_EF=dHVLZbdYZKS0{bee6Ngw@#<9i1Y;vJp;eyJS=>r>r# z!&%LNw*mG&7*mDyRQN4VyYjNxcFu~Gi^j0RB^>aQ>O^HkO<`0EEDg=S?GDQxQw!SzAVhpet0Qyx*@;bSOz%j0@(SCRb!pI9pv?pb$`C6f^j zqwB7WxY1!JZbA~WpR`~x`asZ_N1u;52DHNv$C;s}Na{r8LHKT5^_5ImkFR^ettL}X z_=X5C5FoAR(C2#kJO|I_v|)kfsLdt5_T2+uJJRD5H4ZSo-k2D_X0BPt16-I@v#%iW zC%%=CgP&xa>U}s~d0{#LQ8${GgzMKbw#qx5T<^(tF`Mzdz-cSao;xCx6>K<9yO!lbXh~L}*+^Qc*jmuO{1ttoM zY(o~xE1@ox#Thmp4xbp)lI6gH;A!GgKv~7e?s0ZSAjo|0-#u29Y2;A{&f+^1KhySf zDeFe={h298`;3MmuCuiRmcJwd;{%u)@;0;Y>7OIK_In!==RJo3@Xadt&qK_sLsD@3 zx#2?cp@56fHvqi$NEW;!b8BcgupuTZf|CHB`%_Mu`_n4dFgd4WM~Yc^=t4a6ts-|V z2WxIQU6btVaV_FMi##YVb{sJ=!R#TVGWEuHS^8=BjQWB{{YZ@H5}R15L?5Ia;Y)$1c%r2E=tUBa+z@;I4yvm4(Az zw}RY;O94rnSQo37d`1VkDpLbM+?H|t5kFq(_<;0VP8Ne$k~wY@g8-$^*CC}SH#}yG zxcHyx%5TMcC?>;cggWxM?zJDO&@fjf&V3VTSnmq5D zrq~_(h~u{JskCDd9(vfP^JLfVjq`Ve|r_B2cGZb>g?V+`$WJpiPt{!2&Jg%u5mJh~tBqh{XZ8 z!yT1qG4!58r#{JuwDg7;Mo0)8brW2_Jx}SAJx)q+2zfTwps~1*Wbl_~CzV^`LC2Ug zA;j4nRXVZj<8$J|0Jz_WxO9fp`OlF5mrVSpWPI8t*z@jgS|IHu4&sxUQQ;TL#%sCY zjYZYL!(}?StExUJz1~d(xK_;rFFZ!H#J$f(l3qb#DXh~%V}h)?z5<^6 zQaC;Wgp_|$^VV-!FO8iLk9%X#Txp0YAKa<`@!@e}%#Hnt0(;5$u(sQX)O}Dx2J3Vs zlv4w$XuO}t6#iNbX$JK@rcj8YZjOLeP4o$mr<># z#AWHp121G~X>|}pGOdi>cfie851fKismMOrJJF3W_ZB6QegA^JUk=OvO-A;F@xK(< zsly8umHdCErvC3sT_~^td`){iGw380{@YPK4--`$-DSQwb0+FPy3HIF8xs=~%bx+% z#AP3VK-=e2q^U?lw{1BcKiIV@L1e4o`#*>PF%a2&ZK6OQOzA^Jem8})N$+JlGI&^E z_sK`LmEh}im&uW;)mb%K_bZ^~|g=RnCv z{h`F^H_LYl!)B6q`zPcyt~}+kFMZY&|Js3%c(Ci3;B~N|%oy+5TXhzju|h7R`76Zb z8twRExIeYRbTg;h(X|1d@eO*RhL>YwxfGLsr$7rsXwZt26s2yTv6b z9&cALe(`a*=lzcb<%`q@zEU&UNikis%Tn)ba|o84z1T~T;z_YbuuiYPNJ;qIW9f0^ zt>COuwk8v$RdZMpFO>S1mf~X-J&UJrtttEDTF-ce+-*K5e@Z`{zBb;ZA1*gI$XarH zNO7q5c%7Hw+ms9~|F#&~?OE??CvfI@mhZ~PLqNfgHynp6Xk!)`W)0T2k2N@X#5crN zq>As#Ud#ElLzs-FGI*Jf`5mHiqoMR_g4%aCv8++bw;}pF{pa!)`Z-*X^f&GF?w71u z1qac$@g>k}qJm7eRy-+Cz?2LiM?iS{k#mj)xhxq0=zZtj?HFp(JmF$D2$?tTzw;V( zt+O&e_`l|t*=R})SW!B;scCC6=JeR;o%uL{JW`Cnq<`B0JR-Bo_zOT+V&L?dEJz8& zh<_?3z8YN4A@)Y;C{5YuFzm9ICvPTH9Kg@I@xm+adh8X)w=0mMC3=V9%Y$}ufYYr3 zwRu}4Z7qXr&=T$ZW3LdyNE=_J_uf~6=}@7MZUtA`y+cc6DK;iJ9G_jYeW{UgGzG&h z2bF?Y-w94#zMposj(lZz#PEB^ir~|k8+A%jl&w3Y3V>e==DF?z}WBamF$kw zy|5pS$GJLIIXnt3=`)2%j)o$A<&~kJ@0zj(_pOvTXa1b`ekIbB&yNPS+lR*~nTVAm0-g(8JDzXEcsO%tJ08QuOPbpw)#8j#D2Vn#*d)~O|FG+Ju0v$4NQ&To|i7#n$L zV!6DQ1jQ9N1Lgg$ele+>ybfDS)0xtvsG$+hm=Ffq+68{GO0iIG1-srIf}C@Vt-qQT zWVtPi8d9xWJlMV3`(jCN2~z#`HYM)qW>5m2vekhAJKaLG=<1FO`Y_&ljT_$(qV1-|!Gvbc*VW&vk7s@gK$At;#dpRwhWjO^-b!XL2SdLyf8}Q>+uAUD z;wY{1r3>4qcvrr!I-G6B!X6xWHhNHvxG|Jt6cQ)oW}a)^^qPTD@v6uszc1y4@I0e? zFpE@@om$@{Vzlc@-pD>{f5uhX3-4QH-ao8Uez(O3oeqb39W6`F3bq;#S5y67xSqaC zm!s>m`|TBD2W#)Ri1yn=Yp2in$tUslj3NY++5htAi2QHK-yU!2suq@?y_0P=yEJK^ zl+b6b7hf?Ov80}QXPWbynPWzTGP1y#(wUmyFpT{+Nyj5gtUnpkty`2eS=F@pR8cii z{E2@ffyt!OF9$FFT*-KQs-YF@t2xW?-S@%j7YNlg4+fPWxdYNkk%x0;%{=<_{ak*l zlju9%$g?`571L?4^_lsT^$+(2GA+4ouRf7&c-+%D_{kti25g!XGTZpUOf07a-tYgJ zt!a4ovgmA{Tu`XUedc#9bXXS>Oq_}V8dpnAn7)bUS9j~MZB@#Um9PJb|3F=`A6%QN zP<)KOWD}>8#7nNVoe=**trvb}q9Qb!6val-2q|{>C?i6zq>`-VQdPs+-K^BkzPWye z(PwS3iQR~+In{6|Q+`QUqH9D=1V}YJxz{m7??Kb^>GG@;+l#?cEtL#G%HuiY*DA5! zM{U*JVsW+!o8-k7f0Q+xH3V+ZVavtXR2U}+*u_DhYR>V=k8vx2>_BD+?9s}1KbCy<+>(BwE zD}#(THZ!hGV8;td-&}iVRld=240W0BK_ClxTZM8=eRO2}d8tj6qNHe+S9^w6qnj0v z2Ky?=CtO?(_h!YNS%LvgA^kDSs%2LaFujj&_7^`2mZn{61F#b`%Uqda#cG}3QHp

UeuMDlNfu3-sMH`c>UGf&4gRGkGo_%P6HILzv}n3 z|9$l6j>_b%n|#QN!1`tkB70yrDhu+3N`Yfnl|)^^@65G@k*Is5(W#ku?w~|uOhy<_ z0QHK~wVHh?ldZDi1+ikK&-Px`;cYKsCVcz+#9H2&WdLZ%8*V7>vP>*7jeV~DfrdBd zhje@X_@i1%BZQORe)x8RSo2xB6LxfjWkg&WtIl%*@A6t}Q8?W1epL1x%zr;cF~l3s z1NbFH-(cOTvs)j=sMPihl(Ex!|Jv5d-K!_{@aAsCXEDK79(=2H0npiRq*EoFzN|RC z8JT<6;9@1fP0B%w{TGii6{*S)?lZ6K63XZG^cJtWFAj}Z^@ub;3G{NM7RPUOKKx-o zcTJZ2bvR*^Ekxq5af`{XHNzp2MNKF$v^kzR4y8Utv2gw_13G)XS(u??YJUHBpJ;SX zXTGEDz9e#Iskfj$4yOp^JyKLpZT@v#h4LlLW*MhRE&IhofJ5m0AI+DqB$M+?CakCT z^!5)|9vc`UD~yA3=gp@I3)Y_}Xq4N!me3B3AN@S@cqq9(BR}iw95P%s<7r=5ZZAt6 zLKn}@FwkVMw*~RZWmxQZ?oLSvE1I}P4RcTo3HAl?;eW9q-?CJ9M9Y<^f$bo&(XOsE z&tfUh_jZc$cZ947w3&*XuD6Muf$zeZiX7$PM&B!pt&JG`@=7C;tncNo8!S+IYUS#2 zvxG-n_fxW}au7x?lgIc`Q!IIPP*JLprlk|u#7npyB_fF4Sd00y?y;x2)WLBe$0c;s z$v)RD?7T;J1y|F&V%1}$9m*J!D=yChOpCD>6g@1 zQ@aW;V}|o|*00dyXG421geB>^OzYv>NVP!o3s;xQ|3}>(it{B?NUL3sIw|@^zDy=hQg4NQoj>HGI#2Vhk2AI zj_#TF0Q4)nv6ePRRUd~H#A;7us|FRX)iQr)FK3^=8O9$}$TD7`(SN-r`}Aq^XQF4s z(1nGOB+V|{f;@ez`?!!EjmaAP73qpEChOez{VYd?=?0sG>&D#F71h1ipaJie{gt&^S7)z1%H;2!@jC>~4gdWpGCp4IYe$?hU}~9hl>)j`*lLlp>L&4FRu|z83Oe!s@mg%$j!;`ZFy2Et6cVY zxQe(T{Po069i~cn{{_GwIfrl!kv&+93)c@2Q;?_A6I*B{OHhI{mKYz1esl19_P|7v zwAxw@TYU4(ar@3J{qr}IZlPXZ7ENh>y~@RWE}{Jri;D3@e`#&VhZ7`7sVl7Sc2i8! zd~+BNPg;ZLV}Gli=syLAw0Bwzw%GU`Wo}&xOYvT(dC##XJviIVf(7 zsG0ouxOmvUs|@`N^`!v%#oIyeH7qgOQu#Nrnl$t2Sd;AessSE`3G!2B5bgxH9TJC!AYzU9jHm&YYx?5 z-m`et@WU`DuG2fpSj*irlYGL|@Xh{`xiJs@eU4kf z3OqRSj|I z{*TYd#deoaH(E0b*Nb^JI==H4M&^nzMc`q)Pz5TC6wh3ObQ-Iss9Zbo z*(xvgapd{bN3jD&c?oiY@%K9%wPeoqr%ctu~YXMYu#beBA@{V-BL zEtjIxa9&Q@<1B}_z|M)1ms4-Ge?&XevBE;D-5ZtSXVmGY?zZknqru)il-sEvO(o3o>K&>pFuuoH&JDK%Ps?tsoa zyGhdm)+CdC=n;TU>~n^uKk<(Jh@OsWIap6y=d^jtS9|`V)$l>WHDV*QBG7ha!XRa- zjDaaJuWsTIJK*`()b9>g+;==8P3}iLj(ZV@SqhW7`RudALP%43UaPyu9;0ZdH1_&v zqDF!6OCi^2@THE7%hy@@Zb7x4Jny`i(uVeI7P)LWFB!0lNVPmNyvk!+G2|ff%AOpd5upl8oAOv@JhrwNg2X_gQ1b26WySuvt z9c+NPyzky;?{m*xSNL%6x*wP|YgSLMr~Xy-tEa2GS9ew2sAwUaVhHnsSW&Z4_+|!7 zfYQ&?l|<+vD44fSa#r}1FNTrCKcD(G_F_ViyK?qQj|P_H-2}`{xRP2)WHw7$!7B3C zHn$p1M}sj#azI%1+us*+Cw1uO;j(NsgObt;$GsL`rQ-o9w&Xacu@oU%$_q#jGcY!? zf*r0Y)-y3ogisLj3rE?G4e=>C?`7TNzmZh8{S1}jbNLf_2BJjdc2Gz5Q{SbI#<C^nBS* z)W=sIX|sh+uvR^?kp^7^PI9ojY1z#w%W&n{w7Fczv|_J?EkooNNyOv9Dw9YY%!b8S zZrpk%A&1hci=K{2-;eWdHmH>^;%+HJfHSZAKLWxD4YXY_DUZA|%$eB#U`Pza-;L^t z2{N?}zqK~U2i%GA1-f&^tG^{8s}h?MJtPrM&A{8B2{G;7+O>e)mV^vvWJygGju4-s zuAMDWinZ7_X}(!{ZulN8?lfMzfSEZn$uAFMu2lagSxUvuwzt+*OYX;W{6yO_R!_Wr zT+ygy(HL0lRk~;lPgVq~v1~Zr#@QVV`Z5M0*@MI_LTqlbw_Wg|ErLcZhgs)F$;UcB zNv2fgotX)jV5R2Ca09>lpxWVS2bu*t@sm%&dAFa9s`DGZsJdi z0h)8w$=|2J>iF64V2kIw!+cd?25}Qs3Dbe+)XnRbF_Y|%>Z}p(}?}z_+{$1=YNhl7&-AJfftYg)j`&vTB54wn^)~7tx1!%TRp6U%L)VJ#M+82~{ag z1EPfp`Z`U2W?A|IoG3WRJKCN3H~h{tcvKN;7Ge6U(CLv457s#rPQY{}^;G0p#y-!U zfdwypJSLP?641skDO-&|r-{+YF?MT4wEzO+Z0`anR zH}RrO#xx+q$_8j24^PA9_v=u<)VfwS2vHWtl+;$6&j1m&w zb%2|+2_!>{e?Z)eC`1{HoPVS0V{2gd9WVHmd#SamcPg{ICO<)6!QdSAD)nZ19rRdy zn8H>F*MrR{OW}%^ydg2%nyB+3Sj6`cWV;eE$mz*F&YON&_XE{I)!U>9&O0;G1Up35 zQC1>z_NyCHdX?T6w?=*%ybFfKOO2OQ3!ZhKc#=2ASPz%OBP-A^C<7ms;NzCh(zP*! zbe|jr?py?OQ1MvX=gG{uB%nd0k(fv49lz!{67y^=pokbab4dm%B{fgY(B*04{3uDI z7CrrL0sq|iBQ_O`g*~LqtH$N?B|@%;`@QXK#gh5R@d5no&46C9JukdbJw0&b*0&X# ze7&(ki27cWw$5+Cm1bI?^Fxk(w+>r^mok;1D}VSWDTz}Y(HP%iD9aC_9rnX+XbT47 zczr3*=zn+)Z{Kc=b^ytjmWxAF{t| zU~I3r2Eviy^kBk7&`wK^p`wh}@HL+;L|VE^w{RHpw1yqjLYW{YY^z9W#13^ z@ClS_TlkKNw}f*TWvS}@L+va% z5d36358Xaf8n^OT?L;f6#FLA9s9zU^l4O{m$PGD&rX;Y^D6{RLyiSJl@-@+EKM#^1 zoS*ltq)U}_4_O>pY1`rO{TLkr<7e;nJ37_SdzJ@%AQgz0AO_Mjl5tbweC_*rgFh%` zcHS^4oP{Zqx?l!NxUzqyxpDg(lS+N}+Xn0|hx{}n1pU*B@6 zvu$_BIm!%FzNv|jkC=42$2*tTNS+B{an7r{nkrLT z_=DvM+A#6RRy}-OY;j2JSBefQsC5b|C_Pc=DW zYP?4|`7z)!eBv_-$#6fqea&Jml8gpS1Z#LtqR4}{_)N&OCUFq?-uH}P# zZ1Gb3>mr)#dczJ8Xr$K^-kt(QV;WGDrWTC5<)?cJe{AlqpHXUHtl=K$)YgCu7UoG< zT`FQX9cAV@yQ;X=R5ZCeuC#0deu3rpiQhMGW6_}=g#{I{5*yhOC?q4cNt;4Xwntv! zO5_j^5sV*CET*PK&UeF)#6717D>*h{qxWeoZoi7Hi9zmmYa}CtFH5GN;NzR}6wkbn z{=>#KVxCMGKj6rZYI9L#&=;|}6Z}T>hu4eboQEYL!xdI>qAz7!>$)PhTewIWt>DJI zQGaeBT})6}yhp^AASZPhv}g+A#UF@f9sGq zeX#PLb^VT%rB&FCvRC>#rZ16{aJ;_J!E6-ew0p#W_@k77T{;>bPWC4S<1=XYnf6D$ zT7`=5yI8-|_i-&i1#3~U>5SB+QxA&?iMMZ|T2F0bfKBNT%(Y@gl^7g^Y;Kj`jbD~y zpShWgIr~T^NGMp9BMpXx8R8*{>fJa$n+PfO`L)X_(N^*El03RFTs~mR;2oF7z)XQb z>gQ*!in1ClNTyN8_py3!>(FN@NNf zQphqx)~{h^s^<$_31iJxd^c90@jAe#niA(R58|MjxR=DZ}SOUk^9U+F3n zrkew2d7S~6dqugUez<&roeJB8hY_)LB$z(M`Wq<$qe+mmlLex?+dGo?7M2q2`MLs; z7$hdBr^M|)L?pDg90Mw*Rjt$x3W~&4?WxYc>{bDYTxCe<`g!{oC9G=UhaC^!Lc~-; zUi$TNs8|t_CAVc=Af)guc|1%&LaQPNYVv$XcfB}6_NNv_+|JA_8}E5Gc>s5C3Wket zU)Ki7>oR3rG`y?|f)MYYW4KaLV|a;|NHILXx_n1pJw}L+T7|`P-hE8_)kf?(D(-Sr zj@H%>kYqtmm}#X?s!!C&S)vqwlzG}Ac6&8e@NCYyR`%y<=VbNJ9hCAZdu;C_2{Dq| zRpQolhCsMCAqjx@-|H$Qt)>EnwNq9##7i;MuA63G(2fm|hJNcD11-VWb*hjG3&CmA z6xwdHTv=pf_;t8|^F@{d)kEZyVxbr#kHp;SUfA~UPw&l2EPLjhc#q_JD9D3bkdDTd z>|~ou)WHMiX|5};FUr1hkfDa^gR;#iGhmy~V+&)A(zvRs5;~m6&Lli@FaC#~*d2(+6O_ z?q*2Go zOae{@0C~n&9WU_&z^I82cQl#M$%Npq{-B%jUD!Z%v?IPOxry6?F$vDu4amXvS9-AJ zA=75IW48LGYWvxowF3+}>&>}0A$5U?(cJdicbW%_b)X=+xKyz4szPvOvv@~m^L}+R z-WS6n-vSicyEKF0ehUQB3ezi}(7Ait`ve(#x^2!Rl@u^BGu;pcvFc%S02@PYQIZ5t zbfKI6w9mj)VfVxNU~7@@dv?(-nbXqojklE#AYlj<{!p)qyp9p6iQjL!d2rz*$WZ&3 zwVH_hHq~Zl=W^TQvVfKKd{LYxdRbM)&&P%+$CmJ=X2ODf#KZL+lX^StYdW$lY zazUv>^c)z*#`~=mCqz3!^mZik=_X@B;7<=*52R&YT)AG_6z6@7T z3%01Nnr#~hsDj5Q$X(-qjyf7B{niNQI>#R+@@CU*;!s0-{nvGm){}piT2N@@sPp*hL*H?pt$o4v z!j$1OVygdo+Sm_ApF)y@7l52DIx=;_er3upc4>uFew0OX<$RkkQh_Du%CX&yqy7uM zT>Iy6Tg?t>rMyFGn`MZTY`>`Xz==*~kn_&y?V2Z+j2cyt?IV zswj$o&>n{o3BxU>%+$uztgIaYtDG+r+Q)@Xp*tlX=QRX)ZTkf80Q7|U_SF)HdR+} zr4M}Gn2gdTL6lBY;uM|WF(;S{Quef=EU_QX1f|2wE0%;Wr=>gWephw=9x@k-mpXPA z)N($yuLa#{OdjhniIMJXKnA|S{|qaAcy3>UvYV!iND?`J+pG1RVCQNZjNvUd{-R0- zC3uziO2tTiYMj-a|yT%6Irqcl* zoEYuz6R}QI&`5Hq%nF}*IYVCPN{6r(7nKfb=}3(`2-6SI^;(;tiEB*GrmhEl)|qQimn=`P#KcTzQ*~6 zIx^Nn$kQ>%tW@72O?2XB1@h_bZ&ijnXV`Q^WM^Y zNhq5ucBs!+Zx&RqQsQFVHhu0N3g7o6%Ce0qQ&?6m2rv=y6cfJezq~s2Z)!jaO#>GJ zfb11ZQ;`q1s?C2yo8@)XpSj6Z#30q{_gIx^#vxX}iF2EGE81>cnjFHA#iRCNi}T?x zUg}ml^gVEK-esZ|Mc+!&D}S50hiYLoHNDw(MUU-2)}}!u8SW}w} zW(E?UFSE_(Ue})-%9b9ksW7DIWBEmluUSK6@WhUz?fYJ2>(nUXPK8(aB=!l;bWuAr+|ZlP_X^*+^^Fwm4s?QI75Su=g=|nlOLYqHinKLvDZ>o$j@U;GByIEaSLJddVUH(Z+l2NePx@x~C`fYJ%BWmvtp37(o_QmNW@> zUqVLvup18U3~z^WhLi$_dh|$Sq6qzR1{0rMnh6i+b0IgYQKD~X3SzJ~8S7o3cM{#5 zK`axS56ZDY~fbK6pqx}GR1s>dp%sDnG<1{tM76L_vToO2@yjI?}r1(CJ38fvr?Yes(RFUhptEJ%eLu@fupb|+T z*HO#0qgcP>TYkj=N-mukb|X>OpwsOyf| zW%^@aP%uRCZL+fU!%!&au(;upM%Bix9=Gk98aPWPln>=@#>O7KPM(Z=nm8n*TlUl- z@YT+xN=k^&)=naYM1pu}t_3w$MBtayDR)t;Rbr!~iU8iXLYB6)#cex5v1JceH{%M( zB#t1IxABp@B|Ewz`;Ale0|PkkX(Y(}jOkre3dA;HjzOQ5>o=0Rzlt%2CB9>w9<6#2 zqEr>EYph(j@+qRC+%~*vyI{EI+b{;=AhCTcCCID2I!V%L=5vY-ub`1!GB22gW~Tdk=mGS-&1cP4@iWo@pts|Ay!996S!VAO z3EZI}w!=RoCJ2#yrInb5F;<3OKOCs{&gQEN9`aGnZC~nk36N8PGV`}fh@I`LJ_2bN zIg_O}cg=lU0^47sP$`DAoNq*k`y($&mgc0L3-ZT>j@6@1hoq94Csai=i4}k4t))ky zBt>q+ZbqeTpY^^)SZ(tDG&K(-ydE%Bg*8`Rei8 zxRbP57mRo9m%^{RL^Fb5EgMuAf_q9LA)Z@I)pf-$GW!#?VRS}G8CqU)diSRzK zF5I;oRbz6gBqlyv?>zLr8D2^!vFFrr=9;JhQp>tGn9~cbLG2m7gn4bg(Z23eZa$4G zasU5+lgJx}vY7lL3Cx&x`7p+5{@<^N-v6IZ1@b?CLlo}e710z`d&2D(0rnYJfVcX7 z)V@eGBfjh}2k9y?=QzF@z4Ga_3P!}w)T}VA)Yq6OKgOLxdxKrwvU0PpB z&#;UA(6qpq&~-C#OM`z>U|gVRkN4=_qx|NMW6JKhG@Nr<_1DiKS2?nZr5pVzP+OhA$+&!xqIuj>d*FO7W|somap3Jy#bV->DmOd+n>r)bLndC~q7cE; zQ_ZKL`CB=NIdZ0^P8Vv=s_(@dG1qdGS_NAG8RHbcI#e#9z`VIDASbmhs)2cUEIQ@Q z9V*GiY)SyC-w{>^G%KYX;>=oT_iRDiIj5)BY9|-NpdwBUTn06*WQo6x!NABXcYgpA&O+>M6S# z(%HSO3xgi5hW5*_84a&cW~^4a)^82f-5*}>9Wd~bmED?jqEiK(i7FWc><6NM_|}7f8bf-nVVqf$;Ri6q@lSQUr(4B%FXm#hk1Sx>hf};qO9fiac0HsVk2;>X!yN}HHUGAd}K&|Vo*<74d(wlYV9uf9uz(w$_WXQ zJzsn=WrkS9Nn}}i#yZnlx;-6$H+xyuN3#LleTf{xiXtBK&sM`U)CH z=(W8IyK)8E%Z(gqAJz)qzc@G6tl=Q8fSe$me-&-{p(z(=@uFTPTf!L{n}CtnU2(kq zY)2#F%&jiN5y3Ucr!fxFv|1}Sx)U}~hiFRBrk z+$tW|no<4)li+f-xH9ngtAr}kqu(zqY)70j1uQfD=OVf_y2h#OJ9m^Hb6qn2G{2kA;d#IT-kR4hse8)GdrJvVQ;Uq>0*6FV;h#G9cp3h^=i;D7@QE$8r`7L9g`&$-E^h z^hH5ZZAHqYLp#J5<1YQaV{i;)a<@JL%TQmxV7yJ4E63Jh(mB%Vt5k*OY^xW<@ZiDF zN$cTmjyO^sR^Eac?#SLHoGcC*q%4Z3E(?w$tDhL51jK@22&Wy}(+$kzzcBtf2t&yQ z^@r_g z&+saQ8yNFW3p=50wL&oo7-B6Cd#La#7Y-lHi+yo@i&ve%R?e#>UEOc!NPAZVNNMkw z9tt0fM?2HD_|r)vvVN8dqOErqnO+7L9!eu$ldkx&dyz>eE91tkiFUuE`v*)xW)J2! z1wy*>nt5K+J<{T@(TsKncE6k5CdmXx3kX&k3M5kM;yeet_}*)4^{)@ z3?&jtvaOne*}Q#AV1T_ApizC%zKZ4F4SeSF5(+iyD!Lpq<{Bxm{<5Q;4v8K93EI9d z#+Gzrqb?@b*te+W+vd|aOt?HUwCsV1UU;WIBR0V)#h8je(lV*}4w}BP9=YNAQ&QFv z_rt5@%>Kgc0QP*?o~Zt4=vMsUO^DQ~0Vo*gFtcc%_O`m=MOg}jY6?eeVa~UL)Dz{8 zY?{cQlA6FfH5ir}ET&|7=4_I67&Z%~E~!A)xW~Iw#%l>Bx*@sc&>H$$%PDlIDR^ud z;J7-clA^AxvlwOXC|qzy_o94X0Iy+Tl<*v?%r{jDixL3l9QJ-JDf+Ipjk)sd?yhPf z6$Eu@gS~(TwU6)|+<>M$3s2B@6VE&@Zd|;u>MVdz^yhAWsI%?^NbKHE3?kOxL6=)b zOerxBc+#U5@syzr}>qgRfJN8>{JtGk|Ta%$a$L1%^Y z&xU4ext8Tz&g#qWXBY2>&&-D$xk>fzy>L911v>3-U{)pGw`CFO)^6qGf?jP);v|Xl#dU`B)x>XFDHVDjaokPr=C*US5CZHO1uprjdlhg{T zViYAa?In^<7h7s_Fh@%Y$}za-MgPN8B6NHf000a}4OTzBRC#o2+6nXA-hObhCJdR< zNGl&}Lt#ma(pnpMQy=0#o?f;v+bi9ao$%%s+7JDGJLg@I8(Hi$XP|h4QUr_6I22`` zveaIpusNgr1K)prKXj8Oz^~6g?S=kb9_7-DsdP%tr9$fu$;R^+V93F zVbqmLK|f$aVni^%X_zB)gM0@B+BskL)wXY{PCde~+FCEVtGmg7`bc%nlMI}#{pkK> zO$m(IwCx0K3kq#~btB=kU@E)=3GZto-d(q-Xb)l4ULCl?gso*WWL)+=CZ^`0m-sZJ zUn#tRT_k}`Rf0qCwHdK@ug;!b##z`?qUj+_la|nm3b%Mw=?8h;)W>zrA2jIAor?Cr zKBG-f*Ch$CZ#N%vv`nvSQ5548%N?XOz+NN;*VUFujVyoGFQz{D=vul>&#yfwwg3wg z=w9X{vBv(Z592%SBXwe2(t+I_`wArO3IoA?6xp260E<@&_9cU?}!7~op zoreTkAG0`-`a4+Fbt9g4R2sqKbox%tu~*YsYE!nQ0W;O zn_39~jv873RHg<30A&st78x5+LlaX;S3AScuCj{yuIBnY1^|#CI=?gTLjX%d2VE*> zOA9M|US|Qo-*I^#w*T4<1W^4gaWEGE2>+EKm5R(KDp6}YLn@B9Y|Q#BtgKX=oNrm# zIXF34nW)~eu)YJbJbXEsS=o6xIC}aWO89>SeahrfaG!8J z;d&H-M~R=@^@QtD1Rf=Ra@P~CM-h0G_{m*QxE@8|QQ{|eJ>hy3fk%m--1UU(Q3M_( zesb3nu167gl=#VAPq-dM;8EfycRk^H6oE&HpWO9?>rn(AC4O?(6Rt-Qc$E0bT~D|k zMc`55CwD#JdK7_2iJ#o{gzHfR9wmNq*AuQs5qOmN$z4yl9!20$;wN`K;d&H-M~R=@ z^@QtD1Rf=Ra@P~CM-h0G__aLWzowK1Mg*{#!Faj6vRZ99-j1yAjZ>MdkbgVc_Q zgF5z@3F!hYmWupuTC>5bd$iG+l&_396pGRfYCUFMdZV; zAtvHG0x8K@XXrviOoUZJ%vs!#N{9skC)WwX*W=pvqBmE&Uxz)f;l1wnmHAs-JDiq3 ze~qd5lq2Mw{jiiLVGwZ=9A@x1Fjq|;0e|JCBm*5T(x1%Nn0~9Y+@xWz5VY_2X+auR zF1IFBiZe$TiAR0$xS=$X2;pGmB>@B2#dnkLmQ%Ci0&-SLA)9 z@yVR`JA+(KGr7___EGh<`4yzln0?6q@b%?*jyL*IF-m->*xuOU`hwenFK%fUt%Up+ z1$B^N*1Mi|+#Kk6ItMKB=XB`z4ZljF#C zx;Fu1d-14hnhpXY-%d5wsAlH%87*cZXNwH6)K{ot8sId$m3{XgNx?%0_$E-joRnL@ z^-<8VL&33g`bdC3_}WwjA+K)}LRuY!_60#WI6H0(UShWQ@dW?J6dQ+#nl+!S4}7-phHsLd9uqX;uI%_g?>*!3?IZ=B zDGyv;@6q|x)Gjn5G|RIo{^GnHh3rWTBf~_-G&Hlxbyj0Vq~W?WJcMqskzgvoNKPz* zR2nP(IV|uQ$q$_io}x5hvCB7oLr;OdjH8iLWM-qh;+E2>(j5ZAW; zlxSG2_rj4xzN(2+7P?(~zTSlAr~b5H3yjrZO9}p_2KbQ1x;fyPQLy!_ z*ePkSejS|A)a}HT#mFe@$fu|dbcV&<&}2VMSC1p+zdp){+W$ToDg@3r^X($1gu{+G z8~y#_2&8u0u^CZ@^coM#m#=kk`OopveL*0&?vtSVWf&vMXIn+HgZy6khUFY&v*QhS z_&*wp2Rrq1zji$x>}&_r2=FQq2K|cJf z#sv{)ldXTE>KX;Vg-+NTnN&`xv9s2VJLaSEpQ~-*WB@Of(m{19N*u9vK^ka*Ln_6t zNUN@HLX8vXZaoG#fjO@T^s5eL7p?H9#0uaQMClbyE`P{~hnue$>XoUCY)5c4MBDZy z?jpuW6XxktrH9}u`j@VZ>MT&C9z?|3P(hwo{Ojx~Of_(&)rMa5A$#Y+_VnieTC^XPTi7T_5}n_1QwHz6~- zlU~n4=0qYfLg=3DNpkCjepakPsC+sZV2k<{dX+7e4bDe%gRS`eb3FRViSWglCgAx<0ll$KEln!lP>6v;@a867!eW8}fV_d2C4Mb#wYcmCuY%=bR_bSq042YmVs_1@rjzR?*o@%7seVMjjJ~hpTW9lQR>t+?5v*o1P*>I zo1f$I0&edH887n;#Bd#n8BccUjUA+}_EO9@#&HBg_{p!YgGm4CW}L}fF4~Z#MbgQl zUxPySN>s59*?B116#c)keeVE#=@tJTYZ6t6O+Vk!)1MNuIdYPst$AEC+_E0(rG4T> Y=}EZ1nCmV6*HBBT_p)NeB09eR4U)n7>Hq)$ diff --git a/bomberman/frontend/src/main/webapp/img/tile_wood.png b/bomberman/frontend/src/main/webapp/img/tile_wood.png index 32c82ec421fee2361713f0515ed2a14fef8335d0..07d44d9d5dc7e9de9c24e2b1fb750bc567f390e0 100644 GIT binary patch delta 2451 zcmV;E32gR^uLHyrkR>5!K}|sb0I`n?{9y$E000SaNLh0L01m_e01m_fl`9S#kwz+i z2|h_gK~z{rjaO+`ljj!Y2Nbc@E@#GoLJ}Y(VF<(^pbR342nZ_k5C(w&G9!o}Q^Jsu z01ns6;C0bGaA>1XASL!B zZ3Hxg*qo%#VNN^=bCQ7VAhOxd`9#QnTKT{D(nisD)Cu}N31b5L(czH2!!%Lhc;Aqzg{T(1M@}4W06=2TH>2!S^?W19Yy$Qtpq=;72{Ef z3h!+ur0~JRv^>?&9Tj5Egk$pV6|6l<#d1wDmg`gCXw_kC2p_i({PzRHR42(`Hm|C`^9ltF>@<7_rJp z_v3VI^k=}^M|9J1Zw5B{GU223^<=<5V#3BqmID7#jB>8s2v@rSt31dW53tGuxah|} z%>URj;p{fztAQ-oO5*|tFso00Vzx?)b*mn0y+-)^xtWcdaYMx^|L7kgCQa~<6NfhR z9>pkOONWn}_g;Iy|jYW1u1d zgJp3rsCWQ%WH{b-Wx{mj9DaFG%3!>S9~~tMJ}w`^(qRpnidU_j3X@NuyOKfBBDv#S(YiRbXLJsleE9j0aw-bguxe9b9zmc*g^W-K}j zKMn2qk!U*xGS^web;SXHbaQ>j^=Qt;5>Y7Bo`UQh7EdlV--t(TZY)}h<6yfThu*s? z^i}hfREzy5#KU$BWbW|Vff^Os?!=?!Ml9+}-6whjf_@CENQ8rhtbU__mLF}BKoVTgTh`X>mt#nQQ-*dk50#Ma#OUEXE1JBi6#ry)&>`CsJOCj& zAe$+h^2tN+_hcywXRp`Mc`6*Wsj%0iVwJZkA~$_E2{Tn1KBSg(zl^f%FHvDW6F7h& zo;PsqEE;);AqGiTQ8eZ%)tIYR!%?S$<6$aXZ3g%#9&WjR9SV(ilvhsa6(~>7Yj;w} z?38Z7vX!<;#~amQvMLcBg)!(QyKJQ@4Buvu-eO?hRKX&zKplAk){;mV$<5)4D{!?K z;BBDj>5DaAM1`~ov7xrIPW%PO#8)}(EtB8^um2Ki^P-V>kwO%IE*!O%7%W=TG1r`m zDQ3Z`h5)96m}=m7aBQmX7|8zwN5}b}nWhvBQR1zCx3%al*Wz(SG9K}@s6+?UtOs^_ zGGVPyWB0{1?9b&<3$9`JSuS>_gJ4@3o3dbcmUfo?7kSuQ2!idvI6)sW_dDhS;~(bp zaj=+=|9FbfRjENQY4`Z6O@GrW@ZL?<}!Wn8V)ksXA)$$heD<7dOD;_Uz$SXIeC?(Nq#O!_Q0xPBg~abIHOULq!{k}y`8sOYu3nYCS$9@|!G zL3$YZH4BFOK8&(K&F zk8xhj^Ty=Aayi8Re?n+oBlY4CrUgx@=)9vv2Q{FJwv#$AcwdK}YE7UXkXP^>xok?g zKu%x7zZVLy&;I*`e7q-b_sL&{-{kXN5TU-J4bOvpws$6}86y_#OwbD0-=qD1Ky5f! z&ZqBdiVk$%)1aeVjT^czBo~Ck*UZ|Tyj|;}Wwa{^r6mo^)PYsf&&_#{!~<#OqGm|n z&DapWi*|U&`EL1t`6loVu`g{Fr5?dIA|s_h1IjL>ntJ}p2)iNq@NS+o>H zVwkDY%}r#|AzUXDBqO>R`5RV$WW zI=>C1BzI5?dYBOh$bbfB-rJ_r!FnJm0uzjWFTZ>gfngcG-fd6{3E{N@@>*(n#j>{d z(xJj@K4AcylRoEG`NZh;Qd$uc1QB?fj$o=ujBh?H}GG6cTCmjFv!X{Esh6} zbZlgGTF8jBX!!{)V3s-->SJ(d&DEeEu_4HKa!dr0V^2cQFCslRkG~L({{v@6F?*pF R@hboT002ovPDHLkV1mX%p^5+i literal 55180 zcmd4YbC4y?|1bE)v~Alqrfp1H)1J2NY1_6nZQD3)+qP|YpPlFV{_aNHdv{|u7O`7# zGT&7dnH72B{BhzFugY*mc}WCVTv!kg5Cmx{G3CEW{7-|1{M$Qucs%@#Z%!i8s?dKA zFKFYizt=GKQkqU6AaJPvG|;(CpO3#c@twsroK@^ho!tx^O+bW=?F>zbB`h3G-0U2! zoQOqLI8Qq3qd-6q8|)o_s{hWq)Eb;;-ErMbf0#a>HN;;3`g}+0SpK>_&|VXj7=cYE;dKVl6{0$x)jjEUo!$ie zeu}>aeDtXZZg<^0Fu5^(-Og^x_;$B-e5MY&wg6#$&l%2$jBrTkj6*JFK%GIebyQ>R zk~%(1^e#n!NAuUAJ|}PKC7Hg(yYAjx_TRxte+LhDQ~&aK+todZG(5TfQ9I*ao{hvL zmJ?8AzjMtSitdeUmcZE-#DL+DJl2XDigimpoN&ckJXc~Fba>raO^@g8r6>El0%!}Z zDugu-49&d|QMj{v&sVn0#~gQTE5*csuvDs|ZdM$3l-q6BnQIuBhK+}MEyJg&(81lb zEc#(cEuFif5+Oy;m6URYV3GvJiSmlzgR* z)901s5-{x?aDGZ>o(Q=FM}jyi^Aa&u78aebm5hFj9JFy?uZrq+9UrpYpcMv6x^10A zDxUZu#`YlYPpiE4(63~dq_pR}(^Vm%7d-v_xZ9;zvTcDjV(*ozyT$XQ+cW1+$TRq@ zIqsVI89`FHQu$JAum?XA^Pw5~K6m`JFwvu++l=pK+y@urxL2C zo!jYGsKB4|5T4y^mkE&0@bPsz?-zWZlc*7Z+?=Fum6;=@PKZ~swBQ*y=wolzhbj{k zXDs1;ackK{HuUgE_bMbty=wd9l3_jM^Y< zHRW}2a(vOHNJ8vzuJh-4E9gt7e{EtYw`@zt2u^Y$;Icz>S8+3+v`#|0V$_LLl{P;? zNY3;pFxGcB9QTb#3K*g)WU~NG^jNt+ZL8;q;ed>YGlzOQr`l-I-uT7xr3hSJ5D5oW zN{#}ZKYMUC%@TX$i&;TkI4#GWTHu~h z)&7KU3$c4zU@E9hmWqVJlJv6-sS6DaNmOx=veO5HKYhajU)@RB5NX@J_!vN;QSUYx z;X>`d9FgG+vPLO6*Bf!`Dm0_uJ}uH97`)^{cEqiB7zV$;Y#PQ#D4t#bHUn7fafaea z6}&@4ULXTgqwhtH>~6L8s=Oq@GDEj2BxKx`nT+)*4g~`~CHo8F2Nv|cm(=h26YgXG zuySAC+x&a>lzvafm*k^x=vZgHTeJ?;?W$sZ;}`ltHBU{oM_Slv)NA!#-7J!+#9tW= zULrT!qtqhlV-9Rr1-ZK|b)hz4BN!mzf2pv+_iDWn+7d>Kp3gJ=OoVLJJbsw|^d0@w zQ_Hl}Et|{4e~8j^x37`Gptw~}|N3bI0>w3c@u5Iat3wB`oK*T}R~+ zmX?r;s8b<-{uS!d_jiENN3d-Pr5_W6w>5}3EVgE8F-`s3aI5U6PYg#%ioDJ+nF5NQ zbctq#`@3&sK9h-~#N3ok_e%*ZEv+kJnN<(}S{AeUv#{?{t3Y|6 zxvvfN?}bp2*WwW~kv@O!r4~~p;(^j%x^z z>z@aHSC2MVjSrPAc%m>nqCw{*Pql}N;LS4J%mW2EYQb@dn&W3Fj~c# zjZm7Tv@iaG`T_D@u*wAF zEb)m50U(J@Qu|}|mlbaywP3W{xsR6Y;s=`Vk-`g$j^D;^@P@_5tP@lrX_>Dg8HxNX zj&+u!|F4(HdaCUeH%8lgWz8hmX_2gX!&ed;V8Z9A%q4ET4q-Ma4_*67@u>u(2OUl1 zRwV9F%f3nV;i2Ff>E}x95S_<}&bvTQc_Se%|Bq?lN=AHe>b(-*waLsq&Z~tjP!i{J z8#~W_TW`93qK!k?0vvG-{;NY69As_yoVLThT=Y)!gKOiY42cXUABs4yp_3RNrvI7b z1(jUQ0LFY4n#}VS30G!(UG^MxMOw)VZTON+38L9?1>Su@dCLe+HrerBva{z4uOe@9 z%~y2PH9?{p71|k=%_ge{iyu^rVMRT`9~9RYoJcHjo1u3OwZftq%lMM$7lCNaB<_rD zTDG=#0RwBypvv%5xpcQkdbe_#s}9BD5wlk~n1xnOdO30D83~Wk^XRL0dr;iv z__+4?4)6dj16FV&0sLREQD4%NSIctNW#7xvo3*(gp00VR-T-sseSiiZQ|$f($Crh* zl3miS1|ZoqKF+vMRVZgEkT)WhGgl)ywBUn>nDFyky;hrJQFvps{)$PP<^-A+=$6Cj}!{6xJz@_B*ZZ-vgJKqX)hN27tAKsp)_biY^1Fo|pR zUe&Et;-7F}us7F}5I(uuZEvYAd*Bi>M%xG-tIoR239T8+-XlTchM#K1K;7cE52~(@ z`r7~#4fy#dAO7r6a511I+dL5SWttg&ulq-Rvl*5LXlNP4l9$5euVwLD&%5QHM(;%W z3uv!ZmcI{4L;Fx)u5_k$!MK3@&sTq5M!25{yzx;j8t@p%9w~Y4q^ub2PbhzLr{rcZva5MfCpm44oPX!huc6`9R z0}`G>+lLo#1mf~27*>!vNW1jE_jUzF*ySyIqyUh3; z`Vh#9m*UzZTum3@UiW=H9o7J900+Nh30HMqlqn5`*wAs?3l3hmHdeq$I)4>@zZnST zyEnQu1Nz55EvDpLpM_f0?;pZBRFs(My3?OfJ849I3hDxVn$SOyHtV(SzpxPRQ34c` z@1;MIYr+0x&Q;QI`78wqreFq5-%MXJZ8}h&ZwDoVi2fkPhExyAT)AIT(R46ZLL|ep zrfWlnMu1b)@ZEa}+4llVXt_>S6*K(2%|+Oc&GAD$FdLCN06nA~a;!vQv>80Hv?$X; zT*5HotCUK%q6kY8nDZ2X9ED&=afSJVcR8(4b@lj(ygv=(s?M?T8tku~0M_6WcsKK} z5HRYzr`{tK%=dPsdPsfYXWe`N^XZ6O1AOh3=nH`eiL8!L$Yu)_J1jOB!4FUgzASAY zud%c4_6_P^BV*sy`D;J1l$+m5LYCJW(DQfW`!o_`j?{Kqeo;BDfD=?5t#Sc?{-ePP zMCrs0b8KV6p+rT96SrlgwYfbvGDki9?}B{SR%o+XYkr^?>1&?#%aw+ZwIItH5I2OX zcONo<J-u&GG2hkXW3=Y>{#~fKm2}Uv#&#HLeuU#1U!(y2Y-^JJ1uC4A@3sP+IoIm$L z9M^9-@$Ir!KZ(f9>NYJpaSoNVe*KESR}cMpI+vk6^=>nwsJFRR?ni>+~YJ)ETEJvOTHo3}w%7?8QZGXf7& zAlY-P)2S;8x>xxAY4p{r82;+n)%$Z!;?@@r{p%#}22uuKb);|by*CK3tB#lJ6+CVA ziz>y<3w=i9hW{M^#ixp^X*EO&&BWP2Kmt!~>c@|gUlS3H))b%ZNJ$y$){{HgVG2ns z7?K-kbM#^67DU*S9F&Q)Z=jg-aVbek`5_Y}wzfkga@Xb}{UK=i0gP3?lVOdF*8)=E zZq?aQb#DV>UR@o?3hMwvyV>cV0J0DM5(H_z3qe5}Mx>zY3&A*$hJ-u4b{V%*#?7J* z=hUmYuC5KU2qr8&8bazVrHxP1hC2z~ci?tQ%R3RgOL;C8E$H8x7eva&N<`vqYwYWv zy7+JVzje?QvgLz-aIe`|sjB=fiM?0d)`t=VD7j+DuH~;r`6eQ#(qFT;RUGRQb_%2- z5>S8aQBZ47MIyEKEQvL&ak;;$ygi={ zPjoigz9M&T2eXf!L$akoNYPBg+e$9@uSo?lk-|l}B zUGXWBP1Y?!^4z9l^IhR5*cX46KUwosG%+%Lzr30q%sy?2&A(!!E~T(B%SCkbSP5!& zk^-!G|NM{;KMvB<2S@@!$#|NVi}kulFsQ5x*!+yBd^`tSV^$U=5j#d%Itb}vo@!I5 zH0Tzub1XHougYRlPjhfpAM^_lgQsA@;Q%0<3TP|v$w*_8E1YVkW6nxJjnhQ=LZ0|N zgDSR|vxJjubmy_n#5`-3k7hAb0dHi6suF>mQL|(*vxGZN5K@i1*OEf#48v!hF^l;9 z^v< z6&_<=wYBSF%k(edq=axXMC-bS+REcNKLwF+X(tHhnvy&gINLtm8Yr|(Vvcx3ht#JF%ns3_%FNJS8M)sZf z4gku|BtvqV4k01Wg#CRshZ@>=#0FogUOFX~tnc{S5_AF{n@j*x7=6RvzJCsRJC+yA zWT%LQY&o0Qg)#a%N}KXGE7*o5J>CwGNj>mB?k)~kA;_%A`Uxk zpoGaxDLifyF}p$`?SPrlScO8?`Qqbrw{d*@AaXsn$dX8sx760TP0Vw96&pN01$G?_ zWn`~0OPUU3;<&zJQL``7rd)bUxJAT$#7ti`63jNod=dGgLA-JFLkq@4E0zti&C;eTfCTe9g>ae}+{ z`Dd^E0mSHq^rmV+nRWCr3HwxTIpbz1$X z95`^z9j%1|53enm%S(terT!6LEQ}9IDNe*X$OL;Gh`fatQKrv2=7RE0m9~JGz`*YI z6J(q8DVBm+B1<#gj^Ia<3{;Cj3OE;t{Cyub3~1>w+hFV+Hmkxg^$=h(;zQd!Z7-jH z8pH7$ch(WN1fV#|2b^0xr?!>I%s~=y?Drf*qzD2|-c+0l8!%ePDkmuc9LWqsu{+dG z+GQ~**WemLD2F!{J(sEm-+Sur^T!H^gLqQ~Bx1tIM+ZEPVn6?i2ROht#Lm35z$}e- zv`%Lt#fpmor9nUKx`)^o1_-6gvI?3Y=Hbv#P7)H#*H#!%8doZ~_20?PRxP{%_)#WVj)S5!xNWY!UNK=64+vBSm9mCBYj{%#qyliuHlyFl_%sMxK){6 zwYIDX2*eZ+{KnM=ZBt(nHxq=qdt}b}oxQBh9#V4y`k1o zjDhok-{p6p2;j|W+JA+Lb@YnsdLe>u>;(HZ5!zG5K+n<^PS{`8eLITy;1W{66ccW=sZ&A^07|u z{HQt=dW{e>9E{f}_wpBKgQtQ^fRvp@^nzWtquxnw`EbS|SfM5K!(g^PM8XyJDA$)~ zDtm|I32S@BLZ{PdL!@M-K`29QzIZWCr6S-sxDOQxxE7Q5XZ2Ks-=8RHYsEl|Hez!L zhU8@6q~{v5INzUf`Vy+1&<4q2iXT~8J){^giJotE4#yu7CJj3`G1Z@IOj+fUpM#kY zy^;Rb>#KxpmP(3I#8TL!A3j)35@Xs;r|a$m;(Z7fhzvnODJLz$L-9HjvLnO%$+|N{ z&KWN^B2g*haKx+tE9gMenTJyYV*>a!e*n(PJQU`3{7ofCenq+bPXvQWVyhwC5_<4j zf{yYS7{~9Zk)3=O>TsFX-+%Vk{otrDC&(?ti^ncrWO3HseQLJ5y3WOO*>~bK@L@-E z#S*0WQHNnBEjr1Bvx}~F_fA-ZJfiSC;6t|rEFA1sibO+1o3G`m+Sde_+Jw!gSEMx;W!_SywZ#fD#zVCjbD zP%`@?deNY4#|5S>l%C{R?y;r4L}__p3_J%#+ChWJ<;`M?yOTlRN>kIWvY0`{lu>G= z!YoxmXbaaO_4$OOeKX$?%O+rAbw|G79bZwG^P@z|(}c74&l&yZAlf{u29i0$b~v1c z!EH)1w%Djuk3r7M13O z(17{*`bs#Pn|obG*-nGD*@(FbMz$sM<133oqVx4XE8#Q}$y^lC?olV2IGz$I*%3CE zlz7fIxu~ENiiMepRJ%|rm18rhbe1Nyv#?}J>qlyo-0)3l0BBKg5b_VzSBU#vx;(Bh zkv)w^ed4l!;wvh4E-i_yX~C30;g^sw#G0$ri!h2@T-{kVsk&5RiIuLna7N9r#mopC z0%j(#DV*>XA&IjvgeyoY{#4^8{>E6;bLL&Ch}M>~!QZyh+TBV&?X6kalBjLiouVwq z++J;*W2y}2Kn;F)RrBp{uj_Z|&mV5zLbW%jt?Hon=rR`@GtF>7;oTowF%X5AjeHOetCkfN00VDm`hyw9ob@qxS&X!r z)nqzDAV%9%N-a-AoM;78Y|)VoIvsXCqS_!(#fr&^H z(WZ_Xg7!uEy=`^5$GA1n6o!yG9O3WD#8o=i z4|bzq30-qWi8u6WaH97$>ePJ0A#{EBqR5GVGMf!kLDh$C3z;1T4nuA0Ot0{_#zONl zbkpZ?Hdu?3DKP-Pzc3;eCHO=BihI z!iZf;D@eij51zhjVtPr8=*Y&hUue+@>`9EtdS`aMV&TWQlsdh0`pR`IVYjdoo!u#* zZNFpl%I(4Y2w5+FFvrDf<}ir;K@=Hd-KU4}w8JFmx}5EfmmGfw!;!UpyN%A_dJs4g z&tyTf7=4#Q^p3DZ?fS4kGAk^wh;i@U=admak=1~t4ndTi<0M4qnP2!3ki^4Z9D3bJ z!X)_nblsEZnuo7HEc-T$5YfHrBi^I)cj#*%MaPGQ3S&{(H}22qLJ~s`LApwVgWsa& zuZRmr2}4VoBCxk)xe_sa#g(&oUtY&>xXFPH?7Q^MT6D$pPR09Xo9bU^H_xp{1KJNk zgb+7aEv~k?Z8Es|H)-|-Jtw`p3=|~*zj-uU5}C4 z|1^lQW&eDnvtrd9Z>4SOZ?>5pf9G}ErCtDr@%2+(v%2O0`uANfN+0W+;69d=WnW}> zJ)V?Tc(fzM37jFe--RzOI{D5|>Mq){om^QUY{LjMi=8H;Qpms0fqbiMI{B5S(7~ch zQ{m}v(j%E%BfpF*V(sJJZkoEp(J1jSt+AeCZxb2A`-kFDVJLSai2SC zH|h=Jn;D}Q-_BZ(%5Z_r%O&W%-0p8*1dXF6eyu>DUvu*=A>pE5UB6Z9G6u`HyHUNH zcgjkl7(*c5)+u3=Hx_WH+C#wsV(1-mjqteRI@v;)>6-9j@(B9O0;BOj*xJUt)~;*6 zP5%0Oy|7^3W{<02Vs{=Sgh%lDP@(30oTha>2;ZC#{^I8xnVo2yuNQR+v;#DHv8GS%=tmY+F z%pvXeKk+r_PlCO=H6qh~PL+2^@g;QYG>~~wCoyHd^LLo%uc$b9RKa!f+{7`r835AzfIv>OJ->~lUiGA>Q z=zxUQO4us5Yit=?!#lpRN?5>n)vIYkxWV-SC=HdN#^&CqoXdSw0#FLVF=vz5&x?1m z2_<8gd{PNkVzD~|0eg>40adw05|Z^=f`S#l&*!g`mfkKp!m46_32wca(Ny^s+;G(u zzYSPGhnbC?J&Og1Y!T%Ch^KaJ31wkVct#=PaTFVZ_0%r!bR~_s#~qqZT)eLP7Jbpd zA8#1%TLQ&GKHzDt-8(g%Eb4K7DAjP${2)e{zn*0?L*i^(7Ck=OtXXO^v}BQ4+2wHg zr!KJ;n5PpL?RH574>A+jd-8PEx!wEh+-(>vxLvG`xgMeSF~Gq>*fwD$ka7Q}T=UMX zKU(z5MP=<1`N_Ai^x1ZSQfK9DQRIAigXf&9YO)DJN4w|WZru!2FwM@tD++;W8NV$j z0mD$4+*zc7lJStIF=&KCi^Gg;p8Kf+kNK78f;qs`p6tkh;HwAxV5LO7Lrd09j7SP!7FTt?jD-J(?=5{c2y=Y9sU zL=6BmXs`Xo=xh}TUR0qo)EQ(KXXeDd8-LdkFiq#)@{Pg#mcx1kB$~Ona-KWte0^vD zY6KhM?r>-Tg3#TK=hfcavsx5xPP@wk;Wy-Pt!HZTm(yvwIE8QSF{-YT{Oh~@rIDAF zdzpecyCe}(1AhAO@Dc?%fA^8Zuy{!l%7^WlPurFCRgdO=d2kWf+rG7}CN=-(#BCaO-9%wH1I0RxVy%&Zniz_PINyhI4O99!HYDBF^EK_?Lb449*ev z+je^!pb*O#iMnrGLT>3V4+WD;h9Vj|{jxr;0hv-oVXW$6*3rRv>xc~Ht%^H#RC9_=y3Mn={Y>I_FT zvon4nDt41s_`veBYcyeQ{v3RNGPm^?=b_}gTZu3RtH;=&y*V;fw;$GS_t1MMSs-iG zo5SlPM17eFxuK6HFkDc;F*D%JrzhS%E^L5Lr89)Nu<3yN;r&DDh%!2wA;BZi6ibVx zEY{+y3?q@}>w32CJUyIt?u$tY%O{UMQ=zlUI{Sg@#n#b6pYy`UJemM4#aNwznaX5- zguftXa_?_Nr7E#MhcM>LV$O*Qtl!pN?9ycP|=OeM&VD1m~+S*I|3A%d0wNSB5d$F2x zvbw448`(^4k&GS*Rk;4;UO$LafaA_i`1-_M!&Sfrw%Tqy%2`%Y_CW*B)8eUJ3uU&u z+%N=ykC}b*l3AJ|N9EdSqx-4@7kTh40R(o57QpWuM6UBcAY*A`os zj~}a2`Qp12d%R|4o*|p_x7laU5|?oFPoApW!&q)SAGo?37C!%7U0-njbV<;0%Wv0WGu9ZZ7R;WD#-w4LSiF&aU61jhd^!~}ca?;g>__=njyxU`9YHy6Cz}*vB z{#6s``)fl}gXiLyh7R)gm+&=oq#gm^P_Sd}C;slCkIULOYhR(T9Q{MYECJhdUNa46 z%~>}oFoI)jh4pLhm9#{4#IG~nhjV-9D6H@JEVL)6*?D_k;uJ-A@5lT+PakP#g1B>s zJF@gs9iGm&TiGIWSRnEjA{kBT{Mls@OVCcEYREBU+?g-JJ>7(XndVG_jJR@ zzN9?S0QcOcU<`pT-^$&*=8CM|0t3+;S0Vi-@Xneue4S;%@bDis{X@U7isD*EpsfO> z1HyG7kt2SfoAfm^I=|%RZ;-L=nCU!#q)RrdiXAQSL9Z#aZ9&hwK(oIJ#%KHVl{Z`;575M3X> zGsWahGOY-A=eFjKU5DN(KB0T)WDgt>l+^K-2Vebm_CmJh7QCDtll?icY@uwnaE5~RNNnTHBw}+_!^pNf+Yrs#n zKjy$ZxWHrK)GPOyPlo#QJkK!Q&UY|7=QHHP9G=3tue^2tb;SI@_P>nDLbfGei2a3T z{=*7;zii7fxD^6 z=Pag}q;}QU#H^;GuUOQW`Ai6l#{kP3xYvr6S~Yd_q0I>oYvmEPX@1~iOwT+sjzFUz z7SVdtZo$wE%LBK_Jj8q26!IL72<5*v+0FKnExp(~>%baO#da$C~Rs9 zfc}J>z{ek`B=*OARmhS7u}B~%$QSe9W;2aah@Eet}%0PIMC4>-#3*AMj z8t+M*i0X>)wpn@ll2&yNgPWpmbdL8hi-_C3M1;JGB1`YdNd5TDUz~j#x^;lG8Tyjv z6@Eh!?bLX?4+=<14d8U?D;+Blah|@Ndk9Bo@xRGTyrVVY#5QIeo=D3G9-cbOMzt-~ zW&}qK&A5|7)PTj1=SUWrV}pyz`o-+{hhGVKByOEM&Nz{tNHS;|rV@pm%QWSi9NmZRB9d+*H^#9Z86$~mUg0wx+-;l|*&E|;t&19*J)%8oxs%wYdwKEEni$}k@)7OH z7Q_kuq7}U}mbKLr(8z!&{(QQ9Y&Jf6|NYMyEr(=5M?-Q>(YirJax{j3 zKkd{Jl%nxvY3LH;CfsK@+*-6q;EliW^9JJ&B9?bDmYL^!jI~Mi17Q6_m_+;MisV)AlMTsQup{(*Le_84G)AuWo6e@}%&VMEGBV zOcpL+HD3sr;fpUv&W)z25pbwhUlx2%5SPFd9WjK~gj0GVnT8m7`qknR;$QHMjPoCa zr2iKoab&9(p01Tl_Yq7cK>wRV=H$OYO?F~2500fFW^mB4uIBy7{+QF1x8=5XS~68! zop>>GLOAu0x4uAph0T9W925UPM#xvga%XY0eLFPG*nv_PTANAl2iV@iRic$ z8Ra6W1b#aIwHJe*bXy3A8H~#+luc4%`i1Ae#79E`ML6Zh zL?l~I$M_AW=gIeQnqu&Hluk0Y!3%)ODWs!xS?(W5&I)7{4IyOt%t=Z9m`J^9eW=aL zl8!kvY}V8Ksyvs7O=@F1XfDi1vwiImfdOxLK~{mLJ}VjV9j$|4P}tb7 zt;a6xwf9D*B%E2x{68g+7yi&*maK2e5!a$r9a0YxBkORVXNI8oS%&mw(fO02l=C9< z3CiUC-|t_=@CIrBzP~U(Qd?C&E2cQNhmDoVK4+7jQx7tOih_6)6{WwmOp92%QNnKQ zB(cyi|K{@@dz|}_u!XRz_3@+)LWq9PmJt^up`w&gG|v4{iHSPP8jXz{yc^#U?mh5M zen;jhi9|;<3~?$LUUZTbCnTCX#1;k`Pnkanm&5w3B|;6&+#rkDr8-0vSG9g?eP^?U z+uXmePCCKbZ7|M7i$qRYpuKdk%4%<&{HGC{?;PKQT9C98xkg{4H_Hl^sopx9t=@jB zuwOn}t53flndVFZcCqj;{aC_m2I2qf_Gs}mVd(*@QS70mW|NCb27CWXTGxWAsj)-! zV-c<8`Q?dlolr!&z$FoBNv=2_w6HKQbb^C^c~uW3XSG1aD~K_POJgYIAme+AdSJg=J9I>WP~DZlCCOEV*)vp)S<9UZU+!y zHS+v0Lj$(Wlz{-GRcu|z5-6vv9wd0ev*hqJXFrzc4j?+M^JyF_3y- zv77IpqKWy{m`hR@yuk_ZYbEVwqRt~+nB%1_q>^h*hN(LEPD@F01<_Hxs2pLFRs#*O z%>*U~tJ2KzGt21MYc1*w+LYwAi9&Pkp&U)N<}#UUoXAYq?ojvYhb*+)#Sr(2Q3f7a z*_bV~#xL-wPQM+IypRX%0I0(nWa1;{u$A>|2Mm{yCE2!=K0PM4?Qr-Q=*iRWocmIgG1RPS zG6yiUYm2EDQVtT7F-v=m#2}HXM5T552GIz%A$7Rx^eLt3Sk+92&BkW7o;^RWE;pC> z;mffe_cVfEjEH88(8|#_ol@FMw33~FQcxrI;qr&R$@aa5(JT*TjwDUHj0~dX+&hfs zM%}Y!b)67&g6!P(ivPYPd-3s8APTr9c*?{2IF@v^=w=my*4zm||RYoZg7(QJ(s4ncK(E1YcLF0T;73n}C03%Mp zdsNxOviR+swYR-VpAPy-c!kL!00becv|(SI5-Gsj4ClQZX2uwd-3pX(hAr?}%8PhC zyr1$x_Vpim)C_avs7kSh7@eAAN>#Q#vO?h(fJ3$xlv({HXNj4Zp$2CInvXEDktLSH zeR#_)^&eWy=SZK)Xqv%9){6B@2Uw9HPkFs-jy+k5G^Ed5XqjUKJ*C0f{FLfLM?&<-KdnF{L})xy0u*^*miT|?Q3gSJ+Qxdzt# zrZ3=z$pe8T!pquzO>d;f0qP;^_p8z{R>Y>yEXwWw-+)-J?s)M34j`_2{z@!}Ls5xz z*BvUqYIn$nQ5(wisO9Z$pva*CYahe28I>Y(SERcbH=tW$ns4WI-u>ZhymD3hfa=yxeQ6${JSnf6dTsBYo0~KevXdV1xVK_;#mZ zxg}8-fO6K;0&TMJ>&UY5uir_$!bsvgM~x13=O5FDVas&1mE$(As2%@>#K)As+a`{7 zOxcw?+AbDMhsrWE3Pk9e78kcs;W|XGO+Hj=|GyH%$j;Me7U}0EN3riK*e0;s>jYE% zlYNI`)s8B+-rd`d2(<5<+mx3!Gnt;Z3|%iv7ckbd{VlJ11s2vTOND<=hX0Ud-lzxi zzl_Ijx=`KO-u*WZykTgMCnFMz@sgG)vrTHbb-R*?iRr%Q8!2fw6j1mruTmG}6!6Tu z?}TV>!qf%xqMTm5aLU5(b&TNt+AFiYHSfN>iz9InCHY`KVs#k1us_HVt(M2*S;I~6+41T-(5;T{t2UVM6$C_w7rkw zIm!4jHj5$abmnZ7rb)!rwD1Vb_5DNFIFDlHUiZw&-A2JONVNR}OUkhFgX{dT?fTg^ zaly6}$X)2pRhDtfry)BY+xcTr<8~tZMz&5bQnLDJa~p{)ssnFVNAQX8$;)-??=HIk z;=O-d%;ON=X5l~X27&!1oRE+4Kbjxu5KG}9b`ykd!~NOnYWY6^mXR$pz#Za;yM^?w zGdaT{T9c8F_phk2IfI6L`Li{GFC*rBABriNFb?i=sQ(B1)F)RxCRaJkma}yG%46(Z z|DBeVFJ4`R({6fFlb%nJ@u6nAWx>H~2g>^o(DC}7UhpkXiLbn#k9St!c;I2T|K+!T z29v^n{*T_5jy=2_@2=i(&spn~{WqN^r%Vj-^%RbDCui1sW?cSB4pA(F6Q29(ql?R( zi+?ktVO(SJe;hQ8(+($@|0Q{VBjBFO^6)`GSYsqvm0G2{(~@G?X9m06klMGjszra6 zN2lS2WN3DLs3{q1GJToV5J_V%`mn;DZDra>J{k{6tY0Pm4CcKSefmRl6V6oZrSxv` zR7*7Mi(X;*Vy-=8DeMc!Y8|cGX4XNnQ37!M7QzCK&DH(FXCyk4=B%yyU?Hd{qiQ`| z%rMI{{^Haq#*uHgoMO%+D420i!|eR+5(3);+O3sX3}79CX*2m>=o*7TpPElJ{i>R7 z>i969hVE9Td%+)-iUPP4wqDfxYizPr^LW_4@LM`1q1&mAOwmPn_F zNEt{>{TpC!Qu+%tJ0nPo~;Z1KlhP?%y)_AmH}NHVwGu zL<65;E>Ze@{k%Wpc5CQPAnF5Q-udsi*$uG}j4dfUQ8LeiW$1%G*n)wxBGy&nOml1a zW^q<4NbsUhn^pp-T_M|cNe<;4go4KmEpPi~p9pK#6hntJ(fwQy*ALu|Ubh_=Jw5}w z1RoeRH5k^P^o#FfmY*M$dsPYm6|M7zYtm)`kI&!dxkZg%(Wsr#1lbc*YHIzrhd^Nz34_Pb_M$tnOh6>8cR`~ zZWMV{NXIw{%5}EUXnM`*S!vO=D1c^loU(5*GOLM3*B#m2YKKu0=s1}(l;qq;?rA0R zt6D~BIAzBoFQ%<-gk0R+JjSUR(>tL6qosY0REE{}SzzH%Ap+K5QXsf9F$(rdj8v~w zW}dqtIpG!2S~#bRqUskS+=K`wb8`%Y@ny6Vk0#f`wg5HOf?LgJASj3jGxp|I_A~EG z@sN7u&GEYPxS{rKWNs^^L}7~iq~v|PTiLQVc9fA!*I6<4Wt*dv%`4Q4J@);FlvcpA z@Xuc{%?hG6%PsQjk&S}YWp-^B_mVV?n*U+OyUOv{;@F)i86M6DQwaX}VE|W=_qMpY zjp|*b3oaZ-HLsw`gH1U*xsL-f!)lZszTGLOJ^<};n(q1Gx3LHk8QRj4IHmDrRROAt z>Ytb&3rgXSk`z~&npINDI)BM7-+D^95zE&zj@{5WmYXjJIplq-?Z0~}bzfK>FM$4YYK%rs zXxqfoN9KKGhi(w+0|4y+%*Gd7PGdg_Y@HV#TtbnLT`mo93xtYL2Gr-Lren0>)ty0BKoZs3j%!El9%Yfsz?3&MI+{|;AJVeQZKsxmM?<6mfHEhjIS;Ce>Oh%h5v2iqjmk?F~0Mx8CixY zPl*4{_wF2&BV3EnAB)apK4AGrMpy#k_G{wA0bl4w!e#f{~o`Cn*z@1Ul>c7GH^MFj*w zdQ(vWX#z@zC`c0o0cp}yK&1CxA|g%c2na|J0YT}#6ME>88hWUPnm`B%>6h<&&U?<> z`^ULw=Kk)QHQAY2Ywx|<)Alo;=NZ^z^KfdomE9t4Z*{@aQ_fy_WpYM#M59#O3tY4> z4HbUHs9~YltU)H43|IQP)hC@F+(h_HG{gNNda_KKp zyX)EZZ>QT)+vj?!-gLB}NC-K;DWd{@dLI5vl4;Zcj!xb@#H*F`RY(a>Ffa+u-ff$tAH^dUEo5P{90D|SiW*$WGi{Wep%IRf}|g~uyClAEY}W)D;d zM959O1km^9Pe~>tcGc_D`-7?As$~1%t3DtdYYtd`yRN5O3w7YX4YSRou1jtW1ULWt7d<`(PlB zOglbacR3Kts;xmNKFRN=!jQiQ{G^s<*V7k4<$o*+u3Y${svht3nnPOkuu_Z4KVE7jI!F!o-o~tWh z$`23ulYNDs>U7#bza8K_JoMv2R`Xa)`2NH>qE`_UQTcu!s<%XY%0HamWgll38TXHK zFZRs2*QCfR<9u9%YwQuAO&)nNR|KC%;V$Rd|Kx=5-)q&rO*9akeAzy<>CIR$}7Kk>^&Lz6c(ZuHo#}`H8vOm0^x@4!{OC5)}Neg zuQjJ>y_-)Q1ZNGP8tBAT=*(8~;IaXL3YK^AL_EDswI_3H?3`$u)M1=StPXnm<{b=` z*=%?C{=Om??-@+8^9(t8hH|tq7`gi4KFj_X{E&?%s>^7&>~+~im-C+Q+HCtb1rDJ!VRpP8w$9hIL8XLNr#OOKIXYzOX6Ps^;K>R z({#8rKM&H*VC#)~5y~r#)wxVGig)YN5mx%-JQ0-yDqHDK_L_OkCHy2?iL2;>U8{iI zPmP)-%`@0%@YzgW5XR3ipg@KG|4#tW|GfDO`b)3l7^ z0CK1HDsDRSH4dja^o)Kf>op@9w;JGL#b1n{ivIIMhT(8H%HE#q(`a~9tw5GOk#)z; z#58}|Lw@V{*q2Hm5PTy>{7VE(XC+KKfx*FwbM||fstOF1NF+)<^)C+r6jGgu&{b-- znwna~0*x=Ndts$mLO{2F^i1k0`*??Cj{m4aT|J@B-++4(P-OmGZCLuLZ_y`nXEQ2- zluEYq*E`e{q{c&=@iJC0kpl_@Ughn&-@qPEO~X> zUUZ(l?rLK$o_cU_aF`Sq9`q9j(H9DToO`2va{U`tn*=iBACYg*O0~s>tED?nf?8`O z5PYZGlzivE)P3b}kp9!t>V1oYyO0;d&vCNk7b`+l7?t66?5pPv0`KwupyoApZ$B5)5hl--$c|UbAp;;O7}Lx|_P{G|S1k-vi))QK=`!7kp`o~k z2e-*x#PiM*KZE{Wr#h(&+(zFTv+ca2x=X71*G_>t=_c+bODMPhXv1*5>CgFNp7|y!+v9H&-La+CtI8)e~xLxH`a@6`njC zR@rz6glmiDKmVyBB|R%0A(J@)g2m(;OZ9NcpC;4rPIa>Qy5oR?zCOw5uT(tn*0IP5 zahX~tlV4^}fwu4~V(NbjVfSIs{2;YZCjVG+Fv4n9G+Y}#-ufna!a{RNzX|~(&l9_Iym~TsGhRK7?jb1YtVb=-0?`Y69fKFg8Ua%+B{Rf_J6#j zDsKwLW+l1E|FpSFLqluw-%Q9f{{IjYnq6~_dUZXcJh;_% ziag@miL#@@5Wx`(0N6e?+;K4k2}3P5k_n?Y1egr2A_%~6Ww=L`Gl9f!nlt(QFxUSY z8UgoD7`y*nIei4Uf-i4Yeevro#@&_X|6X2K;{Wae|8uW19>3^nZeq?ue~71Hug-F; z7=HNOTK$sl`}4Orjn0eOKEK}X#m3`<;EXLBLTD10sakjv+ZuM zuwPV_P~ls}8wsd!28vXKYknPcXh>;K(FqZZReU@gsd^ux-JQlIG!d&xWA^E&yaa4 zQV0b$r4wbY$V0!ToGAky`N|*q%PhbC8tc>VxZn$`_*yC33;W7sXCjx$TXBgIaqIq< zV>=xnn2vH)nbZ+*>aqE1-nG{!_gPh$d*sy}*QP=x;j58mu{?qaYSd+e7Qp-RL&PO1t4xc*zeh`Heon;aBFda@33LM<_4_$M<4L< zIx2nRW6Y*(c(4W1Z#9=zm~bzh3%JppClEz^_*OjF&0^pC#t7PKWG6T)rz`~o0*P~O9W2J-c zUg+4m{MF1JX!En)=hy)j4Ufcv zU)=?U3bUn_%%sTO>x^c1x;@^I5|e--`vNLEgHd~f5hTKQV|16vsdJ@zsA}C9CSdFI z@d8|f^N6^sNy2J9*MWQTW*wqV^n%Ebe1?dxt4i)2eg-j%x?kShL9|${w(bWd?@K6=o#yg)BzGMT8;qDkb zDnKWb0LDL&+5N=o-JxWzc2}*PN9u{e)B1nzya{;7LuV@5EUGxa-rzQ>O9uOm#e9d{3~t@rwYj#O2GffW z8|9zC);WF&g^k-%*6MU1?1bbAoO4*9cu<+|et z*Xq~U+G#p}j#=u!)CtgJ=cc&4gMG(CPP>y616}7 zhf!r@Zd$(ow*<&$w4c7MK4j^k*xyQrZkUU9wLE9ULpeHrg+}ksA z9}sd+HyvOT^MDogSY^H!_$5ZT_l!$P0>6exV*|+)q-=mEiYUn+N^Wsn{WTQ(JGl$? z2J%$z>N$z4Zb5k#<|@IbtwMru?Db3Xod-;z3y1;x`Ob-*o~&ibu;tujC;2N!VLE8- zd5U8!gJJ9OQQ}w6`ZW+~U{wC4SBuEylRKhb{I5w&$>3?KaGlz~1>DUSf~p^Ryl<|z z8-M5P3vSv?HxrGkM@E%OUaB(ZY`2*u{@TzaOxKJ*CAR1(-ms_MoX+SII=O)WCL{sT z6xC8O{jM*<^yy=k%~qb>%Q4kQacxYNR^fqF9U9?%;}Q7LC+QdDU1ir4-L(*wvaP>m zy-g$7^vkJk1vB% zKc#GW0c+G^78)I8mZ<18>Gm9@7~n;N9~UpSs*lOdV!~51n!kDT{Wf%KfJZ?T+`Ld}g)Z_+^kAmtSL2OlV=En*JAQdulJOs=ZS$RlW**yp= z|E2grS@Ie5S}9JsmG4sN%NkQ;D7T>5baMfMzTcl7X(wZEJrLm;tYV!2p70~l8|MBo z$&QG(9|mSyR@Sk5cf*isc78@#!$W+VTm*bWw3SA^RaD?s?5pksH>Ar*J?UYV$NWftgWjWohql`~_-3>}IINJAyxk zk3=go?|yF-x!MrzZRJbz^7Tg$TaXn3oa};o{A~;nCyQS*o1tvY6Q8Fwnvbb+hf~`4 zjjx8iANcK%Fx*ViwEvs$dK!Z}d0+U=O4bQya?)D#^d7X>1Lof`eFVL=Qog4cDRpbFmV^no2D-|* zzGGqZwH%O+-HLkCo}+jdA~|~kB;px^pg%W0o@o5TrlwHT3%TxxdL5l}H!C*r1a1R8 zxwl0WyOdU_)FRzI&J@Bp?A_E}#1O-aysE#9W?FfzE9NLl)zT=FROrE_Abtz1j*ZAj z#C+hGP=n)V4Opb!$$U9Ap~S~)x*4FU=PVvG&KG0%ru>a;i3_RBlED4l&WB=ZC~0=5 z$(+jc2lb(h;Ppoo-)Vv-9xC5(2`5)hCk0-qmcHFkFrBDpn;U@(MSe=am#|9TXaQ>M z-24_0K6=W_jI4i`pt}N|{K5}{IoH4WHB|{;v00xzK)Ib%kcAoE|b!>>7OW5LkZxcSMr*Lm7B72CfFYbLE`Oi zYL)ow8nVB(It*ZVAHLPMsd@EtzV^g`ny?u#TyNo#31^u1L|ZGV+^KmdsT9XsqTeh9 zK@ZMNS~>SH#pAmW@gfZo3B%vWBEzrFL@StpLe*{}C4{FA$wAzzy5O!gp0y&Y_)FpTI@MZ=qF8SZ)AGom;$ zhXVOUCq(KZ;?$3An==xqH_7~s2fhz{z7;N(Qbs?%bGSRu^_EpvdUx5k5SkzN|8Gga z2|Ad@o+b=BOPqyThW)n=n;-N)Yp4Ia)-xS8FEN!*lrfq=j?MeV)xLNI7W(xke1o<- zyK1mDC*4O-D8-`6#l@-3nT7SzpD0jPR`;v>T#Of^{(V^mkO(JxTL@@AFl=23_ZzY9 zTU<`#c#7+$8tvdeQDnoY6!O+oiQ&JRWy0|2EjU!NGn|N3Mper@p2rZiwWf*npbU`V z3HY4c1f>#dcVa{c$oQEKJAmW!Y+j(tH_zMfbl4V;R5~5BhpKtGAj(4a_64_G;r=c4 zo}mIc%)uAVpaj8=CrQM70FZ(U-IkanpB`=CI)Y+aOQjf|D0K+z$UdQf?xN$`TR0ud zY;`zcC&9blorRwtbJ8AdGd}G>cchFinKWgf9{lv$wO<9bjI2m#+{n*bcUX&xD$ z0v&;KQ&G~K&Ha>Z6@t(Safjw2`o@&9JI|g!>-{yk=ht}UcJsPB>SozMW0}*v z@!x1cQ|pi>k`=yQ`|;MSDw}PIn2-MvDYRiv-)w7!M7fMGEe42E&D1I;(~o1uMF|2I z5J4%?Vc+O1cgiOt2iV)31e}4Gjc?Zd!Olyz_J2(YQ)th%se7u|3K_cUdX8@%4^#RM zUT|d8O<5MxH2{3xqMazzVSyYrqWQNh-`U{~GroBb{PfAae6x8$qy=7R>$)m+RBLdF z4E#+8ElUGtiCGo!l&xxEBKm_b=#*LOXGQ#Lz~hFKv4simm@yAQ%MIWpZV>hbeF+xK zzU#Tl^Chq<%;YU+C2^^HD*p>mEPr-Kw61AfnVYkIe^iThi=(bySt*E#xHmTh!L5r* z#TlB6GX&S}nG(|f8NJNPxFg-LsF|azaA4&ZM5>dvQ+ARn>M5nt_P=QJN?&Ij{@Vxt z8?IkX#eeIu`7ZKP5CU_l58rzTSpKaP$6Z9cu?P%h1YTGdEC&b9-d!e~WD~h%D~(`Z zB2Nv<4~-lHV1k#EZRks@2AW#2RZjLgRfG``f*a}Fk%#*fip;`{KK>~S+QH}oj}>Ad z@9NNj=wXM^Nq<=2$RMUU%9KwRw`q>>{t|VlP=TC*A#@AX=<~#~3XdLb?SEnR%Es^+ z_2;i04{F;}US|C!<)N(yevj@FlG^)t&$Qt3eRy8ed7IHmyws`E0d;#AD(iqy9x79E zQdb-_&PyD`pu)7xBQmm(ut4rInX)})^xF`X$B^Vy_$R0ReY+hX!tENKP%^@KhDAw& zPEtVq>vd?=s=T_7rr9$m{K2xSpc}l@3@ePB-2t&>fhucbO12w8?xXlHzp1V(Hq@%W zKpQHo_CKDz;zE6&B%v0wmhTs~b1IhQ{E$+%Xt_yhTmD<-!4(eW z!{wD#lMW$#|0bS$+e_8}bA>ML!n6^Xpdc-D{hVbRQDAgN=>vHZ`h?x73~S%%r1F_z z6e}ZE+x#9mKSQPp@0mBS*T{8%yglafLqYUD+y01Kfz2wDFI+L>lGy?n>+e2A8J!+m zyoRep)QpV!}7l6VevC2JAFcuZsZiMd{&Hel zgUN;;3^uQyGklH*?k6)wc-+}|XG*`K{orZ|;#928qi*~jU0ajgS# zbRz`MUfnxU(R>wMhG`Jn_{5;nJxmo63zyn34OCDcH-2Xa9Y$?Vgtf`a-eh*q^s$yV zRZMW-g^PstPvm*!Wp@TRE^VC){Ig?4EGGn2?OoL_MKz2Pz)5f$D!c~Zqx%4+YV?M zH?T7wpyt&jvHv~+`>a^%zu#N%R8C^SSLcsQ*E!WHdYRc~Xg5TtWn0;u^=~#XY%;;| zbLX?m{#zEd1G^C03n-)Jw5Cq04FOaqY_98afFsb*`ns#F0?q7~A*O} z#PsKYn`csY)1BmP-stp!yBRjlOl-Hjqk&$;n01s zmG;*8BRqd#>9>3&r1c#CB4#60Vm-kVZjEy@96%DOY-t=E9%b6M5_q9kt&Cs*~+G( zqgt`NZ?i|3meD|)d8+(>Zt`i{_dPBf=#s0z{DE$Qe@dsAV~M^^87pdh_5+I6^RaC* zq8h2Js%>0Q2lz&_6R=-Z!!fI@g5$she`vbl$&q~904dFjsE<=sf)_tWnr*Ptg8cIf zRq7!(RPL6Mz`L?~Wx;G3znZzEIPniM3;BE?qRy%flzUQP<4LwDHX}wY27mITy_2+C zE+rNRs`a*nZe^@7sA&B@IX+Gt?>0M&sZuM`;W5AB=1HAPoGXEZ)wnl$<~E)aUiW^p zUvcnb>hlQFC-0RbaDUhFZ4H$@d0XzvefmmJbV{WmIX0S#jTR925XotAmw2&X6YfU!7!Xj#1fuxJUzo0^PO;i_8`iLjN zrd!NimA1bLpjQv6g&?nlR{AXtqH7B>*0TYiRKzzkQb``tfLv{8K?cqb(E}?<`6GL3 zfGNEI=$6vsM#^!xrc%@3xLuhCpIGPw#h==%x?gn+-d*zfUYCpW9!u{Wt+P>6qmDRC zgmZ~?oRXkhJYo9n(I@MxC-L`b5AQTBO#ewzY@aT=_5wCG)Ez&P3U~ z`SUQam?ivKaW@bE)Ki`eQbGsu9=2Xk$=nZn z)X2POf0mh}qmn(g1aC%I4PGB$r*E@AV`7gMGm}gN0>>28>G?9y-j%&bstvJ_Q#E-< zh92XVtUl!^XBO^=#kItND$3BtWRa%1o!*hPmCI%nxZ^PPcC1kCi4QAdE`aM!5?AvZIpQi#i2XSlxxHl7Mfi zNmgMoR2=gO&bK-Q`5Yn2t-ZaqJ>UI1JoF_jdR(@wF55%C--W{IMKnJKj|aZp^24H< zHNk;UJlqP>0aK2`Mb}VYxdHyoHUBN-{;?+xackE?C+3Nm)b0p2YB{!}4l)UMzV^yf z9~=Bp&ENA^FWlMMJAPm9I4qoc2}Lu>Oq2%=nFRPNj%ni#j(+V|f$e)bg|PEGYE9x$ z7tg~AbYSSoObkJQC3co~xi(gxcpk4>=5D^diyoBmw=2RXmQxkxsxr5B@?AVZfVKtR zT36u8$P>aT99~m^1-iG#kja7c(`uOBtNTKg-@|_`j&Q(EnlzQl_YD^d43$-=A!z!dB4FBbCYR6(S zc9neSr@#8mL@wX^l?L@-)P?UYxn4F?Xk=%p`pgKJk!GOo9OxWWQEYHI>4V`B6MrnKXRC|D^Ke#{h56`+sFp~ z+&oXv48bcyG^tG53bBC}hvZNC3g(ehhZbS7fBJ0#5FDw<-%HCufs-K2veH79+CuQB zvt2JZVvf7*@&n*!ia&GHH2k-TTNUxYGh+YeUjJd@E-El;nf%{e@j4zUxq-(>2Av_x zD*nYFS;I}jx}88OWf28Q7NqjG37aN`X06TR57&A1{UPX$1+gxuPi_RpC9MNR}^ zW#=L$e(`c^e=Ao2W#9`Ky0>ZgZ8#faO!)@G_fi7(t@Hp^kHd=r668Sa!B)ex`@~Et zIb211(0)trV+L3{Jg&XOf9ojduYSnNPXPf_O7DHff9i94tNmP(iW=C-S{3`A+a4^~ z7=Bdutn)KN2RpEr)a&GQmX3wAI(vEhD&!+#sS6{aZo7BvYUczPMSri-0(>j1E4x9> zScV1M4-1=1`olX1RE3o2fS(T_7o8Bk`%N2CkavP}sYkj@5I^!#1Sc#s6^$Tx*p`Gx zHlkksJ!NhUegfLdI)?5y9Y5TT+o2*XhJeLX^MFH4afu;6ujs)oVvYU%alVlN%hmL` zeg;M=;w2gt7O~o5cSj0(L3|to^s;_GGSm`0UVYXg^=D{DSt=-ob9Qaq_k?7(bFoPg zK;-IBaG999J*mq%Tn+ZyLIMn(sujNd%7!*XW0C0{*ow_Zbmf zcB`(kon43+wfeM;({uT}i%SEXry-j>WkaXu?4t5W5YAJQwFzZ|Axx!Gl=>ztGP!>k zA>Y~c??de&*^uG47sK}&$O>@l!`W(VWWcWlxK@__fNM) zF}XGZJfI$#tCAf9W9hAmW$JX5x1mb8P1*BWy&@YfVDW!E!aHCHbk4^z6ho@^Fnlkm z=3)-4FT^k9TC;5cd{agg2v9b6AMiPOm`CFG+_c9E*5y-lL-qlL&acU-hDcmU5H2CK zjIvC#P; zxZ@y-ftaJ60Zf&a*?}xpR6)I~O0u2(-QRL%rK^D@!84TQ@bb#BJ@mKA2+-^OfA3gz zj+K8sI9KdY{?sJEySx{*|97?m8$2G3xWeB7Sox3&Ob+L2EZF+SV}VBm9`rY+E(DAM z;9J%3Ux&CSht$Yq{L97kLkVxGOaQ#@NEN)Ra&2TZqA?*iR)`Fr|64(w|J$b4I5n^3 zN=;b2Ekw)t6CTM%^BmayvUn$*h9#R&Ez=Oe*$d3B5CGX zyBv$_CC7Y62^mN(itrGhub6er574ts(rhh?h*v~IYm87em6nw-trmsMJ>WHF1He{< zvXbgkl`PaEoKhgM??-dg+Lsn=@OXt6vg6c7(V!$7S^>(v-MTK{4^{7tP z5$gz<@Lair@aZ~m(;7;&MPSLp#;}d(v%+u7JBq7wiH(T4)r1Tc^!nSfj+apkd@uKf zZ$|2mBwv1rM8JU(QH%_s79Q6=3tchK5+ElNpIWw5y~I@v?>78+b*CwT>0q+RO))vT zofVOB0BX$Uo2h~d8A44%#J0OlsQ_gpnGNrogjjOOi4X`lS~Y0OjeU}bkUxu7gDB$_ z3s9O0c2vfkDvX5xjM$+rhebEliuIo{PfrYEfUEvv_>H{Dlzl&8nUtvMWl#Q7R z-(-s+uxnLef*+3)WHzWwOgP*2O$G!C3Q8NvNU9OfywMoACiwKtk(Ja)ZN({iXUd0yn zp7XNlzu-y(kB;a)e#5^Sd4+|x@e1!B(CzNP<@EWQkKIROVZNjz4Nsbk+~vn&Gv2a| zooS9yBNGx{Fbedmbr)$VF|=WS{=( z)5PpmS{0+;QQnuCC$3)>tIDd4)=3X%BotJ3I~FwY1HF@5DkCC3Scys&KD3XDmlK~Q zH1~IPe{jDF;y>?i`27@Bs_12XIz?8I;$@Zsw3C{e4f>Q=LFvzWaxZv^HnQJf$M$`b z;F}SU@#+$0j`i2`es!+1e$1|Eb>VN9;EYsrHc^iBfL|qoCYqsMKwjQtmp2l!X0SY? zZUkGKJviPgDgEOAY!w%poJ4#$ct=wGr@_!C1};}6uFI~u23_s$k&1K7B*eLUCH|47 z{b4etG4pqnCs5bUQk?QP+i0!5hNX!@8GajU-qA6)zyHjMZa}T=R8-2(`Car{)P{%oN?AuVNBYqlqU@Q|D$L?La#-I7{cByo*@w9yt8WegML(Vj9{5#UcVD^Oak^(w7Q2IZb$g4v zyO6I>JJ|frJGMyT7t(^);NCy zSV}ED-_g9+0&$Y=%gL`rRtU;H)jG=3wmOWy5Evku1C^g1tB|YNl;Vy) zz3lSXF#Bj4Mp$`Y2I5nTprplYEv?SQq_$q%QCB21tY3~{m@PV|U|Lb8$9GkuH=y3- z%^tHp!}bWtrwhY#$>|F>vQ9TpPh5}Kdv*gU1*TNZo}Txz zn5EM0FR2-63PF3OUC~d6NiDvt$%U-(AnT8Hm#%IP6*0jRR0{X#b z@yZz{aAUu8Z-V8K+h{V;$D`W)c4X;*ElhFzBPv8)8w&bvq{=?v@s?%N_2ZLWY`LTI z6_rx*DaY$6lA3tK`VUa9%K*wX_P%<)m6yoL`fV^jO=~RVd+H)~)QkLp(PM;r#QW73 zi-C0fWkLY70lUpLFBx>Ap2^z_Mp+W8*(u>7cdm8!GK=l?7IXm>9*E1BW#Y6%D9 z0SxwfpDQCK-s&YMx00F)gqN4&rFK80?Bc(A?Met+Eh;sQDd zm~vbh0QH6&y!^qSCUky)De7aws=8*@M zkwZ1;_eTuPVI4AAV%y|ZYndkOje`}@6t^XXrrEO~rx*CTAH9@R?|5H`;yRz9PXyyMH!E2NkBDDQ0s= zLO*eT66Y=7-n6^tp{(E1H>IEjZr>r?Sp!LU1{QkAID+_bB%GKVzw0 zTzT+ZwZ-oIlv`TLfRlN0{xA7kr$m8gZRs60amK1f3DnMIz(PwHbRKe9Q*f>n`<8+^q2kFb>6EXsmDM4 zy>e<7uqQ9(3)?(ppNqzw)?2OG&d6=dE*x*Xx*?I{aF=!Mo@(QrzOLc7mT4+r+q9^; zrdM`yd8P2duy_2;qk9)*=L*!`f0Vhw{k)Zh;7x_e)3Za9>KMo~S4rXqzMU>@TG^`V z4WCG_7)lQ!>oPP-(Ae|NNv3I{w8lFr$&d8=;TI<>KYpgh^Pg*il(@f9kzv!)NjLVc zuI1}((drP`+Bn5o@U=Q8ZYI^97`m5hKPE4;G+`#gl^XBybdIq3Gxoi`FsH=-Xt>N+ zCtH#ZJ&*cSE!T6@Ueha=JS z=TK^W3W@5>`$QfJP;m-L+DO8Zbe|-a9_mI zhiTry5po4Oq;+walW8ma@+4uRn40O+Kc|z)A~@3hdLIH=EZ8nq;~HS05iiJSu9BsG z=6$mN^3vxP&7{-oMhLDx)*+gsC7M&6%yzvWNfz+W`QM?yI3WG_R&c-ll;zIR~(1op^i__ zCJVn$MI~fMi-a?*dS0$QP_o%BFIki;(R$|=SQFF!C}A>WAXKjPxm`AZk+zXZbB}j& znd{HHx*u40OJP)Rz>mLrWsFip^_^SKCMmV=l)GR@M+8p9`9C!Up5Q%EC*yPOH+pZE zKLm^4_@WsVL=pk~R$^;(>N4GHi00I4e*ntf?YeP!dzItTaRa=iSMxza09L zx6QBgDJPFBPp-!0b6B2z3Gh{NHx~FUqD@b&ehCj=(Dwc)7I^=fs6hx3i&*oIv&2aB z-_0mV-tM~f!;KXl_82HS%7`0*>Zmy5}ePz)cMeljvW1S@)`roT{9{&1SCfK&5wG*N6`^Z-v&R)}PWwJm zKOy%e?BvPU^9Fhu-NhGhqXniL7a0q`LHlszW##%Dr%_gve#C1Lo2{yqo9ZqB+aeQh z(U23tLU0Sly6ISb>q2$`z84W)-DGeSB zTjAX0{0{=KNy`vr*`%{*@`EH~ApcHDV1kFhHnEC&N=VK+UsNRPrAHZm_M@n=II6TP z^jMO{kD>Bb0o}2OUk(p|ZFMiv!TG5A&8UW4-LY!*u;%4D?(YH>0y9^m#orh6PE;BW zUa9?da=+yrB_MX>%)&@h7Eo0ScYlgnq!ybuX0-0a{he-6{ozt&8X9C;kci}$T7LXo!C3wz1pMF zv$IX^;m878mr9R=$&M)#@_j~)5Zcd>1AU7aS@O3*(d#zB1<1F4~I30g$ zhbKQS?onX>{dgna=T#dmtT}e3)ST>!Z7KIsp|DE$t)WYn#@9Qy$Cp$PgR$lY8Q7V}>Fpz5c_HqRtxUz&B7HSN+O zt1HZCmYg8#{PZ2~k~oC=p0GiP=h17;F^=%$jJ8Ap!>A~`AYZ2OEfx(yA&owiX_o&Dl z(w}lx3NIAAOIpR{?FV1Hk29f3(Z6{H6CX38d(J!xVmS~pel%5c_d(U`d_|UX!ZJg& zpuW$mjk@gRnh*txp;KL-nZ7FzO4%~+1%t?M1fjssBkfZ>QbO@eLDkC>OUeT>#%JsK z`!nsyI`{0Fp*-~9$2(N|%vaN-W7|t5uIDjKZ8^moB_f-h-^GjL@@2SUNib2U20czm zWIjbXi_b__t%LGlO_Xpa4nO@y4#}ymKufm%eqFGR#;f5ZXK267QDwLFz+|U|CFR51 z{({()i|=8dSHj2UOYl1?ce(vSWdR9=m&(HoE{b}|Uwe~1eGZ7+*a1wxE^^*{!q#B! zb_tlqL0iyq7-x}{f3EB0f||1bX`X12t0$ePkonr+m`RRDrM+=S5avs$RhO?tfOJv0 z;=}lBcI7R^2>5LJ6CE!{p4){z{5`&-`y|z?fS>r+=#uC^e73p9IbTq!8?V;sOGN) zZGQgyoU&cYge&8zhDFkkrF=ev&v#~DxWYSd4QhPvVb_^R8`*bWy6Ylz-cmqDsrB~D zOCql;9R5Cns|kl(0bRfN5vI>lUR77Vc#d-~w((bo+{=`SE`_jHyaRH}x6W-PSkOwt z?cOtoTo7hqLTX9;!nI8#69Lr(3)^#OhQ~?(=}SN8mFGs^N$GKc%+!TX=ov`?h90bf z+|ct{Cg>0CLyRXE2a0y9QKKtHp{lO$dtpKVoj1zH&4y-3ypsIl~MLn&&bWIuM{ zsO1VK(LlCoOh?c7aLDbGUgoV_Z+>R<7lC+N^QH4=VZ_^|1O4y<8{Zk;J)%EXQa&Mj z=*TK4M==P?Oyg|q{`FZ`IT)FI3=pJK@UyxYWwmoNm4Q&)a9dn(yi&iS$uaX*@`aF} zTX%F&{W~3^QIFqfOrGqV7~*gGgn&Q3 z{!#SMq-M-xHmk5M?wU}~brtdh+2G_Qxm&;4zfT&IcPB9LD2>PuM(4M{ch#D$lG}x@ zsMF|-K|0`}0R@h$7htZ2y|5QUZr&ovraE+oV-4?;nHk%bzbLS@ia+wJZom%q&V0~c z4E4HH&z(UMjF+0bH==(l@w$UuFry#}nC~k70Lh>|nn|8`^F&R&8!GAP%6g0ZL^&o* zKGRB)ov-1^ti}Q7<8S%bHihDyA%Az=sHCcRXnuk2Z22D!^riLV6~QN9?+zQW6)s23 z%NgiQyD|xh@7Ym585XMTfAQtkZ6n^>o`Q?@F|1#`YosHt?XhU2z%|mTUrs?9>52tO zmz)d|uWcTasYIUi6P>~H3hErL?{*PoPrH+ZUKUBbBA7*bmSjI0d3{6ChwB>WZ5lS@ zOzU;JmlEyoj$PlO1+NGKG}3Q3T_)OQ9{Kepwt*UfFh{1D;Wb=jX~tktc+z=&G|hd60DfulCL}D2lFK*Cb&i zBUv&iC>e%0 z`xHNR)%ii!{8-&}KhIk0>bq-oSI_E&WK`W-xiEQzb{5b~NWFhQD}n0AzTjh_d&)e= zM@YQ^zR(87N)65RC_4sD$NuqiUFDWC?7r}Q!gxeqzZ97yiYmjxG7$@XgH@>7@8Y7x zSiz6{X^KPSJ+k*(Zu4Kf3guF3Gh2{yr5Iq-mLF5ReZjBj1?f6F;Nq)@LqkzLjQTkg zcAXKZXo^3tEDFW~2R~3DnGXBj80Nx0zjumAN^L zU!XL)=rRrQ$(E~;QG@V3vIFh8MGDtA)_6NeErRT>h0@#9{zBEMtHOh|)04a>cVC_= zNmT2c`Z1xq3T=cCTd2XqrNk(Bu8jd_7@SgeHD;f10M`{hAESV#m9i%Sy>8=h3MxSZA7Xsu}IE>y;Q7^UK@)e75&J=bqMIhS8Jbr3hB87!5(;j zaMJV7;?gh@C+#a4m}XjHTFYrX-&Y)>cabLc0b1s1o<5{&N{er z=fM>bN57i)j^2RYMS6_Tr7caWD<2Di0-CpVoON1e47E(Une8M>E+o&#@ zu{O%LyAT~)jeE=xa=nhUh(?~7Gvuh}U@v6zI82aH)CpRoI_;5q_ececYh=bfqQIR( zbbS^_)&ef99Qrc7b$pVw$b_i4BAZF>=No%;DywINj3{1#@JhdW53Li7LLcudm#OM` zyW#yE^r_!S^KvK%-SQ(F&+tXyCqlZF=4xrCE2D>vh*?jT35l+!1<)Q-V5*-EBg9iY zTK$RAPa?U*!18n6V(CqR-JbI{Jj`$N^yh*N7=l){$#4`nW>>pS>DTP}3+i7i6`Er- za&p~LZWiz!+Fv23&rGAb14P~)ZEsmvLA95qh*X7qIPoz|vNIAH8Bz=b?WRhx=1+6% z-3Ei~E1#et+idsu$dB;h9roq{df2dv%zKaP-dBb)p}I z;b_KYoZlEsuI$YpjeX(^l{#qKMquwA5)J_q>4N5>jD_=OjzRmx!Ts}y&Q9Zx?$FYq z3>Vo(5%%`zO>2K8cof42y{qfqIS67PRDE~7v>2>Di8^k^YwD)Z$@v(Zl|)j$w#Ior z=q8t$%EzJu+{9teI0uQfu$oYXDv{011lF)-DSL;{4KKED3I;xl4@Zd$^dk0t8k*lJ zI=?0rLXs*kWn`)9^-_pEP-|5@G;?YOk{->=nafl%Ngz|xKiS&6aU8swcO0eC0C??C zkmZow-n|gr=^B~cay=JYF0rg2S@j1l#*aWwwuPC#D;&mwbcE)0^Z7mW+XGe`;!_+@B*R)%zH`;Fq8; zOE+xY<(&ers#iXgCJ>s@^R&@nun&T1khbHK&@TA|dbki#LKn++s+mknsu_GeSn|1^ zQ_bOhi+_JypZ6qRH~A#aVZ5J&%&++h=b#wrF?0|xa`f7J?}DAzNjg7(#%Lxn-1w2H zIuS{q%Wg>r;#FN4#IhcJYv|Pvwv6X860-j1^ihbpK z$?JlZ1eznAKPW%?ZwJ6$vhD^y#vgl!m~xbMcG`>Hs4|*EdI3vc)q(JS6H@j3t__** z)QjI7uw*yW*&8(pWo5&CYRBtX7@l7t-vHl?J@>;)GUQQCoJID^<1e{m4!RKOrx;F0 zDRHbN*XrW=?dTV3OM0@A2%l+$2Dp%91~taCHugsCVz8(zYjXeOkxOjCc{x67)uS=- zrL=f$Yvqu^5O0}y$F!kd%3^kglFy?$Y0X`AMyR`1L|@lPr1R9+Iru$HW1B*ub%THv zuoo3t#z$f4N~)QG*{))9ey}n8fLN)3VvzLf{@7ercI-?K`fxH8eN@H1HIOafQ+dZ} zQhg$Jk5@A-8G2;~J-wLNxUXXFvC0pi@UUG5Sqjo!9N>IhYta|8wi(7DSL{cfQEydQT&OjXJdElMw>9rV@I@6f55wStm838dj(8FB{~|90sEFv&^=^4>PhtcZh{j- zrR_l&D8W2K#z&@MdwrK8XQ1YaZ{?DP_mhklL$Av9ciPiv$i9ATcC#J9`PnmU zLGkQ~glo=S5~6%{O{>H6ojffes@9_UmC3uJZ`}+Y>1pJvB=Vjr|Fe2Y*NH{YsucsyA@A|Ir9c>mhibcX58-{ z!AGt^`U~l#aE*9keF{lHp|4V|41`{d>uBW+WvlmVRycLE)luxXqtw?%X7&0C_^1y> zXnpd13Sv5*MYYvqDzteW&|Cy-P3lBz$P@_9jQ_o?a0Edt7Sg4;LAD!{)JTaRP!3+r z3?4~8syvt_zr47lRIqnY>Ue7=5sOD@4fsjXQ7o%uvhE&SJ)!5Qzf)4Cs0U^I^Wrf*iPX*e>hb}b}HZqD-0R%sNdU}*0>5HTG??tM8+g@$x!hFp8i?O z6!pVVBu!*O*QnGyO2D)htF#oBJwb2cH6@%!OM9=8nEBTnZ;9S6_CdLHqNPt-VO=k3 z^=~tjVjW6_cVQpA@qw}t6trZ3^lnmffq;>ikT#%J$&#JMoyH;bzG*j0G#@+iXtC(Yofxr)}sbj>VR zShuTrZqb(*)qYjbs##t*%(LF>Wu0Ihe1K#wvO4X&Pa**Wq+LJJR48k57EESIGpwdnv9qgnyRMbw1*9yn1n1#pw#87tJqAs+&1pd7^p(q1sw$Lq zLnvK06Gp+sI!I5Ux7!*Fd{kJLt|S^?>II$%K#rI8T#pCqb7F7u%eH7=&F}yAcMM=o z9R#57n%B}bKE`ShM@+O1%pQb7O!oQe$muS!oHsX5HhfM>`1pR!DYC>b=;z-JIe)MJ*Lb4;Z=pT?^Fi>N6LD_Ul+U; zzMmI)N@NJ#IH(T$o5Wb*s|&R03WPp=5%tP4>)DILr5-XtL5*J!^G6?pgPphfDr z5?QhaP#~DVavKb;u2Xk%#?TorIvZvriE0Mu_+$xiIL+$mOG&LG-S?vztuhjbGOpphrxuNjQk&9(t z0#$PW0Thj5f=pcj-W1X^87j8?=>)9PP8r4SXo!(EE|rdoooIW706hmBRRX0gTNw}? zqnbmk-H@4|M~8Iedp!Uy;9fl7VlNPRj zlXxqD>(Ql5^*mmDHHX(bBX+}&mK6A_5J?O`8laA4?}Gd+_~M!Mr=CCHP=TM=AQL3^ zplNGQ8?OAvtct?E;NS6Gurbi|WDB8c&cNwbBF|x|com=OGc8#trQ_?&PyrpvmC8Zc zRnNT7Dt}h!RcSj3vEdJddS2S6vjd%Kc98cC1nI>*&Z)~pFH6j&DGV2Vxhk@j^Dwfz8g%a$Aay?CU~{aNqPB^)&o6Pw#I z;aMvse2=$VM^|z7O{)_PW)w|JeMKbDlQ1$M!k-u5_kp6ExE(A~toi1#+&VU&zn z$C2zc<5jlNJpXMFPmP2r0GJ#gUOwORayM|t1HQ${B!|16ZeGQm`yF6!IX;+IPrRLXm@4X%AJ#Vu(`e=1IEQe@oND%Q+W3AU{~$K?y~NqOfUf==IgT4kt&J& zemt~~I^V3G<${IR3rx`d<s47qlghY_ag1KacD_#UmfJ;gNT%-q_YfS(cP<6Hw~Y$0U9v-ix}1w_ z*>GJeL~ENB<-e3Z_66auY?6L_ohqv2FuRio=T9g+#D&C-Rl<9K&wmvt6)N7 z>ZwvUR(>qm>QuY^C7!#ys~HeKRwtqC(L^m=qgBJDiqV3*bUkGL67hHgt{WstUwG?6 z8st680+<(MKI0#b#|yQubzn)od=WmIq%bNuv||YOpj5-Hkmv%fS^1Z>y0wg{<;~%~;`VHo^j@TIBstTWA-O zVs}}U3)f$~qfuIHqBS5n4_pGf0y+nZ0wTnJCq(AaPqg{cUxf?!Ob1it>{{o47!<3x z_-XGfqrYGCFhO@rpF+&7Ttg~|wDRPHjxguYBYn?~kE6TVU8sZ3pyVBLd@}@pN&YAu zEYQ}SHGMcd$8HgnEX%^=GmnBu_CU=Xtn(UC-<5!1;|==tR1tU4!{*v#n&pPDg}|W~ zTOOgIvSOBa%zAM)665l3@g(||X#?8@;&&rh^I{U_C%jwbE)z$AO%asmRU{RvbTK=YtY^wTuPa96B4J}<56qR zWsEjFFE~0Z(JXZ9IVVgr^TzMCDMk)RhHGe4AO+zqejY8$ft9;i-XRiZBN59bRs*Qky(>s- zFTn%1|9%()OHNrkp>wP@+F`_{UgXf4`P$6s^(_ajf@e5s`6XK3c@u}YIKdWZRy>MZ8@D?As?I>tAoFlBT_;Q3s@f`rp$tk{LAuU&%X z5GG7+VQ9B1$-Sd!h1xF9Rw0el`#jub=v~Yh8CIamOU@y@#Ub|V3-t0ac5eIL7 z(YQs5oyDU%b1{$E)v**Hk&RdI?Su1WYu~!WMnoKde$W{HTb80f_JneNS_NM6_N(;1 zLEO*5C+V$Yda_0o+V6{&bK-E)V>eL0M^s$y^m1b?wfL)#&%kI<&7EImlnj4m=yVK4 z223uCo~;lL@oUjnr>@BuZYJs(W-WL~^c3$a*`Bl_w|b7g<#(w5kiNehr7xW5K z-mmonLFhTiQ8k5>CG7fWSpT~8qPg>1Y4FL^wow0!UAoY-tA@U!Y0U)_*GtE2d+!%A zLlwm0B)IvF{oX}YOo0tzAMdq`q?_=~T5Un+qtCkKUWcOERvGamzrU0X_g&|#Yb>YE z?N2j7v0A3DezSEx;L({Hi|&J&p`ATvY|i+gjDHW3ivGkj?aNR1$ush%qXxe3 z0|mY3^?)x!Cn&!)4wJJ!oz|bp72f~<7s>rmICB})>9EH|CunH=_ieOw-E>u-fxu1< z+-4R|<`8bUgY%#N1QnNpJDY*+Aa0E25Gxx;3Ff_~HfBZ}3khZ&K~-K=XE}(qjk2dJ zM9Wi68|-NZ7PVlOlEf8#`Omzd>+&Cmd6*ghl(^YRFw6W= zA)~IUI-{JED}+&y8^{Ib<>O-%65{3)5EK&P<7DLL<>Tk!z5WSt@d33NibWxxjBP)cwjIXHw?(_q9Far5&0lleMO{F(_!&J|+j=H#mFhl}(40p;Hy{dord=-+=F|9`==0RO|z+1=It&r@Up=7HEl93YNv z&})8t|0h2SFv!x$)xpe7(#FBe3c};;XeG|`uY><%`~GV6wMDMo$@7mr|GVk`oYw!9 z!oRrxucZGg>1`!9f_sbW7T1jk+(>-uu3KC;B5)(|t-Ee<-H5=A#JBFc#dRYBHxl2v z>lW9I2;4|~>#kc|HzIH&@vXaVaovc(jl{R^y2W)P0yh%hy6YC#jR@RGeCw`TTsIUPW?z+WwBLX)P-@5A-*Nq6=NPO$ATU<9Ha3k@pyKZsah`^1+x9+;d zbt3{d65qP(7T1jk+(>-uu3KC;B5)(|t-Ee<-H5=A#Q&qaaQ`*o1LAl+%L8^jog;m6 z-2@E{r~HY$jJ9rYbgD`eof3IS8}$3gi73o63V1M?2uPUpKqHBWV`f$edr@G4&LJP9 z3+YdwyJwD=?7*nBBz=H2h5Y~!NFeKaPnNhVKtyAQcxI*2>PI!hi%^Ay^hVzZ{Tj!U z-Ez>znBNtON7T#HT7g(QIg0=ji|UAs&(3KY4~^QOu?fX1jV?F&+7e$*eoNj=LoiA3 zbaUz4#4lpx7*xJeoEbzt=F#XFl6BZudZK5Xx}fXD@$n*^$#Y-r302$0+bfLz#Qm-zsD<>?x7vS5Ap9#(HZ3?2^VQFUt!c!=+a4 zp;Cs;9OW$9?GG}!h6O$Y4isZ<1iAFt6P!PqIQYsB93U5#;*gayZ;)IRd^*6)* z(LSl@Y3SSxovotA5K*vwQ-0s_5I0%KPz#{eSXrE=W>=tw20HxsORLs^x}Otf9cs?lIu*Mt{i2+J%Dr}esnaPBV-MfZiG|h(@uU5W zY-6GVtPOg7rO#gmjCfzA#%F{ywI38ywKJeA01L97=mm5s>984siVt3ZckCVbEAG{{ zGXffkAJllkP#Uv|r1opLi)7u<9(YO^pX>Sv>BTwE>qRda_(7z>#jkowkF~;~JR>DU z!0f~NnH9Y)k6-kArC8cnpSwXfv1Sz5K?sm2Y*G zV)D2dePGT0XpoQ?+4M@!sSKHED_9r1Zu$XrA3|PB@Z$GCBwX&)jeqITATtawR|_!K zAX)`5Z zER$|K|IsZv5kdG>Vc_@!5pFiKtdRN8idRe#p8y)2=rpc7p?6>(BZkHo!U7Cc-s+IK zt-#GY5C8d1N>b-U*vdMRK>9+e`AcO)NBc6Z-++7+3aj>kzs zuuhBER40#EBnf_x6mT~OkFD$=oE@4?n;%iXqTS$8+y7on%0;weFCWs$t@o)6?OeTA zpPNE{=TxtxnwI@|Nw`Dvj>9_!|M$ZdZ}bMqvo*1L3@FQ2O8O>g2|Rv>CknVLe49L& zr@vEG)zwnGbh>5`T1U&9PJ;vNyuLhy*}&f|PN|kYzpXz#T;m&(Iz+RTRdcYdOGpWm z?juflSHjHE;-vDa&ilhCy9zmhnnv&l8hHc{O=07jsMqoeim6RBRs=&sw%4GC2a3(td(=I59pXt$2z{vJ}cZVbh0=Jmm z(&O&ShcrRC-mYMzj2;h!LHtwt5qc-{=o~=6Crr8U_GStdkaG=W^2fRn$4`CiLLpG8C^z9|f}(uPC2o=QVcAMLCG$S=E01X~QS z$?|wAQ*$J(zfxMx4I@N;k*K#1e<;-KPj$I?1{dlU3&lM>;H(zQJUGS?Jjw@4mc*Zx>0;)B@L%jJ88LAw;H?t#MiHU3R#d}{_31?f_kVfD zj})tXt;t%LeA-r4lQ#0Z88wrk(j*bepU;jgB45j2?t8Gb&02l<wP^qaN5ZC-K9n&RxG(?1w|ra@4sdvSwXc}!3l~u~ebGvYlGwyC+ zli<%k2Ks_G;VT`G@rWIJit_1bYF?+^7u+k4)9 zKq4ZIMdWlG2$WDpD-YDwt}*?b!X+U!{4U8=U+YDBtW(T8sO5Fk*yDy8siLppSZu5B zmz`1xH-n_r_aR{M^Wi6+mFvM)urI3lPhW}UrsgdCnDP@1h%m*rIwE^NTreK-`tYqf zNj@d^+^5B|=V>u)7fY|9tCd=E1`O<(K0W!BEN5*S4GS`+g}n7MO2F%pky!NJ7(!v$ Zk6o{)@SXrK%OBG?pD3uwm&=+4{uf4?&l~^% From 453cca98de74d1486efd660396ea62e11286f500 Mon Sep 17 00:00:00 2001 From: rybalkinsd Date: Tue, 16 May 2017 14:09:54 +0300 Subject: [PATCH 050/245] issue #468 tmp fix --menu +gray background on loading --- bomberman/frontend/src/main/webapp/index.html | 2 +- .../frontend/src/main/webapp/js/GameEngine.js | 32 +++---------------- .../frontend/src/main/webapp/js/Player.js | 4 --- 3 files changed, 5 insertions(+), 33 deletions(-) diff --git a/bomberman/frontend/src/main/webapp/index.html b/bomberman/frontend/src/main/webapp/index.html index 672c736b64..10e5c3b4c0 100644 --- a/bomberman/frontend/src/main/webapp/index.html +++ b/bomberman/frontend/src/main/webapp/index.html @@ -32,7 +32,7 @@

Boom

- +

How to play

Zo~Xr!J|7?KGLA7&<~p4W)iOpxFbP$o!hnWA{lq^*6UHtnKn zH68k5c7|nbWtxbDH7lIA_Ci@odI@*2H6gP&n#Xnu-Bd zAC&s?QQ*r$PD)=>J-OZA5ibS^eUSNBNmNylz6;2N4MgEZNme;QX2<~bTTYa`xt5Ud z&ofbPYwG-+xW^e_BO^2;WQLNo(6)v4j@R(9o8gK~)2qoxum~7jWU~MC`ZOsv{<1-99^<1Pq%aI=$^E=XOz$F@R zxo}H0z&0Tf*zeQ3g)tyxLP7|=&wjteuuVt=_WSg1hXIL3?-pSL5{&(RTaZMfcbh+; dm+k`A{{S-g?v4d$~x@AXyr+xRlQ{7#y6` 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 J6~cP{{|m-*35Eaw diff --git a/bomberman/frontend/src/main/webapp/img/fire.png b/bomberman/frontend/src/main/webapp/img/fire.png index 86b5abfdcc579ad5e4c319cb661557221a0423a0..8394bcbd5bae0509619c88414b3dbec97b7020fb 100644 GIT binary patch literal 7768 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 literal 62044 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 Av;Y7A literal 68071 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 z zs_I00S~{%L1*Vyt%i5zoiLZOh3RFqjPrO4%m(9<_(FG49tb1@XHLJ*P$myN6pR{x} zAHJxt6_giv1B02P?(Ze#)-VL ziCLQ#$02MwyBp=e7@2cP3$})jwbB$ObF`By_q5RDl0ij%P_O}f@7L~~j7`$VpQb{A zeN_|n7zz#{Z%5cQdo;60Kdq}9((o-x$IU#_a;>tcgcL;DStg|>@{+gFyke&-;&pL* zJz~UIC69<>9WL9q58r6TA2d8(0x0v8-7!nMasWMHA=eVq$7Plrah`?jl5r>k$={^H zlsxWME^xR9rEd3D_huk_;G^F_mln2o_*3uf{`iLwBmO>ZHuy#*;>WA1yhzLq`da6Y z+n?PYomoF(l$Wu7CaMp+$2yO=zVU?8n%$BZ-|0wJRykTGN!h*~)c^8bP#nhvi$hN6 zth~|f^b_)EQZor^C#lHx>1fR5M=hdg`pac4^RjP)X%JdrS}r?xz~wp4TWT`yd4h8} zJm27Ca%|O{+KRPHB6G|85OOF4QR?9WDGk|}FFri$ecwQ^5FNHhA(FE$_XS^gv5r6) z{n~3u+X}I*|Fh>O?yJb445G;R z1apyidX@>iT9_mDK2cf4JS;CCTd>!5e&dryz$C6+y