diff --git a/sdk/build.gradle b/sdk/build.gradle index e397d0d1b..6c53fbc23 100644 --- a/sdk/build.gradle +++ b/sdk/build.gradle @@ -1,10 +1,10 @@ plugins { id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" + id("com.google.devtools.ksp") } apply plugin: 'com.android.library' apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' apply plugin: 'jacoco' jacoco { @@ -16,6 +16,7 @@ repositories { } android { + namespace 'com.microsoft.did.sdk' compileSdkVersion compile_sdk_version as Integer defaultConfig { @@ -25,11 +26,9 @@ android { versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - kapt { - arguments { - arg("room.schemaLocation", "$projectDir/schemas") - arg("room.incremental", "true") - } + ksp { + arg("room.schemaLocation", "$projectDir/schemas") + arg("room.incremental", "true") } } buildTypes { @@ -46,28 +45,32 @@ android { } compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 + sourceCompatibility target_jvmTarget + targetCompatibility target_jvmTarget } testOptions { unitTestVariants.all { testDebugUnitTest.useJUnit() } + unitTests.all { + jvmArgs '--add-opens', 'java.base/java.util=ALL-UNNAMED', + '--add-opens', 'java.base/java.security=ALL-UNNAMED' + } } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = target_jvmTarget freeCompilerArgs += "-Xuse-experimental=kotlin.ExperimentalUnsignedTypes" } - lintOptions { + lint { + disable 'MissingClass' + disable 'UseKtx' abortOnError false warningsAsErrors false textReport true - textOutput "stdout" explainIssues true - showAll true } sourceSets { @@ -83,7 +86,7 @@ android { dependencies { implementation "com.google.dagger:dagger:$dagger_version" - kapt "com.google.dagger:dagger-compiler:$dagger_version" + ksp "com.google.dagger:dagger-compiler:$dagger_version" implementation "com.squareup.retrofit2:retrofit:$retrofit2_version" implementation "com.squareup.retrofit2:converter-scalars:$retrofit2_version" @@ -91,7 +94,7 @@ dependencies { implementation "androidx.room:room-runtime:$androidx_room_persistence_version" implementation "androidx.room:room-ktx:$androidx_room_persistence_version" - kapt "androidx.room:room-compiler:$androidx_room_persistence_version" + ksp "androidx.room:room-compiler:$androidx_room_persistence_version" testImplementation "androidx.room:room-testing:$androidx_room_persistence_version" implementation "com.squareup.okhttp3:okhttp:$com_squareup_okhttp3_okhttp_version" @@ -130,6 +133,7 @@ dependencies { testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" testImplementation "io.mockk:mockk:$mockk_version" + testImplementation "org.bouncycastle:bcprov-jdk15to18:$org_bouncycastle_bcprov" testImplementation 'com.willowtreeapps.assertk:assertk-jvm:0.21' testImplementation "org.assertj:assertj-core:$assertj_test_version" testImplementation "junit:junit:$junit_version" @@ -141,8 +145,8 @@ dependencies { */ task jacocoCoverageReport(type: JacocoReport, dependsOn: ['testDebugUnitTest', 'createDebugCoverageReport']) { reports { - xml.enabled = true - html.enabled = true + xml.required = true + html.required = true } final def fileFilter = ['**/R.class', '**/R$*.class', '**/BuildConfig.*', '**/Manifest*.*', '**/*Test*.*', 'android/**/*.*', diff --git a/sdk/src/sharedTest/java/com/microsoft/did/sdk/backup/content/microsoft2020/TestVcMetaData.kt b/sdk/src/sharedTest/java/com/microsoft/did/sdk/backup/content/microsoft2020/TestVcMetaData.kt deleted file mode 100644 index c3e3df185..000000000 --- a/sdk/src/sharedTest/java/com/microsoft/did/sdk/backup/content/microsoft2020/TestVcMetaData.kt +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk.backup.content.microsoft2020 - -import com.microsoft.did.sdk.credential.service.models.contracts.display.DisplayContract -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -@SerialName("TestVcMetaData") -data class TestVcMetaData(override val displayContract: DisplayContract) : VcMetadata() \ No newline at end of file diff --git a/sdk/src/sharedTest/java/com/microsoft/did/sdk/di/Serializer.kt b/sdk/src/sharedTest/java/com/microsoft/did/sdk/di/Serializer.kt index 4e13b5957..df49e5182 100644 --- a/sdk/src/sharedTest/java/com/microsoft/did/sdk/di/Serializer.kt +++ b/sdk/src/sharedTest/java/com/microsoft/did/sdk/di/Serializer.kt @@ -2,16 +2,4 @@ package com.microsoft.did.sdk.di -import com.microsoft.did.sdk.backup.content.microsoft2020.TestVcMetaData -import com.microsoft.did.sdk.backup.content.microsoft2020.VcMetadata -import kotlinx.serialization.modules.SerializersModule -import kotlinx.serialization.modules.polymorphic -import kotlinx.serialization.modules.subclass - -val defaultTestSerializer = SdkModule().defaultJsonSerializer( - SerializersModule { - polymorphic(VcMetadata::class) { - subclass(TestVcMetaData::class) - } - } -) \ No newline at end of file +val defaultTestSerializer = SdkModule().defaultJsonSerializer() \ No newline at end of file diff --git a/sdk/src/test/java/android/util/BackupTestUtil.kt b/sdk/src/test/java/android/util/BackupTestUtil.kt deleted file mode 100644 index 168fcae6b..000000000 --- a/sdk/src/test/java/android/util/BackupTestUtil.kt +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package android.util - -import com.microsoft.did.sdk.backup.content.microsoft2020.RawIdentity -import com.microsoft.did.sdk.credential.models.VerifiableCredential -import com.microsoft.did.sdk.credential.models.VerifiableCredentialContent -import com.microsoft.did.sdk.credential.models.VerifiableCredentialDescriptor -import com.microsoft.did.sdk.credential.service.models.contracts.display.CardDescriptor -import com.microsoft.did.sdk.credential.service.models.contracts.display.ConsentDescriptor -import com.microsoft.did.sdk.credential.service.models.contracts.display.DisplayContract -import com.microsoft.did.sdk.credential.service.models.contracts.display.Logo -import com.microsoft.did.sdk.crypto.keyStore.EncryptedKeyStore -import com.microsoft.did.sdk.crypto.protocols.jose.jws.JwsToken -import com.microsoft.did.sdk.datasource.repository.IdentifierRepository -import com.microsoft.did.sdk.identifier.models.Identifier -import com.nimbusds.jose.JWSAlgorithm -import com.nimbusds.jose.JWSHeader -import com.nimbusds.jose.JWSObject -import com.nimbusds.jose.Payload -import com.nimbusds.jose.jwk.Curve -import com.nimbusds.jose.jwk.ECKey -import com.nimbusds.jose.jwk.KeyUse -import com.nimbusds.jose.jwk.RSAKey -import com.nimbusds.jose.jwk.gen.ECKeyGenerator -import com.nimbusds.jose.jwk.gen.RSAKeyGenerator -import com.nimbusds.jose.util.Base64URL -import io.mockk.coEvery -import io.mockk.every -import io.mockk.mockk -import kotlinx.serialization.encodeToString -import kotlinx.serialization.json.Json - -// cryptographically correct and consistent Verifiable Credential data -object BackupTestUtil { - private const val testDid = "did:web:localhost" - val signKey: ECKey = ECKeyGenerator(Curve.P_256).keyID("sign").keyUse(KeyUse.SIGNATURE).generate() - val updateKey: ECKey = ECKeyGenerator(Curve.P_256).keyID("update").keyUse(KeyUse.SIGNATURE).generate() - val recoverKey: ECKey = ECKeyGenerator(Curve.P_256).keyID("recover").keyUse(KeyUse.SIGNATURE).generate() - val encryptKey: RSAKey = RSAKeyGenerator(4096).keyID("encrypt").keyUse(KeyUse.ENCRYPTION).generate() - val testDisplayContract = DisplayContract( - locale = "en-US", - contract = "http://localhost/contract", - card = CardDescriptor("Test", "n/a", "#f64ded", "#a80aa5", Logo(description = "test"), "test card"), - consent = ConsentDescriptor("You shouldn't approve this", "Reject this card"), - claims = emptyMap() - ) - private const val jti = "iri:vc:test" - private val testVerifiableCredentialContent = VerifiableCredentialContent( - jti, - VerifiableCredentialDescriptor( - listOf(), - listOf(), - mapOf() - ), - testDid, - testDid, - 0, - 0, - "INVALID: FOR TESTING USE ONLY" - ) - val testVerifiedCredential: VerifiableCredential by lazy { - val jws = JwsToken( - JWSObject( - JWSHeader(JWSAlgorithm.ES256), - Payload(Base64URL.encode(Json.Default.encodeToString(testVerifiableCredentialContent))) - ) - ) - jws.sign( - signKey, JWSHeader.Builder(JWSAlgorithm.ES256) - .keyID(signKey.keyID) - .build() - ) - VerifiableCredential( - jti, - jws.serialize(), - testVerifiableCredentialContent - ) - } - val testIdentifer = Identifier( - testDid, - "sign", - "encrypt", - "recover", - "update", - "testIdentifier" - ) - val rawIdentifier = RawIdentity( - testDid, - "testIdentifier", - listOf(signKey, encryptKey, recoverKey, updateKey), - "recover", - "update" - ) - - fun getMockKeyStore(): EncryptedKeyStore { - val keyStore = mockk(); - every { keyStore.getKey(recoverKey.keyID) } returns (recoverKey) - every { keyStore.containsKey(recoverKey.keyID) } returns true - every { keyStore.getKey(updateKey.keyID) } returns (updateKey) - every { keyStore.containsKey(updateKey.keyID) } returns true - every { keyStore.getKey(signKey.keyID) } returns (signKey) - every { keyStore.containsKey(signKey.keyID) } returns true - every { keyStore.getKey(encryptKey.keyID) } returns (encryptKey) - every { keyStore.containsKey(encryptKey.keyID) } returns true - every { keyStore.storeKey(any(), any()) } returns Unit - every { keyStore.getKey(any()) } returns (recoverKey) - return keyStore - } - - fun getMockIdentifierRepository(): IdentifierRepository { - val identifierRepository = mockk() - coEvery { identifierRepository.queryByIdentifier(testDid) } returns (testIdentifer) - coEvery { identifierRepository.queryAllLocal() } returns (listOf(testIdentifer)) - coEvery { identifierRepository.queryByName(testIdentifer.name) } returns (testIdentifer) - coEvery { identifierRepository.insert(any()) } returns Unit - coEvery { identifierRepository.deleteAll() } returns Unit - return identifierRepository - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/BackupServiceTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/BackupServiceTest.kt deleted file mode 100644 index 0aca170e9..000000000 --- a/sdk/src/test/java/com/microsoft/did/sdk/BackupServiceTest.kt +++ /dev/null @@ -1,687 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk - -import android.util.BackupTestUtil -import com.microsoft.did.sdk.backup.BackupParser -import com.microsoft.did.sdk.backup.container.jwe.JwePasswordProtectedBackupData -import com.microsoft.did.sdk.backup.container.jwe.JwePasswordProtectionMethod -import com.microsoft.did.sdk.backup.content.BackupProcessorFactory -import com.microsoft.did.sdk.backup.content.microsoft2020.Microsoft2020BackupProcessor -import com.microsoft.did.sdk.backup.content.microsoft2020.Microsoft2020UnprotectedBackup -import com.microsoft.did.sdk.backup.content.microsoft2020.RawIdentifierConverter -import com.microsoft.did.sdk.backup.content.microsoft2020.TestVcMetaData -import com.microsoft.did.sdk.backup.content.microsoft2020.WalletMetadata -import com.microsoft.did.sdk.identifier.models.Identifier -import com.microsoft.did.sdk.util.controlflow.FailedDecryptException -import com.microsoft.did.sdk.util.controlflow.Result -import com.microsoft.did.sdk.util.defaultTestSerializer -import io.mockk.coEvery -import io.mockk.mockk -import kotlinx.coroutines.runBlocking -import org.assertj.core.api.Assertions.assertThat -import org.junit.Test - -class BackupServiceTest { - private val identifierRepository = BackupTestUtil.getMockIdentifierRepository() - private val keyStore = BackupTestUtil.getMockKeyStore() - private val identifierService: IdentifierService = mockk() - private val masterIdentifier: Identifier = mockk() - - // String has to be split as it is too long for the compiler to accept it - private val testBackupString = - """eyJwMnMiOiJGMHN3dGVoMUFibyIsInAyYyI6MTAwMDAwLCJjdHkiOiJNaWNyb3NvZnRXYWxsZXQyMDIwIiwiZW5jIjoiQTI1NkNCQy1IUzUxMiIsImFsZyI6IlBCRVMyLUhTNTEyK0EyNTZLVyJ9.H5BB3wLqfXI - |EBBvKxxuqH9nZo9He32_e6zeJOKTTIOb6k5sCmPmn7Q5AwFRyo5u9fNIdIA3h2URD5WGMH8vnQwHj_Dw55JsQ.t0MF5wpv1VCO5I39SuK5uA.iGbT6-RP0RW4WzOYCjOSR6M3sqawWl8mt12zAPROvhXeh8NYK - |HSo6yTsORP-UwOOslM3qzEy1DdQzCsl4GfQGI_IdyJYOWAzldFQDKDSGKzeUbGphboJtu-4dxYZii1BM2-8azwWD_5tMXEloM0uUtJYc76X383WEB7aQPDOmWU_1brknOI5D4dq7vdjJ5101jz-1-PtDMhv-mS - |VFaZ8qZthvb3y03_KdJREiTZ_vTxEVcaIP3wk2PcNSnwbFJbeQ7b6tUvBUKDfTYXDdA9lAww2qbMkcRx2pFDuNC50Z5ta_e6Q86mGQw68HAU93wU6yNazyZ7C4D2-xiwRMBwWn5jloycugeZ-KUlKnbaGHBK3b - |hCVSpkoyZ2ITWuXouqAdm1TCF6cGRbz1z51W2PlxUF0kCP_rfKX2BMt8fZMGs9GdanGUakf4p7Y4BtKd4HqmZUMABElNIBMXM7LiwZ-1BB6fNH2ogh5Ng63_Of0sQYTpUc7Z4gQdsn1cCRlg_QnkXWloe_jwGj - |IltgyvpskaVDYRroUNVcB-1EFx-F9Jck00QNwWMlG_zIKdmNv759eDAcfV8YfMzOhsmgycC8c36lXQMrkfZ1hVhiiaMY6OyNzGaoetx-hfQ_17W5iFIfvwmp5oq4ELXufAUVnUZfjEtbZmc35W2_QfOIW4KY1y - |8Jjz44jZMR5ZvFSoiZLe-eUbRE5WAapj6CLLMBUUTeOqYx0B_HFzkq-07xGdfLussLvwD4eiHcGbXeT_QY6skAcR7PLZanwdNMbw_kQcjP1pWBkpeFyJmK6aJdkuKcg69ej02TOjPO4RgYKcq5sCfiV3Cz5RyT - |ikcj90WmeAon-qwVRsTllSexngnObBkgJPG46vI02V2lMGlPeFBXVCfGY4d46Oh3q7-VDOPaGt16VcP2_L8_S3oJkNApkJpo1Hv7Wa1KcQUfWJMZK3De86OFGUcD8xe5wUlt2w4k7qderQgLGRi4hnbfZoV-vr - |viTv0JOzUicDgGU6GjcILiuEb_RYqzGXIZXfqTrT8NY8Em32zEEZiC9XNZ1K-Dfx5tyyHdH9oK_h0VjRE5NvkXVJZax_x4W2cpigcurxU2wwvrF7FQjuxJmQmUYSpJAPsNoQnSGUfwL5TG6EvS2iOI1rxxhOEs - |HrhrWUE89KLXHqAkKUBAn8IWJD33MlgWh-qQQ7TQiHn1XTdL4kgTiYU6vKSQWraXYRGkhxOeFDLGTFbPZAZnQXlM07hRT6A3daKQicOfVvnOOnrAur7Maq2Pt4LV0iuBYJ1zyXqiP0FkoaDefD0e_Nz6I1l5Ai - |QH-kxqFzXYET7bgl8MNg2M9HKtmP8sVAoX6eU132lG7BV0oxu7RBRMuJtRu2g23NVbf4D9nClYFUAgOu7afLAfr4NR9qkjMumIoWh5-nTGW14kK-rp8RoQUy8zZnv9jHrsMaUM2G7jRR0jgYSzVhw8rYlwLcJM - |NYywQ0m49usS6BYtsynMQOR04R2zEL35_Es2Wn6P56MHHBe_GwXBCiR_Lmyn_QAGo7o-zrOBhOHzN9lcB37YufJ56Sl7dpX03r4zTf9SScblRB_yytxvfaMy4vjr9ijZGIRcK4zguAJmFNl7zYUY6eTyKXyPU- - |oDHl9KEu74BCKVymsA4tCzgzgBH490lZ84MnIiCohKjArvA4ye4tl4Ae7sPl-J__Ze6iIznQsLvFwkZ6enpT7DCxih-K7lmBAUeM1I3Yy0ALqczEhUFVXFtk-r-h7_k4j5VtORlHALLuaA0znEH1eAXsI3w3f6 - |oOh2mVBD2oWElnKxlU5l0b0i-opJNLIZTUXwPpCbojJYrVnHdlTihkJUI6LDlnL-xVx7XASt7yKWKNNOqubXZamRrEhvw-CHrxRrN5emko7Rum85GCqR9isLLA0xZOaY_xFE7v33IWjnprlliNJfVXUsy6-O72 - |CQwJjyPSFPyoK5zEsvFxTi6txPkCtbdmL8PrJtdrFlJ2GxPmeogxK6W6ApgFXMZX6zSN2IHxx-jdT-7ctXgtNIcOCcwzXBnkk2kHF9_EInq4g5x3UYayJGmMWwoEiaXgrLF8YDHrXjSclrUj4wuLulvTEwNvt7 - |lcwlAUfcOlDkOHDH5forU4fbIWdnSLIFMu48DFWgPRjC8EC9aWj-BLnyVgin97Gx35EFGOy0UXo9NmXla6RAU487zsRr7YVmcVWBsYryRhidQtWBKKLTowMkvqDCVYCFyvLij0HfhRcXTi-ztm7Obhlpduce9f - |sSZDcjWlTuBV8wUAVSerGE-qZ5hQwrLS3pi-q_5_TFs2ZjekOE3oCj0xtovwqbDBRiDdunuLL_XRyyKIO0E8Rgg2lpWJFgnLvEicqq1bFtiZ86XLZIRe7EzcuVPHldGG1r-yfL9UDupK7bhllghokUklUkGnPQ - |G6z9wEJlTNYZfcQV_6mUq9lWVRb0KWnJexqHJUyUlEodGY3BVcp3i0aAm0NlrqQqbO3FfukKVcDpKDu5gprVcX_HWo59SyAA8ZC2rXwHt9epTl-JG4k3hmRwdsDOkjkZja4IeS5WgpCUlj-3YGupIlynbWGeh6 - |fY1h2wGsb3fE30WpWDKsvPASGY57alq7PgZ9gYg5kCS6dGeIzPVcalLrY-bpAMcXccY9_UOn7f3nU6fPQTgaTDLZYmpz5WlrqClILaRsxEFdSfk_K284g-y5NxPJ-vC8eZeIfQhQdYFo9LBG7HxYLL8ndUSOke - |iv-fioG5izEd1c1eUyswobq8RUC9272sSWBpIoJFvfuG9uOufZ7xm0Qu4iQQmpPGlwhg5ONk5F91HpThzzPxmeRbQFIYOGfEtverxuifNrqLV_7i3-ymntUoAEJdacySs_vIuWpIYHVKhxDVArjJR1SGJofhAR - |QVhAgKX1bfH0IcMQ6OuK4ufBbzsAqZDQbcZXdy1RNYxfOhGu2QtPTk0jy15AOxxU2qoqfxQfYE5N3S1ZxRjVMfpbpdF9eCpdXgWaUyvLIRW_9qXKFN7uUPFuEeVNuSVMjx4ld1OfahzhCcAGXoifNU8xuoo4V2 - |429uWd490v8m0m_ck9PZAw5OmhtDSU_xu3ASl7ZnQSsp0ldFfcxdW6xbxq4zuMTrl7ABXyJeC4Ys5mdoEJ5i01rZ9RSEaug6EuhTwXLf9QmN6QBSf9GonMSB519VjqMLNfs8kLDOAscObYyD62IQPnKbb_D1kv - |fEovRXdx_-QVgYIQrCCSo3MiOQ_81NC9nqUsaF2RdWTbbSpz5A8Q54hERpKH-zAwT-2zUl_8MpCNHXCd9sEqJpOFTkwDNGE7EXhICw01WV2pDqGeBXsO6hnCiW4LGdtHaQZeLC9cS4M2kCUvKpJA_kg1xah3Tq - |8EMMe6-67YXzMKP-8OGl5E9otdmJ_bTHrJ2NzrafyLPyd06G1MpRSt51_ofHnclEpZ2Fn-ed6NcDxEHVKiz3PB87Zy7TP5ccMxnUNXNjFX3J2SbzcIRavgvvgW2kMNczhnRB4PdisJWCyqOm9ZbRwNb6WL5_qT - |r69rXAuWhpxWX64ba1fR0bcTzrKi7YDYZM440P5vlDtAZTzv2vQbkj6ADM-gbEtEtLr7N3ST7sk-Mp5iXEBcVFx-W6SJBmwGL6jy2Qt3659kcsu8Q3x3jUjigjD7kSU-H_6Yz90FTxolNyYe-Wl7EtZfrsVxBW - |gh9TctLMmsq4vZFZzBxMomzuMLR0ZDf3Ve5Ku0rIHe-EXxbYCXRiI0htKO8vybJjSlaJaEW4_XztuwPjGm1clou6zkp8F7B3vZCaUdgknSu3BGlETEDR4jT8hIoJBospdLPFPe7vuTcN60xCB65acrCcyJ-X_q - |FidpfzbYvlqOZ0mbVh1mE2Clzwt96iqlUlVxUofI01_I4dk32C6b98bZWIOr25SzMFXnHvV5yKzLid-tN8yulewTWpJlw9IZXFdX6vz7DWbdpsLERFdayjZAbdEzzdAuF0NkG-K3zLTAt9MkUCV8cnVNy-yzs1 - |GtPfaxBu1aQK7UcV4SbhuvxZ3_TwSOGoUPaLdxduodRbYZDnNhLw-8htp4qFl7yzo8hjKdWpUMGIJ2-dB99H4SkGgs39eL2-ZzKATCwyF9qHZhvtOjrdvtXavWGHjwHIDt9ntJIQ2vnQctxt_RJUOGutKq6Dbm - |trhulgD_a7boZTMfme3f56PssFkpv-5WstU1eZyNJmH2aubTd6PDWT_mnyuXvIcRALwdfyEUOkS04mXg9W5flP9C3QbrrHshj5-F3qn3wipBqYuS_t4NkNigaAr3jNOGDwdWIHsi5qJ3_JYbkZHc9CQqtzMCVp - |4qwz4-pgP33urYZ2uxGwwJxftuBPUWvn3t7CpjDkJJACYcjej1WXg8Cbs0oeZLExBEOiIt6FgP6rAm6TK7Y6pW77sY0EbtjcMAVtrpxaOKxbtA0v_up1N4P_BUXfXIQ121EW_ZBtz8TVHfk_wl01PCncizFxRe - |Fel1liX6jvMtz6O-VXygY07UMqpo7YQIxtedsuLaqOgnSfB5pQTjwD8YRH60HcWC-gjqneCERee1_QE1wX_aqLcE9SfpbZEBaT3tSirQ59teD_uzKUx4LzAhSSXRJUb1SlNYEKVWTZ-XbkCsfKYuW7iciI6dKn - |cqkhtU9BKYaCyY-jmbpaIIOv9XXcWXieZMYVWXTzzVKlSBax4NmfOQsIE95u8tiLu0OsRpHblcK7RLx6p24PikQttZun12PyKKxToHSBE9SXFVONsgwZnCYpk9-7KIfENrRzzLzgfyN5NGYn8_SOy2ljGghqWT - |1KiuXEecxjUHpiiPSUMBdUz2i0R9PsisvZ8FM8YxS4wfDVsVSj4uCgBCSxWguKjvk1XY2CZ186x2QmHOHWKVQBfB2lfMP5afeiycCVdiBlvXydjm3tYq3AWe13JthSaR4dt_ni9uIIxMxht7PMV6XC5DDkGei0 - |A3uwZDi2BO4BUO8NK-HD_kOGTlPz_FVKsFl2HEac4MYrvv9EUlPYZ_UHEgCSF_P6EROlmxO4uNhRhzvHraNsd3y_2c4V7ruHFG57FMCk3MFQUKa1NCDhYrfh2eofZvbD2mRqEcSApmyCWK5uD5iXm8HP_9SbrW - |vQRC7pRGb5P5lALgdbb0ztCBQ2WTNDOhy1TbtuR4lLowh6qG07PUugTSy_5rMemN9tSv9pwXAVkxhVqLZwy5PcnQeN5y1KAFmHjFILrgbtSy_Rq7Z9A1mw57aCY_8w7NDoWdwX_fm4DjjEcB2UZxYkf2Rrv4lt - |iihIFCnVaxyB9pAvbuikD2zGnyEMJDGYW8-2RLVZVjz5Ll6cJEb_p5RC34l0_WjoqzboNYCG0WUh8PBaeeLgCcS8LeOPk6gClMIzCEI4kcFFSrwm6PtaW3sFIYl_faYzkJVbQ-lKdYjFdOV9_pBOM2N-97fud8 - |aMsgY_cSD-lCqZNYImvxIZIAuzqg3CkLu5MT16q5iXyXkc9fbxMZYJge7vSGN6cFWMiBXgopBE1UqoSr8cB_xKYOHRCAAMbEENKkHOVf_yjJSFxnUJdtFu9SollfDUcIIo9gzSOGa76o6nc38PV96j5WcAjiFK - |Hpw2OQ6_lXZut8z4RpdG50l94SPaz1iaVVPH9tzBcXtYmO0ik0sDV9XY8s90fyhg33Hj0gyL8zB0E6lcUjqPNwvNze4v72cDxxYzN6tzfRJ_SJIgJjj-xYf5v-7hX7EQn7KCJj8xvg0YFKiYPBNBZLtvFS7PXE - |nWnNKYWKZo2k2XqJ2vUohWHdLLAohcj1xJCF9wprDBBotaulhUreYq0JPVyXHHrSO2iFd27T7T2eC2kZnvCGs2kI-NpY81P9sxWp_Tv1LdyCd9uceNYXkvy5YoOYx3sxtie7pYhxrWmwX3_bGyqLg1LMxHcKxB - |0G6RNT2w1Z412iQ53NZydMV1B1ptvzoCFKim2TgTW8SIkjtu0yuQ8XPjBEY_MDMiM0t0uSYWfcHCC1OZnviwjb4f_NynEbZbePzAZJoF8APrfKLdRG5zJH6kAhBMTic-bGCrCuivlaeQK2o0869a4SCg-AuxUd - |bnm2cCJR27jKIeeW5XxuigNSPYpOhath-oSf4Bt9nORLlTR8ESwJcFbmde8qlZFhyLwMIaF-mJ5I1zDD8gFsSR7OGzgZaPDGjxaLF2y1jElem4JNvnTyOHviFLWsz77_h0vm_Xt4ofGbCxoBINPoQSMWIceVP9 - |CgRtYRQ_RUiWYzfR94-bwCUYyCCfsON75hrUC4IZngl3fn2IZN4f0cG8sK18twDFYNZGrwyNH8MKjF7aCgznRjqVl5_kVolmyM6JxZrYledw5LYtA_0I8TYjd3kWYRkReoI-paQjjxidTrtmTXnUGoN6VnSb1y - |Hd_pSV259mXrc9StrfnBgm4dmhuoyFUKmngJtLPcmljNVn7GYPLtwNaxqxV0ZAVambrn4LUPgevhSiOhz4199MUapN6_v_KblvSu3eLjuUcfd_cSiGDIciNdv6S9gebbJjTQFim8ptBC-Z76e9GcNzPwPR9OYm - |aMpapdwlMmYsHOMpbhU9iITmYCW9BxJyJDgpEUClQaugj9_f80s2mdOLqvKURzsRFkkZBbfRX_buYvqNyJea_No0rcttqK6IBrp7ovsSBh4sQw3uJmYzZLOaylNz3OeWL1gMZO-rkTFi7pXOlplHQnticLLpoj - |29eI-Esd1jMGVLInYYv71EjBZ1hdU7H1s8o4np8V5l9qbuQRJzlFiHMuILTKfQAI1IWO3p8hh_kAI7sqnOFLKxiIpPWwGGegbMTpoeHmiLoHfAR76oaTecqjkQ6Xv0FnIEcfl_mViOyT0yP7A2T1Rd6E_G3tsO - |izgon52ermvz1zFsnWt7UpAa2aqfZZ3Uc0Skn3-gt4lt96CTMQLrVQzkYXC83-n4rhhTOjeFFALt26ExqZB5ra-AXdFireKOcZG_G5WXrupsZBvuHbcHeECDeftGUFHUL8xQQCl8XP1R_w4Q-N1tcruPIb3gar - |BIrq6xjhJh17gSYWZi2M36X_ixshFzSnPCAWUddX4MTynoVsDmeO0RAhsFr9IPO-jxf20CHWPzE97oh-FmRFJc7NQwH83rsjEYeJtEN2YxdYZGoXfSNH18dKq7XDyM193UeBmiNeT-msc_PN4GqFhXDEW6JUU_ - |0EroJJgbMYfZANbNgDm2nTz1rc6bM5yfAxPz74RhUAiUEsC4GJI2tuQLfm8CizKwjg5qARyTIsfZq8xvurJOVNlvMDqMwawG-NcwpGkyQ5KIIdT3Lsopj1N5Ob4wka91zPMQdNTSUcyKg7df-d6G0ZHdABiJQa - |stQHbRoZqV2YJ_7q0gD17M0Dq3-CdhFq9IIk8Mib9Uh1WpqMWiO6qrPEQaczpu0590CdmQN62YjSlQZ5j1BIGy5tyLynxx8oe5vIiym7odj2-_U3_Ef1WdDsXgRpG-f7NDUeu2JZFNua4dgOJ6oLyaiGng9dGh - |D66nlc3fLi2mRYkWX_58_gl0FNDo2cen-UTcbiCAJdFR9nGjcFydZ7CKuWz0B_g2eTu9bmaKmrjiw5A9ZDSe2aeVaN6gJs9_ujyqLQwRawAo-NAUCgqi-pQtcGDfYv_yzVkaKLt5BgZ8pn31-IDhTX3UY8hOIY - |6r5cwGnbrwceML9xcCiRXXPw8fkoeCL5e2WLbfBrLsMjhb90VeicUo5ngjBmZV4W2MF7ec8LeLB2Rtacw3zyGmn6iHET7KFQUpnb2U0U4W7eXkdRSo5lEk_1w3L4-Veb1aggNsEnt0VlnKLal1Hr52Wtotuy0X - |E--Vr0lOpzKe1FrqvhS9uf2THI6ndo6Bn3uP8gWuUhDXmRie84X4LIb9kB5iLFty8sVDJ3Y2lFv2tYrfrh9y9ixCjvda_P5maHqOXw_ay3wxqGnGjYEmrPvypuqIWHj4Yqx04PrXJSJYHeIGK0Psit61r_OL_z - |HSoOSCqE6aaM5HRrD0gGrxCg0DRKL6gtcfJT-JllNgnIZXoEZF9oOsS4-TwNdOTGzPzXvhlP2gYMgAvBSoEMUkyz2VvU3VJjGRu3XyiQBPpWwK9xxHK3SX1z8E4fiyULo4l5_DpWV-2kw-qb5-V4aNVeFl1ycG - |euRtodoM7Xox0qPlVZAUZ2wk50eR_njKAidb_LWq1rpsbCgrPZCuHOr7pHXdbbzOVRdBuJ4UovXsVvxhGffXAU6iX0yWyTMUBSXOgD04r1xw40AqUpZUvFkgFGYST-rR-33nwrOijPX_kQB4F1_0Hdvi_ZXbFF - |G2Ql7lnEtSO9eHUlAEf1Q7uJRsXC7nSFV9Vd4mjZlck5k13TdPzhYFnR0RVFFeoluBHordtkb8fc4OJ-aPU84VhT9wk-JkBMj8BjhpNecMnqZIPjzEFTD9JCJTwxSGj80SPoepKNx4gmdBjdOc99mPGmILLiqQ - |3g0eZqMqidRMs-jowErvNvmQhzzUKBzUUM1BBAG3MZoIY9f2VCQv6Tqfj0JHvP-yqdV4c6lLd9Cj177kWgk54MJ2QY4kew-_-TjZfZLAMZvpBr1ZOTACODTM-6F3lDMknnYNRkclavJO7yvE1RXMt8rTlQLKod - |SacIifFCnTQPvh3qWeeKyQwByMyP5bmHSR6G6xmK9CbUzKEmCLXWfvNTStj31LD2DdPtkBkLODFaivdGCYsbZWspaGbVaOg9Lcg_We7-wKUH5FDD230pUpoK_4YYtr5fsFpSyexv6SBOyXuNvrbk4hSIWJJkPf - |Zwnz5QDhTGRvbLCYnGworCj11re9GcH7bm1ZZ2wVQi8TIu5qzajYNvHhXFTZ8N-q7fE_DpeYPYy7iQehf4joSOfYKNGHlcRebLQ8WvrtKqw8NB3Bn5dPKqoDWlY_TndL__V-ii8xfBYJFpswv5i5jt4QigJror - |wlhEJ7pwyV1XPsUgj7DP1_1onrm90N5gQvPPtemgmkCax877OEtCWfj8X3DFZ0ZllR0pRInGy5FJewA6EJ7LLz3ITkUfihf52r9LKZataNjNOyFKAvgtq2uT6MZhWd6A66xJIR9twGAFQDjGaGVPBi0IG81P2m - |baARmkJFXSllKnjsug07iVzMpo1caPuHcBRLqWUhF2ZdAID8tHsTuA0MrN4-YIxmgzd-PG1d5CtWaVldCqzGL-G4CHF0Sn0E4kwqbNl8ftzg901_rXZinn56zS1plBgGTPiMIYxsv_y-JEE6tDuBcdyMiX2EGV - |BjBRh_IFGbCMzt6zY4J9VVCChkLidNpITHb1VFqWmOun632wkFbzIheBitX2SsiUYIzWIFHvw5mxXVyb477CAiudKXmWp9ie_t3epAXBmyfNlCrEdJtrALsLFphE_26oAzb0DXDaeFEwCpNmo7sB8nWp-u604I - |1mAoLipGvvXzX3eCxVnmE6RXxmExGaApl2Z61xxRAUQfdyz5Vu_zf1K3HlAJ_cSvSRwQWrEWTqUGTa6_-MNUG8HjvSb9ncuDNZr-LTC-uBCsKx9fiaFcs2-Hu9SZ5h-l_qmAop-7XW2wpAyjPX7aTVKRbwk2S2 - |VmKEUfAjauitesF1JCuvEFRgrZQCGWlJ1ljLaBtweUivbUhRVdOCT0y_MV6eB605QP26IbxcO9obJ7WUPxGeUiLNcjLQROJCHwyXEeawH_JJ-RiKmvrxj5HZLIiyUy6BtCx5I-B9FMT64OZjpYRHGpGMorDF5h - |rxHlAMQkKdm6L0zIHjL4i3JAJ8PJfjvY-XCTnXY-2oboaa1_FbVZGfQwAq5kkoxNBYqQZ7WcXvrT5xN2_DY1PbRrwB6zM2snSiJFCDmMF8nUwTj-2gdh-hHkY8CVSWx3u-7tPgBYoWPNbIULeWNME4GW6uja0K - |H5NM9L-ng7YPlYpOc6cVlBHgb0lRxJCMbVlRXee4jqo4MBeSyAcZdSid4F6gB97ioFS00wVyGGnqYUMFr9Z307f4Wh1fwTdFM7UHHkpEqzT-iOk_65Hk3fRaYL-lYGbuj1wcJ2khsdm2kh4KaZyaznlz60iNrU - |hG5m6xYqaYw5_DjfODfOKg0xJA7YrKJGY_CCfvxEzqCWGlieI1RwT595fXBwKeDeHHyrvyFwtiD59EfElruXMHEvjSAGgrBPnKQdZ990exnlCmpQ2iJPbQ6Ir3s9nVXG0JB1SCwqiTWCFJQXzVa7rAvqQj7slw - |AkjrO86isbOdRBVDhcK__9QxY-R6clLJVQvCHAwcJlQmouDxUGba8FhF5dX_cZk1JZEQDZ6ETu3dioRPI2wcuNchuL7qx3tItSDN93NqkBSaisWtNE7dVGWumnGBeDVqQz-Qp1TmqmHTJY1_KTDnbtYGVVCsId - |R3l2gVrXTwuvcwPaxZKiUxEJc8XPdCgV_U-n6aIZIwcmCjVJdji6v_0emNbU227RLB_7pnt4Lp-oNeiLR0n9UFUgSzPdBLRYY-9tVMfG-oo5VInwZsrwCseo8J8H1fMCvVhSssA6DKbynQwXCkJNMcjJmTXE1W - |-FN3q-Vo1kpTVsxaN7FLB-HmqOvt06uqRyVg8qaZ2Xc7xIMI69yy1clZNl3P91icZvYn1XUb85_U3YVcheIWoKega-hDrG1rfyBait8i100ltVvI1gtX7AMtaXz5OsuVl8f3y6K4pIaRvcpT26VjLoAJ6fdfKZ - |xr_4jGsRI4kQ_MNWxZe-eld_O3X64m9tWv4UXXENYTO1mCTulF-wy8y6iQAXWxxxNjv2nF3EnsZOv3NYyOkBj8Rthj6QjDI9koOOeddz15uRwCwJYGTWTA9V4ieiymW2H0gV_oLkE9XQhoLekildIlunInjbtZ - |_p_LJHYQi8JSCH9yIZmsUUox7xIQO_nf1pctHN_do6mLhnjz5CCoiBK0TnbnE_Baz8oCJ3EIeKSrIsgK33OohardsI2pqPnMV_s3ZHzplnlCZ-LOsmLqcHnFLLPpjScgBFh5ViE4AQkFFLgx823Ie8BIHRc3rC - |V8QK9cNnZ_iJvRcvXpQ7mj_BNLpJbDUaBX0exboIYnSyoKeIGRliail89YKqm80H-H7KmXoMEuxz_GU_BJF6c056LdwC9WkH40md9c_SYJGa4ut-vs6CaRCGvvR9X6qI8-xu-gaVFml4HFCP-_EwiuBnp8Bhgp - |y14j_k6TgiDhkpncszE-pSmLRZt0xOvm9uMximLN6ornt4IH6n6KG9rGqW2AG_3Az0CKcLADmolv1T37HHcTB2BBV3D3bRv5MbW8MzUOh0s9Kuog6RCxGkDEn5sc1cHMuVVvoscDwcm_NdIhxY_V0tbnGK-uSq - |9cZJT6zEP_UL8ZHfAnRgsS9qrjVaqIqXtQ4er-4RIOPWQ-Dzi6qsNNwqRiIWa1RIci3oy-25A85t9B2B0SSKjxZnTD6MX9KNW5hMCUhJR4J4NlSJ1eeiUYh9OKCZXEXoF7QcIyd-x-8_rrnF5ez9vDSxI6Rban - |9HI_7PGI-yd96tNJ1YvS2KWOOtPbYxdLaSJ6hSubCZ3OiFJ7pKMlSenh7wnwHm2we91Qe8_k5OHDpxx0BTdQTVsaH_Cfsw6YCYVTJfKbe4g0bYAhictcpVl3EbSQn-5OCTQGZWblvgJAsXtEtUi1YrFVORP_eV - |gs0vBif3aYatzLefoCknVZAcvrEDvvTcrHKHL7vciwLQxyfG9dqUe2VSbILyICmSox0dro5dMyVKG3FcrrvUF_mjUp0YPl6LVVX437dsnf6OcXJJde2ZHMRTtxAUbZb51QRKLKn9tcIGA3nXg-WGUwwaUH59FD - |HyhW_kiSbYJB2iTdXyUpFS7JPBc-zMPLbUeJjFMI1pKe-e-Z9hGNPr0VvshKZfuWgzuHtIIClVMZOLqJIR0hcrCdqTzjJdomlgN6oifcmDT8u4rKvUyIAE31Sz_cu_-sDCla0o3LP6_cjGkBtapvIeYZLyQN8b - |ojoRYI2eUHIveBkfdPrXf_S_m_6H8fCMAOmYK9yGorVS1nZUXnQpUPxEJWcezryJUNLP33hIjlTSa_rSSuVwJ8_-VQfhVVcFSyS2Re556-0fTg-LMX2i7T60EcKNAa4wEdbYs80j_qo6Bl5uBvMq8YKvPOcKKG - |jUey2vK6Y2GfWrhJrKcK9tLsdhXwE7iE4ACKi6vHY2cmdC_LSBfNKwXQCno1y71GQ4bQuy2lF25y2Q6QrpnnDQwjeMeWJBVMAMa8kqeX36pDThRu3zVAhGgMuIjvFDSDXU5WlAYKrP3xPPqPmZWqYibFDPHgOA - |js3U-cgsJ6w91vl2e-lKIt9EqnIS-jLBpb0FCfy3H4ecKgAy0G-mgcbg6ZcuqdntTBCXEJhXnScjHlhTcEJYfsgkGc0mewCad0i2MYCcqk_w_SKYwqnwq9_FIZ9Bjtj0z4XpVOzvY6rfQlMZAr46LsN8m220aN - |RujiaC0IP2A8be6QbhDTCiow0vHXmTCBnAxY-LEUbYRSf6_3nFozNNgUEuBj8TVR4r74SXYb8o_NapQL28PSOQayN1hJNy-2uQbCSte6tSJ8TmdIXIhPF6MNQ3bFPJJMayRsdu3vZOLWoicEW6hAW-HGtRi3aB - |JN8UNIKljGMhJzJBEJhe5pgbNzs-vRBxQdBOlLOf--FBEulpniT9fYJ18Q-VicPNz9Isv0SUPjkrACFCeXPQIAjSs1ihfrzaogXfmEY3hnQKB9Sx9jwGGXbFgz82wTaXS0kcZDwZhxjwb_Jxd7Cv5iNS8hDs83 - |cDvWdt3UTq7DjzDzMHciGY7JTSTt7mCBVLBnORm7bioqfGMHEsAsCgyg6bHeuVhPYZjRAz8EwzF67798XNHZcz_6DwzQbQ2-zCwuOAO6RlTrZlh7sN1YiVOqxFEoZZ9wzfoAlgTz_BE6ZlAG1-Qc-DBIdbLQ7V - |Rh1IkyrLyZXHjfnHXM6S66o4lec21B9KiynCe-E6htLEkP0Py3H_kLFBTEmJjAIgvKt6TJ78pQBxChBKzF-zquuCaIv4HItFutuPks4Fd2vsQFdd9z4qpaGRGgjG6miu_RphrA6-KLScv-BH9Zg873EFEQnROC - |XkdjLnsfZGniaEj3FRuL8a3PxBvhEpe4sd3ae3y7tGipRiMtPC4I64oZfkxuATy7R4xJ7YeFDSFqoV7-r6aseTfUEBNwWrv9juh4bonREX9vG8Cja06V2p7sJZhv1i5ZIQhXTewn5-krz3v-WB6IBS8tCY2-zX - |TsCDPFXBikZQFjM3siaj7s0nm2pK8u3ilq1-2qIEYnnUqiO_sLLvlk4OK8o-aqGfqBY4sXzFgFlP6KBfZUXLVZ1G5F7aIgWmNLrTTAmr344hXOZ4JzZqrhKSj3zV1TtlqWz20RsrdeTDf-CI1WARcXbjHPL2CF - |Oy2aZ73CEhxgu4NAQs6D6q6XZipopy8Vtu35stlNQuv0yxIEWFztLqX4zKghIKMgKMM-q7pxWVfW6JbDLG_0C8B-H7nmBIesxZe9Y6kCjVue97GxmJ8LuWdeR3HCavhV3dE5n7ShTqi4Jh1tjR-ry8fwogMp_1 - |9N6i2fTIakskE7hkfaTY5tOT9MKGWknDr38JQOapf-k532hEGTA7s20kfOJzswPxaPG5s_AepVBmB3YQpzuNhWFiuKXtQiTJkeD1Gd3_ZUZwVAwJ-eUS_37WvhtCyJ2TmIsVqFOcf2OCiPDu4gkt13kykQGICT - |KK6gOLEUnPYJyK4S7oZQTD1oymtEagHEb6V6lcIB415n-BLM7HLsg4DdS6RErzO0NJrmf6D45kjzPU4MXn8ryJC327_s9Amwcp7URJxdbnej2jI3jrLXdA-vCENil6pfOBkDNI9a1weYHQVr4zky8nkym0EoDg - |VXmu1sF42AnNVKPKd7AKOgzdqb0TygAjARey9Mz5c09UKWcgIJ_gbgxEV2Vxmgfj6x1GCEt2Pez7AsbnLSK4xMTMp3U1s34OwDyJzVcJPtK3bx1LRu2cPJQf43vXEOlX5mRhZgSDGzrDSmJ7iOAd6tIJ9qy7bN - |u9IajS5xeu2NSDm6vBCpUtLcviMOzcFDk5cLE8cidkkfNXfHkhcaPr-6QiwSJDkZBlX-81ljz02gwvxV9I4lZHDRHJ4AKxbgmow_Sr034mXQglCIqCgmNYF2F9l9crKT9cZTA5uiStnMalTDHf-8zxRwYThPF- - |UGKRZ6uz1GFFpUvmK9bXly1o6XVJDIC9N8FTJe2lUPb0wyjP0tdHbBTEf3EqRx7fH50xUVu8Lloz5AFrNl1YrmvSs0_70tEGV9OaISrSXHD9JVsXDFysIanWPNvNmHb0qpWT5f7twVGEA85Swsf_xoYRygUSRb - |VRZ9YQjoC8rEYm_p1vOLb8pg3-STLNDQJNYZqVgtAlZeBeqWJTavPEZIzZarZ7Pw988huZuF4EIM1M8923ZEk4g4knN_ViNbJyAkqDTyAa-noJhb2z3sAvpM0UE-lnk7XNv6cUO3P7S2PkHUK_US-Nv2UKdkUd - |JZN61ajfaKSk4l7pXON2VDkjtgzYyMO3EylNlNjv-3r01NdiCZsqhN-YRlE5REvyob59xEtnwRUMzt6mT193DPpwSbd3L348G-qf_dt-MXe6srMO1ufhCLmvOy9HZX6iF0eO2VrifHCM2lZ_zlxko9pBrhCyX4 - |_ljpG6p3Dj7xouzSoQd2jRxjoPWglY9pAGkqpDT3P7JO4ijB-xoYZkvA-PkfbIjyRz5FEGe_NoeS2ib3JLy8dOb0LDytMY5A9x1zjFJtHGMTYDNPh7dQpZgvEBLTIEsFglFGVIpzWnEuA6274PR4tf6TcWunFf - |5ERTN5scv0jLBdk9mjqdNzH2J_zOgs0nDAP-JEyULq4MlAt2RU7GNg2j231k45mA7yB82oiM4l-rSFmz9IPznmcDYrZICtuczB6TBL_FNbwnV9HVONOVVf52dpaIYLrwtNDQA5j4cPvDgqIV6gN0g3rXtbaj4u - |A8wiPrcnFfY7MtOFYVOBB5Qcf7xiRTuDiUoAmFmFICyXP8j3xY_L-ZlOZ7viKvx7AoEdhYURpERltN7C-2xuM-JbyFdg-5HDYRT2NAelq_rp17w7EeP4hi7POVk0Q4i6Rz8UHAW5CtCBB5Hfm1OdSeD65L8wB- - |uyEb50iPWwPxsUyagRbyizXDKiJFq-EJVlHopIeYBDZknWOKF5Hve5a4jM7jDdFKQchSBFWAbdORZr-8gZI3I_CkD76WpTQY9aDpxgOS4GGZj-lWuoCUSZl8Gr819s5woKEs7Iu-DkFFu868heIsnJnKIjPs-b - |gMMvvgr4INAxjTfdVxbQqROm_P2J7csprwvg2-4Yrqptbvq7uPFnId9dIo7IIMDyy4P6KUyVvMakh0u3LrZmi6QzzcZiudMYQ2SosBp6Mdg5N6hDFZaQXOZER0PF7aWp8iqh9qnB3WOrEzdJU7kBJWY5meAH-s - |00_pnBUjZyKLO0bd9rsxgQ0ZIZamkxmEos7dqEF-gxO-DwkbwMDomgEVjJj-oJusg_fFTzG1bUPwItq0KIdyIABB14O32fJvC1wB7dvK2AyOPivEV1KDuleBiGuSU53rWJ1tAvTGOlHHjb7jEy3Mq7_JO5gAsT - |LjlRQwo6ZbJYvk3aSFNHspPjmkg0SmHlVIyOy-0ki7xKh_27GpnwBpaXYcfJa8xIX0KQHTx1UZOhx3mI-xYRtARFLkegEmT3bdnqIzJ4OYu3Ghn55TRcNW7jQB3Ngv4fX-8ktIKDSZMi4QOGJXWKgm_NDHByPV - |uyn_3ABPM1w7H1HGk2hirreEChTC5n3juERf6N890W48sXDKNKJ1yEblYxMjdqqNJg_wLgqr1LmV3WgLkqNq_CO_WWRxDkBbcP_dGFYDx3SvENWDeipwkIAZ61NQ0ojsRavBb7E8zRZ5OprK2htN9nh9KULsO5 - |bClftFIw4AgK-oCb_EpNm-AhuGHLORmoorWMs_53hfIIWR3PP9BjkutcO964UhZXXhZqHd5RaxrA2PJK2ZOcsKv-HuDUmLUc-eJs3fBJUA8chL7QQ6sSueuAzoZZHO_LX7fXgg_TQkiLtXQkBbjDUwt-92cBte - |KL5bQTX1qk0i7e-0LONSzqJlx9GZ-54ScNibOSk9CtY90hJJCsZCGtMWaSvjwkzKeTgZiKC5-fY_GuzVMZBEpQjWetk5NxCmrm3sbU8yOuK2gUQEro0iyUDWAZs5l5_MlXRCOfkfmP6lttm4tPYAnPPrboaUzz - |_97PHutecybD7-YRS11aWJcttCUXwzSSApIKccNbKlTkS1aDLxlRPXhB-vxh4kO7M28tmR8Eutn9eiymuW8uI94QhcQ_GnlSM6Pkj76KoDcPbEMcVBey5I-kLJ7CPYMGNxD9ttRD_sqlBnuI6dRckF4EdobDYz - |SoUXh9Om0LYZ8YPW0Ers0jWvVUsZv_X2EkKsine6uar-gaNU4uiaVVzSZOtDjd_m57kzK9Q6ZfGh4FvAChDCU8_IXSosnZ1B3kxlAOKHmg6d7eLfgUhfFknk9cP6kp5Z4Zt7yHs46M-fo_NHpUND9dEJLVsc-p - |iPub3MA0hU2qDgw0vs6EeHZv1QY0u6QH4p7dHNxiMdqEVlDEkIacHYcIhz92y6EvQcKB26TsjGWuJOB5qmVNqlvKycMiuyxY8IOT6_eatv4cwTabMzhHzzM2lnopBF_UGQN5qCfMHyZzPd6_HCNBQjMeVCRO8M - |WkHRvXvAwm5vBj-MItPx4iuNj-d9LY9Tu0YO2rSPTufX1ANY4zSD0zW5h_Bi9pejlrc4MfeJG8BhVD2iNENMCPRYDMbLlSgUTmhq0MXMFhj-z7QzrDdqEYHcckZWeXVw-SpwjB0zq8sI1dQHdR0rAJv8fUrUqV - |oli7Vd1tBK_iNGBpRrd1_loOwUQonWBfdYdMf5mTNXTF8NacJGIh-Kc_3SFru0yKangGisrQIzmjuxsjIsHAe6z6vWlo-SIxmt79FbvGSXnb17PklRqvztPEFClgpkfiKDyOe0jpwRaUObh3R8qcwf09hoF1RP - |OgvCe15N480KKL-V-uzPbvKVJYGwA3-rh8XdV96c47u9p7VcSESuQZfl7glzJwr8RybmVfgzki7pe7x4czc_5n_Olz_3ZEoHB77U6ziVvh9C_p8WEdKAXWUj26Y9xDxwcgyJ5xlVrgdYgCan_81iFVUIaPtZh6 - |xAN7DKHUH8WCVIpX-Mb3-y5XzA75DC7wUqNFucwbJ_5DCKR8UsAyyjV3ln5wcC9MnlJn-ngJm-peCAQs-xlVaDhpxjS3EtbsfPyWfgr0ClIBcE6VCJV7PjBbrkhi6x4wCh34RBgaGgTG4_JG9Gh5L_OuT9i6Cd - |roBbXs6Hc8Wm-_jZVfaViFCe3gfBZy41_x3zf6Ppb6oT5X4jAlXnH-j_ENX6G3-IkwddWeAS1IO1SuoqjBh1KNtO7OZU8F3RsD2qpzGoJQzxW8N2cYUYfdFBjtSmMJTDi2RIUrbukHqeNTVsP6O0M0u7I003Pb - |nTQ4Pjw9mBoel-tSrMKVirgV6hDh5mpv_-nTul2-QvJShrSAe-cMMCo9oCFkwXu9bPYK9DU8v_796VHGTu8l4cdTQlr5tI6vD6dru05yzsYJYtj_6PGjA90h1Jbp-zEPFnPYyg0ilOds0H0zozOvwYeWEKp-QN - |hfZITBfOG3H9esRygYqRglfYpzGzGB_spOP26faierlw9UWTVW7szv4KVSN1QEfgLsRN9bgif9fXhljBjtVpKy19RUl0kIhWXzgo6vPHvbszRUTnOH13IPMkqs8S8uIoFEbcVIlmRCMOKwlLYhp9-cpZ8B1ERc - |Pt9PmA5J3VmZlP5_dxCT5c3t4y257a5hlHbGwAXHOZvF-Ey60RI3ujNJ6R2jpGyEtEb1wbixVCz1_P0Qqn73HaLguF-m-42rxeIsffvd73LjIYCLpnozUnU1Vmuajj3Jw-tZvjMILtGxdASr527_ZK1WN37aKD - |URxDTIXeAwPAiaGBSZgtmpyTPfn_MiqjST0rylEs7kn8ZW0gLW-EaDwklqvi2g5JzFYxh-5l-POqAQjti4duNe2mcaygo4f8ynlG5HCE6zEAxARpkDnfYijAicDXDgYqnHmthFMiimAwzCM7b62j3xEtC-kduX - |cNsrkh1Nk7OE3o3XZ6bbcnaE57rdBAYDPtoglvdmVkQMNmD2onSVU_M6U7fTdK5aqC15OM_FTV6u6YK8anmjdK9YRmzBwnE1HUbNP85lPnCSmijGhMu--9-xUvgaz7qEpWzbP4LTeSf-59rmmdDP8BBNZPFpAg - |Z5tborvgY0CJOEaoTrcA1VfwNkhLa043A3XkLu-3Fb_MvYeLUhCO_K-DCpR4d-RCtob5nE3p8H_M7WmJ3c1NB3RczMw01Mfx-Tczq7Xf1ik53PzXC1DtbVcd2StaFinDmAaYgFfgdyeDIZ-r72ymqWqS3IKKTw - |D4_JQ584gIcjy-qi4l2G-aBCIltQlNUzcP3zK1BkvefBdrKEAiGO7N0HMSp0yE9wYPq0eq9VuS3sCHyG1MpGcFzGg3omk-4syH8Bdr2fEl2XJP20jkxJ6J5Ia9LzYPabUBBmHI3FmR2-376FDj5lRMQeO37H5z - |X5RPr1T5pY1wak5tGg9GYOZbV6bghmVhlKsQprDWF72bh6bxZemWLaZcWt6wpO5wfSlaQRNCW8ark8LrnuaM9Uk9mNuFDdqtZPW2lxqu6EjJs4X12OQy00y6_wwtO_cleuaywYpiCyT0o3ES3F1I3ZpEV2_oil - |w1vBqhvmyab_xpGltMjCXLBQJ_mCHXhUwK3BEx3ttY8kXmLdGtue5Mey6THofwO61viNarXNEIpsx5dQWkFznyIXsUAV3WzgfxAmSejPuQaEZkGI5P50NrpN_bixzKHOil1kPXVTIGn_rZJ8ic-09jK3ni-Ztz - |8ELnOGdPVaFBhKfu9bN5yWGcT9NQShjFoKHI6-XgUI55vODiny0v1QyTwV2qVEqKetIL1LZynHowTArv70ele6jy6kRVAbM9xdzSpLfXx1x_6zqsG6ta7gfVkaKh21bBtqErT4GctkzOWq2PggWtpuwx3hls7W - |ndJv2-yUJJoczelRchKHgglNbhtRwVIRuvzzghckh4VvSTcsJuH363iciufk-WDp2Jsgv0aywTQ9HCQL_-abl52yH3e_ujpv6umUqpvF-GaZDVdXve5eZbLGZq1jlJOzWzYf44_g-MGMbvKnuWtNRfbnyB6a1B - |a5W9BdTVGAj_bJQT_S_5WmY-PAq8vlRgGN_YLKBilqOjOSE2TZKdv12vUqLsN9ApbH3oCd8pqHl8ZwPYPyuGBzNPwnyIfD01SgN6LksWKKUbeQToorEg0QeLRhrJay0hldaVU7y6Eii51au-JLDYMdjoZomAQB - |x7VP2Tooz78wb5OBB_nviDB-KC0Xkq-2z7ZotudxpF3vCOhmAZig8qG6Kym3vVmvKl8Yb6LDXWAzNN0dGyLjddFTxk-WXy52xjFbTpkPBR4MdK_-djrLNT_IHADDe8FVqAmhXjD2R4gaFJLu8XxrjWZHexwQuG - |la3Ssuua7ngI-dpzidBJ1r3_qqxWEehQejpOUtZqnBzGzyV4gHJH0lj2R6t8xv2QabMY_jIvswa2cWj1sHts1C-adtO7TwKE2qQABe-Dube4o4Qvjrd-bQ17DozQA3fULOUfiKMwBgnooh5QNMUOnWoJpHXMPn - |zV5_YdApMpIxq4ags9o_PZG1jIPIHnEpfO36IOjRADOx39-hJ4_-GHp9xrHaV8DQzYLksVr_o8fTmzWHrksHg4kvPUffjUrh4-RxONArjINJO0cxV4ZtWH8c5M-3sTKdApwdvKu_-0rul6eYvuvBa9E00J3D0i - |sjB4jOQCOO4F2DLPh5nXj83PgBPhTwqzb942UTACvB_mKR4t1jrEDK-aG5NKN88e2i3rQbrFeWAt6h5kctWOPOYCUnWaJqp9dEkp2mBOv3mTrMbwrRiEY9mbsRi1pQkLfH24tRya2_1mFjtxZ2yEmBiV9EW8OI - |HXBV61R0mpMoAKtofjokJ_eqGQu9O-iAnQkWJX2UxMVggcjqr1aB2bE-MDWlcPyj0WpvxmE3p9DrpSxn2JJDn0vX_Z4SpWrS-Ta-qBBpk5TNr76Xaz0DUdjwqwRiONCRe0IBw_25BWWBy9bZ3ojBhsmTtBy7NW - |j5H2o9QTVFL06INSuQ0CPhdRt1-NAPrqh-fjbxFHRux6NzQb2koWCG8d84HfRYm9IRk6RiLG2rQRaZ5TubfSHwPy5sG_fwyn_dgwiDtmPRS-ep7WMfpoqXHe1n383I49sXQqXKr0ZpLDRUafTkr2PrS2I3sLyT - |CHinXmFAvzGiTuOs5EA8P2m0qkbg3JhQC06Ejl0k1rAL7fxfJtrfNAgJTz00lHLj9Y7_R8yBFJOhnjlw0oaJ8siOGDBkgo6a-eRFqFxGVKRGgXQPcWlExtUACW0eZoXpv56dpdHNqJA8VTrzTZno8KOwZEJpmK - |0vCfBtgdRPIPvir8mY3a6KeT-jdIM8qlOq5JFaXvcrTMOZ4sBXseIwNjlnXtUse5c32JWctuTu7dnVZ4Qw4ZmbVlZyk9VsFPP11tZY3CbqXIW-8VNiWTq22yyNpwW1_V0KV0CpPfDBuNyzebJnTysBF-PKBiwM - |e3vA4aj5u72noUJW1Y8WcE5TRqeyNSkHi_Zs02QJo6wOD0WAWhuM7nzVEW3ltdGfFTxAS7Mbxevhteuk61PDgKe4YAxK6ihnCzEudg2ZQxyo59J0soi0dW5y_MHUy1AlViVywUBzt-jr61uzsnw17vQGpcwusQ - |eYFp5uc9jlFXvw5mMJ4oZiplZmNLqWfH-5T8E6HG5zn9V487DTy5fg8z7HqAWZ38pbTosR4xA0K5ptaC1Csd2lKGcvueQjuuieJM9EUp2AE7xC8SCW9qV3ERQOVTQzhZkjVYPssZ2t2qkcYmVaJC3ok45fJIax - |iYXxKRNNiyBlk1Sy3MS_AGIwD5SdVPy5ccNsmpY2xjaCNaC_Ws6lrCHirRVSGlOaex3unQw9v-oLZbrCrk0oP_KsOEgnvLSnqaLtN_X8SVrk1JvIL1XkQZ1u6wxNNgyp41tEig0qoLKELmQxa2ztmjVlGd2z4h - |fw3WVGHHM8GuV4i-c4BOU-wY97IivtwmIklSuqyUcdN9shG-Om7sEMJZ_-apgMNmYvTzizkNR-iOYZVP2bbTsEdsBgGjSCkB76HC55xza-c6ob7MFetBiMz1edGrREZ7zw2ALF_7Og2ZLtY9uKkDPMWr4Xtk8C - |S0rZU2RhV4jxJzlWNjJMncJ5xhWGg3Z77c7cogtM0x1v0HGmHeju1_w6kcsVw_ymZ2drmepV9u57-_ViecN6D-VkfqwPnHfBFoX-ppSvydp2aGuck27ZOAPL3RslFKPm7hhnSEJbdlwSDFgbW2Ze9pyjyS_2SM - |YVI3SLsgtRq0rWgnyS3T0JfKXapHSuQ5jObHS6MSC20R0XO4rpbWu1L_WyIHu3vYQLY-AH278E_1vWPMGUfszjAQ5blHwyXuEgx-87KiD7x3AzJ7NwhnRQyzMBq-R6WITsKYuaQ5aawO-tymPWB9-Tnw-wa420 - |sNf6rHRIMhOj1HSwxH0rA1mxzXujGq81QKgq7FHZ1jNdN1XCp19-sggOWFLiDxEuiSP7VaG-IPhzy3PeSpnCDtOw4BcXTXrJgDNowH6TtmhuuTxyeJuEmQJ5wGoje3XpTuLqrmfncRIzNDDC3Je9vd7BHKY334 - |E09rvaJl67WbIu8VO9VOdHx4-BaueyqBYbBsKjvq81o4IyX417NIKKq5zrP6TERIgO559BD1gZ8Wlu15-SUVdtH1P-fbxgAMRg2xAuvmc8qFkZ5On0eFQ0SBVA29vjPxT-Zv6pYxoyHGdupHYIAl7bcERNDaev - |Is6evVaGH1j5QYWMtfgcwjjt7SvAjVFA0wLGijSnjoWJyYHGuwcb53OWxYTGwHdAP1oXox5aYrrttJcWkk1EJfSQUDA9HWLhTKGrucIe_tZg9ADODEScXlvVUBMqI3rR-JD8oF8fy-2poM7TPJ6IUDvjaAYnhF - |3SXT9USxrD3e5k5EG0rsgbVNjqwTdfqCuhxRw9yHW08wAge44xnxrPjG1gGCx4sAHeWW2rMqu_E1bAmJ4-3VS0OKsXm1AIJ5PWx3NIp1wWb0LxdNlpeqObjBSD_KgdtSJTSloOUDbMy53RuLifC6qihvCUrkzl - |cdAE6SlKV2M-zfjBIA8SUHDa1CFdTWhCzoYL-KpMDL_AdFVoyHXSkkM1a1YPDlw77BD7bCZOWPqCPVJumEnqB1XJnwFF2lRV5w75Rih_rxXV8anrXOrmcGtbQKRUG6q-b2NaAVRjflFWXCsOpvv9JmJ_C41OeD - |KpYWOZC4kNqStyfNIx5pzgFM3zVEdg3C06rMGTtUMD7vwH6UAewc2NhDX3LgEnI3gypDGs1XbPCihLd3C1qecjkCpARAul8Wued4-q0s5Vdad83mJg9ZjzggM_Mr981JfrHnxhisZuxns19addHnyAiXH3dVVn - |HrxB4p20C5Le4K6kugmd5uXMsn4iMH7h-svvbWhnFbMlUyJpeQh7-OVOe6Qja-0jtRZovSVeyatmxnUz83phgG3-wILDD9ge37XoA6k8wewjasWcqdDWvrsJ98aWeFgk7TlPjrPs0_uGB_HKNKtbzGzoZN-DvE - |Rh1mGJuV_JElHU-5WeF_iPxP9VTkWO4wl8m-2KhkyKsSriz6Qw3flWnwNS2IkHij2DcnuquR5FGuVBwKW_vuH3ZEuITC_zwXUUqwofJZ-uj3uh8daHUxppr0Mb7Mco8EWoU1Ukjq8KBx3L_qEnUIADNnLEAfai - |kloYiko0XnnIc-k2Jd8OBkz_tj0GycHjmOKWE0UaKz52ChEtzZdngynzpHVv5buJIiJqT4VpS2QIW-ME6qBipVkiS3kYJfn423vrMkE-LLB7fJ1q7mLAvZf5pxnNm1h5K5dQk7jP60GSZjyejTG3h5s4affvw0 - |lzwxAgChgNULkU8fCGbLM5a9BysvXi_qFFQlNpZSNaUMNlnj3vWRNuik-bKWwhrDXRg8c_QBUO7w9fCXUjI9iLeozKx-ZYkVJugg6epC16bks8Tw5Q4lgy387ZKTcJxJ6QaGYu9Rrtpqm4TWVK5cEaRmyo6d-J - |584rfxaSXz3k8_9DGZPqIeMPvmiEFMh7onX_ZIphDzDVY5OrDZKk1B7utxTcVpRPTs6t9MT9u69hhjKdye3zaOsxs1vaCR0TASKzal5cM8vcwX4tlmG_cFjkFD7FNkv7Bu-i97GTiLH708p45ASK08_GXYjuWs - |3ZaM_kqtW8lZQg2WD-lOB7RfrsKhCLzYIVF7YFQ5PdmgUZzcMorptEOK3lGohrGJMh7Y_4Fiug2flso4PqPqXLl4KaEpHd7wYbkiJmxKH0nLSExZcIYqyHP73amBWFX-RXShCwTLqy_SJJDX8PJyLZK5ne7VgX - |OOUDdSZvIgnKDmoDUIkJdipA9CBwW6J4Y8ypD29BCEvlCrGSr7l-lsszPWdvHBV05odRzVbvVJBNBSHqD7hUZ5VcjQ2iJ9h5Gt3P4DS1UgxpRYZn_sxJoTZxyYl7W8qjyIwWnqwINCMvJYP-mK3xLeMEBsZBmn - |sZ3ulKHBPxdjXfAblYNFyO0q_RP3tenUzEmze1oHQBY7vYGlWUL-LLePQuVeI0YXyP54CQukwfdqEXCIbNBlXUjghQCq4XOg5A4v-Nz5aL8Un8xZvvxYhNQuefKwrL_swrz79LHuyIIUy87TTubddWo04Hj7Wt - |lqIu5bGrSBjPxxFT8XtTNOCoi3OoPlYH_7AwxbdssQKY6gYH5MQlKTQP51nXEXO7SIe8KLq-ZamOGhyCfAs1ZlgSi7o8hpKyyIkT91b5EHWEwbXAM3ExbFZOlDW8eE7CFaPOckKzt0cRaULbBI8QwRIYC85NUi - |XpsN3LHyEgw8XdzqFG_5cXeMaqS5twwPdYj2cY3PDaomAPcAOaBdq9iIcQRIlTt7-84fRK4Kvnu9WvSo8mx2NOfXegTwxRpgWW_wRREB7k6dMT5yVagroWkf7EllYFJOEEljkrDvcFXt4gA9Nz6zPugoM-2-Ib - |jw8XLWKYwqX60Ow4q77MpLsLIoFZXmoAPP7y0nlvUPbQAOBH1WeQ4_Lj4o8klNw-J_UsMXSHrJNhDDhuTzmOqnauzH2sfhfSqnpp9z5nbwAlCOQIs-di2C4ITPAdtfb57hW9PK2NSjHkYygattde4D1ffgM9vZ - |j9ic1kwOWabHHUON5CeENWrrubg47H7M1S1J6IsCkqDh4BJ7SqHmR4QAYuvHy1PbBGJxbf4m-V1VSR1jTV9WWUCuIVDrYAamg4-1mwVAcMCs1Qe9HD-6HzWkt6lVEYhBRBlZoItWHHfeNbgh0EfjC-6cm5BUfs - |l8ELZLcnQPxqCNeIArJjmI_DQ8WQZlTOrm_r7mxMYRRFGGhQdJpxXpzbqqwytzUJSRt9gkGTWCsZliFzTAgPrvajQ9iOZuaBUN0_lMAG7Ko31bYHullPncv29ZdatoACH53boYC_gsTFy0pQx0GNzUXhzH4ujh - |3dwvUTgq9ocTns2eBlFj7-Gn6S92DkyopCDuD0Vem8ou8bhMEydpwIaLdEGaTJpgVOLeoRuRYBMycMDXP_kIFYveRw5ROPXRIz_g_YfwWsP0QroGCC_9GWleqx74frvHzE3B9-TvLlFEnIgb4uZneYJNijI_1P - |Nd1Q2pQCnC05cgf4Mun6zKhq5Mm42sF4-HaL_eeKMghqW4WURns_yczmNhLBaPt7goXVMwDttJjfVEpwQuwrAtAVqA363IaLE08Pz0Kv5HjtDuflV_ATWx82VRT_gf_Y3rBnFx9g53ImPyZ1bXx3Cnhm34QdME - |xDIbKIixlnuy2bY6Rex47fDUTe7iyT5f6rl64DVFVdUfclX5V-zeot2LlO77XJJjjn2oq1a2E_nLObKT8oHXmIyGeYAcJ392BHslstPjfb5laEwriyGzVHLTd8ivsfHKRu5AR8Ad-5Un92tqLamgN74Y9I3NGe - |-0HXaY9Opp4gAJe9yk8SDjuJcx-oWtZVQABXaj-WBRjKjThvo-QhxL1MMff4BqaWDT_YLz0Z7CoIS60AjgM5hlSB4aA-5dpcNjglRlizASe7-zh48ZrusOVNEugPCVYOvQevvFQUwjyqg_FXty6WuZpFSiupBR - |MtBg38BOClPamfRkkEYiMigAzBjlNEGBUVG_pJJeZukqLx7isIOwgnCYJgDu6_QIQ5ZaVDWqhFZJXIJ9WOlkrfucMLuRHfYLsCfzZZ7r-e63KghOxyDVL7_0N-8AaRPFfy9KgBy5WAda1DX8hp-8mVQSvWnFQn - |x2QyuvaLT-0_gunJO2LMflWK_vRTixlwS9wQ-pnv9s7j163-cGOF7u_WzHmp0haomHKbdkOQlZmDg1MbxgVXIivCjAUItAyDX1lYcDosAn6PRAesxkTilySjnBLqIGcVeQ-arUdjOplyksW9a4r_QmSslX8C8t - |PFz1_UJIvnRGFIh1OyC3H-_AP-cvuyDZ2taezeqsnqnMWxcrhS6_OFXBkNEJjqHhb3CK8Ku6wwx5SgDo81qQPV4K22hC9XBHV7oVV5j7uJWukGmQc1Mw5AVZIU_sMEEFDoEQcEzc6wDQqfxXbq1jR_Vn04pJm2 - |w0QBHp1RpbwrmhZ09WDzUETwrNZVj7jZno5eDnAURQMpFKW_cBiuqAZi3X3xw3vhvSVxB3DEhznHWcfWm__OggVFf3Xa1sRP0w8ZIDYJO1nmbCfT9XDj5l7sVwrPdax935zx9NzFCwxVXp4cp0iPMiYQXf4B8L - |pk-DQS8Y_tJi4LYhzPBuiwRdEyG1yV9vaLajc5P3VCpTKKMVXAlWA4ppAkiRrSymZh8qwC3PQKnErOOL0Q8pN00aZwj8eT6vP6ZQr2sBs5f0SmtqqERWi9FsIEmFMvPBSFx1V-3tLzGhK8Qr431p9og-9_1o2o - |Pmc2f9qBcPgfGuvH7aXS4rTql9iWigNfTIh3XzRdVNcMaKcasFb1rEd9wVvLtqDlzTTMT08HnRb3cQdXBJxva_Xiah5FPP1Yc3jmIQdF-ulW7JHZhOkywVy5bH20YmnF2joKgae_ShVtE4te3KsaMMtADg_tV5 - |QCZB2S5AlTThNDSgaUWV0K3yJ4mgSoIAIoDUViReWPi5RurfWglCG1PvSbANWOx-KNNWWHQsmgrjNL-BNy4mhdlNEN6Kicuc6E7tkU5rFMOneygzLisijxxQaJvcg3vX1_GwSJp3BjE5usdyQ7JLygUeiE4d22 - |DnUShCP8LArQU8-W3_o2a2UoZ5kReAhrWNlZBHvKRi2YcKB14nfTkWvYA5EsvkpyGE6XYDcoWUL0RhkKO0A6uTIu3Q_-Y6X9--H7Kf7-YkJZuDK9JlHAm4lYGCn6nC9u9Ky65EqYwx1oJbClxyeup_cpF33SMb - |GHIMjDb9fEnFecyrFQR6hhDdD2H0bGBEjk_Bf0CKlZrIkW5Y7HxZopf2zS2d0VnFzXpNMS4NLNyJx38LpNMqcihAcx-x-wpzJ52tc46Auc8aIdF4bjeRpAtpjdJ3Q15ZpCvcpOgsx4B0HdaVh5FpOmgBcCR6UO - |XUUSIndUYo9IoHOvcnBfcnokv8I7N6GkAcuMKnN2uGshbRTo88lnAcJpetdOEd2tN_sszP4673NUhTqwO5LIeliPGQ2igyK69z1L3QSzRp2oU6y5Cf9PFvO5r5nj_Zkjjhd64Z1apYlYP09tj5JuGfM1UHAh6Z - |ZxW-glHaR9VEqqPt8KGXKqDkDQinB0X14N00CCaHMeSTlC6rQi49bR4BxJolmllrT5Hn6PjmFzkmjRzERMtRj1YkzS0JEN_7O_J58Okidp7s-h-hVvE0PjgbkDlGEVK7ZCQnT7GjGTTwB-VUaNSdq2lM0wdnoe - |WA6jGjmu4aQETMvhj9qIUcxB4MHRX3-Kxwik_NBb7DWtBYXGEpeEnuFp3V1jTyQckxAgkCamYMqRndRzHNBRhqgba2e6bRrDrYSGLrsV62BNvdeQNgdfDHsFL2kUoOEsKc13ajcHv4ncCath5lbv8kLKxp8-uw - |1qmcYMfPf_ycleqpjBh__BwmdvnLdSG82qSHoOYD4AxlvwgupdcAbSvvawGxRlKv0xjqreaTfM8jdqFc-JdTUKehLABt2lW4wa9Q-cipBxUMWYbT8ys0dPIEAfAdjrP__U2CSRlyRUTwe_d3WnogEltXrrpmXC - |seXGPeo2MLhQYKdzvOhltQdvLzocXf344BsUCOcO0XrWAcUxE_aDQgJ5lla3Q8YUwNrRhlnh1tpP8Oa1zodNGVb0AFtWTAq2W-Mavg6vy9aRFez_2U2z5EWkBDc_8SUBjGZmaXxKFCXCB8902CSlxPJAV3JOEf - |GQdYcFxIoSRvF7cPuXAKD8Iw96T7HaX71lR2Ln8UR7SVZXKRw7zWC_ZAChXiGcrA6KiwW2RA29O1U8b3nQqOqiCjqPTdHBmtnjFyz0AVuvmgNbQEM8AeMk4OHGEKztsWaGvYqP0VSn65yB4NgpddqsdrKyURaM - |hUqpr0iC5Q0-6jGMi1T1GY6borF5EhZFXk1gkacChUSghplvmi1UpxTemRJDxHtNwIdA67fUv067c-6_6pqZCspt-U_U5ciNrAMGaHOrNGDw1Ye5gPTKdZU9F4kq4Nc3gn6mkCMtgVSCjiv6ODyrbbbXaP2Dhx - |QkAr1L4LeMAAxZq12j6xwX9NbGownOyAAPD-3XwO8bDitGKooWevqI8AadcGpyIVI7d4cXQo96PDWaIkXnPAuFPqWC3ZsDoiwX0X4EkgqqL5Vbn06-1PrRG7DgNrK3DDsLPodJHz195FfRX45ylJR1y-ZU2ljx - |dfkcMOQPNt9WUqRt-8QLu6JEtC8Ly-fIgxgAp7gXN5AJRuGU5fNB-xjpkPtSrUNijdljVGEgX0Rj7g5Q5Ero1gVkjfJpjUOf38ANxyDWypWYkOimMhOF_UJhinyReTqsD8VQIkEo5kkrtfTGDyMBcwwEkRvndq - |RcQH5AmYjUbVWxrkvA7Q5yM36kLbLghAV1gHeZBGzrQWe-qJVSWsiLJKKM4L7J22FQl5XTscObKUlK9hfdsL2mc_YSB-5cLZ2skrxAmsqBbaevbyZ9eiW8fgFBrTqJD8J8AmoE_0nKAWkrHf84qI-4eaDr2jOe - |gYQzbvcseJpnqlpgBQkAmc9uaR4bSoT8-jnKaAkENMIBWMN4SOq0yP-ADTkJatNCZoEs8xLX-APINX1oZCig1VCl_WOmD9Ac31rvAhxqOL90DP44HeqFmOUnQPfrNfhK0SrwEH2RFWbvvT7hEdBaZqmZU9hJLU - |jIYhr7ElplFLEcV2UUNbAxc2rp9y-tY5WUYrHmaTQd5cdt4NU9dppJwuZPHArj0tALgXzBA_ne51TLIIc0QsxgKWB18k2oppRPHLIEoPG-oxk0HNYTX6gumXT73OPi6yubKsAoa79WMgE5Aox0JshzMOz_uDrH - |KNv_jDp6QxgXkV2RlUJG-B1ev-6iseisEI-EUgxgBAFvzcSIp-7AT9KQ9dn_zGc84GwPMTMXRuvs02itgNLjj3IJpYUVDIPwekXvlhiDeMueU0C21K5dY48YgWj-Eg0IZdNeiG85BFx37-pdgOit-zoOOrhSsS - |w-I9qNCsRZ3K-u1OGep9ti4wlbC9uK5uUxl1pY2R6q0MeDLoBKRYYWUjGaON8IWR6VTWVYe2xig1aMBvpC9Sj5RAvP0SrCvTjFZEkO-lXFanE6w6IeymAm8Xteo3NNvBlPZmil8vJGeuC54l3UY43kGLdt4w7o - |itlYzn8t5B_ETR-FKfSIGV6C0sdjZzmwNLhMz-wL3uHSnDDZlPEGXo8YGkJI9Uy9XQb-k-ZK7Jgx3_YaAmHXKEhsQzJUSCGVJIQC-mE8DAyBbJPXj8Ob3T4bxXdrzyCVf82HnHfUQGWTofVuDnC_hOLTj9LeCE - |h8uVhZFEIQBCSRJ8cCkU0bRRflnYdHgeKPb_zzlIMhLDznoRLEzNmpIJD5RSJImvCxJ3yIBCVV4siA7wEs3O3kjNQtK42DeFYZ8wCAuOpvgO3gFgjHCWkOA8oaO_mXB7vNMquW4kRHxtkhXXzOk6ZhC6Rf1ZCS - |DNQLTA75nxZCy1Z42EHJTQyNKjOdcbXf55YnR2deZ_f8N1S5Ra2hlhQbTvGSdx1ryOD6hZNsEkZlV2xzArtnpJzVYbFGE3KI8YANX1sZjoOE7VjZB8Qdqf_kmUwl68WRK6788sVTi4wE3O8vqd8JkHkc8AKDrO - |SDJmZJF6vxGGRySplGFOqXCEJfHx3dI3cJPA3qa1ggpWg_azP4Y8rj3ihgjMYrGhBri4bc1c42ZU_tpg2y_LbyuzweybctUgc2PKp8IpsGWASyYlkR0zWzjebbcWfQLroM9L6sJc8H2-J8xhLO8Ho8l_drRl28 - |qsLPCr5BPq5-cl7ZbUhDgFSo60h2vlhb36z55Iqr2BQoxCX889YsN_4G9S9DP1XLdOzRFB9ajktOKpfGZS9CVbcgXiLBtcRc_GUbHNvYCjrzAv9mf117WRBeO7kA7QAghps3xhEuGFKVcc9G1Dyasf5tRfTiQ0 - |saOfa9Tl7OQqgByOJRpGwdiUSRac7MVr0HzF8cCwmwn1hYKhE3C014bjxYJ7toqI9nGFs1qCBBZ6KJk1-YBBAnkAyYRFWCmZ8lRNNADofITVRR214oPjBwGzj7JOkU-6PR2bcqaTMLY7_b4mBY5ncZamYwwKE_ - |SC3WHg18bKSDWMaL1uU_nixXnAjyg44iWsuZu3MXsIddo3zjSA1HKlwUpExybtn7L_LcYCS7V1QS43HV36MkBXwso2GoZrG8L9MvzzlSG6aJ5AxOJI9v-64i-Adx9sgk4_dkSCfs2aDKg84fof3TnTxn32Xjb4 - |DQv-RCiuA8lBsrGtf9zKwTl7bbhjpcgTBYJLQjWUY4X0fJHxM5O8zlORHNPuglvrU0zWV7tFi-o58zmpXn0n7yss2py973nUrV-xTFP0LJ7cuYTsmPkP9iNApl8fn5wMth1pY5tFuVTEArQzrCuPbvynma_Eu9 - |t6a6xihLKIUYrlArVM0eV50BtMnNX2wy7l8iHx9oyma9oxAsmrVJ7NBNqmI6N05XzhcXfRAAjuixNEWLACQbwBps7XyZKH9fLA9OZne6j5dQ1CU_ypSZ9Qwm_dkwjUEAdz3yP_1XZUAt0ZX2qOqhePxt0KgDfT - |k9AVQf_x6NxvbMvGT4J5s0rXVz07mPpygSewhx5IPIe2bifgsKvuMmSWu4T9pgT9VXvEWbhdi1en9AXF6wvsFYBjoITXGlR-9aYxTxRoXhFzsJLkyYH52PHHnYYGJHr1jB3FlC5MDTMqyCriwksGji-asUjHHa - |ZOF3IvJzqSWg0aYOVE1WEJtBqiv6MQ4VK4v2WlUDPCJ0I4Se55ApOsJCdj_G91Ty1aZQAtwczHBnLECEGUYUDwBTfpep6Xh0uHz347tAZr0_KRgEXtLM8blduJ8wb79eQon2gaQUUmnqfx60zEeeCTsy9POs95 - |0L1T3zJADcqLgPC2egUubGq""".trimMargin() - private val testBackupString2 = - """z3oX7bHsxWW41fiqX8E6UdtuAM-yjAzLCy6KMgT8R0nU0yMwXovvvEcVF1rQsMYXHK1us65_1D5W11a6xHAFjTpG2tm7SULtHHBEeI2vc0QKOS9F1Wmvzb1FcuBcC3mijKwFTI00oKbvfH_b8egGiwg7r1H13u3RL - |Uuq0EzeHkSn18CaB6zMgir9wKOZ_jIas2iSKxFG4Pz2_e3TPWkqAG4E7B-KLg4QJo9-vC8duIs_R_dCEE2iJ0hBJHZTT7geoFNpFnaHtm8ceEYo6vSu-8EmQ4gQYfnmovbOL4R-B85WGsHFTk3LBUQyp7c_zDL1 - |GzE_AXM8Cywys_wkCnUOyCGxo0_-xObSyrYnYh4hAjQ5UlbGC7YsXS4RJh2a05dD5QXwCbVLd3xksEM7KticRPm9xlQPnUPXQO4wsWgn15GlIzFCW4k6Q5POBedkugy8BtF65rH37CgNVi4fVKsyq3FehTo1UzQ - |DcpL0PABnGOm4fu1h2uuAWwsE7PAb3UhTa1z2IoXEVqUWpw_2IBESfWN5vI9Xp1o69bH5Qnu4Y2tgGEhKLKM_tsOW2X55hA1uZFvzvUoZh2cb0163Ky4PBMHjXX0q5thQfNvu0B1EpW0HetmnFQ6lDBq7yxq3kY - |75fESWLmuOF1D_0Z1Jl2y5PyQz-QlxGIKFTHyLo-cqilTpyb-fKb1t3vMIFfFBy_V8thlT37OVC6ZYofYtt6_4MWh_7T3g3-LoWOVN7ZaJEvqRtD9odUDvzfFc53S7LtLGgzZegREfmhrSDmTBWD_2wq02srIW5 - |AbpO2vgDPwnH2r2nsrG8dyXdyBN3gXGpnv9c1b8EK1zf7VgjTdMi1TPFJZSCfm8yJHN4hFVsfUznfpFysQdrdvBIjxT3ZRrTwC64IE6TDa8xkywrILRzUZ3TRLOy4rIfpWoAipikUqfwucGf7xiHXJfDo0WlW4r - |3uB3e6nOhWKlXIGfTXHFNut7VjdKxImfHk7sbUPCkLZM8DMroO7QAqh0XQkgFco04LP_G_CM4LSHGRaa3TEWvlNInd4w1iiNNNYYhVIvkFNddrt2868SU4Tqn74No7p54u4JLuSxFYEgEJ_ug5HgccAncosoc1n - |vjwd44uFfLrhDKvO8hjHfXpFMYZ4pL0MTVRCZ6i1k48uZ6Lk1AA1f2oMtiYQyNSDxcc69skLxmWgEmRJmuO1dUilgfeXS51E3EFFnyNF9g9kY0GWw8GVfCGTzTby760z9PR-aMHd_Qd9kiJTbl1RU0VIWl2PhhL - |Ji800unoJlftlMhiVn6uKwdNfCM_ffvwAAu-t_8jkHfzvbkWl0T7Hw4pSgz8Xv61zNHMOLV0tyv16yeh6HWQEc4I-sFJDWW9GorvybfQBAvHb6LhpuwmEVk00ZZ8cXYA3Xu2Uqa2d4cB7hdmtkBvg-8WuRK6h-t - |WI8OlZ62wYgPocwHkl2Qh59OGnVknocxaLJ12fhY11hbZVctr-oLwfAgDDbQRD3rkRUjhcst6Mo9_QXue3OmObuFATL0fnRDkYmSB9Cpu7PSZfbjsd0bi2VbZjT2fsxzYOHWTTJ6vcP9YWDZKiywkBixHOXivCq - |zJdGLM61dNpDGav-hRdrvEwIDui8PmLwHt383LDM8VOsGIcY_ZvOn2V8fY2S5IgNav-ITCn-hO0bjAtgourHLraQrSZoFeyX6esZQV18x35S3x4q4epc2RP9obTui6or2fNL9XqYTYDScBnEkNIiFF9RFZIYOsd - |6Xa-Y9CCX4NQeW77ydoim9NxX-cN2yihAKMTML-ajytrnx21ndp5M3VPBsJU6e2vu8_SUFxigzjC2p6KK4My_StTaS3PcWBHPryuoPNrCluexOF6IScaKALNB_yOTTxuJmUQ78l06PRKaXzMLeLoBuQsAFzI1pP - |NUTTOLc658t1z-w8iYnfYZIlMjHQGHZ07SHxooxp-l-R1ht_5YjiYf_EWYbhWRofw7uj_l2lKJOf-7BoDrlOqRS7O0j0jwUveNuS6arnPBW7u5dtHFE8AzszZIcN0_G11P4OjMjpo8WqaR9j06QimkwibPQby3w - |W--FsqYnZVF_eVAhA5DZjc-WnwZJW9m4ZXV_4tbuzsISNZN-JRKZZJB0GKfjalsAVL6r0nJHiQuEx7KpYcbMFL3LvxfmlmvRZiFNgy9uf9EhdGmOE3FeFtCQgfeNddxTTpVFSFrsSOcZlNLevVepaaXSrbCIVt2 - |wnxeYRKIji7ZN7tjIjlo8EuIo9j-Oz0OswLjAja_cSvGx0xPD6VBhfmlcQ72pFvFO6jCn07sSixkxx2kcwdLdk8085cP4AcfMPizWqRFCNlZ__d0RtUZHalrWklnJnxmO8nqUNMCy-OmJl0C1KPkXMyq88WcrmD - |irssloFckIuFtx5RlbYH4nFMVF1j3F0-eO_vh3JilR-9YlxFWEAx5rpMC-L2KSDgI2wHBm0cydtK8PhIn0ri-LbFDLlbn0YOUT-ZaPOJNWvhqVbF-DVhRpkMG1YAZ7394RYSuMCBQ3V5HRHxmaXjNO-pVShuMyw - |OgyTnaDabLnmXev19EaLa98M3BOjEoo9CQSPaK64GkYteeSJObK1A_3_e5x5W4g9tgxG9Xoma-CIuMVNFZQxcy0WfpIKEd_7f9KKr4ZIi7Vu4iOsE6xPThLbIfGJ15n_Mq9cXF86LxFXal9Co-SY2ebMttvBfN3 - |AwS_5ngAjwCkCqFausMxfuzqNyuW-DW10rDSJg6-Pr7AqEadqTbztl5Y9sX3oAj8SUQIFtqDC7jbWBBdg2tFcl1qj8ATR8HTySowLNirG_bFjXqC-YwJpkun0GhU_-EYcb_OC94z551j4NVqsxbnHanP8Q05WGa - |H4_4YKEAtPNG6tqMVIpxNTMGTAUZuCz5DPSxN9abwjgvy5pelKZa58G4trZq3PdEzuF9eqloit0BhcVcrs_CRPZKwthF8rswvWsqlUhJ92VhaF0pu1oBK_hZ-O4bK6KmHAAu0yU-YlzeLK1wjs3uJq0CtJsG-qN - |dwQQUXMeKQq2HayrouiN_jS6XED9F8Inn-oRMd66oJZIkf7vFQtWOQcIS2aieldTbmFT4rTQDRCPgEpIxt44aVLH03RthgDSm-NMdA09vwuxlurXl_tUEKT5sqspt6R-Rz9m97gXmOqLO3-fVyv9jomw3AaxxgC - |yVi-EZfGqc4i2P0ajglr3FJbmiNoYTNxbxVbXZ-GhgGskTMUPt9xippAH60U94alm1PPVTH2_6ulo6xzqzDKJvbxWCOEW-cuF36TnyYqNLkt3NMwKrNdGstU4_Sgc5UnXz7YjIcE6_JmYkN8rKS0NTAHdodhVnq - |iZyg7j1-S0T_cWJ7y5i1aLX7LVvqcYTHLppbUigkbswF0moiiPgOehn2WeS1xobfPMr2PuRMoLYNkQG5XOtgodqegFkWtpSXfxsH9beon_bLvupyR9-eOJWL4r9IXVJYc9yq0_NUPRtaWz4c5LWsxGKfI60ZsLH - |YMEDEYfb7ONpz7KtQo_pR_u1tFDgQTz5GQMnWh7f3iihh-vFEymkWxWXyCGRvQyzKbpck_iH4onOnt_Tt3s-u34gGMBS-vBWINGq9wz1YPtaigb3gxTnTTtRQPT3dDD2nUVTLAxvdPZ7Z59aVQZ64v4RplFGs_X - |pbXuFzR9Xf9vf7PyJKD-zQkFoWtBohs6eUoeskQrnWpTCNGuWWgwaRqCOwVkdYZZKbEL6x6IexrjJ2z14y9bLjVTj1juYjX9y9Cs6iFKzr9JDnKADeod3amA42wS_FYynylG1cPdN4pQbfpucwOuR5BLveFs733 - |nWek5OZtC9Y9_02ozBmPA3-Lu9fs8aSWaHqeyoAPoVI-0AytZm16QrQMuxywWrbDpCLG1LKoX5dNZEGCdyROgSJ1PgGe2pZ_1IyWFjVCFVewuDYOUpco2T93H1zmlLjAekSwkdFUTW-fqQ9_XHw20JSbJCQZKmK - |Z87yosXzeCzqGcMi3ITqAXnZvkjoC_1m-6P3f9qpiI5aiC0ENglXUnX58elRDKrKe59nDlsnGqKVAMEVI4-XSNeL3FEhVsFKVjZ9hQIPB9_rN3cgP71FEmtI3cJtpFMCDYI002hKc2mZXD5on5IvCCP310WkT5N - |P021V9KVR_gX1rfwE8trTEN3QDQ4fHdaeOG8TbxTEgRxERWElVLsYIDW-UIZqGu9Ao8I1RKA3dUWeGF56skB33xZcRSzi_tnWB33s9Y8ON1CpEx5Q7ssDmDKTHM3OcXXjMcQqSN_Xn3YifY7aJ0iyDhOecYiIgh - |iZDPjhtUZcup0jTVNC97ALjWhygJEit4A8eM-Ku3rIeg5fjBLRvgTEWJVLqu8RuAZ68zM74qzCSj_q1wLtLdBCD-1wx8K_Yh7LEyW0Q18O_wXFNAIUg_b8yR468z9_joyVNBXwh2mH1x9EAPXTW6RSGO0mGwbG2 - |f6no3a9XNUBy1D-K4CknH55EIF0d8tB9T33Y_-Z_sgWmyGfU9Y3JNVXPju4ac8N1tQ87VmYWbW8mSGssMimmmj4K9A__9JA9Uh-GTri9ZMAEEjLAg-W2Db8oMXRKVPwbrEoK4kXBL--Ut56RF6ckkCygyC_W0ov - |9YPWXl7Q5bDdZnr1gq4YJBfltxnvut5YBsU6fz9IsqOCcMBjj7wZWXbajr5qaPnT1VR-bSOBXUTiqcthcr0GAGT25xdffU4B69LCoRau3qvCzq1uI2JNsJKrSfcy3bGc2fQ9HsKLS8MhzIynHojDRvfkE1MfY3L - |dCGl6s4VkQsJiuL0EqAH_-cM3zjOtt_CvGuf4FQbouxMLoelwx1nNjKx42CXOtdSEZ8LuQswrPH2GH2MwyxMom3HsoZXBM0qz9PG-yNDtFhiNzoiDg1l-MEIAI838B-_PAMWUEi84NCuxYs0GwYYC8_ZZcDCwUA - |vw9HDDm6kfDxL35ZgYKRUimpNvEr1E2oJzefKbMTtC6xJQSr5qXWjx7ZI4Yj9mVP5A5f8swoZ-B5lh_ahfGao5ZX3TVSbvmUhRNYNQ7OYuQj6ZyjIck6Lde-BBS_6BDpH_DbD-QOskcjjZgfVfrPQ8F0m56mn8J - |VHRDblFvsE5rjKrsHYOjxDbd3sghg1j9fh0arg8ZxB-GvuZu6yaERFqmcAGtkyjeteIMZi69YdnCGxCRQ97C0Nd95_hGYFxww1AxKRxg_kDdwlVafOQ4DpqwLyk33FrlNw2g3qm9RU_gW1-M1AYr4-pjVD2oPTg - |5eoAOX5YgyvoQEMjh82H_EuHf6JwYqO2QJavw6BuUMMs0NO0SV899IBaBLRyxshSNaYPtrI9rh9UWjt6JYe8QZdWHFSJzTQ00GD2Xrxgkz-Op2t0SP6V9COOgwcWSmTCrx2giC9nqC6PfKuSxO0GVks_17oR86Y - |LBCOokoRQKmF1RbuWJ6f4QMVb3fYbR4tVCRAMlrsOLVssRg9enc9vkGTKIkf758WL3jCM0ieVeDrI-yXzbzgDpDH0d-gvqe3jFzoplzG9EucHwGAZcvc6FIF-OENrDUT5jaHWiutlEqWrcOd-PVtlKmyrfjugg8 - |dVlmL2p2hRE8Sma9q7MWEdZTpA9MYb7NEwivhcXcU9VBM0NjMjyFZaVm8d4kpLSE6mH7-HV9W55KIeltNK7nHI22nX5XfvrvYW0DzrU03qOE79awu7RcFvH6Tl-UlfB9z8IzO8eKccPs7nbPJiCXMYXe_FzrtOC - |GmsVPjUZWoemT8N_V30HQEnzM7wYL019JnAwX0PUmAGvfOkM_Zqtk88435gDn5zWiV-AUUZU4_UQZ54fKlgK5LfeugfSm4KLH3XLk-vOhxFo8NoCpppbOfEei8GD00dGRiXqWFiKt6YnhlgHX4JNBYqjuaPQujG - |lH3WIUmkXP6paJuNNagr1Qjt38_cU_ek9PSCO0xeLVsoPxYrhOVdCEJjEdY0kyyYjhQVALhpLcjlA6fJkTN9FTlHFMxlyudsKe92H18j11N4vEvAc2rzFd9xQS1C6FFL7FjYhmPLbwJnGGOMrMslzdsqQHx-6ba - |-WLBc9DrZ5aDsByXGR1OF6dbaHLFq34AwBnqAQkwWi0EaDor1Lg-qjR1ejNUyJenwCtV6AKHCUeZg35_MuzifOSgYyQ2z81DrBR5fA6FaHKyWxx5xiU2uNLtPyApo9UKPgwMHJLo_fPBYUweQ7AsUkbwoA66FcJ - |O5XgF4WAvD4nAfw4unsz8joeD4HW25GGhXM2cXZEHqBvdHYH4E8VT7AJPgWYk0pp9Syt5uCMFZLHSZQMr9h8OPgzraZNSY3paZfLCP8DRGVbtB8mMnBXoop2jFrP7RCn9lJHlNdYGM69tJ-iMn2vy25PnTPVfTS - |N7kKRwSbFLekeHUwphXcgXHE-Gjgobbq1Pxz_8n19dfGD6WzaP5pD-22_tvNNdMGtacyt2ycmQzUV63BR0qju8SvdRjb8VoQjd9Iia5eTBF85QdW130Y1Q16T4sZZQRq24ipPzOwB5Qi8TighZIYFKlVvLT8pba - |vitCHLFvh84YzQqfAJDoSHU4AsVxGGmxNA1urbzvlWdcvj-6r9Z2pJwEYvhe-PjXg3e5Ghv5jWGL1-FnwIHxNABQC8EK-sLzWI3cMaAjsGTnKE28EoqQVmebDbyyJlnc-tDoJLQr5dKyRDapF_gIbfYUYnQc6hO - |OrML-wtZ324k1qtai6fCL1z-gN34P7KQHrna_Kvfk7kk7RWWaoFEHNhx8tY9DpT6NmYiAKp3o4ZspFTtnteGETz-OXnz4KGAxHdsGm8TeHhSL8rrO-ZsHJKasZdy10V_519gmAUBqlzW6p8JZGXl-SIQGusGlTY - |MSbOdgxpXp7L3CFsxHvUWUkTHCcCl3WEMn6nzruXANuP45s8n_Qi1dTAkSE55gNPvHtBDOTJKcAoQmkhy2sMjXqAnqayu2I0VccaepIEfY6A4G6R4UGGcUuWxWTbk9udq2qYog2yfEvE92WRvE9E2v5qz7A9xAH - |QXGzQBmL7S2DYc0k9DoA2GOzKs_YKkhwdorvxvxmTgugky4jAXsHP8J5z-_yZRTTrlWjig8Y-fAoBa6n1FeDGjqZIfmlDANTRx5Wec7fzNBsTAv8QH7CNMNn-Nuzf-fZJhimKCs-6RQjpniPh4zyLvl0JAh9FrP - |qrlcRqxjaJGOOiGnNrC9hJCC1ZCkTCBf9KWYXekjN4L-VWgJfXDlP22IrIjI6CmoC6tg6um4bixl0qBfq5ozke6W56f8Hw2CB73j8IP3lVrVvmVmqMNWKAlqsyQn9Yg-2-McoTh-LHYGYQBHXgwTuxZdNz09id1 - |VulKVeg5m5xGVOBnRguV8VwSAiqqz-AHcqw53J4ZM882XFZB1HK6p70VqAs4waNnTiZy40Es-i-XTHYfmSiJBo8AsyHMsYj7nXFOntQ0riQs-Z7ce4aVMj5SW5CdIMgEY8398hgZ6M6I5yoy8gQOTRWIrxl1i2X - |g75B_-ZjnYAPJ45MUxpu7N4YvGW3tRzEhl7dDYLtMEnWCnjmjLGQsScYAli1UsdOm5UEhRfraFfdCMeE2A0bl7DBiDLZdcbBrKtZcTwRlwPXfZ7ADpZ-6ZwvfkP0Udg-qCV159bO6TarrAnbaPcbQQK2pjr_xT0 - |lEoM8cbEPlUw3Ua8Ybnrxodm6fsa7Gtddzml_xeOxj5S9XrJUoQzVq1tnp1AiEwAv1DYxp8gFD3nYPpYTfnRgPgMBy-Tj4yGSlIBzn1gGDbou5Zb_6TX9c8fdoyICCd8UIJxGEofAggsUK5DpxIQvIeXCVdcpRj - |wwy8hbFcDM_5SqLZs0uH4QZLYTha_nWnI8F1onJcp79lYaXCiqNUURAXYjsAlxHsIZbuokqZSOy2afM6M7D0GN0W9UPn0qQWGo0oh0dmC9RuYwJkDonk8LB9q6MBFDJjCMpQGjlNTaCxx0cxEF5TWEvVK5PWajF - |OZnFZkZnuG2p7Xkr5eNjRoDyCQVshOlvyD5oQuOsDcs3NNGJ50ZJQmkTla3OGgJ0Ysiyfx3HfNTwKZOGnjz_0hhIEZfwKDhbt0aTuGCq6WYZxj4etMzL1cNiw7wxs_nLEBUesT3RDoPyxdgQ0PwVSjjOg5dJXQp - |2UjNyplyXtVnjGbNY3crXrt7D8CI7J08Yrz5KUwFCL48yg2vAo65cTkDIdns6zhfNnLjiQ3bI5EiOFGYrsnKyl-lvmXGWdwOFgFCzgjWNn3Oky2v3_lJ2maiSxMa0YpbTMKx6eY5_U6dQ2YQTQs_UDu7FgM1zD8 - |RwkioFKUMO0CnTt6vQ3lC2_yPHwn-W8oSAGRHfRfdo0fy7RAgtNfIiFPd_NdlyoE_REmbQ714h7wWxBMREjs16HOi7v2iyocdRngz7sik3Ll0CSjosNR2JX2pGzNTBzV6gGTBbGAAmDQnM8sv_H8UbFNNNOtN5J - |zdonUjDzwbd2T8KxDoOE41lBz7JpB-e9X3Reehd5oSI8JX9w3XhAq-GwEj_GzVUjwbvhArX5c25HU5jucAUO3prR2Nrskk_7d4k4ab6MyHF6-OHCdLegtlWPVb2x6XVaII6oRugEGX0Zdo2vOcgMzw6_MZa37yI - |evjX9RK2rVB4okeoun7oJhAzgr0P5vz8agX231xTUqGAjQrTr1c8VGZ7bt42n-jpmU5ylAmY8xtOPCtKAJO4NjTUFI_iuvqnu0xVZDQPwHwoSZ6lx1ZdXpP11ytL3M5sr779GXYlRVR6cZ9sogq49HrBDa39abz - |uWIjdWqrBc9Hzot2CvdMLcSOoFNBOMWHu7Lzw9YiAY9vRHHyk-aRXQ-7xf0AIDbFwNfvEOd04MGbqMP6B54Zh_KrjZlg2d-QducsD3TZaQ2DxzxRkTePbhjDxewhyBEhNMTSiMQsY9r6G5YrL2pTGMwwak542_P - |-REoxfmmveFIbTptCHPexOUPpD4yCe1VFAD_4bgF_BfMw4ko2XJXPhXeuuFbRgBp3D_PNUGh1Sq4OSXCGLWJm9YT6LFInhA_RF-JPjFfkHsL7ovOq8OA2rbtkiSaowmBRZunkHAnTrV79OsTo8izWY-ga_2Pczm - |kcG1XOF3AtVsn9EGZLo1P0wFtu3R9Ee8ax_RmqUqtiuRigcJONQLy2uz3f0SvzXaMLRoFKUdRMeK_5SXrLqNlTlP-DHTdDc4tz4IVyrVP9O1SpbL5MqPI7X2St_Es2AOsopAcKRe39F0s-uHdlT-pt8qWMqxJ_5 - |Pol6P4ccfn-JNBkKSC2a8EZCNM8xRkA50_NrfQxJB9FxrpW0KCtM0vhOUnUFi6RYK5yhF4DXf12O0v1DPaL4XllBgrHFU1UcfJ90gfIJ3Z6OoHk8nW4YylHz0IQ7c1VpolOp24sKfzNt5QZSx7M0F8IizyysBA7 - |vP_xVsAptPYtP8AnK8vGA_n9706AhWJI95GQdm60VAIM17YCt1KpnvcBc2Yva5uN6z3pun4XsyvVihfXCiJQTtRqIO0Pz_tgYx95uKH6Em3pQ7AG7uHBuqOwCs2I0tcmp-wDGRAJhDFEiQS3poKVZl0OwtRHpkN - |Asad6W-vtEN3ebzMiojfU-gTFem7_VJBO4qRLESHHeh1wP4DuvkdhsK1BSIp_IZMZWrZOKn7vAndYkOBePrInvJmgU7h8syFNU635kP62_wImiw4nIiYkEnq1Pz75pF1KRXDktVVaKnGL9EF5MfpruwlmVlFUn_ - |BMMlYZS04U2hvJ9k90hgCHUmeJv8VtXV1SOgQG4puqi7l_WJLUn9E3xX5nFYDk40fKJ-UTeLj2OG7Me8ErJ6O06HnIBFwNhmedqIjnE_PtUFSzlFuF2j6UGTD3VzSmMNRF-FCO0HMB_p-Y_ewiFsbBt8VLpG3uV - |zdqVb23kbbskMCtPqUT-VUuClrTTKRDWv8nM_JD8baLIfcir0hxRHgU49e8q6CxPz1L1wnKR5I-kk9-Nw8FojF0QNxnfMYlniuUvcZZNhzfQ1JpI_Oz2lSbIVUqiCB0Tjy-xEi0ahWoATIDkrPvU_QlD98uZ0mJ - |sUkVt7DD9TZVjZVdBmdn99QZ3LkLaofWIUAu_iz1ZXw7KeDC_NldExg4vFCR-rLPjwuIE-VV_xe52_4hMsee9Jpe7XW6f359JVP8ByCwzs4GYcI-nJjAE3VQUB3yONlx3ai6RPNE252yPvsR-NQN17NdLiteHla - |gJLo2mxbxAoWZokxIk46ZIB3paJ7DZ5eQaUwJ7uq-10I04dXIDxZ4Tp7uVY5Te4N1RM0VpgAmd6oMrzILOgBB4pZlZHS5I0aopLi_FutQ9DBbMgoDNDcDefwOjyujpxZvjzLGH_g9CAiUytka9AWPDw2zGbi_9Y - |Ogpdsvne8PwdQrpOH8garUgQAvfWvGzet8CQ1cW0VlTRhom-PK7CyKg2xDJlGuWwtgTv02O3ZbeND_zQzD8eMu87lGj_bxmk-95wyFq92Lq0NiYziaet684YaAib7hRDlcFcb8CeTptv7K3rx3B3phsXe6p7DeC - |eIg-zlyO1jLx6ADSDxxRevVsYVk7LoWNehTwp_n89j-sl6MrPYp2dDbKrnoIqfdUtDhiUJP1ID4q5Ibf4n3yDkRDvkrtPoUXotzSs-dYgEFvisM_QGBwm6xrfPFgxLg0XaZLZnu2whwoPuuOPLYA-iIbakg6oRO - |_nzlw5K4HkqGBD2TYaV2nzOAEOrwqAs45Bw1yLvG9HWMglPmvyg8aDDztEsx2QtYoRZ6jEYMf0l5tdyiogPc6ME1OLpyEScJH4EkC5XbKvcFe-ltytGQ-tUv_nbpwe_o9cpqf3M3z9_BtshuCo-Afz5FgVCojya - |5nCOxr1UOU3J92-QnVmbHXg002qzhW-9x-JP68yzYjY1teMJiXDHBkq2gvhRbuGvQ8U637klD3wgaqNoCEScg6NMQba-21kfKysTTba3NIqT17B9qYsyC9eIgwaLiEM9VWcZEOFjmhwz605FLpp8VSmgLSaBtRL - |2WXoIoiXcx8jbOBC9DmaU6_IZ8sZHvkGx25ygkG3mO_VSeKsVhGup8s2Fja8eFi8a21VTKn-Pj9aZES9FF31hIWLH2o43385W5-zs26nOeDUMWCl1bPqOkIhERx0udq00A2EdFLx1NLtuMqUYAm1b_6w_e1E4_1 - |ohRoEJeq1bg0q7OG2fPo7D6hwGT_6TWe3sQ8cjXwJf-vyFqqYurp1Zm5OnsrsdH8UtlF40b9nhmio_3-PPduaiQwS5gGeLft4ZIEw1aH7-PofbCt_Y2KlPnirbgaO4LrCMLGy6suCWQQ3offrNLgP5VuM3X7iyJ - |MRpXoQayPMtcUrEjh8FNfE-1_Di7n4_BgAkcRbYEYkibzVS85tFUK4XaAv83Lyo199ov5r6KWZmsrKOoK3j8ADrdB1hnxJfAZ8ed0WbXrBuMAlZ-NoDF0td1-ALyxwL0DKBMPenPqhWDCoRIpxiym5Wi0AIpKY4 - |fBm3o1D4vKCZDMelwDYNt0HMJw9IMtw0FPRZTR-xTso8pjVUWYyx9NqfXEGHlOsRm4r64hpv8GIpYSV-k07mn0jGmQIOfNc_fpaZYcMyMbmzUIqQjtgIgRZItbSFZaWoB-ZUP_NH0nKC9srKyW6TKlh0INWcncv - |8VKb4j5w556tak5IM9hv3ZMyYSBYtXrqb8WKNU6biev4v2H_3xKJMLhmef2YLminBPasTLEwrIWsnB-4Ir4exxBXOtD9nhf3LPKD8yXziYEqq4Jj54WKznpATbhgmriAZNg4uu_lnwntHN0EJ7PoESFc7Na_rjV - |Q5ySEGTK5XlJ9_tGJgMSvOb8AnbxH2b1VXvQk9FbpS3WSKs4koOAiYkmFf3zwB-udHnlVj0JrQOw07kmVncer-3rc5N6BZ7nV4LwUUfUNrwUmEqkK0Nd8OuCcYGzPsIwfn3AEJQxPxSr6Qua2xsciNJ9NY1pIvX - |A4N84TtDHVH9VpQKKL96W-mItYfKDglmNTekXniAsTkdYvFT-24YfhqfGCiPc1EHKz8Ck3Fa5etourd026juTbvDuCtbEkYrVNTAQnnRszp_EKcJJ5NWzSnEvFhnciyJW_Lpc3C510NvWwyB6-CnvSccntTl_oQ - |PZjEBsMsYppcAo07hcDfRad1qiDI9BAq9XkhHRQIA_aKuIBP4YP0GTsTArMfv39NGGuUroBZyY-yHpYLs-qoRFXW1wYa9lLXMWPrBvrzBa2w9RT36KbnjfnhgCYcUUenjnYH_xHczTZpXN3DuCyoadfBOfgOKHd - |g4xe9MmonxVGruxQqUdFpI5AEvEz-cB0aFiD90Yg6FydBuCHhN0d9E4r2H4a9t3_hyKJkj0N8n5aSqnQPZAmx7-HbKNNJUPDAsNshsfKfwhQUX7MgNnyRpzcaayA21ZDl056WZ9Z1QSbJQSFjYwVp8Ipz93bxsX - |X7nRxdvjU9VS8WA_4wrUR445HJCQ6vDiFaw3UIDzsTEqjrsy50qChCcKTy0p5YhcI7Zbav8TDpdOMLYwfIrjqKCYjTjwXZWTcugxIKaJbpLPRewOW3Ijues71WF9mJdnxBQIxDiHL-pYOggMnB3zyrjH14hU-kj - |ZVOT6k3zkxN3XeEfkODhySD-lqUmIe_NmiWqAvUvU7OcAwbLCUysinjGS3I_M4nBPvA2fYP1zwzHklSQxHxu7zamZWMSZqVRVTeVpb5YK6eI_It-vZFtbRxi5WFsTwqeX_ewoQcDWU-s4IRvmecovp-6C2SVzPH - |NLMzE24m7lx1Lo1p8Fl4SFKGyYyC5YbwBoPD6XnxDl9bmXQyKN3LyE861l4SEvyR2GxXJtdT2bvFugY1rWeX36EOEmCaSAKxzS6dPsACkr7K91a0PoEh2WdV-uyvUyuAIEyFOLedf5FOPVQVTS7ZNptCh-cmOay - |SNmVDz4H7dSHfWJMWvacE08VFVZcNlErix0i4UVnC7z2D_pI0AUE6a2GQFo1oSzrjqYVY8NDIMTlDHWL0AhRKQr3GdIpPlsqIlcJcZpPKVcpG-bYNjQLyWgV3v_uliVy31aqGr6Ze0LS7yRQqGReGVCljE0W7PW - |hgGjeNgo8br_V2oFYqCIMY5tjmqFnNNZnySVlSXRj6GqZu1am0atzK9F0GgljEeOAvwXkUDYV0ORyC2u3UHyoyRXlnFD6n_duGvdhiIQ1yM1nHRdS5FHt5NgfJFPkjXpIqUo6Yeme-aGS226xMHA3QhwYOTUB5r - |TTD7TfCgNrBqEAtKuQTkf1x7WaAV8xAY66bgJMlBSlZ9K2gArb66HYrLhBt4wSliFQQovWE1OTdyAO1S56BiUWy1Tzudv95120ql5sbmatWLxO0FXV0W9WDScZgQ-MBx6nh-pmsbRwvRM3TCFggUsFK-3M1wp9r - |bFvtw15U2Rg4If_oDyJwXUIC67PwvyeenAZSzADfFwMRlLmfoAKR6bJQqeb78OXSeH-rQWGT4wrDHambqqVOn4n_Gq46slCOO8aeN180iRZ34KBsvxfi5l-96Vwb704SyL7L2xtnSTSnYGXiXgYc-LbAPlYGlGx - |04NC-eWiX77pjPk5yVTR-DEiO_k_EqTjN2FxZKpAiqPVeZBejWIEpq_TGLCkWScUesm-Gg6ZkUzL6pjyDzlPfxY3pPisBPXaMdoE0bEC1ELvcSH__kQ7Qtl3W7fyCoFkHrGGZ7gWerZGryt5rqLoMLJZy3_cfAA - |yzbbSFIoMBvpD5jaM64HPKIKu1H_C_nud6rT60Qo_KQHd-ZzgKYZU07pmPi7z6gWqhx9J1qKS0TId3OLMN_HcPuIQEOGY7_y4JuJknDhBxVw7IzbV2yNvfbxKLeYACrTwwOK9vyAHflaRjuLRDBm7RCEL5vAqgr - |_dvBljqnKRW9JdX6UWkvlvj3ntFeOrZfbplNStyZtmTuRgjEc4FGr5TJ_OoUryp2T20vnwu1PxcZTAQC8lfwZNCooEk0KQS7GGC_KCtVQldRzpEREfbTlTfuECFXF5UKfDG75EWWl_TZa2nd5_-8okc8LGwEqhW - |s5LJwrCo1UYeuVHWkC23GZ5uvggJrValTu5ca18hsb-RegRo6a6gr_pcxxusaT55wLYUbdVZmpciLg8m7AFAKjPqUvWv8D75HzFR-xRTDZ-ydwMh5KfV_DGhGW23arxr79j2AuFxZUq23W9SuUiBfu2AV_cmZuU - |sqzbYgsqJWJlVOFVtkgWy5wUgbbrgN74oRsL1D_Ey7B2gGv2jnCUpyxH0l_JoMx6blyaI9bRFZl7xMtGDtZPSakStZpHclxMXT1q0HsWtS03fdLWGhbnCb38x346OUmUCWa2jrbBGGHOnTN6pBEJs5JEWZPNtro - |rHJ2tZrgtlp3sOgdlI7C5hbE_xzapDFFSnM50Aqz0HtYvSfGEzdGdwXnySDzX1tVU8O2w4dzD49HvTRJh6DOED9953ycASXAwPBzrJcD-BlgELB3sQuHY9ATJ80W2Lj9_-xObiu2bD_TlU0zb8Sf70NQmyLgkWJ - |u35mOXIKgoAsSUZYwPKeckuPG0QC-UsmVg8z-g_VN9QmKlfsOlLj5Z5Qw9gjlwO-6Wd0VyIrhZT9RNSzOtNRRlu23DxAGwYLBn9TfDDk1IVxBJK-2N1ZstRKjPtQGPkdWOCKWKE_GPkvIa5ZyDr4XQiQFAnBWjE - |mr5FyCXe3cTcE-3jNnuHlS1_zkDF5EYm2oMtTPdbvZ5slG1kjEFs8QDmjsAeOga2bwVwEI0oTdATeCRNbiq6hN0sgPb-6ge5qUHgSoM0nsyXsbfyDI4S38-KHTIm9lhJWvPkP56BpUPEEn9DEkyEixclMwgDCnd - |7cSDiK99EDd3LJt-ynqSY77E7OznBmDhFS-t-fQIR2e1AMZWOf0D-JYOArR_plmVKTyTwI-awBa2X15wI-nL17jIW9oBH6HbeocyRRtNvlxqWy7DYROi00cWOwd7Aoo5Hrz846-_WLhjCVtXSiBrKJ02gNNGs7z - |JyiCQBJukd_WqDS9wqJ_2exoyztqM41Rl8eMQ0jphk_PPB8XvctkLe0htXKnQYhHV0NDk5BRi0bsHL5eex7u8abMUdfBVbkttk8ThsosP2NfU-8j_lAktmJ1tV8ocZspm5HaWp80Dw98dSsYFhAjGxyiWhRjjK2 - |6-kWUb-0W6UYKkxiMhVFTOZKDmrPwGdhS8qUzVtDDHAgnPcTYffdzfVj2ngbifu1Md8F3ZXdh8_kEMGhECDbs8RuxbRfqfWvxtJPNzVnI7lR6cd16mq2i7tQArr2FVNmDvaU3APLR9fwPsMt9622flseqXr2Qvk - |QZT2FwdLwqrctBvHFK3mGdCqzYWfxC_KLG-BdydomdwM6MsFrdZnXnOdGz8b3ViS356U4_Gnipi93Gp06M7nbrLKgd-r0UIzRdffTMDs7vEWghBYSJHOfWMiGYh3iAxQieRvyRJrwewjSKqtzPJTn4lK1nnyAzV - |VEOZ9fT2np_8gmkweyP4ghu11t2RDumhAhfJc6Xd7IIGw_dy0xnn2Z3rznnXL_Dq1mf5-br4gjQfKkpd_dQkd0W9Sloiggi9c2ssPDKg4V3mPlqkrO4s91hvMXNe5cR3DeUT721fRwAcC5zzZNHpiy8UoXe_Lz- - |Uh6iegJcUDCAjXUKr4Is6bTbeQtCK3FyP4dZVBR4gPYJkcg1JxqEggfS0aJxL068kS1MksYvpMtfMBeWWRe9-DSOfi3jh9ITOBT9yN1yDYrB_XkERyGLpVlwmC4AyFuTTwylsrga2GtWN6ib05-04dvN11g1q1f - |HBDs3hayTZGnfHQt-vJ_1yXagiqjvbDDz2KYgsG7VidNh2N3Cxyo52jEMmekPvtPk-jxTzlPBpDF-MVl-EGeyl1hUkW91csZYSji6IV6Navixe_uUoF9d_HgAf6d4Y7Eo0JIljsUIs5h18wRDkPAo3NU-6GyqHw - |Pjk4Yu86xqBdRJRcTX2vJt9QQo4QFJiQUQwN_qHl9UWoiK8gaIdBq7Q67yZ7ajhsCGdCDLRXue_k1Dpc7IgAZMG8zQaz3L8K3rkbVTXl6Zep0nutOLVObHmcPqJgPnUjPNtR8tfEdNlgqSoaPnUZVsdG5i-A42M - |YOmGT4vVOtWB3jZh0UMNpcgauUQVfvxbei1kIVB-IDuJEIlTc7EW541amNYqjDkXYbeP8CgiEZAQrdrccXusGoh3kFilnC6oek6zq_mVE2kXnCOlFw-dTdrn2G5vERa2fp1xkcJHGAnOhl0eSNAADONGuGI4wrs - |-rM47dqZXviS-SHHlQgnl427IXlON0bippo9L-3FM5tzvTdU1SIbOP-frCFAcDDqZrheNv87CzIRBgcMyVAekO7VaxurqGVn9mCKooUeJzYPNqfdRKFcmZhc83j-N4qiAkLueGtuVSwsMeVFTVmZwypYY10II4S - |D7SRYfMJ3kKAB9qWKukYLpF89cxRuYuo-bSGnoGjRY7IrYDu7kfR1ma60MijaPv9Kv_JZafgc_znsXz08qdexwUDA_lzS_Otz2v7BBSRa0SRb2WBqEURQzZepFqZGd1hSRwdRicVY4bz0x4dWQmY8fjB2poeH_h - |5POjq4fTr69dPnJXH5kRljCu54uARH_cQHgl-7lEWQBNVjx5ESvhmsm656bKn9y1mLKzKO8O0z5rfECj3qiKOyDOpQhnEN3RJPx9rbdDqEJBIYFbSfgRyzD_OldWyCGzKkztYHHNUpzyQ_ba4VuY2Up61d8h3HU - |RcFTP3Sl22WrHy88iTARBjjO1e11AP8MaIz-PftarerplIK8RcC5c7wGr1-8zbwUmX1jvbuLZIl1eSOY2X7Yxpjdj9Z97w10IRH9en4tFLYjRNIY9YMkpEh08a7ztaPa19jAHXu_KlQQKxAEeFRH7iUEDeslSVx - |IC9YML3T7k5JjUf2Remwr0amud2s0jSi3cpkVx9ZIp4PyN0d4YSeigVByJEa_IMT9RSN_-4RhPq0HKxfGZojVXsjrGu8egrsge26JpCTZPkICalX3SDAQsJHAlzprqBxK1A5IIk4qXLofhfDMqgkjDsoV59J950 - |ubIcYfXGSeEc2LRAhX5qmOk8iPDhziboNDMuNu6J16kGfmJ9Z-HelJl6JcdYMwX8-QGOZcOhnsfphgGgbNR_NZ-Wv8kIJPUSVo2A3ZOLz5SV9Jpi_KBTJPj4zju8ieJWEU-c1KJlcm71y_ohu29i8Bt3p7gSFJ0 - |honsJZ915LzPpqrRq-N4MzMBTbsPsN9mMu9S3EScTz5-_VNPWa_Vv_dVUpA8VS2pfkqiU4qLb_KAi1lLkB76ir9BVl5vewzEZjIWmjeeDmF88xWxezCxGpBCLdaij4gKgpQPiyexMwD91wkDGj3Zy-zDNvGcgXF - |Ya-6atV9nX56Saw5k4uutJ4RP7ccXCA5u2sWKI1x88aX7fKeQ1liO_DdD4J4_FaNkdbxPhK2vRLUsbqC8hGuVzvULCumQyAHLxB3sx--d_h-kV15i5GElv9wrcZurGJQg1nw9ULowOGpljw_HU19m5RqaaIzhyB - |RUs97iy17YkaRftBEOJ23JLsnJXbTbI1lZIXAm7goazMbtQIWruu4Ft6QLYIw_ATDsF49RZl4Y_h9dXnukBSFJH-OE6MV2uC7E5CXnB0uGOtjJiNMs2F55nG4CseWnmV1pL8v2rT3ioWUjY4KHB_JNvLJjDgoEg - |gP4izUrNmg64g62YjQ2cbrs6P35Aa9Gz06ZXu4N9xhqVYKcto2pVNyIeH0HDhybLq0M33yBdbm6D2-cqGBvZ4tTl-_SQy4vklM0tREaR3qNYDAINmJkTi1sGXha2DiWjOLwMLOUXKwzGV4h7PpZEZQAa5MTcbym - |-rfNqrDhior2p-x_5G0U6tKDKks1GpqgJUqDlJa-sDOOSvMEfO2_U5sKvewsfkANY1_VSjOdZ__Wjze4vIXLAvbW4FFgIqeXNqujykRj9RJwq84j2dn6fiOk5DSq4zPsD-Xn5SAWOAsJmXAFRaZwRskyvgQC3k9 - |oBOMYOYfmEAJI_fet2GwFZVKiUQs2cl6v41Z6hJwfG84zuaZx2TGgk7oBVM_mrw1jE8NzEFVN6NVWYppMjFzz6Fcd83Xd2rUon-K0LJRs1AdkBBhmJ1aH6qFm__OT6x2EN8aL3orQCPbVmO613oTp554H2aJlLF - |p8xgMTqNpgZ9-768bacrHsPCYBpzQKiptuOSSUdoZ-pdWhGb3J6vqelCHSYWlsBNL2LO8vbtp53jUoco5jvI4KnNPe8u2YoxWgBkecBZWEThDSqGhYoJ73TxIp3fwOLtIgzJrQ99tmvPwQoo9-pIluxz_ra5cSi - |enQ3_16s6lhFLidGIHZDOkeBAUvgGfZrgc6LgN0H49mOL26Wpu1o7mqLSuE_8ug-xZA6OkLm4Q2aZTO-01sdjQj8fFKyNv8n4ioRIjjuA1uXkpKS1-TDGJpJBwKVcgQiOWlvcewfLP46Le25Phwb3exns1wzuo2 - |hA090PCokBgZhuLFqLG3RA4yIuKboiKIUWv5sNwfmvR6KBIYAeSfThd6LfySNMvIQle7bjFiZVSPTUbJCIQyG4BcskfeyhhdC87HyXPma7xPuSfh2iL-JEpAa-7_YUuG62GlvPG64OdvbsYMOJT4B1tM0i-3eYb - |Xzf1KeRfDh0yJbUFMmxqQHEZ5LMP7pNfj-iKFhBSzfBATEZHty017GZxvfM-8YiWp0qMb0P5zTtVKs6WN3WQTe9OEehCFd1Aqx_gX7senXgV6346TM4_f3RLL-pzsL-5fZ9hNlEqlKWw9rFrB87bVOxY-_huUJv - |hHaGPhhoU7JnTlrzJguVwxqJEkjsN_9hi_X1L38KBUYCh6PfE5-OALG-aN5Mqxm5VA1lF59cs5IViavYk_eSt6q1PjUWaR2X_Tz3Ao0Y7hloaCQOyHQoqJBEuj1nkek8fyUKGlMsC3gPLGmrjrQ8GyOuJDp9iCU - |OZgg0Xr7CS8k-BO2nQtC7vkIY320NEdoM9rkASi1zDj6sNqGmIkeIsFenhOOeVYXHmbGwXy8-7wo9vZeNtH4V78IMXE0fePHbOvmSWQ7XPEHICPjC4SKOeZ7jWiiMMZgEssgAMIsunUy4CDjM4DCNojnwsZ2iXe - |VWI6YnQ-HKzxNivObBj-Ff3UXl_CS9O2F4t1Ufzg5uowHrKjMRqsQMkpHKZPlvgyviRu0LZN9NeZ-566-d1T3m70GwrsPdQO9F7DrC2rbEDFbSUaottANFhM12gfHIDiEV08ExWkass597sBFhHnp6bA0qNd2PR - |eUNP26IlWwIRImZtvmte_EDL5Ce687ZMDhVH26Y7Hm8DytPMHpG-ChmKHhIwIdDfCswFDHLcIdEr_uK2wjTcGUjX8TLI9QcKLoMWSANCoiNngpaJfJOq1HCQPiyjyfNxhyGxarFEKUbY4gdEJlPBEBGRn_RBUze - |yc2RPzGPKUdKohGJwSifdzAojhvzFIeox_YtwWM1ymjN12DUlZSu1Y5uAHGUDZUtZb7pP-sT45xsSMqi3pN1k2X_ERZHX9MO7kas25qmJTY0re88qcO47noHVVNtkUfbhSgilKyqJcn0hiPVW-_2b8-DP8MUHIx - |_PhYOWATnkiRW9qllygjLaJ0kd-EllVv2dp-oiPNQCcrVNhVCIvO1dR6WrBfYYdRdC9DO2zijnVlLrX5mWpfrHOaurJSrpkLIwi2aZmxwpZlE94eGPjJ-g1UccIk6dIoVZB1egbKeDLMpNS3pSwj6mAC9QYKxN4 - |djoDoVAWN5sLAkW9Mv27GD8cfyfKTiEG52p1e-fqubPDisL2oM4ySS3R79l2WeosrXHYVE9tzWKM589jL5hg-1yxkB8iCIlMlVprImXmpOIhCB2vjcoahn-miSvsK7fAm2SoRT3fLjZXeNFHUxfdPVheGkBMIAx - |K_khohRg8Oej_HawYOa1NL0nGJ1YbGJop-BG4_FA6g1_RdNkAfW-g6mc47CIKxS7TQfr2A63UfAze0pzDEuuzNcoEjiO8vvTjNdDFdtEucM4f7zZzQHVqtjp0VxgYIUnH-otXi9upGapwUWTZ2L2KHfCEb3m_7O - |J4PUikyGtWdOsVHWy45pz2Y8OlpLpmXx9bjk_qxZ5c9rbkQueQUphj-bmdQ4d82YElWtHb2ap0y4WvrXZlfZbGg3OhfPy-5iF56ykQ72X-pm_2OL3bzPxtml5S6dLTsBZ0qinKn7eoN7SLElp7ikTQHIgD3SmG8 - |mhQNT6rwyCkuY4ljAMNZ5rKq2uv0RFwNbCIe1X4GhC0ztOrakQES2eA11G_r6tIyinunvEh7Zh0UryjEAeUav1vkrFsWZWErvMqbMCbTGnyamL815La9vi-dRJFrtcuFwnuY8euUklc6xuJhqkMA34wrLrpzcGS - |DoQVUFgN2tviz1oeIEJMqKH2QS_h77JtPrwYS6KB-ydSA4MUbOgEmG4nZdp3bVvX4_Ktxe1fd7IaXPjRWF2uG1yaxrY2lbEmyxgIK_7udZPtOfVJ-3Gn8my8uj6Odc6dXG7ghKgZGd4y2YX6XXzhggMAFzXGzFH - |8AqCFZDH5KZYR5MZB_bR0ZiVzzAG_Wbx5Xrio4P2r6ebJnxlZ17EZD_FLi9bpyVPJmD_zVuoSZWLzgdXp2FNMEgPZf7teSue-nK8rEiis-QAIuOcLAW7jzKUITdzLgUm6l4w35VTkrD-7JAsYxjvQZn0yPW66ah - |70FWWTwgR8xBtfgqjhjw00G3VHdWP--JwiAS5zNaFY74_YCUSatIIlejhdDUFg5T83njj_QiHe7Ud2rU-iqKD0GXqlC8dDjmVuyfUCtM0Y-IJk1hAtZlNhAIObwAzb3W_ohXcowRDSDBEMfiotRcFm4Kx5u5ZAH - |dJDTQsdjOuJcIOSLdQlc6PVirWqURj1VH1fBdjLJzdzFQxK6PbJNDgR1p6I2uzUVzso4V9AV2zBbA0PxgqXIJlCvkxU_F2tDOCvb8P-A0Xg7s-xEyrPEJEq-SG-4GfMEVCMPNZdi8j69C_YOHbwkvujyqs8vL9p - |PsZz7GHUM65Miz0pT4ykMOQMnjYlMRfxiH0Mou77T2peSzV8XId9VC0Wb71pBtZBn2O9L8zneWBiEJTHQJsNGwAsysY3lGXY0CW8CevTJDFslJ3oQF3ZxTVirZSMvYRHE0sRG0KVNShMAKEEoP96Ekcck6EAL-2 - |86o36XjK9HwLGffMuD7ErAcVAjzFKLdv_rbOGGjdPRRmiDE0CJITjMGxDfMbkjd6hQ4_Bjz3xH3pQ06w9h3NW89ZJPz9GlIIC2D0Ay83fyv8SBGnheuqI4rD11jaqXdGkz82JEg8knCh-VrdRnYhSHhJKTxvrY1 - |zBsasVuRs7Eu4qEH8R49eDfCdNLJEAC-TtGgPYS22_2t6h1Vql3kbVWA71rdg87tZZD7J-M8FOzRQ03DOdHfWDCzWpsP91CXLKOA7sGzbAsHtCDEf92tkZpiBvdxJ57s6xjxT4nCCfnfQOnQ-3lVDfqmbBJi1gz - |ixonPytMiAk1a1z6_rllQZ8BBeCggYbfdS93z-KLw-K3HBsO1vRkro5WoeRzQWnCisqxVA3aLkuMOrjNjgC7KY0wvSvoP2oYMo49C0P3MBfctdBX6Eh60i_sHxB11HyQmvCdO10w65QZexgQqbBiihIz0jbmHQj - |0iiwOBPtEqsCURKlJFwYZncPZnazOTHCp30GApzTRhucFVTGeOTZxC3erMnR3e-3PSDfryBLHc29EBoAjq1bkEQ067vbaJphFXwW5uJafF7hvt7sNQINGEAaLyUvp8hk7wGnD6PeiBqouXQ-oFEuEPum8-uDC0n - |F35EGOAQo8FEftZQXBpL90D2MsEOrQhYxSiTl7nL4a4rYx6cQfPPPGpX0b99CrUSUvjTBIaR5gR9PPtTv242ebfCuPEojuaNgqEPRkL7CfrI_wSKk_EY6ccgsedhhbwF95oyBl2D2GbfM52CedW0tA8Lmtjm8Rn - |5I2k8MVN4SKHUB3Xd02segO_BnkoN1XYrtRDqlLkNg3l1LHnsD_914TCQJLqdEvjdf3lFUebvVQ1T1kT_iOdJt6JU-wVd_MW9kruCrXLwKtN0m_vuJLpt0lqlji-VJzG4P9FLiXkUfrf0L4Dm6EiCzqg27zk6el - |r_ZepsLOoUp_gVUAnWAnW_mpYhmpuxd1nCZ7VrACgfMSONxuqTZqT7zZRO-mOyIrjv8Z4U0lQ3W-fEb-4kOhvWhT663DKjUUW8aEQfibHN5t6AMx3Yl7cdkimixHJ_gokQ8yM8HcwLT5c2QX_m0HSNK3ouLMVf8 - |25rveoCKBuW14gFF8dSbih69KxnzgWsAZiz6XmqtMWnHj-DKzSsvyhCYMEVcm9_5KMhOwtiSeikNZ7GLAftNBpyK-Ux9xcMdb6DRiBmh7l4Jb4VyP_jDx_vPngxE1ku6nBOUEMENxDJAkZa02D8SAFZ66fB0g8D - |zHza5ux_mHq4bSQe-lpmb1iTE3LdfO81HGLRobcpF7-Q38-Hy_b-RzNocrX3JYrO9GnGbZIAVKmr3wq7hbRqJVW8KChu0M3xy4K01ijbBCN64cyGmoxy0CU0GugBNSZTWe1W82vtgPD_ZQoyiADpoXrL6jb5k9r - |kyV9NXpV0anbbrdQCcU6xX8KS7In0sMkBuOZYJNB4tGMHZsSFyABMIR_Hp2sMXp3gsqkFPDi3lM_rcvHY62XGw8sdaCIfDZucSn02oiAHr5kkRe2jyKysawcEXRcLm6yFgizPWz8TVOluhslVfJFDMuVQuM2thq - |hCfHjpu5U2F5ipPO7pznMEjHmQr0TuSBLnjEYfSXwv2EYcpwHk7JxjIOORqUbllGMV-_Uc93XOULShVAa1yIYeg2xE2mxco0N3jFFMY3J2NGeVpZmmkmAm1TknEmz9-1uzTdCodI5cCztXLXNixh5gkqLV6Ezj2 - |XMznL85V8MlMfS86Yw4ZCWhbiKMo80OOGVjDOmDO_BDpgHVTojQMnsVGdjQsFHAME8KFfl2xgl9muIbHrly5CwMjWInbQJF2HZtwXxi2INePz4pI2YFg787CBQC16CJrwkyBoNxDESANYoMU7S7sYmeBl43Mc4z - |YZNQFSypJNKtEKkAaYeRUtvsotYhL_bXUWPLG2KBnf8C5lKPq1REilZn9uZ5vn_wQut8O7roMhi-imCL2FIyU_iWhKAo-JFrkNUuHEAm95LDA-m_YLkohfZ-dsQ4NUJ6UQ7qguY0ILBX4FjRsMgIt8eDFKacGqK - |o-Y-RC5S4S0pp_CGJMrEqn9FxSHAmGF_c8Varr9lQpWqgt_pDD3LxoUb68v7aKuajcIkTyPhdrx8MVaD07cFvZ2rq2JfsAweUHIygMQDW9drbA9lwrrHXeTt9LQDLxACLJZq2xueqK7NBuAww6mCM-_aLEhjkoA - |VOgXnr6qv0OTBn_171aFiKrAbpmYgU_BV2gk6pnm2FPYVOXuTFc9B4x3e7vnO044Y8pWtSL7jCmIMDj3h6p29gc9lIvd-loux-CouUXFC-uhFo4tQUkqfAfWgpRMdhG8WQQ0N1dospy0UAlzuuQRuJ5K_3IY8CY - |3rknGdjyHAGMOApEWbvYmWWC4tQdbpmaqxeQUKYeDbXtNUzUy42tvz7r4QcoFmZCE49AzjfvsPgQDDfVuy-1BII9lIkgpmmw6ralGRh0F8Qqui1mT-0uEDRk89bOhoD4ZkBp4vhT_wjGSWlkbJmJezdxI3986Eq - |WdZ6MlmmRSlajZG-XV2IfuTwN6u9hmxKG-uBGsQfe6vf215UZVOmtMhJBrDqHVhJl4jVnAHLFYy-_LW4DftA-t7Hkixl98yfDfis0kPxMpVVm3V0b46kyHb3BdA_2OSUHs7PhT47D3U305AukCu1q0vLcx3oZ03 - |B-O0bb7PCKpAznNVInZiYGsPTNQNnbkSrHjgpBxn3uivQz1vBDxF_5evjRbeRmhPWlhErFY8KeL0fgnQvvN5xaFV_Ryh3Y70lXb2VQP51Ly7vgTBZ8Wd2Rz_vMpRvCQR-BAq5FaQ0EChUwwi2QbPUXJiLLeF_0o - |_HB4_eGij_kaQKNLQ2-mHudVPIek4aM0j-eR32NcVjgpBCHIWeuDlrpbssPBchUNu13IIKTP-r8eyrk6hckejuaEjMWzoD_wvFvVudwGgQEZU6uMCbjvKZRKYm6ZhywDmid-pxHBuzlFTn2hBZNJQeF9eTPKtQD - |xVMawLIawZXTE8n-EV_j13f6_9IdlHcbpQWFvfJMTdvX8jxLegJocYH4AfxxfQ2ya7KwyyIG01AqbhMEbYhVpWRIy0l7s99sGrxR8Wbo3lcvVyGmV5Z8rcBS3NIR17HLyUXPJlc4HZAqkpnikmXlKePsLWkLtJr - |BqSRdk42t1f54g-xZv4E44CS46J4mXlW9TdXZSC4iGN-5-2CFpBnQElQTdYJWEqJCsk8bc62FkodEMlAUgmKlHZJ4s4mmjjNT-uRgJAA0-EzY63JLx0d53KDIsupuVjade2J6U-XRHWnKkelzgJf6Ppr95dlxgi - |mbb9hDXVWEmQsM4gsqAOCqMtls2bffmTn-6iHnHtTcD5IMCNVGQBeBG9-HUfCSpKiftaJinSsDqXlFhJNj1IXUditxS7SozdT4Cdc4jaxQCH0ZnmDdMIB0vVCZU3Q2Tzb4iI8Pt0_IpRhH4R0nrDaTa2R2X9T4B - |xJ6I3TcFJGrYiLi5LK-VHVY18AZHrUqGdog51lyI2PrdfLtWqKQ_rQMDIeYO4YDcpWd1GJWhyyFDwWt1ov4qekjW5qW7dXGKKCpitKAYaBn9X5kyw_AZC9_htQIVOcsgYxaNZXTk0Ec4yh-AmuDMJIwjZu1IDJk - |IVw18YHDGUTaKYcqFiYaB3mp6MbNHO-ojFOAKbmr3xGwRTTV7Xpyvt0yeYuO8ZNiqeQVKDBsech2g7U1fC64PnhPTusc0FODEkDX2a99aHajU7Xzx_2_S46g6-HsuKXOHGjQQA0sC7djDMvdi62gxw81s9RmoBO - |rxI4ss657LtVXCxbUNawuUCH_ehjEV3hyQtMzx5qVIMm8gPNkwvNBjuDAmKd2w_MVMJzp2xPaVOQwvNEZINHMwCOWbqSRbhdtAP4D96y9UQt_maGqXTNtfTwp9VPZmNNyANdBmZYByqTHIfHSZeZEpSCAcH0UE3 - |SNE9KaHyLVCFAMtxuuXC8cY2LfrYiDmSNRfeYPbyexyWxIILH1OCobBuBgux-BOpt9s1qQ83aCRQ5C4qtOlORAoYpZV-R85YFRct4qidARd5gL1_cpyjw4DUf8OG4koh-FQjJobFc6NsUznjGMjNYEFOfzf4A49 - |2BmQwUAntUyG4kmTYTpNC30R7CUQqkvZa3L_ydwpyjfHRKVjLb2J8WYv09u7GHzdNIoIG6oFV93i21qNn1iVgNZw5duJb72jJOujQOWuGakTUGOp6UsSlnDwQeKVQ52BVaARBD4nMB6JxePiXJIPJGLf1ufxzIH - |7mE_ktqqaVXGNJEhEnCOrKhAkk9Xipc2Et7CRro9Xpbr3WKrYZ_apHovfBXPMke4-pVwj1Q2sBbE9bEY8MKG3nLREUE20QxyZ-hMDC2T8tkG2cybSQxdcMNJQiASGNnUrw0JRQRlaAZLdQwVSfCPg8FICjm0_0S - |1wJHZyrUvwJQIip9eJf_1_hKHI7FTB01oDKVx-U784jNh6qAuBul1eCeQ3lijGXVE6pSAUT-D2RFRrxYYsUfEUN8BFdkAs8TE9MmX30Zoz8_Lh9-fMIyRtUSQcKJwlJ4jNOA-tsYUfQnjky5Fupz4p40dOhcnV2 - |bxuk5M_AMh-JnPD9HACNUdHXgUhwtFmMe4v43je3siw1uqmueveNDE7cRnzPy6hH7viKE5NSTjcwjzSjfnkYNNkbeGoF8EBFcj-PwTQrUF_jp2StsVdKod1J3Mx1M7KTMx9MF1FSzUDmmXQtsyRD6Kw4Nm5GrE_ - |4Jwn_tZwxXjpfVFOTcQzp_n7pQQUU6vnzncTUFAPBrb-fcdNRfIeE0FXgYxBYytT09KWuo6BQPylUz5YerjyElfAFegVegMQ6ZFF9WDiIpFroLMptE-OKE64RsJnoKu7zQoQT4Ignj1JeIeiCXX0EdYYnMYdrzj - |u83Lv7xlRcPuW1WOseLUsCgfhzwrJKV1W0Hx7Hcih2GGue4jM-VxTJIpXN62jHnRFh12vi9vjIp_oyWbL7gRTlT3oxqHxAQALCUpJAmbjdreF3wiLGUr1gSk0LX7Rpag_QaOI9gGRC0ho0hK0JxQn5CjRWoj6Zz - |CCmHL32lrJRs73bCpBD5Jtbd_T-nv2X909PB4VbLtexPfpTg776HiH-N-CFd_hOxlQFoJPb9dxR7Bf3RzZYx39m2s3MDp4XsEzUYXDN2V5HwKoDVrp0AgLMf3iuAg0khGb2P8pSWBRO2JeaZJ29aJN3pLiyKmrr - |Y_46lOulwqoWhvRcyL3iPJOky1bkq1pq6hk1ylGjhVois4EyzkRbP7zKkKJ61eHEvDRfJpjECJSlS0xCmQSMOsPnMT-sed7b-7Nq-ZVZNdxMA_hATTLc-rFWOg3_xEb8quUfZ59mZZmfWioWNRWhnQnSqFTo2vN - |XuTTTZIkNbcH5Q-6xUyNA0MZUvodnxjk5dVjsRflI6XHC3CiGdoIvKKPu512lM7P1bkLEruIHgi6WWHqmJiDw9CXX0ZK5ok01SjPGXWeLkwQkDrkK9o7tmyBU4ZlXnsCnlL86xa4MWXzzkC_kKD7SEX57fjYdXt - |9UCMPvLyQyk0Imu-Aaa0-ExZPx5F4WQh7g8GrjGPCMnfhoDSc_Lm6ZL1QGNpe7-DIMQ0Ycd8BGa6lA3_nz6Vyk7Z8SA97ZbioNR8z-mrCjl0x0KXJ_XLfHfADvGJW4jQisQ1Gb8ONPWCXDfN9i92z-il8E9kfJE - |IIO1FvqxfmB1HZQ68_yNI4otfxjQvrHXPISTtioItAEzqpqYf0NWshr4WzWpJfGDSLMjDfG7IIGJzt0jD6wO6nMoK7tVa6OU4Noh5BmhNLi_Fu9BNfBKoZK-uoTeRKh2pl8aOisu-A6lNxN1NHsFrrBLc_1PDvo - |yPzDJlB6wxpTf_6xATGA5mwQ8LibR4Plt3vcSLqFi4aVxt2C4nnoxaKMsEdHA5onNODzC3FQKFFeDBNGmxhI5u8YALOeY8EbeQksNz3vHeQ95Yp65pO19gGI86nTu0tJ50nwN9twZM9ChR1b8lsI_b9IqFAGcBJ - |m2pSGJU7HCYYdP8OH03cRRMoX2jKzlFAhAohadwcdbGqlmmJMH62UGBs_t5hrRAJpTLg1FOrjhy7DF910k4wSckeOXJX-4AZ-6aFN1BQVj2Oqg225ZvsGJZ8avgbe5rKuvAVeOFY3Slb65oit5MrvdoDk1ftuAB - |BCLWvmKTQobTuXqoDwqo6YmPn-esj2aF_f9GcLpVrpRxFeVKjVq9IET4lrjwgnR13BVyX0QPV13tv0QyLfEnZEJ3HE-zHCO55ooidgz7WirpLOHLY7w4HZ7xIf_IgvnGdz0ulfXBOXFKtHntICtIMHaS0wtnLqF - |aYPfAyxRP43wpAU3ZZBdufSmhY7xw9nAv8kSCbU87SfsQJZd_m03tQcOaZYyJzdcbkRD87bNCoYvIUMK8AEjxYPAxV2iUp-wDxaHB2fIybADXoqXr8hA7QlPWV0fKfFTBB0EQP0voWGUafUAcl60oWTYHXxoUtF - |u5W6m5rbZLPdEJwa4rpRs0xBn4VvuZPOMCOiZlfDr_xfRVf3E6Fc2F0OQGejiodFKZrEr7qPDqK7jYvsyLj85ctpZxndt5kvK6r6grWRUd9BcpRDx6REqVAK02982OHFJCr0aIjaUEX-hx9UKcA6HiUSVCGOSnO - |531nqalK7OusO69hI3P6YGxzbJS794o_aOwnv3TMMUqDzxBhV6rA1ixzdiunxj1RyebrSJw7c49GuVkIi3Wshk7v-Ckq29PsWIL1V5Jz9KnanArIzlQW6HA26K5_7FhXYOFG1Pjpyd-7LYWXfX1YkFVZki-a6Rt - |YjkZKzzatKrk2tJSvro4EOtfRxLaAKkgMafyf0Nf0u5ZDrDIWSilERgOa48Qm73pJiuzfdHj4zUYMp6yP5IO4iHgrGmw0qHE7FoL0xly8Chsch58shDZ5oV7n50jHgW1hNbkp5-sgbrXJ_ok2kRJZl_PrVtKi1Q - |83u-AYgS1Uq5vfHbt4UsUvq8SJhuMPeb2bvulQehkZVpyOW_IctYoFMBJ5N_kX9GCw7wvxExLxcrYyT_QeVYy6MSFwfqSUTcceKBlDfaM8baMCnCchrc6HYGNOXFpzdHzWaRvQTezys1JOUb-ul-4N01HksGvMh - |iiSB-47k4FLw51rHanu1HgPxdqYH-jP-dt7j9KeFQJedjwF6L7sQDvVyEGzIp4aWp-Qj2w4DD4XwwPlNFY3tjDR3OEHf4pkjiEp1pghfC5p_JiDD1mHbqALISy2kWIRnKSibeHcD_WB8f-RDAhDp54mEvp9EU_A - |UhOh9XcO1yDfhBBSXc3BUhY_5xR76989TY4o4kYlONr4dri90MpsmP84YEU0-6XL0C6cuZhoFY6vB17uJkC93WHDLufsknSo0Izi_mVI48GNUINsWSC6YW-B1Gf5uN2ik7mvS7p2qkcG3Wu64klAZ1Qv4uEwwcL - |omtT6GJETyTGp6Bi_OWGxv6L5A06WzaTivcWHjsjtCmcidE8nnsPY0AApmpyYoHtqFXufz428lAM80fx4Oe3wngUHZ6RKbc6RXg7lyBpZhHCUFx6NGw3lfj9HQFeikhTSQmqo0f7F2By3o51E8M-yQpJknqxilk - |yIUG1-bS8-CCNDuUh00wJSi5z-U6mYCFPm-ieDS2vb4xgB_7n5sTmA7yZLCHozPYkZm0xUtuOi9V7fh5h-tuRVVT4s3jc6L6sINsNgzFgKgZINrzb-TXUrpVkDNMYsBof8ClhA-nPSMst9rdaGy_muQ1-AyGpzV - |LKlEASu1qtbf2cdtPm-FO40gdRqr0UuP880DiLLD1Ulz8nbkMzIZylclM0vCC9VvefBft-Gcg_9iN9UeUqOaHdgDQ09FTH-L0Hr3QDaSnYsDzejV-y5EYkyhCrNS8fGzBE5nrfZbVr_5hQqszwd-oTIRl-dauKC - |EYoYse3Eg4T1Uo_uDLKoYfTi92Tv871t6izJ7mSOmFf9A-2JHLGLGf4KQ2VRuVcr1Q_Pi1PuyprxlkmniZ0PLGTQASFRxK47TmThPwl6QJxZvOYHZbHre1HE7hzkc1gDGUU7_t_oCEYc_9KlHCQkBA5hg9owr5R - |kjX_IPMgA33gp50MD0Ntwal-ZhEf3ss3ljqx1XqBDSI3bydNTymz3d50aV1YprRO9_WKIuVLCwL7GtdKYPCa-c6u0Plfvt7BBAVfyLPCO8feWSa13p-2So_Crh4IDREifBXsGZ6crbiXPrCLoMJGqHumuk12nH5 - |1hcSt-wD-BDIWkOo3dvMUUOOtZVVdKCy-S3s8UW7aPwzSyAXeytLk_01PdNDy2EtECNBzS7YOkQXRk8Ymrt7tSBU94ILETzm8OS4a43kX33ytHM3oEpFASbHzx_8uB5DKdCHpY14nZ3TozHHTNuqv5NuWkMKyNi - |gMDkha_bTUySumGLNjlJLjN93az9cThgQ9QFloO47A6c-WVWo4zvQ2wtkONbRV_jVXBwhqmEyZ8xTfctesqup-mlsuqC9mo3QFeXex6FTc0tVUUTnfOLtj_1K7ZZUCh6V74D1rQAP6H1lpXitXP44hlC5U13W2T - |6berE-jshCMay2aSK7vE-hccZ2okdVQBh8_K7zZP_dzqyuuKF-fs_bljppDA_m4EYpCwBlMetxJO4qKBbu_vjmvoiJV42v8Ds2jSU-4bbCBM6XgvCpbXuRyQXrc4ymOLoMCUHHXSnOyGUuD9XRhy4e_EGc26w2_ - |-xtReomfP09JVDjhYs2VGvNIYUd5BZr0XwfYGNDsQ0icXB3vYDt37ovjLSoOkQM-rUlUjSqedPL29eGHRE1xHitNG_OPXFfgDfaFyhQyylCha7vTV8eUPKtY1oUcK1PoqqZVeitTyKaLTrgJhRhpBJXECaGnKLV - |o4mKFnD438kMSOM6tGuOURYPif3w2R8HyqVIfTHiBbv1D81WheKNUQJtZA4A7aJCYw0fCpPofv5ssXYW8r6y87Gz5kJpr_YFHs6FmUUomOfzoASf3hUYZJZfL4rIsRo3j2iQy2BzJczILVNG1JwTeyIs3Bg-PKz - |e28u6RsBsCnUw47j51hx5pGJLifwlIjAx0-_fF_6w0drB4b591N2zj_FH9DHxfjcLfnsn23TxKlWj2vqBAcVvBvA6PgfoWyjU-pk2mutFcDGnyfgCquh1hAsQ3-gyXFnFG43JikUu3QthWFx9kuhBGeejcqu4SU - |G996pQaVucD3ZR0PzMF0EbA87jOgwFI3tSVkJVYSkR4PTOePzW9NT_VPwlAcMxD4RoLGoLphsbQ77djd_KReAAXS-rlCPZuSJXA6vzz4gM5CQc4oS4B51h1yHh0VmxrYIti0hQXoRywZ6K2J1YvK9WZr3LmlvxM - |BT1Qe-d2_yQYAyUPEJdv7QGt4IXoCmEQnYs-zv8_G0Pci7SYpzDotaZXZ7UTJkkqAaBc-oJ5aCCFzgPE3bSg5cAm44tHPIpwEnG-tOsk6a0a3CUlMdBVk8CNg44ak5vkOVT82kM0e_s29Zr37ahUcIfOsnAV6gp - |x_vVoYJfzYHHH_CNfec6aM5q3I3LQvZIIhGXzwPAeZifH55KAjbpLXM7PobkKrC1l_e2ImG-Lju-5UpodUxe5Wz7MI9KgrebuHWmITg2vniF-1peE-Wv5t6gmRnGnJIGPtcF2A6bflrCiE20yn""" - .trimMargin() - private val testBackupString3 = - """9eTZduu9pgG-OeK0SMH54DD1y5vDnf6g4X4l8D7yOd2fztM4k2APT-O-em6qMHScBBCHOCJwLlzm52Uq_B3HeXOn_9Q-x741iVoruqtyKLIUpx9LoTN-UTs9ZC_yIwtCQWUZIa1rFrEoBA8DF1zS9FqpbbjuJzPM5 - |d8EmyisO1lSXAcgOb3RFq4XVpsH603qg6KyIqNktjQSC7342Xxvh58CKSJ-3UE09xBzY_qw49Z0yqG-ptRJAHl6-AhN_CajzN99uz_wAYtcg7CCF9icNEXAoijrBEuM2qAIFZRCFTEmWG2N9Qtvtot3KIVSkXOt - |kpsw07w0IvD4IYGmsT2apT1b5OeqhrJ5RxZ8Y5h0So1hq9W_xYp_lFN0NnloTV3TTZLSNnWbhB_04YGcGPTZSPmzRd08E-Z_3V7D9psD-Q5KlKniHzmQJ6r-qYrzG7TtjNupPvGzXz0PPpOSk6rakulVETn0G1c - |EnYILkuMkOtB2mXBG0UrT0KUX-LwbXuXC8omYSNcggQM_4Y3W8PtPGshEuEms9s-IdJwZIW6tf-REvyzyKbTcVUwMyIUK6D6EsLRB5m3mqZlv7YfCj1YTRrKBFkmy2PGgqGK7ZZFeeLqD2jXAEUNnPUQCyfRCc6 - |xNd6PPSTmNOldNyfMRBCrPgqdcALYxtzlo59D4Ug3KvtLFPQa9HCWEQAv3qHK657H00lb4fckNgwRX8WRz78Rg521NLMduS6PfKkrYlhVMm48TEyj86M3jnWyB7VnsWiVgAVPuwstEsQ0XiiGuOjkBfbA86F1K4 - |VXj1_1Rz5M9CR9Ko4AbpYUZHaeeCqIu7H2hl9O9HcVkqyBVyzhIo5_ikfoX00JZNaU6G0_335ZUJ1Hp-blU4bG-nYE9RAB8tq789NIW-1NkyfODGIxgvP2QBGeADNjA_RzXwmqrFR3s1MTuBDk25TDoTNwNCani - |fOFBOHlNMEqx-rJoV6pP_inEmXedYPmt9N1HfgYKDEDtRywGzTrOeAXl-FrMi8ul_xsofDjyBwK3IFWD6P5j3XHL5jf9FiUwBawyacyFRO8lJuEbXEkQtBtSSi-URsejTy3VWH0l0PD4bKMNj1d126_a5HUt7pX - |yIn7dG0OO_4qX0iVGas_-eRWIaObjj54-g67S-2Y28y1_dXkmxcO_D9T46Fv-_eTFfBuoOVPcbCT4Ej1sBboP1CgWzm8UFcwBeLmmikjWOVZW_UwMYgArS4s3BEydXAmIsQOuBA2f0Rk8VMbUXBO5v4y1dp5h1c - |z-mB_Po7mzWfJQIQWZtMhAgsveHuUdtIC7nVU1vj9Dy-GBjTxr5OMxflu-vqo3ci4h_On9F3EHlA8DhCCAhm9WgMAkanPuyfQKRjjyKEk4EVksrA9AVozBDeeIQwKKIabOagUAtuBDcMUKWL-FHYDsiUnpQtOqk - |LqFgWuOI9L7Hd69Ynae3R97gX-qJtWZU9RX6idLlr6pG_Yu8KDisiyf4n9nP-MMUdAKTcUJDnDiX9QsmLNWQlv-DavYX5Q5Ne9KaQpNi2akzAr0y9Uca_86DIlqZclFj30hutiqttXYSlobmGgyPzpVRh3TD9R1 - |8p7fKohWzdTiqLOSbFJfkPRSr4lbb9hdQVn97emLlX_kkJuiIzZQeKaJaSBNg-MlzfAHVUjS2PYuqbLde7JKBlNnyAVsF40XlxAOWobL8A6UgKTru1U6x_KQmxYF6infUWmLysb3vyXtuttMSIzlyqhb5L49fBQ - |rtJAl6qscneKLDB9GvBQ_tZrm3ST9k0R-QyIekukn1Sv6NtmB4pFzP9-HDOdn_hw8a8QBrLNk2SfS2gbVQ5c08Ui7kbfJWXndLwoKLgr0-E4iaOnCVXaymDsbYmOYr9xKDFmKdXBr9Y2NlqHxo5T9TaS562t-j6 - |34rg1gspajYf3LrKEEb0IN3_Cb_wrDpZWKkXgxH_ps0l_2fzhBIiHkjmOkq5b1Zo3TVvc7HH-DL5f3L5X3dlF0E6QCQQ7XLBVHerKGV6zSYUzDvrZb9Xx2l2HHBQ91JPu1q_ZSZsvGW-Ox6I-WSHsyA1WosCtCu - |mi50G-QX0B-7hQkJ8AZ7wNgx4tbJqLNkEM803qjVhKOc6BTuE9IKv23HtoYcrB9ot91bUn1084bu7aq19vHSYGu84hQvFfcOt0GSSDI-T98YgZgRoPkBXpwMnv-P3hQEygMuUR73XSCiXj4h0nkz5JS8mJFcG-f - |ZEbgTxm4xSS693tufdJse0b_U3W9ZN1pU-_Ky20lnZWMLS4bh0gjKhBQ8mKWa7neZgtLJSYju4NuZARyU7BxUBAizfADFRMvVE4fOOpo40ZtBkn6W4lToliDfAnePnr_Opbz10yFLM7ZPscNlDmNLxJ4q_W_tB4 - |3hstTwUqC9wnb9mzAinDZfllTTehCg29EHFNdPiECDi_JJBqyxXqrrv8j3HiraqOo89EG6l42wTpx08KXehnKOvN0t8k3vUbphuhETqiuV6lr2MAP0PkKlUP1XHPewK36u1AVmjOSbJ8sCy1wQPCsGE4eVFVh1p - |nmlQH542bOr08_ii0WcHd9lGs4v4J1V_-mocHW1sLowNhPXIajY2c7uKZX2AGF_ujFUUdGCONhHERHZvb11XKBM7meNTLZjeGb0Le4brTF4QaQWe3II0VGB0-NMGsG-eO4qcOyFWuBbldQVLwJ1WyTHTvTa5iJM - |woa7JNdhNNIx2jv40_KBrXg-Olb7J0PNTH2dQeQsaGJwtRoqQ1BO1eVUY0UpA_iC1-OlvGJoyCCsfsBWAhrlDvLsaJOt2Oz2E3bz0xilY9rLfOeofEE6W8tOXhh20dv3-APdmbLTKI14F5K12Tf_3SLISTYEHQN - |UQbcel8uTsR1E--mwBc_g32nyPr7NzhbKELoiwyQRQ9eszsMnE8uVHk7aRdz8NpR9DIavW6U_JrErQWE7OLlEQj9viX1Pj42GqebJRboRvjy5hioh1iabrjvYjZcROirvXACIrbas3yqq-yi17Scvp4wlQUbgJ3 - |y8sCRcnbF8-ZH59l1YCpO2BuZu0J7lDdRU7lr7rF0XxUMU_wJaVUIAFC6sqva0t2s2i81Yxd_CGqpzfBEor6cab_ySq29g8_cn5fYHP0zU6FR_Afzig4K1pJrNdF55rJbPS_ZgC9cycu1lnXGYthuUGjVAkqriP - |dl1-7eCWhu-5UY--iBbUNSqMpS6qzZ03Fc9gh9sPcvDSSsO_JSdR9SBUkk8vuNtREGD8MIDrRbdxEQjwoO5pbQdG-y8ifpu3H8iT5TqsxDgLZE3kyGCkElXEzQaFPk1xIe2qYUIgOUxpLrrT5UrtPZdgtgmFaAG - |BFfTSKrOJ9z-Kf7Ek8bmyy5LrCtCcvRtcvIoMgrOs-dX6rdcJGY6Fa6gEzLEqNQKVXt0mXdr0YP6PjcVmh4o_NHQqtPAkGACefUJ2fgAeLq1BMcR01LnFpYYMCrOQxDQU91oFoNbOoURMGtWmt8aPx-p1P2a8_1 - |GPA1wWYUrgjEppulBObpnu7NJIsmxTP7HOyKzWedOle2uLsElJBSGc8ZcgVTyJgDWU9pND6Dbxr9bEd_GtK1ENvmKLvgvqb8WxLs8V0JX9_LoGflsGoWFrsdfMUBXL4S2xMY7UwHDxxhdrL30L1Fk-aVbdv5LNB - |xh_PS7NGQ-4mb3ZCavIGcFKfAk_MRGZ0SKt0BNljOPqT6VRCXWhhD8WksHngdEhRPCgtrQcviSpef68RRUasUxTXwVaOu_FC623nmbelACE41kjOcKvN2KdwmeZYLScHPNwfID3aeWxtynUgXjVU9VtdefsOn47 - |_OllQY0w30tytXWJQUe1xixsvC9andzz63_TkvKLGDhX95YQtIibpla2G7jobG88LbfjRLkpdimguSBf2kmj-5-U_kOYw9if-nQIsv-eLkDS_zrORFhlrh8x_sTtwkCTiU3z3xMbStGyoj_HaASQt52DK1S8gh1 - |iG7CwJNbfeDNcbT0Kt3IpHB7QP2dpBqRkb7ajrUZVIQNOApgthaVU00NU4zXdT4IVe6x3FLha5fyr2OSq0AuIficQh5Zv6AMNciqFHpvi32vAYYM_DM_5rP3E5E5H4QnzhXkLwQE0ygKG8DqAzBmA516YNeHyqM - |ajic-4TAiTkfCSJdSitROQ1UMJYERQceaeu8oJFqynJR4Nj82cBHOcGfWO1S4Gpn1S7LNR65FS-dBIYGNEjEZ40qyTD3VDHLyVu-mrnNIRM1q1H9LFf0UXfl7EKr0gHB4ixZUrtdSU9aIHavG6RM9zcbsXpzotn - |3LdC4-cveRTQ8ZoUyF5sfN5WRayqoNSMysBJiofu-jtkV9rf3CCOP88DlepvWx5ECTTPttnuX7vCi8QeR_jPkhLxzF_U7YjIkQRlMl4FIL03iyLvrUTII4ULDhdsIXwZg7ba68Ivu5ytcOgoLKn6VypMy3zSJjC - |x-rT4Zc3ZB8U2odtdX7i-Ajca16RiWFc6NyaEI55CLCjLuoLQWVw63r5LwU975v5GsyW37MEVPAO9WqZ3HUS5d6MnwPXDRXNZPe7nkADDFv3rjbXuHCv8-p4jHW-36iwv7uUwTuv4CKwsYC9CLTEiBNEViDYBbE - |yCu_eVxQMGsf3qxPObAbOJqGAOQKaPkzP-j5BYPHypFjawP3YPX4dD91kcX-DK9mJQRe5HjvsVQATmkU7zITQ8RXG1aUOW7YK0yi9rn_QLr0USFmu-cVrLpcCiXVBFor2VfWlNZMQbOfD-zy1NSv3M5Mop5K1_1 - |BTjZGnTKUmqYOoeE6DM7ZGK6vynXdkBDSruN08V7I6gtYwIJ0gepXAKzOL_2yO-S7gkJunidqmDEV3J3Nm6UEnGbPiIMPqS9HyP-uy24n4gXLzxGB-3phyGAvyvVCNEuaHYdWSjTNXCFUd0khJYELufCuc6BCgr - |KHWE958ACIuMBgZLQhtaVx-E4PKblkn1naOjTkG8FMz6qyvQ4pH2VMIezcw-gT4rkHqcwqd2PABn8ekKTiFiH8feRr-XgqBfTfSPSY9AzVK71shHvKsdAbWhPuxXYzsqL2bXbQJ63Pg4OLEst21muzDzfpQTo8o - |-xyTh7NPLvj5C-t8SwP_dSIU9LKZJEcYtK2xIlJMUVasuujGXSKiH7tUSBXWEXiX_c6rldinpjMxzok17hFzAIsQ04KDZLzkOmcmKDsE96aC6N3lSkhjUNA8Fhkvh0NxEQcF0PrpeY2DFRieWW5eEXtMISDwBHK - |CmNjVVcjex1SFAs2t-BjvbCWZdTDH8ncvYZcyjptqXq1OLx3xZvJysfsG5w5oEMSUQM-H1O4hx-jNw8NKvEF51DWhmRCJSCYnAHE37POI_WteEEaWgNjjWPiO_2FF2V6Af7kdCTEXuzfNWY_87uQFNI5bIKD9kR - |v8pF9HU7fxu8qM8OGJcuEhPPqpcUylcGYXHAd7eEe8CUOKkV699iFcamGSivRiZ7pBgbqBrtsrDcnn5ow892pvGqPKv7UwRVU231BFyG8ekSohPqiDbS14nsoqNMSPuzpJUjM6RppLIYIKap0hrVo-xL1XDD-Lw - |TDvx6DoqmxOCVfuYisIJlO8Pcmewj9rc3C417Cc_ALd71a1xa62uQgto2ITXC2he02VZkWIXMuR-5crm-GsJnOlWNvuyB2eIgd409uWwqqdBYUHKlnWHynFICGTxitBPryoKp5vQlNUOCy_wARhlg-5CY5K_EHE - |4ulDRhXtJKzmBE639zRrvoR0sX0lmrMReGOTb-iexUn8fBdgwIA0WuU5iBzou2zLVwemARE0HZTayubWlXamY4naThWfZSNZUdQhGHbieXeP_ZoCUcmsZRKwY6Tdt__lZ2_wgH5jG8BmC3vGeaM3f54PR2NNySZ - |0WyiSP6_EXPtkQ9lIjmf2no9eyVUlF7ZR-GlXn-pysiiq8Eqb7v27J5yzKpWClothY43qELPDqUsoMECSb2vL-SVTAP8fr7FrBRriHHdWylCS2seMampR_-Nqzxq9aNy7wr8R-udD5j3Tg9lPv201Uy7zv_EKF2 - |gzq-UBemBdiuhqDXUIL98DK3R_1I_AMR_WAeTGrJgFcQki6sH2E14_1ZAntzunFDAt3VTMDvCBd9hI1HxRQgIeYSXB9BCz0_XNM9CjuMFky5BycNc5nazyI0MUIrEEvBEPLHAMx4aabyhlun6GBl6qOXWqseCSZ - |gLJklwHIID-zlUX_4Nce-Ddzc67H8Xp6gKMVswOhK7P3Jvos43mMQBpnh07D-brbDAzbP5ckRDCBeQLrkmM9Yo1tFFMFkEWKvgBJ1Kik0xSuZAIhWzjubOQG_ZJlixzXYE092K1EVoC_AjJ9vYFJ6MH74HnRrDU - |G1-h5q5Y8cocP_UeepXefUpuFtvEYBNG0sZyuafsVigWwc2J8CwnLizQ1Cw2AjHM5OqwjaLb6dYF37X3QwmQEKj5ZgvMfe9U96AJXnMb5JhSZ24Xdg2l2FwXOVybQkQFrjTLLqytGEFjquTHmW00ka8Wp69uqTj - |l97ekEQC_oGqnO9A5Ld0pHngltcDzeR84dmdiPf2SbG_rSP-5L0y3j9O4-QK9O0by7qYQ3Wjx3sDFKP4ocH8DNPVp0ppXdP-FKt3YuF49wdp3E5_q-B6NOOUpLEl4eK5B7Od7z7Kbth2QI1IYAJqTXhfpgXVQ96 - |XR11puEcOLMzutZOrPCevfV9JgCNR6Qove-4rKBXzgp58GZbWm8dNj8_KqxE9othNU5Frkp2acgfyaCqBk1keNwwZrs2LjPk8PLAYQZngt-1iNyRij2ZdUX5cj09M-BUaoH1s4KSlBB7jNLFu51GlDddvlCFXNJ - |7sQzaEylRYxuMcnlBFNfE9_lnOazc_6JWgr5K0olDYVQklnjtqS0ZNko7IKB6vrkQu7cMYlSHMmyRlYcc6oeatzR1N3bZiEJGyck7oc4Fjw8Lxxv1x5ibEVAe0m0q4b_rPyyLAq8_xSKqidrwMXpNx__D-Dic9v - |xO-5BLfWHPbEIR47b5BkPMz-eZTQv7SKyBDRJAP50WsQKURsVqyP2nNQw7-liVsXjiR4u9Ln2nh2icRN8XyFNmTJ-3RHvboZXECE-uBLr17AbeNwhwHLrAw3uS4rARAnQbsvylL6s9oEMfhegMG3WFJQCMxuLYd - |U3f3RWWbOBxebwoLRVbeVpD-oA6r1PBfdCdosXrAW7-I8dNj9YERse24uw4GBhk6_TvaZUY5aYjfWujUbvUvjNMjP3dT3grIRVQ3z3gbtGEYiE8WqdJj_mnND0_w3jl7fle-qOQ89UnvGKf33LeAO2TBTvIwnE5 - |jlP7xOGAayzCKLExUIIARxC8mIAtdrV-_iZ6kYWpd-PolbEiHQDLef_8s0RaELTXOyKliS89Tg8AH9G4URzI3Pfoq39egp35T3Ox_2uaS66AgfXr4QNzs9JnWQPmGxRuk1EZjZk9sH-FsJ0Jyobl9cYRBLUAoWk - |TRDa2fV5yngCuZ2OuodyC0PhjqfDxH7dkrsKb0hfSiycioCJNNA-JsJuNdONyFDqKZfhK_LjXR-eINwfR97V1atJLI_NqHPWkWPuhEz1z5dJsCokswfOfPdggVyQ-2jpWiDi13-SsMULshQ_scaeulK81QqpwTw - |K4AxxMLqAmV7k52a2x0YHNvVHKOJMlSUZTt8S7meqh7SVzbs_4P5mG1WTlDBeqUW8MML2rowhK5d04QZ9oeuywKtD92dV4m2RyFHQlbC5SYQZXknvaHHYtT4a9gWMsUcddErCH5lR1dQvBGUU03BxOBUxGpz5Zz - |I9JR0B7syT5MIimbS6IXPnZJ1jB3whqtCRE6iJVvg_ZxLeTpRYfDgVi24q7l7fg9VeCy1z_-T6pgDLTxta6u0IM1D0z0ssAnRzsLkyIAP3Xz3PGlOBqAcomFxQypfeMjllUdWDjKxZal4tWcVx0hsIfA2IpKXtp - |BzM-fL0uitYnccZyIaT7ICNd9e38QNK_65sMZt4iSbU8W8DodV7Ny3-ujMcpdAUEodlSBQu0glNnUzlueeRqw8SIWsjaF0eaGvJe0e-ppTGVD-lkRMMtG_CwN1DePDH4F9n7zvpnWUK4G4KsjII56YIRw0rmjii - |3pWb9kcopdMmktIcWVactODsvlrncnBbXNt0ZrXFYYbF6fj-VASB3GnhsOd9N1VQgWTUnB4jXLoQ7ViZH0hxB0_Sw6NXW7GBl-Uk6OE5s1iDe28pBAnCFpAZ0CvtuCttPgAduv16EVnpCzW3p54uc1BJOEpwtsK - |n_vC9rcf7qv4CC13mv5si-SW84pnPw-O2PgQUqde-KhNnj9OUoey6lzR63GYrec2LsKepNWK-RSzr5wMEWfoeaWHoqv9PyY_NILQnj8XjNLYuKURWynFih9X71TGkY6HOk8n7fYX9pdQiTuwTwL0Ix0kv_gKfyD - |qAs7Eu5jS_R218BwCWCETEuusPuoA5UvAsT39IjJ1D9IrIlZ6zd8mn72ytB6tXKAaSCOWBhHD8F-b4_bXl5qVoqMOhL6H7GaO-k8t7ITBF6am95pXOUtv7tr14yxNbNP3nceXmURBQaskW64tmje9b2wQ-aAz8h - |X9BZDtE8_cOXuuEe986PKxWNK3ukEzZI7C4JCQwtdILooJUZxmX-iVcTiaJNgynJE7kGWGQ1ZmF5Z-B-ejksj4pTLa4zFck4AEnXNiI_OVzhronj4N1ThBH6kQQBuMphayQOoLaroSO_APGwvfsTueN4corvjN3 - |-AVjmfcsWVHGklDcXtH2AGZglz08_ASVYtLveOezi7AM-gBVaxxhiVoWB0DrXfMehj3TBQjkHsrfnOEyKEwWP97MER5cOa2vZQjWmwfPcSH0n0fj3qGy9FjxGszscWASNUGlkXnjuc6bhJCg5dWjWw72BhgWQIW - |TqQh2nfgPS3rZaX1bYUnRemxlA2vX4mxARWsr8tButsxCQ8HEe3gLGL15S0zyQj7EobFa-C2F32fdrZzc55HezjCNb8cBiS4JbwCF4zMrZ5Bv4I708vNGcB5y3exJZLLH4kf0Mya3GpzWJs_hWi8Xrm9jHxhl-G - |CFE8tzVJEpOrn-HwfAtpFwMnGRGv5wIJnLYwIrUjQ7nSAQ6gFKplLIfP44HZlAyxwY4g5FrnSWl6WCPIt6amGaMMiLrCp7OFJtDHx4XMqqkWSwOTgDmrUVobyPa8Y7PaDn5q3_6j9CvJYl1g4uKBk60xAlSPzH4 - |GcZlPnGWb3AYAowaAVoym_iL1pL7A5EwGtEWdOi2rsmwiMxlm6a-tc5l9PV5KFmgJ8WhpSSA8v7tBrZtkQUDMOT1k4hf1sl8N_WDCbry7KuK-R05RWhJbEHnxiGZtgmxM1h3-WFnBJ7_-E-NmDDkY_VbOFJ7wco - |v8OxxgpO97xDid8suehYxZvwmF5YaRZteBCPfK972bB8ER6Xe0ACFqFgvM1GydotB_0hbzXRVi0J6nnMl5hcFbfJnvsKioc54cA1ZvakTl4sbvEQHJRbeT_EBXDtp033H4r8S_upIG8NFjnE4HFM8Pah5kZUS5z - |l3Xx54ZtcRPJNf38_yXM05QILTp3dvCXJfvzEoc0g0Jwt9u15hby810QK4EhoHRfzEGRG6JHmSEazb2F7JTS1cfuwlc7INTnkhR_0VSCFEHQXX1gsY8sIBN2t8fubINwZpN6krpGNkc6RNzHko_c-kf7MzXO23X - |oVCjLNx0Ex9zjp2KcQiYdHl1lgTaAuWZXsmxJxlRefytw-KlIjg970uisjt8opFNlmlVh3MBs1dhF31GfNUuPnNyGvaFXVWVkV9ftq_PewcPJ-KDAOlVRmBzmagCW3QvsodnXLhzDRPYF4Ld-UUHrfqA6OxrstK - |jvTfm-5zHZaD-1qjyQetEypX2gBrn-jaJKbshHJD7jB7jDO5Cpd17R77_Drr_czBScqEEC5urduLGSCm2FZl_-gmnuIW-Uq4DbC4fmVmnsuOhMHeq2Ob8Xfy9wlmAcFKPKqxZB-yJc0cNgXMWcYoopMvu-Hxfab - |a-zwkbq4B0Im7um5LM6KjH18FWPryQwQWaBcpQ1-_a3qB-ZJhtCK0IMWC4x7IW3guZiM-pkEuC99XhNUq0bXxdIMgFbUpWJ94OXvWTPVZR82fthA3ukF2_mXzbCuk9tI5wLnyLrb7AGpv8DeSVFVgXJLRnqePpi - |6ONqztpWIYjMZbq2antkZHBnGw12awsH7l-IwKQ5VW3FmB7dwKKENPI5hphcrz6pJsFYEsk8mPuI7Swhh49Dfx2gk4UmBmUoMiUOIgu2-cCA7P0GN_KMVoIn4NJcGV1Q0uihS_Fol-Dh4tq6CR4E2SgwWmn8hkf - |8razzzHxGRyDCoOEczUgA5DXNNMVMUBlg30xcyNr5U_e0wZd4Am8aw4QmBBEBbXsjycVKsroWnITi57QaENNMskc5uAbf3HkXr24gz4_kY31wHUkaDS6ox23I7GfrK2RDLSeDYtaJ2pPKKUMYGELlBcev0JjcTw - |FaTHfL5_0TK9bkJOnSUwCGzCk4kM1p95IPJCrIwrnZA5xH46ybD34v8eNTPUtxIGnfVTaNWukNRk1--iVtxcxLx17s2aNNugP1bcxDmgCeTm2fVwmmoO260NkUNLHHBqyUufkVljN5_yacKtnhPkOcqbnXzr3SJ - |ifNZJHkhD4_SlEeNEiNSNkICsPo7-5ZyBa9-K2wo0E6hDQ_yLTmEu9hPcaPKvaCTIdH9WvDQXDhDzfnFniD0LOt_5vYfHYCQbjShLs0-ofFNfsXcnkYIvsOWOcnNx4ycwMPKdyPZ4YASyt9T0CKmW0K7BRJmdn- - |PfrVagGHPTYFYPlsQ6q-gg7YLmzC5C1YCSYnKqkKUDQpl0FCsmRZBATMYNH_Lx1xqSHqtl1UpVRrMlwRACBCl-z9DTOl8KHYpP5VLbBMGXKm7nJYa2TkNu3nYWFaijdjDd7GI8lK7-GQK3OYNXpXqdun09pvrBR - |IZqJ5KLw_2AFj1FljJi-oKimVlV4aydGjTJw3U8dFCuI_gsfyghCHDCH6g4se7EDamFPomYwATEHbQCio45cWCb2sTRQKQllwc_4fbZoj61TT3lweGoH97DrRtJSCU2kbIN-zaL9i4kwgN49AkbchIi2Ncs9tpy - |3xxiMlPSQDDENrjENSXGAGnbOTJ4R-8Gepz4KAER_e06Y5q_3Ln0t1e7ONPRPFXEKQODSR2WY6xmuxz8gjVH44pZu5IOdLoxwp7It6XiiMf_QA4CkhLRX6Ca87bmJc_29iOynmSmTITIAGsOgTZPvg396czTn9O - |jvqkmg9qkBXaTJVtqM4NiqYFHJUtX0xxv-ACFRINAQvzucQSLbex6bgb27C4AtwXTjT0qmbyIDYvdQ0WcF5PhH6KfOR6KiMCYW--wMK3kSyRuhR0XL3pmRJSrXczZWuHoyg7D7tUS37T0_umb3FXP5ohK67f9J- - |nPOvQAQbQ_kwIjiG_V6nL6aASZkSyb_RI9mT6dxVPcRAs5sSDV3_nTxINIUzHScyzoj5I2zBnWP4NNLux3UcYQahdXMSjtWerhfFnBAwIGLIVgnmfCtmdmuQU6IkqxAU2vNcLKPyRhjv3pZpOEt_d3ZjwsEQXj9 - |_8V0AJk8f7pmP_eweFzJd2KVyHeIa6N03kIcv999NvlaeFzGv7TNVKZ7WlOezsAqQVm9PSTgskxxqTrWVF1W5uLy6x4So88XLOC49JulStpg2nTe-fMAuwciGvgmvlB3sVWkp4nfiNs6pjb8qaLP5PkuADWiee4 - |h6_Q1H50N1yR3u3LXs9a9GnBov4xLA7Wi5gdrRn0c_ivA9Eaz0e1PGdZta9We4qC-wyaILqlwD5eEvF05Pm3pLvaa-jlneF0kf7NnCU4F0vDdt5fkCmRiZLky6vRvw4IuGOWEg8xkgw1uEUS3_3FXv405kvblHt - |EmFg-D_6VKMzFA2Pd_TwMVDgN8Nk0YUt9r7Ml9auZH3Z679lzqMEFUD6c7M0ZeL3cNraP3-uhi87GH86CjVghrLLmC39Vpgph1wemI6kDh68a8faVhmOJO1NxpONknD-Sc3EG1XH6y-6jb7F6tD4v1gpbXesy-O - |5QYgmbs9CTLW84isSkFqMMc05mHRSD_k4ttyBbyjW7sV6BMCoocgEQWb0D5iy6UBm0HEIo9zuEOzN5ZOGYGC5eE78XD50v8dhUf0KW9yLJTo-u_1AIK-Po9UkCkbFomsqWHFR3-oZyPUhUcDxgaszDSQ33k4NT8 - |jxnP0z5xUeT_J7h0tvgJHZSTiUQXr2CI4D_pIRhZ9RmOSYzviQbtGN4iARVl_XmZP4l6uPsVwD8akvnU-K5W9tSFVuMhQbGrK2X9nR-WDNAL1DHrehJq2NM2IQK_LjcbZBz_aVzJIrb-cCx9S1GPROtt2k7jfFf - |7r0nEzT7ZNOgwBvVCV0NlZ65A2oHaoajDD4mtXuZxaX2YTF8gqvFPwE8Mjp3QlE56IftWQarj5mo6iWuU636V2UNY_TiWpC4bCUSAow5AhTr-wAfiBAplte_KtsvvArZpx-BOBdrXC23rONhr2ZaVZEM40xRY4S - |6xplojZyhZwERmpiMolvWfU5mIVBRbBTtx8jlr9lEyY2qd3-l566I9EL6hzM4lCvnhoPFovz57KnHjT2Z45CY29PTdNHJOr89ac99pI1BWRn78VtZEUMnqcdjIp3jVj5E9GZhChzBgqznadLNhpv3pKo_4TERZ5 - |R-HcxTuJh0nfW_RfvMfA-vaWOOKIiuSpdqDqAduo34lrod9E2eSwuF5HDKXWi9khwgziO5AUI7dOPdXtSHICKpLymbMPvkDF-KMNAHpTs9WtFgmIVSw6_fZzC5Imfk7nTxTl0wMqqjVVbfrWZRm7Rjl7TPpOm1z - |tOkQ0_5yI62Wi3HADh2_BdsicOuM6Ffz8H8YjtV6wZasGZdk3F9VnxyY7SMk11_Va0Oo0u5jDfB1tkUtJ2-onFgdrdpeGZD5qSvZpNkRy63rB2xCcWxrJP82O2C08-pR46KbW_yShRYk-AAe2nVfbzw8fsszIXe - |gcpa2pVf6ihuryvjDIlOexMhBVsHHBHo-RuBzl5h6ExrJTcOrtm8JV_PC4NXK03z7rIxPzquDc0oyYlOk9hH4YpmuAx8HVjH9fpxA7luXggv9ClfnFkd_-_th6JbUsZzUeiIcfVs0S3fh-tcpwHgmbMidPes0Nb - |uygOppYdjEp3_n-NAL-Lw5HUYF6yhnV-rsi_tpY8suvVkPdXvssOqK52rkcyTCUdmxJlZgP_0VWseEsm5Oh7cHipAEV1kDC13R9jhzUy7ehhuSgnxrjiou-0qUophIEGeUixLE3F8TdJ8HMa5mmU-ZY7mkKCdbS - |KmZsIk8EAat4gj9zXNH4sbpCn59WRrMORxMUW3-_fW89-7U8TtXCbJ6np2OZCAxpXPgadI45osZUomyFWkp5ihatfe4DJokx7svNsvChOAbglyyzkywPoVLray2ZnpNnblcZVV409ZyliNJWTyDlpNVREREeSAP - |VfC5VzOljJvlSgmjJqXteLNoyWm8CsmPT4BA9IuEvxCIV6GbRs-QeM8RLoJ0sn46Qvw3v0z2S2YsIrX0Rah0J0fTrThWxCCjsXys-5WZXCHIHNUTNLEyV-mrkQ3pi3oCby-yi4ozG8UKhzWWdH8l2h98jdHyoPO - |WHRK-422WKQ40SGuCMDDq31vYAr5qs5sqyCRgQFyDI3FhV9vG1Z6CFjDuQfzI1zPYPCa8hg8hDEkbnwEJcVdd5FUNiDA1EbQetHrxrf66i_yK1hdhuXESypeHs4AXNcGeyR1CLxghAtkDKVomJ6vTDdo3fqVybs - |uvS_Ij48WEZW0HqJFPMmxO1RUDTJEjvev-y4lbCRricuyldlEqN8dFZXoPpLnO6sYnFMaNfetH-sIJbPqX9gUq0aZ26I2Iwgis1S_n9g1AlbLR0iKR4yRwfQ1VtRWFil7v3hbODiUOZ7tpX8-gTQQhhjDCJEf1l - |sqf40JBve8VY6na-zQVkn_FKc9Ge3oj4ixCn8BrHpgRbKrT4Ixc5Rt6T-eiizPaD6hXJcZN0BD-Ml63b1KdIRLZsLXHJyMCQnv2siug8gkyOlLak2PSQO6VhATxFr1qehmOavBUmoejrWYIFR4uI3lEGjHjHLCT - |vI_BWVPYlLsk4Y7Yb5yeML85fESYGhgSsNhgDjKhiTlsnlE8FEtig3xNxZeouAyNT7Jhh3vnhhlZh0bnqEMQuZp1TKQ-T9D3NPLs4u_UvLqxkJ3uur0YW8XhygHDpsunXryij3MRpX2y3Rk9YVDiTU33wPgtddu - |eayZg9mYv-PSKYaEsoeKLmiyo6Pnk2VCVskXDxYfpqkvgFK2iXV4zI_Iw4YbK5h5r_8JuZIStEuGLW0g-lcNPY-qjNZJv84H4RG4VVcjTBMUlzDu5DRWDpINxe9ty-xkSuUtfN8sqAfTarTJA51HJkwZrKL3-5O - |RJ8P5TpZPDJNgC27znEEHB1Ih3P75aDPcwddxreLFYcdH7PUOeYrBDgDJXzX1n9w-TgEH2q9srPLbYzxiX4F9L-i53Sij3FU9IF7Q9poEKBij57p06jfv8bdCNw6fIgZN3OHNxrSNfvcSFj5zOsXQ3t5kt4sWBt - |hoExLUqZkYPDBD-LK-kdwHtYZv8qQfdQG3hNGkyhEu382n4iMFRV7NIgPPwUk36VuY2hMB5OyzozJGUjHmbk-7R6KutC8dkGwIty0aSPMBNOw9nqDfCdNK-4NzKAJ-IwpX8rqRKqKuMv6TBFAZ6tCS3dajostJY - |_5Gej5aszkVB1FS9CAuDEUrV8L1gt27y_XgTrhjHoIya4hchsEi1cEtzUBV05wyfazeYITOSffQgrtnGbHgF_jSJGv6CfPTpC-3y1nN6z-rR_nyXkeM-dad3dvpieGYmKDmxaDW158wA7pSsHPh_cxoEEbHYdYV - |nsHWe3_55Ip9M3iuqaZnLxvnTQjTpGIw4oe9ReJHKPTJSV4Lw5BigrROXuf6PsGzlBbX3nyi8yGyzw6kSEpuJHu7Z4eUUNEMH7GqSjUJYocV1TiFE_7LRXk7UpjVGLLt1zSYiHlF8wLmy0PtdfEtLuitRbdF8ZE - |VgjSE8EzENryltka4rPpuganfEP68EbDMb597cZk6Sd-dAVcay5OGFq7BX-kmF09XCpxLRE9O5pf_hdoiRdthSuu8Mc3DfuVxghuH3_eJxHq0mnZ0eScSs5uxbx9YVR4mhycumJ4Kfjjjkcy9Ki5QWZWbkPbRQr - |2ZszdGKRCx_EWKb50N6Oyj653T4NxvzYrvfzO8YB17_48GYWs02FUUByJuv_KBSfzwrdScTQUZhJgatoMILE6ZpDAiOLMwqCmIf-jk-zBRdE-7FFZ8CEB0X6GqcqiHQJfXfqxW7_TZKbUY_fh_SzjeI-HWnIX_i - |PA1XTHVDEQI1UxGDE6O5LsCpNZtUD7W7Siz_0-Y9m0Fwq_Vm_ORxtM-8-FKk1Eb3qy9iUI--XoC8gBSrZQsUAIxGNPe5wZ50ig74dDt5IiPshAIq0gsDcWqR_5LQ7SYJhBbXAUvuLvYrhLnZnuKl48vUfdjpcdT - |_2A5Tko_ziV3qAFfVrgxmTME_FU0I3ru24YAYkFdGtZPmIiYbX26FXqUS_lT-8wm1aQ25WhsgLg_mI1ycZdEWjHRGYQGAu_DjMgk_-2cEq35ChxKxCeKRDJSHs1fDKiYoaK-UepzDBOi1chW0I5vF-cBY-QjUXn - |KrEKH1TWTPuZ3aa7pyVf06fPePvs0Z-pla-N4FLhlJUPKwZBJrXX3qNY5VWwpuDfQCHwzZlPbQ5kgtWBDBdVGlRivZovl_362yIi3gRHaOjAvsbJNVtK-fFgEyRf6NcRPorO9rsiJGo883drW5nqTHs3vk5_ZfO - |1rf_4kvYNHNIVbEQQ1ElMZAPvTNWakg4NKf5OOiPNjcJzqXAeoB9zfjaXWXKTfnGAsDIj_OpNGSQfKzCdngh9cWAlXpB_-xPKrhtNz1-AIT_UEUnQsGmWEPDoJsmSb7nbx9EU662xbsbpiUbqY1uoc_Pt_wDjCP - |w-Db4ACtGYJ38xsOWC6-KiaaDcLqoU9xZg0cW-YiMeTzvSaTRe-Fuc3YkB3xC4pF2RSPASIfFw6JMlFeQ8IyIbcCBFff3Uys7kgYFTYhACDqfl3KK7jue6HxAH_13ECHIUdjPlNmX_mwL3Q1Khoh9_PqbEiopXT - |rTnILn04f3r11GaXTcTKpxsVeUlWfOLcdkAduOg4SxCLPqNE3j3pylHvqrIpBpqBsCMQtqE5IZMn2Jz_I_vTR8LvUwyafWserleFuNrjGJKcqmzNTAbU3xC-aEAW3JlVqrAHewXGKjUwocITL39NRxhr03wJS9L - |svy_F0WiScNlVWOkXD16QWXo7FXY_0D9OIyolddArIiy6HHcoKZkImQ3eStqiTyJra6gqdmadXw8KkzdRUW0eJyKL5YDRu7uAh2lGAYB8bjdn8xM1LiY9_eH2i6vTxZ2LA0eqNkxvNoBwFj_dbnEoyWk3FkoHx3 - |Wf7SD0jTeww_581eCK-hudqraaJOIcUlosUULAVaqy2d4-LOGoEGNxh8S4A9ukzt_x7aGiu2y5bZyOkSElx8jlYRhpQFqgLTN-PcImLckhZwzuHjh2ic5UoOFa9NrsJNcU-fczb1VwJiwWWOUKBkbNEG6-qWQaT - |uqkSe9yFxitsj3JwNEtayDU2IoV9BQG4m6hLZZi39hGgX6CN6BnhL6HZEutxjl8TSIbsDaOcCOjpxMFJPsLsYfx3Vb7QSUIDx2QLsxLPRDz91voaiWFKB45uDD3BAuBvseZxS529OxmykhGnetDxKIY3TDJnOBr - |SUdva18GP7yH21gVgrJ9PWQZfV0VkczBnhdqsltaVrwx3u0nHGehEH0bL0uI-9SEzL6cQmv3FeJnpw9RgEM1j8sHDlMFCxxCxNKLEMSXj3px6K8dGtaP5hfkg0HrtQOWGjRwrLkboPcZ0z14zFHt3SbXYVkpwWT - |yUi9edyxNY5lZ8ExqQAi2MZ4hm4pEBPZh6rcyg4ClkkVuoF1F8hZBVFn3LjfazS29Qaa0CBif80_PWevgfn5-cOWvEzbylCM27CUuKv272mcQ5sE4f8h9aKc5zpA0jU2qVPtzBiroiTtJ_dRrCR-tv5bSVbOYwL - |b3nEkad1gcCYHk2i0QD_PcSg__c28rfGHXUitL-Ua1Hhn4rhv0ZC6ywyd6Epn0ETrGF5ajuWvty9IjnRGKnsmudG-NhvXQMr6Nkv51fdw7CXD-YRG_Hy58LnauqEYqA2XIOOO0-NydGSRKPlJR2p4M5tUYmIna0 - |Q40hssl4BnLbbdl0p-hAakVNCIRI7vGYJhPO9RrYKGs1ehcLWdtag8k_9hp5yr6O6jLv8jM-zR5B4AyHYGG-QPq4U2_3xN2SC5BkcRk4BuXkI68dIaASqcI_o6m8S15qmf8cY4gh7bIUcqueEb-3QhkJ1sEX22M - |pppn9Sq5LhHEfVU2qN6_gZHk0vlOsqf2acOz0JflcRJ0i74f8eWpOUSHWSHUPkT_1rFploA03nkOX6Wx1MQAEjpc7KdwRRQkd8otBU04VxtfQPkckBo8yFKXpSFdZmlGoPYodzJ6DCDTE3fCQ_JtkwumEUQXKL5 - |gtMYUhqTtXDaT00I9JDbCeXhiOBxnt6APYgIU9Q0DbfQUMDA9ELbDp-B20ML8ns0t3dmPgESxlaB0USfOuLgMKk-OsnbxLLD1ncCtQVGoIqvuXAlJfBpo6gFkKkwZlPrvGqsLqd-o6Ldf1NI7vTBT4TH_gWGxHw - |LpxERxKVM8SFfaE3xnJjlyLy3XZPUoqnFD28EtDLk_rsZkISNPYoOMSTDKMAQhblDr18JfknStPJJIAm_A4NWI3C1L0h_mIF8_CCUm3KccnJCOJfOc4DfySOYL01J_bSAggTIDhbhotkbJGUmv4m3b_yse5SzK1 - |1ccAH7RSGZCcPRAv_5rn9tvYt7D5RCz-KbSqtCRU7myucGO6R0_GozWhW_25pgUkJUjIVoe65tKwPrRePuY02lrftslYEnJtjtzgPyC8YuDXpS_oXGFwUuC6AeTCzOZp6K2CGuBfDWJb41SokYY2rCJNZraW8lO - |CQcMvNDpa5XSkJ0ZpgxSTna8zUyaJFVMqh9Hhs4MlVM7-KV4oNvuP-M0yPIKUQGjIuDc3RCz5eca6qaY3G3fSEH1dxWUcVT7YwVWtdG8PvTwCAhuVVPLzaVvXF0rBIOwwN1AgkqJl1PE9uZqmpgmcHhn0FAVbDC - |9sS2sIm4HInl9J5PPdIykfseLcktBMhiQ9FoL9FmwCrH4rfvbUdgNnH-L-gaSk_86NngCa3WYVFEy27HvdRZon8nbgI1sAWG1d9-U7CZUd14LQyTebSAsy_VNWuZQWAhaqdrDWu7z8f-pVvOHuDbeOG3QuG1gFG - |ikG4aAUZF3ncxUUTQiO2x_D9jRhrN6Qv2V1rqRz0-WnENaeQrxZ5jHTO2WaZ5LQCIT4UcnS6G1_ne35MXn-2W0j3OcpM9X0pt-3BRsdWZ1pTILAo3gYx_5druY-h6XcQRFs4F6KKsYq6H1dHetTYFYjPvy_SAZO - |KMYoqRTOzSr7tSZ8EeISthoJKUD3GMs9ga8mgL1__MFs69MJ7mzp2-46XUHb0i9x_N5jBnUBUXFq8VALglg-ap-pq8NT2sOjNB9xIA8KfmSo3jslPExOC7LDbtoOrxDCAqZ9PLHl04SYhpjAJYo3Z8OTAwDdMIn - |vm00u6ycpceUmmUezz0RElzpV0ZJvcB028v3CFtboi7b9099Sdq1GoltdMRr-PxmLBKbDvEmnC5ejIBLVlcYau-K_Po9ahrkwevn9QoWC9FQ95QXtXFgpX-Q5mrnLY68hgYMIKNoqGOeOx76T2C9ON6ZMnBEaT_ - |YHvi88Pi7OIRcxVFuvM5isoR6v-vcqg4ISVbp3uhkfe_wQa_86TtEL7Uv_rAsGq3FeEYRc_Axinv8FZxuTUmHoWpQe6P7LLG_aEo9lGDc4tJ0i1cEp5vnB8brL1mqnZRY7_RlVV5Qf44tZjTGfYf01bYCRD5mmI - |3MGfBhO1bzywemCN9fUKUI5I-oNCinuTW0ku_3N583xatnUq62ZRYI1uCZRnFz1aIOKjQ0lAY7errA2Zm6TPFm_-x9eSY6SgrKPvPELTUx40m7A7wKMOLWR1viqgb24uOKAWey_IPzkGF3hc2gNfftOSc_RwEyB - |7gnbetnYjXrQOSpspOB84ZJhfG2stHFpNE_2BA6ZetweLQaK_KG7r9gOaVc7Pgq9DWRRON30tUG9F7rwSHwxEUSekG0pDHFw0dvswLkTMGMoQrfVo532_5zQ-lbHbnSTBC7rLNZ5d4VQniv_2tyU_mShYLIZM1R - |0luqN-4RvkygkzUeaE2itKiCw6iYpPJ3b7FOE4GsHTJ6VC-jAgTCD35Z3V7_yAkcBGzLRcydkEFbi06CFwX3Ka-R5butF-TGz8iAoYQCdH3rMs8szICGLxcG0FPHYl7Xh8u9gCV8Tezu5wY8tCUi5ToDtG6tGEo - |TcW6I98qSXFWGhgHBCANVybyGiVL5ov4ddH7tvVwjxxabk7bFfEtKcJyX5o8FMxMKprR7IljadCjbCABHlaFq6bMcdRJO8JHFeUrqliN71bCU5Uj9CosXxm2V38cvZ5Cagt553XEB529IxyUeu0lT9D4N7NfRV_ - |Jhu9eEXDwF7Wt_WFPB208g4ZM3zAOXUAsvCTsr4eXBMt5T6A0Uz5Go41P4kIrgMe0REif83aTWQtw9iVdMC61xJGGlGRKt17CP9cnWWEZ3eHjowweICapFeU7fHzFvcMbViMLzTfIv2VrAtKiPnXubRae_OAn_J - |-JgOjRvB7uwV_RuC6EeZwzN9hFiek5RfLXGuHFDKFoevLsERrz-d2HXgPiGInok95ne2nHmtiTpbzJsO51PNc8GgYYrpPx3bSkk--WuF8IQA61DGEPF6XYQmvlTSwXpKM27T7m9ffH_USPmrmBNUdGb6Hx6TmiS - |UdtzBJDGPeVZAMkkyGa1QrL79XPU6nYl03D4BcFytE5oqAQEowMqjwYzEWUEK3P5qwUvWoRJE53QIbVrU3babaHmlYxa11wsx5WTKfl9pCZ6qjglvXRcK3HSMq0fiB9FPegZfUZ_9uBr-d6xFu0I5tIsRP8SS-C - |b7CUSMXGEZvtlthLC2LmwRSpihP4Zvm7G1aICe6i1krGDem1eGJVh1FXeu1nZgJN7DhbCvW7EPfa4sGcLn2tdeo4kEhWY9AHXs79L_jDC2WdXwtZ1MdO0-UeWvyjlCTANNZOZt0eDw7Be1qjwq9ZgCksuKMPO0z - |6S4z2VwlCJ1vcML32VZPJEjuwpGkEfXgU9tOTPu9jFHrO2nU_l43d735a1vcsb7tDrK9b6gX6nLPq2xCEhK9qHGPN4mwTETFUjCSSrYSmFwmpoQZhrj_x6zgRPv6KeUoC29i0OinsPgikDdd1C0lMc6XTSA4YvL - |y85spU9xxcxlXpsX3LuwT82BSS6n46cCK816pclsko-b9vMahvyYYEaNoQvn-JK5ICXW5RgeGXSmUDXqrgJUougAxtjqmd32RpqiQRO_dzwVYHurxRRiQUigLDUux98WVW98---U58wnOZuvHh9l0OSuZxh7loH - |4ffg7MKhq5yy01Iy8L4VDQqQiA41XFTfI3pwTGP2VRcv6xLjWyPTADROVi3K1H7USPS0GW2JI3QcWrQTRFVcEbFscL1uD_n2RhG4ALYzJb4CG0B7TR8YWkUgajtez9IxywHzHKtF6wYfeurwZ9sRgFWbqdSEOAD - |OooncRDdX6adhop6lGy7KI8dBEVFTs041Er8ljtt0mQaCgVAhk-Qtd4BGzbVFwOK9cSvXtqW_IAk--ZYPfv8jpBFut_okUJA7rZi-jqrDDexkdlJ3MK3bRdEJp_uooIrIpl9qYsw_dzSD6k3ONu7X7L2KblbFSs - |XWjkK5ZnKgE1FJZ4EHc7CnU5XsHQiwVcFWlkTNVMsY774MI3GRKYhbMuURpfaA86RZjgE_R6AwDgI6fI4Hx4QsfI-di-Ks2Z0GOWq-2A1Dqh0cu6nOLpO_p-ZRODDAlhKHQkEBCo88GuMhXHLepr9gpXLKG64-v - |YMk4cuHCNWgyfn4oPtvE6Q1YliqwhEgsmk95sPTX3wQ7C-0P5m_ZiSqvYsP5ztAEttm4Q_VRePNlJOTpZWLLk0ECLPV6jAsDHQV9AI4RlyzW--VhnbcoWGrdVuMSCftXra7zjcRKDdULRj6u7Ig3auWh-LU-md2 - |GICvc7CACFaOVk-AjDdP01m-AUZo9qxjzJQswikfX0IYHc_GL_ugEueUHVKiXJLGJkORAm16pyWqJ-UkgrNzEuw3iFHJj_IBBUAYb163JnACNeI1VqwjNbUxwrILlZlfDA2MozFanpf9uWvGbcCJMsXfFYOV0KT - |dHRZeczvi8LcB4fRf8OCK3H1EXt7LjjR7mxJ90ZT1mQRvFFo87NVxHmUMKnpn8-RDuksXazOU60UkzqXSvm-T5AyTX7-kUVR_bH8QglJ7IChkbWNZlweaP-fcr6SA-uWJpeKY9o8LMk89GmATsyMB8MIhR_WZAs - |TFnNRDmSYgrm9W-3j1fo8a2_sBDARI_25uIukwZA15P0UkcFlTbsWP_nu4U7VzCvb7muFn-MvTiRWyQK8y8tqNs7V5GFlwb_qQE4391HLqP_loVC9R5TJK8Glubnkj-jlM9HNNQYVvFHKdmx4VMoTaqOhSYcOVP - |fUtlcdb6Hv09JUwjNq01H766RQzo9CTedikoEauFXgnmzKvWSHAQ5tQGJ_EMY4n9kw0qd7W317aYZeKG6HJOvfRwKML_NKtRriGNFuYbu6Uv0gk6vV7ltL-3Ba9TiOfcLDyguDG-TrpP6-fZ1HIDZ4bk2P2XT1y - |aBpy6znEHBWPLSCJMRl5dJQYIovWK0it-_Or8VHTCO0vwxlH5Ykg_KyWdrKNRuNb2k3DCrF1FWVTPf6UuyHVtJ6MS8m3P3ee4qguKY0rSgXhcIIMk44hFhTJ7VsuWeUCsWM2RaO44Rup4RzMl6NjfUHUZrfBDAJ - |gTtHfI-ZkQk-uWIQzVqgwR6vD7NGOZGeJrf5NQsvg4ax1Qpz1vg-UmoYoZxH9XsNbttGHe4me5JovvyTl7uZUVPpzV5lKXP7SJpTFFnVeh5FzP0NKhEMsQwmwUgngaS73SmCXBjnKxWbo82_k-QdhfKaSo6nmUp - |hapc2WOxKTx1g_zqpnAupRsOpJUVo7bsXVKszDAZ3Ga-yq11SD6MHmivTrkYvvU96wUULTxqzzYpc9HUuKVRAeBLJtgtqih20mVSD9LHwSFX7oQK69HXqnAuHrBnD8uw-H0YS6RUqMq0bZYyQdMcUtfUXVRGk5q - |08yQGG02yJgTlIFSph7tCJcdsFuOvFLCHeIOpWXuT0WL4ni-rs5sLwm9XZg9i7468z1nk6nrXE9X7eyfXNMGN8h_IX2Cyon0WaJlp8WWnRcSWe65Ee-57iRNnhX6eOgtM2wTVODtUvbIIwK4KyQ7iVjVzDyVqpf - |JJdhy-iDQZPkTP3hk1teKuKVOhCSRqUFN_8jHP1rY_W22y1Djbbks4dezllnrH3yYM30thQBkIDpVbwra1Kg5f5GWUCoqRsW0pK0_rbX5Fscp04o2O6Ix_HJACH8ItSPWpt90Gcn02tTKSJpvVcdfBJWLYeX8ii - |vf1rISHyaOOzBTO97eVVrLuPUJ3RnfzL71p7Xllv7pAaL_W1FapR37gpyYIR7JTau4gWFstJRkTt1Yw9jibKs0KnrzUqIUl_J2QuXpOCPIQv1lBUpAMuB33AE1-Sdfdk9hnwgJ4p52RDnigY4J6SlwaXTUoAd4H - |oiax9N4KwAluSccXcRAeS6wWmowaqpZuesrz_GSj5d0sMSNRvo0KrgO-yVV3240eqwyyK4ykx1Ao28zclE6LHjwqohs3qaSUvxucCZ-zxz7H-tKSzzYY8EFCuSRWm8d4-sKBAZHnC9g28Uv3kJQgifrbkH7ZK-K - |gumr6CmbyFUxbkyQE4J1jXAgnW-x4rKKqs49HoJfkw4QHwCaMy-F1XpFccIDG9D71AJrp9at71KsHR7bkStA8l9Jtx_LLfEPggvr5yYVXSOeOhRlY5roGL4KNH8pJU6bp4LSa6LPOaUb2UqF3hifbWQcTarc3Yd - |YFEDaiTtC9iFd5xfFvZIOYaciOSDQzILKwspU1kRgSYQzwe4szyJEszJjtPUzzHx_nMPIK7CpSMkxNCEAGuvis-grBlqxTjhpvzPg6K0CjwSMWxh8KN6t8CEB6jIC9yrpEX_WXRWoEjTSQkVA5WO4FQiwNZTFoe - |mKsUfr26JdAYCtr1AA4L5UcnuEf4_BMnHZHndVII0ZMCQfJbcoEqFU9seFiSVrWp38vycEsECU3DZ0FXnO2JtPHXieCLq6RIEEm8xB7w43hBNVsy8aZj9eSewZX5CqlnqqlqTok44cQvw9jEDQNs6YAAMFe_i2m - |46xB1OjAp_xO0A41xuNg0WqW5rPT3C3Bo-2SclIP5NziXpyi0a4NeR0tmKs4ujDh4T32H3d6cc8em3-BWeYQeUV2h25ZbRswPq7fLrALV8_3wsO8oWMX0LfxpnMIewLEH8dT89XdQFqV3bRTkJ2ilCv0xc5VRRH - |u72TU3qO2oCyOS24zzEodMCxF8pSrvUFtZRkw6frg7jb7dlDhMRLT7RO5Ipk_Hy7h3YFAfv-QgT2mk1MRYEBaQJhEdG8wMvdQ_PpXiubztgDuyOvl18_cayQ3f9MGEZIPs1H0Ar8Hy3tgXy4m2aJTr2BcEknrpr - |4ZUSCta9s1CMpVPdWGVYefOFItWyXPUaOgmF1qxQBPoc5qM2qFiO_6KmZUS-8BXZtgLqmOdfLg7-1nBCT5DpgADAV9dR5bx7dwSyqD3T2ZL01McL0tDoWleKlPtesa0DUBWGZuDLNRKcoDR4dDvJn7x-6byROrL - |XfFoo-dVMJz-x55mjzH-LYK2iObKVyVQY4FQ_fgLOSix1jwF7JjmLB9GlOCsHJCXeeKELiayAuep0zfmeyJDE753V8_XNTjsyhrjs6w7j7W_VR9_bTDC5GmIiuNo8_BKiZIn1NVQa0uIjnxT-NELRXj-ndFqqSX - |43hpbDNKBmGdhgco-MfvDAmuH0psCLhzFxTZRKsnTA4iLjOFkZF3WAntD1FWhzBf0uBZGhDFD-nbAoPOG8AbG5wWLFzgRjWYvNVfOhqrATZRkm4DLNcrMQmxOiswngHn0JspMwkma3tyXF_42zNVGkWwuJT5YZz - |25rnvGDFIWravBKCgu7qsLWZptq06h5mZDIWuHo5adIIuv0Mln6SwM0XPOu1OsgrdCiWsoixH5_qGmw5gD5rS353i38BWGcbrNaQpi-POwGXzw5XVY3ciFadF3vPi2bOcCyeM-xUhed22f3GN2NDePABuOleet5 - |Vp-4zWyI9c_RfstoWBWl3AQ-fp3ia8XPOECrptWW0NTeaVC4b9NJzIivSeUjZBvAkHGwWO5Vdz_GY3XwcOqsMml857XuOKbEqtnQ2gRQ12x2r8LjO-lhI7hR1dLDJTfiXgfTHO0SgkEGcuzmb1lZwKPy3YeRMvf - |xXijXC5LxDoPcXKNJ4h14BRhth30LvpRMuPl6Q_88OShV7ABAEHFvxjgUUPZ1SWhswA_h8jcUYovBIC9Izn8YSXstHrz_iXRDeL5JwtWMh54mojnq-T6srfEPvwQqQwHe7oXv95MAlhe1D_0UdR6l8zAf2dA8Y_ - |gIKnMLA-ku5QW7TOx8q25XMt-KIT6vFw2ozwFZBXnAEnUMZB68S8FuxsMOB-WKJpxatDPISunXEqVsesIIYSxnHSG-icq7YI6fPKGDBe49vsX1U8pipjeu4zBwHSdqSmomnZYznfBT_i6_wlptMFioBSG7MEbeD - |ojVtMPKwz7fJTsv1eAIKSCB0-8KmmRiGd0TwEVqpvXIhzSDePWToPcLme4eO4wAvQ8NFIVpIkL-6BAxFnXu6Qza1aIHv4_IkoUwIvafUHaDANreAzhKEPe89AKN4PJWHmOR009FRn_piN8qK0-O3V1YRVEhhJKE - |U2e9K6o6PqGS9L378zkGo80doNcd0vLepyvGPPCvBSkD7pom8CiP9ZKeZahafooqeFgeC3XJXXr7-Q9M41Lt9d6fkG5oOqgkwi9-mLcrsWBUJKkuEYyCKTEo_3HD2LZeIYUn7_73PXZ2C-UeX0fp29jW_fWhk86 - |XyVPkCG7UCKSaHcuhmw7R3wGROMlHe-9J9rYPWDRTBQ1uVxxPxV8enQGQdyMqRkSFmqF3KBtgGEt3AHVwloMwm8N5oFUEjscPP6IMWdxw8VdxqUZQyB_wYVUac35o4W75b6uaZaiTCQ9o99yK4reLBauUVND7S0 - |dFLDUlBPIRkGeerbwFwpoXMUTdjy96uBuW9TRPF46Aq_MHu4iqMZJmqldR0kIK2QRYLbokF_GMSiv0vPqUs9SpKnwUppzak16Zq_UzW_72UamWcAfjBii0oHceMqBefaKGFlpRKf6yYOng4j10zUbDDre6Tv3tR - |2xz4joU8OfI4ocxyzeiLaBUlfjJjfdJxc-0-BJaitS9uqLIdlVwnMehpVWjEcDC0BLmvaVP816nRBgUYaTw3BbO59uZWPrMtly_jjuxpKDDSd9KzAdBiXJhTS95DgPpbLqT3Ek0iMixI9PPAHdaI9iCUniWAM1T - |PEaZ17Fu2LuZEtI5adj4O7NV3v6t2U-YaWp-C7dj__f2_AEGmkR60IaVJFB5A2zqD3HHShvwYbYR84iOdLFd7V6YlAxKbJg3W7yeyBcmo0CSXV-jcBWv84WG5-SEYxcJAn7w6PJ3-UPe7nm0FfL4jMX-Tjv4BLU - |9f_01bDVdZCeLvMb1bpxiC1k2Vfgd0vBW4G2d1KShwKMw605Q-PzwnyMVYBC4rBHR8ea-Lhe8iW6k3A7Zn60ajp-nzlV4-FwCgpCWbC72iSQ9Ddvu224mrG0r-B4SXBOGz_NkEdgM8rmrl0EOWDc26Ry-o7WEsf - |SoYzCB9P1SLoj4V4PbDaKoYeFLo47fG4oDmfX_ePC-7B3EN_PRHHSfiNRxBmw2WiLVhs3kaT49-3aQGxRSqZpTP29z5P9LhsirSrCZc5G1Mnl0iN0wF7y8xUMggHzao39Pu-fDinV4XeJVC9TMnd77aB_4kMUxQ - |xnjU1J1-1zY0zV25HjhZInG8txA2Z9MUl3WClTJbzksWBeZG4nsXeLiaFAkysEYMsnrK5TTLlexGEBTn9W2S8hqFvicvglfQvpA9f4uA2KVyltgWfaQEY_4ZsfMWo2mM5yCO-OQ9PiuclqdI2IclRrYAhhh5Xof - |LzaJ_0RTopwDTsfJS4iB1Au-SgrOZaR01wF1DkGlulzvG1OtJ2nX4WQxYpJZnftRFCgQLWlt0ufPANpwEiJGin6c2AxQufSrtrOGuXFbULJzhBtFRRyt3_5t25zX-aKS9EPwWhnSFavDgrAUdWlpOhTUe4I7E75 - |DFZBD7E5AUhsuZ6PlVmyK9z2F7UHuoIrMNxKu5wkaBZSY7gs-zgmSbPl7UXDic8Sp9kBKjh_XrMCvhpJ9TlhHgOVobaDJO76Q8TW-YvD_zHFQAiBO_-57Z4Ui_2suHtOGZSwWTWnGS-2O3wT1BMqOKCfBGsS8mp - |tEI7mfMgS2z3i-vN_jHNEr8XAp37DumrFpjh14dQwvYE715ZO14lxsIN9rdg7-vZf_kAY2LBclnyb616d7qSf1uw65BZvxs1imekFfiJudCJ3oVPh4pbIyUfaONqEF5hHT2LNaZ1CycGnYkLO7skoWXb7Wlu-UW - |vc5fixbUkHQbxweBWIgkRMb9M_yh0Z4rJEgHg2a7d6hbQde_mH7LP-l4krn29iM2r5PukVGKwZHH-0K_csrqOfLr1ED7vv7Jew8yGGJZyhAX4LkqAILEbZip2WpEKLeeJvRa0WypnfeHeYOyOUWC5uzdBrmsWvK - |fIfJ5Na4wfIu1sU0chuacXc7wn3SfdCN2tB9HEf21eKZBkaujwg--pdV7WRNGmVN9SRTBY__p1WP2w4V9UYsMOHV9Wgbr0UNxVxqxyVrKsSOrshpMh36ljyKofGjcN8dTB_kccGFPdeRXg0LjsPGc_oCe8pX5Iu - |Tdo5Pfo0sdY01F7uOrnZdKOzthrhChyM4E65Qc0VFquhDybRTXm61EST22v_Eov4e3i2IgoaGQYnnP2czfSbEQNS_vc0WF4vPODPkLexqY9FMx4NqyWnuySDxs2AwTaCs7PYNwM_P38CSPac9_g24_RqcOsDGgg - |kfnQr0QBnYJtwrJno1BiumxgzkRqSRSyOosomhcZ8VLJp8G_gkx21zVo1-yJZ-EOCoczE_70BgP6qqBvizi8htZY2OjwNSyPIK7_stS_U2UM36G_LBFP-PpBKc34xA-1S-oVs6fT5dHHYBJwVb8XDUuUQRjqExi - |oYeADUNfdCMuc9TXfAaEmP1HNW8T0XxzdmDKuzhA2eClfQR1O0LldZKONB-ENfB6Dbbpgovt56gWVpIt83MVmhqtCkZaCwD3pgT1cOsmJSoqaL5ozMb5S2MOyrGdoVQkc_mJb7L1RfaRU6Pd4TeuRORoP6HQI0Y - |zfkt1nIhkf2BDuy_2bL25KmUJrNUUUH1RkfCnkOgbfDvZRBRYNpvWjP1kjI6WFOkI9Z992I9q8D0r9s_tB3VIyM82qcZ_FpQ5MtH53Mz9jkJXyX5Yxa4Pe93Tw-Ddx8u9w4SAsBqjD57Ylo398PwpWg0aXU9CP0 - |sjj29P8yoLiVHuZ6M4ciryCkp1pTgvVh9ouhNB6YmupNyD9Eq88j8eKkIwsPF7P8AaUyqmqou4AOFPzKc2kfBvMn7rhlBvCLDkAqqjA-DYSECuT8g2vAc4T6VCWiX2wYK3gNt-4x2QBlCzaEpyk7i69oFMBibOm - |Ror6a3T5EF--RlpDJCbJP06L5UTZkmbFQ1zl_lDpDMNeIuG1yBk3CnsGlDrOJ7ChcnY6TN3DjcQPZ89oiVp_A1UJtspgUtEpArjzco2SvyA7WQZIKdRsFppiYJiilyYFrwPzRDax-hhKdussKqC3uHDTkfquXCk - |rllrt4YEfIbZXfdYSxdY5KRDRwYwcupQB60uebyAj-UQJyNU_j2wBMH5Q3QG2B2ubXA4D7ATEjB_YJtTWobUOABLdYqYKs_MdmPLK7Rqh4dZK8llz5BGV7UXAXF_x2f7gbuwvzAfBdg0Vd9M_sQCZ3ZdpKe22D2 - |Q-wJIqF3fy349KEMURc3McPQZIkM-YWiPKOX1U5pINBzooq41fcTf1mNy356jjbbK1qd95V76z5RWSeGzHCds7mY_w4rrpDOysVeHLW0z_bpiro08jUdzjvVOjFcTH0kPzym9wJ_EEBFvznFauraT7YOIFTQLUX - |mbYVZV6Jri67XdneIVVklHE0b-Lsf-XQxc3eDSVu-kZwEP-oHnYkL5daCLeF3Y7-biUxPdzVEXjq61cxZVzCggcCK1cwoHEaY4TI7YQbJ0zd7M-NyV5njw1fvMnm1EBvnqNHijmvuuZc5riMuYHfIqssSoLA6mn - |tz5TqVLAYd7t5QVv_t4Azk0jAFfGeEQeApyBdyJgJBAnhOkiHpLEkFkSiAsYj_qFbi7fmq1IlPvTKh1SrGqZ3Yq9smVJYM2ehOpW6XtGMAvPChYYZ3H7xLEbPZ9ZTuXISqdewcZcU-2tZhopqc7e7Y8Z4GDZfng - |BsfCkPNW-HPkpP190NZKrpHLnvX2Xt8vEb3CSZf6lrD72LMCY5G7ajbRHk7nDB2WDUz3MNKF1c3aFYy2SWC7NsgdxQuHfNgvF3P56E-xrvvNcsPTnh7_QvM7zZ-N_lilw8RC7xvHZysBgaIJy1eF3Hsnw9Cpjjf - |mVdGhn-GjF7vYBKeRUvnaQ4kX2jJA0ar6VQv-X9zrJFdBnKvw29PKLIRw7bpDhhHkwyZ_OJkLsJNRoTGe6-OSrSe5G9ZX9FdshgFp09nTeBsLaA2i5K3uOq4XnQZZDwlqi-NdUsOpdOQyzumVuNAaZwYu1mVPgp - |itCwVbEZcC0uJ-cDLnRkHpey5_XwY5Sczsrr5QcRz2fNlJ_SBA6dCZDqzWicTG6Q7iH8GwWtioB3s9atszFQ9vg3kSBZEswm73h4ZQ6z7qW4ZQPZAHm42GdySjao8jWhpm9HDoenLYv4X09lPYjAIdyudKRZ2w6 - |T6vhX37g8I51M3eDGFghGE1w3Jz9iIoYsuLfhpMaT6EgcikUIw29hd5khV2UBWLDflsYXeU3Fr_GO_NOJTK0NhCCct3LezSa1uFEbih0laK4En4NkHg1u0i3dLayt_GxAnHlp_bhX4b8DwNOrZFo-NHivKp8fw_ - |_NigmR2u8Ke0HD1Ehf3T4WcgC3aYALXWmoHGXoEVmxGbgSMqNwk8QQzt81DvFFZO8HAFMTNIViFaoHHvxzDGsId8lokS3wf9f81gLny_j3MueTzXlODnU9Tl6P9JlDwPysa2vsjlDqy1CUhItWX54IWXt8_zREw - |onfDDxcHn3QiyuxIvkzr02RXfw9se7ASoYHDIcCrbw67RZ0Rvhwygp522-S-sNKCX_K8nagUaPKO79pUBLJOfn13oL4C2f__M7RvUX88idjQ5lWqpiV7Gmr8QlBgvNz8WcVmkDj1K6GajbQKOlVquukCRTC8fFD - |vPM47b3l5RdaY3x9BW24gdZnhKWi5e8h6MEElnsd35r6lDcvRHUxJF5MGsHk7qMJFLEH8816ZAszW0SlVLN28fkrthFr5YYkT7OLq7b-98b64NyaaGBCMTnKRSrS68qVITT4zuMyowF4t70toiLzZ3l1lVHg5G0 - |P_aKrJ0jLo-5791g83rQSf2vETO_tQ8__3GINed8uHO6M0yPhoBDF1vDK_MTWFwo_HZ8ttgrGKyiqaXl4rx3e_dZtA2wuOWdmArCfNrqlYQFIA_CNVjqxMF9yEgagODhXGhLsMRBgvxerwS3JscPMmfEBbKN3lx - |FD_URqnwOC3jhm2V-Wpf50dUCWYKWnDl-oMBwPpFF86HCLibT7QG16ykv8_zJak4hlu7P17dLTnwcrsr7yiPVmPlfONUGScbqlef3xF6MXifcxX1KkKNJyx-9vXA3IW711O8hLxf4ecNmCpmCAq9qhvxCQ6W1uK - |DZajSnL8YhBCNrrZsguZEVe8z72qMOkYaaRGdck3WW0d1VAqLyzPUJuJkHGCsnLzG1H-uENh68HDCDxiMU3M28hZjlpc7b8C2ukB0eXv2fyQkLiPGfPTU8dugtrFyt3ZAkR0v-0cdt8mBQrdplVFDahpVYlWBOa - |kxDRZzyc2ySmmbwy4xSlHEAeUmlPWwxyCvMo-OiZMuHSXaaHzra_GAztQIBdm9BHkrxMXFSKYj2tNAIRG8G4URHtZybaGljhzGTlrgg5RvC2q-KvN48L6Bmc_aMHA2yoNKniC6l7z6h5g9mQHwSPUajT384s0cq - |MnCjEDPx94CIIGkAzbxcBfihSjqH7zLA1PkICl9tsbgk8zDbbzy-Rfbg1u8riYuGn3DTR1I7jhE-RlQZVMDOexYcIpK3aqRiMnitPteyppJGnH0bSSNhqogIMrXaNCcQTQNW-TS8z72mHTws0CTzBov7KA840_e - |6U90BQQjcDam1drNE8P_LP1Z2in7Cd493kU85JtqPwoRmpeQhWh4T6U4opE4uibAX27YLhq14fEHxc7SNM6kPynhmCzgN0tEzz0ZClQVUPcY9h9b7CU0dY_q7hBiGSty9sfuR3wT4g8oFeSQNZeJXBbDxI2CIrh - |1KwlJlIfkfbpIRnB42Lu_Nw4OQet11nvW6ly67yOFO7mI8oyZE9jBEcBCLqAFyeVbEbGqjN4-6PfqnQ3lHiT-pisPpMropUZaqdo-y95hyFWzZM2mpm-lMg97Mf58IH0WLYaVzN16WLWXp7UqNSgOxcz9T3IidL - |wnXHS96rH81jnIKH0g8WAHNa1cq-KUFr-dfT6ShjqzEeaAOVMX4JjARjtEvfo6_urM80-iRxWhqG9rnkvcHlOWBGE0mq5pCimqTULzICHrwaVdh9tu6Q8gnAWoUAx6w-x9Z6o79K9pSWwt7da7XzuiY-4e8Mq9t - |Fy4afAsA9iUNkm6tEgH-5E6q3t50nJp9b4LUNk3bublsow0kT_cD-VIBEP9MhQRAD5agEdntenaDSmqgGfxrgKrXJfPOY-64j3S4S0AccwCMHMVaB6J5v0Mwa5z_7xUhjCf7NIu2RXP1usClfbPcL1DmS0NXo1_ - |UaM9yE96FhnY0P0_6WDuESkEYvavROJuQpwCYiSypfJ1MGJy691mWt1UPJLZwC5Fogd46dPA6fvE-UEzIEMTQTnY7QgQWlVvuRarcnL1Zqt-JfBXYbqEy-PvoIuxZLet6J33gSihNcM3zdVeSfOcLQk8HMg6dSP - |oymj8RQpL6ic9KZ1nUoT8_i422zSHXHzL2bhqSN2kY9.TNyoAtURMSk3cPQpnJpjq1iJ3PpidylfMnhTAJYAqrs""".trimMargin() - - private val jweBackupFactory = BackupParser() - private val microsoft2020BackupProcessor = Microsoft2020BackupProcessor( - identifierService, - identifierRepository, - keyStore, - RawIdentifierConverter(identifierRepository, keyStore), - defaultTestSerializer - ) - private val backupProcessorFactory = BackupProcessorFactory(microsoft2020BackupProcessor) - - private val service = BackupService(jweBackupFactory, backupProcessorFactory, identifierRepository, defaultTestSerializer) - private val password = "Big complex passsword you'll never be able to guess" - - private val vcMetadata = TestVcMetaData(BackupTestUtil.testDisplayContract) - - private val backup = Microsoft2020UnprotectedBackup( - WalletMetadata(), - listOf(Pair(BackupTestUtil.testVerifiedCredential, vcMetadata)) - ) - - @Test - fun `export and import returns protectedBackupData`() { - coEvery { identifierService.getMasterIdentifier() } returns Result.Success(masterIdentifier) - runBlocking { - val protectionMethod = JwePasswordProtectionMethod(password) - val protectedBackupData = (service.exportBackup(backup, protectionMethod) as Result.Success).payload - assertThat(protectedBackupData).isInstanceOf(JwePasswordProtectedBackupData::class.java) - - val result = service.importBackup(protectedBackupData, protectionMethod) - val actualBackup = (result as Result.Success).payload - assertThat(actualBackup).isEqualToComparingFieldByFieldRecursively(backup) - } - } - - @Test - fun `export and import fails with wrong password`() { - coEvery { identifierService.getMasterIdentifier() } returns Result.Success(masterIdentifier) - runBlocking { - val protectionMethod = JwePasswordProtectionMethod(password) - val protectionMethod2 = JwePasswordProtectionMethod("wrong password") - val protectedBackupData = (service.exportBackup(backup, protectionMethod) as Result.Success).payload - assertThat(protectedBackupData).isInstanceOf(JwePasswordProtectedBackupData::class.java) - - val exception = (service.importBackup(protectedBackupData, protectionMethod2) as Result.Failure).payload - assertThat(exception).isInstanceOf(FailedDecryptException::class.java) - } - } - - @Test - fun `parse Microsoft PBE encrypted backup returns backup`() { - runBlocking { - assertThat(service.parseBackup(testBackupString + testBackupString2 + testBackupString3)).isInstanceOf(Result.Success::class.java) - } - } - - @Test - fun `parse backup returns Failure for bad String`() { - runBlocking { - assertThat(service.parseBackup("ASDF")).isInstanceOf(Result.Failure::class.java) - } - } -} diff --git a/sdk/src/test/java/com/microsoft/did/sdk/backup/BackupParserTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/backup/BackupParserTest.kt deleted file mode 100644 index 02220593b..000000000 --- a/sdk/src/test/java/com/microsoft/did/sdk/backup/BackupParserTest.kt +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk.backup - -import android.util.BackupTestUtil -import com.microsoft.did.sdk.backup.container.jwe.JwePasswordProtectedBackupData -import com.microsoft.did.sdk.backup.container.jwe.JwePasswordProtectionMethod -import com.microsoft.did.sdk.backup.content.microsoft2020.Microsoft2020UnprotectedBackupData -import com.microsoft.did.sdk.backup.content.microsoft2020.TestVcMetaData -import com.microsoft.did.sdk.backup.content.microsoft2020.WalletMetadata -import com.microsoft.did.sdk.util.defaultTestSerializer -import org.assertj.core.api.Assertions.assertThat -import org.junit.Test - -class BackupParserTest { - - private val vcMetadata = TestVcMetaData( - BackupTestUtil.testDisplayContract - ) - private val walletMetadata = WalletMetadata() - private val backup = Microsoft2020UnprotectedBackupData( - mapOf("test" to BackupTestUtil.testVerifiedCredential.raw), - mapOf("test" to vcMetadata), - walletMetadata, - listOf(BackupTestUtil.rawIdentifier) - ) - private val backupParser = BackupParser() - - - @Test - fun `test properly wraps, serializes, parses and unwraps`() { - val protectionMethod = JwePasswordProtectionMethod("foo") - val expectedProtectedBackupData = protectionMethod.wrap(backup, defaultTestSerializer) - val serializedBackup = expectedProtectedBackupData.serialize() - - val actualProtectedBackupData = backupParser.parseBackup(serializedBackup) - assertThat(actualProtectedBackupData).isInstanceOf(JwePasswordProtectedBackupData::class.java) - - val actualUnprotectedBackup = protectionMethod.unwrap(actualProtectedBackupData, defaultTestSerializer) - assertThat(actualUnprotectedBackup).isInstanceOf(Microsoft2020UnprotectedBackupData::class.java) - assertThat(actualUnprotectedBackup).isEqualToComparingFieldByFieldRecursively(backup) - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/backup/container/jwe/JwePasswordProtectionMethodTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/backup/container/jwe/JwePasswordProtectionMethodTest.kt deleted file mode 100644 index dca42d282..000000000 --- a/sdk/src/test/java/com/microsoft/did/sdk/backup/container/jwe/JwePasswordProtectionMethodTest.kt +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk.backup.container.jwe - -import com.microsoft.did.sdk.backup.content.UnprotectedBackupData -import com.microsoft.did.sdk.backup.content.microsoft2020.Microsoft2020UnprotectedBackupData -import com.microsoft.did.sdk.backup.content.microsoft2020.WalletMetadata -import com.microsoft.did.sdk.crypto.protocols.jose.jwe.JweToken -import com.microsoft.did.sdk.util.defaultTestSerializer -import com.nimbusds.jose.EncryptionMethod -import com.nimbusds.jose.JWEAlgorithm -import com.nimbusds.jose.JWEHeader -import com.nimbusds.jose.jwk.OctetSequenceKey -import org.junit.Test -import kotlin.test.assertFails -import kotlin.test.assertTrue - -class JwePasswordProtectionMethodTest { - private val password = "incredibly weak password, do not attempt." - - val payload = Microsoft2020UnprotectedBackupData( - vcs = emptyMap(), - vcsMetaInf = emptyMap(), - metaInf = WalletMetadata(), - identifiers = emptyList() - ) - var backup: JwePasswordProtectedBackupData - - init { - val token = JweToken( - defaultTestSerializer.encodeToString(UnprotectedBackupData.serializer(), payload) - ) - val secretKey = OctetSequenceKey.Builder( - password.toByteArray() - ).build() - token.encrypt( - secretKey, JWEHeader.Builder( - JWEAlgorithm.PBES2_HS512_A256KW, EncryptionMethod.A256GCM - ).build() - ) - backup = JwePasswordProtectedBackupData(token) - } - - @Test - fun `empty password fails`() { - val protectionMethod = JwePasswordProtectionMethod("") - assertFails { - protectionMethod.unwrap(backup, defaultTestSerializer) - } - } - - @Test - fun `wrong password fails`() { - val protectionMethod = JwePasswordProtectionMethod("wrong password") - assertFails { - protectionMethod.unwrap(backup, defaultTestSerializer) - } - } - - @Test - fun `correct password passes`() { - val protectionMethod = JwePasswordProtectionMethod(password) - val actual = protectionMethod.unwrap(backup, defaultTestSerializer) - assertTrue(actual is Microsoft2020UnprotectedBackupData) - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/Microsoft2020UnprotectedBackupDataTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/Microsoft2020UnprotectedBackupDataTest.kt deleted file mode 100644 index c71c5dc2c..000000000 --- a/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/Microsoft2020UnprotectedBackupDataTest.kt +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk.backup.content.microsoft2020 - -import android.util.BackupTestUtil -import org.junit.Test -import kotlin.test.assertEquals - -class Microsoft2020UnprotectedBackupDataTest { - private val vcMetadata = TestVcMetaData( - BackupTestUtil.testDisplayContract - ) - private val walletMetadata = WalletMetadata() - - private val backup = Microsoft2020UnprotectedBackupData( - mapOf("test" to BackupTestUtil.testVerifiedCredential.raw), - mapOf("test" to vcMetadata), - walletMetadata, - listOf(BackupTestUtil.rawIdentifier) - ) - - @Test - fun `type field should match static test`() { - assertEquals(Microsoft2020UnprotectedBackupData.MICROSOFT_BACKUP_TYPE, backup.type, "types should match") - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/Microsoft2020UnprotectedBackupProcessorTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/Microsoft2020UnprotectedBackupProcessorTest.kt deleted file mode 100644 index 97382fbf3..000000000 --- a/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/Microsoft2020UnprotectedBackupProcessorTest.kt +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk.backup.content.microsoft2020 - -import android.util.BackupTestUtil -import com.microsoft.did.sdk.IdentifierService -import com.microsoft.did.sdk.identifier.models.Identifier -import com.microsoft.did.sdk.util.controlflow.Result -import com.microsoft.did.sdk.util.defaultTestSerializer -import io.mockk.coEvery -import io.mockk.coVerify -import io.mockk.mockk -import io.mockk.verify -import kotlinx.coroutines.runBlocking -import org.junit.Test -import kotlin.test.assertEquals - -class Microsoft2020UnprotectedBackupProcessorTest { - private val identifierRepository = BackupTestUtil.getMockIdentifierRepository() - private val keyStore = BackupTestUtil.getMockKeyStore() - private val rawIdentifierUtility = RawIdentifierConverter(identifierRepository, keyStore) - private val identifierService: IdentifierService = mockk() - private val masterIdentifier: Identifier = mockk() - - private val backupProcessor = Microsoft2020BackupProcessor( - identifierService, - identifierRepository, - keyStore, - rawIdentifierUtility, - defaultTestSerializer - ) - - private val vcMetadata = TestVcMetaData(BackupTestUtil.testDisplayContract) - private val backupData = Microsoft2020UnprotectedBackup( - WalletMetadata(), - listOf(Pair(BackupTestUtil.testVerifiedCredential, vcMetadata)) - ) - - @Test - fun `import BackupData returns data and writes keys and identifiers`() { - runBlocking { - val rawData = Microsoft2020UnprotectedBackupData( - mapOf( - "test" to BackupTestUtil.testVerifiedCredential.raw - ), - mapOf( - "test" to vcMetadata - ), - WalletMetadata(), - listOf( - BackupTestUtil.rawIdentifier - ) - ) - rawData.metaInf.seed = "{\"kty\":\"EC\",\"d\":\"7-RR2JBX1tWCUw17ujvjhYFyB0zwkvM9ttKyBMfQUNM\",\"use\":\"sig\",\"crv\":\"P-256\"," + - "\"kid\":\"recover\",\"x\":\"XIpoCl3CxnSUfZXew2Gc1tSwCJBUos1EacEXnQyfjhg\",\"y\":\"YDHaAGK0rL7wZwp2vp4aCaKuzg_tSB-8i4q_u-kLxSw\"}" - val actual = backupProcessor.import(rawData) as Microsoft2020UnprotectedBackup - assertEquals( - backupData.verifiableCredentials, - actual.verifiableCredentials - ) - verify { - keyStore.containsKey(BackupTestUtil.signKey.keyID) - keyStore.containsKey(BackupTestUtil.encryptKey.keyID) - keyStore.containsKey(BackupTestUtil.recoverKey.keyID) - keyStore.containsKey(BackupTestUtil.updateKey.keyID) - } - coVerify { - identifierRepository.insert(BackupTestUtil.testIdentifer) - } - } - } - - @Test - fun `export transforms backup correctly`() { - coEvery { identifierService.getMasterIdentifier() } returns Result.Success(masterIdentifier) - runBlocking { - val actual = backupProcessor.export(backupData) as Microsoft2020UnprotectedBackupData - coVerify { - identifierRepository.queryAllLocal() - } - assertEquals(1, actual.vcs.size) - assertEquals( - BackupTestUtil.testVerifiedCredential.raw, - actual.vcs.values.first() - ) - assertEquals(1, actual.vcsMetaInf.size) - assertEquals(vcMetadata, actual.vcsMetaInf.values.first()) - assertEquals(1, actual.identifiers.size) - assertEquals( - BackupTestUtil.rawIdentifier.id, - actual.identifiers.first().id - ) - } - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/RawIdentifierConverterTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/RawIdentifierConverterTest.kt deleted file mode 100644 index f6f045266..000000000 --- a/sdk/src/test/java/com/microsoft/did/sdk/backup/content/microsoft2020/RawIdentifierConverterTest.kt +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved - -package com.microsoft.did.sdk.backup.content.microsoft2020 - -import android.util.BackupTestUtil -import com.nimbusds.jose.jwk.KeyOperation -import com.nimbusds.jose.jwk.KeyUse -import kotlinx.coroutines.runBlocking -import org.junit.Test -import kotlin.test.assertEquals -import kotlin.test.assertNotNull -import kotlin.test.assertTrue -import kotlin.test.fail - -class RawIdentifierConverterTest { - private val identifierRepository = BackupTestUtil.getMockIdentifierRepository() - private val keyStore = BackupTestUtil.getMockKeyStore() - private val rawIdentifierUtility = RawIdentifierConverter(identifierRepository, keyStore) - - @Test - fun parseRawIdentifierTest() { - val actual = rawIdentifierUtility.parseRawIdentifier(BackupTestUtil.rawIdentifier) - assertEquals(BackupTestUtil.testIdentifer, actual.first) - assertEquals(4, actual.second.size, "expected four distinct keys") - assertTrue(actual.second.contains(BackupTestUtil.encryptKey)) - assertTrue(actual.second.contains(BackupTestUtil.signKey)) - assertTrue(actual.second.contains(BackupTestUtil.updateKey)) - assertTrue(actual.second.contains(BackupTestUtil.recoverKey)) - } - - @Test - fun getAllIdentifiersTest() { - runBlocking { - val actual = rawIdentifierUtility.getAllIdentifiers() - assertEquals(1, actual.size, "expected one DID") - assertEquals(BackupTestUtil.rawIdentifier.id, actual[0].id) - validateRawIdentifier(actual[0]) - } - } - - private fun validateRawIdentifier(rawIdentity: RawIdentity?) { - val expected = BackupTestUtil.rawIdentifier - assertNotNull(rawIdentity, "Failed to form rawIdentifier") - assertEquals(expected.id, rawIdentity.id, "DID does not match") - assertEquals(expected.name, rawIdentity.name, "Name does not match") - assertEquals(expected.recoveryKey, rawIdentity.recoveryKey, "recovery key id does not match") - assertEquals(expected.updateKey, rawIdentity.updateKey, "update key id does not match") - rawIdentity.keys.forEach { - when (it.keyID) { - BackupTestUtil.recoverKey.keyID, - BackupTestUtil.updateKey.keyID -> { - // do nothing, we've checked above - } - BackupTestUtil.signKey.keyID -> { - val correctUse = it.keyUse == KeyUse.SIGNATURE - val correctOps = it.keyOperations?.contains(KeyOperation.SIGN) - assertTrue(correctOps == true || correctUse, "Did not find correct key_ops or use") - } - BackupTestUtil.encryptKey.keyID -> { - val correctUse = it.keyUse == KeyUse.ENCRYPTION - val correctOps = it.keyOperations?.contains(KeyOperation.UNWRAP_KEY) - assertTrue(correctOps == true || correctUse, "Did not find correct key_ops or use") - } - else -> - fail("Unexpected Key found: ${it.keyID}") - } - } - assertEquals(4, rawIdentity.keys.count(), "Expected for distinct keys") - } -} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/crypto/AlgorithmsTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/crypto/AlgorithmsTest.kt index e0f469a4a..07c1180f3 100644 --- a/sdk/src/test/java/com/microsoft/did/sdk/crypto/AlgorithmsTest.kt +++ b/sdk/src/test/java/com/microsoft/did/sdk/crypto/AlgorithmsTest.kt @@ -6,14 +6,25 @@ import assertk.assertThat import assertk.assertions.isEqualTo import assertk.assertions.isInstanceOf import com.microsoft.did.sdk.util.Constants.AES_KEY +import org.bouncycastle.jce.provider.BouncyCastleProvider +import org.junit.BeforeClass import org.junit.Test import java.math.BigInteger +import java.security.Security import java.security.interfaces.ECPrivateKey import java.security.interfaces.ECPublicKey import javax.crypto.spec.SecretKeySpec class AlgorithmsTest { + companion object { + @JvmStatic + @BeforeClass + fun setupClass() { + Security.insertProviderAt(BouncyCastleProvider(), 1) + } + } + private fun ByteArray.toHexString() = asUByteArray().joinToString("") { it.toString(16).padStart(2, '0') } @Test diff --git a/sdk/src/test/java/com/microsoft/did/sdk/crypto/protocols/jose/jwe/JweTokenTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/crypto/protocols/jose/jwe/JweTokenTest.kt index fdac90f6f..c47573a7c 100644 --- a/sdk/src/test/java/com/microsoft/did/sdk/crypto/protocols/jose/jwe/JweTokenTest.kt +++ b/sdk/src/test/java/com/microsoft/did/sdk/crypto/protocols/jose/jwe/JweTokenTest.kt @@ -10,12 +10,23 @@ import com.nimbusds.jose.jwk.ECKey import com.nimbusds.jose.jwk.gen.ECKeyGenerator import io.mockk.every import io.mockk.mockk +import org.bouncycastle.jce.provider.BouncyCastleProvider +import org.junit.BeforeClass import org.junit.Test +import java.security.Security import kotlin.test.assertEquals import kotlin.test.assertFailsWith import kotlin.test.assertNotNull class JweTokenTest { + companion object { + @BeforeClass + @JvmStatic + fun setupBouncyCastle() { + Security.insertProviderAt(BouncyCastleProvider(), 1) + } + } + private val keyRef = "TestKeyID" private val key: ECKey = ECKeyGenerator(Curve.P_256) .keyID(keyRef) diff --git a/sdk/src/test/java/com/microsoft/did/sdk/util/Serializer.kt b/sdk/src/test/java/com/microsoft/did/sdk/util/Serializer.kt index 42f35aaf7..4dc7837f1 100644 --- a/sdk/src/test/java/com/microsoft/did/sdk/util/Serializer.kt +++ b/sdk/src/test/java/com/microsoft/did/sdk/util/Serializer.kt @@ -2,18 +2,7 @@ package com.microsoft.did.sdk.util -import com.microsoft.did.sdk.backup.content.microsoft2020.TestVcMetaData -import com.microsoft.did.sdk.backup.content.microsoft2020.VcMetadata import com.microsoft.did.sdk.di.SdkModule -import kotlinx.serialization.modules.SerializersModule -import kotlinx.serialization.modules.polymorphic -import kotlinx.serialization.modules.subclass // Keep in sync with `fun defaultJsonSerializer()` in SdkModule -val defaultTestSerializer = SdkModule().defaultJsonSerializer( - SerializersModule { - polymorphic(VcMetadata::class) { - subclass(TestVcMetaData::class) - } - } -) \ No newline at end of file +val defaultTestSerializer = SdkModule().defaultJsonSerializer() \ No newline at end of file