From 7917b8a0038e86e9f711905531add4acb26152ce Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Wed, 25 Nov 2015 10:20:10 +0200 Subject: [PATCH 01/12] Initial steps toward the transition from make to gradle --- .gitignore | 102 ++++++++++++++++++ build.gradle | 88 +++++++++++++++ lib/hamcrest-core-1.3.jar | Bin 45024 -> 0 bytes lib/junit-4.11.jar | Bin 245039 -> 0 bytes settings.gradle | 1 + .../org/peergos/crypto/JniTweetNacl.java | 0 .../java}/org/peergos/crypto/TweetNaCl.java | 0 .../jni}/org_peergos_crypto_JniTweetNacl.c | 0 .../jni}/org_peergos_crypto_JniTweetNacl.h | 0 {native => src/main/jnilibs}/devurandom.c | 0 {native => src/main/jnilibs}/devurandom.h | 0 {native => src/main/jnilibs}/tweetnacl.c | 0 {native => src/main/jnilibs}/tweetnacl.h | 0 src/test/{ => java}/JSTest.java | 2 - src/test/{ => java}/NativeTest.java | 2 - src/test/{ => java}/TestRunner.java | 2 - 16 files changed, 191 insertions(+), 6 deletions(-) create mode 100644 .gitignore create mode 100644 build.gradle delete mode 100644 lib/hamcrest-core-1.3.jar delete mode 100644 lib/junit-4.11.jar create mode 100644 settings.gradle rename src/{ => main/java}/org/peergos/crypto/JniTweetNacl.java (100%) rename src/{ => main/java}/org/peergos/crypto/TweetNaCl.java (100%) rename {jni => src/main/jni}/org_peergos_crypto_JniTweetNacl.c (100%) rename {jni => src/main/jni}/org_peergos_crypto_JniTweetNacl.h (100%) rename {native => src/main/jnilibs}/devurandom.c (100%) rename {native => src/main/jnilibs}/devurandom.h (100%) rename {native => src/main/jnilibs}/tweetnacl.c (100%) rename {native => src/main/jnilibs}/tweetnacl.h (100%) rename src/test/{ => java}/JSTest.java (99%) rename src/test/{ => java}/NativeTest.java (99%) rename src/test/{ => java}/TestRunner.java (96%) diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4860cd8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,102 @@ + +############ + JAVA +############ + +*.class + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.war +*.ear + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + + + + +################################################################ +Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode +#################################################################### + + +## Directory-based project format +.idea/ +# if you remove the above rule, at least ignore user-specific stuff: +# .idea/workspace.xml +# .idea/tasks.xml +# and these sensitive or high-churn files: +# .idea/dataSources.ids +# .idea/dataSources.xml +# .idea/sqlDataSources.xml +# .idea/dynamic.xml + +## File-based project format +*.ipr +*.iws +*.iml + +## Additional for IntelliJ +out/ + +# generated by mpeltonen/sbt-idea plugin +.idea_modules/ + +# generated by JIRA plugin +atlassian-ide-plugin.xml + +eclipsebin/ + + +######################################### +ECLIPSe +########################################## + +*.pydevproject +.metadata +.gradle +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.classpath +.project + +# External tool builders +.externalToolBuilders/ +target/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# CDT-specific +.cproject + +# PDT-specific +.buildpath + +# sbteclipse plugin +.target + +# TeXlipse plugin +.texlipse + + + +.gradletasknamecache +build + +*.hprof + +.DS_Store + + +trexjavaclient.properties \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..c2abdee --- /dev/null +++ b/build.gradle @@ -0,0 +1,88 @@ +group 'org.peergos' +version '0.1' + +apply plugin: "java" +apply plugin: 'com.google.osdetector' + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.google.gradle:osdetector-gradle-plugin:1.4.0' + } + +} + + +repositories { + mavenCentral() + +} + + +compileJava { + sourceCompatibility = 1.6 + targetCompatibility = 1.6 +} + +compileTestJava { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + +[compileJava, compileTestJava].each() { + it.options.compilerArgs += ["-Xlint:unchecked", "-Xlint:deprecation", "-Xlint:-options"] + it.options.encoding = "UTF-8" +} + + +javadoc.options { + encoding = 'UTF-8' + links 'https://docs.oracle.com/javase/8/docs/api/' +} + + +test { + testLogging { + exceptionFormat = 'full' + showExceptions true + showCauses true + showStackTraces true + } + maxParallelForks = Runtime.runtime.availableProcessors() + +} + +dependencies { + testCompile 'org.hamcrest:hamcrest-core:1.3' + testCompile 'junit:junit:4.12' +} + +task buildNativeHeaders(type: Exec) { + def classpath = sourceSets.main.output.classesDir + + commandLine "javah", "-d", "build/jniheaders", "-classpath", "$classpath", "org.peergos.crypto.JniTweetNacl" + + dependsOn classes +} + + + +task compileNativeLib(type: Exec) { + + def jniPath; + if (osdetector.os.equalsIgnoreCase("linux")) { + jniPath = "linux" + } + if (osdetector.os.equalsIgnoreCase("osx")) { + jniPath = "darwin" + } + + commandLine "gcc", "-Wimplicit-function-declaration", "-fPIC", "-std=c11", "-I${System.env.JAVA_HOME}/include", + "-I${System.env.JAVA_HOME}/include/${jniPath}", "-Isrc/main/jnilibs", "-Isrc/main/jni", "-shared", "-Ibuild/jniheaders", + "-o build/libtweetnacl.so", "src/main/jni/org_peergos_crypto_JniTweetNacl.c" + + dependsOn buildNativeHeaders + +} diff --git a/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar deleted file mode 100644 index 9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45024 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 UgpPtD2z>DYYp}SJr5?)v0beu;=l}o! diff --git a/lib/junit-4.11.jar b/lib/junit-4.11.jar deleted file mode 100644 index aaf74448492932e95902b40a70c7a4da5bad4744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245039 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

^K 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 Zm9-%!eZV646_hI`4?(783XX*6{{TREv-ki2 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..06eb692 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'crypto' diff --git a/src/org/peergos/crypto/JniTweetNacl.java b/src/main/java/org/peergos/crypto/JniTweetNacl.java similarity index 100% rename from src/org/peergos/crypto/JniTweetNacl.java rename to src/main/java/org/peergos/crypto/JniTweetNacl.java diff --git a/src/org/peergos/crypto/TweetNaCl.java b/src/main/java/org/peergos/crypto/TweetNaCl.java similarity index 100% rename from src/org/peergos/crypto/TweetNaCl.java rename to src/main/java/org/peergos/crypto/TweetNaCl.java diff --git a/jni/org_peergos_crypto_JniTweetNacl.c b/src/main/jni/org_peergos_crypto_JniTweetNacl.c similarity index 100% rename from jni/org_peergos_crypto_JniTweetNacl.c rename to src/main/jni/org_peergos_crypto_JniTweetNacl.c diff --git a/jni/org_peergos_crypto_JniTweetNacl.h b/src/main/jni/org_peergos_crypto_JniTweetNacl.h similarity index 100% rename from jni/org_peergos_crypto_JniTweetNacl.h rename to src/main/jni/org_peergos_crypto_JniTweetNacl.h diff --git a/native/devurandom.c b/src/main/jnilibs/devurandom.c similarity index 100% rename from native/devurandom.c rename to src/main/jnilibs/devurandom.c diff --git a/native/devurandom.h b/src/main/jnilibs/devurandom.h similarity index 100% rename from native/devurandom.h rename to src/main/jnilibs/devurandom.h diff --git a/native/tweetnacl.c b/src/main/jnilibs/tweetnacl.c similarity index 100% rename from native/tweetnacl.c rename to src/main/jnilibs/tweetnacl.c diff --git a/native/tweetnacl.h b/src/main/jnilibs/tweetnacl.h similarity index 100% rename from native/tweetnacl.h rename to src/main/jnilibs/tweetnacl.h diff --git a/src/test/JSTest.java b/src/test/java/JSTest.java similarity index 99% rename from src/test/JSTest.java rename to src/test/java/JSTest.java index 0cf742b..21439cd 100644 --- a/src/test/JSTest.java +++ b/src/test/java/JSTest.java @@ -1,5 +1,3 @@ -package test; - import org.peergos.crypto.TweetNaCl; import javax.script.*; diff --git a/src/test/NativeTest.java b/src/test/java/NativeTest.java similarity index 99% rename from src/test/NativeTest.java rename to src/test/java/NativeTest.java index d4bc17e..c2f61fb 100644 --- a/src/test/NativeTest.java +++ b/src/test/java/NativeTest.java @@ -1,5 +1,3 @@ -package test; - import org.peergos.crypto.*; import java.util.*; diff --git a/src/test/TestRunner.java b/src/test/java/TestRunner.java similarity index 96% rename from src/test/TestRunner.java rename to src/test/java/TestRunner.java index 5508918..ccb0e07 100644 --- a/src/test/TestRunner.java +++ b/src/test/java/TestRunner.java @@ -1,5 +1,3 @@ -package test; - import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.peergos.crypto.TweetNaCl; From 6d0087fc17746b27acc525dc4799f949cd9aae44 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Wed, 25 Nov 2015 21:09:54 +0200 Subject: [PATCH 02/12] Reformat code, and start adding javadoc. --- build.gradle | 43 +- .../java/org/peergos/crypto/TweetNaCl.java | 1351 +++++++++++------ 2 files changed, 907 insertions(+), 487 deletions(-) diff --git a/build.gradle b/build.gradle index c2abdee..8b82b90 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,6 @@ group 'org.peergos' version '0.1' -apply plugin: "java" -apply plugin: 'com.google.osdetector' buildscript { repositories { @@ -14,6 +12,9 @@ buildscript { } +apply plugin: "java" +apply plugin: 'com.google.osdetector' + repositories { mavenCentral() @@ -54,17 +55,13 @@ test { } -dependencies { - testCompile 'org.hamcrest:hamcrest-core:1.3' - testCompile 'junit:junit:4.12' -} task buildNativeHeaders(type: Exec) { + def classpath = sourceSets.main.output.classesDir commandLine "javah", "-d", "build/jniheaders", "-classpath", "$classpath", "org.peergos.crypto.JniTweetNacl" - dependsOn classes } @@ -72,17 +69,41 @@ task buildNativeHeaders(type: Exec) { task compileNativeLib(type: Exec) { def jniPath; + def objPath; + if (osdetector.os.equalsIgnoreCase("linux")) { jniPath = "linux" - } - if (osdetector.os.equalsIgnoreCase("osx")) { + objPath = "-obuild/libtweetnacl.so" + + } else if (osdetector.os.equalsIgnoreCase("osx")) { jniPath = "darwin" + objPath = "-obuild/libtweetnacl.jnilib" + } else { + throw new RuntimeException("Only Linux & OSX builds are supported currently") } + commandLine "gcc", "-Wimplicit-function-declaration", "-fPIC", "-std=c11", "-I${System.env.JAVA_HOME}/include", "-I${System.env.JAVA_HOME}/include/${jniPath}", "-Isrc/main/jnilibs", "-Isrc/main/jni", "-shared", "-Ibuild/jniheaders", - "-o build/libtweetnacl.so", "src/main/jni/org_peergos_crypto_JniTweetNacl.c" + objPath, "src/main/jni/org_peergos_crypto_JniTweetNacl.c" - dependsOn buildNativeHeaders } + + +classes.dependsOn(compileNativeLib) +compileNativeLib.dependsOn(buildNativeHeaders) + + +test { + systemProperty "java.library.path", "${buildDir}" +} + + +dependencies { + testCompile 'org.hamcrest:hamcrest-core:1.3' + testCompile 'junit:junit:4.12' + +} + + diff --git a/src/main/java/org/peergos/crypto/TweetNaCl.java b/src/main/java/org/peergos/crypto/TweetNaCl.java index 81780b9..20fefbf 100644 --- a/src/main/java/org/peergos/crypto/TweetNaCl.java +++ b/src/main/java/org/peergos/crypto/TweetNaCl.java @@ -1,6 +1,7 @@ package org.peergos.crypto; -import java.security.*; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; import java.util.Arrays; import java.util.Random; @@ -9,7 +10,8 @@ * Released under GPL 2 */ -public class TweetNaCl { +public class TweetNaCl +{ public static final int crypto_auth_hmacsha512256_tweet_BYTES = 32; public static final int crypto_auth_hmacsha512256_tweet_KEYBYTES = 32; @@ -26,11 +28,28 @@ public class TweetNaCl { public static final int SECRETBOX_NONCE_BYTES = 24; public static final int SECRETBOX_OVERHEAD_BYTES = 16; public static final int HASH_SIZE_BYTES = 64; // SHA-512 - private static final int SECRETBOX_INTERNAL_OVERHEAD_BYTES = 32; + public static final int SECRETBOX_INTERNAL_OVERHEAD_BYTES = 32; - public static class InvalidSignatureException extends RuntimeException {} - public static class InvalidCipherTextException extends RuntimeException {} + public static class InvalidSignatureException extends RuntimeException + { + } + + public static class InvalidCipherTextException extends RuntimeException + { + } + /** + * The crypto_sign_keypair function randomly generates a secret key (if {@code isSeeded } is false , otherwise it + * assumes the key is already placed in sk) + * and a corresponding public key. This keys must be used for signing purposes. + * + * It puts the secret key into sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] + * and puts the public key into pk[0], pk[1], ..., pk[crypto_sign_PUBLICKEYBYTES-1]. + * + * @param pk + * @param sk + * @param isSeeded if false the secret key will be generated via {@link #randombytes(byte[], int)} + */ public static void crypto_sign_keypair(byte[] pk, byte[] sk, boolean isSeeded) { byte[] d = new byte[64]; @@ -38,47 +57,91 @@ public static void crypto_sign_keypair(byte[] pk, byte[] sk, boolean isSeeded) int i; if (!isSeeded) + { randombytes(sk, 32); + } crypto_hash(d, sk, 32); d[0] &= 248; d[31] &= 127; d[31] |= 64; - scalarbase(p,d, 0); - pack(pk,p); + scalarbase(p, d, 0); + pack(pk, p); - for (i=0;i < 32;++i)sk[32 + i] = pk[i]; + for (i = 0; i < 32; ++i) + { + sk[32 + i] = pk[i]; + } } - public static int crypto_box_keypair(byte[] y,byte[] x, boolean isSeeded) + /** + * The crypto_box_keypair function randomly generates a secret key (if {@code isSeeded } is false , otherwise it + * assumes the key is already placed in sk) and a corresponding public key. The keys + * must be used for boxing operations. + * It puts the secret key into x[0], x[1], ..., x[crypto_box_SECRETKEYBYTES-1] and puts + * the public key into y[0], y[1], ..., y[crypto_box_PUBLICKEYBYTES-1]. + * + * @param y + * @param x + * @param isSeeded + * @return + */ + public static int crypto_box_keypair(byte[] y, byte[] x, boolean isSeeded) { if (!isSeeded) - randombytes(x,32); - return crypto_scalarmult_base(y,x); - } - - public static int crypto_scalarmult_base(byte[] q,byte[] n) + { + randombytes(x, 32); + } + return crypto_scalarmult_base(y, x); + } + + /** + * The crypto_scalarmult_base function computes the scalar product of a standard group element and an + * integer n[0], ..., n[crypto_scalarmult_SCALARBYTES-1]. + * It puts the resulting group element into q[0], ..., q[crypto_scalarmult_BYTES-1] and returns 0. + * + * @param q + * @param n + * @return 0 + */ + public static int crypto_scalarmult_base(byte[] q, byte[] n) { return crypto_scalarmult(q, n, _9); } - public static byte[] crypto_sign(byte[] message, byte[] secretSigningKey) { + /** + * The crypto_sign function signs a message m[0], ..., m[mlen-1] + * using the signer's secret key sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and retuns + * the signed message + * + * @param message to be signed + * @param secretSigningKey key used for signing + * @return the signed message + */ + public static byte[] crypto_sign(byte[] message, byte[] secretSigningKey) + { byte[] signedMessage = new byte[message.length + TweetNaCl.SIGNATURE_SIZE_BYTES]; TweetNaCl.crypto_sign(signedMessage, message, message.length, secretSigningKey); return signedMessage; } - public static byte[] crypto_sign_open(byte[] signed, byte[] publicSigningKey) { + public static byte[] crypto_sign_open(byte[] signed, byte[] publicSigningKey) + { byte[] message = new byte[signed.length]; int res = TweetNaCl.crypto_sign_open(message, signed, signed.length, publicSigningKey); if (res != 0) + { throw new InvalidSignatureException(); + } return Arrays.copyOfRange(message, 64, message.length); } - public static byte[] crypto_box(byte[] message, byte[] nonce, byte[] theirPublicBoxingKey, byte[] ourSecretBoxingKey) { + public static byte[] crypto_box(byte[] message, byte[] nonce, byte[] theirPublicBoxingKey, byte[] ourSecretBoxingKey) + { if (nonce.length != BOX_NONCE_BYTES) - throw new IllegalStateException("Illegal nonce length: "+nonce.length); + { + throw new IllegalStateException("Illegal nonce length: " + nonce.length); + } byte[] cipherText = new byte[SECRETBOX_INTERNAL_OVERHEAD_BYTES + message.length]; byte[] paddedMessage = new byte[SECRETBOX_INTERNAL_OVERHEAD_BYTES + message.length]; System.arraycopy(message, 0, paddedMessage, SECRETBOX_INTERNAL_OVERHEAD_BYTES, message.length); @@ -86,17 +149,22 @@ public static byte[] crypto_box(byte[] message, byte[] nonce, byte[] theirPublic return Arrays.copyOfRange(cipherText, 16, cipherText.length); } - public static byte[] crypto_box_open(byte[] cipher, byte[] nonce, byte[] theirPublicBoxingKey, byte[] secretBoxingKey) { + public static byte[] crypto_box_open(byte[] cipher, byte[] nonce, byte[] theirPublicBoxingKey, byte[] secretBoxingKey) + { byte[] paddedCipher = new byte[cipher.length + 16]; System.arraycopy(cipher, 0, paddedCipher, 16, cipher.length); byte[] rawText = new byte[paddedCipher.length]; - int res = TweetNaCl.crypto_box_open(rawText, paddedCipher, paddedCipher.length, nonce, theirPublicBoxingKey, secretBoxingKey); + int res = TweetNaCl + .crypto_box_open(rawText, paddedCipher, paddedCipher.length, nonce, theirPublicBoxingKey, secretBoxingKey); if (res != 0) + { throw new InvalidCipherTextException(); + } return Arrays.copyOfRange(rawText, 32, rawText.length); } - public static byte[] secretbox(byte[] mesage, byte[] nonce, byte[] key) { + public static byte[] secretbox(byte[] mesage, byte[] nonce, byte[] key) + { byte[] m = new byte[SECRETBOX_INTERNAL_OVERHEAD_BYTES + mesage.length]; byte[] c = new byte[m.length]; System.arraycopy(mesage, 0, m, SECRETBOX_INTERNAL_OVERHEAD_BYTES, mesage.length); @@ -104,49 +172,84 @@ public static byte[] secretbox(byte[] mesage, byte[] nonce, byte[] key) { return Arrays.copyOfRange(c, SECRETBOX_OVERHEAD_BYTES, c.length); } - public static byte[] secretbox_open(byte[] cipher, byte[] nonce, byte[] key) { + public static byte[] secretbox_open(byte[] cipher, byte[] nonce, byte[] key) + { byte[] c = new byte[SECRETBOX_OVERHEAD_BYTES + cipher.length]; byte[] m = new byte[c.length]; System.arraycopy(cipher, 0, c, SECRETBOX_OVERHEAD_BYTES, cipher.length); - if (c.length < 32) throw new IllegalStateException("Cipher too small!"); - if (crypto_secretbox_open(m, c, c.length, nonce, key) != 0) throw new IllegalStateException("Invalid encryption!"); + if (c.length < 32) + { + throw new IllegalStateException("Cipher too small!"); + } + if (crypto_secretbox_open(m, c, c.length, nonce, key) != 0) + { + throw new IllegalStateException("Invalid encryption!"); + } return Arrays.copyOfRange(m, SECRETBOX_INTERNAL_OVERHEAD_BYTES, m.length); } private static byte[] _0 = new byte[16], _9 = new byte[32]; - static { + + static + { _9[0] = 9; } + private static final int GF_LEN = 16; - private static long[] gf0 = new long[GF_LEN]; - private static long[] gf1 = new long[GF_LEN]; static{gf1[0] = 1;} - private static long[] _121665 = new long[GF_LEN]; static{_121665[0] = 0xDB41; _121665[1] =1;} - private static long[] D = new long[]{0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203}, - D2 = new long[]{0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406}, - X = new long[]{0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169}, - Y = new long[]{0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666}, - I = new long[]{0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83}; + private static long[] gf0 = new long[GF_LEN]; + private static long[] gf1 = new long[GF_LEN]; + + static + { + gf1[0] = 1; + } + + private static long[] _121665 = new long[GF_LEN]; + + static + { + _121665[0] = 0xDB41; + _121665[1] = 1; + } - private static int L32(int x,int c) { return (x << c) | (x >>> (32 - c)); } + private static long[] D = new long[] { 0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, + 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203 }, D2 = new long[] { 0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, + 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406 }, X = new long[] { 0xd51a, 0x8f25, 0x2d60, + 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, + 0x2169 }, Y = new long[] { 0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, + 0x6666, 0x6666, 0x6666, 0x6666, 0x6666 }, I = new long[] { 0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, + 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83 }; + + private static int L32(int x, int c) + { + return (x << c) | (x >>> (32 - c)); + } public static int ld32(byte[] x, int off) { int u = x[off + 3] & 0xff; - u = (u<<8)|(x[off + 2] & 0xff); - u = (u<<8)|(x[off + 1] & 0xff); - return (u<<8)|(x[off + 0] & 0xff); + u = (u << 8) | (x[off + 2] & 0xff); + u = (u << 8) | (x[off + 1] & 0xff); + return (u << 8) | (x[off] & 0xff); } private static void st32(byte[] x, int off, int u) { int i; - for (i=0;i < 4;++i){ x[off + i] = (byte)u; u >>= 8; } + for (i = 0; i < 4; ++i) + { + x[off + i] = (byte) u; + u >>= 8; + } } - private static int vn(byte[] x, int xOff, byte[] y,int n) + private static int vn(byte[] x, int xOff, byte[] y, int n) { - int i,d = 0; - for (i=0;i < n;++i)d |= 0xff & (x[xOff + i]^y[i]); + int i, d = 0; + for (i = 0; i < n; ++i) + { + d |= 0xff & (x[xOff + i] ^ y[i]); + } return (1 & ((d - 1) >> 8)) - 1; } @@ -155,316 +258,432 @@ private static int crypto_verify_16(byte[] x, int xOff, byte[] y) return vn(x, xOff, y, 16); } - private static int crypto_verify_32(byte[] x,byte[] y) + private static int crypto_verify_32(byte[] x, byte[] y) { - return vn(x, 0, y,32); + return vn(x, 0, y, 32); } - private static void core(byte[] out,byte[] in,byte[] k,byte[] c,int h) + private static void core(byte[] out, byte[] in, byte[] k, byte[] c, int h) { - int[] w = new int[16],x = new int[16],y = new int[16],t = new int[4]; - int i,j,m; - - for (i=0;i < 4;++i){ - x[5*i] = ld32(c,4*i); - x[1+i] = ld32(k,4*i); - x[6+i] = ld32(in,4*i); - x[11+i] = ld32(k,16+4*i); + int[] w = new int[16], x = new int[16], y = new int[16], t = new int[4]; + int i, j, m; + + for (i = 0; i < 4; ++i) + { + x[5 * i] = ld32(c, 4 * i); + x[1 + i] = ld32(k, 4 * i); + x[6 + i] = ld32(in, 4 * i); + x[11 + i] = ld32(k, 16 + 4 * i); } - for (i=0;i < 16;++i)y[i] = x[i]; - - for (i=0;i < 20;++i){ - for (j=0;j < 4;++j){ - for (m=0;m < 4;++m)t[m] = x[(5*j+4*m)%16]; - t[1] ^= L32(t[0]+t[3], 7); - t[2] ^= L32(t[1]+t[0], 9); - t[3] ^= L32(t[2]+t[1],13); - t[0] ^= L32(t[3]+t[2],18); - for (m=0;m < 4;++m)w[4*j+(j+m)%4] = t[m]; + for (i = 0; i < 16; ++i) + y[i] = x[i]; + + for (i = 0; i < 20; ++i) + { + for (j = 0; j < 4; ++j) + { + for (m = 0; m < 4; ++m) + t[m] = x[(5 * j + 4 * m) % 16]; + t[1] ^= L32(t[0] + t[3], 7); + t[2] ^= L32(t[1] + t[0], 9); + t[3] ^= L32(t[2] + t[1], 13); + t[0] ^= L32(t[3] + t[2], 18); + for (m = 0; m < 4; ++m) + { + w[4 * j + (j + m) % 4] = t[m]; + } + } + for (m = 0; m < 16; ++m) + { + x[m] = w[m]; } - for (m=0;m < 16;++m)x[m] = w[m]; } - if (h != 0) { - for (i=0;i < 16;++i)x[i] += y[i]; - for (i=0;i < 4;++i){ - x[5*i] -= ld32(c,4*i); - x[6+i] -= ld32(in,4*i); + if (h != 0) + { + for (i = 0; i < 16; ++i) + { + x[i] += y[i]; + } + for (i = 0; i < 4; ++i) + { + x[5 * i] -= ld32(c, 4 * i); + x[6 + i] -= ld32(in, 4 * i); } - for (i=0;i < 4;++i){ - st32(out, 4*i,x[5*i]); - st32(out, 16+4*i,x[6+i]); + for (i = 0; i < 4; ++i) + { + st32(out, 4 * i, x[5 * i]); + st32(out, 16 + 4 * i, x[6 + i]); + } + } + else + for (i = 0; i < 16; ++i) + { + st32(out, 4 * i, x[i] + y[i]); } - } else - for (i=0;i < 16;++i)st32(out, 4 * i,x[i] + y[i]); } - private static int crypto_core_salsa20(byte[] out,byte[] in,byte[] k,byte[] c) + private static int crypto_core_salsa20(byte[] out, byte[] in, byte[] k, byte[] c) { - core(out,in,k,c,0); + core(out, in, k, c, 0); return 0; } - private static int crypto_core_hsalsa20(byte[] out,byte[] in,byte[] k,byte[] c) + private static int crypto_core_hsalsa20(byte[] out, byte[] in, byte[] k, byte[] c) { - core(out,in,k,c,1); + core(out, in, k, c, 1); return 0; } private static byte[] sigma = { 101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107 }; - private static int crypto_stream_salsa20_xor(byte[] c,byte[] m,long b,byte[] n, int nOff, byte[] k) + private static int crypto_stream_salsa20_xor(byte[] c, byte[] m, long b, byte[] n, int nOff, byte[] k) { - byte[] z = new byte[16],x = new byte[64]; - int u,i; - if (b == 0) return 0; - for (i=0;i < 16;++i)z[i] = 0; - for (i=0;i < 8;++i)z[i] = n[nOff + i]; + byte[] z = new byte[16], x = new byte[64]; + int u, i; + if (b == 0) + { + return 0; + } + for (i = 0; i < 16; ++i) + { + z[i] = 0; + } + for (i = 0; i < 8; ++i) + { + z[i] = n[nOff + i]; + } int cOff = 0; int mOff = 0; - while (b >= 64) { - crypto_core_salsa20(x,z,k,sigma); - for (i=0;i < 64; ++i) c[cOff + i] = (byte)((m != null ? m[mOff + i]:0)^ x[i]); + while (b >= 64) + { + crypto_core_salsa20(x, z, k, sigma); + for (i = 0; i < 64; ++i) + { + c[cOff + i] = (byte) ((m != null ? m[mOff + i] : 0) ^ x[i]); + } u = 1; - for (i = 8;i < 16;++i) { + for (i = 8; i < 16; ++i) + { u += 0xff & z[i]; - z[i] = (byte)u; + z[i] = (byte) u; u >>= 8; } b -= 64; cOff += 64; - if (m != null) mOff += 64; + if (m != null) + { + mOff += 64; + } } - if (b != 0) { - crypto_core_salsa20(x,z,k,sigma); - for (i=0;i < b; i++) c[cOff + i] = (byte)((m != null ? m[mOff + i]:0)^ x[i]); + if (b != 0) + { + crypto_core_salsa20(x, z, k, sigma); + for (i = 0; i < b; i++) + { + c[cOff + i] = (byte) ((m != null ? m[mOff + i] : 0) ^ x[i]); + } } return 0; } - private static int crypto_stream_salsa20(byte[] c,long d,byte[] n, int nOff, byte[] k) + private static int crypto_stream_salsa20(byte[] c, long d, byte[] n, int nOff, byte[] k) { - return crypto_stream_salsa20_xor(c,null,d,n, nOff, k); + return crypto_stream_salsa20_xor(c, null, d, n, nOff, k); } - private static int crypto_stream(byte[] c,long d,byte[] n,byte[] k) + private static int crypto_stream(byte[] c, long d, byte[] n, byte[] k) { byte[] s = new byte[32]; - crypto_core_hsalsa20(s,n,k,sigma); + crypto_core_hsalsa20(s, n, k, sigma); return crypto_stream_salsa20(c, d, n, 16, s); } - private static int crypto_stream_xor(byte[] c,byte[] m,long d,byte[] n,byte[] k) + private static int crypto_stream_xor(byte[] c, byte[] m, long d, byte[] n, byte[] k) { byte[] s = new byte[32]; - crypto_core_hsalsa20(s,n,k,sigma); + crypto_core_hsalsa20(s, n, k, sigma); return crypto_stream_salsa20_xor(c, m, d, n, 16, s); } - private static void add1305(int[] h,int[] c) + private static void add1305(int[] h, int[] c) { - int j,u = 0; - for (j=0;j < 17;++j){ - u += h[j] + c[j]; - h[j] = u & 255; - u >>= 8; - } + int j, u = 0; + for (j = 0; j < 17; ++j) + { + u += h[j] + c[j]; + h[j] = u & 255; + u >>= 8; + } } - private static int[] minusp = new int[] { - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252 - } ; + private static int[] minusp = new int[] { 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 252 }; - private static int crypto_onetimeauth(byte[] out, int outOff, byte[] m, int mOff, long n,byte[] k) + private static int crypto_onetimeauth(byte[] out, int outOff, byte[] m, int mOff, long n, byte[] k) { - int s,i,j,u; - int[] x = new int[17],r = new int[17],h = new int[17],c = new int[17],g = new int[17]; + int s, i, j, u; + int[] x = new int[17], r = new int[17], h = new int[17], c = new int[17], g = new int[17]; - for (j=0;j < 17;++j) - r[j]= h[j] = 0; - for (j=0;j < 16;++j) + for (j = 0; j < 17; ++j) + { + r[j] = h[j] = 0; + } + for (j = 0; j < 16; ++j) + { r[j] = 0xff & k[j]; - r[3]&=15; - r[4]&=252; - r[7]&=15; - r[8]&=252; - r[11]&=15; - r[12]&=252; - r[15]&=15; - - while (n > 0) { - for (j=0;j < 17;++j) + } + r[3] &= 15; + r[4] &= 252; + r[7] &= 15; + r[8] &= 252; + r[11] &= 15; + r[12] &= 252; + r[15] &= 15; + + while (n > 0) + { + for (j = 0; j < 17; ++j) + { c[j] = 0; - for (j = 0;(j < 16) && (j < n);++j) + } + for (j = 0; (j < 16) && (j < n); ++j) + { c[j] = 0xff & m[mOff + j]; + } c[j] = 1; - mOff += j; n -= j; - add1305(h,c); - for (i=0;i < 17;++i){ + mOff += j; + n -= j; + add1305(h, c); + for (i = 0; i < 17; ++i) + { x[i] = 0; - for (j=0;j < 17; ++j) - x[i] += h[j] * ((j <= i)? r[i - j] : 320 * r[i + 17 - j]); + for (j = 0; j < 17; ++j) + x[i] += h[j] * ((j <= i) ? r[i - j] : 320 * r[i + 17 - j]); } - for (i=0;i < 17;++i) + for (i = 0; i < 17; ++i) + { h[i] = x[i]; + } u = 0; - for (j=0;j < 16;++j){ + for (j = 0; j < 16; ++j) + { u += h[j]; h[j] = u & 255; u >>= 8; } - u += h[16]; h[16] = u & 3; + u += h[16]; + h[16] = u & 3; u = 5 * (u >> 2); - for (j=0;j < 16;++j){ + for (j = 0; j < 16; ++j) + { u += h[j]; h[j] = u & 255; u >>= 8; } - u += h[16]; h[16] = u; + u += h[16]; + h[16] = u; } - for (j=0;j < 17;++j)g[j] = h[j]; - add1305(h,minusp); + for (j = 0; j < 17; ++j) + { + g[j] = h[j]; + } + add1305(h, minusp); s = -(h[16] >> 7); - for (j=0;j < 17;++j)h[j] ^= s & (g[j] ^ h[j]); + for (j = 0; j < 17; ++j) + { + h[j] ^= s & (g[j] ^ h[j]); + } - for (j=0;j < 16;++j) + for (j = 0; j < 16; ++j) + { c[j] = 0xff & k[j + 16]; + } c[16] = 0; - add1305(h,c); - for (j=0;j < 16;++j)out[outOff + j] = (byte)h[j]; + add1305(h, c); + for (j = 0; j < 16; ++j) + { + out[outOff + j] = (byte) h[j]; + } return 0; } - private static int crypto_onetimeauth_verify(byte[] h, int hOff, byte[] m, int mOff, long n,byte[] k) + private static int crypto_onetimeauth_verify(byte[] h, int hOff, byte[] m, int mOff, long n, byte[] k) { byte[] x = new byte[16]; - crypto_onetimeauth(x, 0, m, mOff, n,k); + crypto_onetimeauth(x, 0, m, mOff, n, k); return crypto_verify_16(h, hOff, x); } - private static int crypto_secretbox(byte[] c,byte[] m,long d,byte[] n,byte[] k) + private static int crypto_secretbox(byte[] c, byte[] m, long d, byte[] n, byte[] k) { int i; - if (d < 32) return -1; - crypto_stream_xor(c,m,d,n,k); + if (d < 32) + { + return -1; + } + crypto_stream_xor(c, m, d, n, k); crypto_onetimeauth(c, 16, c, 32, d - 32, c); - for (i=0;i < 16;++i)c[i] = 0; + for (i = 0; i < 16; ++i) + { + c[i] = 0; + } return 0; } - private static int crypto_secretbox_open(byte[] m,byte[] c,long d,byte[] n,byte[] k) + private static int crypto_secretbox_open(byte[] m, byte[] c, long d, byte[] n, byte[] k) { int i; byte[] x = new byte[32]; - if (d < 32) return -1; - crypto_stream(x,32,n,k); - if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) != 0) return -1; + if (d < 32) + { + return -1; + } + crypto_stream(x, 32, n, k); + if (crypto_onetimeauth_verify(c, 16, c, 32, d - 32, x) != 0) + { + return -1; + } crypto_stream_xor(m, c, d, n, k); - for (i=0;i < 32;++i)m[i] = 0; + for (i = 0; i < 32; ++i) + { + m[i] = 0; + } return 0; } private static void set25519(long[] /*gf*/ r, long[] /*gf*/ a) { int i; - for (i=0;i < 16;++i)r[i]=a[i]; + for (i = 0; i < 16; ++i) + { + r[i] = a[i]; + } } private static void car25519(long[] /*gf*/ o, int oOff) { - for (int i=0;i < 16;++i){ - o[oOff + i]+=(1<<16); - long c=o[oOff + i]>>16; - o[oOff + (i+1) * (i<15 ? 1:0)] += c - 1 + 37 * (c-1) * (i==15 ? 1 : 0); - o[oOff + i]-=c<<16; + for (int i = 0; i < 16; ++i) + { + o[oOff + i] += (1 << 16); + long c = o[oOff + i] >> 16; + o[oOff + (i + 1) * (i < 15 ? 1 : 0)] += c - 1 + 37 * (c - 1) * (i == 15 ? 1 : 0); + o[oOff + i] -= c << 16; } } - private static void sel25519(long[] /*gf*/ p,long[] /*gf*/ q,int b) + private static void sel25519(long[] /*gf*/ p, long[] /*gf*/ q, int b) { - long t,c=~(b-1); + long t, c = ~(b - 1); int i; - for (i=0;i < 16;++i){ - t= c&(p[i]^q[i]); - p[i]^=t; - q[i]^=t; - } + for (i = 0; i < 16; ++i) + { + t = c & (p[i] ^ q[i]); + p[i] ^= t; + q[i] ^= t; + } } - private static void pack25519(byte[] o,long[] /*gf*/ n, int nOff) + private static void pack25519(byte[] o, long[] /*gf*/ n, int nOff) { - int i,j,b; - long[] /*gf*/ m = new long[GF_LEN],t = new long[GF_LEN]; - for (i=0;i < 16;++i)t[i]=n[nOff+i]; + int i, j, b; + long[] /*gf*/ m = new long[GF_LEN], t = new long[GF_LEN]; + for (i = 0; i < 16; ++i) + { + t[i] = n[nOff + i]; + } car25519(t, 0); car25519(t, 0); car25519(t, 0); - for (j=0;j < 2;++j){ - m[0]=t[0]-0xffed; - for(i=1;i<15;i++) { - m[i]=t[i]-0xffff-((m[i-1]>>16)&1); - m[i-1]&=0xffff; + for (j = 0; j < 2; ++j) + { + m[0] = t[0] - 0xffed; + for (i = 1; i < 15; i++) + { + m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1); + m[i - 1] &= 0xffff; } - m[15]=t[15]-0x7fff-((m[14]>>16)&1); - b=(int)((m[15]>>16)&1); - m[14]&=0xffff; - sel25519(t,m,1-b); + m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1); + b = (int) ((m[15] >> 16) & 1); + m[14] &= 0xffff; + sel25519(t, m, 1 - b); } - for (i=0;i < 16;++i){ - o[2*i]=(byte)t[i]; - o[2*i+1]=(byte)(t[i]>>8); + for (i = 0; i < 16; ++i) + { + o[2 * i] = (byte) t[i]; + o[2 * i + 1] = (byte) (t[i] >> 8); } } private static int neq25519(long[] /*gf*/ a, long[] /*gf*/ b) { - byte[] c = new byte[32],d = new byte[32]; - pack25519(c,a, 0); - pack25519(d,b, 0); - return crypto_verify_32(c,d); + byte[] c = new byte[32], d = new byte[32]; + pack25519(c, a, 0); + pack25519(d, b, 0); + return crypto_verify_32(c, d); } private static byte par25519(long[] /*gf*/ a) { byte[] d = new byte[32]; - pack25519(d,a, 0); - return (byte)(d[0]&1); + pack25519(d, a, 0); + return (byte) (d[0] & 1); } private static void unpack25519(long[] /*gf*/ o, byte[] n) { int i; - for (i=0;i < 16;++i) - o[i] = (0xff & n[2*i])+((0xffL & n[2*i+1])<<8); - o[15]&=0x7fff; + for (i = 0; i < 16; ++i) + { + o[i] = (0xff & n[2 * i]) + ((0xffL & n[2 * i + 1]) << 8); + } + o[15] &= 0x7fff; } - private static void A(long[] /*gf*/ o,long[] /*gf*/ a,long[] /*gf*/ b) + private static void A(long[] /*gf*/ o, long[] /*gf*/ a, long[] /*gf*/ b) { int i; - for (i=0;i < 16;++i)o[i]=a[i]+b[i]; + for (i = 0; i < 16; ++i) + { + o[i] = a[i] + b[i]; + } } - private static void Z(long[] /*gf*/ o,long[] /*gf*/ a,long[] /*gf*/ b) + private static void Z(long[] /*gf*/ o, long[] /*gf*/ a, long[] /*gf*/ b) { int i; - for (i=0;i < 16;++i)o[i]=a[i]-b[i]; + for (i = 0; i < 16; ++i) + { + o[i] = a[i] - b[i]; + } } private static void M(long[] /*gf*/ o, int oOff, long[] /*gf*/ a, int aOff, long[] /*gf*/ b, int bOff) { long[] t = new long[31]; - for (int i=0;i < 31;++i)t[i]=0; - for (int i=0;i < 16; ++i) for(int j=0; j <16;++j)t[i+j]+=a[aOff + i]*b[bOff + j]; - for (int i=0;i < 15;++i)t[i]+=38*t[i+16]; - for (int i=0;i < 16;++i)o[oOff + i]=t[i]; + for (int i = 0; i < 31; ++i) + { + t[i] = 0; + } + for (int i = 0; i < 16; ++i) + { + for (int j = 0; j < 16; ++j) + { + t[i + j] += a[aOff + i] * b[bOff + j]; + + } + } + for (int i = 0; i < 15; ++i) + { + t[i] += 38 * t[i + 16]; + } + System.arraycopy(t, 0, o, oOff, 16); car25519(o, oOff); car25519(o, oOff); } - private static void S(long[] /*gf*/ o,long[] /*gf*/ a) + private static void S(long[] /*gf*/ o, long[] /*gf*/ a) { M(o, 0, a, 0, a, 0); } @@ -473,117 +692,171 @@ private static void inv25519(long[] /*gf*/ o, int oOff, long[] /*gf*/ i, int iOf { long[] /*gf*/ c = new long[GF_LEN]; int a; - for (a=0;a < 16;++a)c[a]=i[iOff + a]; - for(a=253;a>=0;a--) { - S(c,c); - if(a!=2&&a!=4) M(c, 0, c, 0, i, iOff); + for (a = 0; a < 16; ++a) + { + c[a] = i[iOff + a]; + } + for (a = 253; a >= 0; a--) + { + S(c, c); + if (a != 2 && a != 4) + { + M(c, 0, c, 0, i, iOff); + } + } + for (a = 0; a < 16; ++a) + { + o[oOff + a] = c[a]; } - for (a=0;a < 16;++a)o[oOff + a]=c[a]; } - private static void pow2523(long[] /*gf*/ o,long[] /*gf*/ i) + private static void pow2523(long[] /*gf*/ o, long[] /*gf*/ i) { long[] /*gf*/ c = new long[GF_LEN]; int a; - for (a=0;a < 16;++a)c[a]=i[a]; - for(a=250;a>=0;a--) { - S(c,c); - if(a!=1) M(c, 0, c, 0, i, 0); + for (a = 0; a < 16; ++a) + { + c[a] = i[a]; + } + for (a = 250; a >= 0; a--) + { + S(c, c); + if (a != 1) + { + M(c, 0, c, 0, i, 0); + } + } + for (a = 0; a < 16; ++a) + { + o[a] = c[a]; } - for (a=0;a < 16;++a)o[a]=c[a]; } - private static int crypto_scalarmult(byte[] q,byte[] n,byte[] p) + /** + * This function multiplies a group element p[0], ..., p[crypto_scalarmult_BYTES-1] + * by an integer n[0], ..., n[crypto_scalarmult_SCALARBYTES-1]. + * It puts the resulting group element into q[0], ..., q[crypto_scalarmult_BYTES-1] and returns 0. + * + * @param q + * @param n + * @param p + * @return 0 + */ + private static int crypto_scalarmult(byte[] q, byte[] n, byte[] p) { byte[] z = new byte[32]; long[] x = new long[80]; int r; int i; - long[] /*gf*/ a = new long[GF_LEN],b = new long[GF_LEN],c = new long[GF_LEN], - d = new long[GF_LEN],e = new long[GF_LEN],f = new long[GF_LEN]; - for (i=0;i < 31;++i) + long[] /*gf*/ a = new long[GF_LEN], b = new long[GF_LEN], c = new long[GF_LEN], + d = new long[GF_LEN], e = new long[GF_LEN], f = new long[GF_LEN]; + for (i = 0; i < 31; ++i) + { z[i] = n[i]; - z[31] = (byte)((n[31]&127)|64); + } + z[31] = (byte) ((n[31] & 127) | 64); z[0] &= 248; - unpack25519(x,p); - for (i=0;i < 16;++i){ - b[i]=x[i]; - d[i]=a[i]=c[i]=0; - } - a[0]=d[0]=1; - - for(i=254;i>=0;--i) { - r=( (0xff & z[i>>3]) >> (i&7))&1; - sel25519(a,b,r); - sel25519(c,d,r); - A(e,a,c); - Z(a,a,c); - A(c,b,d); - Z(b,b,d); - S(d,e); - S(f,a); + unpack25519(x, p); + for (i = 0; i < 16; ++i) + { + b[i] = x[i]; + d[i] = a[i] = c[i] = 0; + } + a[0] = d[0] = 1; + + for (i = 254; i >= 0; --i) + { + r = ((0xff & z[i >> 3]) >> (i & 7)) & 1; + sel25519(a, b, r); + sel25519(c, d, r); + A(e, a, c); + Z(a, a, c); + A(c, b, d); + Z(b, b, d); + S(d, e); + S(f, a); M(a, 0, c, 0, a, 0); M(c, 0, b, 0, e, 0); - A(e,a,c); - Z(a,a,c); + A(e, a, c); + Z(a, a, c); S(b, a); - Z(c,d,f); + Z(c, d, f); M(a, 0, c, 0, _121665, 0); A(a, a, d); M(c, 0, c, 0, a, 0); M(a, 0, d, 0, f, 0); M(d, 0, b, 0, x, 0); - S(b,e); - sel25519(a,b,r); - sel25519(c,d,r); + S(b, e); + sel25519(a, b, r); + sel25519(c, d, r); } - for (i=0;i < 16;++i){ - x[i+16]=a[i]; - x[i+32]=c[i]; - x[i+48]=b[i]; - x[i+64]=d[i]; + for (i = 0; i < 16; ++i) + { + x[i + 16] = a[i]; + x[i + 32] = c[i]; + x[i + 48] = b[i]; + x[i + 64] = d[i]; } - inv25519(x, 32,x, 32); + inv25519(x, 32, x, 32); - M(x, 16,x, 16, x, 32); + M(x, 16, x, 16, x, 32); - pack25519(q,x, 16); + pack25519(q, x, 16); return 0; } - private static int crypto_box_beforenm(byte[] k,byte[] y,byte[] x) + public static int crypto_box_beforenm(byte[] k, byte[] y, byte[] x) { byte[] s = new byte[32]; crypto_scalarmult(s, x, y); - return crypto_core_hsalsa20(k,_0,s,sigma); + return crypto_core_hsalsa20(k, _0, s, sigma); } - private static int crypto_box_afternm(byte[] c,byte[] m,long d,byte[] n,byte[] k) + public static int crypto_box_afternm(byte[] c, byte[] m, long d, byte[] n, byte[] k) { return crypto_secretbox(c, m, d, n, k); } - private static int crypto_box_open_afternm(byte[] m,byte[] c,long d,byte[] n,byte[] k) + private static int crypto_box_open_afternm(byte[] m, byte[] c, long d, byte[] n, byte[] k) { return crypto_secretbox_open(m, c, d, n, k); } - private static int crypto_box(byte[] c,byte[] m,long d,byte[] nonce, byte[] theirPublicBoxingKey, byte[] ourSecretBoxingKey) + private static int crypto_box(byte[] c, byte[] m, long d, byte[] nonce, byte[] theirPublicBoxingKey, + byte[] ourSecretBoxingKey) { byte[] k = new byte[32]; crypto_box_beforenm(k, theirPublicBoxingKey, ourSecretBoxingKey); return crypto_box_afternm(c, m, d, nonce, k); } - private static int crypto_box_open(byte[] m,byte[] c,long d,byte[] n,byte[] y,byte[] x) + private static int crypto_box_open(byte[] m, byte[] c, long d, byte[] n, byte[] y, byte[] x) { byte[] k = new byte[32]; - crypto_box_beforenm(k,y,x); + crypto_box_beforenm(k, y, x); return crypto_box_open_afternm(m, c, d, n, k); } - private static int crypto_hash(byte[] out, byte[] m, int n) { + /** + * The crypto_hash function is designed to be usable as a strong component of DSA, RSA-PSS, + * key derivation, hash-based message-authentication codes, hash-based ciphers, and various other common applications. + * "Strong" means that the security of these applications, when instantiated with crypto_hash, is the same as the security + * of the applications against generic attacks. + * In particular, the crypto_hash function is designed to make finding collisions difficult. + * + * crypto_hash is currently an implementation of SHA-512. + * + * The crypto_hash function hashes a message m[0], m[1], ..., m[n-1]. + * It puts the hash into out[0], out[1], ..., out[crypto_hash_BYTES-1]. + * + * @param out + * @param m message + * @param n length of message + * @return + */ + private static int crypto_hash(byte[] out, byte[] m, int n) + { int[] hh = new int[8], hl = new int[8]; byte[] x = new byte[256]; int i, b = n; @@ -609,74 +882,58 @@ private static int crypto_hash(byte[] out, byte[] m, int n) { crypto_hashblocks_hl(hh, hl, m, n); n %= 128; - for (i = 0; i < n; i++) x[i] = m[b-n+i]; - x[n] = (byte)128; + for (i = 0; i < n; i++) + { + x[i] = m[b - n + i]; + } + x[n] = (byte) 128; - n = 256-128*(n<112?1:0); - x[n-9] = 0; + n = 256 - 128 * (n < 112 ? 1 : 0); + x[n - 9] = 0; jsts64(x, n - 8, (b / 0x20000000), b << 3); crypto_hashblocks_hl(hh, hl, x, n); - for (i = 0; i < 8; i++) jsts64(out, 8 * i, hh[i], hl[i]); + for (i = 0; i < 8; i++) + { + jsts64(out, 8 * i, hh[i], hl[i]); + } return 0; } - private static void jsts64(byte[] x, int i, int h, int l) { - x[i] = (byte)(h >> 24); - x[i+1] = (byte)(h >> 16); - x[i+2] = (byte)(h >> 8); - x[i+3] = (byte)h; - x[i+4] = (byte)(l >> 24); - x[i+5] = (byte)(l >> 16); - x[i+6] = (byte)(l >> 8); - x[i+7] = (byte)l; - } - - private static int[] jsK = new int[]{ - 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, - 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc, - 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, - 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, - 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, - 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, - 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1, - 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, - 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3, - 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, - 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483, - 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, - 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, - 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, - 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, - 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70, - 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, - 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df, - 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, - 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b, - 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, - 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, - 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, - 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, - 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, - 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, - 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb, - 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, - 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60, - 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, - 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, - 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, - 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, - 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, - 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, - 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b, - 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, - 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c, - 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, - 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 - }; - - private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { + private static void jsts64(byte[] x, int i, int h, int l) + { + x[i] = (byte) (h >> 24); + x[i + 1] = (byte) (h >> 16); + x[i + 2] = (byte) (h >> 8); + x[i + 3] = (byte) h; + x[i + 4] = (byte) (l >> 24); + x[i + 5] = (byte) (l >> 16); + x[i + 6] = (byte) (l >> 8); + x[i + 7] = (byte) l; + } + + private static int[] jsK = new int[] { 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd, 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, + 0x8189dbbc, 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019, 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118, + 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe, 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2, 0x72be5d74, + 0xf27b896f, 0x80deb1fe, 0x3b1696b1, 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694, 0xe49b69c1, 0x9ef14ad2, + 0xefbe4786, 0x384f25e3, 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65, 0x2de92c6f, 0x592b0275, 0x4a7484aa, + 0x6ea6e483, 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5, 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210, + 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4, 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725, 0x06ca6351, + 0xe003826f, 0x14292967, 0x0a0e6e70, 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926, 0x4d2c6dfc, 0x5ac42aed, + 0x53380d13, 0x9d95b3df, 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8, 0x81c2c92e, 0x47edaee6, 0x92722c85, + 0x1482353b, 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001, 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30, + 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910, 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8, 0x19a4c116, + 0xb8d2d0c8, 0x1e376c08, 0x5141ab53, 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8, 0x391c0cb3, 0xc5c95a63, + 0x4ed8aa4a, 0xe3418acb, 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3, 0x748f82ee, 0x5defb2fc, 0x78a5636f, + 0x43172f60, 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec, 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9, + 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b, 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207, 0xeada7dd6, + 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178, 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6, 0x113f9804, 0xbef90dae, + 0x1b710b35, 0x131c471b, 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493, 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, + 0x9c100d4c, 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a, 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817 }; + + private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) + { int[] wh = new int[16], wl = new int[16]; int bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7, bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7, @@ -701,13 +958,16 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { al7 = hl[7]; int pos = 0; - while (n >= 128) { - for (i = 0; i < 16; i++) { + while (n >= 128) + { + for (i = 0; i < 16; i++) + { j = 8 * i + pos; - wh[i] = ((m[j+0] & 0xff) << 24) | ((m[j+1] & 0xff) << 16) | ((m[j+2] & 0xff) << 8) | (m[j+3] & 0xff); - wl[i] = ((m[j+4] & 0xff) << 24) | ((m[j+5] & 0xff) << 16) | ((m[j+6] & 0xff) << 8) | (m[j+7] & 0xff); + wh[i] = ((m[j] & 0xff) << 24) | ((m[j + 1] & 0xff) << 16) | ((m[j + 2] & 0xff) << 8) | (m[j + 3] & 0xff); + wl[i] = ((m[j + 4] & 0xff) << 24) | ((m[j + 5] & 0xff) << 16) | ((m[j + 6] & 0xff) << 8) | (m[j + 7] & 0xff); } - for (i = 0; i < 80; i++) { + for (i = 0; i < 80; i++) + { bh0 = ah0; bh1 = ah1; bh2 = ah2; @@ -715,7 +975,6 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { bh4 = ah4; bh5 = ah5; bh6 = ah6; - bh7 = ah7; bl0 = al0; bl1 = al1; @@ -724,42 +983,53 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { bl4 = al4; bl5 = al5; bl6 = al6; - bl7 = al7; // add h = ah7; l = al7; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; // Sigma1 - h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32)))); - l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32)))); + h = ((ah4 >>> 14) | (al4 << (32 - 14))) ^ ((ah4 >>> 18) | (al4 << (32 - 18))) ^ + ((al4 >>> (41 - 32)) | (ah4 << (32 - (41 - 32)))); + l = ((al4 >>> 14) | (ah4 << (32 - 14))) ^ ((al4 >>> 18) | (ah4 << (32 - 18))) ^ + ((ah4 >>> (41 - 32)) | (al4 << (32 - (41 - 32)))); - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; // Ch h = (ah4 & ah5) ^ (~ah4 & ah6); l = (al4 & al5) ^ (~al4 & al6); - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; // K - h = jsK[i*2]; - l = jsK[i*2+1]; + h = jsK[i * 2]; + l = jsK[i * 2 + 1]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; // w - h = wh[i%16]; - l = wl[i%16]; + h = wh[i % 16]; + l = wl[i % 16]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -772,22 +1042,30 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = th; l = tl; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; // Sigma0 - h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32)))); - l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32)))); + h = ((ah0 >>> 28) | (al0 << (32 - 28))) ^ ((al0 >>> (34 - 32)) | (ah0 << (32 - (34 - 32)))) ^ + ((al0 >>> (39 - 32)) | (ah0 << (32 - (39 - 32)))); + l = ((al0 >>> 28) | (ah0 << (32 - 28))) ^ ((ah0 >>> (34 - 32)) | (al0 << (32 - (34 - 32)))) ^ + ((ah0 >>> (39 - 32)) | (al0 << (32 - (39 - 32)))); - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; // Maj h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2); l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2); - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -800,14 +1078,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = bh3; l = bl3; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = th; l = tl; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -834,38 +1116,49 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { al7 = bl6; al0 = bl7; - if (i%16 == 15) { - for (j = 0; j < 16; j++) { + if (i % 16 == 15) + { + for (j = 0; j < 16; j++) + { // add h = wh[j]; l = wl[j]; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; - h = wh[(j+9)%16]; - l = wl[(j+9)%16]; + h = wh[(j + 9) % 16]; + l = wl[(j + 9) % 16]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; // sigma0 - th = wh[(j+1)%16]; - tl = wl[(j+1)%16]; - h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7); - l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7))); + th = wh[(j + 1) % 16]; + tl = wl[(j + 1) % 16]; + h = ((th >>> 1) | (tl << (32 - 1))) ^ ((th >>> 8) | (tl << (32 - 8))) ^ (th >>> 7); + l = ((tl >>> 1) | (th << (32 - 1))) ^ ((tl >>> 8) | (th << (32 - 8))) ^ ((tl >>> 7) | (th << (32 - 7))); - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; // sigma1 - th = wh[(j+14)%16]; - tl = wl[(j+14)%16]; - h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6); - l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6))); + th = wh[(j + 14) % 16]; + tl = wl[(j + 14) % 16]; + h = ((th >>> 19) | (tl << (32 - 19))) ^ ((tl >>> (61 - 32)) | (th << (32 - (61 - 32)))) ^ (th >>> 6); + l = ((tl >>> 19) | (th << (32 - 19))) ^ ((th >>> (61 - 32)) | (tl << (32 - (61 - 32)))) ^ + ((tl >>> 6) | (th << (32 - 6))); - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -881,14 +1174,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah0; l = al0; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[0]; l = hl[0]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -900,14 +1197,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah1; l = al1; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[1]; l = hl[1]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -919,14 +1220,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah2; l = al2; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[2]; l = hl[2]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -938,14 +1243,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah3; l = al3; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[3]; l = hl[3]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -957,14 +1266,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah4; l = al4; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[4]; l = hl[4]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -976,14 +1289,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah5; l = al5; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[5]; l = hl[5]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -995,14 +1312,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah6; l = al6; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[6]; l = hl[6]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -1014,14 +1335,18 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { h = ah7; l = al7; - a = l & 0xffff; b = l >>> 16; - c = h & 0xffff; d = h >>> 16; + a = l & 0xffff; + b = l >>> 16; + c = h & 0xffff; + d = h >>> 16; h = hh[7]; l = hl[7]; - a += l & 0xffff; b += l >>> 16; - c += h & 0xffff; d += h >>> 16; + a += l & 0xffff; + b += l >>> 16; + c += h & 0xffff; + d += h >>> 16; b += a >>> 16; c += b >>> 16; @@ -1037,11 +1362,11 @@ private static int crypto_hashblocks_hl(int[] hh, int[] hl, byte[] m, int n) { return n; } - private static void add(long[][] /*gf*/ p/*[4]*/,long[][] /*gf*/ q/*[4]*/) + private static void add(long[][] /*gf*/ p/*[4]*/, long[][] /*gf*/ q/*[4]*/) { - long[] /*gf*/ a=new long[GF_LEN],b=new long[GF_LEN],c=new long[GF_LEN], - d=new long[GF_LEN],t=new long[GF_LEN],e=new long[GF_LEN], - f=new long[GF_LEN],g=new long[GF_LEN],h=new long[GF_LEN]; + long[] /*gf*/ a = new long[GF_LEN], b = new long[GF_LEN], c = new long[GF_LEN], + d = new long[GF_LEN], t = new long[GF_LEN], e = new long[GF_LEN], + f = new long[GF_LEN], g = new long[GF_LEN], h = new long[GF_LEN]; Z(a, p[1], p[0]); Z(t, q[1], q[0]); @@ -1064,14 +1389,16 @@ private static void add(long[][] /*gf*/ p/*[4]*/,long[][] /*gf*/ q/*[4]*/) M(p[3], 0, e, 0, h, 0); } - private static void cswap(long[][] /*gf*/ p/*[4]*/,long[][] /*gf*/ q/*[4]*/,byte b) + private static void cswap(long[][] /*gf*/ p/*[4]*/, long[][] /*gf*/ q/*[4]*/, byte b) { int i; - for(i=0; i < 4; i++) - sel25519(p[i],q[i],b & 0xff); + for (i = 0; i < 4; i++) + { + sel25519(p[i], q[i], b & 0xff); + } } - private static void pack(byte[] r,long[][] /*gf*/ p/*[4]*/) + private static void pack(byte[] r, long[][] /*gf*/ p/*[4]*/) { long[] /*gf*/ tx = new long[GF_LEN], ty = new long[GF_LEN], zi = new long[GF_LEN]; inv25519(zi, 0, p[2], 0); @@ -1081,44 +1408,45 @@ private static void pack(byte[] r,long[][] /*gf*/ p/*[4]*/) r[31] ^= par25519(tx) << 7; } - private static void scalarmult(long[][] /*gf*/ p/*[4]*/,long[][] /*gf*/ q/*[4]*/,byte[] s, int sOff) + private static void scalarmult(long[][] /*gf*/ p/*[4]*/, long[][] /*gf*/ q/*[4]*/, byte[] s, int sOff) { int i; set25519(p[0], gf0); set25519(p[1], gf1); set25519(p[2], gf1); set25519(p[3], gf0); - for (i = 255;i >= 0;--i) { - byte b = (byte)(( (0xff & s[sOff + i/8]) >> (i&7))&1); - cswap(p,q,b); - add(q,p); - add(p,p); - cswap(p,q,b); + for (i = 255; i >= 0; --i) + { + byte b = (byte) (((0xff & s[sOff + i / 8]) >> (i & 7)) & 1); + cswap(p, q, b); + add(q, p); + add(p, p); + cswap(p, q, b); } } - private static void scalarbase(long[][] /*gf*/ p/*[4]*/,byte[] s, int sOff) + private static void scalarbase(long[][] /*gf*/ p/*[4]*/, byte[] s, int sOff) { long[][] /*gf*/ q = new long[4][16]; - set25519(q[0],X); - set25519(q[1],Y); - set25519(q[2],gf1); + set25519(q[0], X); + set25519(q[1], Y); + set25519(q[2], gf1); M(q[3], 0, X, 0, Y, 0); - scalarmult(p,q,s, sOff); + scalarmult(p, q, s, sOff); } - private static long[] L = {0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, - 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0x10}; + private static long[] L = { 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10 }; private static void modL(byte[] r, int rOff, long[] x/*[64]*/) { long carry; - int i,j; - for (i = 63;i >= 32;--i) { + int i, j; + for (i = 63; i >= 32; --i) + { carry = 0; - for (j = i - 32;j < i - 12;++j) { + for (j = i - 32; j < i - 12; ++j) + { x[j] += carry - 16 * x[i] * L[j - (i - 32)]; carry = (x[j] + 128) >> 8; x[j] -= carry << 8; @@ -1127,29 +1455,54 @@ private static void modL(byte[] r, int rOff, long[] x/*[64]*/) x[i] = 0; } carry = 0; - for (j=0;j < 32;++j){ - x[j] += carry - (x[31] >> 4) * L[j]; - carry = x[j] >> 8; - x[j] &= 255; - } - for (j=0;j < 32;++j)x[j] -= carry * L[j]; - for (i=0;i < 32;++i){ - x[i+1] += x[i] >> 8; - r[rOff + i] = (byte)(x[i] & 255); - } + for (j = 0; j < 32; ++j) + { + x[j] += carry - (x[31] >> 4) * L[j]; + carry = x[j] >> 8; + x[j] &= 255; + } + for (j = 0; j < 32; ++j) + { + x[j] -= carry * L[j]; + } + for (i = 0; i < 32; ++i) + { + x[i + 1] += x[i] >> 8; + r[rOff + i] = (byte) (x[i] & 255); + } } private static void reduce(byte[] r) { long[] x = new long[64]; - for (int i=0;i < 64; i++) x[i] = 0xff & r[i]; - for (int i=0;i < 64;++i)r[i] = 0; + for (int i = 0; i < 64; i++) + { + x[i] = 0xff & r[i]; + } + for (int i = 0; i < 64; ++i) + { + r[i] = 0; + } modL(r, 0, x); } - private static int crypto_sign(byte[] sm, byte[] m,int n,byte[] sk) + /** + * The crypto_sign function signs a message m[0], ..., m[n-1] using the signer's secret key + * sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and puts the signed message into sm[0], sm[1], ..., sm[smlen-1]. + * It then returns 0. + * + * The maximum possible length smlen is n+crypto_sign_BYTES. + * The caller must allocate at least n+crypto_sign_BYTES bytes for sm. + * + * @param sm + * @param m + * @param n + * @param sk + * @return + */ + private static int crypto_sign(byte[] sm, byte[] m, int n, byte[] sk) { - byte[] d = new byte[64],h = new byte[64],r = new byte[64]; + byte[] d = new byte[64], h = new byte[64], r = new byte[64]; long[] x = new long[64]; long[][] /*gf*/ p/*[4]*/ = new long[4][GF_LEN]; @@ -1158,39 +1511,52 @@ private static int crypto_sign(byte[] sm, byte[] m,int n,byte[] sk) d[31] &= 127; d[31] |= 64; -// smlen[0] = n+64; - for (int i=0;i < n;++i)sm[64 + i] = m[i]; - for (int i=0;i < 32;++i)sm[32 + i] = d[32 + i]; + // smlen[0] = n+64; + System.arraycopy(m, 0, sm, 64, n); + System.arraycopy(d, 32, sm, 32, 32); + crypto_hash(r, Arrays.copyOfRange(sm, 32, sm.length), n + 32); reduce(r); scalarbase(p, r, 0); pack(sm, p); - for (int i=0;i < 32;++i)sm[i+32] = sk[i+32]; + System.arraycopy(sk, 32, sm, 32, 32); crypto_hash(h, sm, n + 64); reduce(h); - for (int i=0;i < 64;++i) x[i] = 0; - for (int i=0;i < 32; ++i) x[i] = 0xff & r[i]; - for (int i=0;i < 32; ++i) for(int j=0; j < 32; ++j) x[i+j] += (0xff & h[i]) * (0xff & d[j]); - modL(sm, 32,x); + for (int i = 0; i < 64; ++i) + { + x[i] = 0; + } + for (int i = 0; i < 32; ++i) + { + x[i] = 0xff & r[i]; + } + for (int i = 0; i < 32; ++i) + { + for (int j = 0; j < 32; ++j) + { + x[i + j] += (0xff & h[i]) * (0xff & d[j]); + } + } + modL(sm, 32, x); return 0; } - private static int unpackneg(long[][] /*gf*/ r/*[4]*/,byte[] p/*[32]*/) + private static int unpackneg(long[][] /*gf*/ r/*[4]*/, byte[] p/*[32]*/) { long[] /*gf*/ t = new long[GF_LEN], chk = new long[GF_LEN], num = new long[GF_LEN], den = new long[GF_LEN], den2 = new long[GF_LEN], den4 = new long[GF_LEN], den6 = new long[GF_LEN]; - set25519(r[2],gf1); - unpack25519(r[1],p); + set25519(r[2], gf1); + unpack25519(r[1], p); S(num, r[1]); M(den, 0, num, 0, D, 0); - Z(num,num,r[2]); - A(den,r[2],den); + Z(num, num, r[2]); + A(den, r[2], den); - S(den2,den); - S(den4,den2); + S(den2, den); + S(den4, den2); M(den6, 0, den4, 0, den2, 0); M(t, 0, den6, 0, num, 0); M(t, 0, t, 0, den, 0); @@ -1201,15 +1567,24 @@ private static int unpackneg(long[][] /*gf*/ r/*[4]*/,byte[] p/*[32]*/) M(t, 0, t, 0, den, 0); M(r[0], 0, t, 0, den, 0); - S(chk,r[0]); + S(chk, r[0]); M(chk, 0, chk, 0, den, 0); - if (neq25519(chk, num) != 0) M(r[0], 0, r[0], 0, I, 0); + if (neq25519(chk, num) != 0) + { + M(r[0], 0, r[0], 0, I, 0); + } S(chk, r[0]); M(chk, 0, chk, 0, den, 0); - if (neq25519(chk, num) != 0) return -1; + if (neq25519(chk, num) != 0) + { + return -1; + } - if (par25519(r[0]) == ( (0xff & p[31]) >> 7)) Z(r[0],gf0,r[0]); + if (par25519(r[0]) == ((0xff & p[31]) >> 7)) + { + Z(r[0], gf0, r[0]); + } M(r[3], 0, r[0], 0, r[1], 0); return 0; @@ -1218,16 +1593,28 @@ private static int unpackneg(long[][] /*gf*/ r/*[4]*/,byte[] p/*[32]*/) private static int crypto_sign_open(byte[] m, byte[] sm, int n, byte[] pk) { int i; - byte[] t = new byte[32],h = new byte[64]; - long[][] /*gf*/ p = new long[4][GF_LEN],q = new long[4][GF_LEN]; + byte[] t = new byte[32], h = new byte[64]; + long[][] /*gf*/ p = new long[4][GF_LEN], q = new long[4][GF_LEN]; -// mlen[0] = -1; - if (n < 64) return -1; + // mlen[0] = -1; + if (n < 64) + { + return -1; + } - if (unpackneg(q,pk) != 0) return -1; + if (unpackneg(q, pk) != 0) + { + return -1; + } - for (i=0;i < n;++i) m[i] = sm[i]; - for (i=0;i < 32;++i) m[i+32] = pk[i]; + for (i = 0; i < n; ++i) + { + m[i] = sm[i]; + } + for (i = 0; i < 32; ++i) + { + m[i + 32] = pk[i]; + } crypto_hash(h, m, n); reduce(h); scalarmult(p, q, h, 0); @@ -1237,27 +1624,39 @@ private static int crypto_sign_open(byte[] m, byte[] sm, int n, byte[] pk) pack(t, p); n -= 64; - if (crypto_verify_32(sm, t) != 0) { - for (i=0;i < n;++i)m[i] = 0; + if (crypto_verify_32(sm, t) != 0) + { + for (i = 0; i < n; ++i) + { + m[i] = 0; + } return -1; } - for (i=0;i < n;++i)m[64 + i] = sm[i + 64]; -// mlen[0] = n; + for (i = 0; i < n; ++i) + { + m[64 + i] = sm[i + 64]; + } + return 0; } - private static SecureRandom getStrongCSPRNG() { - try { + private static SecureRandom getStrongCSPRNG() + { + try + { return SecureRandom.getInstanceStrong(); - } catch (NoSuchAlgorithmException e) { + } + catch (NoSuchAlgorithmException e) + { throw new IllegalStateException(e); } } private static Random prng = getStrongCSPRNG(); - private static void randombytes(byte[] b, int len) { + private static void randombytes(byte[] b, int len) + { byte[] r = new byte[len]; prng.nextBytes(r); System.arraycopy(r, 0, b, 0, len); From f3e2a433486437b6314116a7ba258b01e2f80458 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Wed, 25 Nov 2015 22:04:32 +0200 Subject: [PATCH 03/12] more javadoc --- .../java/org/peergos/crypto/TweetNaCl.java | 68 +++++++++++++++++-- 1 file changed, 63 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/peergos/crypto/TweetNaCl.java b/src/main/java/org/peergos/crypto/TweetNaCl.java index 20fefbf..bd520b9 100644 --- a/src/main/java/org/peergos/crypto/TweetNaCl.java +++ b/src/main/java/org/peergos/crypto/TweetNaCl.java @@ -111,7 +111,7 @@ public static int crypto_scalarmult_base(byte[] q, byte[] n) /** * The crypto_sign function signs a message m[0], ..., m[mlen-1] - * using the signer's secret key sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and retuns + * using the signer's secret key sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and returns * the signed message * * @param message to be signed @@ -125,6 +125,14 @@ public static byte[] crypto_sign(byte[] message, byte[] secretSigningKey) return signedMessage; } + /** + * Verifies the signed message using the public key of the signer. + * + * @param signed the signed message + * @param publicSigningKey the public key of the signer + * @return the verified message + * @throws InvalidSignatureException if the signature is invalid + */ public static byte[] crypto_sign_open(byte[] signed, byte[] publicSigningKey) { byte[] message = new byte[signed.length]; @@ -277,14 +285,18 @@ private static void core(byte[] out, byte[] in, byte[] k, byte[] c, int h) } for (i = 0; i < 16; ++i) + { y[i] = x[i]; + } for (i = 0; i < 20; ++i) { for (j = 0; j < 4; ++j) { for (m = 0; m < 4; ++m) + { t[m] = x[(5 * j + 4 * m) % 16]; + } t[1] ^= L32(t[0] + t[3], 7); t[2] ^= L32(t[1] + t[0], 9); t[3] ^= L32(t[2] + t[1], 13); @@ -806,6 +818,16 @@ private static int crypto_scalarmult(byte[] q, byte[] n, byte[] p) return 0; } + /** + * Elliptic curve Diffie-Hellman key exchange on Curve25519 hashing the result with HSalsa. + * + * This yields a 32 byte shared key in k. + * + * @param k shared key will be stored inside . the capacity of k must be at least BOX_SECRET_KEY_BYTES + * @param y other party public key + * @param x our secret key + * @return 0 + */ public static int crypto_box_beforenm(byte[] k, byte[] y, byte[] x) { byte[] s = new byte[32]; @@ -823,11 +845,34 @@ private static int crypto_box_open_afternm(byte[] m, byte[] c, long d, byte[] n, return crypto_secretbox_open(m, c, d, n, k); } - private static int crypto_box(byte[] c, byte[] m, long d, byte[] nonce, byte[] theirPublicBoxingKey, - byte[] ourSecretBoxingKey) + /** + * The crypto_box function encrypts and authenticates a message m[0], ..., m[d-1] + * using the sender's secret key sk[0], sk[1], ..., sk[crypto_box_SECRETKEYBYTES-1], + * the receiver's public key pk[0], pk[1], ..., pk[crypto_box_PUBLICKEYBYTES-1], + * and a nonce n[0], n[1], ..., n[crypto_box_NONCEBYTES-1]. + * The crypto_box function puts the ciphertext into c[0], c[1], ..., c[d-1]. + * + * It then returns 0. + * + * The caller must ensure, before calling the C NaCl crypto_box function, + * that the first SECRETBOX_INTERNAL_OVERHEAD_BYTES bytes of the message m are all 0. + * Typical higher-level applications will work with the remaining bytes of the message; + * note, however, that d counts all of the bytes, including the bytes required to be 0. + * + * The caller function must ensure that the first SECRETBOX_INTERNAL_OVERHEAD_BYTES bytes of the ciphertext c are all 0. + * + * @param c padded ciphertext + * @param m padded message + * @param d length of message + * @param nonce nonce + * @param pk receiver public key + * @param sk sender secret key + * @return 0 + */ + private static int crypto_box(byte[] c, byte[] m, long d, byte[] nonce, byte[] pk, byte[] sk) { byte[] k = new byte[32]; - crypto_box_beforenm(k, theirPublicBoxingKey, ourSecretBoxingKey); + crypto_box_beforenm(k, pk, sk); return crypto_box_afternm(c, m, d, nonce, k); } @@ -1487,7 +1532,7 @@ private static void reduce(byte[] r) } /** - * The crypto_sign function signs a message m[0], ..., m[n-1] using the signer's secret key + * The crypto_sign function signs a message m[0], ..., m[n-1] using the sender's secret key * sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and puts the signed message into sm[0], sm[1], ..., sm[smlen-1]. * It then returns 0. * @@ -1590,6 +1635,19 @@ private static int unpackneg(long[][] /*gf*/ r/*[4]*/, byte[] p/*[32]*/) return 0; } + /** + * The crypto_sign_open function verifies the signature in sm[0], ..., sm[n-1] using the + * signer's public key pk[0], pk[1], ..., pk[crypto_sign_PUBLICKEYBYTES-1]. + * Then it puts the message into m[0], m[1], ..., m[mlen-1] + * + * The caller must allocate at least n bytes for m. + * + * @param m output + * @param sm signed message + * @param n length of sm + * @param pk signer public key + * @return 0 if the signature is ok, -1 otherwise + */ private static int crypto_sign_open(byte[] m, byte[] sm, int n, byte[] pk) { int i; From 1efab6e182e02f6d3d6de59939a0b00fb323d0da Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 10:24:19 +0200 Subject: [PATCH 04/12] - add gradle wrapper - make it possible again to build with make --- Makefile | 31 ++-- build.gradle | 6 +- gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 52266 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 164 ++++++++++++++++++ gradlew.bat | 90 ++++++++++ lib/hamcrest-core-1.3.jar | Bin 0 -> 45024 bytes lib/junit-4.11.jar | Bin 0 -> 245039 bytes .../java/{ => org/peergos/crypto}/JSTest.java | 4 +- .../{ => org/peergos/crypto}/NativeTest.java | 5 +- .../{ => org/peergos/crypto}/TestRunner.java | 3 +- 11 files changed, 287 insertions(+), 22 deletions(-) create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 lib/hamcrest-core-1.3.jar create mode 100644 lib/junit-4.11.jar rename src/test/java/{ => org/peergos/crypto}/JSTest.java (98%) rename src/test/java/{ => org/peergos/crypto}/NativeTest.java (99%) rename src/test/java/{ => org/peergos/crypto}/TestRunner.java (91%) diff --git a/Makefile b/Makefile index 5b0c9fd..52f98e7 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,4 @@ -CP = `find lib -name "*.jar" -printf %p:` -JAVA_BUILD_OPTS = -g -source 1.8 -target 1.8 -cp .:$(CP) +JAVA_BUILD_OPTS = -g -source 1.8 -target 1.8 CP_SPACE = . .PHONY: def @@ -8,30 +7,34 @@ def: clean compile jni test .PHONY: clean clean: rm -fr build - rm -f libtweetnacl.so - rm -f Test.jar .PHONY: compile compile: - mkdir -p build - javac $(JAVA_BUILD_OPTS) -d build `find src -name \*.java` + mkdir -p build/classes/main + + javac $(JAVA_BUILD_OPTS) -cp ".:lib/*" -d build/classes/main `find src/main -name \*.java` + javac $(JAVA_BUILD_OPTS) -cp ".:lib/*:build/classes/main" -d build/classes/main `find src/test -name \*.java` + + .PHONY: test test: compile echo "Name: TweetNaCl.java Tests" > def.manifest - echo "Main-Class: test.JSTest" >> def.manifest + echo "Main-Class: org.peergos.crypto.JSTest" >> def.manifest echo "Build-Date: " `date` >> def.manifest echo "Class-Path: " $(CP_SPACE)>> def.manifest - jar -cfm Test.jar def.manifest \ - -C build org -C build test + + + jar -cfm build/Test.jar def.manifest -C build/classes/main org + rm -f def.manifest + .PHONY: jni jni: compile - javah -jni -classpath build -d jni org.peergos.crypto.JniTweetNacl - gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Inative -Ijni -shared -o libtweetnacl.so jni/org_peergos_crypto_JniTweetNacl.c + javah -jni -classpath build/classes/main -d build/jniheaders org.peergos.crypto.JniTweetNacl + gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Isrc/main/jni -Isrc/main/jnilibs -Ibuild/jniheaders -shared -obuild/libtweetnacl.so src/main/jni/org_peergos_crypto_JniTweetNacl.c .PHONY: jni_test -jni_tests: def - java -Djava.library.path=. -cp "Test.jar:lib/*" test.TestRunner - +jni_tests: def + java -Djava.library.path=build -cp "build/Test.jar:lib/*" org.peergos.crypto.TestRunner \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8b82b90..904efcc 100644 --- a/build.gradle +++ b/build.gradle @@ -101,9 +101,9 @@ test { dependencies { - testCompile 'org.hamcrest:hamcrest-core:1.3' - testCompile 'junit:junit:4.12' -} + testCompile files('lib/hamcrest-core-1.3.jar') + testCompile files('lib/junit-4.11.jar') +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..b5166dad4d90021f6a0b45268c0755719f1d5cd4 GIT binary patch literal 52266 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 z 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..84e12a3 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Thu Nov 26 10:22:04 EET 2015 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-2.9-bin.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=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. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 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=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..8a0b282 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@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 + +@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 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 Windowz 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. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +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 + +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/lib/hamcrest-core-1.3.jar b/lib/hamcrest-core-1.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a GIT binary patch literal 45024 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 UgpPtD2z>DYYp}SJr5?)v0beu;=l}o! literal 0 HcmV?d00001 diff --git a/lib/junit-4.11.jar b/lib/junit-4.11.jar new file mode 100644 index 0000000000000000000000000000000000000000..aaf74448492932e95902b40a70c7a4da5bad4744 GIT binary patch literal 245039 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

^K zQ25&gyEz|zX_0a`Dvs24(6cvNRNKMNcm0H**UE|`)_mQ0pnSgu;O}mPXjdOv6vAH(aWN2V;BKjvscPkBo<>_Ln zZl2hYw}G6=K-`E z0*4W)6)!IO^qsip%}+f(86+%GO`QpknI=$`w!|z|rl^A060>-CB_SFyBn*$)@WE8f z4SPAim)nlv&O{~7eu*||x8pE|)$Q^PID~*%tLb>!;n^a^QmT5kSuhn(c+X48S|?FITnlza<@Y{pr)5^65_PX zLk&N};H~A7o3_S9F7br%?{<%bDC&BMDDn!#!$IY0Y~=IDbq+&gRJLrfQ{`R>;T5h3 zX0*!Oi}ZVo!Fh)i${srlsa?C6&3KMa(K*^C8BwXI%fyWv$uTa*hoi$HeS&stW&|NHW_ho7E zCO}GXF2H0g3fqftn(8j?%S~NqxaV462;N&}NZqQaA>*%I|5Ebt(i?YM55=SK^(PZLQ36(thrmea4`uK zi24R#Lt@nqv|#x~=u^J5gzfCMVby|^>|F2|V$(?T|Ei{Z$qCyzfQR}l-;?(c8_2sw zuk1}}U%bKURvXa2rO_=}aBi}|M80Q-^&fF|`EuNaH<8(ZxMIHC+np!SPqze}v3>#1 zRlSji{pwd%`4n@?z)hwBO_LroNOrbzRT%hr8zi93sh2%}65r*MBGaz}Y2{`TPD4fT zp16#P2p=29zH24+hVS>GKJaxzgsaJyu~j=#1qviPl(Pz|bGbUX569cE3O9a^z8DNw zxEr5>1BqrL5HEC03dQ3EQ7MpSSqL>_S*Z2GqDX9oT42#n4+PYAcAiM2BD)9~GxG^1 zJBjd^Y4MBMh40;kT5wdWc;_?O!l%z_WMv&H!RRGCQUgVArBkk*6|W?}DGu6}~bmxvJD_EgM6m8r`Hs z@TUz$7xxP_IYFBqIdIvOi@QFkk};5!R9DtRd{^byOr&7j(hH^PCjkNFl`%e}(N!Ms z>YQ1%pMcm9G(d7_TY*w#Bg2lxE@cn?3ZE7I-+Cwnd4&Av)cGPU~hJd zGeiuUjzG-z8VgiY zu#KgwM2BCcs!U0YNG+LX8-ALSYA2KE6=x0g(A)u8eRgq)3pe+dXGyN==b3im$l`qQ zzE^UxU3RgxMjMz01tROR46FW=0(RuL1jx=poK17N0p-}$#DTa&q~6^0RgG1A&ZIjNZq@T&b(Mq+Io6g!hVHzh@!=^g!&IeUAq6>EbQ;7Un z*b^oXprZK|dK&hNjFSsGW|MI483v@>@LZUcZQ&Hh3);&X8DT@%xExFTv3%1Jk=Oc2 z3j)07UK-CfrYp(-YKIKh zef3dmE=!jL0T-7a4yOhxRZ1JA<-|WVy=T`>Ec33dPU?Ev zgNi|)duns6Ehg{!mPZ)h5v;Vtg=>t{7k+2vaL0NU++bwhB~J;%^12HW8Ucxj0wXpA zSd4DKd9?=DUV=>u0ZBHd5HDm%jwKcJuJKYr;Z*o;fgB@;PW9A?Hwfg{T~f#)afB$J z9hd};IE-8Ab1Yt94^)UdYN57n{h3cfhOjd)FGCmJg68k&iO<%PvZE(&f^h|{p(QzA zs2{TcMk5TaBKdH|`*1~K(G}sqe&>0azO6~RakhT9oQ{YDevr@UlD@uox#9CFJ3E}V z&`BRE6jm5^JTAw{OBvc1w#XEic!H!^o1RoYTwtF3ZQHYFticiJrWK8VEsdRKdJCnc zvE3fT*T~@wbHXEakm74QqJW;-z-!I2$rh{nu{Sp>*YLeN*2ACIY~Lz7+BzcgH^j>$ z2RggL=B7k~J2Iy`bAoGBG5O)Ir*aADLXb;M`Aiq5JEuuf-z^hj_tI%Cm0Ze}*Q<;x zC*qDd$Bx@g8nrm%DT_Lc6h%$>!@8X0J#fooH6gDobY*7CKUm$0NIR#7RxXU3gFhpB zw`FoU)m9ehQq_c+EGdekoNu3kbX0hADzO`4r`u+~Tyv*M9Q$7~o#rr+YM8KB6jy8D zPaxel+k=e`(z1+M3mlwfv0vSu zrRDLTy19c9fSwUlpOJi@4Oy?sCd`v(@k(*L1AI7%c=hBtj7cWKRfN@N&X@)`s+I7d zDZ5qi2>rJt^i}VoUd!pqyC}!RTP8+iAN-p>ys-5s?`$c?-Ryd(1;K zOGmp-CP9&719>Fg&`y_dyh>3}!I!X%ib>E)aZKw2Fn0!wA;xVyTGRZH%Okw*5Sm(w z@NO*WX^{RWRGJ)dx!-+V@kdRt-6WjX9JpiB%Rpx8)4vVBV5ClmkO4AF9{_WJ|9=eV z|M^cVncAA#8UeJNcIJQG*_5NEt&XjV@+k+AfdB@fP@yWKl}{pweWPX_k0zO5^o>-a z=8-K#7$aLo!&&e~&_Bs~tfVt_0+4i0TxSoGC=_e*9ZvFjKYc#=%74DSxAA|Q%uoD9 zaOHmM5&w&IlKch{ZIRV}*AR$tvTCBx$Uj>EKDF}}V&eQ|P(aX84M}523n*`&S+u6A z$iiUY*9nl>qkvcH0SfR0G{|71z@&OJ{jBnjL#cpEK_{&$Pb;%#hakg5a{N01%C@h;M_-9zB^Ui5&44lUO5iPUx_c9? zJ)@H=lq&J+l1$j(&vTA z8`dhf+n7?oT4%A_#OkZMZKEu$nsA0T{8lOVKw7#^n%^nNy2Ru{^RJjM6y_U^Z$LwC zT}4xOQx@Pv;S1;Kh!SlzBUmU^1?q`Wt>-np#}nLEL^9oBh{$zD8jAWD9!C4pJgm1! zVIXf=$gL)?UD-^?E4Pgib;+YEFT=mu$a;YdTNRK_dHGGqT5lHvSQ>&G19g$vo@9LB zdmR~w9IpM@>6IN^b2L{=FANsy#Dp7F*Cz?zSxV;fYzk50Aao6bqzXhUxgUsIvU}TqfOt(`G6G$M+cZ8a(u+r*is^hdOYCB+Ov+|^{6v84FT z)pqE)SHKlI%?v3S3L&dikoelYomtA<8@tBfx5A02#3e z_}p{ZS7`xbOv~UBCvu94AH&QUyO{ZjUyM;k8xQ)=K@{Ur$&+m!T2RW6g_j?Fck~Yr=0bKp|%OfP`Z{W3b=iOJn{D5wX6ruX$um7Ql=?D z%lbc5mH)4M_it+dzmHuT{%hJgM@3p5SrO&)s@dg~AqDCOy@E)5uS@wpGDu2fJ}4Rj z8l6m-S55E&CKG%}O@tV-ZUy7jW`|)xM4_YMX2wfV^obn#5hWYlF`yO8`TRcZ?DyyM z30D9w2}1savd0FW>y0hc#D-0nx`l5c?Fy5xkN3qNC!mHDe!F)LlGR_CPCX z@1oyZ&qB!P52%1K%+6_@bB0F2|HRjBWD@cjC(~|0Be8zAt@_L`v^)~QU*^sj2C16a z>`>k^3cKjsbDdBImKo7&sjv`J%B`40S5oYDMjD@{GM4Ux4XeuJYY)jbYzie57_-Zv zhC8Gi?)qz`o_Dj_gtg}Em)@;pXq@LKmy6izKB<5XcfnDF4eYKda$#TeGd_4 zw`OiGZGEaa9Wld#6jZpOMC&K)dL+ys9nq1mqnUr9J1dR zO(qI?roZ-0QYG0=TM~;vvQT%-gkN~vNAQqX5^3EcCIR*a;@v_uxGBgDCnO!T(%{Dp z9HNLNy$PS-crD=@8ti-}f|Dv?XXco%pfH*A1eVc2jy<7!uei4beRwI;nVR)x_zzr< zXfmDxh}`{expQ02#WzGZoYHLTYqX+FMuKa^TeukIfXF1}1k)={<$%w2f-5 zk~6L0D>yv>wraVKJg5aCv+jb(<aVOuC5%faj?l%R~i+)LFT$ z4s_G8Kkh#%e(h!9pS=~voxwisX9jaS0JZcZfhF{dM%TVU(p$cb48-fE3SKGp)E&VF z+xJi&k%xJZ`clT_U$}LKoi&K%jJ*qMO1-AmA9&I{0w1um8@sFi^~lmJUzI(stCV|5 zBe&|8e_CT$HUmk`UB&}gn|5zZjMeN2TQg950G^6Gskzo|C9)^KU_cXn2q~fObdla} zM5|rlV_>d)QeC2qm1%w>=9y%X}AwzT#Tms_GD zh4eT}Su#;itKb9#_$lSQ|g%j@?MPFVLeru0r1(UM?Bb4vWl5V6`z zt+X94ZSm036rUQQ0;YxW8FOGNtK?`L7T7hJ-R7`XtFvPaONX`6nZ25-Q|$?v8a~3R zXBAVX6!`JI^B2&Wqe7_4Hk|>1!l0Rni8;9#3jWKr(CD|y892x~Dyw$;dsi&C1bwRm zx9MQ_U7WO#^OU4L&!#_;uCfL!IPJ>i=$^&t#UAKU;mnE{M;WOyo(W;L8HtA4ttz#D zB6>H*aM7p8Rmm_B zX(?l_`xA()d0Ovj(>hTdVnNkR!`(Wv<|xw~ymE9dp*@GF+lQT6XPY`u+v7)7QFN|( zFV=58hsu6y8DV?cPA$pviMvOJ7J*yjgBCj*GScViOY1g?*+jRFjn)HxB6WXR%=Rc| z?VkA7V>Es#N5_C2M@T=n$6M_>Y)Y7$XGK5arM;{ll1ENF7_o8AK8043UdQ%HJ5gl} zA`@+#PKxr>_57a5uJ**KA25&XWU-qf#N?TD)q;8QwMHAToxeZUStNDB7j$N0$XdZU zu}>}to9_@Usu#Vg^OcPA<)c8oZ%i`_7&voCxih-GZt zGE7{DXy*2N>M}+C6{A~qs&}-q zjd*o~C)Lp=gHDWyVaHAAj%)@WIIiMNT`+Zw&ya=|51AqO*fiQ?i9t*Oj2V(6W6V4|#__19fb{it_IDIG- zp*`G5x>&fMJK+q}zco_eKro_qA+119ynf@Q3 zpuZ){e}5TcRMwOLy;)vdAml_yf~p_VDyi`x!=Q?2j)DpKVkQjih@aDJNGrXred>3~7d|p6yi7qJCpYrso4!LAfc-ww67PESIf zyH=EuR2}^pLZ!szOY_{+ux|4~Q0fsHx}9Bh7vwE*Ae>)^3LKLD$D-I2xb!Ah5u&EyD!Xr$kA1p=Wnz~A9PlpbeLx^A$q=FY<= z=a=GP%nC_=ON&c;|6C##pBm=R+`2mvxm#Cx^x_b*z1&p8f>OHf9)BQCH;-FmCvs`hIM0lNlh=#kK{AH{?e={#UQ!KZ4o*< zhR-j={*339>j3WB5F=Pq-7x7I4f5<9r(5S}NwC-zba{-5j-s5Mxfr;S)g0KmSdV zYybUuw-(?|A%G>sEdPCs`A>KHuVuuBMmDBO|K(r*2sTx1-H}C6{7NCWOuBqWdcUDI z&FFvJ(+5Po3=OLKm=T3`2L=U_B3q&?ImkltvpZ~wfUz$sFfm3Lr4F*o z`UKv6>m5`Fv&+B`oBL%8te=G;JTyqrt2lsLqRHlvR=~e&sFDV=fXZLashvPxj4YBn z0&Ff?bq7;=SfC>bBi%8c`kwWBQMc|m`P>fU_=L;nH3=8*hwYVQ+tuK1fipWo^G^9a znn~v&{~^o(>fSB)+!GkQT1u{A^}c=QBP%fMD;fPA%@mjO z6rSJJDeF>qbgv2Ghb2zVZRHqe>ZBZRiVipVh#7EM$3?|DQ}*5*ONa2v_}n> z`gyA>mWYD?@b5x;Mw%Znnj1pxR2Z)RdPZAz-1!BM<_AF5XAn!1+pRZH7~^@Mn5Xb3 zKxHduE{4)0y2v)P8#y?y8gtk?O)ER` zn|)PQE|!>fcxAP>cwTU4a!+=?9Y;-Vmg&W7?+SzGo*%hn_R zU4>EERu_Cii?tg6Y?OMT2!Zby-Z9J%BI$wI@Kjk`uFB7(f?9t56Xnt_F>EfoAuo_u zcn7aWIepGeiZ9sRve^hbd)S*LkCVVN?^yHg%|VSgk2pq1uW%>15!0TiWn09nC(!tb z?+u&bso9fzbS;+P;N=_sc}RtN63I2P3jP$a8*;|uD_G+@1LTP%wWjj#le0KCJ!9Fy zr+P`S9L3ML_s_Yhe@PyZY)ix zQ;RCpM)dniL7t?9UbCOb%Y0y8!w3WTx*|UFf`bM?Ba5z*0(iUWaI71H47Z$0mPX0# zxXRhl><&D`e&&Ao$lkh`Cuj9gAU_uqZf%f=gfAU3f~sKZEPl%W`$$SU=h4*_K;*;$ zcuxNc+xrVM;Gh2gcej@{bTPI7th@hb4L(KXA9|-6n=Trm30b?yAgxFj?LO=8N0qFi z5eU(5%{Jj~V{UD0TSzbLy|4RG5vk=7w`=&OJWX2y-}_i(&CO=A@2A{*Ii3B!UO$lq z(CCfYqbV_SB%~EgLlR<%h>xo=uEZE=k2Bmh2YfN1@FYAalqZQH<46xNjJz{BYd2UY zj14@)S~Ullx;?`rnD`q+7ZP<3VRAqR_UWxtY_DvrHpn!QK($vUX{Q(m-3_8WOb1NA z1t+%AT+w7?{&s3Kfo@e+a<>ktx%)%q9u3vTGo^xiwJbBEs{ekUd3Ip zRF@}Xd!IipN)+hSR5PD}E@Z#TDt=NG*4}@W#GZiWa{8%Gv(>CSKvm;dXM;{UNtHg( z9Yi;XN^%oY@CBIe5g$oLvkucdgtJs#-c$sYZy*R0m9lUVXOe_XsoT7U1 zJWeQxU66#0a&?XHDo_pigmh6ZIxSd&5qbbVT%1*}UnCUDJEIQK!`c`H#}LDhiTs&5 z7bh4PM%c)Xu&tbi3}KwakKpJ1LtM?y6#<~$ zy6=d;qLv^omGn_S(QulP6k_C;=jd+u1tNV!NIuR`4jRZtUl2`jR?awF+OSipp;#0D9xIwWhdO5DMjxNCUM6-QsY+<%iUFQ9*N>{nMYe zoy~^xAW6x4svbaJFC&<=h0J^b@JAj6tyN7jasBFxA zGTS9t{ZE?Xy>-`-GPC6U37k8rt)_B8%MQIYIWlX~20MosGVdp?MG=>4q)_S5 zMZy2wzZjyQiO&9YTbp$SRRLe3Hhq|GL0)!zxUtbsqx`VWeYv2cN*S$) zKtC*0e_G>j!g!hLZQuJhzU^7H209#5YXB$kk`V1U5_$*3B0Ld@@)06^ZUSZB2ZF=V zga6t-XA(Qhw!&8jLdF(ZU%;C940-UwpWB`WV|=n5gB^s+54pKYZ@;jXN1mR9#5NXZ z8;&R8e!$qv^grPm{__fEH;+?r!WAlrAFlY)t^e?EWBtdK#ly7##|i%bKTvuv}tf5QO=M-W=!L`|LDt|F73u=wDD&#u9t2P_UY)oQJ9?4&r@@k%}fs8gOR37WqzIL=;^Q@O-10t?**Unq}Zpw9`=AvPPot9aRgAR=EKRMba5b8K!`xx|C zZEwfzS34~y z)4kw;xnG<0k7|Q;qIjHASWYN44p%J2`hvqSlUFmtsLGJdlHMtCs0xlWy^5d+dR*A| z6~;^zoc9Vum;Qc~dC(QM$`q_32WMu&36XGq)6YgTQgm(uz2<}kwal_P0t|cNpf|vQ zN99qx$Cyh&VWlym9Co(XpX$3{1(8NVdu7V!v`}cl6eb)}j(uS!CJZ@)Vq@VE%M|Q4 zyv{h8os1q4#%Q8M+}zmF8qZ_8!zRakK6|x&>W-;Sxt*EVb2hIZ8 zt)Y!0YQ7aL6$%E0DR;;rRFO1ltU;e*9KnarH3)ghm>j*9+i z_PxZL5m@a@{j*3wDUXI+%nBAsk85w9cUE%p$f zI__ClF2~0~I72ge?}P#%CH_Eei~_bRsY$|y{iT=azwJDL^-D(A zCd^Ty?aUN-#~d|q6;U`07AzjMdUeD;x$fiG8Bm71+9=>otA=r_PPLqr@~$+SJ1@Xt zJRKV`9FnsK$>E^l<1X|!t6uN(ZGA_3NGeT|gBHGIdbEj@iBp^Y)jK-^bhl`>-^XL8 zlqLO5qmOEcW?6wCnaqBKnZ?{^sGsry*GZ0USB=I!i=r9ac>Md8pcmUa?y%!6OvOS( zwl=zxnc^VXkcdUp+eW*yDuu7iF>{hoS6ax`{3fq8leyJ3Bz6PcLd`Y-8_iYVwb3 zS7}17|8F3p0jmn4$ZPaY#M#yM;riKADBT~12mLS%ltrder8RLgPDK&W{J-Luwu7!a zf3X3|W;yR1&t`ghdAZ*&j0OgI&}541EeytfF%697sxXx^sYJF&`%T%VQIGIBbX==j z<+@!=#9!IsQjs>>yZ5v@TrTi!z?W>Gbt+jg6vLec5o#w%Wru8)&YE|hC7M?rx3q8U zYKeVpWk7Mwn^X8&6WDnRP1GuUcjxcItxWy>TBvI%p)Z<<;l!8%Bj%hRV(2U}2Ghjv zy7kD{eB{r*O07=0&C_iQARqG{VQUy-R7s295-cVw#njM^zm7ajcA}rBawH}M+{RV7 z7Z!r4(N-525XQJ-IgG|IP7ZCX2xBS)pV2p%<6dsT98Z5@1*&iooeB$*=+oqUHM||{ z#~Tkj9V|(~RufCcF~4E_v5ZDw|DhYtF3G06y}j=B&0AzY*8-`?B~xOyL&y!)I0PzK zVL!vK0){49xdTF$Kzc4Iq{cli6sLf)pR#db6j{n3?8XLvs^|M(PnV^=NNNsnr?3M~ z_&=cFTr5ogPRtQ8bTL%0x3v2w$4^ccu!2OUoxS}#J-&~6H4>P zD0r<$r+0UT9-^F5&y6bfQg`=H$sAdcgWXF}rJDJd6xIGctv`Nxk{ROSUwk_6c?b|a z(X=je15f%_#^fu8xn0q^eRyC$|7so2C|tV*fOR+l*7*-LU_-*X+g4Ls<- z*B?MPLh8CmX3%l6Xu5F$bxjRQz4rWt8rKG|&W;{Zq(bkrB*sc_U#E0JTElmrI6tv7MNJvwaC1HU8Aut(FsdPJ4qW~9M#$!bbJ97nieh8<@NbH|5i}^N13*O} z0SQnU`0t;le;Md+NI_du0ANYk(%jC_#r2=tFlyAb-H`#Rw9*clOgW_=w6;q>1m;+1 z2U`_N76A)rp=k+F5U9`NVJ;V0Dw0(C-a)%}u7|qlyI%sVEfIC2j*{R%!Sw%NpSw@X zkf%x78ob6kZ<$})`+Mj4lKFr9nK1p<^THMl12dNmLmZO9U^e7}My{G}2*Oyl&)ATJ zn)J$G_e+PkjC1aAK;zeep$5edMMahAz3$;trxug0#D`fjxsE)3d*$O z#}IRv+)dU81%|L^TN`r{ozGTFa=Gik0)ck%n32M|YQ`2nZc1?3(x8-?P}gQNXL27}6*fAzeJsz}1`;&Eh%xCO5Pq zikUqMNyd)zj&}Z5^2E)H0W2c#O(I^(H8$3o9Z#dbJ zQn4^X{oHS6xLHc5lrVH<9z411xUIS6m){?L7p1n2!8}y7c-%9$F+_=K&e|QM&e|Qe z!fGS>Gm_n-&T5es)_qqN)EBTudT@-JwL7$p)n+gTt2JMFh#PBrh?i=6;f9ZI_J)ve z{)Tawbu-4Bg(p%N3vT~AY~BxNfQ+(t-1?@}P%3*TigZqIS0cR#sKOoM97#QoMf1hX7{N-90r0H~;@-D8mjjeqjcX@q<=IHb>?OawrU5`b1*QQeQ z(!KPBh?2gx_=?2(xJdd*yUXiAev_k!AbTc3?8S?qo2IS;|?S`oS<1Tnr7N<=@7dCbg z!Q1=Vt#&Ov{MA^{k%50$@6<+4Pei%#om^?*9+`;0{g=^v39St`X^JA4SU~3-Ul`&h zX#op&9||$za2V74;IwH;#7lFp>W zMkOYPda+jn?ZzZS8S#)1#7kpMH8i{5M*?b0;8!#ta7le*6A@BG{KTAFa<`dy3!r$D zbT&@BKI#t~xqEcmLNpTpyqONB=D*DhTvw49m}7pwr2Bpew?hgbbZVf1T)5lHak3Tl zud@EEGqP0AC@Ht5JZ~UTgKJN{IyohP<4koiiyV#qVPMI$wt(CHBULFkyyR{}^1(q9 zOH{`gQ3!PysQAV~6)U2LxOT1R<2JBqiV88;;_&VEg%czhdMo%7?&~Npz@A_g%Ldjb zyaCSNy53&l5-?gn*BSBy$L0mr7CjO7oV1x*Lrh$LGmmhyPeJ_Doe;@MWE#X%m!6W8 zJ<$bZ(uALxb98V+q8C}Fo$q)OgV~JU*e|`vvXOYxN21i6*?;78RZMRRoKva8E1oH5 z5&0-09OL&l=vh3R6AFq=#|Tb3`xGMaph7TCFOAd?B+(I4QEK%+h_$@uV#m@?`*hDu zH@e=CE0pOM9U;F_X$+CU9YI}O^`F_s;>f(t-e3JcRVsfk8V*{TQ5)Ci*gec=q;R2< z`|M@Lfo#cebb_p3cg|f8wt;l~q^g9H8&!P!w`!ng<}(j9AgYiC%VX0r;~({pHaQFfDTW7YGZkSD|Q`G!Bv z(S<;d2NS_NnP;E5BUAQY_;WB0>%zz+u1?o%s1V{DD|WQOW0~Jnt%hfof$LeDD^-+nF*twXz%3sI&`9(hoGmJ&4 z0c5dg%JBilnfXmV`@*QuoG-0G)w#0JZ>)iR+tw(j$wB53HD=SfH+qP}nwr$&tv~6dlZC2X0U1>Y3D)Woo@9y1WzvrAD z{q^|~W5n+#?q}UA=9=r8epmN!2Q9R#>i`|3Z?-yJ?Lp*-khp0RN?tD+#qL;cy?^U_ z6&$!5;egM768QOVEUo{~#>GYDuOGlv_@C^F*ng6>DBNspTeR5yI=OeTDfeU*AC{)74s$W z68mTR_X|=`sG3>B+Lso7(T9kaL6eBMiarJ)_Y?=Yg;5qO3GK;*$;ZxvRfu_tU!Zz3 zrO3xI6-*kdS%ua5i1$uUiKid7ESPrlSp4RAbY#Rb26e z_$6~O_9j?zWNMCf?D`=HP_OcpCR8A>zxl86awwdo-`9U{pU3;$nAv~_92_WI@cd5> zxq~Z^JZ)uUE9Bw=><|Beq5jXwQLc)O%|F~2$r2tYZPOvv7gfE=*(EJDsENu*r0Ph< zXe1y|{u!hu%tlQr?i8g0GW|u6@1Vbx4sz`v%}`Jq8Jn73fJEHGsgI9`LySOdd{e{y zv~_z6qrT1~m#H4)ng&BkcEIn9F8r5Y*V!|Qu21|Sc3*w@qu#Q) z6a4dk%P5pEJgER`?rD9|6|I;`&MPHcI{=Tv`<_ck{XRQ)MPQYa!2j7LZ+Vz1-h?6$ zjGT4824HUS;e~{ghXCmJYe(5LJtt?6HZ0c&SgWCkUgmv&Y2ZkgEIvqi7LbXrgtZtMZR*9 z(rBY;3H!}|RfVXb8{NCW8{XYDZ`E%N}=oJoaF5SXuwA zBM9zbmssQS^4bL+^&jPgINfN;kh2mj_74oh0Ofwsc6TrJFfB5g=q)5=7AMFkBmrvQ@MN4O2Dl~$n)7T#S#=bM;q`x6@JZ>$A8jwi>i`^M837{}Y-bVFnaCfbdv#BU`t>lT&Jx z{z_8F)^#Q&$3_t-3M14k4-40%4$dJE6-JCb;}}n{ZNCI;@{R8{BL4?E#p&AEhzR`v z-NAha_GX&#hM>;jOI(ARIKB-(yRR+u678_GIA2r^^Lv9E6`?(NW#Rma)Ri~0ba~(~ z%GY6*(o`Odu^WO%urcPh7_z)te2P` zB3Z^~lq?-t2$nxRA%mo4T!>;yT892?w?<0zlNucc{$#=Tl-?MpbTnaZAja9k8il=a zGOEEoYwmvO8m|z1>nFVntX1RIe)twy9O;{cmZJDPkJ|qENd<;oA%Q5x2i@C15l}xs z@9eA9i`=?j_@iM=3!eW|v=jUgnMEiKG;9zf0_d9^(43M)P#c*j0-4mDK7WG6DR+`J zbJiS%md^k8I%3V^;rWk3y$+P1xc+y)+&^Vd6}`Wzh;8E;_9k}KO5MgrloSko=_@Lg z=shPA7T0dmef1qvduFavAQ9~~Wr*e5t@_c?ezO3Hd2!LE3 zNCjfA`0_$4_IJj^5ybo1LRUY@rr{D`zNE2gommnl$LJe~y8cX=|2plF#o!$&t0E0f zs2EV#?ELHNvbzQ0-qREl6zx-LS%@t!=`SgGl$qvt@}zM=?bQ6qk`sBfMcx}6obck9 zNa0RSlB$uCTv=fc=@Dw_L4*+}@$n{1g=^g~$g=B3q-fXxF)LHGvzJ}5 z#k~H)aa&ObRr`Z;w5uk7f8rbX zi3qEwgOlnBPJSj0xW?h%s26$y+!hSL(~%3@Q2B3`M?i0oC@6b+uU;8 z#spdW{v#PB#-eqY6#~>XIhX5XD$}7i(`9C=ZdbtnE9Q_g9yU_CoB^cKi6&aB-kR6<2BZtFk2iR9@Hco-DrEVQTluS${%3-4IJv!!S*IZ_oZEQBR z)ni#@HInQxg&h+y%&1IB?d#H(2f2*^6LC{@HY6pRAcUJd9w2TnIrMzPTdl8Q8)UZ{ z0S0Hy_<`;>o3%FU$+5A~$Xr1AC^(b)oYtWz!PTtg&AoLKopIzWU?;Fxt-7SyZ^Rjy zVRU3SaiH-I#RQ|fQd$Z(1at!`Bj-bvEizJBN6FPxw~U_&Bu8mM8^`R(GE817Pf|c^7@Rikki>U*Npn$5IPAZ~kdL$v*5pyy$kVi0p>`?IV^M3U+XQ(!5sIOKeA|Gk2G% zqdKI)g)5x|M@t5thk2DP-cEA+^FP z$cNV6JhvNZT;RhlO0w=+*%u-8y z`odRE<8(#_Rb}GPiReyWPNZa%TZ7{2vU^z0VW|R4uA@=~rx8YnRL( z9Nn+OP9q5K1iudi=CEXVxDOE=NBWLDug!_92$R;QF1Nc*_+PwcxO`^EKmObh1b~e7 zpNa_FJ7=gR{P^aa5q&5E-t#Ki|K%r|c2{vhVEpl6aIn~x+AUO+(^mB1B4--rl5;B0 zf#D8&Wn95%k)4ZDz3b{RJ?L0tl@8Tl#g*pPAuNYXT)Cx=+vX!{Z{J{;)?w>+oh%A3 z*=y^vD<`95vmLkTD7y4*UXiJ)EPLxHqo1+>XGW=(cXBFoxeeCQTR(162`ic1Wj2{M znk)hneqGi~H-Kfom-HJZWhT2p?J9c*++Uy{RpnQw7H zy6oa@e#Emr$JW3M(}88Wbu6uFU_E&U=n~w;E>(Ov56+ovy>Q(iKb~D~*Ko_*X}~qf zHtKkKitglXs8ugsHL{8puDj!tuw{6|xzCInV^er(pX%k+g!2Z>+yXh!BYeh&?F*^0 z0U~9VH{6>!QCCtgPR&Q=W-ihC`ss;ceAnLhvUzK>1(?Aojh7@4iPKbKIe^k=slF_Xx9M8?PYpao;Akc`4ygUBGmMTio=Zj8i_(_&_t$q zCC*7^YQxwQ)Ym3_ao?zWe~6&rc%qJ`Q}+(6I`OLCfgLT#O5y@ujw{BkYrF1m;7>wqzW$@4Qm%KTRxl7wsM2k?O zp>8v_Uz9nkEDe4@ZTEE5rYT}U>zG)F`7}oS4rSJr^Vo5REw(eU2rjpe^d4@7hgJ>9 zE62&>Wieq$t=!ukGp}tCyq^wL7!Tcr&%T|47p!kr!lE$0tI{^M=dUmss-+!zu;|`4v9h5|^0O=njG&^y5;lTdY+ntBPM< zd&GC9%_;0!`LOmegnmW-T?B@ThulnZpE_1f*~%+?#3`Rrj^(^t=t~vp@*?COSCLFW z(MusL;d51ds&>@uCyCX^(M2r#EuE08VbYp$XgA=Z_W`@?>xc4>{IL&sb|Dedd+-Cf zXK_-2Hb#oLOcao&oa0;iD??9&MImkI&@>y8b&+o82>x+kNQWTTP=`qQ6>;AyacoKq z7%|6bRMIhd;`Hn5i_>Hq+#dVP;w5nntRkk=7{cX9U7ORdzcmHE9n&Ucz@`8XXj%T> z7ovYUuWHnQk&;S?AMkXvHPKtBU`WyGR+DCvdWZ}yx}+77B|%^TbdwEwYuD^un_n3Y zXfRD;iULOnfYvLsoTeJVuaN8Q<9U;pnGWW?EG)k+UgGn=0O}EiG5;82A`TW{rZCnL z0`D-u05A#>vlug(k!U|CR0^V_8e3_a8Wrx^8E_Y4c9JrkRM7>!OXaM?;JBy;H$3e! zxzbU5S~h8yOiDF6?^5=9$!iJ;lk?T%VFg0uH&~P&vz$GTbpOU4fZ3u7yw`4BhoQT; zWQ`VecWrB&AtSCT3)^cxXUzJQ3C~;}OHuHKV-p#MOyRjZ}`1Jf|GRM=0RpqNz51zW=&e zjhP*t&LdAHrlgBl)!c(s-_>o>bWHzrF6lT)R3p~pz35XMZQQHbiBxvcf1P?AJAV-z z4=%t27gZl6x~a@uGtT}ebiNKBPw%6zCf)>XuqXYhAqW#&90IwSEB z+MlFTEZy&)g^Jd{x)}j^56ZUdWISKR2V4M51`wwU@pZh}Z8cZYmD`oBp{^}`oK>CK z2FhacDoBcz-LZQ74}Z{B&b+x+50H?EO;qI$;ajpzlZ+-DSR(3}V&3nvsX0csrH`n1 zG%BGtjcx8&qN`q#XqCH`ryEkarqkb><>et0{EKN6F6MEl?iD=bI;BKA#s zTo}(dam9sFSc&4-ec6JW^M+m}^nXjG2z3%gdjH#SP_e5t%meuDT?4}#|0nX#|7#=g zR~s;`@#eE>j`!I;LnNVIS0d5bTp`mm(~!)q*BQ&EM`X8}Naw_oR5l4+T3It>Z8n~I z#7bAsgo*PqZFtNtjzv@7e?SUjGs(maz1hBxuy^yNw~ll&Dw)^q&n@WqL$^0Dam?Um zl;h*i1lpIbI|U@YjDtxor0op*qHQk_3{lp0hMSYgZ?E@4Nb&nl^6x}Q3VVaTFGwH? zQJS%5jQkV%3U|j=y}q(Tqjym9uTt`_RK31geg5RZvj;9nzW4@vlNjK>kpux+KUj!+ zgX^L!N1J>*#^Bzw0_&pJf*c%c9iU&)ISw|7-4A%a_R<{qy!wOXddmMG0}(Jy5O0by z%DY)z)EX>V1<})(3dyq7iW>d`Ag@Z0r@5xVF^m9WE7SN&*0e|l=eR60lE)Xp^;(k6 zgC4ZUa}t%BkBn4is7_!XVq`W(3AuCPYyo&Q%SZN)c+2xok@Of$9 zk4*d3TaF5>*F{%Zi{#H6^%&6rplJCo;H(wgk#lBr>ke9Bx;yG{ezI(=>*~xe3g6LA z3LFHWY`4B6|M3TqG*t3c4;0TZ0p3Gg$Lh@$ms3@VJfxW&5l5R;&e?ZsF^2#rM00 zqDhMf6%8w59QH=|FVTX`vQ(4om{jJL-YN^XN5a00*jxKB(&6XhRHgY+-3Uc`tdb`b zPO~@&D&TZf#Vj-)wezBUFDu-LjSY8JI{n$%O}RaD435P8??WK}DW$LDa@lw9?u+L#ZO zVc!KeS`VnwMzxzwdT&(RlLb?vYH7_{N}Fjc017$WtKg<+!V@d=bj(aG*;2cWHvCPO zVIH?x-z;T^zNW>S%N+s(d3p~g!2pjAnrRtPQx%rdnv={iu)+FstQTWg-}~`P8x!5O z>w6@(x)Zl{D7bL81M!pWyw(VJCANrWz`3*I^78NjJ!;ar%AuBlN9eaZ#KE%0brK-IJNX-QWtvhsDuFze zN)%QuBeXa9dAuZzwS^gvwNi^FN@Y@HCkYAlFEod%C~+Az0^S{*)LUlrSLGDOXfBWk zWc~i&Py@$wWlzZgOauL4G!P9k-9ZNM-_iqhZzsEZY}Sj|=4GL~2i$u0Y-)0&_8@gK zuXy&i8K3$C1h;_DLC*s7AP;9D2Wd~308>s?w+cFJ^rIZ(`vPtik%4^1(bA7hBMY}_ znmq>OkElMWSDwbNA4022ayyK+eO9sQ(yn(Y#t~@>+x>D@F22-q6T_rgWwOfJxl)LP zQYlihX2Qk2BvvY+POm3Q>!h&A1v~0x@>s03jrNn@D6h+%r4g5i=1c#e53tL?-3guL zX_G^@^i^9)xUF+3OUe+nHYQm+8r4LUDb1Xq<-(rAWADX9_s)<>?0}tB6})^un0PeW zbc~1GA4)?;9^Pn#u}4Al%uP^>y&gEWJv>!vk@f`CYxS}cR1X3&mCLRSeY0h_L&^i5 z4p5ktpT1z|1x90j6|D9;qtffrT0fv3H{JH4eV*^j6I&%tXZ3ivu;>0_sLBn~wqp!C3}M^)u+O5nus9W*PEygs=SzenA}t?yPKkhm?Fu@ZuDGI*Gq zE4jilc|qf=_Sa)pF=NbY9sFSWt6DTcs|#tCC!_%vm#H1bJZ+$)~f zR0D9Y>=(Q04O&B<&N;XOe4@BKON;}`aW7;==RB}nK>^C#Kl;^0egx0+-UPWhVt9W* zHxHW1qgSU3_?A*b_IKgqUTQFvLwTLK| zs*G-agP}C=YI2Pg);c<4JUl2dR*ZS(@F%l?tZ|e*Qoh9_ z34m}0T=~`0Qtu=b)8LnyP-Z^RIPRSNjr~MGAhL;ZEiI(?KUD! zz@J#@2>$ZSp(u>7i_{X`ZnkAOurpH;4S#g1EI#=vWcje%qC}UvBt@E0MwWUc>9=KAFw_BUx?IF($^CE6{kQq+CrMxuP=tZViQxe^ z_BnmB4HRG!t@IvyWuF`E=wdAt2Lxf0@6Uy0OgX0<_qh`QdtuqFZZ#qCmGjBqk5m?U zDv?ieo&z{G?E$ndPT9v89Ts#GWGbCY6L+&EXWEV>gyIaF6UwWgUGEO;gH z(}ew1_<#VzJJDnW+zl2 zW`q9!LfH7H6;k6(17{WO1A-JzG6aK>e64-B3v5JMchoMBvwuzANlRBm(y0?}0doX@ zdTxFU;5xoQYnM!Jwb2~gH6(|zKo+@3Ac~uxyqKTl^6v7PSGMby1VJ}a=;(RV`|G;v zrE9Xw;q@gz;5XzCzgG)fsi|>Crno^*T|nLF9h@&qoWuSm_Y~((pwNdC9wx($?n*mi z^uxa2EVFK`Y%w^8c8e4F7Flz^Lv+hQNM99#88y_8EyzYQ%}8t%g}WC=BL4KI|HbsR zSC9%akRakQnVGlr@Qf4w01HoG>8={W#C-n#cPbJ`)9IUTTu1G3JhwT&!!g?sz-|>@ z-g+$&x6f9eZ87eQzGV4X(OO-^bZJr>yESgJmQ8DHTIVB%>n355|JqE}V&&0JD?KyO zaK3Dz*J;*3(tuvkWkXxP(U-@fBj~IIG{{)z?NK%pa{;l3c!br~p}x+@q9!r5G^!Bq zX<*Qgf{H+(DW@Ur>!!;Cci!S0w;e;fx#F!?NmaiP7YYCMjAxvQSuoQ%BICvj>ISpv zAKZ2jKfPw%Lz-HTO(TiCr6A$9)xP^(B)z7nGqa*G`F#cg^x}8rMjCV{EKRVpY>^ve z%s}zb7K>wS_b`})Qk2JX8}9o<(P+JiaT=zkiU6u=aIfGM9lqS7+Rh6Wek>Mx55H+j zNkoj;)lf&iPI6S_T|UR8>rgLMI4G21ljK2GifyQ7)`VUZ0tg+@vyM*tAwoWP-$do- zzvD8vhz*)LFNSl(?YaIam`p8t*OcP33D}@{#k#1bdnvAQ?vI0Z1^vTmY=|fVfuFYT z)m?BX0pTB$f9g5^L*|u=I~*9TqCwGLF^8Lsp39MK2)edz)=r$C zGd}sQrqrZIKB|ndOys3DRZ2EV))-_>T3V$7TKbb6DOesdx!S;M6z7<74%w4TTjV6y zb@4TAgI+?`oLz^4pDiFW4;IS!-BEv=<6YYevP{>)Y@)`GO#9MV;>1ONQM!u9k0hO+ zF6&LohD))(us@;-y#+oEL`e)>1Zt_;!b0r%AQ%6pR(xH`VaURkdxd6T0)Q~~0e4aK zj%58*ljE_B?S$Jqw2bh}^6Wu4O6+$8Q?<0E^@Bq{d99u`y3gBoM(FR;xssD&EKuEC z36y{!O@mMD<`*fpL(0+igKJS#JxLmAseOI_3t^?vTX1V``Hel@gDr(~urtULh69%9B5{$}5P6&|yssTY*7zPA)@hF7Jb_4vWShH{N8nyFw1F^P% z;BRh-cLx$C51f%L?2U~!)CRTZRww)2nZk%?HrK6zIC5Tf{w1$f5uOWpKAdHB0X_YA zAp*W{-e=4F1Vt8v?gHRGlJQ>0ZKV#wO5{4 z7LIBCyFnOtkQL=aL@|f4&bTO^x!m$B`WHw&N*MEyBLiUSXtGFpPv9;DHMpAvhUX9H zHucW*&G+mr;+zP~4li56ZGcFUwtAW33o7I;w%;&($)I>^Dnlpy0H!%v)_eo8Dq?R9 zfj_g{je5;sX~+0!M@HIR=?%O>n+S*s+G4x|J@&rfhrCD>H%PLSk0C_w{Sc2KaHnr- zO5&f$78OT+el}}7^rhbeud`1np8v>pPJJ`&#VXpWxMvx-Lv3XWe_^EPnKIN?3t3PX zMD=gYH=h-KOm{)PL<)H8<~YDu?`){uI}^F`fEBraBU& z7b_2$TiU85EAd&q<85=F3b}Ck;qC0?MviPSqlWa4%oYq?X-JG_wZb@yc4YxBsF0C& zb9G02NS^?Gn}K-9(6pr&(2Y=bZswZt6xl@R7W(=yIM>pbuyZN9#ve6*Yb%)jH8*>K zPmlok1V#P_Z3WPLZ{}+25DjfsiR2|Z$QZer}7Y}%3yLoRe%!G7M953n3~kg~oAPAofG>y!ad4D`Q=yM<(wzcyJo)Y2;H zpy{~pI4X)0`$(nt1#s|ug`DI-dS*}${}H4Z!)n&Tdfs#19vAvYfN+?b2>(_mnUs`c znD&Yae^Iw&Mg<_QF?I9r!+-7mE|Nf?ipvjFlGOiyJ{~zUS4#)ef0@w#!@cp>QLIt> z=bR~c9Z>|*p|$8hn;5RJan8D>l#VzhDw$Y?d&>29vu*8o*tEU*3;potA%dkv^VF$j z->+ia{I19h5b=x!1fQFAmpqqi7yavNgMiOxia;@64M8k<5E4zyl4i?&bC9;%jxYw= zt(n8gue82q`||i6bhKLS8b1)xVSfgN)zMW$Y6|eDb)vC@nO_(!xjrWeT2V*`3yL=^ z!s9G>tdO+P<%iGvV|0=xbbW{PA#^PEHmY043kp)p0s~x7CuB?cXoxFp>*Z(7d!KfE z#Nkjq?5Mz>rbU5|bb++$q9{&Ujy|DiN8|i#R@;p=ky=XTC%&&IAz4lfa`%&HGsUFB z;-M~Z5uA>?5lH)a>&bKG>PuEUp(VjMyAP<^u1U!IRHxca>69?+=GNJDLC_ub2q}B` zbDj6d>IWv5%0CFWnJl}g6P+Gn^!7X*k5e}iJZ)hy%%eDLCt#ib=DiU$a8ky(gb^n+ z)hnuP!~9H~YAv6%xsnK-l@sUyMpz$kSF2Z98Ev)55)Naog{s+W%1YjYN1jNrnwl9; z^IhnH{DgRf$tZ1^Se%Jmk$;^W#zu^Hh+D_ezZi`C6O>QttK5p;NG2&`ho?6C^@jcI z`m@>G5}nR)>uS0nh0l88lT!2OR7oe}3HhRx6h|;}F8D40wN;V#Vffoo+wG@?S&{cUKaMy$ zg=w+{46Poq$lC9qm><5l;?uc>tbs8d5=-5qZEn40?HJY)V@p5%#h%G_ncD|iLTOj4 z9z6*{GD^VSODwJV!IaNP#E(~zR9-XKQ64Pbv6f;t7{;P52{1jwJoJ|W!k=te148>( z_3pOwI3F(|OIOdd#6Cuy&-_ypr}?M9Pnt&w@ZH7`{Zt*G5S2|93%h__y`bvC?npbe zTBNsRTVRt$JED?PA+ExIk=BOk_xzgAES~;rniYf4p}lY5Hu})|NcoSiw|ql17ghzV zx_hg}I@^0@j&n-~NklrufozG>B|Xr@z-7*uw&9XNqOzDht32!F`@=8kl{u~BB=e40 zaVGf_^4jE<;NRbQ$7`?Z93b!b0rS62^8VMQ^52xizh3Va&By@MWxP*$_ogP=K{RAS zNwY*$=T125a;OqqWLQ!VC=eoLyvAfxLuMRv3nImWW#v@p9)?S~_{VxWO*u~Ljg`ul zmDcCEowlBj@P!+nrp!xo4lvL^M@kqiO>)v7~w|Mx;1zSkeVq}b5!s6 z?>_wRK0we2VhrK=NoV{u9p5Cu2!=W+#WMR3_s8q`Ks~ukyG~K_rvm%XZVT?bEx^!#IPU*^Hv?) zG4|FRK%psAVk&QbU%OYu|Zzsb*Q~+&cOSARd)* zU{ka==EgL7fpxBv_kWLwE1en${ zbdy7~5)%!z7^CcW@+v$D0ZNs$b6SR3LR$~KgK;Nkh~ctrAIdqGE~y~)E1KF&Tzs%n z7_Rl~vqR|1$YJ>vwzrnt^i*&y@--j0pvRGEbS;iKv&Sy;fwI%ZPlEZ?Rachjqm9tR z+huM_dl`uH+|^2tPWLNQ&&Lx)>NQWj*XRTcV)G`^maa}4_i<4vjpM9)Czc9ggRwL- zT6UeZd67ddKB~g>8|9?!lOM})VnCNWU7got*v|SroF;Kq(N+TLo%WmZq1R} z+eU!=R;f`qCi@{hcq+>JCHyC|x|95%m#(6d(xAs}N|X!`632qw8+}8i>7A<447fSe z5+Boav3do`TQn?m5PiCw_(AQs+-dEJ&tQ2v$`77hS7=5xxtaro^Qkx({hA0!zYUHe zu<^taP`Xor6BwkS_OIQ?crA@Gu<}H!vwCIoFYXtU7QyBHqtjh>;DPNQFHrtk3=r6# zbv<4Ct((kT)4p%{3iB}$-J~M>F)~gM3@T~D)*lsM{jE~qi}z^^DTixG3sx+uqbz&O zPh#TYHG%$o<{azkr;46#*_M17&5UGfE_w(>V#VNAJn{vUDyzOYvUwN#&H;QrQaD3T zs|>91X+md-DI>BKDgNAjsoBkIqGYi640_cO4qjE!=P5ln!2Gx+RF*D#&e`c3eO5iv zOKs+IYwn($$ME1p8_+QKSQNQsNm98tlwrD7{Vu98!`F^LI zzb|d)y(ukIK4I4yY=Zht%|F@vLh;Pp`d%Ztu;rjxecG0O(s(|l!ZU)>uIA4TcR;@x_xh6c-F|FPlv^?*GYHZxoZ>7TZeiAr2(D6 zj=ib>9*?u^EcPO0QvBUA%&J#XVS_IDR3)O1hw0vGo6DXc6E8CPEc~9^u4Q!zdbSPI zJ${o%{&g;#sHbnY{?LRwwmGR|JdGY1jyNT&t{KlAWd}JV%(`CtM5%zw;WhM(AVAq+)G9 zz%LLgGk9pOTG0${xsx~J+8K%fBD(XtyHdIzxt3+sj1}yLB*!g|Y7ZLP9Sh`7yF&zB zHO=A-LShlKY^e$bhU^0(8P51f;C5^$Oltj9s!l~zo)C-YA*pJm{Y0{L^l;Qc-x*CH zS;CoY5W}9rLedSmWVFnhhoLtX7Xx~ay7Q`V+IJ>$W1AgtUf88zW49cRTwpdLn`0hz z=7q9nMCn?MxPgnD|E5gqQZOlWB({F@S;6-NGmu@H~W!c0|KGyWM@ ziWfVVdO55g6Ksn?pXokgX%Yh?Lk64$ql_Dv;oyE1^*YN8Ccw)xNTM^B>4HEu2LEKcXIx->{nAj zq*#%+Z`auB<|I2i&!OvW4v|B@i&_D_CUP}bI7hxX-k~v6lZVwZ;zTqxX9}Y^b@b2$ zVx^6A@QEUebw1(M!*9zq)I^d9?U2Eewb3Q_KM7EbVx468(vM2j#P|A<#%kDM8JTM$ z@AC;-sbR(p0lz(o!UXTAxuR4r6PT2-QyAGJG#RK$YDL;JK|U#iEo>IXD*a5uu*MdS z)@uWNQM1x-Kr;X#uB${lO5qhVUz*;_^KU>#oPco>c>F`~yGnS-wm~^i^&ng*h9Ovn zJfv%1L?CoAINHDQ^b_A#(!hJo=>Qgim<<9g&O}cIW>_0 zn~8)%@pkB;+Nq6;)3IKaLNqkftS@>MS7bKWer)C7ot+`A8+P=7{+1*59m8~s48iHd z2yo%F6FhfEd}3aL*33T-%rufN7Xcmk zJ7>%Tmz0Yf_*YLF?SHnI^Ixsszjj9cxqMxtVWk5U-2EkBzFNVC4udoe!N>`YA;mFC z#e~QZlCv5v7$zT-ScS6w;2eyYiLpH_i%ssV*)02YeSLjEZx1xIz&|Z6B@pH#z*JZ{h&F87V@8cdn5Y&?*&K%RNd@u@Amg(qFbC}}LGLQ^{ z2jp8A=FE^IdmLvBr`b&8I2%(={Jx6uyV~8I6_YPHVAZ%CQ36Ikem|Dez0-%E0x&z; zfMI~>kZ$~HjGOza3~PYyy(3$IV-R^*^{NePfPuV=ILHA$(}uc47q`*cYii8}9;@=5 z#e(@PxESY*YTF&q!8_R!qf*Zbj$$?`QFgzg{O;Pnl-ulXuh#U4HtotRzM-{ppH{nm zX7K=T@ffpzjyO3;A}U9l$I8;XVe%4}-M~zfRjk$PhTLlIG(}h)><0o?Wtf#^_Fdzi zYg#gY&Q<~%>W+jPT-;L7q2o}e_a<(Y<2xbqh!i-SN@oQgLp81CO5{{t{tv&!*Ir|IKWN;BA4O1X$P$qSLzDIp%UJju)Fo%;|8K2Hr;Im_*zViA!{R1XvtJ#a`7 zZH{Y}5F7Knsev;!8Dc(9(dd$1v03oaO{1Z?R-?x@#~;@mnh{wWN3^=m^jjC94|*8C z)&`H$MSO}hktH{UEvt#F(t^LUBO6uey(9(aQO_6H8eH{Pe$f_1&M@B@=hUt}65&0Z zX^3lGo9=5WoEe#XlnLS}nXXu2a0CEM(4*ZGMAyUmdBlH32U7MZ_QzaTa_{kwy^1YO0(l~GqV*@Yv^SwG=agSsQkmIV2NwK zL9h`9)!)c{%6B%pr6I?UEa8>qU(ovc9ng3+hF9<*2FLJbc~Gzs5X=i~Mg6~N%=vME zxGCfE+?UVWqM2Z7+e&`x(pFoJuLp8^}1jT4N>ECj!s{eh{ef zh6oHh>J94zmw>+L7Ez;%%~9MTp#_X=4nHO+!Q9q&vGR=P%t96oPvD8dis%>?0k9NdQ$b6v>0Js`N}pHJDk>emIEJA-;1EyDGw$_{rDE;(|ssFd7TdPvg9DX zf0sOdjA`f|w%1}y>j25>EkIiffutkAa1He+FJyCLYEX*qCh^4?qYS;l<$@oCpa}-1 zmW__ripEo0X4vIgXmdeF$xB3Oz)r2TTU*0z%U0>b@P@rELN2;96KAz~dHx3x6Xs)w z=L^kr%1pAW6-Fw%gLBhsUtytbltgt!t{aPvuGjhaK)bmG-S*_xv~35RAEwVMLv`jS z`XFRv92|JhZ|Fhq* zJ4kJT;(8EIIAM_Sl-DI=>Md==N^oYoz8n%lfV{a&o})R4_`;00NmTH}jFPI4C7(Z( zzH^;yym8(kn5;EjtDVC=tS|P(opzOH%9HJi*@CtZ@dm)SJ+vX__eF|Uev&U;^tL=X z&x(|n0?aoks<*BV_8{{T)So4zGvXf2MYXAHRsLWZ%`44_ay}S+h~JS)7%d|4hi%J^ zdmwK7fCo=Uiq;h)^_BA`q%BWGwyMx_E9LV?o&UjCGD=Ceat^NS3Hn5|B|iAXoDu?( z;!SW&h5MkmQ<8IQr^*E{BiG#-YT)QqhwMB`L{WXW@M6oWxz(Xi6bur$+ zDC5m?Kh?~A%1efBfiO}udttE&_mhXH%Bn-5%TBC`h7>T=ZUjY?N9vJF+?*eAl707z zUBLy;!xxvqYhAxt2(4+)p(1q5|$xy*`ewt)XozI9>8( z@{x7$iy0`o>o0UyA9Pa9Vg{AktzhtL7dlR9(S99bEc5h@)rPpddtxp4x$IjtQd8Vi zx%tVrdK7$H7v+Mel$0kWD1WjqyO)C;8iA|6uTBWPiRzymwmgB`rzRZs{qT`M4E+N{ ze(*FpQa~G<{F4lvf~!7F)mc-CQLGXdL4<|f*!1iv(4N@|Qp~_V(H7*Aeh>5cdknXw2(Q8_e;&WR9%Kth=vg4shxOMX{QSkt zVsYcLqVJR2Gy8UUW8nYomOU?&sm_onW|&fca8zk)R2fyolQ2AAbe@RdB{9|*i)Nv< z(vS`sE#G~g$XQQwl;mwKp?7rQF4NaDnjOtHtf6Ml1>6Agk*m|rav5&h9d^>UnU#SM zAJTPJtL)IatgBEB$D2Z1fCw>*U3RdChB0|ey;+Y=Z+S}DyT?{%*ZQrJ-)$hn#cq&R z&Mu#^<|oa291mMB5n@ggbf=)h3gc6%I9=W51+pMvT8q1+Bne&I=174KJ8sZ$wORT? zDg;%@QxA8=s_Wu%rBz$CPHQ2L)u5}}W{H_xQ%lxN&|R+n7^m!_Sujki-MR|wg|)ks z2gbAeV`noA>}webBAMhmbv2@_Gfy%;S;eHHsmDBpTIUl5T#fXL;DAIVT~J_ZT{o;> zGrML3taDecC!5xvH8E)K<#H@kVZ)7Y-_5Mr#o72Q)T)LGaX%D=RCZl5=W45=$XQSO z(pc_ejg=s9xj|iKA0+G1OFvLBWtuH(+XO-wF!~qYjfhD7Oyu*?4(XMU`S(s_V~=8z zDmvh@nO5}G$PH)>&N}gKCNIjCi+*Gn(7n>39-&NY!TCrSu$Fwe`=q?YK@Pl+=Z;je z$eH%z1_(+}*AmBOL-(rQq1jiqN7boWj#Xs{O83V_eRbtJ!Ltwfd>$7Q11Cc>!-S@$ z?iErSrdv|=4b?&;r$uv{YNYV(l-?U?wQ2csC>Cpl=7~K0Nl-)Q_{O<62slGN7EON1 zoe4Kaqw6YD$~@}m@;{eN_^$DqAV9;p-{s^t3ZC3xcSZG!tb|Kz(5QTV=xzI=CSfrG zNpei{kAJBIw0Kuhhg_u7Cwo+G3pAzKwALMW=Bv(k6i)uOW^X+Xn6Fd>Ml)r;OKTJM zRbxy8lNORY*zGYgzhQLu%RvWEhhC}+Y?_Cxs6>PkZuU)OT|WSE(}L7(STW$_*^oc8 zPIElt=4N*$kob?UzUiB5%!P2grrOpFXM0X|6$6-}n20CqE+jph!kK2gK(w_EuF9Jp zJtfCMDN(*b5)j^BQc91BM0g=VY$73$lxGaVy$2-tEs1Aa6^kXI$cbj3ZU}(0d48oH zpyA&a65}=I^)v07rzre5($R0vG$^#^mw34!f_a3jmhBa+`w`zh6VD&S)4x<|h=Ku+ z=;M1DRg&cVx+oA(3h$_-4C#qFg84<2R+h~Bj@#pyT13y}lr!5MtSxhswJ8~O*X)+_ z2|R-gGeMlb@e(T0iL{q4>)+E*XV|oRj(_hum%q#jxHr?ku2Hf6}+@ z(Yh!=00(F5MHQO)RZyo5pC0__jC2~2<65x~@hbBfU4l2Oap>Ah=;sIczt^q>VLEPj z;0$pE_~HB?)Gn8Qk|bOh{*lyWW~yNSSEWi-;!_X?0y0HzsiKO)B2(2xaTv7MEQ=$_ zNhyzl*wsf(LSCG=61#jvKeNJsTrab&6O34>hP7=fa|`k=hZ}}E;O=s+A&U@8f104$ zCZ;DYE`Kxlxu3>sOl=EM&`6+giP9?mv2_`k`{IB&U!f1)pI?(v_+xCfI= z40Q=91(o}$CM7H^f^jc7q30A0l&B+-z6|-;viakOOhLOc*?#jA81RABEQEWC)wTqS z%s=v(O4w$j%6}k|sc<%snMzv%7hJ?G%t}amy6~DEYQf|`@}&y6+RorzCW?OS&pBlP&)P~7%2}vp3O51JAp4&`?g_FKdKLLJhLSZh@kY!i?P9Bg_Sh2u!~HX z0TpAn8G6+OSS}jqma&>7N=`BlF~oh@bKMcI>wCGvP@M#^?5ZRh=AI6?-s$P2q_oWB zJYs9|GY**`=hZ7?NZPX=GTWZ?W-vZ2Q_QN7Y;s}>*jS5gaW%5ZXvh4T*q>>wMZ(Q_ z)$cPaLdW@e&ffkoKk>vOj?{t9P`f|eEMj@q@G8ch4+iJ@ezXnuU{jL0#s`n(uvQ#S zONDub$75zIZg2844#Q)8s~bPIIj{HqadR^m6CzEJ5nyG9?-1i*O%FX|tN@Yc6gft( z2V#89TpX!Qv4-Wv$tf*%5>8}ze7+UVHnjE_(^kvqp#+s#66)Ts%02G|taw&4 z8`7w5nj@|J}?g5%gDUxg| zBZ>jenrHBPRaLBZ6@BfVk?>0krIi98jC|hB>~qOdNr|v8SHXUd1{@36cm0@Ima*w* zb1~>iu;~eebauZ{gq9Mf0>t))>4RtAbr9b}Z#hEmLwq9U+QX6xBORH$^W(r4#Rnus zcM3_cqycNH95!o1?g!|C*rVZLkOM^a%QdcqZ|gXy zVGWTrEmm1>!tOqp!lx5O*~8!Dx#XTvjd_*KP(gCA+y?BnkgE?=gj=(nF1`;sgS*7+ zYW3A|=dAw<(xgEYIUYvOkIL6hVcwNDGmqijZA+%D(h~Rhm91Y&ox$>?S*_Rlo^w7J zZEfF?Mzz*$2F2QwsT!IAP@qc?K;r&syq)Bda77daZ0qjCx#-w&glL9OK>*K|el(f)!MmJC$fCO6DWM|}BoGBzN2 zS;{YE7CLBUXtpsgA8w;&etzgkRDk^l0=-qjEYhOWY z{_$lfWU5kAd>)>QESd`#fP~apH-;E-cQ{4t6bo#vNun>OF<%TCr&|rN>u@Y;-{H(6 z8q;*qu#vVBQ@(uIiLa(0MmG2Av)d)Ea#5LNp$}n|(i+kvt;RRr!|Al#qwi*_HQb}} znzXxxVIb`WGELow8kb}#JbxK&w_*yUIupMl3nCGtuZtk?BE4 z5&u~JN!ewX&#&ZrjA;H>V))A8R(djR;M$XCmqWPqpV&MdO;cY^Ep=rrfp#F0sFgi(}bjO+1l=}OPGqetrbA3#YouA(D*-o_!oc_C22aYDP$Bhv6yn#DqavBOv1I2_sPt^3SFfcSE zHIzMtpYg3$m?3j?6I-`Y>yg7SLxtvseO3F1mwvJz4TDx%*?P6<+E%i<^$qzuZxBGK z_p&`|%};a*ChgGseui2}xCf+J z01ic3F$!+8=aYxK{%-U_UE zQk$kjCE<1@Bg_FOa(0sEryYb^`-TGDgDY!sE7qT2#l8FF)Q}A@MOMOigA-T^{(erk z;@uzhm^S;-!9W{}Ga&}*HU8%@rRV^%GHJdKFtsh-R<67OERd0t7Hl+|`TzlBLa^f7iPc*l%>bG|% z>px7iIT;KI!n3Sj+6~a~vhBFIC*Zl8+Dx6I=s4AzZ*#hZ1#5RgZ+dz^u^g`b?BDk( zueB7y48nbVr|S$Ne~sg(9bFzo17Cb3`PiB5NsVx#!FsDi|neo6eN<@|g743}~E zm$u~1Hxg%3%)vTDTM|?xAlst;wS-ZbwkuLZ6me1#z-5gD2}ot2BmP1>5V5ENKL?ixX1s)}S*a&lih6M}E z;1xdXcTcYl{oMS?NN8)fh%k*zjM|A$@dzdR0XsQT=+zV_{vG(Tlx)Up{se1-fk9P6 za~4^Pq)zz|Vy zo8NbfEPUh!a>m2Iox8=x zMj}^ELp^&waybnda$+EY4D83;*Y3R8Pv-~MK0aR{y%epGkvo}w6gbDop*xux#jq2l z9|FK3^clUv6BHIYG$~Hh#CituI6u$bG;xv>lc*rI2AM&wiEn;xG1gY1)L^;krnT$u zfZ*VrwNfB(T6VZtO5n$jZXwK=bd{s5bQpEqS$KL2zb;pyhGh1U)EKa{Qg5pq!zo%; ztx5YONM`HORyCQI8gePgX`fg$t2NP&P+o`dE9XfjT*_Uu`_QGk=jm0KTo}4lWC6FEpr_E0@T5 z@%HK>-t@3k#;12JA;f};pR3K_M+Y92%DJ(HEUd)$=L@fQSk*|;Rz&u8${s(>onolm z#HrNQ6wJ$E7p<0TS%je+_V0=Pu3S7&zx+t$u%&Y8U}q{DNlAk&dK3SRd=~mlVBIB^ z9=YWvu9uJ9de6|yzyRC!tkrr?(aU5HHk1CAG8)=Qx0OIjO^u%3uf8|WlsOn!gOtdHpj`~gQ^PSWiyWGa5*HFWus<+?S71QxpzHWy63PG6&+hvH{-?K)y3x%oOP(fT(>iXLc) zuXf#j8iNjq{mhwD93pkG##fCl*%Mz|&kE-q3%cOOLZ=+Y``wu~w{ZC5k^A*0Da+^E z3lII402uS$lRetDo-J8(1^OO`z=bIKvAjsa5P5+|!~&Cy9uQesT9HlM8ha%nJUo~N zMnTqmqZ8Ejp0k&17T&W$DK>Lzh4RrJsE%M}i>Fu?F>@5v$jpx~F?vx=b@Tq)UxC1&dDz6S zv%=fyX^mGfr!U0M=ES-y+~B7W3&X<}qZGwK{fVEo?xig2MFHWN=E)`~g@$=09Fsa@ zIlxs0sP0`#nAtae8O(}hX3jL{?~==AMhvtFE0R)qCpMNK3A=i-=ShwT82_E zeXV9rdHTGGkZ=@=7yUPy)l5I%zwwT_l`!c8k-FIHI!>iAwrum}=zjZYuh-AlKlG!S z=0a`7n69QUew10T&V9+0u6h)B}KClx5MwZ;*&!!Hf6I4NC$GQrPp6P|`0YV=wU$|Y+1DwhtG@CzFG(n!Cajj>&YM++Rj%N^+ zpRmlbM1i%S>TrjX7lG-$^~tB-*Gv&WIk^la>ZnwmTLG)YsEo{9-dHplsr~g2=8x4& zaF`QtDu{r*#PBy(>fa|LZe#racQ#21<2C?aDei<62WIhZ^$Sa9$n6rWaSw-%?YmXDTK1k03D?)=~tejn#>155L-Qu%BY77C4E%$Ur!QPq9c((h-GjtX!rXE|>;04y6E;*uL+>(}> z6pG66Db{4Z(O zIG1L^JVj3H4g3OXAy&vih!lb3$$x-^Ic<`4Bp?Ly0bk<(J`^RCZOok%-2s%d^}p&O z&Of%xJmBEqg5WYP;4UuUa3bJG?{i2Z;P$Z6Ih6zTLLU=eAHMk$o$)*I`3nPDmLlNQ zJMVM(2TCmynMxwyKs7U+6Y)D^d+`fe+_4@a;BD{uP9K#DxwSlUnildp2GKn6l)1RI zZR}z0r>~#l>Sd!OR*^7~Fj6r1y(7R*-$0;42YaE2)6iG`LH9Ox7i$^=UaUaCi$(U| z|C@iUlqlLd01CbTS3WRENgH4`h5lvW!pLn9jSv}^C3TU+z8FDPar-0mi@Hv&bz+t^XnZ{Zb%W9g4$e6 zPhAi<2nAQq7zHz&QUWvHt<*p{D9=C|zs|bDrIrX`8VwFCvE0=P(&((&lKFL$Xxzsb zmpw6Zxhwe;JH4Cc8YBtXy<8LEHZBaz!HR7w6S_?HDp?<@G893aA|N+y5F%aysS$| ztH%8K8_jtd4OV8yN`vz0@an=w^8O#I790xYMCV8WK(kqtlEsN@s5qL2YnI-R6L`LV zPyC~>_r0kBY2;Hkqjx}g5OP90V5qL8Dp%h{eM_j@E)Qd}*Hk{q$6uJi&uI9~L^oj5UtW;f z)vjET9~n9np91*eIgy@X}Id!SO8R@A4+ z9;E--{8=pt2W16Bs^b4KQvXxcDo9b=76~A$3<52=Jg88pVF^^XcxQ|zw+{jv#xIRo z$20TbolB)%f03$B|B3nqLffsk7x0%KXJ;X%tXe|9E)3+D%t44a`j68Ob zqmKiz9miT6XV`w}KBrO`y?WVh*)$zLb7ZUq9z6x3D{mteG^3B#=k}}rY(3Hr3hRn- z;5Dwnyvj-O*o%khBzqcurfL3s5=n04ZGW7Jd0#)br6hx?6Hm~0?TWcGqemx5VnoFS zDQN9C9)b^`4{B76^WBvc9Mx@8WF6?5brr#VGL;xQcV;*3-q+aNf!sj5bNle*Ok6&R zNW)&U#Zlg`I;_VjW3!mXvONhe+mHG!i6cr1v%#RBmsen(A7o0J9iY?Q5Ir`4bAT?v z>JmX2miGAbIdCm7?7_yrU6I1+H%&)tS zxt`dk*`FQ&!FS2&i++b~z(q5+9>a!&t#h+O-%l_q zSi9MPt>Yj@k07C@q%1B=Wl%(@jNUro#qx)xQ_?A#4RzR+kIKl3w)V?2TzXr1TCFY5(yCz zDyn>n1WR;c1eWtT0j89f)nu2ET6U8kVkMVCz{~X`uo|W)j*YdtJC%l z<0|0BEA|!}Qb}5y`OX;X95bg`H?oWGoI>;PwT7(@yMj!#Q6GV13@$LPMmY#SALd!V zv3i&66lt!+nD1rxecS8?G3v5p)Q{Cc_#Hw(RgY(VfK@E^L>*j=X;ByrweTluP7+qa zQgM?w%E`4Kheu%C6k0EQhbEl3h`|!s$SQi!AS0X~}**gy3!K z`GKJYfTzrC&0>+3Z|;Vw~EYMyAW=+VI|=hqVjAK5V((?!o?jqZ3*#+klw#lA{_(o=BL z!U}VtYM{E4V6Ika&|P?xW#5vQ@N1EzErf->6rt4l^o$(5`v#Y|57D7VcZzL5RxA9< zE1REgL=oP6oYxAu6GBzo#B)+;BAj&$f$gw_)U7Qbju)|+ZvDrm912J z8#vUDxAZ!Qxm~I0;>`PxvhT1QsP_Z_X18$vBcLf6yE#dj18P`+4*Y+zdnzxw*oPQj z-L>N~$w2X7NMYSmA^2CVqY>30a;ujt=sT=6*)AAS_Nb5?{adE4x0V{?x zrRMV;#fyVxmY07deNMJ#d-5-z($ctn!TNu>9dl4@q5dtg zXOk(phs)I-)S!SQS!+BUr>`D7O|tttA&s`d0XT*vZ(knv_|TnS=I7XjJ^N=TzE>WO z?m!BYmwIzg{w^e}tc9C|3vCl%usj_`S9S*rGyBIMQzovA0UItdz>N8kCh&b{u&w2D zv{X;UE*NYIvzKiD6Z1P?KfLjq1QPG>n03>!;ETy>j(CI zdLmQywh-;{M^o=*rerwE#whjX!x*ZKG=M30&_)|W3cEyVwRNI{sH_9K=j{DtQ9wWm zib29uXW0z1_3F{>-JJS-7UNWMYeKpUl*nn~u10+{i{WSfA;kl$U^XM|^ZXA#>v>e( z&fZXg*RBn@R+@Px^xK+CFBIDpTaQnv)ocT|t$g;H+6sEU7OQz1o1up>65a);fHr~c zU<0U2e~xpkYTD2bX$1HToxY}I@9{d2mB*LY;NRJksDvPj!OD~!6S~b|KMhd&D5#Cl4v;@0ZX=YnF z%4ZNmg-pbJQ_WF+plVchpm+$Z)Y~RGxTiCCiJsMCdJBrp1A4HZY){M0!67!nhRSxVu;pxqJQC*>Rn^u zSHXVEvo>(g@-3##%xIhNJoEf9EN$#3h4x|igJhh{Kun61wc6ub=A072I5ZFDQTEcCfJxq~$9Tv?gm z%V`3msL9*g+n_M6hq(rJQ3Ou^sZ-K0(wD9sk)NycJF3t8t?Rp>{P`ar;&}V)^Att~`B1=P2VMmbm`b=oM*8S`c$`inOPW$Jv1h8V{mf^T4As z{(Rv5c{AbCNYP^!Wtk^~H2dZ{jQkoYNa<6Il5$%enN#(ae#&j-aKGLC+~s|Shly}i z2)8k+o1mmb)wVIi57=wAajX?~!2*|BHJq)mhT{qU=aoLXK-oo`ve7kWC?`f-qa?yk z%7#OMzK2eOHWZPmIcW}K_RI2Pg0)rL)LV0Av~J%LY}e5n!NJbUmtdM3&I-7ygv1nU z`nl6dY#W6i5BHu2xW6RnzRwBZt4h@sc%|-pYf0w^@#b=KIw4EwgVC_ITJ@RT01=9= zKTGZ6o30DWNA42!eV5=Ivgh>!wIc-14F8s}irQ!rvc*>!y&R?z%^jMDrWvX-EVV?J zz$U~Bb`QjXW-z57TiD(ph&n)JmS8FXUImv;NL`DJX(RgG#lEYfkI!|Ij}>lTOivFA zPdg=O8F8IMp)YyfvSDWW7zfK}m;V5yx4^BGVkgeT7sTso`$h%|01IfAYdF0JIeh=HQB5)ho^fr8!*3Cpl`|APTfv_rP#g+b zs7}UDDz!<|P|eD*8j`-Aarj@4h-Ft7e3Pp{$)3?J26z6@mu2$RYi=%4B-a3w3}o)` z?V&oXU1}H9RS|d(b9SyWJx>eK$(Zw%ZE}}&%DV1!HLJ`HPE-*?@4Adu?OiAlqh`rn z?F-x})3-h4P;R9)?=odX{FzP951+4OGtB@q(Ns6OYBr+t1Le~_l2f8CGW2CGb~R!U z+PdGW>e;I5_@hH?`<+6M*@Pf_weF^}`};r*HH!>RGzNCqw7ZCz`k&zoZ=gKl9Xa7= zKeD~kP3hf>M4a!*2~gQ)Vng(YVkI2)Y~C!z5rAwq>{N&aoIBAfGnqQ zAhcBbCh+A4`~)sZze1=eo{SB)ox#X3pA*(ZHKYDuKzOgwE{+O0CTmDuwne*H$Zbrq zEVxu6T9QNMg)?vXI^$=?C`BZPqnz8r)pGhd$;RGf74E|!IV1`py7L71$N7o~pc zv?P*9>qe4Y+&FjeL0`GaWox?zBbT@0Q~4tg$hvXp5zP2aGDhHoO|h84;?^<-_2rIL z)OfSAqwzReAVw7xx`K8jsCI=C1}UeM)*(<)9}IPdl;DtZ@GeJOx@qbdI9P={i*AH_ z`#G3V2uCZ!Ll$Wu!K{BQt5%GP=v493ZT~z9e2d^={kV}&11#aPA4_UJ;vbHSS3ZKSAJq8P?)@Bv=Oqmz_BXhOod&Etr zYz;?cXadw0H~c?G?pJ3k2-H4}o>2;uAbKFz{JIyHdKyk~X$6Wy?LEHrKd2$0@NPbk z%sm-v<=rx;R}l&M_$GRTC*!;!=3Sfr_HJojCaSgyRDv zS09`A2uu$_CwXCDSqZvYWFcV>QF=JG&(n0yMe0sJ&nOiN0(mP%A$h9g!&nSIiG;8Q z1tN}&N7@O>Oo(_PB0&Wx!wAwS`<#^i8oXl-;vB9Cog|R-E;!07{48zMeDBMemZ5dF z6LcY}*!_>KN8~5C$x>+0(<~xbqE%Oaw^I!87_8B#*H_4#9IX~ebcoI*r&qEOpVCdA zJ1rjz3BNC{!J%aXGO^^+0kk!sVvTPGu-`1Kvp|ExdZ{iy$J#(k3BW(G{JzW{zXxXL zet{B!GJ1IVM-VGYx4!CUlvw=Ki*;BH#DUeruz6dm`1*(A*sma1T4n$oX#=|R|3fF_ zzu?Hm#@6Yt!JxkZP?CzJDzYldrXZ3?{4N1JY9d3U!X4jSxi^GZ1O@pIU}*%brc2D< zeBh*vmF{|%HTjlJ7VC>kvL7>ei;Lc-0!R?K)IS)HvyXW^ui99@KA+xnzwrz`**ops z!#(UqN0zY}Ns%G+NoA&YFqi}#L1X9+(T8|4I52d_)6+IWGhFHR2C)6OrHi)lqA?Wz zowOm*-Kyf2sHsWuPNz$L(^jjXmaUmE)6rOPX{oN*(A*$AO<#Fw4w=Qi?!Y~Hx5PZZ z+_pve8eFn{59_GtN*qbMI_2Ur+yX;;{+wLIY13?BduGy%P-zi8vA|wexR$ES#uQ6yvBF%t8PcGq1HZfuSU1{So zRc|GG|1b&8GRQrrq#A0`=i*R&#IP$=AC|!fc!SLIgR@ULxHkV-04febl7S`!e|=4) zU>T{0l^e>3PN&9kG|!N%M?6{1glyEbV;|~sPr^DX!!)t*q2?m@?*3RSNo2yKN**L2 z(_Mw%n<_|CgAyCe<(|da%jKZ+#oLK=YbZG_5x?5%D?L#?8@50Th&jl9D=~}MHa5nw zHM;dEV$x)ti-#E@w5fE5MCwII;wUu2mm^tF(Sk7OQoiY4Wx4axQ$ zWxHZ$4CWkoEjLtHoRlXEGoGbZw4<)GvMz=<*HompAKRvisMAE;58aMuUzSdbN1Wka z=>-#m5H7sB6&Z2K-=Iu`_HWzEOfx&ou zcMvt>WoLMgEN#l-8kpM^gyS^cBH9>;y|Fne3C_)nku!fDMm!_7^@5sGLxm&W~^U zWDu`91B|V*Iwp*8>9OYF~cZ2wT$fbaylFaQu$*%qW7nCisg7-0UCeAhk(mLpON$J|nDLf{rA#@XfMJ_x!P+LW zo~(>p#^~rJBg^qcJzOYV4W+58%7<98)lHY}XqqjljllW#N5V||>RF2H@+Avd-`gcf zjcd6fk+uy6p-s~s{nt4um$c)$D%slhOe_0E^m6#kH^#uAIw44?THIYQ9VC~ly6*gx zI|bV3@R{zfIY_Jo5TiYRT@H*X`rnhXQnINLNt{fi&U2>=2rkzimG;8Xxdsz^%*@xh z&UMk4Uzwj7z%Sf&u4si)V8d2 ze_)ezLx1JI+P^`~r#Ov%PZFq{!j*zxx2%msvrZbwD~%ZT`(FB`IqD)u8zVM_9Rp64pH1 zT%w{L)6lg}PsKz=p8IZ&srwz>F5S5~EsOb9cU7q3whwOyz>s4!ixrt)jAy<*WjQ`x z{D=M6iqNtsm@8MJ{c?%v<}mox3xLW+<*M944B*{DE?W%)5ED!u-`|O145~@v9J};x zULEpVM;rCjURb+PZ4@QkB`M9DDYi7enO!p`y2K+YFMBG4ZC>>AopAGnjye{lz_@o# zH#NFkQKvn{d$=!2J`i(^K(NP;K~%Y6!!lsR1j-b!A}5*AJ7C)~76mp}rS}vt$qM># zaQW$Kp3K7OuT!5%(K~564y^HuQqnt6hir@p2@AEHTkSO(D<^5fWI-n~ERg>0L^_ol z7sN7Fvu#2HI$|gtx+Y7*4PTy%s&5Ud&Z6P-9R@1D0p94Hgwg<7gP=MA1@z{b_6JoY zrJ${|gu-b$0v>&)rA_IQHC777!_Zl#)L!0Kl6RNfF&^4NH0+38)0p;@^zI`QxN@R? z#W8#^f7>kCBoNQ31WuMC=I%9~vpjGYt>>GA@9_)Dsv*aYQx?kF!W0kB6;j4sq)u4O zG%4V3wOdmT=@#(db2w8^zpaX28o=yIzBHaXa{g_I5+l#yAnvSc0y4f}Wf(n@f#}{E zd=A=w!F*shodv7ZPfPAKTr|ztSbtx`QE0BYh#l7LKi>ZF50FW=T#&{B1Q#YCxc-Or ziGPF4e{|d#|5oNiDQf?3gWc?)H<&@^!wRzi0$tk+I+V4(Y$I~lBwE(}-RcGIx^sDxJgkSH7NSOm zH){3JN9B>3GjNYycmt%pv6#ZgpkY_T!%K0TyObJ=uV?pmZA0?Ym8YUB(Duu)*prGs zSANg&vJRF}jN#_&K1tthO^Gl>Fq#7U^bQ;xBox%8!mrOJC*X zwWbE`??F{FaHTRlEKHtG|&{J%I>2Ya0Z61|iUhYpNTlbFyhPO?cLG}KF&AzxLV zhz;6HkzaoJmc+PuA8Vw4;(@gJ{EvCp8vl&MctA4y4oGJIr#NH!dz>kZ zN`UYqcxMenVm#4Yt@DfJuRv^}z=z`!ledC$xfmd84rk9W?%%0;0IW8@@k&&lVl0QU zg_NrtpS;#w))_ZnBx$C;60 z8Qnv=u!)JYd-YC;@2*JUkCqnX73AhYbBoI7Uh2$?pL8K@AOnQrDPKl>-m~}I`qEot zKkw*y66{{bIxFldR8kGdcg6#s(sYf$I08spESjZv<}A+>(P9GEMD9jgPu=LM_PCIK zxz|&K8|i6VEn?uek^zRJX@17_U#d&vFM(u!>rq^jMlt=N%-zS$tdXc`GJJMVIzt$1tR@Q@Kr8@gIJ+)oq#mr z6u7ma!*kd)6$}&0+mBAgrlXPS2DSE~nYy(+aM%e~eOGVbUAzitqt6t8`C7?DM_|OT24)P;&W%~t@#_pU{%%bO zid-AOf`f<;N$~*cf>kv#j60n1-Htx_mbmJTTPlMy}wdXsX~>eLlYS!)GnF;HoF! zaa_CI)6L$y7q};B*Bh?zCJYBcJM5p$+I7ZQxcZe#93exTf-SJ7r6F}L-oPvp%eukA zXQ(z0(!sx_5Cu=m=VFG@EYM04STQpaYr39ij)%JsIkLll2)0|o;`GCVCY>;r8%=Hp z9!m9RoTRE9Gd-sJA$mCPjaRS3zM3d8{Sb09&++^;6FGdbfRH|K_dB__mV8vt&T^An zGLGYCiRfq@u4OnL%2%n@N~NB~K+1-h)sUJstqXPzF7j#Yn|bX4(^t#Rt}VfvHCZd* zkGT&|S@0~j+m5mEn3^zen-{#&)f#UYO{}J+HeLC}XbMJ4F%k!~j=5IGqrIY>ft1e{GW^Mo_nkjf$gTNjDAk7J1~{ zt4TkWlUX$%AiNb$jJz#f=?8Q2uRL=3V8&T*a=6Fh5hms&vCX!rC2?_Sy|1*t;i4hjYxOo2fy;N$tda2&ZswII(t%KwE;$`ZPld8w<R3dVFarR)*4FjTJ z>F!_sc$)NFCg`g_uh||IyXs9VPj#G!?a+r*txI%PW}hmecRj!;boJyUOg87b1c&un z*8sDcKWVAsjeTYtrEKE}(oQd|JOT(jmaF4R@|5Qpu5hkYVM-?U_0YAODqgpOuTtN& zp$fL5PZ>6lK3(8Pz55!u`s*ILes^Cl(j;cSSqeJUMSdNa#vS7F#J(o>17nxtAa=peO&OgGZ#W7jZ)!Kk)lF>2izI!V4Z*SSv6 z#i?&D`piOmwky+uX6d9BPl-xTub8%O%=+fV7!>iCnC&j@NBJ&Gsp>HyRJ)3tWXXqj zTv{`npnFuQn+2c#EDJ0oiCL3B7J}87%xx2BKb7mwKm5JbSky#Y!e~EF!zw%Jv~S(A z>Ly1$?FwU8M~3DhBY(F`P-nTlLZ_Xewb@L)KJOm10WH{`ugbm7{&=s(Q;r!=(=TF( z7u!uU*Zce>qyfQd+Es6<)a7$(dtjCf{~DyI#VFc%u@ie=yV5jKW#^U5F1)^{B>9-9 z$gCo@wO>~4$kmU?M0_jMZyY&%Qx)8D8y$RYC))p%8(}SEoh`$?xcQ<4!)x}8=wt)8 zjDeKpHbl3C04=6F7DtI$UTRKPJ88F{WP^8gBmt7w#D!@hHxt{()Ze5Nl;1af^GM9$ zoIyZ(jYg>Q7Q~k#-4d+0`6mFRzdR|5NOoc=C@t&CxgyHgKQC#2Oc0x6=QP41@q@}B z-yE&Hnhy8I3NK7y+^Ll@wpiA{zq?sTV#`58x1SP2b!ni5OLbsIh!ivDWH} zopAc33V!*7U5tt@nA}}qWSqDw>TN0YHKhM1c=E>>D6=r5cj6KJVhU@3agdvSCVw=j+_@`x8T z7mdlI&mjn9+Xr>5DZNsQUGo=|9LTQlb$%>n3Pfe1OqeUNOlNU@;hjvq%B@u6`CnK@tYrncD;F6?;K!DSW~hh_*gf@^%n&%43?y|qWrEL&8#IWhBN2(mI@sqV?KtAL%&*8(T-sxHaQ*7z)h)hF3Y?hDzQVvc5=*UFm+4rW^$hOUs==(Z zm5{?US)c3b?kCoglqzS=$k0q=S7)S|UyrYqlK|J`j*VSwhKD?r*lb)$_*FBQS-f>N zH)gfT@^IyMmFk5{UECRcD$z=H6a5CN%S;o)p1f7{=%v)McER=to!wLQr0r71wHc8b zVUUvrb93Fpe$#vDP%rM2!Kn`uQg$U zZc9F{KU#Lw$w^hKD)5gy4P!Y?&Qdx&va)ql)%Xgyj@wcTSHm!z)G~3YXtJ>HFq$2dwwY41I0p(}&6!+abBs)tCsoP}+5 z6k57Pn>X!8F}wpiex8o(eZ~cTuN$(gy^713^Pn*(p6uKq(W0q}cB^(2@51_=kdK)f zz@xMA|C0Q+VB48b2+ZIhHlJFZK6KwWmrt&!H15MksroDAJ>CSlRbrc3SPzo|lOj+h zceOJo3XB@qz)3n+7jI1y>dArNo*~L6S4?-x614MW>|y{+fuXx5(I>#muf+^Kg--H; z9f=z)E*75TVDzGj&tGJAdml-m(-gRX7d%j1Mv;B^0Bnxo7i1dg;HW?#0TzSN?awVN zhBR2|yRIj}1d_c%6IeDMQmg8oT9%AkX}FQ)pSe=_SB_y`Kj+_r<>VixgDIi>pm_G8 z4@0vBN=xVpO9VnKpM7InvxiY$+z)9>dFA>_enqY7A`X0#Q0CW%YE=-Pg?;nDS=`yM z)-wsQvITAO#$8bvPx8sF$})U4jwC~-N53rMY^8cs_Cm*8@JH2;byKmU-C2c~D2K>) zG}>RB5GpSVWRl=RW9GE`p5Re8wU=<7yuNi0ieMCe+30;V@F4Q)4#() zmhyirr+*%#t|*|e4%nY17BdG%(3&qaf|?ls7n!%R!!D4*cbo6@(qFK1sGy3s8xT{#8&p{suwN5_j&mdwKB{r1VqAiMW&Z)_yXgDuEMslJ^L;3 z?V4_zmGh!4QHr;iCHv#REVTBMq3paWSnuJP%fm2VP}4PraJna{eHBpE^@b6UXGJA0Gc2h zhlwuEo}qM2Z`4GQEguA#oaSbMA=}@OYGNJ9$w$ae7UlVshmp33aZ)Hs!f5Y3(1x7@ z!VPe7=uLYDqe1B7(L{(a1gYiF`ZR=&nqOAGG&;y?_4(bJFxU5q_i*Z4Ly&zqD@h$-8kR$t^Oc_( z)!xxcnA?R$6`|`uv&d(h7@>oLh5Y(D2`P_^d%5KZ$Hm2<-}QhGIAqRIL{y#8 zYidh#v!YAX4ThRmyT;Im^%6RKh)k^Jzs3?b2T@@c;0cyhuF=n_$84n(*Mydi2S1x>@}5 zClk0C5E@Fcp@uZTO(o_~7RA?uR$jK$RT#adcujXvy42$Zy>Th378II}X#4m>sh@WZ z<2OQJKgf2px`M)04rs*BhDnzs3>b)4ogRDFD4*dORnx@TQ`G~GGUS&Vv1Mc1buyoN z-9L$A(Zem+PWRAmH|2e05Xb|_vaXM=j}*NpYerBpA~{=j3$U~H%*a9^EqG8jt*ZG) z0h+ygtM@B(O)%C?Qn4}R1$8Izb#M;wfwkIy<*5&TOLAIs z#9MpbKz_J(5nmI-jhRtUtvqOvVPVo<8rwz|JGSZRjuyK2@VRE~no#7z)Oa>}RZ11E z!{Z?-(?(wEFCr}lwrY!{*i2#|zOc13w)$|Rr5+vBFuceQJ-qBU!bmK+N{{fCZ>BU3 zY@m#z=1H|~B5kX6pc!drp!*hqama`vQp`GfD4<8*V*^jEf)eCB25^jm=AF~HZC}`& zR?G?yDq1UUxdF+Z^)}ToMBkUKuYA%@!waPp2@%b&F%;Z`X(|dP#Ppz!B`CfMr=e!6F=!@icAL+l(gK zJ7t8NT@#V}FC1m|xr`R(+pZOG?U0T}HtF>A>8u?t`wQH)fCF^FS^-3bEcWp%@%^^Q z%E(Ie4nQO_>GNh#9VQpxYdEsb#GlSdGJHuliRYn+#Hc?4PE}2BbE|R;V01YideRsj z5+gS_r0lbn%gMMXL!Cf>YxlfIxmL@H(Bp9)p1!UvygQ9bC%JvOL%xcTwb@8*2VJmO z7zWbk{r3B*Xr>CiV#o0eGFxH4IMqQOYnx)ppe-!lH!0AhHx;&U>wMA; zN>ociwi2!Li{?qskeu( zpyGw^|lrzJj>&Hu1R>jnyKTHGNOa+t^=riy+o zFrW#b#-D-Rk3^}Y&WBT`g&HH290EWYLf@iNO6jRvkjFX0!RTE=($3W1TH%mKRHd08 zk(uAWwn)s+1i`(ez`bw^SMabi*@t%vrx*ELmb}q|n={|Rp*}-89zjfM&mmp&D9L7I zTwnF1&7BGoxbdRSY1=84&@pR~yjsmgkkZdI+u@B#oO$c%*iMhLIoq*dI%c%ioiU2- z%?GsC%n>9@eZZ!WF?k1flT;A@mhBHr4b`;qN3;?M-j-d1{QeX)01W9E{X(YJ?vk)V z>uU#w#N73l3TK9QPdE7sc!UJ|>kicagmD~A99+H(1)b>sG0gnOr+;$fRkY<%6cIn< z+MJJT*G3u?P%qEvYPa5nBv5;muYo0i?N%MN&=+;r!$Ll&WXok)rbX~&-V_Ho%`l2l zBj}l(Oee-3$K7gQZx;`%zM(s)3-eP^!NOsw+)NolGn0?0MvS!w)1bj%-)Nv7q=ueS z*)rU*E*MSj3eH#kF`!U+JZEp*U(uWOR9Zc}KjI5mSlTnJ-&rvnVpww!E<6(Q?X~c9 zMTJN=yfgM0)+nS78VEh-MR*oF6Y-7^_xhj%Sv6Ep_6GczM@U`pJ>!f)8%j@zFXnC9 zQ}9eNEME)yqrCh>LG4Xfh@hMc|0nLB@@s?H$`&2#y+s?hQFvSjxj3o%!zns3h}>OK zo-6A`=%>@<1-Q85(_u*(ESF$~OFh#!`Rt}D_-?W`3K&U})9DKv5zn1Dc*S9M59i`V z=aw6U{(3lm_!IAWBvb&mTM9;Nb9XM{+ydqyrF4jR8qTjy};#x7Cqz7%*3@JXV4)S##J%1NiYj%2Sj%Yxh zgUhq&-v``99LP;SRC#XW`h0)CW2B^j1f!sWL=xzwoG=LFIVLnx3h+*}B!SN;I=YLT z(7aI=!x?+>A9KZ7Mn~Q+c;i6r!a-0D_e>`RyvTe zvsx|UG|jeIFl8{cv=y;9?4&dwh7#YTxg4O~GFb}egt3`ymUsxs`pX4xG4k6y>J_Hg zJIDc%Xp()3b!{UN6g?(EjauVMx;RK0l7|A&5c0w^1aSNF@x>6;qy0Q8*`@ce!Mq#|nG9rKSH!)QbfS6|4ys5Si0Uh#-j~#zX(%;t<9%<@%5k*6PWZ zT+i3r=o{?90umP^==$x*lLk(q5PvKd?{tON6hmPsPPW%NOI!v3;WTh^`Ivv+BgpCqt4kAnZIKXIKdp4Nnx|}7d1b~Ssl_($DC*XMA*i;NThI>Ek91IdzfZ8 z1uirwIAUuyR5})V;RIv$dhycjM?_b>%hB)u2CkZKFW!%=$1wJeKpL=c0Uh8juf4lQ z`qDb;Gg^|lHofP9pO7OzSGL@$Jg;>`#2B?cGJ?^ZL9#&Qkv~Lol7M|2R zO1sIlc%n+I$=xAUBWYKv32kopo-vbR**OAM`LZ3+r*lgUk7H6CyQ$tO%=)cWf z$I$*&p?l$r$dC9ulYd+=4D1|T;F_ze@%)me`qUnp4Qi?E#V|jaxw6_2pX( zz2B}mB04Fzh->n}BxEZj9x=&0Y_IGZu>ZPEu3@)rdN3%Qi=D(R7Bpd(%ZYK z{pWM=Hv#+?PX8|t!WVbtALgbQo`wZeD?;5c6qaoj*5M)ahm5*AA`lE+?+8 z85gNnRV-fvz-x%7yl}HZQET%Kp0gC@!v~+k(TPU_{Z1hFzzibjC93aH+yiT@i|4o( zXfgdhM)-SELpj6I{CudFD2$<43*0#uUI8M*OS2(LLSAuebiF&*f*j$^2M)zpmKi{w zT^%Heer{MrwLs^%o=&O%$r&y=E@&JNi>)W_pM{bg`rabS7PZ; zN^v>;Vzs*>=M*815ITj{&$eNG6Q(ru7b3oTNkD{{6L=tRc)q8S+NZE$4G!4~#$>*s zPRfSIV6<~J?4lr27(A|yQ?(xs?5a8$d`qk%vc2%UC3(Gt4X61oVZiI95_9?ZYy{yt z1JNAL?av^ZsNAi<9Ig_m<`XY^Pmt}w_(AlJ2w>i1)Dct4n-Nob2AXB_5I(U!b!)Jz z$O)DV(ns7en+&4;M){ZzksKDPMqXjp5bF?d`nV?lQ`BYLrkqf0gAP@HqXli^F4U7f z?mtA}?lOiMKk}J0g}2bgC8ssr_=#NrGKbW)Rm1XGMma73ozpyo)cOSxMM`&4a!m5?Tve zQ@eju60%`!a9^WmuuXgdX^|-~sB&}vJ76k}^8VTy>#JpTTp%z7)Sd4?{6kFjE(cM% zfCdZ~WOadB=8rLwf;WW|d?UmK>IClEw1BN2N?>keCv&(ok7^p$k z@2E`Ew9_0xi8hO^vNp{S(1zW_k3PyO0dMmLmziLR0uznX^0-B@Ec*J4)KF1yP%TOI5CoW@ zgX_S0Luo2qkAWaXY{U5={Dw~S1j42if%1v-86M~i_Uhrva{D+{5fRIwu5UHD5zi{O znZwFswg3{@g5BuAOlA^&vfH#Tt0|>t&o!7Nb+t03L9|b?$kB}P=R5Mw^2wZ7htv-C z(1t@I&tel(XM!rC9CUJO%D5imx%YJ5*oLtx%j|9DYcsN3o}H&t;?HNv0ch*X63Wrl zg1od-Thx{F6*`*j^%1>V$4c@!){7*3OxgGHJ=A)2&f9XG%z+4p(JZ$*6{ux#svyO? z^L9otjKa%MXjQY(#?(^K8Q1PZLp!)KqY2_B6{=Yr;=;EOEeBW(=zdX3Mx!>5I6?KY zdh7P{BI$jc%Vkirt8*mykb0GHrg%&zmh`-zH!g(+$yCfsQ-y1}Ni~&AJ<`gm(|1r1 zJOmAiJk&-bs}@G%FAuq_Mi|yT*sdC?rdtIC(9^9GzasOF7O(lZoN>DZ@qSO0>@q|a zYs_tD>vvC|YcmwH8xE<~s(E3yjjX_Bdo=-6o3g&JvzuH%&+8yP{AeBT6x|JsjE%$?Fzu6fYTgo->| zSy8c8?eIHq5+3jk#v?#z-d@6beZMc69R_6qMPF{{6?Z(++nf%kgbMR|r$!SS0qdb< zZ($cgyU7w;lA-;0{I2yJ?}lPRH+wQj>;rePsxU=h>}f=>Rg2cjwGS5ZgvFU3Q{j0i$vC?QxS+R z&vUgg6s0pr?CEw0QH$OWD9Oqw^PX7dVDcV*FJ1wsM3o_{l1+t2;CtwW4lAWkL|!*3 zJ5NcbD|94Y6b(s~-_bUO2~*O=j}pY|lSsP4)^#1b;om9G8{(a*j?%CuDMJpO!8Ymh zfnR}4rKKwf%FUsBZDP@BrIob3RB^CJuk73QUf9~s!6 z+>9|V=ntVEx$01#e(P4|oo#OimnMBPUvE7c#@NrK&sraGz4Qx|*DUGzD~5*P{FjOC zECm1#=y~m*)vyOV)Iwchj!kjdp3O#Ez^vfz>;Y?dgzO?0#Fn~y?gRraIy*_{#jsb{ ze{8rt=npB;OtImWZh%3;nCb~nDC(8OUonQ^93Nrt(X^IDFXCl}Rib011%2XK#D^kA zuoWqAkgF25_&#$86zhx%oX=O&E8|#agBovh*^}uC&9JVwN_?KjPtj5@jkmz#NREP} z9A6L*JrklUulKkn$tYa{6lP%EV`Fz=9sIX!m39(kh7fTov(SiyBCqQ8z_D{a40WJl zo#`Zy10emQm}u2aS{G)&yNVfK>&2lli-GRA5o1DHZ1MlsNmc%JQrVGytm1xU`nNCY z0_*<{+ByC+)Bk8)%H9 zCCT$se)1|h^HV`qRDAPO0anI$YO$vj#r_h)x?8o zf2O}kV|-JnI_)IVsRHIL47?!TXkxplQ;CpU;qFW0p_b@uS##xi!nnmGwTJrIe(WLl z#SR)Jn$FXG_R5VvGuS(=A>~rT^yB(|>1R#hkjPOQc$3rg!{q9I`ytJ%+_0)WLyF}u z{O@cya#L<&jW=LmNM_Aq^<>0E=f*B&kF1yz!iK8Zk;$h8SzU!$fbh?qThnY{^2? zy;NtYD+hKRN{K)IR4Jx&^SQXPjbueFYDIb%dj}?M#0Dl46QIMqH7VUTN0y@)=|pyF z>1{bBGFHk}62*zss_pGQ-AD=bMXD)skn~&t!&8pHUakoPrNQq26`CUr5y7B5BPjhc zij!tAb#bUsXix3zS;n9y7jF>xLC*G3k_7~h2chYS*8@?v0@Pm_4LqhcFLE1+EJqZ* zMI&KAiR0Ssl{8|ZxMfFcaU)EqK#e_2t2?HRQ%W_tyKEN>;6(}JZOuhHoso9kOt{Ob zmoSOS#$_mPK1I7;Z`r%zIi{UI>J%8J_KI6kWJ6^xHcJDS_--<7o?R<CaCO77CJ3QW!N#rbd$6-Oy)$kAGtIjyMl&KD?HNJw0j$){DKpaY`L+g%fG2 zbW69^l&?<}z#`FzvS85gL-T@_%eI!M#O81^Iy#KLx64!22cm1^XBV77%^> zmyAO5F!z%MXmGurWoHL9`D5d8VO3)Mfrd1-T9NA*!)N80JxV0O z`sU*99JX(vLtHDhZv$F%@w~<;o-*)qLUkYvPXCxguAa#>?Mik_tKM$It9tPnHaAal4FS!eU%y zTsUWDd5}KGUs#+Y;WCKwO0kq3^9&h@&*i3cZ)s^qib1~ z)g|-RmhR#!;lb=Q^$k5F&<6lmrPA^6h^pA5O-6fNg?6t56M^9ku1Uce^5a7qt`K8( zMYtK;1S=$)`Avl*`7zL5B+K(e$tb1N7`DmJzc9rfzw98`z9^|PU$1{dN&Sy>`?rk% zU*Z`P(=QFpKM_X77C8_`M4t&t$7q-y#c4r`+FW=c|3HasG_b*k2~)^OHrKs-BHu9R z5PyWNJjA**iJZQE+)2BQ@WH=ZOionm3*xt#IFBx&m=72ygag;sFufd`l6W+=x?US3KrI7ujACJC)O^(YK)9w7l!Vg1|_m+({0J~8EiR0r?0yraL>|R@9R0Usr z=vvJ~m_r0e^nrB3k-{mk9^{ou9RC%SGSgR}-7Fq^RS8^8(M($#sX7Aul_wReEXef% zEQ8ex;^{ATl7ev}dZAx^Kjzn&_iuD7|M3S%ep&fh7+PC+8vbS7)qnQ>>aMi@1u6=t zb`ta>{*RzSLf=qi@c4oiS1^HvK%erWrZ{o4$mMkwIUq~iqOqbOP^3q?aN^nw}{5Hc^0b0$hKu1Poxg^G<2i z&T;;V&8^`x(~iA=hbc!%T4~t+3(uXB*DPlw`I>s};FL&^W{SVA3fW;(2siF5mN?11 z$8AE9_2^2DkE?sHUp){JJ>)|NskI*;OHj@n+bG1dj7IU0jH^Xi2s;Pv%irMRzwOf9 zKe{E7%{~}!k9U<1??V(}4!{f|&nrmJSN~Emu*rK?$sE`~+@^{G792N&>7PAR;z8qi zWmzjFIBs>Pir5JO%1dRISZN}IuP?q;IE!9Niho(@&=HAiwy?@;0$`vGp` z9^DNoHtU|;P0Yg24$LNm14^-312Swb@X!)zfN;~AS+SddUHVN7i z>e`qmW|`mD_81Rzk~n``vGDbJgRpZOU6&(}Nb4iMt`$fvZ^ai_l*zi9uUOhm_nDTv z;M66yPYI&={rT5g?sb0aqWr6d1NllW|3@wN57i9Ef0JbWhreS&xFB>71ET1sIja_o z>)}F>He7#%m!blq;Ptl}zzQ<5gc8DG4~RPj<9q?NSu)ng)u&hI1;RHhWbgq*l%2d1 z8@k1U*ud$Bd})4tngsg`1uNR~a%6Tv%u46VaB7#DxDQJ@SP)?L#w}GmqV_pGEn3v3 ztoYqO`I2Ja2$xxQZj&OT*}N+Q>7G7xhSyLEe;Up@{A#?aa5V=-%R#XXv|V~H^daSnue=`T?Eh|3nUbjuEC%NuNXkSG0iK?Z{ z6m~fA?-?~2{*B7DGV)GRi6$JWr1W*IW-Ez}YPFFG1duEqtA*SwblIw1GNa76()8f& z>e{|iJKT>4VXdc?l32n;vau78Jn{=66}`RNvVKSH8O)$7%!MZ9@ehr#X2P3PvH8qK zX7@XVUlcg_K*dOj?4J$Es|-5wD;eX*ubCETOogXd=w_0-KiY0)zMsqZAi-vc%9Vs@ z8gioc#+Cvn#bIpj75G3 zErzzLPO&xOy^@-Vtsn(nmUv2M9=OzLI8p>PO;AqdR!JnQt^1faYYwg*!uSnqF=m>U zcR4Wc-e6*;ccXta`pWVBJ(a_QKZPUA+pZJsk9_pdA4tK0W{R zu5;-ufI9xUSLC2a=H5cfpvVqo;=E4BscAI5$2jGtWf5MMol9_8((GT>zN+K^m86Qj z(1d2Jx@S;46mZ2(cL$oBm;D2WOg6m^TfHCNRduaDKa_G!T|uP=LOLkI$4`1bl)tJC zocgo4XPYzv32g3c^mDx!St6d>$;Ik7K3c!xcnXtHSseo~oFv`VRS-^a`$$@3w<*Rk z^}srtBXGcQoj7EgIX|G{w%&MdkFz*6fGHn3%e)j?b-rZiiY*oD5_Z6EuZ6f;?GqH1 zS95TR_js23=6SD#(9Lr#-HJyH9-_CNTGPhbmAp)@CfV%O%Wt|B8)Wwmr!a|3k$~uE zPaTp3`Hk+lNtt>0C}rlHm5Vo58N{ctXr>BD5-*34^#*%dUjnt;MQe5M9?f63z=t3F zXinMkd?^r!A0ZoDUk6)eqNM2-=;*nGBJ>X&pNc<@P5+8UJ2Ptfc=cy?H zeS=?ad6>k;I0dqKmerdq;2?Qz&ZdpsclzcYK@WG@^*s2`c%@xHuTvw^t9Iu6kmGJr z%6SUGYNR7{xkeb^!4jm$c-|Cwc(55*u<0RJI{683^25wi$$TQYG8-g5o!T+=1JQ+y z+0PP|n|VJ|s|9i8fm>}u^LEj+C?X?;o$(R9)Kk_c*HAedOc>j>snr(^XAkAuH|GD> zRQOLASKaF;syddhY25nqS)`7T5aBj5NtbDzu^;*h@XQYi>{h5$dyCNGxOGXU>g5RT zI)R{4+WG<&BpWNJ`O@MkjIw-APkRHxyQN)Jzdy1-&23(@C~kb?VLjqd$m{E3x&PRmDYhFv|H& zV^E&uDq}ikR5R$I{Foy#&#?c)`ry}ob7(cU5qz7g?ROLIN>MtvZeNcQLyHp)Mzglz z4}VVMj4_Nz@}N#(Ve=x{7dkkXnmNYXz?8An7Qg)1#=QM#z{!L6z)UrR$zgfrjzX3y zhrxr1WQpwltm#9vX0^#BO4+(#ni#3_bC1Bxtofl%Su}Iqu#h6GTkI=*?AsQxlxS1# zboiFTvZV&kIAo1aXrUQ^yncRtw4J##?2VQ8L14l;46K%iVVrs!X)tk+N;o&&70q0g zMN?SYI+i^XWmspU;q|=!c;#6qR?fMEmp5j1JN?h>6jxMUxM;Uys3w)3;&i?3z1lZP z44T=7Lh;vOj}$G%;XsB`O$LJ&FB)>)>fig-fI^K?=jS*Mchl`?kF``s^Hmv+NiwRf zLRJGQ;Dlb&@mIA6z0t%;hz?eVMuER56@Nq%EVGv%Bb!Oq-(2aqlxv zv$9Zr-}&?4d}2#u^&cvRG7Gv zCor63sMfhm;Nhg#17FU|Yg-G1I$={dy_%EnZ%nFwsA%G4p_Eh$m8OT-lvxGG1O?Gm+8pv z$jNtVNN79DuT0+^ERqo#ai=nt#`7t|9X+M^W$j{s;|~zuED=ZPW7}8%ZeVsoVT=|k z^0R8T?GjZStb#r3uVOt*Q{T1i+`K|k-eA0f@}B8x!(?RuIN-6vw*O88f9X2W)0I}ab;ZQR6c4q65G4dVvC*l|0He57Ut(OsJKZ2uV)vbBlx1Y%n^&Wd+UZR9n} zbyy4#H7R>|#H*XBjO53DLfJ5jmr}IgvS>ih{4{p71HT6DzJ_2Jd*TibP z(xPPJq_W1GtVvZkt9&Nym39FA7z3RYP@0VDJvU}NVq`D7kFSYsw4A?$I=|-BU9*}HqlYG>a z^Ko6|Gf2(x@5p>p3)s4_ikMdGM=}DZz*&Bh`1Q)QH!jn&1w%5W*X)e(Vw%=3B8jh4 z0ZB%GEtn;~e7(Jy)Sv6OB&ZB}*p&MFY0ar?Y?b})Kg}|y25fK=7Dwb`*3&DSlQ;mO zZ9RDWvZ`z)Z<|bMed4PLgU;k}=h1l&HOMSAHwsqaYQQE}+EYP;9|2!`nWX-1lTN%9 zJo^Q~{so1<4v_Q?d(M3$ouC1#s!=h%@De7UnNR2mc!%-J}Wum8eH3|XHoFxW+ z-qK(T+tX&=*}+Mk4#ZTY%Eh*_$_1(Dg!qmTWWV-cw!XSft_2XQe_lOyM)CF*rBzsb zz33Gv-nLInEZ@QC*&!!q%MMvjhf(pdOrN$m5|(JZRCphpH^r~oM6D5s*5`zkfPRjy z$#^Q4_g6lN&IF*eI=1f;0+I(=rt~jq+K^8OhMf@cwkDQ>f}Ew z4m2%dt!(~sGpsp_9Z?de94A#mNxEjaC+LZhyMA;Ri8f`GE9m723+jI&01Gc$6p6FB z=Q$Ch!g=N#7;}{$m;5-Q2D^~xN(M%y_uy*gh%+NdG(;8!M;fHQeHOhOYDw?MWXZoI ztzM7hu}7o3Ej7$d5eWvq#hFL@H5{)p;&wYYuH?gCr}Q%1P~3QcXZ32L+Gjr2N^|5? zACu#Qf3{+&M34)^o(b}CS401{Pwuuf-Qfw+O9YRfP3oYS%xA+BfMksZjtH^;CwpE*I6rt1>dwLlKEZI2z3v78ayJp;o8o$ za56-@O^|rk5(YO_yA#$*{UUX{_}pDh?()#K zocuPw5>18k1xlB8UEe{YCNB&dlVd&o4x!DB^f?M4Qcc1?vtWC1JxK|7IHC+6@GBSR z$ab~;Fn1UU7o>&q1w z>(ZLt0wv2eE+fimlK0Wb^y96g4Z=Q<9j)A86_(yQ{(9zXBM%J=O?&NCs^4Vb<cXo6YJzklSvhdo@Ev&sf&%g;Y9M}VWzrJ^QbTrLgyh#or&T-|Sq*`(Hrk=id3xf- znGa)@L{c#@a|9o2WzHKFisxm5zKyHUt*-;W<3*u$uto#A9YOqr@e;2zp zlPaGvH~s~0S(2uyUK47@P}BnOB)iRA8W_-K&vy*yp^rz$cE!F+?#ZG#zLF^lzK?J5 zJ7h^ZBDC4IIO#7AzkB_Q0Z6WA=&joqN;mm`qjdi>2L5UP|2GqM6hTDa2Q9C=_7#6n z>ds$UId+auqbw8BEbU25+g$+Me(Fz2N>NP{SJRO zPBN(9z7@J)wh-074Y}BCS~{rXiozoV9csCtshdayLJ$q9VxoH@_K+5hX3()z>-mt} z-W2u*Y;`b6?zMj31@A3-GoRX)qCR8lWAE@uBh*Eyd}p&fU;cpTJd8HUJz#CF8}%Xl z(>Bm-9Rvh>5Sg#aX;Z5rR!ZL_GJXtK<}-IMG3dBWCwq5Whj3`|gEs1RQmA#uBsp(9l_rL4((jmZPb)+-ROrDK zmGSGT+eL_^Cc$>G^{_X(8G~&8 z^;{ox=CKBAOh2};tAgqAA4v$u`W!~%iKa0I55>tZQ<36hgJJD{g&~BWjz%6WQB5ks z+OAVq{W0N&8f|+#XfG&t1{U}&hR_D?zJdiEB1v8_+{pz^q>>oJzY>RsfPhIXQtxQ` z%?n}(FF7pArnnM+9K)7t@CB&7`7OCIStMuk3i@?HRnFQ{@kU6l{c0~_Iiwq>+X*Gp z<{|Z0u2#Zvpd2MxZN53j-Bj;qU+s2&&S#6z9?9yrnW-OxnYnOwYA-a$%A!j2B~~n) z2l!?_<^Sfm&*BJbOIG|qeKv(e8srUXkAjdoxQaGT$3OCri7{393h*6*f5oJ}Jkf+L zzU)J(aR04m-+#c(|09t9(T6o?K)B=VWBE=ddOtiPe`$}P`rx1l6ZZ)vKy1<@m>FDP zBO*%t8g@qL-G*D{X9p4x*{p{WpNC zT^aD@=WB~5zW>BawNaJ>bU9lMd6~2ga{u(5PbCUrR}Cw&u23hYp(^?K;fJF*k z(sD-679AXOv-ZP9%>LKcWjlOukGpxb?~G^!i}v7rgkkcfPx0RT6+6t>xliS=2nQmNv>S~i z&8^0>U{{bH0eu2q@eb81xmxHy;lC@p!DUPGFlg<>V;jlE7_~4!D>ARMLq`v0^&0o^ zvE=960Zhw(fRDQejwh71j6D_FH|m}m?gj9k=l$gAkQ7h0%em~mug%8qo*?{1H8 z7N6;%zh!nV3zv1L7hp5IvI)zHg5KhmwB!3Bx~6yOxO8f(7Ombg<8MI%*B*o z;;KY=Rak8GJ3~D@RXH+2CST=Eq8D53#k&X1)Tmk-I~_u;m#@}90oE{8Yb`OJqTQl2}|^B zSPil-Dmw*;2mU?~<}f`pHORkXA;y=JmF)G5eamR4GN6M_QvnqZ#N&3PR^_ANy@>9ty=k<*DIu{)ecMt^5Q7o;+SVCzU90^Smp_NXKQ zsSeZ^63gaUy>@Y8J*iTIy!E1`jbR#Px45;ax;x!b?n!=O=%3w-xQcE66^Z9EY z9xdLudNUstTbubY63fj)8!9UXOg2%ebJ2d&O3srmVYY!QhH}efyL!k*oKd(|Gq{aP z=)J6y5wx5G$^Fa4M&FX^DpiT%yY#a22)vwi07a)92tHhyluy$mcHeVul=1jcfcY`j z8c6MVgW?8~O-_Q1Vkv8*O%291d(I89d~XsaLow?=CZ#b&Y}cbN-rLp#jGsF7nSVLHS0|ynH{u z%NtD8sRYbuBv`y29yz9@JCI(n!7(nW#$cEO>#2n%xiKwgHU*cM1$=>&dg*ntKeLqj zoGt*(42LqAP#21twKW$#JAuN{U#)BxyIo{()S;qsjxx1$?liQLW+tJ(Sw|iFs@VU& zAkOkTC5f`vxMZ&s=m3jm+jNGam`oa?Oy=dw3h_%(R8&6y81H99k#9&6b)cws|H6FVgnvPnms{?sw zSL9ym=am+Hj!A#g9|_#GcP>Nv`Z#zerP7m~H{T45#(jN;@=}j;Z@HuumG;p_`yL6n zWOWW(>Yq?{*@0~uic(THSDyXdEXxOYu%e;b{x=wo%jnq)m^h~y)jKLa^SE@wV6GMY zQZ9TRFYIeG?WSyADXgg09yZ<^V5B%5>71^fa}5inJW|U(4A~R zk}L2XD6FhFI(S9wgw^dwi9c_K+YSksod68^IP``1s6c(#Nrv}bUvCh$Ez$J&*COZ_ ztFlp+k#{vM7hrTrE7XH;@U8y!VE*;b{uDQuS70p>Q^*iFB|A(Xi3Ed`??mxK!ZqNn z-ZgUPBcbysC&6?@U(O*0{nIE2E^F9bp`{>dG*6T+-Dx*(_OXGS% zq6xv*sMLon4GEgb0HCp`l`&MZj3;IO*|)AFFTywJS7;oo2sNJceOk=!LWc48ha#FC zlN2PA$XR{X@ut;G0khE8^y$P>!Z(Q5c}^gI92d5>t4cc|%9uGiqQ?~AQ^2!i*uD|t zK5N{7c?M$s7`9P-`J4la)tyD*3Pt1HHaA8wCJVX)F++13pl3=X zoWRZPkI{lPRFpO8(WcLfF>a8NbT{k%BL^mq6RMNKpk_#&gCvS2YYp5Nj7o;ToSr0Z zgb)ROC=i6no8Z;>#k(Z6W6BauJd3uMbMQJ}sP?zh5F3PX8c3}-?*!p`9L%tesuCAi zRTuSp*Pp?vA8j2}jf6#^6`2)3@TTdSH15{Ixh`&E`8{_85scz~Ele8R4zV<@v3s#s zm?rye*Te(Oj9i(U{pvd^cX3`s*Yd!SWzoJ*^)JQfE_*9&;zsml2lI8ASl<`a6)(2F zu{pT(Y$s#zSSpyJAet~J)4prM8+_;q{YhIje(GpFk6CTq2j^a4b@P?v<=GA}QmO;h za)#}ODB-rVd)g<0Jb7hFezLz#**Uw!f)@YK^85+6ak%-fg{yv)0q)LM7ryz`h5s8d z?|&4o|FGXu`a1=jgz-P;$jUZ$vkZv7wxig{N((N#8Qs5nQWIHKc2L6oRM4PGKtg0+ zFACKTsW>Pc5cy&9fshHFfZizjI8z4tNai$ep5NBioet~XPamVQzP%iIX!O_+u&!Ni z8TJn9t~ohuijMY!2#w>Gw$Hm=M}HH#(y~f{LykFQB6k+IV2dyfQX^AZ8IlPj8G$~H z6K|WrEsS$3Nv2pn;Ww(Z>5t?N)O*Es*aqsx%14pZz^A0$M7i7d+&Y~#Rr9S}F$pq`d-jd#HrrJ7vQQr*Yeubjv@7IjZ8 zERcF6@aA9N1=cO`oOOAitAnEL4sj33Sw3h(sy{Y`5qnxt5Y;|svYcb9hc0MVA7aaj z9+E8%J2-5Y57H|Gxq4rj*wI4ad>>hTr|F8PtMT?OtGntVrNim!9s(cHuesN&vM1bV zyeWOKX>3TYaH(kmlpd%1sLlv9drcl{VdXu{Yy=M>odf&r?2m4te(Tr%*}C7S%-l*o zgqHsuQ$|yjz_{p;r(?IHW^r2`8CK4Ub*m6jVEOzP^*3zn;Rse}euu7?Dv?U1T7GnJO_?6XYtXN5MW@kDB{Q~+e zyS7px-E)w;oYt2ND2gFkO{zBrZ3#LNs7|IOfy1lvaDW`Tc1Q;Vlc_Q;*dawJLYW7xD_J2 zI7A=IKEal*wADBO4I-oMDI|d{N=rD0#9pm9J8_ znuUCNiD)j75w4zLl_;*D6aTi-!o?tOw&nCRz`lFn=9}Xxp1-5z#Q;ytpl*}nyyKaL zavY5)9^;`;OY__3Qkh>BSZP%r#>=PfJpN*~pR_u(SEd}Aa>D9V&2=f}XKXCPRaN5A z$8CZHUwIZ1tjH*QUQY>O24;TK5*+6Fnqsuop(;#C2A7~1T`5PKKE;N-uif~hy1Kg zQBU{aDKQHM`w|fi{yBr!j>35o@FX&k4Nj%{qD8N})@wBP_1RHLN*)FLj*)TRb0v%{<4z?j>k!UI}< z&K`9=Y=_{P38;*t4Y5KO-+rmstF1TS6w%EF8U&7Y2E_Ra9iq|oyOrH^s~D*b%yL?r zf|kPAMQ(6o!d*EqYx*0jZjk zm>ad~YSGjOM^f@h>JCKkH*?o?S(tMpkdzEw=EJjP8Q;&&pWo6A_~AgT&`qmt4Z(28 z*kr9!mQ0f)Jeg>4nd2>er(9k^NQu=;B|t;HY#9`!Ky$pvb2B$fUfYTL!D8r08*~|Q z(ThwIQenmBFChUzsVY0ZS2M_h0ZlwYj;w#iJIE07H=+cDwT-?7_>_T_;UfqON|>w& z!xR~_Nuq^{+H`r|K?rKENmOKISo5CTs>>}@s;=G&m$dfghT!3}4XrZ7)W$3<Ar9v{M3WUW?41ty(A8hp~e(KOxH zf18O);Dn5`pi89E;RvYmBWO@_(@>EJb%=xk`HHQDE{5t6+F>*XdD?ubN$C~m5^0Qn zCp;JZ zY%PU_Go9p2LgUImN)U#G$$GueJmXrkz3Bbs6DZwh#@jX+10DH@@p;?zhW#Y_p=-x+ z#*YVH+57iKo!Kt`;_WWIAv^<{5ZYvsT z5ijw>%*!o17iG-MYc2LnMB2>7i$C1OtuT%*Vj8XI9SZI6;450^OF5k6Ei+Du@tG9) zHx)i{{~IJ@I^dW-e`$uxxXp))u-7u0J`;PbML|Lwc6G{J`2i!MNn|kO5;Wzu8E#32 zdD^@W0h4qUGDT=2xEcw~qP63?dM?XkPKI$BNpcCW5pG^;88Zxu1xrfkl8>K^j0JLthoKQ{(wWYiw4kKD#{IR{bJ!GC+I2Gr*=9F%Uzfl6NT4Q zyAV@VF;25Uw6#bB+r(_P;ipPEoboHntlY6jDoHqx)zHClZqmd~wa{cVG$iNbm(V=) ziOm8xas;mP)spGdNTna0`ob(KJEC)R_eLa)MwnHL*Fx*8M-HaBTJnfQa3080x)j@3 zAdZb0A%O`2g?j#Tk+rfBMB|3Ncz4A^Un?Q5EG(t1$EDe-lv&%sXL|_`d#EJyEIwi(4km@{{RZJyFRMUOMCv9TF;V21S?bnc^AJD zS?va9nEEGTT(AXh8(s5A^hRSXp+Iy-HK%0#Q|hugLoJ#%X!Vc_5NGW|FU=)OEm#$Y z4g*~n6o(GWEo3pYmukA|9XAj+o8E5jsW+Y?(KT0t-IU1M6*ExR%dN2)bNDhGwA$(X zogmP=@d1L3TJ5nWjqQjgQd^KbxL(CZb1*9P;f->Xx;G=}5UK|U@ zG)RR>DJ0syfbRV{9i4KtiYb%}(MGBZ_nR0t#vRV7#KfZb6+Eib*~D^!CY=i$BsJ0q zOGo=j?(W;^CzEhTdHmaGw!;b4ZJIQ3RF3}fW4Tg(u!r?F`FF#aS*pp|YVfmss&ccdCRvd2tncsePQ79FB`!&I> zsHvz_PKC-mF|J5Q}=A0lc~?lfim6RVEUx6(D$q4Zw`O` zXf91nk?ToDcRc__Ipb%219aE4FR&oCL9}<*Lp1K%w{(YuDz^VkZq$5V(L`yOFpq&f zp?#6w`O(Uff$YGCVXg9be~Wrdzc!EyOP&x+c$vOy zr7s+^Kzp4!IKMqkNg~I+M6L*E7`JYSpBLYqP9xb9d?nzI@6EhizI|s3B(dg`$+;!Q z9)S-dH(yvOyagcf90&ioSPTAEvlrC3qL7=f zujzoI-GtVPdklP+45(cB|kt2OQgO`#)a_1Q7!3Z0-IKi@4FF@%jYlRX2UNjGo}vVTHr z`jM?pXG><=YH=2UD@FvSK&`LOlexRi_PjC$h|CKkLvhtX?{dqPNTtu&B63GRK}~A4 zI?W+pmN%-x$lNHuN>RvGUqYfM#SEE(sX30f7w2|gMu*?k{tNi%rf7IeYQmH3ov!Jc zP~chd0zk(Fjv+WCRVaoGxH>?li{aiT78UIl63c&TwexUOKYvnF3;(B@*2J2ikamHJ zI%pCuT9Q6%3-%PasJt`81CIZb2*cT%?lmF%!u8Lm?zB+rG$?u{+lN~Q5`%EEqU(kA zI#*q^=1P;xs6p|!D-5qpE6+q7?%^a-Hs5#!+55ws{&)86=n{8`7>0bs!2^sSaVXj{ z>CR|3rR7)o-lj3qce4F2SK%{Vn5PHvW5ztHZweR@t@b!R?Kx>{}kS0j8!?0;b3G}tTsR1ARYk2{Kwju~t-b)G!4JGiCO zjfm-AiDQHx)F+_*rj|}{RD+)>t5=WR)3?30M#~P)Man|nlt6oFxbYCO=2Q)x+`6ml zEZ+sOHSa~(dqL>3+@b*KF5NY;x%@QTy{PvUyzVjI)dcOPzI6ruvccYgO6#`W1p|!T z4{>-Xz|kd=j>9CSEz4{_N44;u&ZPO#OJR);`Em`pdx^k`re-q^JLayqhW~Wx2-50a z1)zEYC34v&i|y@6Vp-xp3XU>a>_2?h3z?}Tzw-ph(~tf9VfYl8Gy`gyND9p_dh!J39l7fcEl=d{D$+5F=e-gt|s%@8~C8 zujW)#W{BdRy5Wd8NfFE@*G8os1J-?DLPlYtS*8x7d5yyjgEB1x6IJnnqhDW8IZVCs zo2W3mB2PaH027)NEjW`VYvERieQfVqIW@kvyKi3}SeSI@xh)QX5<*yXX8E`=o(*KE-JKGNNox7$IBVWTHRQ>HD&B88njY zes0*n3p{7#B0~UUWPTU~*GQVY0A7$c)qncF*jcBvMcRlz(|s6aQsu zN+NFJxul3TQS;~eAoWMEutGKY`RFji0P^}^1DpPSA=QZSE49wTtY=O$9{#evSxuQ; zSsdBAuj&5tOF%Htz61kteL|Z$ZH_dlX%z@3drrUlFVK!mYB-x0ZyCC)y=UO9E7p{bO zdTW3&lC7a|R51|A*Qm3cM8=_!={z*V5I8}Zmj*zfz zNyLNk$lGgupHZb|#9rVS`-&AxS6n>?3JkvaoCIYSO$Uti_08ezY}V%Ork9y%Ab~Qp$5~dA8-yw__T}R1lf;=_L0(3 zS-7xESu}}VvB!yVCo5-ySiWH2JhBErh_w1yJ2C#x4>mjZc_oS2)DQ>_)@z(E#U6Qp8?sMqDBk zI`}DaFizGY&PRw&*CLH8rJvMFcdel>X3q>3%$t0S_H`(!ieVwiaxIZ>keMi!6iLh* zr@*J>exh|@e@dxWhn!iTa z^x)Zy9?Py&#@8$!k2>e@gsLGDF=l?H)1NHhB9!W<5e}owl7KQ9!f)J!Y=W3kSTEor zr80*RN!i^z8Vc$DC3r)jF*d_xi6-pKT47jeih-xcKcaDVsRFaobl~72bRgMqC8tbz zwc!IcR#me0N4gnf-P@&I$K#^=iFJ47jTE!vh1czkb$iw0`RU!7O?J@!d)uI_ zD!R6*$iQ-y=*lX}o2nLI`QA8rbD}b4Lu$E0YSz~t_0Pb=I!)$^$DO|mE?N_mn>g_k zd9l?mB(r#?C9{>M19vIDy}wOx^vk+)jXT;lZ$ued=XgKgw63}$rYA~ir-y8M&TO4zcFnN2yF-T>8Sh2WTC$fOaR$ObUYg2W-x4#_snW#~`+l%&kw227L2x2Kr+1s9iE$2b(dQHCw)Uh49FZa3GB!wu+F@$=IsZBA!_DHS1U~8o?4eQ#M?U z-lAC>BGj8MfPPkE4;RZagQLj@!Sk+H!AGLi-{ZP+AsMm>hRr9I2*A${ilpAN>`OpG zQN@q?KP*$X9lLEGTzA7)IhGE*PF$?B_M$%(?a!-mM0m7CJP*n7if*OI0_?_~pV~tq z4iU%YEy&mJuee_qA6%;_xYJbWzNFALQ#4`Jp{h`xAwbA@ls9T7Zewx1Wq`NVNDwOHlhqRYtGjPSQ}5R?JMuTWvU z>*|mE9)?~5Yi_LSyGvCbAdupV7x3-*G7StGevsMS^+Zu|e$w`Kz?pS>G1Dx6uDTR* zELrb(u4C@qSvhzv3Ym!AST|>Eby+Xfy|9@x#pLAF9b5xTC5>%3HDlMKi5WXyz6k+# zM-aZPEfaR$-|a46KUR;*qbu#RDHeS3o~0>vzOk zk?Ow1-v8m<^AOt)+!OU;5IJ+pHf_&354i8`1rIj9%f(|Ju1q z5SVit+%x4e-s4_kuZ=`3KMhx;P?O6%r%S;^e~bObDAgt8@kz{Z0Y-N(ooUvO?Gd9Z zoypa^d*PouQbr>4CoJ#2X0&peiT=amjg@4vHq`h_yb<`29H4MRv>&q!HvXIqLI=N2 z7*T_yi<3x|q{)$9=b#Nw{Se&`*w9acFU>WG?TcH=FgQ8-v`LN0LukgqcBo@!``@e= zenmfi+bR9{fr{`=8vLIx?tiVT{^Qzasam=st)OffisOn$TKB5)lMLgt4T>>9!onLM zBO2NX&;|cY5fw8ZzF);9oJpMvoe*pC3ROX=UD1@_lC&iII!pTr z^$PV0RP?@$5k(}4uCRPR*>#fLF=Ls-xWDt~^WFLf=bbt>Twi1!nj^*Z$SX~Gs;Yij z?SY&=c|()u8_8q4Op-pI><8ZrZy#@^``TIw;|` z!}c($gXh!$QdcaU)VREeF|5iTYD1im8YQCP9%Y4kTdSEq@-wK;mL!zI@5qDq$B{)H z#v^jI`bX|GO*s@*>o9uk5X^JG!U)p5C&o`ldY4--USg1G)92 zHlq1Q(OCx;9&;{a>b@;smb48i=-Qjamod9SFSdmjnvt!_+T@c=LjsCg^-hD-XF~n2 zJ3J>NFQOMp^cL2Xlfr|AiH~aiQ4^q?yZ3#i(C;xC^M>yRpfy~rLsB@)W!}Om5)^6L zwW_Qmom~a{=AWU}hfQV~gRL2! zQt(m9sn?}fyYTz!;A~`A*>_M|jM3)0aXh;H+|gxr^7|a*u1n7f%?KBdM;?zhRIBzs z^*7XFx?*^p?;{ycL4y`87Hdw`!~lbAx8TBd!Tzk5EpuXYuU^xGXP#ij!>AC_b=96s zLfD{alWFS()$36a5z}sDrpVWY)22X&$}c5GxhZ#(<=^S5c7ISUXgeu8F3D}URxy?$ z!7SRgPHGwX?M}aap>$tusKMA@*QxCSIb2E}Z0#tjmxB#;h$;-8BaQ%Y&nfZ zIu$>*rg>DBIiq}ep5={++xL#yysPi8D%wp~ppWL#P^etSs!Z8XOpyZA{B6G`V42!$ zgTgy^tN0-`G{gJ>*t2*G;3LdaH5wkSYxx4>Q?cjTTD=E8%(U4Xf|)&_kJ7Vp3-%GG zXj!C)$xp+&ivup?IYfyA^Vklan{Aifq2z;_wU6$JC zL%%fv5QqGzB0F;B)ppNcItTuHf>xiqVa=|Xx63lM!J)jyHZfkN!NYvB^-#iyUYn|| z>?HYw3*RGS@Tx7f1?Sp4@R7?5IlNu*VQh2G$iMpSw?&1IyYXVj_1l#8?+ncOlF|F> zuVFc%Qtc(L$W`IJUn5>V7c}*;!Ddsz0F#F;m}ui3b={ph&v&F4IK0)Im$D{;AEo4D zTG`g~d)7&PYPX~JZoUP}UBmG2wJALW03F~pi3`2m7;MpRva(RpqRUnq!WMpO-vO{}@b@xaa~U7p<+}LaU_7vmxfLpBWR~~AE#pid6E?F>z5osFForBw11MK13$*o! z+^q@^A(rpK)f>@d>%ThU2H>CQ83nn<_Q=0v56QQ8W=s>^W_Hc9Ma(YLtMN!I5!pr- z^vCim01T`5e;G+3*BAhUrSbP=g_Is`T^>lwUdZJ#OHk9^%-qKSZPx5e@OXACWUbZ) zR%4k-N{TqqH>iohf>8Nn`+od-QQ;*q2)vOh?(XDH zx+e+lFLPq(j0CGDMC@*IJGsE*MZCXeye!jy+5;fKEyN2c)a`I<4#UMZ9v+yyS^icL z?_Gf&b}t`QX7<(iS$2G$`uN5s8@S?25M%0Yf+^Gjne?MnWUQOiSeumMb11S!Y=>3#jgp(^7G>EOG`aQ+84oU+cKfwB z_O!+t8McMKnUI&3x5R(3zz!WG@L0YkD)=emt(rs!M5>17R z&D+U#h{?g)Ca#L_njZjfL({ubSfZv*A4;Yl^3gME+VMd|<3`7sTaMe$?%(^=CV#$8 zT6lkG`N#GC{GMC{qO?_(t4ZqNBG|H1QN99iX;3v1mNXSQL(QeLPBnISxzBuvhy*o?RT zS=oMpvvnM2lb&4B5o}C>4viq;MNn~F*ClX)09eV*X#_ENz1~pI_V^jRkR}%wEs4Iv zP+ok!Y;BTg*`hWbBqQP3{5wm^=Zu4!d7#ZU{Fi8-TYEv#BpHo{e56aGfeKGN5~LdH zesO6nOXb3>y_NGy=}|;*%Co`7o`WmSXzD>AmC`B^!7%hg+3!H}m|()5js{sgUD$f* z`d90g$SRDIg8jU3Q3~7#r-||n<2oBL??R0!-9+$C9h8t}vJ0IqlItbuwPx!9dNqH6 zh5=}6DxtM|_4!+l?nSyt1egMJ!#NF!Tj9ceN*LV(EReATf;qYn4454PLHx|l^sPoI za#P<0mO_WFZ75MeObi$f1_~FZ#5zy^1>0!IygYvjMjLH+;o`fqdGl6(ZV8HvWsTtUW}XGQSl7!311wP z*>K&i||NU}wogp?qfvtN7x;iFxqe zg4bae(7+nnDTYX+-?pk;0WSgOYneF8gVeO=ZMrRPuVPjzL~i!1MljQn;1Kw4QiGvQ z-P0)EnNLV%e*HIhBq!)DEn2#3jAMog^b;{Uym5VspW+Pn>RLoo>~GU^B8c`BZIb&G z&$!nQC84_b!s|TEn0I)y71*z~q9qckgnfVwo*9kqF+P(amh-Z}kLojwBhG%yKFckD z_i@a1RrsocFc@b2+Wj5;+SR~a zSEkwo1L$Ty-JKu}*n#Kp_+HezPlh%?D3$=uhkg0Tf!%n2X_(p?1H{*BwvFDPTkST1 zQEQWSZYY~HqEe{Vr|HHIwMh(GdR-GPho~7~%2TKlXpM|yFGc;V27KnkrQr4AA}9Fz zCsl~QKmjh*Z}RdtD6sym4DsLCy8Rzcr?st-u@$YbzM5*a?#P2<%|VpNXle-+w+=z#&NpsWb@4!LVGONLbc^u0+^meP+jplilG&S%_X_H+F`oQ%6309 z$ZPsU%IX&D>%eGmDOxA&>$GT&N=-jIoCp0=r^p&c^eN8G8qfVQF2hu=b8Jr1_dG2B zX&VM5NT6Hn7>!E$LYoel>DV&x5Y>S#>T7E?O&0Tdl$P(Ze*(z?k6e*o@&#IwUTY6{ z(~*jk;C4zIuyM+`Vtakp2VU~EaG^@M9YI#71v3goay3sB`5}UI6l4!x`XvG z9ei_}1WGNS>T&9(wE}EJzyV`sba^jUix=-^lz}$IW5sVjVd>Upl-uDwF$@rT-crH= zGetM8?R7}zjGcWLiPBt(9d@-6O7Oz&3iT})Em@04XV%AaFX2&T3g^^Oj*c ztEjaDPORE*aD&c-HGbKakr4ei>LluAI%!$Y=&zrMqvJk>$|}u7-pq988PDR`d0Qmv zL}wY~R{=@mv~grpT|)P0M{j-(l5yDhX?=7e=FX5vg=rQY`iQ0gP3Z)f#VQLziMh`^nHApI?f?yobmLxd1T!9`lb`dh_Kavfqy48VfTtCA=WrlKcLa<$-@f}kFq(_&5wU6tFoM&uA3NO9Ji0M zr>3foLa9Z@)|62I1q&sYdZJ$mcm84$rb38nwhk1Ny|HI2@vt8cWL!ZzxwmIq)4@)# zJAU8Sl22CscXY6<>PKqoH#hF~n;XabKi4h)cnGAOt(?s5tc?HCBy@H#7Irf<{uaox zwfP%)_~yzH^22kZ82TG7R#xB9yfk(|M)Qn^{?y^a5biweijuZEa|+3}as8yqL4DHa z?TtaSB$1%|8TvryTwdxZqpT=9^XCg_b%Kyq>}Cy1JXI{|+iKR4daI~) zSu0J-I>H(_!~RQy>RmGlA%3yl#S2Z1O=VcpG%#A5E;uBdldAL}A-C(?!ksJ;RtERO ze60G!4=G!W!xU#?5e$rgX}g2RX(!Vc`qAdufm({QyVLo}bvya8c5pPv0&8zAv6iFt zLA3FMJRb^6OA@zy)Ap@%sfL8F)n0B5R4@eHfMxb3n$iGD-mZzfe)iC5`vnj=TCbhOiD70~nkrLh&uCn=-^T}*am}5S*&G$u#3-e| zoeMS-iRhUaGM<%o$CuSxyKi2?j}-p=GtCR}Jo&R{jfZqh+5~I7$@%N3yvWxhh52sw zOhgSe)hHk(E9^Dyx0a+Yvyb0vi{sT>GP4kRnLenq-<9j6+yJBs$kU$#TtK9nnxAx^ ztc$I7Yc+kEwMP}hT1P_|A*Ta+Su?o(zQ*7^Xh&q+;?$*-ny&DyOcJ5w0|ad06vkH= zeB2_`bkQ90-7l#+VeReC5%bRV-VwX90I=Y+aHYfM?(vWlf*#op(QUDD5K^cw=fAwl zOOJ;6cV}cQ(f4>YBUzt;|8Fz$SA0{puEZR^FLU7c?>|V3{=X~-x?lw8p+R|heF)_H zkd^f6fT=-{Qb&a#;sONv?U12+_)Owl`B??OJ$$ zd4qfWW5)U5(gY6CZSca=_3UD@J!u=wdUH4ItK$yStN+meYSXz9@%+8FKRxQU9)aYB z2X|vS&B*2TD+JEt4&N&^#MJT*!K)D!Z(zjzB`{LfLwr|}%PT$P#O);#?e|Ni|IFRU z35u6rPfzKt`_~sD926ufikJGZYU*!g+V0?*iI?C=TaP-p9fe!#?4E(g8;TcPs4cl$ zZ;~&*VYn{vJyGZ*5RfefpGgYeelg$jT-9M|o$k_Iq8UlZH@9x$17ZkHumYgE)u9Kp z`~fsluzW&6Af$s6V(bW$skYG~f#FfnNGTmwMhyxBR0fQ#$+^sV$G8WkY?enQ0|iM8 z2uTxKrUsxiDVCa}C@Ycv=u_gWa8z;gw6;+_iHW08 zIqAvN3A0!KGR9Q~AKTKveD-t#O9{_6^h>MAp8Wz3kKm8^pVE?YCZfN+7&3BYUw`no z(_tsf{vKpGkoOjrL~)vT?j)?$#<}jZ^6#vS!Nl;c?3E*JOhcA8%JcG4=@%0X8>s6v zH#+tJ++aG1Fgeh$P+){+WijETtJ{yEFN7@ixXYB1cEutt|q{Yp4 zwE5jnS|x6uH&&TCOn9s|UHxqKkcHT@(kB@T>=FhP4U9Q$HE$x)S%{-|5C$#sxVQ!_ zZ4z&1v_LjGAHGoQ(P=T%S>%b!5l|5ZRd1&U znOQuGo_T4C+!328d2GzCOK<1pywIhT@?CyJgB!w!02@*<9XR&ykjy&HMRlj}3D_Bb z$qL^&fPttwawsy*Z|lsKL5WoICv=8Yn#v9hls zUs6-BTG@Z&dLM=SD&D_&0lQm)4<#}8;|h78Xz#O4W9}Y07mf)};Ch7kdNUwVyHjEj zJau&emVos3I*!LZ**H`i67HC5Bj+S&tT8WO{ef2k_Q!UIl=O_E@y42ak89vbRRBUs z$G3aFYhUXyT!+)ZX&mPL+PKg!>c&WyILSjnVIt~mLEbPi%g_?b;Ml#a+g7W zPZY|%k*0mfva>r<=(#NpYxL+vT=Mg>F-_XhfMSbeU}^oMGh18?-1g;oqY!oM)Ek(B zWO^{wZK6uH^C8{vGWl2hjE0g&iLFsY{CWOGZltBEoL>7My3YiA|F1fQH_cWNfOOBR z*Fx^+J7~NXN-^|YXB3$^R%aT1yyLdKBu_%`iqgIUbo{ZAQ%k(5j}vYG#>nyxyRAZ6 zh?oU6YPTvPyrEKR-$*CMre=ie-HF@Hp!Z@rwRU}}R0IR`5%s7h! zPgOY_=$&Bf&7(FL;?@aoEM{878RAFgKEZoKT1pcV_BY+Q@ZLtZAx2Y& zk%*e`d^%xl(MChCdxCFawUAdsZi$%s+ra=PXUB;@?iZ}iLZKwTHEau=MpnL^-ir+1 zJ+e-*D~9z#;cwszWFw<2XT1T(!Tr1<`=8moMM123nwI=l!2_^k2gm){$gykc-R(n0 zda2k_PF>gh9=OyEvh>3n>VN2(VQ`|!V_ibOx>V(cl|`UB_vN!7HE|7_%8M#53)RBP zC38XyVy@N#v0VOwQT+wOsW*V4rwFUI0J_2F=CVPixx80~^g$k%6+#hax1LNjpyZ&P{p-`iM?~HhN9ox|DFm4Lk>z(0j)Bt&I}2aD!{EPlJxd{=NPUgs zw9TK2DdUbQ#TCf)JJA1!`y#{sFKqa}l)>;ll`!ROiY?)Hm)YtDU@K~7AOd{h*Vcq| zN;x}}l}pqw>?Ptq#HxGQ_c#vB1p5Sma9jQQ{O+q;p@cLkx!5R)hPd(enhe_h_s150 z{TVq@4Lj86-&;-egb+1U%qDgkDlSj4<8pyQe5XpvTzD^wyDXUJ6wBfgQc;MJ3 zKX(26C&Bi=sw!Xo?H^I!m5liAN4BwwoY`&hWAct8Xr-3rBBwdzxH^I^sSe3Cgc@26V`NsPQ_mYMoZh9K| zc^%`x<+@Oq7gj*W>8U&2H8a8f+}7dy`FSq;18=u3+MJ4nE-0hCt*98!@Ky9}TlR@_-WOptWYtFSx$9j1;8}4P1-7 zL#L~D!=W;Fw+UO+!zXX=TC773W|EJk5Qz$cD7*5K*_b+(6R_;Q`gM|OwOEmsYNPn3 z;&-{S>tybcxZhgB#ZViM(Lvb>4{M8cn^OLk*qp&`d~em|pHah~x0l6yR%so;@x~Kz zNh*e#9$4dDeC?OZQl1NsRLs19hJA_?rmfv($w*=|^jA7+Jy^4}PHHumOGb>fS|J!C znR3momuK|9Ju>k!w$v_c2hMbd6toWR)684UDB!0k`0Sj#(Nj3PcPs+gZ8fT;BeHxD zH3Z+f)!~FWqE%qHCdwS$9n2u1bse#!HOp`J>waxJiVOcP-?+DMSW=iIl{szB{lIAb zmFb6($$SetjgcxWqqjE|kA{vHpApOqgi>kwvfj)3qN4XkRMkN}u^pG)I}{@Ge92IM z!IE=kAPl5zh3*DEUXjAEQT6j-^D&}Oi{Um);GN<0sA!ZMF_m410OG8y2xZ2xE1Tp~ z-qtj6ExC7JQ@NnG=uaiBU)@3Ca*M0^jAP}*PbwCNF<32CT&H_rA=+eFf%AC9Yvmd1 zSUHzlo_Y$ANfSkmPPB)$zV&pRU(wUTD8vorsW8esYkl73AAl{4sG~4<+>K^S#A%m1 zn{&U|Xzm&~rfjVP;UeM-8p|cYGvVf3Um>$+gr6`7cxz+oWsjfm9UN&9#*TCe-u&ef zrxV>HtEOEN@pOSq?J!fqj5tibm5lk=+K253u)9WnA#~2v%?T>)%0Q|cbP{I)52ABd zfcFSRwDH256QWXnMK?8l>|vhFd0}Z_-R;ym{Tf{6d3-d(3f3?`U=lrJwBpFt1TgahuBae5QAQAwafDyp##@h9ta1`IB)7HBI<2Lqylt z1hvU5E~6+^QZ@tao_Qq99V43f+jH8dm_nie>oK|T2>afOQpp|{YLPlh*#N}g(7R9% zn0JrEHx3Zb0o5>P|6RV-;Q;Snd#43M-eLLg-k9>cH~#P30RLt(|I;o13k~^uniDH4 z+s_9-w394gUiHhD?{QeV!u~-0V5qn34sfq~7gBP3*-G=#GR;hi>vRjwI1_ai3Jh** zI^%UJW9#+J=g$v2KSDT`bQ%dWb~d|NlhRGss4y5o#>}vw-MCpKp49Xg`A7nH@!q6) ziY^l~JX<1}VCW}lFH(&2y!m^UjF>`39SpYC$14JY0Tf&!63^=X_-@&7VtN1ep^tJfzj6T z_+C*6*Q>0)Na`6k2xrM(%!PzMKLtTCp4FtR)&Rati zLnIW2-h83yc*SD$Vc>lLeCxS4NSZ?_4%w&5%v@(@K4jf^v1jD;bpQE57u<%dw25$B z9S((#!YPZHv`^0f(Ath#02656@$OF7pTIY?4FJDmxRp zihbi~BIzFV`N1DhP;|OM%5>||+P<2@aIY9g&Iu-f%`t&vIaw&oeFPd%1^^0X$(r?$ z$631o0h<(TINzL;(q@~+u?7(~O8_Mw)VXZkt4yo_cdpSauVQe(#Nu}mqv;t6vCLz; zke%RRyxyg1v!G6Cmms8y^u#_tUE-7pMs~?e(Gaw>gb}MI7#`B@%{0UZ+(1#aJIc;} zM6=fnDV>OLa4<`wWoxJkOv-FU9#9r0Q=?g`NRNLArpc`2!HesdS$M{xD%}K~FYMKv zQ0A|cYSi?gVT@DW2UI$u*XT2)(^0xRyv|v$J7oZaLZmREj?h_|YNA3daefUXJt8x- zwFxJNF}%Fr>0dDN+#bI|r(t^o!_El7LT@G(DUCYFQHVUC6U6kxcS|7bP*v$gec>~K z^LJqQu5Azz(ybnITQqFK4bZE|wRwg7Ef)8b)4tHfx#H~B<@HdaX~5npeg*@B?7yiF zb}#-woPVvvXV;O$Ev0`^vTn_YKM0X~ME~6xlDvtlz&=O6kut-KNK3vVLtw9@&*!1T z*C%;jqaYMLs9h9l9PboV-W9*}4o}QW7m82rlIe04FaL~C&`e~b-zv@-H&e2X!8sx)b8kUZ!`BR|2Rvfo;D5bdX2iSYuM?5Dq(6zaKOb@8Gw zqKX;JD#)qCd=wnSt-D4Hb6kEw;ag?_<_F0{G=9;oXs^|=9=>QdbpIjY({s(Czg;8g z6{2uMaN@BQ|EjYZg;o`a}_j`vlrQ4z-$%|6RqTy`mGhf3# zf8eG!JpmdiC61onPm*MNurQ4MQ2KkP@G!|kbYLDM6h4v~Nf&CCb(Q6guM>wJ?yf2f z1OSsWs3-VL4n$wUqb%`oTD(IFc1(#}-LYJmR8IKY_{vdKCVs{BS($$EE-UQjE&!Hd zQ&^rXHbh`e2*eW;Rfiu9?#s7EHzd|SbK?#rgDXuNg{$X_O{s{bC|H}S{AX%*P7ZI! zv3u^``9vqiys`J@GU=byZ&^!ODjaSiLLSS@6m$(QrQ0ilB4{>g0Mg1Dh>H-@!F7%z zf2*Us1oH_;N-x91^orjMmNNA!C-(-Ts#d|>gyf&bGc{{OK7`iJH8j_1Th@zxMF>M3 zE)q6QvXm5?q2omykjYY}E*uQ$k`qhE5xnT7wcN%OpF0?7)KYhU&H?|tdc?+FNYdi7 zrW)cgHG9UpgzIjc3P&E;J;7_RJR@_j9V$M4VHS0x6phvMd%^4$m;y&@Ik-1Jh47v6WAQV(#0N#-T*`z+GQ!8yf8ZUG=fXr z+hSLyhee?GVLg(ll}QrOi;Jghj2dAY9V%ZEG0r&iL~YeWaJ-=HGjO4;32xPwgk|mf zFeYZP3pcybj_a7=a|>{B#4a*I+mebH`06=zs3POx*SQDQ33j@;CVPy)+4(%VLwS)& zq!-Py`yX$}uq*+}F#jT51-aShV9Y=cKI=id`pq*ztle)pGTZ@vp!=^yR7J?9{rYzi z74+RMvHgE%X>l7DTTA1Arp6>G{6n}knbXsbn~K{1M!>s3XzVT&E`jinCg3K(k+ds@YBX`o3EE4!gNAjtWlbFG@hhL`;RS7WE!t zse~59JvZkJQqD~=)0oWetMSCWHS{ti74)G5#-~LG$~S>ECZ8%$58X^=l=V7ulqQC z&6wLCa2VNNe>yPA|D@kO-9QJwI!>FcoDS@@s?fAzSx6oyW{84?$sF+!<)CM;kf=W0 z(Q0NoyTUkt>K<2d{U}?&OsEPTaw=Lob)1&L3+jG zj}at=k(r}99;)LO=ShJdwz!8ke7FSFMwc!P$o2%uAI!C5v_KU+7z3 zYgCEJK2eM2uws&YXtl(}a`RB!TUXw;pP^E%=P{0+!+>TrP}8cQ_wvjAFmH`i%TRsW zVKYPcjF!W3pdb<%hyIL>f-a3mUh4js>Lmpo6^{X!n`jiKf_zV~+4Gms1?6v} zZQs*-`5)G>Vp7$ZDnWZ7{pLmRiS17>GPLc})XI4l5||AUfL)@~6z~k5z#Pws-a&5Y z-3Ju@MHd{9nGGT97RkC(LIz&eD%CH=h7TGB<7KT44*g2EP0X`+aw*PSL5H4T9v9AsiZrT_g8_@ICKK zYI3v8WPK|%s>x2PFCogToiN6u{{(^cq3S0;=WhY=q6v)Kj2=fD2jRHjhPM_P4DE-9 z?SOU>=Ch{9F32G%kA)Vpp(SO?AqJJg25Q;_?(=8wcs@%M8q0C`rAlIWMff8eP`(=d z=ff}}66m>I!ub?bKjpr=g0pCvswc_{La*zAW2!x*t(6}-+q5cC-wO*cGIWoS`0#|- z0!W@Aq?aKsWfbnCfRXWXo%+L zE@W2dh>kA@@N-Pd1}|V3$AT=t83f;B8+Gq1GA~tr;B?A3Fqg{3aUU%G+|#IUZ;Ld= zzeDDK%&~*I!XuVFU*prMhYMS>)qT{{GCGO?4-6j>JLPOYBLW%}au1GV&1V0=g+4#!BW67^E_KuQ zj@x*`9;VKp@7}=oJW(~gHVCcl@`&k;+w|#Tv7GLZ6JC|cGZe~?sVt>RN&&iy09De) z%f2klApx{B)YfM2k)KwG<^$&Mfkq|`j&km+e7yTo6KDRvPE22c=FjDee?^*1MGYB5 zIk*q$Cdai}S<+#l3jdt?gIeDlf)Gf4MzR#}9>MI!gLmoMGo^`h5lj<{11;vztwNctSUhstELzs-X?6j9rTDh-Fid*u7d zVi&Ah<}SaKC!eFaX#`H569U}S7&yhJ@Q4EO75&CzT5YX^d^e}2y#d#ucEud1(miJa zGqJYpoyHsuL+-*3R@gdA!ix-s$|FP8AlavjbI|EP?CQx(`F=&9gGAF(?A7>_xR&Ah zu?6`-_2#>{H#&gaxfX4syr2owaA*Z>`b>uAUNj$?&onktFj#YQap&n&Aqc?|rm|;u zyLKdME6X{M>o7%Lz{KjbdA(RzElkuljG#IvN ziZNoP!JFC9;rkTZ`Ps(cbR(7iP&9P|N(vwq~1HelqH%+2_=~gn%^Sc>y{A?0G@F5jQQ+YQK-DN?zhVBFs>w z?=BOIa1nnZ6Z3thI|iLoFk}Y^pD?Jo2&wyOdfIBXVSr!&QWT2R z3`z@5E*D>&-&cQBBz`fvjCCbyWZtmR#6|u9-V^gpBHHKr8+XDGN4nH(>c%wjK}^Pa zY758X$7Lo5L%PrB>k;xdO|UdSmz)GYCfD+QM4~M68_7^7qET_hgyrFGV$b~kCX}xQ z#*e_l4w|;9B(!mvTR&pRUDqPI4MU-RH!qaack%y%nU_rDOlD>-omya(FEY#o1Ex;k z>^eNJpN^d?n5|&ovBk04wxz$0mayKrk`h!!+VYE)D_RGT;fxC3E#B(ZcP}0ppHqzJQ7}jUJoWc3Uw)yb{h}AD z0fBmiC}L4I=bfcJ!i6uy+bqfZk{V0{wSnA%9Xd*#2GG10r8qK-4Ds^L<{Bi$dR2_Z zPo-MS>YsAol@r7|NYSoOxT(Q2B)si)wX`jmCDY6rhu%;x?p%pixFO9vaw_N@c@Zl~ zejE^xN@Rzp*-6wVzFWk6S6{%R&j?$CAI4qPpyrkvNG@})weEohmPT$jPJ}}K(3*Fe z%IhEpzJr3n0ETAad$tW;d+buyXYV&(`2atw| z53{3vG_JKvJiGOrY?Bb7Dz0)WJU9gWuzQfl<&@#OAQi_bBCCBh(K3$C6V!0_G8^bs z9u`buJZ<2twTy54HBO_M5`}2sAcfXm*UqxUdBizG)?$QA-|O-Py>roOM45myK^;`o7nm!gwaQ!|rD11$m&Y5ZUO~JS^+G zp)w&p;}Jeu4jv>ZpP8yBcc9=liNLa}z+AX!inP40R=JD7Mv}5pK*$C;`l_+ayWFi_ zF~`p9j%Q}pxP$B5>qpMWKGD6KOVtqvATYFK`4t^J zzaFB0juQVXy@=z%W{DdV6jT7z*%?&X8I)NVv~v4xHg8|CX*@$w7_`T~fB(GyUU6f* zz238-4 z0-6^P8Vx<=Yw0`?)PDuFB3lVOgRf&cd_7+~7{1xqo6wj$eQoxo`G0fDn*TYam!X<4 zC_qfRx3s=?Yp0LAvbjA3A`lQEP|PAUROq^5Sn3&B9@BQTI#x-hZK!97D24hL}Ffp0rdfa4S;PLVL1jq?8aa(S#ngFsQ zUsc4G>~p9Na>B%9X102Qo`i@V6~F$G1U>Lh&9md(Z?tApM4oVQ1nm}?6B`=t>rzn( zE)O_v${StGCqf$Z{I1&Y{{0F>{70$JwMnL~f*FbAC@i`%bYA)h?Sm3ZXul09@-KHR zAwe|Eb7#>u4(Kb2z3x6D*d^B1f>ZdPO3~4!RV(kZVNGgPMDzGILPc||+cWSgxgR`Q z^^Q=`y0%-QWQtt7Vg#l}PLhcS7)(a+di}CxiXx@QjNBl*1{j0%HGJd;>3SNsj0y=& zba_N|afN#OU^US6g#nW9>_*dt*05mb$5<1r3VyEGr^biWNzJ8%qM z*#(91BC**;$z|Nbu{W;Te+d00qv)l&MO*l#Y~75dFhs4?_=u`=l3)`WBt$W0Xp^3T zyiVth>@uN^{#dQ+iuUlei0<#$_^vykW$Y{I4}KNlKmO()|73#yuDLB7=9J;MmY9=p z0f!)f)ggh?P=>z4lTn$~(82Ca*GmI7UnMqB$r<=o_#$7ns zq!?h0vMri}{q1#rxl-rhqT=&;H>C3|sV1=xsSLxM?T73{p6@H${0&}ouxkPzod`=b z6Qlj`ZYU??o$7!BjLv9ZT2K|E=fpQquL-9XQ`SS>ZZK#w>Hrc`hJ{t8M=8Q!?tRofW!`%9#_0D-nmaodtHaLW@R=SEnFDGre&9g=^>G&gojM zPWbz#mSa(+ppzt%)X5|=OSdR$1@9?hdIu^Q$H)y|Uubw%PhCc$iJ&9a^;<6djdKUR zE_U5vCZF1;EE^AMbmQ?%?7~soQX~mEd-gtoM5r1Jq~?XaMcB-&69z?LJ?18t5g(ttI&8NL?M2z5EpGOl6s zmuO`eO4k!RJ!=k;_~Cwb6$^LhXQ_nEz*?1CXn>80!R*A@=YV~unkSsTZgMw<@Q8_> zy&VDT}bv|(qQlmD~Y6YoDM95wgCW3q7`;aOu*4C!OQ<)hD zV?@yVWK6PxLqBn7Z$={`?L`v{W#{8@KDX^3$GDUY&mFFw)Mr=qjpQ^;}s6F&ua5Afr<2p;NY zy|X_KT!5SXkhuGeR!?%dxxcWwLbJFkM4(gh5BVgrPycxvR)#1$L=164v{dlDwBFpP zLfi%6{&R>GQ3|a*C2tXSKh(VtiQzukkh)y!08$s0kg9!#=x73Ot=qT)CXK8`@^G7& zSlbc!<~Bhyp`MArFo9-DZsHfo3vpGvi`(ha1f`%_p;jmbF9|lCunb(;Yclolg#Gg| zd!w60e0!T1A3Et>fP=aoi?=~APU46Q!ggT@*m&)&zSY!p<+#bP8LZE4AKwH41^CD8BS0=rv6|zFpQsURMpk*1jr^A3tuvg zRxIo-Ecz7a)D;NiYr^`Cr&q>qodeIY8CnU~{`cx@xfjO@$@9(Gn#(r`$pwN49AtPw z^Z~Sovg1A~q~cb%H!Ojc|Pl$4?_ld9Fj^4U(eL5U2S@ef`GArvU4Y)O}RCBDo9E3-*E zZgI`|CQGYM?yTk<^}4PJt-_V)%CX~siCmg3ct|u5)~lV4R(-QWoK>pez59|w^idi5 z63zpv431;f$th%7jV78)c4l=oh7Q&%PFZ$qhAOZGvLdJD3XXU7v-^le z;TRY*l{ zhTYfSqo`6^pZoj~HEmtgK#sn5#2t7f?qldyDXJxZ6x?LeROrSSyvqftqCX#X&tR>d zIH2d+n1Y9kU`2JJUiKl8spEg6vL zt+Gw6Ctf8)t=}ex%dtrC2b!}Y81eIo!>u#c*O6`c2?tRVUWTp66Wm%%iYaQ0{`>Nz zp-q-$TG@OSFuu`bRcOOlR*K@_7la|;5g?o2-Rr}5L_lqU9!&E`stYUlS8S!EUx z`!@h$p8aS$5T5*?=_!LpIaO%<{ZRQpOQp$%zU&Z2q#9tY;Bq{#T3b0Jf+&+~*cppb zn)s!0RFYj;%8GBGe|MWX{&tl5FPF(d`1XzD|Hf_p^o>lFSBH5;q>owabmmB;(O)0| zx7JP5R&J!TVZ0i^W_)I)fMJF%bJn)$6=EpiHXzyCh=TB*JWm6-y29!S@Yp7fSbr>* zx1P0Jl{(fpNn0Oc+j`t^xZ)!5c-_*m0Wcjx2BD8IcgH$fWLO`yw+PTEiokLaMyBj5 zi7-JXeQQK2sczXL9o_?8;~c7>v(8k!=G2zGCeYT8PeyL{S21cY(#044b_tWYkW$rv(x2J}CTKG@XbcR&j@0ggRM=zrWO>V(fxA9rE&x>PTF|-{7t-O(6?8$0HDIM2;B`g2okp zpqmiQ2mho?$}5zwANaMpy7~i}IWY!HTvSOYwAQk`f_Gt3(Ly{A5`0~@b!o?cN%;3E z_(>bIG%-{dmd1+A0A7}C4T^;#7H?PB z!uo3P1G%z(V!#2z?Jw2f2LuF{7B8eObS`C~WNl+FnSs}3f;}K)++9NCM}zRNXgg^k z7T9c+8wl#*C&dAi=A2yu?qoZ$0V7X*y`B5?t1)#}vDM>gEh|U+$nPQzUk!_=u#T>z zo5(PmnfzT2&#GOpH&Q)k02`m%W>Tn!xg{1}SFqc5^aqf$(gBU$^_Y!>>f(Z*v<|U* z26B~!a~VYb=%o}UCz~I#bSltu&WsF&SGallaPr)F;w$Bfla7qHmyhx;oRl3RZZ?$1 zERrHkq=7{3w`QpRJBd-9BdukIjB7L`6>^2FVRaopq+_4F2FdmB#rcHdqG5`AMS}_z z1~)~1?~|L~MLWa~1wA$`lv@zu1GMtDsi-nxaJ$REiiTHzD}yZt z&qW7h0)(rDtzpL^PzI*shchM>jXC*7p?^ME9^*0l7SK2~=FUtbN8 z($~gEe}uqK5I&hGdA~OXS-8oTTcM9q!z#b^tw)s=;we`bx(>*N)rvDCCE#{EWsW+KM^brId%k|aXwEGuE*x^%A+=S${z}!i^7}9u$xD2+#+HZ z5HukSao*AM*K6MW2EV=zw{Zl1`KASI+EnEM+kgW>l7`Cf7#cz?0(U`0uo|wNT@w9K zy6GV(!j*^Iez2F~^V2(Py`R68`N0WhPgSs3cZL;Zt2>T=-#Ao22o;LunEw+&wx(A> zPN1vmG5nZIyaTNRH~$$(Uv1nyWHUmpZJ)sW=}BBgcIMW@FE1*?ck9?K9OVW~?gO25 zs^LT5;$#pPDZIQ8Hl1moOYDiY;Y4AGkaL&Hp{8xzgGOIEylb~Gci%^@;8U3EBbU*Z zqk3?F`&mDFy*NWlh=SuByCZ;=gBRpZvMUn|=&{Xz9v+X4C$yNe1LO!oQ8Rs|1${1*Yw8;mw85be9Z{NMl@ zLCU!xR&uK?x=M2kM*c|yS|#Dw92N_U;lA55F-wzvb0irz8`WM^1iIg3GAvWE>I{_z zp0?_Owwd_`on(XVvUE}-YJ|O#!)X#V?RtGC#e8|K`pjZjk~K$JaQxVQog4c~7DHK3 zJZebMtOVe!V}&3Z7^JY0kD`voOofouKtZBluJZgi(FDEgC6&1J03P2Sb)R{rui`K3 z(?<5Xno3mc4#qmU`6cXpSbLV_tdA)r|t@c;5~UK4Jx{FtGneN9gI zFyYsSYG_rOzrx6Ps{1U-rxTX5MSBPA;A6JdNNOA*lZ)Z4iuk(VyOZUwmZ1J_C|Dj+M6CZ!d?-ykNyyua}bf(LtOaNq$hr+C-6u`nJg({^CFv9r)(N4 z@nAF_#>3cZV+Dy7{o1{%Px*=`-%OTDOSsvQXw7x5WSh-=taXe&d2>v_##jZk$U?b< zcx{~?84ZFW!@+Uvp~5H=x`>~NU5i0VKW}}SqfhK*61zZ#D3K*y@Et!*Xc{cl-9AAX z)HFdPL711b4kq?FX!w>nFB{*>F(0h-;OfUTP$*pVw5VCX0k}v{mjSCZd_;pF*ARKC zOiYl=G)j-dU}%u7`;3ryR5Ql9Dy~Qmgglk)=+SoKT<0yreAWP)j7yYzlo;*O_f?Qh z{-jNTFz@TcrZ)I@`~`^Y3(mN#QwZ47pY(V>d_&4}&$-jj->*Cc&UlRtVBAX^tUG-H-8(%QhUnI&FEA*9Amm2J+j^XUNXc<1P1i z>+TJ~B~}8N_=l9MhNy>KC)ZTF+A6$ic?R-oWVJEyqatG3zg$ELVJiojw)HcZO|jn&sv3zFa9`70t++-9tscCj(Y-JYQ2>SK)#u zIIAI*Ja+JQNRR*_UyS)pje7E6iGT76XHA+6#BHj416;)9a#%{XD_5;?K&@?h216DK zl)r^S;z-*(&-}g++z<70xts9N1N|wncm;)eYMC>MByQ}te=hEzHm&=wI6GI<90NV< zs6dNqN<}^O61^FImGre$OWjz4qbt(tq+jXXQXRo(W4im7(fQYNiW$b6u72ikCc}jS zZ&UDE7Z@<}a%grR8Jq+}Y3(J*+UxxJxeMQp$s#MSD|Xmnt0#}q?+Cm$PO=18F^@=D zb>uk5d|_7U{c<8$Oe-iW4RF4=d%mp*g+rc(MPN;tG;pY-Gsx7mEEA*Ia%WS$m(dJ> zFt;@DodE~qGNsC*pq90510UbTvZ~vDqGWvtZDq}zU5S@dI(#Nt4q~rQnEz@H)`*aF zhB2J_FPniE>cYJHvKgEIU6b1N?>6&iaTBSq_GK|}TxYC}r=aTU>Z26}ENRRL%Gp0h z1!w@t081kYZknB0DhP+7oUKTGKx7hmcY&Tr`_BjKw^7U`vNq7O**F}W-}a7{uD&@> z-)?WG2D7J8D|60QpXyHxw1&fg(lT!T2#xWeQxPWxJu*rVT%i`IXjm|*ew;<@p`D9F zxM9Wx;s5Olr(jr_9>jU+fNs_WzPh3&i1lkjG3%u-Bg8Xxi2oVvC^ZHmIyyky0X^)y zKxXvN4M`B+8BIO4@G~Jh)9+}8tk77|+DWF6E*eGBd^?mvF_T|_K**@JLQIuPfHK*d zHw=`YpPoTv4;;xmPKiNfiRZxjG2-N_9IUW`Y?3Xml>?YDIY>Or_Bg`o?}4?WG(m4b zHr;)WK(N(zOX;D! z=dpuz5W3~gwZQ1u==6PPN$4=EO-B@rt#G+(w&~!?uisULt06S-gA=OTXHm(TQ($J*r8+bOLXOQA=m zn`7hZ`VVYS{xv5W#PJ+1`U){nU#5fi525C-ojqUIxc@SkNWSkqyl8=2Iu-hTs}Rd6 zsxDhfLU|-;Z+ucFX(!M%&J<8!wxqc=cnG0Qu5RHpTWuROD&G_w4f^TW14NY*+2JSi z$Co2X+c(+tIu!k32P5JS21FO|SvaoaB|KmUYF$-H+ zuN>_83Z<@J_y_kN{^K8))CElS%>L5Jh*Z+}gE9RfEjnxkog%-lU(>K0q{*&bRsk$0 zDZwXD5|cDr=nONG0Bw;nl9pQ1{(MPujrt_MAYNn9;`!U;NnrjeBjDRk?RX!X$?vaS zcQ#ix*&{liZy#X3F4wG4z}7^~>q%q55CwEpRs*EQ2**Q?2)KI6)VLxyq4%lru-U|N zz1S^ZqA}c|0AKQ70O4|;#4+t{j$N%E1@*K|s_nz_gQj%O#exi(RmU$J@EEXRG33`23Z67vL-$oACMhrKS}bjpAj$7AtnX zn}Bfdp?iz01!&5platL8aLQFia~QuECNf&bf=VHBL*PmhEoSI!!>SLOcEk4=|L*>0 zBoKWDrZz%x9pOgun$yPiG&Y-&kAhbBt(b8}&F+{Wxd^l7CG)|s^s#$VJ-!#AItngdA^9F4A4=)*3@dq?exni8^!m2CP!N5fq7ovNkj*2_#E%v) ze}jk~cRT$%jXnB094+}}hF*H?Z2f@djiH~~g%9eOu%hY24FVB+$_1UOq6QV*$VXtS zvX|qYdIzRbeJ$87dBJ0JRB4cB7iTwX_!2*3f=gr{J^KZTKa7Jmn)Z_J$e$m>+GDS* zj6aK53ERf0PIOGPsn&v1>#FuWD+Iyemgr^a5l(CL=r=r+9#!@`a;#Usn`dahyEp8} z26Z$e`ZtRGt}s5u(0g9Hmi56?`&7Xo<|v^2BBVJWWvj7}Q)ICEzC*Ae zOyvfUP0oLH%dx+_ALk#v-};XL@E3h-;NSGIHX{$Uu%s|eBth9Rdo@|X!Vm&eeM?#Z z{s@~j`vQq1s|_fBo_@hk->Nv*KCrzyo<7{XNw#{SS;)x2l!>g#@zm$T^s(P(k22W+ zlDha&z{0yB28_Z(DYB8kgLJXoMw;+L1!2D+1nCNQ)56Z6>84n`I!Cax_3%{emm(v( zYdrg4u!7sNYSh&C8f!G2M(OLvRrhJfu1V(te60J{>0#C!7b9P}T_)Nm>YVfj0UseN zm3~*m#bc`*$sR%kp^UQSf=qF4Pg8BSr}Gvp%%Y^{*@Dyz;ys11Hm|<1N7o}LfZ&BO zX~6q4NExQ%Sb?qrKO7yIg=u^@DQGRl;P?$&0>*`QYr8WoB==J_3HkyoQjM&&&?Hf& zzEi87O}X&(e#S5eLxxDn#z;22sA;(AYjJV3*?pAatP))6k)HQYRKYa@dp`6mMy92% zEW{W54+8)K8e=~Bl>Hy8aJ>+-S^T+RrgJ>LCw+wZxbW`5*OiW(VkU9k1EsQ}as2WH zC$IRXA{a5VWd6qTr`=}$DDot&q>br@70ycnE+(SicPLj(X~-FiL=m~=-l=-8a?iza zV|l1&W@X7l%7Tz9_PIr>_)+ADFEl_dkPjlkv-&(jXepyEa|3sX+(l*4JMq{n9LZjW zarE^#UElZ8KZ=xX#1|KZB-`x#CZTVT-AEv6f@`7Ul<=9~zXpJ{EbPzqquj@}?!-iL zUdPF&PHJ4g6nO;Ws0(+p|LzaSLoc8BUv2O(=>KMh{MijqG_ta_vDdSA6Sn#PtN%!4 zt1lf)ByZ-G_SzjHICV=us%eC{>4c=bK=nWrN+wyV1o16Ydq1mW7;EPCr&-hs5^R(D z$>U`i>8|^5hSLb5sEGS;1(P?j5AcWe4Wdv?_80ue%P(Cyhpf8{hs(q0F7Fl4>0mHD zM}77PYE9^wIcT4b{$Q6U+OZ{SFx$W`O&G!u3(sbp?#OS}LGV2Tcu3q+AaqklmS_m7 za8T>kbiPF1@&`0cPjeS|^>|4?r=R7ieG~CEVe(-jt}s05aDCBv`F!j1&?H%g?A4Rd z0nHhj5|oH44rdL@27`c~P&2SU#gtSg6ad?Avd{r`Pc)MtO2$gq(A{aJBXJR@ceYK#I#aUfVU%>RPVGccHFMnL z)f!z@QW38}pnh>{JJI)Jv&}jVR=vUM=xK5z0C?=~wY79emX)|CRX8|dNoZgvFYdMaGB+(-&%(c&I+M(I6EM*1+Y^gr z8DZ?jEumX>>h3QnIS;DAr_y%`BDP%Ry;E4r${Da*xhi6KYU)99aVAor-HlIb#fP8j zeaFL(V#Ia-fz^)>@&0y#g*$j16kv^&XJ6?^q=)tMtv@ZmDF!Z*qiyd$c53mozz!1n%PJm zkfQgZfs7sS>Pc1pwl<650LFOKA>yPq-W9^eeu1ZVDBvA;gM!ytBcf8l=QPaO@1WxC za=)8^wZm|K@f<2|PAQ}f>9=Gl28oM%MkN8cOIK}e?>(i^@7<)TN$M+a1``^&fq`Ez zBLt0@1n{L)E(sHchNyk0746k4o?}gQ97A1ZTn2uU+5n%G zuBDyfU4P`z@!7oBO9uk@@RRaC&D2WFq7|VZ`$pT!Zzme4<)Q|g9fF&I=|xbsSh30l zki>dI+MpMrXk)vfN4c0d|ABo3g=|GX|MGF)$iO6s?T`8^pw%<#Z{hOu zaT_Zma{uxbqTyWmn7)Fdp;@UnMHFu2Z4rZdSoLiKF=PMQP=N6hhTa;RG51? z^56wc^DBqKSH1q3!mOX1A}}_$yzpS_$;%`Gk7Qa|*-G0B9IiMY?+(|U#ZBLmqh1;f z2p+J&6yiJ9fbv|rQSS!&he93(Jw?FYLs59#+_v-cUKvIXC^#(ZzHt}pKl=;1g*bbP zA#fFRR2>h#tPA>`87g4ZuM0UjFQtdsXY!rj9nixxt)Y zq!O5g>J&k!JjMYdIq>T#zota5yaB0oAPa)`mIX$|+Xn!?Q;DZh6u7cgv6N^QFjvqa z=9g6d-dWT<)eQPTAD>FZD*rFiY?OH89De>%_~T9%tUCgkXc78*b$Uj4GDJgu!g@V= z{)XQ$$FK4p#q{UqP6mqGxPpKsBFk^M!ov@RY{|xO_r%G_<{Wj_4rx8AE(fV$^@rR{ z7eb<_=!SF4wlxv{;YhOq4PBLZ2__BHfhXS!h!sEL!^uAbCvXKt1v#Bf*GQ@ zYMRcbay-5xq!^@!g&Q?nZa{ov8?Tcghz>ltrpre>uY1@a`GKS7MP<7?h{B+>M>GIo z+xjC6r3T624)JaF_S@NIaMA_3IyePg+0%c?xCK?*xMY7p;nT0@fA@O+z{G!*{1F_G zy}W1vN6~I2c&hHeR+{B=VTpKXG}VJ!G1V(DuW;>Yfne9Nd1SyngJeN|&rdj0YuMe8 z`Os=X`1r9}#gzefo)(rwX*m`&meXk!h!t!#2!Y928jIYYeEn%!W@nR2!bjme&;fRO z{#0%X6vUF>&)>L7wV7`TAnI&>>XUHu=&d61i)n>!)a=X_1M>%PBO!u@yaw)Xz|W%o z9o?{~AJrs&)%xOJL^;BLK>L4Kp30xh_^Dn?-IB(cps2GdxSK4*(X?$0U)wD>Uf zlF!jfw;Yv)xbMutRB!WEYgrWkLD=xCJp|NhrV;TsGVtV5X&ZUHvJ%=xY-~pbU|%M$Rc0}_I7-d?GEdt0f$Qp<__tkS*JN##iQ%$% z0>8NdY&RYC%KOIhg^TV_b&=v&1-@-CXp&b&{3xs?a`xPyPf0Isk3@6n(kWnHla{rj_p&4g{^+E0wtHn~Sw!jqkO7Ac)~l-Th~-eS$3Rk{N^O zh$b@>(_Tn@mT<#d*dd{?HHN#`_i0a}4!8zlx=#ym46=+h5pkhwPX(qNX_@Ny$GyJ-NC%S$`#kS{MuTG!|Lr4A6XXM(aqM#4eyYby$e4Vl%^IE zsrSns;V(MaTgpf>A6Cmf)u`({9hiumJsd<<9PbxmFOaQXwdVAg7g#^JD&(*u-{VZ9 zEK*grYOigATd>+<73>!B9M@T8r)Ck3r%`3$sAz4J6wNg8uM`M?qRbK_xmH#kCVoGs{J99u-5B&!ClkoxVf+-J?$@9>}k`fmB1F{ap zrQY+}cBjF;Fw`JXdXd5@(fmlj$9|mK@H=i;AjQ!P2F?T9haC74x*#5MP=Us3LPa<>-X2B1s)e-REI0lTM#9_!c z{bo_>z6Ax*FQJvcdo|y8IrrkP#&-JG3QPR|vseEavl^5&R1j6ZdUy!*ei6R)x$3_X z!;pK85Ud+O&5(1|2}AHos7_;`X&qAv7~)a1SCfC2%6vfToQ0P+T0DT=i#R!5rHYB_ ziUJNKGI>m{I7~Kmd9iUEW&3=-Ve(=;Gdu1AgtMXCQR399n)a!2##JwaLP(UmQR=Zp zA#?7GD4R|;l5oZU2JoC^X1-XTyV__BB}n3=;8FzK>-9bc7<vl;&I9Vi(hFS+=A+SOYAETcLJ)xY$xTYqTxn5*! z1gt)Eu<^+S~7|b8s7NDmau+Pcr90@Nv%*lfGLr&wdNW+t&P~`1QNzvbEB2D z3nGZ|Jk3E`2Z0ga*zg2w4>J>Ql^&6KcD}iGGpG zIiE>&Qer8~qhCX9etOD7(%Jn#8L*>HohbO^7^&lmmi z5*1cJM3NCYLQ(HqU=(RK#t0mWSINHGIzTIOHnX*kQblpy$|`FpPQHn&0@VVwh;vMd zx|&8H{W#2sey-s`y;>%Ro=IYZ-X@s=po$^1 zzNj#y8G82h*DY7Tjr&ifU~8K+)Q*H3^h&69)NU<6bX5WA!J}q;!k=R3EOuIhNLS6W zVCf~7dlOYwW^6ACtf=)na-rA?pDKw=A2g1yx>hA8+Bt`%tB4CCbNOi}J}4)-uLEkW zijFgZfm=w@ak$fxxhxwj({bwp_b@R0tRnQMt0jsFPV11qqF0d5~C8uH|!^gHu0|x?VrZk3Hr$HneFBg|i3y2WM9Ht(cR>oZtnPnqZpb9Ef zECkE)yc%F z1*E6>>vuZgX2-jTrdxT@4^bqJ_2W%64vd) zfnaw3c5ZBN{6N!mKU5R z(&hf+Wl1DpPqr)#8tnbDjiYY9g7+wvI^|OQ4eakxPOx7uw)G1!pMPC|{U?(D|6ms@ zJ?npim&8B%m3&AaK}n62W7zG2f-&TU8m%C}Ey(=fKL+z);XJdf!CIS9Yf-07d?KcP z_=dvXUcz10jPtzO{LPz!$H9iz{60QUFz`*Iy2LkO1)aPG+q(@qK|fXhHE zuIIYqyiibtWBIKtZN%nDBl3-Cb8q-CKJvl^t%g3@OZa8T^g4>(y`PBk#zB@L^-6u? z`1T=&LVD6#K=%!H&^`t_dMkM&$>xBy67X94X-r|$uEzSxjvv()O{7>V91z+)i~ST+ zaBwc(n61FVikO?be-us8GIVGL^aOaK_0x*>55Q=SLvysjOFqNb&8Q2GeL0O!LkOcB zFV%ip*_ET-rEQMjv{n**tZ zbiekP4ju3FWJE|>9Ub#UM0kQ6#|`*~6hcvm)O!I1ZoE&?U#w>;@}a-9!Xss3^!B@S z67;HPh@mUqw!5FluZflf-57Pum&7`%E}_E7f0h0o4uFRxVD}E{-SGd2B$gY1@uuzWjp(R+7cGX6v8RD6xAGN)q+I&O?{yQ2FWz2`XL7X2((PJ9*0DO z1NtF3_c+6ukW{4`?d`(a$gieG0Ha$2@B7DpWq6-B8wQat+fVzleS-f}hX1ntzsi#M ze~qq#J|}9V0J(U9s19V+@x*|NP&GmP%JK*b>P4lHfL$<6(k-i(Vmpd<(@_0?iR0aT z<3!S5tidao*y-JzhQ-1G zCeR(`Ocp;yg&vV_8Hi!OX7|@CrA}o1zR`G{-hMGXX}(d{GPm2wc;?Db=n;qJa+S)f%OsSuWoPxMS!oV!#*N0Bjoz8?p^(N4I7Sp5wJ@y-r9!HePRe%QLNUqt zxfeUlRi*Ij@tMS$P1C8O>7ujRse%(ME6@7Q*MBQZBEyc*1Ui0Y&n`Ch&|Aecz5$Ak zo)R?I3Tg&kutIurm~}CM#9_41;QY4);lAFj+1 z`;TMvs+J(smqylvq9=-cA#Z)!AFf28oz-Ms1=>6iiAj~FBfJPsI%LrZ6kI}73RpL< zQ$@<%1orc?b1!BlQzg#m%*CZ>Nka-#)pXW$ zG|U2oS{Wa1>S~O$3PP>+-+xCELm=tHU!$oU>!3l}B1_OlyQ5Ro*!^@?U_A7}yXlnQ z;1an#L)$eAD1kPj>m66Nqhg=hV_zKZ9S>{v`*E?^?|#0mCfGMHtSz#uPje!n9mE<2_ZSpR7$UVEHK~S$?lgSviovkk!hw0CM@}FVi}8+fDe}5jv++F= z>OR$-I1lmdKPuxtM#X{FtAoG38W-?iB_#Ggnc<%@b$?l)yp{wZ9TJzBg$Z`s!oq{c zyE<-Tg)ST}MQ1ZoLRpUdHC=_A0(~ldyxKDE_UB3{dk0vxpAxRnIE(@K9Zu)-ut85>UN8~t81&|I=dAhwv}JN`b74g78g$^Ob%W5F zv@0>XaQf)*&mX2^$Aa}tMuX{kBF9M~3E_2yJ=*MfE5>MA*Vg=!oZ|Hn&!LcpDa-5- zz^SV-#}D^5L3g7R^>p-MZoFk_xEgv!c##!de%IObmx5&`N~Wg^0BFOS8vXlrPI%YD zD^NUryF)L~A9g8%*ekM?P=)6WXIeKB3EKvR0WxUD%bt32gQLUX8%=PZsL^f$q+X`< z2r8eMdM}w#^bu^xm4PkW!55Y1vgU^{s)N5t?KW?bA60yyXYV@9p(q#`g{EVsSuSz- zfD-fTz8I?#NKB-YGnY%&-R5^o!|zgb*=AI8B>+lDviYM-VSc41jKXxF1;sRuL-HS? z5p`l^m9?J1Zzt*(xb`Y6q;Ds8>>}OnqfKuS=XZ%W$nhs$sr5w)O$=rS=ZJq#v{Yw6 zA7fu{`H$7Rc>nO0m5uEGwMggRNj6em>yISMHJ42t-Ws1VcU5EpM0!??bqD zeZ9livJSHf!LwV*Rq-z#~kVtS#M+tJF+(TVK2;0CGnFxvc9R0m! zoa<#@SW4lQT4B=oSFiXOh?*gn&4{G zTVDrT1SHt%h%k-9v9e8?$SaP24+I&Q zBRDZ_Yu{pk05t!gSrim&8MuNF95A2kP1&j7Y1{PG`#*JSlm(D}fk&<%G9nM4yWF0VL|iwMcLj*I>2fJcyj)x^SZ|j58;G$%ybXw&YN^Vl_T; zm!twB@uKU@0(Gz8Mlme@Vryan8Bvlj7U@g{qPH5h0JS2~VWlR1aBz$RIFXi%83^6; zty@-=kG#B67X#cP+aGS~0aJw|!-&sj4wc}~x~mOz?-rl>L=2)RaM$LN3#QF(<|uYp zt);|R(y8HLB-}@N?*Z_Me);S3WO~Y3z20%Qk1pO^zST)>7yf}Y)jjQ_&f~Vi>56PP*BPT|%PSaXnq^~ZNQ{ZmE)#6K*P5g-M+LddE zdz3&cJQ$~)_8P$a5W2y{h-p)88G0zcm$%@%ZMz59UvTi^ zd5A!EhEizaz$&s+X)G!Z!6A4t9Y34hB^Y?shM8zQ`vh!_Ju)QeR&P#B*PGwYMT<(- z>v}eS2nd+Dc@9|X%xDFik}*IzZ3(-T2bJCF9i9kGtI#yIfm|$_pA^(V$Aq?tF3WJ6 zSumbWTQPOJ#6*8Ut|~CwM=bM#28>cIR1UjhV^j;uf6`n68jG1N(uT<2BQmLNFE6Vxz}s6MXMK~KJuo}sLAt*uo2NNy6cRxq?mx}-GHat}3WR1u~h zvVMa3_n6uel4f=V#*{N~p8lW6vVV)IzbB9q6$?95C3Lh7Y?i3?x_QRLUqirpfn|$>l@6o4IVZSn!)=!9QTNiT_w(%y zk|<6c)o?6)Od9%zi*h$0n97x0lt{)s{71M1ynZ+#cBmzW%W$h|mJpSB=;1kQ@B)u& zsN_#xHEdIv%z_>VEtjQADwiC(h{RRJyGla~Z$d26nFw*b@k9&u13+51@#Mjs<4@}r z9f_6)$$mAMV%F+1HwNcy%S!pxB|MVa;xJyD4zYrhKRkAiYfE=V!ah_vG=v!6)uT(# z51KiI2Z8dE8jl9>>u7(_N`KO;8fruvJbUZ(GOdBf*NGHDna3 z@!bk1a!)hZ!|$M(>rpIYw7m5rw1Br_qQnx{NoD*|4e>h@dWvZ; zk04WRj=bZJ90wlvu5q}p7us)_Np27R!Z`E9K!j}p^i@6z+0+7^cMty1Jo*(eT_W%h z3$q@}AFw~&TfrJ^i67h>Adukm1{NcuA^z*OHi=!D>hm8D-) zLUJqT02ua2Sw|`zCRT#?zWJSUz0GZF{Ro-l+)9_Rf7OcE;LcN{8e@|*u zPLlbBg$)!5!4mXO2uTRY2!I?i)Q3!zg}45f2jgGq98pJTCel|9`CGU;NKn zzQbr}FJXKzvJS!z1_i@Jk%>l_27m_klV>W@fuW#FCQH#dM8su$VLf3AVzskI?J~Ej za$TupuTZnHS|GPULqL{`SyQvAS#GImU9$YzwYGVQGuv@>b2xpC-1F_lXT$Bc&*Pif z>lK&V?qJ=f4|E^R&ciO8FSK_;7~{>giNM1)t*-Y{Se-}1N}Nx7P}=3)VA#8E^lO2> zAIe4cwq24g-t`WHz~P=PA>yBx6_56?FcIF3$@0gB#dqFUsM((J!M4a75Q6<3;*V<^ zwQGC=g2R=o#&c3$uXd~u_hg%=T*9~=2VJkgN4{|@g`4Z z$y?;1|3(Rc`REeTx#DJPadovZ|8t$6slKGQyUuDd^g*%wEZaBWbgSl++|o%rZa53D z7T#Lp5mb4mNzAt)b)OmuzjPE5qFVeA@85=9H^aPq7###lx?iv{fz z0c&Ux#kDMsn%lo_ttBggQ`@cx(47D}=_MDLcufr)z=~ zrB>g?wH^i!ZyJeP>OW zC9UL~Ni18Rk1cF+$VXlOlyu}NG>yj(^#^x z-$u79uSqZ5hTn^=v^26NlnFxf^vdn^wzCei{$C>oL>lt)ZblH8d#25dB>P_t%L-152f zJ5Q$6S&K2?B3`ZP23vRh#aH6tR&9?)12<~_T*i3UVQo3g7t$aF`bM zBi4_qJ)-wLDeW`FkM;@aLq^QxTMtcp;xK=V7JBmz8>6nOJ+AKUZaqn#+6K*WTZVEQ zi-w4{ zGkWPFt{Z*;!0dUNSv58%wtv3!rQ=PWrkI7JP~!IVZSk4pqpKW0@rb#}WAZ6mI`U3xNM#I2&HX*G9jslodfjRA@+VYto0In?-iu{*a?~vJG&slcbQ?gG zFQjzahKznc+5ryQ4LM70gP$ewaW<(PpygBxqjCMY-TR`%FKIU>G^?(X@{_?Q@t zyKk;PbQ^;An{yh1PZ0v2KO9wQd=vGZe}r#=vv7LX^1?#+8|K6X5d+J8uGvU8iA3EQ z0Xla%L8D3jfU=H3rm{PfPh=?it>^G;TK1>mj&1UqNHC`S4VTXW&6R?bGu%`~< ztm`vbKQPd`BZ4O=o&EqJx4}M8^n)TjYbOeQ6e6PgIgIS%;tb~9<|fgMXq2$W~#yZ=-Ci1+ST%CMVVsUkP4tYK>NveQDYnHLXGpL{P+0*t7C0l+MS>gaqE<_ zIJ2)~PQy)YNf(fgBY5_!$zR8lWpjGkRroDw{4!nt2$;Bjp;W@-g*LHACEug6@kag_ zftgwlNeoICz@o|$-QFqq(5IJht5%`4Vxz z0zl{hm1#h8`4xh>5xun7spSCY;Yh0*Gb{Ni&t~25cGmj0UuuTiIJVbmtH)Z-o<*Rk z^99rDPg#YnJ(x=gF@9p#^~NLSCAdPV33UD(*Cs~+lh5){7?r%PSz)Hc=Cpwyv*NV9 z2f>6EnGKGeoEZjfxPVN%sp25!P>Hm;HJlIen#`H}G#BdE^RdJb(|)wdrDO15($4y{$b<_I%41oT~vtA?muq@t%W1grvK?u?Oy8a_*?3d(=@clNO^q<6vL$KZo7F zZqbu&8fvOWW4I$RBzKy*S+vhP%K{TH+ScoF?dWoiouXMC|m@h)k?# z_eAOp*uo}{{RTwpVb^P8QJ4AxHv9hil&3nw*`_b|wzKAO-9*7kx8Wd7TRnd;QWhCu znHlkI^1&+(QcH)tt9tv_-=P>W7?-K+xt6m!8We(~7US~CY${$9^>6&>m)!&Ou7tj7 z#d59pYAa#iRaL42b zSe0;Tl?cmfWVoMHm<3Xc8h2JC9XTo_W-u8@j`>IQVl#&@Bo=7 zp$j{XWFpoioTZ63D!L{yg9NegEc!83ieipqOvGKeZw__Tx_tuIvNz@5EiEtepAsO^ zID7I!Re6*)n$5xJRX%W<(i`cbFwvvXth<{=NCXk?b0&*xaZdR+v?8fV+IE_Zi;?mM zFG`o2^xx`wLi=F8*ze|;r>3R#NgeW?$m5yOWn0r%Z&ALRl1iJjTESd9cCzV-Rpq5Y zUHanx`{M*AQ!A(f=y(D5_5W_n{_Sz{H)T^1JI8-O(`wYM+|ie?eJNLsza>ctgM+Gr zMMSo*B4a8dbNCPIOOuJp8X{LO8@MIHTf6R^)1|elHMF9y&1cz^=qk<`+Eg_xkuyi? z*VtHGyl<_oy)G>;>wYfwn3=jZWyzwRFPP=!I2~qR{kU@Lxz(A;{+LCh1fd)5#n6uQ zVc9Clhkl*d9`(ikf}X6OH<0Ew=^kf(k@iTV0epXMg*`^CAcc>9nYy&MH+;jhg{95v=G-^TM6 z1`#0JOA@{Vu+*YlM~oH;r_EA5(Gj3E#YO3g-^EU1sntV}vg9JOybc+u zoL@>oD(nOw^U-@!id`jZ{E0s1BO{m{d&&-68X%gLraHTj)D*8P$U?N0=!ltUTSl9EN&fn85Cu~Z)Rx4$VF*%YGgdXLU}MaZ6JA>)Qg zhInD!>fz!Pf8o?!da9ySUyOF|HQiPL*!v7wf(!2TTXBX zz+XDP==;NI1U#GjPQnHD6oJ+>#EEJFySC!8$sIWxt&Otjpw(KOhQLy4W?`YhCmCDr|@K@UOCHku|YIE0W3lZf~jB zr8VQt_HX66kdG&t&3eH_64gxcQ;^oXo`Ero6a{1YW~roEtw6eUc^NDYuq>*=U}-@C(viw6et^dwuF2_+{4}G8E9c8RJ8mB?@hx&a5Vclhyh` zX>yS;BnBN}9B!u^r7pH!mSv8?WZ8UN{=p^vu4bhxi%@quQce=>Ufkw+CVMjvy3{)) zj42nU(!Z3=`gokUCQs%x>6UYOR)+~>lL%_Yic?DY<2Neeh*gH~bYtG=JBHX9j|+@- zPnA0pEm$kta7YMM4=aZa9Rg_>M52O2Ss9FIbmLm~@4{c?b)tBL>I_M_-D8u|XfW&s z5NP=0j*Pv9hQHpBWAOZ}*}Z6&8?nI98&M~l!oD(2D~WNJJzrfFf0rL6JyYe4tDAVr zjI1NA*~OKdd@7B!+gY!6F_Q0HW^3UaNT%rtx|(>(jlA0XQmwo|4*nu9!-5~Tv_N;? zEl#3lmlh=19o*T_q8YdlJG^|@$>LkSEAiA2d^=0EHWcwgPy-3v?X0V&niRSrue=@7 z>jZUgQT+z+gX-KPCo*s6h{d;HH_cssxbE5tqqpDA0k9o6?=F;l;JS zi?bY;ncI$ZR{xD{!JrIpi4=+GaNe~U2BT43bZ_|+t*+7y$D5AgyU4J>4I@Sy>^*oA zHzV57ujSf}R-HJONLp8midtv3$};8dlXjnsHBF*l2U~pJojwsakn5sE(|MipD3lqc zciGmKtcg2v&RkKkWmXS-Vz_vVXv|9b-O_7hwG$ytun(y+gvo99J^i8|@ z?ooiAk*HRQg@nCMAva@b+g@N_)_FRvd5(%krv0*w{*zmM1zEgY$3{ zoqUVqy$J51QR)NqbkDTB%H}wTL7E%{neA*k# zEdOS)oIhFa?$Ax4RDT9bQngfC#w)|7wUX0S1ZaDj&Y5T-u$sgOx$hIJ&q|+aZ)e`? zT8G%GZCa&w&ZQCQq?&4Si|l7xcq>?6$Vz)(7AexDXN)dRFb=8o=2zbT5MSkp3nlPH ze0>f8lpDF76#gLLQKaMk^hqKF01ScY?BkOjVJPCiW%=`pE=F z%Gm{-6=$GRT#ekG8V~A+$g$1n3ws;NEKnF-Xe%QKlZ-FnQ_Q;!m&}9JHa_2=juf|> zP0zdNL`q&DC497xkSp04((m{&5 zf;@*dcn2)!E>!KQgo|JOdohaKGr6++u(2alZkcPt%zexR*|_S3l-cTyUIQLcRQJ3s z^7d{9yisIc{HL9uLG1~6Wn+}uU5lLd7E%gxw>qk)i|Y-DMMOPdD_`qti_~S$+&>UF07e389TBa8Ta3Ia z#{9k^`_V})O-1gvPr^6Q#Gw=oE&gaD9WKi4s(U-3FdQu8*?Qi}o%Z*w@Y{sLmTR6d zob1$Bi@E!^_}>P3KL4W!-GPe$r2rhe+5$%>M8H1uKh>Tc|7PFFsBGfk0tD*+*CftI zNlpQb8QCW!B*cX@T+iEM4o%!c&umQ5Nq!auZ> z9(VCVLl95<5uhL?Ko6+JEux!|;89fKUd-TZF6TtPMYJcraPjPLYF=YdCZuf*sRrDc za*$+KRm5=Pd~+OIXZmSeUKXWaUaF(q;7jA#S*lSXK(@5%Y8GsCnkp1ybkMjgsvDXb z0hUrFxdoHMZs>xf*VkD$#yiZ6dEpTWs%<@IJK7`GTD+<_qBgJ{zvR|&$@*(A&-k8} zD~-%dDWa&gL1a0Ktd7M{d>FA!;lRg$HfLL1k8Y1%dLQpsb-kc>dmNBqH@RRK-yy^DZzSZQ z0E%&t9~#LG#YC_={VcYBj6}qBL$O0j@=<7EZTk;jW8u|>;CQjyFq(H`fjUQP4hsD= zTSw@GV^50xLf&M1M%a0h{=rY}7A#&viuhq%s5nqS;B^?;B6-&#nW%U*(9NE$07#;k zG|S+tGDTRk$f##qN(b2F^nS@gag(Bq4nj-qPS|CovY_(~dq`>-wu3phS{$q44{h$`c>rz~KxxLaGr_1exF3~elZ*<$ zKHp!F)T578WG!?L{}_3|>8ZxytZp__?>Cdww=*Gq44puMS(tGAqwRD<>WI1{=8n_m zq_Uu{lK0xE)y5&W98-g$peb}US$io}#=L6n&dJzNonhmfrO&udXLoO=fflhBw%a(o zR)aMMU6ag$r|Wp@kjKuc z$G0*7KlXW`g=Q^u_n=h|w0iQi)z7d5dkV5Zp~9tP94+HZS^u9I@TBy{RgL+$$%sEN zL%OP{ZYwM5+(YNMe3X#w79_nzVMbk{D0Z~Nf6ZTN0JLRdxjLsE$>CKL5KH3h7RHI< zbE|MkURAYRYHX|(o8<G=n(^b_#bhL z3;75$LE@GcOepZTjHFy z^B-r|42x!$ay3(BnI&uSZmZN^lMfQP*K4Z29F_vVxz}ti&zhC@uYAN$kQ%7gSaOsN~jFbXsnS#lKc1j?<+jPWw zW0cpUU1UFb#_KMzC_%znEL$demjX`5JUqXJPs`&WV1WS`kqord*Hz3`w3Vf!RDJeu4sBms#}50^?H6Tt*YF z@GZ=LAb=(y#gj){7kuZn*iuA4vGQ#cz11M9t+OtJ_Q~9uwHDSB6`i93>$F91B!8eK z|0RvlsvPj{@3sQ+>NXHz&tXl(P552Jnq_I>9cx16iu-{-b3<^?dlFz}{vtutQW(SJ zGk&q}w~cDyi9Ma3pCq-Gg_@aN+JvRl6PzX`&)S_c2y)Ys#1K?`L9p{goc)zSA)dbu z)mO==$0@+~83ze2MglBG!s3AKrwbdv{ZaL0S3H8T5UgYIt5SgW^)QtM7scCT0&BD5 zG!DlcOWvvO;KIfijB75?-68PsEHI;gTW8!;#YDgDj~=ly{2{=*f<7S zP|P^Avd9}v?rSXk6h$PNe8Vh7X6>TR9Ys4se(1H7Ld`EBnmH-H??!MfwE)4AM&q8? zwr_wvn-@QcH_xxLk$_D7K-QOk(c$>(p2>Zu>dXdS_LIQxf5b`v)y!P1|NG8&k(GfR zU_#F>TQb+G=W#e1Xels5hWtu$3}Xo2LQWPR7v{7B%A1@%-(u%}#XLCW-BZWmk3$Y_ zGzRm$Bu=?huoS7NogBw)&2xhuJiH}o<71VX1dHTlMg>iKhO;HM0Cic&JaI$ZQ~^Vj zJgU2HvD5u0xYBM{Gd(oVE+;Xd{tcj51Mm(u7=e+b8zg&&UvNIMxZN+vRc#{t_ofx$ z!M$-55J093q#RQG&(+M|7A9-q28vO%Ire@=`E{g0s<4~ibW>i){UBcK-J~u=_ z!y`vMr_AJ##LY?lix`I7TXDatDw>Yj(_muO5XyWTT)>}jxZX>RK51lx(7Vme^I_G@ z?$P$`QNZs5GCx!V|Ev8YFM<{Kp}oSWM0?$yk@vu0887elPC@MKb$HF}?Guu|#qLDoH_Q%siY>luS_2dsA4*{*68&oRn*UesEDlXy*zrd6I z(XW?r7N)o;C|Ih-mWrK-0E$*NZe6uoBTMh-0gsQLZnDl&Jo#M*qn*EpUrRPAuqvtU1iDpCOXh3Uc{_7|LrG&K=_tF+ zZ<#;LHDgyit>4uF3sJ@jn-eJ&{mxmQER|lHrDk6m6_{LDrd3vT)YLNMvA@OT=(~DYxYfrd~caiw@W;vsm4LUK2a!$N(DgkQlV!|-1@Vs1- zyrqpZx;Z>6S)hAi$QSM^;mCZdB*A;goWH4e@9pEndo5YP?9_W}^b5?RspDD*Xq)ac z_%r-g{_nD2MDb%dkryyqqi6K@3C@#|@AF7fFGv6x#-ux;q74AA%FDvL1Dh~KsIehY zGL9_)Aq6_ZfW4gK!9*2@2M(#~B!Y)ydr{>`YD6V>Z{{EE;dM5rGVOdnkTi?hx#->V z-hV&N{(lO_2!R;EBVZr;KOx}%sE7YL&VN6}DXJHa>!RpL8go3YBKS2ESp-d&gokPDIi!g7b7_Z(-P~Jzo zsy}WyU9NhmpB;U^-!l5M+`-Rm1DF?w>PbUqhZNHi25n&6j3o_wXi0l#WKJPQSlUin(>tlR; zs>ZZL7uVJSAO@|`TyMlD2w<(TnP&2l2+z1AM(w2HUSL{FJxs{k5zq4~vgNV4pKF6x zaPe-SUuxtlGC9ta;87&qouIfW*6QkMF~dWN*|2oa+zVmc!-eYSz)pM?P9j!qAxw0s zwAFZv^>gma;k)P~lc}{mQ^Ad)5xq)aKHy`Kd^pdK)wz5rofG(ZNMI8CO-9OcNWN84 z%Q$VYToD!WBDfEjT%QN@ZD_zp)GNlw$lVLjRteeLcFwrnHdF1OxGw?em-f?pn?{Z~ zjXk_@7sY7u9>(dK&&W02w4XNA=4*qB|e(Cs)HBC&#-9Ss?`byqV z=WNMST@~nZ;#{qi#XZLknu6PUb?m*4d}Kxfkpdyw&&xpF9!(3&5V-_qia{5-L;qu1 zk+VfJv}yAf{pe2uIAYWurE8GiG*5`+Fu!T%6qWM}hwMFuY%#fQ&~Xs4OvQ(Orr{d1 zu~*e>@p0~RXUsrS465Pww;1xm^k%Fob(9|+b#+#?TA(7}Q#vrV$I-th7-@~5eJGk6 zwr5^3-o;N)o`f&J`2Lj7tC8V_KP&3uoM=$2MbB&({%RdtJKuygil;kBS95eMFT3sH zS?T%d!&llmwsR}Sm7;(PDEhP5Ge?cm2Tm;&RD*3^K}f0$Y~q@ zbqm3@2E1-RjaZ02W)NEMV}N>?|DZ4Q(iMCSD6VqQW7zVxPPN3-J#-#D|M327ymBv5 z$~oogDe?FS+0~A?_Lz!Bp;`JGVFF()Pf!*ArKukjjCuROvkWn#ELb6f3M zq1;}x&Kbw-?Nesnh}^gB;lKFtva#|&roXNCKf$PqiIN>_@uJ1c|KtrC`ut~R`HNh_ zMO^Sn32b}70NWn_i8lXxW^u7qw{SN9dujXc0qtjYQ$ z>gJp;!Vc2?{8+x)Xoh^amGCwJca$YKJi7>|I6s-yjVLJmT(tV^Fc^&F|xJVuOT$#glmpDjbW-AKGMbgLKEEy{(LfJ%R#MRb#@aRvYlq z<`F~VmK&fw{fjlqUqz;H(0-sSaEp0?Tl_yK@4q#e{=UO5O8xQ!K!7*+uyBQcIZ>pz zU0;BB9S$QF8d_ik&Sgn$J49Ql^*artF4Nz2M^;n86YMkESYHpPe{AOcuCoIv<8+J{ znGOi)4B}(6K40go|4C-8ElGY)PP}f31f$02jUMc%N5dShCr;vdEdi)ic{SKp2=gVA z>!H$o`91?3WqfBy2%%Hu-$k##j7z9j}@f*ZzA z`HNz4C7nn`Hj3kZ=~oxNoM_+6G&`pF$zXMtJf0@y8w%I;`t6ZM^bfdEFf#&D=0onh zd?bG3ZTk($NOp9tPU--Mq^@yy$@)P0+N7ICWFD>X10E;i!?B*v1uMpr0{|cY6 zf7JSe{MUL9z`ubLc#qQkPbD#s#b;sfVr}4TVQ0%IZejf|u=^N*j2#*?@<+BcfgE^A zLC7B(dN~oWz!Fq@m|f+_V07h*8qe*+bIk~#ChbGOwt#~_8tNBc5CK?bS2bekg0&Ru zIJ3j7XVa0_v&XnR5X8C4{y|#|B${7U`QwVd! z@LM`1yxe2XL?c3iLUl)~65I7Nz>9R3C=md6=E~1h9qNYxzn%t;Rmu7Y+OTQv=4tei z@EUnm;Fl??j5J;}R0g=uFlg%5=Oc&~i+8q>k?xnQoO9g{%qVcZqef;>*Y4+6C1uCJ zOiC!otApE==jX`87-r8bZ~jAKSw;~9CgfJ>=ThoxIhl__cp{jQ?s=_CMvAtqB%A@e zEqy^oB5xj9<1J!re&}HA?%SdDJA3s9rQtwH?jy#mVljtRZ=#lor!7XJH+RMo?+cKd z7YtU}oR;H=M%%n%hFHD>drsRO*#iHTI1@PRu9q6Gh3H{qIvuap8S0W&A8__Pni4y} zu;|)_daOI-ZrI}mp-|O+?&}QUSC1=tW3$`yXf_Uu-z2L=x0p5S?M>Q~dnPzYpMXgn z5=lSa*3AokS8eTCC8+1`S?`s8{{ikj-7wI91s>r}ARF|59X~Apcv$^|5nW2J^Q%_5 zz+Xr-KClFGLbX5}9hOQ{nj~1%2WKq-arJUnH~bC#4ZP<%KVn&?@Mg7l=TmXkw#pGM zaXOdF>~P(w$0_6eXzO`8lj4DILUaIyqhi^OMSM!5D<(o(Qhv&iA`UEA1eIW$1uw;Rs@)J@|$V#NT@s zD+!*SA$X3X&0{9T?#+Vts#Z}?BdG67jLx>!Wh?kHIP1acD{?C|&?I8%k}2!)VMW4p z*pQpeFl{v1iQgBQVz3d^=ZXukn{W>8)d%^etTY6HLJ*f}lws%QDn=ZizZ zH$X@bj9vS{{1$TSUe@Axz59-1&L118eRKqx?dvh@|+H+xz`Y;`-WdNS=ypR5BLrOsbekObrSxo!DyGEV0;}+HhWK z6(U06tL@y`L3~BSZL=-6$=!yiLd+4~=^LJ*T*BN}bA>>HpRf!yenSTwl#aTbiB8pr z?BVTkr(%RP#Jg^A7rt`GrLRh7e&GKsH~zW{cM9mFM1Y5A@c&N|2G04d4V;{606-;q zMPxn>*Bl9*%+NVlDso6bVsk~n9}RRDABHPbT94{}T3 zk~{yh!!-EnAd%1O>V1|2U!jPOrFA zICl1B0)uI{Aeyd_g+Qiq14T0PIsAjN(uFGj3aXZp>37P+xXXVXvj^ETw4F0(M6%VoNxjq&8BS&cB-=% z4UG1a0hy}gnm|s=uC-HQ=2wG{1j2a`XR>7J4=D&Z!?#Bt9!}a@rDuLq5F7=@y(5C4(Ytk_^ww zWcml7^DHGK3XLSxmq*Epv~|WU6tqM3;-qn6>lV4c51%2;aJRF)Yy@NYn>|xLROm^#CJM3x2*4z=8czwef8w zP;J_o<33X?!Fq|=*-FN(Z4H6&7K2<0Qarb78abGM zQWFJ3A4!E;oco6)ZyZU@vF|)}vU#);%0baq+(MiCe3)V@QogT{qk#381Gp1J2CT_d zJaTz}gX5+L_c*nsHRr!NHUE{SXZx*F>wqT$1z0aL{4Y<&Kgn4!u|mK$IkMQNicJfw zXSAyk@dE5A`LUhqg1B%99>nOTAS{jB$by}bx9(KYcU&PIGZD$nP=?I z*lff(pMOzX_-pAu?H=clfy*uge%$}hrOVs>C4l3kY+?hH>i=(V%fBayocM0}K_>K& zS({sM;*ydONQ!UzeZrL*f^?8%ii@Dqt{fV}s+Q{Vf$sDaWKabDVZs~5;Sn%Mqx=#Q zzgsSkR$jmOqn(SI7ZDmF8)nVXCNHokq|i3ABXOibbdo!ZFQb>Rnb6!yKWpHVKpd?d z{|TJq=ahxn8sn!C=J+WdQ#Gv85s`hEeTSCCtj3c4u5g^9&`Fd{u{=HW!!X`Hg?S<( zgw6B&LF2wcctcKkA>HMou%**|VucBQ9!jB?R)?(48BXh?+l4zro=LQeXz-5TAu<%Z z@c#VNkX@utv%B37@biJ7S+~C0ka#_nIHS#NQ8t3>xGljtIdW5kOnU_UWp~v+icW<3 zmFCu-|JY|TA;+dj;Qn?3zyEhR4X|@`{%3%NME@0F=%Pm}zkme~Yy)nP)nhHhSIEa+ z^5o$3F^(I1244R#)GRd4D1&Xj!&{$jP`rBUIW`UCMN(;!<}RmXr7k?{`9u+>LOZ;3 zJ}>!iP@8g@2}WMz)t%`kOq6E`209>*Tj%%!8TIde0PBI$r!^<6`w}-(N%jE6f?#w5 zC{@fufO@&#zgIU~n%M<^X*g5>ColiIHT{#>9iuGw*Avrc%ewL6TY(hy?-F!qa{6$a z_EMUBkV29W5yh*SWodky^RY9rH!22g!CimO+ahEmO5t*9C8USwqiL_Rqa3~7-cOLZ z5!Yy-cE+zrlwI3kFO*9Oa~73{lEer9g2gp1Q|PW2QKssLV$`e18^LrW?|3DXnleBx zz7y%DhZ_7v#T0g*BA<$My6woVwqnWBf@yj*Y@)pEPQLL}N;W!nn{rigT?|I)>LrtC z1%X04af{hey>28gyW_58&hYUJu}J5`0@5*z{;uSx|H-g1%w)WH#wRhme2Et?VoD7>Zj7)}E*e!*6LAy(~?Rs?lB+$NyU-8&f^ z4wIt@8>Lu=Ne?p3hNp;pZYN0p9u#HR-uMf^D#Pr5Rb~7Y=>Ij2OHuv1y%{BaaT+>o zDowb51GiL_w&NR@a(MqK+@ikJETPD@0cCnR1_9~;n08rYspNil$eNDH;k!bK4Bc?h! zF&fDUwNZf=XclDhd6I3@f}IlCO**%*U5{V}@at?aN%ip{s8E(TW68kuoRz!`r^Rk> z2ULSucGDDULvQn*-kdL-H~R0&!@_6B7%e9EnF~gMim{$_!T2IO6>GHOGIAvE`0~Et zj(*0;SufRinA`>oPsglKx@C8;Wrx-7;3>0R*W7Cl>d;wY3F+p4(wU4z!@{@yVYQUn zybGmVy@o{4ImVRCJ&zNlDHmefs27^4sLb@h{pBLXD)MZCm<&cZLy+c=~W z9C92lkxB^xpmj26_NUkYDNr~D;OrHESN8-nyAZ<6B%A8`Yt zln$m6K694vi*Bq_x`V10#H!ASLydGv;QATr3!ft9YD$m!g~l=Fg01@ z2EhMtz{3c5{zuQAih+!0USA}5tL4h zoRijMJ;TLx9af?r2sRW_wQG2>yZ+@6$}oUQ6RQU5SBB2FYs@4PTZ(TQclHF2NeD{U z!fVF|T4l75hoAh*?Y5oG1v;j8TFFL&>lU%OqpsjKbM1 zq>)(-Does?5h8ZLJX}U_CrKn_(+e!mu$q@m9esII%FLmlitEo}eV$re?0m^_;gI_5 zetRJczp*wXSU)|a-kLX%k!(2;1d#g>nx&1So^H15lXqk4M*x7;7k6AoxtM&c9U zC-vr)_8Z@o4Ow3uYwkEo>+0X?5m$&H%S29p`z46%mVZFz-HC2vK$DLYs z!L+I?9^U7pJdMJ!R%goHx7u1wwp3l4t=4-{4LFbMRF>~BU%sZ7{FmL?Pn!kagu1@< zEmw&OogSNYwguR^D^Vnhvljs~)`&AjY@Yrtt)b?d5aF61eofkHPB9*0P8YDI_FtVL>$24=6kc~Nz$a&T5eDS>E8~6yPd#!k`&i0bCEH0}JQm4F6m@R`N9?C!&-(n}jw%Mw) zeYIjcXacA1flj_RQm^Twc*1)YhJ-N;eZrp}Kt0%f-fj8^+=2Yca0!>#3gjY~&KdCf z9#}_SHF79Q2+go=(VtI& zXK?`1O`Ic|Vo1EON06pOcNnqP_(#LYN-adu&xATUZ{XHjtl_Y=li52kEb<8TKvFMm zj79!)=J`c2U)0T>pM5s_Z2!WkKXL-{v|-?JKwP&EV67PbKQFnmoBdzfYE(AmahMSK z;E7flv0E~9Yb7TuL2(g;94ivR#Z4*=f{DD{t#+?qY+W8lPx%et>cB=)D z@oVV|toR=}EQjmAp5A}Z1>n`BFokFUr+rbylD+{1btHpx8*fk|P6AfYVUZoG2QuFC zh;KL!L#UZm6iD$3ZE5zqQ0Q0ftgzWnqOAk&(xQd(smR=_k*OBU2kPY1ywYlV*fghx z=|)@7CRDDr?JY&)ih4c~0*K@b_Y3_VdU^_3-9Up2hCm`eZ@H2EOhCHI{J68&tXFb) z=7%Lj<3prOE}o<}-eDiUE>=*EZrBwcxbp$~YaTMovu!VpkT`#CD^V;)LsM`4<4&hp6}IJPmKRH6CV zHH(RIuy4b-l?PBmKQ6ahfKH9iX&329rX}L-yaKz6$O8k{k`d^Znie>x2PmbCD@&kK zdEWBm$A|aPA>?%OTmt2CggI$bj4>qTmb_4vHID5(6J?J~@inerPVgVq+0tiUGIFf5 z@XivyZ-v|9!@P{?BVysmx^pMQ{O-9t>G@%QT`EEU>n|CMUa~XRBfu)Y0<41R|Hdlh z|K=oU8;Cp8VVGU|92eg<$d*DsFas7o^BQ zIO4vlB;8{Pv;2kY^@+Z?Zqd-v6j&fkoEfG6^I7o7=Yz0Nl4im<@A5&{`jgbs>JHY> z(ZH(XDg-06V9eZ2>57iJ+)7?Rv{5mr4|W^cEVqba04#nqwS!a6#L<0cbO6<0%~Q}% zfaXE7E2V?;1|xA>#BZpQj>js;G*niiJ`~&H3(f^S_pKi5UR#4x|1by$4h}v0esYdW zbKt&`n`=J8aHYt$zy-b4ccXztB~H48LY2(iGQO1dHI&dIOM^SzNZ`Q@1M~a$UzN$9HPxXqn2gr2EQ%=0(JI(Due^V^+4`v~8p6tOzuCb9$qU=FM zwxl_QM$}_VhuM&xc8vD~W|O@<4-k_xl^g! zv+fFE(^HRvFej@vhyPZ#r=+1@w#?Eg5 zYjO}RB)@2hg6tU%9-F82{x~ydYlN-=S?Z-fUz2%Zbc^=gp+O!>x9KiV)R&Reg=CK@ zQh$1%8fg|s`VB3i;DY=O96jcS+`dq%n*1j@leg_Xe}i@JUw{ZyrsM7&U_~DPYb*M* zvhpt=Vt10Y`6mz&lHvmq6)KaGEsb)nH`cpIcjBD1klQUldc4V4H!<7QHI(I6UdWC6#`X>;1{(}7jh_+1{TJ8Zr zWSkk9dw$hJ>HgDCI?+9cf_M8cbm_O$+`<7?-(L5Es}2=|j8NkATM;)xWe%9j8-H3U zGN}3KGUWv-9}>MMbKUZ=6?SmvFM6c1*M)w*`*$xj(u2~a;hzGLmw2}%@^NAA`BBT^-99xuq^e_;^J0sv z0%5l|E>%wz(Tz1ys_H!phXRbQ7%=YNZK4r4xL}jLr3{!s#Wd9xwySb?Q zVtNMc8q$N#i#`6(>?8XdS4#jgzCS3|gf-}v<%A#e2&9&sC{ToU;XJcj;Raa?2E#E? zG3y7H*7O!^aJ;2&5F3f(w2%~W3XxVGkb>l+Jyv?eYh$5ln{ZHF)}>9Gy)j2a5c|~z zYWC>SH!AN{>yN*bw*5DkQ^o-l#UCr<{&${?_3w#T>7Vs&a~(}f4N9=Ps8wa}LR!iL zuo{dKX=Q6-P?X&?=2DRry~a+mJ%ro-Nd$m6sVp(JFC+iE%m>k)H9GD^#!#In zPWeRYy5Cpmn$RIPX`ux&Of3g^MZOGlbUFLh?Z#Qk#~gxBii@fz6Irv7DI1EI4L8Gn<|RGW1SIjLOus@rCGt#DiYC4nfX%!r{z1vo0)*Vto+ zd2#RH_hSoEqD_4Bj9W|~v2@(^}M$UMr5pRO+%Gig}^O{;n!7xv;X zd9!<4KH(CDSY3~sw)Qi(+gWB_-eQEbK*AEqoA6YE)X&S9^m6Y6^XGspowH)CI)<%; zEhLX=2@i0FKd{PB)Th9bvg8+B5l%63bOp1AA#h4XyNBJ($*gZ#xcYwla*+X};u~GA zlhzbZvlUGnGUFCm7QJAchFZW?O-sg9)`Yg2 zkno<5sM%%^KAmoO{$%J}?5x zPnVcteY`cDjShRFAv{kDj`xs64l^if`O~E`p~8;sv*3ybmB)!Eq)SE7E1MI(Vm%0# zQEy-a8!)d8E1uL+!0v}6+&& zYIU=>&@<|^A7WkrST#ij*gk^nSGF-MY&&6)d`6jKixvKE7gn9NFfU=NJhv=17e3gY z!e_h{u0R`h{^SUTFjFH?Ub6XWFkOlRF_Ce{V9;&W`Bulx*Xup{tY+&Z2khce@*9)t z=f6xes&%6ZKK=jl(d>UUrP|HfIohb#(1PklI@_mE2sUzXCZbASp#86>GuQByDlB%9 zzbR1I0FmA;#4RAw>u9*pXl_2+YWJAo<9eC78h-(7e&rQy4Yb-~o=ghnPQ%+8!Nak` z@xU^V_guJ+q+PjpqgNSjz%2Df#7CDtDWp$9=Jw_1@}E+i4QI9yFogUqTE&|F70cxd zoCoxGy*J_PW{RW$1+1b}m!n@gvKIOM8@MJ2B%)-(+U5bDvSxczBK=Lejz{p-Fc(T%TDBVX@5 z7KKL-LRp8s08SeJ{tqXu>Xc-z45uIEoAGR0({|eDF&}U^Fam}l2gQ#hBnya~$NfIYcZH;x1i%VXQ}*~85uSx5 zrft$eb*byCPQ@|XL&Vz6HcGbG#pUwzKI&J0fg`uRt?WM%POtwp9C7^BhF0j%vc&Fi zgfz@_*3P5J0m*`}v9cH9!24Y8HlA{M8G)#OTBN0M%-bbk)oW&`-bX|ldoIt*OgqJo zo%Ub94;L|jUgqqKu~(lOj|N5>qjB2K3a<9h2e*I~Hu;oD+kN#WWSMA3wD=N>3t6NXL60cgtlL6;54$+j4y|-q}&!#z4 zNfDBf+A=iFUcew5#H6HIVT$vl&E&%i)>r0QhMBH|m-baF1`7sz7ChfAbFFxebv}bW zho85yF@lWBq<$rITFg$m%zDjqQ@p=i?D|14BIxxaBSX&+o|T(v^;0VAN>8?x^@T4X z){(G;C?p@ELQFnm#`73<=b)NjD-K|5W$2`+LD_u$-PelzrPo_02J)ggxIRDF`QSytC>J{`4N zr$cvZn$_TYU3Vrs!!-1pr-5>ZDq$c^&RLdaD(pQX+LlpreFOa%Z!9}asm9-c>9SG1 zGRd6OVDbBTn0fX`cV&vFH>|bPCc8G{W5>wLxH{V?(^$uv4|H;_psGYi{^RZ?C<8@> zhnwxCCsF*f&af^*uUgZqJHB%<+thKt_2P=k!-gPij5F7!WNDQa&)t^D_Sz3W(+A6C z>Oo71BAYrR8~a!YK>ta1oHRr$Ta)x?!q5~H(yzSXQvNe7yGwfG@X%wW9yuunh^B6y zauusZ!DGr&?d_FVwd5DNH77`OuPA1IjXN;=YR-5mG@_hCWzk`+7^WPqDq@q(tT8EZ zDKRXAi8Vzh2!qPCp;g$#JQdYDCVr(mxa$^n&K>Ts%Dk~8CxzkGwpo9pMMJPH=egO!WwckVa1!~O%{X4x|P1Y36ncxsH@Uo zVbR;9uAp=7Fcfo3XY+~TUaNI{d&%WaUD>9yE{)L+EYBUI1*}4!4#kf*oB>FF5Pi3C zo;V2LKd%V2igvwp2`4*A=>|m91tUj{XZzt9Z&hCbq?b`ECLfM6ym zLY#Aa9=tR@oL1Om zzM?jmiQ)$}Kn$h}ym7xl5X^cqKQG99vmp{-rY#a_cQ7zbB_)Z@z&>CFj3Q;A2lFwd zJ&TEM>J`gHj@+z)Jn}vssP}WdBKuBeA;Y>LIJXxF?&ZoX@=QqGUqPh@FnC~p{`Qm> z8$Nq46eOcs3l}-#^d!uSZCq3ZX%JkgUWykx@Q;+1R$O9Ek|Ywr=dhyN!(KTnE)i}F zq@}IdlQ;sEvwBOALY7BmqV~#t>+i6_0Q6kno`KoNcktkD3wihdPz%`L+-`|M%8W%y5CtG80~pa#$<4UG7I zNtpi?S#&&5)BvIeQY=@jbWC)mg0-j>B~Dd>Qq_CRA`hDFl_c{vI<@_ulJ z0FWJqNe(^!x6|MbQm~8TVT#oSieEhRFZ`LZ3s%x7U-HQM{$*u)>0Y);4q$Nsb93EXF_! z@f3>)t*2r%Vq&KuDK9|LXe(r>r&)_5v$ssrn48Y9&(l?#8%)M8!Fmmg;V|nWJG6re zY|C08XVKy-wIP?IfE8hpSgbO$N&}TtRA$WV$AbYEEY(ihMA$*_)4?5XYC3Zc*>LKf8ppT zZ2+|h$&t&5OJPE;?t|#8Ww>r zN=-{=yb-%VqhuwU1%_O|e<5vFJH;yBZaL9Z(m)flV53Q&fyVPwi6OJq^S}zN9JGydl1)${Tg$^%O6jFfH65;N;3?mBQC~@+#}G1^0QRVn z@BA>PdV*iof+9m{hrYLuKBp=Etj+v&NozOfG&w;RA$bQ9my1#tsYPPaSkjd(zd;#| z28LUrjJ+yHqa$xECP&ITxxvTDDLEv3#4LWYZ<*uZi?Da zUcr+QtE-_ox@Nmb(;d(IC26kf3aVMH!au6i9ve7(E2CU&TE$mtnYi&E4vd6*^8Fbv zR=SV42T;^5GmFx78M;?p!Z;d1 zb|0CsuLt}g@*-Z~k8Z%cGd2*rRRigk+!s7?Vu?8glLV3CgE>L{F!#J-%COcGN;-L;wxWfEgtdTdY$s|5zy=p}kHvpN%jw0H(Qm#wVZT=(EPSHo zwQNW9Gpw{qcs70QHGF7p74XBrn@rf+(UrilS3R}#aBVgLnMEuPzY*HZ=EbJGpiF<> z8AOLNAZiPezc;yIZb5H|9q$h6Qlsq*CEp@HU0V z>#|MY3$-@|=-E%?N8Z1{QO@#w7m&5_booHqt&(PN{w1aKR$VmkOFmRVZK=3bH(sB5 zY+Jw0>vx&=#}B_JOxq!_E<+aa&{)AQEPg)}e_m0hOsE~| zNP98`9ue!t&~HMK9*QLj;&+iIFcinXp;(r%lwug=hs#$T)Nfw5ZhkG_4!`UfzD_lM zA^1<=FMQ!!KnJ8Km4N5Jc2E9CJA{g>gQKIFsj!!ti<$HP=$>R!7-U2Y-Tf{{EG#1v zSSoAV7Z4hvDF}<2Ac*#*bbEUVRihG*3qB}+IAo{~VNZgHp32yGV6f@t=UM0CSHEt5 zAkHE6814=vc4Av(z$P^9GLvIxyXn)nAVH20_1&y3nZr?LI@N$Wz`s&jaYtTPY13k)C1;G zv;Kwiuhagce@5rKxyk>rf95|<`~TcOLq@In1xlV)D4Q4sH_aqBa%QX%D=r8a6B?<) zGrHWz;ARx14{FBfxPja@Y%2=EA{WHS1I0fT6W-c{pS&H$C|~AiNtPzv935Jxj=L(o zYW?+-(6$#r!8q|<2D--`$mj&ah-uU4=fBl1{`d)J_}j78fJDR_@R0nsgyesI>wjrK z0E8dZ-ND(#!Rz)u7K)BkTc>hV#lic7hK??W9#yxex|)6eRCQSYA3_kOVgTs}LbErn zNUyWE-%?tY<7Be1uraWLAg}*dW`kBM_KOj)d?J5SZWu zOQifJ$L+Aw)pJ%tkneB z7Glz$a3f7-fAC&7_mv+ug35gm2?1PJCfh$bE^{JczX0bvQXqPKef68Nu*7dM#78mH zB65-QnGF_Hc5Y@>zfJyGjg{lx1NCA#@0)uo(i8D8YUgjW31{Px2jnZRr5#L3-6rMt z-bOVN2h!RC?uxp_^mJVM$;7{#6N2a7D=} z8syhUFP`0@lvZ|`_6j=ediaQT8LEg(pSu%On^+e|C!AUeja6kB*pf(Aj%$RIJ_TRM zYZQJ!4;_L`iA+zY`13D2+Vc1?kY@mIzz)!G_22r%To{CH9ZYQgwvd-qfyz+9W_4jE<~8_g_$9K;7$o%NjJZX{++yky^+PMmQwqSK zy*kMHvgc(YD+Nn&tY^CPJmg;FI0yjhTn%A7E|iDTFWvI*a%n~ zdL|HOmNlg^SDH3P(T|zT>-*7sK`T5_7{l^?9Ag)eq_gkhgzFrDaV~b8_CQAwQ^kwwo(Q-s-xc?O-{5 z2Wlsuongd}zz51Q_^dU{JKkgFMIRT-m&4jU|Hk05>O|pO_$xz3t{2Y99L$JMiL++G zZ)TyYQG0qex&$zGl2N=GFQrYfP2%)^Ez$67G1Y~TjpvMnYwA@Uh@{~hdKSojB5 z9})TE)*Fy+m;mM#{@cjH|C??6{jUC@!-6}S>W5%%X^9OE%q<8>1T{Gb3n?Y8E*LHp z00K#*CA=o-eq>}>P-+x5RXC_|@PtGW$FROGDt*bhKICjnk(PUjD0}%-*Dbx`#J*1I zv-|SZlz}39Xy>KM#@m}7Q>x`rNl#DjY3DP}`$laV$D#KT8pw8lg<5uippp^Tzosw0 zf)U=oY9PNq|6$C)@gaTdBNf^o&VR7G_n6ARd|-D_;Pyg*`c~oNDnE0o_jat;`N3i9 zgNNg@e>&c4!k_xqfSNY^lRoTo|HtS3p3d+sir>#lkk4{qzK%C2 z*=Er68jhjRSDJ&M*6mv3a(EooZIwUFzX!olyY6HAX;trW`>|Ke1#37tbO&iv&xPBA z&y^HNgz}xLHE4x)pB`h;ZQ1UXrDn(SI;l|EkJz+XsW`&K>*_$0w53vXDfGLiwTkrH zQE!E8qHXox@OW*wl`6*NLc8BJ>Gb34&sXo+gYCuxL2COmR)lwc>5&wTCq%X52oiUt z5dQ9Sn{g9T&$b66-x4*unI(>hyItsn*Ux4N`c$~~n1PS~91CVy;>>vT0w(Tj6uf&} zK*DW?s5EOx$-C}NE1se=$aI2XwT%Y(GadoAsE}RgR{-X2*dFgpJ){itD+#TPnX@-} ze+Bo~d-qxStorA?`wJE&64V&VwQxn}xeVC1qHm0JT6si-fDP@@P$n-aNSG3B{kdRo ztd)dw9XyxWD+*x)qc7+4m2__VsB+O}kaAuwgr-7L zApJg2ABfVUPZ0vPkZOcW7Ijxre&uIoCyz{eRfPinY^G7k;+?L_@z9M%xdo~n*|ID{ zMdAf+a}lCe6LB&9S6&YmO&V_^i!9$N_-iDJP8feKO8ZkH&i$JAD>8Zo8L1Uk=-zjv zlr^Z{I%5n;bp6>*jB>P$g_wNJ%8Le{YdVYS$a~i8B4?IXEsxmZWS~j_4Hp^&Q5>?6 zzg5)CM=q6W+)HMK8xt10N9t51O?yoqA0KA&+cHA8l%1)A0h6@6f2MUcZ!y5_RVW{)B4UrpR`!HMVw@18Cv>k=_yXy0 zQUW^8Mk?kN^lUGJz$m3*+-GbIm1S(aOt5l{3DH1~6a3X=bnLk+wCK?-!Z&RD61j^z zxN5cSQdqUIilgUO6Ny{j;6(V3Z;TwDET%t*FqEJNu7L? z6>*MR6Xn~eGEfX*3|wX~fKT!+HpGNZ_&g26T-q)yu20t1mXSBErtE#G43`>Ha8tVP zn(q%?NH3B_>Yk-$$f_M09I&jQ{h$<6>@aK4q6<@X3ut!A`JftRjlH(@VIhgVnlRBW zlVulcG~pa1pJjGW*e@yGb_2VKo*LFbQ!wNTOeVYW_UmaUE=#!_>BsIFS7 zyC)y7CwGR%NVn7ST649NQz{=y|0-^4Tg?om{HvgGDH15tY(mgoPS-e5&(WHMBO8(3 zLhXXM^gNFieCwvTgUvcmot{aY0Csr5kJ|dRuaWuvr^T1xr9DjC)jj%GGG)sokx$bE z<5^}^lK0w*eIJ?AQcR}HoJ2P~DtfLh}>m#73c4aEUE1bcB!_4hj z7-6%10O2p+qCYCFSTYjBnU;k`P?~dCa*hnDNhPJVGII3>9bzx@qhRw+5Y9M0UGTd!!b}pv0<$^i( z+~9hk7;J9oUR%KH=V^9gUno86!(RFiv3W;Zs;6`P**+lc(7Ff&s`|w|`OM<8cLl-_ z2x}zE1u;cOjE)Fq@A(pySbY%*=5C36H3uaeGd?KU!dMrmQXRZs3;V%*Q{+dy#Kqv` zzx-_CG4L0!FyO=|@pSn%<9uH39GawHNbCM=I}&c5*dk1IKZ03ZR)xaRuR*ozEwfm**px=|c`5QU zVC8z>T4xIy$qAJhQs~Vx5--hCdm^&Aac(b-1m-%6H^Gy2f2ZHkE9h!c-yWSVz)kez z5t>&oCu1ZvRwfIDTid?hPfwi+IoG0lkUvgk!)8uI)(K}!RVOY@qFjs=b7C{Um-N~; zM|yctYY!aZ5GZ8lRrFTC*N~?9(xo~NHt!_g@0+GY90Nbp*$y4e-lr3Avab2Kme@4(mfHY!qD$8XrwfJKn1!Z}M!l){n+jvR35F>JlpNI1-F|Jxg^TSdW8~jxs<`^(LGs#<^JVwcdv0YPcSX zfwr8Wr8oU5a(3gVfe=M!B<@~hnO}tb`qM?{bU^H5&1g&q0h)$t^}1y#7V${vgZ!@ivDp_ zA25|_keEq?d>c(!<_-n|$@ZL&-Z4$UIphspJKWLr1u@VRXr&KS7UWY0W=uksG6bmm zDjehuLGkEr2Bb%@TR5Xk9j*9kF9aS^*&&k)MwpSL0<|B4NH&FdY4y}9PP7uExFc-vMWv*%dFjk~Lp%ohXaIX!rbehh|F)!R1!JpFFDlYgwNK=5W zji+*3jJKl@#M=<;GR$p`BEd`68@*AyEw-)TbQ{()r zfTgvdrA3gU%`Q!y2@F@t4Rt%|Q*+Y%oX{HZd@{x)Aa~#tG5W!@CfcH4sB1IWwm#6t z_2uw{H3rNVkF@pH%{iYoRfiM)S_4-h@PHE`Zs5m)`&79tk9no(>E1iNH3|qz2D<_p zD_T+|-_l(co^_U&$gB{|09OSvvWEQ_u``|1msgOKJ`Aakaw9HYk;HQuM>t*^mjrg1 zy%yNO&62)e+8&Cb-z6!BDj-ietQC1AXG&X?=_OkH@24v+vJ0p5cZ8lh2-(lVI zCr4~l==B+p>+AK%86b9(rSu0Eu&J>Mbuo!@7iCHgy>KX&4@%4(m038yg6AdVY?Pw3 zml$C5z-Avh%6a#Foj&2GAE!<{Kd=0X%umzZn41SXCRMSyFz!1Vwq`}-uAO;A^_oNa zP&SqF<)OhWrDf;4(^|(1ZwlPB$h+kvt*h>>CzXsnP7%cM%+-Cn2*1a~54Qs@m|PJ$ zjFJ^SR0=s+oH1=6fwFJ;3#U3MI{w0eM;6UO{_ys%V74KxR@XdpQZVm`V9)HrIzkl6pOmHJkcM;AQU@;)YXT3R zKpeXuthUa3iDg&mlu!%KP;xD@CGBlvfV#O#YpWpBy*#jLmCjwGXC3!p4c~mHYnk0x zv`sS)Us`-c(dz=eL8#hkX27p$cKd=S zhi!&bUFqiFsbCLS@s5yo&`2|w1ms0NS%1ZwBd}BHK-~~+3Tlgb|7+w(P8#S*s~3_* zFBHS1<*S|d50HjM5vIdFTwGB@OBcqejVH$&#DQwY1*Iij6;=oi$DoP|swyW>os&Ir z2v^RT-iKgpi4Ix`L%JQ&^#}9QzT$>24oHoUNcG=Ur+Yzq#g(m83A>z2)oNcHAduclCzLXbL+U(#hI#s*E8F?Vs+Pq`Z*0IKrq2 zPfMv5@sIfQhrWoA@EgLMJtFjp!Co%;U$ID-06d+d%(X^ zh++C*=Xmz}%4GG0+%byHNfaQ@uE{Ey^j9D;@ft<#mi6BBzZ}EwkZGkp2vxoqKc6ED zSQYEo&(o#5!n~$aN!1%H&^-9TV#{LDMZPhVL_omC#&P^W*n(@%X&+3GP`WW3 zFoavy>r;FRfu&DAW}V~k#YR?nNtqplS{*prEkWCjjxgF)@jjVBadvkjHY*@`IY?_v z#uqU%n!>Wqe89}=mCIKb7>VsY@beJ#ws<^+sMe&!TDN3L88IgJ%CX#7n9v=&Wb$wx zp`Q11B#&|N+FnbXS2rx|oBLhw6DHr{icRhRt**RWx14v-NWG&3&^YE&1d1@s!Vw$a zte(|FCedpQUM!`js9tgz^@=-e{BrvT$%xNhD?h<5wK^akrHm%6Dik$Qk+4W^gt9t? zUPx^eeZX!V;#`5UBc*is7ml&v`NR4daQb3^UTCua%JRyYxmr4y{(Vr}M8RZoBB}AQ3T~qcfjAvI1`1SGG1aXouP9fc1Xr9V<$y+sY~Y{;r~}xH1uD ztU;^Rr#e{Rx?Dvg&Sh1(*`eLIeNf2-f*2m1`Qa^(&iMEno%L6El)e%IDD3D#Yvhah zG+oh3(kkqC#q~|qS~fEkis)0IT6>s`*k#5PI~kUV%2&FAVy~u>Q?cO%%=yqK?1{XI z9)H3}A8nE@E?^TlYI=@5$1cf?=Qwe^aA`LPWsQ%+-(Z2!_P>9iwn@5ZeYa8gkf-(A z&Yaaf?AR~)a+Y)r--mLTw8(bHRos}~<8%s(k~AHqri{UM&940;-;fuo`vc@j$}_em z;GM%z8nZ7bBz#QjRJb)l3`)th=@{u|gUt1IVZ24YdGSJRRy&}+BpW>OtSuw@P-lCq z6u6{rtG=cV7qtOaP^e$JIgnZye2$6QFH735{+TCJ}m05(xEuvSHWXv;w6U6+4y~}Wo4@M#yZ~jQZ zD$^Y~FOn6i_v}{^wSEb<1?*f&nDcY9NF@gTHqW>e+9jxUQfhs0z`*xlcb0OzHE%p-D*YABY`@1M`YqdVXciY{(_^G^s28oUpC0iC`FZ`VFn zfgDX&iQ@*e9MP~j#`~eL29c)^n!Ifqay|W9cj6z=1vLH5g&6={=zz=f--aYz7!-}1 zjqJ<->kX{D%}h!E`PbjCP-x=c^i;xj_Xp8L!9L=cutg$tw>+OsL6hVZp^7jRz$BEF zJIq^Uf&`|61^Niga=HV^NpZ7!7QIe#<==lj`~=&B4#%&;f9AbJxmPhmCO2ik1}=0q zu{%v!EVR4NmX4W}27??PWsD5lS`lBf))2EEh$H#cU!QKmrWR7HZ=9QV+Z6ZIcRN5y zp5vxG!Z8u&%ck(k_pPC_gM3MYaC`1_UskaG#dR0qT0129nCvTB>>89;5AQBBFVgJq z%UrOD)?oGWv;BZM$l^o+`5Je>6wOJc%TJtU_ISupfezG?+gc^3DP~)*`6naBlR}al z`tGrV$Pmr>PWgK%EUhzt#kd3!{UWx=MqpkpeT+;YV6pXhF*`}_QA#5eol0L|rWU1< zIv}wUKeWpwnBIT!-+vr`Cn)^kAD)99aQy$hHuBE{|Ig$96T(9OtX3V{n2CW6AsEMu zU>4#3?fgk1Ap@7A%R$^!lsn2c$%^jcy#QsA;+Q6kxsVW%MXy|r8#nVFfBs$|-GXz& z#r~FHys(%PlYT`mu5O$=s29}Lz||)4^Sz`(*HSmj_SC|wSbK(; zX~8W?G3aA>4pOtwL7E}3&e$#2EK zrLC}hTNx1D>5YrGi12p#3=(E3G@!v33o>-F-@1+;3J~{hxMg^-LNbZ;i47zYqmaWf z$J(H23~>%wK*IIbFJuhm)$Mqp)Gl=uGK9NWlN_L63?!CbBMyodt&fqW`*%&DKi-L1 zRwAA_G!PIDKsr+RzxtB@d?$Yt5C5%fCGOz-&;S4VmP$3fd{I5nKINHxOj!~TH7&K{ z3QHT-abf5R;80;8v89o11F{sq4_=dEtxb)rYY8iEYF`LdYS&6o8GkRbL@4=g%ccwc*{Y`Q4+NT21G+dv^+d-ByyH;B(BuZ?x0z=Iicz_w=`92!t;g!O3QAi23k_ zNc@9Mv-h{{KrIIwK+`REj(7<92zxNE#z3opO#^So&RYTXueWLhJ?MR!zT5FQKRa{7 zvp?4MM>#w@SOS<{$scxb`&w`9%sWeQcl+t_doBiFKr&*s`F#Q60edUXvcq<~o!j9& z88-0*0!M6LUmCl3eznmA5bWEhwamt|62QNH%YVX!+#`H$_-@QOG|1=s-RBqQWUtoN=rsGFgMnh7MvJ?(xVY{P{I=*Y`5MW?Pihh69o@VyE zvY+q;hDz4BkkX;-5Y1@fH9GbYw>pq>s#|oPmpqx}%xwd!`QDqJ5|8670~NT#+ucZ| zE8x^{JanNgP^j29a7&!_&DKTr=6h^N=HtE+l$o7)dgVG*v?h93)LqO*XJAFCP0P#+ z$x~sLaRe8IL=(AGjLbOvrnJ~q$g(Lj92U8eH1M*sNc`yijG2gukHwLdWz^^sJzdY* zx%AU%S#Ec!AXSr0#SBU7;|yS`26FroeVP@eWNJfc(SD!ZTRI{Iqj{8#LfEv@y&@8)n$QZqTr+v-K}EV5eyx|Eij z%4q`ZCebKD)ZfY~glcnbl8*B4Rh20cMq?;f6O-KJa+GlU$nHd4i$l~zeqj(vV&;mg z?y(C$m59|qMGd}J#0m{j4a_s?y%}>7=yQr?A6%!@53hF-6M8c=&;_ulWXLi+_z5Zqqbr{fQ{mlHN+e`$=JR~|IajRo6f$tqA7 zCtEDNZPwx!8MvRf2wPGAm=x?*gU9&Y~+WA7LyS)g5kPEXrLwQbwBZA{y?ZQHhO zP209@yQej;Z*r5D+?RYWf9ijIwdRcx{#LI`29TME zQqZ{^_I{cvPFv~#tU=h~mj6slolR$50a-C*A>PN;CfMJE*bt0+^tUuO@5Ge6vy6;t zd3Je|o0k%3AipBK1?K(~O@E%TCPDi))QMdCuq65yEnl-jh20`xI%f*iaL}c;BoLqf ziPTdL@+2gr)>ea&l6gUlxZq8wKx@kFZyvb8Tiy!w0`*~h+$}{Z$?kd0%hC3>Mn0jp z@*En)K`zH-?t|D~Zhq|F)jqDpNaAp1LG!W_iKvft^X~2riMuj*RP&P%t9FuvAUQae z?CVuqvMd_NK7)i6&N*!Xa2t?ecn23!7gSI!;x)Ssf^!ccmZ6QJiu}&SVkgTnH19^5 zn(e;oM)lXRs3TcRH`O^e)3*kR0c;5jA;SAaXPfvUjG@3&#G~-Z!iq6@4(pNZzUlRV zS=2sdeJe`navZX@ucL`308h95micO1yB3X4R8S;HgIVE#=oF^0tLPEK0)qWlb4H+N z)1`i>4aw;kz)AhPViojtTswDP3-PK1ORGZyUcjKxMxc17CGwQahoYh_KTiYo1%=<3 zq!qIXZgz)}nk?dF?vgU;x6n@b-nw^OzcVm7JkyI|C>&S+zhd(K-u;wf6Cf)UQ7H_A zbMeVOK;G#Ugjpec(Ts|U8KU@Pt5h-Y$B znG81w!%cYotIt5n$|@xc(;PB|6&BppAgFYtvxL#RKS*)yVKS430aL=-H2K9}KcFN+rh#SXy}gZLq4e&h4A4|q|9CkzF*f5|P49hW4BEc^n)WuHN!UnxO4n{H&6 z@%~zN@bsM^A->=Fm7Z6Sw--}w-=V71&3b@TIJ{qs(bg|UHbM~`s1@I@>L8N)1juxbde@TY(B*a<<7A5FWOCpST>? zM%;7~9eQC!!&#!6{!RT;EcfF*4R4?mmWHPH#pd?is=V7Dbc%Mm1-o5Q5^li}Z15G%-qwcWZaKYl( zv0xJ9cA?NeqG<)YVa7l~#Z$T6=^st>Pm4EuB=J8JlTJVZ>K=4xXc3SoW51ESB%@Y- z6_5HMd62d48@$OD*RnQV{+HCkf1uQwLe2||Z$D5y>i@=g{3isqn;A7A7V z)W0z#?#AW>Eo}zC0$`b=3D)TdNOd?$2dm-8S|usKh;j2Gnj6sf<2u#9`N?_aA7vLF ziLDnpnXT6a;Q)fbMQZDh;x}B~HxGPfZze9z(3d`Mfi5OHlb#PTH=YlwGk;IcB7d;% z?ci<(u|14vouA&R!rKgQ5O-|>qvP%-x!yK|lXNWvs>$ysKFGXFf277XR0X2GzW7}Lmujotabjw z0w#CID`#Z&_f;o;bk{8@-{&yTK^@Xmng)P7H*W&ZAlgi!!@v|WjzFn(jUxe2+6x5e zFb#yr6Iz|kFNkF&h!ilXqTD@Ug*YsxY^g;1IOjKaW70e_P{XTFN{Hk_K{I)-yD+eW zD?-jcW+2L_5v8XCS1{ybiz5xOB}7n-=|tq;xn`a+m$J;)w(pNRvEL9~rDfy=>V&=m zU|>;465vfEvDbUz>QVyU!(ENbb;V2_J80avfH{=u|(a2 z{*eY^v{D5LZtiE-2x%d4ww)w4N&#iQ;V;b3kTbCi9W}UVAQJ0i#7(7$d%_R5c6~0? zL~_p99Rq!$Jt`wR7I@Viy{&2_zU;2wvp8j&4B8@!TFnq`%slzi3KThuP9*8ACGIUS zO9zz6YC1BPtcq_awLiEkBT3M>s%WRTFc9ru)ZLnNA+pYz7)2VJlQ=#*au^{E!wF<$ zNawj?(3bvgix_!>dIe+q>+TdGtl5_R5yHUsZ{aD5LyApAqxlw%!O-}FPEekdr(aOg z+w4bWqW7t5Ol)@F6?wD8F`|gbF()(ZpU07o`$GDXout^)ks5Vjk{LhlqXB?lDfK(X zlLu3;Q|}lbCsqTyVfuzr-2i$6j*Kq)tx+I7vp5Gfftew{$cp`H@^N@K#iUeWWpWt^n+5?q=pt0qo5u~nyb+%=H9G% zY|%$!Ie;0TnBvKv1487N?6_OcnsGeh4~60Hl5E&RseI(g^EwRq`GQ-z`VPn57i zK3MfEbZui6689{&%q!4VZ3SEr6ASZ-P)k%(Hq;U8W%nTiY7)hQeAPun=UHR5z6?p6 ztTzy?DKQb)s0-PImgO|^CZ;MpeV)CPsd}Je(_Y&jad*oy2dqlVgwD@PL6;2ycHlIJ z*lGp((?_0YH4muTD)RC=z@Z7^NoT1-usWQuBF?I8OBA{rsvseiKbv~8MAahmr%99B z)^nv9t*Z9}huT`m)XZce4BQqwy31#$$Wa#7B|ICdBOZrX@q5Na{r1a>!A(tM#v4#U zonVU+B#;JrDa&*#ys`^XrXKe^n7n_j%zmeR$LAeOc3FqU>V^J!!HF~H_0!t>jjw=P zG$&xFM*ql;{a^=1_Zu}+>`Eyv;K7bgNCz!vq6`amzOwa`+ej3zS85t57Fg&}TLN$N zSLLn=tom?`2$Q8?TJ^AX({ZcOfeQ?zBy=9gs)@Gx=>HR5H@a<51b8wv%imMf?TA(WVcCbY9C2htgsH)w)ij@AklO?TYqYqfA{{mt zyNV(M^r~R z=%^~}1_P*YinTE@>F0$AY$vGCawz^r%#{^*$l4Fl)oKjGR{bnk!toG0woaY29(ZS? zFAs|+WkokG5nCjsIEaR;v=GtPyEu+b99c$N6ma`6*+?XwZ~)MSI_@$Bl3pR5m@^*_Z=>W(1U-I7g2BIro;ZBYn!f~*U8*~$Of_Nx|b z@*BPkbKd^_<;lAI`7b#VdU}NM|B%4ve@oy=|2Im}*v9F<3*Unic4UzSP=i$8 zcDziFz5d=^LH*{FUlhq zY8FLdI(-AK-lzlYQEBzXY?dmnJB3V>UH4F0_Umq zKI~%-x+wQ+{?-w~6sThg)2Sxco&sw6pPa*=0lTSSnw@Y|c^)bQjEQ1y?`&VR=b&G| zFFC$c-_GHS4Ft={<&8HBY4&(k*|psGwOIC7FGa!r)zY5^FE=*(JrO?>J*eRN7;WymZ#I&ju-mofN<+x@V zSUCB)^<;kd_xAReUS1dArHQ}VuYM%B0ybIsT@a>*C8Mi!9&AJZtcX;VT}KlJu!R zL?H{)^HtOIvrTPCC!BPd*kn&inSqEQlqB3U&T60u21J#V0yu>Z%7y6-Gmfgxs|Q9W z*cF>oV?YtR!cl$#?Ob4w*WowqL#!yVeB@7S1+!K)Yf^XZi;b^e#e=W1Q8A zh)?(awqaE>>omS5{EWOscj!w@T&R>b74c6!`2)(x8_aX{UtNqL+QFG|BGl1ATqrK4 z4bGBVN=dwVA6iRvR$j&Nw!Y*Okj5N}&vw;yJ~(U`6CZfC`aQFV(oJqY|HZ2G4>JVK zAx-$@_e@ZJM?L%>o)Z6zfh+!J9;H?$yEFQJN`*EQNz#w^nI;v)G9w5Rmw zMq;dVmiuC)+~6d?f5gDG;=h5THrhx+#$ys#xes%t7N#?C?Z|ycQr==rxhL7JggFyk zx7*1(+JnE~aNFI^3S{Sd5f@~j=;!K}^B{;3h6P=N)^Y&@OymG2Kr68`R}11GflbY+`HLw;KDLUPWD#&>Pa(W;e7@EM)e#Un#I2u*0$1_PBLvxo+q>L_OL4IR9h{XtIg3miord)t3AkVl4+qyRp zoqLMlFll!ifL!^-PzRpW6RWu64?W&vsJ|;0&xmm;lMOb zB)IaL8%~SwP3z{-2YKfyW2hcw1g91d(Zto<1PP)oiBpHEC*%!N`=T>RQC{IK{=j@Ef*3T9wn;GxysUDf6&{``MzG)hiwZ{}JkVO^+s&o%ovBXz{|j^eNlAV0uGlBe zzVK*ZDe?S%{CL+BTvITV0`A#!YIX){GYDoUy~Y#g&szZS9FK=9hufn@1(cj|tK@sS`kKu8y(8;9E}X zS=URivTQQ9I`?*LCG9gZJBQx=MS2H7Y%&WIn0WJU@&}&GJ*nYokMZJzVK|WQ2lhm8 zom0}7cR?OT7J%qs6L0jyc=>*GDJY#yHau8N{al&FnW8CaVM9ow;l&K0o6Hw6LFlnM zKEw!7FH)Qot8@-DC_^)l*va7jzBEMr3e4`)-pdyf1J!vi#k5W3#Md?TmuK3KEaal zIr%{hxoJImgTyar{Ym9mQQ)uJBtEnRQ_K0}H0VBqDfb^)&qBRHko-xKMX+5YVvI^U zr0{Q3oqkgsF9t`7;?Lz?5bY>5OX>qBrm)&+rB=W+rX+bjh>z*uhLe7)6#M|; zb*pV2AyUE@pM;KqmKi_i>@XTc>+lcZLvfXi2I|$B!Jt=~jIm^wlQ5Sry4TR0%IG=J zBXtpTsWLqp0M(+DAFkS9ad~|DS+cqip+A-82;0x9+o?yd|3m01G zFC|^N!HN`Gc~0iSavYCsR4YvFL3#t0Mx-{Rq`gcDCaa)T6NKa#8l7%7S!X$ZrycE( zidGWtB2W*uK#9oAoM^XLqu9%BP^Yndgt_W*s?H?JUr>>WP?<*_+-8IUwwjvxysWDM zsJlNEKXiCZQ12y7Zc=vGY9)}9l1PxD03|2eVn8MG@8ccaK7g<)x44392p6VCNeA_Z z`zaQ@v(VD9#bm*)8;$t|C@~|L*5-1zmA4FG)rn!rhv>q-3-uPdb92zG&w>(}Gr$n& z9DLe<6G*hpV05!6r9ndJL-L7kIR$V)=FQOTCl+xAa+pnqF8msO~aRJXKH zCpYR(v$`t*haR%l9SPbt6Kg%N@b)V`u__62qsxQ@nhtV(f?_hkOQB4~{8WqFbxeRN ze1P^b#wxJ}P+Wz5f`M(+k5~H3P84`-inD9paMP<^bjy4$NNs)b{|*~*b#-=Th(0+; zoD;OA_eRmVN|^X+%K9WEvsD<6OEir=;+x{;rC&?E$n4uZs-%n?(WBHt_4_?;aUE{P zh(=$BrqD4|KEf+dqU0CA`N^rXa)z`u?B5SZfvbj3j26zcjZfSI|bfS31=(dt1PE_KfIJAv^ZIZg|AWhXrrNP51=a zOYuYjR|r|>mt*Mzd+z*e)AY+7;MYE6_BT%|@FtS&lkOu@s+TzNZnxLyh4f?+O>O%k zY;Rvy9(Otk!K&AHkyNAp48jxQowg7At-^zu2%X-?SLI@ZX%6ma_SL+-+? z(w<`mzUJl#c)zvw{E^W&qMrR<@AG|ub?s4=IjxLC%SMk1iGlMBhQh4AE}4& zcZ4ai&9imY=>_+MS**qVqIb5Cm%@ouQ`LfFQlxc}G;9x3Fi-SlY{7Af;J%MoAYeJx6ycb??m8{)!V~6C9!O~CV4N6@I6iclPN2pKkv=p zP^QHxF;%+l*`Muo+bLLfb&86zWh3|Av*R%XfUKMZ_R^dKXzu8!gKEoXxE|&v?%_kcHt=g=qTH24p5rBEt2)w4pk|M=EXlGRcq@;9n{(lmux6ITVHQ>B zs%8S6{mCO)B+3v0tWJ2KGw>>lDu4snFNw`^jiTo=}A3vSwFLSfb|X1cvE<| zv*`0Wnl*vVp9qc?EumH*M!jmJQCthZw_|2$SF;4Oq$eRH!MMWMgNjB25@tfsap z-^ufYa7nNCQxVe`CwceH!$C-q%g9+klC210{$O_}W+(HEMp=?&QJPPNukh5<>XGNM zaU7WOjpNNdxL3?v872q!4Kzwyk}bADEVeqc%B!+ju}ONa7uKny$9Cifr{$~IMoaq{56xB}){I_}G%0}IVW0bBfaODgGC#DlObl3lk!u)y6{;q1e)^pbVb8{TFSrX`yI!~SP6$aN>aPBr6P&QPO3-xC$hp1!V zxRLK-eL^iBc=w%hB*gaql44UhlvvS1FAb>Y8P86FuV2QT^1>^&zB(qU<(U**Jlz32 zx7NguH~2i>=tp~=P}#&uqD95if4q$Bu^ZS^AV#QNE*MMtQyoZfO zuKcJpe2s$PWL*i59wpcHin!uquM_&VR>neq?ply*6!};hh*|8%vD8Bj@r%M1&+Pn2 zq6}Mw^BnC?1Y7h*5Nuh%b-pRmb;c|5T-s9BM^F&0B8p&BKvnA>&?@)8Fym62gWDGL zyuIvmBvVU-kKc|w@!^Kw_sP1rLLv(O3&sQO>}~O=HGV?W0xwq8O;#8?Cv&uic(h`0 z`By-*h@^7x6isEkc4p4Orx(tI%Ro%P$M_GaiTww{a%Dh>wgbG+3$K_^VLPIpsYusK z;Jl|>e2jMQCylLY^lo?2Kz;S4e|DFXAJ^rpjmZ1$24#=F8ds0fk(!tzF`C3ktAy>a zYi#rz^7FPAfE&~~G$?jOIXq~CAbTd(_1E<*tldVC*L)a6 z{5vgY$+af}MF|?XUyvK0^*%1SZ``@NA7*=M#;a`6HqiQzs{-^+bl7QN%ID#cP|J&@ zpV)_1)a99?z5I8-PtY70gGI16F`;lS92eoYL#sRdI`3r9+qC(zuK5e)GbTN-{#*So zEtB!(-aNq9qbz#wLOW;wIsu(5_A7)JeLKrYy=D`0^Q)^}8#OTkm6M@cxNwyZrpx+J z_flAT zJ8ws2%{n!E3vT{KV>`F$iXIZjcjvxGnL6=nfb|n^_0b?+naJyBuiS!ZRhXOP5>e1P_l5x-E_4oo=B;g+?>pc(kDMS{6r6jMA z3Z4LXuB%HVnJs1GJmSjn2a)+#q}@rb26-h}G>e8G>LX|$x_Rg{`S9g%VP)8t0GBqt z>Shb;R|PX1M>9>EjV)<iFX%;o|oR-RT7yUT$IOuIYV)gfjwZrh(L2Z&9z}OK*vo-A=H0Ht9p{ zM2D;9i{iucf04-igCA?JmmnAT=2OMKIWo%sk&aMuHg_^6{>da;Iv#<36vf!NdRTqB||2E->qcfhTA^PVQh%f5}=t=>gGUmhQ2MkjbQ`eBhU;^!w1G7{w$2(3}8ePKo-?pLhmq-$h^RUgKXb<#Mh9R=cu8f?13F)ZUlmvK7>wmh^L{r zhK4X&Uw!Kv$^8=evrpI!^@qT!Am|3nWqop7(Wbx> z?bp8$+p?9`LIhwxen2Ar_<{4k{}BI92xY68yDo^LbRUpJp!z2wW^vhxFOmkkn6>QxwQ02Y#sq--iJC0Qc z#%-CAapcQ7qg&ws%%T+ueV(9M#@V4je%`_~8keznBE3|ui78Z5<5{L&e+&h!qT~vd z@|(O(K5)dWs45vfyE7m|-_&-eV;UxWZybiBII^QWT5Vz>!&xJnb#z|0DoOdE!s6^> zgNgC&DRlNyFr7cDUxV?iB7a8-r`sS#Q#F{$Dt#dBaW0)Qz=c+@&DfL)ch0Vk)_^oChljDKY{zlz4WRO^<^9zOt_9qi| zWY&b#DdxHLEJs(JSDUit7R;3bRj+e)9`@yZ~4WAWV|}HWwT;-#5U`9c_-Y8poqR(&Y>pekquXJnf#v%cmNx%N2UpL zr_tF$#&2T`h)~NVo&x-sus*^m_a%yUjJ>2vm1z@3H|5fmQYcsXv3b*{1ahrSOKmSt zilswN#E!Fc_bXfMz&&9*cUoyWGm;Zyk-_WBlP5lq0Z%x3?5JOE`oe|h<3W;@H*NkN zeg3Q(<(eec(kITEXd@dhEGU)6*7@U^*#bXLnS^hHTO;0GN zGCg}0TTG_$$eL(QP^(&Ll`aG&dW()NjiwjvI(qfh$t4X)%cX85Qm9#zG1bzV16Yuq zra)ppqh;k_P+fdVd7zZ0ZXZ=rpn)nRO5QKfea0tly>y6W$E z^E&W0brWNXGaU`oY$~>h1|Q)?Ht~O^Xcj>=D|{3Yr`b18&b)8;&@W`vb+C?)uSKY+ z;wUHy64i(q3xU`;NU&7US})qKEXiA&vTx4rq0*LyZ(DLl;2cF8CS0iZ~oDz?qw)z3xuDn2*1~Z6} zd?Hq$ccCXa_#8{yO+U}l?ZgX{wGB`6pG^kO(g`MPnh@>iyeSTszyRK(^Qn_e0bT4v zz~anstEpQ7$HqlDh3#qYp-iMD>qmo1P0~Y+6HcMNQ8HAkAJi{o^Dyw{!rFDs$aLh0 znzwM}ZmCwl0rr`Z5k7DJ9xr)*pGEtArNdWT;y0~lBc8sJPjd0AB7uB{PSilCkgE&XTS9WRViJpU{(>}@iF6V(26Ut04_{q3>6lC~)R-=@d#hfX zn5@z`2=L-Qc-YHTIK(W#B75k4ao+%HaiBYKZKwV--)@&NBdGq|l#s*ik#>~hXTD>f z)Ekh81!L_Y@B+QzP+SW{CERlb!QBeQ zpU!~V6}e6(`l}@PjC=kAUF=!~xZ4*oHzkBQ*aRP2r_!(gVqpBoOWy5HIK}Y$i2nDx z%JqM0?{=iKwly-gq7(gxi_z8A!BW)R*y^8h*k~1pOTc@p?r5j&PxIiZ5a@d4l6j}yO*g;3m_KML5__XAWNw)gXL@uL~MVR!B%=uV7*Fg z_^{TI(l;o%Bz4l*bu^grHPfs-pR4A%XsbY1k2dkkkKJY2DePKZiz|P{|Gtgrtp*vU ziYaByc-Nv_ZEDrdkyic4xZ-U97P~nZ*t1(Phd8A4k#Bv@=<0*Y$SDm7X_muXp#*>K z@i+$e^@$+rUWi#LtF#Mb^*?C$QWIXHx9j5cHw2;f%)wjFKk)22RHXeYhCX|}S_O>p z$tZgu;5gxI@l&Y%!_c3a$llG8A5NgXXrb(SedCL%+50A#-+p(OWsQMvQ>CwCzF*i? zQ2M+d*pFLeL&yw&-< zp}C4Qm0rN2^4eTAhckwq3>hs$c*Gz`Ph8rFG4KVFDLs)r+6ghM-Og{|@CP@uUAAya zR+8gedBV`HK~(MH!@yu7hRDdDso;}}zn=4GEo&;zTRO29GvCLdxrPwiW}z#VlnduT z^(P#|U#(PZZK#{e@=#%%uA!n0#WOSafVv^ZIh2_X5 zCJR+tVmNMxJ@c2$_RB*L)N)1<&HX74lW1XJNSr;ox$_NFhCVC$+urkaa%X(mJFbUw zWVYd3#QXpsm5PJJ#5g_wWS}Nl$e;jbuAOJa3Gyr_-HtLr99d0XE&W~Z7hdO}W7R+u zH%P*3-qQXTc2*k9EjeHNUD_`zH*G$GMapu#=+}-jWXd(fus>l%?CwaySEM%xop2iA z40|HOOtyM))p5QeqeRnsvRn(1LW=wOYpqxt%HLF5X=nZ4)MkiSu4^!W^{pstOot++Fbs+{=94P>`AxWT$x`lh5Ax$(f?z!7w9HoR97#0j9 zQ}0Ngb?1A4eib#20_2AC-jdr^$*Ay}wVh|Ir{Wct0F9YME`gp)cZo9sQv6YH3=#K^ z1#+zQm0K4LoX*W>jl8xA^eGUWhx29lEo0L0j71tuLb)}zwZOE_;5hFuNvxqsyT5{s=h0jBs$8p2yBk_v`Z4^eaCJZpv3? zoy~+O^Afwf%99d*X^l!5b%N2cXNL+b_Zf2}1OInf`x5kOOZ!bFkZx28l;rG$qV?xr zleRgb#||HS%!+fTCD`te)%f$mG|aZv3R(<|;jowyu$0dFfl*`AbdW-ov`t&N8)#mHg z3C2c=!L`3~$0YEDEGeN(e$848{?P6tU#ssKWzPdrV?flXNRcf$vw~off44j=XC^a( z^!u0xgkZR&&cyv<7fr#A-UCla?jJ`liiuy8mHYaT%yKE7lqW>6PYF9QZ}rol-uED` z<}cEaq?ejUQr3&v*N_wm=X6MR1!j{-LCPUgj_MWBjl#SsuyGyQA&}vi6fn=cS?x^H zSo3V#8KRlT@+4&-*LwYzv$r^d{}}T3RP%r9F#cx`{r_jG|B*%UpZT^**0x9j2tH_W zRBli-!j|6UbY^?x-3EMsW<3ZQ=~+?hw;?&`t^PUV*h`$IFDjV`QlEdfa=V&Q8T9M8 zn7AINo0^)q`hI*o}4Ix{plWUdH8;xkE2-b8G8mXH< z{YmRgsI2MSxsH^5^@_l7m;wh9+8f{&=e%_P{?7UH_s%O`QK~68^ zx>;{;hs_Y4U-6J0dx%!4d)DrIWxi~=iE>AA1WS2tA=(p4`%`AKXm5V4#q=a^IJEHX z&yyY&(&-<7-@kepH`s{be+s0W7o;bjE6*_sY=;|4NVpl!?J6>&OeD9OFQb<1eb0UBw59=HH4HZTdj+F`InQ#27sCPXiZ|RW&vL>KR%Vje(0}6h zG~DYSa#nVY*0g~yUfKSxlf=b5xc=21TKfCvG-cR*kGDIY#6x||YugDEUuG(XxjB~` z5|iWb42fpJDs`D+UZj*0$dQ#yoV^(`VOp(-SL_ru!CWwKx{iN7=2+y-HbGV&wH3m+ zO_vbx2WpyQm7^w3a#q|&;B5gW*)zO?zF0Hz6vGC2DjUKV{e^IYGub)NMB`pFtmj{J zK8v4=2dof3ejFhGpP!oln6H0dr=wNheNoiDz2`3ac+x_+C}v3Gie?>aAT9Eh{DREf ziVGq95->8S17p{5*>&k_)01Fz79!>e(;L*&E~1=-%;RmA7(ThEJe-%J!RG1X8r-;C7c#LLu zVVB~I*k|)95?LmRP#f2FZ*aEpdvH1i@oysPwN3$f$)zEFf2K6i6RR%rl!A zC4H0`SbSVT4YA>jmuaHQu@&ZC((j($`+Lmcq0Z_r77HNs@5+R4uyB609cwXeABRy*hZL(xMNg z511>RUyy{Y)H4@RJIxYQOi}ZXF4IhvnhlXuHH3AlVXDz1xSRi28gxk^6$hi>HfK zhsif?&x(lM?o5=Wu!E6-!Z#7{T^Kdw@KHCcE0tBcnw>PNHz@KN`1?x}R5n}|e<ApI_`N&Z zvBhh#l$`%?O@9@n%-m~4ve!WZpkHxxk|C)~Q6AQWWz!XqJL1XRt^|j{yOwM=V|HH{ zd4*+%#n@5%@Qh&gVx6pTlJyY21u6sg*9 z;y87am4_j@ar;IXzoJY>s|1Zjo7T1_L>xxl#Ea!T#veF;;}`-L7^iouq9BbdgpNBZM=Mr5M9j)xcr`s6 ztFLtU(+K+ScGkC9dhOd^AdZwMP?WPtHxidpwV#lGR}1z>t%nfZvwVsu?JMiK;~+|q zNO6sQs53UKOUN9h@=N{Ta835`aq!~;X*~+GAg!fu8J!{QsB^TrxE)=c6B4$%doB_S z$yE&=g@jk>Fo8W)KJy5XVXmBMctsU}ykLtqhqG|T!W}{L80G!pGsJ4gm#4urRgP=E zDW&&WR`{2nn+2X?$sO6*c0moN!@R20m3uaTUh^z`I|TPl^Tx~&&jX0zojQM>C2}Tz zW=J~H_Ls`J&f?bXt}65%&reYo6zw#})mY%7q2WN{BkK!v1WYMsmnkCceo8*cRDKEe z4BT`N>_LKhUAY(@VYJ**_cUVQM={tblC}vF4C4Tjs^`KRjedsn0;$2vx(WN~qt#4{ zD@ua>JYm}z!mVb%)zzQ-h7als-{mjgDcMsQ=jP=4SKOG}LWVdoj(I``E2R6Q83{)1fg{Tnqplh^4t^abQm05 z!7*)oz{6WrSvMQ3MwOJ?^AMH}*i~K)QI_qwMO=SRxcyAMC1$hyfQAxbB~pwp_|dW} zFz*wUNGK60k)NK4lJO^jkT_Wa(4VFi1m7XjR+5!;(ZiXgsTgY6#fhy4R4@du4<ov%X%Xj$q*7p@ZBrh>8bZGT&mEH>=jZQ|IpLVtG`IB z3L4hKB9sMcVNaEVPlV1DD_u-Ipjz?4lwM~qUS}f`8TRUDL%WQ;*DV*zCPiURr324G zc6C`WF3INXpPn%RF5v-p!wG)P9+^#o$TUj(FCuoHo7c7FRQ^{CvF7VD5`{tyI>L5v znOuDRF&b9HIb55JR0KSc;;)qb1blDNB-|T3Iajm#vmOFoJXaQ({VCg}eM{I+==)Q~ zmF?n;9wMM(yFPr=;Qokt;As;FVOahc8%jAY+qaafK(B7$-<#VQMo*9_Wko89-gCtZ z6|A>%x1O`a^#kkPPjdZKzJ!aEwL=ZB=w%_=Qw}ek51+twNIZH8W!TSmy#Kzo#r%@3 z)c*#!gWmx6e`=ck4~|8`#@xwV-^$!W-^tw8M#RCv*5Thl$akaeH^fEZ85kj?T20n0 zvPiB#RkvDsdzvo^@58hVc&7#gE4P$xpPtBiZCmp0Zo8{jecU16OX`QANMVWrEni z+eW%$8awGeU%Hl%v9y$ptvYhBY#1g}$tb8~LWHM$g}fY{SCD5415@HUE0PG*UN)FH zO8-E@XNUhkrCkR+mhJafMrK3Nurf*rQ8w8jBU_Tncx)coN`oX@*(;J!W=Lg4R7NO5 zWu`=1sEm^Le{M={p68+8|NeBBx3~Ly&UMbY&N!jdY?mH}*S_ zIp@C{w9rg<yB)F!qaJ1 zl;FnFn0H$CQ>-SV=b_{LsCDn^bd=hMYcKdCE~lL8s}K2M+|mw zo;PLbxliZWE3!A4Ydcpb%!0d&qV$Xm7~noT z4cgdUY9+p^s=TzeFr!G5Yw$?1izt4J%z5or{o`BZHzhVcC~?e;`S4`8N#y9~Lyr{O zetbG7t9ko8^4a8 zy~Q#*sto5r{1`6q#ZV-ZyNJf;X4iyUNR(oF8#E~V%T~S>jDBC7^`0-&@0t+n#QK#_ zJB#d%Zp%lP(75WTpUiVeb1v-9$d`G)t-b?G1jysUOHzT<$&6{)jLAu}sl^o4dD?+#f0R>Relw z6h%jj<+X9xMmZV0E&RLhwvWD+tsD_$hE2!Y*jBvXEBK9W<6$F_pfvV(S=Ulld0#wz z{!>;p#<)q}xM5JjQt`@-$NfwPL@2lL6lJXz3Y0MBE|VY`h!xteb|hc&q+UWx+?DB@ z@9sXXperYd`rzgB>b8BhM54&i+#SWi8@J_f?>L)yS(s`Db z>emNNM$y=}N9AW+@pq*t^`Y_NuF}->seiST6yvqMO26+ck;e7+he@0N(^R&};c-H`uY_)~w*x>xs~eczT( zdQTmF5(;jVI`57)Su584-RpVlJ3r3u-CSuEg9lb@ROxg2<^Rmx)hO53?`aE*?cVSl znYR>=b_(dcIk7)sYWMESeW@{Z`tELuW;q!}vb&qh^9j7BNr znm2C*Z97kYRcv@j?RI_s^uy2eEH%2^etEHIj%J*>e)$C@8>PI?WdWDCCbTME9y*#m_Z^dx=^+eY~N8C`SPX}9%cs=3Ba39@vM$&9R&QjK{>LH>&E z$A}~e*^~~W0P`X7qa#nw`8Owt$Bt2i?`#!Qc=@=ES>eOll&NOsYH8NdNM92UYx`9G zX2rmsZ#LiIg3jK1;WvR)4-a zPGZJCarZN)&8l6pAKBT?#3@@ea#in^9W@x)QV@Oh%SVsi1re2Wg1u|4BVMy zZKmt#h?zV2!&x7qvAK!MpE!J3-^id%f5Y_S?v?T+q^n33YpKLH9?QCY{g}1)iMMQ| z1vdPCaiYGDIppikc0Qk`IC|<;<{IPd^NPj|?G|!9=I4r-Z_V^vT+Ff)tdn~FWE$F&+c3tah*tMbCzN*}duWo$YD1Qg% znm5CGn^-07?z2nk58wJWwXf>V=;UP|&e6ASLtMm<3k$aI62x?LwC%sNmaEJvzVvSNqum;OLS{W}VnR=; zo>2XeYI-(WdjC$)p~rPrp_qoYQD*Px@8QwM%gT2Kg-g&uST>aDYOhbzRsogw5 zHB?eM`@imIe_-rJ&)Ni@4o|2l5XX41iU3^rDR^=CZlh#XCaFabxPXF#>b}-}K zr9ijd0-D_tTIO9Y2^T!x6NP5gvEHcmeaL7wV$~_g)U@mQRmIk4&vUvDKa_`&Kc~Rs03GI>1dpC;y8ajP_V&!waoCZ1jx>s?G zN&Tc@-fMoz3?I%Tdcv2x*5DpX1g})-^9#W@3QPMR^43NYNe+fRe63!wnl)FmS$*H8 zoFiw`-9l>IGs{;$)na{3?MFK6aPQN{OUUgc*UO&QoOP0>{(i+z2yr`BzvN8s%0 zqStU`$ur}^8pChIc`l(^r0HM%M=l3X2A-zf7Ck{)!8>tnRd4X*1>#FGFL_+nD6HJ5 zxP9BIsPd!sQOCpKb!TWu`Ly+WcBT)~riU3vCl3!Ee?9PPqnT<=cD?jkuYgzH z&&j2{Xa-&h9}+jZbC5me07JS)l)Mwws@u&KA)!o+-(FR1&wKi{S=EIjyt2Rfp0K#c z@z5;31MQ0Kuhd<%=sYR(vebL9MLsc&G=)jAjo$Gn?ISO~Q zXcuA%vx}=o$qmAbPU#gH7*6~P%0N^_L$x?J5njH;&vn zDob%VV{NUF*N5$lFBMsj$eRRGxT)148G@g2*nsgIe?uNJWX(v`h zsC`+TJRTdFX1ulP*VCk(UFnb9Vjj8O*BglAiLng*Xj08v)15ck*dA#aE+S2G{rB)QM64V#htj-FiD0q&^ zdFZ&o+4QSSj=z5NRs&tt-Hb-nDRDyIFU9AIpAbuUo|x!M?0MJxx<>m`4r<|~(34$- zHj#xonD*PXt?NrDdILf~`VFZmTdC6UE0Z6HQ&d0p(NEaO_~^47PuCJPl_$Z5nhjK0 z=|Ok-sU@<-BQ2~XmQp6|>?#w~;KJCt2Gv@Yzaw22Ele}?U9sD(tu z5qBybiVF;>g<2gUYS^_xuQMOMW)ktHCG$Cq6+YUp<;?|Z3rgJ7;$uIZsrhe*kr z)orEJ^4ix1p_}0;uGpmKC0!Iu2 zX(C+>!um>L7%CbZ^qwXfx*C6bse8(-QG$Mbgsp!dr`Z`}fn3+9<{0fZMB+TRDBY&#ve1xd)3`-ri}c&8z3Y2nGbd zE>g|t+C7w4C@LR(Q^-`#DR0ohk3A@QoHT@6>#*h1%B_i>p~S3H{$>*Xyx(1XkIER@ zu-`p5`LekrME-_gf^IISP{6rZwiN4_HWO*SGF?B%lz_mCTPnR*cjw&9YRlm+ZZp?Y9$UGqhK?nbvlBYOL*-wqqhw`3gxpaE^%a==1k82J6WxPEU^Mpo?O){hFuGN(ubUqc= z|DMZla?9TIvE$PQj+ZMG>WB7xlr8Vl5UdDzQdg2N{n&AvlZ5`)(~asx(%JqA_jzBQ zT*toVGh>TnZi7&+p^azn%ZyKSqH9TW`!|#wfp13 zjYA43;kpOKFWI*;U5~GwBKc_Q=;lsKLN#Q~V7p(9)qYBJmGr$Z+V$&5UXJ!T4&8n7 z{MU+O=eX|sva+Y0a=mn`H9Ws=Jhzx4@4WRy%VzfdymzuAVje%b-h0wli&;kB<*~lg zH8}_7!`4CAOU4)Is|#<^U@vPC-(g94`#di?{=fIW9oR9=+l5vcV+LCUq#DTgPGB&G5_CHqM55>8-ib0>qW= zLa#(`Ij{%%1^LYU^+>Yd1o#H>+DkNf4YmYYPF<;NMq&B3m zFlA1>>vN>E-(TQU<0ko+ z!O`FF`iV)(C{J}?!|N{w5BqHe;bc38yk(|kV+Ftjz<=p1hU8Q+*mPchI_u-8~U zokm^Ge)@#%FSfw8+%Ij~zXE#APgWny`4|uxAGposLw4bt*35(DnL12q@AS+p4+U{G zt}|p-%{Uap8C;P;V=WbJ1Go9*ZLZJoR=7crwGnAsVXs>K!YU4H*v3{)k%JAh9+9)m zn@Wxqw(p3(n=7!Nk4@v%%B_|+BKsWrk9hA_dtUmK_~V{bCF6~6)tW{XbVF|FhQv-_ z5Bv}k>clE;H!%&BlQ&{{el>Hugv|#%8Z$p%ooCECJM!Ld2p8vwd?>nO;|KLG+em`! zidLo$m>$|4ltEkOVdH%7qq4PM{QgbV4q4JQ?eCS&7b>Y{2tFL_uzH`xKvnmwih9R- z%8PW?>-(N%-MuRnU{|9!eLZvA;r)~Thl}3OWyck4P*=UUN{u2*g6oEy!r7I?6gtj~ zI!yfWg{!q(Iy-57%cBJ-ZmNzQ_OX>=iriI6lvsD1CSGZK<x-rI zrA)nbt)xx#ld(yKMt7QW*Ti04%!TXUJG&py?sVd&YBh{HU(aWknm@STTj=QcnQF5% z-|n?LX=t)(#W3M$AX=j-tulay}PL~XyNyP!lj{lfMKiS-1qpweT zaO{Ao3R~2E>J4v4gvs9yZwvvvua7*{HobZKhN)}8o7Z{1y}ac?ZsdjxOa?E~Vulnt z{cS!A9DkMRlBeYCYeIT?LX7`|VI{wA#4mGo(v4T;s}x@!-^-^tOf?nG#oKtjC5Cyc zrKlKY|M>t--52DFdQy>nuc*FfCkTZWX+BP&tvQq4cOq@W)RxLiBSxf^_s>zD4trj2 z;kmY9;+&84>jShFQRE@b|5=i1IeyzXrB~hf)JFZ&&xGJgo?_xJI>T%14D#vZDW?O@ za21n1=bjMhT^q(OXe}4+=v$=cD?pd2=EN0lG`e=8AiXO4=(D(Ooj-h2xWWx~P`-JR z(83cQ{8^ItggCQ7KJlGL;Rh}~+E(eyRm){SYUH1<>&+gRMs6TiD-lzkZmGzp{xS2# z+31@dgXaTyQ+f|#{W12&+vNOe_{F8t{M0PS?bmr~)Smoqn0e9W!`_%H`};R=u*yA= z_6^kK(!=axJV~!?HJMhy!4xze$naUTHd9k=4cAi@?OSZ^efo-9o(P89q@Uf{&h?b! zy}97@@yd;jUkjhwq}rQZKht?|kXK{c+tFlv-3Kp$pZ(je1q_^NYuoU+@aFgIdcMye zBI`;gw{-O}=3NdC*_q*dC$Hx7lcFKtOSGZ^^d1#8>#g4$KKgb;NigHrAgt5GyKJ`R z4~#r<41;N}>o7Y`X$wR>yV`v4k?frcd+wW2FU?Myaut}nS9Zb)M&J25xcTTNjn#Ig z2EFuP<6%0VPx;lGtw+v|L1geWSBg(!w6@uaQMQnb!{^@X_6p_Yx0)BxHCzi44bKkT z%)fo8T{yj6w17FLWLh!T<}qvR!}8TzbhEAx_N_d5fwSB$j=YUU)h$0#Pip_0ZY{lL zol}>b_&T#2+iJfx1%$luukv8q+?De%;C_eV%7aEWY9IQpWWY^N4_E6|MXHl`zf;|o z!&SXb^-#MBi^K7zPio(4>NNdapGnjVC+f7^4i+s@$-YJ#=~(+oC^k@dCrO`Nh*e-; zRN#M)@*|~htG@kDaGLMYWF=!1qx;pMe!8>YM7xKN4@~~hQvQBH^Y)1id8ZsLFC_h_ z+v~y3f0a*gu!!ViTnqxN2Ov8`uqpedY7ff@8TPDUY9i?8RC7py2V`Wftp&?&OKY> zXd3y&a#u1R|GjP9QY0-bS;x6bS^FvXkM;4k6^DxJYoA-Sh4*mHrI?@D1zT))xF>Mk ziFW$p{$|MOjlPK#pJmozwHHE(Wj1 z{mudnxgq{S>%-jE*EYQG*khV4AQ<=5q^7Obhe|txMd0ddR#T}L$7&o40^%56KXZ-? zU`}-!Har*Nzn)lN%Q2OhIOTSo-oh&q^t2W#RFkqwr`HegexrU|FmCj&C8MG7+|kHF z2|1TB(UucUJ;oLsuF;YGAuQIMMuA+M7A~Ah31Xev-GSF)qx3k<2W+N2Sc-DH6?Q7z zYV;o_N;>3cd_4eeC*HvPrg?>$t4Y+sSp6EoGbBVSL!^5(?O*1-Hc~zi99$c`F7Y;1zi51Yi$>j$NwIO*04r^i ztohacdWCYSHR}W-6yJzX=eavphG9isUhCZ9vafW@Q3Y3GF^gy1d#jD_D;>esnF?IG zUG?Z&f$*=KNBf^?@@6~G@*XxdV7MjLn;7UG+dJ{@EsY0f?j%=bljK0wxzvk?J}CFR zQx3Rk?|Evy0k+1i>*Mz6^_M(J%7z3;3-i;|m2#S;ZnH;+8;RC_6it?^pS(>go7WrD zmm7CiDR`e|a=TUf^cLns+xJgh#o}%4nrM5^yLUNcQXkgr#47^SbF^H|fH5Fu|nD9m}`j`M>rOcEE}BrYD}S)2TE^PU$edj>B! zNywL+6aUgkk^YQgKx4GE4Sw&!N)>7YT~72!+PqX{V#RYuk=w=$yaZ3 zGSg(PdM}~HL` z6({pRxM|npqGOW27FqV0)=X7mvV$kqy<`^^IrsV3W;;@; zWGS*PrFWC5hdmQT(l}qlCZ#pDMs_wl`?ev|geAc9L6uv|IeQVTp1T0?%C6O>Co2O! zi?8Zpo%c(f^u=m1&MGJ-zxy_fBJ??mn_Ap9gO~J@}^E(^y{QbvNfhp~610lBugMzjB_I zH`4yP`n0^f?W*Z1bG=~dm0MkZhy{4Q|1qs%m|4F~jhZ@`T4p8nrp>Y59P5dxV7KRr zl^clR$|RU?&jWUW!?}lo2qxlZp0z}uXa0}6qOL5jipD=Ii34dT~FbjX|qy zAszz?4>?g051ze=2SLVIP(Xh8ft)bTu=Ip5S7@;N1i*ezBFxvPZl^=@v=9kx z{yBJ%a2VM_AXb!^1_%SqZiyjevuHRDm_WlJt3NYnPEc?q+)U&|-Ps4RE;GV#&VLG= zgfY>Ubq$5NEG?p=#S0X`(oI5#Dl&+6etbzT4L%uSC_yaRKWxo(w_F@pgtf8>^?eV{?-!aMIS~>Rok>^|SfP6l zfFh{oP>6`qyw|THB2rV4SJco^hPaqMPP1zQr>YWsIjRC}skXLO-p~gdvc_~!fm|d$vI}0J0bU^oHM`5~x zF)qT?#yDaiikc(5;s$haWZk?50I30x0|jUW-D43T0;GU3!#e$4m9((gtrrG{20)nR z&~!EwVhLP!gcDH*h1U!D2!6c9?M19UkL-uG4WOKW z7cD@tEjZ8?C*}*;)4FCgS_L;bZ3Dag>(vpXE0_cPn?1@pJ7b*isNzwk`^AgU(7T|H zzrhqi$^p&HHgq8pbVg+PE5>}@a_xm2CZ<=#b3>O<0$ctY`w?7UFw2Fw@>qLE6DMnD zti#MtW^=307Q&VnJgDLaR&_xy$YjZ%C(ZjiB>VVbe=pZvtRAE%p2$%T^?)wF3al9o zYR$J8boO3$#3p6UO&lRd!41k&vd`%WaQX&-0cGw<^WHAB3{ZI!i0AmMGl={8B_|MW zD0JzabI6ErWkr{ZjhpMn6(X1Afa_BrU$i;=k|KmGZ{iF~qRmXqF}QIB8^d~HfzwKO zSy3EckXekY>4bH`n7Npk+TnqFzE@u?3Sf%i1%sb^(!7tzE{4PJh)#_s>FxlpeHV@x z`WucALGsAq#z7j2yNP*kig|Ux{fL6wM>jD{9XA$1qb#z^8f%4y=|ksan`|f)(#DOaJu~9KXM=m1S)c1cQ#m1{*oxv$OqUQIZsBbf zYB+cSxXS_CV@07g8sSDG7zNLcZf|_E8r(N{+rNV%M0nxG1mG6)hIsG36Bg~(z>_Du zXieO-TMV|e^LBZ7U=<}ujUAXnxAn07AH3hGm>gIeV!hfksq|v@5bu=`XEIF%qI(E0 zn!WVX3*df35jK=b&5f$=faMITK=-ZTGYjzaVZ;H!U@>2a*bZXWj#_}o+~7s)AlZ8X z&eAdyeVN853MtJYNc6S>;GZYWTh8YX*zc;vtl4Th&5Vr}vxbNaTOfQZ0s<2a{p{gl zf6~M=H)7edde+?1QF$jntrMV}~8v}m)@0fv5Zt-*C zX#NP|5g}7SW7J(+fZ=M7$EyZrsjPSl)DeqBV|>n@k0FP#z&hc<@H2d{=@Vdh1IFKx zE8-2va~ER}5XuIRsGv~*3Iw3db0R^2c=P51{l3~AU-S|o@yw2f@a+hZ2XcYAC(T>` z1`1{_EBYNNIF_9!{fPM01Oz;I@X;ec!#eL!*fR5*;VophEiB z8unRxsAG_W1P(aOtw&v$!rfe1nob8;)$pP3j@r7~ zx3lp^=p>|&Cn6_-{CU#6!z$(@psJL}ZVfv-j2&VRuHXys1?i7+^*?t2co76@-ap9j zXPWods%3-Y=G)#`qRkd~mH{Uri-NXzh!=WZbya?@(8}@qN6&rMc6j|-(-(=9tsv-0 zc;!&!b~XMZIoPvj=W34mLlt-P){Vbl#Z522=^yE-I4px6zsM->74QixG(<##==MGN zH+s0+lX_CW@h9N=g8X)&@VB=A1HLD2^qedGMErn^48g@w=+@8hq9dhod916Qxdzrn z8)ITF58Zvie#(Wunll3^E?Zif^jRQhB+{e%wGsr&zy28IG!S`%9F$?0 zfOYc3Cx}hakA1g;5WFC0OQTdN`EI$;+OW_QIfTpF!IE&U+3y_FstmfsfPX^UO(g{E z<+TIx(6e!oKzS%~s=pDORVX+s9#o@_4lk1qZbh^Sz5Tob8lV8+=x*gQju-gPRL<|H zj)(|1I(Ef)Uml?QLgu>%#rFLlOQO$Yz{n7KHX+7MAy#Z)Xb8++6!=G{BKN14q%aGt z{(I^HpFz1#FuWcF60gC#p-GUeT!Bx=e?+u^#P2%|7rKSPthAauAaQOH2`SQlCGq=; zyoDru*uI_Q1riZJVmC?^d&&Qi1a3|IC!H7=0j>?18bf#Ka+ndu(-r0CD^X^!^H2U18Rvl|g2NM_AuaBn<@#B&_z`rUeSY(a{ zk|xp8{|lAhQ;WEX9Kebff<%ZK;6?ko@QwdK#93#Sin$z~SX^J}DkuaEAq7j7Ks9C@ z5?(xpG^cG%sJuBKCvw2R4upnGt>f$1pUQ4}DnMg&f!IM5q4Ny?8=*hhz|6j6$PZyF zvg=YQfsKT_2O`oA=r>|0E~J_MCoXVn&sbXAk{?K1hDe1DizX~flhOS>Mb0tvgQu*6 znH3h2c6^c@*UqNngBa`$14Jmh&OK?~pV|IrVz}GoRnla(4cf&7AqGv#jq`scg~v;4 zmZhI}2Qou2>O&jm82A533U`~rroDdEgVWdm(H>oTui3qPLb$Ohk8o;EfI^Og$)PjQ zF7ahzr-&iAa7<<%knvl3W^jZY6-Mo!#sSsDB&<-ofFasxtPop!&U_ z6MYmxNvZ!I!Py$XocEpS#<<1lIOLg=2$|;BO$$enyJY`gJm4nh&d4FQ9h$qJZlMq6 zQT-QkbG{Kz*b=%u(2q<}$wSljqePpj^AB|9BxrpCV?JAHgK{f@S+}Qhyy6fSiJrlW z4wsmNOVjD77xlF#7u??4}uLA9>l@PDE5JEGy4NXt-VH~j); zssNrBoxN-@o=@#>4{&la@%&pUBRI>FM#{B{3ly~jhG^&vThjzLxU;jXy(6+7LEjn+ ziyUAQ)WZxj^B1^Hj=|2e1gXNwfGMDd9t{|r6#jB9?*vzkI9Z$E296hR{GbMUJ^-3P zCteS2Z~`lOn3(+@Db38Z5=0mAlCPBj$nz3A_AZ~i$G1C zmIlQW2yb}qv_W!-ap*tWP@MLcW~)!h`*@H`W9TfEGXA9ee(X|GA#;CyVjzJ61erYUdS?Ir~ARO?{2S?kssWSkDEkFV7R&`)C zFClHr^u*l+g>%CvAu=3h$sWNM~{@_fhHkv4Ocrm zg3x)K;l{@Rwt11*wIT^a&rCi0nWE@1!YF>PxCVM4lAPFQ!Oa3pWy>Wm>sRewV2CV=uB6i^Muq47DPAxB&3m{<^oe=7CH zI2N={4kKptc;V4?obYpNWM_NX?21|3YA_3u;w%H~RKP~}guHCR*t4@C+JwN9RI-fL z0=O*52JM4x=Me@+q8?ZfUUXz?o5R)Wu?tB1JiKVJY$za%zVuA@sY3zU$aKef>V?Co zHaytB7ZcA)9BX23ji;7_-8S9D2*^{=!O-Q#iaWTu{*647R>RuG-;yD);$l4g+&N)z zKu_UCJ0RY>1W6#ND1;RPQ`NE&3P%D#qnn@wXuqFVK@b}6IjRfe;?MTJp&ZaCF))vo zPhb^63bSrsbY5V=SH6%t=xTo%OtJ`+tBLBa0Wj%{qr3hoW8xrjz;0$8=?vAG^>$0n zDFg|RSlEK2cmqpG(UscB+JB^ur%T^^ceoIw=MIh!ts~9mr3vg=h5)ag2>j{}R`6tz z73hM^EhRt{1w1LJO3(*+Yska6Vf83FJ7Q}8Hww6AbTsT3<7<%7OOO%TV?Towl|Tz- zL#Xyl2ghF^;|-A-lm`pbhPZ?Fs;hwNvf**_Uc?k$26;FUvg8>J9y7Rna2$e1oa%Ve zgp2`jZMP8w+2D)$Mxc+jjK5NcLGtl63!}l0k!3(HIQMbB-$2kqd;APOMRTc$7;MpAnim5s>#R5yIybFI29u=mZ^%T8LVJ7&?!;4(s%nB&LnA zu!Hrwus=Z_mZjicwu`hWrsuP=6KL2MUUcB}Uq_J4(g{VCWtW{C=tBeg6}knAv;?7N zx6B|5g=TJfTcQ`7G3g}=0oBWby`t0i-Yo>l%-bEL2%8qoTnLnn5K*<7N!MtBMtDFY z=+y23^KuCx=>~2KrorS44FGZ$jPO-ZUCwOlzn~v*(1qQXSXUR0x#OK+^Z;u)aFdN( zwIzuddZZ`xNVJk}u>VhFag)iu(0#lUWQS}AL{~v6b}W~Sih~>07DLDjl%2e1OAn3l z1FJ(PQexc8r2^}EXV!A!@L-4$9Ee}LvlZ0z74iUKl$x&c{R4^FgcA>qWJB%X*C43f zQ0Uo?qERm}pT^vfY9>khJzT?s87W`;+zzn3;N6D8`~owRf8EI(CgJ{#h$6#Lb*mXb zIl~J%%iNRZog_RTa%rT9_U*yaAXIPA9lF61Q0e>2+^l1m85PK5VX+;uDFs)?i*Wb# zo^MG52(boifn$z0WbURyY$;6KHvH{OdCqg-vKD%%915{P3J2nhOPN=T=9qOd^ZsV8 zgW{&wDpyWl1hlTuF07uelwAfr+@O;Tm>)+#EQR1L(Ou*xT(G@J)C(K&+sN?NQxM6! zUCKE-1bw|0$m~GLDF0j6=I=Zh=lWHI!;bE}nks0s2Z$EEy8b5)G$g#qTbWqn zn9xDMQhd1{w}G)S0T?riwMm%VU)Wr5S_mGVzE4;C<3Cm~q(B(_q5D3?!Npj*7<(9S zn>cyy!~Q+Nc42n1a{QSMayS99J08uR{SjP{kXpgTt+=(|mpkH~3{Ct1FB*#)3V#cm zilk{sTNh&?ViP&^wjc_0upfFoJ4$SC@n9Luu9d>)Mr2oOowx=jmjD?&D+=(gId0~D z1LEdS;epAeQjpmv2p?##lxj@?4mR-OWAIEkb~p4~qIf`LLot|aM;H+|hvywSYoH89 zv<{>QTd?LH*d&L=fj66L;D+M;NIcyDP{l_f`f~k)$hJu|dGr2duhN@CT{>%q7 zV?aZj2_5Wo}QxUvqg_57Z0j7X)HgmEz#hu|JZC!0F`v56zJAgLP zc+L3n2+W>R#2cNbgEv^z*qPh}S?G(qwIvKRWCuX24j{g*C`|-k#DVs^ zI*Q9ikhZqkYku7cN(g{)E80djhvP@X%~{f~9i@rDQ3JearFuhUdQm%Pmqp@ZjAh`v zc@P+`Hu$COsAe9D!w2qhkPtoUnl|aM-8efI=N} zFk7p~r;iWaCdYmPgQeg#(a5vO7LDLTl+3;q`L9!g9>f>UNmwu zR3iyXo$x}2Yn#28kfEgIB7F`NEf0CIK9SCRps^vx736RMUUZ#;sCX${!ecc=(soZS zuSf)0+-!8QsQ@?XNf(m29t^EUuT zHqoPt-xU?h0RK}L#OF?$qboO#1HA1b_!U+E0*}Y1kf@f9i~>9|OO57U2~Lz+WP=Mu zGsit1$8x5tJ+dAQ5lLUr@cs|~1%A(BdqgZI&e`|H6mXxii2Eyb{{kuUceA z{g0k;Q>x57_&Nu|-HNpf`&S2ep=DFT4W2SC^%U0S6J^4S_VZ6WmIBvt!8$s^9IU4v zoQXof&m+Fg=$3^UZr>);wG*UC@`C)5b_5spEYpjz5OCUS6vBM;q`} z1#}Cg??+6$$cw-UU$8CO9)qlzh4s>l1%xQ{=ux&yh*_tAS#L)*VK)sPNZ0}cAs@yK z_yTh5ngjJP^G{T<2vc#*l9+g+Fz*}QfKPzQ4elDvry&$e7CO+GrvK#=Pw0I=eEuwy zFNww$VFs*U5))6n)e1OguMQpA5YjUalsvc4FNKL)LnUxwsw}h|sWYKR9+}&5AS*ZBAVC8wwFf=lN2yqM-LSRVT=4?iOwM6X3=9rA=(U-{U4;I=rlc)4;R$z zlwvEdwEb%97lv{}KPpfb(!mc+U`7k!cj3J{e?b}b@Pp0;sl~>KSj)mwwf}-To8SV) Zm9-%!eZV646_hI`4?(783XX*6{{TREv-ki2 literal 0 HcmV?d00001 diff --git a/src/test/java/JSTest.java b/src/test/java/org/peergos/crypto/JSTest.java similarity index 98% rename from src/test/java/JSTest.java rename to src/test/java/org/peergos/crypto/JSTest.java index 21439cd..55421ec 100644 --- a/src/test/java/JSTest.java +++ b/src/test/java/org/peergos/crypto/JSTest.java @@ -1,4 +1,4 @@ -import org.peergos.crypto.TweetNaCl; +package org.peergos.crypto; import javax.script.*; import java.io.InputStreamReader; @@ -21,7 +21,7 @@ public static byte[] getRandomValues(int len) { try { engine.eval("var navigator = {}, window = {}; window.crypto = {};\n window.crypto.getRandomValues = " + "function (arr){\n" + - " var jarr = Java.type('test.JSTest').getRandomValues(arr.length);\n" + + " var jarr = Java.type('test.org.peergos.crypto.JSTest').getRandomValues(arr.length);\n" + " for (var i=0; i < arr.length; i++) arr[i] = jarr[i];\n" + "}\n" + "" + diff --git a/src/test/java/NativeTest.java b/src/test/java/org/peergos/crypto/NativeTest.java similarity index 99% rename from src/test/java/NativeTest.java rename to src/test/java/org/peergos/crypto/NativeTest.java index c2f61fb..8a68831 100644 --- a/src/test/java/NativeTest.java +++ b/src/test/java/org/peergos/crypto/NativeTest.java @@ -1,6 +1,7 @@ -import org.peergos.crypto.*; +package org.peergos.crypto; -import java.util.*; +import java.util.Arrays; +import java.util.Random; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/TestRunner.java b/src/test/java/org/peergos/crypto/TestRunner.java similarity index 91% rename from src/test/java/TestRunner.java rename to src/test/java/org/peergos/crypto/TestRunner.java index ccb0e07..a605176 100644 --- a/src/test/java/TestRunner.java +++ b/src/test/java/org/peergos/crypto/TestRunner.java @@ -1,6 +1,7 @@ +package org.peergos.crypto; + import org.junit.runner.JUnitCore; import org.junit.runner.Result; -import org.peergos.crypto.TweetNaCl; public class TestRunner { From 3952c6a7f899b89f452e73f5ae1554c91eadccc6 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 10:26:39 +0200 Subject: [PATCH 05/12] Update the Readme with info about gradle & make --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 7b9c1bf..ced1f84 100644 --- a/README.md +++ b/README.md @@ -4,3 +4,7 @@ A Java port of TweetNaCl from the original C. It has been extensively tested against the original C version and TweetNaCl.js for messages up to 2^24 bytes. It still needs a professional cryptographic audit. To import into your project you only need [org/peergos/crypto/TweetNaCl.java](https://github.com/ianopolous/tweetnacl-java/raw/master/src/org/peergos/crypto/TweetNaCl.java). + +If you want to build and test the project via gradle you can run ./gradlew check. Currently the gradle build works on OSX and Linux + +If you are using Linux, you can build and test via "make" as well. \ No newline at end of file From ebc35d4e4ffc66cc6869ab788342503aa2294603 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 10:40:12 +0200 Subject: [PATCH 06/12] Make all java classes to compile to build/jar folder --- Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 52f98e7..79dd4bc 100644 --- a/Makefile +++ b/Makefile @@ -10,10 +10,10 @@ clean: .PHONY: compile compile: - mkdir -p build/classes/main + mkdir -p build/classes/jar - javac $(JAVA_BUILD_OPTS) -cp ".:lib/*" -d build/classes/main `find src/main -name \*.java` - javac $(JAVA_BUILD_OPTS) -cp ".:lib/*:build/classes/main" -d build/classes/main `find src/test -name \*.java` + javac $(JAVA_BUILD_OPTS) -cp ".:lib/*" -d build/classes/jar `find src/main -name \*.java` + javac $(JAVA_BUILD_OPTS) -cp ".:lib/*:build/classes/jar" -d build/classes/jar `find src/test -name \*.java` @@ -25,15 +25,15 @@ test: compile echo "Class-Path: " $(CP_SPACE)>> def.manifest - jar -cfm build/Test.jar def.manifest -C build/classes/main org + jar -cfm build/Test.jar def.manifest -C build/classes/jar org rm -f def.manifest .PHONY: jni jni: compile - javah -jni -classpath build/classes/main -d build/jniheaders org.peergos.crypto.JniTweetNacl - gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Isrc/main/jni -Isrc/main/jnilibs -Ibuild/jniheaders -shared -obuild/libtweetnacl.so src/main/jni/org_peergos_crypto_JniTweetNacl.c + javah -jni -classpath build/classes/jar -d build/jniheaders org.peergos.crypto.JniTweetNacl + gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin -Isrc/main/jni -Isrc/main/jnilibs -Ibuild/jniheaders -shared -obuild/libtweetnacl.jnilib src/main/jni/org_peergos_crypto_JniTweetNacl.c .PHONY: jni_test jni_tests: def From 4e75da6fad698af2b5180b0b64b4c540bf38bb22 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 10:40:56 +0200 Subject: [PATCH 07/12] Include linux headers for native lib instead of darwin ones. --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 79dd4bc..0ea2b5a 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ test: compile .PHONY: jni jni: compile javah -jni -classpath build/classes/jar -d build/jniheaders org.peergos.crypto.JniTweetNacl - gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin -Isrc/main/jni -Isrc/main/jnilibs -Ibuild/jniheaders -shared -obuild/libtweetnacl.jnilib src/main/jni/org_peergos_crypto_JniTweetNacl.c + gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Isrc/main/jni -Isrc/main/jnilibs -Ibuild/jniheaders -shared -obuild/libtweetnacl.so src/main/jni/org_peergos_crypto_JniTweetNacl.c .PHONY: jni_test jni_tests: def From e0fa5e4a84694c180dbc3a470c15d4e7dd47f2a2 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 11:23:22 +0200 Subject: [PATCH 08/12] Translate the JS test to JUnit. --- Makefile | 4 +- .../java/org/peergos/crypto/TweetNaCl.java | 10 +- {lib => src/main/resources}/nacl.js | 0 src/test/java/org/peergos/crypto/JSTest.java | 317 ++++++++++-------- .../java/org/peergos/crypto/TestRunner.java | 11 +- 5 files changed, 196 insertions(+), 146 deletions(-) rename {lib => src/main/resources}/nacl.js (100%) diff --git a/Makefile b/Makefile index 0ea2b5a..854d952 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ test: compile echo "Class-Path: " $(CP_SPACE)>> def.manifest - jar -cfm build/Test.jar def.manifest -C build/classes/jar org + jar -cfm build/Test.jar def.manifest -C build/classes/jar org -C src/main/resources nacl.js rm -f def.manifest @@ -37,4 +37,4 @@ jni: compile .PHONY: jni_test jni_tests: def - java -Djava.library.path=build -cp "build/Test.jar:lib/*" org.peergos.crypto.TestRunner \ No newline at end of file + java -Xmx250m -Xms250m -Djava.library.path=build -cp "build/Test.jar:lib/*" org.peergos.crypto.TestRunner \ No newline at end of file diff --git a/src/main/java/org/peergos/crypto/TweetNaCl.java b/src/main/java/org/peergos/crypto/TweetNaCl.java index bd520b9..5221414 100644 --- a/src/main/java/org/peergos/crypto/TweetNaCl.java +++ b/src/main/java/org/peergos/crypto/TweetNaCl.java @@ -861,12 +861,12 @@ private static int crypto_box_open_afternm(byte[] m, byte[] c, long d, byte[] n, * * The caller function must ensure that the first SECRETBOX_INTERNAL_OVERHEAD_BYTES bytes of the ciphertext c are all 0. * - * @param c padded ciphertext - * @param m padded message - * @param d length of message + * @param c padded ciphertext + * @param m padded message + * @param d length of message * @param nonce nonce - * @param pk receiver public key - * @param sk sender secret key + * @param pk receiver public key + * @param sk sender secret key * @return 0 */ private static int crypto_box(byte[] c, byte[] m, long d, byte[] nonce, byte[] pk, byte[] sk) diff --git a/lib/nacl.js b/src/main/resources/nacl.js similarity index 100% rename from lib/nacl.js rename to src/main/resources/nacl.js diff --git a/src/test/java/org/peergos/crypto/JSTest.java b/src/test/java/org/peergos/crypto/JSTest.java index 55421ec..c6164b2 100644 --- a/src/test/java/org/peergos/crypto/JSTest.java +++ b/src/test/java/org/peergos/crypto/JSTest.java @@ -1,27 +1,40 @@ package org.peergos.crypto; -import javax.script.*; +import org.junit.Test; + +import javax.script.Invocable; +import javax.script.ScriptEngine; +import javax.script.ScriptEngineManager; +import javax.script.ScriptException; import java.io.InputStreamReader; -import java.util.*; +import java.util.Arrays; +import java.util.Random; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.fail; public class JSTest { private static ScriptEngineManager engineManager = new ScriptEngineManager(); - public static final ScriptEngine engine = engineManager.getEngineByName("nashorn"); - public static final Invocable invocable = (Invocable) engine; + private static final ScriptEngine engine = engineManager.getEngineByName("nashorn"); + private static final Invocable invocable = (Invocable) engine; - public static Random prng = new Random(0); // only used in testing so let's make it deterministic - public static byte[] getRandomValues(int len) { + private static Random prng = new Random(0); // only used in testing so let's make it deterministic + + public static byte[] getRandomValues(int len) + { byte[] in = new byte[len]; prng.nextBytes(in); return in; } - static { - try { + static + { + try + { engine.eval("var navigator = {}, window = {}; window.crypto = {};\n window.crypto.getRandomValues = " + "function (arr){\n" + - " var jarr = Java.type('test.org.peergos.crypto.JSTest').getRandomValues(arr.length);\n" + + " var jarr = Java.type('org.peergos.crypto.JSTest').getRandomValues(arr.length);\n" + " for (var i=0; i < arr.length; i++) arr[i] = jarr[i];\n" + "}\n" + "" + @@ -49,8 +62,8 @@ public static byte[] getRandomValues(int len) { " return window.nacl.box.open(cipher, nonce, pubBox, secretBox);" + "}" + "" + - "function unsign(signature, publicSigningKey) {" + - " return window.nacl.sign.open(signature, publicSigningKey);" + + "function unsign(signature, privateSigningKey) {" + + " return window.nacl.sign.open(signature, privateSigningKey);" + "}" + "" + "function sign(message, secretSigningKey) {" + @@ -67,60 +80,83 @@ public static byte[] getRandomValues(int len) { " for (var i = 0; i < 64; i++) both[32+i] = sk[i];" + " return both;" + "}"); - engine.eval(new InputStreamReader(JSTest.class.getClassLoader().getResourceAsStream("lib/nacl.js"))); + engine.eval(new InputStreamReader(JSTest.class.getClassLoader().getResourceAsStream("nacl.js"))); engine.eval("Object.freeze(this);"); - } catch (Exception e) { + } + catch (Exception e) + { throw new IllegalStateException(e); } } - public static byte[] signMessage(byte[] message, byte[] secretSigningKey) + private static byte[] signMessage(byte[] message, byte[] secretSigningKey) { byte[] res = null; - try { - res = (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("sign", - invocable.invokeFunction("fromByteArray", message), - invocable.invokeFunction("fromByteArray", secretSigningKey))); - } catch (Exception e) {e.printStackTrace();} + try + { + res = (byte[]) invocable.invokeFunction("toByteArray", invocable + .invokeFunction("sign", invocable.invokeFunction("fromByteArray", message), + invocable.invokeFunction("fromByteArray", secretSigningKey))); + } + catch (Exception e) + { + e.printStackTrace(); + } return res; } - public static byte[] decryptMessage(byte[] cipher, byte[] nonce, byte[] theirPublicBoxingKey, byte[] secretBoxingKey) + private static byte[] decryptMessage(byte[] cipher, byte[] nonce, byte[] theirprivateBoxingKey, byte[] secretBoxingKey) { byte[] res = null; - try { - res = (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("unbox", - invocable.invokeFunction("fromByteArray", cipher), - invocable.invokeFunction("fromByteArray", nonce), - invocable.invokeFunction("fromByteArray", theirPublicBoxingKey), - invocable.invokeFunction("fromByteArray", secretBoxingKey))); - } catch (Exception e) {e.printStackTrace();} + try + { + res = (byte[]) invocable.invokeFunction("toByteArray", invocable + .invokeFunction("unbox", invocable.invokeFunction("fromByteArray", cipher), + invocable.invokeFunction("fromByteArray", nonce), + invocable.invokeFunction("fromByteArray", theirprivateBoxingKey), + invocable.invokeFunction("fromByteArray", secretBoxingKey))); + } + catch (Exception e) + { + e.printStackTrace(); + } if (res.length == 0) throw new TweetNaCl.InvalidCipherTextException(); return res; } - public static byte[] encryptMessageFor(byte[] input, byte[] nonce, byte[] publicBoxingKey, byte[] ourSecretBoxingKey) + private static byte[] encryptMessageFor(byte[] input, byte[] nonce, byte[] privateBoxingKey, byte[] ourSecretBoxingKey) { byte[] paddedMessage = new byte[32 + input.length]; System.arraycopy(input, 0, paddedMessage, 32, input.length); - try { - return (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("box", - invocable.invokeFunction("fromByteArray", input), - invocable.invokeFunction("fromByteArray", nonce), - invocable.invokeFunction("fromByteArray", publicBoxingKey), - invocable.invokeFunction("fromByteArray", ourSecretBoxingKey))); - } catch (Exception e) {throw new RuntimeException(e);} + try + { + return (byte[]) invocable.invokeFunction("toByteArray", invocable + .invokeFunction("box", invocable.invokeFunction("fromByteArray", input), + invocable.invokeFunction("fromByteArray", nonce), + invocable.invokeFunction("fromByteArray", privateBoxingKey), + invocable.invokeFunction("fromByteArray", ourSecretBoxingKey))); + } + catch (Exception e) + { + throw new RuntimeException(e); + } } - public static byte[] createNonce() { - try { + private static byte[] createNonce() + { + try + { Object nonce = invocable.invokeFunction("createNonce"); return (byte[]) invocable.invokeFunction("toByteArray", nonce); - } catch (Exception e) {throw new RuntimeException(e);} + } + catch (Exception e) + { + throw new RuntimeException(e); + } } - public static String bytesToHex(byte[] data) + private static String bytesToHex(byte[] data) { StringBuilder s = new StringBuilder(); for (byte b : data) @@ -128,144 +164,157 @@ public static String bytesToHex(byte[] data) return s.toString(); } - public static byte[] unsignMessage(byte[] signed, byte[] publicSigningKey) + private static byte[] unsignMessage(byte[] signed, byte[] privateSigningKey) { - try { - Object res = invocable.invokeFunction("unsign", - invocable.invokeFunction("fromByteArray", signed), - invocable.invokeFunction("fromByteArray", publicSigningKey)); + try + { + Object res = invocable.invokeFunction("unsign", invocable.invokeFunction("fromByteArray", signed), + invocable.invokeFunction("fromByteArray", privateSigningKey)); if (res == null) throw new TweetNaCl.InvalidSignatureException(); return (byte[]) invocable.invokeFunction("toByteArray", res); - } catch (ScriptException | NoSuchMethodException e) {throw new RuntimeException(e);} + } + catch (ScriptException | NoSuchMethodException e) + { + throw new RuntimeException(e); + } } - public static void main(String[] args) throws Exception { - if (args.length < 2) { - System.out.println("Run with:"); - System.out.println(" java -jar Test.jar $k $n [-random]"); - System.out.println("Where $k is the size in KiB of the message, and $n is the number of random keypairs to try. -random randomises the PRNG"); - return; - } - if (args.length > 2 && args[2].equals("-random")) - prng.setSeed(System.currentTimeMillis()); - int n = Integer.parseInt(args[1]); - int max = Integer.parseInt(args[0])*1024; - for (int i=0; i < n; i++) { - byte[] publicBoxingKey = new byte[32]; + private static final int MESSAGE_SIZE = 128; + private static final int NUMBER_OF_RANDOM_KEYPAIRS = 10; + + @Test + public void testAll() throws Exception + { + + prng.setSeed(System.currentTimeMillis()); + + for (int i = 0; i < NUMBER_OF_RANDOM_KEYPAIRS; i++) + { + byte[] privateBoxingKey = new byte[32]; byte[] secretBoxingKey = new byte[32]; prng.nextBytes(secretBoxingKey); - TweetNaCl.crypto_box_keypair(publicBoxingKey, secretBoxingKey, true); + TweetNaCl.crypto_box_keypair(privateBoxingKey, secretBoxingKey, true); - byte[] message = new byte[max]; + byte[] message = new byte[MESSAGE_SIZE]; prng.nextBytes(message); // box byte[] nonce = JSTest.createNonce(); - byte[] cipher = encryptMessageFor(message, nonce, publicBoxingKey, secretBoxingKey); - byte[] cipher2 = TweetNaCl.crypto_box(message, nonce, publicBoxingKey, secretBoxingKey); - if (!Arrays.equals(cipher, cipher2)) { - throw new IllegalStateException("Different ciphertexts with same nonce!: " + bytesToHex(cipher) + " != " + bytesToHex(cipher2)); - } - if (n == 1) - System.out.println("Passed box test."); + byte[] cipher = encryptMessageFor(message, nonce, privateBoxingKey, secretBoxingKey); + byte[] cipher2 = TweetNaCl.crypto_box(message, nonce, privateBoxingKey, secretBoxingKey); + + assertArrayEquals("Different ciphertexts with same nonce!: " + bytesToHex(cipher) + " != " + bytesToHex(cipher2), + cipher, cipher2); // unbox - byte[] clear = TweetNaCl.crypto_box_open(cipher, nonce, publicBoxingKey, secretBoxingKey); - if (!Arrays.equals(clear, message)) { - throw new IllegalStateException("JS -> J, Decrypted message != original: " + new String(clear) + " != " + new String(message)); - } - byte[] clear2 = decryptMessage(cipher2, nonce, publicBoxingKey, secretBoxingKey); - if (!Arrays.equals(clear2, message)) - throw new IllegalStateException("J -> JS, Decrypted message != original: " + new String(clear2) + " != " + new String(message)); - if (n == 1) - System.out.println("Passed unbox test."); + byte[] clear = TweetNaCl.crypto_box_open(cipher, nonce, privateBoxingKey, secretBoxingKey); + + assertArrayEquals("JS -> J, Decrypted message != original: " + new String(clear) + " != " + new String(message), + clear, message); + + byte[] clear2 = decryptMessage(cipher2, nonce, privateBoxingKey, secretBoxingKey); + + assertArrayEquals("J -> JS, Decrypted message != original: " + new String(clear2) + " != " + new String(message), + clear2, message); // unbox with error - try { + try + { byte[] ciphererr = Arrays.copyOf(cipher, cipher.length); - ciphererr[0] = (byte)~ciphererr[0]; - byte[] clearerr = TweetNaCl.crypto_box_open(ciphererr, nonce, publicBoxingKey, secretBoxingKey); - throw new IllegalStateException("J, Decrypting bad cipher text didn't fail!"); - } catch (TweetNaCl.InvalidCipherTextException e) {} - try { + ciphererr[0] = (byte) ~ciphererr[0]; + TweetNaCl.crypto_box_open(ciphererr, nonce, privateBoxingKey, secretBoxingKey); + fail("J, Decrypting bad cipher text didn't fail!"); + + } + catch (TweetNaCl.InvalidCipherTextException ignored) + { + + } + + try + { byte[] cipher2err = Arrays.copyOf(cipher2, cipher2.length); - cipher2err[0] = (byte)~cipher2err[0]; - byte[] clear2err = decryptMessage(cipher2err, nonce, publicBoxingKey, secretBoxingKey); - throw new IllegalStateException("JS, Decrypting bad cipher text didn't fail!"); - } catch (TweetNaCl.InvalidCipherTextException e) {} - if (n == 1) - System.out.println("Passed unbox with error test."); + cipher2err[0] = (byte) ~cipher2err[0]; + decryptMessage(cipher2err, nonce, privateBoxingKey, secretBoxingKey); + fail("JS, Decrypting bad cipher text didn't fail!"); + + } + catch (TweetNaCl.InvalidCipherTextException ignored) + { + } // sign keygen - byte[] publicSigningKey = new byte[32]; + byte[] privateSigningKey = new byte[32]; byte[] secretSigningKey = new byte[64]; byte[] signSeed = new byte[32]; prng.nextBytes(signSeed); System.arraycopy(signSeed, 0, secretSigningKey, 0, 32); - TweetNaCl.crypto_sign_keypair(publicSigningKey, secretSigningKey, true); - byte[] jsSignPair = (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("sign_keypair", - invocable.invokeFunction("fromByteArray", signSeed))); + TweetNaCl.crypto_sign_keypair(privateSigningKey, secretSigningKey, true); + byte[] jsSignPair = (byte[]) invocable.invokeFunction("toByteArray", + invocable.invokeFunction("sign_keypair", invocable.invokeFunction("fromByteArray", signSeed))); byte[] jsSecretSignKey = Arrays.copyOfRange(jsSignPair, 32, 96); - byte[] jsPublicSignKey = Arrays.copyOfRange(jsSignPair, 0, 32); - if (!Arrays.equals(secretSigningKey, jsSecretSignKey)) - throw new IllegalStateException("Signing key generation invalid, different secret keys!"); - if (!Arrays.equals(publicSigningKey, jsPublicSignKey)) - throw new IllegalStateException("Signing key generation invalid, different public keys!"); - if (!Arrays.equals(publicSigningKey, Arrays.copyOfRange(secretSigningKey, 32, 64))) - throw new IllegalStateException("Signing public key != second half of secret key!"); - if (n == 1) - System.out.println("Passed sign keygen tests."); + byte[] jsprivateSignKey = Arrays.copyOfRange(jsSignPair, 0, 32); + + assertArrayEquals("Signing key generation invalid, different secret keys!", secretSigningKey, jsSecretSignKey); + + assertArrayEquals("Signing key generation invalid, different private keys!", privateSigningKey, jsprivateSignKey); + + assertArrayEquals("Signing private key != second half of secret key!", privateSigningKey, + Arrays.copyOfRange(secretSigningKey, 32, 64)); // sign byte[] sig = TweetNaCl.crypto_sign(message, secretSigningKey); byte[] sig2 = signMessage(message, secretSigningKey); - if (!Arrays.equals(sig, sig2)) { - System.out.println("J : " + bytesToHex(sig)); - System.out.println("JS: " + bytesToHex(sig2)); - throw new IllegalStateException("Signatures not equal! " + bytesToHex(sig) + " != " + bytesToHex(sig2)); - } - if (n == 1) - System.out.println("Passed sign tests."); + + assertArrayEquals("Signatures not equal! " + bytesToHex(sig) + " != " + bytesToHex(sig2), sig, sig2); // unsign { - byte[] unsigned = TweetNaCl.crypto_sign_open(sig, publicSigningKey); - if (!Arrays.equals(unsigned, message)) - throw new IllegalStateException("J (J sig): Unsigned message != original! "); + byte[] unsigned = TweetNaCl.crypto_sign_open(sig, privateSigningKey); + assertArrayEquals("J (J sig): Unsigned message != original! " + bytesToHex(sig) + " != " + bytesToHex(sig2), + unsigned, message); } + { - byte[] unsigned = TweetNaCl.crypto_sign_open(sig2, publicSigningKey); - if (!Arrays.equals(unsigned, message)) - throw new IllegalStateException("J (JS sig): Unsigned message != original! "); + byte[] unsigned = TweetNaCl.crypto_sign_open(sig2, privateSigningKey); + assertArrayEquals("J (JS sig): Unsigned message != original! " + bytesToHex(sig) + " != " + bytesToHex(sig2), + unsigned, message); + } { - byte[] unsigned2 = unsignMessage(sig, publicSigningKey); - if (!Arrays.equals(unsigned2, message)) - throw new IllegalStateException("JS (J sig): Unsigned message != original! "); + byte[] unsigned2 = unsignMessage(sig, privateSigningKey); + assertArrayEquals("J (JS sig): Unsigned message != original! " + bytesToHex(sig) + " != " + bytesToHex(sig2), + unsigned2, message); } { - byte[] unsigned2 = unsignMessage(sig2, publicSigningKey); - if (!Arrays.equals(unsigned2, message)) - throw new IllegalStateException("JS (JS sig): Unsigned message != original! "); + byte[] unsigned2 = unsignMessage(sig2, privateSigningKey); + assertArrayEquals("J (JS sig): Unsigned message != original! " + bytesToHex(sig) + " != " + bytesToHex(sig2), + unsigned2, message); } - if (n == 1) - System.out.println("Passed unsign tests."); // unsign with error byte[] sigerr = Arrays.copyOf(sig, sig.length); - sigerr[0] = (byte)(~sigerr[0]); - try { - byte[] unsignederr = TweetNaCl.crypto_sign_open(sigerr, publicSigningKey); - throw new IllegalStateException("J: invalid unsign didn't fail! "); - } catch (TweetNaCl.InvalidSignatureException e) {} - try { - byte[] unsigned2err = unsignMessage(sigerr, publicSigningKey); - throw new IllegalStateException("JS: invalid unsign didn't fail! "); - } catch (TweetNaCl.InvalidSignatureException e) {} - if (n == 1) - System.out.println("Passed unsign with error tests."); + sigerr[0] = (byte) (~sigerr[0]); + try + { + byte[] unsignederr = TweetNaCl.crypto_sign_open(sigerr, privateSigningKey); + fail("J: invalid unsign didn't fail!"); + + } + catch (TweetNaCl.InvalidSignatureException ignored) + { + } + try + { + byte[] unsigned2err = unsignMessage(sigerr, privateSigningKey); + fail("J: invalid unsign didn't fail!"); + + } + catch (TweetNaCl.InvalidSignatureException ignored) + { + } + } - System.out.println("Passed all tests for "+n +" sets of random key pairs and random messages "+max+" bytes long!"); } } diff --git a/src/test/java/org/peergos/crypto/TestRunner.java b/src/test/java/org/peergos/crypto/TestRunner.java index a605176..9471de9 100644 --- a/src/test/java/org/peergos/crypto/TestRunner.java +++ b/src/test/java/org/peergos/crypto/TestRunner.java @@ -3,13 +3,14 @@ import org.junit.runner.JUnitCore; import org.junit.runner.Result; -public class TestRunner { +public class TestRunner +{ - public static void main(String[] args) { - Result result = JUnitCore.runClasses(NativeTest.class); + public static void main(String[] args) + { + Result result = JUnitCore.runClasses(NativeTest.class, JSTest.class); - result.getFailures().stream() - .forEach(System.out::println); + result.getFailures().stream().forEach(System.out::println); int status = result.getFailures().size() == 0 ? 0 : 1; System.exit(status); From a41fc9e359c83663ee0d910ef79636019e669589 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 11:43:41 +0200 Subject: [PATCH 09/12] Revert the mess with the renaming of public to private. Now the test is 1x1 copy of the old one, with only the test method changed to work with junit and two paths changed. --- src/test/java/org/peergos/crypto/JSTest.java | 118 +++++++------------ 1 file changed, 43 insertions(+), 75 deletions(-) diff --git a/src/test/java/org/peergos/crypto/JSTest.java b/src/test/java/org/peergos/crypto/JSTest.java index c6164b2..43b933f 100644 --- a/src/test/java/org/peergos/crypto/JSTest.java +++ b/src/test/java/org/peergos/crypto/JSTest.java @@ -16,22 +16,18 @@ public class JSTest { private static ScriptEngineManager engineManager = new ScriptEngineManager(); - private static final ScriptEngine engine = engineManager.getEngineByName("nashorn"); - private static final Invocable invocable = (Invocable) engine; + public static final ScriptEngine engine = engineManager.getEngineByName("nashorn"); + public static final Invocable invocable = (Invocable) engine; - private static Random prng = new Random(0); // only used in testing so let's make it deterministic - - public static byte[] getRandomValues(int len) - { + public static Random prng = new Random(0); // only used in testing so let's make it deterministic + public static byte[] getRandomValues(int len) { byte[] in = new byte[len]; prng.nextBytes(in); return in; } - static - { - try - { + static { + try { engine.eval("var navigator = {}, window = {}; window.crypto = {};\n window.crypto.getRandomValues = " + "function (arr){\n" + " var jarr = Java.type('org.peergos.crypto.JSTest').getRandomValues(arr.length);\n" + @@ -62,8 +58,8 @@ public static byte[] getRandomValues(int len) " return window.nacl.box.open(cipher, nonce, pubBox, secretBox);" + "}" + "" + - "function unsign(signature, privateSigningKey) {" + - " return window.nacl.sign.open(signature, privateSigningKey);" + + "function unsign(signature, publicSigningKey) {" + + " return window.nacl.sign.open(signature, publicSigningKey);" + "}" + "" + "function sign(message, secretSigningKey) {" + @@ -82,81 +78,58 @@ public static byte[] getRandomValues(int len) "}"); engine.eval(new InputStreamReader(JSTest.class.getClassLoader().getResourceAsStream("nacl.js"))); engine.eval("Object.freeze(this);"); - } - catch (Exception e) - { + } catch (Exception e) { throw new IllegalStateException(e); } } - private static byte[] signMessage(byte[] message, byte[] secretSigningKey) + public static byte[] signMessage(byte[] message, byte[] secretSigningKey) { byte[] res = null; - try - { - res = (byte[]) invocable.invokeFunction("toByteArray", invocable - .invokeFunction("sign", invocable.invokeFunction("fromByteArray", message), - invocable.invokeFunction("fromByteArray", secretSigningKey))); - } - catch (Exception e) - { - e.printStackTrace(); - } + try { + res = (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("sign", + invocable.invokeFunction("fromByteArray", message), + invocable.invokeFunction("fromByteArray", secretSigningKey))); + } catch (Exception e) {e.printStackTrace();} return res; } - private static byte[] decryptMessage(byte[] cipher, byte[] nonce, byte[] theirprivateBoxingKey, byte[] secretBoxingKey) + public static byte[] decryptMessage(byte[] cipher, byte[] nonce, byte[] theirPublicBoxingKey, byte[] secretBoxingKey) { byte[] res = null; - try - { - res = (byte[]) invocable.invokeFunction("toByteArray", invocable - .invokeFunction("unbox", invocable.invokeFunction("fromByteArray", cipher), - invocable.invokeFunction("fromByteArray", nonce), - invocable.invokeFunction("fromByteArray", theirprivateBoxingKey), - invocable.invokeFunction("fromByteArray", secretBoxingKey))); - } - catch (Exception e) - { - e.printStackTrace(); - } + try { + res = (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("unbox", + invocable.invokeFunction("fromByteArray", cipher), + invocable.invokeFunction("fromByteArray", nonce), + invocable.invokeFunction("fromByteArray", theirPublicBoxingKey), + invocable.invokeFunction("fromByteArray", secretBoxingKey))); + } catch (Exception e) {e.printStackTrace();} if (res.length == 0) throw new TweetNaCl.InvalidCipherTextException(); return res; } - private static byte[] encryptMessageFor(byte[] input, byte[] nonce, byte[] privateBoxingKey, byte[] ourSecretBoxingKey) + public static byte[] encryptMessageFor(byte[] input, byte[] nonce, byte[] publicBoxingKey, byte[] ourSecretBoxingKey) { byte[] paddedMessage = new byte[32 + input.length]; System.arraycopy(input, 0, paddedMessage, 32, input.length); - try - { - return (byte[]) invocable.invokeFunction("toByteArray", invocable - .invokeFunction("box", invocable.invokeFunction("fromByteArray", input), - invocable.invokeFunction("fromByteArray", nonce), - invocable.invokeFunction("fromByteArray", privateBoxingKey), - invocable.invokeFunction("fromByteArray", ourSecretBoxingKey))); - } - catch (Exception e) - { - throw new RuntimeException(e); - } + try { + return (byte[]) invocable.invokeFunction("toByteArray", invocable.invokeFunction("box", + invocable.invokeFunction("fromByteArray", input), + invocable.invokeFunction("fromByteArray", nonce), + invocable.invokeFunction("fromByteArray", publicBoxingKey), + invocable.invokeFunction("fromByteArray", ourSecretBoxingKey))); + } catch (Exception e) {throw new RuntimeException(e);} } - private static byte[] createNonce() - { - try - { + public static byte[] createNonce() { + try { Object nonce = invocable.invokeFunction("createNonce"); return (byte[]) invocable.invokeFunction("toByteArray", nonce); - } - catch (Exception e) - { - throw new RuntimeException(e); - } + } catch (Exception e) {throw new RuntimeException(e);} } - private static String bytesToHex(byte[] data) + public static String bytesToHex(byte[] data) { StringBuilder s = new StringBuilder(); for (byte b : data) @@ -164,25 +137,20 @@ private static String bytesToHex(byte[] data) return s.toString(); } - private static byte[] unsignMessage(byte[] signed, byte[] privateSigningKey) + public static byte[] unsignMessage(byte[] signed, byte[] publicSigningKey) { - try - { - Object res = invocable.invokeFunction("unsign", invocable.invokeFunction("fromByteArray", signed), - invocable.invokeFunction("fromByteArray", privateSigningKey)); + try { + Object res = invocable.invokeFunction("unsign", + invocable.invokeFunction("fromByteArray", signed), + invocable.invokeFunction("fromByteArray", publicSigningKey)); if (res == null) throw new TweetNaCl.InvalidSignatureException(); return (byte[]) invocable.invokeFunction("toByteArray", res); - } - catch (ScriptException | NoSuchMethodException e) - { - throw new RuntimeException(e); - } + } catch (ScriptException | NoSuchMethodException e) {throw new RuntimeException(e);} } - private static final int MESSAGE_SIZE = 128; - private static final int NUMBER_OF_RANDOM_KEYPAIRS = 10; - + public static final int NUMBER_OF_RANDOM_KEYPAIRS = 10; + public static final int MESSAGE_SIZE = 128; @Test public void testAll() throws Exception { From 61e47e990e2e6a5003d25cef7db7ff8ff2a607c2 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 13:37:23 +0200 Subject: [PATCH 10/12] Move the nacl.js to the test resources folder where it belongs. --- Makefile | 2 +- src/{main => test}/resources/nacl.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename src/{main => test}/resources/nacl.js (100%) diff --git a/Makefile b/Makefile index 854d952..4bce973 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ test: compile echo "Class-Path: " $(CP_SPACE)>> def.manifest - jar -cfm build/Test.jar def.manifest -C build/classes/jar org -C src/main/resources nacl.js + jar -cfm build/Test.jar def.manifest -C build/classes/jar org -C src/test/resources nacl.js rm -f def.manifest diff --git a/src/main/resources/nacl.js b/src/test/resources/nacl.js similarity index 100% rename from src/main/resources/nacl.js rename to src/test/resources/nacl.js From 7e78f4bfad067ca4b4c59da5e67232ea64872702 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 14:09:15 +0200 Subject: [PATCH 11/12] All the native code moved to src/main/test since it is used only for testing. Byproduct of this is that now we can publish a jar containg only the TweetNacl.class to maven central. --- Makefile | 4 ++-- build.gradle | 17 +++++++++++++---- .../java/org/peergos/crypto/JniTweetNacl.java | 0 .../jnilibs => test/resources}/devurandom.c | 0 .../jnilibs => test/resources}/devurandom.h | 0 .../org_peergos_crypto_JniTweetNacl.c | 0 .../org_peergos_crypto_JniTweetNacl.h | 0 .../jnilibs => test/resources}/tweetnacl.c | 0 .../jnilibs => test/resources}/tweetnacl.h | 0 9 files changed, 15 insertions(+), 6 deletions(-) rename src/{main => test}/java/org/peergos/crypto/JniTweetNacl.java (100%) rename src/{main/jnilibs => test/resources}/devurandom.c (100%) rename src/{main/jnilibs => test/resources}/devurandom.h (100%) rename src/{main/jni => test/resources}/org_peergos_crypto_JniTweetNacl.c (100%) rename src/{main/jni => test/resources}/org_peergos_crypto_JniTweetNacl.h (100%) rename src/{main/jnilibs => test/resources}/tweetnacl.c (100%) rename src/{main/jnilibs => test/resources}/tweetnacl.h (100%) diff --git a/Makefile b/Makefile index 4bce973..4ca7c25 100644 --- a/Makefile +++ b/Makefile @@ -32,8 +32,8 @@ test: compile .PHONY: jni jni: compile - javah -jni -classpath build/classes/jar -d build/jniheaders org.peergos.crypto.JniTweetNacl - gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Isrc/main/jni -Isrc/main/jnilibs -Ibuild/jniheaders -shared -obuild/libtweetnacl.so src/main/jni/org_peergos_crypto_JniTweetNacl.c + javah -jni -classpath build/classes/jar org.peergos.crypto.JniTweetNacl + gcc -Wimplicit-function-declaration -fPIC -std=c11 -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux -Isrc/test/resources -Ibuild/jniheaders -shared -obuild/libtweetnacl.so src/test/resources/org_peergos_crypto_JniTweetNacl.c .PHONY: jni_test jni_tests: def diff --git a/build.gradle b/build.gradle index 904efcc..fba8c6e 100644 --- a/build.gradle +++ b/build.gradle @@ -60,6 +60,8 @@ task buildNativeHeaders(type: Exec) { def classpath = sourceSets.main.output.classesDir + + commandLine "javah", "-d", "build/jniheaders", "-classpath", "$classpath", "org.peergos.crypto.JniTweetNacl" } @@ -84,21 +86,28 @@ task compileNativeLib(type: Exec) { commandLine "gcc", "-Wimplicit-function-declaration", "-fPIC", "-std=c11", "-I${System.env.JAVA_HOME}/include", - "-I${System.env.JAVA_HOME}/include/${jniPath}", "-Isrc/main/jnilibs", "-Isrc/main/jni", "-shared", "-Ibuild/jniheaders", - objPath, "src/main/jni/org_peergos_crypto_JniTweetNacl.c" + "-I${System.env.JAVA_HOME}/include/${jniPath}", "-Isrc/test/resources/", "-shared", "-Ibuild/jniheaders", + objPath, "src/test/resources/org_peergos_crypto_JniTweetNacl.c" + +} +testClasses.dependsOn { + buildNativeHeaders + compileNativeLib } -classes.dependsOn(compileNativeLib) -compileNativeLib.dependsOn(buildNativeHeaders) test { systemProperty "java.library.path", "${buildDir}" } +jar { + from "license.txt" +} + dependencies { diff --git a/src/main/java/org/peergos/crypto/JniTweetNacl.java b/src/test/java/org/peergos/crypto/JniTweetNacl.java similarity index 100% rename from src/main/java/org/peergos/crypto/JniTweetNacl.java rename to src/test/java/org/peergos/crypto/JniTweetNacl.java diff --git a/src/main/jnilibs/devurandom.c b/src/test/resources/devurandom.c similarity index 100% rename from src/main/jnilibs/devurandom.c rename to src/test/resources/devurandom.c diff --git a/src/main/jnilibs/devurandom.h b/src/test/resources/devurandom.h similarity index 100% rename from src/main/jnilibs/devurandom.h rename to src/test/resources/devurandom.h diff --git a/src/main/jni/org_peergos_crypto_JniTweetNacl.c b/src/test/resources/org_peergos_crypto_JniTweetNacl.c similarity index 100% rename from src/main/jni/org_peergos_crypto_JniTweetNacl.c rename to src/test/resources/org_peergos_crypto_JniTweetNacl.c diff --git a/src/main/jni/org_peergos_crypto_JniTweetNacl.h b/src/test/resources/org_peergos_crypto_JniTweetNacl.h similarity index 100% rename from src/main/jni/org_peergos_crypto_JniTweetNacl.h rename to src/test/resources/org_peergos_crypto_JniTweetNacl.h diff --git a/src/main/jnilibs/tweetnacl.c b/src/test/resources/tweetnacl.c similarity index 100% rename from src/main/jnilibs/tweetnacl.c rename to src/test/resources/tweetnacl.c diff --git a/src/main/jnilibs/tweetnacl.h b/src/test/resources/tweetnacl.h similarity index 100% rename from src/main/jnilibs/tweetnacl.h rename to src/test/resources/tweetnacl.h From 9ac34607f122bdeaaffcbfe6641da8c527aed7f3 Mon Sep 17 00:00:00 2001 From: Borislav Ivanov Date: Thu, 26 Nov 2015 18:55:22 +0200 Subject: [PATCH 12/12] Most of the constant names used in the crypto_ methods have now the same names as in the NaCl spec. More javadoc added. --- .../java/org/peergos/crypto/TweetNaCl.java | 87 ++++++++++++++----- .../java/org/peergos/crypto/NativeTest.java | 2 +- 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/peergos/crypto/TweetNaCl.java b/src/main/java/org/peergos/crypto/TweetNaCl.java index 5221414..fb45542 100644 --- a/src/main/java/org/peergos/crypto/TweetNaCl.java +++ b/src/main/java/org/peergos/crypto/TweetNaCl.java @@ -13,23 +13,20 @@ public class TweetNaCl { - public static final int crypto_auth_hmacsha512256_tweet_BYTES = 32; - public static final int crypto_auth_hmacsha512256_tweet_KEYBYTES = 32; public static final int BOX_PUBLIC_KEY_BYTES = 32; public static final int BOX_SECRET_KEY_BYTES = 32; - public static final int BOX_SHARED_KEY_BYTES = 32; public static final int BOX_NONCE_BYTES = 24; - public static final int BOX_OVERHEAD_BYTES = 16; - public static final int SIGNATURE_SIZE_BYTES = 64; - public static final int SIGN_PUBLIC_KEY_BYTES = 32; - public static final int SIGN_SECRET_KEY_BYTES = 64; - public static final int SIGN_KEYPAIR_SEED_BYTES = 32; - public static final int SECRETBOX_KEY_BYTES = 32; - public static final int SECRETBOX_NONCE_BYTES = 24; + + public static final int CRYPTO_SIGN_BYTES = 64; + public static final int CRYPTO_SIGN_SECRETKEYBYTES = 64; + public static final int CRYPTO_SIGN_PUBLICKEYBYTES = 32; + public static final int SECRETBOX_OVERHEAD_BYTES = 16; - public static final int HASH_SIZE_BYTES = 64; // SHA-512 public static final int SECRETBOX_INTERNAL_OVERHEAD_BYTES = 32; + public static final int CRYPTO_SECRETBOX_ZEROBYTES = 32; + public static final int CRYPTO_SECRETBOX_BOXZEROBYTES = 16; + public static class InvalidSignatureException extends RuntimeException { } @@ -43,8 +40,8 @@ public static class InvalidCipherTextException extends RuntimeException * assumes the key is already placed in sk) * and a corresponding public key. This keys must be used for signing purposes. * - * It puts the secret key into sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] - * and puts the public key into pk[0], pk[1], ..., pk[crypto_sign_PUBLICKEYBYTES-1]. + * It puts the secret key into sk[0], sk[1], ..., sk[{@link #CRYPTO_SIGN_SECRETKEYBYTES}-1] + * and puts the public key into pk[0], pk[1], ..., pk[{@link #CRYPTO_SIGN_PUBLICKEYBYTES} -1]. * * @param pk * @param sk @@ -111,7 +108,7 @@ public static int crypto_scalarmult_base(byte[] q, byte[] n) /** * The crypto_sign function signs a message m[0], ..., m[mlen-1] - * using the signer's secret key sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and returns + * using the signer's secret key sk[0], sk[1], ..., sk[{@link #CRYPTO_SIGN_SECRETKEYBYTES}-1] and returns * the signed message * * @param message to be signed @@ -120,7 +117,7 @@ public static int crypto_scalarmult_base(byte[] q, byte[] n) */ public static byte[] crypto_sign(byte[] message, byte[] secretSigningKey) { - byte[] signedMessage = new byte[message.length + TweetNaCl.SIGNATURE_SIZE_BYTES]; + byte[] signedMessage = new byte[message.length + TweetNaCl.CRYPTO_SIGN_BYTES]; TweetNaCl.crypto_sign(signedMessage, message, message.length, secretSigningKey); return signedMessage; } @@ -180,6 +177,15 @@ public static byte[] secretbox(byte[] mesage, byte[] nonce, byte[] key) return Arrays.copyOfRange(c, SECRETBOX_OVERHEAD_BYTES, c.length); } + /** + * Verifies and decrypts the ciphertext + * + * @param cipher ciphertext + * @param nonce nonce + * @param key secret key + * @return the decrypted and verified plaintext + * @throws IllegalStateException if cipher is too small or the encryption is invalid + */ public static byte[] secretbox_open(byte[] cipher, byte[] nonce, byte[] key) { byte[] c = new byte[SECRETBOX_OVERHEAD_BYTES + cipher.length]; @@ -528,7 +534,27 @@ private static int crypto_onetimeauth_verify(byte[] h, int hOff, byte[] m, int m return crypto_verify_16(h, hOff, x); } - private static int crypto_secretbox(byte[] c, byte[] m, long d, byte[] n, byte[] k) + /** + * The crypto_secretbox function encrypts and authenticates a message m[0], m[1], ..., m[d-1] using a + * secret key k[0], ..., k[crypto_secretbox_KEYBYTES-1] and a nonce n[0], n[1], ..., n[crypto_secretbox_NONCEBYTES-1]. + * The crypto_secretbox function puts the ciphertext into c[0], c[1], ..., c[d-1]. It then returns 0. + * + * + * The caller must ensure, before calling the C NaCl crypto_secretbox function, + * that the first {@link #CRYPTO_SECRETBOX_ZEROBYTES } bytes of the message m are all 0. + * Typical higher-level applications will work with the remaining bytes of the message; + * note, however, that d counts all of the bytes, including the bytes required to be 0. + * + * The crypto_secretbox caller must ensure that the first {@link #CRYPTO_SECRETBOX_BOXZEROBYTES } bytes of the ciphertext c are all 0. + * + * @param c + * @param m + * @param d + * @param n + * @param k + * @return + */ + public static int crypto_secretbox(byte[] c, byte[] m, long d, byte[] n, byte[] k) { int i; if (d < 32) @@ -544,7 +570,28 @@ private static int crypto_secretbox(byte[] c, byte[] m, long d, byte[] n, byte[] return 0; } - private static int crypto_secretbox_open(byte[] m, byte[] c, long d, byte[] n, byte[] k) + /** + * The crypto_secretbox_open function verifies and decrypts a ciphertext c[0], c[1], ..., c[d-1] + * using a secret key k[0], k[1], ..., k[crypto_secretbox_KEYBYTES-1] and a nonce n[0], ..., n[crypto_secretbox_NONCEBYTES-1]. + * The crypto_secretbox_open function puts the plaintext into m[0], m[1], ..., m[d-1]. It then returns 0. + * + * If the ciphertext fails verification, crypto_secretbox_open instead returns -1, possibly after modifying m[0], m[1], etc. + * + * + * The crypto_secretbox_open function ensures (in case of success) + * that the first {@link #CRYPTO_SECRETBOX_ZEROBYTES } bytes of the plaintext m are all 0. + * + * The caller must ensure, before calling the crypto_secretbox_open function, + * that the first {@link #CRYPTO_SECRETBOX_BOXZEROBYTES } bytes of the ciphertext c are all 0. + * + * @param m plaintext container + * @param c ciphertext + * @param d length of ciphertext + * @param n nonce + * @param k secret key + * @return 0 if successful , -1 otherwise + */ + public static int crypto_secretbox_open(byte[] m, byte[] c, long d, byte[] n, byte[] k) { int i; byte[] x = new byte[32]; @@ -1536,8 +1583,8 @@ private static void reduce(byte[] r) * sk[0], sk[1], ..., sk[crypto_sign_SECRETKEYBYTES-1] and puts the signed message into sm[0], sm[1], ..., sm[smlen-1]. * It then returns 0. * - * The maximum possible length smlen is n+crypto_sign_BYTES. - * The caller must allocate at least n+crypto_sign_BYTES bytes for sm. + * The maximum possible length smlen is n + {@link #CRYPTO_SIGN_BYTES} + * The caller must allocate at least n + {@link #CRYPTO_SIGN_BYTES} bytes for sm. * * @param sm * @param m @@ -1637,7 +1684,7 @@ private static int unpackneg(long[][] /*gf*/ r/*[4]*/, byte[] p/*[32]*/) /** * The crypto_sign_open function verifies the signature in sm[0], ..., sm[n-1] using the - * signer's public key pk[0], pk[1], ..., pk[crypto_sign_PUBLICKEYBYTES-1]. + * signer's public key pk[0], pk[1], ..., pk[{@link #CRYPTO_SIGN_PUBLICKEYBYTES}-1]. * Then it puts the message into m[0], m[1], ..., m[mlen-1] * * The caller must allocate at least n bytes for m. diff --git a/src/test/java/org/peergos/crypto/NativeTest.java b/src/test/java/org/peergos/crypto/NativeTest.java index 8a68831..18d57c7 100644 --- a/src/test/java/org/peergos/crypto/NativeTest.java +++ b/src/test/java/org/peergos/crypto/NativeTest.java @@ -70,7 +70,7 @@ private static void cryptoSignTest(int nRound, int messageLength) { byte[] message = new byte[messageLength]; - int signedLength = message.length + TweetNaCl.SIGNATURE_SIZE_BYTES; + int signedLength = message.length + TweetNaCl.CRYPTO_SIGN_BYTES; byte[] jniSignedMessage = new byte[signedLength];