From 72a97e65a99d9e952524fb8a863f2f15b53d9730 Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Tue, 26 Mar 2019 15:56:08 -0700 Subject: [PATCH 1/7] Setup plugins for performing code coverage This sets up the repo to perform code coverage with the `check` target on gradle. We're also upgrading to gradle to 3.4 which adds support for `jacocoTestReport` and `jacocoTestCoverageVerification` targets. We comment out the settings.gradle to just have a focus in the exercise for the monolith. We might uncomment that again later. --- gradle/wrapper/gradle-wrapper.jar | Bin 52266 -> 54212 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 74 ++++++++++++--------- gradlew.bat | 14 ++-- monolithic/repository/cart/build.gradle | 40 +++++++++++ monolithic/repository/order/build.gradle | 40 +++++++++++ monolithic/repository/product/build.gradle | 40 +++++++++++ monolithic/repository/user/build.gradle | 40 +++++++++++ monolithic/service/cart/build.gradle | 40 ++++++++++- monolithic/service/user/build.gradle | 40 +++++++++++ monolithic/ui/build.gradle | 39 +++++++++++ settings.gradle | 24 +++---- 12 files changed, 337 insertions(+), 58 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index b5166dad4d90021f6a0b45268c0755719f1d5cd4..76868fabba54f8709d45529facad7553ed3308b1 100644 GIT binary patch delta 25650 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8594981ae..6f74b1ed9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun May 24 07:45:02 CEST 2015 +#Sun Mar 24 21:43:43 PDT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-bin.zip diff --git a/gradlew b/gradlew index 91a7e269e..4453ccea3 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh ############################################################################## ## @@ -6,12 +6,30 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,31 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` @@ -154,11 +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 + cd "$(dirname "$0")" +fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 8a0b282aa..f9553162f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@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= - 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 @@ -46,10 +46,9 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args :win9xME_args @rem Slurp the command line arguments. @@ -60,11 +59,6 @@ set _SKIP=2 if "x%~1" == "x" goto execute set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ :execute @rem Setup the command line diff --git a/monolithic/repository/cart/build.gradle b/monolithic/repository/cart/build.gradle index 2225fb46a..5fa13b8ec 100644 --- a/monolithic/repository/cart/build.gradle +++ b/monolithic/repository/cart/build.gradle @@ -1,3 +1,6 @@ +apply plugin: 'jacoco' +apply plugin: 'java' + jar.baseName = "redis-cart-microservice-repository" idea { @@ -32,3 +35,40 @@ dependencies { testCompile testDeps } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/repository/order/build.gradle b/monolithic/repository/order/build.gradle index e37323a91..ad18deba4 100644 --- a/monolithic/repository/order/build.gradle +++ b/monolithic/repository/order/build.gradle @@ -1,3 +1,6 @@ +apply plugin: 'jacoco' +apply plugin: 'java' + jar.baseName = "order-repository" idea { @@ -34,3 +37,40 @@ dependencies { testCompile testDeps } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/repository/product/build.gradle b/monolithic/repository/product/build.gradle index e4015d46c..62bd3eaa1 100644 --- a/monolithic/repository/product/build.gradle +++ b/monolithic/repository/product/build.gradle @@ -1,3 +1,6 @@ +apply plugin: 'jacoco' +apply plugin: 'java' + jar.baseName = "product-repository" idea { @@ -32,3 +35,40 @@ dependencies { testCompile testDeps } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/repository/user/build.gradle b/monolithic/repository/user/build.gradle index 6e7caea78..33b04511a 100644 --- a/monolithic/repository/user/build.gradle +++ b/monolithic/repository/user/build.gradle @@ -1,3 +1,6 @@ +apply plugin: 'jacoco' +apply plugin: 'java' + jar.baseName = "user-repository" idea { @@ -32,3 +35,40 @@ dependencies { testCompile testDeps } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/service/cart/build.gradle b/monolithic/service/cart/build.gradle index 187351853..387388348 100644 --- a/monolithic/service/cart/build.gradle +++ b/monolithic/service/cart/build.gradle @@ -1,4 +1,5 @@ - +apply plugin: 'jacoco' +apply plugin: 'java' idea { module { @@ -35,3 +36,40 @@ dependencies { testCompile testDeps } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/service/user/build.gradle b/monolithic/service/user/build.gradle index 08f9be64c..36342f425 100644 --- a/monolithic/service/user/build.gradle +++ b/monolithic/service/user/build.gradle @@ -1,3 +1,6 @@ +apply plugin: 'jacoco' +apply plugin: 'java' + jar.baseName = "user-service" idea { @@ -33,3 +36,40 @@ dependencies { testCompile testDeps } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/ui/build.gradle b/monolithic/ui/build.gradle index 3fd3d5d0d..6e3cc9177 100644 --- a/monolithic/ui/build.gradle +++ b/monolithic/ui/build.gradle @@ -3,6 +3,8 @@ apply plugin: 'war' apply plugin: 'jettyEclipse' apply plugin: 'jmeter' apply plugin: 'docker' +apply plugin: 'jacoco' +apply plugin: 'java' def warName = "monolithic-shop.war" @@ -160,3 +162,40 @@ task packageToContainer(type: Docker) { addFile("$buildDir/libs/$warName", "/opt/tomcat7/webapps/shop.war") } + +jacoco { + toolVersion = "0.8.3" +} + +jacocoTestReport { + reports { + xml.enabled true + html.enabled true + csv.enabled true + } +} + +jacocoTestCoverageVerification { + violationRules { + rule { + limit { + minimum = 0.3 + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + +check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/settings.gradle b/settings.gradle index 5be0bea90..5dc9f7eb9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,15 +1,15 @@ -include 'microservice:frontend:catalog' -include 'microservice:frontend:checkout' -include 'microservice:frontend:registration' - -include 'microservice:service:cart' -include 'microservice:service:dataloader' -include 'microservice:service:user' -include 'microservice:service:product' -//include 'microservice:service:product-go' -include 'microservice:service:order' -include 'microservice:service:navigation' -include 'microservice:service:recommendation' +// include 'microservice:frontend:catalog' +// include 'microservice:frontend:checkout' +// include 'microservice:frontend:registration' +// +// include 'microservice:service:cart' +// include 'microservice:service:dataloader' +// include 'microservice:service:user' +// include 'microservice:service:product' +// //include 'microservice:service:product-go' +// include 'microservice:service:order' +// include 'microservice:service:navigation' +// include 'microservice:service:recommendation' include 'monolithic:common:util' include 'monolithic:common:dataloader' From 3274574c972b7b66f217e2ee935821e2988a4323 Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Fri, 29 Mar 2019 08:20:21 -0700 Subject: [PATCH 2/7] variablize the coverage testing This adds a variable called COVERAGE for test coverage so that we can build some peer exercises for working with environment variables that control our build. --- build.gradle | 2 +- monolithic/repository/cart/build.gradle | 23 ---------------------- monolithic/repository/order/build.gradle | 5 ++++- monolithic/repository/product/build.gradle | 5 ++++- monolithic/repository/user/build.gradle | 5 ++++- monolithic/service/cart/build.gradle | 5 ++++- monolithic/service/user/build.gradle | 23 ---------------------- monolithic/ui/build.gradle | 23 ---------------------- 8 files changed, 17 insertions(+), 74 deletions(-) diff --git a/build.gradle b/build.gradle index 64d65dfc2..6a08dac8c 100644 --- a/build.gradle +++ b/build.gradle @@ -211,4 +211,4 @@ subprojects { task wrapper(type: Wrapper) { gradleVersion = '2.4' -} \ No newline at end of file +} diff --git a/monolithic/repository/cart/build.gradle b/monolithic/repository/cart/build.gradle index 5fa13b8ec..b81c92298 100644 --- a/monolithic/repository/cart/build.gradle +++ b/monolithic/repository/cart/build.gradle @@ -48,27 +48,4 @@ jacocoTestReport { } } -jacocoTestCoverageVerification { - violationRules { - rule { - limit { - minimum = 0.3 - } - } - - rule { - enabled = false - element = 'CLASS' - includes = ['org.gradle.*'] - - limit { - counter = 'LINE' - value = 'TOTALCOUNT' - maximum = 0.3 - } - } - } -} - check.dependsOn jacocoTestReport -check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/repository/order/build.gradle b/monolithic/repository/order/build.gradle index ad18deba4..a8b59049a 100644 --- a/monolithic/repository/order/build.gradle +++ b/monolithic/repository/order/build.gradle @@ -51,10 +51,13 @@ jacocoTestReport { } jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + violationRules { rule { limit { - minimum = 0.3 + minimum = coverage } } diff --git a/monolithic/repository/product/build.gradle b/monolithic/repository/product/build.gradle index 62bd3eaa1..bc8894dcd 100644 --- a/monolithic/repository/product/build.gradle +++ b/monolithic/repository/product/build.gradle @@ -49,10 +49,13 @@ jacocoTestReport { } jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + violationRules { rule { limit { - minimum = 0.3 + minimum = coverage } } diff --git a/monolithic/repository/user/build.gradle b/monolithic/repository/user/build.gradle index 33b04511a..4b8c58ea2 100644 --- a/monolithic/repository/user/build.gradle +++ b/monolithic/repository/user/build.gradle @@ -49,10 +49,13 @@ jacocoTestReport { } jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + violationRules { rule { limit { - minimum = 0.3 + minimum = coverage } } diff --git a/monolithic/service/cart/build.gradle b/monolithic/service/cart/build.gradle index 387388348..6b52c3303 100644 --- a/monolithic/service/cart/build.gradle +++ b/monolithic/service/cart/build.gradle @@ -50,10 +50,13 @@ jacocoTestReport { } jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + violationRules { rule { limit { - minimum = 0.3 + minimum = coverage } } diff --git a/monolithic/service/user/build.gradle b/monolithic/service/user/build.gradle index 36342f425..f9dc615f3 100644 --- a/monolithic/service/user/build.gradle +++ b/monolithic/service/user/build.gradle @@ -49,27 +49,4 @@ jacocoTestReport { } } -jacocoTestCoverageVerification { - violationRules { - rule { - limit { - minimum = 0.3 - } - } - - rule { - enabled = false - element = 'CLASS' - includes = ['org.gradle.*'] - - limit { - counter = 'LINE' - value = 'TOTALCOUNT' - maximum = 0.3 - } - } - } -} - check.dependsOn jacocoTestReport -check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/ui/build.gradle b/monolithic/ui/build.gradle index 6e3cc9177..48548a178 100644 --- a/monolithic/ui/build.gradle +++ b/monolithic/ui/build.gradle @@ -175,27 +175,4 @@ jacocoTestReport { } } -jacocoTestCoverageVerification { - violationRules { - rule { - limit { - minimum = 0.3 - } - } - - rule { - enabled = false - element = 'CLASS' - includes = ['org.gradle.*'] - - limit { - counter = 'LINE' - value = 'TOTALCOUNT' - maximum = 0.3 - } - } - } -} - check.dependsOn jacocoTestReport -check.dependsOn jacocoTestCoverageVerification From 2b56b19e6e2c5a6a321d1280804b264e06101826 Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Wed, 3 Apr 2019 22:57:21 -0700 Subject: [PATCH 3/7] verification was missing from some sub projects --- monolithic/repository/cart/build.gradle | 26 +++++++++++++++++++++++++ monolithic/service/user/build.gradle | 26 +++++++++++++++++++++++++ monolithic/ui/build.gradle | 26 +++++++++++++++++++++++++ 3 files changed, 78 insertions(+) diff --git a/monolithic/repository/cart/build.gradle b/monolithic/repository/cart/build.gradle index b81c92298..7a6e769e2 100644 --- a/monolithic/repository/cart/build.gradle +++ b/monolithic/repository/cart/build.gradle @@ -48,4 +48,30 @@ jacocoTestReport { } } +jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + + violationRules { + rule { + limit { + minimum = coverage + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/service/user/build.gradle b/monolithic/service/user/build.gradle index f9dc615f3..420067dc5 100644 --- a/monolithic/service/user/build.gradle +++ b/monolithic/service/user/build.gradle @@ -49,4 +49,30 @@ jacocoTestReport { } } +jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + + violationRules { + rule { + limit { + minimum = coverage + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification diff --git a/monolithic/ui/build.gradle b/monolithic/ui/build.gradle index 48548a178..dfb879d71 100644 --- a/monolithic/ui/build.gradle +++ b/monolithic/ui/build.gradle @@ -175,4 +175,30 @@ jacocoTestReport { } } +jacocoTestCoverageVerification { + Map env = System.getenv() + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + + violationRules { + rule { + limit { + minimum = coverage + } + } + + rule { + enabled = false + element = 'CLASS' + includes = ['org.gradle.*'] + + limit { + counter = 'LINE' + value = 'TOTALCOUNT' + maximum = 0.3 + } + } + } +} + check.dependsOn jacocoTestReport +check.dependsOn jacocoTestCoverageVerification From 9be4c554847f64dd428d41cadd43a59c108d67c2 Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Sat, 6 Apr 2019 08:25:31 -0700 Subject: [PATCH 4/7] We need some sub-projects to have WIP coverage testing Not all the sub-projects are ready for full coverage testing, so we're reducing the testing point lower than the highest testing point for other projects so that they always pass in favor of projects that are ready. If we test below that limit, then testing coverage can apply for these sub projects. --- monolithic/repository/cart/build.gradle | 3 +++ monolithic/repository/product/build.gradle | 3 +++ monolithic/service/cart/build.gradle | 3 +++ monolithic/ui/build.gradle | 3 +++ 4 files changed, 12 insertions(+) diff --git a/monolithic/repository/cart/build.gradle b/monolithic/repository/cart/build.gradle index 7a6e769e2..26bff9d1b 100644 --- a/monolithic/repository/cart/build.gradle +++ b/monolithic/repository/cart/build.gradle @@ -51,6 +51,9 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + // This module testing dev is still WIP, lets validate when + // coverage check is less than 0.15, otherwise we always have 0 validation + coverage = (coverage < 0.15) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/repository/product/build.gradle b/monolithic/repository/product/build.gradle index bc8894dcd..10a109a3b 100644 --- a/monolithic/repository/product/build.gradle +++ b/monolithic/repository/product/build.gradle @@ -51,6 +51,9 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + // This module testing dev is still WIP, lets validate when + // coverage check is less than 0.15, otherwise we always have 0 validation + coverage = (coverage < 0.15) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/service/cart/build.gradle b/monolithic/service/cart/build.gradle index 6b52c3303..ec51aba7d 100644 --- a/monolithic/service/cart/build.gradle +++ b/monolithic/service/cart/build.gradle @@ -52,6 +52,9 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + // This module testing dev is still WIP, lets validate when + // coverage check is less than 0.15, otherwise we always have 0 validation + coverage = (coverage < 0.15) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/ui/build.gradle b/monolithic/ui/build.gradle index dfb879d71..522434b31 100644 --- a/monolithic/ui/build.gradle +++ b/monolithic/ui/build.gradle @@ -178,6 +178,9 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + // This module testing dev is still WIP, lets validate when + // coverage check is less than 0.15, otherwise we always have 0 validation + coverage = (coverage < 0.15) ? coverage : 0.0 violationRules { rule { From 6e7d715ed9278e4b60d9712979e04afc82e44e10 Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Sat, 6 Apr 2019 09:46:13 -0700 Subject: [PATCH 5/7] fix service user with WIP --- monolithic/service/user/build.gradle | 3 +++ 1 file changed, 3 insertions(+) diff --git a/monolithic/service/user/build.gradle b/monolithic/service/user/build.gradle index 420067dc5..b1f2d4d97 100644 --- a/monolithic/service/user/build.gradle +++ b/monolithic/service/user/build.gradle @@ -52,6 +52,9 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + // This module testing dev is still WIP, lets validate when + // coverage check is less than 0.15, otherwise we always have 0 validation + coverage = (coverage < 0.15) ? coverage : 0.0 violationRules { rule { From b5549994970f9841107406fdbb2236a81e4ba0cb Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Sat, 6 Apr 2019 19:02:20 -0700 Subject: [PATCH 6/7] Tune coverage ranges This tunes our coverage range to use the test cases that have the best coverage, but still enable lower coverage for other sub projects. --- monolithic/repository/cart/build.gradle | 4 ++-- monolithic/repository/order/build.gradle | 2 +- monolithic/repository/product/build.gradle | 4 ++-- monolithic/repository/user/build.gradle | 2 +- monolithic/service/cart/build.gradle | 4 ++-- monolithic/service/user/build.gradle | 4 ++-- monolithic/ui/build.gradle | 4 ++-- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/monolithic/repository/cart/build.gradle b/monolithic/repository/cart/build.gradle index 26bff9d1b..d37a25edf 100644 --- a/monolithic/repository/cart/build.gradle +++ b/monolithic/repository/cart/build.gradle @@ -50,10 +50,10 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) // This module testing dev is still WIP, lets validate when // coverage check is less than 0.15, otherwise we always have 0 validation - coverage = (coverage < 0.15) ? coverage : 0.0 + coverage = (coverage < 0.25) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/repository/order/build.gradle b/monolithic/repository/order/build.gradle index a8b59049a..898318539 100644 --- a/monolithic/repository/order/build.gradle +++ b/monolithic/repository/order/build.gradle @@ -52,7 +52,7 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) violationRules { rule { diff --git a/monolithic/repository/product/build.gradle b/monolithic/repository/product/build.gradle index 10a109a3b..7c6bbf17d 100644 --- a/monolithic/repository/product/build.gradle +++ b/monolithic/repository/product/build.gradle @@ -50,10 +50,10 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) // This module testing dev is still WIP, lets validate when // coverage check is less than 0.15, otherwise we always have 0 validation - coverage = (coverage < 0.15) ? coverage : 0.0 + coverage = (coverage < 0.25) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/repository/user/build.gradle b/monolithic/repository/user/build.gradle index 4b8c58ea2..7671846ef 100644 --- a/monolithic/repository/user/build.gradle +++ b/monolithic/repository/user/build.gradle @@ -50,7 +50,7 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) violationRules { rule { diff --git a/monolithic/service/cart/build.gradle b/monolithic/service/cart/build.gradle index ec51aba7d..98b293371 100644 --- a/monolithic/service/cart/build.gradle +++ b/monolithic/service/cart/build.gradle @@ -51,10 +51,10 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) // This module testing dev is still WIP, lets validate when // coverage check is less than 0.15, otherwise we always have 0 validation - coverage = (coverage < 0.15) ? coverage : 0.0 + coverage = (coverage < 0.25) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/service/user/build.gradle b/monolithic/service/user/build.gradle index b1f2d4d97..25193645d 100644 --- a/monolithic/service/user/build.gradle +++ b/monolithic/service/user/build.gradle @@ -51,10 +51,10 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) // This module testing dev is still WIP, lets validate when // coverage check is less than 0.15, otherwise we always have 0 validation - coverage = (coverage < 0.15) ? coverage : 0.0 + coverage = (coverage < 0.25) ? coverage : 0.0 violationRules { rule { diff --git a/monolithic/ui/build.gradle b/monolithic/ui/build.gradle index 522434b31..bc3f7cc41 100644 --- a/monolithic/ui/build.gradle +++ b/monolithic/ui/build.gradle @@ -177,10 +177,10 @@ jacocoTestReport { jacocoTestCoverageVerification { Map env = System.getenv() - def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.3 ) + def coverage = (env.get('COVERAGE') != null ? Float.parseFloat(env.get('COVERAGE')) : 0.5 ) // This module testing dev is still WIP, lets validate when // coverage check is less than 0.15, otherwise we always have 0 validation - coverage = (coverage < 0.15) ? coverage : 0.0 + coverage = (coverage < 0.25) ? coverage : 0.0 violationRules { rule { From 8a9a6051b6dc97cd21b22d4871146ad29a49b4e6 Mon Sep 17 00:00:00 2001 From: Edward Raigosa Date: Sat, 6 Apr 2019 19:48:10 -0700 Subject: [PATCH 7/7] bumping to gradel 4.3.1 wrapper This is a bump for gradel wrapper to see if we can fix the java 9.0.1 build errors. --- gradle/wrapper/gradle-wrapper.jar | Bin 54212 -> 54329 bytes gradle/wrapper/gradle-wrapper.properties | 3 +-- gradlew | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 76868fabba54f8709d45529facad7553ed3308b1..f6b961fd5a86aa5fbfe90f707c3138408be7c718 100644 GIT binary patch delta 32421 zcmZ6yb8u!+vpt-NZA@(2#>BR5+kPf`;$&jmwl(p@oY;2q#LjQ-`+oIR-TTL>?&|8j zt4`HE-FvNGXQ&LKqZ|TRSq=gc6ATO%77PsR2Ur3!CDQ*`8ikQ(;eQeJ1Q8XS%##d| zE6DX5*#F6`B!T?TnrZ6)+85^k*d}LME~x)_NtH}H|MvX>HtxjdmPCv%3U1((WQI=) z;0S}OUcLHd^6NHQ-hUov-Fgq@Mhf>DOhXjzZ$P@=ajx67pqJ(2ah;PeSTblu5}g+x z*%f;Uz1_x)5FgH-s@{G>kE_*rT@up=VIBL5Whn2Zpe~PH{4PuosI9;SHK@9YGJL+Z z8>H;?{6hq-jR{|1Wq+Le&4s0OJus~vKu8%6{WsS!TKNsBw#3xgFswki<)>FyFi%OR zI%8dlH#@4K5lB&r<~r;mJm_F*stJk?ae}eHi>8NJ!wvk-;!k}7^Wyd$$_7H%qh%5u z_7&St6G7oNuMSh_c!HGguE(gj7Y3_pNT7M{{W8UZ!h}7NFo{Z+I0oQw>r##>U^M2v zl|DJl4>{`Qgy0LjtOJ@>hlamB9;S3q3?cq|)R$K}Vuo;K>Ce9%80^L2k>61CwyyH4 zhDpWdH=+}V79oH&{sF;-Da5UGVNIk!YW9e)^vvA21XxBphuTV67j(1OX^2U=V@%FM~l80}kACnH#v zOuMo4iA!scU$~t!s^tvPq4a}etIQJ=-=Y8asrdy$n}$O{1_Pra00SdUaxunE5*dXB zFqzq#xVh!%AQ)pVdk8A6ZQ{mC5^GA=8{e4z#(u@a4`D={9T=za4_r06~X24fynZ8T!bOxDps}F8jncwNGb~9vY9h@pvqRG9Uq?3sP_-3Lh`KxfqG`?K783b5|v*$x7r2jc$m z2Y~mD5MZ}+ee=}v4AbqnLk!X&WOqHvJ5V%AVmDg2nNiIEBuw>p zebHjQG829|>_C1>jdHuc*8!dIR>ITV{iBWg_o+gE_0X+JtK;*Kfp@~O_TRN?m#G{#(aKGc6d!Wq?Lw8(D+LAfW z4^tV~FAYz1Mx2>OGda!;Yj*T=DcCO$)nv9SfPo+7@2?mF#%0Scn?<}A-Iy8gE#Gz4 zK}l+<*S_EnMP{QY@km3aD38Rr#Jp4_&`@Wu2Go~&al$4gY@RL6MIr!)?dJk92s4xs zXeAVNh?;Epl8p@9tS);3*Pe_k+!@*8i>v5dPGKj%O)*=Sx}PJU2u>@tumZOws49L7 zUiMAaZ8<)6eXe!^6Tj2qb6AdPzpEIlvIViRW+#5vyJ^`hVs~af+GW|8)C9M_*&Z3{ z(`%d)I|GTDl+5bvRaO8g>WLS|Vz&v+=?Zy9hs-*^jY8?7&IT<#r-_dY@3a#1`znP( zj}2!^MPXN^<@S`z_6e(FrfbgWf&56*gi8LT;U-<=y|`h_@2Q%O0D|>vB4Yf>>rD49 z6iT($HI*iGxC(gI=Imr;nH3x1(}Sm4qiMNt6#dM`<3q9xd;|a+4B_@80lkC;n_;E> zGHK&qtNGStezRi}87U>p(lScX%ISL*Vrq77OS#Q+Z%y4%;>H|YKx!|&apm@uG%4hZ zifTfyv1XS3H&>PQhlwFJR02QQN?EAN%^2ocRe@h4ul8skh z*T(Ou_M4UL?%UE5e0v3EO)PtBp4lzX0kBkZ$dx?n^XMKm-|1#o%ZZ7)3uUm5db6Eh7`W3z^!hz19cg}b*!!{9f z=5FfvmUf_}1(%csOF%Bap}QavWw$*)lzdQ24VD+n!A9sMh52;N6w)oO)6~4G3)4ZV z8(h}OH>g&FZKgG)4dyVyQ^7sGP|e+@a2>NPI;XT0 zWC+Wk-3rA~KueplnX`*xZ}jT3pKjdkMM;0geXkZ#ex-AWf*BSAPg8n`i$#nhh>I(O zs{))PBvDHh(ftrlvx+G9>whdv6?0g4#B>XEr-c&_;MSGyP+^lmp$AA|bgOh9m`l#P zOGv44ErgiMQR52C$*UMwN2e$4=`+7b3lZ1QOZgj7WvKRlAFrUU5wj0OoXId%&2^Qf zkT;38Il>rQmuRS{6-r6qU^R=<>6f=*C;{M6ff~!XhIw6t;&gbVov5FO`ul8Gdf*=Y^9*M;!1WqrYgl9VdUKBSVc7>@}zWhG9BEdXAmFW zsfjuAv~d)5oYv~EajfWZIaJ8Ey7+ba`SGoF3ifDyv=tTG!5f)NH_9rS8dlWvwKsR$ zw1l=MWu-w|*!P2Kbs~3ogSoV! zPulBgXgDC!l`MN?k-H<`SF$znDISZ(M@XAijm663&y)7G(OAu)>J3OM`2lyRs?$>H zVc~#dQ=@;taGH2*l|1)d5g-%WP#{0lh+bK83y&sa7PE?CrOm^%`qT<9ApZw5rHM&P1MAQk zuaPT-Nn?timvvDujVKIMz$&FRIz)5Ts9Y!>?Y;C1*8U|HPUggHah2E7o!;EeZoy3N z=Zn?iKck%Wc)iCedI`@h7Xyf7Nh*c4lFV(Xs2=C@RX^))MIZ5Aj5eI7uH?-0cUDH% zyvrGTsYuRB+#DbaCSlQMS}0 z-e8#zvvqXrfnPEaX5ln_@YCp_G6ZPQe4wcB@HPdPxu;>pM?P#j#y%?W;cVQ64hdpi z_>~5a(F+O}lfGg5zu3vhm0*l}S+1Y0m~?mHXxx-rdD(s03MH58`$mVB8aPegPQ)qq zt766dDjUG2U_t!$??!C@n>X7^7%Cs$jewuh49Da}+*p{w2=46sxX+*d#_rc68B>G7 zjy1s#$mbdxI~>BCXjJBM2O^bF4f~>5+E2d~y9u;CKTyD#S34f1ba^hOMv1Sgb_+Vl z+HeR%KcR2K!BJ0KL+?#Pz0Jc=BA*exJ<3>bR3o%KpK)vxF&1#CDZ4)M(ON{*X3FR& z23fNbN+_FV&_Nj8Y0q@ls6*H!`yfyfeIZi=o_#1sTlbf=gtDHi+DL2)Y0)Sg4JW$1 z2ii?0&3AbF2flkD+@@@6#{R?vwl|^^smFBs->BXK^5{;6Go_XmFNVSb|1SRa&76yC z)pZFshT$TP9Tz~iMx^y`i|*KLCoAFK8LW?aG_X~8)Yu0~-X7HlzQLEvv+2W`xw9Uj z`^$5fWjig=) ziwp^?UR_9-CU z8vN?0JRE@eH2?k<5&bc=9B_aAjjsg9Z*COu#v1W02A!0ZU<5Lbe%G zS`hloBhey=qHa&>#t^rpuojH^@z&Xt8K#U*CA#cJNF5>afIv$5#9LTMWP%|`A&vP% zpfO&hGxQ+!yj^fBby%_g2>Ek!tk2-RD;m&+({L<1w?jJYTuWizx+A6zC4ojvMVa^E zg9ey6V4wSJeU#V`oPVJMXAZr#DXV7i%>`Bv^rgjJ!*2T#zU@V?5ce`iLpV(8_Pkrp zNr|VGp@sXlbF2s`9GVa+;FsV(u}UzMG=B`QtQ*Dje0Zk@fJ&c)>Z>T&TTdAXu0#q{+ao7$&F^hoO$$jAm z?6>?piB~JQff($!&OFne#rx2Xmi|tYe%V2Q{08dig&f{^BT}Jh29sI|0|ccx^6MhH zYpcXhu#mS?bfaqqx+b-PgeUej5Wwy1l?_)^E4i-ffLX<-rT32@W#TmOx=d7Tw@J1G zrr32CX7v$r0A);x#ePhQMqss^{t2}{NL%2y5({=&ni)trRFDxpYWU$%yPI{fU-CT0 zU~n;oZAD0|CAUPB_^{=Jb<2MSt(Ewg@EOh{nVdK5Rtjzxvnjs0N+uqlDo;o`8PQW2 zhu;6g{O=_WlF)J!1RegGDeUuIU$SvBW1HC1z(kEzl@L z6BYyK!)f>aOs0P=6{4IJk;S%d4(~c5A3p>Ne5+=;+3`8SplYa$)*s_(p4YT=OOhC1 zH4#8y^GPc-rk^hRSbI9g8DLRQiStf7l23O8oT;f)i8rzSuw}rhPOFj8rpbvApWv}l zvC~Pd9u^K`c|E$NVn$w$AwNflC2S@SpAB0Oy2ta}3H(1iOJD>Gnjth8*dYQK82f+T z4SARZkfN#QhH;D=D5NvLcFxI#%!4+{IV;Y#5_~U0*F_=OuTJ9D=&~Owx-=i&O1^Bp@B8K1zUFXXk=s*^TgyWP4*z(ko$I&7gEhG%_w)p(0DP0E@W*Vtd z<1F5IaO$fMQX(<84XRGy5(?6sa%e1(th?xpYEt%MHSrx8S7p)j9ql$36<%~)-tegm zbGtv6pTa6DiF|kv2h?I{xhM>JAR*xO($1<0jJ1ljP)6*)3rXrL&Uh93k%|F-T^CJUhdeKL zB1FgxXv|9?_k8N)hp!4R$JHLjWA3SIaHZ$~hGVX!4BMJ-M7`x-`Av#zM~ z3f&uWjrUAsNU8+Pp6?FQ`rD7%>$C&YZnMM5`Hsr1a}mxp{ny}uAT5c>ndSO#PUER> zkj`xhmUNSC1x4l|C3r@f;I?`*8#6|l&5l$;(K1r@ZZ%bifqgH~w=2Fz@>_ z?G}gfP&+UW_n9}4be0#l1$v>&zEV4I%*q~J+(t2V$}W|VWo!2BR*toZ+YZ_gmdeWZ zIVGs=rWI&}|BU2l{ah2|<*Yi$2+=o)qZ{h`1MYnE%+63_k25(Bp zYclnNTulqG|G-xr>DHE&&wMtOMzciJPvz$kpO-z;I*P&Dn3J&lHbCU_)tK4o)M`PR zcG*HAodA(|EhO8h<=q7Fqe83;i`yHIhFkjys|#UP4)Z>`ZG<3S3{zbUE(oxabNUk* zMFc{GI*PZe#+d^20cb{rn43f6()kFeGYn)xJ$*q#WQhx2`7WzlB2snJ1wqsNEQ(0C zTsTU@_$QrVVzyiN$b5e{0uVl;Pcj_O9vw^3OZ?K@iMyCx;S%K7k{Kb0Njw+$sw4HK zD)*VcYgh%W>9x6dqv@5w_`O~2fb_{ytal>y*;4FDu;2kg&wg}1IP0o#$Q*N?cTBB) zZ#x(kruBaxkYClA@K#p4qR&6*jS1SrH^F%YhauQGq}2-)!2M51O1@~9J9_1hKeFe@ ztT(Jazao_+xZPG5xvFq2&@eKb`;4Y0n=6;?sm%A)j>bHQ#)R%6k2U>F!{k0 z(VBm%m4kFN5gD$@1@`9;0jaS{ zlstO<1#6^9zzljPb7Hz#?cOl$#V>Q#m6#EyMYZ~Z`QM!uvch*$9~`V{$RHaW?SHua z^J?3qQg|>hj_+V#bpL5jI|k56@2W%q`w)8;GQ=NX%=Tdkp(~+_4M^Y3@$Jn_rA3in z>Ln<05)@-BJtzoevRd7#HrZvUW%O2KlYUJ%pDI3W(Qo?2e|7OsG`jx;d_W0rzHPNF zzZvGf&kV+YTOr}9SOIov*bm7a+^TkT%lF%0QKIVyr_p6(v%JDhJLFck$J`(VSFoEU`F|pBd>|_iGZ5*AH$zJG#Y&1KN%HA>g-8N4qFa zHtACL1>v`e;=px9A zM^vxcaA2J!A`zY;ujf0DH@}Z7MxrjhwaU4&MRiH^;+Gat!r#BBp(Zu zQhSx&fX$OW-QSm_>mCGbU3qy5`ZCBA`NMs}Gt>%e+cz>AD8(ikwTw3WJagSDDTAaV zj7i7cB8tWrs3B0w5NI}))D?wHPPWm_VckoOJFjT&kN^APE4km`9G)S4GKOYzL4+S3 zGhS$U%Y!QuEQbIGtyscH-at)F7yo0F1J{S^s^C)Z%vZ#@N3i6U6Hmj&ebv3%X5VZkCM(a?tQxR`2#sVD>i}U%psy%;cKwUJ_ z%=`ECk8}YFq~_90+{i@^V)a>s3x}b~&n@Ne6JfPnFKpP0I0Y~J@-h|LOoWL*tgYqk zDfS<{6IS0~6e$@2ALi5FPi3_xe)V!EU?%Um!1PzZR3@^`TT)?ht}P6)-iQ7! z%y!%y1H~Nvl&K_~9@-=SkX($2)#K&J3h1T6KWEOSk~lKrq%OQW4COP<+FhL3D-3o> z0O!Ig~xgl2Z=$78GC+u&m)M>XId&++ex}bP(V)0juv&B$X{I+tGv19ZZJ{Jamnw$ z7@?b~O{ysyNvcqtxEE~Fm6)ZbNIP>oXY0Z$wr&TsPyQ8+o_U3?PMSnekc?NCS{un} zT0;d`isTEL_%nFPSx~%bFM8@ij>nJAE-Bh@!28@rQ)q~R)E;-aTGYehN@xjmZxZCV z#LzN~=4e$xQ^?e2&eVwuwja!Fhis!a4XKXTI}LT?!jS1vF+>5i`#voQmR7Zxrn=Hv&Yb#YV~N42IQrA&)5FcIt= zRMr`}Bn^Ei9~W7*>;y)G1=zYyL3DVW)$e*PWB0Kd0yH#N1mw;S1WZu^OcyZ@NKk&f z;uh7Os}JB0VeK5A4`EVpbQ8K8M&3>Qo3?Iq(kx}G=B*Y`PkIf@J>k<~VU2KIpWT3% z9;UF+QsVn@6eYCjo_(Jq59SqDrbmJ)c!SxK{>Gc!%`x@J2~b%k zulFu)Jx|ER#$UB+e(EEOj-GA?q$;hn!Gct_k^N2rSydY%`-(iZ?>!@}ogE4D@0GaL z;oUq0_%=DiRX+*y7u>fPtIDbvr&a(Zrb`vhq{zdyJi@?zn3r)^AhXbHRQq&x;&!52 zPD5IP8U;7RF_rnTYizT^4CGZV;~1OIDYnVDkB>}m6ZEL+5!}l_Q%}-N@jBePi2G#y zHql5!3{hDh_F)pgmbKpCH?sNz48DEuFew&f-&t=c*94dv12Io<9W%xD*JuFn7Mi)! z4e?CK%34qL+J~tmWu|#c&Hpwx>&gDGO7NK#eXgCBIeg^q_~b$abIVb}AiIC}k}F`r zr!$sy^{nDG%=`Fiz{73u;4TK)?dv#fnWoEZiJ!|fliP9xH~bX>NlZH|b_M!(I0>*m zZ}5h5V@eG7Y0$?nALwW!KJbwrcC55reFLnXn`+u{<+{D_chKHk!}0nA15;U!1a14 zuY4@#0nO}@6rO0$buYkv93aAL2ziU#pDS)I&mvtU#)yps1@w&<_>z1F<|v-6?Po$3 zL=g}O@x?w?l1zZS_gz()rYdLf`1^ZuYesw%VnZWW!XR*J*A_cIc(8&Ehb?OuLsPcavs(hw?=BVXm~JWNcjCbrB|xK z!8>sOH$`pcZ+5_R=XkTy&KY}aHPrpoVJ#Is4a9d6`-s^ei^jxiR>Daqc$(MW^afD{ zJAVS&c6B!XvUtyoxc#x=%``|i>Ww$3$+KjUd*&CffgsdzzjE{k$7;1Sh~rz&7~&^W zShTTH%jb_a5Iiqq^^}Ww=n;tG$g@dl!GwFAzG|KE)wux#Sd9fxuASJPULn8Xv`1OY z4qh8P)|stJ`eMJ+6(M2SL$%0Pq{xqR%3o0V^2!5@`k&iagS=Qhyx1K|T4IxDhhjQH z41aA_63z_X!5PV%Af!(Rryt(`M!2*taVfKVBI1ucof{F+!S=iQ5u4PyaWPeBo`=#!zs{6`a$gU}&DfdK~gm=q*T55PKX5vG1Rnx2}fhZ1eCCPyD5 z^5mewOC)I^B{5+o*`x4EjM<=^&XGeu*Cf`|y)5)-!}2OG(NIU{plkJ5Uem2Xfae+$%mZwe}H0fu;+tA&0 zL{(uKq8^07GbiFki*e+oNq^0gFee?mqCL6e0{F?rCG;^4ux? zcQr_Lkqy6BC6yXxLKoEQ(q!WwaLzB3-}t}-nEojIFr+7(BIOHTmT3|iI=+Jr(-Un5 zj>7m932@7(;qFa!OY9*6S;?vVT%HcuSlOB0Wn%vx|cZP(Xh&0TAVmI+rY0X;Mv z1a9B{KuvS(m-Zx{7A7jqoiA|m_O6s{j$+Kf#52rsvSgwM~ipOH`b@v#T(2 zp=mW+#j~g6vd~&%e)F5Kmm7Pc0??0hY*7+(Uz{o6eJ8QH^FCP?dm(};uZisGzpLNrW{{@j6oPhda0CHpWqw8{g3LH zM^otDj$_hvC5ChR=WM))0;{{fW+F)`EISsGB>l$OE_=^fev|#w1~_@*$>?c% zMl2w(3*hZ<(&D=#2?AAsxZn;IamYcw)2$j2t*t`dMr|IY0xTYs#+h7_l^WA@v+1ig zD=nZumV<2kuZ<2ZqzPa^?3j6{YG1Q_wdBinU-DJQjLq7KceI6IK8#JQ@9~=48F9I4 zQlhg0PrQvLkgreveTQ% zBa?H!6%P7(3`Cu_UdrD{B@Bv`bs@d*Oq8G3gqkmF(6XPY4&+KEjVk^^GlQI7wg`5T zfQFoo8sX8_t#JG<>?iw20n!egbr$zHaFNoKRWOc5t%1y>X3G1oyd&%WN?LwPU9meo zraVQKhfW3#Ya#GJ2{19JnqE$!HXZoQ2ZUvR9c-HV&01;e2=^I{G&w8E$Wj!)TB#O-R(6>s+s#{P+E>l)+`O1<8vF@7@bS18y&B7-rivm zv4mcr;ltM4ip*?C7d;~!G)$eP<>rfn;-*8TubJK4)l_5=v3Q%bq>0_ebGjkXotdje zxuEWwYp8q*0eJOGd9@KK$y;Dn_sz^zImLVBPpK_sF29Ertehw6g^p3G97vYP2T61) zmTbD$40LJqruLQJdUQ+eGLMa>Y4qkgDZkMBL$n^7(Q`T#puSa(8|~MLh1nyaO)=Wp z(yJ8H_!o_HgSb)uu3|KrVu_zXg*j=yVE1Yqu0MOG0IqlV6Lh=npu?_JU$WjAQ?8GC z=(Y!+WZm+{pQ52r%HK(PLJW+(K|u8lE;C6gJ$3{C+M-{n1~k@p(MfkL(gV`ApwOCv z_ht|F+Eb8_d{g}@6-AbY4bo|jRuhIUOk=y{y=hY1qYVQ4-D{lHNJ%Wo_kNyV@^3)~Ty`2M!?D zcGE^~orfMAL-QMlcBhhehjf)Zc@3Q)atkLdK$nvpZeP2QoB$(%GSl%#vpW}rB!TDY zp>B9egiWWVUPbZB1Y>@sI4fh<{GzhjU+dwqy=P_J#bSbF(l&lG(4)J9);!Sp-PTQh&@ZS;Gh^g|;@ zT}-`l>A2d9##V^wk9X3B`?cBTguj{NfVzq1)jY#`)|9`Ls&f$-XJh*`5jDO6i?d0= z>k_ReR-^>Yr$R1vl{;pKyH@w@NRJ zF%Rt)`QuJ^GwOli+Y(4;I&bCo{GS~IeabI_KSr5fK1k)_E9TTcvHU0durDSF0GBZy z(Deu{{AtfJUq0zlz$t*S-w-WixCoxiAl5cY4El7%bRJrVCnK+d5%Z&9)1 z#rx!k>~Mp}Lncu(hL~#%vCftlE&D3!d8>;MqC1bxD(_HCL9au#pTGm{eWLsoWzvxa zO92WKzFAC67sN=3bpM!&I&ftyVNFn`YtCprRbE`Jl@!F`nsgy%0Ve!fFJYedwJeso z+jLTn!s3A2KX)K48RWw`ieEN8%-kh0r6^MvrjWA@Klm{BdIuQ5(cg4SWk0fPoEsh2x z8%JN=E5_Z|;4;jIQKvV+5*Hb{)w6WjzIOlMY40BVEEPvVr-qL;AzF14@S!OuiP`cX z9EB~DJa%L_?cBbLqR~%u2>v&R4$FmrtzZ)D;4;BQQXvOUBK|%YjWy)|;PoAx9I6Iq z?_AaoT2XwW;}W<4jIeTZ{$1tz?tC@AB+muZ0>}K@U6PJKmk?^=fIGB~?Ad3z?m;E{a`)mY(+>$2cX zeINN+xO{*<4~w*#?!-Wlv!jI1AsE)`UoDeDT`rEpWlGQ)cxyd z)-zKHr(c=>#N9T8m&~0Bw>gOK#Pp0Jsq;j&6LOXvtU29m0GY;{RdXAG{BX{vIr*yS zjh03hU^VH>C6dH%hcp|+FU^>=GzgD5Gy}k(v0@Pvf5g~ebi)@-85Iwh$2grD}JAgz* zqd%_U?knT4ijPr!8$Hg-f|?a)euEFR6x>Qw(pP=YKf?o*Uiku8FJk8i(1*}G8tLBW?9$r-~zR7i;W zqOM`R>(6P!iK!5GMY|o`N{0um>fm$uvmKu2x?YQ)cpLAncrQq`{7;H}|J41s#Q;tg zO|yQVk9%Gh4x*36MJ2nZxw9X(j)cV?HEe(nupD6#d`H?F9iIAn!S~U1k*8Ge={7f3&8cqd%;sQ|SOvM9`j_O1w+eioeP>;39d+Vg+uO)^AB4}1n z_)rG7;`csWv|mw8%}|{Mz)5;hc0Q2n(YHMzvIQeXa84<;KWy!VnHT7H+QTj9s(zZH zZZP=98iuFYSyO*RZ2e3l9@!vXP@47nTpWkfeh2#Y#|^rJ%!;4X^wfNQ_z6q666NcEecKL_Kf&S=hyxRznN!bqz*8p2 zllP!4_Nn5?-SQZqlX9F`@FxmQ4xTzZR1{F(HK~56$<_!`*hyxCF~n-Z{$>PmkcM=i zIQ~Gma+##vzZfwEBJA{;L%8V@f`=gt55Xg zYgz37Pf2z#$+oICol(r2;oEhCroU#teCI&KJTiP=QUJLuAHiyJ8ERPe zBDP1u`{ILCX7zr=5)zt@H(yjw&!-0xLc)$ZCBy;6i_>WWC$7A!>8{2NxN2wQx9*t! zt>$ul#?D8NR{6{U??rVy5?BC(n%jzgb~@ z;o$$a`T@4cl&xMg*n zA^i1ui2`NJ}_^gcxCnI7-Eaot1()#|MaKaT*Z=0+RoU1Oa!hf*+ z!AVRL2JaHAQ&g_rilw&i9!$l9qHcRs8C|7dY} z8EdOCC%17?SwM`g#+if&*td8PKe2AIv;$7Fpha4uB#Tk1sNB1fS!HD!Qq9T4pBVhr zY>v`3O}_$7(q-yS>?zO9J~g{;QvBKdV^dE!+lskBrZ0d7!TB`F@?`6i$fa95o#;qL zZqu+L|80;E1#j8BLX3V@UUGAZF4ChUH72*P!j&^5>NlHuaoO1%pjEY^$}TpuLN^tG zc7;Am$RU?)(}Ye8O2s||hMX&;!B>1=VwB|Xn#K{%F-K?gCeCrWr>jq`S9EDNOHVe| zl~aw1dKRpNK#WhRCxs8k zko#Z%cEtYchgYWpsP0oVJZLrVj+6m5EO`D?BIDvVrK5pjW4sb@Ks7PcB(c1o#Xk!p z&;f-}D@iINy|4-+-*ThM|CEcSndD1)y|>0(izvY1V%y_-5ZoU60TB#9;}NDowJRM* z=wTmt8IQ7F(j`-_J(XvkZ{uu}-L~1Y0i)p<9;Hi#wJ| zW?6+o44J0X$G3rN^_x!@V!m!?OmiQ#c5R*Ir<5%X9iymcDN%@dFCMCWxFFjnUIkz^ zU*Dp6e0U;Y?B4$vNY?W_zz`s!5B`PG@4dY6imd{-R>6&?{S0-%OX#0o=<(YE$bz)h zRtv_o4^IN?&(Z#7ZX9ePN)e?$XKBL*WxBtEY@6{V9MkR1z=_G)K3LNmx{?lL<^VV?3UK(-x@5>HO z5~U##aJi8@pA+sI$xDFgi++VK!Ay>2u`o?&ydga#Re1JP-Ch-wJf(ssHUi6{z`g z;oBe-7#KHlQk@MmzzgGF1)@UA;J{r&w_b3?fiH%0Skx8K{Xx@a%Peh2FA-|PRvNM( zpDy1X5%qM=yfe&wI1J+qS3R!Fl;?kA^(?k{Enk`>LzTcp>}#1f@%iZW`1xq_`Tn-N z4c7hh+H@rd3fE~EbwHHAb>Ea9+eJp(DSFqH;Ce@vK&v1MU?L;Q6eqxedp%AwG^_HU zi=E0;ZKu+Wv%id*ltL3_I*KVKgSZ^lMhR?0)RUA5wokR+WJslSS2R>}DqoGN!C%#x zB1)MRs=|q?G-%*}^E>w%tyB|Z#BOYAEx|!38a*i}*DPo(#JcQQr{r_E&B5bdbj^@z z<*1D<39}La)TOwkUj0h=1v?-YaXPGTA=AQ}M8cS8)Xzp=0<~$F%ChlirWt-Uxa0_l zF^m2FqP?TB5c@94S0&3On8)ADr^eid_wUjzI+>ZTN?W{)bgBO?wf&T88lr={v7xB< z#-tsYMrcNDHG|Dk_6kPmRJQG8RVvfbmFbXs9mf0{peLFikx+TPS(?Oh>5?D7G_gUin+l!LtlO}-x~0KnH&A?$zG zY%O6rRiq(Kd5O=-V%+-5XIwbW3b13VWs4uQanzjulpa)OS2WZln)@qG>Y?b!uQ#+B@K=-&xDDNbeOQ~QFE~rI>)F_{{ z(<&f)eNzNokppUV1<`zEcNy^jKrv$Qi@!R=?U9yG`+i!+vhEy(1{V|%qkv#zLW!Q0 zXB=(jN$qQGNkp!L(3YYDjeubx!>5yIXz0Q0#wT9eVvf|cTZDN?n@tt;%ezvaY?&9M z@M1j>MP}eBFkZXV?#b+)(Ht5oA>6Q?Nb_4LECz*Q1Y};5p{<#M79{8lFnZd&M02HuYkf=%>G&=DQbwkn}s)pP+|8}K9%sEi#75%cUUHBA7H%x#JjC|co>JPT7U+6TmXJCoeQW8Sj3E-nY|&uHjD6O6a6Y5u5?3GPmC2<{LFd2@2kyZ7e2zy7Y8 zsy#hlukPM0dvgPJD&|NsbNk`#5102@KXd3i^93%w zo7E4ac=w)oxW@lSXr|#1S5^ykeTY$kgpFajEld_(d>UJS3U6W`M7 zzvg}*t?Tjc34aBNZ$khQq@@50`pbz4oUz0P(obUohBQx=&{a|1rdsRk8C6i|wovJV z3|FuuzL4pvFsbRvq(c2-w5Wl%NVmtn#`FiiP6%*@Rc6b1l(LX!kpz}6&Y+eFD*hcG1Bk4BhmptF+g3N6RVqOdaU21UZc3Mt4X zUdaps%us2=rA}Kk;f8R1=fiap;maBg)erntf#q>EjFLvmcAcFi8I+3($@igUc1sik z_Mf|+KV!9e_w+OI*7twQMOXVk2rC{_c*HQ&+_;`* zc}!M@yGFRx5uJi%(sQQlMB{|f@#**-uT^H2p^TWsYaxsZ&HAZRmt+clf;QlWdpo zgTp?23n`~H^;k;zz`mfEs&}Co&a4xjKyiau1hh4;#$LIqaz%F7W(cqAD{0(>lP%ZgQJOld~KWc`}hvR zzX0_p=*toQ5FiO0{v@m}u z%ox{F0K>=8fOnSo0960?V-o1*sD>H(t$dZ6H7C&^#kQ^|F|{^LF28V0;~I;Jw44Poco7C8B_0Iz&Hb_%Txx<0qL`c}Q| z)^02Rb<(fKV>Qm@6M}l*3t3MtR}jO`deVCj1bz0_YZJd$qNKI$UP%p*EehcAqOr^L z-Vb0_qooHb^!7Q620%emQ0UhB57GpFSua)*+pXWRNiuU_!Xv~q+#z1;wqHs_ z%;TSMQJQV2yU@o-ZdhjUsv@%~*xK6d!SfiycG6&B@F9+c&5sre8^h z7B=I+0d%IIVo`IDaT9FbNlIVvCufJh;lgH`OqY{?kppAkFwpy=|2}2zT{1>8^R8>8 zArfe|TYQR636xpfM_3olT1`@K!P2oyzHPjkP4vq5H-AlWB=~qvJmyTEY*INSyCYZc zpoTZ#ojAK_d;pb;Q83S2!NMY9Xk{aio+2y)Ns?~OFcayY^%eweS@82;hEYD0ah(9Q zYIOnDC88wEpzV+kErPKZ$>$ z=H_+bi?akF#z;GGV5*l2pJ13d;1MevXlJ3!sw2}7Du^#c=u_#WgY^cDj{n^B?Ridus94eKuztt2D)%Ttf|)5I1`#oCDVI->CXooxHxevS%aAWp&iB z=AeYfS@u-xcrCcbF%)*|sM=*$md5yerGf24*wHvIw6R%suQI{TK1frBJ}5J>UeX09 zI&g3VGx{XQKDbLzBdR|X2o9bI!4K5iU^px`!YkWva`5yTEA-;GNEPUjWBDGtmJlFkJFdH49sLOGSFdO*5Ix5*@qd}u6ffVm)Vi~ppr(~kg zN3(U*K9DGo9BX=O@Gko)d5``br9G=eH-)-0@*^%=UeX0#0^)7OEIF<+VROkh1}dm3 zC!Adv81072$xh1^t$dB{{SJtPvxnxE)X=?~|f^Y5aV34Fr*vb+=n{1kzL#TogZFRnHidc1 zx4syNSRlf-vj>N?M+NsJB2IEhS$dz~a)W3kv6yC$K)k2_^>iDjAMAb&z*M3p(C5ig zkNSe!i;bhu4fVK#j9^j9dZJunaN9tPx)!D%JlwBcQ-$~nH=I@h-GMc$ zFbNslo-`baFd%1N))Y$(fI^|u>Cp~RBeUQp&DdJLRNy>tn9IV7J%=>Fs{EbZs`=Y7 zrBn>hrGEl^d_oM5_)j_;ujIUe@-ej1KsB`K1BTr@IwjSFZzzLqK8U-lIYW&7VHLmh zZ+5`%jpT0tf36FBZiTHB1U;*kKx+e1AmvpjSD-~LF|gW+8nEs-FM=X?s=omp5#Efb zqOL1f(4op5AWEYOB_S4#0j^fr>y#X~I^ICPUh#zaM#|ic5d|~I4hU_ZTGK>PB$1&R zpE`S*$mHF-F2B4K2K%%}14%f9pt+FLFX*wc+)&p~Nr*|PLC6{I{(+Cpnw3KC06pA% zoe(a(rPh7$7BJS%+-+Fv^>NX26aH8$t zq4;8;&Aa2jF#tVFwMr8fb3v`WN(A!Igwjf`6Jn{_bOVR1|Q)ENw+Hg zOX&rz@KM<$;nxM!ITao!6Z5`*&Ey9sd1ganyY6+pZcLbY4ePsv~E2*JbtB^$HX zAHhijD>{9}5%v56Mpa(1IRnn2$B!+l@EkIO3|W z{OJcmHauWSf^q0O!eo6{Y+hO6ytJgwT_$B=1@G)+LAGof7g)tOzqQlYY+@;UP4F3e zZL*UDST!kf3q40akB`JL#j1acXOM*53!>WkhXd+z_OfoVdS;oXy3u+kmX(CW7Bq|D z>hX06((05Ej~kBfeP0kaB*-2^Z5@X=iOEETN%Zt80wpS?e!-WN18fBFQ%8f;okl1U zMr|8xTeUq%Atrvv?{Ik@`#^M&z9Bt``C%{j=W*h>WLDbmVCn2@215MV&z$smKW~GU z(d$7vTY_Lf)+u4YruNBSOHRLfxXwe}zo5}*tHjRDac#l}zt@zPtY`*j4909D#hveS zFPlLCAaIi#K77wDz>N&3^{l)@ZkP_zHt*X+lOuJxBqzwLmr z%U}Mtgde41p;g{lKqIb0yeFq4#rlX$_kn1ibV{5X84r0Kkok)g7FO7o;uxGE9Q9+Y zVV>Ywgboxu7ds{7ClO-i7s|8u#zI8bd$VA+SK43+d$3zRY#$B0qjB>e_HfJ2nEIQ% z<0FnJyT7b6-#o}mdgFFccJ~+6$$2aGpF%Xw+S!F~*<@!CrC(90a>W+UG%7A@G;tPc zr`f_TwBcKJ1B4vu8bWo66|L`Uq?8kiM%FkDHa}&g*`~#%8&Rqp>!P$Dk`>h=xL`|; zMCwQopf|V#Q>Yn(7P{nC#OG?^a}`iNeLX+r3G{4HmZf-389HB26)F|7v5WfQIoW9A zBvp>JjLC14yxSyG`w^V^9ma zw(dhUD`5JTzUsmgNj$j+HdU3@Sxu8fnI1iZpNVE%~qUPlLhF2)qT^|!*L2r8nqoBG%YyJw<|U_3bO@+6Mp?~Him z&)o=ld`MZbmK!u?oQ~gC^&s4a#a2zT#*uohya9Ikv8VNFQk>r{I0{sy(9_1X!!g;` zW=T~7O!Cz-n>|S?eRqt$J1kRK3-22)7Dl^Pkzuf_)0g0Tj%pIAiANL3S@;ufCYa%V zHd*)Nl*{Xh`+2ri5DUpeQ{O3xTp`%=5Z|o*$*4iBr);)-XhHi}bO1q;*|<}wpAF>L%L%Sbihk`Il~asI6g_h*XRXEF)wYJzD!z*bfJwO_a+{p@F&?5 zCrH0WMUvwo-81ti+xvhd{?-kgs;dO~cy zrYoO^6GKgcRBBC=S%c>x=$WqhFs-vpJ(K|`S-D}F{55uB1(tlAN)Fs!9&qaWy;I#? zA03VG;AxEo;S7f9o0^kq&VleDeDY}*D#N6sBbH1Rnm zz+zUQk?q*UBun4|tzaX9{QPXs%#}ZZ?HQ9WgsHq-TphMDO;CgsV981?zBwy{4 z+@r`9>@zPPhhV2hkr`C?i|xI0`N|Byy2Dt@MlB*1Hu>SA5lO<$m-Vh=nb*kHYbu>D z@3z!YrY`x^CNDx`XlO%>a7^IhQ?na-%>!vZjfi5q?|UB;*5KDG+^0?{6_(I`=Sh?j z=W~?T9kp!~%TW0!Je~t<`$88~3g0IJ5s@?LD4xi7yC}725vok_1-b-7c)L1)aEPS@ z&FXhKxG%X!6Dzm=R>Qq7Ik&L}`jNCOOOUL={dS48;oBA+}Nx@8^AqXjvZe&>k@=M`CG#7%&U8uFektx{2 zj-`3(NMpjaQSPAi`mI|Rcpqgzf=CJw^B0R8wCebS6sxi^3j4HiAa;n~^H@}w)%Eod z_MitE>2;}@k|(CmA=GCB0dmE7RTU0>^8B)U47S|6gt3?To1_$=DLVKV$*(>Uq$1Ot z2qxQ79o6i<(|PT0x&|v3(FUT(l_vTp3Pe|g^11%1bP!q=314V((Fr*L#qC*>X*2tH zLB#buY6kqVjeEb|4k~GhOIc#C4f1xYBJ0Hmb$wp9g>CR~1{$N3kX*3b2HR5ng;m}I z27m5S-^IAyiTuJ1*%d&FGIG&;4R_o1dL?^vzOtpddr%v9C@45I!^Sctccjj>f*s(` zff5vrx|n;EZK^Y|pVy#N7TKPGVS4Dd_6VaN{WD_Gf$;jLK1gii{-3M_njq#(?yfr(en7 z8wvzobJ#8Pr_x^;4|T(rOhX}?rTSfwkanW7sVMnyHzQ#WE9CIZ zJB@r-+ZZQs=PPrEJ3z7H!e!c=B@fPIJbKb#*&P?FGQJx7GH zAK|quUR0B2ypodPl1Q9)9hs!952cESbKFV>xAvT?RpB|>Y1N%g&7-xWr?0g1?uzBG zr-f#7_9*RCw}^=3@~f}*qS_@xr>`3A3G}aai)5;vZ-kO#nt<(VLBr;bPuR3zM#x~Z?zT~!G*Ml z#ns1^5lJxMg9nPvrLoApm>U`&a^kcc9{wv@dp$PTszF*?$Pj z{F>)$;{F-43-NOPZEgpqU&R4bUseRyHiO=?cD zLy}t>p9|xUAmv1gskv2c<9IiUzI2SVSr4K;Qg_}^+h>3ndV>>V9(2osp94Y7(5y2! zb^wxt?5K~_H7z8LKfY zl8 zq?VDsmS4T=z5+vgCqXInF+prXQBfw9Bt1Gk*6MJA7s&5+PAvR60H!{&3zmYlLR4Bw zNYUobO>uzZ1`m!!eZpFWwcOND90HyWOCtp**`sZ7R|!yT&r2oVdKL}RQ}Z6+it$*d z6WZ-($Ik|^*deg~$~-v0f-dlL&J`n_Jxw!vZo?(oAK2Ns38M>XJmLDZnu2iFtjGC5 z;E*$$jNGDa>YNTc?JlH%Y~5m1z<)=tw&^-LMxt2TG{9&FInj>ZN*9~K; zA9W{KfDZunG4wama1#cjtvzO+*+Zo!?dz}uj%7GyoFaV=i-7=Hyr|Q&_9>^}{Upmv z#3K01C+lq8A%~dG4vVq9vAe>f(%^WEIX)#b*%20{llCAN%&&ZorjkRI@toD{3}JLm z0{4my7O>NG&32+$ChjWQm7As+{6t4P&of`{47C8RGqsHQ&fy46zg*MkE!pC6tO%INDQ zF`WQhkpE!)^lnit&!VtFwnQ7r4CAXxyzOWn44<+ZxmXT13lU3QGP5eH*&%z%qd_mu zzV3max2ZuM4%05$0WOmn*|*gJ6&MXRAyPSYar0HJ!7Va3Fb^$XHu2n%ZBmbqgO1;9 zi955h%#Gb5o1Td_)wJ3$j-{MiJ^+V!8=-00sZU;9HKS&9u$(26j4~lCVUtMoD7H?` zlj48<>s@4FSPsw!ntf}4_T5r|i=|mrE}Xh?e^HllxL7t3l<4g7Hc0)>!yvsFs{W!@z~*h z3>70cu^nQ_WN3}Hl9;IuCkL0TP&Y7`Nq)&6)lO}o61O_mIpTWc#@Y1&c%+Nc@xD+E zh=i>ldNws!bvnfg#&C#ZmRo9fg?}9qQkQ$Q2!{Iu^fJy>3G2gb3nDM%MW))2Y4s?twNf7fz5@F zv1614_uLuWsGy0f{R*!VK!771Zi(w@Q1yeU?bO$pd{n)6vc1X6c*(!#Lvfl#HG4r= z0)xCNwnJ1;zSXD!%;b#Tfyeq)c9CN$fO6rkqx2{3gReUySEOzQpJJP3?|#v<8R5yIeG!W3tIF%;$*)sm(IXtG&X#y+USEb!9v<_^!80BN6IBjoDx3j7 z$D5!S5Q@*Q8Dm`Gj(0iU)F1pyvwL2?oY)?j8+M9-R;?C3Sxn69Rp&d-fb~F94i1ja zI!1cp)wp*gW(Y~10mxxl5$2nuX;!&o6La9eaE25k?PM6?a)nWJf|m|5(FdnVdMwIi z{Kcku_s>_67PH*LOI9AShD*_DMzCjppi=K%;#dl^3JZ|gUlB`lyk~)U5chRX7ia~furOHa+2}wT@|D26; z$=#cQxNa^`fI{K&rg*oH;J;0zAiBqjrGPqo4(PB4JJ7kC4oE+a07(6Cu7oa%A=u;q z+Oo1>G%B)&)3j+zDUHl0!Lw6{g;HR_dF5`l(`npv@Wd`o*hPQBMhlWaC;kH353=ec znV||3_PXd{KiYD;n0S4A*~9(_m-n~_7mbJeK^&SAb*e;li3MJMC&QY; z6}V}MqwgZ%=h4<-0dx73W*4Ir7}td_;4DEv4V-O7XFIlQH0eSJs}r0?s$@bI&-Sdr z6t>om`?zedUfB_^ai6Vtu_zhSCh-281c0Xu!G_51dlJf+4glyJD1K+xr}0G3ihpgb z+eL-M+0vJ>auUMig+I8>VZk&x#J$1pV@0^qokSY&w=jwSw%AX(=!IEX^U@_c8F&y` znBb|Nfr&z>WpX@fDw8q72W^6K>#8$^P8g$Yio0D&w1H);16fCsnk_#j{ zT^?%+vt(}H6Tk@IU^h}LiSVJvO3JB&WY{6cO1g6(5=QlDE2?Z5}PT| zwt)O`WGLlHz+8k0+z%ZH+_XWO12+epVQ0d`JnMlHY5*SX{=CDWgU~pRHrr?NOhv+? zOM0q6u}uLn-O!&YR?P%rFX7jFaY5|(e$+WXBpA!&h<_3D;}xm-z+xXP@p!ljaWubzTin=N0_jdA(+_ zfc!160MGTX(y(Y1Ohz(IYuZK(6fwETk|MfiUBje7H#F-CM3g5~0NIs&=J!Prp^pjZ&M8^e#uN9r_CyuFJ|W$l7*@>nDc zVfB1Z=6OpAgQiaBJ|SL`giP32W>G*HT0<+ekYdAk6FEzX9p$Cg9k15)y&pw)fWcYV zdokSox@mQjdb|cnNh|n!aThWIEpNs0km@_%XwK;CJ$sAEUKr<&9tp+w$gd=11b#mU z0NR~u)_#{NTt#wq<=Ram#)D72NAz0m>Cf4c;jfE#(9h*2qvQ}020~EpD4kUHzb>adQ>=) zOiDJJB5DF`Qxla^!T%qNR0#jqX+@Nd;tMdlQJ&;oTZNnIhKjNM!m}kymJA0g={nj3 z(Sv7DxCd?9VJkZjx`_g?EQQ6-<+?IfY`X`Wr~66I8pV}4;AEukeWveTsIg~%p|tk- zk2(HsoJYZX(L2b8l&&2SC~C3iwLG55r-_93VP=J7%J-(IO-)aRa>^bMsFFm)t(}E< z9pseZK}Sds+vlNs4T<6gq?1)jrERcN+Wseg_7zXZW@iz}^@f*#ycp$v#885c9_?q> z1;-q;n?QHmWK`P{ovA@oO)=guOOtdJxqG{A?;$6DB}YvhRFf!b@`=7 z7~>U*ZLZdZvS5XpMhG4=OY2-h!sP0|KyRpz{qUSuThG4N`0T8Vn<}VSH&9h?e70w8 zSy&IzE7D_PG4*W#1;35W&)|gj(> zj*qeWV#lw5%mXDyCQ>MfSU3q83O_JPu@wXqPB{o1r~$Gq3huElEa+BLV*1|=t6J7N zv8os6Y%3R+I7!RqdY5X1^j-{K@-97Q9~gUwN^1=4Ym~PxH~85zWtpfR5;oi}c()&O zoqld!Dj2>UXBLBDeFb)`gtRT}Iot!hrAK_cwFaErpRQ`-w|Bkx(zoZY{15@71H{+V zgnV1eNio89PciZS{)rKvcLxMsiG|b>%(4=9b(22sA7?NTDR%Q&Mlq8F-q%)0i>U5@ zKgJd$@v$9JNuaf*6ejsl5rY9`o<$YLCwI-HoOY5mF{2vp1*tZuYFRnLFvJSb6AYI7 z0xNeB_1z_TZvHSENbP1pMEs-zG$r(KZKS&OU;w_$O0ia}Gz-fqDmKKT8)s7-_oyz! zE)kOsS*rlbDOS2ymy1-S`G8jxYL#f7Gr*BlD(O@c$-DDvD1B%u&007xDb68Ew8&!6 zn)mhCkN#M#?pp^pYJ1-+1!M=fH`DeZJ|(j2d_|#YS~E|h0tX7wTaL|)vQ_}zzPnw@bg806Ya_c>A#;!7Op{Uh=4^H2fH?sW5^m&1+az}3 z;?8Vn$Fx(-fRzV22wZRMof(j195!xH(bysl?Fp={Iz)P`>ou1a(whwBEVfgvzhgg3 zWfyPoE^4XE^*v`N&&8-;`W`)8&3c-3Cc|G~@)@_OacYxx^sDX)$n0PbWk#>dd|Fu? zW0xLY7QUC0?Mh?mbvG73)OmpD7Okn385M4MxZ3elWE3;JL z&h9B0b3pWvo{%t##p1HOtaUdWuq^3XLajFy=U6gWCuHXz&~%XIQO|C65T`Na9k10^ z%$%Qa=IQ**>;C1tLZ^JeE9a)+bTqbCS^B55$W^CPahE1R``IYKTWX;UO@rR0*L_f^CUM~>+yT~NifZ3SjbO4W|U`WhP%DyfF$X@xrW5cGCRtlpI?TAPox z3zTDg#yl~1WM@$XCV>pQ(wipD z!|&obCn$9thflf88p-UaxCGaaGgrsvwzK7M+N|44KFeJo0?TsMIga9%;2Ov>Wv|0W ztq)RC;?VcgMmia-$>AI98pqD4hV6z;5z4vkC3zH1arC|ch>bL4QDms$7nupD$@1dF zYczuq$}Q`va|q^+dzu+s0yoYqQ9?44Y>v+@!ud5MUs;NDwE4*KPMb|D$Xqp3b$eK= zz9LE5mXe6qAQraIEi^5Er?%HO4S(_eG#yQ0`n_isH>Q!bdC*W(f3`PNPDBe)C+OAm ztSN|JZ!oh0U@^CEMXPw=Z{izLY?bdLQg2)hV=&)l9xFORs<&eqz7Eru>UT0ojHV@Y znP(k|+uFzw0x;kpXyrSL>?&=B*M5$CqZ`eXX>ABV4x`y<;@&$^i4_bfjMO_x8`$1j zUMw|b^V<-$J16wePyaDv1&ES5RL*zwrAT$kBKme=%sJkUS&b}>9yKV{+^zS!uU#|qQXi3Q;pK!&vTX_hWZNzl zB=;^AWd4UH=5JhLbH}Jw+1Erw#bb`*OlWf;1EE+L%AuWm=JmQ9HryrRd_Ixd-$hYs zvae2e0c*#!7mkX)2!R}r){V=F^=Ir9WUBpRD=2t#^w{&8i;Lldp*A{#JB67JpZH=b z$~Cku+npC{<-~vNn~F0f{R}5a3>0Td{ThjHVYhoA8?C{K8LrQyMN_1V>sqQWY2W;~ z*t#}!OH1(e=ZUk{l>?4j(IgfbW>XD zAk-UQQ@oVSzJ%ReIDB{MBJ~>0rR4{%;I7(vP_ZW-@XGF(IdO(>P;J=#qGF)HYx0d*#G3+D1SDI8k=vFY3 zSSPcPIB=suq-HC9Vy95z?b2Y%vJb9d$G$1541~e_3Fa3Rs~K6aqZa10l;UMf@P%T7&w|3p~1OO$4;JPU9@s`#t?6L zm9-yNqRB^)<=r1k8T}Z6CO8CNg}sE+4xT@|j~^~TmSB6MsDb(d#ZN`sz=H?-i0vgo z4$F>FSkxnE8G1M`O^=Op{22J0S|RxsUziHv^~MB?PBit*)CyBm6$86y`pr) z+m}jX5ZG|_{6=zF2AYB0M0DOcNC2gl-KLGY-i=lMC@iyG{>8!c{-Fn(u)P-J7&N&p z1K2>FLyHX?_>np^UcU+N7!MMYU&ejVS`sSP+-z7iEZ$W%UlGbyVhUJ5a8q$5z(y3o5RtdG8$!_43b}mD3U? zV#hU0kXL|Vt)$Shb9dAH9HVlpmo%Y*!`xb2k`oL5`u`+Vw6JWxQ}ggI4@q&lJes|#)~iOUB_$F+&5{} zb$(@byB?$H+26LiU%wb5-n8dR_4219#ZCYCvnf~+{oA!(E;0UV4jF%hQszbEp{johq|yEav7$xx~&>t*eM!ymtMk(S~eI?1R8* z`4va)(3#!Yrvi_&6Wypf&60ufo1}rQGnN|Xq>Y?pZcg#6AKWmkrSs7drkYki%1TfQ z67Y3l<`;Xf0u^SvUK0Tczy_Ej@T(oD#VyygV#gsA|E0X`31P#;^XD2{hKw3V7yo=Q zysfO~?p!Ckot@ZqOz|tt*e}amP`~C!eKroeL#F-Jz~py^*c2wOzbWq;_i%xbYlnsuKlqMSd}}5e>|)n8jk5CzXR!X%cUbcrgO(ZhXBqe7ioJDyCg< z!=9Wd#<_g&x-M1FrXdiPW3mq$Zj4|ecl-WkovzaS{Rcg|2-PpA!Q97$!yJ90K9ZAg z@3x2Te2qM2xFd044rUAL>a9`Ok&BF>n$|E*&(gp<(!chJ<~XBJC$b%rUq^-TRBRF7 zA)6w>GEw*GXBSWbj_I{IBYivqBN`(yhN3m$ZAE*1m>YeRspfUevz*v-?dN?1WYwY( zf4tgs`Y0RskzyouhAu=TatEu0@1$mLK0RSuU)p6 zW0dvrxPL!R^QpVu6eTsf-4#W{R-i%%1p%Sx2MJtAP)dh7;2n3xK^B&gfum}ztIoLz zL$QYc2T#o9(^azj5*b0p#eO#W04X`B@>@juj4&je;QFm$*orH~&AVblNl|+NP zbg9Zj{P}qznEBbP*#?y5h#lI|)^(8hGrah(!8~_p^&>wI zIKJXw?_ihs10c`6i3xeal`K$E%)Fy2I!XyxKM2KAs-bwTlY%$MNzqD5t)J(3BVkZbZC1 zccb54VG%<`(qk~Fu7Ed0?tkL)v7%GxWBl$0h?UALt$jg zRbe8yMZRtgfGxjTCt6*3O!62IbiEdRvUraZ&`Gu_DxYQ6n@K z-GyIr1F%E3Yb&70yiPVKKgn5puHMcXN;#RzxF~(voyTXCR5$9EL8-G3vRhdvx42Zn zi!*G)yW*Lf@ciPt$dU%9TS>^$SN)wLZGkql0&nmHa%8I-XL9WMj_WubEPyTjsU^~k z(5ya_b!#}o!3rU@mmjyTV*-+zj*s0Z^67|l1(3G${-ir2Ty6M>g>ge6+C*TWMI*y( zWWr2d#^gvTc4YWQ;&sWrwgf>O1dKcnD63nH z%9)bE-j4!$52V&%N6vlt6Nujjc$SNgu~|tMB1}UXb!?8b#*FQ_wI-9-Y$S!klv|`{ z^pDJZY0}cJ8G3Be;>O_zR?M5$Bl5L1+5xLC3{!TupW-w{Pf1#53Jx@A{ie!kC82t1 z!qy3j{dM*own`)-u2&`%2H=U5%fFQ>Fw}dy>GX=GIr7GM!G17BmtQiElF}}E(J}FA zkhw6+B(UiJ8GCXsUpAhtknh!g13rI1?yv0bpP%@YgYnIW7m;}s*IRXIhw@|?*&HBj zn5K6fEs#JwChx6bNNQjD?VPEadJwJJ853Nq)ShWN@cnkNe_Z)?{N)~R*-N+1eolRbXZ=x+d|rwPjUXk=Ct@x~Pw9|@P-ze)#Jx-BWUACB^5 zrConWE3FNTQ+yEqyelK%b>Aq5_RK}L~SL(UchkKm;gVXPcgsEp=|3E z2kXwQtIN1F?Ar_nKF_q09LdfcmERbR!TUY9{m|?i(v^FrWSpTr@*s1EK3>0ba&|9x z(}G$B&)fNEk1SYREu_1u@8RB3KBc#x>xT1E72PfWJ%Fq6M{e1FDi+No$t`UB93h4l-*+0q(?db9b?&9aHjOdR?GA94hY##6ES5L+2~J=IP}! zS=7~}x6y@xIjP458h&4)gmf~2-l8h`JTUdheK+Z}s?r_7^h%WOc8T{IMdX{G`e3#6 z%Sc<0xTG)u+SlItQFTj$tNF+|FbwgW=*P1f{#ws|uIW)r`lO>Q-daLgA>gMq+M1Jz zzlP#I2Go_))8qbfLt1fk>`nbq5^KQ2T=c8PVt3kZV~bCB3&0wo=LwA7OWl}0 z^2Qvg;x*ix>}w&YBma3%AgtIK_e5@ZbMz+s=TcCUPw@iG-@3JK1rU&bU!i%-{G)FR zmp%RW6%eIg@%N8FlYVZBS$0T}qZOFZQl1@`u{|LG4G z_}0$}_{)62UjelI^gDor{!hpPT|2p2G5=fGU&#MW0dnQ?KcN?N{Z|SrR}*u4i~rw* zf0guq5}*8K5rN^~IbHhdreA^zwFnCa#`r(^fPoQ!16koQfd|7>f8Pk?5j+S@=-+W7 zBLpOWRqQWcy~v<)ihu}?KN9o7`~$)Qw}vQw!+&{m{f{%(Kj3WGf8h7P!x6OK@E=Zk z{(w)g|1T`||LwEq-!=ThC(a+DR&jodLKzuN=& za}*DPO6T|Q%HS}-cw=;6*7V;3*WMz)M?h|%Q$T%}<`01o`u`-r1k(PK`(D_L5fKOi zIR^$K{{u$004kYL0yD=z9wq)Y{y;bPe}bdMAEU|4-sb-qQNW2gJcwKi;PIR=$)C1B zz`*$bM--^Q)qS@i&O#g$!Ju`1|hs*9ZW}zRCZfU|<7Izu|A=|1_%eS3HPu4^SLAu?{vC>R)JDCj)8{O_!PpUeZ@wnxyI`7>*ynBNiw zXQ+RJzt25^z)BD(_`kxy4B~+<-L$~nS+d{Ye-4{~K<+<4)g%ze`=9dtwRc|*YPB*@ z&3XO+tx|qVRB%HDI#2ywnLl>)|A5WYe#7+RIKQ+1WB2qAP&V^7==D!I|JuZY0ad6A zH1yd10LgNG*L<|`zuEt>`SAzrllL2D2_X7US^v8M^6wtjRtSR0K-(ezOeK}mco3;g zz@P#$;PLc7aVnrVhb~YY6Yy*t;qU2%VFC}rtrtk*A@El>{yXmD6dr{17hukm^xxm< z=kXx$`hi6Kq(JNWzi-YN+qUg|nM`ckwryu(+qUgH=bVRI|HH2C>gva}yH~5d40Naz z6hTo26buyz2nq@aG{;0b9)S%0KN7^Y_(%u{2uM9%PzekBBK;KW-uccM80i0dKV<*& zE+Yi{ubia#pL}8XuWbCK3l05WEs=)q_{2JCyv4@Sk1N?Sj4X?M@YU@U!-x!osV(^u@7v1wwP zZz!oxM8xPzW|z=grP+*j#o$T%LfYb`*5}#d;;FS=-6nNw^Ym;&6S(04V{_N+T7#U| zo(wHyw}pto8_eCR!5g5Q(&bF#wsY!J=5%qo8ToeIW(gYHHMk9rbEoj60_|Nn*gHTmAOj zu2ifqwd}mNE##*8N?^N?Jer}=nQl7Tu-@U0f_z}FHjT^?NX>qzjv#5&@T*i$^nX5V zZdfSW&^T+P4yR?z#``yOx|S-n#EP>Xmlupu(jtSR_ z6c#gIvNGS1*hR9`_$DUVNJ*Vp<&XD*QLc4pN2|piCJ4XMy>s*50^m(q(KXT3aEQjm zvL{^`=p+oUJ8L1>M|(G^Vspv+Ws@Z|_mNvjCR6!LHwT6&e1*>`+nW@`0;-h7&ts`u>nv$!C3}rlPFUcyz~Pou{``);C8p-~N+;!3FxsexS%vX` zKc!@tfaPrnM+)IN0lT ztHDS!GtmCcYLhbFprvJ=<~8;pH_Y>Z?351CgTeLQ^Lv4l1aP}L*hc>Ap%(iU*uQKK z9#mi;79N!;e~$vfKOz^}HKkzN$U9XQZ6ee6gj^`;#B8|BdJXshzPpx}jKzD=d^gz8 zxg?|&?i1I+#&fiMVhDd~*#84(23wrQo z=5!U{6kBXs8=$6duVBG`Q7(0~Q~gWL``}4D8Xa8K0;=m&a<{KU!6KSy`0gC!0=ql* zWU$421=ODB>b)XnUZl^Y(QU>G%y}N>_>GhuRNRM~>|x@{)R3!#4tqR@4m_>0&ww`M z%I!v^x*7YjA|dH`4EvZt$)l+1POM0Q#7L;Nf^)Se%AVVrLVKcba#PvaklXjN6EgW-mr7o5Q5A0Em zB3)C%DtF`^_WNZSojYQs89w&LhS1$CbXz@kss*k)4c8G?h18=kDGl4Kd4w18AuvP{X~z?YwR>Fxe$)j&|WrmeO= zdN*4?jm%6<>reLYs`MGF3$3XaA~uG&J&}GOTztczEUc2M`Enq>yM)C*{44G4vM1eH z_0qF#qn|&p1QGbhbrQBJEY!s0%zNK)8R=GPwJVx5aWEfJpkhI#TB)g;NReW-iUlL* zO8~7#4Xtbr&D>T;xYk>(Pi(GF2$EMi@wuX9i(5sJL&OaZN5t!4^ z@QI>M(vO9N?t4wE6UY7m9$4FW{ic88F~-ucujdC1@?1h{hIAt$=_tb_2y+TL+v z5;;Ds9v*mYM6@4~$I9OIA_2%V&<$mQy#SI}i&vi~(xqs$DJSb3>$wkLuMiF$$k<1FO@<4C-eO$ zEj8lHK!8B~M|<(E>PwV`6b8AnPmF^k0@%QyXf|#U4H6z{$@)Tknc&Fz0uhXRLY5&* zmtDuUdt7t9Y`a*P1HRv%K?Sj5?MUMr_XsVF=zeFiFW1NSnS)G>beoyLw%Uotx7OM1 zA&7jY6TH83iLe^1nuINxsxZA3QM25czZ zTPj|iwLmrR>}pd(oTy>KsKI)+(uAp0$SmD!M{t1dJ)zyW2Horb^~aRl-sIKE8>rhv z_70u@P-dfGGzfvic@zHP`|0aev~*xEH{PQM#aw=H@kymIzx}HePUL|Q-@l#AxAcp_ zkH!BSl^UB0L0Pj1`{b{&rmf8u6~KM+uS2J>R@+G)RP6K}gJXtGTtaZepASz%Zr-Nb zu>4m*=vdrap*4(VHV>1CcN*qx-O&|7hc+%V=~OqRlq{d&>i7x;rS_Xqr7|auu_yDN z*Vyv2GtBVWhUMdm3RDWDdS9d7k+|$R<6iR`53}hs&BET1-){wBX*xv`jQ~-eSlVtv zT3Z5=``|37`KFQ3{@6CjN*3b2VYCJ&(>Oc|4JzxpOApbV_IecBHm4PCp?w;9+`(^N zwd)1Z_RBKd-&DFdsXo%|%*zAjHe*pxCUhe@{ZB^g=Wzhg)Ul33GNnGU)i!DLvmuB7 zOK?oRCwCe(Rae3O$6?Uue?k6FqXuRN{~y6Ih1mU{DN-^P1nEEc*?Qlh!h{C`+QtF` zB1&|Ez)ut$h5%%1Li?hw_Zf1dnp zdt(WIKIB-#aHs14(0v1#1ia41?tJM3@eC*Z=FG7k&;oo0pQ%|41-DbU=3(xcmSa_hIMm>H~B-k!XFWU9xMFoFRx{~J!i&3Cv@#Gv%Xa^2=r1#<#5%eegXZ~&n+n==cTVnL*{Ixzr!}2wph%ksA zn^KL{nm8{!k6yTAmNoyPV64x{=+rovUUnRf24EF#xjam**K}&!Oh3?}Ss2;ep-BPW zWNq9{&TdIe3f4U;iz-f8A4f zFz7Lx(bhN4PjT_4zMNaf?A56xOj%dp;cJ)&xV#qqR267#X@v@6o}P@7qsoN9^C(x%r3-`b@%_>APtlZfQU$7MC`wQFQDfdTAt zSvA$AuXQd&nNC$y>ppVhWAddI_ch(907bVyBkbi`xztQhwpKLQsm)*4clDlQi%koB zanq~gvQrru&UUdKnKn}4?@3p0XSP!AE_4j_7rki>F86VhbdlT#T08EI>LDYCTa(D; ze@tzreOi1hN9euM>J*MkON%LR0c-866_h3kJ#`ii6SgY@s8(;j@CNu&t^(gS+`czDOS(H z-6x{1Fw!@PHgesKCLlrUn!YV zG8JxWsz-I2q?>wTm+^@6OPQgYfJNG1vaGJm z2D6sBDmro}*>NT(hGRKXMhjxtQBipW3?_vkb3Xx$iLuL+XKUj`s+xWhkorp15S)}$ zjf!6@*2axgEn#KkEgAdVPTf@Yzcyrf13u(F$^9o#IU=rTsUzEGE0O1NDyFH9mEE>A z2&B;LoLBS1-Bnz}u_H4uS z^&6-@MRK+1KG0s;)yml&EV(@XKrw$P&J3{+`*lNWRWTGQj|WaFaDVs0IISbvvhWfI0eHBS4zoi#w-g{k zXZSOyBF37#`H7(;AqRsJ1qb*C6yA?R;d5mbU~}urzucxb>=(!9rDx>pJtb(?@Sn0z zjjy5-sJunnIk}UcF_RO$q);Mb%x#x}$Bv8B$>w~ujEF~e6V7ot{0z!(s|>K$yWd>J z&GgDFb41OChH!4f094{fbg_|4Dx^cu=m=vth3m3a8p-%_QJKcVSw#{wY{5%jQtui2 z#l%`LDb~+8#E9XdRnYb*+E{PLxL;#Dp^P#OS5zhHRUSyU6!#DbEZks zT{qtYF@~bAwaQoiE3w8Hf~WiTED@ZNg3U||voQQjOyzuU4jWabT9e|gl=Q(D>8oSQ z@&c)yY_?!B7un>p)i>pSW|>N5B5gI@X*GA&(MYt5!hWr(mSXAU5#e z?KZN8THbb3wHcnwy3%0d*Whzg^2{xGeffE?ib$zx+7em(8%1@U?mX%WU8F;*bR%j; zrv>$ucZC?w@ar?)Gmu(R^0%ei#yvURyn63W`Kt0hz#;`H%GN-QrQRt#BE!6_`5T%f z!7ys=<#-KP{dP;g^rLL&lN}|#VmgAX9428s#YQgM?%Ap49Qco2sgK8yjV{2r#j`0P zSXH>Et;Vky!-LA-Y&}wA8-6K!r>qKWVybMt#9xj6uUhR*Ld;wG4zz2#u6g-=iS==h z)`XlSz_5|3vm~0UsO)G3s9H;BW{dSCF!LG95Zfqxv=})06K>z1`oOaRk?1mfv5HPb z_u#Ya;B9z~(k2$B$J5I0ZPFvV@xV(5T_{}&w1$nP^u2I%=IHE*=kA9fvr8&0PZP@l zdbv17m`fal!%HOW`S{AlGI9AZm9_Gh(BLLCs>1rPVH^r|}YSIzg?X z+<5iF=&n@%xN5xM=YyBCFyUEIOlxz%@ma;PpE;f5acyLHS^ekcj5}_{=94V0`=RHv z$f4RpO3) z5V#sQB0;(cQA8-WeJ;&Bi{0X_o3Ike$tZ9PYy+wrE|Zw)%&6;mP)!eP9sjEFEU_O zzgHFTHA?NkFT=oU1!KWrEpIvo00zK#v3u|Mjo{ey+d^{Us0WXCZkeGw5M!#AQP!WiRvwdbIFdk8^fxD0; zZnbfT3pvI4L|$D6zF5U?>2XIJF$+hCe6xIV_qH+GU(~Ms67f^%Cyl_L06oCHQIJ^G z91ArDMqO5m9uSCoXs$0{;&+vkiR9-3VtTcKM0y(T?~!Juy_(M6pgq4e4%pyg>^$*% zLkujS!0y;SA@GkIk&!z-Dd~oH@TeyOs#E9EZ5i@p9K-Hbrgr2$uMTgH!MhH_nSF_d z9W~Sp9mwDq4qTLmFC@np0E-C`9LnvoZGW!tVB5^vF2106v3i>Sbik}WQAXHr%5k`d zyy%W>AA)!fe88;kY&Qph`l36=IcbcAO$9-x72#0{Gm84Up21l_?uGDt+`>?b&6z zoJyr4KA(OoV>N5YSsukh77d$wyov&~Lq*Vki}eN-d}BSA?1Nbs9c~&BD@ZKGK#`Cy z$r!&#oG+?;BT1?woQ>O5GeoxeHIz{2M>pk-cL>-GN+(2uFiBdqv)CQ0#HGVl?U06| zxML5ll#1=ulhY%cjPeWZkOm9Alb;4jas&d5XvI0Z*TZlf+6pQ?B+CAJ6Sp%Q$O6}P zeLtnO#S{Slzoi(29YF>j3J}mG6%Y{Nzp4s7QI-t}pnB9SK*5sEldek$CXBg^6mE*h zgZ&F$DsJ^xTpi}GJ93vq-E^|;b`j(YbpmzmEAcJ6VLWRqv}Ca82)nK37WK;N=H`~= z=jP|`p5mK-uj{AX!<<=)9)!Ht_hs9G>*6Qt#@9gq?IUsK*Br<XscivkFmTRLVlfrWEh;_2Y&EZ1M&7^z2y1%j z#3vTa%;Q59(9Ch%KqV&)B&jOxEXN8f%98cT#0fTI< zcJRrE*Y5#XvylRzse|G9-k}+pqjuRLK9v!`G>jtC%DY!Pug2lsS{HNQ$!$Au*Ai71 zwctb_tjW_ntK(chGN0`4hu9aq(LW9y54TY&(u0G9vS)xf)Sb-572U}ys z&U(A8Fu&aGAf!YslbyZVX05)*{s4eoGH@)@tfws}8tJywq+Nn^p*_u7!;decsXe(~ zC6+LIWKC{By1i7KDZ7w)V6GvTS{_W|EmvFq^muA6*T@%^{O#DqfgWySRH9{%l8LQ+ zFiFk{>*m)=M2XaENgvZ8K)jGe$%szdPKau`I2MQhv;W&O6n(8KJ;b+^ zyIZ{#cxKA+h_)wOl+Z74aFI>Mfe{&fL8}Ja)+xu)vUDz)m2DzyG$oZwo@1ZQ7{y6U z;+a!rO)4=^+^CKt`nky0ff+y|dw_S(v{kXzln<>E(NNmtZUdW2YbPh3PA)F`6jCJ= zTr1@9aB5#NOwn||$yC{=g)|Kxl8$7pX|ZJ9vveBou!_t%=VPiRyf@QNhj}R}Zn#bR z`y?r*Nck9@FUP(+HXQzwtv@lF{Vj`9*tmp+FW-YyZt%QT3ziln3?3k!np0#!_W*eI}}jgR}S2B0dHi^S7Tc)yG)#q7MvR3z$#f*Ia z#b>n|Dn6yhl&~SK)d`r0=R@;*+VUQq4th10I@7dLD1!%43Fp=ifNw^iDHpRk%DZ;|*!f>c(dJ46VzRqM{Mnih+*#j)dX5REk=92HDlv34D1rLj6U z(PPXgiIgfKcde{P%xf5mxNu{!CPfA@4Vt&K&I~pq{)6<$vkI6U#Brs&JRAx_i=n87 z`(?LWd0?*ENb3{G5r_-H&3E;8R7+gXVT7!+Mj9I_6#1DogVjAS>XgK>haSauf`zb7 zgLSxXUiP`~bxj3Co>&tlHgKBrq>vv!+L}o;Jp#?i#crfh+&B_xum`M~uh>i{-;j5% zU~Igr4u6gekO81i84x9lZ+e0K8_58W;6P<@6ZDy9U+F`H&EGV=bOw!>agQ#xl{h?S znz)>K9cW=mStg`l8xJF;;v`N4C3Tz^T{e4ywaF~zsG5+^gVGam|K6t^kFGaWoiVjL zx_8~D!Jps*pM%D`%lWRt9a7ah&&b>?cCLf4@v>$0A_f?@2bk-)UVpwlq-W^0Ry}^Z zkC#)HI`pu@7HM%#TK}$d-oaa_(tYWaRZ1jpQiQ7JbQ4|^Q^;5@Kw026vX@%WrfsT_ z4_;p081E;8eRei9Q-zhMnmkFM@S8?}nZz__a<1w={bE?dq#v7_E_gZ3>D?T~( zO5QFts06SI{-OSg@~@d!d2EtinHMN?h4+&$4n0Fke!gus^p!>{p#_PaS$LwpD!D-2 zuD*Bs^h&Nh;e!DP@%NP7!}}JF8|>rM^AQ-7x5EalrmB6z0MMvSZNe<=^;9&1iN*G6 z%ezv0W6Gv;;?ODyg=c7d6UR9o=%{zbTg!cUb^yN@_w`vQeM`r8b{#5wF>X}e?0Y0K zeAIdrSlbMaAW!WsK?Wl^NKI0ZmRQy@&JrGMgN4_Eg)Q}^jP)sTS5WdbH(~NWn^;NE z=Z(M8%#9nPWk4zs*h<{D%1p5w^O|jSNZ-fAeqniQhO}kVr@z87+k-O=*Ot@@p zTvYyQQgvh-P;tEz(dKW())pDW<_m9HQ>!`rwK|dRkR?4m%m+cdc<@Z}Mz;!=SoW#>Fxen|y+X^(l;nq@lDDLCvfJp6cBhQ z*oh<~me+SebvZps<0#%oujg~(?kaIWDa<>OLaX#1`8##;+&teXH36{#bG0Y>?ff3%9WgZ0(w@4r!u@ZdDEc4V?y2A#}J{)AoXw$ z1#4Epn{2ShM@czEfGks6QW{;g3{dr#E17yf42&-C;?Ic+x>8ig5)`ssx*+LD`IQxX zh)T-@T}rYaC6Du`TYECWQr0+TmjR6_Gb0Wv$+LhvWL^G<;Qj*UNAif^0f+i0XlF>X zRt2Ks6a7c^sPzqRF|VdMR=W2jm+I3cc?Zq)GjK;n$6GeKzCkC7|F5ZJ9x2Kp#xY+Oh%I1NRIBgcLhSWBufcisWa$(c?}AT zM7UipF7r9OMgj2T#3t?KH(=3hMzS)y$@%&zO+hBx>|7U-oV}qQ!<{t#&O}{~FDMZT z&uMhewnowMokG`iw-4^g?#mc&7Vvwbzv~i=gD6pV9%CK}->CnvMa@iZmU0bcnU)GL zyVtjfAs@a=N0*3`5Kh99=qHorFuVe1kb;`b-o8H-dLW&;WHaByhj~@+$p7fJZnefg6qVm&SLLJoMCF_)drgKia>SSq zNsnU^71inYZYJ3uuB1ADc_?|6Rg`^NYojnkA|;dRiQO*sT*w?iz_&`=F!OUkG0g+U0-Bh%*p85IaaXQM+3!ME}cEhL0 z%DC*T4?6H)p(!x5YJnElA46?NAS~)=9$IfJ=MaCSWM%AcVcfaFQ+nQI>F`T>9f_b?(oE(`GQcNz zr;Q|Q;F1@2-7~(8S0XIDim->`%*vAxtaE8%6^yxZ15DFo8q2^OEM}uIsXQ#_Q%@&E zpELgsJ!eWLoAie3;y?Na_e9{wA47pl_Pdx31IcMdmgE(GI$_7AhBt5Lc?7`NxEwK+ zFNc0R3GMunv!_9P4{T3HQ~RUJDyWiEye}a>rUijFA=HlCpg!kX5pwuo$F;(_$?RNH zR6D0H2}qK$m|Hm`SA?E5?!bC}GPL8`5^fb~Jez$$=s;;ao`rjd*!F#tt9mv*($oC& zP*I4;kRSkOiYJt6SJ{Gg^vwZb<{Xg4qQUNC!=faT9X6seyHy z^<&)$bj5T&Y5=bm5c3>4VI%nLHHfb_pd6na6T(|Yd;uK?)3z5cP|Uf`8JBT>iK$V>n0v=>zvIMJYpwA`A*1SzE^!3SOi3C({D6=O#jNV<)JQW!u zR&Cd=R&Cdlr=eOt<(GsGo0H-hJ3GIZmTkgwB+b~BagP+6h!ig*dXWC>TQ_V60Cc%y zIU0cIM{Rs34V4fp={cYe{+rpFeLm5BI-a8+5c9=uIx5wotRRFXQO@ZQUcS=E+6p!2$Pio+;f%5T9@qn{?ax!5EVP5tL>$_3ISrn$Q;YjN zMVq-Rr+8uhdW=q8tb?@NDzvKuIK>T1Mz~eZ`|{_Jq)-9p6OpL*r*{0VitaeOJ$t!L zp&2kkt&(}0L$u!S&Wd`;${9R;>#^vy5mDV#S88*P zo7S436LGcAys@gVc|ffRynwmb<9w~ncZ&f6(ADE{(WFNM1r)% zP+?l{H2U%}tpBJx+l<8mAkGtu`q3TN3Qx9@4EP|OtPu7%2+H1w4Dkj~asqK9_HW1T zelcmjGa8#fIr72~_CW4_A=Dx7JOgEQhmByIifMjf+X^tuP3*RXn$Ob&6cB96dME4u zNwu+}_=?jHO(huEB$$hx^H}xw84P)rz?uPw3e@ungl`YsWVeI>9AqYOR4$$ikMF4;&wQ>}=s}xz%k&1U9w6Z-%<^fv zKurF~=p341xzH6FtR0WXSAH+nco1<){kp^}kYBs$z%_M~@n$FG!|`lSGK$JZ*d%FH zskc<7B2YSI7G%nMoFa+<-RH9-8G$%!5MovW0_&bnhI)qpj3KvCyex1+zK-QNyZ+Q? z2A$ELJ#IJ%{mhBXTJo?nF36v!e8CYCNb9-sSr=SL*u~!%KI%~iYztZPV{oerPc)u^ znoc4LosrDGgASh&2%RC84Sqvu6BO3Gu~7O&`MxWpld@uLTtPnKth)2GtnC;#7rl04 z@mzyfWk;I;7|LKSVd63Yh!yyM>mYHzq1G1Ko8b=tAdnQT+X4K)CC5Y=tRqq)s27p# zWV$`(U&pCC6Hd1Pmoq>j1O=R29bq3BO+N@`KM~5uy^7Oc@CDx<5Kx2}NcCXWcy(g5 zzl{mjeKu@;MxTMmhaYF$`KQ7(cT0N%I!KI3jy-Pys^c_u`EQ{zNV#&39aD^lviSfx zCe_m&Wp*XP0^5@GZt$TW>7RI*cx+xX^%_!gkNFCgexm5%A85T%`seJ;{oa1T>HT$8 zL`iK{j6?cP^Wubhbx>Q_Zkpd!P zh|<&A_Sd1=*;|_mqvF@c;Qp)OdRyrS)5nQhUKS}lztN_RVl$amv!9)!gt%xcjvVRz zmZv+pBweOws(Hbifqw-4Z;P!p-0-3R1_+26^WXb#i_MUj6u=t?FCIh$wF|C}DHSFs ziMJ8Z584$*1kH6gh#v1M&drpu6z@uEw?3cVB>q)^4ijrIBRtPWf$FN@Pe^X%sBQW(a$6$f`vR=NtLowACu--t98DsKExSEXY6r;nbD_l^3{vw4##X#y0{Cn8Q9OnFDbReShuL|{_ZMEH z2y&BIa~}>KV0s7zdMOce6G9CVqH^vJCKBc}K3^*WYo&CqQzllv+C;wn2V)&7UeSB1 zcX|AMHIM-c!!LKB?VpOnv9~5@0{seTpR&V1{`88Cm9@>?l?S(m0EwNwt?n(nP@flg z*XL&_09Z%N8O5WctU^@CN3|&{(>k%@vN^eON={wKqvrZAD73g%54a|Gcef^sH`R8^ z4@e#!h=$pt#yoJ*;f=!ZvStxOBfYP*&guhTaSZ8?vsWdog_ zLQH}|@@Rd)x$|}*1^75#R2kMbRx}nb9f3jyZ&QJ|v@lpwk(Kt9(ms0Z#aL2*EL*#` zxbd80CRXf4IFi*RKTc?rG_mOh0|xLruQ4&@h9RE_@=%+B zF{jIw|GZ(&`C=y3A8eNZ!loN}!5X!%4&S|PZZ3kNi#1Fjc^NXdZE){Y%ssiLWzPW_08}T)co+>8Pl< z$tAvf?!_8`OJ5a5_vGcnC0bmquJr`s_SVMgJ{2qhO+C@+N!Z)Svt(`4FUeTDX4+!r z^;JE4u`O~^;JX$C&=a6AsV!mDd*xHGSn|{fFkV%keH77u+oKvda^0r0DRIyNMAXZOS1;`O;zsCkafBQ| zzKuJFF!0a9v`uFv?94x8*Qdm*Xt?)G$^Vsixw1~rf!^ekNib_TLpL1P^0caHgcwOU zmU`t60T7cF8m`>L1;E&uj;TQIzpCs_mH5GpoB6%Jia36REOE4mM&3b}6*F#qO zgn1VoYLu&Wzfu-9Brq?Pr2`1M7sZIb&3j=u=A_7L;S_)D)E=^D| zc$8m=>y)AG=o@{>ZNDpz2?a-yzEcPTk&NRtv+~=N2k>);0&7O3XfKcVFVcnQZowil z{e%o4#((G4o+`bDVn9g0hx!3G3;dafYr=9&2TPT?{Y|AB*U->TsYz;u0qzHn1(p#> zp|n&507DawELD_C8pfg>%On4rSUmNe2RI-NbZ)F_HytFUw^sjSJ&2lu2q{xi7ieR6 zM5-=F$QryfDD(riEW5i;RYg|nhEa`uGdHdcy$_|Oq*G(JdJs~VSobhosr+Bd6s>x62Nf)g{xlyX5PJ&e)nn@0;?0W4IR6I<`MDEN!+oUz8Ua11)%cbputcWLse#yi}BuY0x2^LJJe&7mElb8O3rJU@p)6w1b@ zGsmRWvBj;WB}qB=f72G0)rD>&Y?Iod)!D(qnrMs6BlvTe_vx$V8E?-ipPBd%0Cm%B z|NNNUGlL^qVsGY-&!xd=&eS8ttD5lCgeH)6nq*~KgiZQ%^rKyxeovs1gVFl6(ZID? zgES5fWqy3hw$O%IwDs`At?z&a(mM!wJ)t=j->oo@IMwFadiRXH-g`ZfVnTn9kKz?6 z4aWz|X(E5F=#T7S_GJ?#QM8#X=TADErj-HC*w%m^{fiy_%RLoboD~+CtRbU7to`_& z^0hNkmo@Um@DJ$!WwVVb1ce~~y*QeL*B6fm0Rno1NX#R^N|YPJZgkSh1o_|oE}oeV z*wMeO-9%qA8l?Xy5_9I43IDvaz=42R66f4W6XW6`5@XUK5^GZs01JpMNzHoWsgxOk zYU^}nRQnWRBiJY;z$kDKKk!$YDYhP&Tf?V?uVCNFqJ(opkhl3!9wjuw8(^<4C)+$O z*L)|_lQ#ka{=jAXYlJmx=XX`#hNMDXxtRu%KKC5{?7dh?D3gPzLiWWJ0?C zo))zSZMtiA(@2g@#2^FCXbRx;5-5XJp^d%V6|czmD0G=GKv0Qr?SYNwU!af`jCn8q z+=>jb%Y{HzH7j&17>s@Froa8Cc#_nyM*%(7&!;;4}ZO`rlZ+WAL>b&uoxpu zZfDH+WC94SA7Q?i@q4QFvLVx`>#IwE5eld}pe2xRIZC z93GzneCEk4fB=j4gcz57VJ6-gg79@{KM&8Q8Rmscd-2QTxK}6LCdAy8M;-;5RZ02r z%s~k6R~y{dGNxS8h?Ks(eEM?Hc=T*0PO)WX0cW+=1Ey1>Z&(nQ2b6nWo(W7!-V0X{ z*aFkvGRg_Vtot_vIFvRBN`)4q@x*B3!v#B0JN`0EfF@HfNxTfc(JpL>zwidXxOB*$ zB#S0oqA#?>ANG)GTVI|%RzjP4qhXPo#b{5)H`Ib0^lE1YD}13Fh}c{Z3LZm|h$)F( z_ymc8{Pd%ClOcqT-HgD@Y!V8VSw_4m!NI7E-;ehB0d4UEcAIBL;`<%xRu*Y;mGexK z)H*{pEkTi1NLV%Qv3!SU~~{~z-Ifvy1}|9oMhzPA=Y$rox&6vZ{Xi^;fgO zL+p;^RnM0wT)H5fpbycEx3#jcAwG~v&U=RIWpjt?WZPvUx3}jDNO2?r0&M}iA?=Jp zN`tAADB26299=a@jh6ZF+`n;*uX5j$eb93l1HO@{?P%S6%WaZEx5?JVZO0;*$YtU# zYnOfS(6s^ZA)8FpeXaw>AUXK%-e?|K+I5^@*0#UWu5&aH?`j2v|U z8GR}0IQDAMbn~h-OSHz1!i~ftCnDd!pt>+l?5$nH0mcy8_{+$w=QX_Jyl|vHxCs?> zz@~1_j-{;2YU-?)2nX7OAyU>hz_^&Qp=8CJhs_S~iSrqfrZ0%3d)bM-pLyHvxcMq4 zf6;*O@L5X1Wx$sjR)b)y`Zu*o96PE*OUed+qh^uCHG}@svgZ)l@zob!&9r{R!Vo!0 z658dfH&IBC5kVGmB>K*B(|pqV;GMO-YNWzE;)cd?uQ?(Y(r)rZIC$yQl52GLx+TQH z>7@a{D(R4atb3p)dt>rFUAp+mH`=d$tv&n4%5Wy>F23anJ(D{(o{0#4Q%gS%PYSpE z)Ll{~yyyMpCz$}ULX=XmoIJBdjIj3=vQAY6|MQ418lk>CJ9<8w77Vf`zHv>t5B5tM zdE%5SJRYh;wD3_`nSiGX?vQLVf+-0>glGa#9>)~Yh;)Edop(y1@2v0Fi?`vqL=8bca<_|S%#e^-KP@GrKe!za$<6DEE*AOc(#)PH>^VNTSGA;S&r;S&a! zplqUpBo!$_wF*iG6iJEXiPft~sK)DR9nXJsf5CP=Rv#53HmM90O}f4hiCDZ-yo;>+ zOQ@T!HOQ1ChEL}#z z&qw^H%U=}C+$eysG|hsPIUjT3NoiNu&kA6wXkS!IhS?QJ(jo`5= z>&!*zunY5^2EpuANe-wEOP%ETs%u(l&P}NGhRF7UYIHcdRF22ZvgW3uj9{m&Me?n` z_Q-QcTZ`F=$jWCxQA`qzOW-0n_-XOKu$o~qD6tgeRa4MeeYCq!`l`FEC(ByspL3Y4 zy#Q9tXJ7unx{5U_qYYSW`?Tkm134HbRkiuCGQtXejxBwlv$V13c#}12>Wf7Bi&Fysq+bHgXal3pUIuAe`yW6b}M8q}L@& zz8B><&CSlkhUPlL4l}B*g?Z2ruJixaY5|33b+v5yvdGI;gLT*7^)024ocKCl8X8cN z3|QKIq&?h5+Cl^79IdxQREq{>Q>%(?gEkorrX9a&0~I6|eg;!zhNvoyPnsV(@_ZEj zp2yu*>=N3}H=*wpXzQDzg7f^VAhdq}>4td@lMuJ0hPmF)iTZ%SH&9M~weTzzY`{Dl^#&^3mIs0gzr*E5UST{k8Q2K#7!oiv>%h!o8t$Fg zc;LAi7_0VcylVGz5WDY0QmcjfI`74#c<3rmR_(hROlorb5TxgHddKj=7=R-icX(LU z&$@LZ>Y9($rQ~AY`v`Z=lp!tXodZIPVZuXKR+IuTmjd%lxNT{m@YH0;ri%Iv7p$!K z?3F}VA_M!Y`qP50&gOm^Vz|`R$cWKlaETCH;;IW%jD98N6~Rs{r&M)fyFWa1{@Hn_ zOb9eHENrtW?2-F5we#|jo8@=}x;LoD{CDgYzP%oQ z;DTuEdtLN{+A$l6f83C%84`ZPTg;^0B^n7w7ZSgFlm5k<&rHNwm=g zhvG^^OZL1xLGxGw<;`-^ds3b9t!h|F$5zijd#TTH9_*Sfg>s3)Hd=^Z3mdY|YZ1&7 z;mv_HyuJmI;@nysdpDOy=zPuK;`*aBGnT7Au+HMzaHe-qrT^kWsRgK~HyNZ|Idmy% zoLGIu+h4oxF|*B>BIk(o7@$0Z8N;7pfBMxO-O^n%#@w<9ltW0?uRgLmM1SqQ7OF=( z>+fzHhlOvHQ;T%0^{qF;rAy&;>=@rG%m6-K>jgdR80mhZ3z9Vo&d{vVukRlEuK}zt z-*Q@ZJ^-L`=WvN~mhTD0^$L>wh=mu;gjwv|sC_9u_Fru!(0)y~J3n!L zI84YtJWk)7LLbAsO_2GJ#l9CDOaF^fBs^`ukdEC)^5Hq+hYw!Lu*T`9op=UX!-}WZ zepk2c>`JleV><6r;DsgyP0`iXa&L`nY!1Fbxm;5wU(<)oK){x`R1cyi{kE#SJ*!} z!Qto~{q+DWNEvvK7C5Mo?zlk?@FV5Se^6o~@>A#T3F*8x9Q?ns-U2F)<#`*%-QC?K zxVr@l5Q1xPhd^-4LU0dkg1fuBySoSX;O_cv$nX2#oBPcc zmOg6Aa{8Uat_jGo9@2h=HypVsQ)Y{}8u$IQ@xa5_`Y#5EQ8+PR4%jH%bsY+u4V$Q+jvsokD~sVL%rlsY%8F9zoS7mk5XOW| z8nUl(%Cco|VyUoCrnJF-w?pKEyp@p#FN;SV1xHMqR5rtcCa`c9-aY#6;q2#E`Z9FE z04gQQE)LcP{7Us-3Ft-FwaRde+YUfMMORh_#5(k$mdr%g%*0Q+=vk!SN@l;1Dd)XF z$5j2mWf}Di!_ZplX(^Y)5!gB-k_j=AeEiB3_1&Q82i-6@VkZ>3aP|eBi^L=4cku^2 zo=#!j0ey+c<1cAUp9@z1mN?+N^Df-)sco{2?ikShy93lqR$F$}@pm8a*Hv4UZ|nH~ z?i}oN!BKug-Doyc4WPil2oQmy7Lov00yV5>6r^|T2|HgixM)gbk+30hZl;>!5Zs=bBG(Y(S zcu4lX-7NbEfVGDfk>L$mq==ikRj3yB#V;X#xM-rJ%fao8{hkvk!AEVl3U%$>>6Bj@JtG_9+@NnJNoU!#t&tQ zg{FMpAX?@xEgZX@f(kgPB`c6g!sn5C_t7H=iTzY<%@atIfxDwFq{&_TXX_2KC5cX5 zPV%w!Z9hE3Y$>qLkWG1temM2GR6cAHUi{2k?5FQ2y+-c;*$};|f#^c9fulUQALs6v zBan5py#dhc)Yo8fFSI8DTvxpvVaj*qO6{}&;ClNm#+-4};JsB^_;L0o*L2uGyW1H5 zL;^iJPFYmBm+7N&1!HEn#7x)s+gVDd4aIm zH>0tlQf#a#xu;vt($!U6RJ8Rb@P#(G^q}+GVPCEF$HlImXU>B1@uCe?l?`&V<6wab~?#zAf8;NpU zY|Ce=X^V%5a!=Q^9)Q_+;hBWOwHw`@(-AZmb6PNA*8&?%ybIsi^n+L*o^2oq7!D{yM* ztVd?eZr^Zjo@w20RMNsew;>~OlMx#R8$L~-1h>L`tK%TORrLGUc{p@T#O}_ZZi&#- zBeY6s|1jxt$zT8uTF$5N@c?`5IEyz1NH=uQaVfW-k8VF-e!74Rx+2nQk~`D0{^cu= zBl|g}7edx_g1gC9(vlP0}5uQ4`}q0+8~ZGl<^M_S^Q+ghE>;>&w| zQ|Fg#!VdS-|Jq3X-2-hI&Csrc#z{L^Ffbr6)eHV*t#__7f{>@N3NNhy;^E0Ozu9S;14ZJl9O4OxfgO!U*PK<1eyqAS-PL8ftbQV27c`kZb>+H2%CnOBN zL!r6e+&mQWENhuvI5<10ab0=5ZNQY|3{%>fM7amtJp!bJNe6zF5j-)+Ju8wPY-OnM z9~n#*glKINr8rsY@#7!P{_N6EnB}~-Oit?K|Fx&u9;kRHD83oZkA0ReIQr|W;F~Ru zEe`EXiWHPnJkqEcOTnnA`LZc0l9Nr2?Hj1OcUYma{CZtLZ(Sxz^8xeF@OM{doE8I9 z-d?r698LfP*03#%2zlp1qictR>g{v*{!oNFRRlkVbpaLODoLdpI~S6)F2^mE^fTQQ z9LJj83n%Tt3oiY1hX}t@Nkiyj1d=f?MDI2R2BbNfyeth&99Ub?jE zd`f1q4;Fbcd>@5zcfH8VzO6_Rd`y-;aLb80;IadJJ7z#{Sm?8sJdyWWqHCM8@+wf& zfZKG|C2P6b2=%#yAo#emN%M0KCPmvl>yrD*bz2%ZJD5jx7AoVgDEmemA&B6tx!giW>LWhfj=5HLf6YpYB{H8Syn3>U5*yE<2YIGH0(HB6V>$2 z4DuPQYP6b))RP=6u=V>n8H^a4iUkIYRSBG1e!?d%^&05Rhr3EubZsY8g&n4mb1bQw za%k4GW7rm1g(WhR7Zvhh70VsknzGvb9DJh-kqT`_hxJp9bjh}cYPhGHupE*rb)97x zfK{uRqFnS-wbciU4wZ1B(l45Ut6G?#n^iN7O+lQ#Fg6u8JV8eShv`@k3kh~pK3Hp-y@`9x8BK)*G~Eqn)x4Oq&ME04~APdCXv9&6pSfqy<3SrB0J2nzVCP_)usm1NqVb~zZvF8=YouQ?GP3UUx#IX zd3CVrgV-#~J7jY^OozFI7B<*Aep`JFL`-*mzROt-9w8cz!bSmL^!65VPTFGe(05i;u5W_65Mcrt{(Mz}h8i%t;Xu%gY987G2kql7x1f|w(>jo0UU z>U3&sCI|vQ&2ILIl8I2`4!#7+u)v^?9(e|%Ic!zPikEqwxwTc8=yvAV7^}f1WS6@# z)jgp!z42YyaPEB2k8F+4U)Otcm2J57nL$(Z`a?6eR# z#kN`RaXj7!+~mKhl|e(V&8M>U)}z9zO#IQ8BEA4#EXYgKJ+LQJYjwcQ3P4{{0akox ztTb)MW@A+AcdK)$sSQ=?MaHOpHxgX0PEX1{b^{(5HfUljpW;dd>{^=68{Ji9*f(>m z!VXhN5^$uMx{S#XOUHs19X(EfWc)QW=onb_`TazUNrkB97WJ3m4~0y4!d+rL0iV!! zkHp14g*!(5}H9ENt~#{M)6 z8|SqfN39=9?`p;*^>{CQ1BM36?UsRW-ACiFA+Sq_=xW)#xMtTnnI5#qmb;M==_hs= z-AnM%^ps?U5lMtHttg=|Nbs8IKwHZ@qW1x*HMVTZt*s+%`vCcw2xLf@JQT_7_h}0< z*e?{pPh^aTO$~{jvt=Jgi)RxrKY!lsZewH{X0;O*sr5&j!Kv+|l;5Xc0$>)@^2Ryv zp*=rLVO9rV19so|o$N?}*>bT=vC9W_Te^o-gpT|$l^NpXRZveF%9@awUhB%dobS*g zM5>Vy=eTx81q`ft-U$QzPH-gz+gSf+$vK)$G~yt>!Q;OcB(Q3kpF zNH@!9ASp20sK2zPtgqE54}JAZFhj2LA*@#nac-kY>qGwXwJmkY9Adg_u_RX2ew2{r z;!r-hL+M-vU#B4A?T8&8JLeYyUvxU|-MC9ezo<~~v~_c2;a(+x<&yEZQp4QZrq+;3 zUT}vuhQsk*#ol^&dllQl+OJy}zlS?_xP;Q?O9%*hbzLSzBw=z(-d_9&t}n{FZN3!L zC2t`YY7@w@n)HZyi&X-6tynw{dN^|X%&=gMd(7bA#wYcbzEY6c)ToByu!JPES)SHW z5nAmJ+w)?uaO-FTLMbh+6^fB*r4wxvHJ8GB!(5>^k9s&5%v1@S5SI(jhG5z{%d8#~ zO}ek%5e5xZ@M54ikhC62M^|K$fQQOUb3 z-)XxNaoWYK(D!je0|i^ya{#iE@a9R+HEYt&3Aah9-{K zq#l_jTffyyvjS)G#K_Uc(vs%ftR_Wfn4CIq>;@$jV0Wsvyu%RjW%y|EEXB-3JRVQ0 zWp0?L*HLt~DhLOuPP1uSuRVgf1dX)JekHM#Opcmyik)`OOZ%sL2nVA}#ZqERZsR3{ z9+7)mt~T(i2#M_SvOJL*=})sB<;7L z7I$nI;7ciY!SJX{s8C+JA|#^PWP^PwW&A>Bbm{1oShP+&3iA0DxdV^!?y!=i1x_W^ zm>k!yfbxa+yO?XRdzr=(1wnpa!-?uh4c?kjq}z^P6l*$i#(Nzde5Vb+L*d5H{n5Nw zVrQBf4GFx;)$F4Lhi|)`whqla6MN);i0BC`1rQ5gGY+&Pig~~xfgkL#&|@aEdy>ry zmSmLTRTCVUC=g|Lg)etMw0~8~u{L`zkV&aqTC~q@7No9ymUiYEfK>`wba?wH6EpO_ zT`R)2t7W$_VJWM_Wp-NAP21vOh)8-Ifs3Cs>iMc%MD2`<3ANklKO1hZR(GK!;}O&r z3K-X__Dc-zm*32Bd&?qichY?+HPc4?;t;LzXo2snW#FUo>_0Egw(IcM|TT5j`_~N3J&$ytxuyA3VO~egcf& z5-0_%PDz-PY|uWYcESsBo}q2uOl8w(@i(l)t%j{{knkU%MZo5)LT=Ctan|%6++2@y zq8);FI7z+VyV+tn&ZsJC;WkC5GlMJHnR~q5ZWS+K?#M(e&sSyUm!D`9g8xu{<=IT% zI3Qhc$cpXTNHiTpUzP@Os@fB#2?59?D6?5SIm#L&k{rfc-&T-OU6^QsU*Ss3oW}V6 zz;IuH5N?Jux}Wh=T(Bul8Cc~Qam z7~?&XKf$534JtS>G?=&E*!NUgH$VJVGL)#lPy&#D65(HFb2JOI7 zrRp-IMt%TWjo^&ro>1*}W7bo|oxstS*Z39!ShQqxR^iZ7V0OaPlBrOa)FKp;Kf1(# z-fOCk_ySXSLnlf40X8L*H45Y=EJra_MxZ`EQ&-L*Ra$RJM!=o&Xv21TB*lsPB&X;W z>}Xxul0_tPwaK*%%E_;<+H*Q-5Y$?j@Z%;){94co32)w=?O| z*t5P}kp=EKctEsBf3soF731hi4S2(y0%NJNdvHm$MZdH_cC1z)rsUcT3 zHI+Vw(c`eaGhkBZT_nLZG~xP4tGNA9 znN$ci>4ui=t+G&BbP0ENi_bH>2b(XyBO3*N*^dVDTpKVro3%zlIU+g8H_Xtwuqj$w zNJb7UnoGahjYwmjsFR?ZG8zIa6uuI+RHwH#XKYB;EUF#RpJO$Uip$}+o6WgF4lET8 zbhzN|jNd*Dwx46%<5(=IicYPk(Ux~{rMo5Qcg!1! zmfjBM@KRMcVzv~PPX+Y@kXOcJ-3LkBCGgJ_?rUw)=NL{Q6VCxUPu10+qmHA{Ub7JD zaa`cg2OfLPfuUHf*At)PGt)+c_TJ<>XwX?tgLPqC^U}BYi#2m6AqI>flq<^whquuU zY#Fg?g$&QyylHq|f{JsVlozdjL-yh5i%;&Yw<6w@^p$~&KMm?TB|JgzedV^Y@^#*l zuUPrz+Vib)?x8mT!%2iWgZ87bs{?PR5cyqm3bL(qi|;~VF8c5=Im=Xg)YVg=f?t(p z`Ydg0VAsjz-w-!vbJUomXl6vs7H!MjCir#^EwQ{;0YX?zH%16mqZ4YQ$sC(w)_#B* zU(|JLXrWhvaR&-?Oz6Aq)A+B)=BbdoQA5a!(%`}$N+ZMp#G8J~tj)k7VpySlfTked5jg5Oe0=;1F1Q%cxn?z@&`5##AYs;wv<+hPn3eId6r;J zv}_Lo{?|9tfY6!oE4t2Qc`g%)@357~&|e6YK3F;+jnBi>zX-R4RdB84_fq8pEqzx| zcZ1;WbiX8gkra80aeJqA56@{oVbcn`u=3XK@DTdGK#oH;kbD&J{S{p?3B!h{{K})Eb!foDY-gm%cO>4AB67vw`=h zV3pE)bpZHpwn3&QbF_m8khHP&h09XMA*d6jqS2l%5z^#Ew8~+(4+S*^<;>AwslA)i zEAnEhyfIsgF&B$fzoI_KFilNJtargD%5aZ-;Q@Q-{i3}@m1EB0JPV6;o4t9H9jeOE z^h5tx6a#z(5s8Rph7)2{WWwT}gX~EnQ3>E{D-6gS+WkaF@vP{{>dGAc8Ic2In8!9R zHMW^AEB;{d9Z!0OEy)iF&0IM# zK1~1&*-$0e53lm3OY*fx&>}?qTrS^ZX&wuU+s$#Ps^bYLo|)5KRu_`Pg!)@;^$T7; z7gKo$7vqEzN$J&>g&5&xE=LIH@GLM+ypiz4UJ$al`Pyebu3z$4?|0qc+=z4JjF;x` zBC;@+*+Oz5Wg!xD4O7k2=(r2EFy{A6Q_Vx+XGc7KN&M+p z7#@zrgr87{J#son%lhNo>Yf#F3m(357~;*-`sJBdvzbaS*Y5X%-uJ6%B|_$AE>%g( z;FDxh6U)2Yd`FagFG@9@br!)4FU-SutsiS%`I zm1OZyjm10B@#og^k)U1KE(2IwHGNsuhu%5Wz1wK(T=b;!QtS2b5(@V;wdwL^Z}t6j zK2T@kMYw9%c@lUg)VuW2_hb{c`SE>c)a@-VsR-F79?ADpV|?fG&Rci@t-Cv2c-r}m zA%4`F`8&YF1;Qi5jr=Wjk-KVV8C5dc`{HbC%^e?W!ku7$p#RUffDGF*%Y7FmaYv$M zbc>^^!{}LboiN(VSy-E>2A}Nq`{HhBC3W{h{)EK}kLIBxxLj zGu7@YypWt>2QG~``_OuCOc*@!@efP0Odj0My7GYR+t?r8K{XB~T-yX8v%*~tdp12j zY(`dggESpnh>@=M5B_G6)i5{5Mh?gM>(kYG&pWNq?^>oU84iJK01RIYIZoNaF71ihftT?yDFQ zJm(ub6@H)#X~>?~Z5>qK2t2>WlX}VQ48OD0(j@UrweHN!@wD2A>J+V1<_$4` zzqqfza&=9X`-C1^X%pW!WjVJnih4N=jXD5gKs_?))W0jk*DRU=bWHLLezfei5-eDGBWqsEFI zj&5&3y9WC0VF+LPI(8S5vQfwmtR+82XR7_ub0%*AB^c>6YP zw6I%nPA^z8=h@&*5S)Qx6BcQ{C+ErU49dP%SnmJ+EBaOK6!mFe2 z10OS7jA`=sgnwW!m7|BFU0Q6jnn&P7doh{z_weEHzezj1cAo*Qb@ zAZ#IK^7PFtNndY=-P{Nma-$x3b4`sz?TgoCwXDRxM4oig=T{f|Zl5OS3&63X!#>)q z(HQ(G6Pr(o)TP9!N=v03>$7f*D?G_$KR(ZbIs>1HeNXA=*^AHUicW$b8IBHVRWCg=sHybZgM(0A0}aUvvCc9t=P^X>8=eD3@%}z zJhaU=FKAT^8}zhF+f z#jRZGa6i3yvm1SwNHSo(joLQb&4)-<5y$kfUv}D5YuB@+F?~+`^qGkJUYqCY&W1E| z!kK{d+Gi|4G5gaOQ+@~y?8tVeWlYZ`vomyc9jW%2uV!V|_k>A#%8vU_fIA~AmUO@L z7{__RAbz>NdzmiIOeR}`h-ey8Gx4vvV$ICYtnlBsb0G0N{qLE=JsGsvGPJ`pE~T=VQL+ zuq8n9XP5ZOOspFNOuHVjm?skGbq@W&7e9uczUT|TcBcuvTdgG+W%xpAX1EH4N-7ki z>WYE}epNkgNC$wKSUl-j_3_yryH>#(+DzSPy5@UBgblF(`f)!575g9!L!=0U=>yon zymeOLeQGVf+I76rfbgiP8%*+N!b3b$Z+N>r7KScOrPVUu7fXS_KJoLH{|x&;Fo6Uw za4@h(&@L7qC=SG@&*m)VpAAiHOj)Yz+pGU?~ZM0(p%ZHf&J?aM^ zrrx7HE9$^ygUdm83mBQEGgm{Sm%Gucz4<_=DK+siqnm&Z9td-W?FF_9Y3}qs!Qt^& zc+`dj@3AZbmV8nt>tr|d-?Wq zpG92`2J!ZI9|4G7DK`ft|KJA*012E7>vYnmX>qc_@s!C3T`KebB6sSTk)r7A)(Ud# zB6>9y9FwecJcmjW4X&ByKGvB7o9D6sYJKL4up4GJx0w6F&hbv@3mrnn&@)y20bqC9 zWYy;{vfQezEC@nNdV#gw)+%f?YFP$mwd$eYkS4=(>EE)m;36PsMeyF^0eDe@HZILj znWJPC+^LWh8e`c^yWV|DEG&hWVXt0j_Qs}H==AuRqzzmhjBYO8rof+iU!&WsJNfI- z9iRJdEjEHkNf)2Qn{T<2Hcw7m9@liHwZ#?__w*Y$(t-K;dP-NAR?oTz?zVh5iyxA& z_9$C0zV}c+1CXICK9U{e063Kd{!21&O`^z08iR(7+CaM#iG;(6&(zOwcp}<-p)vQ9 zb>DYUbLt=d^7X^SNm&cd%?7m)UeeT3fCw(rIV5M5z1SwMu{h4I(}IP<*!V+2%*DzK zqKJYRqth*K@$F+>DYdY6?o57Ql~&GsxbU|HazR!W;lfQEb?>-H697P-yJ=pEbd*tg z8VRMnZ!%@Y^jeNDHU%>65D|rx87(4q&B*PmrPaThFYclc|A z`LCh$W5r+x_+>!uu>etFK0OmA6!=}(jU#WLd|=#yX}+ed-9sqdGVbf%`rh9?r=5aa zU!p|klJ~nz)K|eeBrG0vG!Y>HW%gG!xQ~eHH-7mX@@fA>tgbSJnr9qJN%x-c6@b^3 z=4t3?Anb0S+ogl3hp&suy2R0Yr(*G#ZO}7}VqE$w=%+Y*y}dHnoAju)_#Wtzd_G+9 z`9Z6;05%^)Nm@F{k;{#JssXjkIYA1K;LbTwS|dDgfK?9~ZA;v)-l?=U5+(_*SxBzn z#>c-6V5&TuARu2ijCI`X;=hAt;(h3#4P$KJ`$^oYpH-=_uV)rMh{F@-gPQ6MD6Wd& zt6^4Z7%@OkY03br?`4d;vE;xcovf7|_j?POaj=gM%~uvSMa~X`uNtVu30%u6lQ^p^ z&1b!YPh|QsnUrUpsB1y&sd>zfgz~+yG)H_&V|OWY)qv;cd*pO~Y;3kIwQl8LASd-q z5d%hithp5Zh$I_f4;M_&f-|zbBwHWr2Vei6&AsmVPjl9O(w9OT3m;)DB2qX{JV(CT3aRs<08){$3JRbW$arR zyGOT~_O(P8*@tuPGO-?bWJJ8F@?b)O(RDy`Aa%I3Sn=KSb+BP!91h3u^@?cVyBinQ zcO=HVU$Tq?9qT0uc~13I;tb6yg;>J(YmCZr5#z|0NANB0eR{|>EHxGVsG!OD$ocUp zj)X1AJ!sAk!7{woX*(aX1N(_gNNC1f@eEEfDp7f5&9hqh6r-V(Vl>~*S%yQ8=YRnU zw-B8rTe;j2wmtxCHt3KezjE*%I9SL-j7o$m;gco2_}UXg1{CmrKe4S>B6)K}$ZbCW zMoax88*KoWmBi;0416zj{O9mm2@#%cyicN=5kynD5Y7M7kn(4pAb0osY$G|aVTGIxTuOB@NiDz;whMPymXIJN&g()9( zQ0avc{=o(aR)|avN2}#MC#u80KRUVca0)bJGS~j0+VjD+NV`yXMn$ViT_s{U+0LR) zt*BHBUz}w>(2j+zSjnU7qcrc%GPkaoRg&0XViQ3ZzTv#pv|OUIG_%?O#$bYJO=F36 zV?0kpO!^R-{={)oY;CTNbJI8-mp3~dVPJ;V&q8fLnKe|>1r`3$ey}0|9jRzj@RU1F zpx6}Me4*(t(w~i%_Fki`Tan9})fT|Alz}D4D_AZywFtRF1D!_Y0VnO;<^tDS8k8?H zg>ZZPj}vtq#DXDPC`-_ZJE#gOEiiU`BvwF%)o=%0?uK|IX z%EW4bg&BTk%c1c%M6)gimBe5oqT}{=hz;1uUBO=sn}-~N$lWRMdv=--YR{ni;t)dT z4TIfe^VdjPjpA>@o#xyu;-ezo47eTVQ$ypj(r9`Qp^5OfSE^Y~b9U)_f0#{7dlsKE z%}&4>U|6TH8hOCUjw7)!P1+OyKr_fu7$vM1{)*;~;vKiYfnJZ>@A|=0 z1lxl4S>la|I`a{0Mi!2l(wB}sefPYBijd8(c-)>0;w}0NTFh}Z9zy&)5^)C~P;cA^ zBWB94toCE?Ww6F1U>HoWN6hNy6{kkNYj`dyz#{EH`%x$_ugZ{ z8sJox2=mcg96R|#Rc;K^g`V4rfPR5`4T|ee#*L>77}NR9xwR+M+qQ0nsF-4`-FNs@QX zLiUlvE7ig)xTxm&*=_t*!uW!oP2)7fS_9$VVc4=IW=5leACd(^5qp2%k~JdufCiw_ zYILs`ERmUZlxB8GS8ucL!bxFe!<|IvVw2zJFn1c5kPm;eY5dDm*TGA-Cuq9tn~V7# zpI0iA@_rxnnXbNQvVIT!K01+)+Z%Iok}kx0se0C{G+ALUg(sevN7BE$0A_59udtvI ztqEkv$^JS41pMe%EnaWCo@s zQvv$k5-f7F&yQwWZQ{EyO*3=CC1|8xX3qJmwm68h3UrK97rO}Uk?4m%l-|?b3wz2f z8<0I>W(e9UC7U_z1o$siyw51|hz_1lcp=Lv;%|kMh(py`7L7=b#*kQbhH3rf^z}@$ zKcn>9mRjEAqJO8R*ItuN!S1fg7IaLx{s|y8On&`VJTh57TaeF+M-g6&r5QmMo@ui10D}4xp_bc-g!ouHI#fihuWA5H?rR+dL{Im_EQ<`Oc^yEm z(DCuAPvrftV={_n%`fNvB|Rg{bg?#mo_Jvv_PH$frs!X_*4r2%pEOx7;oRU|=Ra$n zzx}rI1ineg2xIeXRt+5NuSivb&@6?Z;SghkVW@Z~x{z#Yv1>+uMZ7bo!97}aPkh)&{Tr1acjV#Ub&6I(L@m0>zxCX4=5`0bWEg>mE5CTBrTVL_JJf=&ohV+n%*kF_p=d~5^-xQ zUZ<6$n^yOe#ZN1jePb-EU|46v?Pxp5cvce?>BbX2fz&ne{IP0@Hp+dWk!pdy%zOO? zN#wCtK*)?;C#&-gu3! zZR2@%vfLOe-dCn$?a#j_O zXiH*j!huC94xUA}B}5iBO}1&a`|%N^r^_K|XcBSlPQG@&}Z#v_*s z?2IpKutw;OSO{GGc?cM6RLF_boE?C=BW>Kerk&&2DCsl!$4yiP$p|W8A5_z1omlP3 zM5&Fm(b3@q$6VK)}e5^5hc%1G89Vb-TqFIKSPC%coo0<0os@V_n9g(``LtRoQ+)_O{ zDvy!ROfPS`x(e*w>b*)k(`_1^t+=Tn1xn0ju$0_pa{J#8lsGhX22ekd<@dYbvq$OQ z#~#=;?@+vFd|1kBZaw17ov&{AmEf;~a>Txv7V>P}IIyY?P&oGo1RLTdFdUs}G#fbP zDbqc4ekLet$U{I0fANh<@#-6WEUozIeZxRmglty7Po*! z<_ne~)xDg3<-CLo?UBpo!%iZ-r4USAsfKKp=b;}$dp~V%@>5c+1&Q*)CkQ{}xtc?D zeeUsf(taZ(mHFNxD$t_xS3e^|XUjU>NN@C3UvFA*v5hG+hW^CdW zNZa{=hf?WJR9qC@?(kXQ7YKJ4*c`cSqIcu#VPd6f6=Afq>mlpxrSDVM8G0d7g^;S1 zr8YS-CAmany(JEb*lt@K`uY}%ck;2)#{a0|S-y&PJXcGhex_l(E#;F(q z^|Fhg*`SCufoI*iDAwxn>Hp0PWO&~ur#vftY)1GwcPFqJ^ z5Bu0IV|05MMUlG5?N~0iF5wB9YV(aX+%#7MO20h8yl;;T=iD*5Jl8&!6WSS(+pAJCVrQ_2$wI9A2p~pI0BSBeIU%`HAB9p_XZxJ|Xd7-(RzEUQw?^ zU?HQRh->OS{Ni}A1j!C?r@oQH9hlWmHuFdfegCZ~fb5j1m-5_nquRTnofZ9L{42|( z9wE#PK|YZsfHu*}N?otSBhqjt%r}BerGa~Mr6XGZA~c2I3&Q$hr*q+WFEcc}D$1=> zg%%^0`wYzqgvo9xfwTNYqF~mK7vh>d{M`F8B*HVT1uClsE1s0ZR^!v!ei#3=U(*Qe zyBeo3IvBP1>L>FUVzG-!jD)spk17}|40P+n&f6p605+SRKqkvl{aW4S&&XrE69UFj zJ!DwnYeHRay0g4?-!tq_8tPpt(mx|fDCcD1M14YJ(9^s5O2(NFvh~m*RCQj7sav8p zFvPQq`jqID>+?p;Pt0;mE%R^!Sz}l_qNip8;a8~&kj2=y^-~L{p!cOS7Wrvx)-u?U zs#PhRK6E0(Cpd$ zuS%uJGzj94&j-3r1t{kdH$|X(ClAdm#{>ryNDm4Nhg{>ng$0fh7DZ;y*2K7nYsQ)dGBE>6Eu8;5)c;cZQcLJh50}lqq{8tV}^shh#Z~|cA z;2(A@zM7b2fj~2$ALU=*XEKsZO4>-r2wNd@|hXNgWB>fBQ!}3bGR0at+ zF!TrfSLDCHz?keHFfk|)AjT`de+9Gn3uq~3Y5RH{FfIM80>#%`aAI-#}#M8*brG} zuVBUzl2@w#I12y+qxp+!oFxcI1acpM1SB3tdIkS=JoPWI?Wb3&*CT9ycxN6afFS(* z`pjk+^EL7B1BQ7Zsm}fXNj0qFEAY1$nBwo~z_yA1Rlvj~0R)sYFsfA$_-*PB2eeQ! zNcbQk=AfDf#VPsMHShAuZgVT@|AGHGrw9fn@GmH+Rk;CY2W4N``u9;Hk-tD^UaxG` zr;_|;=@tCXnWF#J7K;xEOaVlm#CQe%W7Po$CiEB8g%}V}|-KOZA$u; z+CTe1|1HQ^@+*&5E(E}(|9vE2N;7sdsCvji4T|X>a-ciYbYMjl#b00aAD#Dq3uK)I z0@MA~Mt%#@UyAU*s7n;RvXUA`2s|A{dOcJ6Tg?bm9>IZ-Dt&zi@Fx5}Hvg-C_=i?V z$M|xc;fGVI6)Uo}YV7Tu85=f0vyjJZl zCGxp6NTB3F3E2MO0d&{a2m%uUb%rQkfqzZm{sO8s|Bvb`3xDKa2h?_5+kg$G9KWUU t&$IL?0&oam)6^T%-y`C`hd_`!(0^SjK)7j26t>^&po4*xcK&|#{{Zt&^@0EZ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 6f74b1ed9..9584e54e8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Sun Mar 24 21:43:43 PDT 2019 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.4.1-bin.zip diff --git a/gradlew b/gradlew index 4453ccea3..cccdd3d51 100755 --- a/gradlew +++ b/gradlew @@ -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 @@ -155,7 +155,7 @@ if $cygwin ; then fi # Escape application args -save ( ) { +save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " }