diff --git a/fuzzing/fuzz_sha224.cpp b/fuzzing/fuzz_sha224.cpp new file mode 100644 index 0000000..1d454f6 --- /dev/null +++ b/fuzzing/fuzz_sha224.cpp @@ -0,0 +1,46 @@ +// Copyright 2024 Matt Borland +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include +#include + +extern "C" int LLVMFuzzerTestOneInput(const std::uint8_t* data, std::size_t size) +{ + try + { + auto c_data = reinterpret_cast(data); + std::string c_data_str {c_data, size}; // Guarantee null termination since we can't pass the size argument + + boost::crypt::sha224(c_data_str); + boost::crypt::sha224(c_data, size); + boost::crypt::sha224(data, size); + + #ifdef BOOST_CRYPT_HAS_STRING_VIEW + std::string_view view {c_data_str}; + boost::crypt::sha224(view); + #endif + + #ifdef BOOST_CRYPT_HAS_SPAN + std::span data_span {c_data, size}; + boost::crypt::sha224(data_span); + #endif + + // Fuzz the hasher object + boost::crypt::sha224_hasher hasher; + hasher.process_bytes(data, size); + hasher.process_bytes(data, size); + hasher.process_bytes(data, size); + hasher.get_digest(); + hasher.process_bytes(data, size); // State is invalid but should not crash + } + catch(...) + { + std::cerr << "Error with: " << data << std::endl; + std::terminate(); + } + + return 0; +} diff --git a/fuzzing/seedcorpus/fuzz_sha224/sha224.txt b/fuzzing/seedcorpus/fuzz_sha224/sha224.txt new file mode 100644 index 0000000..48e3b98 --- /dev/null +++ b/fuzzing/seedcorpus/fuzz_sha224/sha224.txt @@ -0,0 +1,18 @@ +"The quick brown fox jumps over the lazy dog" +"The quick brown fox jumps over the lazy dog." +"" +"aB3$x9Yz" +"12345" +"!@#$%^&*()" +"FuzzTest123" +" " +"Lorem ipsum dolor sit amet" +"a" +"9876543210" +"ABCDEFGHIJKLMNOPQRSTUVWXYZ" +"ñÑáéíóúÁÉÍÓÚ" +"\n\r\t" +"0" +"ThisIsAVeryLongStringWithNoSpacesOrPunctuationToTestEdgeCases" +"" +"SELECT * FROM users;" diff --git a/include/boost/crypt/hash/detail/sha224_256_hasher.hpp b/include/boost/crypt/hash/detail/sha224_256_hasher.hpp new file mode 100644 index 0000000..f17e33c --- /dev/null +++ b/include/boost/crypt/hash/detail/sha224_256_hasher.hpp @@ -0,0 +1,234 @@ +// Copyright 2024 Matt Borland +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt +// +// See: https://datatracker.ietf.org/doc/html/rfc4634 +// See: https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf + +#ifndef BOOST_CRYPT_HASH_DETAIL_SHA224_256_HASHER_HPP +#define BOOST_CRYPT_HASH_DETAIL_SHA224_256_HASHER_HPP + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if !defined(BOOST_CRYPT_BUILD_MODULE) && !defined(BOOST_CRYPT_HAS_CUDA) +#include +#include +#include +#include +#endif + +namespace boost { +namespace crypt { +namespace hash_detail { + +template +class sha_224_256_hasher : public hasher_base_512 +{ +private: + static_assert(digest_size == 28U || digest_size == 32U, "Digest size must be 28 (SHA224) or 32 (SHA256)"); + + using base_class = hasher_base_512; + using base_class::intermediate_hash_; + using base_class::buffer_; + using base_class::buffer_index_; + + using is_sha224 = boost::crypt::integral_constant; + + BOOST_CRYPT_GPU_ENABLED inline auto process_message_block() noexcept -> void override; + + BOOST_CRYPT_GPU_ENABLED inline auto init(const boost::crypt::true_type&) noexcept -> void; + + BOOST_CRYPT_GPU_ENABLED inline auto init(const boost::crypt::false_type&) noexcept -> void; + +public: + + BOOST_CRYPT_GPU_ENABLED sha_224_256_hasher() noexcept { init(); } + + BOOST_CRYPT_GPU_ENABLED inline auto init() noexcept -> void { init(is_sha224()); } +}; + +// Initial values for SHA224 +template +auto sha_224_256_hasher::init(const boost::crypt::true_type&) noexcept -> void +{ + hasher_base_512::base_init(); + + // https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf + intermediate_hash_[0] = 0xC1059ED8; + intermediate_hash_[1] = 0x367CD507; + intermediate_hash_[2] = 0x3070DD17; + intermediate_hash_[3] = 0xF70E5939; + intermediate_hash_[4] = 0xFFC00B31; + intermediate_hash_[5] = 0x68581511; + intermediate_hash_[6] = 0x64F98FA7; + intermediate_hash_[7] = 0xBEFA4FA4; +} + +// Initial values for SHA256 +template +auto sha_224_256_hasher::init(const boost::crypt::false_type&) noexcept -> void +{ + hasher_base_512::base_init(); + + // https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf + intermediate_hash_[0] = 0x6A09E667; + intermediate_hash_[1] = 0xBB67AE85; + intermediate_hash_[2] = 0x3C6EF372; + intermediate_hash_[3] = 0xA54FF53A; + intermediate_hash_[4] = 0x510E527F; + intermediate_hash_[5] = 0x9B05688C; + intermediate_hash_[6] = 0x1F83D9AB; + intermediate_hash_[7] = 0x5BE0CD19; +} + +namespace sha256_detail { + +#ifndef BOOST_CRYPT_HAS_CUDA +BOOST_CRYPT_INLINE_CONSTEXPR boost::crypt::array sha256_k = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, + 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, + 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, + 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, + 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, + 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, + 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, + 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, + 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, + 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +}; +#endif + +// https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf +// See section 4.1.2 +BOOST_CRYPT_GPU_ENABLED inline auto big_sigma0(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t +{ + return detail::rotr(value, 2U) ^ detail::rotr(value, 13U) ^ detail::rotr(value, 22U); +} + +BOOST_CRYPT_GPU_ENABLED inline auto big_sigma1(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t +{ + return detail::rotr(value, 6U) ^ detail::rotr(value, 11U) ^ detail::rotr(value, 25U); +} + +BOOST_CRYPT_GPU_ENABLED inline auto little_sigma0(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t +{ + return detail::rotr(value, 7U) ^ detail::rotr(value, 18U) ^ (value >> 3U); +} + +BOOST_CRYPT_GPU_ENABLED inline auto little_sigma1(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t +{ + return detail::rotr(value, 17U) ^ detail::rotr(value, 19U) ^ (value >> 10U); +} + +BOOST_CRYPT_GPU_ENABLED inline auto sha_ch(const boost::crypt::uint32_t x, const boost::crypt::uint32_t y, const boost::crypt::uint32_t z) noexcept -> boost::crypt::uint32_t +{ + return (x & y) ^ ((~x) & z); +} + +BOOST_CRYPT_GPU_ENABLED inline auto sha_maj(const boost::crypt::uint32_t x, const boost::crypt::uint32_t y, const boost::crypt::uint32_t z) noexcept -> boost::crypt::uint32_t +{ + return (x & y) ^ (x & z) ^ (y & z); +} + +} // Namespace sha256_detail + +// See definitions from the RFC on the rounds +template +auto sha_224_256_hasher::process_message_block() noexcept -> void +{ + // On the host we prefer this array to be static but, + // in a CUDA environment it solves linking problems to move into the function + + #ifdef BOOST_CRYPT_HAS_CUDA + constexpr boost::crypt::uint32_t sha256_k[64] = { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, + 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, + 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, + 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, + 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, + 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, + 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, + 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, + 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, + 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + }; + #endif + + using namespace sha256_detail; + boost::crypt::array W {}; + + // Init the first 16 words of W + for (boost::crypt::size_t i {}; i < 16UL; ++i) + { + W[i] = (static_cast(buffer_[i * 4U]) << 24U) | + (static_cast(buffer_[i * 4U + 1U]) << 16U) | + (static_cast(buffer_[i * 4U + 2U]) << 8U) | + (static_cast(buffer_[i * 4U + 3U])); + + } + + for (boost::crypt::size_t i {16U}; i < W.size(); ++i) + { + W[i] = little_sigma1(W[i - 2U]) + W[i - 7U] + + little_sigma0(W[i - 15U]) + W[i - 16U]; + } + + auto A {intermediate_hash_[0]}; + auto B {intermediate_hash_[1]}; + auto C {intermediate_hash_[2]}; + auto D {intermediate_hash_[3]}; + auto E {intermediate_hash_[4]}; + auto F {intermediate_hash_[5]}; + auto G {intermediate_hash_[6]}; + auto H {intermediate_hash_[7]}; + + for (boost::crypt::size_t i {}; i < W.size(); ++i) + { + const auto temp1 {H + big_sigma1(E) + sha_ch(E, F, G) + sha256_k[i] + W[i]}; + const auto temp2 {big_sigma0(A) + sha_maj(A, B, C)}; + + H = G; + G = F; + F = E; + E = D + temp1; + D = C; + C = B; + B = A; + A = temp1 + temp2; + } + + intermediate_hash_[0] += A; + intermediate_hash_[1] += B; + intermediate_hash_[2] += C; + intermediate_hash_[3] += D; + intermediate_hash_[4] += E; + intermediate_hash_[5] += F; + intermediate_hash_[6] += G; + intermediate_hash_[7] += H; + + buffer_index_ = 0U; +} + +} // namespace hash_detail +} // namespace crypt +} // namespace boost + +#endif // BOOST_CRYPT_HASH_DETAIL_SHA224_256_HASHER_HPP diff --git a/include/boost/crypt/hash/sha224.hpp b/include/boost/crypt/hash/sha224.hpp new file mode 100644 index 0000000..bb85e61 --- /dev/null +++ b/include/boost/crypt/hash/sha224.hpp @@ -0,0 +1,295 @@ +// Copyright 2024 Matt Borland +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt +// +// See: https://datatracker.ietf.org/doc/html/rfc4634 + +#ifndef BOOST_CRYPT_HASH_SHA224_HPP +#define BOOST_CRYPT_HASH_SHA224_HPP + +#include + +namespace boost { +namespace crypt { + +BOOST_CRYPT_EXPORT class sha224_hasher final : public hash_detail::sha_224_256_hasher<28U> {}; + +namespace detail { + +template +BOOST_CRYPT_GPU_ENABLED inline auto sha224(T begin, T end) noexcept -> sha224_hasher::return_type +{ + if (end < begin) + { + return sha224_hasher::return_type {}; + } + else if (end == begin) + { + return boost::crypt::sha224_hasher::return_type { + 0xd1, 0x4a, 0x02, 0x8c, 0x2a, 0x3a, 0x2b, + 0xc9, 0x47, 0x61, 0x02, 0xbb, 0x28, 0x82, + 0x34, 0xc4, 0x15, 0xa2, 0xb0, 0x1f, 0x82, + 0x8e, 0xa6, 0x2a, 0xc5, 0xb3, 0xe4, 0x2f + }; + } + + sha224_hasher hasher; + hasher.process_bytes(begin, static_cast(end - begin)); + auto result {hasher.get_digest()}; + + return result; +} + +} // namespace detail + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const char* str) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + const auto message_len {utility::strlen(str)}; + return detail::sha224(str, str + message_len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const char* str, boost::crypt::size_t len) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + return detail::sha224(str, str + len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const boost::crypt::uint8_t* str) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + const auto message_len {utility::strlen(str)}; + return detail::sha224(str, str + message_len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const boost::crypt::uint8_t* str, boost::crypt::size_t len) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + return detail::sha224(str, str + len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const char16_t* str) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + const auto message_len {utility::strlen(str)}; + return detail::sha224(str, str + message_len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const char16_t* str, boost::crypt::size_t len) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + return detail::sha224(str, str + len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const char32_t* str) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + const auto message_len {utility::strlen(str)}; + return detail::sha224(str, str + message_len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const char32_t* str, boost::crypt::size_t len) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + return detail::sha224(str, str + len); +} + +// On some platforms wchar_t is 16 bits and others it's 32 +// Since we check sizeof() the underlying with SFINAE in the actual implementation this is handled transparently +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const wchar_t* str) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + const auto message_len {utility::strlen(str)}; + return detail::sha224(str, str + message_len); +} + +BOOST_CRYPT_EXPORT BOOST_CRYPT_GPU_ENABLED inline auto sha224(const wchar_t* str, boost::crypt::size_t len) noexcept -> sha224_hasher::return_type +{ + if (str == nullptr) + { + return sha224_hasher::return_type{}; // LCOV_EXCL_LINE + } + + return detail::sha224(str, str + len); +} + +// ----- String and String view aren't in the libcu++ STL so they so not have device markers ----- + +#ifndef BOOST_CRYPT_HAS_CUDA + +BOOST_CRYPT_EXPORT inline auto sha224(const std::string& str) noexcept -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +BOOST_CRYPT_EXPORT inline auto sha224(const std::u16string& str) noexcept -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +BOOST_CRYPT_EXPORT inline auto sha224(const std::u32string& str) noexcept -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +BOOST_CRYPT_EXPORT inline auto sha224(const std::wstring& str) noexcept -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +#ifdef BOOST_CRYPT_HAS_STRING_VIEW + +BOOST_CRYPT_EXPORT inline auto sha224(std::string_view str) -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +BOOST_CRYPT_EXPORT inline auto sha224(std::u16string_view str) -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +BOOST_CRYPT_EXPORT inline auto sha224(std::u32string_view str) -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +BOOST_CRYPT_EXPORT inline auto sha224(std::wstring_view str) -> sha224_hasher::return_type +{ + return detail::sha224(str.begin(), str.end()); +} + +#endif // BOOST_CRYPT_HAS_STRING_VIEW + +// ---- CUDA also does not have the ability to consume files ----- + +namespace detail { + +template +auto sha224_file_impl(utility::file_reader& reader) noexcept -> sha224_hasher::return_type +{ + sha224_hasher hasher; + while (!reader.eof()) + { + const auto buffer_iter {reader.read_next_block()}; + const auto len {reader.get_bytes_read()}; + hasher.process_bytes(buffer_iter, len); + } + + return hasher.get_digest(); +} + +} // namespace detail + +BOOST_CRYPT_EXPORT inline auto sha224_file(const std::string& filepath) noexcept -> sha224_hasher::return_type +{ + try + { + utility::file_reader<64U> reader(filepath); + return detail::sha224_file_impl(reader); + } + catch (const std::runtime_error&) + { + return sha224_hasher::return_type{}; + } +} + +BOOST_CRYPT_EXPORT inline auto sha224_file(const char* filepath) noexcept -> sha224_hasher::return_type +{ + try + { + if (filepath == nullptr) + { + return sha224_hasher::return_type{}; + } + + utility::file_reader<64U> reader(filepath); + return detail::sha224_file_impl(reader); + } + catch (const std::runtime_error&) + { + return sha224_hasher::return_type{}; + } +} + +#ifdef BOOST_CRYPT_HAS_STRING_VIEW + +BOOST_CRYPT_EXPORT inline auto sha224_file(std::string_view filepath) noexcept -> sha224_hasher::return_type +{ + try + { + utility::file_reader<64U> reader(filepath); + return detail::sha224_file_impl(reader); + } + catch (const std::runtime_error&) + { + return sha224_hasher::return_type{}; + } +} + +#endif // BOOST_CRYPT_HAS_STRING_VIEW + +#endif // BOOST_CRYPT_HAS_CUDA + +// ---- The CUDA versions that we support all offer ---- + +#ifdef BOOST_CRYPT_HAS_SPAN + +BOOST_CRYPT_EXPORT template +inline auto sha224(std::span data) noexcept -> sha224_hasher::return_type +{ + return detail::sha224(data.begin(), data.end()); +} + +#endif // BOOST_CRYPT_HAS_SPAN + +#ifdef BOOST_CRYPT_HAS_CUDA + +template +BOOST_CRYPT_GPU_ENABLED inline auto sha224(cuda::std::span data) noexcept -> sha224_hasher::return_type +{ + return detail::sha224(data.begin(), data.end()); +} + +#endif // BOOST_CRYPT_HAS_CUDA + +} // namespace crypt +} // namespace boost + +#endif // BOOST_CRYPT_HASH_SHA224_HPP diff --git a/include/boost/crypt/hash/sha256.hpp b/include/boost/crypt/hash/sha256.hpp index 1d1c18e..a341279 100644 --- a/include/boost/crypt/hash/sha256.hpp +++ b/include/boost/crypt/hash/sha256.hpp @@ -7,190 +7,12 @@ #ifndef BOOST_CRYPT_HASH_SHA256_HPP #define BOOST_CRYPT_HASH_SHA256_HPP -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if !defined(BOOST_CRYPT_BUILD_MODULE) && !defined(BOOST_CRYPT_HAS_CUDA) -#include -#include -#include -#include -#endif +#include namespace boost { namespace crypt { -BOOST_CRYPT_EXPORT class sha256_hasher final : public hash_detail::hasher_base_512<32U, 8U> -{ -public: - - BOOST_CRYPT_GPU_ENABLED sha256_hasher() noexcept { this->init(); } - - BOOST_CRYPT_GPU_ENABLED inline auto init() noexcept -> void; - -private: - - BOOST_CRYPT_GPU_ENABLED inline auto process_message_block() noexcept -> void override; -}; - -BOOST_CRYPT_GPU_ENABLED inline auto sha256_hasher::init() noexcept -> void -{ - hash_detail::hasher_base_512<32U, 8U>::base_init(); - - // https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf - intermediate_hash_[0] = 0x6A09E667; - intermediate_hash_[1] = 0xBB67AE85; - intermediate_hash_[2] = 0x3C6EF372; - intermediate_hash_[3] = 0xA54FF53A; - intermediate_hash_[4] = 0x510E527F; - intermediate_hash_[5] = 0x9B05688C; - intermediate_hash_[6] = 0x1F83D9AB; - intermediate_hash_[7] = 0x5BE0CD19; -} - -namespace sha256_detail { - -#ifndef BOOST_CRYPT_HAS_CUDA -BOOST_CRYPT_INLINE_CONSTEXPR boost::crypt::array sha256_k = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, - 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, - 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, - 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, - 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, - 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, - 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, - 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, - 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, - 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 -}; -#endif - -// https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf -// See section 4.1.2 -BOOST_CRYPT_GPU_ENABLED inline auto big_sigma0(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t -{ - return detail::rotr(value, 2U) ^ detail::rotr(value, 13U) ^ detail::rotr(value, 22U); -} - -BOOST_CRYPT_GPU_ENABLED inline auto big_sigma1(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t -{ - return detail::rotr(value, 6U) ^ detail::rotr(value, 11U) ^ detail::rotr(value, 25U); -} - -BOOST_CRYPT_GPU_ENABLED inline auto little_sigma0(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t -{ - return detail::rotr(value, 7U) ^ detail::rotr(value, 18U) ^ (value >> 3U); -} - -BOOST_CRYPT_GPU_ENABLED inline auto little_sigma1(const boost::crypt::uint32_t value) noexcept -> boost::crypt::uint32_t -{ - return detail::rotr(value, 17U) ^ detail::rotr(value, 19U) ^ (value >> 10U); -} - -BOOST_CRYPT_GPU_ENABLED inline auto sha_ch(const boost::crypt::uint32_t x, const boost::crypt::uint32_t y, const boost::crypt::uint32_t z) noexcept -> boost::crypt::uint32_t -{ - return (x & y) ^ ((~x) & z); -} - -BOOST_CRYPT_GPU_ENABLED inline auto sha_maj(const boost::crypt::uint32_t x, const boost::crypt::uint32_t y, const boost::crypt::uint32_t z) noexcept -> boost::crypt::uint32_t -{ - return (x & y) ^ (x & z) ^ (y & z); -} - -} // Namespace sha256_detail - -// See definitions from the RFC on the rounds -BOOST_CRYPT_GPU_ENABLED inline auto sha256_hasher::process_message_block() noexcept -> void -{ - // On the host we prefer this array to be static but, - // in a CUDA environment it solves linking problems to move into the function - - #ifdef BOOST_CRYPT_HAS_CUDA - constexpr boost::crypt::uint32_t sha256_k[64] = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, - 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, - 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, - 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, - 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, - 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, - 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, - 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, - 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, - 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 - }; - #endif - - using namespace sha256_detail; - boost::crypt::array W {}; - - // Init the first 16 words of W - for (boost::crypt::size_t i {}; i < 16UL; ++i) - { - W[i] = (static_cast(buffer_[i * 4U]) << 24U) | - (static_cast(buffer_[i * 4U + 1U]) << 16U) | - (static_cast(buffer_[i * 4U + 2U]) << 8U) | - (static_cast(buffer_[i * 4U + 3U])); - - } - - for (boost::crypt::size_t i {16U}; i < W.size(); ++i) - { - W[i] = sha256_detail::little_sigma1(W[i - 2U]) + W[i - 7U] + - sha256_detail::little_sigma0(W[i - 15U]) + W[i - 16U]; - } - - auto A {intermediate_hash_[0]}; - auto B {intermediate_hash_[1]}; - auto C {intermediate_hash_[2]}; - auto D {intermediate_hash_[3]}; - auto E {intermediate_hash_[4]}; - auto F {intermediate_hash_[5]}; - auto G {intermediate_hash_[6]}; - auto H {intermediate_hash_[7]}; - - for (boost::crypt::size_t i {}; i < W.size(); ++i) - { - const auto temp1 {H + big_sigma1(E) + sha_ch(E, F, G) + sha256_k[i] + W[i]}; - const auto temp2 {big_sigma0(A) + sha_maj(A, B, C)}; - - H = G; - G = F; - F = E; - E = D + temp1; - D = C; - C = B; - B = A; - A = temp1 + temp2; - } - - intermediate_hash_[0] += A; - intermediate_hash_[1] += B; - intermediate_hash_[2] += C; - intermediate_hash_[3] += D; - intermediate_hash_[4] += E; - intermediate_hash_[5] += F; - intermediate_hash_[6] += G; - intermediate_hash_[7] += H; - - buffer_index_ = 0U; -} +BOOST_CRYPT_EXPORT class sha256_hasher final : public hash_detail::sha_224_256_hasher<32U> {}; namespace detail { diff --git a/test/Jamfile b/test/Jamfile index 2dbf2a0..2986f9b 100644 --- a/test/Jamfile +++ b/test/Jamfile @@ -51,11 +51,15 @@ run link_1.cpp link_2.cpp link_3.cpp ; run quick.cpp ; run test_md5.cpp ; run test_sha1.cpp ; +run test_sha224.cpp ; run test_sha256.cpp ; # NIST standard testing run test_nist_cavs_sha1_monte.cpp ; run test_nist_cavs_sha1_short_long.cpp ; +run test_nist_cavs_sha224_monte.cpp ; +run test_nist_cavs_sha224_short_long.cpp ; + run test_nist_cavs_sha256_monte.cpp ; run test_nist_cavs_sha256_short_long.cpp ; diff --git a/test/link_1.cpp b/test/link_1.cpp index 978c083..95f7054 100644 --- a/test/link_1.cpp +++ b/test/link_1.cpp @@ -4,6 +4,7 @@ #include #include +#include #include void test_odr_use(); @@ -20,7 +21,8 @@ void test() void f1() { test(); - test(); test(); + test(); + test(); } // LCOV_EXCL_STOP diff --git a/test/nist_cavs/vectors/shabytesvectors/SHA224LongMsg.rsp b/test/nist_cavs/vectors/shabytesvectors/SHA224LongMsg.rsp new file mode 100644 index 0000000..e3a8090 --- /dev/null +++ b/test/nist_cavs/vectors/shabytesvectors/SHA224LongMsg.rsp @@ -0,0 +1,262 @@ +# CAVS 21.2 +# "SHA-224 LongMsg" information for "test1" +# SHA-224 tests are configured for BYTE oriented implementations +# Generated on Mon Jan 30 15:53:23 2017 + +[L = 28] + +Len = 1304 +Msg = 43506173978e3393b6f4f5b55e1b67e86d338f693ffeadc7361f71469a956c81a483c554d5322df98c581471d89b1d268b51d0ce908a90927e50cc706c2d79de08eebfb0e3a7f23b0ff7c5bbec8dbaf23febdd12846ab2dd867f6c0b2c3c5fec961ab84e68f56ca166586e5942fb2594b18a1dfdc4a8fdf07634b9df82cb08f4778e19f70d258173ba04791481ec46540bb5f856f84c571277f81bb314e15b3dd2d248 +MD = 8b14f57603435df8c5c228016a752a493a103b9dc8b4dd90a26bff8e + +Len = 2096 +Msg = d1155cbf9fd9cf72a69f25b359647df7e8e8a5a3b35431cf0520ca4aff34c9ded24d05d532a3e8bb07c9c96665d47534bebf0f94560e1bc8f8b2d5e9e82dc72b18f69a629e1f2dc56635e4f2246843338debbb00c79ec3c51eeb2be5f8edadfe0bd8c66fcd95c4172cac1f6080670c7cbe3550efee4c524edf92754619bea4df13ba2f02a64cd53ac2f622b7601bfb98b762776ab360f0eba3715a1432e6d45798667d26118e89b48edb94ffabca350ee23dd777fe21c425d24e83582aae64ed02a259e0f6a1070ffa231d414bbde566a68d1921b7d8f783d4f2971aeb5e7d2ab9376b3a3dce78d26d956684273c31296a19e46dc6cdb08e11253f605c3e469525ed5a3bcf5d +MD = 6e000fe132ccbe3f9c41fa7c956d0b2165d4b1d8ac2efc2860b29a21 + +Len = 2888 +Msg = d473bf145ddbc19a604f2b4fa68a97f53d6e32916253c263a59fe71b4796a04ae77412175db98533e7c5b00f83a4364c9b2b7073e7446de690863716910958f763789db1d9671a9949e76e5fec584988877f2b1f4bd96ea8fa2e86564c68887e91a6e94a978d88b2cedeefa8aa4ed6934992e9ff56b9cc932dbe5b43405e36c7b9277d4b61d2d868c0d2bb53862de854298b357ad08c8f8e705f3f4534916cb92322e11afdde11a165ea58c6459e84b36f9294f880fcc0800a39b9c4f2a9313e16c09e21335a3b47074f506bb248b49862d190e12faf655344735128404f8e3ddc293bc7cdee5f41ec292ba994d47feb4b6db09ea54d89ee66368fd9e72b899fbb844073914184775c9f6fe7b2e9ee9472917c95aa7f3139b8a9fc40afe42d4afcf9368f49fcb2d1a1d9a68fd530077c1f637d2f06ed671c81f51fc35f227f27e6b2a482bbc6f13702005708c550d4899a0b3ad4803e327f0b4180cbc18f891ec3d412b4b0484a91c6 +MD = 5062e92bf1268ed3346a3374f88126e61d44560b52646322f17e8d99 + +Len = 3680 +Msg = f33a810b3b73e6e8bfd340aa4617261fb79b59917f274a3f330bdc0f766e6a7d1ee30cd7923d16ac76a5e2828be9d0c7d0178a0aee4b8d6bd2c5e5509c3e375ab87c05984a252efad0d1b4080362c2d3fd98ee2ca1e0bb15386d6275588ad2100a2ff5b52bd235b9137f3fa5752b062c86460b60628fdd25ab2cdbe573fa41855c226398fded33d388d909c1aaeca4b8b3486c0cf700f982742ad908b5358ea3f67dd7a8881d312f77049cc56b4ca261ccc7969a29da1a16db8ee346e5e4c1501f69d94d940b35b5282b80177ef30a0e18ea1370c0c545c827818207cdaee076200ef2efe85e4a4de2743b21ab8ae4a7e0da69f8846b8480a22a3db3333cf5fc4193a9f64dbf75dfef07574abcb936136cbe23983d71de2692b29cb2e03507caca2087cb8bd6c053950d5cf977270a3c04bfc6bab2825ca34040276c9c421fc803df13d46a4a32911daed098a67d6709f005dcc5ac4404ddf4fd674a2e0b44de34f6d57ab2c4d382cf113d8e0f62566277b7ed21f35fe0bdf610e3b260377ef4a48d55252aebac0cf25f2a437b7fdd2fe3fd7f354f7cf82b8da2230df86fd5f29ccd1c3e9b68c418d0bf201fb17c07587a001c6b8843521002dbb0c4bf5a52c064ddb12bcde2248faf5aa68a +MD = 1a9f9156e3f95afb434c66c321cbb4c05d5876edc71f3fc5d58527a8 + +Len = 4472 +Msg = 5b596b8209feb3452a992662b5988a53c6f5ff8d945e8fbda39406513b11043a18ed50f063026fb7e14f76226b9a1cd59e59138ed3d3996751834a55c2bd38f5e4943d8881fa903ba12997adfe42fcabb834033e4ae01be7bd7bb3291c334e482715da514b2e3d5ad2f0320b58d8535d7e4e76a2e2cd3dc64e43e9d42fbb6fbb4939ce53aae59f9bdc6cee455fa44874566f15c481e1298b6ba5955ee59cc3d7b2c8c2968469de8628657461fded0477aa5e88ab106504be7e675fd024207123cb8a5d23c30021a31ca36b6a19fdafeee1e4765f78a1f9e7ee52ee31d68da228fa4648014df3907b21ed7c659a1a706163c988e99fdd2d8f232eeb89e22c7d6ca8c62a380c8a5595a00d4f5c6a8d6f5998d565506f61cb3d85c3fde030452b793ed0acd1e60c9579ffc98b56709ed55ee8cfb59ccf74f97a7cd8cd3fa820d3d7222d76d3c5c37bb0a8ead85c9494caf6bb8122d5a660dfcd703702ad32049e0cbea52f4690f52cc10138e075beb975ab79b15204de6ba7bec9a64533b63bb4a279ff7f322febd334747a48a9d653ff048a28ed315ede76d5efee3ed81c0b3c21ba0510a089ed9692677abb00c4ab8f8956ae9c620e01779b4ad794a44cbd5e0feb7d879788429d6244fedf8370094ec3460b07a1d61bcf974228f09f2e9844f673308f201334112c72cf5c39c3b46439c006d5f59e76a95240abf9d2abe6135dbae6ce4212091a7959b5db2ba3f6f8732d68ae674e582b52aa265844a9edf6cd2866ec056e0adfcf6177045ff91532 +MD = 4ff3e69d1e0d9d0a0fe68cc3306b16b804a8214ac070a10d72071e40 + +Len = 5264 +Msg = cad66ca76d69797087004c724d86711b49ee620f5d24a8bf0544433ddc0b4c4f628bd9c2fc2221003cace1e563f8fecf24796bf4ab3e4df9de245dc0e34b8e81e2c6f11c0c97d5addcda32619c4048892cbf83edff88a263663a18a01155b24dd2f17b5ea5b0dd9feef1088f01469872e72971a260eaee2624ec3c856e1100dcbb73402fcf5580fdfa592b1799f335b2df1dffbad64c7b69a0a390190367c05625b40838936e07ef887963a06d2d69709c04f3de69968f5563c8dd01d74039e3961c9a20f8e3ba9f21bb78d283dd7ad4a44716b522b07312f4c1ebe8f282b4a99813c090079ce1324c863157e5ecb107814c30e808836fc7dbf882745d1779d3b2014030c781c4d3924357d49b405631bb7d091e23f5ca9ca1d36a4d1fe5d0876d4ee3a7407baba87a58b2f4abc3b179d84168007cefcebacdbc6a1c40d601ed4f62719e7a70ddd98c2e0a5c1f5b090862ff17351a5ac149e71a4c89c9d1532fe2a5b2bc7e4aa38f502d27b7fef2a806e121dc66061cec707855d63bc1bd1072ae806eaa53ef45f24fbdd1ab516fd49adb0e803b461f975807d5d1db30847ee13a596c0f01490b291047cfe01fbad6ecda2ecb5be4490a291c0104101f0de5a10e997594913e3c5d1b31ea0070bbf62565e9846fe7848c0a3f43398394408fddb2a951e10ab822b5f9e5eab04d5a7b6d05a7751e58b76623f90236dc9a05c3bbafefc89d749e035a31c9979abc7fafeb40d064113ecae19dd1a7c4c23644c8638bd5a170d7d828734b47b866c812d8c8a1cc1af0a1a443a05098abdd72e5e7fed1c2a6043c4dd929d0c617bc76fb3f2bad035f628a2fd453fc3eb3d655d068b4061e9dfeaae75ea447ae7a42d0222c3deedefa0fff52dedf6001a455e7ee93acb4504f092a8dfe0b3866aaa3dd6fe626ebc3 +MD = eb25f5c1f52c0f88b6fabcdab04d54be2c79b74ee6436997caf25cf5 + +Len = 6056 +Msg = 640477197315ccc0c58687abfb446ecf4298395827a9024aad43f7689cd652551dc28bf984d1cb266d05a57b0a950189bb325835df8e275deb1f9dbfb921971622dacf85ce2150394b212e4b5d5b73e395ea5ca3250bc643f3dce378ec64311b9bd4ad87fa0c444388618ae19b9eae25f848ae6aa127c742ee01305ddfa907acb1398cc5af9b8d8a4b4e21056d6699970bd5b452faea12a30417eb343af701108b8fd30996d51457bd6e5b817bbc1c81f718d723d95c8fae5ca57ec6a45707915361ec1957c2c1f1054ca11c6ca71f2ae39a7fa4e58627aa1f3350dbc6cf01752e343ebd996a7da24d6d599de9308adbf8e1159ec76fc0e1744ac93b486ad705469231bf04d62eb0ba5bedcd995e45dc5e77ffd9261f4399847151add12d7289c3022de6410dbd64769dc374253939753ce4a71dab9f991b763050fa0922b849cd0d9af9f8171306a9bb455a34c94ceebaae7332fef6a8af730f2eea9a50928c8a39e0c1d0fd16de7a3dd9466f17678e025fcddfc62c5a9ca397534529bfe89c2511670672c6b03312ace9017d2a739e397e1cedab4a962c2d4f28d36178a3bfc41a988f867ac84f9990dc54080a56668a94c825575743a53abf135ce782a93e90ded926b3224678366f1a04b5c0fa2e1b28394c6f5b4b50f1707da766e5e461b0e49391a1c411f711d30bdc2e53453e14c2d62d9e5f95757be9cf7d84aa3b6f4cb42f99f96b1314534317a31bcb21dd9eeb098f8a69095cffb26fa6e9d895b28ed71306631c33162448a62023317555e1293a39db848f4ca654c7ea3e77dc709cd4a9a086e15947ab69201cef8c29ec0407cff43ab50f8f98563d112b90f7f29e33582f0bc16ded112eed5f27e424eb2f0a31884f06716bfc403be25729ce80bd7d877a99c558517d1f75b17241509a8cbcc8bdc17e9d29fa9b28266b4d49612039a04ad9f300bb18c520da78ac944040a4fc5b38257c10bcee6ca50e0150dff1ef0a6773554e720aa757a1e22cd826764a36295e04f46a67c16f27e94fcb4055272d990ef32ac07a4d80d058ca04955437dcf0d8 +MD = 2e31e5d306489afd925a910106883daa6a4ce3528fb824bb49acfc95 + +Len = 6848 +Msg = 0dbd22cabae17e9fc274fdb6fd87bfc5199895602709ae135ad173ae0c72afe0022bf307f16e39474194c7d910d056a67a617415180c2721c6cad3aeaabe5d1d7269911edc21c1c57cbfafe1ba99ae891ab003f7c02a919a3302b66661fe706fe3e1c4b683e26042fb5e7f7300ca0d947feb0baf274936a527e1e37d391a2efddffa5377ec9a5ce647d7fd3aec4bbcef337c54e455525c6b2ccf249c3afae0f0ed1c080b212ffed8e794f2db850403c3bec9a63f532e4c13c9343f6b6d86cd6f96afa9172a8b8e4163fb2501d3dd2938a63cc96828c34ec68778fd91d9a73fa3601bff460d94544844766052dfbf7875753b8406dcfba9acec0326b786437cb3d5c9d23dd4349716116c6976b09036a3b230a1c178bda7ec823d82847d43cdc87d1feaa78752a1d2524509164e3aace9e682e64302f08eafd18fd8a1c5907a0adf860e2a2cd6b8a5906808dac2a3227098991c31857ea71c605ff2b56610cba08367086ecda725b7513f2e6913b5df5f50dd0b36064e3a5cb716966969ad08b3f1289e1c71af302f2031436c49562ddf97b67af88f488f965e1d8d65d54e786ab23399dc21d5203682a60e8a6d705218f38c321f2754edf3deda9f50b2db64ee4deec055e4013ff30106586c86ea9731efc7fc54d75a9e9bbdb793d3093b14664ac3dd30c21bd38f24bae9b99cac445310cf9e3fa642e8b5861b3395e158d0fb3219b614c30c25317328891ab89ea1a5e00ce0879cf41469be6e453f4219e0d58b5715aaf0ba7d0277b90037e0a8f650e6e78cd4c15969e1ef17927834668b1be0e7c09a500e232ab7d515b71fb28a7baac668d01e573142a080e2e9c0271bf6b6307f8bebf05ed0bce592437aa4a64fb5123e21bad7b2b75a10fd39ed44d68d979a1c26ca49771c0c4f3d82fb6692f48e34d46f9dc23665a42faa11c4a605090a8d5d12f4ffb637317dde1da9e09691bd92f263d0fe03770645b3194b33ef9198710cf771fc6349b3d53fbb8cfbfa4ecb9662a45a75611308badef88cd4de4ec7aeef7f4a26c67918c12705ad9d05543fa7ebdb430d9a6233f7f4578f72186722accf50866727f0eaa85da213af00cba12c54b094b0f58b0e62bcdd5af3e6052ed473122da6cdd6b0f2aa3bc61a33db7a8f66ca5445b9b622640033f7419050758ca56e48cb0152f306d678cfc4e6aa5037e9d28bb42f0d +MD = 757d9eed50a0ef6d3388be4c3740dab8a1d76051d282ef44d069657a + +Len = 7640 +Msg = 536ca754616f5660354a01e54b562fa56d0712588572ff4eb00c215593b56dddf2f5d85a7e85c8eaef11c938533c82a0a6e5e794a2a8b03ed8a80966008c8b978ec86b7d861ef19290642cfa4f87e5aaefd0d1d0fd660a6f7c15c04a354d2c044e6ec6851e42b8a040cb92f2e6403f0d705238d63eb3f72bc2d9afc9d9003a6d5b6e533af0fa055b26cf63e9c16e7a0f53f2846c0c985fb8d27e3dab94ab9c1adc507964a44dc00c6bf708a788197df9bd391d5b0f1c285fd58cd1b710583a53fa9d9fcae244d2fb36cce7f4e2493013d8ad6c6af0473b68f389d5b6f20efc60dddc2f3551e62170b0d5699877077ba4ccd8d7635721801b53ffb071e5d6ca88ac95906d993b96b3019af65af05a46f6c142c70cebb3dfc01e75caad8fb78c1590502a3a634b190b50a3f703f54b794fde71a52f5504419e7b748b3598b92a4db0966564571f93c2c579d25b2de1fcf84befd7923d1c8cfe93835bd0a9e48c7935eea9b21cbeea1e8aa3f12a4124b7393144c7fe4904aa288e2aa2456a419be046e15eed5b300868c4a9ba38d81c9359b8f6db3a24c3816493f1c85d82d73dcc0cf6ecddbb7ed3e79e14974d9bd276a2078f7d107461fbfaca6135e09aae5b83aeb5bb4ae5af35e53e6aef30324d4a5a47971446e2e7ff315c01519659cfde4e55a633fc80cb15a8cc362aaa4495f5ca9f9408a5155c7453715985466841ac752952bdba35db5a7971fdaf8379b3613a3810c0f5b6c844a630f237ba6e0caf405140bf4eace5eea05449e8837bae74f13992a6fe6c345673c253d1b81439cdf7f6f8a37e8cf4b8659fa13c71ef8e1839cba32187e0a792014f04b90902cff0e13f03cf137d0da010778e1317805c345816ca995ab929e09afe8e5975dfd6ff4755e8add5293a8ee80697d63bd41faf97418f763da0c22884f77817c35357e2715f2fa38b35826a367444eba693df733e757a21f93d7b5208634a5dbd085881a786611bff4cee1c42e91dbb2066a46795d9140056375b466e6a8d9229a3e4c431f2057cf714848d548cabae71f57773e496e47c1b376aedfe33c81dd0cf009356caa32e3c354ea3b485752d60e75f7f72d372fe12e4b12d00e783687a32b6d66037c39996585447aafd039eb6e4657388b947ec01e737efbbad47daee740d759560ee25cc259d627d1cde6a3b9690376e70eaafb1e7051c78ae9adbf63e0e583e6eab3aa84331da76098dfab7a2e8b46c1fe3b0ea8d219a7f1107d35838bf67a2888340f05b1899dded98b5f2b375d0caeebb567381955318ff132add092a8b0bd7fd9f6d145a85faef8802b36f4074cf06f908166a692d8ba04849 +MD = b70b387611ae8ff552bf7aaa13925bf9f9e44975accbe4ad1bd99848 + +Len = 8432 +Msg = 97554ad13b6d38a428b380b95cfc352a9ad04f5ebd6ea02c4d0f0a43506feec9628ae74208a3b9b4428b84085f203eb415145f97d1f0de244c585dc35f90a174183f44b60d73aea7f0e6416c6480d4d30f1c6337f18f04a5f4e61d3cc4f0d5dae0fdc8f5f2e4ffc65c4b1fad1322e0d1b071c107c454fbf56c43b37726977341e34adbc65eff9459ab42869213104bf41f9ae3ccf346a95cddf785392e8e64f249b1e5f2f9cb55a80853dee50d52fb85851f2f51256df7246f88fd4d84dc8e3539b74e426c502bfa99078f6ca8eedacb09890f5d03d2cd934980827acf89db52dbe67f7b5f96fc9986e501f08deecf10d45feab7357c14f394677b87b79e329058c5de6879a6b2cbf8769d386359c19a0d2928286273b28a77c3523de6227a38d8dcd4d0638733d91740c90ed3389ab3dd70307832c091a11b1e6e64011d9d9282b4ca7ac541690b0acdee38859241a16cba6c6f4f6a977fa8ff37c4b39882e67fd4262f45dd3aa8faa5757f206f9eace19243d45e79ae6e45ef1524a199117cf7c451b78e6290fa0e4ec4ab4dd8991e657d1d710af6bdb41a75704d762b329b110db4da46d852476f524584b3d31a3d1f05620cf8e8ac9a5019b008d853cd8df536b660164768d844395fd1fb6b095338b17b6ed35763680f633d1b701bca98ccc7be10a5b8b9f5b689795ccca54ea6d709ce5f414cc9667edc804ee58a1105be4936b39c322fe5edccfdebcf8bd17e2596c4a7eacdc8dcc60bdf6bdfa88b1cf2438511a2beb1f210895247ab247b254adfc60d78e547110e78c338087e1e24913d13f2606328624749e038097832e26d6d3a5a90992f4e7fac957f0513b367c2bf481e7d297a7ebc930f869190dffcb6c68956dcf366db412ebb068170332bae528c5ca218908e94ef47f8ea736bbc4e741cc904fad5007b869f96229b84b97c7d4776773952dafae5f057bd29bc6a5dff5a7bb0b66405563da7f6909e905955c9e132a393a8a914fe726bb1bbbc4e0aedaa348730fc31f9da3df074813d5261bdc259cf2e7b450ac135fc6f3051af7ec876bb316f83cd8ce5c84a764a75eec7e152b3a213b1f405b7a2d29e9065d7e11725d9577be32139e7b0cd3d031f73b0bdfa07c54934ff2d661fb4e7e4df0c5a631f56a15d027526675c4172b3232a43da201fdfd8eaaea958156cf233a7971133cbfab61cca117bed366ebc63695ba9bf2ec199c9bd48a215edc06685a5c02f0f938c3fc0213c6101a51bc41ad84e09f48ab69b2394173f230d79ece2c1cedc7fded6e352f140002c111232e05a4a8c029ec58cee5661a90cdf5f2b53e30b3f0c159e4bd921637ff5e219adbdd6995a70d0b81533ed6f0758c939ccdff3bd813d9ead1e5d99ee06e581f9ddba35819ac68a56ddf94089828d35d1768fd92dc99be2cb05e74129bf82547a6bde5d4b758d33668d4837f642358aedd26a7da340ad49bfa87d015bd057c463ff32 +MD = 0dab74d5b528dbccecbcc9ce5514d1586f417e048bf56c09bdb7b33a + +Len = 9224 +Msg = 5b19adff8f3c4c4397e1632b9ce178f178fc55076bc35e1310b6223990a93098166c2c1783aa22616212192e1eb5ecc572af55be220a4b0de9df8e3cb2be80f80b5036cfd63bcf38414604d4f9be01f39b18735a6cd7e34449b142a6e1edc5b7210ff3b0f0b7fcd01dc74ca495c46085da7fd862b0f4cec01a7267fe84fca7de42f08a4139e65032dcdb18265b8fb082162bac5e5827b589426b24cd05b4d074553a230a1a90746568cb90e3b1e69af3396516d7cb3940a8abe4a29acbdde5814136e894f97c0f71a7dfde620092c6df2a753e5471f216243b2408ed3e3f910ef02cff663f73ca5f835e272bb15cdb4ed1a34d5db219e005dc757f4ec6a17a2149639009553d4d36e39296c72a09824916376b7af6784553751d2f46cbcd48c53425c403a1a23ffeaec150bdd56462d6e178bf34a5d5ee17ed653f5cb589a4ff99b8c2de8d6a48c0ce348095193424001aaf721227f982592e95d819ec9e36d96065b321805c11832a334cd85d406fcca924ab9de4acaa1f1ff52104d8d4a55a7274bf55e241424faa05dc0d0b51ec44761f935b45b50e73a8cd43a5e2f2998ab52d0d011ae1832c36f459bc8a2f426f6ae852d6b0de555cb164658470c2bc7212d8c6ad92047a23b646eb6e42a21a556bc60f968eed28e32203b02aec0ab31971bc11e2b172d23b1244b9a99b721cff6203f32148ab2e0ee3f24c1ebc932988bb221726dff2317d3236ecf8fd66ef7438e5250144e010e7dd7960e84a25c4c5d6520004844e40efff64abe0d0483cbcd3b5cdbeec547576f6e01411fc882cdaac94f301084ca69b5f151feb7cdeaae01dba15dea7ce06c2176e91203c830ace243018a7d4b50b893b9370a069f1e2e7fd3e23ebdc186bd3296cff9d71df06aa256d987d4e5019c07c24c587ff488bd95a871f6df5f84bb1122286100264c77599959b0bdfe7764808114629a7ad4ebf1ede32ea59374e65bcd84c0259daf63767ee48daef40ca29c9a21d0dc7e6d3a0308b84ec709d1df60dd67cfbdd093af977c1c871e725be6ba61e6fbcc9bcc18478d63cfaa2f1606cef633c81f6b93cc2b15543582d5cf91786cf67bc13f7c173de07829d57fdbecf49c9b41e0cb1a49afdf4e0182bad243553fb2a970f5f7a764a65805bf787e028024e0e5987ba198943e4c73848e2e7cbf4ebe3d423bb9594a4395bbfea586e7e043b6fbad09c43986b6e2140ebc1e9e351e7b8fcb9d5b9d6d4cb3e4e98380fda36d801ca4d1fcbce5dda16b97e14d3845236d19638738f42c2634f926aee6b43806cec10670a59340170cd2a68a14cb7df22572a085ebee35749b612c6442bc1ca415815862794d03f786f1b1131fd83e0f17241915eefbe79c49c561500f75cfc9d6c5f133c25ac00392314e18b8ef03dec49623a3bcadd111e29e7c0eb761dffc950787412b3d02afc129e4079a606de5b05156dbcf647089d844c2dcd510bb90d2de81371e742a709634096c1edceab86cde292aa1c04448ad60dc66e302f13b02b355721690c5da83f834b2c0d4f8db4ca520fcde31daf2d46b3f295b98ff5fc71e9a7e9e0363621ceeec782ab916a2f24ec4dedf49930cdfdc5180c97354837288b6d92f5c619 +MD = 43cfe0a7a41f189aa42b34570fcb25d365216d5427af05500bddae56 + +Len = 10016 +Msg = 8f25d4e503a6f5cea2f7b7afcf41aba0d2fa7e70cd0a85e9f1319a55f1a32741b7f68080573e767341772988ba231d018d3390f7fd2b0b9eff8238caa647f3b2df0ba3f45efacbdad84bdcdc73db4e667b14eedb56147ad9ba0b6bbf1de5126c6d2ae64a02221d8cd13c79b3e2b0655704644024bf0df9238a96dc3a3ec5abf7cb1cf18929fd930f9212a816efec8a5c90ea2dda1f5db002d7e93246f12fe7d95fa86bb9bdd456ed8595100b82d5e7fe876f5e06604dc80009ce16e81e6aee9c9398fde3a5ef8dad108c5a9d83b5a1c451bb7bb0692569a5880a302aadbfe7c7ceb34e0ec99661d89dc12dd1dad2e33756962bde222dba78bc6827138676fae377c007421111faf593fa32b16f75d3ddfec8169a73ace4010eafa4ab92d75177f888cf8765a77f8c5a0011442ae59941b218e5eb44ec0ec8e4a64efbb729110bb8d34fe6ada218265a9b7192f46c5ee8d85040da7d336156a717ce0adeb665281f682e66d148ef4afa92faa4b3504a5cda36ce6d06ca0532c0c8cbe1f0c4735595111510b9e22980a5af558151da84241e9338aec7f921e49581ee86d39c631a8294acea4eb7f150c0b82a31b45235c80e2e25a5a907def5900cdf0371865eff4eba9aff76116d43b47620bdc60084d010d13e59923e63ec18304560b0c98c8d614b88541a36c5e0e9b1e02c6d2b9ac58e422bd26be4d95194b4c8a37aaf144b240f1df3236f22afc7311286931d9e2fef4a93181d4267ad6e6111d6b67e1ec1fdce02e37704ac39b7bd5dd41f1cb9949bb11f348fa036860dffc8004c7fd478554fde2c003d8a051f1f691df971137efa3f762da8466d67d956952a23fa5cf7955b5ad7a462e59c681ddf690964d37474bc400b527b35d53a2d1e5b2537dec623ba1eea4dbae484fb8067c0373c22ff71ef27d67488b65a984d0e9b397d836e6934d170e28eb0473e0fa82b6b4327a659a1d197f5b5177d5b7f0bf247167276cd901b6e4b26706c9b944bb18dbf0bf1949ae656bf4a81c7eb89bd693848d466b998a6ee70ca4d7c79d5f75b85f9f5688aa20f19b98f1bbeb133ce07f25cd1c7941217f739c26ffe409c55303b390e94a381f4eacbcc0eec1347e3d55e9a9020c6c719928e55fd7a57af0d3897c77dfc48fe3cd0dd4881d97a8ba7d964493af9b77f52c657cd1f7928d6c67b82ea6b28dfe38fd4d74c9d0b4fc9bf1dedb2f6dacf026a9b7c70ff821adb2802e2eb00a1d2f697fca120890cf8c7d6a9df1eed4c76170a19e587c21d9585ddd4a11263ee8700f952240c6e64df4e928324d347d61488da497a5993d2019b8af9a5a7bd9768c860de465874996a259bb5a21a2b01111b81322430982ac7e6da7ad8f23525db1872a7f04bc23503169a47433ac154d599a8dcc952f9ac4d2e725e203bf41f4ab6d7b50b2e81c011e7373fed7d3257c8c9f6505208dfe1fc3afdad67c9220d1c6b38107d49d8c0fc6119a78a29a69252751495a89a724f3cd4216f94e5e677b9ff3dc130e4f0bf2b4ce9860187448edc63a9b3b150d98076c286ad8fd768e6893a8dcf0a47f14408704ee53adf35d2cc5c5eb357723dfc10cdd56f40e7d1e2f4e4d142f5ba02d8fa94f1cb1d79a1e68c28db9c8147c54974bdb6bb8f5d49f162c4b022d8844b0269827940929caf53828fc77617189af1085ad09b6480f79d3ba3d3789aeef54abd008f4d819187a01859ca4a002de37c366ccc16a799046de749e14b254028385fd7dbf8d2a15255b54d8d1f +MD = 18045a2b3c6ff955f2566314e6358cbae45905cb596c31a458b5bf12 + +Len = 10808 +Msg = 93dcf113fa105b06cbdc7c521c8bc7ae95b8b7b73006b5433c123bf2a8a63a067e30b974ae72bf3a0d7a74f49dd583aa0f00c2ed861f15229ef1901dad04dbf24925db070a1b8e6e90953772c860bc706cdd4ce9c9b344d4c5c154392057defbfaa59ef6967390495d130ef5269439a8b4399bd380290b02b968d06d8a0609ca9b974c66dae38d747bde41a53ddac4f9f0fbf8d434eb305483d04ce2727b250733e22b815fd14c97f2dc18a99898230b270bab146c607b712adf0fbf601df95acb70846faca69659cbf7db2abc371f876151fcbab0f0b602b67f632ddc544f696a289e5849cb33620d15d14f33208015a6b433ee8803a7ae30978e546f88eddf18f2c363bfa6eb5bc020434184ba0e5cff1f97da7d01181e9f0fd95ba0219c62ddb639b895a186ecedff7927376c9105737771a31653cffa0bcf8c6bf887249ac25c49805323cbbc9b9abb2ad4a0d0b70ba50974dc5f94e97dbeefabfe234d31cecd3be382938374d2d95172e4bd941bce91a773568e3193fbc64a443a5bdfcc0aef5708a95b76bb9aa48226ef2ba5d9c42393c80c486ca190cee45d3498a1167cabe51850e26c3afce3986f7b51cb98f544149c86f60fbb41bf061f75435cb42eea2c3aff902d99ff7ed9741299ce006ada74174dfee088187ff8b284c2d851289275973fcd807fac5d8e5e3b6a75ba2acef960e8caa8b11cf7023de97fdd93708c085697012f940969fe547f2c896e3d09eca0dfc02edd550f6ce82de0332210c12da1909400812188737f6448d3c3ac7295febb4a3cb5ccb07dddd74fa1a710182c9db0efbceef9a33306742418627ef03ba302cf98e188c07e416f33f1ca76784c7482782b829ba38712372923f3bb6d27b63fb70b089128b73f7df4e9324ccbd64e8b9814e60e6eb7cb34bfbb1d6bd0a260f7695dd2f0d170fc8afa52889af8125255b740c25aee0b58f34fa7889701f2c9b44f56e9aca2f1a31dacf37366e748a9673e78bd8809cbe2fc3fb0dd47e75f18fdd0bef2cd82815abf74969cba80c07a4993827f9ea93e90d8f99ec4816c33765b545c985c5b6a49f7b901aa9dabc1ee842026b1a7b5ad8b0ee339e44f77b40a5543f9806014f29a4de4fd461850952d9f4c2efba81560fa266748e6b8f12cfd73065d55e1956272495b52183157825e227e6004abb19f06a8ec9571c5c0e1763d0350bde8c602fc7487c8c7f2a8d1aa95208675b771b2d71ddae62e7ccd1c9e3ca39a607b8f195d55d027fc632bca38819966f5d53de0940d9804c5e700249cf74e02e8a5d8f1c0759f365e8bc9b4316e51c92d0cfd7366fe90b7dd0e414399f66d52fa6b89d04b5a5abe967268d9bce2b076c46499b1747a29c61ef779bfbdc2665041d78aff268e6b874b20f17f02671e3763e5f9e3e708cbfb32ac8ee12fe2a3c562f0c3c67a993859269e4def2a8403d2b2980550e631de1cbe356af118de8a7808be1c6c6f012bfccff362715dc2c7105884a6429a7bcaf26d98f3379f3f8533d94a7e3b2c50aa37ed271a4cc3a7d2b9feb1c2ff2a70f845e4df13faed8cfbbc7d9bcf79da0d1fd428435cca83bd8c954b2842d0bf98ceddce12b184294d54dc9db9f96fa0c1f1992a4d0f31c68c5e6be8f00ffd817ab581d137b51b7c0bf75be1ade265a7f3884f98501dcab39bae057c110fce979e16fb955806080e4c4e01f07e74a2162b4cbe1d516ddd7372e529b0942c8b2a8c5711c37c8e93069bc0967334957016f2a5ad5f5ae7b22d996ca02c804d7b61cde28c03ac34038d7db5e111d82f15cfcefbe5067273900a99a93297dd5ae765e81d33fcefe0a2ca7c95ab737129da684ab62fbba2f9c132f806a69ab43a175d6572d0574d7ab6e61fc9bc40076b070aeb3e5126f1618bcc41eac6 +MD = 4c89085be56f6fc331d5ab3db941ce9b392048cbcd2867d35c54fc5b + +Len = 11600 +Msg = c93cf44aba409f5d8513ca3533ab5da98cbc0c2f808dd950c604da59c3023d54adf78936f0ad265ad168202e5131282d546fdc0d02b748396ee5ac81756c7f10eaeab59ff0003ee9a660cf5f0a27e41c176e061b311b49a8c3fd1a14271937adc63effed80e0ecf24e235e2e25359a601ee112c3d561e7850e74ac7a9fb16d128a1bef8969f53a5d0fd855056c0251e0b1f1886cb53127b89772ea1ca6dd27277da80ed972e82f1232a73d4ba537118418c5f17d9a311329a61e5d6003456fd4e90ee3466561d3fafeb99c68997be2349a87d5604c0cb2c183a08caf80904c011474f73909072ffbbd36fdc41077cdd8805cba7c93680c667621ff72e366c7964703d01825834afeb546e5c7d2d3d958136e2a3937ee2a01c6c93f0ff571e67bcae3f84c827c2dec300fded9a6360f9c98e5acffff45137bbcbfd3f07e56b399e53bf73ee89bdeab74bc6f625548758d5ae9c936b415cfbaa02c437b46c036d6e03353551e886725c97321caa8b21611a0a007461e0867a8ba37181a1455761b02f596f8eeeacf40795c7a79641cf711b135f19805c4e22c5109d934b1bd7b5195a647911e6a1fe6cba104d7542d2276d6ce0c9231f1482daec90e30e6a14d5edf71ef8777af5efe0667474d3f8e9e265794e29d6a38a2951aa0407879a9f52c297c1542c162947073d9ca41ece7730b7caefa227741f74bdbb6f673327c7aa1baef412ac42aca245a1c151c24dfaa0c8d44dc8721b34f373932b889dbc3e4a7dcf3fca747b00701035bb047af1e4910d18011363036b2417e3c0e223a253b25d5b0cc21149b53f1b5bc2428554d5b01918820956c742951f0fe81a6194b8802ee4d3c00f194b6dcb967f729de14e5c61584910e9c12bb4fd99d987d3edcd3286ff2d1aca74339a85885b4b1111af147a59ded078abb71237f44dc107181227ea0c9158dfe4fe33ed73ee027b708866c89fabaeafc1551b52b19d3c57ce27fecc8f78f0bbd61bd8681b905f59885ad1d08c5831ebbc866ed2444070526a6f15a31a7c78fae20cd689d1faa827c3a6d426b23cd0b8f7db5b4b4ee0039367681b021ff467f97351dcd729758362bcecec3fb3e22193fdc48f0213f44c775f935d6e12793454147b59b494a96796cead888fd3e09b0958c268bb45e5d19abd817b5b948364774ff9bbc6a60ecb309369479bc4b0b385736576bb574d3959fba2f33f08ab8eff705d9161d00e24cc859097f7f8baf194e81e47a6ca82ca51b488339d014a0a494007793aa5201ac72fc3f808d297dbb4216d49e2023f2b0e52a1eb09f0f76cd11987b1a587fd03ccfc63f652f4bfd87fb9c2fc11b0cac1ec607057ea6a2c3d43776ef9271afd862a6601017ad1ab8e340bcfdcaa38ce3568687428d2df60d20ce42dae53b099f87c071ba7d4fbd3538da1e47a101cb1ec2ed53dbc37c32df199ea345faffb6af14e6a2467e5d5cfcef9269152e7df0e5c9c313db0ada7fbe276e4237b904de906fde9bbb041e21966e2e456d595e24c0d3cf6e4749910534b208c7b80a94a7c802700321f6db328a1f765c590aee8e3848da0d2968e7ebc82232d9d0d5f53ce1346683813bdcb760693453e0297357d491ac98884e255a03dfb520880270c3636c87c2e2bd69d9a1b32ed50a9e36a61d140db66de592796b515946e7794d65d4149a694c63cabfd4672d88e0517fa49a3ac50fdf1478718ae1e5f0f623d449be93681fc715469381ecf914692a9678d36b9b4ce6c31d69e8f523c8bce64d98a851b98d5cbb267a30aa5a22ae12c24c501059158adaca8a0bf7d97641abff791bb6545a123eb39e6a09185ab5ef4c459a8fc511d442c7fc7d4dd0a28d5b33159e2a032ff2843227b671fa6388ab7c8d3852a8e9cbe15ce6c661d0f3a9dc3193b9158cb40276ee3d9d4acae62f2c9a4cb2bfc94578a0d1706c99a1119c18411cf4dfb8904cfc2e06a6fc4e8ab05ceea99140f2cbe1676dc4f95f0aa56ef5abd8d8f04f6cd8ff39ad59ef4ff81521c0cd5b3ce926101f7a07f51ad457275db6ee +MD = 6b82e2657c944281b7c251bb3748f83eb6f78ed79f8ce648f0fd7aec + +Len = 12392 +Msg = 2416a381460af44511a47de7b46097ebf208b7848286ef07b6f7b89e5c00ee41e2651ce2bdd7fae80a0e34df76186d6e5cf184892e5316e716cf44b7dd1db68f0bb1dfa5508e8341225f7772a8c4a901d7ea60a3db5ec472b823a09e31026760e9217530c8d79838a0bfcf08100b518ba91bd13a504f018fe31955bd2056099ec2de65edec5940b5cb55c30978966ff61bad61b656cdd526e1d9ea7b71c1a530df0f374286bd83a0ed4adbdda60d0a2975c8987fb5804920f88ce73feeed41fe88dd74995caa69e14cc59fed62162b0cff93fdfd35116463715ad5735d7fe8f00470a35938c9fb6130ef989f765cd987013718999d282fd8946a3a7e87229fee9def4ceae0c24006e3f04d5ca8851c82c2dc71b9b76cb067a8e5a1c8347c70e09982f8b41c3c40b9acef468dc23afce58ba891c74986f1f9f7f28fb92b3562ae41532d1fb6e00463d2140c988a228298a4c6ff291c1dfa74c7ba8eb936f67d40dd877693745593ea9e8926e7c9e6b583555c4349f8dad1c2616525301b67ca7eb54958782043f63858731ce0462d9e8fe693e68da56580c90d1add86a32f505110bf5d368054333348fd77edcba043a29e926f5fea650f7312013c2396f6189f38110c355d2e54c5b54cbe751ee7aea5c6826626908384a6ba43cc6fbc6628527368eddd7e7960d5e98b79e008a9e781a68a53496066e94c4b0815d3dd258a500aec8997adde604a2ae03195518ef41c86d3bf321fb6454c0e779eb5c0db468345c467c9b0045b0ec1736cfec140df60ae843248981da18e4bb9ef7e2e3162d16b1910dd50955908f66db5822064b03465c632f3924104fa4af59097efcee824c6120a395536632010f6918935a56d7ff5c1499bd4ca767852540a66cb5cdf639cd8df4787917f3e59358a7bc9a8202ba49cfea8276100f0acfee3558a8050763692166dae4eb84a175327c1a418d01fbb80d98253aea84aa11aa6cbf3e44244dc6938159115132c9378f0c18e9b8643819463922058786e77d1d830cf30bdb7d585cca6f98c9acd15ca6ee44fd9497f4001233e56087844764a03ebe60ccab66b0d5a88ae5e5413e4742892ae7c21bb3eeea2efbc65afb5e8aeae66001e6f2ae4296b22783149e74a9ca734752916dfc584660e1b1825a713246208e511b6f9890386de1fae82328d6b71306a8a31d31beaf9013bc8e20341d5a6395c8ba70ca2c033236a7c06daf60810f05647797f8849e332e41eefb2b8e802612f34494b778bfa5a2243ddc9cd9b0cda0008f7cc56c9aa07dec1539bc086fee824b6a49e4f8a64e90fad10e55a4eeb583274b1a0cb91d8eaf05b16a5a3d7233704b6c0ee74e5f839f960a618e44737d1b233b1e531caf442e49141baa702f8b496dfa6212cc53eb2a804a748b5ae77ad49eeff81ce9b8777800ddac1163006c8a4d65d21c052bfbce4421c5f13ac3453bf4da15eeb2d18f18d77eca13688d3dbf446edd478b302c074c20c444769f52ddcf7a162cfa82f17d2767c445033e95650d55f249b119024212b7fdf990c42a268950677c433555319b39491ab58d09f7e2bbaf87393ef52b3257d1850bda31a2aced98410f6100c28d63b7091200e2046f106374662a9b0f25a0fd7b6a6a1fdeb4b2170fc1aebabc8867ac948b32d4072cf4bcb5da546a8a56f3c0411ecc3b473b3e625d0c76b96c16b58841938b566c86c929b00854ca1960f0d87aaba92a58aaf318ad4241a36db2edd8a4cd72cfc1271e28f762a45038be08848c9369539f8e70987505a7ff3de7711c129ba1c691685448f09bbb8354d8ab730b68854d8840276048b90223691edfd12f8060c159d51bf83ff602ea1a4b6a225b8d957ebf8a980e9ceef8c65bd39a86500e685686e7d5b53a1432eae570c5010185127d81a83301e619f44ea2a031aa38a800eca53b020e8378940c43033c9da1f174b09b3398d8c8cc7d22ba0f25cb2defc2fa312921728095dec4bf5d4156912544be48a729f199790bf92e7ae757c4483705b74cc47fc5ee5bbab6f963da73c2fb0d369d76faec9219285c6e06de8043d5a5a4106b94c8049344d6622487be4d1003d160f04346ba3d36e07304ddd6551740841e77301b5b2e097a21f3ecc5161c68a5ac36791c53d0bb470451c45b0e746ce3b187f01464845f2ea362784cc088721fd +MD = 3b7fb29e1b871ad0887ab45b0043b40ebe54ba8ed80f7c30c618988a + +Len = 13184 +Msg = 661a8614a533fbbae90eb5e9810ca4a205b9327845f4d3dc7f51de9ed5bb9bb1fd5e9d2f3bc4529c8c3dd86f248512ce1ba1fc9a640a3babfe0df95d6e72ef4b6c5cc35add7095fa0139d5a8eecb57b73da7a95103dfa4b9037b41d2211aaee51adda19f7380ed59afca539dc5289ae5d195e1a50abc358cf4615f07d7fdff086fa8df05e53c8143feb8fa5493e203df41314e9f61e916ae3a88fa0476610b3ad38724941bec7a3f56ca73d73e42bc2df3449646f0ae70a73eb8bbcfe78ffa06ae401855fdd8ffd61fc9662eaf90ea57519561a3a0536bfd67b8497213cff3f1689c644f7448398ec17e7a5fcf14b8e5c1ee58bc571f2e3a1c524ef5e1691e856963b08b66834ff2a4ae587485164c60ad15229bfe5be2e5c74c6f5e38a4a4491a5da30fbdd26a873124a874b8ddce507cd368487e50ae87cf6f56b702c9adc5e151e6e55f7db2d7cea7116852b2673b96f0d2c9bd43bba79c83ab08262060822709211536cc4e69e4fe3b573add3eab63340728a57f30cd965015578cf1e607554bfba5280667c5dcf2cf4958a67d274b67b06d1d4b3682259d3dae1c8467dcd1e01c9f1f7524741c4b754794544938b650749e0ceef54cb134cb14be200a8a05902d0a025faefd0ed1d457d631cd640cb8fcc55cb194b6a2db66925a0ff7985722d6efb90d2ce8194b958406832e36b567f0e9f4dc3c45605bb62ed897578e3160be552bc7c7bea4835fd30c9397331925f713bcb71483537c64f2200152f5fa108e4442d5a705193fdb4ed0a92ee5a0bab94a9c8945f7e30518e61a950f541afbedc5e57ef348df48b1fc3b0d1bd3b3eddf967c9cf62979c07911af9ab733f9e984defc0bd40c5e6688e533068785b88711ff443650a27b73307bc55a711affa2fb9970c471dbfe600812a1dd9a841951f68edca07be953e7e52c451b669294edf9fe27f1f33c2700da8a6edb7b573c10374a2c229e8667e43f2d1826bd22209326140ada81b8410ca655804553868b8f7b3c1d03e1022132e68524c39f530b5d2be301c744d6b44d137cc166499a6c956b6a958d6de4e898833c533934acbd10b073f5ff631ee88bca061885861a49e9afde7d066ab423dfbe5b8cd2a3b59e775ccdcccb0718468e73fb6ce9318e8954eea0beb700fb3ccf3ee8b6d415f61759d8f87073584d341db564a7db737e949ed0b63ee8553f9a30aceebb88b1f88e7dcbfcc73f7d441b023848b0a37473d28fff2ae7e1940ba5caaf728236a0426cacdee2bb769f856403a5af6f895bf5abee2004a0e9e3e4c565f07ef326095c1aaeb9b13362e59975e9a4a1ccd5518a8785de4a50496a5462c81619f69f15cffe4b037116497807b87bdc27afce7dbcce1ade06e14a53e2e4bcca4c73ebec22824b652a4e747f579383f64800bd0812e876cb3f3a32c317b309b41e5250b5dd0d7586e5c22b231270c7990da7ea19143d614bfe4349e47937777b977b17998906920faa5ab68cbfb6116e7c8c9dd94b35a3064ae4d9de92d9cdc8bfd787bfadd76aa77ffe5ce1e6cd271da0981e6f3e3903a62b0528d9eaffd5429f4cea4fd1e7c5f76e96664b0f1dd14d7eb1b40476af4ad0a98e7ffc071355923ec386737d9e6ba67e0a1cf1c30ed9a620c0a9c07901402ecd67266f737b165fa425a5513a64245db742c6fc890806d28dae43cad195ad689e79655bb6a1e052da588d118fa1b7c42227ac93ea731f76cd61cb4b05d5592624aa84e856eb7b13e74686dc05bded82c69f16df6db7ed3de9c3886a9e280c0f68e3ca3dddc3ae49d3d5dada23208e40ac934b079a3c38cce8bbc45023f58dcb710d8183d390429ca7efcf32713362a5daec9434f96ac7ced230c5241ca6a503480eefe1beb900b66a7baf0d775c305a5a90398e13aa64e9af0cd50f12a21c5ff3d05c8028a8ad3c2461c092be04c2063469823c6f62d5c588363a398c51ba867c39128798c414d9dd894beacd94de526e5eb66795fce30b64963cc9121b4621ea33581f9775fc339edb973c2c724de612561f360ede56634c1425e82c688ad746a57570ac232cf26e3feeb16408d669273b03d26172f67447983bbd63a04c519776b2a15f366dbf569d9671fcbd4384b6f4ab62161e8be75d0ac8713e2b5536e59057db381687425dddd8a37cf85bdec6695f0fb64cdc639652122b46716d2f39daac45c02c42228be7fc6f6c23e5205f826701c863b291fb58621401db5be49a3cf8087ede6607e8a34afe55a5aaf189270a5fd4cbd5199305ff54f9cfe9fc109e854bfa95ba9b7df90a78bfe672fa4d40915162eb0da2673f3312b6 +MD = d8765f0e30bbd8c6c8cfb3b420fbe7fac65f7a386d3f0fcb78790f61 + +Len = 13976 +Msg = cd810e97dc21095ea7a0238027a7bafd343e01444785ea9184a44a79f80438c41fc0b57aa95693407da38fe5ff0ec1398e03361e51a3dbe134b99cca2df0cef1c444ca54d2b7db2789455b6bb41918c24001fd82fc20ee089de3f34f053699c1c5f7954ce0aaabb9d26fce39d032894152229d98cf64ecafc7089530073c61d929bf5e8b5a99c99e600a3178dbc0da5eca4c608952d79c7dbb11cb96bc6bede4f8866c39c8ebfe7f3bfccc4f5b2bd4c0b2698c7d0de1c81b80e7dda9aa2b07883a33087db20812046c2fe7e7dada3f1011606a9b89eb36301e7013905be5756df8ae7a7fa158cdd4fa89ca68df37e3f5f019420c4d5baf659e96b57457ff003c3adf0a681d43f798edf4bdf9f3a98718567c5cf8e19bfb6207400a7c24e3709d06ae0060ac3157f74d5707c29d98f5204b71ff86ce11e2ce61565bd14cf78d376603a38ed88ab69a2399f1ec656cf3b6d8e074de9b272c51b5bff09a57a51fb361c63c1b28b6dc2876a4c39fd38e4a8203b10429d044a0940a651100cb54edb8ffdf132e241d914a4f5fc5027064c22bd6ccf48ff6cf083f682f062b326bc0ef493670f055279da8b5b23e3ec357225a59198f3794322afad70516421354600046b39b89423dc7e9b085787a54d034b693811c4a32d4ce6b60cf8b6df7769592ff3fdb2074c5d8b648c0b9dfac35bee88ceae2ef581dbe3d0a75abd66539274d7ac07add712999b6864c4a9552ef89974c3e2a4f8f75c116dee0bfa2e505dddbc120bee9c3cfcf92710f73c3ce675d6cdc633c915e449e9fe2f60efcff4280e1dc45f06cf12145f112f27b92a904010f434360df4ef21e7f20a0e20a3c58d80ad119578d8485c27c6fddac296a2d3f2789c4de5ee6e7095ea0c781f423b0adfbaa823d7503650ddb92b94cb1994cdd5cb7d0fd38ae8c27e6695134e33db0c75f6f6ae84cf628efb5836ca451bfc8a458d34e07952e473fbd822843ff10c1eedc26b8a139e63630b248e0fc3263095cc0e825429cef811b8bf632f66f264ce91ad954b0645af7987bebfb9c7b0d77cd3ffb3ff77678a381f9ca59955c07b781c28f255df6dad3eeb874a7cb55457abe7b16836d4a51133aae088367ed396b7e7c5115f017ee32fc10e9cbd2e8947af91c40d9ee41033b0e53b89ab54b46d1a8ef260bb0ee1f7c882c544ff95b81df44cb8229c0831582c490e085c79db650c6c416f0e7a4f4195bb4bc1a88d695116830e35b2c370f4f260c8a2ce50c0f4fa2a329aadb60f6713d4f2a16c78356782df26b587a867a0cfa70bd7757c0db3802326822d44babecf6a5a52afe884e7c5ab92206f297dc200963824e64e0a172af1cda401c8d9df34d5f353e740d0586b92f114edc93c0f31b8ee0995694ea65710787edfa4d54ec0b25e23b723b02fc10fa3f187fa1abedf899df4073063d790f9c780fb5b35741f89eb5074039cd4828c2b44d24ea2776672b872b045b22165382b48f96e92e58dc73b58b2630eed0c93079d31395bbf631ece14350be21a403614356e514619b7f4cebaf6c48edfebaeb959494cbf0d51e86f46ea155c38be8e32e4bea5f7870a9cf5d5c59a85339c59c1077efb44c7bf69ec8953d488f33caae7c55ecf0fc4121a715783679a8e8b0ebf3636b77595081df66a16dc00e05716a355e35ef7575b07a1bec4be27275447f4542513d9fbd87eed57879e5c667a4c0624d0b8569741ef175a1e00c3b4749010efbe92da528cf761d04a9de41c22d570a0ab7da62a633b32d7e3d1f8ac6871856767b70f3fa221d472b45d4077fd2d9357c8015e773b6694b6aaa42e85ac66d269b4f2d119c488b5ad794ee9e045cebeb8db05e814371bad54f6e9ddc6bcda88552ad8d887409695eefdf5590bb923735248edfb67e2a4fd514d259ee6165707c83dcb8deec2d5f5c5b6e30650a3e651a2961bd118caacf52a11e9ea6a4566d121625d59e6b7b145a0389a8a35b261da385722317d5b9e355de9a938d9c68484ff3d00c4d58bc3163cf78e5d4151306d71e093752c21e33e5b38d612ab262a93b022587751db85d7ca7820e7fa0cec8bedd6d2149b9a3660a08412f054c0e37df2c6b6b9d213741af73f14b2d641c0c60aae80a84230e24ccc5fc26a7d4329b4257ece34ecc0185031b0bc665c9c87ac66ec01a8c69281734d2076e97b0977d6c6cee140f86ddd0818719a4af3798b9f70f3e78e8f1b9e54917aa2e5d4a05836654ba2968b795ca2f9f621093165672fb77aa4d20258936147c2c8f8208445837f59848e1c7ef1c174c30309acec84cdb8c4cc0bd6c5fb39bead7b88d541ba2e739cf9a031fb46e4174c92c4bc7b7f09e386bfa462d0503e847f1d10695530a7f07a9465525ac67b300762d2f69ea054c62512243d241cf037dc3047632b43706466c7460429eb077d97f5bcc1d2b34eef244613cc2dcbff2729577649506d284e061 +MD = 4c31c9e75c8e61e1e44449de97bc1b58d69568e1f0740491a33eb47a + +Len = 14768 +Msg = 2fb2f013883bddf51ffd3d1e0a49746f7725b855ed8a759ed5d0f08b38662a26cac607d528a8af305e763510ac0177e88a724559e983c500bcef1593b726332c56461ae422472ea43075da38ea2478a5119f71bd0361a5f03a880d6516869e4adc1a7168fe7f22fa9de376bf4c1a404e179485aac48cde1658831e2added3527632a548845b752d9ada64fcc5a4b978aa139c847b26d38191dc8910a95c3be6cf35e0b6c7e5987ea69a7ad889d204401b97684bd576a7aa2923fae2cc56f02c0949edd3d31cc89d5d8ceda1b9cff115c6633ff333bec6e58bdd1bcb9f55bc9cc4fd21423e678204102041dacdf51c443b15883d2e45cdae4a86405d8adeedb372be2f64526c514d6f02fbd63ef7f265da0cd56c1dc2087ed5be1cfb27690ffaa31b6cccc781b2c3da938036953efff533e7ac029aba23d1cdc31636fd7a9ffcd6836dddf65e2311e350837e6930b17cc90470b32d748c319353a093659a1a147d84b73a77482ec209d86a101383a3571a01d7d03ea7ce38b6ee6082f82e1aec189dbd44c2d6322ece89988e3c9e323ea75e260c56ca5631a8d1caa83ddcfede284cf49f518ed9e2a1e2b36b4ce70a7de1780fa9fe32a0c6f9cc4355aefd42853d0101acabe8927814823f19bd0488af68fdd94bad975a632a2c5f2db425925bb75858ff4a69d84996d6802c056d393d9e4e3753ed5edf90ba809292f5dc4adc37c15f09b58937e1b95e4b14ce8798c2f1e78e75260facca0b577227dc87e8813ecaa84e65dd1ddafc87e45670ea23ba24686301e0104e99cd1f724ee0cf07e52cd2b94fe3cc169fc0f1e083851b66ad862f499cb407316a5047178aab0815728277f680b7dc9e9ab71ac40e8381ddf797daa6a81a5b01c6357cd67d83c98da3f03904834a9532763f711369e4c3f632e9c90eb67b921c380d1f337a1389fd13c68457ca147c6e9cda83332831385bd9fc98e64a6032fd2a17bcc302c2dfd02ca5f864b7bdf8af8918cfb7bbf1755b7730b8c1c650b4213705b3e9ca2a31a358fef3bffeaf9071c56ab515b79e01817526b725ccd5ac34c957c32c12a205e3433204cde151ea51cc40e1e18daf437a6e6ef286c06771846b8e391e9ed2e31c65ffaa23125d5ccc284bc48fb09dd182cd4a1969437eaabc9809a415a1254fbb2bb86233f41a7e4d43ebdb94c2e232571c789a51c893ce39d95a82c5cc21b24c1eecbb852921b551b991a5753734cc53c65ae3b4b23f42789a0153839250914bba1d14ab040b9875f3eda0c58fee25f565618416a2d9ae15649e94f3762a833687ba1bfa27209e268d505bfa2f76d5d8843cfa0c1d1b778cc372d58a0a280ea8f254201705094cffd05a4587a87732698d4dc3e9835d254b313e93bba0c179ffa46bcf66203e1b4e876bdbe28d67e224eb04605378173ddd38423e0cec9f7bb6f871888c0b378faefd15bdbf40b15b9748015dce5de227bf433e52f2300a8a7b7905d9ed187e20adbbe8396254ec153d0eb51aaec746896ddc7361003dab0ca9a08931fdea8a64a73e43fd705c908582c9a0359926acc9657e91f6bb47f998bdf97c3f52f3e4c2481ec9686daa175304e3433d020e8d7e32a41a6287f16eb5450e6f4070c705dffcb7d918ced018d43fe62e7f7dd180fe51e76d62facc72c8cb39d2e3dbd6660431b4036cf860fdafa06cc29b61320fe04fa31b46883bce69ad164797f8949dd5737dd8f38edf3e3bb2d1900f508282ca988194abb4c1aa0e872e1deb5ba415ca5e7fba4af69d630ef3af2759c0659203a8ed79f114e0ce3dd5dbf64c796756694f5427b1d43e04afff6fe8e9353da6221d512bb50d2b836e15ca4149d660e828c275c1e68c438b85129e655c237d47ac42573a7622046215c3539f420713339f547ee957a3107024f9a51d212fc6ff18d46a26a2d80df2cb6b1250f36010d12381ba3e639d574b16013e80c69e8d24de3ff460c9b3aabe05898106ac85cc495bb6c201b8ff7a84ceb5a530bb14526192d1907969395d1c4a8b2a40fbfcb7f4ae701103c63deca5b5a3939d7d05992dad55d8f0ffcda79610fc78605019666ba24a4194f9cd3036614754279b06d3f1a4290837fc052cd3df69e61547805a26cdb1be35e241e7bf681d917f837c85560dc7d8eeec642f2e2c300db050a605be8722f1770e2075992092c605c4fb4fb350beb5665f6f513d8e0b59c1ea1eeb8b753a85d8ebed6c6c31435c4addf77592037a183eb38b256a5b3854daa24f8e260e44e5cbfa0d2e9100abdecf4ce5a98a9c868be8974c0e3d3a63896ae7bc6016b8fe9bd0b7044eb01538c803906a5e0582608af469268e3ea1f951e348ea03c61bb40277a1674f31e576a27826ea058b6b949fd2a7af27e7088658e4345cebbc9cf1c43157baa2af07f1f89d9ee93294aeaf3503d15a6dbef48708de48897a72b3545b9e3852eb7fe31724f456ec57a9c1fcd528849cb23eec77ec41e3f45280f548330ec1d47c3d0d62d21cfd67f7435c1a0a912ffab7df66d57dbf9521e65fe949e51392c3f76efd716a67d0e093f9c3934fde3208c128ea2c2797da96b87805d5dc3d1985cf7e29af68759ffab0259ee +MD = 59186b8c3576b09cdb475bfc5d356b45b46b8a72fa37bbe37c18e681 + +Len = 15560 +Msg = b8ce875b14c1e4eda86228e6a5ef2d13b53f00918d002335c144f52add3c6edcb1420f15ec1d1966ed81fec9d5d61584e13a9151f7c9b4bb7e1c40cb730f2fe4b9c8a3ecb1f520ac0b54f97adc790815f0cca2d061d1caf368aca55e74e42f6f79672b268bce6087abe30240e1606f8c8bfa1c57f49ecea328fb0d2a0740d5459927900ca13241bf753402650c14b0b259cee52ed7ba269466115e7855ad8b2dc010b8e61ca82b1b1052df2f861c354f034fe69d33ad3c8ec9f7829086b2b9f1962b8cfc23b98665254283e77700642b308507ec30fd7759f9b45fbac1d8c557c57ff495dfebba635b0dd4d40749a70d89793162f5343ebc9f50df3e2ea51828f214d9fb78c92fde5bbcbc405c7e65bfb5324a48abd9fb8063d4e963f6a31a2bc7f3217415d84e9dcc572271a12705075db83be67975156dec476473415a332aec23b649dea27d6a57e4edb0fccdf1ae2914ed84888ff44be3b13ab43651cceb09ac7ec2fcae250ba46d074595f7907cc04d476a00af00e2ef1a526ffe104b38c59763269784af495af95778952d4a38cb6b30e0085ea1fab98b94ebc01f1ad7c8eb4cbfd6ad81ec2191c59124f787acf177922dc8223f5ae80be872a5079f90bbb020d3e2b005bca33c39d769deaf9edb78549a698642cb25a3364ad54f442d46efc9abe315a28185029b938d692ad731765e6f130f1215185a66bc777f707410af2e8f0065bf0272ebd30eb721611f9a7a98f4ed47170068386010b41f8a2fc2f837c66127c6081000ca8d108cba3dbe8aea7020b5b954be450c8eb3b8fc2403d2cc9a2fe31e5b0748665bc0349efb46b13c2dd3e161d8c18a537e9dd12d1c7c46d55192212fc300cb90bfeea1761fdaf476712f5475551a0e1b2799f385ded55b3a34b16a6108a3923100c359a872215d80855c955f9370d94ed2d0a56c34b51ae38bb5451cf197a42f6766e69ebcc4f342b1812c855a6cf4d2c7696f4ae4c489b99ec53bc847850a743cffd0bec56abea43cc7a25172b666914e8dd987b7abb3a2b40ad3cdd214cae6c7b89d7254bcc78f70557e29a2f53771af646c8b75129d8717ac95935aedee6f4fb7d721336215e993544877b3d1705c3115afbfe6a051510dd20983a7b77df61e2405322803b09ceeeb89a26ef418391dc92b89d1fed6e6dfa4b803801b80627a28b00ffc47a18ec943c712980337f0bba7665200d43430d54b297cafc1fe9daceb5f1f77d8efa96c838d2ffca9d66853d8ea8339c9731636efe457fa50ff8efb949aca605ba2d31ed46061618cfb8b2d833f8245859c7f4cb772fa2a718c1db14bea78817bc3f6285eca108e54b14091d1ebb9ecb1b7555dcc5acf07cbab32153ad591a0de59f9d24852a44caafd6fc6ea788ef5f5ca7fb256243c580767b56e86e57d862c6cc464bb81856336e90015f56e6b2af8dfe5937c59abe7ccc58e055aa2a5fb0e053f26dedd1b9b9f7cdcc61a53b75163fd6f476680837ac3cfa622dc936fc62b2a5260daf0cfbc8dbee92183b1da33dd2d05183d212cda938ce30c344044b12de6e559d642078daab8106d550f3c980f768f4c29c40ecfe5042e0d8b318d82b93ee05afb592cd79b713af4bbf64548a0e0f52c51f291206140706b09efb0027a3c2bab70bfa7620bf14dfcdbed5d0a39731f00de321d97ae478f6fd50117f915e7ae945efcdef6a04133cedd7ceca78238f510f70d1afa7521756118ef282f3547525ded963b5b0268d2b2ea2b5ae8223660a3c50af0125dd70889f9424d6b8065fd4d44172558da6e14ef2a830f92c275460370b107a70f70322ea181ed779e4898ad8c0704b7d05cdfcfc40b737009fe91761f8ac78132f4d99a37346f1938f80cc5ecec3f3e8b391d98e04bee49a0d82745fa1e99676f6ce713e4e33d1af67e3fdd8d5040b6b40db593a8cce9e42e0bf2b82af4e3226edf43e2d017be417fe11b3d97ba6ee6f2e18f084215ca0a5ca0d816d7940e7bd655d54f22575a587c29872d31b33198eebc933fd6affb83d29ec3a92887833750d685a1032c7925945f6af483c2f19250a6a97f8d20e217370d9ab74654a921836b3b229a1d8372708aaedbb66f169dbfa7b9128ef2e98e34f645895983e700181bdf1810b2e005b7b23a2af2420881e3c8ab3e02ac77af7060ab67889da79bb6ef59cc8c73f9a612dff6295ec430066510674c11d7f3439453b698fb2950bb06ed918637e9341f291aca1f237cf4f4ed88d584e2fac71247d74d66dbaf4a28af1f708e389bfa37a36a9e5668f2bd122236de2d9e9d5ae432f5581750b7fcaa5a8ddc2bb811b4b529d85a1456aff429ad2468906c491481fcb4c0f481cad009af3ebea6dfd4c862626be6a2153aff01355a5cf675845db14e1d6b45976f2d0c553aff47d46ba006f72b2a48cc1b486263dea3a5e1d99d3bd0364252b92f7b7df5898556c05ea2698f200f4da4db3514dfba23e6d7cd3ce829092d621091232236343a1bca363852d3537bfbc40130de50f6c6007feaa280029e15bfc41d8bc3c14105de1b7ac98a6acb57985415a08a5f98733d02b738cb02fbe0affc5b1c2a3dbbcde6dab2bcdafe908c6d7ea0eddeb3aa12e388bc6490d22a787be0d43e1e53a77c7c30677b0834ab01c268297ea3f5338a3b38828f991933c36b990f5a66ab0ff9e8451f6ddcb6239ddf3a38bda0cc3cc58d3b9022ac801cabc64f94d6cbecfa2c724065fa202c004a0b1d55119fe1 +MD = 85cbeefa0d9f96f83e49c0d6d9d985d6fd4f88866c7dedf50516a8cb + +Len = 16352 +Msg = e0ae71502b60e0b335f551162bef0a352ffece59b6d15ecd2e2c3f92e53bbe532626329ba5e581461c56e536378cf047ae6ace84b071cb9b88d7148e7bd9c2acef5214c0d38bfc883a55de684955946054a0b53c4488170a3cb592d17c770780855aa1257dfb5b5fd61bc3162bf2fd696ac50ae838bb4b0491ed40c3afbc96b92e6761336ddda6b537cf1ca7a30a334b380456f255b46d70d0a7a7cdde51763d33a1db526ad8e371a69a72837a453fec068320c1631b8835420d4d55cfddaff6dc2f97eb3b941c7b6ba44b12784d28361c6af0bd2a97a13d2c44bcc54b094aca70391d64a9ba58bbce1432bb64c7f610c1e24e4e71d1c26fd9777c831a7d4ea339e9f6277cf2a0191712ace9075eb2613f13c3dc0271f2b390cc13f904e0c3687d65a99a7ce3fb7d8dc843012ab86313dc24d6cfa31e3af1986b0b8dd1dab20185d5be27703671cf795c7e6c937d110de13d108f1d80a0113a7deca9481522559962bd3522920af723f6e5920b56c4379688f88438402ffcbe2a3cb433361b4e00342f2b58a0cfddd3bf01db59eb8579422a1617bb06ec986c99851658e8a5d304729c73db08c769d1de59b047e35bbb2e4ef2ae7079e1ce8bf34e367fd1c9cdeb448a747371fa84647c76779be64fe5a31a15b31d421587655f207e72998e22fed38396e7837114d6c1de9a1e9e68dfe7b6068c8b0990a940068255f8e9fdbb85470e4101e733026dd41b7f98b0ae91424b4da382755b1d6510fc23d8691c80c8c8b4dd8745483772deb590d1c729e4fe01735eca2e7dcc1ca41651dbc0f5590e7cfbd24244b99a2c0632339089e2be62ffff272addfe9dadea5945c996902fa18e6e89fa8d8d12e5751cd29f9ee009b56e79656b2ae7775f0b4c686a95f3e8c724926877c8cc89e352fad4c4af2bab4075697f55bc3f447b2f78228563286ec967f1d8809c7fe670c655a1c864cc8e4b3d58dfb03c0eeb497d63dce4a837a7ef7e1242dfb1ad11d2f9b4a17264ca981deeceec44515c54111e97fc4d0d267d80917d0c5ab05ef151129f3c8c582db300af510ed9a432671b3a9cec8939ffd7c6cabba0ba419a70373a9edadce7fec63aa86bad36dc970caef8f81260d6ca9c074f5364c60b6a75ca983ae32cba44b81402a33124a2942b148035d899898db68c48cdc248b7d5e95455fabf42780773d6e581036b9e30ac93fbdaa5fefc520c9ddeb22106ece4b21b9867d6e6ca4fdec8788e89d3777377749170e055d72086813888e8ca539eb9688a0790e25825e132e4512c24d66574ff697ef367c1000c8280da815a940be682526556fdc990645b50535425620f8c7bac8c45fc63f886e6db2d537e563322b31a068efec6994f8ce51a6a9fc478a53281233edc6513dcf6730bc600411f53410774a2aef6478a0dcb30d45aa3a8a86a11ca46ce6e56f7fa70fb42a7fed662754336f8d502a2fe26291dfc1ea8a87e6c8309c59b26cbbd3afa862f3a35603897f6d4fa3b91b2911f276748b37b7f0d800068230b377917fd3732f5828dc6bbef47d60ea74c802c3fef9822e0c3353fedb070c8e64668ed8d528afc47af0fd5c45fc59ee2da13b8cfa637f16e28d3fbfdbaa81df4fea128307113ad5043436d60662911b5e5731b1777cd1d26546028f6479888fd042bae2fbd576e67f06b6b098388cfe512a93f5f88e10ecdece4b0217ec972c8030e69d25ddda8525e8db608de6c403d0bbc0aef01fb2b2e9b687ac688c2441ea1534060792dc4da36b438a5a05ccc8478b4660e0ba4de1007f26e2d8c0b64c786011a233bd028c720e5d827f1e1db81009a3a06ce628f3ad88d749db32d3c8b5b20e161c94d3ee1c32a7ed8f882d5fd4c756e1d71c0a475b73e746025af3232c8b97c634b2c6df0c88a12fedec722c0044de99c1c4386894c0f56bc0919b08374d2d371eaf61cbbd60e7de2ca382a92cf2a95cbf9759d3e3e0702fa87f41d470876ced2cd32b50b96bca5cce55e553b551559f12ddd515c352e6161c9c7e1462baa55d01e689fa8b09e730357c00c823f151d57e3030baadb8d593bf41a6448867850b10220425acbbccfd147e6b5313533c946417031f1d52bd3ce33760d15c1e7a7bea3e306e98f1ca27cdd59ba0ede7646046fab2df9ce11b864ac61467483ff423f2938531ca6c8d24d43a081e2e3e67ad9963c658a6c45ee438765772f74c9097cbca891bcb5c8498c9e437474eb8b4e0fdeac436c57d15fb3ed0a060c3d4ce5bc82ba28916722ed8119cbf98e9f6eaaed6e822d6638bcf1fe06d75cd48691bc49a6f6806361e0a874d9bf7af6a79677ba6f468d42b70f8e6bf954e14ef69e78694ee401fa4e0a61ac09a75e75aa0b9bbf0881cac67bd11d41ef09fd44367dff65a30d141ed4a60072cf0c0dd351d6004462ba4cbb2d0a86c90f7f197cee363b85ccf81f969bbe6c0e5374efd843fe8c90a4797be874c3b14b823d9bc0c5cf1210f12d8c2b4c598fc8be6a6c4c288b29edf746bf17f903860e6fcbedd663526e503c35c1a58f8050e73873ecf6aa86bea183aa800e64d2ed5cffb2758671c6368bd39728cc0b3a97b5e819d79f6ff633f56f2c26965c38ce7b59799d9a9734520adedb2767698f4c78f7e3950f1fe37031e4551977893e11b4a7a8ccd87ca3a915868a2840508758798d598e0e63555c9d09abc17994eb9e4f0ec8690ac91b25f3f22b921d692ba100d0042a64e355e18107b8876425485d94b860def625a5adee4c46cdc75c821055eb6bd2d846eae6240504d1ffe35b36cbcdf8926539472a4cb9634106d0948dbf0417ec34341d54cf2c150813772e123b7418ed1ead0b8256630b56a16e6a0187448ee23e57f511caa475956888c9d72dd64957 +MD = 01a33078c41247da4dfc4e2fb19a04b54f850b8ca00f24819582bf0f + +Len = 17144 +Msg = 4dadef77aaa233823e0008764f49fa78f87a21181f33ae8ea817c343e87688945d2a7bd29cbe078d8ad65912cfca6f32889571453cee456f12b45e22418fd4e4c7d5ba535eaaac66ac6ca7f5ba4e1d7ca742491c9e1dc1e205f54a4cf7ceef09f5765501d8ae49950a8a9b28f61b2fdebd4b51a32b074970e9a42fc9f47b018b4dd7f3e4f31206a30efadcb26d79cbe0327630e4ccf6069f2687b7a21ede31f039bf3d05951d0c171f83139b05b21a0b6f8c8fe76a301ffa246788de5f3fa8c220f5da6ba7188379a4ece8eca80d43e6da5415b2ebfebd064c0b4a859ee58e886a42731e124b935207fe02ac3dd16efadc986b4f39a8084d043da6a0c3190acb7e6eb027bcfe6228af810ae3ac47c5cdde1e38c63a762756b5c34336b5234412c641388d8f791b86043da799ddb76de946af251dd8b043a9c866cb4f5e4b65e5a983b4587203e4f16ef982d7b76891d67d13da5ef99d83cfa3eee3f3a5d995cc8ffbcb914ce6e5f3557f43a424a4571aec12fe918786104fb023352b7214fb50e072263f07684813219591090cb1e73ffa7439bc69b311b156cd69fead45c0f805b06d6a8ad232da3a04140d55d86acd0e0035e9876caf7efcb327753fb40b4d647d471abd6ccdce099375b8e861084a927f971fc9f9123d0c9e16970ea905d666a15c58887d4179f40c5c12ad94e840edba0a6717a16176ed56de6c036cd61b73e3552bd34fb663643570248cb93336877634c859aec5b107a328fc0644a5a4f40cda9c86285312c2d85af56e1710b5c87ebd4a77666577c24d9c50007b9afa4fe492b28951401074bbc28d39f7a84418994ef559126a4f861be16fd757dfa4ee332675c412a6e5e4a74ef5d7a1236bdf8e8fd2e8f9fbc2bbd6a0617521992a37c13ded20b2ad177863a9342e5da8b2852627e80a654157c946802fc020f31594568023837b7c309ab9795228735fa27229bf3fa89c639618332ae0a29e13eb6cb9971ed7b33cb8b16f6758ac2a71c20e5ffee0abe78a071065457c02e1213727b329e602a31435254e1a4da1cc069ac28f8dd2f98ede331aa37a0cc732467e2c0cde84ee932d315d1e3b39f19f45b3f483131d7cd986a19cb77196dbd9a94ae58c60ff81caae33c3a7712583ec57940e0139ca1a10abd90067d125251e7422b9fa545fa592c0c4beb065183ffa64c576d2a7e0bd7a7464ac7c42be8d49cc8f102065ad41318b6bb603be1a0d1393cf96be04674c600ac90abe6e6bfba1db1853c439f03cf036b013662533d57d0c39d48cf868af0a949080f4fa33576fc945e8af78308017ea1b3ea2426c7f81f88b9a062de9cec03b4278e8911f89fbbe9e38a9cb75f4eece359d7fbcccf3677f4e4ff248f591ca27665960d9357a8de1acab7adac880bd0b8599c43c5b1a77c8095a19f491e06f7f848b257a7f106d5af6aae94c300ccbc8939b3b6922daf9fc442543d7c7a3f96c2476ff1d0534e352049bbfc9b680612ee809aaec281c3442881737999ec2ae15cf82b56acecf36f15fe7c4fb61c4c7650b4cda6c76c971c35b98bfe31f25d7a30c171108e2c7af5e8ef7c08739c1459484cd939212c7f8a64810a15d50b4bb3d649dd9a0490696c219327b18465d23e3dcf39c0606001114d4e7a6ae3b58a40c5e7cd6d90b72334489ffbc549181a87b9a25bf6f5a5a04358986967ee8f7d837821cd05c31f5cd0d65c84de321161d8446cdc27514bf1830ee5339775d7aa0e758e58fd0c376ad4435f4f46efe02ca2569526ec13e16962e8bb7573fa4ca44446940dadec7dc1c1282eb7a9d312ff7878a1c8bfbdf47c656e91bb77ec5cd0c753c937a2e4711609fd214a717c183ecd23193e1cb0039f0d18fe522ddc66d40a3594738674afcc112b0d94285b6e8f02de61f37d7a8d65cc6057f6003b19127f549c5da31d9858993a1a1158e19454dc0322857cadf05525ed44f399a8d210a9493742836fb94fe4c2fd5e6dbf18149b49c16074aadae19c183bf7547630431a7bfbbec1bb8116a62e1db7e1346862d31ad5110ff1bb9fa169a35dbb43a24e4575604ec8b18e413003f1ca5df203b415eeb413a93300f3d85a21b34891a686bccdfb6f12c24f6424cd20022e78888cc64e04e4cabf5962a3822d8486d0cb80d2de238c3a6e32d3e6e21f0bfd28555186b14e110f270370854a2d4df0916fc14a2e7f42aa25e72518fb5524249208a6b9a0e604c0dabdb2104aa77c105431cc6557751eec89baec1d7148f74f360100e195635c9a7ae68bb6ec329b50898016c6b19b7d6bfa4c7d76dc8101d794dcd491174c64f667fc81fba745285ba1f914d0f568eac3081a7db7a593c0582efaa63aaf07da6f228e19511465af7c5dfb5b367b53f36c2383415254d7af3b74f8fa60b53c195f4b19d649bc0a9d4cee056e49bbe303d1ed358cc972e34b1bf7465585d25f9e51420e2d67f6aa7e3802b5a29d4f9ca88eb59f94af783d105446612c2c7ec8f5ef97f9a31e6ccbdee80c7abca3aef75e1d2d301d56ed5b9b8eb2e802c7232eac84cd5acbef76f51bb79bc2f0ff4279a0e7b4857b624ab53925ed395dd857e72ebb42b00c5dbdacd141113d0402b299fd88dc0e335408d095a455d3b1f29598f8fda887e8eb99597bff0d374a4067eee07b1448d99eb0342da47d55938864aa97b65f40e60ba291984bf040584aeaded638eda3d2c4c9667d80d42d771c3d92878fe789885061db92d26ae6a284a3e06b3cd8ddb348ccdde1d3fac9c12098e744e4d1a0443c4f9e180ccda8bd803baa0c115624ffad2311071841b92637ff2f5c5f9e43ae31c46f8475a9050dc01a822530f6381c64749659b8498a0ac4e8c14a4abde22ac378a664877d6a17b6b90f63262975ae0129d4665e82aae349de437b50a0fa5e83d50924cccb666ff69fa8326b706c08f5db5199558daa5449583c8bebf7fa9dd561de61a013787ae256f31f7b6b99c1c4d1a47f47baf6b245ef02d88713617d5a87bc97cbd61ecd1c476686c06b7d7cf0c +MD = bb7d406efe70827175d4843790c42aa441f3685a965c74ba8f2b20cd + +Len = 17936 +Msg = e69d736bc5e3389fe39e086a0fb0505937a08bc5da3e5a9dbf86d766e8c7267fc2054eaa9e9b47c8642455e4869c947334c3d3dacfc2a5319f11b647c8985ce67a156e5869bd59297d26702fca6484c8c273b563a9d587424a7b397ee9e9524b78967c7d0e91954b946a0453c25049df4a77d86752bd2857288c071131023036234f1f22745f24b513bab75955a80b403298e6eeb1c2aff8a10cc90b8a2a1f2fe30a004d856f2eef60dc31486db3f174e39e8401ae2e45ad1dc22671dbab47bf208dc7092808da82e5981b28f1ba2402c6515ca6314711ff0477c74d0ccbcf6d42a11b5b457450f508b81d02c805cc72427816e722573c75bef353a604d3dfc2b10ea44dc5f9b9d03302dedddcdc0f4dbedd5acc69a4ed98b3fe7385ad0ba145d69c0be68ee03d9ccd4007c11487181aa446ce5cef774dee4c60cff1eeba3b7e1713f82e897103e03e383fb6584d0d615b7c1d9f9a178401efe00ef2af29d5f5dd3a122e9ef33424edb32fc5907817ab4b47ed9d53ceb9590548d890d8a1983391da02edb6b0f7f144787ff5a44e5d7edc6ee75f03e2147cf75ed7d45268abbf99bb6f73b7ee75cdaa51d64f7d18086576bbb2ec909cbef42bebb0c503c637215fa502c98bf6d5438704dcd9011d3fe581f4f64ce444df490bb60e6cd40564e2496063f6181040d8445a3a9d19a72b8865e25d88e5229e01fe8997cfad6c5989c1b339024883de16471b98a3aefcf3d58a4d8da77d7d24a66b2af3f877423f9e2e682df60199d684f90f9df1a665c15459fd2eb1939f99bfbc62cbef18d03da9f845e6d92d9851aac2fdf291eb2aba8e38b9e9af0ece24d558f9c7ba7a5e7c3386130db3b3c976110baf3f8b6393080a904a66a8d853ed6fa7b78e63833324c34299498d7b746e403aeb2be5f8e8d350ca794ca4d8761d151164c9f21d995ce293a1436e6de160bfb97a5ea9917042e94c0c43abf67edc50fec71f6d2fd64c17e1f1a25e71577517ee2481df15747e5c80cbf5c61ab551a6d6a939dea1331dea95530f656f20d5cf43b03c8d6e3caf31cd8007fc2c61a5a101d2be4c5bf8f7e3158c328c4f82a76f1ee836bd8310fbf19af1245614cbffc9e70a57c0446d018bca67b2daf9c61480e99218763c388d2351e7f2daba3b88a5f119ac4146da64691cab3858553343890b7789c181fb8b4f592a199207f868bd85c664d748864706741f6b0c4c135c12ec5f32a53aa31efe1a824286e14cc6990dda288a33bad3e8388df400c4ac89a3f412ba2a4f766db6fcb715bd327dcac2ef1e9f63edbe3099d2bb7a3ca648f0c58b57cb58a8bda1026790393fe0d49ebf955772695fda85a1a871a6c6db2db9ff19f70a382ebfe167c3d75714d4996718655048a57156fa86247920a84aa30dda06bb21d1c7c6566f78521645f7145056c9d0ca1d0c79b9d2ac9a8feadaf414ddba68b82b5c1827a1eeca1fd8308d7e00289ea0db168ce70caa9b9b927566f5909ec9764fd6fe7d858d0619d8664b1c9ee98371e779d7afbd8545edaa0243d97b18a504441bc080a4bed0ad4a839750b87647e5471ba2376ca5602d3968d1e72791c3091215a65785e7ee83386eb942d736b2a505e635a7a172b403489159481b72ec2ec2aaf82bb1722942a90ff91c82918b5929c0d728e5540815de642223df21e81b5bc4fd23aec54992a64e9e0342ef9ca9b993d2e2beb3250e03c976a1fc087f77e54afe68064a161d3613f2219eb8ab3bbf466cfcb7f7d494bfa89beaf98d79eb692443214067588861463b9e1e5481ba42c1ee9e5588db4f1be9da255e1a9d1eed3a1477e586d67e2fcfc2a24a2ce6cc4beca0f222ce02e91e757b7ab416b4b97c74b9927c0e59a5a996cf54aba6a219e1afc91da5321307d132c61281e986631bba79998d67a9a5d684aadcc82b7c4a0cf2b24a661ad4543a09031550fadbc5d4f49eb5a1f88e27bf7f9a6329243d07d49da49feeef0f7563e279aba6b37b86ae0a6e0d3f2bd0d36a70e81157f7adf74298e544c41a8a1554a671fa0d7b2e4fb2e432caef673650e140dd0dd90e94c35dcbbd6270010eda143b332d0cbabbc8e66a3113391589472cd5bf8037cfba132e1e76217b0e626caa8b076a2cd9eb985485b511a69b915f5119d691faa4e78dbb7a57a86ca85074217d35d9f33e8668041b04ebbd6216415af36c69a9f4e2dc0ec5a720cb369e9a7ef804a4eb5254dffc1567ca06d2e0944e4ac72fcc2674a62fe9afb021221585cbe6bef09c7d1ca6465c26d60a53b6013608300ceca4659424ccb781f4d37dde102ea9e88d28a864ead78936504e62301914ef2890d57d4df75806bbcfb19e4c53b80db146b9bec2ee6dd8136129aac8ff564caa4021837ab073e68537243f789e6c34764f9a27685c085a94c34e5772f1b68fba84f041c255079d07b6942a09f832655d3131abfd3b8f58e2002331d5f51cff82e5aa7dcef0fb746ad36925a86af2e78e73e8112a94e91a24a012ff9a1670e527eab700458837b3d6170bf9fdfa9403329d2623966e00e88329828b68599a89d41c8092d026a3a27208e36eafb20001713752a7e9d1bb0a2725db9be8c88233af016bfa17d127896730574b679a1e2972cad666cdc602c7371b84f8c16a112be023e102c191abafdc17d05accb9d7c25edd1928e853bd69dc94e76a9c472db8900a4b70776e175dfa43b761871711165cf983b4e283d4363d176bb82168bf24e73c0f0de07153dbe93e72293fbcb56b95a57cd4645b3077832c78acf7d4b0b50c4397a1a5a14771d0906b7a9db1ac0a31696c4e16e5b773d55b760cc793e6b428a749f46d07dc67d7bf081b49fddc3b57cdbbeb9f2852745c2dcda138ae4b6962ee8fcde1a9f8042855b3d6eaa82f462f5ad173a82ceac03f29e633f32cc61be3a2d0f6a8918491e8dad37128bb8c72e29717aed8fa65a0a7d8278a9f153e13d24a73356bc7695642d4cfb5ad3dda08980df364d899ad5cbcc0f96de5729d9a586fe253d2518d9b5ccd116a1e3603507842ce5c4f11a83ca56bc5a56d4acaf69d9884188439daa85e4c005826aeee92abc0115fe66b40888b61f1fbdea5ad6fc84dc14b2a8737c471da04466bae8316590f223545ae5c879528e734e18b2e4f021701b66b418b39bdfe85fe +MD = d77cab67ca0a079be8af65b659022cdbfccb3834aaf4bedbc59d302c + +Len = 18728 +Msg = 303fee3e680d647c0d3cbb06feffec4607c53abfb3bbacac6192c0e49a825e01a28f0bc14d0b5fad145cb9f868ff31a947cdcefd0c7dfa068b6b32995d97026779f1316a04d439836bd0f961aeacaea4ffab20428b0f192a98dc1b28d0de5209dcedc8ff3570d8473720e508780f4c7f57e89659d878f360af6de45a9a5e372ef40c384988e82640a3d5e4b76d2ef181780b9a099ac06ef0f8a7f3f764209720e9d5e910a34309b8d4765d34351386f38a9c931979f074219c11b1c7d52a5c25e2d1441c31896bf5f58bba4879c6f41db424e9521f0fec3dc334869196866c860786af34d8c233402c9c62bbe14d21471f2a037c3125bd8a9496db1f4e3cb18b817e932240f749e1a132bd5514b2f7b9f3364b5f5a3bd15138c11637a652117b784159ac123095207ed433debbfd5dba57d028c240570fd9d73da1a246d276a01355679bf673fe45e80b2c1d7d343a947381026e8b845f6c9790e228d5c3c7407b4427b693ca6f97095e10db0361788d70d0422ce4c7a950a3444390fc2eeca4d896ffc7923ccd5f095547e0f48bfeee76464ec2f32ad5ce21e12aa4621acc1451d159949ad101e6107839f4f9bbb4ffac698ff85fb4cc2e3aed012ab08f51d70e7f9ce75492f37145504fdfbaf882073bc46d98d06d74b815f22feb8d9662373827308668868b4bd064ef68de4a50504bdc5168f05eb6b4db771cafa235e77af7527d397db6b2bbda3c82590eb90620033ba132648e7b69b305303e9676c9e97287ebca3b284e088b617178f14e8cc08b68c7bcd705a920c623d35f1261eeccd24ee2ff4ce6487b0a5a238e3010ca780ceb29cfefcc29213b596ddcbefd3f6b3e2fcaa255f8895c80afff627208a98fae4d313254eae4b43b2f667b4152a40ddfb30b790164f8f314e96fbe603c0f4f981545afaf67c121ee2e2605446806fcdd610d4df5347c87ef8fd968a1b6e5fef3cbcf0ca84ca7af7bdd15416e484b7e5fc238e5dc70ff613829a729de7e14e5e6f73612e6a080a70bc49cf968f95ddc8d5cf50b5c1e68ca184040c9bf9a834c9a22e289126b3351c56c21f3d983225e90baaa851d489f08b75b0c10eb14197a36d33b39d3b6a8f5d25c0ef86aef844b9061c11cc8f58b633c0273c60bf4c0b9e393a9e9d288c7db591cc9d0c3446aedb4dba098052e1625cfbdddb2c6405f4fc9e99463b7e9784b8335bc438b8abb8a25aeb1c17bfa27949a15b29dc502dd850f5d646d29e1a38c782e4d196ac9616b0b655a5fd361a7fac2915a4fb04124a3de7781d0d07930e75f8fe6190a0a43d88d850539b56b7c9d72ba3e902e061bf15dc0535455b807a460e1ee0d10544918d3981918c7218fc6d016c428e758aab7b5bf43c060a7100ba5abcdbb27b05b750626fec4b48ac8bc042f55de843fb93c0dfcb7de984c34635375eaebf52561354eb51b0522ae0fc9378d5a7badc330c98e001874a6b159f695c8af6722bb43a1d2cfdaa3ba964d3391b639c809edf7a65f52cf4b31de680a912a83f6577ae901bbfba2652349684339345c8a41c4f71baa7b422be2d94ae86f26ce5f3c6b3c9d30c2dc1405cf4a41588f298cfc5016709401dbdb61ace5d85841f96b789522bc5aaaee780a31d975154d0a95e39a3dec476e0125555f232174056ae2b40184a8613d4159d876ff2699f8666c9ea955d8eb491bcf67f8eb0deaf98a8c97b54ba76c033d7f17a6a39e0b17a4dad486447ca71b93a23e8124e2e3a5c130cabb5d02a3834ab270caad2394332ea72d37f420a46bd0668301b8e986927898f41ba4012f45d1b98ae904fe5cd36b9b53c64b0c0ac13ae3dd818e6afc47158abedb07eb38d1385d0f0b92778a7fc37deb3a338700a539e0f5088ead6c4c02cfcf056d0ae5b0e966a4383ed547c09e17a09c93dbaea03527729ea0f9ff2aa52fd1a0c0a45f694a9cf379f062ba1c642f17f3524e3d39967efd4bac98dc68687169b5e702ce84c5c6a4d590640c1d7d8efb475a29d5f9c4ae3e189ad02d8eb25f414bca6c5989c1ae5f550724644b52fcf2a192b49d67287fdc0c52ea1725eabf016a51292801a61acb003beaeb2d4941a408e236be0b28b88030bd2dc4b47a5a511a64836474dbd390de15fec84bcb24bb8432f9606d2d23d18ac1e35cc3c9f8d764ebc03568caa157f77da7242d416edc1d6a43a916a0867825475206da3f613e4fce29c267da4bc8545c2e275c11e7b1dc735dc48de7aa1c0638c4eb82445c2ce4f50634f8739b8afc98dbf85fa557e2c8338fd75a6c5766377a7f334240b24a2a489fb2a4fd5746f71bf6c0be638617e993200b069554fdbff7cc05a39b2b3f29b03b65f1e048a34ecbc7a602b53cf7487b5a8718cc6b8ba695f2892cbd8fb3e91324756985364a089296d3b202402aecd48374187862b5f43e3be9650fa650735ba0099452e9e22d57aa6f56b15b59de84e4f98e000225b2d9ed4ad6f738bbce6ef849f9b02814c6024ca1762c552c2475c53f03ce1383e84e51d708de0c9f0236745e2008bc88d97ac4919bdaf64ac88d6e6dff495d769c85afb5822deba218995b7091c06ee571a95a684c23055cd1b626ac08d9a7a7d8654f0fcc4a9d6c1781f7a6d54204d39376564e126f4c0948d73624a8e6bbbea3d8780b6f9feaa607d58e2973f446fc49c9ff6a742691fa34d8e6fc66d85f6206c673d1f2929af8f07d6921f340fe059a8a9ee5fab09dd69da07e5dca185c3b0715898add8d7409db60d0b5de8df2998fa17be62c7638468c19466e5d0c7af2b1aeff5eb9f74182cf680a0dba42eb5e2ef7de9693de29f2072a8658a61d802f097920740c38c90ad57c615212c9b1fc81720f1db6513a8119bb85422eb33899195e33f561b8d44af4841bac6b890c1c90fb55a21d38319cc7b58c557b3768d9e8467f083dde2aea346981424feac466617bfa4d51f9d7ea1bfee3b8170fd9977e174dd62a1492919d11db3d4554a081ffd84447d9fef4141c7fd2948aa5537ae4bbe587afc2d6e7386571c4d62f6a166ffc7cb83dad50c1d220a1115a609e2a21188f42554ebc960c4d8a0088e3e8ccbacde9c80670b29a46ca975611a781503d18932fa2210d4321b27019e6d8e34ce935d59dbbaee4467f63fd8c36e4c59441a2387720a39098807a69367577223d041b8662e4ceac6e85d41bda527e329d349dc842573c0f3d308fbe7fbf266f481166453d0a3ad3ba61063969ecdd90141ef389b7ce5550da39d7b71d4b4e90151a005a56b45921d11ae09f618c69a7a0078bc4ff0d541d16a43c9b38a1584e4b +MD = d293e54989d6f4a7b901472b32b6d46e5faec0de0d98cdb9d1287dae + +Len = 19520 +Msg = f29f08af874a0cd6bde6be6d2c3c12acfa6903b1a28f7bd0f4ca732b5e665b82694fbc4c86c81c060b6022cb7922fa25000dfb2345c487ab628633122e5f28eac0a0ca1b2e8e97369a575105704a5f67e946715ad473635a953164ea6e4e5770fd7c79450602440d73b19444991a091abdfeac81d706d58495b44cdaa39aaebb2aca12f2978ded349d5833b07dfbbfe7851cf5bed6e4a6d16bf8330b57abf6744e72dd496798585220327670a3564b76488894395a759eeb1ee463a411e9f642725b227300894e100529a4ad9391736e0e2ad11cea218477b65f23ce5abc78ce9d6f2998eac997165324078ed6160077dfeaf38c0f5022203c53bab1b98c42bfd79539deabc1fb0b120ae53cf34bb93bc4b044b3506a3e8bb7a77174b6c11ebe28b59c70cdd842974bc587de729a685fc4640ab935d7a1632f439040d9c3d27399b89874d8753363053c359ddc6ad38ee8ee8ec646ff134ead0f5f3cabfa26853184761352029817485737a1b822c36e373618000c4b5bf437f32591b3cfe49df9027e74c5e6375b1cfed4118e2c00a7b924f0920e2143ffd8d72c6679a8d262f71af7c0b889d8d58a195515e7ef52e276a15da2d4ea911495a3bae486eeba7d35b52b1eb4534530999002d749d381c77793a859e70f0edd783f1832610a6295bbb960b740ac4512524b237c3f4054fdc3e41adecef6820288938e7a926292538f10dfb2e4fc9f24bb33002f4e9e952d627af95a1109b52bcd8763e1a260145fbba0f03828ab1c0ddf2ee11600550afe5d3f8df439af6eff5004e191186baf604753da7195218475c3250d59dccd7c19bb1920d5cd4f772618f04eb27cea2afe390fe784b2c69f067101cd216a6fb22584f2f824555396492d35f36b57474ee29bbe5d9a07033466f0a8699633a176cbc0b15e0a5a22941098b918e530e9e3b4744785da1d3e0d3d480429dfbecc8eb3783e9aaf63243822606605488f38b11bcd92a76d7be0f03482fc54259359c384b481f43af8c14c288d2201bbfc9c7fc0ad870b7aaa52a6f2a477348f3baedde67a62b4d3a16196c928d75566007d164b1c0ef82a30fbf720b95f0f463d35a483d4c921a4e76ce0ae386c4a7222433f63230fb8a59742aa66c69b2e712155e000c99e84d2514af07ec5c92607eb56c0b0c87291126691896bd513d9397075580861c9258868638ee2d8d6314ce21f61dc151fcc99264f5ad8edaf58c6b1ffd541a5324cecb2208482777bb56a8f04ec8c12feb0645ee3e6541757f23f6c5a1f539cc14126b9e79905ada0f8897a6e276ac6f8879896b7f5885af3f0cc2aeefee74f5f4b5f052194147f2d43cf2cc6dc1e39f3976057324f1cbe6b9a9771233aa5c4f2b4bf1c373e56f70ade672c72d15073d82ae227bcbbb74ba738c5cc619a340563c26d888f5f741c1f117702dccfa77d90864691bd02010a8f1281c010e73d1a9bbe92d193bf15f6542428376a9dcb5e02f3b51a9deca4020c70f1d798e9670981f0557daa25e28e925ea1528605651e15bb574cc541453b04993d9861685bdcfc9fdf163b5a82ebbf090bdb97cd1dc6b32553ae9bc98fbe61d68e8bd32cc09bf6145724b0279e15c56b8d5a05be9a5cc378d1c8884c2792096f0c3957fc3f4c5698e62d7052de158acc505837a085eb2cfdfb23f591b8bfe6acde2953a280f90471b4bbe3a3e9f2f8767b5d973b8578d8fcf7464861e84eded42de331e42aa9e7e7e85571e468b4f6b037ef8c56430daebcedb9eb845f46db3120f0578be565e944ab8482db02646bc1ac987ebb66b19687060544c2c6afc409e0d72f5f5b34f1ce24ce7e51600941f201dfd530976d78a369b1bde3c59281a594201f27311ee8cf7cbecd0f2aab5f8b5f4cfa7e7e483c594045bcae03f6f94d655491ad122bb48ddad9d7da0752add4ed68536dc24acbf1b04aabec29e316497bfaecb7a4643e5167a9057d9f071314d4ba49c40c7b0bb3e347f165de61bfe0fd9a980e8fd06e624ab5bdbe9bd179953bcb454d03e4e5e701c4f6e1cb79dc5b13bdfd7a7c772d0aac856867a3b9c79d4b21adce508c41d43149222898325602e7ea83c21362618fb5a26f3e5ec6e5752b46ea109a7b08c39c5fdd01ec95131d9ea992b0fb98f33a8c93380c7500bb6505c265db8aba20fc6a8d8f366fa8fcf46382920add21cc535ae02d988f6f32b4fe1b85f6c85073c7c25ca08dca75f9cf5cfeeb996006d2224612b5ac551c30ac40dbb12bfb45e86ccc5378cfa504f3f5b1a405252d4eefee79b0370e6f0e9e93f3895340cba26632b2fa7fc4a75bd0af8bfc4876eb010a011b421d87844d65b23eaed2fee26ed76399d91e3379847a45128f1d5343280ba15350cedf3ce26b514ad1962de5b12245ab79bbe5c387d7ff6de4ea85ddcad9174963b2de41d49ab83f7a07957f732f211061c0a32c6ad124c58418d560ef5eab2602314c382bd92e44328dfd56bde63ef01993335c374ffe41f51008759f81a412b6b3f0ccf00ffc817f902f12962fe6722a9e5dfcf638d30ac139e9c3e32a4c3406a093a32a266b1fec78f15c07f25fbe1b47ebb4ad76ec476ffa3ff3c241e9b57a60fd65e105c146fead0cdc1717f2fd74f8a32b66f0912188bdd1ac45afc4bc9a5bf6bb1d94461d3f974839ce86e757be184f0a288e0ac093e96897735a2572effa464de7bb44cd369e6c1b342786f37f0fb5f8fc389e4b18e6cc5b542b53ff00a3b4c24662017d6b2b422c52e216fa42449e9ee8d696eaa01bc5a1f00a988a55bf0ac24371c65667a490112fa0e1938c21d1a3f7503ac7b2f21b1150e03a3b77b70ef7e5d0db80b1731f75d3472de7e70d18b12e8ed207d6d295527b93823bedf1890634688822d1feb7fe47c1431eda70396d9779a6d59423fd0d790db8b23fd7429a381f156550af1f5492f46b5feeb3fd8139f7fe57754e19e9533424c8f6d00359fadec970b5ed2120bccaedd2a93c2c951cf121b500b9b28f10f20ea3994392eb818eee6c881f830ace2a10a096748e5049505818becd8fa6b82ebd6eb09ab8f9d515ca8052af0eb9cffb1df13ac3ea5bc7faeba835f27ad754d07a4fc43c3d2bff5da5d599048ad6c7275cec1f920a5d9ed9228cef9139caeabf8d6e5c91e928064cc992e886bf08bf9515bacc47b4ffd7d444ed7410952685e53ef400018499f2cc7de0c49d75f8bd2d9082c94cb1e979d29bf24ad956942a29d50938f4d525ccc408e7b7b1734eccd7146d9f07c9c28cbd6dc4fb5244bbe37399d48dd2a5759b1bb3ce482a82b1f17beba3d5e2c333197c038a0fe52644b7abd37e8603bc3067bbc6be00706ac936015b4bf34369e326f7a56d0cf9c6d6afbacb2eacefe2ff388b89de65ebf33fa251ad8e8194817bbe169b957cf5ea1ad186c90d85ffdf8a177343570104e4bb3d542993083cd4a2 +MD = c5f3cd17411f0c0242abf25a363086cf229f2355a78a0503758b4bde + +Len = 20312 +Msg = 787e19734eb7823b33967ad23389083428907b8382f15158442d57574f321206e3d25edf637455a3580a72f2b943f6196a018b2b020d2853d10a346822a7eec2bd190c4cb0c9a2db4f4946be7a8d72971e582a69fef4def1b426913af2613b6c0e3a6ce4be1c338a203d3e5ffdd042564e7d9e65ff0e3bdbf46bb6f44ac8c1abdf1dc6cf14d6ce59d1cca2fdca752fff01572f488cc306b999bfeabfaf44472837aa62353a603cf06ce0b9bf6ae2013a40d0273a2e7b0932ac0c77c3ab3d978a1ec9873db92045f6f860ccce648180ae12cfcc626c9e0aef3339a327c51b777a9c627f0f1880b0147e34235240b974047f3d68e9ce94d298392eb7148646b0a0ba5d90d4dfe747f10544067287f1a4e38f0041f6dcc529d4c3d3fab174270aa37fa203b497bdd0369578bd56c093d9f44b019fb21f9ad64bdb10b62719244c2cf41920d6c769148a36b88f277306dbdfba28cc451e79a3a688cd319dfda640e21fab2e63f755db96f1ecc60d28b2724be45e0fd661cb568dd3f2b53ca616ac6e0a3e7782afe8ed01cdfca82f68ff66e0d289af8d71f9b8a7c267882b9eda5977bdbb415c788a1174d3d07eb6ba557e478b92f593d569919d6014f2936d5c0fa63e0bd519d9a311970a508fc9a71c8328176229101585a916b2e13d9c990295a397147be05b9bb3117a652591b6bc3e2a7fe0932bbab4c7bbc2b7af6dac36b515d0c07ad984dbc08b2bf586366f9d74f6caf37a0d4b5db534977c922f2e5f35a4eff61c2ddfc9ffac26e9fbdf5a27f034008528de50ea3928391a2c09a5e4def9fe9ea704f1ce3a1d722accb400c3798b2a7de3c552c21c40b177c6249b2f78bc049f648544533785179f41dee8d7d6a34fc2f4ead84d2523067da7a897a7cb950ae39bd95fbebf8d1e2fa2859acdd025773ea3766af31e79401219bc22b49e2a17519427ca789add8ec436d09f0b2fb9aad83791901ccdec68206288c3bebb2633d196980eea901c6f4546e87efbbb06f178fa62d330fc22848ecb35022de82f664bea54b27b69f2c9991af5bf033bb553063212ba9771c39f449ceb676aeeedb9a7d9823e92ec09a5aafa1eeb8d796dd96b28c8ceb9f578be2a1dd17bdb950a33cda94b3a99e3060a5f2e8b89003bd78a8d24ad95ff4fe9eb289610c5e9a42bdda6a2d62ff7149401a0fd6521c44a9b6e556de999cf49bd2d264ecfcdfce5fabd180e4ca51447599155b1d43b416e608dab4da36292a99c8d0c8e371c7d1e1fde0c33d4225846fdc26690ff60df6ecef0780a0476b1383011c29e7039d21842456b5b97302bd8299cbce30f1706148e9ea2ed335f92be1ec330c6a1ac659b0afc1bccbc56f5c485283df12be91e26489f133e58a59f0311ab3f4ef3fe9d6f1f0a06ce6c1d1ed3b86dd2047c5d8f6da3fcb1459dce3fceafd0d57d8db6e15b2a7712abcf0b0ecd6b7364622afbc1b148bc664a2864d9e8a03adb9c975c9b28d34b29a90caa2d7a4543d9545c4b1cbadfe7199421efd71a8df13af33b79329ec18f32124c82e4a1efe41b223ad6094f0f86b26cb1f5a02a1efed8ca9f940e859d4b152cb619990c105e1014ed23ee3a809f181a00009ce0fa689f69eb3597a50e85ba4073f9b58151baa2729dba3441db3d35e635973306ca37761748e435c6bd470995aaaaa1c95affb8837124442dc865f0177843cd623573441ede2a50af5198ea7584b2c4acd235399092e884c5ee2131f7f38ad2bee425f3c4d48e502973814526299b85f161650fe1288e5ed3f678e0cccbf7aae07e556a5252999dfccb0802f1c0ed4e62b09621be5a9f391d8773e6df2b0fbd90ac09910f82d19ff00038091e712e86c567d0576f50a27d6d4a182978395c7498164b50458ac0beccbb1642f566e894e32e1b993b331f9189e77192df1d6535bf63228f3a92ee635aa3ac95bec4a2e284ab80cf6c2b9edf390586095b00b269cc3c973638c3e2f4606101ebc0b6e5d76f8906e1485fa8ce474c5d77350acc798848b02d854424dba79c1d2a446238db6e6eb6b718f8c4c6796600c2b6623acbbb30775c693e3c7ef7fd093c92f023564703963a231d7b2f99f877d4233184c92c9bf4ac2ed9b347182ccc07f2892eb0c3efb150b3f754726dadc893c79e33daa5322e031a3c0f9dd1d06e75ac55e252aada0ce20eaed7f5be2afde9e9d2ce65ec9d2d4b7790dbe7eb91f86d077bc6a2c46eb1d97d698c21531a1ebdd0f4ddd4cb83f96a8bfc9c8f2f1971d64c236309d950a71b4850fc5ef62331f6c52de88e078c9b4a9fa9dcfc620de19ac4773ff0b02bf692b78cae156ded407e10a578fb6b611ad1fabf22964f1850a0b49ce4bd12a5a72412452aac8121523cf9831483beaa7ee9e665f7c5bde0c7d067bddadac766c0bba0a2f98dfa677018c8f0458ec70ecf79a9c3e2f1730d4d122400a7ad97174c3eaacca21ea066a1fac41392844f3616688c026b823a48eb4e328dd5a04a60509578ebadc93bc7edca361583cd1eca5ba0d74a1ae0da39a86cda8dec19a7e8d6a85226a3f592315c70661da0d1fc71a408d2c278731b878c54642872827758e55f80a50b096e4df7d59c5472f9b1d3fb88c5930ca4c5da9fef1885f142825786a249916d6f97c3c5df20e180ab04996708f7e45ed99fdcea233dcdf0c1908ec059f712518ed53ace7739ed5250bf6bf170b1def77b723374d91d27f86769a59b6cd04f40cef05b1b8631a07151a8f09fa83ba95ef3068745fafebc909cd4431fc31d71c297afcdb3f24e21641488d17b99dd6c1ba82381666c29b440c89b105546259f5d51db389fa5d999b30326b68d29df50b70191c8de19e636905384b644de32029b643c46e585192fe7854c45dc41887cb9681705b5e77d6a09a558daf4718ac203399a9d8f7c580c8701c02970ca2118a9447fe0f4c035793226de276ee876061d36bde5a471dc571be14b0851aaf24e10fc8f00a28b578b933fe042b92c3ef672c46dc72d4bef392c8cb58b88cb434475fa100ec7302bc7b55624d6dd242abb894c71ea31f4d7da416ac6591b135c2260a5c9b16c96f9561fd57489e3b7827dea3492f8b853dc61e2e3461b156c84115965849297a7096059229603d2cf8d631ee59896cb5048f7975ffc787bbd0539e9a20759534aa20ceca752edb2539496acc84b6e70d361c3e946b11957ee25c197c41bada5670e825fca72ef8c2adf3e1c447228b1c471ee5f002da5b0e62dd1ec33883697e793eb3af5bcb0673eb681f7c0d76c960bbe9f82f538c58f8f65936f58169d30b07a6f068ffad94b76618ac4a640e0269191ffd88e9a21fbd0142da8998d8a78ab0b354a00f21140ba277f0b5d762f693c3136eb311a60fc9183c71f5fb4a478c08d668eaf6d014ff25289554d41ff67f5e86b4347822a9abafb8a5d13549437d84a295b0632517f0628cf28de68f929a5fcc666399829de34c29de91b3501bdd988a7376c0ba8d9dff27a0f78b5c4b632b670de6d2502cfe520294be11f9413ad9007ad49beae6363f7b18f83ee0816865e91334df06076b65f560ccbdaf5403aaa724206140c277b81 +MD = 01ac3ab5a115b769a29d9e315e62ec84d51f7f8b364a1e7d60bdd982 + +Len = 21104 +Msg = 8aa3ee3ded70df9c7b069d25d849068bfb23f29e84841e6f4fa769b54996436f82f062cb84eab647e494a016165e5fc585dacb1ee3c3454dbe3fee4155611755a9f2f930d771a6e9a458406f5aa16929d389fad9d394f8c69bd1c41aba5f918927301b338d0d97cce6dae5fa4b1c0dfe0ab8e997fafd1f230be5530821989a522332319e4ec66f36d0a3f87d92d6348e55f0ff200009a2ad380402d3321518fac581a137c4a517708a3adfc1d6d7c41fdab7a43b8ebd69a94ab53b4294ddf5c737a4d5c795b177c23d27048ec028a7fac19840b24c235d626981661ef0f817029e23331569f3777311f3cdacf8d0c36733183b4be142641fbbefe92fed6f68f2258725ebe97100cd2d25a4e225d702ad58c1fecff62267276b872d3d3449cee1f157120fbc35f816ba45f0f9ef464a16571aef0532cc4fc39fd19a106c8e33152d1b624a8b474997dfdc19ba002485e858ab77b73e47023b8056996f3e477ed7ff5c7c64feadd998c57187eafd799a6c85fdffabc19b6ad7359d9024527b976f8fa0ca25bc719261938ca154914d71ea0497edaa64d16edfe62ee8f54f3266250672b3556e9b5a3972b5d1bf62a9f2aafd01aa7ccff0f59abd920aabde74d2418c579fbbbb311b6a8a757ff2189405f399c49fe9a900e951df505c0ea64ac50a48d9f6204c3dbc3a025311b65c17920fff6733b99a0a314c77f048e550bb27c9637f214cc8c625f203d8f0d3d63981445972cdb34c14b5d3abfb35fa83d0dec705d18607d8d53ed9b48a84112d02badbcc6ed7a164295d2ea3f88b13e890d34954588e192471ef393ef43538097a251b82e2b8498d4e11a4886fb1f92603ee9a7b9ba14953a22058c89b6c0f14aaab4ea356d8736d8db97e82e81174e6311801a02328600e70b9807b098f5ff39932ba56529fe9aced3d05b8ec124bd02337c5ec768927fce4a2f77fc508f0514fa3a9c45f7572f377857e53021c488be0342f861e2e63c605c305fb573d8ad4d5e7611504c2d5ea3179347ab39731c070f88796a37ddf13dc04f4174898f52432e42b70caeedb3825026e5686ebcf16dc6a15468be0628c6f4e0afd1e7ff8ea6e844efd38614c855b06730f0381ea362b7120bc60beb3d9c88791d2645c5dce92ae14e6d683f07bd96e8cccb2bf4ac765f7f220a97f9ba1ef99cfc19f96ea77a54ac3502cbd8ec0a92301b51c0eb67293e3d19bef8ae28cea6a0def5995688eaf3fa465c375f0fcd30c1af4c8d7f7dfbb1d0655b9495044c3e4928719c19ebab977ff4d2214dcd85d101fae3e80d5b5e88cd8758f23ac6e82eea8af688256a4c9d91c30d1031bfb5119570e0773189d1f1a9123f980c0b52d6f958fcd4056f4ea4d423559a9750fb60e0b39aa16883e6aae788980c852bece51a251d063675121bbba84416db1b995d6835aafd3ed41d030d4ccab642b346c7b171af9535163780bcd4611b999a3f55b07979f110e4d5a89ee1703ba13bd10d53c15d178dcd3f625c0a352f4f375de84df180137b40b0e9f0e900f33d201c1475867df3bd049a3f2dec28b8588d6593952065dafa722f65b7b5f57372faa87b9b53bab02f46c88586ecc44d6206f6c62a9893ce0af3b1aa57fad632ff35d6a1399b7be3611e5ac40b7e8054e83e822e82dc8243294fe806660a2bc81e6c4733d4d039f40ef5b1893023f575578e880b123eca00d1d1232846765e997d087a91f1948d6865677d23797f9c153c81790a6d61c35d9142038e9dc1f72d8794e15a244aeec720ee1e416be3dccb03b1f59af8d816dfe3fcf987b07f7e0aba9c0bdac185c686bde405517bf33fed599a5e3b58f43cfe466c85c242f16b97a2785ab26db7bd2d8903d2e21e104e228aa54379e2589e3f453b38ccb9ea388acbc46e7f9d632b323ea7f761e6ed8fd1236d15c54977b3294cd372e589ac7d2a930ab770b51aa92b3b5af35f5acd6d9fc04c75abd2d43432d9bfc4cb26caa21d84b5b6546940af7f0b874748ee427fd4cdddc3ac32f069e2886abedc35c73fca3d4ffb991e67b6a42bd773ad15df2f16c89b8034de4efcceb56ec1a72b14bec71953e79d3912574118a5f8fa661603ec2d004bd42952354e0d366daa7b55978ab54c1aff6db2f9cc5e9d57bf536996bb87a68708c8acdbe6ec4c2354aaec628b7da2f62e10dc26bc69f8107a625c400b44e8b25120b1393fcf3a73344e5b984feef319b7c6e05687d770a3aa1760a85201516e4bc601d5af426bedd7ba25b15e85a6f61af48211b5038191dce7192836397b0b372d0149bbd26af3ad82dd362dee590bc62e13d0ca8a955b6155e8582e59c029c1ca420dfbfbb215243cd4af346563db47d8382c4ee94670f5f840a080eecb4a6a22568ac62acbc2ea5cbe85189761d52e87418ca88bff630922c4a9f464e6dd9ec98158d0ec329d5e46fd403100dd99d8cfc26a6e0f2ab1f989e6ccef58cd53ee3484e072bc6104fea01379142e3189e4f65d4e15cf72ee65722991e836c95dc6d7c3ca4217e18a59dc9388486bf835b1af54c026695268db900f91558b755bc737b07eb58b3eadee70f0063466bc1ded6f6b39165933b1aa57fb33ddc34bce4de8ed664392d2e02af1ab6b6e9ad7b2f69ae3416c1ba169702e8f01e78ad735e94fdd1982ab38b1add338306d74e5954bd66f41ae1d25f0bba83d73e92e822327f10220e940fa92d58a28fd977160257b8651e252fa3bd7fb498912794af7066860fee4ee00731430aaf01ba33cc1f3f44f5d8bd12f4d9fad86f4561e4c80504904160e17464cb64daa2022e723a5715485c4a6cf28e5b840e501c72ecfb8a1387ef9d4ebaed1e99b0c2b9bf9d2653e0abe39eb9383aea253e823ee41212a79c5261d01d186cd3e974584ff41a59bba857d2f92c4abe2ee6504ed23fc0d303a6d9df1fd7f8a7915d0eaceb55529b36763371854e91e2d1ce2cfc00095d08473904b1b203c16801fc6706b66badb36c5127076aa6757078e6bbd4f2cc51771a5dbb1eb229db75cbce65aed8bd946b06411bded0bd5f2ecd35e31dcd0f03e9251be66f47d2ae9696dbf1eb78d46d89ac4ef73cde19b5e678c38d21bc5bdd25107a6ded9885a2950a2cf407be36a1d60581a36abc44e05e2198a226e53746f5828338ddceca1f39d0c85448d36d991abae108b093c6495f6fbd0875702ba61f233d2f8a10298d4990b7fbf7df01bc1d72760c558b2557b00a39a95686bf666c9cb03b3b872b548ef102cf5b097871a6d64998a3cbeb711b9b146b104f7ceca495e442375b57dcd09cb0babe7a5c227f8e6195e07c9f0166ca5638edf2e9a18fb5e22dc7b3358dd639c9a3665a34366e41c7e955c5ca6e5a3e08f733978fedf4a5b1e533b74ed06a6f56719cd089153c97817e4acff320bfa032902b68f4399d0d5951c391290b52e65d0ea804e227b13a993a07c1a27f5d97daea1d8aa2eb5093e358bf664fa85747e961d21fc7d394cf1607d3c460f3fbcc0aef5128216dd6e256e46e61460d413aff526249c084af0101ccf800b3e463e6c9860e68f725f7a0badc19a798a4d866a9c99fa9569fc8756171bc9c26ba5b8e20979e72ae7d7a7617270863ccd3e474eeaed368108da8d63edd68c13eddac6c150b476fcedb290b76af83bb6b042c0bd7e944ad77b617caa1fa439685b51e27b3c85287dda9ca08de5bd2d7fc9e79d46a633aa11182dcf991af974482ab7868ff +MD = 87d6274cc786bdfb6f0f0fec031561f85cb3f905c8f5d6f85b547df3 + +Len = 21896 +Msg = 757d6b06b2249f2d34fb3f194c633ace7b264106295b212e9a8a50b21f10c57a89c40db5e3da9cd5610861da93e89dd4de9ef4a32dbac502e460b7c416a6945cf73d5ba3945490d6c1b9d7de5341c1d5906be6c5e44034b3d67d86dc39f4783ea7307a5a2b5824393e55caadf5374fd978d53ef3b6b41649572be682f2c41a2781e4956212af0005bf2661cddf92efe97e2625b60be015cd51b0ff3fa9dc221f6da3d241af21cb422b72c5c87b1a480b8aa4c2954b8ad746ab55f89ac405372f53b359816c752df86c821d263097034984993e18de7b04bc4d62f91cac07015d1b5d53a9b075d030699e926d65d0c7ab544bc0c72d7b45371f1f2c4bc9aa2ab3ade9e842e2e759f20a0e4c27848e3d38e303712b9e5242c008d3b7b283b65739f19f3fd36c947344371972dbf4990df8170878cb9ac7a25ef3c8c2d643f232f6d0c781e4b544c430d8082c121db9def3d9a4fe2f8aa30d1ac54476416f2763f230a8d5fe25bef4bdd523a45367b65832121d2be0d4ae2dfb6790fa7a711d9235fb8b64a824ccacf316b2ff263a5724bca8bc2665e2b0a709c1f47709af9c66c817b8566a1a3494db84fd6813fe65ea9985c918461a71264cbbb71577936c87b26e77d2cc6fbf537c054c05a31ba951d28f8c280ce6b850cd3e23fb4a83549efbe61000578b3592df82e6fe5df9e8026eb04c7f3ead4fcd93307e520de91e53ac69ca0992d75ef80ae4147cca00eda575cf534464d6fc46a67b1141452c904dcbdeef1505b9022e07111ea770997fe1f0d3e7a007cb88630f0524f17cb47335632cc54b399ae8dbdef34ca6d92a655ee6a651bbaef3bbcbd5b8ff8a39e98eb2793d95d4b5e3d9a89571e5a28d1d68c55f2fd9bce1b65c27007ae9330533ab6d17f8a6d801fa9d3c367233c212d850be6356c6cc287c351e99352c1467fa900d4445427ea649fc41c8e07c2ff2c5e5f0fb0362120cad0c59a6d00e56e7a6063b090cafee2b36be5c54a20910b54aee042e1ef3b714b1aa7f3233d8210d9fd59f6d353651182baa37e1a0228ee1d135a1058fc2e2c9f1d7394246d19c624dc5e078a91fcff68f897a77c20fd100c18070863e17bcb1d35a2fe0f143f06d199ea7324eb28f4cca23cd1ef0170099829819bb143a6d56c0fd08131c7444b669279ba40d37baa24440d6df128343357c4543acf7721c4021866de4afadc1c6a62965d5cff5778164a840c1109bc45b174e9660d008f1f55cbe055992368f24396daccd7a35ef6f9422b1cdd2a7a893bb7dbcdf884415ffdb6d797dad57d55888b81995f73f49f63c78d10a40ef1a66d0985a31056eb0e6045b7055e858bcebfdd554342f5bae9ec2704a8043bb405abe681b5f31cee930414f93eb2c806b64ff8a04b209d146ee8fd3c137c15242f9edb5a46ff3ace967f9138a465f190a4bf5a1d1186ce8386e0b68e138a3fd49cbc547a06c324fd812936dfc6e6b69c32949e0656d42e9ada69ef94f8ad2047d57afe5b55bd800ddba7926916c36b9bc85621065b9721ccc1fb14cb63535af052511598b46cc0720e61206f247aa501de7a8f97c04e4c9be60aa2bbc42b34509bd5469cb34f6acca1ec6d4c707ae780fd7836250578038aaf1f35c09b83610b3a8e1de1d2e3e3703ebfd5ab7b52977bade5b1489b92eb1b95bf2a7469fa556296d1f7f283b8ceff2d31f5e6b570596458398d8d033d67b132511d61bffe760939475169563c81dc06094a98bf8291dd84fa274cdcc60dfdfd7b7af2fe1e6761aa54d690baeda09941ac503be9d7d549dc9e2b0278cb42546fa4bfc2b4c89e0e6290e423325aafb97881833ac50e982b979be56867bba956f153783b649b8e51ea81f67b5cf213bf132f603fe1855f157e79f2c94a25b7682b0e20d79df5bceeaa8eaa038b52510c9a0c8395cfea9e79d9ceefcf6087d12a953b4611c165be373b3d6b764dd9fc4475bf49e6d08cdadb31f118c57b509af0a87154946f69e6ce1504b72e351789d95eae4fada40a98bc2f872a45db2e896cdd36d8b9f880db15c08b19b5a1996e4d8d5fe154aae26c8f2b0770eb006000f1bc024f0d0d390fa0b6171f8743be3e03ba5acb666592aae6ace8a91f9b93b611cd5a24081df108e16e5f152d7c146dbe3e155a7d6499e8353da12f4e0d480d6f79a504359b573b6a61c9a702bb2a61bfb1160ae41866b90d45c77000c5eb6b4d59794c0015ca3bae38dd41c1917ede9a9bd37945019771d16dd207d265fc744dd55d78121dc86e2f4c0081c48f7028d156e4120aa09ac7241e57733d5e09ace385b824c603e0675013d9c39625acd4f69abe61cf75ef1d67cfae3e9c2e7179a0d31fbea66890abd348dfa3b0c493677cafd8e4ee1202d93efa6cc69957f26ef8560ac23dcc57900b33788eaf0ca254c62eba1800e584aefc3709a79f5adaf17c86ffbbe6afb3d87a6c3b00eb6e8821759fd8778260e2f3320e0b6e28a7b9a58fde65285b7323d9a36b9d96e06a83520d7bba9ffd248c4a62d7f866bfdf0cffb4c4e183e6c7261818aa26ad3861426af03ae6ddcba10f19213d473def6143747de2db5b230c39183cc06cd05e1333e0c055d3cd9856d9e3df968e6021cf0b886db0e91a9ac2eb5e9216b69ccbd0d637f06507fbcdb68b3f008c1459e188b3bfe6b7614eb88bab5fcb35ba6f0c3ab7e4f2e109c4e660718f36869f97b91eea9f9b4efa63f6b707901aa5dec389a1478c5a424fd57cb54b68e40e86b61301fe8bde100af6efd56ea432efaa36dea5037299114089fb5577309b8c402179d28e29218329741e777ee0965b833575d68a5c31c6927edca1738abfa8725677f107dc2810bc67dd1d86e9a7a2205be9963a9da6eaac10ab29ceebe2bb83e177fe0a3944615a4ed6283533f93bd7f6a46492ab7ae5f3dbf16ee7b8876e0b4f0449f3b4f8cd89a58437f8340d9130a230d2312a3051105d29e16c9520186efba77552d3c7edb0e851cd4e8e573ab0fb096f848e49b47800bf11bbe63f432573dbf0b61a341a6693d948b6976890df4da88d0b4c297891634b8054405786d5440c5c8becc00c1144853aaed3a45c223698bb33e87215f2f139adc427eb5bd4e8d30942efee1b5756e023c5e7acd51022549aace796352337240a99f17d2adadeaa97799820c08f6774946a37e4942fbd567bc4ce282e98a1751744518f7c2d920d87ae5a1aa45fe2acfd2a48ee21e744390f2a008a9ad9dca76431bc94e863af764a4fba0e3f1f4503de749f2bf6bd7356a52b234fe24d25557200971fc803836f6fec3cade9642b13a8e7af10ab48b749de76aada9d8927f9b12f75a2c383ca7358e2566c4bb4f156fce1fd4e87ef8c8d2b6b1bdd351460feb22cdca0437ac10ca5e0abbbce9834483af20e4835386f8b1c96daaa41554ceee56730aac04f23a5c765812efa746051f39656603ba9dcee12788bd43ae26844db8d2624d2774ed94dcf9b3857d0022eb75d6a5903ca5100bd8e83ed9a422f8af50d0190f299cf01a9ad3e6a5f319618e6a5ce850600687d6e577758d7db2f4bd2456791991d10d95b8d0f37792f98bb120dd766eae28fbeb551ba988c33d3e1f3f4dc894e77a0aad3cd72124e10968fba0429810ae7434f130be24f1fd2b9f7ca69b4fa7b401b00b30cfbad469afbf15f174965fe950f9917e472cf1b4e3df7c632a567b7ecdc7579ba204aeb05459a61b5ab882e6251373489e0ab06fcfc6c87ce02537d0461738863748db4061ff5727db46a12d5c4b3e96ab0655b6561c08fca703042fd46757f876cd83a13c77d01ce187e6475b679a6e56670911e0a8e3e8663a0a25df815cf947ddcc594f89b80253c477bb8c2f31da87 +MD = 914610d6edcba726c14b8dca41bf772aa38f84bc7903b100afaab04f + +Len = 22688 +Msg = 534dbebc7efa70ba8a030c029c4cf53e496391084f639ff58318cbd20b637f2dcde0fd1827c7ab29e110adc560dbb99e1c0e277b5440483800d6f90d076b7813b276760360266d417c91331aad0ed04a4cdf8dc21b144da834ab209e3ffc1647e855510791e15e0b43cec68aebaedf4ac31ee8650ea6554d08e1680e1dde01d359c5b7ac20be278e1f0e8c9c828391a4671363ed93c0093064bff8e407d8e2beeb10d079768670d3f69bb0d8da558b62220623e114281158318cf9a867b46111887dc3f6fb00e0e0b2bb58c65bec788cdb3e53c9f8a714cd559192e3a43825d31753b9ab17f620bf39b7adef6e10fe287a04192ea705bb98ba16ec1c262dd70c80dbd921332ed87875d7d6da7988c540e6a09d96890aadc046622edb555a1ec5ab5d4cdfb572af114c62fb0fe61d76db095a088c067e924de3bf81a89989a3058020396d07884d94a8a246171b97b902ca7982958628144878730d0c5a800ed4e76ec9548f385b0870dddd7982be35bc1147323b71d1d9b8edc7f98e0008063ac88d231bb74c81768c5ce8bd81599311c60a41052f4189a52a036eb7f3e933400bc6714ae68a66e5e367906c82327a09d20bd77b2840cd17166f930d9beb3eed9861d86a83bcb35d5f45fc0dec0f93ad1b921a26c4964d179b53911a61d6cf4a57a68202f8a80fe7e740562827b986048ae7358d6c0ab0aca0f68f66ab718d5d30dd979aac172389649ec3459bf8fa1607514e3986669edf0ea1b677e28521300c4d3eba07d0974dbca86dedb09398ec7b198eb07c70c1b7cb9c2ed76fda32cbd13fa0eb719d123bd8a67ca7ce54078dcc881c7cb4f1be3cc02f1e0eb838693469fbe5b452443c5aa0e018fc5d01ef01e4e4212498b04076d5a2aea227676e75bac9349e128ebeb2fc9d6773c563fa51a975c4318e77ed6ef33c081d232ee896aef1b5301943404bd52794946e42ce8405852e2a000c6d2b004651071357809d2cba92f2d02b692e11c4c5e7c06613a2df5a8697553869b5e508b4e661a8dd941b6ef06c9d0de2629abd23f5249672b41e3df501f5c389158bca574474eaa8826553fa27e9b352ef565ad545009c92c1ac76a3ef48757452d9d462a8b4e48870f1b1d5aa1de362de2fe2035fbd3e1dd1704db7e9b616d374b66dfe9b89602665a7d2ac7d9f66ba360c9fd7ccc445b8ed520a5977a76d4d840cdf53a45b2429696ffda529d90401ffd4d777137c780d1b3af4b32283438b88c270884b92fa3a843179e8353184e04171d30bbc4ca1c4651054ea71b260348bc069c51896a801bfd58f9e2911b0fe05cadbbc509e8685d3bc7229ed9c8cf192ee123494d0f625214387ef8ee04e0452c736b156d9f1f76c2796961ca98f6aa734b2fa46a6ae4fb364a902ea06279931502e145664a8c23837085988423046d17a9242b68196267c1e3c00c8eb0366a94d090ad8a9738f3fd50f9bb9cd382e19a8fb326dca7853845a8a10adf7aa12c2a610bd650f1c068aeaf58436b470c985a633f2f2e71a7dd301d95b2392e34684448b5584fe69ce205c003b875d9dc0205c82abcd42444d72f97209b12477aaf80dc2f9bede2490091579e934328abaefb232858741c06a682c9d41e0152fe525eafcd29a1813f34efba8b5c599fe60fc918aa7a74e557ebd80a22b36cdd1a014c38308a012ffa0f6f8d4c8c3fcc05a4edfd13ab5d0ca2e79dfc8f03db42582cb819dc25835af3e09f34649b6c2994fed8650653a2fe824a53058b87d32f534540a93284be9ed7690d34761245351e7e26c4f51bdd27708495b9aaa7db0075db748ad6400977ff091821d389717b0cb347b1525c6233f816b47d6efc59424a6fa22329bffa52e5317e710f596767ea3eb99ec0add89073815de54aedd4814b7277f6cf8d17dc24727ea6ac1aad8821610b01a288b6c99d54e075b104e329f374549a1a0fd850376cb7371c359a585cda9a7e8a65734bbff1faa353d9ebc8dcf5d671abe0b27b9850a6a6f242e454f70c1669eadca4a365e8eb0285c584da52676c11f7884caab1fedb7aa0bae20a8a65dd584646a14d19ba6ff7d96014cb0e5983ff7f6efd5a2ea7a436ba1639e581787dce2f4c2fb565e6c807c12232377b3cbc9ec61d4b2668ebbf4f90dd428266c4663ff8457688b4eea1b6cf94539bf39184744e1bbc8bfb4b8b39e788924db4da352243db3c13a1427b99772f0f6531e86a1489d2d7f75047869a00a0bfc3f61a49199475d6f29582b4043a6abc2fa0b1ebf40beb13f4f2503fc48eae1161a515408a6c9dddb21c1ff9ab9bcfe057ba8e789746bd07016c06156de4193dc34c4b8a093ebbc6ce9f7aaad41dd71279f9ce9e82bcd117a927c9b5daa36aab45563da3fa7d781894ba3346322318d902e902cc2af0cfcc68b02b7fbf3f2ad0844d6c1ce2bb2b49c0d6da6a2a6dfd9a9f02bb901464f19bac9f9c017039d243fcac4753667a7dd0cf8fc07541310ded8ac16978b39bef1bf130abb98205e97c1afd6ff5da3db8541d4f95f60b2eb22862cf8ce4ad0830b3e33ddb268935d8ff6bbb3662d277933a3690bb6aecb992f1c367a672452c3ef9def19ac6ea4c39446b503b28d3aa7709a7edb1526a6418d009344690309a926461066b2929ab82c196770eb64268dc38edd1083b08a0cc29c0bfddcce3b5a379f5e6ecbbcbf63e1d797a01a9c3155b4e74c530934c1225857654dc86d3101aa12a0d6ffd459ed3ae80e3b471ca424cb0d944cae9a91aad7986bde36c733c40805a04956c2b17dbfb494ea78ccc72591687da27aca43ccc5c9e3552dc688cbd8e2246dd96e0f3cf9a4f155b794e17d8d60cefe75ac1eb2ac51965db6517a3fa210f5ea8fc1ba526f1eec230b5c3c57485e5107a8296c8113984c9cd8504f48eff7db6981a1fce6a98b4efc7d0c1ed948c8cc661a2773648306ccba9bac500d45ff9d92b5f71b203054df8a138cd02b170808c2d38f7d818303e060074bc5b72f90050c35ac60298bdf6772d7c49a763d84cdc4dc4ad0009bf74e362516f66d3212d98009a613294296ae5fd19dc3e240a6e2143c3fb40a534adfe3fcf52a58d8ede29537cf7c47dee07bf708fd9596aad51159fb5573c734645b1094d1aba0a889e8f4c90ee3ace62498e284ce56bb0278203b2276545ec5ad8a64f690bf6c2a4fb344c64a8f80e2cccbc94df64f78d1f9d864b8899ef78e8e3488291cafe4e7a50a2e376dc9ea5b3fdd546c5fc8f69ebf0179c5759abc186d2023355bc33266f4b65a235ed912d8e5962ae8ef085cf1326325522490d3eab317de2337427b2fa5806f92050721e126bdf4c99059d352bac50e657dc7648dc9e161fa9776eacb1e2d168d4a9b3ffe6a1c59172901834abff1dc0968899887154653c262a5a4c1c988f61a15dc93b8197902dba1499360a9ad3843cd1c9662010e5c848218d4990d58b8444e1346969b9d961de2792c1de0c2ca1d94c987a5f4002547de17a0dc51640310dd887f215850bee3d3d97508ccf8399ea6d893d956e556135ee93011ff758088aa8367dfb95922375cb197a9d6162dcee991e1858e8597f0ead8adc07e53d6b39e4c265a248269206548b98864e650b6463c9a3106a88ee76a2a3f7236c6ae999f2ae31a02913ca7d6e7042ee02e475da520e5662516e6ffc6280dad8f96b0439667c7a5bc4f42d297d6a022b0b7bdccef86ebaa53964541e61a40fcf18a83b86c49f985b88424ab915db4ec3e4958090ab6d488f8f254b3b348ffe4c46cd0000719a14260f8893aaac46815f0acc01ee0f8c7857cf0ba5f13f973ef70023e24511ee9621b721a86cb52e52430a79e125894ec2b48591f4def77c4a45d15762b31a2f76f50bc7f97dd5053a165039aee59d16c01c2f42d843008198bf36c1f1d8eebf3f1699c5f75c606da14f6885bb9cdf96f8f538b8a0cbcf59a2d9bd1e2035242066ecddb622970bca0064dfe8a7b9b521c5e63e4deed7d867111bb0a67e464ef5870 +MD = 8b0e96883c29c51ce486614062feba510301e71cda2a2d694eebde49 + +Len = 23480 +Msg = 26895aa965673305e08b449df5ef6d612a1203e4114ad1566f5c5cb29c4a6c382d6cc71ed1c240837989f0a4bc0cc45279bd38a4be8461e9e85731e00c0bf72c966a250230855625e64c8f14875bc5814e17a006c1fa7f14da2bbc2c65523151a9aafbbd4a587dd36efba8551f847ad7f148c573e45332bf8bff85fc6ec62390ae55d1b7e7e1be755abec4cf4c2eeb3aa9772f54ed3883d244fc15b9f010d4d2ec923057cfcb20f3f2bf6aead5011f93bfcc640fa55078354d4af3ccb4d74cfdac8a9e07c9bcac357e23220e84a71ecb7b70ee0ed4441cd0ee10a79b7fc494fa3664a52f9f5c6923461575a31fc5f0c8258b55b742bb748b6f77ba901c7fb3b2d249cd3517555fa692bbe9116f069e7405441f74b65e8a4f17a6b31251afb10cc8619d82fa4c96a4a93d08c03c0f2eb663c4d6acfad5650230c51a88e8fc97ef5fd39d7e0fec1706d4c45a184e8bab75863301c6d4c70d8e00fe785ca7106c45e0c8559120dae9b55b7866826c201a9bb7b8292c0ddc8bd9d07754f5579038f593674e24f3c114988680b4646076850f3e7bd5456dbde6cde75836bbc02703e7c0d90f9d5247a1969c04cc27f036f3b963a58d79bb1226518fcaa616a97bd603af45206603149799e72e3734e5086d816e5eda30c182544c0ef52d6edb34b831a8d40ae5ced1fe88ad247cf20693fa4fa6cd42d245b676a8ad00522b1ffbb259f2ae54847d26de4a370e23c81d80a20b541b4fc71056974cb4139eb53b78cb63d6fa86aad6ba40c9cd15b420f0766d9dc06f8978ea09bc206b589875f7520b379ce129bea3362becb761b861491e64ed32f2774b9a77ef0c19f4c8d11d317abd8c8ac42aaa41a89b3c19b7f2ee208ee4f2cca1a9ea4937f80812b63273bf21deed1ddf55b484bebea565373da723f46847248ffba0279dcc7ed8eb01c3a1078009c402a788a7753e3a6ec2a93ecf9c627b22caa785b82770c46eeea4d382348c26a5b688f051d501435cdf9e79ce90bbd4f0d91761a5dfcc22fd47856b08b1eb8de88260b22ae7f00857178422c5d8599bb344b1fc95cdc9dfad7f0a55db858386b6ef9797dbb2f3d186f0c4ff5f7a26179694df1d31f84d45a51d9d58a4b83e58378495670c3ef3e511f4c4d942800992be50088e2168419a0ea9a53b0b53034d92c9c3ea6494d68d21abed7716f1e952560093150c258e270fab8ac7b75db9abf04687e78cbb8611de9ca7a384d6b0a0842cea7b9b381a34d1acb3c451de4abb78844a282cbbe9b96f4f5b23333645c4705d748775a8cf097c348afa80df9dc5530a7573eb9de9ccfc4c6fc0cd199006441a9903427d94ed37c97630ed669a11a8606e9171686d94af1c4d42f78879ae25ecc1b5acbf502a2af5df30407e29e6a00f9f4a67245c57ae465b715b89e8033d5a54675977ed067e3f2dc0202c328e639e6e6575daa05e21520315a127c54eb4ecbadff1ad52ca5b2fc9a9357a9d4f189545ac429120f131c8acf57167f8d7b22a5ce61d6767bde84e19b2286f5272e77d8be57751c4580531bdda715369e65e9da04385af14294e2386a5a1133a3ef9dca8d9bb2274dac715a08c4cf201c3e0ccefc0d08c4154b4377949476f3bfd763d0450b70d18c09cfabcd3a84ca6b6613fb223a607d68743105865c38a3ef58625071213199853ae6a79772e6a4106097f4f35b126bb0a23388cc2bc6d2c704f1e19e6764fdcd825ec3f3f8553bbfcff1330be96f3d9257b377e28db1eebb4fcafa29588b5cd9a290976f4550ffae06c83bb86007616207393955ec8a76509b3610ae8f25651e0e047865e48a7e8fa77585a5495b65b4235d6382e2a0f80b99cbab9a45c3751f17531d84504226c91491974f1fdbb91d5e687d15eaa5f260be14417946d62b6160e4cd27131886dee094e7026e18d9e1fb12fc7b7ef9e3e46a7878d7fcede6697d422ddaa78e2d55ae080b8b9e9356c69bc558201a2d4b0b3190a812c27b34bbcee3a62b781378b1bf636b372bcbae1fa2f816a046a0a649a5c555c641fea4ccd841cc761f38f777972f8c91b0324e71c333ce787f04741439bf087ef5e895011c051767076f281be7c4e627a657b6515f00c6154db9331f5fc6468958d9b41d1c860d5acb46991303ec1e6598bc8422e8d7c4031d4f61cf9a737691e54250655c4d14edc52fb8f19ddd8bd7e1c1368af3211ece78379e898c5f4f1515a3187e5dd2d47cafbb163bf841c50b1c162bee00955cd3e8f237e177e2067f748c6acc93afa2a3c5591f56b591305bc22bf2c0837cf4bfda1fdc6c1f94535d8c5ed5d4805c35efb08a62d6484474566e6319a71e707cfee600da8dd5feac2bc7aad82ab630d4bcfbdf5f4f42e407976b6c1f0613f86bfd7755d0db2d798766b0e0e033b7e62597f1c8830617f8407b53975162167d3858187f5db898ad6b9ac2a18c83d7e49f0d5cc66cbf49e9d59eb1857f5f9887687b43fdbfcaaa02cf34976d4b9fc8b4b78977697abf5b413d5dffa6f7330caf82f374519565d40228c089949bfbfcbef598ec124baace86ce55b88c3791054e0e4d440b7d3ea9241ecb23c7fc0cd69bdfb825614de606332f0256a5ef0df4fb60d51d8bb5a98bf107c0f067fa56f8b3dc73bdc6f015b4cec5e064745bee6e2031477b62fd2b1ef18a2e6a05057ed5af82380fc3d0ae3cc2396c6c782cd6d364d600e821a257b49dfc700b1fabd8ffd75781a5e87e1410b5e022d931b03bc721f59dee3853a3ff6ef5426e286be9d9c3c2fd2a9556ebd30250903531b4a1abffe67ae8277f9441ed0af1edbfb445e61d6ae6e85ad999e6400130fae8789d14574f24807f84ad4e70842b04361361b72ca5fb69c994a2ece78881a4d69a8272b086272191015357c2174a6c3c17b1cf7a0a974932069b39714d1ecd8c88e659a431ff560c842b003a3acc70222fda919e1f36e154ade76e65d544df6ad25d2b9ab91998627b98da51454daa98ca30aff14a76dc82091bfe4da7a054f1f54b8b1ca21253036631489fed3a85f075586d3c12c3954a96ad6b813abdb8c26035da928356308fc268dd8e891f9cd9cfb66ba70ea9a62ee52028c90509955ca1a0aca4b3719b681eb3fb95bf6949a527ef3deaa49589af52f8c85dacf05511482073cbd8d10e2cd9b7355de6a436f32c47267f6b13aa3c8ebbccd7892e8290b219c2606a11033e91c71d3f955ccf442b62e7ddd8a0a266f6cda8cf2ff0985b8e011b0acd9e151dc58815c341ff8d08c3c6e46e63c8ecaf09c2ee9d180320b21a7ad04399f4ae5ae35eb1818308fac183f79ed992f8f385561000d9b7c2966505fba47355a1497679df62e2cf0592feca598987ecbd417a6a59720db5bb73c4dee7ea42671070e1077ebc7f8c81e02125813701e792710e94f3c491684a4361e3e4241964eebf3b1ab120a051ea5cc923e329c009f4ecb284737b0d661b8fbcd364d460c5888ed5020b320da5bb73672413d44aca712ef6a75d07ea259bb3462bde9dc11f7a6a5f7c0163000e81ce8bc487b92abf73b24b8c14fdb03d47488e3bd5c2b2c930cc2ad728363fd2b9c89783a35ac84f991141913fbee803aaca05a1def5ae59483ed7b1e41e15b8efec1ac01b3babf13dc6595531de0a1f42b23cec5ea91c463d3ce67ac99d1a1780c3a62843de5e5afe3bf3469fdd8ee68b9ba489c95fa5266c40c7c05d35b58518c99a1ab1b547d346fcbff3de3fff0ff1e0dcf8c37ba16061d50bf0f37a907804789725e94310f0a4830fdb7177d2e2121c36b7d1afc98aba8413ab30ce0366f05b0db85f1a12399369736c0e07930378c84245584e661be2b88f4da9c2b6e858eb6e7087bce424801a8b33e881b7fa725fa03fdbea0f8a56fccf56a2db0352aa9449bcf77e0f381700a7b1b558da2dbb5cb0f5d1053e5ca3cb6464d089716c6200201c330ffbfac4c66963d90f42139039f515dc127b1935aeeee69750996c1b99720caed512d2f5d630d8e807b852bd91fcfe61b43e36a901bf5a8bb2e3f843dac00cdf501c5736baae7f46f475518fdf293de64d003b6a7e564f0242d987573e8aab591350fe03ee22c59a383196838c1a52fe5f59adf68f6422bf62e29fd25f42568091694df9db4e5a465555a8252340b +MD = 211c9ddf4d82df5bdcbf6940a74cf517846616921b9be7cff1c01f7d + +Len = 24272 +Msg = 701d546aab4c6a7db1bbde1d16fc091509d4adea889ccd64d0e6c1491864896c7e0662e6426397a4325a9a2265f953752c9db88f465b9ebf539fce778b135c52b0c33455417ef676f17f045a584dd963e7df9cea2104f4c908021f1dd67d3e4aee9bf33f12662efbd672444f55bf42e622e08084825d798bd857d9c3606ad85a20d8c72a1ce3e83bca7a8389c5183607c5ea8de3cf30d30ca9e527f291a2d28d2ec0d7a0c7bdcc3fb3e0e98f11205fcdb943ea917243aa5465f52f30d1ecd3e8019c4c287bbb810e7bed9de89f9f6240e433c116d15ea76cf2cf1908881283757fb34d4ba0a6b0b008e6c81fd95dea682f0437f8564b715b3abb0eff1eda8b3b914f038f9e46002e441691b926219d4e82fc76c167d1b1292301369ffb0d934220b6967fde631a8f15c42140edb523f9c665a6f86eb70fdf97e8b86f8873429312312da0c6c5a5db65379f3c98df2571e185ee26d2c632847db9bcf72bd341355108f07cbf334a1a1bb834338e684bbfbda577d2fbc6c320bcbd6cc04df63730c383089a3277b1551f8f08af37183cea410c6984517f69bc3e39ee5157a5cd8d52ea9d828557819459044237fbb6a1fa5404ebc53cb8cd5eea786a32afa6ab53e584d6bd229c63ddb15f0b54420c21f8e0d3251b243b9711a8c109ecbfc1788a639adcd26f0efe3a0fe78a8c74e065ebccc2401171ce6eda605bf206eec0dd3ab674d749d674fbb25be5e86af9fb14db0019642c8b3afac3fa8f4f08a369816cc55aeeabbd97014d7da14c733925d7d06320b8f6da46e4d35fa5457b48860d287894497e8e40b9145d63df319d2556d3df1f65f6c7bcd41275e5fee644dd2874b769114db035ca0ee373c82b8bc538eb5b5d92b4b86271892596a2d1ff377b5a6a236e9d8b3fde44f81830e96ccb2621c02368b91602643f580258c4e15bade1790887f887259abc829c3ff4a900c77cf4b90f8c4a62543cf46f494852136711cc6185e50cb1a8806a451cd3a82cc404e067aeb5ba4bea89e2269de4ba2551f34c758fed82a9b098995cf00ed317c4c16c756ebdd084ce2d0b6f7b21815a128edf8ece9651d6590af628e22e918870bc812a762bf3d7a73056910b860f7a53eb6ef26a6be1004ce068f31bba494970fc05cfef878a0a1e9baad6779bcc4dbb10e2ea8af19bee3122d903c33a65206b89e2ac005affe6da75f184e4e8219af30721be56b2e56aafd630a201364cd6096cfe09d22ab93384c612e47cf6742ba2d815b6f735283a6e065516fd376633f3ac432e8c8220b9c397f53e674c2ec67189a41a9502cd2717b92fa7e0c41bfed151976257e79c3f40ef82dacd72b8340824b83157a23af952f8a89fd266d3014a64e4ef5be3958fa2d6a1ffd5f1783d0eb03844669cd978c6caa744faa4f60207eb111bbffd736f92543af7a750d8a82c360c9bea78116c1c3715e08106eccab0f1062facbe9ea8b87235086c173f3f09bd1c7e0abf499cfb47d8b98e141d21ec7bab7249ac7f02bb377a7b4ccf15c84e4d5035eef8ebd10c03d9174a57f2ce6393e82ebf517c4444acf1986effc10ca2ee9007bfab5ed3f7720044dd56d19bbe40a5a93535fe38fad783a6fb2fadd3aea9c43ea5600a6a639c36876e99234ea58bca2dd4de6ea486c216ef1ae740e51985d420c7a0575ef88a612725a951b0bf7a3f00c3d632518f7593b9f4b0e2098c8ba8f64ef2ad765f436a6d2b0dc189b518ec6a2ba5b407bef6e34db111fb09afc2280761df747b40cf3aa1a84ddda12e6ab9b534d15a8dbb4fecf37893f3ab29323d9d29ee14364237b80bc3f20cbfd37a8f2705e48ead2d8898f271bc33b8a3e3cdfecea7f56c0e82cbf2a583b5ad4c4f540ac766b72dbca7ce94c51721f7c4dec17377927fe84cb85da07688423140f1f2a4a1dd3cd611b6761f9c292632352a02444c381b71a3e2555b5d8a1a1458694f3ebcd38770d4bc77dc1d7cab2f9dcf77b976202fcebb079a6c8210a51d3bbe551f40cfffc3adc2bb13719716b7a5d6071a1dd225c83d2f161b0ea24b1691f8ea91545a0c9642cf290cbf02d092f5469cae68d76327d162b0af29c874c50420f8da20fb16b33eeba90e3046428834271dbe80b653b31ea95072fa0b88f43a3c6643cd3a85e0471e2362ecead3610a8171928df75b33cd0bdeaaaaf2ef69db571c14839fc2e605717f511a76eae4215d8272b623e571859143a0600611ed9076029569b3338d22eba521e372f1db1ec237a623c15833ef42659c45cd574701a3000ea8fd419c43957e1a6e674f0cacb97875fd591c42b3262de581d12741d5e5fec6670554dd1275f086e4dd6c3f71492d296c739966784583c53b9aeaa1b445e406cf54d5163796e4ab6c5ab03e157a3e0897983766e6a850829cae093048c99a1608712a105afd43d32f6883d04154945ba74f5e0ca6567a65cb97eab6367b083e39e4bd9322b4f344548e4dbc9de01569c321761e6057ebb6f0ddf7fb296317c68b36f56737c2de46045576cbd025aa7c1495e765bbb489bd350697c6c788adf525ee3953422fea23674366c5832b3cdac23319a960743ec2c09c31e0b8f2b3142f94f320eb030121a4e285725dfbb1ccf48374b2f79ff10cb9272f12a5a9126bd3b18a96d9470a8ae4ba3c99079cf39ad20e6147273e8ae4492df82236b6b04237cc667db503eda44e51f1042816e88c855b46329857f0929838f4d8122077e1836def9d263d92b80b310d7969727aea35f28c39f3f50d5ecdcf8bfee2ef4e8fe01c8dbed5ffe10d42e2f9c172b790fb095c9c25e01dc88f107b255a4d2b1c967662a8a76950c2ed1cea1ca4eaed11082a20dcbd06d9096f8bc22ab6fcddcb3c6cc6a8218b391d9ec1d3dde9791de759c0c6b6cb0e30b844632f02d8960d42caead1f5f4e3c0da695825a65ac84ef936f2d791159f2bbe57c3471588c4c169871a09f7e818f0e1960966debd7f882fe7e8dad56562d001f0d194cc902e0328bd22f816c4d3ce1a6dfe20ecdb46d371b3cb57e981ff296a57b59d8db77bda67b22a26bb52bb646d365cda3a7cc338a7e4c3d637311d3ee1d398eac1c4544f0eb05b1a4c5879b9c3384e1d2f67a1beb9c0f7e0263f64154fada204d180606805fddc5c339fb4d502bcfa703366866e8f9090fc1e717eb89a2efa7223b3482f34e1d674d6ef15c1140a885bae3f1b4e129bb5b38791102fac9bc9bc2124b3ac84a671eb9f104484df6a216608bb0769282b8f8cca65c5806b3f366b329d4ae6db92d447f5c9e8264d24ed1aaaa2f2c4ba86460f4db642b5c1616a06bde4b5e523ef28133fe3a9b0457f13fefabc8669b1f501c4794b32d695488c152cc39bb1420394d4e7273129aec4bb9b61d1685ff3c0e834b6ee3be9ce3dc520e6ffa45322174114545a2599723c0f7748a843ae6a2f24e66d6505f856883db0536379d2a972575aee473008782c341c150abd5ffc8add620479390a14711b4cdbb6c236c15efd2f1db5f87fa8df551232bf7e7893183a31e5f27f28f040887de6bf268751215b1a496b2505ea9c98df058f2f04162264da76987e59d23cabcadc474ece40049aa3da3260a326aa250df84278086df083e52133dfa5a2aeadbb2516e213784fe25238d2516044522524719f008e80cabedb4d8a491448deb5d829f4895ce04a5ab0cb139f442cdcc0aada6f709d37f83d43616665afad14ecaa51a9ebb3603d2b44fcbdf257c7901d299a7a6f3e7ac129a5c78fdb7db79879b803fcb11fe06f7c963197f4a2fbb565281988a678316faa89e6cd52864fb1858aa8b783a94829762fd36a4b2cb195bf30bf61bd534448e77826e873d35ea938a9a9a0085780b341964bfe9ffdd27654c8f4cc5bd79b9509faefa7e56bcac6b99c6c80e93371550453001b991e44a14c782093280d1e9d3795a9d350577d5131eb5b1ece450157e8ef5989e096f15ecec8ab7ccefcb6aa9ad3bc345e9d5d91c71fdd445d94190014f1c00f1d6dbff50241fd50f2ac49025a3b9192b54754d0a4bf59b84128a299b0e19c77f8ac98ad116a7ed63f26c0ee9e558eb5fd5c4954ef5339432009826ae6485487185a63cf23cb97d85a7104b68eaa1c65dfe52367d164e4ada340a3bbdcad5208267f08a35fedae1cee95fca253c1a46902e9cc4f7279c2be71d3ebd4ba98fdc1c9246e71ee572d6ca19b8ffa15228c8a10702b54f91a3b3e33cd44fca991bd7caa4f7f81f8917a8e1b8aa705fb563d90ae8328c08fcfb7f49033957dd121faff710b221a +MD = 79ee668034c4153da9b66eeea4ab31d8c6e76a055974f090d5badc54 + +Len = 25064 +Msg = efd48ae745fbd7f47b7f1a07f34c57a17517452a18a955e6667bef26bb84ffbbee4fb0b033507739407854e6af07551ca4a25bc6afa52048f4ba79b489abd9411f7417f9e59d71b1a9c6d03e40844ee6296bf5156d6cc951c96209700fe7b309ca6c46282189cb46fe9116786f6a4ae64c9b9b7f1aa758eb2f9a28c117e194fb375ec5a7b0bc8fdf8600affa02615104545ad66c7dfdd3fd6c8a5d0f674084ffad731ddc5adfc5638a3c222ec1136c288bcf2c445f17446fc95b30c3c9ad8bfd76d3d531e69a73bc526df77b7625a23a3723276f889cb2298e35294302d0b2ddd8a5750c1e94a3d126b9b748e742fc22a17d4f55c0352612033fd1f8dd5000871c1286d7c8765c8a4e4be9ffdd1080c811062b5fcf8aa71470a2af4a21d67ee389418ff9ade7a7cf1149150720373815cee643f37c423d161c854ca2950932da695a18da95908b88b9dcc4c878602cef22441f7b9006f00150112e66039226520287a9e24818109d8c2b7caaad3363405348485dd47dc9bb546edf00311862349eeecb798d293ef6d35fc8158657e5eeaa1c45030d50cf2d70c3e7d6e744ec6983b705072d681e7cd59f2d71cd75bae26fe59ed306260b3fec38cc52efbeced8f90be0f4f17fb715dc1435264834eb05eacedc3786a883da0ff718da102d10684a12e3a89e1611aa2ee5679cc03d7e3e63fc8696547e41e4222552d81139b803bcf3968cffd43524143b4b3bfc377e74219a2457394f4d476ded03b3bb8bd09099d78106db622a69d63e6a6cc6cbf0916dce3ee4fdc3ade93875b2d3d6cb5ff627e52d7ff967f863bc154b95e4a1de7c8fc05da468836bb4cbe5e7a02aa16e1faf462160228ca8f80ee977201f604f1dcf9a08ff41378f8e6d662b827eb304f27821e50f1e79411213e174733fb04c5c7481c85d52871f61682004e19bac2957cc9f02f6b5d5cb981426ccf80c3bdc21c89f242661192514023afd254a32e536f1e8ff7baf494f7259df06154ea60754111ca4c23798a88f84dc9bb651ed417730236408d37cd3882a35ab34cc9cd5dd9820d09a9caab1ba363068fc78874403d178ba04ea1762c2cf5042bc4fc34fa4a5d2311458f7477d5f5beb6089a5f7c01c1087d7bcc101088f5753159fc37c92805a4e99322872c04888ac484af26097591356e81123ba42b47367a68445658d70e1af92f3e53a6b3add341d85138970cfa9aca1b1e4945884cb05d9c6f1107ebe8fdd6563d5a8667b820a4800b37a34c7f8136964ad98324888b5152c6e874eb38b5f7c4aa1c39953a0b62f84783ac9892b12a8f126ccb847d1ffc37f65d2e395febd3d70f194ec0c5fc13cd80ad0195d6832c721f63ad3cbcf6c49877df727ac0f80129d6b2148ede6b2d6c612470b8bd7f92cbcc6ea691aa983100c5f000142e72f6298ba74933d5e11641438a4865aa2f1408a3de2637d88cc80d6b2f4589dad52942a8495b745ee67508b23f17414eea26b52042caa3c94d001ac1fdc16068a72121b728a9a4dbf3a01f37c36bcffe69316dec2d0259ff416fc584ebf22c5a61643332b5d269cf915df14ea794663af4ca7f420d4bbeed127d7a0e6a5642228c68f395816417cc37d52b516c4fa8a7455885dc64256705289fc4d9097c465380a5ef7a0bbd53345fcc2a0a71ec0bb5b371fe15b21dd6ea0c6d127f39b2ad5006b1833ac56c90aa819979b4690803d8c79d647887a3730e266c0f5b8bc7ebba57025b623ee0549145d396f9b20225930a31459f4544efe41ef308186ffa85f52a2ee48ae8c7138b04e11e44dd88e576f3d40dd47b70920e5eb8991066e90092d87d9b0f537f51fa57685c105c0ac7f70d0c49c2bac50ddf5e132eedf101f015ea94fb89ff779451a5dfed06adf65185ce3075e46390b7f9a5a9560baed3b8e0e90b92655d4e5f33889e5d7253d9f6c5aff71ea4069224cfbdd19ae3f0ecdfa65c27dc3bed721712784a09fdde243c193ab6a0ac2417e8d41f226a2157abe8b8ac90557830715070ed699f03bd73a602f6f5a8474cb058993212402e539f48aa62db7aa4b6daafd15053691e7236a9155d3a921fd0ea08a1af37b975654593fe074fd83bf0fc69a669be14c88cebd9c2d60bfa9061238d6fdef942911d2d4f161283eac86f75227262001e7c6e11ac8e09d05e436e0b3b6659ed580bdbb4ce950d0e1eb492d37ec801afd2b4b63685e9613e19a367ffb727a86a7630318ab70d6f55009b0b75b319a133fe0bc5c91a67648bc92adf7f6526331739b8bf0d8cc1b1ef2ce629fa83e9c922ecec4d47ce8a9c6ff9544518e9e49279ff1fc4bbb4546d32f0108ed055aaf2032bc09d4116c5715106ba394aa9d53ee952aff313c25809d6f6c49a759cffb44b37433633879a6bb59dc71c83198aa10bb113bab43b2f0021ad5ced78ee3a78619bceb8ad959c14240b056f50dd775157b6d59c0b836bf8c98053f848bdfdb6ecd5dd950dc52ce322faefc2425a2dd833c05007983f714c352c443b7380bc185351fa4bd29adf6118d9f085d61410ae465a2d9dc8c3e182eaed982777dae7e52bac9f4d9a9b26069c24b25a6a9fb23bf600c8bf4bc52f255150ea5cc42113d5dc42573ad42a835c1367af909e51a519d940bbfc6f97dcbc0f02954be6f7d242fbcf9c740ddd99ca251f42c8dfde4bb0569671d5c2c05cbf8a5f33656ec385b4f080e989a638bbe937b80673ad9a28a7f47e74cbd3e3319849e34f49ba18a0b45122c8fc4ba07c21c1ce85219629be5939655f5f1154fdeec41b4359677bd5c9a411a53c5cc95d1c59cf294317e19f5cabe77bf019ba141b9f83aa24d541875d5fca28da57f7c13176367d58b1662e1ab271553f4b6706b722a90e3ca22e27f7ead8ae56dbd06af99d90ebf2d13bfd2bf3af958d25006849f3e7c9f15c764a11ebb9b02246d79ced466b1f8215b78f08c5dea77a350a9b3c89ec77e342de6043c8e9d8dd2771e974e7316286fd8d5629cf9af58709ea22076b1392a313aafcf608e582d7fc23d33916606f81d701e51777711a2402239f430df994813d8092b1223948b34381ec925a9490f350d9ae4a33dd8fe1cc4b5577f90b183e3ee3a40dbb5184ff9c0088290a2a717be969244aab5cc130b6c6070ea2c4780a8638b3542acad20d44245865cbbe8b5c1f34e981446b48a15028068f91b24ea6a214433d0701ba6cfa71bfc105bd393450c160967575a0a426e5e6634c61067320fad610b692a8af1d5d30c35e9325952c932bf2d52843c9b9842932493d29f07150ee87dffa17442b5b4e052cfcbaff012e9e1ed9efbc72768731750eb343cf11baeefae9b4a0bcb2f089def74663b28cf859830a38755efc73b194037fce3f809d69f25a3ebf8932c156e9540cda801e84c0b7dc9ef8bf99be0c17dddf33e25c7ce206a814de3a2922579ca9bc79c844587635c78fd134fceab388e47e1f57f3ede99059b3872014b7ee619ed1bbfb8ce7dc755187795f946e4a6fbdb8eb00e544e327f5b7450b73d68de079e92bba56c7860f11126b8fdedd3334d03c116dbf265155e28c823cc522d891e16f4355305be55b7cbd22565a9c0050b2644cfed016c672d69fd944970140ee5be09d8cb8298cf30af43843964f247bdabdd844d67ab537188db4a35816495e4fc984914cc4ef6e223407c7f05b21fecfc55dd010e6afeb4ec2aee986c6648a4396b3336c928f1579093b5417448b51f80738113dcf1937dfdb2277b19624dacde483c3a636ee9175f02d88699fc32de9f01198abb873855233b9ee5709fcc8451f80c27816705a8f6568d575c15beb1c1c54c6f927615c3c68cfade5967eeb5fc434c050b5c6e94bf567bbba5dd80214e89c3c94804544f4e6ee46ebc00dac646f0a4dce8954b6320cc4bba5c9aa1b5ae1325a0c77a1a8123a9049e81b3b93f96c9bbb5025ac59b837ea45c699548f64a2b1bfdf62092e2ad05017590c8b3a956943a9740f304c64f362faab4169e6a889b4de7bd3de1f9554a84fbd187ef8bed1ac88b8aa72f6becba94ab2565cb9bd12a6266041a324e813f34392d38966dc3230e98c8c06f13c2d27a67a5c9f6118e9f0382b300ab6a9aadba368a22cfd74077b4c6e284eb45394889e71a8c485225c3d744b33574d4095cbdfbd28ec352ccdd611dc13ccc89b9e36a326ef4e8e8005e87b3ea01b6143514e68eebc49a65cf1ebda64b2f3967aa6ac550874afe5b8538bad741ae99b3859dddf9bf0c7b99b102716869a75b6874a6414a4fd5b4311e1819b9a083443863be494434ae8e75da51256b04ea59137f5f8727acdf30f432c74b60f0c7e02b3641d27534f1fd81b2d380b802415cf1335c3fef88ae9a2b280ef9d417c3941565ec2196a61fed45a2502b564df48c88f96710abca8b1b5f6ab3cb1effbf897d5a88 +MD = 90acd6e91cff5b411fff7c04777a1fd8d5a7fea6b7180991cd8fdd9b + +Len = 25856 +Msg = 81c7976f7a52d172a385741651eb2e6143da4f75e3a62b65c914bf478111988b8ea4f18bae221c6260a12302a4aeae81024327b4cdf31dffa968e66b4b0f89f98012db377187e71025e793e847c181e92aaf34970a8a74ab95daf31ea990308460f89c9b4ae9fc24f93f0ef1c38a6f40c308bc4721d1f71093522d8724fc56d2353d7de0c1b02145e591da459f73402ed63508ec9a3270d7aeb8decf43bcc38b07cbc62e5e441f1befc5400b63e3bb5d691e60adfe13a5a7ebf44c1d8f363f58de89bfacaa0dbd4f22c3886c9842a97287ab0bb2d4de602954eebf9a8fd392e1c35faf832c74c5898373fa8fc5f7d21835c45324a4fa6705f08f816ecbfb83cdbd35e0da6cdffd701cbdde9d726cfef57d517e2bf7cf82e2c7bdd9c0cb17dcc4d5f398daf3b72fadf48a7bbd2708f5b1663ad5ee53c57b68e2610eb8188d6370128220ab486521e813c01a186d337ef5f867a096434419404864698039c7e1767cc8c074f44f9cc8824903d5cb5563693cc0274a4cb4231201ac323db62b1d811baebf5e7ddf67f5480b7e1dcad66ab4392eb133f87d62851623b11a1823e137f81c67906d7c4c186df0d318f01f5c7ef8978878ce079e428eb02d3de516f3401afbfe324b8d11d9fadf49edc89600717fe5f24356bb9ef1713af0cea86c1c458931cd6ea07c7fdff6bf29c5d7a42033d8fe38b919ff2c39c8ab40f6e68c24ee4ea81c6af3b05ed3697abbc7a7b1826c0bcca2049e3c0ec29aea66dc29e0d3e27046334ecc91765c5bf7471cbf26efc51e35774c6ddb0d35efdfaaaaf8cff1caf7f55943b3878e23d51e15eba7692fe51b2301b80f42f13acf725385dcc1454dec9cd77131fa70cfded76d5de8e40a76097d86710bdb8278438bab975c1e98145623f5ffcd52e2097f0a969a09fe481df12b4f9fe90d88985212f808004fb2c63d71fb1510f7ad79bf9fd9c9921eb084da14a468323fca4105ef830050ba5b0ca97031dd815299c6a67e7e120bae0c53cc22ccf76ddb111c630a94a6d5c85b8ea307df7ca8c96d993c90cd9efd152232d03c1172224825d1744b722216e179f3321e4c1d0dc5f3998abb0d95f0bbbac7ec4ab902daeece07409b679d9b6e7ee45f9ec1e639aff16f97e8881f6a089ebd2a350dce1b35d466d0e0b93fedd53308316d86ffb3ed30c26b008462f56495ba92e355ff7085fe982b04b12f93805d08b074e39103e9783b0fe94a89183766662b3dd9bc5e46154259ed979615d5c78be49b20c4b20990828a8d22ba5ce9da6bfd2be02e6fe0e20f6385b39bfc3e383ad6cb84bf47b7423ee4d2531d47e2b96e1096b47c2abb2aa450b24c67cf2277bd8dea58ab4a5a541726a227dc638acb1a6d649bcf173fb8ac285eac2116e94dbb11e1e4af43598fb757e4e41c384ad7141b7fde4fbfd553cdf37019f25afa82dc6b9970f4bb1ebbc37f80d3084c88a70722cdc523a9e3c2afbad0dc0221bfdec9a2f944a23a10a0e6a65d3cc52aad01998b3897745dd3cefb85663d78f69f292abee8a8e0469705c6d565677e5722ae725da79e69640b3f595a1a837c5e022aa6c850e3d6691bb40b147f9b595c4e763ba001202b45f5dd7043d4f838e350aae6c7183ead2a04735e6993227ec298209c5c3066e188f76fe9477ce2d10cf27192c328018d11bb0b67de8a4216116a763c9a1bb8b4b67bbf6b6efa8a72614e4751c468749da7a644cd7a4a4449cf2b3ec462aa5dcc56e8939fc13638416bcdf4cbd3c0de06732ee53845bc703e864241dbbac59f50f0a6b42d47183466b1d73fa9f71889effebbb85248c80d1ebd19472aac54c4690d1deabc0989c50abcd5f1933958bb81ceb683c08a576510fd1718593f3f153e34b5fcf40d6f3455122dd2309f68bde46d850f2d134fbe3dcda47b0f7b6edaf8edd6b47f5db4ca6e3d49aa293430d73f6392243fec9a61cdb52839f469ca5bbec0e8d802013ecc7ec58f4125fd9850ba3644899e1c1e96e73d0b1ab11039dfb936533128fff785ac30695fcd0489727f700208f3abc5a4b3eeb6e6ee79a4b010d67f879661c53c21083ecbc950e983b3983667e6a275d55a4f8f6552aaf414ec28d4a2f72f923804d4764ec0e9a2cc8137476f1e08186f04e9ff5f86ad0f5475b5bb49f16f45c27e1d79b05bd89a950fd49de844e595bbd8426f9b328adfb8d2049a462c2bc622b76aaeb94124bb2685f7a09aff42d401ffe445e2fd474b872c9eda5f516afda0d6437f301ad5ebc60c29b84df826bd89a157ebfc8fee3a0baa09e45d0835d284043053df90f414beccf04dc8d799389ae421c7b19186968a75cf1f07f8932d1568ba938c49871d57ecd7c7d443a32d7df3cc43c9ab18464db477f227ca8cf69c2b68a500ed99eed694638e39e44d847bf4e0c50b84ab329c908ac7832628156174c3f203252f6f86ee1e0abf639e25da10e3b740c54742bf318f05e5b27072ac6c52e25d995388ae1f8fa32d689ff8e26e5f803015f45efdbe0e1313196bf5c53a9dded5f00c2195523ec24d9a56e6dd37db88a31dbb6e9f60905bd5012187f3082c4c34d2632284adb4cde5a2cdd51192e0376185a35aed3e9c44f5139b0e80fb889542e95e73c358782ebe270caec7a8f5f531f4b50a2f81ba3639f6e073b23d3822c7da08fc9a7c124ba0d2195a47a0a22add12f866ad5072996b52f89fd2f6c45a8b5066a651410b8e534bfec0d9a36f3e2b887457afd44dd651d1ec79274db5a455f182572fceea5e9e39c3c7c5d9e599e4fe31c37c34d253b419c3e8fb6b916aef6563f87d4c37224a456e5952698ba3d01b38945d998a795bd285d69478e3131f55117284e27b441f16095dca7ce9c5b68890b09a2bfbb010a53b2a3b9b3007ae6995ab89b93c2be5559bba733988655fed41017b11af619939eccc38fc02ad6448f68dd7f8053f64a92d5a96c9efed94f0546d47742ef2bf38a0a3d3c4e06f089b3cffb5c85be864bbc6247a53a6c31b3cd0de487bfecd4a475f99541b53b464096fe86a51c88eac326e0069003651bc77bd3bc44fa958021032950228e2e53e3b98323fbad39905b72dd6a9f826fd414a236c0417b7fdaf3b2080271415685fd8bfc47c2c057137f20c8e8362fe31705c0b5850fcae2318703240090674a68f89ea8669cee47e0a8a12113f66475413567ce9f026183106566fbef027880795f623604dc9fa2946284845252e88cef0df7f062bbc7c914195dfe2269fd8f43bc6713a7244cfd8b273b4137ddf4906d0a01b974ae763aa91d68a95f295ecd347a2ddfc1e68e9f4171460638ea413667a40588595ce54e4bec179bd9b314d0d82316d8e9a5dd2e63db2541ea1a36c55b8683eb6549ad7a78ffdb3436a9d820bb41c2bd82e4a1215ecf6972afe04df3b50c0d613cf72745bcd334010a7fe1334a50a1fc321572fe8ec873071edf0f1810bef27844e7fb468400a290b9a7f89ef1ca45035bdaeb3c9040f2adab68f2c8db19e39f218e81e37b02b751b8a456ba6e392c6174874261ffe338a4ca00817c80a74154376d63b2ee53d2c2ac17b41c0c07b89520bd40e51a09d5ab1f4843a9add1ac261b07191b6a6e9571f854794a57c07a2cc4ef4f5c9b3f5a2f0fb2a1e6cf43748320ee0aa38bdd7fce11fd1eabcdfdf186f59fc62eefee268f1fa234aa41574b0a0d74c0e1af0ae265ad742ce6fb0abf3227315de284b0db69c3c9646ac0979019255dc43c60816da71f4c2c525b9123bcce567f0df601e93d908ac9bea98ed43efceb9d3a2cdb9220ec0785947c0bdf957f819207b06bc0890a58cd0c889797fa18b0a4618063c0519818d113b8e5435aaf153f664058f1ba95c606daca6c4bc8fd4f8228e7d4a8c7b8029756aeb7ef5ad1b3ffb032540d60c754dfb00b57702a1f1abf16ef889bd1a05720e3c9ee34348bd02b6be2e7741a1387d012b7f3959bf294a3a1f40a1a2df5793631a712c26631ec7affee7db6351ec180795ccb3cad1c5fe86091d3b43b2c0b2fd6a2a01a7e687b46f2c19154402db4595a6648c5cbf0dee5c9456ffa67c86f862959209ccb940f17dae8ccdec9d4b2d34c60e6d187149434428b594d523f28c1c0471ed9fc591a761ee08aa640b85f86b5d94fe04d0c124c62d00a3d8914c96b31e8f5528f0c2fea4525554b332d1cdc3d3bce62bc2bdba6b0b00d3b5acdc40ad4ab3e76e231a1dcd443a74e1fc76d4c3904fce9230842cba2a7dcd765ee9b094f2a74e7947e22d642b81b2f750be37f3fc145d43035fa33cf33f38238ebd0eef7d313051426355f26ff0b5fc15ef1bdb80d53c4521964777cc0dbdc2249e8347531a36fffee2befe775026f83552aa04825812a074713ff51eb0045d07d53723dc29078a61aa8f10ad68acf3972f0cf56c66885ce337b43e52f1b4fb21aa510b7f284cfa5502f1b07802f0f623ce6936a4c746825532cdd8ce9675a55964f987a7ddac57c1310c6740e49908c176e8509443f31ab4a8b34dfc67f162974d5920b912d0aa8c8007bc6ed750325971b1caa2a2372ae7e28d25432ecd3ac3ab965d1e8d5f +MD = 74bea4985bbecd07c50a6c2471056a590d2ad0fed01999044c35599a + +Len = 26648 +Msg = b252871b741a47d98545e8ca747a8b61746b258954fd1aeab1a90e686a21f7ed543777692ffb6a17d924bb01c2b27bc6a0d1349b64ff7a906c71c415fab37abce5904f408e31d1c716893e64cef09ae0ef0dfeba8cfa336cc4a380f03c6fbf83cd23b6a97903a571a43a1cfa807b0f36cae92ceeb4346c062205e903189defca73b955aad8b80e9debfffbcbc19d0350972b663fc4f64ee7ec61a8557784311a4119d44e939933d453a284e0779c9eb7bf9c53b6a48801968c7d64ee3f6daef99e0dda9a93ee3d9d44e95e408cc107f2ab049c5a3c32ac9b6821c6d75aa08ef2f25b0f98beff5381269e31f3e6546789c22be934743c787fea177517ae65f88aa6cc1d4ffd139e076187a7026f9de5056bd8e14a35ed8cc978261ab62504144b2028a9c7397346b75d6d66740de3aaed10d52ca6658f11017c155dbda6c40bbcc9375e095868721982171651aa70dec918e87350ee682eb05dade53318ef056509c0e11c44384ab6394f60a22d8aa722ebda5e4eb6c10c5d83b65b2065cb29cf498ddd08e32bf715e8dbec6e7e7a307ef17294aaa7e1d29056f8668c74a1a081ef64f8d61f8ba1bef98461bd85889f68927abe6ca812a9d13e3aaf802db89203650eda8dde9e6f3ad21267972afb1d6536b8839aa09ab9a9a346de03785a26de11532c350aae8a10dd4da805551dd1ff45f68c3e79c2299fede29a1e3dcd84995dfa96d78a011ac880fdc90eee34e4bd27fa805f1ad2223c84d78bd8645ad5bcb0cdbf7946df46eb25e975bbdd897d27448c08066b12cb06d0ec5a39d54941d0719250262692360033da52130a64c5c60476cc3a54c94d873aebaf4979e2ef5c0a12f0e31261138f1298081e5d0ce421d07f7303bd41cf47289a3111366d08e8e21548baf293052029eb40e4bfcb01c10e6ea6698ec07acd03c38998f531b3fc616300b2ae71333ce29ba26e16e7442c280c0c75af8f75a1342c5fe69f771921efc3bfd32e43c66aa46fd5c34ca9d6ec84214e2e08f6e94b219e5a041a8761def4fe2d265b51e533d83082eb4759df898c75139d823cfe5334e022f950a9b4bcd8dcf3b21be2b91ee4a650eff13f8689a6cf04c803abdb42d4bc60cd27253a420325b980573f6ab33199e8d630a3f4763cf8c8b97489a9a068f8bc8989421af8dea12696f8b11f7a27d1f1a8eecc51d7b5b90878be1f8ff35a5ddd345d497d66cf18e3fee47e00fc2e15146d1203c43579d86c0bc7b5b6c511b36cd68b828a153f5198c005ee36c0af2ff92e84907517f01d9b7c7993469df5c21078fa356a8c9715ece2414be94e10e547f32cbb8d0582523ed3bb0066046e51722094aa44533d2c876e82db402fbb00a6c2f2cc3487973dfc1674463e81e42a39d9402941f39b5e126bafe864ea1648c0a5be0a912697a87e4f8eabf79cbf130ea8e6f989f3177335e2b0b87d078b843aa378becd69ea596c85f078b9dd67d599976f6343db1b3297da6d93b20f817ebfc408300fd9f8186dc182f4abcd453881adc1af98340e64e15bcdc32b8960fcf51156a880fc29af290a2c69f6f3bf036ff2c525af8458d1ba6ebb8f11fd8fc784914a6e485de6e44968d61dc1d73e000a6f630cb1566141cb191c3e8cf378a7154dcdc98e81958175e3685935022bf5fb2b84aec52f907cbc66d919c3f48263504bc5037af2a04c5484ca657afbecabe92e0e5114994f49345dda68df8715c5dc951c6236376d0e8f52e589b74aebea7d81eb3ec51b0672db050773073599936233b82fe7d8668ecd559f0d15788e795f2b01bd013e1bbd5a66488164857696892b83b1b85df196b796e138bb0c3f2236343a15f088f7f3598886db1eff1596fa876332cf4f78ecf51c9454d18e65abaaa57c90b98302dc7f74a7ca5c2bdc5b5c4f42f8543662592ef09ea7818767dd6585b17485b7a43f75319594469234ac5889074c709817a50a18e97af17eaf800cdcc00a7bab46e5e3c7368105bb8652963f9a764affff98339e5b1449fba45c4ab3919ac4e74e976f3f74dbc12e3816bd78e3be0cf282fa4e89debfb286ae38c4110c6c87f3261bc4a036e8a174b4be753dc96cdbfa089206e259c154a835de25fe19c7ed58343988f263f2ce146012689537c7e29ef92900b0b36356e8a1141382a0f51e9de2bb643de53f7096a6dc3c8812184666bd87e7fbd6ede0cf5ba336a6893c414a9767ff8aa317ae83ede2991e43a732dabc7461cca9a71ce4c9533871bce57ee7ba0702e085c4b0629ced2860b2bccc835eb8162a14d830af54ebbeec2137fefdb5611448738d9fbb1dc59055479f3ce80c1ab01dffca44b86435731da17ce913ef3edec955b9a317d7327a05eb97ab912c64d4ad52c3818862f7fc0e22fa67b2d065076b1391e3fc32fc8e7984ee4107285c2ce3f50c0ea6b4fa04c78dfb9e61c0a03836965d88f596ea73b8fbea25d166cb60c6d1ed149ac406314ecbc5b9a827b51933c465b9876bc6d2ca39d480775078185eccadbbedf9e32badc3a0de0f6d6d516986f09f3c195652b825f479824c2dfbb4cf962a26ba589bec5cd6361ffa9089e1c547619b08639c89a6913979c4b0b1cfc3ee8acd712e291180aee85f37e668a167b3292ca1b45745a6f4e7e41fcae3b88efe026a852d7c26166f1c588a3697b3557a1c784a132cf50c66ac4cc54339751a0ebb865e1d3d320562fc905c4abd1e78e464066c46c3a0c02db0371ee35a104d66dda864c6133e37cfad9116e883ebb73b295e7016c34ea9911a309272ef90114d8f59fff0a75193fe5ae31ed99121f9c59209bc4bd507b1dc12bc89b79ffe4d0df9209762a1730136290cdee58ec828ccc88ebaada0d4bf54c2656b7b1361e9ec448594e5a8ac69c04296bcd323e92b96f375d103cdbcbc4350b2a086f2c1cc3398105e416405b3e4ce09226df78bea6b3947681703c88eefe42b90a0e527e0291c4a5d3e7e85c8eaf5eb7779b3b64d95c58be9afebff1ea1a759a39194990c18f9baf9a39e358e1adec623c0fe723c5bbdc9bb942c6954a0c0c34220a622384656e99b3a6b1beebcb2218e0a81c89f044a8a468e6f0e183658f2d317c4c74cfc5c5da9c98e41d0179885201fe3bf5ed99354f2655cf753a9976cc03c9592318233a08d19aeaf1d74b97941c6cd606122c1b227e09a2beb42a4bb6f58c28acd20023aadf2746cbb1b3d8559c9e7b29027fb294dc8d2b2ca49a8664a32f2b7091ef1b1731c888094544b31d0eed8bdd42f6a43cce5ab95d606caf6b794ce22cec32a8f465e91f38f670b060efe4989138335870cffcedbf9c033f22044fdd20259d25b8d8138cd939ba68b7bc0e11f376c867d76dee28c1ac10ae2ec0b28cf8e26149eb24e24178a3a44497ffe4986263082ae704990b1214f784f83b1f7225b7316df1c8afdd95b8a0cc6837e28c6ca1753a1630a8050f5b3a5c04dfe11d2508700a633006d19eed4278ced0927e8096b21deb8e759748035b8bdb2ba1fe754acfb7c5f771ae12b5fbd232767eef2cd7213eed5a9c422a91cdace1aacc86a51282fe708b6ac38fa75f511976024effd7652582418686458b2327ced9db5622e44c3719686cc27435cf7e0a7bc71e481bd05a40bfbee41753de94e93558ed7d348dfa271af22b4ee5dec17be427fdb418f555bf41bfdc2e90626cd749cfad2287cad0101f955eae3c0fc3f43bbf3db24366a0446413eed9a55127ff83aa15914275216af2c0ece0acd4edfa0f078ed14f96b27693358cc7172d5ee88f62c778293f969e10ff46a4bcc0b7f3ca6b418f91f814dc5baf46756a496a28a9943315706c883006bb0c58f045aa87fa84f64b9f1d3fdc29dbac432347d2268eb8d917cc9e7eb7508e9e7bcbe64e0d1bdf2d93db78abfc8a651edeb6ab3f688b4b39ed9247f29a7ae48d9bc4250b29aac45806db9cd1b3f9b62ea6b8e60a654bc5c60565eb8c6fd2574a275d847a3423eef60313ec59a8f4594c198e8abba32cb31e0dcc1b949e134164ad1c8713d313b9981729099c3206c907c5cc0bdbb8ca8da255193ab3abaa5d6dab759f507d06beaec16f5721e5ad8fe239e5dbe31c91cfe379f1db522ef3e5b590ed4fc8985958ba807b67834a65084bc4608d5a251ef451faca70087eac84ecfc081ad4cb98323bd2b1ad28c6a9dcd513b092a988ce959e46279b4f4120a5644b4a831d7d5fb5b346c6ba9af0f877fe967a8e69ae2d1df8ea7daf8eecfce1cc1d291afb23fc6db14b1ef2423fed6438db12d3131bb7182266514f4ff89da484d0284506661ac4a65e1f06c729e52c04401df32e37f8fe8b3836dd1aea8f781f12cc83c7aa2745030e6b4a82356c39f163f07123b96f4b93de92eb78394ed6fb438a69a7669e8967ca78401bf90f0870b53edf8be68689ecd7f9ecd07b684bb9e0e6692e320cec4510ca79fcdb3a2212c26d90df65db33e692d073cc174840db797504e482eef82b7fd67a9d527a115809e13796ade9c431cdbaf2b3a37b40c08b9abf32dfb1376b7620a486053b50a0fa4e263a251ec52eb71dfc3f868dd61985dc1ac1aef014b5823d9a3f5a1a6a8e22190f327206b16e0d7df2c856dc7b46f6cd89f987283a7a3291ce31c783b9800fb635380b1e13402f5f78d69b03aac96cc39f42eec5f339e5a1b2f5d403d82711ca4a8356e165759b36f0e2a97fef114672cd465c55e96 +MD = bacfa63fc83f69a1d4b489ab62b5800ae0c9e5e38ded60eb9540355f + +Len = 27440 +Msg = 7157326b111c399afe29d1cbb85198fbdd0a3af39c1387126d5ac94cff1c5473724e5eb5c73c11679570df01fdd51669df1cb4744e5f7caa420449498de5a38d11ad902f2f85ac2b83f17cc7cef400d1337b8728a7f9c77ea34e2d5b1bed7265b43e6fe0324132712f75512713f87ebb40ef5c178d289216f6fe1d8b927dea84c5c7a4d0b6b6cbbe03c30628b427bab06e40db4ae93502fba4ddc0e0d8dd3371aa11d607a42e9d9c66a542d299cad9372535abc8a46841b416b3bf62d65574b4cde4ae8ee5efd392c0e1ad2eab2806d9cd977599a40977c9b348c119742dd5d69408d46c5f4193297a40f043d08b671dce2ee0c6d360cbc2e2636f0e9bac7f5e6944efa9fc6e05e7fa8ab31af139248b91c2955618b566280dce7148311b9ad4b361a74ea3bd5357a9879db9f77b66ab7c1b3b515a4f70839b4f6ecf1fc24dc1d928a6613c75a2feeffe572ac8995506f8007bc083771059f4af0fac4ee9c1ac455e91edaedf1d6635b989754edb18236e3bfdaa7a756e3480b5fbe6a5d81e1d5ece13f7e343e916e17edaa06f89d88a449268172791b39ba62bda850bd68b9c8c3fd289c2e931965d16f2b515eabcc4e4ce650f72130717d1d756926a2d30b2377876aa33181b6f0f497abb2747ed58b4b79b9b4342912f66831513a92336e6c742a8631e19cf2861de1abb8de892ce1e14b3c282677a6bcef5bf13b001c5c1a46510bb6b357649ba9f79bc2f15d4af88af548d17cae95371f6fd97670f04ca37a955ba03b1385a815240c6f516db825c4e2702eab30770b74d77a9b6941c89e6d61f68ccd83ce420c016e1c732cecf01bad32ce46afc4909c4d45085da35861ab318ceaff1ab6ffeb1a4168db3d51fdfbb0110eb36ef66cd21bc95bc27754a3c09e6f39443ac8183ed926c2fdf1af85e1859b8e86108506d2dd97e43c4075cb2a031df641768a4173b87ec95ffc2e5e69b822bc431718e4fb0d01602f91144e640a29b05b5075f22642b9da75af86bdf0a257165ef4fa8dd724c62e10dbc8b3eb1e02e6165b03a0c3127874e3ae214b12ee993b5e2cd277d3af36cc94a2fb824ba94a05f6f8bbe3d6723b270e5a867c4cf77989b54109299d16d3ba0f69353ff2566fae61ac1721ed1c627f6a473ec81b57688fe8b4371980063d7505a0fe437b8fd43e0b07adf1536b9edc9bf6b2c4ea78f6bc8d08c4de28d7d49bfbeccf4343c02833477dd8b8b5da40ccf7eb7ae946e6a4ae06b13acdf406298d769f10a5d781cc2cab81300e90f2d8df22980fabcd2ae2c2ea40119f7e3bbcc7ea5a7af1c36f4098aba43c69514ff771907ed992c9b041a9ac37e19923c2fee9eb8166ad83c325f5cc79663f934c0d22c6127124e91131b0c0fb136181567041eeb65c3fa537dcd282534617b3719a6127f55ed897c84376cd1c3f7f1340a19e686bd42e8437d5ad61d444885e4b1fcb5a9a0b34423fe76a252dce48561c132ded145700bd4db0e4ef7ef9e7e0431dbfc2730ebe94f2ae196d722863c663459ee1426d4cbce3ff178fb5cedce5f404ccf402c1ddfc8af7f31abc0647f0a0a95fe9687f791f8500c3c71b4bcdcbd8756163ebcd28e5637595915dc07b414eceff6a0915fc31bb76683a01e9412e6ad01b9670a905ec16775f75c9ff5454d816dbe7a6b96cbff1c0733d1c3fcd7a15b55a1043be2b7d0e9ddf4c930b8987d721a3e6c3f240f6c25f8364cca7c93b8395bb45c7a4d014d659936a4b7d8176c66fb5fbe328ff92a7d4072595c9caff1ee1adbb9ed5ba4fe82afa7355edb28e1061a07b76e61ef00cae7d140a1e59115239aff61bc9308abe9292ec34b4b35a5fa7e1fa01b215bb8b5f63a48c0dea2ec7fe4069d107d951e420eb298a6afa581e92f90c16058a418e57494bae2104a3dabffdab511a2b41e34671dfa9890e03a7b364062668d32e90369c9de2e01f2d24ef361f1e689cb72673b563249754e9b599a19cb55486df2b6dec0fccd3b007111c98599b8bb44e384924587e0e6576b2b6302445412bdfda7d9615ce646dee39c882cf4aebe85393375d243856b63719899e2148b718ad07d659446a2a8f2ef9638404bf11cf83c1beae5ac628dda764945a38423ef3c35e187410129eba65fa8e2a8e6a85c03b3e5fc660c9cd32442e66f2cdc44143bf17b4950d6a29661fa798d4c0dfc07106838b03da95ec6a99d161d65641567efcff2b2a90d35328a87b241140815a48621bd1052ccceecd14f81593663bf70c196efca35ee0c468bcffa06e81e1abbcda71c238dbc14d0051fd02a872369b7170d199adac04c5acb9afae5b09933d54dc2fcf1d7c359f7abd7ab9940ea3cc55afe192981cd20f7b2af59e554bf8a796d3905831627c5eb2d3db9ac49016021f32f9680135baea4a8d8c00fbcd9442f98d6e0e034317f33f11aa36d8ab0fc53486839a576b31ee915dbd769d12e8c7f335f35101729b057613510e4ec3e39e4c373aaa2941d994e618145fe790888f2a79dab1ca9577fdfe358a91855f53e5bcb17907f53e0475cf492b3d39dad600f5c58eb0bd0021554e1491611ae1b3440c71b93429d464f9a37d6c8f226663d5eba589de57674993ec2d1fed7e0f9421c21485cf55995d99090152d62fa7b47682a6468b382f33423eeb80a73d2d791754066939f6f160fc76816892b0334a5b41246f47cdcc80e8dcdc6e1ec6bfd48d68c3de049c61117c628a2855627d980cbdbc4ea486c3b4e03c7c32b4a95b290c46d94e9fa48ce19153681c9e950b1ff33eea7f21f1a931d0e44769295373f91c94b3459badc943e3dfc7bfcef65054b76b1b6b30ace1aa235aca8bcd638ec726c8ee6d6916aadadc5e057c66d4e1d8b1b8ebbd610701606006721511582015c369e700888db5f8f354cdfd16df341e8abec7c023ae8d070f7dda9fa58fcc676ade49a99a615f30c16a7d9c2f63cb98aad33c3e08f1e9009a376085fa98e83e95bc62e2ef401b14bef590e441111cc98a9ca561817fa9ef88b9b05270f207fdcc8adf2727887e07548ca46fdc55ac43a281bfd51da65416637b26afa939a03787a02b00a3c90c9b1a96249951affe79ab18d8233e145c27b3025fd823be457e4fb2b2ea14802b5289b89deb518e87eddcc88ac683384695efd5a876411e7c349d39235dda2c7ea02a5a7cf05c8fdd02e01744295d8087e3826bbcf4b1d898fcf889d8c6654c5b1665024e22c312727b3d9ba0d65d9bb493034ae9fdd66b3029da4b6fde566e6517c2368e0d35b4cc994dbc0d57d3d83126fae9dbdc2f44e65dcaf444e02de10146da6db90a14f55fffa90ef61880c4a201d1ceff2a3cf4000b32faf4864c62d406161e5bc3f142b110d7eaf7b2c4ef7bc61060c062800731b4bae5eb3b425241e7fddef2a54b2b447f42f69e9110c722e63f55cc1f88ecdfeccb3bb579904ddf6f0a15fa38932dae9d82b8374e04ea3be4c7147ebbc8138f15dc72dfbbc6a4010dc359fef869b843ee0f867e4411a72b44400354b1be19b3b26711c69c45f35b36a2215d6f2f59a8f35207b01db7ac757722c8eaabeb7dd255039f0675aeca428c2ef2b2075490324fe2b299357758af0ff7cbad04c0ae8f703a712be261775b80d244894b89ea945649fd8615c13a3c7127821856ee3a3f96644e836cfea90a8734ad3fc63fc733a8f06ef34935dfa24d4a92b91cc49f672a297db96fe6ddd431be8361e1e6b494aa6e7d8d4a45a774f6d9641bb0d44c9acde2854a85aa745d02e86d8c28ff413bfd1cbfa093613038f04c8c9ccdadc04ed4380b9328ca0ae96d3ac21b2619eb9df3a39bd9bf18e842ec1c52d8dda1a907ef92673fd3b6002de33e379b53a7224f306b989517fd5e472cd17d3c3b60553a727a2ebd110f027f075b24892c3763a4260d3c6f485f009a45045253915a636aff67d8875b3570714c3a2f612a3b4e4166e10dc4caee5dd0b71d889b6a00321e08d3eb1b3cb9d8892423aebfd82340bb558f734219fbe46f159576901ff26fd80156dd05100cb94b11c02901b0afd95684711343b03832e9c304a2ce3d917b0d8b5934c18fce712bb79824b33e1166c7763e44562803a7c551d3a3a24d6dc243096378dd064fce9f68043850faf8a762ad3fad05dbeed186448aefb8c9f7f3fd0dfe1fb41e30f03ab5acca7751d5e9dc9c0db3bf566a3e911da2ed7e2dc08ebffb919fe321f2a47212ea5172ed29cc79b510deff22065d9a4fb4236f0347d0f064c68fe6dc0549da225573f02774cdee9af1a551c933acf64d273807c50e8932dbf5563b86f96ed74676986b8b474c9fb018ad43a682ab49b88481d4fd8505ebc3a6995dcd4f71fe01b63531a301e701970e3d316473d6e8f444a753173be5afbe72afca1967f1c2e6ace10ee9451bb8b24afbc76d67ce6882ffff0eac9396e32ec2200ce5d36caa67b3024fd871692984475f623c0ee04d071f1f74183c982a871d90a2dd32512907714f70fb274dd8af8bee9e5ab9bb1ae31a8f0ff49767fa69fd680849e53dc3385fff1ecbd7384a76a11fd83408cd36997ab45ecc2494b749da1cc9c66c811d8ce7b7a5b4f1b6f38bff69ac726c8534acd825cd09749cf5a94c2543dd48d97c7790ffa251075878422f5287705571a99f8b59f73707ff3a0acc1822e8fa95848af44d912aa88b2d5b9970f5c87420f9e43cc749df3f1a08d0c27bd3940243ba398a07feac25cd971ac63b73e529019a0d4504515cba9bc6add7c6c248f07271f5bad547503fae5a124e289e50e4922e9d3c979a49eaf307f4646f9b82359060521f3c17b1269bcad499aeb18647611bf69bd78121509e514700fcbbda522bf9d +MD = 22954fb11ac8caf10c509d035be3b364171ec3a0f7f773aa8edb6b98 + +Len = 28232 +Msg = 08ec084ddd814cb838dd30646ed1cf518c08bc12ea463c2f03edb2c983c55a7ca2fc3a8ab16c5635f21d246cad0b3faa80295f1cf7a589025d6e8357d1f48bb49c2f4872c1e2010fd6210dd213118bb2a9ef537554532c1534b63f67d932cbfe9d8a1b4e366ab50d8bf0d5dfc76a1931ac627e652bd88b3031cecc41c30a82244d179965378ddaf8ba9262d8f2a153ef348ac936a1ba101dfbbd142db80118ec55ddab01edd1d8980a109e08bb3ba0b3e7701c2ee08321a33b8bfd73e0a1f51f5de43a6880c118b524716fb64bc267476d1b609710ba28899941715a627182850c352ce317e20017afbdbf29c9be12716f937bb758e88c98bce6572b66f925e50bd76bbadabef98554fc75aa5eb508fa95e157d7e194b5984d82962f16c2470801d2dd35f2dc6cc9bb3779813231b1aa860cdb3ed3460b51f31e18ab985351b7972f6c9c87c4bfa98b76b3f66cb97548eb1cee365587f68a57c0c4ea1434a9b875f5ff36c0ff5cee6dbf0b5135d6bc9e6b1a7a058fddde0d21738233b3eeb9d3422c7d4cc614a960081c69d9b40eee72af0d66f4aad32ba0f83c3acd9c08e8d2a7dcd026c18b10c60594b5d712ec738d5efd9a4bceee450c8425d401f90a9d7b4b0edf0cd8edf7e90b2fd79376f5b3b721f2fd5222b894186e353917ef7d4298d7ca924633c0c892c3f6b75509b317b7a0f57951cfb8818e5e744f57a8e83eeff216d11bfb8fea87d4f03d65f2ad0557820df58ffc767234fbebff084cd3f94945fc84d558dfc591e826520a5a6be65d70435a55d27bd0d4eea1327402c6db6d778393ba713ac177a49edc8e69762392119e8eeb794e0434de9ecee1f34a4c2531b3e6136f274603b262c437465522be0e267a991877741d74ebbc9847e6b4371b956627792fbcfbba7af34e1a904da90ee306a7d87f8a56588fe5e125237b6cdc30f940b8d88b2863ec501a0cb00b1abade1b5ce0edada931923003b588098c1d8d88a454ad1b5256c2c2e5453cc3dbba1e9f01594944dca8fd8448219dc65f85b2fc9c7433d5403b0433f5edbcdfb2b5ab7cde6a1cb9b864d7cbf68eea1bacbda93b7040f41fbcb9b88a942bb8c668538e983b3cec73050e28ec5626f86e3d6c7a2f68e177628c78e8af0827b9e0c53dcedd60f644da8b4df9cfb0114e28d83b2bbecc7f440779219b89990a4695901b733194c1a95611ca515c4c7774b246d2c6d2e341e4744b5cda0291fce84d9394867e21c5a54f612c387b717ff3724fd85252f650de13cad0ac013624267094510dab4d29bf2d411cb614695152d2baf6d8264dd4ba4bbe26196fd2ab88665cfa13a0611680587a42d40f7a16193951d35f3630f40183ee052932abb89697b3369d45a4b36e39d4459954edf6d10fda18ef6ae7d83a252316e5330974d96c60adb5826029133616ce0ecb0a1801bb1e6c90aab9a9ed982501545a3607d84b2d08623fdb9ff7b80a84395d18a531a7e5784bdef08fa244bc6d7e9079981b9de0efad645f3ea028761024f061c4e93af7e327eed2b1e291b0026cbb194f2bcb42099cd9322d98ec2319d76d2b9eb2dc1b562dc2a83834e7c86925c45f558f3b1bff3a869c95676ed94858bdbf5b13f51b796442b94b21aecd4ab19493d2cf5733788c53e79e93145f45b1c6652295edbdf3d4574f13304e884c1912fded7486511d9c29596fa6487fb7ea72641bbe2dca6d85e7b0b8e92fbe186425e4cf052f3f9671ee3c312871ff4609a8066f191b098e80db2561d4b93a569ab792a00abcc38a138cd60b9ff6a89b185091462b2044ffcc1cf6367a55c3adc4af4d870c94a6a28be970269541425e1e514ec77ea5416771916b60626920c5e9f45eac921faf85e0ef51aa91b995372495851b9910c96f7821cc07145f1a4711700d3824c5a8db1a84c3be1cc668cc31037e6904caa4bfe8b66052199d79db440aa1534aee574e42920c8abdd085c84d8380da483c9afec937706af88d05288baa64248d0286845e007537fc3fb2d180fdd496eccd73d4238b4477399585d7ed389cd47469fb2579b646ed617cb88fd359c3c478e4f6ebff9c24a0651fc38f739d928a888b7fda989cc7d375ed5fac4d7f938d74ebede86451580d039285f924bf8e6f4fd1d94bc59a4012bffb6ecdf7588c1869491e765b9227e79b5694bd0887d7ab53a1d31f0798f8d1c70eaf9cd7caf88edf66513beb47db56b5d3b88227ddb7651c6433fe677e3839168fe8c1f8be1d165caa50df1c58ba81da71b8f08aaa74c63083c292eb34487233e4e2e45f1d45d96a7de20bf6ae0d9191985eb038d457f5196448809da270a3a67765ac16cdb6fe9047ce67822f1bad63b0706a3945a81a5f718d7385b1f8f5f8af39c124b8b8ae5770dd9ac7c42efed721b7c596e3af5f88115811aa47278fb0f325cc91c495114560d74dcd568cac7553fb6a5698b4ea1eab7202144d469956adf27565db934ee47f84279dcb7edec5ae0401814bfee3a9a9a4efcbac9d3d73446863a9e4fc8ebc36abd13e0d4cbc509b993120e4d673af72b480d84a74a18e204f3f65c716f853eb16f2b8023e6f9d8084a2394a84c2ba6e6a5c421113ed2fa96fb09f6c2ab533078b3314949c1f34c68bfdd76750f75105902c11e8c14ade47905f61bb7fece4f3d33c59aaadf39ed677eaff22813afd9fec974db6c8e0246279f3b29c5fc6ec16b6b48f2bba1462160f10bb6361b544a44846ff656ed68862f3159bf7106bd5d7fb43bf010baa08f01d181212368db17c6ae02fdcfc5493afc66d22b4db0227a06c92f013e8dc19cb67a90d1849edc98f1a0ee303b984cbb1baa252bb08b368d8cf492a4999d21c0fb76cb25be2fb1646227825c2ef8cbad0965d30f4dfa822e6ed10758b65b59923d3090bc449df1f0749c5fc01e494e8752445c647a806dc348e8ddac196ad18718327203bc5c26c3b569e71a8e2c5dc062a031b9daaf81f29796b60d372e12260916ef7a99fcc864b12aa8a9f2f461eed713e37dc2ea4722d785010a9427a3e58c3889af42024f49d459251ce13403690c19f23ee7c325da851e5f02c4d9ff5c1e31a11068df33e9bb6fdce1ed8dbad59e2cee6b9dccb6802cdd10b42dd79ce04b7cf62c53160edac2f940875c43e09af9b72882796971ca4b4bc66d438305187084c971b5394883776ff07bd2192d5f9b533121ff1bd00f4ce500bcba7eb06b39d3cb8ef3ab697a655e5d3dc35fe96a1f9bb8b8836659d5be332010d72d276f04045cb282fefa26091ee75bc49abd60e2caffb4caeb97942ba0d5084e10e28a7b70fdab07a6732cdf5c3f443a4c11ca819ba6a529ede1e0f1c8701163cc7a43ecb43ec6e6345ce55480c585b9067f1d78782e18251ff142cd1481aadca24731f44890a4a32b2ff605170a9eb53c5dc033daf67c40e42e1ffa1f9a630d44e1cb0ea883b2c2ed54c56d998f0da3604659404ea05001ccf0ff25442aa87a26d275b85e987fca0d73d9fa82c3512814c14f2a4dbc21ec4cf266bb1ca309a7ca81d87dc53f6a2d0df5aa386d37e7a7cc47285e529a6064e6aacd4813a3f51aa27859bb86f910706162ccb3b35d5fa6f9506b68f7cb9a102c72b948c39e0947313e701e1e55f118aa33a7d8efb417aa1e658eb697e04d5270f2a139a701a4b2194cb201f5c68a9a3af0c2249cdcbe25be0f18d3cd58e8b076932b97387f55efad1ba603a7db5b89b622b233252791ae5ab5805d0295face8fecaeede2579b547f33c29f9ef4d24b8e31ee61233550b876e15baed23801e13f67a1aa5f2af384f21d7e3255a39d7435b6dd5b018679b8952b1135b6af8cbd078caa58e989ed05c8415f686687fb783f1a157d6a7b6b3327eb37ae1a7cf9967ac43f762bc4e63b4447dcbe4bf29aec2ce41d34a8b4a3ccb1aa35649820e721fbb6c78e809c8daa08897c807073ea34619d5b3d56a2b1c9c500a0e59a2bc3d41cdcd91ea24131e6878ec56b7e9c77d59fbe65e3fed623ded466f0cdab0e1e21509efa82eb83716543d03debb0ccb26419cfb3c50bbf58506245ab793538648e39859277e6b3da9acff64c6dc1a528546239cb5d07defde2e1353774e34b159f3a29374a0e52cc1b7e59877e2b86582b2b9513186da552faf3be3b4d1fb6dfc8c4e26f95ccf0c45be18265a95900a05cb85a3183b7b3160cfc391d6e54fbf19f8c4991c7cd1e61c09c096d6bc4a4bf6dbb019d2b7078a58d7d3e64552d8b1997d2d7447c692c130e0037152218e303d28613cc7c22769010f95696ae03f4a6264b140e104bba5688b0c3e388a02c0c3fbc192602483d542be2fa2ab572c925df5778452fcf39aac510185efc051036e9bf8a503a4c2d6032dc919717e46927277a8c80177e3a9e47c0bcfdf8b210127522dfd190c8c742ca58c57251e36518a346b95583c33d9f85251a270b21bc3d76688200b228bb8a66c9fe32dffa3d78b72e971be158a33d11cfc890affe650642032983faf64a957ca2b45f3e9362d5f7a49e79bc890bd5521330915382ab0b8c853ed1f7ac25028095806dda4975aec94b47c581eee816dab1facf92691ecb9a612a5124d4bb301704dad55f76d661c0752ba5bdf4c870200e7f91e91c10b5101984a7feea7dccb4633c2c2ac615ad51d4a280dd351d5fa69b578ed41621567230d63d0267fd36cd431cd8c891a3d011cc54ed6c1a6753f2eaeb2ccfd1d13e25298796cbd7b9ece6270571a574117874deab51f73f36fb797fc2e248e9a0cacd76113bb7b4247d73718e7d6dd7df14ff8e2e44eafdfc94cecc7745ebd8008acfa91b925287dd6719d500627e577d24165d463cd3e128de574360de050770fca0250f4128bd35183da403b7535d6c245dbe9bb02e835c369787280140f292aee39c54aea6dedc2f537110e299743c943a449735774f071c240a35561c43b6000e5194515967230affceb07a9d066f023061b1332aceaa1d714ef152e3558 +MD = cc74704f6d8fcf121b4f2b23903775672d6c2da81e4a3a51a9be3f90 + +Len = 29024 +Msg = aa9220d122b941ed9060b3a1914787ce5174facc962799010010a9b28fc0c518655ec9b7cd9befeb7de738c418e60e13f71d27c529f2ac70b8d39b2c2eb56aa458c0ed6d4a487996a3004a80136a22ef1a92336212fc3fa06fdbfe944683c05a0c21539aa1aa27158c11b07d89bd0c8a413ae64a582f9ab9ac909991dc14106308eac4e7d8a84091c084336482c6140bf47d0726037104e2f85a36ccfa4fa1e7d48108fbf9290e31c5bf9bdd066d819bbbc3609d1cacc743daa19beca71cbd0df950e7800b17d71e252cb08f1e9a9d611f74b758a9c72905dacd919aec63aafdfebd291b1759e47f68313923d135ae86a7f8d5feb5aa73508046e07ed00cb1e06b32957624d77d7d143800402826fd31dcb88238453dec4b5574503f5b001adec916f4393a79ea40b3a8cb8f2955d28b441a85ae6368de1fe0c0a98695252d1e9fd10e0c612772efcce963b8deab75bc6987a80716138ff3a990b2fa876432c975cbab95a2c95eb2e86390624f0e2debd368b1ec672648f0394d344438a67006d46b937f0447f6b38e7e193583674340082369045c89513e1760f80bb0d130fe421b8d709089821746a2c8db829fffe4922298f80024f204cb2fc3f8f8cebad8494363104d774a09993763f9549ca9fff9cb066f58df736bde2460b3178656bd7149db0943fa96af0da5b33a024889b8c3887a126ea31b9ad7a695e315e04cd54196be007af8ad312c548043928ae7387ac0be89495634b93e1c2c30fbc3e3474192d3a0fb5ad8b87eac92bf0f490aa7a5da987bf1e204f29cf0eb44d019643cf9a5e48ecd095f6c8a16b0547e6f3b2ccd40d1906f2dd46b78899bc49cc917dbf238b775f8ec8a74d8f8a4aae9e3c2ef79593171ca21eb4c5a4f045b67bb444db3b116fb85eaa0f8f0bb346a578de719318d7fc60aa593becaaaedaf3ad733b9c47ac7c87bedeb225bc8293cd155f2d27e44853638a012e951021f681c052c48aef99285e2dcb118a0864ac75e232a41e6e6096a5afcb1f476bf632f162d7622f89841dac29e3b02475c61b406dfd88ff3dbd40a7ba0b807c2497fac2f375a6e2abe9a6e241dd109d8b434aad17144e32d8caebda0746f4cbc093b866f0b2055cdd267ea0f40bb55dcf58d52c8c1b6661b5f5e2bd3601de8ec656165de9110fe683e6ef58cef400ddb863254f2b8764045bdaefd1b4c0c06dac6b7f385b2719183697838a212a9595bd1eb57583ccb98330f64db812082cc0f9507d56b548d38a6bb4c5b59923e62e63d82030036ff966ebb496c0bc4c862123817b69860aa195a9cb405b95547500332bd02f48f58647d2b2559c32026f16b19af3c15bf115c267476decb440c4b3b1866f93c2d1f27e8c5c049b11de3a1a39e990fe9570a2a93ab5b8f9647d57a14584393defa9b0a38f3e1e5dca1499941319cd81c12dcab28a92bc02247e90518581d76e4dd1632f41c52d54c959e02cd397f3fb7d7d1066dd7ae18782a9115cf81bb4a55bdd6caa4a7d9c009e22b03cf1e0bebc18d2f64ea9bab409fda15d2c03be7b83a8424f8d0fe3f4f1c6e38c5d0470885421e3fec285eece09f3dbd6373ef67679a1948e401884b298c230d70581e3eb4437149c7ae89379f813dd0f0700304017d648ab8beadc7f661e8f12bed0a7421ca6e951c048255254cc198a340e1862bec4d329990d57960a3a42e1e19737474e2fd6a14b3b30e1b08b05ba26aefb58fedbc87b1fe682b0d5b410a7263c10454900612d742822929bef46215769759d58b99d22890cea3a591a6ce4f535ded69de71d38c395970f67574f525ec4039a5cbcc5b26ce70aad14bbbc1dc72adf65cd326f65b219fa92b35185cf955511ea5b73d6ad241b4073993682d42471ae9d5770ec26d80bc9d6f06c8debb3934d08056d5475470038484709558a85b0d8d7bd30f81eae118146bf16cc4901e5017dcb07a3ad5e3c6e75aeb2a8b3734eca9f7ee1279fac91bd6c7fdec57a28e0dbb62ce158a7d2363f9650a0f0e175c2006f0d100f4c3c22daa2a3330dc1910d383b9b78f8073b744824ad72d296f5b126c0f82bf387053b6593c99219e1d2d0a388973ce64e027cf4ab45a6a2467b729a2fc0b398d27051eaca63aa5e4d46b1aa27c0bbc7eebfc6e18499aaf4629facc725e73543d105ecd68101ba5f569556c8938864015bdbd88b5b19fe5d9daab65a2dec3fa8f55e82b5821460a1a027066b565ec41727df284ea9571f223a5535bfb230212ca1b2ba14382c2ba9bc84671eeac46a9de5424cc7d9d19c06db0791645d63884378dae95f0db979fc0e25ef6fbb59b5f9f6adac736709e35fe23a5fe489e6e381ed0f97028d3cea0d178405ba527f34bfde69cdddfb7083b2027607bcb24ab15c70f949bb3126da415b4750ab4aa565542f0f2763e195fb919e430f5980ff7057970087c59417f95d5bc8469f0e8cd65b4b265fa1d3fac963281a0d475085af07d1bdb7de208095a59b8f5e220865f639d517cd142d0f7bcb32635802bb7ddbc1c399805150e15dbe9d151db0e2f153743f8c06475754612e4fd796182c387529bf2c47bbbfcaa00cd2e1ebe8089f5c9efcdb71980d6a3800c2bf3df41d5619a456de9499c79d1b14cf9e7f23f3c0a01e8f8eb592a9a15ee75db2b633294717c61d38ed6802e91d6af5731df13f159c878a2e48d3a6aa5446533aa531ba9c1e1364b3c8a2fc2f2573f7286edc350ec04e5f3281b79ed596a255bf719c5bb59af0dfe7acd70defc1c41726d841900ca9f7812416dafcc3b49fd7c9a1bf8733fd02e14d0070d2ab80d007f6f0cdbaafb7f7928b7e9a3ae53c734be1cc37b797d2ae1b4c6a0cc4d2d13c3bf13edd2f5888e305c10f91f3ca7cd1448047818741ba76e06e50076f06314d15de18fc68a78b2e4d7d604e91e4244e343daa1950c1f2e1c33b490d3ba63f9737f615b7f10d3d5dfc09072cafb2912ead627a8bbea93a63563bcb6aa5434abf14e1cb7c430a1de6740c7aa8a7b6621712a71f452b67ef9ffbd83dbc465de1193f1990c5e92ebb5c57f0216f147ff57c06643ed2217e90ec36a9368ea966a12a19060c316ddb94241a4c91dc707ff9e1eb322fbf2b6dbcdc89274c3e28fdf986255fa42b2b9116d22d8a427d3626bddd53998868c3b5c1e585bac5674f7458a1f66eef3fad0fd1eb2421c9cde014dfc2b1f2cf6b64d74e9b9f0c5886a77a5cf20ebc43db8c7843d370bb8e5b08cace2698e67b339942c16347747c08bb60651ad0d0587b249aeb2fa5a016811aa9179d6adcf25ddba8b8d1119b8689e5d70f70ef3383bb1fc846543587e8ec90303a8bca5eeb569649a3798fda2e76c13eba98ac7e5c07d880d3e5a2cb7bf9f400a57619d4cc9a73c60fa114c8ca5bd81804f6aae947ede965226860034645d09ae6e0ebe6fcb5deae5bfc32dff0a584e36d2f7d2cedd9cce590310f97ee3c905f8d60b30e1215416316ff7c9827e07231618765b1a457ed72cbf40411ca6acddef75a01a2a3554674df0f5479d6990a8260a3271011e4e5ad3405e009613cd399c3415a4d06d2585402c05d0d833bc847090723a0ad0d2fe5470b25d7594f6bf05fbb1f85d338e1912096f8cbc445360fc937de1bdc3d36cb93584813f90ed1a34b3be3b59ee58cbcb717aa2d0041de3d0f99c8ca25f184b0a791b947f6f7bf0314282984a054b42744b6f3b9cdce2b6f6ac1764420d6b444d23c0bdba9868ea02924635bae22f27157f967ea932698076923690243392ff8c1bbb247a757cafb18a513a30eccc21b4f437947e6f7bea56954138d03b5623ce4954f2466d7fe84611edd0358bead95b949aa4a4fce09ca09c7f86cf8b7f581c95d34fa7e8383cc711601f502750f6114607d7a13f603d5c8e39a0a88dd5487de77f62244e70543e71f34e0928c721dff2c555ffa2c2759055b7aee3a72099f927a1544508efd7b219ee85e8f71702cb801d45458cd0ee46d841d9094327f3983d814c927c7d6e2cf099ee76fa0840e0d957cffc65504d85ff1f48a1c8b3ff631167739413e2c1b3e03bae3a9a618423e3bb1dab940b3d56b29825339e8c64618b9bf1d235e5774fd11ef0bc3fec759e879054da83c964bfd9f595472d7acb9a9464edd44b503808a988da85526fbc58ae209f1299526acb5c7fc266dc45dc17120c8f23bbe9aee751c2941c39b300593eb124d93e6df87f237bd41715b43edfefd90146ef797ff3b11447095e80eaaa218c0bbadae4b6e51734f3e340909afa111468c54dc75335b1c51bd5279e22523df97d3ad57d4b041ef14551c3a197716204ef293f9dd3b33a1f3707fed44f597c3fa2e3980160e421f9f5e907afde4bc8f3bbf92cc1a6773268c4274aeb19c8c4a8a13c89379c8e09952933748216902d27f7bd7cfc758983e9e9be73ac2aa6ff7aa2cd11e9a809bc0d0ab873e1e84978e9c9fe9616e8ef13eacf53e1dc27fb14fecf1f99dd2b5d24a9bfff6a96fc7d91815942e4d7a6b3ccb39d6efb46bbcfeb7c4eb987dcce9328b17090c267f9346037d014cd0758dd948b7c972bb18c2b6c3c472344ae39b2af6c47f4e41d8876cc5356f9b96da57355bc9457d9e442167f85e3e6391b13c2a32369b23680504cbf1c127b10d2367ff68c0c356ba886990ca14989cdeb04cceb1e01522257fabd21db2d213bfeb2085f440dba4ac500bbfbd6a39467e5b6d66fa5355d0f6c2dd2d8d9cf73a0b9c217782bbe6cde035784346d169071d3ceeb17002d5a65859292cd5b1efaa8cb0eb3298b48d68f2a33fc9fadcc04527bf710cb7612d18b6bd005e8ac453dbbfb3de45aaad27dc6013e2c25e0ed7872a5d74f73500c4aebe6903312136ac54212f8b2f3d285ebe9511d1bac4ca074391b16aff7d7424eecbd7a2531d7b618a3d9e626dc4989a762e27bd11d3b0e810fa45d393f50dd64f6ba35e22e4150c04815b047fd570539977cfe5761f35f265c0754f33306041571a36a72f29960459791fd1e3e46212af2e74eb45ebdbaec880da2e7bc40e0e8c541c0de6427102dfa1476b1885c0700d9ea14f0fee0475afb7eef1dc04599655b5ce02d6b328602d865c30ac1e3dc46b64ff81428a630f81d22e59b285e561499bc71 +MD = 240a49e623d6f44b27049a9b7d94b7e8f0a222b2ecfd8814e14c3377 + +Len = 29816 +Msg = 13cefad1eab057e7598e825f4af5dce24b8f7b023e027b33521599163215fdfe7c7758ad74be2f5efa9f7709b96361e2a28e772299bee80b6dd520260e5a9cd0fa1dfdf4f91a5b1a0aa0dba19db3844802ae4ef4222d7cad6d292ce913652d0d77091031e18d822372d9d9af5eabec1e553828fd4216e0203859e5e6a9fd57bdda84bae993df4c821b9296bc6414426c82742cc76142bc6cb8ad72a539e9c2e90bd423a679d8633eec133d4f16b52d3871aa83d9e87ab79ad36dfcae29f21799f14172effa406c5fcca3f4f1de58568c0a2254bb3d8479b073e0aa8ae3e0fed37615d04d7ede12eea58ce32923c3646f3523c8f6ca28abb97f4fa5c0cd7b1ea1819664476d7bfaf25e14347f4ebf00eadaf70711f630f5badf0214d8518a200afb0e576530dfcf73df840c7bc514d203e1e438942862febd7b41205ad6d7ab17cac3d02f2dd2377a102496a6f18a81c432338407ca886fc93b54f1cfc42868ced7fef82ecd1cda0dd93bf7873ae9b635b52c12f34368efe70782aebf8246ff390a06f6e97884623722135aa709f8185d53160be0fbcb271ec71580b07af917604b25f3e897d474fdd3f2e58cc4805044f23b96545a78be7663538e2c1308584983a117b490d2bb69d421c0c0d54905f27be1dcd9c8395df7c38501bab53d6cfe98c389d4cd47dc820de814cba21be070d75104f6add4acaacff200e3c85ef88774d372d0b4fa8250668e093395be89c5ecd337347112529670e4b42db434a7eafd19f931afb553dcc85dc68214f9a7f9a4ae9d197cbbf8c38ca14422e2871e311ddc477e253ef72d199b743f8996e215e62c5d2f3697453a0c72d94ab81f0864bb66833f7e5e174b43913af35b5be41f9993a0fe086de202d99f9b2c9fc30b89bffdd6fd21dd5b3f2c874125f2115222a72c8d0d58077623d970b150003dcfaa10ea683e78836a10bec4b05db680d723f73f4de48f2baaa6f62d443e4153fdce9875608dea18edc6df92b0240f6f192c7114070b16a22692171d7b7fccce3dfe3ee5e76fdf638b6a7937690065a7c044fdf2e40b533491ef24897f9a07753641ea84246ebf2ded0373fc027c20f1757483230c6ab0a894c604b977175c12919f84984011f33eba99b529a41da813e0c3ebeda6b394c8d61ea1f58c7f326bf520f56a62e0e15e9b352706766d65d5a8391d99da6b675a00ffe285e658f04a0bcd2342b364f25538ddb1dba1f3c00175de026ed21c9027b971afb0ac2d00757badf7685b248eea389c3bef4c371f5df1bb80b6b34d79f7aa7df0c00783c9b4ecc8592381a91ee74477ad8ba0c2ebb3c2d780b7a88789927a2a8dfb1ee4b3d1072732bc4d7908120378eff7c51b8dc9903aebbbd65128bfd2816faa1ad7269273d1687be81eb6331ea6e97be2ca6b6704eda7086833be485a887c1422e58ac1d8cee5a87a208e143c09845f1f58ef57c5f79ee684b5b3f3b9499d835f944724e0278f8b2a05fa7c06aaa6eaa54c80607c60b69f5360708998ccbb3df86fc58431e3506c21576132239038659c2e8549d131d97afcbb5bd19e17bc8b16fb6da8730a0f92879d2bff3cc323182c8768db6b71eebea74fdd9574348ab5e1c2a55a4fa5b4468360bfabf94c4d4b7bdd90def328ddb47ea25f9bc12b0b03804bd6606cbb26d03d2787fe0132a046b4bb651a105e8ea4a63e47ac2e0229bd1c1e698374544f78de7aeac0fd7d0350fda64f566b1ce8d54aabfe9063c3ca2adcc4c48b0c7816868ee150b894365db37e28b65cac69d591906fed0f0776d893e9c45140de30634174e521af6f6498b561c802f27a4e3d1ea0147bf1c2213a406aa6776a92831ef2b90dc66d360f9b9fcb0f9be17dd206c5a3220ffd3eced87988f39dd0d07a30e184e2a5ba903f4eb9e683eaf05efd19cec11f13fc20849a866b322d3b3f1c7f56feeb275e25fd994adaae55e9c5d75e812195eeb7134c68ae3aeb8e738771f4994fb0b4209e50649ccf1845925969bd26ec0b08f3bd2d2a3b1ea62840518177f19eb9b5c9a34197f5ec4723b5c3ba1f04490ac97bc62fc8733eec636a4555f1a8138f9021dbd71a9e59c55518abd26a6461199916d75a2a9fc344a7b80af44804d8b9aff0ef1ad5df3f1a4584b7ba888e5cc0e08b98b73906d4375cf34966664e12bf78fe8612b1ffc6cc59c092795fca618706a3b04ddbf29a4ceae3a9b431cdec2a551349c894481565fb96e217d96098f77326c824f9a93c0bb950d3e593cb8c80adf6e0436800556d92cc509ddd972a978fdc87457c74e3fc31026e01738e1a4ce870f28b1370ad6a862b831252b93fefc38c96b74a9bb7a8bbc02311b85fbf136d4927a97fe046e63e7b247e220cfe8875009c824d66df96bd549a1b4c86a25fa64929a4929747682484daea34d990e90ffe42af6b1d844ea1847a2a164bedb7fa379d8436dfd9799f0d4e5d70671d9af74f30458e07cd59cd196b43fef6c5a4d1dd2e5252fe24a017e027dfbe00cc2497bb0d4c9d6de33eabdb1770ecce54ad94018215cd3d4f65f4c30e7806eac50e550981cd8097ed85a19123b8c81cc25aa96c41d591e483509f7fab31306e31e09b0336ce1fcd14b719053a247a28373379e6149a853be7ea7edca51124d43823d06fd15a6257805b7afd02baeb3adac16c37a36d918aa4bafaa1a520cb64015e5b16fd76317c58f92c422384019ad38beb2695559d18e1487c9852670b66b519a6c0602c7486c519979c468aa5904b195c7c925b912ec71d6a8755edcd217bdd1834a28313bbee4423d213d3c0636af42801448655147ec02d3755bbfade7c30193c6c84f664fc0138ae3167385c57a3b87d50ded2122db92e70fbd778e5df9d119e663505c816d93ef6494ef7c33bae73b8616bee70fc91d4f9ef4b317ecda9682337a0293165539d730290e3e03d9ec0791d36927514cf869cd81f0bf16ede879387cd48e510f7bded0536e6fa86fa098a2c46a76a9dfbae1f5e59f085e9c3d4b600c24b2d404d062cf948e75a3d4ab5b137a31397be9eb34b2a03c78367e0b85448891b511ddee1f787cccd498b172cb7e656c044a03ffde8e42478330fbe9c34072a9e99ce31b41757cc820d98e7d564e06694b96b66f4be34c5eadd0ae4e61fe6abbe4d7ccee855104fedee8b451a7fcedb793d469b0094c0ed07c97fda00dd8c1662b44e3ee6775a5ef6368cb662d257be561a5967893433a4b63f97295036a37272176d081545df00852bc5c4162324161296cd51f76433f2df867a5840f2d0c8d5be00b4dc89443d82175bf69c3bdceb97facae2b2ed68e06ae74fef36d8bd1f75f130cba509341dd54079d45de22845cc8e77a022977c7540aa3e779cb1127f39f825d4d78e55a967ef45e7c1dfb02d9999fd15af2914ba47177177d94576f1091a0657d9e04fe81e6be7b631fc1baae66584c9c26ddbb568750d77555c927bcda1fbdc15c7cbe3e3fe88ca13ff12c59b383343c12976708c0e3dff78be0e286dd32eecf20b71a09fee50a9d0b13c85a15b320b162690f399282798aa3291fdd2f9c40ed873e829388466ddd1da42f2de16aaa9272ccf44790cf3c95382c304e25ae8cb2fc9d9869808f3ee7d42cb143bb0c3a55e03db6d1202ca1bdb744e448640c0aa60d3ebbda5c21e623bb080f4a073a48822725d764e51d415aad1d7c5a7f17433d15ac7d849f910c375ee0899f6a576dada42fd651343383f286009902bb62deeeb2514de6af7f09892c20d0b238f6021f03b62444b1e1f21beeb89acfcd7136416fe7bd8f202e76afaf5345311798be7cb25351add2bb044d2380221009c4d1cbbaba4cdc8631dc0144f2778a6aa1eb3d3c81df0b1b2142fce111af8214d049e40f536c5d462b9224a978e82cc6c420e70ecc3cdaffb726a183c793845315f730fa4dac9fe46e4180397107a6a051f7f0a58ceb9bf4df37e1a81c8e9569187228e8037df2e59c52ba815566768bedc8e09d5e7bdc9f2bff23aaaaf133bb5a3332750f6124ce185e29fda0851addfa2c3d52bb6dfb530fd4ee27dd5bfdce5dc2f41debe6740274bc651aecd4023b098a7d622e2296b50d51b79c4e3f521695a9d43f038e8f273405e26584d3db179e7c1758114a3d39970df674580bbf2884405974f0b9c4b0d8b3287a2314f3f81b6991812f354d655f62513c9551b378cc2efa4c3e08b313c56cada52217fb6112eb8299b28445aca8f72e7170a1cd8bbfee4d2145fbe8d49c6af8831c4d4fc7177a50ee55a7b484261504af946c6bd5e1d6b89092f3c487c0568fa07c356fae9b8e831b8320289039746a435b122cfbc4a0d316bf90d481d3b7d979cc50d98c1190af8dc58e0035557dd5e94f437f41fab513202643a77748f76c6b77302bf40c392cd18731da082c99bdedeb70e15cd68bff59619cabcc92adcf122753c55afde0817352bc247d1170b8ddba1ad1b0faadfe0efbfc5fe6334377fa372c3435691f53dfc2ad5e08966b2d3525b1eec2d993a5cd4ff34278bd40dd80313a0727d05e0a932156152f3e11a190d8d69726f5c57d20f811e1e8932e86409ffdac96c6251c2a2976b8757adcac5d2de94931d1cbea866ec8bcba5774f8a7fde792f6acfd0f01356fd66fdf54a416af6a9397e00f848a2e9831627cbcbb52b5a868ec174e69b4cfa1ed72cdf23f39d7eaf4bdb318c188b1f0fe75655e34ad71907cdb77a1a2b162cd7c22d93dc45321eafb17cd60282e83736267b3e1fb249c307d49509f50839942f0f493afd9ef37db053a918e3ec83d801bbdead07554a018b8ba348fe9b7dd92ea7c5fc0e65a644ba19aa1fb6c022ab768ec7cb249ba17b9dda2860bd4aaaa3dc70ec009804141ad5ebc61203658e57a0887ec0fded18d844a96e79ba7e879c4253056f23e205a80ab1471953438f85848f4ab31ab175c089e0bbb97ea0dd6a67385770356741966053735e2cc2ecdd2c8c75cc045181dd7267584b901674b553082b2c58fb8f8be0b99306194a6f069f684535423304d40a268d55784a14260fa9c9cb1306b82f91cbee3c9f43dea9e50903135cc1c6505605a100bfa28564a2057974eef0852b7b72ce264815026d0759f691db618ef760edde73ec888e181403834f7221bb27a69479ec9b28a3fb0c3f68d4467d25712fc48ad78763f9ea6e8a2e85260225ca1b1a38b720e589fafca29f07257c5467cb74ee53189b8c81b784c43e93f98abde1ed53af60b27b13df6ce45001c6e1813de3521028981086 +MD = df0a8b8742dfb5d8cac1ca00e0f6b510e5e41bf532c34abcdccf2c69 + +Len = 30608 +Msg = 91d949919cc69b900596409d2a87937858fc7456846a97e13c742281dd5578da057f4f964b8109642e2e41404cfca4f6d5aa02e13e26a4f93aade10de634ec4c4307f00aeab05fc1fb1a875657f6669e0f5ebf211cb86d1e50def8cf8c7c66ed34b95377e01944b054a13967b33d817aef60d29d84ea9958664e8f4f37f48dc6bedca16495856137210d7ff9c7999e925df764dddf82d1af6446cf1650650adecaba015a71bb5e614aa48296fdd265ec426c9d6a9649bc2c320edfab3d97843e41999ce0dc85e233b8af6ac5bcaf7d928407a4cb0f0703d6b8eee8966852a4ec09c29a7e3ea995b751755f0f6df98f8c0d10a288b4844db6df2e1260375e12f20c7d22bcfff020f4fe4088fa767842e0c3cfbe2aec8743d28d1584901482755830115c2387222bf2a8560d1040f43f98908c21381eda8d34abec67ae668775245fc8713a3e075dba350017d933352dbc5b8ef23ab443d2e422fbe2429536bb6080e889898d665f538f86cedcb702b5520c1e5ab9158bbae8d88a1ed50955ef137bbacb99da09d8c59c3059a135257f648a84813ca97aef4ab7e143ee29acb946388660f18eb671194646e0b0136432f9bf088e4bd8d71612a64878165f05bf009e94701a1236d256730f8d92bb88761a92f2aa6e0a6cda468c06e5d41326ac49972b229acd51a2840dd486ce9359f5ceeb89fc2ea7ffe0f05364b3b0abd826290b949efb26ce8aacfbddf3ec059e541db216ad121759d317e2aa0a3290e3d5a9e0180dc4877731d42572fd7478213e0fcfe1e4a3c24259c4212011e32a0f63d0fffd977e5712400773dbccef54a859ad2b32ca6711811afef80df14ae12475a7508b63b0fd685e4acd5f87e500fc4dfeac5187e86ae0c0cd4fbbd1f01ee9b634bb0c9ae2e34134a71b4856dce6e5c30a3b8542ae3625f0390e70da5b4727cb8129c6639d7065692545dc625e6d2a63dac118233fde19544b1d753415c6a65f968002e7670c9ba6cc3364d3f2fd95d47524505325c884940a641206a6012e1879aa084dcb1fac93a5ce27d121feecbfe34e76fae85e2e587fcc8e789462879e348d20be4e1161d7b7fc6f8371d8f8cb2d25d13f0e07de47b03b33b4694f789acf1392627a4b801b0ba682116cf481a15a93ab4b212a5e09a79a47dfac32cbb45023a560d633d106a7b5a9a49ab84fe8727f4a46a93174476cd21324e6724693c1a4a3e1ea321e41950f2c64828d29497ed0f7572c83e9a905c9dfa99e77b2e02980d20c3fb12d73dd9e5378acdcd86c8570faa6348884d67c69f3965ca9d642919e7b0a5c16c74585486608a00b25f88f469b5c48a80f77d9999614a9707c6200e6e502c9cab45f97f7ac3ee784d596a53a22a1f14b50332240114b0b346ae77e405a1d0f36bc681a926e4008adb3edcd34d69cb5d911b36148ac620c5d697a14942083b5c1a7091701f4368bf086a6111c01761fba189e9d98af81345341c3c8ca805b43d23ce9952c8649f9b4156879dae956b4562d9ddf1862d20a7eba69a4cac2cd42d344b19cfb6ca0d86029dc0c57d665fe161a582eb00d7a16479c15b07c2e03392b88083556ed65b35e8aa9d27912cb8460a6769248f7a4e014ae6ef3c90c22b042cd97662553bd0f150078d329e4afce9d98a013c86976f14eb91d7597a3552f80de053950e4d276ed53f1185093396536b97dba18ab18d05e85c93ed03cc23f4d82fbb6bfe9cc6f4e4abba8d46893d091d1b68e2105b305aada1b575a1f9167118021e45aa9d383a0af7f8b9fabe29718a8f297c9bf6f199c80bbc71f94eb3034a11ecb0a6e0d384b48e4ca97a451433205dadef92073939b3e509605e3f8211ead9b73b57ea519b7de936ca69a055b46b1156a9a71e8fb0ede82ccf653dfc2376c3fe54422c1ab4d383379b3d72967be754c4492fbf5da5f26fb72d92dc99be8a5b328a0a28a7873206dfaa5a1e3ef01172772cb03c3b6f5df609095badd3597229e44af462707925ce9f666415b7c775f4dfe2bd47a1a38d15c2c143f4417aea9a9425b56c0e013b54e75ddffbb95881767ef9cb5418b90c395503d0725c993037c298b197f8c5cf3457ff22228c39c051c4e05ed4093657eb303f859a9d4b0f8be0127d88a92d7de751d8df4cc8d1bf315224dc5a0b91fcb5f4e2d7cf7bf6b4f17d216db097aeb3d875696bbcf7b6da7fa735e85898526704137c4b939122ed231a5426a25cdffda2233f5c05915fae9724a1f752280e33500c9a65894566047b18192cd05117d7befba934b90e42b8325ae78dc9431bce44409b9a132126877426fee4bd3d1cce995f556a39f6f663bbca7510406211a43b701e6db3bceb02a8a763e2eb49254ecbdec2712ac3e14dbdf3d9233a1d6661cffb81650d7129f27319e6abcd2de7d4b0fa6efdee0da9e29357924b28dda0635c4362f462c679d38e0ef5b3e553cafd0322b945062ca6aee6762edc9f1b56456af841a06655412233f72f7fb65355241cf8300b05b96e2f11c00d6bff5ede64967a9c0d8a86266b1f52e273d2850ce678db71946f2c76dfcfd5cc7dec30cf6d595ad08031d1702aaab2bd44ac9158b0a15cdc95950e472d5b27da96c809afbc1e199d9d1eefe4cd60872e46c6e0cf2f20ed0f6339c755b45e26c62b2571d5dd6f2741d88409cadfdb50a41e840be69e621c58a1aff038f14352fdcf86e1f83dc7146bb713e7b8ee659fbd10966b259b0f6b66c57a115760a55d0fd86ed27d79b05179bd40d22555a9d4e7e1608702b1634aa8432a93378efe756afa3fdbec0da57f0a5f9d8196c21290a2e56508145e184aabaf23fe5fd8a96cad998c66aa6630fd8c127c5e93903a437cb12646c11d98dbdf6e18db46da4073363ae6fb6f1fcd4d8d7a8fc1926c8b6de3c936cb9f5c5f8eb2045b8273005e599342a20270a6e4ef7cfc2a63199370806691e91f15b6e6c3c2067ebc7ae75d605365703475780263d91beebb9fc1942b73afefa9baa9d92b9de8f4c1a50bc827d507c3d9d41fc04b205e4f23ab6360cf99779d13f4a181269430503aa7ca1930c6ae0f9b131a88f5f147be43c2f560cd568d93b65a3a79355351039ff9beeaeb76dcc5d0c8d4e704ba4cde845cf41ed52956462961d14bd839df9169f16697d883f889135beb44f7e9e2027dffebe557906636e59202639fd6409c11453dba886c95cbeb42da3d201ebbdc9912497ed51a41d873714a4afcb708563e6bc0bd7b9f3900c1241e2a4db71ecf5e3a9925ce255dcd3b76157c6f3abb8239bb8c3b12aa66ba2d6613b6b141af4d35ef5784a3402e67d616f07277ffce92abdaec9dee0c836a988f774d0b5cd1f8c89701061509485abbda67b7a764a5f9fd408e607e3423a48b16a567ac572b348ed8324463df1fe86546f7d66e17f63ab662de2d43cfdbca8d822a9124cf0f92e10947aa403039c35ad30d393c7823d76fd8585ecf2e007f08587353f533139677c0ddc21abb0a6e0505246aa303b3527207897f80dd262494001c1aae01cbb1ab95410653be263b1c63e9e53259293e7586edf9f96bd14db92f817fafe99c6704dd3de19be801cce965ba335ac6f9edd2bcf268a948866cd02d4fdd8b290a391c2f010e539721a5f48101df9d0ba9f32230334600f1ba04819fd3cec06e99ba4a0156c70b6a0a28d65c7d346965bde0dc872d1ca105e0a735ddb9cdd018cf4d26da9bc633cf2ff7f74e78ec5083aa397a185c5709d39eb7758d6e454ab62f642b314c665d450775ffdd8161e2d4036f736a2d7f9c1948d7b9257def80d51eb1df9bd531f85a25452880133f80d53de560f33d10e815736a892c450722e42198ac80e2a3957d0dc829eccadfbb15ce5dcb59e7956e76a2f26e0870369171ec9b2a76e155a52c25817c6a04bd0204491b0af4d987afab5c01c0406bf86cecb44bc1e45da2a7f600f3989e5d61f62f12bfb85a6f521c22030b286ab4b715d33cfd1b5fc4253e5934b0e6e04178f804dfae4c0135af44894c912efdd71d1cb3cb519f5f9157a8c4152c1fd63d3c9813f4894e7fa8d9a93f7d161c703f74e21d03cbb65a51b4a7d536e78be6bd5756dae5b3382c557bcab3391ca9487a69166d6aee08e681b68bfb2e45b3a84e43a4d847de819db8002992e5173e0d04642a23651aff6abdf7f5a44ff94f817c7c028a8f3db35a4d01364d2598432469f09ded86e5127d42d3557f30648808a47b0060208355d880f981405f0261351788c21a44ceda94dce32bda640a25b472cb2ef7a031e1aef0438b2b15f800a599b76738235ac027c8a1f9445f6c710b43e6decf82bbdf341789c45bdefbc9fc6ce6ddc5a6fb6bccb28a4e5b771e2273b448a0464ca3b70e6336cd511e5ff5a00da19651443325ea17268b7e6f619294308b040a626bf1947fd4f6b958c74c46f87241598f94871652e1412b9d0949d335088a6a6877277ca9eed0d312b40647c9c33f5ced9227c81254ffe18457c0b75e5ba414d377c11d8ddefc6cd098ec28de3f10b9e2be5075c1fc284eb9ff9fb708fed16817d046fda83fd9b516f84670c220361f136bc9b5ee415ab1a2432f68c15c92f2ba0321a3658be96a5a54ada5f2214ffad43cdbfef3bef7c8e1d50833141f89334e92f995624dbbeb1f309a3f0abcaebbc9a40fb77edf8fd2dd17a2bc7d91f4a82a02374a0affb1b5ea1e94b2585cd2f04833ed75ec3d938e08ad975b6a6e95dff0d36347ec1c7b692f611596877c6d36f46efdc0c823a35908e95e96770fbd391778e605721e796363baa55204a5ddde42a7a91eaf5c2fb2327d50f40ff00b422285680929802c333b9dbc8b4c639574a78077e5ee31a92839ac170aa1a9e089966b41d99eec0466fb5cd398eb303488b79c02cd113ea02963283930e8b7dd8de7ad0bed3ebcb26d47aa73015d962b98e72cb22ac4ed95346364000d218462bd9acd3eba856c86b494f9235b100ffb13bae50e8555c8f8e79ed2340608aa10a7243e52c80f9621eb57bb6d1caef81387a7478073605b5bb19a051da1ea8357c91892d0ac39a3f4602473a8bc86f9156330b6a06b511f3e00d98f556763cab891ec4d40cd90207eb17fb47ec1448d7144ebc4f6d3c47f0073d1a353dcf0caa39013d01bb2bf96315dcdf047b1442fa79b3cf4fc5327055379171391690e2db95223cdd9d1f47fbcd393a9ac03124a38e4b8c9195ff54c979f1e42a692384e6a46908903c1eb3761a16563043d3b8795afc3a3e650abbf5d445ba30bfefba726fbfeb412091067c055b79ef8d63c425e5af237dbebd6d8050753c729e5c4e27fc0a2b19cfde08b795f0ecff2547114e374d8d77267f3113f569b21991d206af5534113fd36f81ccd2bdf78793e9679d59bcc15427b9d156cc0a644c1db9acaf8223e5 +MD = 211b000f987ec6e8e41c9059cf6953dac379c5279933e24bb7ee887c + +Len = 31400 +Msg = 9ae6f0779fdb3d42616c46379bb5c5ef11bdb15b7ea1ca09cdee72a28b4ebeb89d67cdbe2e005858ec658bd6740d13fa0a7b79028e62aee2ab0ce7d252fcaa0867d329c7ba70d098385b1ad86364a872ff8794ee0e1303abff0cf96823cd720960f1ae982974cc8bad169a454f00acdf57aaab27e7fcf0e930b4516ee5073b43f08b023b655474b7b45db425222a46c77aac66b6ff659e26a6cd97eb82f3303d8067cdb85458f1a6b3fa1081c32a9eb4d0556ca2409634e9c91e73e8e1d9767f764fb815e0c86be014b355601a48dd2dc16d66f391d6dbbb01718b6cea0138913c086a5cf0eb09eb3d512bcb0fcc2bbbb5bbfbb2d96fbb23b68c8a7f85b29cfc385d8c956b0af451989c3cc98afdafe41408d4e602a7fba9503816299a36ca47d415c6c63b6d549a8b5b2d6273259233461c9897f3c7c4d5373dd77311d3ebfa77f7bff9475c504c8058a99eb28afb2db3bff0cd94163d30d3637764d2d2279d88cd2035771f10f1de5956862f74135cc3b98491cdde8f418d729b05c67ba5b9715d9083b3fdbd100d27dc21d32d0247dfd1fbea8665e190cb31ed5cd3158ed59970b8eae3407f32758ae47884fcef766dd1fee1a7f55ca6f6691574e2ea097a68cd4072ef2e7dde7e4916912b280272d77f347d18d4270a77e2bb52dc403f2f463ecf23bf10e09c902e1976b1fa65c283a346c6c14a6c44b4648600a760587c9b890d063c2dcff413ff962ffcba3deedb07dbc48ba150dd17b71e852d927be9cf77a4224ccf736f6f8534c2f6b0b57f45729c805c1ffd5c07a22ce9541dd0ff4ad0397fd83cf4940c889c398623f2fc2bab30011e0e9b49ecef5834064b8045755c7726c9bd79ec52d0759b935d1fedf47b414fb7b4512d2d64496f2a62b344b6e2031e059a2afeaa2468f107a462da08aa7473115a488f34caa8a2a8ab9082762c886f761b30527a4d1d42c941e34ccf0073741247a8f768e81cd3686e40891e00ac220388b3702b143b96c17ccbcbb145e65aa4c598ed31884e0c51f3ebe11427173e9328dae1263f6bf6d79c42dd1640742eae1a40faf770e5544d81b710c26972cb1044ce2cd2965468f3eb6f0c66bac6f7178fc9a522698ab44461cfa08e8d65d26124b7d996e39ff7fdaf7bdf097b84bdc96c5b771a3be5321cdc5919e25d97596e10bc70dcecf3a8dd318ede674b5588abf91df748ae9dd9be387e01259fb16b1f50057a0b7af9857bb9ce92e8f2e161a57e38ad128a5bae12bd65e2bf1c5a0d5c2bbb7f8a555895bf8e6682f537d14f9f42d421e196c6bb00b53743189c3b490deb0605c345b9e092fa7c37f4e3cd5b818e17dc1e9b870771661bad98e7fc261ad60d961d12c46fda4339374fbe7c8c33aa2c652f61459a4b193aa7a7c444ad6b35f9b90083204981b2c40c6c9087ea9ede39447eb0a97d7817bbb9adfcbbe4e84ff1f7d46276766d8f463db521957da872670271505bb7dea5c76b12570ad57a6e1ed602756dff8822e65390394f4e3aaddd2672080250670e86463e9dd98807d8a8e0f085aeebb8b2cdd5679f5d643dd8c438e8a24651fa981fd19996cf0378d6b69d0759e042e789224ba11c66c7973b43c03be4d1c17e8dbb948c0a9550b6b07094afbbac0dfced0e3ea6781280321e8347d29748a8dd3381187dc0d377a8aeff4d5171ba53df27b935de7b0b96f4c9ab541783560efed39ae4d581307e35188b505344b11c787f4ab8b1ecf611c783e470716fa1fcc9b42d81fd15546f47353b261ffc3a70af3ce94f87957efa929656224824d179262063755b44e851c54e38561b61fc586ca8c083c83c49583d4828f2056b8f8efd5d644a59d6942d96abaa68b13aa0db9709f4dbdcaaff33afe283680e0a834236b457875e92ff0aa494b8e44851cd0218a8b0e02ba74993d2ab8e0dccc9549db96d64b5d141d2f0d6518a53476c2cd4d7cd1a181efbcf818ded7268a772aaa76ed0b55b1cabb4e81429493d18546459bcc05a0d1b6d3804c8ee560208cb2f693e256f01a6984ef846661d2822d11e99b0c899478bc62c256bf86361559e89ea0fb3bd30d7d0482b544e2d9ecdab029d992eff4dd7ce55eb5f51c00ff8b16032cbc3c56e171a4986272aa22681a9b76c613bb3a6654d585e8a41979457cc5d4a589daf46ce40f913a541a349a694e60eee34dedd9f0be086d5120d76dcb92739a089a43d640801d9b7dd598da434368c2a64a777eccf936c280a4c3fed3f670789cfccdd413b09e04644ec7de45150edfb1237feb36319176c737c76f425c5bdfdb64eadcea1b83138bf839eccb3db394b85b5fa5e8d1b8f8793c4a45834e862e38752357101b7d37796467ac521807801064af1541641dd63b34d50813479fe228b02fe9324adcee9115e983865e7b305dd1e6dfdc63208e71a3f02d7ed1f9aa407848f9dd3432b7878f3808b45b7f23f5258f5c1649718fa12c143c226833c50460070f5d421f10b122cbb288a993b97ad211208ba171686e1fb99aaa94def0e8f9f2a05efee28892832d075fc3498f535a04a3a8e5b0972d0168ff73c24b8c629884434ee53d8dc022d47dc6231104133fe28bfa90af9a6273aaa11a8b0a1605de546e997f70aebe844a9c38537ab63ef6231ffd3cdee092e8e7460b49ab1c573dbb98eb483c69e229f7c942eef7243b1f5ef63d34cf1852d3b744d2a8af0dbb394248a0b9e12ddf7674bb623006cc9c1dee951732e09016b68323ed027678b64380f4565f1f890b1c49b912d14a2de6646a732791c3f66313e379c701a1dbed0ee022789237f9f96ddf68d13d01a68ea55b26faebd9a9ac7e50ad0d00a1a5a3ddf869841ddaff2efdbe3129fdede509332916edaba228675843340b9a06748f433220053c7917203e5eb8897e6f67faa06cc99c5badf1283443b56f2840b713d115fc788882c051c249457c48f68dc76f8ec573666da27384ca979455d0ebc5fa1c455a8c9899480c069e7ee823e4e4131780ff7661aabddc5051078d47910a40dd9127b31ae0878e0efa1dc6780bf51d9f82bce61a788bad6d88554905357527a2667c869a5474cacb0eb58e53416f017f41284ff8aa417a8a83fa13aa478b21234ba5918763b444d332e28a4643b6413f52ce1e9cae93c6200a62779755b0cfd8a74f4e727caa8eb00d3154d1715f5f682e1acc76f3d702d6522adf6cde8a863b0fe627ec2debfada040e788568eede82499af40828afd31611bfd58b407cd6b2fbe6b844e5ed2bc9adf66fc288d921062bcb0fd09b729957bf9dd4832a0c53d8e1ed6a2d432294076175a5295fb2e97c4b278a60fac3d823c24166e509bd60255856d7f5b420c60bd4f8a31a5be07a4d2e3cfe29951801f2a05707115e049e20d5bf6c4eb76c344f6f1bf4261bf656015b87c59b18e3c95cf02b2fa8a5766043d073a188cb69515a964c12dd0e692f3149749b45e4bb70bb384a6b0b5e974916df3012447eaccfb5e105899fa1cd58457e9fc9ba9703baa5cf4123ca07cbdb02586138f23faae1d9e5d4c2ee847753b67175eb598e50e9954b8bf4553f9878aee28370229ce84a4f0b36495a150bb41cb8737ab36927801233a7574d4491b474f413725604e95b7dd7a69762d20efbe0ba34f24885fc30a4fe0fb712d52c10ed139d99fd0632b7fec1a2478959e59d9b0d26dc9983535db62141be366fec007fa79e61981f38c24a5fb5a44e0b140bb417b5b426dfa189de43d9b728534625b5567253a7ce701cd9085d6821643ee8c4608df360f98b2775bc244c794dced32676c60abc828d2a236215fd9403ba97348e0c24e87f54c92510dde8a9addaab3baf15d136d9d47cc1e35bcf16580ba98ce6bcb31dcfb2d164d853163a021e107d55ce51b742da873d02bb6738dfc69246011c48716909f2ad89204f8ad8fda554016c06be4c23cbed5691507c096fd3f863a73fa3e9ee8f6799c21f4c90fdcc68488b6aac5434cd6b459a1540736c010c94ea2305a0c51a3b80b4efdfc89308228198f801f9720e3f561210369c4f8c0b0b517d175c222591d4854bb4fe51fb0b4301297fba8000c21eb5fbbef29ee76c4d79b8694a8a33f31b9fbd8c90bef79b0370994605d3479bf5e2125a04bea5b8b1df5f7c1a61c7e7bc70af973e4e804a5953a22579e0353572230e9841333978fedefcb03a4d43d83da4bc85356547a1bb26de7e753b7c2719f54aea369135158b04faa638a14a5d25b84ed744a790298f66c8b186496ed963d541c0636d0b26ccfde3ee74024deefb07e10dba9a1c5a6c9feb7f2bae9fd4d64fadcb460b3e155b0642c99ae4c0f624301d8925912eacc93ea137e3bf7191f7c0c96b5d104069bbda91f81bdd461b47bd5eda044149a93bcf946c3d00a6a93ed53f1126f0b4bc45d74bda65303fb6cbfc1f80d50f1fd81acf3f9c9626818311f9796d22410d65af78eae1059220512798ea1e167ef3a20cba0d399d75a4a817aa02dfdd75acfe5f5c09bc7b879a92f10048f2570587af882c77d3a1928280c67355d9c70325febbed02cd456500d4aeceb6be15372e48f37329eb40e1adb594c20ceb5d6e0aef6ba86083e1def59eb750bdc1bf886a16f53a7df10a0788bf092272953f3ace38d51acd80df49db69a132c8bdd47dbd8203fefe855b6895f5aa213167baedd2639eb084349c2a44ce02e151f2e28bbb22862d2608b3796801ee2ab3c37efbda180f064f2fb714a42442e8f4117836c57112317efbb0de716c4bcb9448e9e9279edc8868c2be8d8c04f7b62999e4037ee63ec883eec1fc448d59703d589a4a5d905db36badf0f95f0877d56cece47649fa424ebf52655753ed8db53982ee73ee752923e2421cecbf8769c3289ac803b945e3209bc7197412155ef6f358750a5cb5b536571f80dc000a441c07142d304f21880aa39d6cd7219d43d1f539cc721aea887724a6db4be3198d2c62f972906e45b7595175cdf4e4dde2c2d9a7335fbb8c2972e5686ab0bb2dab90d6ab3688a90ae7994fc0cb51ee6fa245fb416807c1030e9613e4ddaefacf25c5dcb9f7ad81e99f46d91ec38290bb18d7f468d92e9df7ae7d2a9ca2ab44769257efa624538b7a44ee97d074eb9e58ad053fbde518d4c29f84b400481a0aac57b379e04b3f28358f0d06862e0149c0d53a47813a7af80c48392ab03c9fdfe91c5515f8eab4da93c40eafc07d78357c27f3968347b96a2d3f27191cfe8116a526d95e707149251d9a7ffdefd194e3e32bcdc7147b48bdbdeacad9a71c8251792dac8db77d80aa5b58ed6b94c90bd7ae473533b563cd6536e19116ff04f802dd874b5e6e6defaca5a5b3833fd221833600a676f68fabf310aa164b854676cd3ada323ae5d0eadeb5078edf416b9a6902febe0b586d68e9e3bac6d1ca5f72f3198cfd9dbe3506a2e1d4bbda5a23cb0bad87c86b4b7b88ac188a2f544ece612702160a016818c78bb4b3e70eea6937ed9e32721150388fcc379ebc4d8311e5db8d0be40073eaa20bb62b7cd762ca65814d953787f722e2ccb96efa27f7a86 +MD = 428ea03a8a102533bab8e223331ac8773bc6b0833c779c9c1da5df16 + +Len = 32192 +Msg = 25cfff9b30665584f2e2d6627b2a9e6f647bc002fa038ac2a0ab0b136e34d3d51e85fa4e294364642da34210927cdc0f6da18fdba46d11d9549ffdd46f688baaaac39e45960505cd0cb5fa1ccf9def736d218b6b66d0ef2e90393de6ba005b769031f469bfd3c02759c1066f7ab55f012ca6bc9b8854aa271e21d5339722cba1997603a0ebd61edbda6e6cf0dbebb22371d62b545120cc2ec5fecca24ef764938d3ad4d36336a64f58653686396872400559df7c0b5dddaa4c782b1a26a6adb534276deb701ae1ec9a4d6c1bde5426bfb1d8e0fcfc3263037c38f98568572f6d55e3d8ce58aa551a6acf149610d6570a3bfb37bd6cc8e8a01de63eca5d347024ba161d6663108c428e9338de18168c886b69eba6a546f3ebf72a03d14a62fa4329694299db710ecacf40dfdd3e3d4da10bcb049eeed50d4bd1aa4f827a0c55306b83515106f8611cf57e127ac97323bde1c88b8f8e9dbc2874112ac534580755480e51752eca0f9ec8f7d89d03df9444b7098760cec58beba9059c82bf6e9a1987af4bed9912a0ba1050392e32aa2a9e533500f9f676fffa362eaea1647796e3f21046a18ff69ad794343d169ffb6d347df5fe424ed7a2bee336670a6b9b811d4fd94a795a9e875c1d49ed3b92fbe46cfff18a231d11fb9f7ac2d0a51c01e52e67b2605d4133eeb37337508652d217afa0d0ab84ad4b9206c17def5bbed2497e02418e358bdd58435ea76edf29a78e66273b6a4d44aef059820cce129b353675e831dee981c34c74a641502f5da2d2f75dd9cd662b629c01831a75b3f953337be02858616b0e52ae12acfd5c37ed6acc0a53dfb7aa8e1e678d4dea272154c8f8b3ce038591e5f2596b917d50ffadde4bf650a528085afff2674d37545b5f7d5429cde73e3a71b5dd7997d9f1fd0db7dee87929a28fefc609dbc36424ef9cdbf70aca0c72afda22a30467182979337ceca976720b8575fb16af57777e243469491e707b0a3947c211d4a842dfba47b5dd02ee884d33132780acb07a49434fafb32d643bef1ee01b90b00360fb0972ea18b889744ee1f2d1af9a77746f9414369bfe515407a6cfb78962207964aedba40796f03df8d73a810b41536ed75fac856a5addcf3c1b391e62b0a69504f1ac6a1163cbeb315c12bffc68ed6f69ec3f258909b0b375c349d685633ebcc2190ac59ee6c187e3b9a214ead9ec7f0d82f49c5ed373089ae8246958438ff786701f3c16e87b17f53713073d5af9a6ab6bf3745380ced692d0f55f4517424d383c1357e231a1a64f1c8d215db4bced2bed6534cfd7682647c3e23eb2a9fec7c1c60e9e6889da39d9b037e8b2afdc5b755172653aa1eaffa00b139009bf6c6c0756379a11b8ceda7b3d3ae6a51202f972df418efba6fb6a85efb1dcb1223344f334b6d2458526901d09bea39ca7d5ce08defb377cae446edeb6e4ab129afc576da7b4ce6dba8a64a75deaa60034fee22098c7e924816d1393a9d38494ee6fae5ef85917ef1da15c0181e6773a82243da353ce2a5be61d618d10a7ef9fe83350ac70cc343577148313bddb9eb059f0e87758378589a7fc61b23387749b4ef145415536ada58f8adec659f1a3cc800aea86ef2b7f168ab31aeb599c9cf0e9509603efbe0ba92fac77009c4f0ff5c1194bb65fd2a26b58ea9421cb0eee0681f94adc888dd5a81d2255aad01e6a92e2c513f1f25375eed848d83ad204f346de9369b366ca930a229380ad3b853a0dacb84b1eeed78008d476ed20b4a63116c7c7fc6fd29ece3606a801ef25ad09cde797fb259c854c21121cdbb9b91d32df053d09fa14310c969108df5ad8bd5e3a5b0d29ee448660a25ce1abef2b917e0a619c9b3b74aad8918b5b22d59bdec2bccfc0df602e0144f1786d64a850299bfda08db71a3a31b78fbb4bd347b538bcbb0d582465a11f81782e690ece720e13228db7677fadf033f8ea7ef89a6ff2d49fdb7e01e4e7089e9e487db248d7686ee0efc3b252160cd335e09c9cb5113592d002da7cc646e323ca8c5057fec75e329e8d58a17bbdb01fac654ec480e3287fb74a13a0f107d89966c48b05d88c18e9c6301f3ae3ea02a0c6413c7ae32cf422ba7ad1724e711187d9b6d5c4be6dbf1abfa0bf8770e52addeb3b0dc5c636c003425cbefcc5ceb3758b2bd79d98b17b4ef1a5e1900bf5515f841d69ae1147b5abb8b680453f64e9ebe4ea39974ea1730cc4072d5c9d649facf7adfa3baca8fba18251bf55a27dd9724cbda2bbc885d0dca08d4af30c783b4eaeb465767fa1b96d0af52435d85fab912b6aba10efa5b946ed01e15d427a4ecd0ff9556773791798b66956ecc75288d1e9ba2a9ea94857d3132999a225b1ffaf844670156e7a3ea9f077fe8259a098b9ee759a6ddfb7d20a7acd1bcb9f67777e74615e8859ea56281fe5c400748f02d1a263b1867a3b51748ab70fe097e2ddc14713c8c81d12869eaa7c4f6d0269efa16e4b18f0601afc97acae1be7f46c5a01642456dea03af792fb0448d1ea7486b2b8f777b37b9cfcfd4679eaeaa04b16c5355cafd1ccaad18c7945563414f9f08be92d75d8b10b792ec2e122f082c7389521837ca988a93b148c07229f683f54b46ab6ba65ecad9ab186ae6c02822ae9f99060646ebb805db39c115419ce90dbb6a25aef6513cc880dfca86f2788ba507aeabc10294f7860f0112c93ab2e32ac18f8e0bcdd0eae6bcd8a96d4677cc1969f985f27e22bd76c545420875c706ef162d612c8d7c59b6a769a4242ca4685e2f10011529f37e5a866cbb5d9347c8ccf1da3b6bc5a20ddad9293726259cf4f5df78b9a396a5bec3daedfb2313b3ad470d0c6953f6f07bb5da8ddefdc1bfd662e39a1c1834a7f3253b4f8e1367a938efc03a977fa1d627ca241e0815719b9147f3fab4fd9488b0010017f0891f86d019a3eb324946c1969a3e403ef7b59ec9f75920f0de26a679e9f1cdaf0eabdb276730a4c63b66414ca8919b103f1e57c503ab937c047bafc54268d7361e7d24835afeedcfd080e3be77b694f8361c5536ff63c8933af40306aceddb123333e19867573cbbb31717707a25a463872ff5744d0a46f2dc303ec27be93fbfd74090bb1ed1f8263da95ae732676feeacd9d7216f17750752b0b19d51f37bbb8533c08fd417d67bdaa83c9742e45df611aa68b2f814094d48e609dba1851581c77def7b49612e3934a42b150e24e5264002389d5a784a212940b621ed26a3af189f7bf1c17685fab61da4c4f6b19bdbd271b56518bcde4f7e6134e4b7409c9ff30904a7de90641ce985484bbf12e89323896d9eb56a2c14a2c804b8827b76d0e15af7f213774f2c497b740da9b161f8cdb9dfaea308ca1d50d5a401c13fb8ee5df5f464f273bdb55050b68f69258e592b736a1984012ec5e32aa14505f5d944d37a5874ee1e263498b59e355fe7c450e756cb63bafbc0bae4378b16c3465e70ec58b2a678ef1f167d0a89b3f060aa6c6bc44211ca412648de7cafeb8b99ceff0301818e256f0ef787d0077fed28b708435c8ca83489d60c3c6aae37b178914bb215437076068c44439695fd98b870a0e88ff9ab7c3e46717891f48ff75b5bf363f48701dd5e1d893adec3b175984de2c5cf177023c6fe252d831158afca6562a33fbac6edce1932d8090f301630c53a859a74aaadbc7373c5ae93265d3e6435fa475d1409ef25dda5b5e70dfd2a6d1492828fcf8ca73d09db84e88d824fdec9d3bbfc8dc439b9e61e65c98f9cddbc0d6717c73342efb133d9a69fd2a1471bbaca0e07a8af265be8bc89454967d318918dbac99a632e86ae4a6407aa5cdcc16537ae0ce92d3d62520aa0e8dff0a3292d70fbf5596fbc13c5987dee88f7795675b71c8ab3b0f783be833d1297d9b6644dab5bd8e4bb40ef165e3482d313955158d2e9ffbceced369aa0ce51256585407eb74af2e0e8358f1d0638833d33c9388af596da593376d1530dc522ed26a8444d0f49c1c279025a362aea4e0bda8d728899a3b91d273d0a9404c20673bf97e6152de8c40de040071e26da71e36a4aa5de59710a7d3a9848ba30458a3d72ccbc839da87827a076ec21a4796d48758928f89fbf4cfdd020f2521ab02ccf02cf2df4d8f96ca45c0f9ffd0e57beaf9ed19263e6ceff13aa6fbdd81e924c9cc217b1056a6c0008558288ecdee5d47d28bc78acc920af530bcd01d8d68c882b332efc21bc60e0c83f783d8d90b45d55a592323fb174cc3086d144c0bcdf5dfef87d45c659886d687c39345bbe43a7bdb80b55a93a0be430ae051d1c4c3b4c8c749b548fcc43347d9e7df3e3d2044219b2805955bd8665e7d3e0e1680f00c2582a017eda8f11a45c089f02925676bafe3779c3d1c644efaabaed48206fc05de69b384b331c745b986d24c6f3c63b80efb9801bb9eef7e00da592a7d2090a7dbc4ab83025ef0bb8c71e97d794aba32242bb1bc75a91ffc595366986f9454fb05dbaf9d42f81184a4caf60bae1714e2dabbeb56d5059cd2eb5efea6c02bef0842f5e858dbc7d5a9ebd8237c756a1ace19f26d5642790f08a04249ddd9ad0ad67b5b7e3f3693e13148e5965a380d7300c71a604424cf20a45f496ec420e24c6e995698d7b924e024a237772c5ec6c880cd79eba9e2cd76b00fb996e4fe925ed7822c5eaacd42788ae317ef7b4f5ec1541457370be63cba339adbe8c3dc84e7192025f93fdbb4516cf2cd26ce729d058683fe6bf597e39336e7f78deb2081903d598b911e494314d1b7a143ad314a3d1e01b5b0ec5d8caac0de55ace43451014a17a44dd080b769c21adb6ea0f32f102278c32e7aa0fda6d9673c6e347ebce14841ba56dce9d8f74603c2d1302112279ccf710c26c8ff31896af6fb65688ad840bf13d4caeb6d67655a9f91e421bc2993ee0773783d5af0d9cfc97aff5882903979f7ee23ed40602707bad9455cf5bf10bdcd8af968d68dd07efe1388b86dae3b56b0cc6d59178b95f25bcfda3a84911a230a7a30af3bb07760dcf08aef13dd4e4185973396bb90b604ca9b2b243346b90b086aa67b5000d45bad368c653cc37b1fbd77fa0cf41693234e66c080c887f55a0d83e135de26f258b7101782b008c9d9a1934c2389c53238315822b70cfbd7f962ec6b43adc9d64044a4b2ae365541577914b04344479d2cb998d832c74b66d04fcecc0f85928af99a1ae5519852e9818d21afd4eb41dce52f4f6a58c11eabc71b518aff2e29156d019b38d39ca6cb3f24e3d03e475ef54ddba46190c11dacc7109c2f7d6f357f82c34f349c0bf9ef7a87829be92043f24b04c0434491f073b674d843f0125fd022275d6014acf55b18ff25983e3e9bdac6f3ca9bdbf73e087e902c4cc0dd4e113474ed44a449401903d2f450a3680cb6a8f1ebeebdbcaf7105acc1d45499aa4aa0f32969b2a882312148184a81683e8dd8444bc651a8ecb83510bf62160e1d814eec3756a89264a95cabb90e4104db673e3411aa01829de5f4034d7f6d034dc026a63f93eccf8d8b9b41fe254905884dc20b662335146afe2cce93b1c141e20e0f6b6aa9e827a7dfc65410160332ef454c0f71b85324f90dc4baba837b918574f481df1f026257abc42a1769d555b85ac48a5bf1c47bf519a40dea7a01b9def8ba31c77da44747f97f0b3aa729348b9112c24b56f0e1042bb40f4a20bc +MD = 7adbb1af3f4d4c2f190050160430691ec26417d51119f2fa4abaaa28 + +Len = 32984 +Msg = 9797016f5393bd6efce03a0c2694c8a5ce896596eaa9e9a14369809387945d239a4aad1e2e48cac1936ab266d06db764f2fa7830a4e00fc800a28c51a531a3fe0afaa1351223a4ede0120c5bec302dcd56ec46d67b02b7abc7fd6ecdcafaa3e88db0c5fb26adb4ba8ae23031a36292a9a267b9cf979648133e840f4f1c78c6a9cb7301ba936d60f03ae206301c8d4dc07e74b8651f242ac8103e551ec63274086e4b3db880ec1156971977a28038c8da90192cde3b35c492e3332984eeb116cf1b40613f16b030b54a8f69cdf6ec6abf8360fb8315508039606c74c7bd7b12c47c5b55957c4323d5fa4cc5fba7309b36fd510e9cd2fdc5842ef01c305a1ad2b039a30102db2d547e50597472ba8cc309a6f34d719dc4fc3cf5c70b07ed16bc5afa214ed05bf42978f3bd5d7a58884afe284ea0499c2e8b295ffa2794a0f53a8c66db224523220c8a8d80675da9ad99de286af06ef7c2db1312905a1e9941b30c25db67ab5c3e647ec3ab7c61d482167051502326d70854c2b6918aef00818fa3e02903482dd1991a3f4483d002902a7e480723ba64895efef406a14dfe3e35193fcbe065bf621327a95663f05a5d3dceb897d672c5cc628e74f68681bbff0f36e9cbe4493a79396ca8e6060a0573b82a47092695235ac63bdd6921d35e4c84c28730f93ec59f75b3e5fe53652a5a01589d64fa6da5b9f4cdd7675a8a0fadfc84c003068a885a2ec208a5324bf298822063b039407473520c0cf919f0f8abdf453d4bf276ac35cd62b8e48b0285b7a24c41f5cd57b7104abf2126464b3ecd96cda510a74a59b5b85b9dc246d30a3fc8a2de3c9dfa971643b0c1f7c9e40c9c87e4a15b0c4eb664587560474c06a9b65eece38c91703c0fa5a592728a03889f1b52d93309caecc91578a97b83e38ca6cbf0f7ee9103cd82d7673ca172f0da5ebadef4a08605226c582b1f67d4b2d8967777c36985f972f843be688c67f22b61cd529baa6b4881d687576b1227bab80fca48ef05559b55f85071be3a5252a331ba74755aa0db318e0cc43584654452982c2d22caea319b0a664ae5b31c596955eb0d2bb70e06591c4d3a24c67498ceb905ec04c12a036fb6ed0f86ffab4ca655c6e464c99b112209b481e0df3efe55fabd4e3ef1fe58f7854d894827e97681bab5c3c9993043b3dca76012d7aabe0fe4bc1b78634e7a5bfeef80d432bd1e230a1f70012eb6e5351d90a162b79f1f23fe6a1b591d03afc4aa39bcd1280e8bb3d06cb4b591133fcf55d60a7786076ab9d030158a2903405a0f9404e811c6065a9103578dc83199aa0be164fa4cc9e8fbe374d3b38f387544b76921c1f6ccd740d74e2130ddf63bedc719769211cdde0fbe9f1b7b558995ab2a1edc03de08468c29b4da47d74c6cc111e60ae8defb971dea1ab68a85ddeab6ee1dfb56d2629b67109d4979bf1a764e72b0e6a3ba3b5a4eed4c6c89261eba8e8dcc4664d9c21df81371376f9c489fbb71dfd36cae756ec9519c042041334e5a8f9587d2fb101568ba996cd176bd303197db99ebc1911cb79d7448f6dd04ee437adf844b4034cbde8d7bb046566370d76a0c00c7fb77ac405a3bfeb40279e171d8110675b11687831580cb764321a9d674dbd0a9640f668b0f58ef01b87a710b3095d5f8559f917ed910840a45df21553daed038054291c14435e38608efe4390bd2b97d35b530f86194a4aa6485227d4beec91de5f677098239a2ebf9c08325f0307aac5741ae193672f4fda9fcf275280484ff0c145e8c4fccf3d794d596f46717df2cc52c5108df1439ac1b2ad9665c56c68783858f7236569ff2e01665d1f8efb2a6875c62eee4e03e5ec2f821786d4e5a5d512f52e2bc3f6fe5e56c37e22c20b9c1a3bb28f2ce40cabca74e10d2e55307287efcef046bf02858abbd564f8a12bd262330ed3d249ba46ed115f09d4ccc949013d3ad01cacf95f23bf308419b2e857c0ea2f7f66e59951b483307002823ca3f179bd50161457d5c9cf496e0e5dadb6c6dfb904635e1656b15929e2403bf71da923eaf2bb9bba73ed6aa4853f27f859e4722fe55ff9ddc083f18fc316408510c8da383a85997dc3ef2fb65c34a864cb9a4ff894a57f4c197ceaf6b4ed466317a0eb299a0c942e407f7d137577355f8668d7a7b4ec24edec3cb3e31a3da41dacf2053383a9225873fed130438f756514c087b1a88ca13f9313dad9759fe0115b1c86eaa9e3ba78d8fdca9158d5ef01e1420eab021f6acdb8c2ce4e598c80ea8c910eb35f54c2fbd9ecd7ab27f2e8a2965daaf8340ce7f4c7aa1ca6387c1d15bbeffb222674e27e015c7702236f18e38e840b2db0edbf514a3a249594f70b0f8389dacb91bc8f6be9bd372afd92e63144459dc02b3a477fab13a480e175d1445e1f3bf413a42041fd9f8699f906e7185222d133f56b26bc7496eb0cb0811660c5e08d404eb44b9cb763e3b3b853820532ac540d91f8b3a43154867d84a130c135ae5d44857577d891badd1cbdd14d84503284c1937b94d36bdcf567d04eb70237b90a556a502b823704e1397c38a0124565e1d47c6c40b68e90b65025f22f80369133176feced25f1c28e9e65d2303b8ca709dabf332dba140057dae823f0e7dcd765eef8a423306c8433c02d36646c90865b28ce78d27a86ac484ca95ca19574fbf160b70e643e01ba8f2314edc331fb7454634ca5c56461050649ec24c815a96f84010d9426bb4be5ef5bcf60b3081801940e9c328d043dab203722f4cad4e4b28c447ecdf114c586d2bebf27da6b90be888f4fa78fc676ff14b8e045207fb15588af8d2449f6e92de7e056bbafe8dffba069d98d44479781522396ae6f6289d8f796bb2f97be314b8d55488489ec60597a22bc5c40f439c2772bd8991e29f8bd57be7b5870f728503171e72b1f02cc48844e8a8d1c68b842e226088da3326863277b60375c1e58ec82eac507d5a86e594d41a6a82cf1ad7321a6b8f4a528636af561ec34bfb03d60e01464b32469e0fc43a0a326093b83e3c4226c867a5874453fe681e92249306dd78338b5a1b3aeb1f5e0029f27a2c615282d859bc95f0582758db3bd1a35ec53d7bbd377c412320ad284377c0ed40e77fc2ca6ace8b8b19314cc14390e22cbc37f22a772120215776811d435252ba79c8ea452427ed1e307bc3605d5748c492d2c5c375d020fb38834fd4b5311263be37e28fae4e2472440da302b2af3df0f017ddd05611a97b6adb7cb1f7e496035fd392f031cb994ffeedd6ed691f29767e0c2099456c23679686eefc2ef3456203a4e2b2d527b37c06254269ab30751fe3bb7765686af688638d8ffd85e7864753b3bb1cc1e9d9c303bdd1c0a06887b3c82cca7ee7928aa67af745fc2246c37cf60703751e9975ea9ebb6a386f52c8fad466022aeb6d478982ccfa402d9b63c795a8a40613bfeeba7e29f41b4173a0bcb07105b29c8196f824149512cf6bcef1d89f8417c9e4acfb4b0e59af3d5578c00355bd5e2159ddbc08d8feba2f406bc266f38def688f1775af73803d8c7fb6cf761a1175a37a859dd5201d8077a1a401e8aca5d8174997ef505f510c5579c4b1b1c9e841496ef76334f2daabcc17e07805d3b618fe999433d6dab466c1cc082e5b6a2c083cbc9ad6cc581d85582988ed666fa7f846077607eaed9191f8ffec0d1c03c413a3ecd5be4659ce54435f0229b38860c0171ba534349ed0d6219ad6189e9e98aaa78612e249fdd561b541b7f49327c9b8985e89825bf7597d64253015864290147013b80b7e4d1af4d5580f15ae52ca28f2578ab8080014ceea2961cd7ff8949b251b2f018c508555cb2b7356ad144b574c8f11a0e2c0ea11db2ed1082fc78c85ee24de8c1d0fffcbc042497d3872348ecf8c8400923fc18d5fbae88e3eb7601bf4b82f74d6906e9fdc26fa53f6766d15a3d84da1bf85838b9c570e2655d0f8a55f5e898061ddbc1a465eefa09027de34effbd24b129b1653bd8cab9a1c1b3c6b579f547a66fecf8127728f2cad8d7033db7b7dc53288642de8e127b03a9f15b40301f9288cf9911fa6eb41bef6b1095991e2b5d9c954536146dfea31586469ca8b0ede527cd8e83bec506f20139a92ef36b7e14d7c08cd36fe0d5ce41d7322f3184e6cc2dea3be1c20298018ab50f43df5836beaf5aab9f538f4e69332d32678d2480b3f5960fa0b6bffdc6f66dc158bf4cdba78dc45fee71e1aee043e8c5fa1e084249095198450f558ebedee45df215b1d36bfd8de8651d509de00eaa7b3b56a8a1d7e3bd54433e5bf1459e893394653fb4786927f387e88491c4fde2b0cfe9ae360d1f39d22fc63b9c27cffcf0a4404f05597b22ffcb55d6012b9c12051c296165351647806f299d05a1fd9003c619583c8b8dff7ba3d7cd826063b8f6a4a86ab60c5376ed85ead8b45081e2eb6e62e3d08b2c1dd5a5f0e39c2fdf67f3ede932aeef713878088c772eb007761601bf9a57d4d01ecc5633b094d6897f8b7c5e51c64ada1cce6b8100eb4ce8ca222471b4390504729e1912ad22f0dc902bc49a3092cb08944f236afe6093c04f8e4b3bf9fa7853a9e9730041bcfb432a636b0f577adc872f78d49cd835010876c8ea80b422cb28352d08af06d97277aeb0b4304f04fbc04ee9d3b926bf313bf05086c27b385a0ca4d72e5174fee2d4ada244af8fb7a56e8300b522528580d51cb3a473c7a1c17b698668aa1493c8d4a79690df921965cc6c5c0d7af42e9c6e8c60d83722057dfef3a95c1b5e3ea1021d2c2d32de80b9745b6a311573f0c052aff6767f02ca0bf1e3be6d27ba65e7e77ed18e6bfdb42cf0e0a9b4a46a92b94bf7d323adf265e80eba440041c19019ff6d0518cd57fa1ccc9c992c8a307ad39504854456696f8eafd7c8da0c0c53b3a4485570e985e91551dfc6fd597e2fabd8569b7d0ae05d8c5fdcbb4ee8e307519091410b42fff7b34b2aa1ab74ac17ae705e74122dffb65d992999d36afe41502ee8366c5c2eac52f31db7ab6e32c958179cadc8520fe07ee65ef30c04b6985be9adc408b7ba8d90f4297791c8babb351881b6f3f999826cb1dd455d389452b15b727854c80c01d9b8ce7fe2f69c73c21dbe1e19973502a396351f4b9910271ceea6a1f51f9bafb9db8d2f239a60798b719241cdbd6ae7c00df6df5b88c27beb3ddaff5e20f1fdadb6d613b8069f42fdbebec074de93b82e838304019a23d798a38fdef46e975211f549bc24ddb146957f9428a37d57ea5b917a2bd24facb0c1ca25df5c7b1473a2f15886fe723f2aff2ea2d8de0c1004d3a23cc5520bd59de31c4d5efab8c1a8cd357302b986b13677367b6f891d647e33405b5ee57127057914670c53ba4787fd5c29cdca6d801fba317e4b3923cddcd6f6465710f2297df03cf3360bf21e87bfcffd36b5a9443d14aa3bfa72b1a4a75b3e9e5c7911456de500728a67f2bf3e80fb6ddc1fcc7615330b24fbaa4981441c83c3cd6251135bc40985680c2e81f2ed78ec3c4d498e3e71ced9dd544e0c59b750472881241bde19b27c5d6d283f7b51c308c5e293052f7d7fbb0e15417e4ea83e990c4a2cb75b6295f7e91f52200e6a544407645b736ea2a8690c41c68fa96bb959d711bd8e5a1b2e5889774eec4273c71e8f46e541528da334668e4f98e07e2ada179c68f960bfd64ebd2970ecae1a75f8abfed2f7919b2acd9b3f4f228a4c3dca5c3eb190f5dd382b029a5aa9a7dafb731c10a71e9257999518f937c51d725c8af37d29dd8fdfce7de83e8ecbd611c21e2e10c42eeb4f6a1b7e30bbf8f08cf19cabdc2447a55403c7dcaa6fabaf7b644a707 +MD = 86f80b4254a9533e5feb582134fb0f9b004cefca086d9f1c46c9bc63 + +Len = 33776 +Msg = 9700377486a244ab05f90849a7da4c0812e583970473f53494c91c7dbb924e83128c9d21dd81fc8c4979a32af22eb4a8a8c01e4773aac176d4f5d4a64eab845a258fde7d660beff9276a2a8510470abe1b45f87a97016e5973455d9db97fcc3b5971c2312829671b283466010a0f9574f1ded8d979604304f8237e0904f46e4e359a11e52bc4aa19d33f1f47e76c9ff0b4f2870b20b087a0ebf6019235f4b1bd4172934078c2011cb1f31cffaf486e5aebe8ceb994d78354d525ace15666dfad056210eb160db44c48b927d06b8a4bdb1f2a738bdebf7f493d1a489e6e313e480ad04f8e0d8b0bd023f70662221a7e9bd71f3e28054ec2a6ab3c9c71863f17b6d72519d066264ed1c716825edce04fc19b2ff939116e9694a7f37200a577b11ff4ca365928c4c476be7f636ca1c30675f3c26a650b06413bbaa790f6d3c156aaea256ed25b4fb6e88f9971337aaeeae168405b55fafe0cc26bc0bff918054c7f40a089e308ae6c4ec2cb745c6e86442a811292b1e63e3f5243a6c7b17d2bdcc77ea24e3336c92ed1df7f338e86345c7bc79ed720d8ad2212c9c270c8091c4eaa2d92866bed8844996f1c7772c9a07afac14df44ad635fd2b857a82e3c5beea4fd4daf93235d3f5cdfa0a08b03fb2e6cff787afd8ebbd17c4ff37c4adb7faf8dffbe16f3117928b9606b0aeeff053e723f1b5d2721c2eb906c062ffcbe9b9bf812a0fb0109aad4c1b1d7831d7e569c71e383d23bf736e2b194f61fbe863e1885eeacc8376c70c8185c6c9581125ddcce753896b68f766b524349e80aa2b5b9b9dc280b20ba49871fb8a0bec45b8983fa7caff7114b0fe9f4ff87f56b94b1040683b9303783c3766a6efa7b61aa78168852609ff6ca71f30c4226e44becbe7bfe4db6e3f6594d2a6ad7f037b39f97f8eaaed0edb18e3afb1a83ad21461b1c75f3b2d772e79b6527a39c288064ab67cfa3daa76cebf6c976a26c8138c49079a6995b617975da99d2a723f9e1ef4e65ff567e2a8a0094bc0a3635599751fd547251900b643b9759dfe7f7eae8adf9210c5501f0e19a08711a48a68cb968a21b6dbf092bdfb3423383e89071e13b4c276b21fe80f01292871b4c18a13b933f5cfd341f4928576b95831b76358811b7c7b06fdc6131f4f37ca1d3042d8a4c1587a5435af9fa92842e4203219c29cbbca06071140823cb7bb032501188320dd539fa8f44a4b31f2c3c45321b1c62b3db300ff84dec5200cbc041559947af52fec2615a54dfde37b46e012adb3cbf848404f347d284293f443b535633f26eb5e2df7e471401f896cd220a5fea839c98577dcef25a7625d1756fecc44a0efca131efa5d7fac18e96c706c533b1877679c628f77a3e28d451f00c72427403e59f5c618c7f81950cc2427ac668d89ef9a3409501620612c15b146f88332a57961ad2d376c030d2ff93bffc8241b850829f5720812c4ada593783279328d590aaae25b4092c9121d3a5a00a8d60e932ade89a79db4b64d628819cb327961e457fc3d591c8271af8255293334c38d3cbd7f95b0f9441fc9c9bb3f190b9fd6ccca1f662eb184246dc6134f9f5535c10629d5c493020a26aa44f69025edee139bc9da04e2e9df0ad2513c754cf172d17bd7a8bb5aa24df4773affb4f6beac41d8bef7bf7eabdd4a688b984243f1c3e6232dc0250dc057b0b8139f54946822870c103c4108dec40db7ddee5f8b3e70288594e4a8b2446e83f6369e1808d1980ebe27722f8b6cdd7a46ad08732cbec1be2975deec5315db95b70dc4a759e355fd766b61340c3c70ba9d64ac272f5bfed19736749af71de60d86ffd9aa8f84a37dbd44d0f69536c5f4446ba3239bfc6e8858416f5aa743d614e874a4c8b39ec8b6191a881d2d422351c428b50e78895a0cf3fc96d36a6ff5d167d4eeaacc180dcf15555252dd48d4f9a305a991cfe90a84f0d1b3ae4889896d8a887ff7e2dabaf1365df43dac301e136c694953a706c619d8278c92497adb0fd9f61f58fecc1743069a3685a2e24ac7a4bc5bfd08c7d6f33165eb28762833e0dd87967526d66cee0c75e2d2c7479f3fd565a836fa14813986f59618d67cd9081da3abf565e00019d054bece244567a086cef8a786d511145c3e5509715e14ae22b32881c0d21ceddba0941fc0c5e815405e13f7b3f2ccab3da8f2a450b72dfa721dd3c041940892b4c22a6da3b06cc38a7dc0cf8a54fb27b09b33907a6d6c15974b745bef0e0c2fe3204861d6ec39d5ec93c9d711e1e5af3e7fe275f76a192719a3d5f9d22970ecf124b8a260639771ee08f4b65282d46c6dbcc5fdd0947c577e8fbd43f3cb7bf2653541d949fbd0c019450a1555200e85c8baa5ce0cd5ddce5076f3e059dd7669c7baaaae9a9e2be9f4b0d29b20a1dc23d4e24990b31483b416c040790c48a979a01dbcc85a33ef1408b216f1bdef866e1b9a7becce39b73059d46cb615f25c4876c53fd091a2656bdbb49cbe34f0548d244b0189642bc16aa01c3f3e7bc5d701d41afb6d47d3d513f71c2dab8b8e8ea9775ea4117dd4e98b73ff81ba46a861ca3f84b74885ad8637e4539160ccaf7be99d392c29211b77bb5ae5f9d17f8244cb416b3d09521ac2fd28c29084ff3d64761d46617b59e8b221de36702c2d3dc62e61375357b702cf8d4dd0f2bf2a1f91777fec0baf2c23e3e6865bae7358c030182850c2dabb4bf610dbe47ebb573d4a154c92f16da3b55231dbba7b4d08f3cab31c1f513b66de7fae5868fd1d8d7fd7780ba2dc5cc584472b64bc9f6246bedb27c70aca22c0a3b28e4ec33890d5cd7fc7448394249a790afca9c9e15b1909ad9cb17af336d282d7d9445df4ba360f8c2b7f9de16e2a7ce2cb324a0ae08abc863960d89620a36435b6c39efc43b82d44cb45588be27e7619c088a5e298a0bfaf265e8a79883b2f154e52ee17d4630ff0d01d1c59279d4df5053244312c63fa708c33fa6514a3cdbfc979b50c15409ed761905114e68febbfbfb88dbf43db561093658e216fe2247b4ec05ba4ad56c043a7255f84c65d36be19a3ea548611b9d9627eb0773f001e9105b048a745ad5e7ac964ae71700e183c3979c2b79d0c0d112206c72d2d06a24817d0e4dd844e61c5f0d5a6a38baa787f47c57db12fd43801fa833b0ce0fb97eaaca8980d1340af6c4401b0e1c03a3dd06c0c820ae47224f1137f73dc01e7e7bdebc1ca01998b32b7ec6f32f5b7c45177cfd83b8a66edb7289481d96537d3790afda2e47fbf38d0ee11a796a517539bbc9ab00ff85a4ddbf0a612d46e2bc635180ad34c502d4e7358da3242ba88ec03e7f21d661e6b9b778f71b9ccc184c8033139dd6c3c8ad5023e7097a0fcb499713f01a6a9c23fde724e1cfe2924ebe1cb9bb247aa0a7ed665e8fa5e16324061cd0defd33ead7e1eb675d0695460081a759f9e997084b357849ea1100e26d74dff99e42c8ea7d1632a4cb483b33d827ae985255c2570ce6347a88d34ef9e1f63f02b073a0178e0b6b61bf1d3af82020910956e1730977aff964de5522163c0ad860b808400e7521e4229aee1b1f92fd0d017a252fbc15d3559d7d2f20c3d6333aa817892f1bdcfa4b6bf14361f68b2d61252e896edb51f0c788c7b9d18f3b0fc45d417ed3dc2014ffa254b5962983224bf8f69696e3d698ddbb509daad4f4e103d4d841c4dbe8d27f7a37ad2e35158c0bd164c56e61fe3be6a99a3323317e6777c34e8a788791e349381c92a095accb4f62fbae2bd2434a90e82722c12141f39e8d16a1755ba5a7fb70661e83b7d35085022db975c140456adb69d50b20ea25f6b6b33f31e4be90f4c7b6a94e3803bc2b536d6fc29b7fdcb307e4d267bcd16f1ec4b6ac34af274ec38280bb7682c87ec0cb4d4998dd5c5128022aa37d61824f552ba38104178a31f65556dd83249c18d3de4fcf7f135043383eadb0a29b8747587fec5606aa51dafb94ab87fa99f91ae2f0e779dbba06334231e0927dd76ad78725f383e2f408ba41e4e133435f59d56cc7a6c1355de891f47055b175b187707fb27b92ff71394077baba6803e15908dfb7004e225b720fbd7e8fa610a667c290a9c72bd2be4e1dfb7a79aea2cc5105ba437679195f3cdd1ba0f0d8d512a61e68708886f317c1934bc8b17fb67cec5c9af18bca80b593aa8dac2bd249a2ad1465ab126cd72a3e50e719f443957f859de055b2bb0f1b20f881e4932ad4c2f72526ce072605620ed76be2a4a2e640a71a38c48de30aec6f37a6eeb93b0ce01ec11a3dc94af46bdd8738b765162f7ceb81e2d26fab0aa5d8f84b2f208b58a68e88ce8efb543a8404f0ec0c9805c760ad359d13faab84d3f8bb1d2a4bb45e72c0ec9245ffda2e572f94e466cffa44b876d5c5ed914d1ff338e06b74ad1e74d1405d23d759356661b7f3b03a7f7c2dc0d2c2dbe3d60822803408d472b752424ea76af1d79a0e7920388dde0c1903e9364b8d6d7b3b75430754b4d6b91cd83d5740866aab34bdbd0f1bd3dc504f1a1d753ba5f938241ce7f52544e0cc2018cc67b6401ce6abdbc8aafc5629bb643730fa3daced8f425787d61069910073ac760c631876fe81d1127034a544820ad3aa51cbf2d904f8cda936c063561a8a0bd0b1f1801777394630fb6f11cb68a588000861283a2dc9d7d2739ff2ae5ed5af5304cc176cd544a39a99064c1cb3b6bcc88a97ad9f6e381e8a3929781861e91f73516d3ee59d3661b5f584b4b717d0fa7a54da03674ac5fa36d3d76412a826c4c8445f7720337119198d84dc38f966c98bf392ba2047e6037ef024572bb62147b83a1d408b3ca7224bdd613300dcfa9273e36c4268ea3ac2b8fabac1c2006b00c9cf113bb51d2b25b341b459ad270efdc8a0c13c8fa616a07b7fe524841b6698836ff5b90c598f8bf666f8a09c8c165400b83bf923001c254cec5e0fe06ba6776b8915591f7646dd7bb998a86d60a34da2a62718c18cadd983cc6fd445759d15e8c70a8c5d07e382b9c63ee18e49283324d73d0bd9b06e35e68ca52241cddcfc81964fd34362d83436f935ec8dba27bd1de7c852d9ffbfc2bbc9887a53d8c8b3dc735fce712ba73a89df2819da182443e434637e40df34e899ffa43cfa2af2a44feaa4ce54d6d32e18f48009f1f7a0501e6998febce3404ff79b62eab348dd766268c9636cd8ee876ac5d82d63dd2e6a32d3d3549c8064416b395f140d970b82aa7a381e37c65bcef5bf8b04be4d110ab82f9d006e5b33654b35f34977a9ef518eab7b6f3413ad7d506e33205fac0aba14c96082b0c820444e2dc9eb60060b7b85590dc6e035461b014e4af0c68e7de0ef2dd87be25bad36ba8d3d8a751fe269351f59c5dacfc8106edc4d069178ed279de93f2ca17a4ce536e0e8a7257c0693047b09ec7237a5f61f94a3c23eefdaf6a7783f454cc881a839a535b1df8eea9179d8789b4501624489f409b42d47b9c69257433662baee283966bf3b21ecf0dd1bd43062c1b18f8444a6c97cfb352c1ff502d57071c5d4cdcc81efb38b0acbee50dacbc386cc702dc5f98d6d072c847b36077094087de80159a331bb896cde3dbf78954df2b6c6b98478a0050f926560ebd1af118547aa7b67374fa39b87aa53ce1a4752a404f5a006a0bbe5430b41597d0deb6976c76e947baa741c3fefb2c8f35c3c81f93b8f89d30e2b8e6ffb9add6ff8b00c5b51d6d51d995975e50979f5c5aaff4c90def6df602d9950d4e7f4653b3e879ab18b65c5c3706a5139698262cb830a22d943be09346b6fdd2054c069755bec7507d88ddee3cc213e9b844eb85b70d7a5511e679fd66429a3b0c6918294bd592bccddc1991509088e99ee413f2bf1023486d3662bbc84511534b1ea291fff583f8eefa38ccdb39ac1a30bfc9f838ff460e8e74c055d6870d1faab2cd58d7e6410bca2a612745862884571f33218aa38ab05ee7be54f6cf34a9126fc0053d6f75fd48 +MD = 83715314a38d4da8996c4d513ca550b7b02532d508f4f8f6150ebcdf + +Len = 34568 +Msg = 705c1eb40f9a539148bebffe26f0fffd37dd1b3cf85ba4e28d4bff88b5c40084fe6ebb6e352b96dd21fda37271242d18f286918905544f1551eb619fb5f8cce880e07410e55f3459a96f2e2f1f6b6065567479c29114eabcf7213f838ce4b041607bf3a0077c558e48db093d190ec06dcc6e7aed83e19b5fe9b6413d24d0d5190507e02982cb2002670adca4485474b7ba3e3c14c3048a878e720ed3630462f7d74ce2b04094be3f6cc54e6c9387a5cb89aa683e38c5e1bb4e1c4f5033c780643e11a23f281f57cdc1d2079ee1ed7a32a27ba674cc6bc584917eabb97b6357e7a220c8dd22b31232ccf9b0421cd01c736b789dbd66406069bf5ecb18231e0e086b3ffb93169917f8f704f15e2b76b2164e6bf621ee8adaf2408556741241ce4f0137e368ec1a8fa6a9b971fcf62865a4b21a58a84d925ba77dbbf5d63213be45cdcf29648c7ca2c549e2d923652d5da4ff4f6c5b69a00a11dcc750456ade077135d1758fdf0777dc4145d0dc60cfc19e9cd0da412bfb0fb7c6730ec9a2e8d05ba2036ef2cb053773f8abff2ecf54b91af36549627bed9321a485d86ac27b428c7d2fbd9439bc0913d6db0d219a056fa16bd861c742bcbed8dcc65531b3dd858b2c1b0a7d12751642439fa3bda92a08ba6cf0cb7766b1b763d8fe2e255b56c0e01990fcb63c78858ba7bd690be40bafee5e742f7ad114a74afef50a4fa3301b14aa553b46a10d7f736afe061234ef8ac4aa2d34d9692db516b87292b573b1bfae49347035287c2c84f42a23da7f20c1c4b6e3839b18430a4e6d3f6e61b423d4365df3438cb80cb345ae09676cafe47d76eb5dc4c8c5a0cd7a8422455b4ccc81354e5b5b523b073d3efe627bcfaa84e663b1659e69588a272367e4bfa925f5ef328334618f98b3f1f84dff060b5a47231271c1b985b84a40d07d4d855526e546b56646fc4bb759f8fa04a6b129a5775d0b913abe24cf283f092e243f6736e6ad465e58d58f804079cc89202430755abbd77b98554e846b4c56e23395e53f3e4c6ed3349362dbb29df746350628b13a66fd95a3250cbf5d914001402dd928364cb42da0dfcdb0f58c02a1ac001a415d85054923d7656844334ef314b24ad916d5a1d56561d7e7526d75044fb90d0d0c4178fedf126268695d092177ca4139260ebc314bc088681168d9d6e4da09fc8ec2dd1ba07f0aa51435f7f1301dc532ae208daa19a5e81b7aa7b57f340a16f82d2fbc0a2ec665088de3a2cc0954deabf5339ca999b700e8d54f916707f23de92fb09e32518e7b791b90921bc817948d446d7294919fd7b8698bf5f6253985b5dd6f09fbd17f55e107644d44360df0bee3f996d4ca0475717f816a945588f7457f9188cd7542fa269a865db11bdff9271afd90d20c8fe3fd5f5977a9608799815d41a010067f7232191f4ac83f35b8b031a2e9f51ee82842513ca59d0fdd7551bea5db2c4dddc6ebcf569af369b533426f0f28a4cab64c2a9d527bd82833939eece5c08a0f05fd3b0354d799630a74c31d6dd549d6a1589c8ac281c27330f94e2d2ad790179f1f09fc408821f3da831d83e3784b0b53537f61b53fc3ba7db14bca9ca9a72c52353c034336f5e2ce6636e99a9a12317145bd6b523e44c3c1c37b0b62bd3715c645be6085687cf78d27f897b9c20610a6373dedc205ab57a535c837a59ba99ba45a765b2da61efcc0ce49d469798f6f972fe7322c1c623ed11119988ccc638694794c3c647943b70e6113ead2461518ef38a381b90ccf40ec5f557440d7cf9e3dac284a516753f220ea3d1f1bb100d154575921905c5c259e256614e84454aa48faf2ce1dfab6739d70afbc6d42b8636f96f15bdb9470b4916d33c0ad9c59745c6c9210efbad5032efc5108ef82a596e7fc5377bf3d72b66a3ea4bfb76648c22208f158f02e16697b950b4dcaf82f31649168bd66deccf4d4a1a15b2d2a885d42d8f5ee47dee26f2b43c5d1252dbffe905e1674f8ffe533759c12da3771810d63e487191e52a2dbe60e67de29a7bbc3106a46e69c28253ef53adf85ffc19b992d3290239a13bc7656ffd9bafdf08d498fbee1597be2f4dcfd80f1a4aaa53ecb4acdf652e5a89a08211d03adcb909b58b360cd16bdb4bad435782e7f63a2d2695fbaa3ef2799a259ef71cd01b80d4fb8245af4658927dfef44297f5d5042bf3c17027d41876f3e30690120fceef110308bb43c8d07c2cbf5d39bcc88990c6d0c17ae6e922eb1d55636d7e2e895c3458990748fd8610de7ae89d7fe46678845a10ac65d2844e7ce94fffbfd0bd40c588bdaa4d48cbc9099e10fe4fbe0e23fadc29650314df09993b06c7357aed453b0fe124bf3f243d44a580ccaad9e31b80e396356d4465a508b722449da18bd20b5aadf72d3521b6063d92992fbc77d7bd1cc1adf2d5eab931ea4d0856d93b6fccf57ea205ef46fbc4a2d0e43cca5ed115c4463f424dc0bebb40c172df765e76d66ccdb5d7b1f6571691c62e50a7eaa011968e59ca107a1dfb574a24b62d779fde2d25931121d2506276dcd819c9bdbd36e0249df8c2996f789a219e695319434ab310ca50c34d803ebeaf91d6a44a910c5d836c5cd8811bb995e220778bb5f9929b19dc04fada6f11f598bc45cc03c3f85b455574d6c3bb44b7268b5f3bd03b4c519b48bc4d0b6562a832e7b5a59bbe8165c4e9cf21f3c6908a491f8ee7ea80de533f80c53e431bd7430884c4c554e94e098c89ca5e83b6239be46d85147742df3c5124de5333eab6527413e1afd1fc94b326c604f0e602844862e5e0460929b5598a956600306aa65320259ac995312bff0e1efd6dad54293c5f291ef1128df7574662dae9db141dc1773a6ea7115f4a49ccf522494bf388c42397afba25f82b921f1dcb54966f9329f3b2cbdcc8bf962fce08f1f84499399c7ac1f0e5a5e0b8b66f16b5f4e4d58cf9202f40bf4dda861d9bab0b1f198da211af38a11824e02520c0fe092f68fe81bb87204be2f348909fa05bcc125d7958c04b5c3ed6256ef75dcf245388754317fd93166bcc6b825c3296abc36662c4d414d9ad088429f5b5e9b42a1384ac3ba61bce722ef019003f52c90b7fafdbf88aabd4cbbcc6a50ce7414a9fd7a87050b2a2a3d3e3d27e5ac09cc21b5f432b9d12e1c708ca02192ce1f0ecd60e68641ac43ebdac49082dea665d1c2bf0c4c42ad3531b149ebb18de5c75056d2648ea02612c768bbcf58a47b73031ddb2a9581a627c5b4fc9760689ad4a3ed5cdce84aff01868c2ce2f25eb2992ada1436539f436da024ac8b774c75aecf3a0436dd66c277eff01eb09835d4410da16f18cfc40c6d8aa762af3d60ffbe9ce4d45ab31df4dccb3c9923915168d27518f6b951168a904be525ebfccdbf6ad294d430b2961f97e218a62227d9f6b42aeab0ff20c0443eaa88fd27faba3e1b38f10ba124faca12fc2a4b96a0f5074ef4bda5d386e8c3e07135f24b8150023a97a481934f707eb4e11d926545cf220a9b3ade1ec9b78ddc66960d3fd7b6952db7543eef7d21c2e5589783785e8ccf4fe60862c632542c9c525355eb44157f5e60aa4b9ef4341e0d2b4025b7335796869ecf39b509e72886fc14d338129546335a4daf87fcd21a9420c2800a0b5600158b396cd1969a07042e808d0c875d74166ce77291df233fe300c29c5a30b1946575ec02042093537dae3f8d51ed96906e601d9da6e34e146092eb828de891dade24900334f1fa935945fadbed8a6723a3fc9936ad527c2274a0e2398d7c1e5be860ce784b4ff850ffbb597dcaa7f9b41d0903488d72d4ef87f052c940347f9eecf04e683083b511d9d8037dce8b74cb434e02d8308c7f05024ce13b9057dd2c509db7dbcbd5585e4e64a1e2e380fff17f953ff07de7a4ec4b7a3796642f5f8b7e2fb1d9048c09bfc626dab5f0ccc2ac38a462975ccd6c2acc42fde2a3022e45dc6ee66bc3f2f2bda9e757fddcb8e687d74412d6b584ff49ec6edb27371971e2d421fb98f04d38df606fbfc2918c9307c23df7b4705584d112c4786e07bc51e8cd129b6973e606ae5186bb0df690f0b66257ba3976882348a80e7dbefb32f6e12f076ce4340582b1e5f4f3e5f30c261b1f5a036dad65063815129120fbc5875461c916131cf2d47084800e5270475cbe620d7959fe345228c1995d9befbb2ccacd2042fe11f4257397f4b55c558abb289139c504513c32a1146a8937bf5d0fcadad398acfc549d4384168f0c8a1d6be016a68f768fc6cc2a764fbcfc54f355dcf0acbf25c65b6367b5af4569f848936e571c7eb89e1a484b4f0e9ef394c5298877716071554ea06790867e7b85535c5bbe633ad16880cf8c0770d823681ab157d7eb229993787bcc7f65e34b1a85ed2eb1426cc9d4408976063d1295b83c15d079e2aea467201d1ce9121be0a0276f6f9a83bca9c9a19d90b43df34f6d717e7cc31eab9ab88dade23656cf43fd8109a7e0ecd17831ec33627a37245b6d0214e11e66c283700854a3cdf9a77a1bdbe45deb46543ef36a7575bef54dc1a237fe89f3839b6876d93ae918c34a8fe07d27192358ec03f7608950e93d1587f35765fca83edd50b248863b7e7c618936aefb63f0ec42d02519977c64d824b747ac70c0a75d30440c9d612267eb937104b888c4bac8fdac65dcc87f968e2358887c485f56a83e4b6c1ff2253bd9894e32e1f5c3e9b5c6a09ff043e3e626ba739d1014611fe9ac6dba1762cc630eeb28a7726be9e57b45b3bb9e312fbe6a900f6eb0fd4c69e625b2decdd89f455260084db211bc16e221eda12ebaec85204e34e3a32baa9b684f23c0897d274a6d90f50beb10c6e5b2035639e805a1a2119beae433c5021f37d2c7499378ebda2624f7c9638f8fb8b292f76c133bd67f05203a59a6f3dd5c1b57a75f32f2735e46c4166f64b79df8ab77d720f9831483c4852b2a45dfc2badc86c9ebb013483c96175be634af7a0e6659fe3ee006e1161571c63f58ae39a1410637d65302f1dedbc6cd141ba0ae60a8e175af11ecc8a0c18c1280278bca791480f90664e8f6aae07874e263b2bf583cb74359d45c4e89917f17d6f99cfeaa1b9b15652aece00a6cd65938520c375de9827026717efd3a4af2dd2718095c9c1f0095daef373665468883ff32d79ed676ea05fd2f7b5c19b78c6d5dcafb6db8e756804cf9f080233735fa1d493a7a2dac9909c5577bf38f9ff6ce5e589ab7643d46dfa5924047ab0785c77ce05e55c95334846831a54b05c9d808140a0dc409e778b9cc004f11677e22f1023e6bb61233667fcd0522ebe1fed82465277d1c10ae9316a98b4469be63b18099ad88267013d400dc1b1a5b8c06a1293bf91145df5a40ff247d48d41880dd7d2873dd2c4bbc29127dbab4246fa9d91f7dc6f2c9e0b3267a251c82dcdd9b4bef97d993500bf70bba982c18cdf1af290e13d747307a80ee9294b21b08767da6dece27d21a188a230215b76fde79df38ffe4743900148b3f4c59853ae049ee9453b4a5c113db3d18f1dca4e1e07102aff9dae4f0c3189ac2b25cdd08edbfb6bd54339b89c2bada928fd63b955a40e03505dc719300ed761ecb8604adb6419ccbec325051af1e273be5e9c3b4d44e41732ad3614a40fbe7fc9fbd4150c4356963209a0d426370eeb8fafe8665d603ed1070a5fd3f0aaab50437eadb199d04e52ffa511a846516f5b4d7fecad1e9c7abb5df3b8d97e662a7dd9af61b31cb17d8d78140bf3e3d7a05d582cfd81f9402450a807d597d5c8b8630d0c749c0d6d50a03bd4f44997402e5c3055bf878601c81b65a53a817f58d1aa4e247aded44a5435ab767f0bc91185f2768887104d47d286275a6c48d38d02be2d75c8ee19ff14a84766e0ccf1c2339a9b1408dea788d02b5da5cf308aebd8191b7f036c46e20e82a024ee0fc9e8b3cf0ea6a9253d4b5d658905f7eb0ddbae35a8beaebbd3a9ae5f464edb4699eb730a51aeec966715b6ef29f95adac4f301be55a32f6f48ac60989a335d03ea411dd6f4ab47a4cd6e9902c10e8c7258c88efd92cb09f92e60e1b92c70c7ba438000af781a3ed2c8bc505aeea3f16421a2828df094c2dbfd6d9e5b6d95cffc3e3ec +MD = b6f45934317508f4c47cd431369e50965af68cc9c946e572401b8211 + +Len = 35360 +Msg = 787d2054d6a6231477568e97dba76cd3ed61ac02cdb60ff8d23044b4d0e7513596f7348fbb31ca3d9b11f1b99cf0e94ab67b011d32646f98b1587feb7130f0e8cc6b9a1401dc55fe37a017cfbf535c239a83cb173b6516a38dc7222b3846685021c19b0c2f0e8afe55eb4902cd378b05a16253187022ccc26f67749bae9280169de17d9fce2e33e6fcdace7a4d044099d4fee1475a01589d5e1fbf645a7a02e248b488f465a6165d3555f05ec72141873a40bccc806b84db62d749adc467b45b2b2006347cddfc0c0744f5d6c3f85676db102ed06ac9162583775c9f75c2602a4d0e3d869c3bac9a7a8f260ccaf0490ec0577d7ba181d722cae83e62f4f1ccf7b66776134b28f0b0961ecb256371e1f8f0fbf2f4acfd8f7b3e10371dc95ec1696f11f902140c8ef664d92c4c17e3e5dc73e6d56413a306d7e8d891f87d6f06287ff60e7c7c4f4f13eba990a76daf1e6152fe6ef25fdd03dfce28921c978e65ddeefdfda90d59fbb03374415eed3b5430942d04c71712503bfae984b19f22a430c50d0db04e935a744524859a1ff04ef1415ae10ac3a9b3927401adde1e938cc80b1088bac7633308289fa5838c36d64b626d4be4ec0cf58c425a56cc9b48e54ec8edb4ee01325013e4cfe840bb76b2e6fe4d8b7d19a2ded26edbc6a39eab7769048cda758369773e829a98fa3416ab6b1de4e9fcd2d3350c006b478aaf2309c2c8d54176d56e713109eafbd880808982c719ac899f07c4e2fef41fa9571865001bb0331a80ab069381a65b03261a14d205d41e4e09a651fa725d97291df251cc0605f6890b86fd0df3b6fea2ae4e1404defd85709718a5ff638ef7328a1a96ce90bcd3eafe69204666022ddea18350bf5b7d2a1ad2c68897da6e87eb25f6fcadc1bd1265e2bb35e7e2712fdf862091ac833a55724016c16adee78f7d76ef4a12a1f0fb243ee405976fed4ecce58f9f735e1d4ea06b711a2177e05610056e4aa4393dd64c9a4c58ff165ed0cd473742bbf40e5ccddb405964ad4225ca5bd9c20c908dea087e5bf6c6deaafe0c3280422c4ef6c82116e947da89f344d6ff997bf1aec6807e7379a695d0ba20ae31d2666f73bbdbc3a6d6ac2c12dcfb5a79173dfc9cd2e0d6000e3114f2767edec995772c6b47dadc136d500251e5927f52bacfd561975239ae8260ea4ec65fc284313e0a3f801093e318fa024cf7506c11e9fb2305ff1ecf043df9c0ec930d82e90f80b2f650c411a03e74d70df87e4a3e0e878e91f18bbf8aa7c43dd2c3ce47809508cc989e3d7dd14684279cd2644061903cc00c54e232c8288b0a0a40eb39d22c9dff2e51c400ff9af39bff6b4a7703d7e25e7e126c4f472914ce9cf0ac7f663c06f3be53a1c2b1a188da40ad7816ab4b4113f0126e3f8e1028328ebd5842c42e0c51538b1cea6fc30d8d677e3546e2542084683c332925478fdeea8e39a9756877c1f2e17da1c268485b7ac8cb2f2f5a495cf178023695341179b84a95dd00540feaa53d0b0e30f803ed837280f81ac5824190ae228d654176abfedbb505ed599b7573870f5a43db04ea89649dca2bfd94dc4fc6dc581dd5851ec628e14ac5dee50965a7d1ac837a14fb958669cceb6a47d435a878bc46570777171960d40f4db34f8186992d773bfac8aec02e27e17462d14a3d3ee36731c561fa967cca530dceefd10aaf04a78780f8dcfa32029684af7d976b75f508ca848275877b541a86fe905d1c5a5b9bc76c33271cbf869000f47d231b6719b18a0f8293d4a69cea200ada2ba5e457dc618723980e1bda5952fa7cf7365a78ebd92d0a596645c74e43bc77468b9322f1bf996e36b88e2879e0892019a2973a3d1fa5c2d123a000cb57da0cb3b8b0e462476abc0a026295761469119349668630c4405102f4fe6debc42d447b1282c4b863c1b61ad5dd4bda5561f86d110e844b30c660f4c1a93635f27dc4a78353eb7a7a6703701749722c0a3a7dade4d95e16ccff96b073e784314a92373ff2698130f3254c14b2ec31f59dbc475da90d3919feb29c3df0017f6832334349460ead6238c1390c8c0fb1bc75afff8448f340dd2fa919a3223f4e61132a90cf69879799b00371628ff91a09fadb4c2ba8d398e9c8aab6ebf0e81aa4563dc7d8421f685cc3b59d1ea2f493659408d759b3f56cc52f7e1b1c41460aba6135906db91d4834d99d6446ac464456abfd481650a0e2faceedef3eff9f472a9ed99295b6c85ea85a856fe497385666a783466a671e220f0cbeda5a113cf87c73f37658216ad340ae3366ff4a12f11df062795ee1b5558c50bb86765f6546394a49e3bee249ce843e6fefa0ad1c3c02ee628af9a4aea3fa04aa989dd16159e88aa582d0e2ad78fd7003b5cea89e609d0a4a2144995133df8f54bbd44f7a58119bcdfb9507e0f932adb55e9123df8576aae4e545a8e52ec659819525c1f66b3de589f5153a2978ab5e4f93f10628d11638f67f06bab4bb34caf8ce970f1ebcf2d0a3195964cf1df1e997fbf739c16f041a49968fb50403b34a830f32213a70bbc4e10e686b1b128bb8563faaa4f285c8baa5d3e6831e2eca41e800ffdf92b21d290d7c4b39557c013153061330033ceb7ed2de150a4a630217f04805326da8a267ed0d08b4c586dcbe58f938c33bbbf4d0975e2434cfcae134638f4d00157ad1e64a67a9c6b255a3c62bc02346e32b6b17bdfc19e7f78cf100097fdd33d051320eeb3235566614deb19502dca243b3d8ba0d5ffe0d08d1bae4aabebfb1e7554e489a17b54b27e916e65e6769bda37cc4234c2fda8d4bc0c3460df4fb64a2adacfa1dbd308f3efcd1cf4e99d4814badb7b94516b64f0882948ffbca97324882d58e3dceae09f3769ad32d3d25d5826f37e4bfba993b873eb5283ce79d0523fb4f6ac2ef38a18d7ff65ac2fe62a092eace0c81c38b390f1daf7798f514c47941a4f874cad43f563e6fccd68195ccc145039954da9531e94708e6d7990557937b5b9e1b078dcb94dc8c923171c54058a95ef300a7bd0b5ee34bdcc07d77a5b9d2fdc67e4e682d9081d5129b74fbe49e3d68834dd10dafb41afdc11c497298326e11d766456f4e9253d3b5dc323ea0dd2aa8af03018d053313a8fcb3a5ff1748761f399b97a914e17d0de3bb55965c5b97a7e0e9de44f625f7d3f74d37240b4112b053e5ea1e68c7250c0502820b0062adeb7fc8113a68d0ed0719b2aaeb5a666c4b8f0ce7d7338a7456817763a6743893fef2684177447e1ecbcaa9a45cedffa97854d735db5b739175c1e3a06ea0257268a39117047375b1a772fccd7eac54f4bf0b0f7c32cacaa4f12b0de16c6d7372aff80b3ae8dcfdcf237971cf597fac73a91a7c66e566d7d75029bfcda6c168ba5d5b9d542b6660a0c848d14ff54f514ebdeae699fb19e1501c22bf0c26864e73f933110ad6fbe44b1d45e3f85b0289ae83e315bd7cc93237dc7ed647f4a26bc40ce82d06ef82d3f9abd9716f92829dbb846dd17b716010b519a4cc2616ff08d61de2baf081e273d1f86c415fa2b5d59c47f1e17be1c5c4f25afe695096836cd1b4887f6f91050dfc8e671d6e9485787a55d50e64d4e0961527f3756e7b18e1dc5a44462c29d2e8a1f530cb446fd9d07c348320de5299cd4608ebb727cea5ad1f957dd5cf50314ee9b331138a3b9823cb6e61df9364d8b3af864ef824961119c3f09cf5ff0f0a85fc52d1bfe800acba8e8bd9122811858e752885000cdb466df0f0076e646d45d6015a779505c7fcddee115283486288a7c377f69788a62bf1cd1f2708a772cb8920518d5f8a9770d3138a34f8995dc946bffa0a8540fea8ed8304648b702682e683c17ae31e79f0e6247de63ac30c31b391392991dbeba5a8392727be669253354f31a6ea6a74645c4973d2116f77a63562bcbc8502750a6b1811d66a32bd26bdaf2a793b1690b47eacf35f4445a511155a0c29275ca5bf7e4849db577cafe4c7c9335ba0c9d5c9947285f59dec9e5b9ca0b0da409282ad29f0579c4deb71739bc5d4b4df2b4c89e6c6b1fce20d6a6a0f5d3035974b14bab439c48314270abd81cc95ecc1e5fcddbbce00dcdc4f1228b9b815a4f63064cf664a17f673d982a9c106ff6b0e9feead5db2f9fe535b9d7ce1dae58e23e879d5884cd85f34a9e21ea29a99998e0028e2129b25c80fd8134dceea2b5be71c5cb2626690251d3e31066db0ebdf08b1b46223b10aa3d76f7c85c9116c720a7413503cc1c6b0f74177486b727ea3465a9a17d81b32f874c8e10b1a77323d5497a8955e8402688959bccce106d94e0ea2e0e87802252daf8a49c7094304238d2e226b0fd8ccb59d2f097a1a948549293190bc4d8d69ac4e5dbda1de9e6b8c7ce08ab999e5adfff96a653a5d4508fb5fb0b17d9de588db19eb4481e0afeee0ea56e76742d22cae66b3d9f4f140eccb77c74c12b1310a24dad9e64f589f15889f38415c53c8d22aacb26c901faeb8233b1d6863d19a75ee57d2abf38e9568ea632da18213ee25db930e26f62fb7f56a715b0d58444853a0597c9c55caba706ffedd0ec0cc6daf2ae3700f0e69822a07e22843d954622ba4a87fc05e5435b47f37f190fec46cf87d637f30c11438df64562d13ce471086610c8420f4732fbc83d7112f244514863ddce490f57a009de89512841f667ceb3f4d33c20071d011e1a7e4f41b958ce3d317463793e103eafb667e9fb4f9cbe2a63233b06b943f3a036c13e6c9fcfd97a5d94e2e849269510592196b754828f3fe852df21b25a5bf4ff1450d17c48f281deda47caed559576ee28cf04b9ab9a7af0cc88efa6b29292ffd2372ed336920a21aef29fbf2fb869f1b7f361c39a6852190ad8eefb0f4ff0a57551c3493b4079b27d73e52307865fe089946d26b1816bdd883f9e13a2dc948c88213d22a976372dd06c29ad8f87cf4708327537937e0e9aef3d8ba53fd1050185260b1413bbe8e0421bdbd32a254ea1ae5e189ab2a6d0ed8a53261418c5a8c0f6f0ab71fc89f5764d338a2869f7446cf657d5a481a45951f400fbe4c013263747e19ce0e658f35c4c139311c17647157ae02b09a2eeee44b6d78b9be851d3d112a96dd543a1590ed96cb523b31add47a667872e78ff26524d3733add3fa582ac1888cc3a70b9d0a8f8f3ed2d15d6d60036e7887864d97f711b0b29f358519b0ef3f783082f035dbb90bbea38ec67deb0c558d995d62999fcec456e46f7a9eeff61ece9069e7ca0ee052a31a5dee95653bcd24f850d6c1d8bef2bf11e4536e4470a6de87ce6abff0bff48abbc12e3a5b1c25ed192302972e7cbc49bc56a7fe6ad988567b12e18e3d8281e3ec4b1dd33928003480267e900d8291852828d0d5afab0394fee9f4cb51f25b3d307e25f68be9dc99a1edc332f26b130ff9cd666a9f6fc93867b61cedba6a11053cbcef2acfcc2b8b02eb48f67980a138b5c6e143c69249af5a09b26bf36423ba4599c1d671697d9727a1a8510f7ddc9dc0a7d9f7a1bd05684a576ddc796b03eb0f9756901d2c333c849349e920bd15bdcee2a8dcad4a7d01cd1197a5d9094215df2815de2f9efce9be52a61559c8fd0714f9e68965b510fa36dac85e8ea96ea958ee7817253c2b3d1942557c272be30857701b74579771b03c15987d06d5da33f13d05d1aa7e5e9549f4d063f540784ffac7a033ff6c1fd221546077ce1925343ca637a40bfff780a4ec9f8350c12d3c73731d3eb9ad6bceab19b8d560edc0389fbc95f4e61b969dde8c2b50d608625c5604fafb32c5f6041dc81a1c5bbe4baf8ee2994aa56bbc3b4b75fc32d190c82e16efc1ffe7603f211e020cc31b252807aeaaca2be65ac8e7601c9acffff4bf303ab5fac353e6b7941039f9502b9cd5df6397a10f05835d30d0f27f8e9d9ec7f135da1ddbe4d3efdb98e2685a199fd5a5521ba66aaf6fd996029a22d5571962ff9cde93b026b258761c9df22741a8b7e7deb952d5306ade8579662d5aa8df20a9d43604d695fc81d21fbf0f7e4031fd257de32ec5251ecc8daa08e7750f6a718e7062e9b5cf3cecae16d81895a1e605ccb44ba2b119f6342d18d4e9caf745e61c0607aad41ede0938968bb623c31f726c2635472f7b7b95d24a6cccb2fcebfee0e976c0c8116a5820132c509f3058b382285294a6c639722bc332d8c38ce71c6bbf42e3f8536c69e3113c806e862c598d5f0603ad869a5977f7c9c67323a1df1adbfe5ceb415eaef0155ece2820f4d50c1ec22 +MD = d88f6f8c5b8bea31422b905ec52897f35ad02d34024ee9412bb5286f + +Len = 36152 +Msg = d4f62f5a41824fecfd3e893388bdf47b50bd239e1dffa774ac56d6919afdcb30852dae6a6def36ac60306b675613b1095a8b022dea287b0ea1311a4213f4c6a5f95a8f938ebe385a38fff2ee6bd46bdfca60078990076d8b2f7f467a372a41d678a35b3c6b975ddeced6a6318fa92ae5eb67bb1ad74388d19f68e3a0cd4847ab4c3099cfcd20ae206adb0e96893af70304c5a5488784d1c93913781e9ef5dd0cbc2ad1b37c0432085436b286232ed9215ca54e7c6774525b44a98d5b72da0de10fb98c5040e9f17fd3101a6a232ed9273c2d3c1c40b912700a51aabf109ede128e04500ee178f46b3091cfa852e1fefdec85f992dafb19eed13458b242ea59878134a855265842b6b4e058aa78f0508cb4d60d44fde370bfe2791e9cce6684283070198dd831e346a4263dd65d02d7badc48fe9c71181ec9854985e57db969dee2e12d1ebfade0054b8a0796c8c09c70ab025600fd432bf601cc14f5178c108fe0af6b70a37240d9f0353d5183d1a6976a2d9cda6b0ca02ca029533564867f2473015beb4c280bacda4e676e54dffd1562f05991811a8455a889ca0b2c50c086e1ff86f882784a6552fe0d57048faad4d874148d0816df58621302e03691db9b72d373fd0c0a04eca06db8735b8bb4ba17e05536c7a7b91d16f0821d4bf2d64d70a2aa64b38541290cc2ef2a207b23b1665da5f488761b8c0c47d228331bbb832197b4933f910904de263be41d0600a00c138a2f112b0c8d8b417b6bb6b39225cfd718f478d765655dc0230918d5526e52298e4f2b6d9508dc06044c9b63611ac08d5eed25ff5c34d2b92f01da90210580c839bc9ee4bde548bdf535acd2324c3cdf0fe810b1f7598538e7352bde754cde1712de32398c0c158fd78dafa80ca28df5b24cff943dbcbe66d40bd267572bb33fa11eaf140a658ba330bc6d8ff804faf8cf81bb503645c56a7dec99d4ce8a49676ee2dc1c40d9f4228b2aae2dfc5aca10efef0c8eeadde16d6a4146cde351e6b8029382fa354e96336d3f3a2a238c466499feb9f6626a5c972470a2f99d68d35ae49a6956f1adbbff6063d82f7283b61d55168c2fa5d57c0f32e3750104b858749c5d59d67ddfa9adebfe52e4f3256262ab9f4be2bb078afe1c00878c2027bc2eb3461a25e0cba86697786ef0ad5b915c2401bfb6ade7cd8b6b319f43fa9e49b1b0bc73e922580252ea39f5fca80e8c3347a4b054825c8fdfa6dd87ce990645251b262ecb4c70fd986ea9aeafed249c0e9cf0e66342501621556b05d40545f9b27dee117265fae361ab3063b283870715ac4e288cf5aaac7a0145e2fd4745ad7e5c7be58775ddfad42837daac721d1572fe243f77a452971231d2e5f366eca9b4433571b185038b1a6d24dc46c3d0104a1bdbf4cb572f1f106d7ad85b6a24347ab7847f999b53dd5a026131287d863ec889dc0d30142b8e9d3da581e05cd497f842d0d5e6c2b53abd7054a1f9a829e911d28e5250e52d2ae02abbaa2843e41b586b813c41ff11e86b3e67f4614da057507d588dd0d11e3d02bb2419db273b05bfbaff7c525c4f308bf401f10a72d3d0ab13a4845be0e40d2a794997a210c3a057b8b35dc0e0585a451a89629922aa9e4a1bd900971b68e381ea90eb2507633348ec03a7349312aec339690db9620d08561d5ec92c8992062f9862df0b130305badf5821557e66742ad808ba103ce455f7a29da7c3334bc05b0b2839fc3d8b5fd4171b95cca83cf3a580ce3346b717ce5431fd62041f79572dc948c2a28ce489be1eb2c9401a7d7459b8233f04db8ebb9652e6c196570514ce5c2c42a208f4cba17c87855ada0f3f71086fa5f2b13264e48dc08e22e3d83f664c3a81a7b9a46da5b70093c2f2dc9c13f81a2eb740e910676bf48f4fc9d9201c1fdc4657a8ddb6f15987ba1f69cbd368118ca2fb919c084773e88dc613effe195f795a5adc85f0aeea83c11948c32b97da2ec968aa3495ab2e054f2ec9042385937886595d856103f05c715996aeedc8dc666aa49597fdbb22b39f30f1ffd587444390fc34c65119f57992875b7362259d9d4f575aaf88a1d95b437495c75d47f94140ea682f0a178044ec4ba0facfd3a73c3e2aff628082db6304a1bc4603ee3ada60cc01a7d3261a24464b6c2b7ffd82a900c48e9a2b89ae35aa5f6f630ea49076b6490818f36e49816932c7eeb9c9b44e5dcf0e3ed3dbdc37fd58b506c890817d0c0a8469b31698c41ea6b92bc45fc7921cf08836bea3edd3c531961777db975728b67d825b478c532b4f4bcae9e843dc07d1036a34076770c9951a7f64ac5a6dd2f6fb4b3328af9758d784b3708cae96e41a87c27f2fd475d22a4a24d72c5125d47207ac82e288f86fe36dcea17292277c731d26e644bb4ca8982def178304e8f5d1a88d929c9fdf361e0c04c3c376f79782cb7eb06ea55c1388cbc86ed8fb1ffcbce7d6a97f7db2772d6b3b20a6e36efdf29bb226d4190ddba22d982253bf30b2daca6f10b3a9daf8bb925cfe4460f4756995aa909f9fc7c78d5a457c1ed785dfd45c400f5fabc0826e8750a6c575f1c88fc04e36f6bff2a0f25ab9c45ecb844b51a231edab0ccbdcee54fd6050aacdbe0e24875f0202f62e7836da423e2497bdfaa62bf4c05362d0e4014d740d88f01f8bc93b54ebef3c39c8f5923ee46925fe776f146ac608ef24f89427292596c2b3b1b8535ed80f2a89899fc8ff782296d76f05d698e4b4d9a1d11772c8c05cac4225f8b8c3f1e829e5643d64ce23d7510d8a7157c643de880f1891189905631493929150cb6004a21701d64df30c11c06b71ba813c0b0e6436740b00e41d32636f9e8c05c04aebfbe507726db65d574ab8cce83a4163ccd5dd8e8c12f13052029ef1f0bee8da239e181f19ab5e3b3257bb42046c1e73a143ce0d1c3607654957e834c5638d3536f178f0d4ef35d0294f3d7c14fe1c641416cf9ac35470e4a1cc150f13dbf586ac5ecc23aa218144c49b062223d8815eaeb6a9dd8a5472d6e1c8ec29e31068f30b4bde5fa42a8bbf8ba1dedb36e29588f58b247d781e566392b3362b3ce930a4dd22744dc9f09b6807ca8d4f5704a20b73fe0723969b64b23bf4bbbc274e94c2a94a5794215cf967bf7eda278d26ee0fb0751c76ebb1e3ec64f54385ab27db75f82b4fddb456ece53b268f0be130c2bb3359291f7f491d38961d962ed05c4ee4512d23d08bc7bd0a042872a2590a66378413f7c55a4c58bf57d47b5e9ed635383cb89d14ad95b5fda1ee4c95009c22ac2b094e1185a0dda83282bcbd1e7bd8984134835222aa1ae79adee48bdbcf3e42b0a5f5ab072ff41cac8f1ff457347e2de9099e31f3ec34ef7862042df48901209c4eb63ae8dfe4434f646dab51ea701fbb9fb65a27454d3ec2e1722352b3b56f776b5766309af744a2676d891583f795405f9374c69cabfb00c3f714fd36a056c766a1d9e84773482d01e937aae959b7feaffc28d9d8974fbb6f5ba9fef80afe16a65c3818cea176799aa75d1802deae7ff8ba1e66e35962794f66895ce33d8eeb93502ec617c9f70d9b71a268b8d0a24ba396fd78a4395bc5cae05c1fde802fcf954461fc0933f2716a0daea1f175bae816556e14037f62244890cc50d01a0949140279c18e26902e71432acb97171fe0bbc21844e872a120313f7ff5a35443e178501f1e8decf9cb17ddbeef91fcf9bbf9a4a40f3b5b3d40eeb51d193e76061f29f7fb19efcb54d0c3a11114c76c6fff37c2b97ee482610ce5ba4fc189c8798c90bfb4bd9a0cc9c6df59cc4221b1a936dfe50097cc2f330d7f16bdf76c91c5af136ff20f77f68234d2cb96818712d0e758d52064d9aadbca24900ec2cf1b11101bd15f196ed3a4a204c018dae1d60c9b0a5ac2edf43a82cc3df2ea2b9aac863811aba1e268e95a98ddfffa54174684d95d3c8e39062950993002fb38b58d4cae5bc660724b82ca9fc552e3f811aa6129b9422b50f5bd6cbb6789e6f308068afa63ea45d201e41c3e247f7bcdb84aca138636423aab3fffba484e56647c5e68a58fdef709705779fe624f6bdbf26de8202cde7aff0ef6301c3d1bf192f7df0f36496c1f1f82250966e78a5b2aa85ce3d713027ca8082c286badb65f8562cfa735f85a651d1d94f3fe1bf8f2c3c360e2c1a36cf03d80270e2e00e84945a677572b0371700a2bee604e6760d9ad29bf0d6445e37cc45d310bee9d7957dba91f489fd479e9ee937977df318cb8f0c4c18d4a5f2ecb4789904732ee31304e550fa219d23a77d13d7e6138e24236957ab08afb5b1683cdeb8ce9825ad87da6918e8c21657cc3bc114445e1e34bfba235d22bfe9f634d5f6b6f1a664935e5eb44e52e40f50675b6f7154c639b6fb022dc7199da95ddd004f17f016723111126585db1fdeaa134c8d7379d457175fd1a57d3fc1aa34bb5c46506c70c5134a85fb43c3de1ad15a8f999f3620fcf2789948e407b433377a3a7af4a93de3966539c40caf973a42a7a512591c04a1c4bfd9769023edfac2743b6b8948e64446fbae7e4510e3b38a752d86359e17dbfaa002cd0606e7576243df8662bdf26da1684478817a4c1d156d7973c93ed30220c3b5aaba1338ef9363876a259b0ac64245ac51465e18ed8fdb29596860bebac395529e20eb4b19c24dc365564267f4862e3677083f029b3658bda5b7b6437c5f8f7a15def1a66cab8d24265956b26f095c83785b9f71acc56086f71ba209bd512c9cb048c8c36e8b8c2a2bc34a729c288b03d394f1fea8a98d45bc28b66a0445072aec02c33a75fed535c4089011128024480758c8f2054f295a634365ecc7b789b5277183743971f2e7adbdba26489ca2c0822ba7044942df459b10232aae052ebc01299bf92f816fb037474b2ad4da90fdd261fe9deb111987b203907bfdca80bff7af5f31beb996100f29a5871db6795086b03237713662a1468210895d840a2179574fc66d67208783f96bc3a9dcc6790d7b0459622f4512d73025ab33ae359114d6002fb2267997342b0078ffa9f2d7d546d78c44683b6cc282628a16b59d8f489ff2c633841bcfae32f61f95aaa8ed7c981e488e7da00fc6fd498e8d46ac6c8319ba3257ec718130a5df1ff25b333a71d35b06a6dc2d8c23053d20fdcdecc962c7a8fc95ec356c99f80e029c483c4f53ad105f24003e62853ecff9eea7c916564e417d73ffb1d218ae155ff9de2e8c7079d0aa9c865d135c1e7471d680dbe3dc02363d889391625b3c8790a199847276ce0e8166db042f1608cd115bd59fa26287e9c54a343e9dc037c74d1a06c8a1c51e4c6c298abe0651922c60e5128ee29843cead1f7e13d4e60476ddc9b2759ae9eefcd33af1f5498d5f34d8e8c42414dbca674d9ecddba84b36f8cb470915be63b4a24f31cd445927a458f1fd66f9c9bb90463f3eafe0985e53dfbe0897239cb113df58a45925c5cf161b4489776a719619edea8590bd259dcf9dfe84c929b66060f657e942141fd238fe392372009d19dbb0e7ea2cdbc0982eb635523b927bd030a9e596f489b7df71744831e356bcb56a41bff2b0c709cbe5bacae75ae88dbf174c8a240d012e5544000a5b47d740e72a22cb35d8f961a7790e57baa3a64c5b6960ae26e824f3c24533f8062bfcda2dbfb6921a020d58c97d334452a2564853cb88da06124fa8a4e98289a8ec51d8f77f7fbd15d85d5f9056cc1925c372f2169227964817ebbd8ba57e47da2550ddd30e00a4bfa873f69a9a3b5edaa376ea4271bf5b7365a382d50d89ab104384595ecfcbd18e1eebbe46bbf38db7befc8135dec291fe87e1c91f86273bc1e366cbf95953dbf7882f073330a71e63825e678f3de3e26ffb30d0c9a3f972856162a6112f1b2c8290b871de9ca899547a26fdad0375c54e3c1b3a71eb52d7d16a229854b5843bc5b5027eb7548a870112e0c42de3faa30fc70b8696c0d5e41c5a00e3228141821751a79e3bfccf400fe9065b704405142b388c15b6c8f51fecad98471916c5a82e1312510b09e98cc779221412a8079126ed0798307822f3b8f1531496ea73164065dd2772e05ba5de2fae8e838484829961185eb23301f817b1bbdc2a70ec4514c662822224b8339a89164b517e0e90e9413909ba9df4a57f6b5d1e424e93cd01b13d11875b61aea321f3bafad908249ce9e409982d8d74568a915b8ce80c06adb2d72610d8fa7f8e76c15dfe3a03c63ae7a3def9463efd339c030458b1a79a5f47cb606d41d54e92e3f9b4ba2573ee39b6e30a5c9c7ba8ad2c2cb9344008f0ccfc8420eb1aa4747716274fdd0ffb151fd44c1c1084e5ff199778dabe27b2924d2d9c1818b7ca899179b49fd56debc363bc2974d383e0791f7a71f944bd16f776677d967 +MD = 09eca2aa75de5618563e481d8309ffea63738b403a4679eacaeaaf12 + +Len = 36944 +Msg = ab7ccc029c0c36b4f5f3e9a742e0e79ec45f9d2767fc73d9f4aba2db886745a6451ab40b47bd0d77d9c01376e9ac3c76ba0705ced97889fe522b523823776f20f1bec6d1fa95ac204b25b32433d1c3f6f71a6db5c7bf7bcdf128cc7955045f871932ad5c9edd3c37b2ec71ba0799a6a6e35f7ce61a1a72cf3a6ab7a605583d62243c0fb419dee44576dbf43f4c4a0a0ee7a0db68b8d1968a93b8bcc51bb9323a7aa595e255ddcdd1febbe5bbec2d19b769a331438b2c0e8865db83e07e7066968334e6ed38251e63b453eb36ce8afb28d331277f7a720351199cb3fe18c500fea6b3abddacfd0083ff6dafb9daa9d8e98b1265256ced9c6b15c1f428d0ff28fa4ee88bba98ac9bba47cfd84bf8d1d783fb0e923d4be30260c312f0658e680813e09d2f8de37b168ff5420ff5104c207d89ed56cdfe9d5cb88a594cbd3a46c5d0c5983e5e77b29a8b6f8efcbe0a60dc5f9f765bdf6d63d3f9d15cb338bde28aba65a261333b994e341e7b46aece5633b2a472467a807d8fad02e4cbdffd847d572882401617775b156ad196cd45764cfc00aac2a71f32b75b84b93cb9e374c6327702820ef396e8b3bc579324550750c81ae3756d32cb748cbfa3afce57f98ed0b8e8cf23b73c1e987ad6e6bae753669b5ce807d4a190edc71b6acc27425cfdbb55fdd15e4cb2254b0e173697e4a0b7ff2d8021e454c94b9400d53acb8ae63a7ab4092dc698402454dedf2cc432376b7bf5726ba633beb57bd6aea2c219dc6e953fd48e64842d433c54f97048bb60a9981d878c2127b7540505bbab15d589c0945c259a3ef8c3ac89d62ca92b656299dc0b872d5d16fb4fb9f5c5fecba834590075c5f95fdd4884c6ce3f7f761a8764d1283af563ead3cf200e9342ec79246061f17d54cc1905f678a3fb9c30c11532ffdc678d3a8987fcc0b9ef20812fa2fe3d3813538e96422729bd28a56142552aed90d89ceadd5ffd245c9f4091b4f65b1eb24f9dae3a474260848e4511858f7523aa53cb7ccca2fbd1616c4924ef689e8bc7fbdb34ef5b6da660f42249710b3a2994a1c2f7409a1d512e1ee442c840f00ddfddb4269cc7d082b923e410f010a288b48a2863208d8c2a2d7db8f427c5782b62bfd18e29d4957cf7e4346feae7d5c774d5a5c954c46fe7c4506e41f4405f6db867d9737dc7e11c82fdba6d45d9fa6e3b4ce330c387ef0d5d61ad3217f9cc5b499d75de82ebdfebc2361d12ea2c3a0570b587a0571e34265f761ece7938e87e7d2b4dd61f87b47020590566c128bc157dd93c21f7d065ba3258681d0045da5dbdd808633ce28b33022c1c72b217a925c980a8bc8be6ab4f3ecf34279567cb806f6b4f8dc2458abdd179073da63f28bebc717378fca82d6feaa32af521e8e370fdadc95d97f8d995f60671cf83ea6267be76465e305e14a1a09bf18e8a0e49b4cd661fdaa443a143d79b0031335e7ea83755c9741050876ec88032faba2226d4495df80dd16e0a50de025c6a9ce3a5098fd7a3c484c6af5cc81a9442976ba159d75cfdfc07c03b4372022e82a8c3ff132ec47c567507b3f50931c06d0b33e3cae129d6b12c825da4fa621e823e44b34d7de4fe30c95cbcc1f38d5d83fdc014afce8d2a3429fd97fce0ebd37145b0ea40e2ffcf5c6a0df247eff5148d545c5a910650a18be77612d28b65f657a74dcb72c6dc97e23e627c0f63338d91fa4de0f6f13ae4c04d38f5ae63982e3d4b647f6d9244ffc82fa283a1b80d6f9ad6dbcc69f7139bdb428a6918d04b242a193c2db9acffae1824172e86574c63add050476f80a26ee2b0b396993a488026f91ffedc7ed54eda0407a645a6b810d4d0f27892f4b003df7efca3b80955e939d3531a606e8e8414b9bb12660f181f16be0b8859bb0505d994adb9fea53b076c8f21a8cde6f1fad02a7b9b71f935377c82e19e4c3d691ad9da0efff277c183c615d1d0a94dc758153f8f69efccd8010c05bce3f4e2a4eae638669e1ce5b1054f4dabbc7e0bd845ece03ea368efc724d02de67fd8137d1e0896ffbd0458d2341020f791d388ec6a5bf5d17262cccb49d0e3a6998136be5e47dc1f853339ebb91074fc7a312bcb6f6d6690fd67caab181310435975b52d51acf20f1e30eec53b5833039d1f5e3cfb271bc36dfe513138a19a06e83ef693a03ec017af83e12863ee435422258909b693fdb2e9b0c92352826b376e6463b7f3062e7e60b578dbd9dc8e3732cb12f84ab8f2a59a039a4a0dbf691e126d6263f00a258e5b4d1da8442afaf4f59a62d25c9ee3e3a7812d6e125e7e02fde35d5d42548b8dc5d337554dde71d29219e15e974eb9b539b2e857086a912d574dbb6e8fec4ac4c9cf2eab9b02da1a31d1f766a0cf5a63781d34cc98e889e54734e45e80d8487b8cca6972d79d1c15fc480db02229b0358b4a7a966ae25073f51f40f5bc226ffa394c5272a8b8210819088906c365a2729bc1207d255fcd1f8a9637fbecd2a588f6db5072b75ad03eb099d52e2b8a1764cf0b90497268e8302e213137b7eed46eeb01cb3cab8b11feea8157f003a0f95150af30c2f80489f008499672c680e3f542452b962d53cc8fee4a7916f3b02f8245356ab0603b98a54195ce74c08fba62202fd949e5bbe93ae57ba266a2c0a13fd726a5da5115fd98008e41054e244100af483b1d7aca5147f79d39aab9db37d02e084809749ba0116eba57ed184660161717bad99589eafe4b37a8a8df06d97c7166bd0571d46a57b3a379f3c5fdffeb8025bf47ddfe9da60ad15629bd4b6f8cc9c56b96efc941b4f6d10de1fd5106c811f8b02dfb3353895bf4abf4fbb1e1485dafba8496800f6e5fcb7d7d6a4b5df5f21af6549630f2ed67260fd3404017f856ab12960f03bace18192f90b2f2ecba4c13fa8457fb631b56f2ea8c3401f9e4db42db95025a2b1c46438de17d4f9c5f47692384e59e8f5b4fdda4e880fb705415fa7d4a168b4ba014d1fd3a7468532b0aa6d81eea215df57a71a5afcc37628f2b5e607af4a001a2a84ce9613e47fa67be5183180b8ab430003556a9bfbbb9de46f3edf044a034692a3cb81f84f47a5c8af38b3bf2e37e5509b11d9d02915b898e438a73ad94ce3ec327d23cee75b94f9713584f4734a2acbc6e63553dc132d82ad5a0cad783b6699a979f8023d4a18b0c39521cb183087d42f3919717512412433198be6b75d432d91387b3cc19195712eee169d9da9810c3c80d2c384b1b8100e0d817117310e0a524f29c904a08fad1b86d0067403aac667641dc49b6fe6b8a69ca9d708352bd29504804187158bd70225ea702bed69b5384936ef29bb5190854d51731b0820f8a22f1b30c95f0e818b11c27525a5423b37a6dacda0127d3a32a604ffbff881ff31f557113bfb8c3f0ef0f48001e9c8daee1365caaf03ee18371d50b777a4c358ad1dc06d5f6989521639fd1b41296216b4056470971e18acfb49b144d28b79977bfef39fb4278a8d295358c153d2b26131f3535a08af817b0781a322411af92e371f4d32dab40422c0e373fcca741e6cd063bee17456cd04d47ba2ca43e1d69f670559d123ad8ac57550fb38158c1a7c27ed03915aa23fdcfa8e3cc76b6ea67d743785c53f6282e7af223b0db5994b2190e5cdf42c006e65d24fdd84281fcd1af72c7db97e8190fbd6eddfe82b1a04ffb3f47a9478ffdd320427019afa83df2a586a8e1871691994950a4641f68cfc59098f95ccc1ff10b3f8aa45766329411e2068535cb8a79124620dfab5a87085effa1dac37879c8d7e384025a0f27e8758d7ac5a00a4cbac3dc67f89bda14326071e253a5f4a46c7f34b9f0e951902367cf6ad0eaec623af431ab56fc481a37140de4cac9e7a8c34b59b0d7ced4742c2fd05f0edb1bd6e3ed707761964b9efec2fc2ea8f8fa8eb7827bf120cf41dbeb15b7e1e73a3cb09cf5bf5081318caa6fb2654856fad55d2f6ec10531b540cd4861ad76c3d1faf64c5546c01e94b245722b71bb3a971f1d12555473744778532b5ad9a80a66fab2dd562f4ea0886678ef77480ebe9781d64a805bc34f4f92747c4964fe24c2e7eb363e9f836fd5504acedc11c949c1a291be37ff7e2c9335392376750079ad67aa3f55c0e5f34317c3f7a3f57542de2b5656c2682b72dd0aa80829353771ef22f6e0e5bafe959964eb53131b9913b6c32bfa68bd5289f3b9cc14aacb2a754fc2d70134b556bba1decbc876abbd2311131a9272277bd99de9aa2d406062eb96ec558a8bd873cf212e6a3f12cf69dab7c22a0628cd2fcaa5424c3c351c653d8c4a7963324bdf37e2fbd0a131ad26a07079633ed2d8f5c4d26eb92acf26bdd1f9844a757137225dacee06d4196d7bdd03e0ce23b86f562feb12f9dd57a7f111a542d0a690c4c2a747af13c21238f1f9399e729b22bbd973b9d9153f14c68a64582b14dfd619497f7ae5ff5166360f5cda5c588f57e306f80468143750ac0f31d9e71d098d5f3f4c0e38d36b5b8e5d6faec186e8a0106526936afeac518008e2f11ff40afbbd2a75cc5296f73b6963987c76068c456a7f663085db88616bfede687b9fcc685c946479d850dd4ceeaa400e22e0658e18db1ea161b4b2c695788d06a228351e630480e0750905d746b9d02a6e1a5ac24301b8afa79012c825fe57923d962f64fb0331c8cfca57239818ae9902be522b127a9a22ff7890b14418a4d6f3f2a1814c18dff88e9abb7a0d50442285d3370faecd2ec2107314c7194fdc986d4372be7dcbf2395b821922cde8f98fa062f0b73e82da5783898654cd2a67a152918c63b7a4d253de895964ff6834a7fa72656beb2208a8ffc2ce9e8732adb94be5d6b8212ce80ebeb76388cb585f313c0b7e73dd341f7e2d27d4ee70ed17a700463804e4ea9a32a3141fd65a41e1f60d3523163b4087a1b5bf818bb0e50b3518bc9a912766518637a97596d4ab22be16f93c9d2dcea7d93e93bbbf6ea2f2293c4fe4a5132976d31f7d4e0f611c8a50fe5eb150dd67e9ee70a96bd0d2aa354c1308fe89d0ba6fe10698908a271e81766e6d6a777092b4a7f50b7a0705873a6646eed18585a1a6789203254f51386ff60e2d4f5a11d871cd72c1ceac2fc16b3f7c0943e05a6781606bc5f3a605f3bc9985a64941e6c0862892d1510777de2f9e5e623de478936a603ae6e4d76bd5d0277ce03e7317d25c80fa45e95f0668ed4d9300a8d707adc842a76fdf29ad6813689ae41839cd965b9d552480fe04e70f12c4ec6a022e3e03cc5967cbe6f034ee2488b9bddb3095eb474977fd2a98e1fcb6992c6dad16cd83c7f9d692545fc0c722ed6717a1675675457e45482ceae01c01b9ca9720e7e2affa2ec51bbb1f94072b72f70cd29b615f609e96494c236bd7bacdcdd2a2c805f12fa13a4e655b381707bf7086b8f33f13604e73e8d16b0b95ab7c3e057ce1bfb02cfa40139939355d7e7bda6c999877f70d38e20d05e946be9a6f2418f75b9755bae0dc529ee11143574e3da6beb191752e04eea02ec6a7ba504e87f2595e1646a1fb18f3bd7c57305ce2a21b6f6716f48d5a9c899529b3f195c0707dea11c2eca9f4fbde3e328c8c53dc10b5f4e28ddcf0e0f6b0823bf4cc306de5a0f49d26af9a738dfc692a3abe05e7905b94497e94204103fd3c24f1b1ebfef143bd2ac7f83b1fd733858de8303aa929f598c47186e523cb590d0b32098c1b994e8edf2f2d55a1e06cdc821f49bacae36c487def19062f57aa3b18403ddc6be7aaafe4e5b8b0a0b190b43266714cf3c6a6ec997fb54d0caeda0f75a2b3a397e23d686271ff14c5508556c54510baccdb8ccc43aac28062d8cfd147e0d5a94692f001815c6c49b8c7350a62448ecafc290630a1f7a868dbde73c9b9830ab52100acc1682c6516201e861831ec54452cb8fd5fdbeed0cd1dc7ac3ff012b991d03357f2406c5445a65b62c75bc4c8f2039157a21a17a077d09b647a17154c03fa33dada30a1a09cf188b0600855539b2abbfe4186fb812d9d6382c354142ad447091ec16155b1e4aaac582b5f255e06483ed8844621dcb92c26ee62cf98bbcc61bc0af1fa0fefe478d0417089be4ffc0623cfb2831117e124ec909fb22867b2ed5485b12458c26604fb5577aea88f450c71ca1564549c6e2dbd50c1224d965096da794807b79230f5357b87f46987a90130b0f31271d127f1a21612498eb06c0155cdffcab4c70cf4869bea868b9ef08d696b95b4f020d615a2cad84f731dcfd9cd691e96d7c9c0a9f79ee68a963be15923e243735af04144c6545c5c844541c44b35ed92a90014bb8f6ac42910c8460d66fd457736a83124159ce6964a91896ad519b3e7b1d5d2d357e8cc8a83ace5513aa4e2e70cb26e5d978abe284c67717576fdbabc77aec098550045d6764f86cba8bf63eb6575c09854072b381230bf8a33c9483a84f4a8b3939b79347219f326b73610adc759ef7d55f976ef25553c531665a6885f1050cb199faecdfe72f30870f13152bdc6c2b3a14ae8740c3cb07826b91cd0906880 +MD = 063a1e6da2a5ea35aeec33dda270d18ab68ca9fda3f18b52026c6692 + +Len = 37736 +Msg = 2ebacf8fc280347beb7c1888dca8dca39c7a72045013c105bdb94b3509870da8c163a6922131bc148f469c56682020d6ff54d600e3c75efe612114d14a7ff0a1f769aa51890321577587fdcb41f293bd88fe0acc4451bcf44df4dfa81c066521d5b220f5855e2aeba725840eee88fd003e605691fb17a3908718f4e2068435d0652753a59aaaa1792d0a7948f74926472a6301779183db7a19779ba691612858aeb08a8a524f4ca80d1c24a0e59cd63952ed55a58dfc2b590af81c1c4306065eb8360ccc34b5f3215145cc3f3eebd47ec0e7984477e95dd66382be6da7d9978d8c9f2292c845608c016cbb4c8d9de9bf7c3a137bd8b437982bffcbc14243a38a31d5140497655a90237937f0571adda48ccc0e7337c482486a56893f9eadf100afbe2a4c287ea8d5c153895326c978d4fa87d1531c81058d296f4110427d4a950f44ac8f03f91304e2e4f99c811481f8ce52a3440f538a106f323a5bb61d76f1584ee1f8b13c63c58f13cef4f162c2b70e14ce6e99a2d7784487be4983f33dbd92c312acb9b160bfcfc85282fd1c01bac4b798f841d6b66eb0561302306967a1c58d87d6a3bfd19baaebcb6f2da807a8f7224a0b9057ec9abc8782ad45e5bb44fa93889cf8cd8000286582e2096f9c2ab03d2bce0d8e44a36f0253734ad1024f39bd5d263f453397521cbf041ad987e8f6f0856a40e18532d2afce7bc894046988f34d9d008eb3082ff9cafce74f9289d1239e06b1b976eeeb763bee4796893bf11da129c410c8fac7e4eaf3f83783b649bec0cbe97fe180c440e1f34d3f596d7b23a2f11133391523c66811d6fa231667a931e16f998c8f65f309b364f73ba62eed951e725fd0024a858c7d08013a5232cd396fcb713fc4d479fb551326f98e1364c5d76cfc5369440b9e6016b39011b310229d866dc4c71bb8ff02e33459ce316e794589728bf11a3ee6e18977ecfcf05b329527f7e23f429a5de25a89240e91f4f89050294043d308ac29e8b718baf397b37c367660d44f065c1c028d21f539df8bdf498a3a077750375fbbdadaf4c4aaeb7d3b52072f4ce345d963a91a2c33157a5afdfb40e40ffed0ac8b48fb52697e23bdbff29ff8401b60400343d55b87800d2bf3e51c82a2f9bf38de68437becf9a2674ac0f0d63495f57a6cc51c293b078c77b3b1948a382b4c2a3fa479185405b2a16223c1722f394cae2695b53e59913e69c6c571a4d97bbfab336367d0aa8999939183db7439efad05b71d6843e8086c26b38b7a778ed15fe2440ed34cf56ca0675e4907835a9f5fa7a9c3ffe0f1535ed9026979ac5e1575f8f90b86343d980f4251db0b479b31abbb84f140bc7b5a5ca83cc934ea522f4914dac3482f8bf42e4ef3a2af6a038dd969ce0ef5808e05aebbe81275da7108235f709ee0e5e66844b3cb06bd919b9c31db1182e4d3323c9b3b8eac0224c3864b01420518ff56dc9b996270fb666a44fa36d4b4d65e70e76c50b7ffa36f50920821d95eb625e33879273e463391786e7ea5a00e92c94fee6a21ea7322632115a4e7bb1283fe96642785e9f12bbacd03034efcf7e2bbd839dad7af7046a93df5657c728a47337649eddcebdaac8872e9d25970d78cdc12b007998e5ed6e9ac1c9408862dca6b8bcd1254ca687da36e0a33ef841759d5053c389010a59bca777078b27d62d34fded9e014100268b4c94c6d38c11d114eb9c3b4e4bcad5df5a5db5ba3e1932c8776569d45441233638b99ca5bae527cee372ec4bc1adee3123e44830339279bba5c2a920eefffa757bdd89080d41e615e8666b040b3a1f7c84b9239f90e86e990963f079898318c3967f108d1b9ea8a46ae52c09a0e5c5fbfd2afc5ade718deb32e7b440ac710aab08fcb7a73e71cbd4cb8d93cefb479e4a0de826f484c4441c82bc8908d0504c8653f502e91e61ec31babe56b6a2b5e4e1374f37ff2c575dc7a960d3549d875b0ff7e676b513c5664598f5d9630fd7565bf9eea3cd2db10756e76327965cbcb282755f87bdb732e67af6c28056cb124f14d634ff011157ed54fd31ea50a636ef985caeca458130c96c44b300044d0d5b964cc0ae1d6fc27c4c3b6bb005f2ac6ebc0e8292ff0a25ab741335ccfe0e1ef86addf04574a1673097226f0d48da73cc581b49864caaa7f93cd2d94b9696cda20d0a6239c95eecb6e062ba567bb6236516f38218a0fb2e3f21140c00707fafd4f742950f7de0995b924cdc20312e41d55337badeae643ee9cb474c902e112c2db416f74af4df13ab3761530eebab45a9a748522cd78e408585fd195ef203c908be180750d0c2d2324a40ad570da5a53e8db5f6a79ed1d99efba600d19eb00d028f9643d594045b7d456b49ad39a5f720610106b376c76092a6c2819c76be7e87a3423b2db14c15d8a331c675d234a1ebebaa00f4e1d78c0cf1e31a240c878414937c6bedaae2a7f10e34925589da3bed681183c0829aa27a677848ecd293c435dad5548a03608842c0f43ba0a30f3bc170f7fdcabb894a4792028c7b6b6b9567e3cd63773d5e1d4a75f1310bc02c07f4909ddd680f1bfa00ec02533439979e3738c53759cb23fd7487ac00eb53e956f341a3a12cffdb2842e0084bcbcf704500546d3e962f7a9f5d909529b3f0af7f49fe89f78e004f5b6a1884c4968fbe007fc125f7b0fc9a89620b3d2a1a08e7076541b13f0fa2d11a02fff85c190ca976e2097fe13ea52c322e721470721f4875d195c9f6266a08da8a00e380e7c8fb1ef387eb8993aba8201f4fab9b50a61c511b7534ab66d86f138bb5c6c177470b4f10e6e95f548296d9b0fe73192a3ffb0faf6a71cd45507c6b7499229c4c0952adc68109e105cc60d580290b58833f6d2819d001da4664a938d125777fda7279a170f0cdad0bdb9e9a1949c507e046eb30c7608560fea78e021de545faa724e8d0ccb09521eb52b89dc8cb4075d5c8ed9054764cefb27b836dd7530e8b36a318a2263af0ce38a447673b37fe40b847eced2d9bf8d5266331b289f941b00d4f919c1a1a81205852b37ccd1a6ee71c4671addf4bf9cfaef101a6a2328fe7afbcdc2514b996c6eee095451aed02d776371438c5f0c02dd0a78b80cca939c0726d60e3a2a2d20040d05566811a6aa06abc3d349e44fc7e1ff937f745c7efa909c3c84e5060a38b12948c47bc3cf6c04e286527b4930f4f01588f60ba19022fea626adb8a7d8bb5b8cf926f18df47b5b51e14689575690f19680a53960721b378cbc0f1cd440b2ec7c41053235bde0f140fd39ddd66aa3cbc8a2156763cbed259628347a57e9244b4248e7a683d1a2b0f701b2de8e133668f417cdfb7044a1af0c8fa438f67d1960263557b541d9c97ebd163af447fa4faf6106555f50853dbc351ce5c07aa19a136f30dac7357c5e45dc645887c8c7f988599836f9cb35cc365af48178aaffad4c6763fa44286368ec9a1294ffda2139db22f5f733a8fc5304c34200ca503f5df354f43e94e336ef5b404976c545b0199005442074b184dc0eb82ce81d3209aff07f0b2e1f2b9cfc7a1530873fd11da0904aae3a23ac726e3c81dac3d81a03ad2b30d1534dcb3d953163f04ed64510d6c1395accaa6271127665751865ced85e8daf6d348789c2c56870b053f26b30c40c1a705e709b27cfa4ad25702b162ecafc43085a332fd3910786991ffc09267159341a78dd1e3cadaea2115292bcaefa6135ca4bbb831703f6ebd3395ae899e691d07ea359b559b47c8962460286fff5a5cdda91854e37221de7852976d032299a36c4664c2626edf6ad3fd4e33ec9c3ae5361b4fb57daf664c4d778b78999445eae154a1e3a4a5f0555d1859daab66d660f863a8368a988b4c8f2ad84da753ec48099d637b96e128fc840e098936cfab44972ad87474cdff33dfe50478c6f20b3f37792006b390f7d4fb36e3dc093727f484c946ebd6a030b6922ea67672ef11550d806df18545db83252b5f2fbd4deb1553d78a092abfde29587024c335bb9d1dfe3bb3d87660427b9463f200ad74531b86de0858eb9d4620855205eb89d81cfe8c1388381180db12cb79430b643afe7b9035485793990720cb3cc05be9d50f7b3990517ce127f40d2cc3a88c7c024bba0285c081ad63af9e7c98fa90c022e318894ab6336fb62bbf4aebb9205f8ad95b40381763a36d9e1e2c0f0b26b752365aedab1cd817bbf09da859fb53890515d3ebd4a37a101751145c07888a39e387b6e929fbf763c9d14cc786c58273319fb867d40b317e0177158f0ad937c24745b10e4fea0dee304c312aface59b870b57d46ce952647ac5e96379193bbeb0e0eddcf954d8811bfcfef353e6c35c34325a70b2d07d4f798961ad8344e930e9821a19f92ccf278a8eadb88ca35a32e393eaa1767a9aa2826bc17f35b5039b7864c8110c0bec98d8c1b9aa816a12e53c38f0b1e07113234072f121b7f4f3c7048ee00a587b999bae9e080e5bc3533ce62855e6193c4e9b58a6d9db32891f7c36064b4d08033efab42b832f413685008a6bff894963b5d1750f62f5cefdf182b6d6ef22422c417b917212545c4c10f9cf0ad8e1976eae8f3db672b6b2d6cfa02b06b6d02e7c0be7ed7b9ec4d48c5cef5e0cc7382ce6a39b58a2f267079f23a03d9c87a1f67d0405724c0dc8d07fd1aade79b3d43053fbbe6fdbcb50f4dd544895a249dbbfb7949fc6ef49a878abd8f1f85986feca3b1ec02a6ae3b9a21aca61db1fe6c7b4b1247b916c38acf59ad78e54b527fe22287469305624ea38ddedb2b71c45adfaf31a637cc9c41c6fd4384799947e1c61a165812aa7752adfaf2505cfa04ed5bc05e01c2e10d43f0ddf61e56fff73a0af2f59cfbf66bdc3bf17da20ceb3e9862070dc7150494f5ef845bc3080fdeed13358b81c989ae6fbff9d74cc5a5dfe0a4ebb78298a7a1fc1588eafef7196d7f916a7ea305c4bd71bc8c95bd11ba775a76f6e1b0b83ad2bb05440a4ecedd2165e7fa157d3b481786a4124f7f7bb9836a6ab112ce1e4e95b7314e502ed9aba934897d067cd4845b1329335b106df392a4f292d157154379751c10431bb2055370186bb83e5bf9e6ab9e584efc5319037e912493d847c9ec7948326991e28ace8d073ea11e5c2958b49609a1afd59a846be8dee0ce10426d38281d2a2dd5ac58ffc86e67b93f831fc282bfe9b76ff864014c3a3ea5293d7a364e490b4c25daa15cee93627b70a7aa59e7038d8f8ca340b34dcf03f9dd1ba2081d3e83793da63608ec1627f1b9f786ff554d13b4b62b99166ff5d738b68d630237763931978f65a8439f3e9866034407301502b36701db8f15473eee4fd33bc90f888301ce06deaf77670cfbff4b502629f3d10839c686a1f04b919703bdaad117de07664b9cff731a361988f05039b08552151f88da38e3637b85af6c7d2e9ee2ef2ceb8ac256b78e64eacbe3827f5ae4c83585eecd60c7f14f61a404c235a6f34469ee161762d1567c073143728f69baceb8c7c6007cc42c4fdc21470d6e7dcb7644fa87fca25504f3f5559aa0e88199ce1551c9240b5c76f55b83bdbf2777cded54ad3af2a3b70c651ba5438e2926e44ee1b042988b1553b84667d367ff498d220f62a989c57bff3800ace8aabfbe3cd9946fdcee8a835531432a129864578bbcdba77e32b6183ff53ad8f4871adc05f6b3ecf296680b0dd8d86715b0d5264c064008037dc410512520b5f193c8f4d21eb6c42e10d220c0275c9b3751f03a4096e2f0e3db9df8d52068c06a51589d23ca1361e9fe27691e95663301ec1407fbf73aee99cc92362eaf6994b95038396d815052a0aef6489bbb7bcb0fffdf13f0af9e7d9fd14f6ce00ab98f7910f65e21bd0422fcb3bd53a9f213cfbc0dafe2a118a41a608a33e17bdabf3d2404017fe305953f589ceafedbe1b4bd808614f89fdad2417647de586488010a44b9e82323d38a244edb1dceb3f2d51107f98cca3f5ebf8f6baaad163cab1593559318cc66bf695e49feb42794bdfb66bce895ec222ca2609b133ecf66ac7344d13021e01e11a969c4684cbe20abae2b19d3ceb2cacd41419f21f1c8651490bb32118212cc82c0c368a855e6ca3453daa93b75c2aba912bed24764b5da6bf45302a7b7b8f47b45f7815f5e2613f08301e59049a047488d34ff04160c192b24a8cd6341672873bf62b8cdc4107058c21d4972b8c0203417505fe8743fb3da9828fcf4ad81daf483b179a4262a71e587995f432196c8f4477d8f550dc53ce2c5500bac5abd7e8649503e5302d88b1f5a12918232b893f1a43907ea413106dc32ba942ae76ea5a166cb815ad8af4e7e9ff58ac05a9a23c4a3ff5408cd07c44f76c500d0c219c2ce629ffd3c26131e8befdea58e17affae5cd5cee40ffbdd784f80bec3e79336875c329ec7769a88dbfb02a6c3be88e8bcd86ce511367c7c3454cfbb0d47b6ff9201f05d98d11d41e829755596a4baa58e476b0070083ba19e8cc20f93357141765ccb06eedbd2a439cfc0bf789cf87d4d313ce8a88d2094de81bf81fcb8ac425af62c5f739da2f9f3754aac12ac2aba211c466562cd149c1dbb2fdaf0d94f4c67557932cd1e738741a47be40cdf38a23192f13f46d1fd0283c17be2199f43a5c4031c45a4662f9749e2bb2e0d3a0b7ea61aa53dfba0c50f371a +MD = 164a71a7efdbcc0b58db4060330559edda627b445bc9037e41b5c4fd + +Len = 38528 +Msg = 04b6614752ad14abf2a7dc6aabd87468a06ba5578dbbb0874ec5ecffa1deb0cc2ca17399c22c3280e28c1320807547f0083634d2a1edd4ecaff758b39bab1248d64891081b2b0e5ff54607dc82cd298b7632737f625499ae37f4a6020668e6ac099303bce7146eee34be00c73748e2e1f146aa845a58c675eea21e13687cf59fce6a10dcad4e1bd8a6dc4809294f399b815a2009116225ebddea080f4c4f07ca2cb50290f641ddc3538926c9e048f7612e571e370ed87cb60bb4ab1d3749e4d52b5c1f0249557b5844abe12fe39de4da0123ec35d924947e80e95066b3d25367d347b0572ef2bf3e802bc265bab4c8af01a7d22cfaac35ec456f3f1147521d282d5ffcba2d806f1d0ff21190edf76b8837cb1844f9da26a76130c0477c310ac2408a4d51cf67549ffae716db04cc950ba97805a45f153158dc131b30d8d7e2da14b1e9449b0f366a48f1186c889d0de36194e275b4c41ca7bfff97f3e5ac6d1bb2bd19bc1ae1dd2601fa616b01d19cb66708f7de7e51b03b11de7db92b19732a219425e1d243107c2ee93701f5d00a2dc1bd8c084723b5bdda9715a93184bbb2692055da4d9e9913d6a6e356ee021fef799ae91b96a2f3d42212a7ec7f560e599347f1d0135b3e950118ac9173cfa2a59786563ef4363229f2377ba99df834c7a6f340eaaae0c8a7b729dcda0d9f5df6216b1a99e847396451eed90914d0f5a5aa0b8b519c97fef301c0ba5b42da168b21307e55fa3dd12c481f08346a48199ba8771a2c71e6aa21e6c58d399de8960b9ebdca9ab280c229deb251512ac76750a61f35a4af3792d96f219e9fa331a51fa1fa468f9978d4041b8ffc88d9b4a86dafeb24e1e0f17fc2a3ba35b3de1e0a6f31cf395d368ece65079e51030179a499c8c32e0a8b7c3a848a79999dd5158fa25624ed2b11287af3abc897e7297d237dfb8f9d47394088c82c461486107ffa6018e1a822b3b09e570ef3185fda28edc14f37b7c271a53436920aec9618c5145380eeb36aa38c033938081a909be2c90ccda3c5a0bb130475c3ab6af4744da5219533562a6926713f32f0e6a5f41381067bbb0e0c9ff2c22ec713d6c9ac8175726098d88b8ee4b0140391c4c46d23db586368dc2ca6aa3408a728783c49c84befe70683b49930875eb3d5fb168f7ba0aa8d90752857a323ac6ad49776d289f13f34639dcd1271bfc64ba3d5c2e18198a3ff1c22293b4556c118fe7d9ecf2e2d0b4f996f00820e20f3d2e298f0ec9e8aecc3f52b57d8f997f0ba8e70ddc81ec8fb3e8e41737071728e507c8dca363a3f2de101d8d9b925ace1566bb95b46c18ab60b2c5b4e64017d3ece58fc7549be800d5f2a71d863335e3bf77fa03fd07f3ae5be5904bae62609ac525e2d1cad90133447573d7b608975a6a2b16cb2efc0a22f5dff85df7f48dd7fe77667e5e81ac04ba17085eb3691b9cc61e967db2aec883df20526e4b6cfc2609288f4f884c351fa735c914f70b1f2523b0fd7e3096bb5b684532ff1142480f75d7c1a7e09f28ce8c705a9d09353e7e3390c05f114a5f1431cd1e83020addfeb4f3a229ffd113bbea452159629de612561c6392ed403038cc16799c762d3a7e570ab5482ea872423132b1cc8baba28c0bd26bbc1d0ebb5387bfd89de62fe9f8cc9b5f75057bc10c01a78088ecc4e045d5514d2d390c6cdf0527b019ea997908961415530cd18c63dc4211f11e904bda42f79c78c9dfd145b4fc9492ebe0442834138b44bd3031041160faa7998431a3c553be2137ef6522279cfa9b729af7d236f805dc9f1e5b4741a28f0ee6274e4cecf446b91bb1b4fecd976696173fe0911f50398d1af267b7fd7553b97cdfde301a37aaa2dddd3d26275a4d053235badf4dba7ac8b962e2d0a557fd19c6347df7edbc7e7106b85a52c574227b6c12d32742756e3202d6592bc9d8cfb26acbaa0ec7f126961ed9b8ef18739b6b1d5dc613ae3f783b8fc34713eb666015d2fbeedf495437949ec7c56590b6fc56de8d000ee1672d57a8c019437a8f32b6874bc903e27415ff0ef90c50eedce9c128170d738c9af218f6435c1507c1dc16f031a4f713cf6637d7e3fa2b5353d83c72926b0be0395af1f0d39c13139ca0a9c6542f335dd49cd1921f1b7f9e9a3c1b4675a512bcc0ec6510d745c81e7e44f15219a44341122e4eb610eca7f13ea9f02c37283252c02af4dee4d59e98f52d802bf8c0913e069f11cc5fea4f2baf965d9c5d70e542c57b33c372e821037fced8cc77f0c7d52063cd3d6290df8e7b85b60f6f1ba62d3f61846717e9d9feacad6dbc2db131870e20d391af8cc39a10fc8c0dd284ff42ac7269223a4733dada4da163807e78c41e3ac761bd1ab5ff0e6f62003e594b537b22749d50acc938a724365af6d5082cdf260b1611d700fdc252ba9ee8e524a04a0619210177048881c57f1b17415a21df873127245e4f36eb4b083288d515e99771d965a332605af8a5fe2c584009338db2bc2d8afcfb3ad7bcdd539485997fc21a37c3ec6b77208a5a2607405d7fe2685d1e91bc5f9f7a263c9c7a729329d37843b6d4138ec369a536a92445f638af0dcacaec1ee29665352ee83fc96a319528a2d91edf28bfa6e7dfda0bffb6ce09dca063a549129a8ca31822ebff976b3531ac00fc95a5c658a0ca4b36d3fbaa7353625b55c18bf660fe9cef379b97112441b3e105dd92920f8e6a7f3d5941488c10752465feab44828601af8b13e5ddf2c77edbb32d8b8d2c0f54e877f63432b4827d515e76fcff51f80ae65eff001c114151639cfbdd224e81fe197f3121037d27df64b7b0fda16fc30d163bc37276103dd00b1bcf13fbe7a4ea74dba0b405568f1fd10a4329b52c557cc1a9e7b956601b7f54c82ddc7477d69e9cf5bb49e2c106b318be840dc5284dfe7b11f241479178b3b32a8e83268fa58ef455e77f165d4d3dce5d2a163bd40af6a50c79a6c424b411b8ab67947c8f80301d84cbb00a7bc114445e7bdf83c02af9d211d456568a7c1dd7c35facf107f5267afabe7949bcf0eb1d4b1fd6577d1c7c849a98ec79433f3c932acd293e7982d68f4066575e815b06dbab7c77115b5df32f3f3db596df6c027d1a36958f6497c4ecce29c6b3796e0bf1e8184e3bfb6df24458495e49cf80e3e84a227e9e49c275f61c9f43e305b87ee28989d841cddafe667e32530c841c7577132740d5a9916e4db42d5b57a6b8b430283781cd53138c08298f1059adad1bac0dab88b0047312462d6a79abeced606d1ca7f7391ba60fabe2c632bbaca16af9a235b2c7dae61691c0bd2b3a38d4e7fc0f61950f98110db4226e269cf197c7e2794c5b87ad68cf9346cbec9d2afddf5f48ead7cb48d31ac370ed58981cfed6e8eb55ef79ec89b1dd07ed4a3f23c6ab2981aa5c06be7a9b6c46da6517af550c8f80e8fb0928b771d19cb7a0bac3ddcfcd22268e2c695623e12c9bc8a5f938cd58c28beadfd27064136da19c7a8b91d1cca2f5eaa6ca1428f49ad7ffcdbaf8bda738a55b488a532d14f331aa08db8145aaac8efe2061233f0909e576e94533422d4bcba8edb0ce2148e5fe35e0442a9fd977683503bf11ca80f26aca932866ff4d84757039d64fe5319e5dec9b460c44fbbc082beb445e400efcce6765e512497a6b292da76b56dd6184d72a846194d963e2e54f21916754058186d9bc0ba3b546885d5dd100819e5b42006c561762c1b484861b4116db6b07193aae0ffcc9d73434987d21064e9c814e404e6ae7d4a26ff9712ce44518f9763c4030fc38c303c61850f8221d2c5c66224d3d4d4388dfe8ea2cd065bcae83f5534e1eeb604ddf6eac1d7b5e9599529c365db577cafdeed1bf1fb26fee0a9ee7069ad477e3b8deb0685463210014137613184364ee92639cf0d05f4d49cbbeddcedcde0c3392661db5ac4c33fd2b239640f363bf1ee4b2bd17d513986050484c048ab812e0791a194c7b92e1ed5ce76f488592c0ec6370b4ac949bcbb236dfa4400adf466acb7f357558d3c54117e38372355d24c7ad021617a54471cffde99929f3d0014307f9e4c8aa9b58a8eabc5586892f5541000b43f17d9a051a040a7cfadc26ce09cd0ec9df1736167553b677ddf795dcd93ad0e0b284290010f796d26b0a40171f794236f0f5408946d1863cf1170d16008c175ee36f6dfd4527333bd324a877049b28ced6eb571b8de28047585e01bb579233210c85d5574731441bcba1ec6849a126f3c95fc657cb1559197c3320173edbb8d9866dfba867946de4cd1878556f39c14870c93ac88ed85515f54cc4c436d71cdae98e4d5b56df05395fded8e8e5b38c2f45ce00e839aa28df3bf18c4cc002d3c7ce7d46fa656fae9bec9b8a7d3dbcec3ab0c4d5315c1938e7b8c7c30b7aed72027da1750043c4be5efba5199cd7a465dd5a44042e769409920446259ab7f57c2dafa15407528cd92525a1e2b254088d99aac23a4a19a91f9096e3108517c956abbcd3707a12067370c30882783357c7f21ad5d41eb5c6ef46092510351ac7a60f2dde36c322f011b48c4f8538e620b96932f56e16bb8bfd44a382a125218eceba8b28239cd5a84872c9fd479efce1b6817b8764cccb56cdff1e924fffcc6d45405d27d341cabd6c3e048855f4e81953bd6d22549b45c5d5e7d2ca791f8c01be430c73a26c729e0178d4774ce51846258f804cba2ccb47b98168a1b8fee0ea7e0521923d676dc8acb5b25088da3de6807a4d6d01dbbc5acd7e28ae8c285b66293924e9f0ed0cdbd267169a866ea97918f02d19c832997d9610cb476f266c2334419f015947d035f71f89bbe1fcfb8c43a3b7c979bc033eb80ba902de63939013a0e87ef31268659f51744b181f948e94e77602a2f25a0c87915a77668a524b6be9a9994ad735f94f7f7ebe954114fe714dd03bb0503e65a974480b73e528a3918e5b06cd00b95f7c2bf18ce60bed6a8d496efb4e7000e87216fa35931e97372901653df629730699d9853c86ca9e313d6c9ac7b9bc41e395ec099c50912e8496e560b552abe39d4cfaa253f42798110619fc07ae9f82157975de9628e74efa6f9cc5e36f129b71fa11c159ba8d7b587be40b5179b441cc9156e1b9788b893717aa1d6ea7f7fb2325b17ac44676b896036d313bc774f19771d1cb8cebe85d99239fcfbd99c6933f545c270a247dc04830f8160d047c21f49fa8e476ef984cbf17e06546c108f4050a646eb1d0fd32ed9917126bbd1443727f2ee50df015d707791e66909a298e42bc8caa51e89f7104806ccece4de7e68f94f615b889eb7d00ab9c5c21a1c2d246ef177250b7bf1b1b9b4b93bb53518baa75711f1d3983af49340cbe80544f50a016a75f34eae681a15e4619a95a0b9351953269927b68fe3fb6c1f6234e3999dcc7beb974dea055142dfeb91ece509e2378ac8dcecc15ea52886eab80dc0c0e5b76b019972f670602aea80a823cdb2c8ea461d418b824e4304d55373faa513ebab84e182249c504eb3504868a02059ef18cd50506abe08c476a3831a615839b68e0cb0dacaa24d24c7576a58cca6a960aa698791f24034306536a235aca2db4e4a4c9927ced110e94d490f010f264722895fea8d8bcf7990bbd8d74c424ba1bcc58cc2f397f141a52d6c5ee9d26ade3d9bfaa3cb9e327feb5fce4ae88b1b3207e91453c58dca88614f09809a7b3814baca81d7d39132ef4939632490efda37379c2b752618238b249b679c9c745991a0fd3bb12ece9771b231de8dcdd64f5755c81a4f9da0c6f5f6f9d0db752395fef71c715663bb29ac2f2f86ac26a8433b68542a0bb28d796cdf518a65aff2b303c80e6cf1fac2af49c71ba5aa23cd7e8b7828a0ceed470598e88bde61d1487d471abd71a87c4af3ef83dd81ae4caec8ee8e2cc7c3d7363223188f14f7648cb973f510cba370babb47695d62e12ab1e90cb048e60ff7c3c7b278457451ef28302e61efc00b5e7cd0f98484926b443fa88ee96444ddd5548ef00e954694fa83aa2167429a08cef7faacd938587322c1ce1c3e682a53fa534d82e468d1eb0e05eff40ef19fc1499300087262fb214d9d235db93ce099ed26cd1302a45e7cb216c64e5fe5185f56b8acb756ebc49e4c3d6ffa61c8aed83637d6496e33356f6e1ef8d760044c097ecec45e8db9fb12a7077a9a3ef5dc385eec30cc32fb9eedca854e381b3785e8483d11a820b6e8a5e7650ce659a9b1e0ecafa24556e6e11e4fb38d19986709243c6e5b3a16c8d27d93beec86b9cd76f968e7f55ce0db452984118021de7a22e4e2c76abf77d903c53379e321664a74aa5bfbf1b8dac11336f105eef9f55a1550c3b105dd4bd0c1a35000b95f6906f01c4c555e024b82946f1ff89e49e5ed2d926695f63c9b95553f71ba36eac9eb3576c35c04e13c050dfa955359b8b61db1cf53d903856e1007c21e0f21678ee08ae14878abfeb432c9ffdb7ce7ee71d0e83213e7f560cd291e54df674481c1cc368564111a00bbf10fa77add10941ef01be02d259374bfc8e41c3d2a65de699982899e8f1a90592a2619f9dc9c52c364930429fda76a4cd59f43bfc04d268e2eb6167f5b735697c5577ee0e352cf6a1495c490d6f7e97c3898f0ee92c40238731a538edbedf97caaeafeb859fbb41ae86c48e9174d9a58d9174c5006921a7050f56953784f2211c227c008a65fa8dcc85fb9bc2a6f25e7a0637f6f857e153dad917f569a63785df355ed58314654b79cb53f927625313276c6b0d378519ba87234be20aaefa46826beac3164785fb34cb701f16339663f4186080245d356 +MD = ae7c7315ce5f6c9ae9365d5c8cc45a6b4297289c37950b68a0ad4fb3 + +Len = 39320 +Msg = d9ad4c8839ebb52426234ed6d5071089147c5ce580fbd6cef837772e5100def54b67e75ec4237f732c33b7d339c517b3dc573423731c849240a172951ab0aee46275c7a539dffbeef0494e85c05ad9eabc29659703a538863a352ff43a9b0d65051e13e8ffe8d19c5bad3b73d38dff369c3c16c9996099b1cf3ad7d31989a47e1cabf4ac7e06a88553a6a725d827319f64d670429b13501be5fa91ba1f421b399064917b1e0028b2c17dba2439f1162efc409b89738705cc65bb8632b48d199e479113dc47a0fa2a8e7b9bf75cb057ea4cc2be2687845fcd38c6ddc2403346b42a7aa15861acc6f5a0e57326ab2f9bdc3da301a241d206254463bff32bfd4b8321676476d4ed331ce106693a8c358b0ab52d8d840838a3dc73d9544cddb0d013159f83be082beaa63825a6ba6989cf7e9da68a54437fdefbac72c355be177c6dec6b27b8662e939b8c89512ea9f40e40de57209b5c6f5e88d674359637f9f898901378ed54bdd504c77b931eb43ef0565e8875dfbad0cc8edb28d198ae1deb9ce7df9de43ba258e8d0439413f22f1fca0781b4abc56acf12a2d6c0e28c4cfe82db16bf2584a3c54f8f297b95cb8e40a4c0890384e505101e13c629fc3a4ed951530205399589c441ec75712aa725feea70e98af4826836b9163f356f1eeb231136e998a7d81bfcc7cf6e9d5ceebafea601ea7382045ceaec938b0cc2a2eb85ca6e149ff7b32316e8205d28b20816ebdf5ad2e3b7d3a9d4be72f0d57d2d15a685e2cb43b29067b9adc78a39b45d016b9e63e9041957179b379bb7b92926322f4a7a56ac5fd6b18e1cac3df9eb554326ea0479fe32f96de85ff727df4df70ac71f1efc0186edc73d40b8be8fde59a3c6cb25c8f98a1f75623f6c8a6f710765170eb6066baf3d716d1ed1542416cfeaf049ae1f1ca733f5b2dee326931dbe0bc61e2abc11632e79c6c0e049e01921e04e6d87c68f139bb67f44454571da84c47d5762661c2928a6f22dcee3ea71b54d883e99057b56c180727a782d312fc157e4c2474cb38a93bf966d816b6ba5f5f946c4ca2408f60b1b33876626fca5dd8da266bfb6ff0dd78d5d89e3288a3e48ac2f08036a5d7de34e6973f57afac3402e604cb3eb273a5cd8ec88db6470c3152deb112d21a373b0e2bc470f6f52115302c57a0c3454998a67ee72506544bcc64523e82e8f015ed9a0d60a9b4f2d177cd07afab0d9aeb3ca04094f2c752fb2c2bc7f93f0fca0c8c84d5cc48160b25e246226d489225c0f8275e52856da592c715aa61c59b2a738e4b4f97da9eb0a6db47e720e7e5687351c832b04b6dce9b23be6418a53f83f37959c533efb375ccc92ed06b276bf56aefef683ec34c508cc882af7e6c515904c43cc120e5f8ed104287689c75ba3f201929694e7b8dbdd03c0ec71379652c1ff560ddff6bd36919cdde3a456144b82b63e2b07fd2a6891de4bf55685b0f7fbd8362762fdfd78c31c18fbfe6689ff2f566c7c833672b24be6910d4fd9fa4c65604ce2422b079c8f0c438540ffa20721688352b19b780234a1fbfb043a5c98281efe062788c3ea1ef5c54a112947aa7f74eb753933259f7499ef891cb0be256b9ab55abb1d19aa985f06121aed603171020badc2075fd33256d67d40430839575ddaa7a3f1f22325d06ea40252d5e4219b4dc2f41d0fe4965e19a017fc221d14eed3b58a0c349eebd265ca72618e0bb4c6187b797f1e1bc93b1eba4ae2f519c9d50a4c1677c96315ec534a122173ee550cd5a1f63572c0f3754f9380fd67749e9be534ef3997bac9a7a0ed899a6dd52af4eafc1645f51b3b9213f262566178bcc7ce34be5a88eb2f89b47b80d462075b06c0547eb98d73ca1cd1a197f4cc6b4be12c162be3833d711cf7bc9ed83ccd11cabf71d9982412c89bf366c8e08e96727267a0dddb6ffab4e8d2788cade16f74c94f1bcdeba13e5c95e00a9d2091415a01e79b7d4a36682374ab76f15b3b35ab8ad91902b9ec40ae940055bdbebbb42b1613ceb239bfcfe348eb7f76eb3066df95c334220aed60e71fbb0ed1c1f6360c39550325aef2791fecfb5bc364aa4c37737734d2e78ce52fbf79ff8032291025f314007eb4b7adfde941d27fce902ddcab5be1bc56b119adfaa2ee73183c8b9fcbb98e6450f6b2a5c527ab5231ca52f5c5d902886244428a5b9ea4527b16eda24aaa757f8c97d1400b14b0e6963f03ab4a5861de102da9ed67d5e9c464a17e55f6507d786f8252f64070a7e004d98826c140c4646a5496ffa8b08471d9c488e15a136ef701a07deeeea259eb847f288db2f8f4c577a150e8a5953f02e567516efb5c0fa34bd799519c148ead1d192c08a5eab9a73ffd21cfe6ede01f8d722223639129255410f046d32d0eced790dcc1237ddab3cb4e4fdcf421306fdbce4328191c84242534c8f61a55a0f7baca80ddb3192190227e23395697f79bd661fca6a563e849c4296a89f9f40ed0cfb06087de2654e64c73e50b94b9fd4a861495c590d01d3c3bd91e26f8721e001d2ac4e52b0c3c5f5217dd7d37ee0925f4d055ac60c9eaa4922a2cf5a0389930ac21f31f2234a1a13b5053b4c69de5d4277b8684a0b8192acf06db1f78ac4607857b365e4b044b540f088edbc93057fe27fe6e74d5047075fc5474cc0937ef2eaf22d5ca2fe50121d726d718c80e284bfd4255a58915b82e20fc3f23d9425a4c32fc188a55408db09a9276934c9f2065b02e853e4353b8fc44e5844d7233500a17f346c7457bb5a86034b376dc4b06f148a945688c263a886ff98b725c73991065eea9a8880042b131f4d5e6017aa49ace9ddc4bebf60479a91f9bb81d6bfd0524d48756a535fb7516ba260d4294c00549f1930ee82be078fa3ffe4a3f8244915d8f29f82484aa99166eec13270123ddc18db2da0b2d942d6b42fa4e4a1f355d1706d7b78e5415c83af87020382995c83f5981d6dd64e83f030ed8edc4ac9a115a21d9bb6a0c05a88940fa5afe75dd6ec93d472be539a657cb8ce04e379039552ec8762b401642e10b2ed2ec004bc5796a214e00ab12941cc9a4599a2a33dacf9ce3f72f99d9941cc8ab3ffcc614138e27eddc7eb8587c37073f8df826fd472aab5aa4f1fbbdc301c99d8ab3d93990570a893acc9374244f8d43c291b256470c6415c596f12a963715eefc38c020047c1addb014c4cc540d619a418c56a6a11ecdfda2490088d767b484dbb4033337a55fd1857bd4cad6198d2a52129a551e07f1f88330b23f4c38af496f4e2bd9f079e24e032b4ad5711a19dd3c4b07cb866fd5efaf738eb7be530d23022fbf79f9a0aa3a704cae54ecb80b99495e2470a10083cb6f3b1c59f45fd6fcda7e477d18c3bf7f150589b1109c6d48bf7479ad366002720bb0e58bb80512bb40644c4c168a2a033a7f6253a56e46d1e7b48fe80f375acecbf970b6d0edca487c09554eba9cf2b027e2c1a273d59f1c0947ed8af22e94c6f63f454305be068bd694eaebcea21f6c23552e06417a7f116d541cfca8ecb641d6a9ed981f20cc6c962d938b1843ba21770032e7d805ee985a04a2a5f91acb29b160ef1fe6bd26d303fed9966228cab66c0c54ad011df5991a7f09ecac60d865d08bd33f223a1ba8662c437472f8571348a11dc0826a9afcf3ecd83b8b65e7dd7b53225f9a42b3d307e25a8d105c6a2053e614892396e7a92e7398f95cd2ff79fae063e9177bf73c2e46a44a06fc09c5d704c16eae46e488123ed08de84e292194591e44618deecb2380ab111b7f3fea1a23acd8e9249882e9720861f7826cbd92e6dcd84021a1692db9f74b168e117765695e309ed80b7df93ac9dc5116d0353cb1230d7cdf16fc96190e61c0d0895400015edc930a45628cbc9966bdb15d71dadf7e4bdc6e576da4c77ab9e1eeae693311344691614f1ae820036704fb1c59b49b72fa29776ca5a0ecc3bd418f889e46c269d45f85308c558f8c47ee9e14d6120b89822ba15b8bd2af6fd4a75c20dc803b84f0c71ff09f1d31be6f433f4dce3b574a4baa952e0681390865dcfc7d092ba50d018fd7983d872d2045cb89d02b78a83dbd6efaed00f6b116daa918a70f8d278c6f80542e4ddaab3a324e21a4d31126eb413e799e607a401f9ad458a7d4eeea8aa1623fbdb65fd5959f93b2d1b04ef8db3de4ba4b0e530ead0d2563844298158f01fd3f4a625ed1b8f263e260a87647951b2664fbf1c942479b66e24640d2d121f618fddf381ec72b95865958a5d33aa241cd1fb7f3260576ac5d7cf6b5e346cae87d208320e9e077eec4c0c18eabfa8919a19586fbb07ec0a8d3da9b8b149b113ff2513f0205432367e5bfa44b47aed209696b70f2b1d6b0f791a43da9adf97e6440381ac6bb1ab766b0fd08c3ef7f067bef4c7dbe6f34cb015c81e4f7f6879abd2f7c1c55538abc55ee23f5e0eb95acd6f9deb64833c19b2fff19995d366eecb386c64d9515bdb99b67d8738982174c8250c9227844a4a7e7401563c3b7d5fdaf0fbdb66f49db36a0e3c58ba6fd2d6fe7bcb6c937ec067792e91d4b11bfe55317900a5ecb360bbbcc2a924420a4019c6d044db46b710f9499c0d8582f97c57854d2544d922576d18703e6a7ddbfb85b7cf235eafd1ce685628eef9205879ff4cf9d448caa5e44ff393869bac6967d347c4c1773d635b4d2571a09017cd6984defb88222fd299cce4a8fc487c37176b0d5db9a58dc04a004df2ecfae7aceda0d1bedb51772cea6c522d19f16bd97cb56ef6767a0f9d0d3a26190e9a0e8b58dbbbd028574f0948c6c29c6a16d9a51a5ae32b8255314e375344709fedfafd4d8e03cc09c4061c5734bc835739644e72c4107957d7a1583ad42f861b674b573e40300ef9f83aca785eb65e7bd99a1a18796d4c7171ce3f9a355dc60bb66e4dad9ac71573945b983ead36aa5267c9bc6df3602179a41688d80f45bceb2bd2350de64f7bf108f70a0ca8b3d35564919a05ba7fa4aaff18b866ca8dd724682591e1bb1faf1cc68b9484c9c485ff60802752473232bfd35342e8ef8ca151dbc708db91ee2b316d97cc1988df1edaebf408e6121e4812d144bcb0f6c8a7fdf734fe3e03017ce96e9a154d7e6a2a52578ba333b3aa713e697b9a6168c857835afde68b771010af3a010493130c251043a58acda45d3aad1c56407cce124c8c77905666768082ed506b1e8cdf1b9b7f20e024065cad00e95a6353559f2cd363cd8ac23179d9504e6246c78d4b4eea098faa03804520507db42147ae447e98c3cd5bbe8f0990e52cb012a436dfecbd39d091adce164dc5d4ba2ea1c9569e19071771afd1ae3dde12fa5d18fc159b71aab4058742188bcd78ccd9d6495df1b0b80c6b2aabc036879b8194ba5f84c1a3b67a94348ef460d3f47cb179a0c3101c414ca6937ff8219e10e647ecd39605dff7b4bc1a07127385b23a53e0622e8fa85d38c28eb0ae757e3da8e544fac1be62e8f2ebbc3cfb2a3f4c962fcf0fd8b6d146513d81006ba8945c4a0b4727a081e904a5b1afa3270b7d1e00a389fc8a2c43a73675fec1a8419d073a1857fcbac6dec55d9c48dc2e7dcbc11a6da5ca9b666bfa591a7c76fcb6e4c9099b1bec6913c0c57b0a3c4a6a17b7b043cc96fc84ebb6ba29896eb2c1af081c2911f77943ef1b6f9e99ee60726fad760d7ef204ef22b061384169f7af60737b28fb7f25c3bf6b3e38b9c3d0cfcc398ce7c33b7632a1e579f5e0e2a81e91b35089e61764711b1cbbc9e870fdead3c86f5357d7b2e7ffc27ef2d65d5687a94446bc3054d7d478cc52d2b46a5a4c1cf687e09b5b5d8782d3eaaf905e85832da2c83088bbd2565ed6bdd38c14787bee3081001c4ad889e196479cad5ab789755b5f974db0f68f33e8375d0e03daf2edf2c542390ab6777296104a9bd65f1336ea6750fde8b6d7ae6d69cf88bce43982d9df17902f79d8dc3fcf29da560ea8e8bc99ee27a785d824d2cfbbaaa436b853423900b02d8516851feecaf75e28c2e16e41df498205f91db4d391d25e4517c5c85d9df7998ac8e393099e61534fe9d75c0994e21c99c31f800ff29e4f91a050d8d73ff4d7dd589e557a24a6e9e69631225bbf6fbbc3be90c0ef5e7cfcaf1a8af01077368d0f4e1bb3eaee36667f50653db2bf6104165417f40c25ecf9ffceeaaaa3c41b0d8331c25ac66bae6d9c910a2a99056469f42c2b95c0f97cabf635e6750bb730fdfb8c4896871d6d73a0e096658931c8720f9f3232a8398a9734f814cbb2c116c2bab60513b793f1fd3eb7706b0db52ba0ab35d2374c76b5503e8ddc2b23521ae053579e4ed23fea8ec89e4ec7911ffc7a6978622008218b5b755fc32ff81adbfb57e96aa46191a58cd10d77f7bdc2c953ccef889975da5b0d6bf660268b6bc8683ad3f0b0e039b19bda7d9277ee5e00e147f3bbe01001c30aa4da19cb67d57ebb7eafd6f0c888ad20676714c49d3231975d3d52b0612841c79283766b17d85d6985f563e0951ee6beea62756a54ffd9ea9f250366e3ce65b8c77b0ca205f4e2f6f31d4e0cd06cfcbbe5f83ae5a017786f6033449002549d72b63922ecccabade848bffbe204e35dcbdc80eba309098b7a52e07cb8575b5779e1467fc7e67d2cc1f935e3ecad12985350a4fe3efa5691afd9d5324c6d633232cb1b69bfcde9ddf887179c99238b2ae6c4cce915ee7f09748759fbb88eec9c31e6208730ed62300064ed8c8412bd93fabb7142d46ff3717cce174fa96658240bc51e4ec7ef76d18e35204a19f51a5213a73a81d6f944680d3075948b7e463804ea3d26e13ea820d65a484be74531e3a61a712cba14f23bca30fd60db213766c1c835a6194576bc9d56de08588d84c73687cdb9da4d8d8b1842273b25099c2ec6e17052dcae52e327bd4a160a38938b596198afd3fd66d49c068b99d591f4fe98b875a3a7d3dd5329e024eb68c0ee9e635a6 +MD = 7f48afdc55789792ad610388bdb289638ce64e282beb123f36da8048 + +Len = 40112 +Msg = 9e7a3d9987e6c2f8e6a0524a276f6da16ef8f2ec39d5e6b341e87108a1ef29ba395894cb5556e7248a341488e1ea04c738ee2134e44c18589bf9dde89264eff5e24fdd6330dd099c8decac859ba41ab2f15048d6c16d8b7db801a2fd262ff7a95f07224961a3afc7b76f212b9dc836c964c96db91861c68861a9c92da775c93f792a6a6530cf610dcf667b612e7ce17658ff9ac7315051e35c9959625b61ee1df85dbe9fe489a8d69f78c30e97e8a221949ad6e75361b5f471785a838c18edada44a25dfc7fb0a8aed4e001c21360130e1432a01c8bc79256aefd57880c54e564599a70d1f4a1191828f3a72118b860c07a29cfed68a25dd0ea5d0297f8e9a7fa2f24c1135a1455426e479f8b212ba1dce5e37c4c6f342832443567ed39b589284fb1dd351262d39a0f5c6964bf024cbfe1f003ce01e578175706c5fc31510f6b35f213bbb0151a9ba69283423504d7f5e8f014e6b34ec3ec9d51cb496244b13f7c46032ba5b390d3ae9a8ba8358bb9fb75441e3b15c8922e7196d6595ef8f5118d3e39e975c6ecbe91c4d10b330f895d116c8e1f8bfb79599e5685a089f6718dd33b1699b2b774d8fab1f1ffb018cc7747e9f328984fdffa5e1137b375b58d00f8cd2790bf1dcf9f43d26cda3f3fd9f6833cdbcacd4e4c8d4b478b1694cece176884fb832d52639df7b6b03f22dd58374de5a69a8d7f358ee079fe2e79aaab3dacd2f0c5700dc741a0cf5aa31d89bdd62274f1fc7b4b218bb818ef7fa6c1aae03037a5fc19986116b9acca8a91bd814f8b5b3c84f94a96e03cb4fd9e8eac53bb9d33998b9c9ac7a9bcaf9e79f1f1390ff318e4b899e61c38d8cea6ef93e32c0c3e5739f87b8d7167246834d5e0bd4b93e42e890bdfb6180226d65a0778de9a7eae0305c738d8e4db7b672c42d08a4f77f91ca7f33d2310b8a16ca56a8027356f66c78b7c5715a8734c1cf33533e09b288c63b00324c5ace8d2e2178d6c25737af325498c48bc22caf10a18119d48d52228844fb0391632ff25e70ed47f81db0dcdacbe7b9044ea4f14bf098c7f3b83f157fec58efc8d498834dc19f43ca4e2b470ce68cec038658c219c45fa5c211e129543bff3c1a367006a31b751460710fb66fac6fa5b1f3aee92226befa6a20a126af39d832ae0f1f440a875701e30ec4f2ab25782c351c0f300f1d9d10126de5d337efcc1badea0d05280b2d517baeb2c3695990c8b889e45d88b2e42de38116f99564c13d3e4ca211a5b2df4d4fd841f051519dc362c3933934ec7b9a05e39d6071a0a0e28abf462f2a81563d8814d9430a1488635a51868cbcd34b9f9f1be0d071ac5250b8ca61295f8278694deae2823daa3af1c9bb231ec76f3a83d9b24911408fbecff1f65bc5ebbc2e18c7e3c476911c9ab4d68ad4b6fec93190dc2f3fea8451cba95dc99ccc773761931e86e7e7af718ff6aa45001e09e8190cd01a2925e6fb632423cd8c05aafcf723795bb39d3eb103fd6c740e1c8fd4d840ddfc71880d946d8a6c8a933a2d12da0e00eb915fe7e4dd1345a0687938965874295b7edca224d0215f871a31a781f09cddbde7f65213057e5d5075fcae357ff0dfc2b8e84cb47632254c87b3c1522317355a1e2b26466286db0c9d6f96b937fb25b68776b44a4604e5614488238c59c533489fc40b83de75e85c48989b2b67de23c1534c81f128e1c84fb77874377cf0fc11d189abd46091abc9de416392f7e2036a84335cae040ff69d4a4b5c5c73debb3c1b44ab40d1244ddac73096f6ce4cea3982f3ed8bc2d796d364c8850126d79652e7bbb6cf1774f5186c2edd5fd66702b7b654db8f4b81d0796cb994317d25b5da9cb7728a1bcacc093302e0d6f67a736b861ecfc28555ce18cce434f1600f415ca1008778c56dfa378576466216cc65de5b18702d599bb537eb110b4bb7dc6261605e9ea2fea7a62acb50b70c1ea6ff969e0c67d7af9ab05f310ac1466ad53f7040995f0eacbef8686b59dddbf750691db5c05bc9709be4170696ffea61420111a97871c6b8fb197bcf595dd78712ccfb0afcf50982e67ce7d27c6d40856bcfcc03c57dd20ba631eb5d18e208b73450b6038adda1cfc39e57fd85b24fbc97d22ab7462a388c07673e7f5d127770fd1cd80a31ba983e7a73f0ef797620ef0f32b22bc421022265e4fe9cf1952b98b759e986b834f7b6522239112063b9071c16edc8060938b70ad0b21b9d142c18a82e6fdfe8f4c52194d3bbc9411f24ea04a661f6d68be0323c52e366273783d918c4f47c89a20a6689b0fc80a65269820f0c981efa4f047a449218e457a537c25142ffc763e6cf6d76de869f15a58eb5876d1aa63bfcab796ab9d9fdf70750ba9ad119273d661b1ea688e18c57bf9d6db2f46df8613ade16f5efaf19cd04d7ab3a99c804e0cdf66160d493b1344a9d91dac61b7a34b3a4392f5b20a0a345d37c7ac197c715c1681eebea267573eb9709450eac967c0c05ca5e26b6fa3f714c15a2720bd6a2ea7a3d90f3223fde4c92bd3bf2a6b300f009b2cb77f99069314a5efad3ae9a4ff233a697170d793b159695069a93388905b9d7be7770c8eb2dd63fc90d077be67e9c41487d718a53eeac79ed2ffa8fdff31c227e4ea30b8c0cf7a059479ee22d39bbf7ea4ed5daee7dda5137d9641fca633a7b55231ac21377b669f0aafc35eec89aaec7b1c2d1d46d2a052dbf585012fd1ccb891e5e5349151982d75ea8ddefd6414f25cfbfd7cc64a47d170a5e8a7e68c9f86369f628f68f2bd3568a2a43f909b6c34dd054549f0a4fa13de1fe35d74d49ec2b296aa7e28cf144b4560bced30903f087db09b01509335ae66dc1b9e553a58d2989433ad4b575be3bebd2e5477f30c01b186753f606588e5bd62e7f7023e4c5a5af084895b2be27317107f21b13431a50b0f5a50aacc726e543ceed40640e7be6c34139ee2ad469df0f335c186c46e56fcb3b0f19a0870bcadc276c1cbf2c9735ee7674a4c5c06a8deedd8b0633400bc090c2f7ea8da02352cbc365cedc4500da573063822c891483368de7ad0f3a738b2811c646191b58c7352a3e1c6261a01d28f66d4f07374d080ecbd8d4a93b0518bbb1e5f5ecff916f45e261cffa885e458651fad2fdd3ff659e20c645a84ba9ae7028babfaf54b694207534af4bc3229c9bc872d4b76311e30f1319c6b57247976f00af6c0a22ae7cf16b2183fe19d4688fe33e1dddf26bc8892d392078b9c719e1c02bc3a472636fde4a8e15ba935df28a2ac4751685f55c33f48e1b9827117deef1968d264bbcb70f9ce52b2838a382b3266da40a2697e936f2817ebec50e0bbd1a579237b6a19bade88d8eef108f60325ea17162dc39b5baaf7813919aa40a77c3d89a80bafa62e0b7ee06b82309d3305ac9a6c6b0c309e6b2dca0baaebcc44375806da95faf55cf90705a2b7afa24d5a34b09dda81d2de28316eee0093f7f4ab6b7d259ada9bca3fb7b54ef1c489c48c0916350cf2f69d7aa8cc5acb41384b311e59338adcedf838077baad11dd81b239017bc62ae205edafa8ecc6b6221ba70b7276ef66070598a8cc550c629f1b3a97051be8c31c484b1bd12dd517528b4e2ec74426e03d770afae2edb51678b4096104095ea1c67c1a766e4e81df8d1ecf014ac48424567e00ff224a4f354f92461f660ecfccc9e78146e9187417ba1a530c64c0b2393c60a23df23383c80bfe1a5a92f2e44d0bd1a915a95353c7c1c801d87dfe5827d565193ebb71f9d59640ad98f27d442b7684b96a16c7c9f58a7002ecfe481df70bd78d8ae6cd5867d7a02664ed77976ef147dace983b7cabfc5a7dd04d64a9b0c4fc25a7d90c4983b666ad43eba7871f636134c8977914f001cd9b0dd41aa55aea1e0a1ffef973331bd96cbf54d6ba44b61beee07b473acd8013842afa34b9fe6483647abc5b7f7eee42885f91ccd8e8d1bd319eac6e964862725faf26788ca31a735a3e7af9146d17e92cab08518a109c8f248b93b6cf6c8d335425c2b0c751f43814f5a29cdb067f167e2c222d78c6ffd8f02e96e68d3eea9d8d1335a21110da19bb269b0c7b530c11a66947274911e2e2bc0f1ec87ac861fa2f01e71713e9b45d775acd119d5ca721cdebe009a5fa2df3b1b794223c11db90657740d675e36a4d6f18a073e92839901b3853993687c854f7ad5ebd7b213ea955fea8a9de07e431cce87cf906bfa8a4b7da0aa0a1c29b4db579e661e001748b271d8756f65c0b51b552c96d9d29dea6ca596be591b38f2513a492d512b8637e045d45a666eac5f453dfef95556ec1dd7b3be032ac618a263ab5cce3ba4ef5cc14454a61d6b9fb63ce165639d7973b93f30ad04d9ad475965234fb5180cc10bb7e5dfe4fedd296e74d806623cbac330e594da3ff041439be82aa86e80b399e956b2dca37543c7cc6f8a3881ad7b39098d68dc010922abce6f39ed770049d86a0023e14e3b3ff9748f80922e5a6b63c7792519148eb1de856cd9855b11200b0256c174519b124cdb7753a9e4ddebc1ef3b4217d6fb8f5a45537206873de6b046bd040c6a2f6b1085996bd621a28ce1e566585ec4ca0bad72c59bf787d10e56abc5742fe462bb12f788419d8142bf324e6cc0646a84c756b245cfced984f77ca5e28a454ccf8292a5a67d96602903318ed122bf44b632e47836860308c43280c9a6dee32fe0423e147668276aefe96e2b15e7d5cfd8eeb5391a472a721950018b84ba9ffa2f8a63c89a99e6fde1e256b7bd983e78675b6779839babb1eed07d600ec5c22817bbb236759b4b95b98e79992aac5fdadbf969bde4fc0d44df2462fba788f056336697e289e4dbced13e55540fbcb073b1594a7ac0c0d5b744dc4092d16ca0f10d0b835159ff0df5b372588cbf11e6bf91eb6834a9b28b65ca6894ea2ef96a84ff2b0307685258d6fadb1187cb64593ac8306180022994fcda39ee4612b7a38e9445a579377752bef1d91ef9b72c8e51feb8c4c16cae98d8fef0ab5b2f1ff27a76dbd93b39e6622a42ecbf3704c30cb19ff4f08d3ba9fd76930d5a7dd69abde4f16e1ca1f2282da5689690e426d03ac61675735811b4397240f08a429bd09c3a9e6cfe5202a51bbcdd672275bfdccf0c0caacb966145d348833aa93e0129e3f7f868ecdfcde5a2ed0bcef25012310fefed0577ecace76165d45c35b4893f4bb979d2668fb67259929e3e7f27d075940e3225f6af77015a56bec5ce6a965929dbad4a0a067ed3a659ef4627517d22e1d3668cc673423c3497ad17b1b4db3004eb0d3035c869722fbf897699616ac18fdc149a65cc80f076a519b2be27ba3c73741415784a28e64c1fe73023dc4bc9e484a6ef630fc5b6970b9f371237a5d6ebf35c7a5ff01fa88217a313852672b48679a7fc4cd183071c37a8157c6930a7d4d530cf4b7eb021682327810bd48209ec07923161a64b5a8cb5cece4b40ed27c4b64b94c93aace974cf0f19466afc429bcaf02f6ff271395f027dd20d333dcf4203075b57b858793e67a44cb36e33f70c303c56b64ab71c19ba2fb140c49516d347fe93857c35590ba9818bd132eb8fb3e3e147d3136f8b23296efc7489a586def19bcdc0fad5f182f141573e6d65753932896354e11cff21fcb60416d6c1a7eb9c697aa8c8bceb2adb5e4f4982446ff2c89f49aa4842009c809f78b6408bf27fa4d22a8b4a5c9e79c422d480f60aa876f29d6b519d6107d97185cac16b66ef11a7704e07042793d6584977835d2ae74c6d0e28c9651c9d8f2bf36ac6abe4f62810ce65aa9ab063e6e43cb8bf1c2774d9845c32a043b73a143c72d9447678b0497d46f1d45299772204671892a77309a4d511f9449dd3561f1f9ea6b97fa4a5fc59648312e025460e357307bca3affe44dbc9fd44f7f389f641b153941bfb3f9711c189e4a7e6690203cb068b8530cb1ff4eeaf0fc69a4e304f556072dfeef5c052c886c83e7f58a3dbe9a58dc0a808ccdcea9f33ae2a0b6395153dc43ff2510e78f40a4bf8328d7a4a596531ea683fa1e0683e2f033549e6bf5b7c06b097e9b810de74ee89c28febbb94b6266713c855bbc21c706a5e92502aa28bb8d662287396d2570e5781d87ecc2628c9cb1d4b4eab92aa9637e87d366384ed6915c385c7979a4149e5f2efb9e8782daa8af730f34c54791f106552fff67d3185f34e9a0a8f70941fb9b83e038d1545272b33f1fa1a7208697877cc136ff5c8adf365cdd2db0ff00e47345c1246880ffe305636b9a295c903d47241171c79432faa9ba9a726c2c58412e9c23c914ade6e1ec057c8511a3b7cb8f73a81988201a96d72a60def23851fa15af908f9d831155b24ed8cb289f042aa7940d970aab4a9c06d5b6d90cccf3f770a78fdecaac87289d6509d536f67e40d7adc85115dbc8f57fe224cb8090472187aba91e64cd5040f672970a03502ef667e762b171589e878a7a321c172b545ea1e464b733917587049f08d156561a359e69621ee5cbd43c6ec5693599462297077a4b12ff9dfde41112e694f9af4ce3c65c50003bdc70fb75ea507cce88bab50294e395909cf03e63f3b8bab204cce925e7b5be39327cabe512705a7e9a239ed85ab6a9ae34567f436b07ab4afda030033317c2a876ff3607644f387023653cd1f54bb7200d388ef9a25ace8941d29faa6701734f4f02832309777c6dcc8975378d2a25afd09d53cdbf398d36796a1d61acf839f8668c7a812870903d3d96335049dc5c23258eb607ea2c4f1b4c6e946f2a867c6962a50368eac0daa81d945d6652e8c544b3129fee4dbc7dfe63e8eb1d0832a46bed55062277f1c476148cdbbfd0d6c7d92331f6cb0d707da865df0ab36f8419c6aca56bf5f68bb46ecc8595a3ea2fc9ac1cf3a3e655d1b8e1fb5cd97986054442499c1a2a8f141459ea87725cc879358347618e874b669670cd663fb6763c8ba76c43fc086c164bff199a5d31933f72274c82a0f617b7801f820527b466b257bcbca0f7d9b218c128ffc73b697306e860d25fbf7ae24cdcb4c34176b97fed114ae2bef4e38ca3de9c4415f54d8f58fff581fed45dd4ae13f83723150ee8771f1985a2dc7020 +MD = b3802ac0203ec0fbe26588901606eb131fb6a6713625214753f11939 + +Len = 40904 +Msg = c30b398c2deb80488872646fde5069c2fbf2d6bd7f496a7731ce4bcb96c33fb5c3bb1efe6f5c881c4c64d35498ea4721eee78ed963f4668ece55993267372fff9436e216ff22d267ec037ad0ca5ae38907aa17bf2937d97f1b0e93d6c4459037de846b1c06c5c8f00f57412d9c29a4c2ee455bb7fa9b2b13bf0022fed676ca234baea358abcbd0815e6911b137def1934abf4109fea7c41263332cf1c551458c81bb711217be54e08140d0a6c30134c5c421b0fc5ce30d44aeb09af8b85f6a3928b3bc917125bbd61fe46852671bd420037292d93dd76c71497e555bd7269ff4e99f6e1ee2896d2be05ebffe4cb3396cb0bacee8c80c4a60dba544624b304d836c866e019271d2a76eb5bff19a51cb7172024c71260910da0d2e4e553c05ddaf5870a482a86552126ef14f75787df2f7f251f4bc7e5624a787205d7bd12bb5405565f8e94ded55338b1b56d00ec016c5d7afae11f97cf08ff083581d332c3ffe0d6e527da89243d36b3abe4b85a19fa4ca2462b7bf02da5af06026838a90e2b125929a87e2db84bab6566e2e05a9f55c73b9f8f7f7704ccf31beb1f5fddd052048dab84f225180b015784ec1b55e80b579755819c94fadb758a5e0bbb49d12141c4c941d917a9f7d2fa6464cbe4aa87785616a655e2565da101d9b1cd857705549f3173957e14ae8aeea3e1648f5d6693e831722de7ddc00ff2fca61919487ab78d427ea9b0be7bb374c1e687ae670544de5459a71dc79f1cde256d306dbbfde51f9ad7a8582e0bc75d3ce8a7ca5e000598fdd133dcca674233f25b760b480b57b69922f3ecd9bb40d8736c477ba8c350b87c8d66dd4cb53a94c2058c6a732f99f2cbc52ee74826aaa703f5e93aedebb0bd7ec2b277d4e5406132ffd613d3d72644b152abcfffba8f297cf9ff7073c5900873359934d9840e29c3bed59fd09e873cd8401d1f770348d03cfd0cc5010d9929d84aadbce11dee7ed2a71d570fe2373baf01d55e448d724bc2839390ec1016a23c664248821f8bb10e6d1fd1c85ea0d1a43c76f4ceb595fcbc02267cbb79a3020e3d099023154060d5555fa8b0407e9f6644747b9c182e53781d37d0e5a6b8c9dc2365fc4a7bc71ea6145f445e540ae553be506b2321a5f085293a460123e24a14bdea156edf5a3b1f1e812d08e5e0440b0e9d4c0a6e874471aac044847d9a334660f854169ca456aec877db6692995beab9ad86985b5cdfbc364c44e6105af5efb13330c8502ff1b3c6a5d7fdc6806d714423b383749112c34040dfac88af028f230d43fa86478cec8d9d9b151e50293d32724b2246ce9e255d306d5e430109933af906239ba598a781c19d62f662ffbd091bc61b4e6fd260e1bd8661ebfb4baa7d88efea2ca4958347a4675deb43516f4ca2bcc507ef4ff4722aa35dcfe869134f2f79a4a5df13fe43d8817c697bded2519987b5efe7776e832a5cb87b62e29c347f2bf993af94770ab06434fd66f864cc52bf7482c2d92d991f0af88af54873d1da8f4f72b0878c00de981e13bf2eb52170ec774d0bf5b0287b56945b19fb588bd41c1ccf6c6dbbdaa5859e48cef241d5766734cb4d4d94c5e19822884b7ba8e6fe4ae8064dd774dcc7c54c0920d3797cd5e84369f15159d5c468198ef459e357ab9447b3df25459b97df9dd15f52ea7c01b819c582916dfcb64eefdbcf1696728e90a2649b07bcaba82d1a3dd4e10347ac8f2e5a8bae4f8f19a52beb162240bbf9c89e74fbcf38617b3637bb1c1e628418b5f79576d88d2171134459741d70988f9472719c1c477183937cb5af6b76a5e8c51c02dec095384f11cf935358849cb29ce4f6d65f784053cd5fca1948be219f45022f2df6f658261924255e741b2d054a6c51450939425e3c6774c446b78b9ebe2076dedc3ef57891f88bdfe092edea055f3d62ba091c15791a323ad5d14889891d767bf0cd84c924a333623e9a53e38653f7a9e276221c0bee7f0786c9ecc24e4faa8fd520aa9a49cab88fee7fd39425e13ca502eef8d45d5ad794c9dfeceb763d8f84e9d6cb6e69c597b360e1f15e7c6d68ceac0204d0e5f5c87d2fa1cd67797d91f5af6e6bb81d2a3d77463f31a4e27f08913e2dda844e45be2b18ae02b8f0766e4ca6460ff9dc6f2635ff06192a008c989749e0ee80fea145292553317253ce51046f0c2cb6001afe8a0bc52c304f2c954b5fb9b5396fbee9f1d64fbe062bcc06b75a1f467f50a402edecfacf6a36c58b17d026c32029e5190f9be22cf6d115dbd007fdf1b82690ffdc2325974a4fede6974b969cc7a5ca5efcf6b8e2c6fc226ce8e92692f30a7821df4ec3f823030c344432a7b6b27bb53824674293f8f588166c8e37bea264b03551b05486b6f8b6f0a925d88553145c11207e0d94ff65ad84c5679fe958dddf96fdf865b7588964a83085879d3bf825866b9b788a6cb509249df5cd8788ce5cc31ea765feaa4d9bd774e25372df9f9804805021d8a37c317250b95f3db4cece364e1dd3e10eadd2ead0ccca9ab0832a27e93c88044623acfa8842b3506f479a8d06fc3df30832906eee953b69514b524d10a11991c733d2299ef268840ad15823c3a312a919646ae028dc44832440b700913e55059925478c2f78fd3d39f47d971ea2e077d4cba8cb1a12646cbc1bbecee554d8d45e90839e9426dfe05f197163828c35e3acd0f0ac3cd8297a8b34d0247795038269de0cdd778c8f01fcc8d9f579cf7171140cc8fffb8df2511414919de26f73945d9659c5442a8936857b2dd96edd21a4acd7a822e0b45d74e93389879054978eac31d0f284816ce2abb8d38bfc35c4f2d9ea04d186dbd95a6d2a2e9e1bd4edd5d83928c1a311989ab1fa71998c89e9f02d8c65785874d4763260d73def70e51e5424c7cf3a5baac35ac86e6eba29ff010a675083d0100d5cbb6039e385b92bacb28d2487b4e00200e89b4097ef9672ca02e33c80782db2827ab0bd2b690e102585cab567ad1f3cb7ee0b9e81976ff39fa988bffadb2e826be2cae77213f030fd1076210b8d99b96cfd61bed86c06e01660d0215f53a2eb8da6272f5410f01cb81507cddfc0c01694795647e8c80bc6a2cb52272a8c2b5c7c175e2b5dea9e21caf60832410122c2d30451b05f25ef25e93b7727f8ef18639bc8c831dc0b4aeeca25eff4fba9424c8d00dc9e9810117c4e43b7aa26e70a8f813cfdf96aed96d22a37376c5c33af2247016f59201123383686bc34411e623ea0e677d8972c028a6fac772eef3ab9d28578827683a384f85646dd4ce40fc00f9f57ce55cd210e760ef817a3211902dbbcf8ae8d3f31c71b1236935a6c15a460c0f35a0799772b038caca17f9e790abc71e44be3bf666a4efec886f365ca7fd0aa5bb3546898d8d16d2c9cfab3b541e338ddf340809bded2706f109e5db8c2dddff362c2d6f0a85e250a72db0d6838ee76483cfa2f5c95641bace8b1a04b0df6c65cd0e941290a0848c8bb67080c603caeb5719718133e62650447e3fa1bc1b9f1fa861e53bc8e7e4ce9ef45400c586c66a8499de77a3a5bc107d69bb7857e75e74f0b087b05961ea5e076ec220271ec22831d74f9dc09cec41a1d4f6522a4d91aecd80e23aed177f83efac23a695d4a76e875c2dbd33d29f2dd74758f6dc542013665b5ea0290f89877e37e05bb6af5b84aeafe19da34fbb1a484b492e1604f3ece4c863acb753f1b0db965f0733b7c7b2cd58d106b91c29511c6731c08066f3806e5059243feba0472f510a72b3f4d3400de067bf1d40d21a7a247875c18106192d79a8d168dd7d93a1f14863df6f687595ce0a9276c39dbc8a098615825e15fd49ceb87bdb336fde5afd80a45f2f6c9a8eaa21456dae7181769ec3686a030975e9d4f2e940f5606e82fd1cfbda3cc9f71ffd16a1a90838af636b9835227ac8c93515bce53e29378d40798331f89f65d4714d506ed3d9d98f7bf96b4651cb3c4156187f357dd9dc81bcfa1d0e625f2a79ab253774922a3c69e6cfa561a0fc4b257465a4a2a60c36921f075259c084fe2df60a337a8f024985cc75af4fb717dfbcb68591f461cb2f0a91298adcb917cb3a7a86ac4a7169e82a5474efd83d23df4f45ffb0f3551dae2f39e72d5df61e78e65e200aaae16701a2a653cfc3db293326495b68672b0a9c4b40c9a3a51fa4ed7acb61b56387057c33eb9ab6da3830c389e92220178a9adfa4cd57547cdbae123de8cf163d0a4a41264bd20ce3fd4077c04ddb42cc1bd66082091aa9a9d246cf79def493ff133f38c3ed8238a7d16137129e0e354e86c5072f1c9908f6ad730c74d458957349ea4a51fa32a4ee5d9cebc904436165726fbdf22d5cda29143eb178f381855f55555d1a996ab78048f87b2ba6032ed987dd681264ec880baeada6cb62f9c98cde885a64f3b3d9243b7ecf81add504716e16f1d8ead0786424cbd3b54a48cbc28d892a78309472a4de35cf1240424bf6cf22418ce79014fc1d9d2080d3f4f1c80a62b39e7796eac6d825642888d16b31510a3f7682b5c39a422d76722487a568fc1bdf1df03faa53d2567409ad0acce79dd5d2dde4c6ec083b82bbd566894e680bba953fc41a181273d1e8fed675d6e35b8be40b354bf90cafa4d9efc0805391e049bd4a1bac9dcd649da94f2b9bf2ec32355c469ccd516f479cb6095bf61eab23cf3e871c7fa24a4cc29e44d50386c9cada21d741d35cf8aa713c6a5f72167e7c55023ef01a8d52d449ae25fc35fc43cc821d064de58271802b515cf37da3d191e2f0b7be05c7ada439c339c7baba22e035371ae88b2ba073d3df253f9e2d6e0d7ef039afc9b923639ac4c95f192a2eadfc575d394ebf4f296fcd0e6c5d1c1b9631ea0debedca7cb974981decdab22edcde651569b5a6444a0a035fa242d9a1d404c67c99f9617f50d0297d9586bcec14e44a8b9f4948487fa9696008d6cac871fe6ccce275e8f6cdb55e3182a4af2efe15ec0704900e227056e759c7a058571228c545edeac6a7db2c1f80dcbcf3bd427934d0c0145e9cc41865910628eb186188b731e3e0635a203c54b4cb56f06187180a30fa5da17c23f8cb51eef7ecd106292bd6ebdd27d944ede51376fb0ee175fb576ddbf1408b37fc01e1a794c14ba9100a7e2e6b7aebf047bbe60632b507b52901d08a5aa191a52eef895887d44ef1473a6fd311c457cc53bc74a2844d99efaaf2a12f202e5618967e912a598ca286d5a5f103586de67f18d10773783e60ca871028f4c94ea1363b94404491500e11c2314ee6c6dd60b29ee3e5a196f024efc745adffdf683ba7251adfceb78a5b3a16c8cca3e57c8d0ceed8575366cbad0672787778eae6ed145cf9b6f254a151a8da51b5633db334360f9aa5b17138c2b69191cf88702f7d25e9170dd6effdb80416b44f4d54e81fd7090f17e43e9d2da72a77fd57fbabb381d35e2ca2100658f5d0d9e38ab4841498e521f5145563b4824814490c12c259d122b55a7f3f24f92412a8b841e5f0dc21aab786683ff320eff04ffacf3edc35bcde03e19505bf6238e309189b6d933f1960b8130983b338952c105aca056111eb1032070be93f5cda4ce449c0d6d40428100ee41fa90dc61d033faf22f2b9b305c0291509740cafb2532194d7a81df5f7c1a041d13a68902e7ec542028a4ce3b3f4d052b92c8e236703a8410869d5d82e7b567247bd2c6071a3885b9057836b9db60f08419b2d7fa26161987da36376754618beaabac0fc8e7c7142f4e0c4126a0dce7dc949528d0a7734e15bdd3197722bce6f22b98e2c2c11683e57ad789fc302f5fb7abd6313484c0a63cda0a602d03160cbd643fdbaf3685698e14708db4f9b6cc87b7fcada03e8c967f9732a813561b61befdf756c8d8b2199b935da8eb7e21b2cf517edaae4545b3507de25da4ac1b9a694165e0c9f82b38608ff587fa2dfeb71100e364b9397a6152069ffd6b65c4fb6ee6f2160d453f2aaf52ee978b999c2ddf3ea0c84b7b9944f6c9d213d2137619125722431d108c84ca949f43fa4188abac736d61ef8c30c2a1201f1d7355cd88060a7d04641a91cb34bd8e39e0a64294eb377fee200bcf5ef3a1ed86c97d29acbc7978d69ca3cd52804631d5a938689e2e037eb9574ac39e70e7a3fc3f2a191ba83c9c46014cbddf3fc730a3ee88590bd76fd0502ff9bbf57b39f8ca5ecd2a395bcc5dbf4c85d1b5c5a8f1211b16928299c52b4f047926f8a541529da2d6bbaa399143ced8efb77ab47409d9a953a386c7abd6026f49831c717627c2a5e77bd2d433d4d130dacd927ea0d13a23d01a7cf39c6716dafb6ed552410ef5d27fb947be2c8782eee7829196c7edcf151c65f9a01f54f8d20f38b7da4a7e83a2f0127d59d3e2405d8674fc9f41b604f788f4715f9d3624eee57f387bfadd18a1f905e839c26b8617482347fab6d08845a6647884ae71378c1ea0ebb9cac11159eb121cc08089e0a6ad0be83b8fb3a57a052473a1bb9c8d243b5c260642b10a3556b58fa096c3dc86159d61c444d5f92f25c2f7495d2ea251abff8c03eb336fcecc6eb53c6dbfd630226659477ece0fbf78ae77ee0b9e239ee10992153cbebe70acac22068dd46a2f43e5131785f235b58e658a023f617d668b18bcccbfb972e5780c5a816f8804edfaa843c702e9279bd7868228712f0c42fa9b809cdcba2977defdd35f9b6132f6d70e4fc86e2941fcc47004b3394d7caec00062081c474eb211ff00d399e680d449a5bbbe3029013305b09644f0433b247bf5f58106d75f1ee19e779fd38e5b00c2fd0bfae16f01e8fbc69b505eb6b42e7edaafaa24e0e7389e4abc16d0df3e06e382a5210a71b0892730a867bd0e9437592cf4e5ef0a5379d88232db2a4fb6411bc53ba313c7999e086d21fd93b147c98b7b59c6ddaa407d00e3605f48563059fc3323f385d72992200abc748b454b7f962462cf79471a9ca7dce905a39948bbd56af2b4e926ecfffe67cc8f0c411ba409e694523a776e534ddd2170d47f7be157bb2c49a64d50420422d68f8f2b34e14700631199a1985b63729e23537f3654f3c2354455a0f002c1ba5f088c7a23b1de2063602f5c44ff792bd39f892ef4a13a1ea2176fd848bcc7acea8caca474904fb4f9d0641de0da0f6756481df553307b1f07456d39d6da8668fd7e483084071c3caae4c05cf85586b39aaf6a68ce9d6741b940d66c06d67e7d0c6fe7a4ee70b435fb0fdc9fe80c8 +MD = ef15a32cf001335e6febd83c77d21f6e29e5d8660377f0f8e9d22c68 + +Len = 41696 +Msg = 2ae5c3ea5fb448c4d390493d3737228ef04686ed6d4374b2b7e067b7497ece0423f1bbac1a83dff2723bb6b0ae5ffffaa7376ffedc14a62e099162a2fb19f3b7a2a9effd68d72650c114d844032e26c77919c701b2eefc7f1f34c691de5f56f0d096c5a4f1b90525e9a318c1deac7f3d8d72f6bf99da5eec2251fb4d9a58dff7d43fa66b5e3064bb1170dceee6e2f3a60ccd640037deb4bc3a71699ed80c7713d72cfb1857452b5862048d94c4d768481daf798c3405e6388e1b784b4084048e01e62a7483ff424504e6947b2093c76de9a29d2a3954dda847d7901e79c76fae79f49d478b6692ca1e9e576ba01ff95b972d38a4eed57f548c2d19dd2cdda1bc68deba591682012ed8b5402cef82e55a50d9b2c0fa8fb58386a67b5100cf81fff52deb71cd5c78bb5bb2b685b3c472b43c2c7347068a687e5dc91e429ea4f6c14968975958fbe0b7cf1d204095ee8aaf82b0e300b9cf7e8e381e6a78ad64ea488b1725d75e671f6b5c7fe8233c0714954bed6ab5bc65e1f93f2ec8bad61744dee4c3ffb487a91f1f285e75f75117f7acbe6a712cb65477079c809ed1c1c6ecc97cf38cb77dc8c61b5e452f837b271d3d04af5e2e50a52a02749d55861579c9517a2f34aae5ccfea624b97e91633d6d8f44449b83325fe030f20b569f7a36c5c007ff5f536abeae09a244cae7b064cfeca7b28ef3038a83db3b5408e49a07c75c4aec757cb2a5be8d026d7b4e0ba12b9a5580a1466b2ffa497affd21f1af3b86f6c7ddeeb6589157769bcf98e1cfe69e275363b4314542dc2d5951e16a5027e3f943b03692c729d1201baad6f8a82720c2f5cc3b4a3040490749d5392e13d0215ebac4abdaf693da5f2eefdb9fe352c60ad7ba35fc34467fa809fd85b76ab2c38995a1cb19575dd7764e152331f208026141a420c1a1e3e47212417390d55e5f2c5cde20b869f65d17e1915a7964a56a58fc20885509971c07eb377f44e411389978b02942ceebefb6820acdb0abc972643fa5d910ebde8adc0d46053e0799f46381ee6142c6ace3d4b7e8197247c29f15b4aa9f7fc938c560e0f3a206c057271d00ef453311b7edf4fb9faa58c94f64efd3a5480c122430291ed6e2199eb735286e19618e10ab7289b5b81cce90be5855253c6f40573f6fa71f5621f103589308321332ce43e5f6258ec7dd3e3eadddd811c681b728c8e87d5b07fe178eb9e55ef553258e3bf5fd3adf256832338c89fb21ea0bcae77f1efe5a42d317a139907f106fd628696a0c3c3f773a451fd8d140fdfd7a1613c097acb5bd5d5beb7618fb1bbfb1274ca097cc1823efe15421481bde9769034e1bc72ac5ddd96ebdee03558fc943256638145d01c1e58150e4531e7c4e352ce70f41db330af3ca991fd400e523088d36af265184b7b7bfc69086bb3f688afd9f098c5055eb18fa2d7a0fafa4337de94e64325c09abe30705b45764909cc6efa6a90b0cd6f4d577bb8b1a9455911fa40df5ccdf18e4d3d19ede49bd2851659dbe5c42631e9ea5bdf3c1996161c27a4805d25a5d2b1916aa126cd2276f0d03624691c715956ef64746cbe099613dfa6fc6986f48c8af281ad0fe8535cd461ce7dff80d86e3dc63ae24f8949edc6a2c75b0a670446a1d948e8ae1e75adb831e98cadd8a29827d6a5d2ed62a042bdd9ce4649b01b297fac89f70d55d29025a84ffc7d0c18fe9b876dec4f3254bd81ea84642c49825dabd40a853476b02ea22ec773770482c9214159d77cdfae88993fb15ebe1a8109adba9438296a58afb72b1a99a2a82820416c323c7c53f6c88d3e1ddb040b5f550ec5eeb8f617123aec07101806e1512c8470c0c2587474a8e6518f840805666a555ce2aea36726f7ca2a7195ab95461571b6cb12172c704e2bdfd001d1eedc700ae936c23641db0fd8fc05bb9aad500291a41bd3c16231e2e450a9f967b00a8eb6d3b39bb98c7aaa9ee6942fda12b51b6aa377ae5ffe008d990bdf14d33138ede08221e233324befa54ee59c73aabd8a861ca94bf8e72576d37a3dfb1c5baeb5105e483ead1a9607749dc1a86e5fb2746d7577519407e8c719048a564a14b30dcecfef582e2ca31a943cf0fbd218da04a518aa693b4590a5f4118dcc6646901da33de0d7be50b94f8b913a3ea7bd7f5fb86b0a3af689673aeb090f0676d88e0e1610e164656e22cee3066719f535e7b02ed85e6dccbbb3ae8655d8ac85b2f308b0b0bba72c6e24c023023e33c56a5a1d8dc570a9c6c4bd294d5bb06598bc0732f78536471a38084dd4ed88351e4322ce5f9c0697eb8acdd2c9845fd9b9de14b575f819ed38b5169c7d2e0dc609a886ec2bc4e9de43f62bd18138acb1ef0060b9b26f2e408dcb95d6a62f958f8d81cd9f7aa5e127d6f01e4ffde06195430a346535533be92163cf22d857e838b2b6400ed3a7b51aad61ef74c6e2442cbbe4d8e1860d098ffc660aa9990ecd6880302762be322f5ecf2fe76763a81e1f627694562d0360db27ba8f9274bc0ec700d5cac2c3ae159c44444c515c98b6153da9b0ecb29f0775a949a606eec971fe398e70576b83307b158666593a1cd6b7566373ca9e48c8048af9962d919ebfb5334462493d1948a449df7fa8849b44adb48d271979656930d2b4a92ee4a1bf93f7dde9bfc2d925bee836dd65c27dc99e5f101200c960b3a38a6125326f3b3b418c434be180298e72fb72c9b97d292d3360d27ca818a06e02bae85360bbd4f967fa5cd0d801724c68887d8bcc3b093813bebdaf38ed8d62f868317be14fd5c3ac4a12c2cccd1d28479a3e6bc58784b2e681b8f2d9d18f562b9e23e5dcb3a45fb8834b67e46a90e7b8369db1cce6026256b2aa8cb34b0e144363a8d87a70ab9534adf10949623554626682a40be2eb1109577dc6ede37262e9c0a79ee30d512fc8d1ebee233d7336ee31d58da702a887a77b18e8b0212309c5bb097d3e12fdf31bf6215e9981b15403a07eb4cbce9f8cd923633a238e8ad17e5fb4beb30819abd6247ba3d3b859774ab966619dcf39e8475946036fb10d81bcb191a86c760c1da063e104fa69d2676a8673dc458cde629824a98dbb1215e329bb88858ee43e1222bc3bc8361d84ec0c0f8e6cec8ef7c4748d741e303a0bbd6b84829b44da175104367138ae5bd7ced85ba05bba5bead4859a8ffff6b055d82a146534b4e1ffa4edda6b9c8bab33d475728fefd67d215b7055e27834fc5dfc0f741b9606805ed185af123cf49500c88c5c4571697c0220e0c656d012a789f0c1ab8a0963409ca175bd4c5f12a2a670c421a8289adef7ed7bf4d151b938437ee9c19cd7f3a821dc650c024e0d598d94c6caa25e922d6788e9e73c415137f26c2fbf3746dd40554afca51d520c431dfe3a5f1a5978f0babad3a780e9012dfd833aac45a04a90a1b2e38f83b137e6bf75c6e6f76375b0574be13d8391f2a1ce8bb390ad2b61216bdec2d21eb3b7ccd9c0156923c2b1f4a803bab02f814c1bcc4c417357304b7a1c944077d4a2b47dd5a8cdef85be534414aa07086b0036235f8e8d5e2bf62f231d9d05848fc4558019f5978105a1842803076f4d1e57d842ef183f5811c736a5d5c1ba043663c35c0f6f1a268bb16b29dde39b8832cf5bffe4b3fe6af1e98787abc707fcb1c5269c1dddffe6ff3831ce0b0632c18eaee7e3a727729bb3a54c5109799376e832a5c5ad09edc9497cfda0f338ddfe1a3ca3759e3c44f33f43aa8c569d0779c3f4686126b98dd852c6f826fe414449bec3b83d32b91c7a7d0bcbbff9fc0a0e2a5298f7f0b6871a005d49e894e80ea962894ec3cb68a1395645d7725c5e453c05935d1073c882983c8b1a6e1ef6e427eed78b90d20f7c37b038f52de68b5f0b3c00de3316b62658ef96904102346dc94af59a2bad77557c752d4e79ff4a0183b7e144e8444a1c64ffc7d5e8aa6752995f2ba11cc668d2118b6c0add0f64d3ad5e7eb6b8624a0cc4566611eb7c5a3a9f13c1c9ec84aa9efddc3d50e27ea27c901a1e5d29d97f9d7edabb6bd3e2d4cee24ffe39224e045f484ee8480eb5caa534d10a61c511b1789c750d0c26439cb66afc2c1a468e3fbefbcbb41cec1aa4f5a26c8be91472a845250ea61c6f077b993f009193e0ab23621d3aebf10116fa15e1d4e71d9d652bab228cccc23395391f6a4575cd790d78f4b682d3f2d71292acf9ef6626e85004529ad9c826fc579ef1f2b122ef981c061bcf8db444f5743563f3a7522c7d9cf9e395dce27151b471b7df2edf22c64095806e42d812e3a5abe2d6e3f156e5b2d3061c7d61cbbb147c1839a3f38e8ae1ecca9e8986822a0ebcd0aa8b8dcda7f8596235a48f5bc1df85bd09f7a75a6c67d4a2644a05bc511630d678866cb94bd855a0eb39b24aeb7e554e571443aff43a15b0ca6d9ee9e024ce9b47bed64159b98d67432413bfc157b47229e10fb4abc2779bd7db99315fa25fc81f1a158d5a03cb60474dfae3ccd36ad1894652921867c20c937a3ebb57f7ab04088270c6d61dd533fe9daede935a3e147e2b5670c492bdaa0733d4b0508b7af80bde2e145371738770fa79d79e55f9e31078617735a9311e3aefa537d0c6944b2f16989e5b666f04a64da1f6762a63e54815bccef516e60f3494f7796110c1a67d13f68d75649053a77f6f65a24344c32debaf9f8c3fa426fe0b139e8ad1c8b1fbbb90082ad39d1c7b762b49aa066425c8e0810f808e330b9f3d41cdd4717213b3f7ad38001c5f062b1c1dcd17dd8bb11fdd7c485b695a651f11c92ec5588775adb0964581a59ebabe588d16702f80123dcbe672a43ae2dc876ef2eae7eecf7ef0cc945635d721e03c11c24f3d640cee279008b4e4689419de3e0529c29c11d78435ed93a31ab21fae31059e07e4f7eee7162a37a25b36c42c684a12dcc8172771d1e92553d7171f1b9f9e2b541609b983439423667b90857ad409cebfdca717bf8ad234cd7419898b43d51faf6409f806018d9fb9306c02cf6a8a84f33e8a4f7746eee79a5b80050605f1a29d35c15275375ed321e290e63312145dfe588876a1ef876741f2143a95cd3cdba8f2f770dacd50e828f9c5d7aeb4f1816a906834436ce3dc4aa39dd13f83fcf3570174f93caaa90656ddd37d49386717bf50f43367a54a6d3ed5e2710d0f7a1232cb0096a4b8b15432f682820b86bf4883fff21814820642a3efacc30559fe5ec2b862ef19deb2fb44ad9a8bfd86413b40042b8e53eb5e84045bc36f324ad0028e3164aba304f2231468e243252134197dc9673b2bc8995be680ef1c99c837241f9ccc724a12baf22b90234f8d3de209c3b56dc7a40100eed3c6f87244bc7dedfb6263ee17f15293108e255a3dc39134993007dbc67edb665295a51b3a0fe884acecf1c51187022c4bc8b00a3b9c8ac187a2fb1f9a2872eaec55bfbc83a7c111baa13e9f41bd12e665a88c0791ae15d91573123a27e50ca3276e0e00286e4fbeabe81125ad7cc9e8e59580fa47e379a4cc0c14d5759ef2b98e495a8c304bdcb1092b34fe5faa715b53f7568b6322004933d3c9978d3c6d53a64c6b0ba325ae125bd16dd35f3050663835d461ef52f0f1d331f92976a5c399f9e0092389e60e0a2a42854cb3f7ae321ab9c325f25d92c3328f6b3238c33cb40e6efb7ceb7544c1fde5441065e6d5e684eaea7e752a2ee8da53e85bdc7c22cc6d5c0abfd0ba985e5c2471c87de40cabfb3013157fa10c8753e7384c69babb089f13fe94419d5209cf66d61b01db9aa909f3049118aa73c923b123ace76451912bfc9fa24506b9ecdf1439b2fbb2c807359b869c482dadd6d41b71235f622a8f997eb492e4dd162c139463347251deee079061db181200d5ee8be95bd89c8e297200070b260ab1f4f44f1c4a6fa02485083b5df88f41b5eef76b54f95af9c7873cec5eb61475d26a09ad2b9cf986e1f5bf02429bb6a3134b79227aa8ed641cd282a9823bb507c1b6da175ad118ee5f65b54ed76b931e6411fb18230e9ac2d432c99f3b4112a6c501eff36f92d4bde4fe7088e511319bee6b06b517d368fc38ce9b365070313b2873d1aa338636dcb9e77a1634349503fb7f21611da060fa90cf7fd68b721caf303307a56e56453326495b628c7dc93cd175d484ff1d88a4245cfee7b2ecdbe8266a194be8a90aaa724c99d2b594d430b876a78683f1eae23b9e9fd18e8974d0523f900368288b2ae717bed07620bec5faaa23cf72c48e9d1ebdeafce7eef14efbdbf237b87bd299cbd352c399ca8fe5de38cfc793407abb16e067d185c659496a65ca4e9e49e7e167a7db13e4395077ab4833d7b00bb826692f9fb62fb7b5abe8069db0e33ad0e803bce32720150963aa04d8658fcd50c45fd31914af690c5bbbe6f5c44ff79798e73af1691508c091239245dbf92f487f42f45d54cb8666412b2c59f4a92844d75a488e408ab87fe95d1a029fb6d8aa3e58b9f4dc4cb3cc45820152a8bb75dd8fa50e401448cd4d52a2c5981b8e727ee9eb4b6516f99a444f068c67464b846ca711b5924e18f033b738ba8eb549a2ca6741d238689ce3d94701f620372200f807e4650954c0c937fd68226cd7ae1298a2a275f63cfb369015b96605e3088f8a9766452f8f08ff640d7a25bbe8876aef81585c26f9e03973a177059fb2c4d9293fe17e8b67ba3bbfcfb6ea02509a51d8ecaab05007119789d382fa750d2087dde79b37a5459c24522b649ac976b07059cbdf99fcce56f6da94246e0f5ae241ae77dd99068f7863240acb5c99c4906f7d06403eb3b679ff6fcaa389f602d3aea5d7efcc35af149f3d523459f8a104f5498615c8fc2740594f5f4872b16ebb77c9ef19f7ba0b3881a6ede7b97175d2aac731a65e608975ac82395b52c805624423a7a3431e0daeb066c12ca389a9c338fef03a296644dea211422450c42e8fbcb9e8d4d7e81b3dd585b84b3fcaa39f44f6ac1a5196c044e10360ea952c530c879598f6dca09fac980cb98bb6bbcc2e79b84b8ffd78656e11607df74988db9f4ebfa14f79cf00c4a002ab3630e48c377c4bb7df55959c26db31809192612e11b93de928d7fca64d966f7892d4ce4c84f8b7d6528274cb32e77d51019b3db4296f195ac81daff90f215b07e8cb0072db93059232ac9d5c5bdc4cd88f8aa7d5b1195bdb79747061d1eacf407f3d026805f53cd1c5fa99b56962a6fd828824f96f5e09538104c8465d99d20ba1515d94cac7647d5595ef40242394a824bc3e882de72dac29f43e1079d56d50942f9860f1b1867d28a5276354c41dc1bb4f7ceab15bcecdb96d5b27ee46a7f7a1003b33445aa8b98651ca88c0f04a3090686687c363f59e7996a5f3839588e810eccf74896bd519b9c15f1631 +MD = 07c64e22cc2b2c40141bce8a43b0e661bb089d6a93c5b13d459d04e3 + +Len = 42488 +Msg = 3a325302329c5f408f7b1e346623e0fa2cc1733ac14a47b5acb1d01da95d2c2a61da06ea78cfba59cc30b931fcb43003288ae487f8486031e0245304a26634ab141d27c62311248218fa566c1aefc187f421289b19c92ed1e55fbb7d260da13bdb63803d3c4ce7e3fa41bb8cc7bcddad19f007202bb7f7be45ccd02f3e3abd013f14d7f8c96749a5fa6db13a0c03ca9d1e5d49bb37f9041f88d159c3f1d5ce26c798f59ed54a93f0a0e6001ef0acd1808bd2b51644779d1d34d820e048c61dd1fc58a2d865dd0ceb751470df7ba03a7ee9b614d95a190ae0d348eb2f49f5f22b64baa54e8308febf0060c926b5c54dbebf712eac81c7928fec898358fe4b955c8927c8a736b3af93c930d29aa7045269956bcb35c2697e520803b0026fae4d8bf308d18c87c6689059ed54e4584690a6f40bb31f24e71653ae1e39d5a30763e028c389a47c2971de370018abd071509e62bbad10b029a2b76642e87ba23f1f84b2c2b89820c412a4ebcfe398186eda7869e383b06d176aa9b9d78399743cc99f196b260f787f930bfec480533726765d91e9fba9639ab64f2d45d3da22e8a958e3289ab28e433b3af746b58335806c756136dea09a98cdd14cf4a0e3b22a07d89a60de2969f654595ebc4cd01b6303e76132f3401bfaf8589e4cb25f2fe92a47c57ab81b11822492bc900be4f0b984dc1945042eeda97f0caab6d0f49e0f5bccede0f1308fcdf40b9829bb64bc69377b12d8d715188caa14f898c44a0983e28f99f95111eac10bec7aef24fb875b64edd351369ba58ac098105b540a772d07b9512d9f662a45b35eea4a0d4f5a775359e41ae7689b8d0bc27b6849dcf1f512729ee4a5d65840328971a23f083ca54ce8ce99b225027cd1b8c0266a677ec34ae10686290a7a9cd194965f83cf36cd96c21838617ae23e5ba267fc8154267ff82f137bf4aa9b40d8a7e2e99f4c4fd77a0e4a5eba0e44bdf1a9f854544af11164834d2cce5dc0148fecdca95b268fab40f5ed72878a2fe0dbf5fc95adf2e861d6063bff7ecbf3003d880c058105fe31309e88de8e95ac8f60adfb2652f4125896e0655dce9d3bec2ca6fa66d793a5529131a30998d8c2b2c9f97b710bf778dceb3853af847ba1c0a26c2f3527758bf4add8c65b6cfb79325e0206dda2a320d61f368e5b690c2b64e80232d83756b800cab97a3cd4a5d9f567f023d2dda2142f78049dcb45f9e3c046918bb9cfdc355f31fc4614967eebe42ceb5bb886995ccd3fc70865e0e9d1bd0341c33eb9af09f72acab34b7b2fb6e7f51a34f86333fe9abbaa58930185fc41693961d1bc783cb2fc4b48494b6042e709a538f83d16047d36d214bc72756c35bea2edd99fdfd777f1a68d77ceb898cab1b5ef21dbea755df66ac447f96029824ba3efbe2b8be12d4f040a3bcbe0bf7a3572e0db07585a244498f09e5fef3c0e5865f0e7282562be5f8c48fe0c80bfdddd03938f8707bab9688421286bc9acc32d1078be5e5463116967ce29573fa1ddf09090a324a19d04aa58de4de796818811cb0daa94c1ea0eb5bc242275c56c61b8436081a6cb0ced5239b0759900c3444ebe39139414029d8ab4d3532ebb28507b428a8fd52f0d5ca7511e084bad7be12a12836124f4b0a63277622249c9de9482b596377975ab39f2c8b06ec345b146eeef73fd0d09fe11f32c59f99096951415c50ce05945eb6c7bc6ee10ca716b5be17c924d16fcf3c616fb413fc9cb55b87c9975f13e45d7dd8a72615427d9b3084de267ba097597aee20da05cbd0f2668fe5b59d4f020767567f490a3a424903578487badad1bf3afa18a01b8340b110ce4303ef0377cd01a5a75036607fa0bcaabd7548cc9970eb2999ae9bbf6671d8c7742aeaddb02eeb5aa1d430319052aaf2eb77cc02690f1a01463e2cdcaca53d0fcb93073a359d72fa013d7e4a2eaf7cd490f7bb28cafa25f5810735679dcb9c1bebd4daa5829936e8480476f6a547a0a4407d7c9c29c2bd9adc725becc465a4504748bbac21c2b5c9e8b1c0e38e9ba4f66c91a6c92fe93f45db07e6d88b03b451509750ca9d8a6e0355ddd28d551bf85f97acb05c27ee39aaff508cb78c166aa3aa29006d5050ce1921d12240a359192434573fb1bc322b2eabb4b416322e25abb6866110e4c6649fef4446c9d3d39608d5099b665765824572dce35107bb73fe0827e961b55bbffbf0afa675610bed51ec3c59e683e8ed83e7019104873ee40f11860fbc5c713eb1d86bc7dff5728db40c7801bebc4cbb5e7afb43bd3b28d44355495aad44a76f5629012165eb97f5939845095b8af17a59910281c79e19f35f55ca4091088ed05d452859a3ddfcc365221c07495a87a909dbbfb1d02a829fa7958158240267f03bdf19c716270175cd3c655204b57fd5c3cd9b8a535ae357b0971717b2ecf35d76398e004951566b2049d9901a263a7f2bb92e41bdb9ccaa0edce3e5ea02915690f6dd7b9a076c3202ccb137f6175813a650d09e9bc19f1516c9907925fdc2aa108980bf94a3a358e957b4b035234911c8173ae76a0ceb176cff7517f339179689842042d5a0ac5e485d3caf33b49e18156eb5c2a4f6212f75f12a68de3f00ca4059348bb998d790a45fb17b9e55b794f2d9e9a6d907e1cbc61128d2439a0ea3f98b2610dcf6c5be91d1cbabb18135f704eb4f0a72dcad8ad201f8facfb4a1b1f99c8d789c34e7367545e3c639b199dca0154e640eced4db3e35f338df295a82e50fc30993fdcc76d34e8241838143b478ea605a0969083b4f1fd012fe62a98520477f6a409be62e403e3fa41b5ac3fce3cd3d430f35a8399931f81fb9fb0f375ff60b012ea9b49b20a764748db8ab3465503dc56caf4544b11ee3c57e4d0c17e87e0e74aaa1b86c191ca919472569e991f5da37be405feb1b391b9ac7e320b55e51f22b611e71ff7e006638d42b709aee30ab3080a368ab2c1308063367dd9e26144e9bde7a71f3e3e53429b1256fb6de8329463022fff3882f51ae2d259310d4278c4c7f3028b7df5d9b826acdb7cbe78fbccf69497652a3f060e931a701dbed2e23c3cfea16d9c4bbf4c96d6ed9489d990e5288a17c56f408be4ddd867a4dd57abd885d02ccc82892e875359344cb654176760ab5626f1cdad2527d2e9ce521afa2108314ab119f64defc5fd5aab2d31b9d808befd90972e9358dbd19ca40563f89e2ee9a32348dc450e558904bad7b89dc2878cb30b49aa6705609d282dde7accd75fbfe02af7813d6c69c7dc809a31ecac45dd21a0ef8a4eb41efe3672c6a6a054047da9ce0e2e5e8f6b7d8a055fe3cd1faa78ee56721772ee7dbc6e79a330999e83e9a518762bd001c174b6510f1769a21e27c336b896fb3ae59e774c5f60e13c46cc7d0f15c0ba4ad574076d9015e7bd09b04846aa521121be6efaf3e07ea0b6b3edd9bcd43544f00d452560cc2570f8d3dc24903092da2a70f29e7410d2fd9534165f259bd1987dd3aeb932a98f2cdce473001c339d81dd63f30cd9d5a4215f300dba5453dedb798e786beb119a42f0a43d83f099bc2cc2ff38eb2a193b349f0f9b9051e2a2386aa56be294eb8fdbbc7c0256164c370462ad8be46dc3e05dda38888a223266d5da824fc7351fb61ec9d289209632563044d3b29facbbdbc49a159c4fd12a71da508cecc1d49457349e0f9b8a763561d8f0db76c3eee97492660d9f8866b10d70552b0a797b34ba44c49c003cc03c9f26ef2b9ff83c35f3efc78858dce7b180bf70c7709631e62777c1df80dd7c2e5940c82df5e89d879f0244ee90f45e1113ee29c8e7c1ff92e5f51f42e215b0f5d74e0347403919c7c1f465a80f77d2b90e25089737a2eb203de5652cf08e6678617929e34793b8dda1ecb21c9d0e4c90b98e969a28e00079776f1c0570eda59f3fe8c168d39f83b18713b4b30261d3805b4e5a3a81244383dbbdcb342bdd7652b8c5533eac04812bbb91f2d505176f713e90dcdf0c15be27b0f4fa23e904df79153567cd9a6bba34848df4eb70d82849a87aa5f28f5c784e403f3239720aebfc9f62867c657c37b22c2f435b094e07f1e2343cd9d3a079ded1c4f9de8d989fc39b7437b5d4deff8ff9a1668f991f135134e729fea08acac1acabda7a045605b7549303e0b03a1ab13408e5ede7f35551e5bbf5c7bec272dd191d5a759deb24be11e57163c1379102248f49dfbd73d3da3fd7279ef4ef791c5f420338210004c1199509a7cf7e6b68135b19cce14697d2886447ea0bb9e864c8415c29573caea9b5c95314a2b6b0cd4797dd1c1c15a9230989de13cccac69f9a42edb10948295c2daad8130188691809691e3636880fb30a6f7381fcc71bb41e6f3f39fdcb7dc4c95f1f0ab69c9d31a1f96284f746d36cd33d8e9b665bef8b9ceed927fc6eb3c8d110b062879954005770346d27f8fd34ab1cb7cbd12c4b0c5ce743e4ced9d24f8ce714843d28966c73f619598d4593f5dc34777904e2361fa58306d93bb3e2434309d2d6a0f06c5f3cb29bb0f2d69f96acac550bc826b9acc1e9a96d0ba4ec8b3ea172c2779addc1fbcd41db1e5228ff64addaeae5a0db9bf643b4070556f60fc5d57daf8ccdf278f96f9340d96237184b5e8c7e23f7a4d48db6b011f36e0bb720cd7a05a532b26d7bbe1a48ebaed3c9abe8f62f4ad31c3fcd6c24f29b97306b96b2f12b8b702588cce55d5b1bdd04faca729d6621de4cc5008d9812c5776f1370ac6a8b063053b2330ae5e23298d293f2250b8971bd3b4c6c4094d93bb6cf97f7e26e8cdd1a45d1f7563843f986467c6929c702021bf1bd5baea1afc4fd59df707d8496dad502ce61f0e0e83550679d77a559379c9e770113ff46fc27f413d326a43511c30a9292b9006537b19d3ede66c14a9207eed4fedd5a0c282d42075c608008656160fe0447b04d9a3416d1287ca720790ab4109e00e77a9b9e8f3d60653985fb7c804d0b5226227885632a61037c66566f9834c8c6d018bd4285bbc87ef63439dc118791248a6b396d2b5173416ba190fc414764753a6ef7e0ca8b7df3df9e8848bcb57d0305b144b4164c447f995b8f7a585159564f05af4206b5660c1e4a518929ddb738bf7b0322ce25be04311bbbb0845b91b137644e2ee23f6a11d8c0fa67ff0a260adf51dd7ef8e4c81a596a7c686e6bf3ce1a133d6d053373493889edaae741b4c38dbb3a923f8f490739cf3a68be8c67f41f9be3c7199868fd632c901a888c48aaf342822448302b14fbd25d791bc3d56c6e83a703c377307584314d7f8bf2ca06366d1efdbece5589c4fb4d632d1a257f3053f3ebadd7b5f9c1218ba0977c232081c574e54772afaebfd372ee9d983f728d942e457fc0ded14283b14655303940fad1eda48b2321ca11e135e213450c90accdbfdae03b934430df29396c18f5adc919f10134e99327e5adfc06362a7220b6861072794ebc9bb3be5a41853c3fb11725e9c5e7cced0b61c03023af4e5a69d24788d5f204421ff2a6ac2648a200920c7e3bb84ed517bfada13a0125baadb429998fcaf2620b15162287af5c541e99cfab51a2110bf98bf2d8806841745149e3038d1a217200c846b753a66a5a830e8934924bd8777cb658ee6c20ab863070270eea8d293b097fabef78d119ba153961a2657b4a1f868a066a65f00af731711d400febafc50f816d515ef8127ebe61807b34f90f0d004d25d4d2a207d03b93ee2462fc5e19f817b3656ee5fdae65d00d4a668ed049d348dcb51dfc49183820c23f4c88db3eae89a5b40e5f8150f2cc3194630235d9e5c35494adc779d70f5ec01b3656d13c171f6dc5a72d466e4c9e14e3921de5c72006b4f9eaca3e16a896113f862fe61c1d213020a218f50f5d8eddbe5da6891b6b58256c3ccf41dceb0fdc33a6dbc2e5a7d6194e65e8363c0ce3b5ae2b67c8dbad03cf760b9c2931c0134a80fc220e9f9c874dd65a65b0fc41e7c33a65264b11d04dd99ebffb9f1d0fe883adf2cc7252e67cf740e8560c57e4e030ea71acb9c4bb7f6c6dc0b14ba9c0d7ae42eea095076cfd3d157685f155de172346b8c1bbfd56e0af6a7789d4dcbb28f4c75a6720c6165247dc6eb808ff15d4c5d7a22cf9c389bacb1d4a4ae3bfe8237cc59de9ba95ccc23e1d37b8f95c725f3d2498b71a1e3c53e70ea2bb1f582f106fc41fee0c7e76964a61394d6b74ddffb4b50028c71657f52cc6e8a631b17936f44a483ebe88fc17922edc3e06503ffd52134348a7b4c2e6c2cc82d1c0d2acde34e180a077bb468a3f0f885573f77ea13ec5cadf63ff666ed0a8da0475c1b25056102fdedf203d3a7889a5585a718433a153fcb5a20029d77ee35609f88871d48360bdbe9fbec76e66269b1062c737fba24640910dbdf467f60460a7f02fd3b2e35792095f9ecd6d316dd245340081416a25003d4b40b0685d935fa505bcbf319d7f1686c6c6388000e6b3bf7824494c2078a37f05914320de18bbcce0391c9ada60b2ff7d40eeeffb1aa445d53c7765edc89120e3b697d89e1cdbe429add435c180cc3a2c14d9024c900ea1f34ff2d4f99b31e88cb992d7c82729b58721ce4a7b69ce017a48e00118d05a997b65a4e16b7ced9ea9a11e6782bf0c06a39cf2212fa31e1a0fe6ea338a63eef6158674d46cf02c0ce17722cef46eeca02526280206b4264d94f5e1e1c7d0347f68bb4af4238157f8dd42855548bb324cb4c7583428264c64b17eac53fa9f92fe1d0b0e8ab9b6d42b450a3144a32e44d0f8886a00bc81fa250d8833d149597239db7fa8de55170c6dc0d80de32f508bf49b7046aeea4b975a511b5ea3dc853bfa4b1e0138202d6785f6b3017914a86f824288d586dc0e8bc9243f1510dcab550715f0ffe0427f4e3d90a3f5507abf594097d7fdcfb7513d3b2ffd406171542828e0fd8b1de296275b36b0d1ae881baff84265a7d3a69d17771a5cc7dfc2071c27544e8e3928f85ba88fe37ddc6646da70eb3abcd8cf7980478c6592cff84c99cb1aeaee7a3d2f53ec4443e2223dc84371395f22275a6de0712d1f897c3aab07dbdad9952949c376effcd8e6c7352751c2d4dbc3087001a0bea692952db1adce203b24698d733a2b7860ab721575ed6b2d65b685c239be26f69fc69c2985d95662e6d254f0e41edc5118c36f5226a1fb7894f8529fdc2bdbe1bfc487b9ddb7076883eb3d98c4f6f040cb29c3c76fcc686c08aa11e581d12746af933f25e1d04afcb9780bce3a4bcf0e21e358bc79f51ad16ad4aadd523673ef173babb5bbab85e4307fa8da6ea4e183c4fb14796ba4796f617c04cf74e425a29dc5b2b190d122e9910bfb0489898d665978e1456e62ed0d96ac09031263a728ec383e608bc887d38421ec94b3823e818b63a66aaab5de75b06ba0c052395f49aa9c360bd11a1e6ab0cb63d11318599affc34b2e4628b46d58c2b1505cf0b7cc80f981fa8d4e4d76be104805d2d2477a60a0b7da6b40d7be36b725f95910157b15580975e5ed7ebe55f98376 +MD = f111f42e43116ae36f870565f0060ee24e7fd875bdc81635d8386c38 + +Len = 43280 +Msg = d720543de108cf767da5e5b48a6efc5148ad0bfa058f5e61fa7793327098e94927c3ba22f77d4590b855b1b260754f236b762072807997d251739f12c3c8e0cf4f1c3ee8a765a3329d45ff6d41988d774a4957c0b869fcfeb782b122c528868a17d2eb7839e872c3f61dd6cc77ff3db4afccbaccf688164df34cd04ac0e162e2498ec6baf52d39ab89843fb749d3e74260aa507e81fd6c28cf7a0472fa1afc40abf7d996235d80511f234016fe3c1389258921bfa3f186f511b45582bcfcdd0a07b62bf50a9fd01f7fa2e4d1df614af1c8123675a28ced1d82a1cc624eaf8caa2372c4bdf31caf7c73a830d1346b13e20fec968ac7f52809eaea70faf85a9186c7d4add826fca8d0c1dd2efc4581f7c4c4bf49e45a55bf2011374a3202267508bd83ed2ceb66408432ebe53b59cc7dffad35586da3d33bc9be2f60f3b33abf96cc288ca38a8201fe8e775d77b9742dfb93f4ca0be998236ebb7abc2355bff79abb6b93244a7972a79d2c9f96aea08f203da4a7a876ccff76cec166ac2edca67b53f3099675731be726afb2827e782cd775eef82b90955849c0ac647487ba53a15c69f6e351978527f3ab9e2171258b86017ac47c801eb44f58e2c065a78086749e7462f2270e37cdcac66c5dd1cf3497aaef13838e8d9ef0600c8266d857c75ce0bd56ab3e00b94374a8231ce49db07038f5ed28010b9b949ed1b05e60679fc1ececd9f6e09494efb9facb48f4b8867b73365b5323bf35a3dcda543788d7950b88a8f4bb53f24f3b60646dc847483e1e235764ec3ad2f385e0ce75d898d032a27d99aee2e043728e338d0f84257461c30f0311db8f6b5da272561c29d879fcee92680f53cfaf864ff81ebc64d86476d100e069086ab3fc625c1a50128ffb7d5891bd1ff7685d12e878be7950a74105b0be96745b12d2572e65c1197b077d3d46403fe7b4f3769ec07b165030d93396c711ce3abdd1eff76c54f47f4c8628c32169976e73b721b23fc9ce48ecb761b280c130c414ed326286f25a8b6d55239752d26dbc1dfd87d7cd298d696c89f4e0429563194aafc422e2079c44c6bc97413f4468da980dcf94d264fbbc999713a976561041455fcdbfea5b61b34002ac49528630cfce2f2272b642c1485928e79482ccde45ef4574bf04b552dec1718938f2626ea3a5aba8f8e18b871695859829cfbf762c2ea9e2ac9ade16cf324f5796869eca5f07c888aebc07f42c36f74df0c5f77ffeecd23f0d139f568e7ce53de97803eb0adbcfeb1cad7eb19422c42e72cc3ba2c31009b26bd7beba21857b64bb2f597aac0908f8cb1db76656433464364d5587848296634d4e03e9923759f49313681e4e78bbd842757bba787f9117c4ae0bd5492ac17b3be0388ce979c614fa8cf780f61230b2091b925504c0216ea559263418f0d222bdf5234a2c320cec7702d047afbeafafa979c4e001ed2e9260b46e4efbbc107f5cf58ecc654c71a592ddb91c7e647ff7a9f5d90378eefeab7d29aac8f976c4bb9f483fba9bae3e67d3857ba76dede9b191f9986570abd9e0851fa44d1a0636fd0f56febbd740ba59c363de8f833f3506eaeccaaff10b0959fffe22836754ae6e3287957720ea2fa4e9dda97dc843ab1d3a36378804f9d53f732ded12e74874369344ca977e94e36fcd5ca61845e1921f0c3fa799af5a84ba6916cda3a3cbcf7cb7f367c3f9261fe3f8499b0901023433e56ee28afc175ff16a2089dea1c3096828fe32a29a882b28f10a51f7048cd7824f2daf02f318ae0dfdb3eb6aeb1a68246dcbf4dd68a34f654009908b5769c433d1e4d8a99b45b935ab37b9f089b635d50ec4741b6b5dd3c36eac1f6d017f436ff4f92328fc86c792fb14bc178181b7a6934f7c05ac9ffe69025dc8440ab89b5e3ed559271ec4214c75b3bc88dd6138bd85d6d24332521a7f848351b87bfa162739e0424d0ae5108aa17a81eaa540fe426cc03f7c065c6d2f7d8583735b2ffaf36d82a543c7d3da7408d2d2e6df05525ece758b582ea7409f74cd261ab23e90e961244bb15d74c7333124782495987c38355d7e81b419daf7f1c20258890f20329d2cfd3dd5b221efa4d63c4bcee1c4fa28e0e09c9f9c85607cccded2e78af2f5a904819236742ecfea52e40393c772c930667854f81787029e538433d4974d5b0e129f5688a138fc8afe38f6eb35cdd0d4570f4ec6712904debfba21581e7b8c53c02132d323859e0c4402cade101e349c1b6d351194b38ec57949447c07c2af0075cdcd20e15ddcf98b08277441ad20101a5aafe2676dcadae7f946473a6bec9d986dd076c30aded83a13b6b6b0c2bab9bc9e6440d29edea57291ccc29fbd6cb393c7e2deb1d3cd31bbeb1eab45a52a1e6a00fe33bd90f2ae82db81f31f0257c9cda4ac5f93ffd18d7558085be99d99c78a4a22c310892f7e809d0ae4a080d568aecbd50151d71172d0221ccf82f42f3d86427af9b3d2bc9cd2a0129d0b810c179e0606ccd4a3b66b3410010ef9f01307c4b1aedc8fb3c290e2ac3f24494b275e051be7c902abe7fd09ec602037da6eadae5e66748a7369e31789398341264cc54bd31fffc436cdb2b77ce00e23fa67b8aa1349ca8d5cd81cd8fea9c2da5ca4d5d8f65777038d8f11a6892adfa49727af2296ffe581b438c38fd437e7fe345615154c3637a5f957a23fdae59ba4fad51a7db031ce4cc4b060a3d38afc94f58a0e689c654993c04aeee839ba4b0a6c9a822329878bd8d4697c7cc34b0883e86a463ab08bb4b62a927c0a6c51f6be339e6d7cc9a8260b2c8b9e826c2114b5551b47f44e5181f58157d40e3c51a4a7970866f0583da6cf133d4f1d96b5271184c899fc3f5fb7370bc07f5a71635dafe200f2e79ded140bd3a716b508af497fbc97c2bc4b5c5e6612f60458d32e2abd5ab09bc9616177a7b2f27bb28bb682e746b04c9a39f17f69dc21eb6f295b12ba493ee8fe6c40d78af946067ce772db316a3cbf00d3c52128b167bd063d911e8cf5d261ee86333d9eefca407be48c5b467063a155df814c8bdbf30187d579551ca7958f0177e2afcadea7b01749ac0b0ca04c7c0126cc087aa1eb3f59bababf52a6aef9a006f438f60c04dfb9e079f16c4220d76c704f5edd4a7800e4b4fd64163c462831fd12dd0ac20a53c76f9c174e9d063bfe85b1559c1fc1ca908bea4d51af85a21e22e3a8ef48e196abbfbc859bfa272f1f2c9bf69f68ef28c5062881e94892f1cd3e10a08be6b030cb98824239a1ab3b372fb548ce6d299febee6008c84f969ca81840cdc7e49fa791c2965612dab9e7ae54a653127598b96a0b39ebd40cb82c157a1c388c89d88564049fc90ded79bcec64171f51c963fdaa255c31f7c621287e2a4be8c01f8051ab2746a3112114415926afb575b2b4f3140470e218c7f8184af176e54cecc294d0f432ed08c0b2ff5d64171c6476b0240e6f1e071f556685e19745381939c4d53a300bafd9107a7c61e4f65c085d811701300ea6f3b993f6abe45fe80e4dae9c51a67bef6c5a9542cb6ff57e47b14f54560de7ca7e3ba6f310a06dfd1272a9727d1d28b7a9e52bd905cdbc880bb8416473cf5278a722c804789216800feedddd265cba0e78fb63c775c6f2853bbc80cec23ef6ba56b820b24b830378ec0a7167b42cdafdc1e2659685223f7abf03331aa9217c977343d784f13bdced910e8d988f55308a6ce35acd9ca84d717fd583d192418b18e70c1403d28248e8e6425bf71f9f63c061466af52121c171627c987ae467cc43985b00b55620ef6fd2ed000ccdd21ca48853bc957e564683523f999d0759e6226f78c324e6dc7a8d4059a75fffb50240c95279351a0c82ae3765afc363e082bd54aa84d8e87f914715cc76791e11be9b0d8ac85e5d0e1dfaf737017360c3481a303a6b58c6d1dba73a8f95e193aef7bd3a44d296af23c06f7bfdb83566ccdf43e970a12ce69a01b497ea2d1fc55456af3ac8be6878121316abfffb91ddc1f04069944edcb2a2aa76142466bc1bcb8278f35eb55920a4bdf66f84f3102d6b221796ee99f090b17ff69a87673fffda24204f4edff30fa16717b0d6c739be921ed25ac6abf1ea8e283b0f595930d84be4b035df63bdaed1b882543ba094f8fe8c799c63ac6727024c4d5de363180de4692f8c5a6a3f63fb593e45fca6aa44761212440ec3d8afd593356a6dae7d086e5ca53e071b0297e9f1536960000208c35ba7390f18ceeacfa7fa203f62ea30b0641a322e9f8db36129caaab1d725adad0d3f65aed4d040b72da465a0a6e4ed742a9750171d681d2ca9aaef3552999cfcd1e3af331f671957d03c23daa2f5a7805623800abe1c3f1218fb1f369ae83c784e9affe52019dd7536c941337fa4c69d8fc7aa4eaa3080da1ec624fad699f4e92d6c3d0d0071f4da0753a7f46579b2937d8ab62c082c474e6412e5ca2f352e16156151f3e6f4c64eece33d647bfdd42ac9748cec0099fe3492e74aedcd4351c8af8224dffb2cbb998c7febcdeab7922a1b8d15d6bcfe0c55504d3badd74bc5c7a3d69c1967a03c8291329975d930555a1ade373161e3d979444da05076d6f1db9865a2e851d8afd2a0012fa571ee86836f6edb471ad0cd6719ee611fd16b3fcc36381f96e15d7e5164f695a5da7b8b6dc245ea5e0d4e50e975396762119216612656f96941b60fc78218b3bd3b5fcee0ba6c4abf62e4cac5013498615dd3de6310c71aaa966bccfca56f7135bc20b5a4ffeae5b2421ba3c464e9dd63deb7009b9b9468a00b051cb87304b8548748aa803ac7a17ed57a43ae46601fb2bbc5e2ce70c4cd95c50b66c294de6e64c15f143e130c686d4289124b51a044941d86edc7375f30cfef0514e3b1057dab95eb5ba431c021c5b2d079632bb135522c80894d976e7897af7b8de37282cb722976e67b3debb4cf4cd8debd7c9bdb330f3d1f2738f88f352df6398a7e5c4200a5871f8ade9508d33928aa22ed661d81ef45151ec3055cf193fe809f7e9bc99f32a76d9bbdc70719a048465a251be282f31ed5fae09ec7130619caec19484795f85c3874818998e8aac1182dcdc214804452c58336c9b8e2b0d17f37f86aa62b1e31e9ded3e1a38a7e1a8a638d619ac109694f806e9017a7b9ad0749c209cda9ccabe6a15bd9114546db03c30c025c8e6be9dabb2ffbccab4935caea202da4572c549885c078c862278deb16f3ac422e925ccdfa2211c03386f231e1badf137c63b36752abc6b1284bb7a924e96834eba5499206efdad98a9b6ba2f8372602629c50bccfc3ccb4e1dae1a7b5973d1a0bcd3990a73d5e00f7ae2886f5400b594ffdb4fdc5b191bad3fb934c91a533dcd731b32fa4b4a61ec1e8b246a17c95008cae6694fd1c1da948d756007fba526297fa3fd7c7fdb91931709048c494ccdf61d8eee73cad796b8696b12b497ea394934f65f0d6c09fdb8f6f4af6262fb8df15a3d5604d0cace6d55f2d35b59b2d5b1259aee29aa4614a230c69b78ef662e6f236a265f7e0be047f5a50878cb6f89d5e3fa116db520650347074f2c690d1dd3ebadd6001d1b8abcbb1a587957a0d44bd2ac7f2617296d40bc2f31194a70dad42560fb83489a1c50089b19e9a8c73367842a6dff3ab1abdf12b6f7bc1e01f3c4633bfd558ad8139670dfe346197325dd6aec8465ba598f52cd36f9815e50e749278751f35e861ef486213b2b441539f2197b58d5f091b6304e17bd0575ee23c6d4eb9fe92df48cfebb3787e5932dde69f24f31ec87fa8efc37d1b8b51f2a47b21dd14da383d3ec19726b6021813d8199a7e0c5f5dae4981afd1d831c94a5b1bf44c0d1bf0a84bad95e354a5bb8c4d2058cc88bae83f05011202392a880e0f032fc42d2980c8787b2e13dace084443e32237ed962fd9e557323bc7de56e5c81b196cfa6cb047cc13a7ded0e7c9e4c2493fe7c55afc25ef6c58a208b6fa778f4bfc6dfe4d4aca505d4b6bbf57c413d23cf903977015cb2d26cb5f86183e6d6b7b1eeec13214fc0a4261e32f86c27a7ca496b4ec3f4272a76ed59bc96de86f6593c918ca84d88204a8306da6dc8ac1c7675f214b2f4dc2642dbc7e571ec124847b4313a1ac5c0746790132aec1e68fbc6e9c733ca8fc656c49c92fba919135d01cd406ce106931d69b1c5ace9d9c8c61a195d147121900c7ac44d77a302049515cc619d91ac6a8bef8c90c8fd87561c0e89164f5d56a3e7e3c759d1d62350910245f764b313d150676507077da39b6e12cda53cd59b8c497e3a3aa2d8e9a1d145de942acbc9420b4fff8af100bb032ca53b6c75807ca3d1d871825321e152c65edaaa882259470d27a0bf1e2d4a17e85476ee81c456a4f15121a37b2796fde0cbeebce57d305ae67cecf5d739bd6421aee49dda37c5ea2896bf208370770dd10b6f3dcb22eaf817ce58d1c4ec915258f3291cf75156fdf807ae8bf4830dfce79bf0cfb1c9e599218a68c55f8c727cfeefa8ce5187665ae032743856e5c855c50c07c531c8bcd8943f91631fafcd4e93f2d8448160908b6195a4d812ff32b2d9ca08c0b3a5dd10d05c671d8ddcfe31b88b5bf1ff73520a0cafb4cdc165d97e96549844bfe7c2ec667f5e67129aa1e0cd3798693416174131ef289bda8029239b3a2ac3df151ac5d706fbd2564f44b65276120cc7ef7cdb81e274c4d6f4be3c58f934b069a42127a291a3e1b181433cd8d55d7f1355ef337d183ddb3f29e54340004abd181b82ac498dfb17ccc749eed0b3df12beffeae3740ec8318b964ab2e0fdd12c42f1cbae4c7a75d6f097b546dac01b7a1333fc660714b87a44d06b15dc306c9072bd48b81be588b1d56911cf4758a717c8989025c6e89317e35ea2e66246818c3fd4a654484db83ad3b1ebf2a70be67e379442bd03f8cc9cff97aeaf43ae946202ee40fd520198d48408a06b8a486e0ff8cd80967ea3e97be221dacad0e729d45450c53db9df9f116ee3eb64619cb26f749ad64c77986e374373a3d39a7ec635bca29f7ff0062f63ecca09a7bd8737ff4392b0498f34bf419c03b66410d3de18946a2c4e8533ee5e963197900e867341ee2bbb183617713d44587ed6d494f5ff840e1823e9e74063e39121a7c51908c9ccec3322fcaf188cd4f869a64620825cf404df9abe7eca166d8f146981cd5d19785ad504636a19b2d65a037cf60527a37ce4ef0d5388efe88c81fc5fc501d49368ddfd36dae6f941c103d8a554c14a858734c3164984265cd8f055f4ff5523ea270c3834e3843bac1d7c55d9f2d36f559b6af820110f01d5db70adc3a145bf602b6bf2791df05564542a076540b9faa6320e0ac54a6806f5fc8950364b320ba7fe53d89dea89db0cfd9369d1dee390e9d3845770464daa3fb48109d76dd89d14187a46fdb9df3108825f09ca2dfeb6b308647aaba52e6015bc1e27217977e856f235ca233c5f0be98ad343a8ae59d0743924e0f1d778dd0a4ba734af0ebe71c3242cdea8c287a0126f96b3e7e09372cffe5c36cd6dbb55a01bc2beda8e0acdfb16b5f0e8fcf7a235a92fe712552a2208c060c8a8c8647e5984e7223e87eb51615267ad8e3c1d96a5dff539b28c8c42b117d9331e8812cba91f8b0b358ceea0985fb860e30067d1f57c8d4842e738697b6d3bf2891 +MD = e425d4e020d60a32c3e07dfeedb55518780941db30b12d79de2b3876 + +Len = 44072 +Msg = ce9b0be7c117d40d08532a3069128e62fe0fa14b224c2d1a91a769c1caae7962b8b4350492252b8b0016e7e77f20728b066f1821ea166e7cffa594ce00feb81b3064dbed42d5d84a769aa2e3061ccd8ec0f950f6f4578991907981d38a9072a27ed3860999d1e230b506e38cc5ada75374d6d03309b884438e48b83a310bafdfea28bdc05ec151270483334a867c09c26a2d203ef1e169793f3dc269bd1777babc8c097a5b4c2e16aa3918850f31fac3e927c9817479401bed7d26caf65dd31b3b26f19f561b80e4f04f1ca52973833e3aec526259290f10de336cc3a385caeab01ffd9718d64f7b1eeec7129ceaab1ba6a3434b6a98e0425a851dbe8e37650f639eb5cb6924a3c27c3da034303f7a42737525a36d6eba98ab9bc0227d1aab729ccca2a110ad85a151652f74ad1af89be9897ed22b55a6fa189edd5739d6a4fba3d04b82d71afc00e78dfc38da222e0f5208d9406cf3aa50e8b6fdc58a145893bfd338d7841311c784de90e980002384f419bb55f8f0d182640aa7d4377cd0203afdf206e03fcbde718072f0675cdfe319e5ae7996f52079d4c363ec0ab5138b5a750079b347322ef69a2ab357dc6b150793391410aaa11b8008b975c96829bd6864ea96c5d24e9d5a54419c182bce01064ce58e2cb65b51af0232d73d3c1b9dabf139c7dd892814e7d73e1271ef108e6038384fb3c25604aad9557a2edaf0126d457473c514c77ce34ba97c2cd13aa65b7ebcbf6c759b1abab4aac664e9b006f4872301431a33bb97d80b440f7853304147f9462178317d25bbba24a61263608ae0cfdb204375bb4ba4ead1e38d631358ba764d9872201333180cfabdfd12087578ff682339946247dad18b6fb77339e900bb3a9a0c71c62ef029b17251c5e5fd763b1016a1989ad2a045da7d9f89893b405077efee2b7c5c6e97b28bb682e16c030b3bbf268a4a351ed026d3ecb0eb98a3be6a5fbf561f07b7e064d0d653e30846f851e86e715ab97ef9d73a47ed4746518c7db227fb9675f68b2e0b563fd41b6889ba572155b1a3e548557a584a858e714217afd020c9ee51217a02e14e9aeb9047dfd5e83e393e7d46095bc6ce8eb82b689f205fd0a0bcf029af7e1d891ec1e7b826296b35d9d16e7a59a53a81480ca9877fcb7f100326fc2b3447b2f748e49566f81d514179a3e06dae1f5b6c9cd210261e78d6eada739db0732549a1019ec1d9be77426b01fdfaa57193d29672518bcee4f10c650decfa3fd3e08a8d2f359397de00e8ba5a27e4ac08c74608b3d23f0639fdca8984d93c60bc3f1cc5bbf2342ac280e8366a69c70add8360c8459d57568563b85f28828a9b960ca8518e1dcc1ad0bfede71a0bcb455691c8e012faf94630ec7deedf2e0d79ca0dd5378ffe82ed72849dd6535417e7ddb8255701314e5fa260c13f9226ed81be0b4c81a5dc7f2d0f98a00afb8ed478d9bf1f36f9897d2844872e582ab3513cdbcdb437ba01eb610ec49f8bfbff297eb26f5f84e44bae2a7c286a438d1b6130891db65fb5b3ed12d9ce42623cef3f83cf908d49a9c00bebb30d1d08a5a647e731c1fa037d3badc7d77e3096a5a83d0e9aea518e302db9f552fcf0ad589e28e93982272afce15408709e122f1d714ca87a44515a61dde3d0bfbe8a3c90492fbc0b28e5dd19ec0a5e0cf48f368e9194d7d76738b52417af02641b95bc34f181ea0d7bde23bca6f64f134a50b2df513c261a1caca761224515a8dab6362cdc49fba943b704cd554165ed66fcabf8f96d1aa92955390047ce91f2c597b16052ad7546471b883542122803103c29c1d14e3ded56dd72e9ce72fcaca2e035b89dd5e24b50b0b8dab5921fbb12b835222008164e6de95b04ff58e03d3a39cb1c04eac922261e9ba5f5e9d27e3317d60330c22d353424fa3a21a9c40d55487974ce14b332910e397e4c3ec9b53a02154c47a50b08753359717e8c3184bbb849a8447a27e359289b4e00b98dc6f020f8e5aed93730f6c180925c2aae0a332f43a0ae45ad9d4513c8fb5a84a51b1d1a8ab6ad8539168074758604abc30786556e44549ccdc81e78c86fa2c4991a8997d0a78bd19a21daf44233be36f8e37cd4d27d7da810ccacfea49020a4f22dfb40d4a192e6e1b8ceeaef83d2f3d606dd5177317291fd12b74e63481c4a37bb3cbd9d8a08ec964522fe825d870be4d8717766497c7e1d00070f0d7edddef02c15b5334c360a422f9fd705a826a6aac200eba6aee197f6ff63eaab1aac89a5e74bd09fcd64696cde0d1e7f4ef7ebb12a51583f46e906127895874403d172df56a9b7e8f7da319cba347af936420380792d643afbdef0f9d1638de02394c325e0f61216b0df895a2bdb947a484f16a0185cb79eb40680317496a587613ca100edf98832e2bc992f99cc130a6c654b976da6fa7359abdb44c7f67642a51336f7e57bc24274ba8aa26ccda0b18acecaefe2d3d5c1d1132cba344aa918d75faa92314468514e1f843c0ca7e3788ad0bc2fdeaaef9106869919215ce512e0692559371c21645833ae83e122836654b449e0c9f4f1eadf4e4aebf8f2d337a679ced560cb95857a40310154052984d1c298890a7982d544b268b720d51a8f12d7cd8d14186dbb9c8c353ecb1a7cd9e741d2b20b014b591df91b0601cd63220cca4b09bccd510fa660e1c1af27256d7f7b1ee43354f47e526c8a5f03a156f97d9b70d2beb0e88780045d1269f5cb4882b6a5a5ea39244ccc53de4a8e1b9a1b4b93636f848adb2e12c0d2b95f4c1773d63b8e80987a83cc71f63e4f0a01d89060f84d687422d10945dc683efbf3b1f5655202faa5ddba052a9cd3f7df1cb761a2125546f8427322ff9f462aa4b440d61542299d7a2b71ffe08ec5c97534e095fb2ba49077b0698029539505c1556c1ed0552af07d2b4fc379153b4e3511fa34528961ce59355a2bac3e7c55bc9fdfd67dd12e7b17a7fd58df775d0c857aae478e75b5890599ef2c6ea824a4fc5a3e0604ff5cc7b06523c6f8fc548dce38a4d49937c847e5a4cf8a59dbb479e94e34b44d27dd5bb12f6816aeee4859791483e65a17c193601ea24d541e555deb4267ea3f91d8bf80cb744fe79360f6ecd3f482b95dc8f2dece127e46b82fd76a007fafc484767c8701f0798d35c5ee91409eb29e5007eec77dc52319f2696fce4e250cc34adf192d9b849d871a9fc9cf222a7df139a30e84f36347b4142cad7ff5010725293a1ed95fd7c2bd8a150d0d403fec9a60c7da7bf895efff669f1ae6bdbaabd06aaf14f51792f017cf4f44b5638605820d99db15540325e22feb3d696df8fdad546882e8895c2f7d3076f52e53a6d28f884198bace54f045b9379e71cf6507a4318af01a7ede88d7f4b2a9e0d8485baa18e89ad3303059104aacc667a9a7d09e4740e6f3bdc0020d642ae733ba14a7bc07b667c64041662b2b723cb1c4666081e0b0eddb10a9a607c807378fc0b1beab9bd289fdc72c217ea4b088b9e84bc03742028c3a3d417bae6870215cb4c8a8611d6588de8c9c92f2fc8e33e5dcfdf7a6b55f4c780d3189e88b8e2e025c006dc4d496ead35937c06d7d35c49f6a250db883efb4fd4821d89e7a89e5e9800216be0a8e3943f4a5b3d86dcdc34e586b0b53f2d94c31b6b871b97e88cf79ea76ab360574fc96268f731c157db9596f76f8614c469c7d1e9f5b1fddb3721b610232130f71bc33b79d091fbd6e2d2a77efdcc9d75d2d474a7e9ebadf335835ac51b53f6ead00846f767ccbadc8a728387dbf73dc4786f800fc4370ce30093194093ba16a4f50f016c3d4072cb2afbb7ac9aa47a22b2ff909c1502bf0d10c75e1d3cd214d8034df732b19ba8354ce4b047ba42d7332b1b12d76d0d28f3fe86b5b5672a75d6735b94f5754cefbd78b409f3ab60d9583938733c3c84df1a22879c93b321be42ddae772ee8d2ada636f0313aee7cf51485de5e54f42845e215109f529156528f9accfa499cab6681f01fa28803f5befa6983209c3455f20e4ed82a5c9246e72f432daad00155aef34c98ea558c699b7c7cbd568c6dac67e14834ca2c3661c0945f47054ca75feb5ca4f2754dd8572f1d37e38ca0108a1bfd99ccfb4bee45837167afa62a0f38a03071c2efbb883cce4f139c2f71bd7d82c5abf72a262a40b428c4ddea02995e62116b7096391c891d94a85dbb6bd4f530dc074a03658b01b73d1f486d30e65fb571da822540e5da71806e9ebd08f79faaa3244be36481072120df758c6f66bafed4578e096da49f8e94cee5a0e385cb64ad9b5356bd9caf66767dfbe408aaeeb2ab5aeaaf09b946a94441a913661006d36dd516d9db4e891b908321f087236985896d2ea2bfa47e76018f8f610b16e08b765a0ce9481712a52187be3e7550b9cbd0f6c070f9e695697ed0df266d1ad70139929c117e76ea878be3f71a5db36e1a14905696430029e7feee3eefe68c58b92a274acf08ee6f5742208330aadbe4d4e6b2478f2571ba960400150a11fbf437ea809f8e51fe1f88e6d5d90dd73abca0b9e529c81bcba5e840eef81179ea27f1dd2710ebf4268990dc7c7f0e8d4053f1f0a163dd806eaa5327e36ea288c7627b9493354459e81c03b57cdbbf179d593d3d6f8c3c0deb066b1b85df29c9244229835d73441dc37555e46f75ac10a23b06f2b809601ec16894ae5ec003a57135a02bde51579a38f40bfbbcd33202ef57d3b30371e63d723f7452d6b7ecb84ebb64109e65fb79c9369a6dfd8afd68d55e27e0ea4c3ae48df96eab763d317c0d41e9c426279c16f4ab95ada9f36aad04ac782ec50eea9e6534f80ac5c67e6b4d77a5a90dfcd5fc3bc1625d3aa31659fdc148df3c1051d5a860b5133dca20007fbb2c41ae7c25b40f2694df28206cfa114b1e84a8172d24b80b0a3756dec2d6249af220901c07c8ff39b1b61ae1fb07ff987db1b189b90624a27bf9a96ad346dc757bc84b62f8958c792d745b6e2d0e1947cad8b0cea1f47eb59edc9e04ddecf7f93d9b48c784b427738c9c923b9f76deb79a8c4e7c546a16b2d752ad134f331794cc2c10d018af60a7439127c0becce096712ee3096ce18d38a9ee6f3ca3b3abc68c0d2c1330d1c882d6e4b494078aaf32c343070c480552a5ab125ce787d9350d1190f2f769e5bfa4db19a13c063aab3b256b32eb722007884f60ee8a483e33d6d15a1df33035b67bb4a2760f275754fdfc09ff2d77cc1c6f0b5cacbb813d38b26feb059d005c5d75f811bbb4075b4d29db91b458c583e1b863680ff1af60b43e21a6326b76c4152219d9ea9112d0e41d38a4fad3e7c227f2ec0590a34f4326d8bb3e3cd4e0076e1e9e8d7b4ce632ca6697c64b455b113fad09d7d766cd4f00f080f58d6ff890d8b9fa8ef63dde0b50846d582e239bfb995541313cb2c60ef334176e9ca31cead592b260e3ea76c527054ddd0be526ebe57a26b448fdb5ed4e01e32be2f4b98ff5175aa5ace94ceabe57ade77d00986c749a2ed374ce0974a1f878a0090b7afab7e667cfe9a0dd0676fa01e9fa0c4ce7f713de01589a5d3f7f764c5d772dcdb58e5e4e3202b78382e16aee66eb7ec0f8bd9598e05cf91d983709d2c6a5f22e4ae90d829e9073ecfaae38d7e0f9cea119689df3d30a50c7397921a07e2def19157862b9480b8c85d81dd232ea8d7249c4687b836bd937e67db66c49e6678b1abf8cfc36d0dc67daa5b0d593e62f1047843ddcac1d5214f7ef6f381381fb3cafa3c748afbbab7c47de17918f56471f16c3693ff25a0d8e88091413a1e351aa546c87c6788ad1507a0ba2b469dd7df5342c7af3eac453faf355359d899cf32a85747ef415a0e67add98f2bcc7ce2c491c09d3b6e9ceddf0d65e54241ef15853cf55fd502ba06361ef1087f93daaea615af613e793ebf3e6bd7ee045f68309acae7b83791f0bd09c1b0cc318201621046d6bac146dae4e62f5417a8184e48f9b8f6fb1cd6445a6800dd8449803827878cff51cbbdb8835fc3a4083556e7842b6fead08db9fe05db4242d7cd77c625954ff0cd64c61fc52f8d8f68b3007d0db7588bde912265e8ebf0a56ec74ef483c1f772d8944959d2e0f7dddf2bfe560b25daa0ce30f9c2281f70cff03eed0a6a93ec4d17642eacd1fa675517a438baa5fe5cf34772265df0002b88063b3c500194974934db5d61ea0347c0b52695f303c8484af260917e6615899758c5220d714b5e2ed702bfbf4785fee664b900484e0e056e7701236db2e6f3c68de48a8be141aac3a7df3a100d07f48fca665e00ae55fb277d5ec271fdfbcfdb4ea059107afce4d14d7db79a671291838f3498644a27923cac7d57d46fdd869f420278e56306722070e11fa77b2d3d895c2c96bc4b0b3277ae68cbdc2f1381da1211cf52c5e7be78b915587d71e0606bd9544050d88a439e282704d26625275465d6469ec8252ea1d0204c6472b362efadb67e671a2b2d7ac5c0ecfe3b9cdfd4e457c613934a2c625c0ae1a6a62fabde805a394a397658d32a3d6aa7d7fe1324379e35f74fde1f8506db018a34dba3fffc4657425cf32d7102a5651661d62a0a05b37d9323676fd0759c9357443fb31cc784c295ab2b121bf301c79402a98c4ff69c842f386f830c51557f5600e441fb891c608b4fa5709ba5587767e201a0bbb3633413b67dc501440cadcf8e51b765eb141b6e70e9b0b7c2b25dd72865d015e4107386c41a9c76f4cb0509160e7b229476da8435803838ef18612efd5e842731a92bd18acc703409996e4ec1a4f7fa2e4a8517c7f172e5d6906bb2887322b74038433d311eaa042c7fd3e4b69a91b55e96036d4ec4c4881f2563adf22c138ebcc4a310e195b0ac058319141e78b31ace643ecef18298e772dc31656211bf744b563392c1bbebf43bb0292621c7c4f326bb1d84d8b255cc75bfbd2301ab8e3095f5db0dfa17c3a6770beb62e60e2c060da488d62cdc63fdd3d5ef2ef681e98c43a983c7b331a188609e471096d5521c2c25670b15882a423226b0d06a1b364efd7a13091592eb649f70267758a5a0fc2b49a26cba3f12653bbbe64f8502de3f6a71731b48c10b00db896ee055047d70b11522414488832c959b7bf46ebd4a2733958b4573466724bdf20993b57d513e6693cdd2daece561e8ce55074ed4e1ce00ef43cfbfaa699aecb2ddd89f95852ff4ca8c66a5f2a0cade5d5ed04cd00afb788584005374772911d1d4f73bd67f0b00c24846cd221c301d4f7c9691382f7843613422582cfb98d458d537b2c7a89a3584e7bb7904c15a4dac99a34594b70b0a8b3d7bf55b5cb0dc4ec7e22cf068a33817530bd121f812177d9c3d8e6d0a7d7509855453880239d2bb943ed0da28f0b483727efe00271e23c96dad974990952be5f6f4993b55fb5da72394c70c4e474fd12e5e2829b8471898f43b86b3b11dd52777a5f0fcbdbd261b5c2b390e4471b1086df1762511559ef2192e8430d5db1ad5efad8054a249d51e274d4d69703683301981117b9c105fe0c4d0b84a6499a3f9485570ca6c6511b96c402ba43c5d6d52195421b3bf400069dd674b88c61d179a69e5e9e783da82f3134dfc470fb0167455b2cd56e4ac2c964c3c6472632f1fc13aa512314f6fd1d404bce8db50f527a1b5e53deb721d896ef9972c91a3996375a3dc143239eea66428d516e769f547de21349afad15bbff9ccbfcb6cef228abe8cd41672a71da8ac65e0aff3c1781f3581e60c0b682e773faefe688cad913da4ddd3417802c680b3a424da87c04657adbd44baa7a15e5949859a2b7747af +MD = 9e292941006475d2a6842dcf88584d7e533ce67f8200afe1b944a4d4 + +Len = 44864 +Msg = 3d00c4feafb3d0b153cdaed102d49c387d95092652719c3604f8789166b9bf624857548a55e0e6943c5b2aeb0ea0674ae76d3875d1b58e27e53bf44bb460176ee53985751fe5b58b291e485e4f0d8e8b08634c56d7a5bc9f6fc7d6121afdce9d5bcede27d26a457f613d90928dc418e227a0cc332be93087e8c4a64d6138edd6f43de70839169f562de18af0906d0d368b4b40739628f2c8995aed6651b87a00f6af28811b92cafad532bfde1faf76717d8d307ee00a0848caaf31c4b2268005aa4b2af83f85ce51a157b6c504325a7a458e25bcd1397cf1c3eefdcf4c2904cc583a74d66e98b445d879f70e059fc1392b75a795305a56aacb3dd6efe76a103d48a38e84707383bdc4bf0b1feb9eb396776b3c71c7189c5a2bc4468c4a90ab40c1af01680dbd43a0ab5279627dd6397970976eb85c1858eb2cadd40e3e44debd0d8654ec0d1ffcd8d659c93d85f05aca5f22c4d2b8059144141d09dd8b2eb09c724f0f773740b74c8dfd841ac9931f718c33c627a385504d2b3e6b61f9f529c53933bb7054c97ce41866316013688e563ff3fd1fe5409ceebb3884034f425121a959df412c615188bebb58772917b262c089f02345e07d0f0a33dc2957bc31960ce9035187b14020c82581c7d347907b561e28998c0afb986156f93dd70cd00da80daf082d6050947ecb35b8dba0328a4bda2beb82681f7108c965a598d9366fc7eb6ccee61789cc28d6fbb208cc9f78e5e4837fefa2f08347b5a8cb62cc6ca2afabc10b797ef4b10e6d5c1d2170df2b6d65b7bf9b6076b466424815fd8d7990a8763727af3c982978b9df61ef37fb8d2a8450124e49baedac97cfed30c3651ffc74558a50fa7e1dade10ce63ac6fa85666ad5dfcf05c31763ddc5bac4163939f1cca39d245fac76f60e6b14c9c8e4fa673ece90e73d9a18d13bb0e38230fcc5d1a7a9c6f2142c1a9b68855466e3c1d67729c48c5e9945da3eda1ad22fb6b6abe22cf06e84c006f3e416e10cd7bf9a00dc533e3bfcc0ce43f4e18aee96536fd36d84fffea00c40e8184107a6e5057660dee3c405885b3c3d3a79899f7ead3025b9d65edc0fa0e4e081108088585d5edec702de52cc1198af57ca9e4dae6c0089104b96729823f9c565acd31cf86e5962ddd7158a8e8be98094fb5160ef39e8e7b80b2e27053e887e0d3c88c88de16fd46a8bf0159770379a39352a4009bcef27fa3dae621d9898f3c1e928f6de5da81cb445f85baf698be48e9fb256c49c1d311e099e8da7da310cc9db3a0db48b0d22042eb3c59d1eec46da627008e8817aed6c98870f6cab5bb16c394675d713a5cfa16eabb92b3662a867a5ecbf3c150f432c12f15034b41fcaf32bd4950f9c7909d52c68a01f5af5f27b91afe489fde31ca59f62b8c69c843fa6db6dd724ce8fb9e69070e34231ae0c5f4e40dd97e4fe5e206564afec0c93f8cd6e98a2dd53f1c81dc34de85c6494df5b0327142e7069f3e58f7e9d6cac53ddb00fde5f03d0a71cc2ed8719359aaf51b6d8edef16492bc13c4339ea0f23ccd797e4c6745ef0b79f1d35a4dd947c084bbaf619d816184cb26da91bfe9d1a06ccc915d84ab6582b3775c42e9b43b1a6b6ad853336f885d5adbfebae41de380aa68fcb9c49d3b30ace14c2adbd08e29278d8acc4718237cd997c2e7a1c9a26df4b312e9bd97da75d4b4056a7aaacb7d27b839453f17dd73c60ea9d06f5988b8da5f7655c637bdc2b9642a8a6caf7d770a5f665681db00c2be9515dda35a1101d9a2899674d96fc7c9762e13185b0eb73e078468b5fe57fa01cfb997e457d5d96140ef1450196ac5936e729d143a19ae413525f451ee2d8a6e12f777b8bf41900faef967de54396c85b1ba70c6c908dca26cdd91dc370be4220341f5771cdec633414af97636462d4ee44846d68466c2d002fdc9cb457d97ec153ba9d5ed280c8a9c5651ce2c3b882d7abe7799f8bde168bc08f485a5fd261acd470d2bac97a36434ae093ca263edcfe98f9ba7a268b8baeca1bac1d5051f3caff6880ec7b85b6e9ea478482569fe94b52e2b75fe11c975193a84d66f1fd3d011bcb2e5eb0474f83eec277741b81b1a723c9f8b782393f5c645db59b0b7f463a72c06577306809fa9e7bf5073c8d3df851d606ebd2898db885626b26667e175e4a70ac9fc291ec34429785a3836a94282533686199b5884b3ee0f76dcaa3b653ec038b3e306a011a2241b0b0b6c0be1de705a6839f6438fed7ffe2daff962d03a0a08abc409a4f94869ffd969e39c4c1df7749b8ab3fa6ba97e6b2d3ccfe8454ae6f3282bbcade8bb5d9f4be037badfa55aed86787eed965c8bef2c2fb84c1305d990af668a1b7e5f8181d8ead2e81b290d5dbfaf918d9e8b0ae270e52cfee7ef6469b8111c8e18c9784016f63fb49d0d912dad8ca65af2c97dfdb1f9a881226c19d6b8c7ce66466da4427caef8a0c3c788d5e69c27f6218c778955d9a56360f06c7047d72a4495d088117051782d2deb570ee15a80bfa9387a2de301ce261230deceebdbbaa97586b625a8aa48ba39ed7e0134446b480871e853d00e6d39b491d32afb51f9f563e491077bf5d4f88642807545e621ffbdbd5483a35c2d2ec6980c4d1cc662b8ff9ebb2f60e0c738818ee0d39cbc5f77377f4145d3776875d6c7cc8dc6957f74970997160de77a2aca2721a4af337e2f143c3102f6eca99f5385a6756f6bcab8c8b9b753c966782fbeafc54103f7f887b278965374388b1bdb662c8c9da5bef603238e512a0a4bb7dd8d4e6121567931c0b903afd1c7676bbcedb14bc7dfc69ce4db9e96b63f6f63a5541f6d8deb5a8d9d71eb80a625e91f9690f72b84769c4ddc466abcd4725db3b478cadeb033271bc737c06e57e06a97f6d440b44a069a6967f8750c3b4f8118798fe32d2eaa696ccc7f24e16d6366753c4c306e8f0c3b8ff676403d2123941262eddae15fdd9bf11bbc7b526d4b8737f54d48c2c9f40a1236245ea84c9ae1221f371483da39293943845659cdf53740b07bec59915a8090759712d6041202d7fcd0429d1439bba5c24b286005ece12fdc3cbd8b6bac39ab53531f5eee3563948a6dc785947badd7169573fdbbbf2f65f7241ee0bf758fa34dccd6ab7151adf8465425e5e16b8a4dced7cb9b45d87c838fb692e213231d18c388db3424032c73cf27e0367185cb6a49a691c13ac552f91468bc17fd414c8c630b8f917cd67987835d88efcb570bcd156658f801023d4713befceae46ca86e8ab9863bf2281fa3e169827a555ba5d6c0bb93a84f1ba5fe0c2dc7e34ef1bb4fd93731ac1a94897987d05f8eb6004427ca0ae46a6b7e377e7c39cf99b36cefa0acf9245a5c984148d526826553e141209fd8adb6fca64c48c2675666a85adff19473d0df4e9fc1c257d09dc6c57b2761c0a9520669305f0d9d3b0ed2a437e6c31e3bc9a3573795569e63040b614a816bbaf193e137890a0d6b294b862d70ae85b8b5613f0cec3676075257abddbbd99f1d45c5dfee2cb7e8aac6bec9aab191c9e2754a0ae62a2fb13132fb30915b8a8c361a7a3b03a8032fda77bb45b2673b0029ffe6bf597deb988a69813202b62ea3b3e423bb0e67564378c0e362bb0df4b8fdb9c9950d53e48c917a6c18c8383086053754b865073bb41446a9a95b126954ec3765544848b51de4fa2e6d587e3a93a8888fcbbde41df22b6d7091e9110384640d4c55b0c8d7bcd35d4a9819e4976d2c6c275d6faa979e2c99fab50b965d97f38fd111cd50c6fa0b083331a2f7e162ff36ddf5f0b71318a6709a7b28fed2302953a620f47d0d45faaf8ab28a44b3259f9cf61de7962ae20775c25cc7c70bbd63dd3e0bdcba053100a7c3a3164767259be3024dcab4499afe0e14f27e9b54c031a10b2adc74694bdb85508bfd7c77d362cda4fe10bdf993c8ce04b4a3c857c9212380167a5883e6d9bcb3c596508fcf82a140b7300fa57d162a041bddfa8f38a0f95f474cb2ff9299d28ff8876ff96a89f25801cf25f7a754a6b5a0938e65af3f86db45ba3036ff8a5b278d27275f44d7556d56349d4ab312c87bdb5b10759d6b50968a493cb45e29cb3d0c2c133beef93ef33d06e22920cf03d9449b0d2973a2db139d8055126ef68712eddcbfe9b96e138c1ecc711d60e7fd5044e9f10bd274aad4f7e605bb828f235bbadf9a1334b4778a83ebd68203fbf97374be58972a5f344d11e0cb2a39422469eb9b1e22f15adf90f4fb9f117a899cb55c8ea055fbd10bfe741711e903be1ee00895c8b37fdfb011fa521726450f5b8854d164c2c768a66bb6ef7662726157309a66362f20a19d9ffca5eb4ae3fbca7f063d12580d94781722d06540f5ca71ee0972c300944efc9d946d97f9e7ed4e0be91835a03ec3058370606aef1e58037aee421bc23b36618d29ff99adc1427ab166094b15eb92d3330825f3d74ca86069a16a9d0e9606410145f25cf0f099c5020576cf339482759852879c94112a3d2cdb42b320352d2f7c70dc7e4df661a1606fe73e83b9f04135f80bc1affc5bee56f4611ab18919916123246a2f6328b47eddd12570dc8aea9e61391f757ecbf85a754c203d0269fb51e550ad1f975d629ff7daf0957cb0b6341685e29f18e8dfb9d67a602d518ce1c13fe7b399337e3056465b4c7c0ae058899088c7974b3128f7a062570cc6f0d9218b601a16a819a22441d8757f07b8362157984ac8963358866baa71460344360550304d3265ae3cac62e9281903a6c37de45ad8dd7a7de30880a94b7376e5acff370ec9570cba643121f3b0f48f1aa501bf36ee30786f5cd097e5421f92539251a8221b0f0dbcbd65178ecc7bfaa24f5f50c3175c00963a8109e4f1a4f61c8aaf1c30bec4d923acbabc20c739e6cc26e94175d0cab370e09c6f3ee6ae12befa8a1ba12102ff8db6a478303d98c406c021f9c5a706f18df37530497d8568a966551ef9fe6401696fa4e4638c2322c0afabe248f69b5b4be7cde59b32e5687a52a2aeb183425f354c5e79015f5373b849e9b3666bf2514941e8f7bab328b29043f5435e7c38997fb113beb013c4572c236db5a4639663f47668ff1e5ad9a789cecf655725b120b752772de645d01dbad0aa91897a1213dc19c0643cb662e7c537939d423c36856a84fb3f2a721157d2b622bf9c2bdfd17e8081cfac427ed3e122d443961c534807ed126ad30502960258589842d56a3d4a6f2f79d37b67fc5c252400c93271e92def4f49a68b2e48d84bcec424133ba7ce2a1c2b48edc8d19492e54d623b2cd93af01453eb70eef0b2e4f7cb9661eeb18845ea3c83061bf439109a91d782eea8bdb404023862ef1e20d86607305dddeae7371c260850dbc4a802d666cfa631c8349f90ed03bd8931b08a8c1f884393a4999224804f5a82d3600e1b44811190c81e174d6cd40d57dbd06ffc6ce4dfaa8eeddb95d3ce8f9b910f86cbb3b251762908bf8c1a3fbed56d0f1d1987fc6e8cfa7277d2891c6c909df4f17a2cc9e26c5b52fcff7d9d6e7c75db0675e9359ca587b5fb7d28af7e0c4abef2a9284e40eddfab53f9ff7378d776a2b0941906d6aea736eaf82b0e306937cbfedb2e95f9753660591e28588a50f024aff6900698e2e953aad6189f3031e5ba7a72b857888cf01080de70c30f8362af590fd6ab7ffcbebacf9979f8d9e0c4f8fa224e095abf8d4a4fad714974e95ec14052557be856a7dacda4b7a1ba006615f24c68020c677e6c2a2d923256fd34f8fa60b4ee6e7b351239aa6a003d2b398ff7638ef7fa2f3404b4b16c34222995b4ebbd4d797ef4d71f77fcf9baff9bcfc58e0a3b51c0715e8253eb57b56308f19398cab7a3963e1e512d2eef385e0c89550a92f585dbd85e83ac3dfd3c9625c903961b6c0340c16b35ada2d2eef4e806cd01b0362ac8bea487021bc54037ea9c934811d30f1b295e5b9e1b2d6530a8b88c17c485b703aed0eb1a273856d4c1dca13350953d61d0683162da5721bdd93f1091525c910923544e48c2def6d96619dbfc5a2af4c140f9358072f8bae8f3db0922ec336f65b6bf1f12811186c221c4a1f790fcebc615b1f69b778a874e833cc420f4a29895d361ebfbe488ad3b9f7d71a9879388cca902e3085a751d5b01d4d03ffe12b31603fd23896f9cd08239a4e9a6c0773261857c995b9e40f39aea23cbc48b0c3562b2d1543f74d677528acb6863be209f01357f7809a596808ab6ba05530e0796087a9efc82b6ce28090d618c54e3182548239c0d9712be6aa6f2081b50099d5b83c5b69b0787dc69322bf7b41ed1d64b82ea42c8886851188c268e7c6ff0260c412ea8ae127a89915a70fe7e160ce3986e0414476218d70086cebdb6f7744a1edd1ff5b447f17e56ee870658dee6b88255eb80f898a6b8b9334526498ae86209b4041e2c1caef3105aa88fb2de01cdafd70b095aa0848ea92e3458b29edf16637285929414e5b0644b8ffb4aa7e0bb676e0d1dfc2e54c166b416b570b7cadfa2751ee38aa5581eb92d97e95ea105da4f875c4f4b7679e9688166dd024a3e164d583a915e625896857d4ada8d6de3d2cebf631dd73d767f24f2af2fe5daab62da78632cadb069c05fc7233f45630d1d7b72cbfa0dc7dceb32a45a3ea9fd853dc0721305f7342e24be77bb981534d412cc4df1747dca0fc60802e289bd077e0f95c1e4bda942082c181b7e658b37eb6b47bd6e1d95a891881b8ae2819d9cd870d0e432c4528e7a4f032ed6380600b58f542dbc45f3d814b9e3c8d4c6da3236e9f85597ba716e0725e63e7d701403c4e7982b468e06fcebd4073933b9e15c0bd372827df09465311957a6bebe43d58c1c8a42a7664d7b895eec5879db416ee9d5d61770172a087ac1de14247303ea9d8680e0596f45d89fc319a331cb890f3369a980f89ea0cc6697cfe3492ed2a75bce32a0d6f96e98719905a5d5eb16a18af7533b81e7a7256703c3b087423eb0594c15f0aaa5463fc15936dce0ba78ca530779b3a6828ba80eae4ff8897db68a1898814c3ee36b32e17c23c4ecca2dee2e326385d11fecc8cfffdb17aa01d8991c3c2b301e443c26648a62da549ab4716ee0d72e9be0490c2d60ebba73aef361c69f6a38c348376ebcfc6a99a29c9b28b79b1b2a51941ef6a989f84d70b5b578ba3ad4c2c85feb807d5aa19f614050487ad9c5e5acabdcfcb6c3974d1bb68d4269b6e16a97fbd710082dbe381b4662653b155e0d079801a2e7b63f35ff31e953576c169cacbc7871ffde07103aef40037ae649ecfcd93b6dbeda569475b8683005f2ead581124e4ac6f412944adb77a7acc52021f6efd8d1ae9873e529aa784cf7c3e4a1cf8dd6eefff87750b57b87d6632a5728705c685339792da48598a81e9f578a8db29f90f2fd639bc2254feef4109e858d13af7886d204da6f13f356397f3652f604c80aeb61bdf654f4d91ba5478a01bc3b4967d12ac400815f5b210219e8b4872087b32caf702da5bea7ac4e7a85723261cae4b6862f4697b220972cf1d7459d805f185b49229820ed2c0f742c194d8c11944dcb86bf032ec6f4070e899a8cc5becea8ebc13dcc52fae6b39aceae0a25e54621749efbcc9308361f1b639ad07c3656e3529a3a30b882584746f4bc2e9c3740fe46515e1980f0873df7f260d74d8178662456907bcdfe0118fd10dc215b922542b5205e60551a37f218c87507961ab39fd568e8f40fd861d721b58688e080638d459e8537abdfe8c9f2585fc8028c890eea539c400aac0ad0594533dbc78c7c3c8c2e6b15e1cc1a24192489bf0f317911d7a932c62ad36cb308627c808d10efdedd52687193694c9ef1af7b4318b4046731dc451cfd08f7edb37fb91d8da82ef2cdad15d13d31d0a9106bad0abb8eab7d6d5f3bbb0d974cfeef0f821955ccca06e180ebcb3bb076c0f +MD = 2b53872c1337a4e88dc2cc581bb260133979d4c08c5126efc274a5f0 + +Len = 45656 +Msg = 55a09913a36e4ce5b2effb7f250e73d23dd921e5ef3cc7c03a0f7388b754b2eb72b901bff86584e5b1f0fb7470b3f113494336a7a338902f8d33aeeb561f5dc457b6ffe8144738b584b7ead8acc764b67394d60bb16408d0899f4c63f91cb2e2af9e7ad71e9fcf1bd24cb2f400d0348162d5e8584148986dd45d3736c8d4170c207a5cd53ff2b1e043b539109558c83dbe0e54d77d6da6cc167555aceccef50c52518c289fca45cc80fc697493e68ab2314502d08b5a9cb6f8ed900f8d92b5a8ef2bf21865aef5a6312928672103e1a76184da8a9397e0f321cfcfa5d2a9bda99c1176efba272938fe426032673535e5f6d2c34fbeaddc4b3b23fab8e49a77d6030900f3c5bc47488d51f81e8e07ef359938a8653323f686ebeff88eebed49f9cc1e786eaff5b89f895dd871befe755df2bc6e151b81986bdb3db36f0e2b9dd89f55c6a69f5ae405986fe8731ea43025a869fea79e5029c4b31412a575dbda3d22b8d2e4be743341628e106ed780885764444063e31711571a7dfd77498568ee004e846f33ca0e1d90c238a8101ae6b9cd571c91135eb7edb97e5c2cb2b1afb3df1fc59127e4db5fca13486af2fbb0158ca97b7855ae854d3822170dd7e8175668347b90c24b03d0b78a28fca5aa503148424361d28de2413e6e1762e1b1089d429490b52b86ef38002ec0a650af2cd5aa2b5e94b286368f736c4273f795ea521547ea488b1d065f4d08f8b01c93aecb596bb2591c1eea0081238187421b253b8b5673910999af0c451eb96130dd3cdafe0a29f838df645c0d9bbde7eacb21214ac811d7ce815409907ae903b51540c94111aab82f500d6bc2dddcdc162d46cbfaa5ae64025d5c1cd72472dcd2c42161c9871ce329f94df445f0c8aceecafd0344f6317ecbb62f0ec2223a35b071476a3f7469bf4d638dc141dc679f9b29ac8fd0c2826e541235a6f87e2b5576a41aac4ae07895c41533985caaa3ff45d2bd384511897cc3fcd6ae22402c864de502ee93d431acb697a9423e616212134e96c64beb2eef41f97aece76e240e5dbd67fac2577c4e4a72558790098e222e24a1018c595911f593892af012fd36cdb3b1967e7241c1a82da12efaab0e75bedc44b1ad62f22808516b2ee4339e46c650488b6f2c684ef950f401234dca53eaffe99d590fe17da1bb88c06cdaef866f1a94a03e8dd93d6564b5c6b4faaa06da14f78e36670e58e95a48aa300ed83df19bfe9f939d7dd613f04e4654b796d5b7a3d64cec72610008b514b3d7d741b5735bec4e15653a612c7c2649ac8e7607a934ed9f2438c3bf255552a20a3d12341ee1c7776decf925d790a597648632e5d750a64f86c21adb68c06c407049330319b5f8e0433aa36b3db533f723a7b2b76a7e6823b917509dfa80c855b2028c6a8d5fe5523e581e7b8572383291fadfc589479ce4663f4b4d031dd0a9777106b0a267f894064d549dd8501c1057869f565d32a85a3443f533aa1dea03689c871f7f56987044212b195ed647591d54dbb30ec7f54dcc2a3497180a802c2c8df8fd4db42caca0dd8d363e8c22d58a6a7c25c38eeb85d5fcf2c0756bf9ed6c4c429333071e11c188613da1fa134c47d268f2a410f2c9f8c116f7e8c9bd0cd0df4b295ad9d567502a8f76aea98385fc948962dad473e3dd82888499ab3451ff50fd07eab1b976f4ccfe298e20db4950b6c5bf8d62d4992b4730afb199c686a2a73f740a1832055674989e68e78160eb42064fe4437fb48a16f6c0581bdb7160eaf8bae295a8de1d2d441d6587df92763f335c08fedafca4f9c2feb5badbdce223121f9bb083c7f2fceaedad875ba799b6342c211b4f381ef77cb2f1fd2e8dd05974ec5df12b897deb7357676f5f66fbaef10756234532a3180c24336d3c4cd19506684fe109ec6501c5a3bcc85298452f5137cf9d24b0d9655a9ca4906de38ddeb0dd9a0783b75346c919d3189c051e423f03b511537b68e54e626cf12a18ad3c5a9165eb02b4eec36700d5eaa5752feda0b230073c5bf9a1d1bdb215d9b5d9b7eccdd916efa9df7f88a2e9c3d4b0203a5d8d67084617349fc9f79e86e480b8584ed91e0fb05fcd821245382d937d98315edc839bd979c0e920565acbb142f32669fd5b5eaf9e61d5ef32e9af4aa63fd98be7ab495d474687bc230b6caac231292381b98c522d437f05b125d25ff1be3accf508993a4a6d7f87a5dcf135ca1b6a65ac5f2003d61a883e09141c3b27bd5c0a4fc213d94adedb6726f3e3bc2059f018c875a2295f8ef98084dd174610e3482b3e003fa00f40a346ec78caa68d92c4221b259b2b9149d9b568a94be873d9051908eaa6f8603cdd0b40942c5bd96eec6dee95927334f030c4fe9f3f8a19479bbaf5a9cf4a067a939e6a6e9343cc9772df88ed0f68102e07958ee87b92cbd313f84f6542fccaa1cce7b23086c62eb25d6233569a72eca8651060ab876a4f2874ba5c458878725991cd60ff8e4cc66ab6dd35f8bcf99209521dbb11ec786decc6e766722824c64ce93bbb06323d5d648437d7fafc65c8f7d6a4e9423126efc81169b314aa6a9020dc160c6afa01bb4bcf5a6184e31f571afa8d3065dedb9b635e278b5297b1967d72479b566e00a8c5a02d1bc0f88d071cc5c0d9a27bfe3b66b40938547660a10cb4b6b0f017a2ec7afe984cd4c3189fa240252b2291f995781cf70143cfe17974a94b93607c504e14f1833ee8cc28e95771a5700da73372429dd92d472b9be65e59ef8bcf2570983881d637259c26abe06226ee8b4614996b3f97058710f6b072cd88e2659b6c9090b77980b2ba78aee81b91efc2f504d49c0a1ad12c095a9e570cffde4965aaffc49a5561b8ae88ba15a2cfb9dd3c6be97d0748d95d9b2f7ab61e3dc8a40b94ac7c3250215f01bd970f01c79402a3b1a1b53d0a644350dd0a360c29e89d1690615f88530ace3a7e0c7f4060ca5ab33ec4edb549bb05afcc1780ddaa855d0d08e415a347622ee135e20d6584a20cf37b1acc75eb27cd4065683b99aae80b7863fe478c1272a67e49e1607a1a6340ecce6afb87d9eec08c0ec71049105ad0e009779d499e825f9a22d1218609562024a07e21f2fc58081a30faa7f4c421d4cb6217bee4d1da81bc287af7923bc3d1255a1ce7bf3bafcd7234caa7a2ad853ec4d6a6536495c1336dc3a48ba597f27e77620df5f57d39361d80ffb95bb5d03650cdeb03d2d1819d345b1685c7052a4da02219f29cac406ca27e618428c348e6f9afaf77356d60e89958998c006db4662a000787bdaf0a978995b7b110c0377446e4ba569550a73c2422f54859b7d8f29d66a15b5f6edfdd5b2ccbe71c92e308bfd4d449fb649dc05e21f262d9ccde197fbbad178ad109699fad63cf532295cbede7c5f86d908c9dcebd578289920e025a67f46246c0cf61dd7f4810bd5894e45786540af6bcbafafd5fee4f6ff2b0d6b5d23ee59c2378ee9e0a4253621c2a7c86174b289bd07000716d7d7295d40bbc1964534793e24d3768b619404b579dbb000470f966b5f6d7b451cd92032168dd0d85fa3134e59665c6eb947e7fef36c84fb38c265e5194a64e71a658c0bf0f61199dfd4b86149b9f3d117cb606ce3dccfa8e66568b8d9295c537d06cd498486fc514223c9158a30e5790998fe9dafaee8afbc832f65237cea30a127547935b2f9a5232ad5d97f7d99bd0b3b22ffdb45786647861a686cd766f51351c21978fca1fbff445f3bbe02a913a92c6e01eb52e76303f8ca3129ab8b27602086b8e2e68ddc332ad5aaaa426c234fd740525439ce3c7e55bf6dfe7baf3e03ee12d5f7e305ac7b28c9a4e8bf7b527be64a4f9a7c954913275a6d4fba4baf7b4516df2c84b20313d8bbc8ddfc5f27c9b3dc88429dc51f6ee83bbd8209f90232bfe352f53e1b76b9b52c651e6b702995da876ad10fe625ee02c3ed59cd3fbcc6a908cfe6919a5db9488c381eaf66ce8cc4cb85ca6561031d11936b2b867855a3ab07b47501b74ebf0d5b80531a9b8cfafd29579310de2d789f2ab57bc83b635630608f25110ab0276e3afc503f96fb8cfe116edfa4a61b8d05ea6acf05115c5ad393ee7b420d387ef57afa8aa0e180af522419e4936133c6e052d989bf62a73e0f2220ec17273e424dcc1986d0f3b2de73c207566f982cc2a904b06079d7da5c3d8be4fc02f1380da18ec7d932561896ed8bb5a98ba36cecda705db7a6c97c41f941993f87e3cc3dcb3383d65771186519e183628a1b6ac1ff165003d8bff39bccd3bc0b2887415f156adc12b2ed38c5a3541ef5ed78acce817725d98233d6b622c2dc0367446dee0a954f12d712f034f463e6f82843a98f0c034dad25cdac1d958f679cc6b3786725334b5b269ae53f978159cdccf4e76ff95b460355d5da5e8fa9ed5bc95d1756ffd55f6043dd7e42074d060b4e14fd0dc3ef9d5074f4e7e59ba2ebb4d199b149f4ec09a6916321e8ce277a251e2c50d50620b23915936b3f23fad12c8201dc9c9ef7c8b2a1c486a0468104afcf9369523a9f3301ba49bae7c3223c475d1e0fdb78791af8e76a02e51b1a53ffd4e2cd01dbdb8e6ed5808d6be3a98b89c556b192fbf08f0df4dc3d33b633d6b9c0a2e260543622b4e9c0293820015d685d34683fa3fe83563c837c28a27e1b52155c5ffa5e6fae98898134d8e2ca1067874faa5e0ae39656410866206a49805d35677c3c34c8707e175c26cab654530bc600ee6a8b4046a284c371a77836a43fb36cfda281d116da25b9758a153083c9abe0aad1cfa502bf8a5d354a46b5f57e11c52ac9c02a10312711b7a389ff2125ab67764022825901b43e1775605802acd318aa1e7a23db17be0d53838f10b9b4472dc7223e68b81db4de9eb55f9d4a2079dfe22d0a7f05f23cf4efb68f05cbd9f17c13f47da8be67eec741769ee63a8d687369520b6bff553670c2c9145ec61b5d0ae3335af2ca74d4709655a8c36258417bb649f7ab45b53d099317b98c370ccc32cb6b70b77ad9087303cef7c54ff577714f51598d6796b317d74ee90ead02d18c230939772de8fd37104f166c52098ccc9b24abb2d37e3b23e5bb2d5686b20f8f90992fa27239154552629f1926e8e4163020689c27e027d66508e104527ec8b58a97cdc9e65e03163085cc6c2d383fb694c10aa9c3412b77dba4ce98aeedbf8677819e7de8ac2932413558d5d36bd2563fa31c7c343598b0901b2073ea73368aedf31c1ef7b80a21eafdbed6c7e85e5d97331884091201f948c8913693a3d02b6448b12d9216185db45b58ef6952363541fd8941a08ae9ba5c598b4138e41ef0610f083a463af65e33bac190362dfc95c66ed94598f4d28c513a993458d875626ac28bb5928b069bcfb88369ccd013c77b03a2f060d43ee7ade8257071e56609f7efb63005aaebaf0eb118cc7bed0e62f65850e286cd9144f8feca95f29f834f8f031239fe0ef7f07750ec48e1d95ef0bed97d8c79357c2c98caf315797b3fcb96991a240a2bce187004985f9d2997f93b03836eb6a0522723e9396f64ed0dd6b51e489ea885c08faf388780fc621bc50172fd09dd92a59d10d608144379601950ff27fa67a191be7b89445d8df78d1c988464de4c810926e62dd994a3a4f90bf0d832d7b603943d7b635935c06e5e4866c4356c91ffdf3d2a3d3870f4041b171b25f3b712205a75155320aa424af1e102cef9253c63aa4843a0bf29b2fb68d34664d5090a8c570ddfd5553b71f1fa6ee2e12aa8aa50fce0c8d4a83f7f1f44c8f911714e1dac1c5031664169de17da5a8dc744576a5c399f3065be22a6c43150b9b83316ba140cf4c0828fa5f501142c79ddc0c20aca02cc00b05b63c8aed102eed5a4c36e38cb53f3c69a8045622a6d2d814a68fa3ecb0fb060fa73631396783ed63104b8aeba06518efc894daf9f851f7e2bdcb73f04c2d5e425f1f4b6e3f8f046822b17ca6b84405810118c3df61cd610ff6dd02f429dd7b6683ffbfd5c3dc9a2f2d70a30424666ce9fb96fb1a09cd7e63fbcc3a406e93c543bedf75b618f11882d791e54f0d53b3ed5f1969f217d9b6a574a0021b44d7a4a0b5c655596956e427c81b2ccd9a914456d5a6f5b1b379719f086241cfd332804613bc4705dc9468e6a9165fc8f4aa85eb0447879d073617176019e1a2422bc1fe7ec9330399320b89228b66864226e07695030700389710d624cdc9ddba4bcf8e9ef6019cc9b834d6da812950ad8bbcbd2fe35d207125c4a4fb86e1c7621812be1d4a991594ae4d977a008f6d5d63808a7bed7246d8669c488d4d11aa631cf358a0cee3b9219dbd92a9108227793596a3212b2cb995e4fe8c832941cce4dfd822d288c8cf990dec9010baeac42a8a65d0c8a574c3d1275336852359770ee82ae658822e9e238442585705ad8d97e955db186233aab4b5040f3a4241f109bf526addc4ff6fe88c27b425fab4cae9dace8abb6a4fb7651877df4b8ee282fcecb6770754218a10ac036a229fe7c347e538a756c5b2320dd8166e5f0f22740ff7c0d47e3c7e37c26d3e43f7fe2ebfda93fbf8947c4263d37b48831fceea0d6c69d74beb84fcbe265540074c1f7208c96b7f461a95e991e08b74e833d2239738ca62a2f632856665ee717ec80899e43df62d58931b8d065b9004634223b3589ea0cba246500079a7c03a6f14c38d9c5eba6bf8a51318086d105fbdf4ca8499c475791384e5543d135101a4d85834775341a2ecf88771e03e95edbef3ce7ca1d2d0d4bd57fa6bfbd22c2fe3bbcd78bf45133bfd357e80d6f5a6162de43785baf13a446768962cfa0bd62df5652c40ba5bb69cf304012d31bbcc42d3720e862a493a31db5fc17f84e7d862a27f7d73b2beb42f960c17603bb78dd979435a663a015803dfe3834cdf8ebb35b1b1c6fbed95955baef6c8013a127443e5ff230f32411c223c9ce57b54270710eca211bfb409df8702691cf877f306e8e04f71685a330ff7ba33eef52bdb425a19fb65a74e421c1d5b0e1c2d3a83cd3131db4d59f9fcb8e82050a7a0acd1f67a0163cb9b0567d384818dcf89cbe95084a24abeca59c79f5e389a16651f32aada6c8349831fa18d243c8d3ef2714e174af944cda3c0ba4dc2c8ba452dcb25e7e12203ea47e517d16554b66f5175daabecff7381cc77fd497a99573cdef9d334f7ea8ab3d09ff227af90b26c8f1fb493d07c7ce22ec6b91bf0731a0261f16319848dc0ae049559176ab9263d92b7055760380af8aff4164c8a1dab9e9ffbfe1ef0d44ee2cc0e752afe97bde84485f48003fac3cc384b3b63b261b11b7f5fcccca484dc5711546de7d3f21d778cd1aa95208b4f65b21151e8cf05d57ee864f4aa06681116b9ad6ad75192eef151e24f1e21b457cb038f7f6448d2bed1c4539f417f479626ad629480e13fd95f7d010aa36d3b8307150dee5e8790141cfa74f41778e8128fd6ba126ce9c085c8f77603ad6ce87a20ced3c55ef3078165720f1cb657142e5a1bff0d23d3de9c34a78963c38685e51e18282decf4feabb6146c3ea68593928e6377ac2b0561c3ac7582526e23d86b0ada564e91f23f3a16c8d3836d6b2de533986c180ee911a43649a8f735ababb5ebfca34fd45590d78e768b139570aad052a1247854e5b5e7dd0b447ba086c46ac96558593e86ba2a2406dd15a6fbd1faf166e8f583631734a6a39e05371ceb33acffbc9356eb85dae26011b126766b0c1bcfffb725cafd319bf9febe83d6eab89db11926a4edb890d06c6f119f4840add5c4b3e5c1823089c3f6acce0b1a88a0a363b539b0f41df3f5133e5a98d91886292d4aa8e0f378e22680ef5c57518c94c7fddaf503697aac593bc8b79a91bb3e1ef20d2709859ce5cd801190f0e4bf3b1068ce8224b2986204cd534e2cd8f17ebcfb448bc4a06639bfdf58935d39e93e868ad9079b393fbeffb22847d61681ee0c3037fb99ac9c8604830d8d26bad244314c45acf165366751d08fcb20b33435157a2da011110776a55677a5d4ce41f61a96589bad9d47060211cf029317d2fce0bf70a1b3376fafa93fe004eedcfffc4851 +MD = cf1a5b758db2f026cd05c73077bcb401aacac088fe3ec416ae7174b0 + +Len = 46448 +Msg = 3061c42aff5be5d8f5ad895a68acc441311a62f5a6477dfcc87b4f79bd9844f380fc5358d7a58f428598f978c18399b8e8a1cdb46fdee05a1b3cde587475a7e077e243a88b9b7536b6e0935a11b794fc79d76b1788c59406c33decff15d3c5dd7dda3a220385c03cf04cfe073e91df944e84e529d944c08829471f7489fbc672faade0cd27ab97dc9ba5e38732599f08cd70e2ef4aa28c69b4211fc1b635d1275623dfb1e054239f1fb3e9e3d357ffe160620b73c4292130cb9595ee86c90e85f904dcd614c98c0ce53eb9220bd325a66e2308bc2d1fa765d8692901e0fea6134b188245ac53f9ac530efa4cc11439df5f7c80d26fcd459142668204ab1dc159b527760591389205d2ea556add6364149a321bbe707b243b715449fed16e86e09df8631ea9c081a1cb9c72834608cdce891082871a716cebcdfb25f839391e2f6c54ef99de35eb08a4eaf89fe64b9e9493dd5d3553f64429be22bff9cbc6b1cf8b03c27d17ddfbc0c79d90c6a473fcef206053d10553d47eac93be096f5c664660cd85d23c02d6539a7de10168ca116698620d6117d14571ff14cb300d45651e557ae0a034eaa749875194571a96058164ab33f071b6bf8b1f6e8e778dc7d7ded1d17af0e9dd9428f4e350d1a32000c8ea036c83fb4a69527469aee5d72be40f3c9bfcc94225c57a4bf9be76e9b029c4933260249dd76c5067ccd483d4b9b338fda00d34270963c6f35c854ed58ea8fcc7ffb8da3fa3f00d5e61a7586ab86de17ea8563880d0969554d44e614f01a6f8ef341caec9f71c10c2eed06c82723993267b7fdd35c3856ed628c1b840524b41719733a6231b18e1fc3cf6c7052d40d45de02f2b2f2a59d9e122855a8ecabe5eb7f1a6cd35570d087213c272d932a92f8ba10e2b544d395edd88434f23af28d727091c28e8f3230d8e3adc74e8c99d291884c5e48d734e863223a2a0e549b0352ba93ec122368179b77bebd51839444c6d52fc5ec3e5c0d848bb4b54bee27fff2a97b49fcc6a50d4549c979d53ccc51ff0d25aa2dcecb6dd8818e57395c0bcbd8c9c25cacfd5b7a4cf668ad580c8492a0ace88b7c2ce581b58011906512c90f8b8803a4b11bfdf738fa169858776f7f6230c2ea55bd3cf1c213f8f13dc6e2336180b9a297c72efc8fc15dfb3501ef80aa456f375914543684c9beea51dce9c021305ed6cf735102c7e899269c20873eef3727f2e4a6adb853fdadfc1fc9423e11135dd1d694f6a267dc72aaec77b912b7a287bd8708cc0fd64c709716107e25d7a641042bc09243e6195508b46c17a48a0428f7ceaf11a58222915bc3470fefdb75a2ee6d7ab67fc92bcac06282055cdcc866221a0e1101ce0c7aaab5d17a2492edfe00ea27d5ae97904e52a53e14a4368be9dcf7aa6cad3086a7144c544f4ca48bbcec405c6268c7c34a3fcb04b8331dbb0e78e6087710401da1191523f1c076db59f0fe8d0f26d0416908627a8251f8d25e9673acb2d3833df339aed4f43890697fbf833e1e7157a7052cfa13e5b95e6e44b61f0bb25f606417f667fbe91d679278c85ce422d0b440b91df04574b1c4eb7b4856a9f82c6e2c79cfdeed22d78302ef7c0a13bebd7ccaff6bf3a391d3b2d64ccda91bf6b302f3b336724d440f79173e7b19513490278232876292cfa7bebb43c684b6209bd5563ebac070bf1d906c0025f90147013b231d00cbb7a0a63f06fac3781d184f4bc076dd581c169a8f6dbf0d27b848892e19f968ad669747ba45dc3501c55035eccf161ea793ccfebc98d5a123facb8086c3621f76443614b70452aba0234ae81eee86df1d6c64c2be69ee828c2d429fcbdbe1a5b4c4ef85cbaf1897d1db6aee788b33cf482a508efb7d6411bee4403f63bff28be76d36235eb2787a253252b18041b74fa64212abfa3fd0ef3aa436d7e4ec1f429ca19c65e6cb0cc2f8ec74c9bc8e8be0c6484db2312daf6b8dd1a8f1d5ecb26a3306a4d60a454012fb5e63af73ee2c1316a1442a46c36a2737112925ad3e66535900c1ec2fadacea7b0c81db7ccd026715e1b88c91ad9b92c4d719ebe16da59e6d248630cd80cdaa167b51c60dc7c94d428dfd41b828be4e9597fdad08d6fabbede6641c7a5b0ce24c2f75f7cd5acb463b1a94f210d14cbb47d866f18a16c03c59caee27ac88f5139a9d50f921f292e25dfc02063233b1594a1cc851eba9b0804f5686eadab710ce70496542b22bba9239b6e71692dc96b92ad9a426b41c26382cfdb0ce8b51ea636bb8355ce4529cd63cef967bc918774b48938d1869caabc471450e5b44e5dc82eb6e43b03f33d43ef5eaa2ce3b93ad9041eee58f7351bb95caa0f2198def71ad8dd012d5391bdb3cf35c9e8660bad418a5204004773dd05c87b60e71dcdb5433b192154448872c409399ec2cef1a7554d0ec1f0fdbdb746936d8b5fc9845dec5f508dd86040241fa75470e3a1d2efbd553b6f51a17d7225c66ad7b32769b7bc4d6b8ee02f219b6cb06d89736a164e20aabf544abb1ad64968598e08bce58d5c0c536a9438949e522d6b2f99ae248c265584b804d4fcab5b8121f6891261a573a4ee691d03fff7792538ab7df76671785d70e5a6738bb9021aac575bb043c8aa1e26d5a318cb6c8aa0bb4548cc43c4beca6d2259212fc8e739e1fba91ef4bea981e2f44d0061c62da7dc4422b6234f9fa462b64565509fb1e9a82999e5dd4f17d50a10444227cc094083f2323c6ed8c4f436ea91c75607092fe928538c65439d23856fb0668748c7769895a1e68d28d5c2d30666cfa9c897158c41009bf361e2723d59b8f4e8000e4e0376963ce60779142052eb06b1aa02a27abcc89af1728fca19188475b2be87d2acdd3ac7e23d58f4051549f3d675f3de99e1d212c63e4b3301f33d714c48da097c11b50ee9911b696a99a71f81f011d2d2f7478bda8dbfb6dd310b6e2066aefb595c2e9964cc6a7b37242e1018e405850e484e8b9527925a951b15f695e2abb12c04cdf1b9b6ec3354ff0550051976ff331a109c5fd46d2812f9849013837a32de52bc9d52174a98aa725667ae570d492ab6b545a05bf8263a137fc50210c386558e202595b72cb31fc446db7d66726adc64640fc085da5ef6b02f1bcb522db67b002412ec5e388a9c3fff36d80d4c6a306c4580271abcd82f19bc1cd41161c937f0edebbed319280a29a9ff291543520d1581223de2459bcb974d50861407c770a5a63873df75924fcb6bbfd74700295da8407d6ba41eafb4700a3e4925c6b910687582734af5d2556d6efd4a692bf7076da917172aee1cd0ec1c6e860a46a6fe81824f25dc40ee0257da41ea436cc5f3ace57aab3a5eea0955ab68a38c30962238f62af35cfff140d0d6141f9f699a09ad1b2e8d9d162245f1deb50a732c9164d4f9984494d9e0f6218afc5143cd7e31b774b9271bbdcc6e0adedc2187e1a0ac9fb223814a77c50c931f83e8f83e79531418a5df7bfbee6be6d3655290f8cae2df4a52104780a7696cbd314c866494570a2e7a1f877a9224cde4d904551818eedde9ad5a539d8ff7f48b8de5b5e9d625e2dfbe4e05dfbf810939be9e9fea90b8e1b5bdc73576849d75b21f1c4d7248a5e452fbd3bed57e6ae1fb9f8a36163d2933d909c0b7b28e43355a6f5715aaf0c057b0b8187a02d6c79c52012fe24324271a7b1aab9ff9b5d17da906ffd636d85c85207e84000ecf8083656ef56b194f9be0c476f1b6f5023095ca6b7d58c10862b4cbd47f1aa2717dde5d6d449842c56ecbdba7fbc44c7c46c5e3263763f186bb2dd842718e66c5a7f561878432638e8624e8353091a62cfc551dc097bf6e5c4d387050c22501d2e40f9a421d0127b3cd3215a6f7e4ac183b8c9fc00433e192021cbb87dba71ca01d75302978cd333b2a3f8884ba87054ae9b492aee689f22ec123e06e22dc5e383b704ac1fb5e322e84916956e0405acaef131d13a487483a7193088e008c70a1244610940f7cca94c571e1a5d1d8539e36f16975a8f68cbdfcb55a6dde7ef9e3c23fab291deea376d42718f8f41797d0a5989d5f599d65c049d1ff95227ba207fba543088b7d66db99fb35d7b3c4cf68234fe2561f467c4a402f1e8e364b1314b9beffbac2f1bbccfc3560ca75a9a26c9a5d60e462b77863c916e0de80b6f312e3d408c62b124950e51cc35aa38cb9e6f10b3e908ab90313ccd06d0f6a84ea0a612d86b42da7b96f3cf9830ea336bbdd10a1a5e2ff14c26331a3eca95a7ca2031b11a00d2f7ab231e914cb6fde6f515adf67bc632a905f5ae0d88532ba67c005f8ca7e579b51dd9fd4b5c104bcfe236445a4ac9a71f58201c2b66234f10def18e39f491dd8f5e2c0e6248d55a6add8032da29c103d0ad25ebd87a8366736d545c1d729e44e2e689d05a858ea0242193f7ca7b54bf798f87cba9182c184aa1a937bbb453665c3173c1a8b4a4c39868d211bfc1ed505679b60a21e165cb030670bf993c69a857e99a70e138a02b441ddb0f2e90036d13f64145b748c8f539264b323a7d399162593e6c7894194da3bb0f5e9b583f4c1e8fb9fcfdb0de2d596b895e13e95ba8081b0ff2f35968b123baff6e9aace993f290709e49dc1de9e050bb91ca134852b5a95fc2d5eb26dc60b82bdd80e0aadb2cc315a8401cf0a16a60725ba19d7828078ede4a84dbcc55d71d052a02a5eb68297209b964e5feea64352e3a5eca63ae5a25ec08a4bdd183f3641bb2746f33e16537cd402cd9b13b4a294fbc362ca34c3a29097ba9e3df0d3227e0257aaf1ccd8c8ef0bb0c6a900aa8c7673fec56bf8833e2d71208e03d483fc2f2f169d7fe92fbd1f4a8880b13deec99f553d5bb00f8b3fda57a465584db78efc484e68c51b83fbb4987145dc53ea21b9a9686ec200456c414f2e6963e2d59e8b57e654eced3d4b57fe565b51c9045c69756644c953178f0a64a6e44d1b46f58763c6a71ce4c373b0821c0b3927a64159c32125ec916b6edd9bf41c3d80725b9675d6a97c8a7e3b662fac9dbcf6379a319a805b5341a8d360fe005a5c9ac1976094fea43566d66d220aee5901bd1f2d98036b2d27eb36843e94b2e5d1f09c738ec826de6e0034cf8b1dca873104c5c33704cae290177d491d65f307c50a69b5c81936a050e1fe2b4a6f296e73549323b6a885c3b54ee5eca67aa90660719126b590163203909e470608f157f033f017bcf48518bf17d63380dabe2bc9ac7d8efe34aedcae957aeb68f10c8ad02c4465f1f2b029d5fbb8e8538d18be294394b54b0ee6e67a79fce11731604f3ac4f8d6ffa9ef3d2081f3d1c99ca107a7bf3d624324a7978ec38af0bcd0d7ee568572328b212b9dc831efb7880e3f4d6ca7e25f8e80d73913fb8edfffd758ae4df61b4140634a92f493146138ebdcdaa083ea72d52a601230aa6f77874dcad9479f5bcac3763662cc30cb99823c5ff469dcbd64c028286b0e579580fd3a17b56b099b97bf62d555798f7a250e08b0e4f238c3fcf684198bd48a68c208a6268be2bb416eda3011b523388bce8357b7f26122640420461abcabcb5004519adfa2d43db718bce7d0c8f1b4645c89315c65df1f0842e5741244bba3b510801d2a446818635d0e8ffcd80c8a6f97ca9f878793b91780ee18eb6c2b99ffac3c38efb7c6d3af0478317c2b9c421247eba8209ea677f984e2398c7c243696a12df2164417f602d7a1d33809c865b73397550ff33fe116166ae0ddbccd00e2b6fc538733830ac39c328018bcb87ac52474ad3cce8780d6002e14c6734f814cb551632bcc31965c1cd23d048b9509a4e22ab88f76a6dba209d5dd2febd1413a64d32be8574a22341f2a14e4bd879abb35627ef135c37be0f80843006a7cc7158d2bb2a71bf536b36de20ca09bb5b674e5c408485106e6fa966e4f2139779b46f6010051615b5b41cda12d206d48e436b9f75d7e1398a656abb0087aa0eb453368fc1ecc71a31846080f804d7b67ad6a7aa48579c3a1435eff7577f4e6004d46aac4130293f6f62ae6d50c0d0c3b9876f0728923a94843785966a27555dd3ce68602e7d90f7c7c552f9bda4969ec2dc3e30a70620db6300e822a93e633ab9a7ac25ea33b2c5c3230ab08f0eadba1f4b91b13422036139187436a5230c991ed6c277f4e0f33bfa02122c558d6a88276c05f3607446d86ef4b62cee5395fb8bf237d0ef03d6ccc4f915b7a1af718b83a41791bc8b6fa37d1c2a7fd56eb3d4897078cb292ac1facc6e91fce3c33756bc8a22f698d5e254fbf54dca0ad2daa68fe801b143a4694868d8f3669c87405c2a94d4ac85c2436f64169c75ef0e6f0407bf6f4dbf3f213832ded68f4c5a112e664a892e23ff07453e06932e0290055f996d1ddb0c298e3cb2d697d173ca2e2ff811dce5c3daa288f23bce3ce5f6222bbd7799f3bb1214d85156d3c79345fbd348913c8e15e3a9ad193caa2cf9bf49eadc7570223c77399da6e606ec3b5bfedad03f24617ab881242b6fb398be49e13f8edd1cd110c770ff1beaadb9cc8adb993772111a62b7cd80a17b86eab4248c7c3d150caac8915f6f390b34bad730e680e6d0af137e7ff33503b670bd7bdda0337fc3dbf9d4536980769e2869ec0cb43456e14ad72e5f76d3cac72d6b65e3c0f7cf5fe758b48c03b56d3a15316b7cc926101a70ffe2f4eccf8f13f98f12c5733b944fdb41f9b9d280755587cbd5ff99d89af2bdd84cdea99a99238182f2f11b71772a0430145b3a743786dc73cc03aabe6ff08e0abc5b51b7a17c320197053e2bd0651ecd84eecff32c249fd3be27805a079a7e01c21959c91094a7657f606fed38877754cbf2e7afbbd54e661ce99f4dea56ea57ee9746216f034e390ca1051838179a7079f635ec7f1f649578b87bec80cc6f67a2339b63252e92f6cf25b24f378c14aaef672f4bde598efc52128ab8735189cb8d9cce00cb9d1229578cdbe4bf5b626eccd43840621a0a15199660543a8ca60df121528ceac5484b0635069b480c002662bbe56c92d7825a6fa281223ee460897d7fbd69db4da1c68bccb6b56a247a8c718cbb12f9286436a4c551c508ef25c8a2f6931a458cbb3628a250d58e2b3deb59c52df60d734c54697d769f21038265e22448208208f1149d54897e2c96d6dd8c03b268384e971e1e4954130fd7f2cbbb87511f4948efec3a61b511ededb1dda8b6ecfc0210c11e43a77ee32dc2e374afae4268e3d30427804868232a966b56006d3214037076bf6a265b72135af0fb2ef7909fea2dea412f7717446b276ff153753662b4d4148c02347e32591697c9c9f1d016d4bfeee3687c46d838274c19e28d4e4a9ec226fe9c505bb6576c446b013b65803c1fae68ebd67b610a0c6c4a6e13fe5e09b12aa1a9088870a6f283495522d54e78b3855c2a043971694d6d0d3687daffbe279bffb8db68f3b01fd10f4646b3e423122027a383e57bde70badcdc7758a2049bf7733c3781a21b6aba07452575e3b3c1eb75d8e41402c20cc223d060ec078594c9a6b3bb771e3159aadbe23d8fbfb33963a13a935988cc783f8cb2b32982a9989f04afb59ddaba633fe79dfd85ea99ef154459200a8046497f71e40c8595e92dc40790d47a49ef2dc5d4e8f3ed06e0697cd9b4f8cb8bd8070e7df4cb74c3ecaae549f786a0ee680fe90e53af29772f1f06dbceabf10dfa27690b558e9b9efcb68f26545a965abd80260e5e8dbfbdcea64fc516a83f7915311ba496b45e89c1d70e3737bebef14834e95f7a1e346d4765b4101d8bfb7fb1aa92c438db3206b4630ef70221af64a084cf7c26ef1be841f3d05753b5b96467fa6af4ac61baa84d00edd05431dc075ef634def56eead126c7210549b3edd9a0a700b061f65ce10437477d9e5dc95bbc1fa612562c059a6e5622a470152d31e446f08209f7ad43725c98395103fbf47057bf90d99500b6913751bf6737ec2fbb40b6d404f4004200075cae0cc2e853f434dde4e03860a827d14aa08fcaaf058e3ad040d35a0a6f45be0146322912ecc04d8d891a84aa01aaca5a126a1bea65e57bb93305b8201dabf7229c519500315ce84af7e918513592692c6f76ca32c359a9fe350c9cf5efbb393d0afba534c432cb92abcc51dac667541e224643fca0434bfbc16866d057fbfabd3c90c82517da3df12f44cfcb36a201cbc54917bc8f3ab85e62a9a463e8d6b22f8ba17c659ecbd5e2fcd2f0870 +MD = bcab4f8bb0f2be59bda5fe693603b32e6b81a19f5a84ced4abb7137e + +Len = 47240 +Msg = 2a832f7574f61f07dd9dc3930dd11cea218a5264a0824825b197749f8b71ee582c66c6ed4e9a9b58976b696e100ca3abd86f82321a699c103c11b8c15969e1f5f240b994e05610ff8dc2b59964918c8686b0e1b2bf0cfc15b8f7f6366ececbeee2d8af6f1372a68429694f1bf3a80000931318eb78b291bd8d12d507b0e8d3cc66f85188cd358470d22adefca39827a36861cfe52ea4838f232afe3b09012216e56647e6f7e9d34befcb0a445eab28f66b61ada9c72bf914e30718da605fdf54c7eb38917ad4ba9bea157dfc0b272c8105dd5b3e2d8d1bd23370cced9c4b330f734fcd923c3e62ea2ad0dc2c92555acd9e9b81ac461212537c2ec27aa70d46cd535aadf02771f2bf17c4d2dadb7ddb619f65c6fcfc04061f270aa18c68ed3f19ced480b322b493a319b80510cde7d6c56e01d23535a91ebc9ac91228c73346784c84f0e4144e6d1d98761dd552da748275374e5fdb4b83b43f36bc58ac2685743533a389e788a7b5fcc4c33251a0dd1f1bd1e283d5305d8f7d184823ff0f2194f2a941ad82aa6af3ad6b9f2db37f3824c79535a80ba0d3d3bb365d92a8364560e9ae7355cdfcdd60143358d15ec0ad1ae34df0d665e50d0a6359a4ab90e31761830ae18bb0c5298397e396233baa6688d6bfba15cb4634bbdc49c4789d5ebf1e28843256134f75e49f45032d328788f608b43c6e250a706f8ece6601b8ee662041e60ebfdee0ea0c951f45f62c9d3eece1f31ee85b7ae8ade1b0324dcadd34ed34f61fccf9c1b082df3a04860f36aef3c946078c55dec5fd3db6cf64b971500f6b7d0a874c3aeecee75ee9e6c598009228739f61fc7e2ee70aaae64e6ff3e30e4c427af8c092cc7913529b1d340b5d5266438f6f36a14cf4b0521e13d2aa1470410f15263b13730acde0c33346d9edbaeb7e7fbeec9047ab977620bccce00cbfb1aa8319a6030b097cce0931e148d7521fec16570794469527e0945144dbf28204dc6dd9eaabbbff87e5141eefa244a26b54fd416df37138c95720d821e5ef42a16d7b6fed53ac7358ed8d02572d5b333580dc8408f5f11ee3a26f5b4d442b86f22554e2994306ed56ae1be50132458ce6365a29bee4eecfdf8a27e1af40cdd65ecca13ad5c2f0f5e9f067d0d5f82935e73f1f3679068fd223d7f1732f23feba4d29097f88199214797a19cabbc930b79f63d4b620a5fdae19517418b533e5bb270535ba9c9115d16e15d8dc9beb8199756921ae9b0760ee27bf59d829baab605528ccf3f870a1b531894c0d5da74663d31bad28d274df17b7eb47bb73fe77323d5a773084fe5d47289e1e65e945a49e203f212bad36a2b3309be7ca7c4872b84863de7b2885720fbc1bf6ec270dc5d1c39e24c01494d249fa98e10c2adfc37ade0aa8dbcc4b089555ca7bab0047d18426005feeefd597627daadc8a660d940068187e59589945625c7156a95a3aef3fb02d79bd264218852098804a19180ad34c5607fbb4b754fd37d92fee1f2f488bc9ec1b35a1237e3a4e2c765629494f7af489eccbc9ed5bee50caac83356e04efd906ed5f48c0f00a6c2c66b680e88b7dc67cd4d17d8383be0e0c786f863f4af4484496420460977be361f770043de5652cf66814b9c0f3f4d86639baf8ea42207f6cbfe6bb4c9b171b93d28e9f8f86b88dbe509c66eed41818a1986d75b616fee4460f5456cd23667c8a9f1738289601519d33716a534db235853c8fe4edeb13e09c2f93be2957ef6f0d0514b64e3cc5df5bb99caf37874b97dace282cd5ece9dc34c6abd9a8603a5ae6ac8c034aa08ea1c08b241be4a96aa668f54137b63e073ed77da5919466cfa6db3d870664ebe3fe93511198a1dc98caf75ae0ecda0cf56f4dfc88cd339037bcb5600ea7e3454d5e9eb26b0db5485c6b4ea41033887c3cd85eea5c75cf07f9023bbc27ce11d55329a7573b6169143ef1367cd6f407b663e0d2f02a70aef39de237fadd6334c47dc877e8897e0569c6c4778a3c17a0e3f2ee70b5f9a8187babc36fc1354e953953a1d60c5b4bd16e7d4cd97549859b2b716c01e2d10457c7ac0dadba39777c5d5e1d8c6bbbb0144ceaf124e6052440b569c14d1eba6cb2002827b78df0c7305825a460aeb095182a961c1f8479ddd6aa62551c12bdc8704ea57b55e16224fb51309f1b7d42e22331073393f8ac99a731e2903665e100dad8ad70515e987723700874857f7a7f7e88c7a048e9a63ef97373da63c02ffd38c7c76e72ad99a9f1df348d665d5f5571595ec9060070b515989c9b6acbada5d2427cdd7f766da0adc33c5086bffa4a43c9521895e511e743c7e63b142d65e1ef72522641601d469f47a927ad4b51473e022df3bc3f91bbcb28d722298f5f9ad87fd3af8014b0820f900279a2ac6f35a82c76c444b6f918f4e4f9b87198a2b6d69087e1033a2e3b44c9cfae2e8859faca6eb6f2f6f350e80723d466b3f1361f2fcdf5249479a05b8718992e19881980ecf174e5989e9e124c0cee92b94123bb2b5fa5e1f9790dc920a5e6602b53b5ad56dd3805f25fec7e0bc8d1a649317174146e1f7efbe37d6d579941ae2b92386b4f598bbacedc41148c7e05082c6929303021ec65625ff82f731c2f7fe3eca7a1208df36cf2c0a5bc165710222a9053d9c9a193fcf69487f7be553a3c190a0c3712a2fa8327b1205ef37b7c5a0a4ef55625169cad7f2b31ad7e6de94b96936e146bc028673557bbe26911d11a964d198f8ca790dfc4cbff39fc8cc4152230d622730e0480e45c7d30c14295c99432c66c487cf5f98e1df78380d8540284894b4874b51637fc656f30433552cecda805d5a0be5665a5c92474527c207b8645d56eb4dde6f2441d97cb36138f930955ddb2db95388ad1768bf2b99eb1e6ee0c7c7c7cacfd1a8529ffe7e403d57f0fe156eb422825d0dacc36e6ff678dac8588495b144de2188734af6d932eabfaa9f578681da0a49f87752c396afe3e36135f43f1c4e61d5212e4ad468cbb996c9d394c12b4243e5fa11675d1438b4ceb60397327d4a03732eee1035817d3273db454d9cf4edd7978f05a1a98d1383d3233bfdfe68ba2b71fe2d4b98d7b9eded6b6ef278834f3e0533ce622755e2b9b755698911433152581b865d5cc0243459d6bb13f26af8df8564d65954f308ced1b8f6d919a12200abf363b61fcf2ebe5fb9b43288f05d34beaeb7d7b109084bc8ca7e6e56170ecec4325ff640794bd44590d4ceaad7eee6078ddd6dd9fc63b8f2f66aa975097a056744c58e7d430e2ec1d8a758e666406bf66ec19c2e41ad8ee6e9362af4ece65cdba75eff14b0e8165b1da661ba4fd42f11de0ee33c7d48361b0f8b533455c63db7d666b8a5475c3357bc5c6994e93cb7d0681fc37303b66715e5b4c2d1c8ac10725e876bad7afd0e6e5133d114c6cc9eb8896ecd60798a6a5de85cea4bba0a8d91ac3b58abc02cf00558b758a86d063c40ae9651834336e86993ee4a10ae63fdac5bfd201ebb7e80935f6130ce309c18ef64010069f54e49bf74d362bf0a3af918ca475284d15458bec1cc29f4e5e0cd4b36495a73143306c617c6b4a58211f87d8394505c8660b0de2c5284cac166c1ba91d9b04d0477b813d912c0627a6b8421247eba345f065187fb9ed1ae67a08ed4032ca2365aaed63f4552068467ba14ca0960e07adfd79332bbfba12e4d209d1e06dcc0ed9b2ad99ef90f0779de8032decee573be6d36fe64ea1373a8e669650f19446cd12a8e4ab950a433c1434066b5c176e46daba70b950250b9ccc7dd8f1db70e366fad4b9224d8ac2bd94a9d1905ad8fa306ffca4359914de408760f73c06c948e3787d558481da1504038d8d244dfba4018fe032e191355a2ca5581ab9db67204b73ecdf5c98c0e3194b2961ad9d4613c221ad4245a152256a10ab69f1c01111a7d56a802ffa05d40252c576b5b182ef7b0dacfeea2f31e702aea10d6b1e91c3fe853d60870e7191c902a9f4c3f377e2323b258c57a59b49fa69842eaf5eade0586bada6eb3ecbc276411c0260caec92f1935f14146958f25c289af346e62e0dbe6f047be4f2dd0f0ff967c8129eaaa7bffca4bfaae5308c30d32d85b720dbf436798806f9906d1e9e11d36f64d87acaa5613ab4a07febbc7c51830c8a727e3dcb718370b281449a2a71a61fdbde22a3a9a76a1c7ea1502c4a8ce4af4846dd90823f3be0972d2a29bc0128ff01196ad9d6b77c1fcdb22984a16b9a967803c29365cbf97f31fce6735ba9a3385df11c153179b8e4141a3c6b8ad6eceaa211f3f17bfd0474075742210f515df177cffefec4d56694db40528a0bb521d34ed83850ccbea6e8a1a404dbe0e19f53d819da3d96b4cd56ab8e32892ff0827805c05b5961f42503884cf548d741b18607397679affc36530a6ba60ffb7057024e3122b34189caec43b8dd11fb59dbb18c959a5b1897e9b3833f74c4791be898b29357067463ddcc5a4f84de551165fdf097108ad86b2e9d9b736552b0da7c63b84ec0fc036ca6ca5678b156eb529691baa59faff7624d39dc6d415ea8965c8be8ca263bf58a6c0fbe9d2e21c702b89672290e727e638db0cd96d0936a35d137ca6f506b52a779c31a25c1e8f10b1133a18a267a7455382af656d996fda1218fe7a6083523aa130cf37833536f53ea91ce30af70e12294cee016261269c094bcc6d514416f7b8315cffe4b094bc48ad7818371fbcdb1eac5123c7dadb77c74e6ef663d363e021104391fd3b38d453b2e42eb33c441ea81371432a70feebb0734ebbf4bbc98270402b64391f83bbd43be9ad0bf7344b5a34b6f5e6ce1166797cf414a067d86d2a636d0d24f815f16ebae109adbafdffa9629aa2a93cb38676adf796d361e0feb3dc90e34d3f500377b272db1502019a1a3fa4dfde6745aa3c88b1c92a24a3c5a12e2f8d1e5fd27083b50777de56ffa9212e6e13e2b858703fbfbb12013a714076daa17114f41db717252786764448ab62b14ed572ba5c46f4a58c07f51dd9fda9549f25dd868245a6a54b8d59346d2f336adf9afae7d1bcffccad1162495e5bcd4e6121b471b0aab697fbe303c1ed9327ad88dae7cb5930b5a786d4f5477ef9370a9fdb56501964cb8fa12e12574a75c40be32bc5cf4340bac8b1b91a82ac449b2bb3d91fac3cf259fee3c4e17ef4557d0866f4117e207b83a2a6445e9576cc4e2445a19ce08be1f6583c4e1d937ba0d7259cda5752813f84b7ecfd1dfa5f0ee486bdab3a879692054e0330135f50e646e5fd3503e6e61b428afe49e52bd57ad2c5947c951bdda11b22e1115f1d14a460bbf09ab3a5bf7d51ae42b140a46a9ebd53628c2927d19dbc894e487d672759a92a2f71c3198df4167452d9bcee9ee8f8c29060631612c64de3b36beac8197484b2f260ceacd21e257fb719c684e2f81995a68fdf6101d963c4b8e223ba5b9377e8f1de42ea1c39e342e7f7d9e1c74a944f2d60fab33f45829eb751b4a87e15173e9640ac5bccf5f4405e0a839fbc3efd519d8a41671b791ef437211a3ce1a7d726684e877c74c0cd1a91b830195263b93f6f7240173702bd47c0d6c0c2369a3c22e04e40c6a438d2142b878bd8fa475c7b2baf732e1260d21bece944e2ed8acac686c684b4cbbca7cf740ee37944585b974aa857162e21f1d303ef231966e7e783d45dbfd16bcaa2cf03a4d354a1253b1654d36889eab4912fbe4ec7c0433026ed415a5ea6f4f1878562efc805912c7f7ad2e733d3e8973464648ebf91f3020d556672eda007af9a751a465e06a4ecad273d2a25aea8485023af3586e906cc1f7eac0dd95714736020825ef1c25cc428cdfc32da549a5678eff6c99a4feefcb1ab9aa1ce269beb7d1a43802fe3196196b1b887ae704f30232bc3b186312c22887eaac538b90e6645c4c66064c37b435b84ca9f3e7c2763c369ae93b7274ecbe86a64fe8568fc725ea293663cfde2c80ba9daefe6f2c37fee1c0fd6c9bcb75775e1519440c0e69e3c46330824fcf08e0bb34200545ea3d317d56ff12a4bf6639595e94cf75b4d5843321dcc994b1503f0139876f32a391bb5086789456fac6eebdaa48f1582a12f27d8bc3a1652d0a84d5d569a4feff3986a376ef5c79219d7dd320bc137e182813eaca6c738beb40977f2f500c71a83f78bd4eecd1d5dff4cee3e9789bb02420d1c4065fa5cf92f9604771c30f5343aa7be837f75b31d9d2c9352c04f3b4f90113516625a1f7ca3ec675c04b156b7b83766a59996257ba3f561012e981523dd3c0db1345cdcb3d16b450476f8682f5d1508cdb594e0d28435dbec3aeaf54999ec2a83547931591890f212bb7ca605c9cf396e5c0881ccbe7c68566dbe480b46b0000f3b45a9b6e9fc03097ab49cd56ed46d0a155764c4d3279ae23f887a03741622d751389267d61afc5b1d46b918bcb318135a08164532d5e80238e027ac929d076e4ec8a7e65d6c428a1b99973a53e9cf3c929112e88de5e458e24bcd7132a322268c8c46bcf06e8a090e2393d494e6f6c86798f70914f5f438c431d7ebc4c707a282d9fb563fa0177a6d8b5b521049235931761f319884ac443728d396d9773c64da68323c8b9f8f30a2273a4d567ee96198bf17fc68f080ede3974cece14214efeb8d87fa74bb65de548ddd10d7f69d6405ea6dc406e806983203a0686ca635964ed068fa7b922fd5ed359067055ec3f2f17e7d1302d991f5bb047a93ec22230a6cc751c710a231a9e4a5109a6f060170f3e1e273ed23d778d70047f9d02441ceedd8eedac46a3fdcc352ca35859aba7075bb2a6116753b841e9d74f4c94b26361a9b7cc017689ef111d529c2e96b73740f70b1652f3c22ba1a129e3f27f554d29b7597f18a1bd3695882bbccfb16a0fe299913fa87f7418d222630138cc14246e8fddcf98cf261a7f011fcbe4b1ae7614caace9bc1250c7fff4eb72c682d62e57baa9842a08aee5f70d9690149f6ab6fe11c4db36b43e7f4e9d2bfe43a985b50dbf276675553cdd2736f8d408828615c9f641debd6d2689e7a7896c584a08ffb826be3c22bdb94c3503ad5f6762e9dc9d018bbaf946f02df39a6f86ac6c47547e78d5d0d8490b7849fc1df9da487d52a1bb0a37934685b39afc4412e8172afe8a3cd6e840001baa8caab06a093a29c1feab261c3376cb63035770d9b353994402fa284d01ead1292594cf799b43d56fdb5a483380dcab8557325ba3b6297c6d0f3b33c7c40f153f3d43e0f0396869a5614ed64223820d60bd166d3898a0bbc2d8855f1e3178d032fc3d4d958ab3ceabb8113a12c370da3d5e8a0e5f02c13e8b86631419ef2ce84b890c7c31372beac9072bda6b09adf8646216a6e29c93ed10405aba81a73347d20d37d78be7d8a647762220159d41511df0429d870d1eb1982ff4b91e0096d30faf47c46d43c3eb6c2f8073d72634ccb030975b17fe6a706c7ab879b8a35c764998c3ad9df2f39f8257cc3a7a4d8e50644b9c4859168014d54b2e6317378d17caef33f9e49d70abcf198fdfc7b958c78369dacc17fe678319c7dfdd0265329ed8dd20100aec43f89c9b50c983129a1853b1d750175d27a78018525043d551f2bc8a115ad786736d3005976079025a2b1d4c1d3a22dcc96654660f25a02ef5fdbe1d8e3f131408f1d580ed0c702fa2e8286234f4002353aadbd89fc2e21923a625bf1f27853d0b6ed134d8352f417937be1aa2e479d9d05a5f978991d13de5d53b974d7af6aa83cb6d48e2437fe1e800259cf17455a6455e26ca55f83443427246ce9fa02e0378f0f1e4939e28b7f52ba611a80b5b34bc9e789a8c61d4d243668f8b9e01f5eff3c5a53272aef26aaba089a1501054283c019f2fb5337a93ee975ef7d0051316fa31d05707dca5a30f47167370ed092dce71e2b058d6ec2d4deefb3abf154f21981fbc7eda8e08092b0895b090093fe979d68846feb2f3496853ad7bf39772b8d274afcd742de44506cc4d7f39ccc1044516da182e2f568f45afbde2f3f54482b219f26c5c2201fea8798709f19e56273a1a204f70b5dfa6eee8739847958d283ff6cd841ad427dd1af98b7543e7c5fa61caa2124cac54376be817c577e1155181f3873d37aa1e896332a1ecb40fd724c10ea78a4b7c7ee9c295f1900b3fa4a681f96abe3a0eadab8b0e1196ce7e544e62cf79def48d2565fdd949228c1901cf46eebc30ab679eeb9b74229a189d041f4df35e37cf471153249b66a382d6f573d8bcc6ba131cb7f09a4b1d211ad2ae4089649fbd651309593dc3913a73de483a4049d085f897c163907d4a525d861c581e0883973d57d6225238120fe999c2ce857f22b9e53f83eb85f1f1566822 +MD = 46b3dca7780b39b8095b4f745ce1fa1ec4bcba659f8917f3ed97e763 + +Len = 48032 +Msg = ee6b5bc29adaf191b726608f1a2338ddf48c58a849a507f4a41e4098083b4c8a2932975ddcd5bc08cd70e2e970f54b0a3a562aa21033b5df00b57ce22fbaf90c12326878e1c8d9c849c6832562325b81e03de51f8ddf4a56f7bbac926548b69b1032771a90fe705995eeeb4ad7248fcb50093228a8f0eee1f1f777ae942eabc18bfc6b4bd1beaa4117b0c360b911106ff082b8c449b0c80956328640a3b50205eb56ed138c4fae0a39d6b370ef4205f52a7020fb586501558e34804f7a22e0ef9909a57ba9faa53b6226628061ff97e6659a11d5bd58c04e01c50ee401c06f08fbdd3a8a1107b75df96a799bf790eec808c9345b60d12e7a17add80620d6d7d77a995549aabe0bf768689fc6993c31267dc531942a17736339b385bdbfab40e57f079dbe5d66ca9116e97d0b2f4c89852b56af890174b691cda1bd11c688d1b870edbbf313491bb46bb4bb71a1081d6f7a445640cf2e1f8b3d3d2a0b1db5b2dab61456f0b2ad27e6cf930000d7b8166bd256cfc37a8ed8d9ef5072b2ac7a0cd3ba4417bb23db16b2aa4cf4c1b9a49b029b55c21aebdc06034da13d0f5c1f0729e344a55e4f1b0f9d64a840bb3014d5ba3d0ad64b0b60d491bdfa342813ebca6698deaae11db53a31656f8cf7224feb1e203ab460c162680ca921fe07ba277e1143d8cb4a74f0c0f516697f7b799e06b3adb00460f429eafc78df44b43a1c4ab34bfbb2a33e15c971dd5dc2511b494e034a336d548efe83e792fcae35790f57d3180f07f4626c7c2e2315fd81f298ea95608a974376295a575f40e394614bccf912dc7143c83d02b35157d711e4d203f1587e2b3594f299d347738cd9d917d2aea129999a58d08388cdecf80bdb41c0a098d7d133d0a065e4b25c500ac8ba91782dc02700fa6c2636019c0976be2b4a298a5d3043127de91008c4d831187d30e21e67c27e965b1344532eb25b75d9c81495d7f17042cf4ae2b173cc55b0a8d871dce7121a14e3733a2d6c9ac1e79363ea200fbbbf48dfb3df1531d37f7883b0afcf08c0de5c4d6ea1f61c6ab0fea1433195cb373a0cf54a919cc695b65855e1235f9174d256e12b001607c931a14a8f745bd40de87759377faff9bb0238689255f54cd5fdebe6d3dff5f5604ab8d77038daf2e4d16f52a331b493ed6b0002eccef7ff8c6701a68dc6fbaed7052c900d077aec64fedd29b630155dd2fa986c1715cf7341188167823e90f9d56ae3bd8f68a38c3676aa279703381c13b6e8ee3ab2e3709b195472d9ce1c9f0280c6a61de4bd980241bc916f32879b57a8d9cf7d2e9dbe4271600fbbff0769074fbd93e00230d96f68fdb2654668a147d6515909106424df288f855058b91c8cdfb1cbff4a641726f254d1a2c645f58b4a39d206e09f6b1a47c81ebf619a8338398897a344c21acfe7a8354d3a8560ca0c7a839c27b85b9ad4f22031a21365b4642c3ff479b0a91150e3278f2a90aaac22fab4f16b16bc08daf7d4cda48a89a768830b1970978e9434ecef901fce9bdb96a3ad303721560b5ebe82bcee68b8ba4e77423bb1e08f019babd577a1a7fafc705cb57f1041f14c6a2f72250816ba951def2e81c5f175008d08216d368391bab60c150680de54720532eb317bfa57dfddd215143334073813eb1a9968ca26ba729d16ef0e60482638af3708ce7e5741960a401b830f0f52343c0924bee482a7abf6fe5f432f95100a8e9cd189098162517ef7bf3eec53f5f9e33635c0396d276aff1580a5b303d783b763b535029eeb16168228eb329dca68c8e9f5f731afe2b6a0a57abe555924ab13d3db59d37683ebba287d1249b3798cd46a8bea350f8297c1f475167b619e8b88366b7de3d1d3da5232e73b995da96aed002022ab56ac154a4b98338fe1ee2affd28f299a7782eac6e88def8a65020cfcf5dc25fd4c0a3923f20b9ff7a2bb9061f16de660303923fe9298b584922e79ea8fe67d91b9440a3531f7e21d6caec694d92d3b9dc3a08ee3782f16efabd2b99d1767b1d16502906650848267076fd382d2f8b1b9f95e325be27b99337999d5ffd4864a2418ebd49f96d9093f3aa5bf1126f6cf1c9a1c184f17a3c6b8c428d4f7106ccff199a7ddc94d1fff0ccef8932b1b4e1d2f6e8146a860d025e6532abe6c1140c8a2b1dfb4cabb7dea358c1256b7fb2923583c36c64c052a3f26f0459b48212bbe9e283b5f8c281c54243998109d0cae6a00cee2a0254ed89bde612174728655384dc662e8f5de23c440a035c9c597067990ea2eda1a8203c1786f6750d288e5be1752fd56ef24bbc3f1888f8a17e358d86e59c27e12ebd23a5ae2bf38507104d86496b3b261410cd89fb84e5a7b3acd1004e24593f7cf6e8dee82d033d487d90f9c582d03327e3d8bb2f91b42d9e28da8b94f6022b077fe429a17434946148dea276112514c23776492139e491924bf28f467ba32252babe2c868bf828e5e47f26d790ba59678e1eca8ce7e7723488b181ff1fccb3e339df4df3eede794ae30add767c006f8c4a4aa5af263d4df961a01a1b6cdf5e3d6fb004761757f414b70a5cbf5d87c5a51e7261146f7693556946be27ed6b9fc5ded8e6799fe537b7f2e62b2e9fc0fa465d3e93693df3d0ecf21dc4a10be1e71109d27a9ae30692b90926af50cd3c8be49907a2fa1c658504ae7de41362e2d2a3730527467b5cb3ac7c547fa2606ae91454561663852c3e50f11f82fb6ceed0f1ad198318d32818e6cef812bff3cc903a01a2741202b85b366c5b37c5945660901a68046e8529111c7379eef5e1e22fda438532a20faa6a4972b9590e73ca0fe33d7921c40ba05a91fc628ad0d53c06897c76d8802672f9fe96d28d3285aa4d8f98d561b5d15e440bec4a7cfd284ac2ac2eefec38c19278ba6b0f4aee448797d9bf055ab070937bdea58a1bc7659ec2d6dd68d4387b99652141f8087e2ad27d761271635053e0508ecaaa0dcc1798a57e0a7a26fbaee85db7bdf54c7eb32b7cc925b211f205e56090ce32b977a8d8d926288c5b1ef61fa0e251bf8d7c77f304678b3ffd3200e33a8912bcb556b3cfec53ca17f70ecba00d359f9f51d3e3b9a2c595837b7cdf8a2cdc5a9067e5a2fe4d8b71b57157aa09c125ea1d103170efd667e715135eec4ae60ee86677a100e47b2191ed60661bbd8b37d3c17f01ca262db2f27d6b44d1a5c4955e973b15580303daad182ac69b4bb9efef24c4c139cd075b4a24d9cb0a0b67042fbb48cf02da560b45de66f5a334dbc29eafa7ec5a7501b54093e54e001c3bdfce4b171abbeb1037dea87b8fbdf97f3454da8f0fa69e9b558843146a5e38b19cdcbf2c94cdb590e4e9fefed1561a02c9c42df097a8aa32c083dafd9c6ef176afbd800fd9c2ba76a6fa4a5787060715074f226310cb38666ac593f750dcc6e9acf3562736357a2fd282231bfd4851045168505d07a8c9b4c8c036a824022988f9107a095690652b0c1411c2c097887f5ca22044e8abce9c6f061b768289b9e33897943ca75e1c06c8128ec25d6e0de46d8f1ac1405ec78bd1f9bae908ddd876cffb0d2795190f317b2002c1405661b22871b8488b2c3511762dad76037905b243ad7d50cc3baf39a9af061605cb1487020c815135bea7bbe0146bb41ed5d23428314d4ea9407c9de81211571a46a6c18eb1fe51ec608fe984406e19c79ece6ae228f587b8c217ccab1bacfafa438900130497e0fbcc6e38f7243d1d7a1e4ac505f72e82772ad144571e4188226c4bb15376e684f05cc318ad524145c2eed7d1081e20d5610569a3908c77752f0b5f53b47b4294769c1f070b3d23191e7b162d6d2094e702cc1158dbf8a7487ccb4465baa464b5eb04d292b5574b0e096d5628a980f33dd8f998d29de5697898069b75ea64a56fba119e3a203331ab0010486141c1c440501840bf5ad5269c0d47b4f2a84e9d08806cd26bd0537f668f1e4d55ca6560a51492a95d973a77195929317a88c4a436ca511fa64a2a7cc722e1d574a7ee80c27313536bd7a7c376e805815c00596360f468b687f23ab2535805814c7ebf8d2f07f4af38908fa44b46873535b39f432d9b3e677f6d06d8719af3d15b936afe515fc13d62566481fd0108bd95f6e8dbe32b3c830b1f1127d868273610aa834ccfc7038e679dc9050284049adb6ed8862820dda9999cec58ce4c3a300a087b00f0fa3612b6db1f76026c255d946fe0ea6318ac3bd94afac3e9b3874fb651b4a37b55c35aeea2fa7d6315d5665f9e84713a7f22ba18bdbef1a13aa8f593fae2bcb55655c76d69cc83ab0d8f457b5f55a304c0dbc4f679bb7a8b5e09b2218867a5359847f8b1b4181150dfcd8b9646b708589a21cce0e372c71e7a4415ed7ec6058288246f69f66fbeeaf91aa92ed93b09bc47bf3266af775fc12bc2916642805612a2658be4c535e4dfe5f11eb38b543f9665eea606222bbd19ff1fa52a78290f6c73a5eeb084fd1ba622db6cb2d195028d814a882dd022579f40b5c188842299f6784ff86bda37cbe43c4413ab40600ae8165d697c5dddc7b7bd2f972efaffae572cee496529888e009ed5941b5c67b15c8181ca401fc075f9b0e7667c412284f50deb423af741da91c6ea6e6189fe8e417f721b379a7cfaebb867effefb3de66697c1836bc7f62a0e50fd233c5da6fa4d5c88ecb15265cef4503b74358da42b02672b8d56103804dca9a8230a4be3adc69540af5bdc0d5aaa04dc93ae7cf7cb7ed873b0b86469f3834d560e49e956e143d633e3859be6268342c5ded85d9b50327824add1391e5ea8c8a145799a536d5b8bdd29cd1682daf69681b621842151a3d2c8c55f02c7dea387f46917e38b8a542296d290d065b0aa7c8aaa38950c386954daa7a055f8dc0a27d9d9b36941c0f4370b7e8f5e017fe5615b3b8c14ce8cf99ad4b543a723ef5304bc17ca8018b98235a5ae0723e8715de17dda7a77eab7bb01318ec78acb7104cb35b3cbbc92dca4baffb196a67d3d6a796d17a222d35144148b849a55721995d7b13e45933292c2137459cc7a424c9195a36391ca2ad22b615d473abb9a318cb6c907a6986a7460ebadd706f3da2779d2ab5ea7c263c2b76401473701a6616fd4e7b09d20bd1a17bff6e9d4c7a746799d0f6972aff0ab9e9911f50dec4911b5de97b967e0acdc4cecf9e2c44a2c3217712a0470d753e5377d29e12dcfe4dad5204392b54cac33771f2152441ffb62e9db95b030fd2018288c938c2510fc25644695ccf3c95dc83ca307c8d2ad77615758dd1d2175c7acc843f96672740179d9bde8d8b1eb13f2f43517b70e7732a5e6555a7bc0e5dd2bcd3fd600945d9750ac02c7466e26716c3421cb9d45f1bfb92d7db88c9da1b30d7ddc83db093220326191bb86871ff86c8315adfc17c17113832e51a0264dfbda70b6bd565f962ea780f720299b1c1b9c577d3943f25ae93d8de3c056e94f0a0b3c3acd12f5fe351890bfbf9028bf5d7427c4f81574229a9fb43a8f215539802836e55d917adeb61df737c46aae7e207c7a8964e10bcd07d28c9f08900871d0ba0752c9424cbc34104b0be9099aed172dd636fa27379eb34e7d8de713619c8e2913efaab5ea1b31b802b8980d8c60a400b15a4258662c2f9c0d83853bff2e1b0de3386c5cd180214d94ba4be6e19d598da26fb80535f9df23c31c7d6a4f8b09c10bb9a8b7a16fa569977d9f1638e7aa2d1fe3d5be259c347e24b53a3ec157ccfae3dfca56c84e1094719eec1c00c40887805325d39367d213a8ea4619f308f71402375baab4b00546c98acd88c7d716f57a4a12f62e013a8cd6381b9c6312fa94ed4cd7240519f608f5cdbdbcfc85381f7415379653dcd032230b35368ffa59f61b8cc773280065538cd437591d52fe6df4611e24837f25bc25e03d68d84397c00373a6e89bf7c5af053ab4cdb8c4cc69719a11215b5ccd7335636eb3da73268b4b9de024ef54a973d56dd08b4d5f448a824cbb2d49ea1a0ff7f17398150da8a04a681d9880cb935aa3e9f5225986d9499cd596a8bdcbaddad406d696067770b7866eb9b3feb0f5cbc73bad235bd00d3f27e11e144565fb7c603ff22e3d552129861e4f17b7a9433fd5df62fec2cf52d3c9ebdc006f4d856d12f960d1180b3c8ed00348345a192e3f4641a1152cd94c9fd9523aeda9e6ce1562cfad1f251e155fea9a2f8a4484f9329f1f022708824d0c0ca0c54c63c6480de61f3178e3026e053c5f8f8a157146c256a3e074d46ef690aa73f59d5b6085df0384987ee06c89175bdfc2d43b629966f39cd6bf1ed3bbd659386670cf4a09d1418c3c819b91091ebf7773c924ed6388fc465f4656751f458f6a72375df746bd2692b83173346083ddd30d09605637b0e75cd4ab09a79356c396b37175dccedb394475ff15ab21ef4d6f18f58c4178673b3cf16da70fba827c29a4bfa57ef4b3effe005ae189cf997498021df743c8246e53100ecd01e7614fafc0627b626aefc13bd1c56544bc4aea0a62f33fb18961075bcafeda12bc7b8495811a560b93e7338a84df2f608a5c2422b615d43f3eb57ca38cce5cd6ac29d1878137c3ff0222dd7674088e51bc45a97d75e643217a8a64c6dfedd3b23904acd22b5b53a1283b256c39c230bcc4afe0772cf50b2cbf6826323eedbd39e5847d21f9f57386988881f840ac84f635f36fac35b2aaa56fd75772144ea7d22431d8d37786a233b5a399872318199272a8bd893abf90101e406f030a70f21f979536831e9f7e2d1204d2b54ba55d161d48409aa66c5a114d4be3618bf54a7692171c9d799045d73034a3ff44c4de05984aaf5d0359671d7f423b1a135c0f7bb64ff1aef319c7c692bba3b18906fac57638305cdc07559916dbfca92b15bfa376986c24258c427fabf2489892dc51ea399999f68ae69418c661ae7b5da2e9624598e2998b786466fe711900fcc571e844d742d6aa87b110e08ba72d05940b4cc5b9db7b9f5e9c110cd08b871152b9544a89a159c55b2b1607a29d1acd59a3d75983dd46cbbf5802596916979af4b6929d195c1c35e160acae5ef6e11f742176837f5e87ab1b36bf66d340bed43bf847cf0ed97aa6aaf02937192afc767422ced614d5bac7e2a6bcb787a0696788dcc842f28011822868205459cfe95cca2624b3ece95c8cb6366ebdfeac33cf7bf2b8bb4d065d42da273668a95c244cf68a3ccf5ffff963f64459fcb0da8a7685d88d7a76c2da7350bbbff6703629c179ed6b6af69ffe08337f12f64691e9e716dcab13185c059dfca4418057048654d4be3529392fe6c3ee451e3d1888eebbdf9db617aa286b2d5e6f4f98c63db671878b1e8ca04650319714c023bf25e54f208a22fa94be77abf67b5e92365836a212c2ac07b479a6dbce8ccd6c92df8a2b9a30763e6094b7844566e32f2fda8350f6f3521cfe10772ce50b8a5a4c3c29db9d1f2445b621a750dba071a22b3b2918b49ba55ee5c12daf8b2f7b8f33c260c9b9a4b1b2de0bc39c29b67eadb0f0a463dc3a2a2ff40256ce1157357df1e8ab80606fa30870b9a8c0a0178e9449a161ccce4d3512a13a7f1318113ca90f3586aa31ee8cb8f6a1a368df5216186db3fdbe1b536a9995f003292ffbf582d42f7e81ae9fb346d85a5fef47e4a98c85aed4a233cb3f471ab97f4aa955f4ade94cffa126f1cb24ae4a4ade7a5dbd733a089323b833378dd80d602214edce8cd70486a33b9348f4e107d0b0d71bd66ef34795bd0929c7f03652423a02f1c7a1f5ecaff26ce2911a0909ae00fead68d239e278d8b6fd84f0be2e91ecf420848ffe6bd8093b7e58169ec61f494180f94f867f9901424cd301e7f8ebc558e889a939189b6217a4e27d0ad3c0f450451c29516592b12b9656c64c579c5db1b85b703e6966979214e4afe5a92f8cab582612233ae282d34864a043b130108f2e5e8786e4d6043b3cc331a7bca78ca338bb7c947604d0e9f1a11266ac437851a92751aaf14652639af2b4d984e57ee87550db0d9d7635d01080af4d8f531f99b72a61033543ecabae178bf3a855dddb8c7aaff717a31c163387d930f0cb50d7e6fc2838276b4d83e496297e8d7513fcec8d8df97b381e3cc92b12e97738c69ca70139a22e08ff8cecf33fe2bacfdbed242dd78d4ea196b44fef0ebf6907eb4875cdf7e9dfc97d1705b311b8a6c2700cb1c02f1af85c200d46480f2b6cd5296bd1d6f567b31940c2ed5a6178d7f98adc13e8f72b1ed444a82acaa6c5e91d2b9759a0b4b42e64d501025d819bc4e186ebc90cc25608a67f358beb6817743c4c2b7bbfb857c858b461d34104aa03f6febc5f9003047c4f3a05e82ec58884df15c8968862bb07516965de895d1c0bb64cbe36475bbeb04affb9be1941a1916212df589f565671eb6e7d82ab1d7a42bc0b61fb671efd6b064ac17c1f5eeb3061bdd0206905d28e833e197e3aa84d5f54b5680d83df38f32da5bda0c58fddd85a915b8c79f387b3b542da1 +MD = 59a174516f7a674ed3123391ff57d4de12ed2e29a3957d283c3e4f89 + +Len = 48824 +Msg = 32a336f5c2f18f6352f5a6f06aa5ed5e9cdf14a9c1a271dc857ea52826497d37781416be2d5d45525387357c1e87520fe8df66b976d002d97dcb2090642a061b4c1d6e604ee7e3c6034a6e4a4a3f72d045ebd5b6a5cf60af283f69cf5f15afe2b5a68502adf533696b27998376371547bceba7c8d70753078ec0c70c9f733e35bc97a4cdd3f1fbe09206fd4e2bd6031f54c7251692e0a389b8378470aaad7cbb67d813e9474104d681d0e3d4ef8403fe166797c961c217dcad8de6220a29311dc0521a7d914f16f13e6b933d4da9df8d08b44508c91579a975a8364a47512502cfeb01b13a81f9d9d3c155b0caad5d73349476fc54418f971972bb12e78c1f139b8c0faec941743747b97155f0f94658a2f074cd89ae224fa0d2bfa07441e9f82c1e8d9cc6f650b3a33a2e5546f361e659b185a2f0c4f97812af881c76da49588a87c3a3b90755f4ee2ed6d8540478c361bdf2a312ecdebb78f35faf73be08dbbeb1f9e92bde4ba3307caf05a3945197c2fe03fa768c97c0d9858c81f555ee2acf827799a4e2fa67720c0205ba0cb60b845bffcca50eed2e3d4d57b98307c2edc5e484d9aa7b2ae9bbc6160021d26dc6b0bb304425d8a8aeac33087fa63c4ecba8be6ad1c711a2d11392351d61503e714e08dc87805490e72f1fe6fde45c586d81f76fab820c2bc68258a58401edf3b464294cc03de86c82cdf93a58c8cfa97b5779dc8c63d58d701100af5e89105236fc06c815e5fe06268fa94cbbd7fd099c332bf99ef3d29078c7729bd3822325a01d8797aefffd247c7b17644c9b4f3f781cf50d09b96cfb86ad96b10a738d3299d09403b4134d8f2b9c2cca339b2b15b81abf62f53e0b9841c954392ce4b642ca1c15524faa560fdcf7cec5995ffa510435713e8908182d5225957a605d061cdb09f2cda64b7f6c3796e69fa67025bc0376f4eaeda1f98360c93fbdcf67e58a739f13bce27e326de3805d9e8155121e5ee42eae4a91186214bb3c4aa089bb523ae760672acbd7db89bd190b53962b3fbd8808d1c85edc9216057269fc4cf03ddae8c215a7bbd47ed056042e43bcd7e6c6686a9d8e92acda0dafcb620b37ec13f8aa1f1081d5921e6152054e7a4e7ddd248e3d58c5b4f203a2bf2e7cf4d2179c3f36619edfa17983e3b903b41fd487ea7d02674b944d15d67c3f8200e0a5da9f54936e08e9a8f274ff93e8a95bd65cd67acad2be24e47d184436b136f6399be6e2c93096c97163bb5de99b7356dd6468c2f064f89c019294a1ada2665f15c3378fe18d8fa485351ea4c2045a3770076afe7c0743252dbb113cab3dd842c1bb5b03e26f3da56ad1667d270ba82718ada2d574a2e5e7ee6356bc386ad4c8c6ea1ae7d4bde6f1aa9d5b8f1f98a34d5cbedaf0e21d2709cfef2cca5c11a119abb73be3c05fd3b3cd03c483b29395d2c4a2d8f6cd6051b455c85b0e201a885cf88c889ead3c4c11596a6a00e8e4c4ddd8c165903e52ab0f0a56ab2f8b6dd1ba36d0c7c1a33e9833d83a16afca737997218448663cdd7d437501e4d6a6f3c45aeceac1f3aa4c0142d1da8e375f28fb2726514b1fcfe80e771e32cdaa7892a865a2443eddcb4ecd66cdb49a42b0ec94b66f913463ff5ca7d48e4f2f540933c702e04506270d2d45c6532f0475c3a58a6c85adccdcd51f90824cc2d27b61bf675a2f55e07879cfb18bebb3937aa23d2670ef0bdb30581a11a8e0f17ec8891cd19416dc9578151d59dc1da80ef9559ab0eb351529079135726ed346fbe288344dd91e42eed0ebff84e272773e99e2a67004e0327d0a8659fafdac27107366ed2251cdf0b028035e7cc57186eb035347ade477c9a0e0416cf27df3fe87202b319a23ae4ca627632087aca33edcdfb067b1b282445b32ca57a21631322693e0e7fb7846bf9776152feebf8e07dbd4ffedc2978a0a74a8270352eeec2bb6748df78e771fb24abd2171f928bc4aae8a4ac129bb1683b3e962574a30af51fe6a38489b49c08b88a38dd0ef0cb56d1eaa98cb2e45ae17e29e833ad102ff0cc81eebc46a15b1b419d063331a96ffdaf3dcf2f3185eda2ec76e9096318c66c4da38ad5242047b93c5edab81c0eb24f7f5c75f21312d23302c029352b0f76be1fd5f87da6d3ea59254a26ba42a36ac2eec14e73dbfdb1085d7019356976b97cbf93b7f4531eab7178d96ad83a09d1de69f6a922f0b8f2a959014998a2e0f70ea9675a079d730398c3972780669480186d77269df5d72f7c921e3acd6bc0c80a79cb5ef5fa639b45820ddd515cf60df785cd47335fdac01875115d4228b8a4f68d2a276dfe82db0e30a80ca98180d4023f637b81a3264d038e7531956e1b0639601e53ce2e334b395bf0262778d76abef6d43417445c2ea45ac44845a07a6469af126494ee17447d6060da29a76c4a84488a1152d7eefd91468911c16459580da6a0ca60d2818f30ea94694ea1b1ebf8a10f93c2b2513250fe2e1ea72e2a597c0343f5a05004640a56e573f4dc3ad7929cef2bf588255549de4ddf45728fd15b316686d20b326b4031ee8abacb8995d898735a59adddef025342d44ab5dc6821ada2fe84488e2d99081a0e1f04009f413066af6db7dd681119b78e258ca27645f463bd25bc69f37b55e28e8ffa425c42d1238bb02ab648dc8e166d444b74945e92335334cb68854d87e27c8c32c1757407247fbf7afb09eb2cea024596b53ac2038c413ffa0c2ba63aa468a231f0435b5ef40bea2d1e33b372aceda7d306e226c4f917b5ccc78f1bca82d3506c717e4f251cb0ceb5925edbfbc98fc9a4cc22e352e43724b81d07f4d4083d1566a75ee61608feeba8e9d3ab24da49497087658e39e8301b408f2ee7c3cf167fa5149db69e3356bf7b974ad78a59da95cacb328de67f92f7fa907c6b3631efddac4b93171a4648c8a22d1cb798c2944d180a0278f514c0494ac378d597cb39ede0aed7ae369c5585b11dd1e1ecaf06cdecc66dc5c242588db59a9cdd550574fee6d0e3d26fb00d752cec02dcd269b296bd72ccfaea72bc43df8860d91a7b31af2334403a222bc1158a0a180ef6ad28360ea1b89eea307bfa0d0f5d6f4486e06d2a5b653bfa5a10f53d1a8a0ed5c3c83a54d5b9182e16081ee2a1faf66fd311b760b8db5e54e58d82da7ff142dc582302248136fd426df130d4e2c204f8ca462c6adf0b17ce38974cc6bcb64196c4c93c0236bac4a3d2c7ce78443b118be6ee2abd208d0ec2ddcec1a643719181b41b265258ccf4eedeec462148ceb275b38a40bc4fd999df4f747fddc68ba91980997fa979e6047fdcdf468453055e52ba9aed0c9f695f800858d5f1989cfeeac4d4a68c1c8e89d367313e0615778baf56a0ae02a1b4a63182cc62764c0e0961fb5d195eb33eeb7608529b1ae28da0f8322c0252f9542470694fb3d053576f1b9e8366b5d07faff43ae3fc575cc054a9b7ad6851f8c050d9066348944121867428f81d15e6b94dca6945b03fd6b81d5061a56ea4427191b7f4a77f2697c4f608151b8ae388745b652df8853902bd4168ca9473be48f08db9ae7ce63bb9da2443fd7e5ec318494f61038cb9d74378877f4d0b26048ec5ab3abe640c1839d997b44c80f72928a0a02a6472ec9f2b5255e08369e40b865950d78eed5f50aa4bc6d58cd3f28a3c02d43dcb3b8c052ce31358e8413c57b224350cba896e795d99483438e7cf6ab4f88217c247168dca936634f611ad6db4cebe46abc8a7f6f64a823ccb2cec4f45fa0054c4462aad86fbb501376b95b1e0b16311dd1baa6df6e80b6bde23d7ac417ff5516b8926f8d474964a26afa3d8d864b9fae8f2c422c1fa5a5dcc5d200649f2c7ba02b099d445a6707c3e6e56270e61296e3a0ea3c9f9e9e57f204943e1c20afddb343d01d45cf9da1409281b30f52f37e86a9fc7d8014f333c6468c1d33c211e516a8eed8d8cf739adf15d618b1f377bf5d5568ec17a82da32234c083f3acd9f993036bb54582725a6918ec7aa0f125c131493870ab83d30dcc753a59a2078f83f0fc509bd30f2149a542ccbf227386ecc93074f385cc6ddb8db2028889fabbeaf63aa474cb9f08d05d3c7dd180a120a9efb0225ceeac84742d931ef7f0aee6966d666f277559b05557ad079602a47e5e69714c932c4b9f4074bf988d1e4a97ef1d27ba9c1966a0425c3e73f8efa42575001cf97f87d046a72adf78345df7575dcd268cbbffed60fd3497c8de91c89f547c59320a49630111169ac4d3f3ddad48470bed6c6f1779f0a75f0e2f2e397265a5cffe1bb82e59e60199865129232118517de597b00c72817d3e4dd50f1f290e4327659b1e56d58eb384c59847f23b35b4247d240bf3d31a7dde8eb77ca149b91d096f70c106fe72f4028a8f9571840738a9bcfbc8f4252271e4d8bdbce75ccdfc1b2583ea645af88cbbdc1e5bc983f7a4b4ab042f39ef011ffb34cf191aeab2a8088ebce09873894258c32de021c06bc2ec502887e7b91e4fc9a9d5d96279cfe976b203edcbd18edf8147a46da2c4cc58fab54d1a290ce3cbf63fb745e6938e870e9a415725fa6d2cdd716b4a7316832f85e25c2e256eb75a2bfe5da5cfbf5649774d5c67cd7890ee15486bbfbe3ff60f36dd3e0c036a02c310efb041448690f859d33e65ecd35df0d0d48a14a8c58fbfb5b0d9fcec852dcf4c1996606e6ea25c5e35cd99a9913ef9b71eb1905b32b509a963174508499e468885f84c7501f53d2c7af34a2d3c9ad0722dc97cff0dcfb3bbfcdf317e3dbef06b39bf4b80c7f1636baa97c29f5bd83ea80ab820bbdf47869285180677e9f5949e3fd1a6b747fe96c4cea1472877620b01bb68c4b82f844ad705ac0d1ad6acfcc89f18a54309859ddeedf822f0179fff274abfb01e85eec73185828e908b49ee925f7b8f4c95ec41630f869b1ec3f7e1bfbea72b1469edc4490c82d100903633a389e1aef9749d4af83c32f9db04d27b7420077fc264e90bc6a2941d936ed993a5243448732dfe80477de4864e609893eb77c6f251fd4a62514fa0bc70ac9cd53d395ba6e24879aaf8d98488a061b1f2cfcbcecde9bd7892921c8ef4c1d2e6c315cf3e106d4d7592b359fb48f88f8660c6250658b12bdc633010460eab691e23d5eec5cd3cc55afe1f042f0e7f717da5788c56dad2cfdc9cd434b15158f8aebe259ed82778388fb7e4e209225c8fff888f08a69d7431e107258eb507f007fd5cabe85f64492c7e85abfb71cbb87175d2b0a1dee7bdda546acc293b769a1e73c512d342cdd62b8e2f1c585052bba0454b8560e701d8519b8e700a2ce87fc678c0006869aa48bc277fde008cff8ca3d9bbb64ca733eb1e203bba3b6ea3c78674161eaebc43c668b13b9afb0f1a540297eaeb6d07c41fca493851c3ebf099e7cf8f13ad24df79b5942cf752bfeb3a46e9a0cbcceffe9bdc804fdfaa89161d70f1f3876d87c8892d391a9e0c86ba67f636a4fe70482788dc2c4609f8325f7da9430a24f7cf441d5806cd36314bce039ae5bf2d62f8880d52b4e679b6cd11de1a2b9c8f52e29c5dbd640c68caf67035ba60b900a8e96953c782f7d7ec42756b4c12707386aa1872e4bca0dcdd6ee825df0e5a1e4c011281c3fd41caa079d349c6614f769c0dff8455745239759d7efc90576930552acac0cc8d8bfbdc5973a3107e01409bf59bba99f6e827976a7ae256a3b0ddcc4bda386c9a9f12a7cc9c9fb3d34e7a8b49323d37a82a504dbd23feb85af5ceb84c8a102a8c43b60aba976536c6fecc74f10d35b7f4e2599e7ec2793ee401aa211422718ecc408f0b09ad1e21c1d8dd5fd474c9a241d6ed93959f7a70aa9c1a108dea8221c05e46b5a223f2fd2ba55653dcae217ef6cfb232eb022ad7128dc68b9e2a6c6ad164830d6d4408506c2dde59f00566d67d9550856633b1fa859e559d2f2956f2671ced1d525789a5ec381e78f8bfc02f3df07094ef7936616c95704b2930693feb4c2dec3aa39c81128ebeb8dd2556139ea8ba656f1ee1952d3bbe9f7287ccdbc3bdeb820b716a6e48f66521857f51090884d503cc68db1d3258e8a0f376a84e5937cee8af091bf3f63abbbcd915d89ae34e6a73f0a04c81e1b495569445251e14827e250cb3d69982206a90c12e144c97cc20bec10d5c4aa4166eca3e3b6ad55b65a4410cb7c3e6557117a526142daa8cc7a0ed29f931ffe2481a03d7a1a0fa98a9e845965c0b64d7f46c04ee0d4a392b0691080faaf6280210420948bfee163216f13891ecd69b707311b403629383da539c155a69d14e6e378ee57add7db091746822e7ad4b1289b4aebd4b5b310f0274691ef47eeaf88d85a59e544375501d8bf40b7fe893518881ea28b03f4c650c329f2ac4316aaec7c1303cbd39fd7f3e233efc41e4d5e0d7a06dfc19580b0e5e55e642b2ca79f884b5d6c89f063dc35c03edfc15eb3a48dcd9e0416dec979162a5e86da6903e5f2c274049e1f35ea7dff4aa14e343ea1001f6eb00964418767fea4ab388cce26a27e016c76b4888b02fbe1d4b93350cc0adbd35407ba8b5461cebb71c40c78ca2dea8ff4b254de268b429eda90d09c9e047f86709045f9688a371d5b1b7c6658db746a3dbf7499556d6fdc336390748f9396d286319b3e4c47b444c79d31495b51b84ab82c986c802fe0146fb0077b292eae52157a2eac7820c2cc57c7df843a27328bf45834aa4f592fe1fff48a02e34c227faec874d664bbef1e8c39eb998da25fb862e0dde51b6fcbcf54afbcbe56629fd5a2bb024eaa6f95a5c551ca0bbe79bc5a9444f8af6cda20371e5ff40feb0872de91a06b77a1c2530ca3be1f5d4513b4ecf8f3195bcc3ee9b3bd73e47a29a448050c46f4d3f34aa3bd97bd3000d9e6f5da1189c49ca1f464bfa289e28f9adc8be372ed4306176f043321fdc088c589ebcc7e676ec496914dc56e1092a2a707caf45621ea6076a60107c2ee35779062f31e801a9c7602abf17f90966965e6cc61a236733f85999606960b1cf33fd318c85ac721b2238e8afc188a89db4bc270fc97945fd6e808a591886af8ae540601c80bd40b645f82e4ca5aec795cc6d2bc082ee04634fa4c5b4e39530fbb4691b47e9c0736077c981fe8a116c382698003f0e2aad4ce5ecd3d793363d0aeaa0eb758a60140301d36b2d3759a26d0a662cf635d648a276813b2cf010dc9fce0f560e29432a862b3d7341752f6e1cbfff394bbe9adb4c4b8b8519c1cc18a2a7dbe67a8f11bdd13d3022a20c3bda2d8e8aafa8731d7032ac313a08d011f6fbbe2f23228473d6cc7fd3feb8c424ed89bf2f14741a080e3ce09be160e38880935b31946ccf107b5f394f91ec6592af169a18f2177c02be5231f20289c3d8bd50c509c1c13a92b772b2cb63a4b62f29bd666ad0f961b4875ce55e25eb38aab51b46e0328a8b9e8fed3370fa4980a062676d50378291c571424506d3ee09a671dd24de702d8bdf0db80465e0448b9062faf5f0ae1ad3de84ec991393fa0073f87ca82a021402fa38bb6dd39dfb9fa532604772bd29f0a7c94229acee77e3ba52e21aed70a5b89a18dfb6e2b7d88487d97fabffec17b1c7472d3cfa6bcd7b2288f5c24e434a7465b60a26b9b84201df5f4168bfc44cdbe706931c2592649054a19fe776026a00031925068128a1e055cd8cc8d9cc3039ae0f5e0f54eba4eaf7a5c6d38c356c221d49199e618d5ce7902a4a11758c2b92c569745eaffff650b49d54ccb964baa35b4fcc368271dddf397e628cbd8da6add31cbf515f55c08b3390301b2518bb4a643228160c5b8b8ff7d2bc81d75607538131252f8c756b641b864208f7d8d7e1e1fa148626d4cec1732d4038eb70b84c77af90425de860a0158772da582d762e79b077cdf8630e3b5597d6f822611f605c9ee7d0fb35060ac89ca8db6f9e00fbd55b3b34ab90b3c64418660ba3b3a657d90712228ee4c469ddcccc5165b3dd0e9c03470367e3252ae8b9d8b797edb4f895f1f8803d7e0484fb20c68561f4762f77b0838253e5cd2fea8114452698b00c39648331308a2d24cb9e7ebf8cea31280e6bd7f8981d119df27902fd773b045b6c689a7f9090a711f450dd470d1c77c0083b2baf5d135a3ba7a78b26b35e17add70625b08518d9131f3ec9640d12b1be0e2967edcb5011d2b2159509018a51ca21450d0d36ab2df2f46f2b5fb45545ebc73c73fb0a5b9c2abacb09ef8a451a7af32e38deccd00a751aebec80296c9d0fdc7c372141bc650b68cfd01e761ada84f5c78f6b6e10d8663abaf20f95df1ff2f4f19ca699fcd23d642bd0dfec8ef9b1ce1afafb45f2008bfbe527541f37355bb8a488d439a24d8755e7f379142bdfc9272f62d879fee8ac06727297f0fb4613cf9ce4f149363db3e40920361778f594a70cad4831bcf993026cba1f2fb3b9e3e3e19946f3410a87b89b3f5c1dfda1d9f7bbc59495b59b0798d8e93505e8f891997c8e1b5d4a1bcc7aa437344d434c62be449004ce7037cf70c0e6219a206ae59b74aab8afd9da49d12df206d0d15ff5a5adf8df047533b4312b992b15e677a991d1d7641276aec8663d571ace2f405b5400e46f5e4df97e8422ea9b9fbf87a3229cfc68aeaaff0fe0dc4eb76ee6595c72453bfa057feff5 +MD = a08ccb51392e0ea994a2d0b0e9fd49e667fd9e387b4355b4624ba541 + +Len = 49616 +Msg = b409effb4801292a6bce5fee3280746ac5eef3d4139d5b7ac4e4bb036f4d7ff80e3d8a83afd885766c1f768e9c5b94fa4bbf5a17e849da7e3ee95440a6e507707a7c47e2cccad03358eb5a09b8636d9cd7bd7776a8731c77180ecd1b418e9c00e00c4ea2099eb269197b32e7ed60a85a51327379bbe4c96d3a9b4e1da910e6ae2836c84acd1ed521961727aea219ec3ca16475a88a648a688cd801cc46338f843a42dd637f10de63b70761e84157e249b09ca68c7bbb0771f50c0cb380bf3c8afe78b474893d78356492071c31e2328964212dacf7b0e78f60819757c07b97c75d207605526d49a1850141d3da828304a63d3390670cd2cbb27dcb426c3048433d814a9f4267f9ae029c3994a4ff7dc35f36e0c13197722cd449cffbeea6f70688e459c9c1f53164c3ab14e7f720c9cd75555bc6bf196cbaae2dcc0aaca54b192491cb0b37dd99ccb176fd543bae0f2ad2e2cd27775a6b7d2870eaf810f5ec83fbd0c7ed0ce8d8edb2451a64d872f6e35c255d6dc321157e2b5c504b805d834cf3e975f8a8de97d0af5f939e363127fffd65341f0a3812c49d37278e66a7b87df623feb374877d7b910d918bbdb64a869cec79c5b3650b57684a96462999321cebc88aa6d6ab33f83e973cb1d6c80681200055e82871a84072ddc6fd31fc9a34b91e405a3711604fa045bb9ae72e03f773eaf00fd0249086a538df3ae69797ca4a6e49560082ad869e5e37ce5ab1eaf07cf271c213456c31e7a20886b034d2e885ffcd2297c6c1a71f2cd7d395196374235f0189599ee34a22656968f799f295521bf34766a546b90df5c433022e158c507bc7ed0af59ed73dc72b68238fa0da9908e34cd3e7e1c54f02257607b7a93feb8cec758e1344e32011760e9cde84be420fc6b948533cd2cd9b23220e7ec696dcdb97aa4ec07e73b38a71e3ca4e45493678c4172cb2ffe86f08e6c17e4915970bb0f112b0c3f491de7c456e16a78c835b8b04ede7ccd20f1d9095dabfe13e4c615322371de64d44892d1937e6b000759a90afc3e1695b50bf7c58f6390ee8bdc40b51a1feef32959ce616c7a3324a26dcceec22815145b23d14599c5497bbf11d21a6d6b9a74a8affef64a5b6f6119e078ee490314b363e7fa0bd54784661f055dd4a60b8d63e2e9a902a5985c1fee60418be975921d6fb6d68afa70de17fc2528765c76144b5865511916c7a5eb905bcb4a3bf5f99cff1f0b4551b7b31c070fe671e911eb8589c19b9c065fc93e90316aabb8fac7cc628eecbd73a2afec90040c59e4856fccf77ccd2dfcc722a36e9f9412d8fa89166a950f65e8c8210457dffe80d7370d6c11f58a2182a46e94abe4fc22247bba2547bff7d1298ec2edaec2519929bd60fd69da3729106df99ca8aff75c1404e753ba6e2a81ae6ce22305799a05547ef6fb7f8978972e8a5026155f1a23301c7d4c133e0be9efe91b2f0c543c57fff23bd0c381b31e45800ebb5280d919f1290858e29e309c8699ea7c23f0bd0384cdac37c6616b00fdf581d6e0a3b8a2efc0f504b90d2cfbeae5cc84dccd908a7b47c47b088724f1a041561350463d40846aeffa0709459a85532df3a7495b6f5c1711250a916562d509f7db21d6db85478d45834d213efafe68ab2303f272249fb22ec03ceea0d724a5f398c5d417e3b1be825b0bd36d9fbeacb0bd8367794cce9f59c7101d6bb0e7abb5f6bccc76ee4b6542cbb3ae55eb3e95cb0da606e54a61353ec4349c2aa2c681cb5f973e8cf77d17f36fe5008c7ff69a769ddc6f2a9fe01a5a221af9620f29deb05db598aeb1ef4d10a2107885c08f41300896eecddfc3c5187b2393a6688a08e15bc869608ffa8b272cb674b65f611083b88624536ca4bc1639ff196c417f96fad4203f56f42748a34a4793a2af149eee47faae3fd8db65bfe8fdf9381c731f49715d78d6810e1c11955443df320222ec1194cb0797006891f2b0a17e7bfcf879ade0a483a9176bfe986d03d07ab262e9bfc5293f498c2b2901b7a0b3c285b8f7d45a50d2fecbbed6cde2620afbbdd5739d0c373b430723d17063758c9295d7409f1afc38d4a38b169064dd03378ce11653ea83a025e9e947d954ae4d6eb5e9d068b30549dd27674aaa64d33db0981c5e5ed08cf264acf1e896fba99ab96e6743cba31a7a7adfc9ff5652f33ee967ed98287eb1a681e8c43053c8f5e8f517b607227b8a4f302529813ebfab7b6494eb704b15a0310ff5e6bb7a6d11acc44a7c9727ad033c8fa01c9cce1b6a6794878c533155b726517ccfe695389b7a898f117025a7e3c70bd9098e7ef6cea80bb846dd75bf94fb08e5e64e1ebbf1c6c75e1b3eb6fcca73172876f2ebc236a13cbfa16b72b3982398c9c06e81779315f020003f462c15c54416fb567f1e30e7a9f63279c2b25f348380f4a457fc1decb68d570e7db65442053ced25b35b4befc61470a4e06c48b25ba3e99c2ca9e0bf6cee9638b81c145dfd02f2ed2319f62e2362c2695621e30183bb15c25a019a0295dc242a7fddc48d7e01731948dabe275489ce339e83ccb68e3f1f937ab3885ac3dea7604f6bf3652a9104368f0e126fabf1ea9013f25455ed985dac09005a3c795e9686a1570f59656a1cc17024717bcc33be0b60fe1844246f56588fa88e0c28d457fa002f96feb0d53346a6ce89b027a79f0200279725c51ca04568fc825e44f88227064618a9bf6ace326d6c99b130f634207bef4f6f3238b1ef3f7cd5b770039bba0e4b130ed3b364116e7f40038a87e3c33eb5af750e3c01a28db9f68c1cbe1b1f929f048280179b7014870b0b96e54476c32b45fbcbaf262bbe347360bd6076c43dc26ba9573fcabaea14595de886ccc793b09157dd0a85d74b6ccab9c49335446a45c6e7cb64786e6997c96ef1e4e3123ad6101db4c6a731dfd36b1be4deed1c92a994b25f5e2b171d81b9a335a83e03230c40b2056c00c7c5f8d2fb70abe4b9615e53bd756569217072d8bf362923f6e6e3b1b921833905b85da0cd0a72e2a730e4826db012993a0ceb750775e03b89e0ccd197bb74a6780162532514cc3d629bdcbf27a1fe61bd3d4c3d107775fb18cb583ed215e8efab3bb7488822307b780c97588f9d8129179c258f6ebd42c94fe0f637fcd3385afbe1cd1f6aa5181353fdb4fd0a353375f5a3f7fa76a9ff5c8bdc278b7c65eb9ef68e043641301b9b9309a5fb2bfb9dcec3ef43fcccdfd3fb59177c77e5608b22378b0d3ba035938a919afaf1794318aa0ed88a04d5d1894c341d65abac359f6b1b73387e0c381856fc3c147e56be4c8e32ea4aa125f187b5a9786385556780f03ed1269bf9ba22871f6792d068cfa1e1dcbf066031e257de259306935578e857fe1f4813dd2e4aa19797f6b603f9a14b68a13db09e16521c3507bf6440ec2de8f5d82d543b26e92ce167a09ddccec331634b6110aef03ef654410e668c23da49a276470ba816968f793120d647a1902a6918011ef91256f31fd96418bbd265e080841578888fcb5feb9f081dc93490acc681ae2a10ff42a8d42b60f9445a69540c8c194970f50ff4a50bc6c2f5da3d1f1822b8c07b197a7e2dc18596ba3e5d0ac2f8d2dcd5e8cd143201dd7442150e17ea85c1808bf366e99946327f81f0a97b3054d2d14bcd9b051f0bcc9032678c2d9a0558d8e80fb0818303f7f23003e72bd11a89953735f26dc8a414a54b641fa6c32bdf3803d0cfcc978566bd490a8ea321c477b72c945ba4cb453621f17d6139e283d53c53e91d213364df2f31571867beed2da5807b4f509379a1a4c925d95d6497cb447cbb3135d30cf1c68d8c0cffe4ff0bfef74d35d7bdbc079c36fff067e5c231eed2c9946112f82f21b21be4c240749311e5acb7c0b676a886df6e3f0fd2ad9999fa86df396fb0e7bf438928555dd8638cdffc3da1fa5424e306f32dabb7b472e458854a2545c1cc0dc646602fa9b4fdce4ace4fd215bf0d3f521134d201614e4c81578dcb31a54c7b9ee5f4c79074b264ca9566f77521c1fa555afd094c5e9c40e9401281bfc5d9a751ea7ea3cea231deb3e40b88b526d3b26532deb7f4e6ed40050170ff4cce041f63c6664a90b7fcaaab3ca5ec3238b2e6263b626497a4a1e8690e018a65084c22690c3432a340533714f1eeb898c1f003fcd720a5a1126aa899b87cb9951f227eb62e70d262b6062295c61e74456d1b9a7d8881e1adba97eefba32b03596d1782ff9fa4d05b9365fb820bed85b49486281cd21eaf2a07ca4a2350a50e3e9cabbd99e23882ea6303008e45b48382d2d03b5f464f74827462488543632091085fad1998a480bbaf5df00ef60be42ca27a22a957acc8539b0048b5fdede11d4a93cff32581403bd2e74878bf6c3e1e8df49caf88af2129e624e929d2cdd61fdde8a4bb1b5757e7682f587fe45de7d4efcff7c65bdef551e030a845746b66353ceeb9d5dc8f2e4ae9a6ce79174977ec527cd28233b4db8803b3e4bd554f17d9e1f67dd7fba139e2d1de08f8cab764d1508b9b67b2b93a28eb4f4ce5f7f1719a57906f35fb26012bbb45a66371404500646ce0fb5b54a7b0e1333f53deeaf9e3185d1c745d962a92007e156d9d4c8f05f8a11191903f9aac90304a8b6cb41740aeacf417957a0cb23bd7d47bc164a95ea7b8cbdee3a2899872a6dcf133b5503f851084a4253a2e18e7e361f260013a86dc246e47e8560af103079529d6874b2c36285c8eaf5f15127f415c760baaa8fb10647740f0a27542bbe2d19997a25eb32c44da5b7671485b7c52127b26d97b47ef09857eaf108f0a27c930d5299f1160e2068c7f2ce93e3059963276341637d9c284073576388eb3b11b2140feb5f991f1ddf18e255f7d5db19e1b0bd5d9554d25547b29d8831aebf269217179bf7dd2d64b97ed121c7c2ffeca5a806eab5a0e91fb6fa06878a9ff5623cffb3cf414a009cfee3055d8b123abbb7f9870f4cc9aa309435d8881b27a76eb7b22bb0c6495f6eb72ec72fcc2c542e1d8988f5e137da2de94a5cb56daf9bf10b1ac7650d401482eb475fbf107a15ece14251c3fc5144c1bd21da34079d9a94411ecf169e98e57fa2161536e263459e0b0a29a22581af9219a29a2d715a6cff60a58aed02ba9b0ee48231bcc74fabeba1cb5abae52fe24804b5e3c9344fd9d97099410fc00cfed6ba75fa7849a6107cad6c2a32c3c1a68c8742ff2fd7e3a9ca7ae13ca760f8d5802bd7b993efd13cf836d5e23348a0c306a9313489e27da37c8465c3db6be5eab3408eb7354136f70845eec9e4fa34015d726acbfcde879194990d1ed3683b031800833984c83e0954e19f296e64e52839ead50bb2526839bdbec194b8df61e956739e8aab0b51398312d048f80b1cff441a5b3ed3c688639dfd696eb258c16416a1c8f1d093d8503ee06970ab793f4f2309e2aa86c24fd9dc5dedf5e85cc23b0093e7b51ce639172c5452e7af35b8e081bf5399f4cf256223e7356e8372cc38bb50e41fb68ede53f67573f52bc7ed7a04459751457472c51aa12924aa234721f0e0a877c6132dcf434cb4e447b848e554a2941ba03a9ecb6895b25e86f69bbf464c1a0576fb9052bcdffefa2d8e2fe81ade343e2da8113cb5cbb6633f7331da669b2110ecd06ea30938378102d40c4dfe025e04164633e0ab491e7cfc226f3af7d5a7e250192f8bd15f49bff10f46daa715fab3809c6d7ef019d3f1e58cbea6a20393c1cb5f3ad2bc5a1afd1fc94558be1fef94953325e02c43bc0a243887e70f2bcdf68529f94074339482b789718eea2927ef7d92c4cc08cdc00fdeae30c5e5583cc8a5ffd39c9ef29e98dfd83246d439890c6041b30b2bc1c9473e772308cd8fca81536930b0e59d1f85bf3df046245afd3265c959653f26befb691ac6786eda5e68b9f07842ee3e01928140135781916baab4b11da1e90586738a1f83dd7140e0c4fc1b141b64dc2b074a69034193e8bbbd76816989d3650bf7c70fc1fe7dca39de47736a03ed80852c454128cc0366d5b0d3c2a4e3a54e34cf4871e7a43b7e4ffec07fe3c23131f748974febc07913a2cef2fb357806c9e94236cd5f9752660b6b8fc7e71fdaf769a56b1bb2e49cf8085efcb486109fdc1299b9ac909f6b8a556fddd3dfe38ddac389e72ee601151cf0a71875fe731892981df894e2842ef01650d22c31d6f4e3ed3d330ff0df8b8843f26fc7056818f061131c10bd0d42a23457955947c0b719cf0978463646a742e787293103b8470056c64ca5890450a899cc4fe288697e855234de5c22fe1154c6ae6d3c602b4fc95f7db1ddae2fff082bf727505b99f02d5c088cd81bce70c5c7af636e8589d553657f733f9456f8ccd41f46292a17b51bd6cbab4288806d9ed1d13452d89a84a74e15b953a443e3fc7b8ed3f85cac7657a9c66223d3daafe6ce5e086dc22601cc0487aba244bd679e088af7425920dbe7bb41da0263a5dfa5a59c0649acf4f7ca6d1d73b3dd8b2cbc625cda91883b8bd5f6843a67a0a8a4e43ed4576dfccd0caa731f360ed876db5d734ca36c53c42f2941d6abdaf2ada7aa814d22611c79e873fdd41f3c9b461c8a22a17b5c21856ee9838155e4c17a8fff565190ae72c0342df28553c490c3964a57a589e85b44f11fa6cb5f0c75d905eba526c9db686a98e03c7afd2e1eb4f2a5fa9ef69867ca5fd291fdf2db768fb1775615f470643ebb95c2fb4303ace3d7a3f4d5e9f4aedf610b2c5e35d82d673aaa51663af5d00546546c504dcaa416ee4d2b928b85984a9fd15f38518b0028498d7e61c2f31387e02322c0440b6d16dfaa881d03d28ed5c02c12d16d7c58998526c54eb5f2958c320ccc94504f6fab51c2f3bd7a63f6466d242d73b2349e84977f0f743a78bedce4165215981c129cec9e55bb18c139664dc29864483a38af26a0421c7a0ff63e9d499c8845fdbeb35945945f0473c0fd090d3cec561690e2db8f488e9c3ea57c05ae93387e77dbb640bf9af16701f2d3480eff5504510ce75e560712c98e335cc54c1d6c6c14d16e48154db968f436afb3cbcae57c72168556fd69f0298508a7852c236b375b08a31a4e97ff30d3f65bf14e86e6e30115836b8a556fe3ad8c24ec548e7e06d4e91d5e725f0ae626999dab9f199e648671aa4607b2d8208e289da3ce44ed0108daa3bb8a8d23b376873e89c46d56248a91c28f7b6a7307ae42d852a22f00527e44ffd99d0892bf49270632c768554e95df93edef6488c197449fa0d636ff1ebe90f761b3ba9f312ae3bc4faff4e5082dc2e4096a885f75d194b83574403190512454fbd48a92329e222a8785f84c7adca27e8bf4be404ce29cebba8337dfcdbe6add4e0960b2e92f4d1683505bd3ce29e82a1a95ee726e54c202d70c0251008dc85c035924487f64ca49eb1807c2299cfaae5e56003e02af70c3331689cf4f47a897c1cdbe9c1bc5028b66e6e361b5be41d2013edcec30790df877a9b4a1e2737158316c17f6e6db5da39cc1d7f79a162560a8566bc4223c01674acd6b0ee2998b65fb3e159e082d445b36b1cbce002d0f1efda5930dfd7fb3d9558b965f77425e86c64ba1dba8441d79dcbea72c0e8965d6a8333d11eccb8d1540ea1dddc8f552853a9ca4f7eea651c635f1535aecb4904e5108521615a7f6e5b2f3e8cdfe3acf290038043803dd490aea51b8a0c336f94f9f2db865a09b560f53addf7a40993d39c027abe70f716c0da2e6bc45bb9507a03aa95946b62f165ccc20eb2bb79b047e21727f4b39e8219606b94893fb5b210bcb841b007fec9c94c554f2278bc78cc0cc206aaeaaccd26fbed145d0ac0fb156fac6e8dd2259517fe552ddb7e3a53dc6693953568aa4e65e71379945f53a1e4a6e78a723c7ff9de4d5219523e7be805a9fc6218c00f9c52cc7f12e3aff63d0afd0a2401b9864e98d3dc901b3c199bb4216cdbe983452d7a16a09eaf7f1122f4dc74a9a0dba129b40c35308af96bf5847775911c24f378384ff86b7c3f4d0a3ebfc7a9f4158911dc612c6945e91b6bd316a6f02527930349f31717ce830239453163936fe9867d5e7d02a8c09d70854c89619798fd9c64fb8a5d121accc966a4bbe90478ea21e2d6aa687d7f8933c83d4a45e5ec398803d9806ae8d58f1ae8d9c9c85bb379f3e8b193be65f73ebdbb41c3b479934dde76607fa11aa33c6f5650e57237842b74d59ba384e0bc2076c4e6904da132ad18132cc29015f8774f25b68986f67f711d5fe1644c8c32c1077b983a721b2ef9cd90ab13d86949a222dd5740673709dd65de2f5085b6ffa2e855c32cb245fca6574547cdba831b6f92f3cf84a367c7d2d6e6d1f2b0ff875881da13e18ea030254dc79f6ad701f21217ff9bd0bc071e03f8f075b56ec44e247c7ef6e387b84e09398e2e75be54423c1a5728bf21a390c3448187231fb3c8c920baf8bd0dfccac4730f6178d0f8906012a1129a74bba4a3321082d6343c8ba9272475d8b1ec1ae9b2c1c4deaf7d6100a953d61d15bdee164a33f5295ccd1b36f8320ac0e414d2db515be531aa4148b046e5df918538b1bf05526a96e9f3dc050c7a24004505773bd7343efc61e29bd173edbba263aab3effbf23fc97c3f6295dc435e11351c6c6dccc13ea966effef698b1e6ca0182593b86a9f11b740e236c0044256e34e846f39aa960b319b7d6825e08ed731f5e16244dd03b1771feb2f9e0f2f681d4e78b5fe94341c40ad8a7271c293c27fdac7f3cba0b5a47f67f85b226b66df695a8ae2501355e36aad1053 +MD = 0e5157a30c39d84b44e234940bee6c08047b5bb08ff41937e016b208 + +Len = 50408 +Msg = fd215fd746210b0f291880d890da9ab2d0f5f9ca2e2ba612a225f997db65ba10827d86b2c37e744c0ab4f98f0a9009ad04e67f274659bfdff2139a7500b972d0869d9efb37360f332ace343ede7b1cfe7a50db4559d42eebc5b3621e03b471fa91eb6f59ab3024ed13d0fb8c12821bcaba9cd3cd6f863b5da66f183beb4001b429cec0752654fba14d201421b08c4d3c4d30306790562e5e1aae8673c1446826d8ae5af7b08adc785e2847a6bf83fb79ba76b9bac52c4e15abd9726f8ca7ef7a25f4068651ba0e9ad04e5ec3484e6dac89d4386f15f0e4abe056a5d75453ded598068aca12ccda2e2bfc1f1f52d5ebfb43b4732d898a3847418ee752222f7d61ba4dae6dfaa8885cf5995463e500bd8e6f7d349d28e3921257e9ff88fd23134612313c141237604eb88dc33609b72a8e95974167fae13a34a9d0b722ed17eaac291bfa69615fa929fb3f3541c7e27b233e6a6232076d77d4c0a9d5c8faf348ba8571b214ef09ad184719712c2669f974f15e61a65870931a22dd22212d9f7698b09c2abdc41eb2412382419e2f34e9aa36db056cf4d0d42f59d566d68d04bc6f32052b0be98401cc17e26b3fe92b96ec9549152ce377833bedf8698e2208616791137ca66525e2e2aba2b8b85c37476397105a8d2e4be76564adf2f2f594afa7572de73740e79cab6828f0b1903e4337c3989c38dc364ad6485ecbaa0d91ec580bbd326682b4794ed5dddbd18e29d38fa149a2d5f51ff2b62072ba5d73e561a1362a26da3473bff37b2940c15de13f93ba8c360b82ed282c755188b32d7a56ab5fdc8b3c5e0cb7c4e075e929054dcf6d95c71e82898a3460ce63fd564536139d0e3b29330666a9e68e279caf8f54cb42bb6423e315dd5e7bb30fe0ebc203dfa0ccafc768366bdd840da922fe02e07a3db2c90dd62bceeea5acc0fb1dadc804dc1fa02f82f5029ac4e36143bc66d825830460a402d5452b0542db14910d6dc8789276272a4c132ace9ab9c692c323143f388fb0101a2a5fc4fcc9f4f2ead9749daa9978084187d3cbba17752722ab8f97d7c0f8a70365d00963f263e64df64f72f171eac3df44dee3c9e516248a57deb3685a457096dfc6fdfdbe28153daba320ee6744042b33933d518a7230040f48bc73c55f13dd7e8bc855960d29c2e0b6ce29e150722f3c3902d96e51f497bb16da81680e37e02b6691f0e0d8c7e47dd2a52b48d4b6f2481959eaf97b174b44913419ad1a84a6cf9e8058055299ac6b3dcd7b0599777c3d7c6b0b93b7422890fef3c3fb4aa437507cbf146e434721903f6da17e675ed605a860c4a4ce1d3788a83e07bb673c9b984873ac8273794bd522ad261d05130786e65f9d94894f7f14d63e6e5339f7da8d4ac7a8a8a9d633222cb691493d3d17aa7d901fcbae81081dcf1b7f2c887afd19c9e1914aaf06e060a7b06a69d5840f57b71cd1b2055adb89dcfcc3ae1c700c230fe9efcf4bb25a75d9c33ae79692f677da2b3baf5883ff424509c041bd7f0d926208489f4682aa4b0b15872a480cd4f12fe4e62b6da37c2e526c004e324f0a500b652622671dd7c984d1dc9ab39db1adfe70598f0d635b374b4a0b3b44890a44512a10c0782ce9d68e1dbe9f9eeb96938ff71c41006ba34477ce6772bbd516567e7c8fe13f56e95c6f21b7a1d39e8a8b29a0b8ab0e625c3c1f1d9e595fda356ed9852aed8644de4270074e08185f967d1593b433fff18f098b62385af7416f74a96d694c139dd070d9f40c3c36d6c1519cf998439abf439203c3bbdc4db1cc50375cd466ae0ac8cdf21277a5f5aa13ef04faed42a87580bfcf68b14727d355ebcb79f4a32133cc43028919ac1c83943f95bd3a98f1ba4e78367aa1024e4f112bacec506c33bfe7b953817ab7750b4d2a996b07ac3d37b6a5812114778acc09f924de7027ab571e182b212030c6e74596562bdde85493bf2ef984910da2f2433e7977dd3e52a27b46d391957dd8c2846d152642b3fe7772fbe3cca02c606bc9e0f4de1e17f049052c93fa6108734213951e83c175028bd5f58a20c93c8adca3c9dd3cbb1c4df3c4b2b2840a375e0ff9f8b96bdf972976f30235a995a5e9f0d7df7cb83db33049c1c17a561a7463d23e7c2e06267f3be1d10b2b8f8bd0454d6f0c187b2b4662f2033f319919264833eb0bc47b1d96007379f9b5f93423669b7236fbac0d3cac97921620748db4d6d9078cc5f34c443fd5f2b21b0f16071383e9476b746cfdd4e0772c8f100088d56d9ae677953cf2c2ae4420a5fbbbe516acdb26b1fbcef1a274b96bc694f9090d96ad03238a74064fa7782a9be2ab2335c050bb1568be80e0fc60b90c29019f46fd46ca10f97ceaaf6894b744ef6c2b396451eedee3c112541f7500abf79fb2474a7023880bdd04aa98a3b1e9478863e942e4a75696610fc786ff27e9255baad92430f6d1e81ebe07dfaaffd21587350f0214cec3a725df02d906160fdcbdf0c433902b34b7c77f90e7b389477fef08714ce64b6e3e95eacabf93b564434eead02097abf9a161ae0b55c53790ad4a43d9c664069f843a98eae0acec32839501c4934d5c68cd73b541d4e9f1f4c81f500d1b95e89ea09b5228e55ca3bfc31a9d6a33bb27c96385fbfa0a269fbcf8f796d5f181d7b2bb417e4e76a8c2552c662788a9e8f4638d1fe8fd9f84293164597dfbf131bc24fdb286223a9a313ae60005e79cddac7f71cae4143c0b779835cd6d45c2ac803c8d78d06dda39d8b61870a14fb5a03565370d570589c4713c92dbce7d0cfa0942941bc6f6fd8d9f13ea3f62889c3b795d0871a9992db60064a40c08697924417e3921ce874c9f6f9785f4af59f8b55faf0c7d4298d1e90a5793e783d2af310f38a51452e66f762e8c1117f28b7217cea26ab98bca1c66785e86f5a87f56295ab7ff7bb9dc0d1ac638b53192e6b168b07f4badeaf7b73433c1a5bcdd3a17150c4470df6b31ce941de49ac9f7325eb0ec8ed6e2c8e6495b22c819c68bc99afc0c2720c7d0ad5ceb1dd7e867893720f86a1734df8e607be42cbb0a9b1bf586e642a836bb50185c27ad5bc693b0bda04712628c2ca22df5d63be19fc1f38683db960fdb4353397951b4b65cd6d48b85a5ccb707526e155e39368301c27d443be4f0a336e841d959701c31d3b75d6a781a805dcdd858e05e1604e9582620f7530838ad703182c0a48ccc1453bfb32221af169d0546ca559f748f5bcb73436676505675b0a77eb603aeaca703743e7b276b76bfd7252b3dc65bbe218233505a4ac232431fd09d831ddca4320c60663d3357880b6cfbe3607ed37982a6edae9b7769b55fe53748ee9c209cfc960b942fec7935c8ec535a866de5a8c75f2ac5f1a64ac5102961e5c125827c4ec8fc2e1afbdb63407fb2f7773b983439d471fd247f6f4ba013d8dec263092c70cabb9ec60785fbb94ba224fa91f5031d2e4abefba9df3055cc2399bafbbd94aac5d04afbb97de67c7baa49d91702febe943d703fcda25a787cca807098a69d44e1c49c81b9cd0ad13553ccda74c90d632fd37bb892c1b3504a55f9aee0cd2d85451dfa1fae7d51ffa12316c6505219532793472ea14322275f4d6e3a7b392db61a66ce9f4093a250e9a48f6455a308d7a3063c69a1308e43e33a46dd12f2861f87247fc71819e40a325e9f7e29c6c437cbb2c3303b90e1edfda2e95f4d011e08b5e17560de160176a7d8afda74c333bbc821424d176c026dd50fbf88d36ddfb9cb2418313a93e0dc6d9a2542dfa03fabc2db2386dccbd90b940830204d3eb079f276d004d2976984af2c6b7b1167cf4ee066cca432b64e0f6216a4ee627d7892525e059f512a84b59317e750b320caed4b4ca76fc33449c066bf83bbbb31214a12641fcb5d5419b941e203886dd11ad02b151aae344db268c98e354fff6292ea5b1086509e1e10d6e21526eae684a63fa7478f2b3009714db2082272d718b3b954eba2f6be8f51559e38b740c7405682e76c6dac5d716eb74ab7b2eceb5c6c01267cdc8562b0c57e9cd42050b70e12e0140b1cfa638c92f0b9224e84e235a508f84b9ac4348752980570c8e35ff5c2a356ad04ddeb63c33f26d15c0465ac4618f3e1457cdc1fe1ed009517c067fd4e11d4d98d1c9dfceaebb94d46321bc837773ec54675027d5bc3b6ca75b1762e9e73b7171f812061f03d9c1d72d6ad91606d037f03774daba6634f974a7c34919b1026ef22d21d9abb7df4c94abac20faa446798e64a65b0ac15f284feea4b2d2b324aeafed83bad35f3ecda34a5034bfb42949756b5f3945320c71af9c3600a371f4b8f1b5b23a445e6a9d79a5e174c3db1b204bb829f5f85cef7e0a4cf1e31a8205067e1237c86d2a05648e3aea81a56d7e8687c77101a2965aa5f65d52aa9647d81f9b9f7ef5cc66719b5775d5bbe30fd5f4a035defcd272e071da59f2f7a557e07cd09a0242d08841aa7be33da3fb16a3f32b7fbe37e677137a4cdf3d3ad626b0a6b3ae7c201803f82a620f8cda5c368afa8001b9537d076627c439abe49728bb15cb59272e116df79380573dbf94d3dd7354683acff4c84ae2b715c99566f272527e169dbd3b2ae26e7d56dad423632e060f1fcd1dfc3e4463bbd000cdd40878e542536a6e23cf2b23af8aeeb88688ff2b2694eacdd1bdf50349150bee4cdf3136bebbf7a139cf445b9d6fe3cd3ca9c34b21741e4043dbbf59c54125876feb3dcf59acd0070bafc05edd725482c44a1cfe8619d225911c05cfd6e0f8198bb0e127a9928df007e511d5d64eab89abee5ebdcb0290de67f38aede470fe254ec4edd805298c0cbd13db392e316342620b1ae176dae4eb2706912c847da23b179b964912ce54bda9906f012be7163d7524d4320fef48cc5ca9cb142d637ebb84a98d0348fd62734c0f5fb675bc3eeb53d01d07fcdc37028771ab2d45cefe26f473248f2e335fde12c52fd1824d47cc8c7157ebd40e3a2e25d283e0641cab1e059d1f55191c874eac7651dae7f6cb619d9d07461c11bc9fb66117d61ed90001366bbffdbff583556777584b0d65244af5c7bdbf3b7358d7c791b966cc809760e57398d1896ace72d26cc59a6904fcd92365edafb8af7986c7d90b2af3bfdbcdb1593c78fbe8e3378bbb0c519152bf9cb51c19a02a12a8fd35cb6f8b3ac337a828711d6c8e0c4c13e1e6af090cdae726193ec428f66961db9fdd691ff8474570994fbe24b6217388737420193209fdd5ce626fb2b4002e8274837a41c2c88fb7a269812a1ae4f415bee7f20aa76c8e5c531b9ed5d9737982425235a900a370fdc24318f512a3483c32b6b775e37ef30a35ceb3fadd4fed6b97ce0dbe588493b38750e81e3408da7c6d64c2b36cbdd66fe4e051aa35d1d4aed35b74ea20d85269503770fdf5724546dd76b67bb9a5a30def14ea5c89b5c9bc838f0db5000b479fbb5b461ced6bf33bf161051730d2e364c2c1009a3f68571526dd3ac76cb9edb73730ca0382727ebc47b8311e88a201f4fe7916dbdd75e7694bda8e69cd50bf50325c9f4a3b1242584ef0bd0a27af993f00a1bfa9ca4b150950eb6b44b86c36fb6b3318499dc7e890858f1b62846813c367ef4d7cac744a75d4a463c09468df091068d79a110fcbe57a07eea015480bf2929642ecfa6df24f557a0a6617d33209e0424fa44b5676d79adf795b80ebec7d1f4b52431ab4c6e641f0c1bd8937ba8e49640300833873d7769a7ded2db02fa37c72de37a3c522eb288d2c3f8f02e306ba5274378f324d758bad5eed9221600628b169331c3b80ce87c39c548fd145f3c17225a195b06e2248ac8ec554dc0825a26b65bdfa747af0de28a495020f4de5ed6799d75d4f407e3c0c901ccc3c928288256640b50c7c029a10e7999c29754d9c8743513c7b8ee9e442055c8ecf999d3863dd63d2600e645a30a7baa4cc66ab6d75b4a7b9a183e5dfe150fd030177e6319b5d8fe91b9ca67cfc9770b2447c8fcea750336b7dda026d6f0586df7ed7ee1250492d4f9bc149a0d929645b4e215b3e80b89cb84cfbb03b4f85725a941425491732d4ac6cf6be345acffdf6361fae3bb6504c26bb538fb80763583aedc71c4454ad1e560bb774c5f60dc61988a1e954acb9ba4d258be1622b2190c6e86b43928d1a52f2f47e1dc44f65254bd272ad17d8576f72381f65d82f42c4a5206b3bc2450d2af9c3d519bdab68b3f39fec59d3cdabe46c5f687d7888495c4c0261554200e7fed0d636e920ae7afaa74d898036f149b1620801b8d1da97d0221ac830a0554d572eb83e1c8bdd3e51dd67c4a0afe7934f19ce6578527ad0c8dde61a4e5b96afcc59f635145d9c05621c7b484bad152b25ea1f2e5c98fd669ec5d0d21ed25981b6e8fcc671247f72a3daf46ee1cd1e63ce6976a6d613e6dbda70878a12a31265bf62585cb36f0c088faf6fb2f37e47ffb0fe61796531bb92f474669cda5c65be3e4c85824b9bb6298df049bf014f3631764f6c109a90d04e8537eaa4d65ca80dcc0df0b1ba48f27847441eed8b9e7dbb76a302f6e6bfe9410531a01c87227dd6d13d46757fe5655714116bb9030a62f03abfa2b6c9fd5b3cecf8137e6d5c3babf630e3481cff73589cfe9ccbf811aa724aebd7bab4f7aa74a501b145095885ff93bf53a40205a0ff4a523e70eb2298b42fbe2e8d482d4b8ad5d505faeba5c134420f1403df8672bda4b2dd525cdbd22841bcf3a8f41cd301f7f88e2a74d2920c89c6a101f5f06d0624a6d5eabd9bdb51395ee3983934c55c73d2b63e454d6ccac36c8708f5d1f48b4294d4949df118c17f1a6ad59803a71ce1fa1ab0dda4b601977732935fb9ad9f9703460a6e6a1efb7b85e5db8107dca5bad5282c9e4702336e5d403b8405fcc59a88a696bf655261b718012494cfea89770a7afc07c2d5f2c0a51c5c1355669fb58b62d3f1715786ca47394b43ba555aaef06fc9ba96a5a226e5339f7e068f708082274cb52c92fd2d99faba0e55b18bbb2d82f02740f5e41974325034b7bc0a7403506b6ae599174996c1fb5530638f24286119ce304b1b00f87528c7e780a018957aaa934ade77b6b42b79c8c8ffe7826766a1201319b985e89883b7f481e3e6af02a4cebad780ed8893cfd98dfb275e612020bd37e66210aaf8eb858d144856c684c46db428e5667a9777f80dd9c100bc1a03063d458729d632eaa11fdc3fe1528d9400c526f7ba00a2dcb4b7003721cea0e29b819bbb49f0c2eb9b0b3e5d2f09698e187c664a40b142989018231c3a1f7129dda37d50e9611578e3fdbf029821b53d25387b5f931303260abfa6c2a234f7535d214efa90cdc71d1c55c2d2a5520d0ba787caaa399c40ff850bffdcf295afe98a79a50ad88d4442a4b20e4fef00bd842ff8c8bcacb3a89faf8bb2cdb3b80776e61af42419361973fd80e5dccdb453312efa19f9550f8680eabd54076e129a661093d0b8db4eb34bb740edfbd9f37a9d150a22f2daf6874db72f583c7a4bd5517a52bf4ba73dae1442708b3f9c34802272a7683ba70f0740a54033bf70ba44a38406145f058976782fae422a7cfdf05be8607e3631cfa32425ae8b12d9f464e6ddfc74656ec888e1ff48a72f04b667c3b6b3c97503aed742c8b8a2d92e60c285e8c453f15b6161dc01ee3ebfbc0442d49e2fde6aa52310370efd2f64e6a5ca2b24ec377543ea9de0f7ed5d7f1b6e1e08ef2321a99ec2ea7b58ea85688b39f82112e29373c0daa97b41f497cf9b3a55fb2a3c37944914c27a371f59369473e9125325fc7f5aa7f11570628243c41f8715efd994cd4c8f34de39f9ff618b09f9793644d6fa69d92149f3d5815e1e742dd3a099ada701a8bdf1d2090c7bd762c5c06ccdc77786f4a6834cbc397112eeb6cedceaf6d410e7ca6f8fdae4e821f4ca72471f22692a70ed4bfb84ff4f49c5be62054c14b6f2c2e6a1d3de3d38d356641955b78c51ccd4821e80ce672b1bbfa137aa4b6bd21fc09f334e8169d0640e4f30292579c406a5f1756d06f5b711331baa4c5780b7f077608e4072ff516c62d83131f75f32405bb7eb20cd2f55b2a66a545bfed7db2d4db73d5a01523e551a9b96f09bc12f026c41ea3c6f789988a029a069bff5be2eba1fab0beb26f9a68c05fbf581340cd55e2bfd208c65e4fbb6e628f6095ec36d531661d66ed205d94da3baa1461c7e31b7d28e6d927bea94311c587169679d719f17ec3a2ae80585b5f17d94690ed59fffd22884202efceac528a96c6ec4aed3f4b0c4b79ddd5b048b7b9f3f687fb578aca7560493f3ae57e9b7b65777ea79fd0a6d65cf4636890e04ae9a12a2e3807424ce915f9c6e7163f535e9c3134d815536aa69f1926811ead81718bec6dee8fb1eb4550577f3e8b79e1fce3fcf6247850fe42bcf20f688236c21858432c63175f1053b86d528769b3af1de0e1acd5f04fcc725a870664e50376a5b13853e1c8d321d9f6422809db7624883ee73e31a4d93b0021def4be6f9d06e13dd1caaec99588a0b1dee70d0749a807a3179481bd75b3b2bb01bfbf478bd894a5187912432dab70924a79db15b4a360b877970c62ac9c52cdf851ac96555685901549575e24f411418dc4bb2e3f7d5c24122d1cbc055fa602c990d08384e77ea7cf20c34100ca4a65afb2f57a739fc38fed3ff7f3086277ff7e6672379ff245924ee8a0154c94e4a6b92ad020d76f5da312b6e62e3d0e8c6f1fbad9d92ee1a4f89a8734018dbca8aeb2139548f456f205887831952dcbaff8b2734e92b91b6081bce7c82e4da95b22a2578d1c50bd4960576f20515f02a642417b198ac90844d6bbeea3c413c3c8ad91ddfdc1750a2b5a8881fb8a5b193af6d3b982e8e510179f9f860fea6872b6f5888d3062eba7609b21980967aa7a33bc7115d1d5969ba08370 +MD = c05bb738e7cf0fc3b4cb37238866dd1bbf6f9abab3ab0aedcf40bcd2 + +Len = 51200 +Msg = 1e68590a9e5b6382b0f375054138008b748e721f3cef663f2978178682271b8895e34efe4bbc0c23ff75a35d903f0720b5c8c80f9174426588ea149450d3d32c4bdefffd14083580581aa773e773cac40a074eb018a8532c4485da84b9f07942e964545121c6486261eb698f6c5baf3e1b54ec49f612015c054e529ee4057793167a35419b7eac91c5efd1f9477f1f588fb68a21563bb5bc754f6429fa9a34e77b2a8a14aab9c9d52a2ec8f8a16783d80f3610815ea9d5153a8ff96f22371805bf7b3b1375fd07f639b134d5a29c418742db66b136e6cb2ffc16f7b685658bb78b76308625d5cebb997fffd971a5c32dd1ad75f9077afdd264ed48474aabf5c3872151b5e1c686edf2a00f49370a6f9263b423a1f9ebd5c6191bd26a9a92bef25a8687e7d25a9754ee1d4e701b54af7da1f959f033c3b9d2c4a87f669da14e0cadadb865201869b833fda295460aeab83283002fde8913c00d9d35857a600ed9279ccd78f28864e16948f5ffdfb48709c05afea721c64a569b01de0d5a576421715daf667033f19739072ef70fdaf039f0873d9d2501c65d17dc6147640fb9ab32f84477c4a076a14b4135c5fe058c106c11a35c11c2ef9c2836a67bc10f7640137376f513575dc846fef2b1d3bcc355dc001a2b0e922ddd771895f198df01a8bcd82c2688e10cd4d2464d03b788fdd2e75d895144f7e8e6ac8916f01208c4abd42f4e5448c5ed8d98222e02d1f0a24d362fd717da7b88806e9211c157112510047ec3c57e8b66ba40997df74a7c1a8f717eeec5f9a67573653a6ead8e828ea1f3cf75c150bce12572b4222a49b4ce603f52b5a3c8ff17873a8915fae0e4662449294b92e6dfc594d57a05e3f721248748b414f8700ed7849587eef074bd1562b0952d7f697c7ad011f30e6a7b4a85ce35abf30e185b1b311d3de2d973980323ce1903cf011c68a1cf272606feb75afbae403a2be96f4c577bb2d7fb04fa982f4bc0b5cbd546f7ceb71f3301a8f109d75a7ad1980bd1d3be57eeb6a0506d3c4dd08f2cbb0e828f2170e21ea1a07ffc2ae261a19da509162e57fa680e7e78574705904ee7d3589860a378d02f0fe999bcedfd9081dfa07f6f26ddd48db7a451e391ca04964d517a54f7ea30f21cb84a542457878ee21d75486a9fe167237792ea1d453711a4f49dc5153f2534f07376bc2f766f0ad6085f83cc4979e2e97b8223500acda1ffc9697ba47f993bb2a284bab5622e3ee3eaa7e6f3e2834832388958d320b08c8659473d4db273518bcede175e24ae722f49b43a8872e6df2535104f4d8fc61a632b9dd4b8e19bbca37eeb9ad4c3d5eee5b0ee4632028cf0ebfa7dd16760f995bbc8d4098c14f8c4213a130dbc478df92ba4bdd49a985cc2ab0f3aa6c99a2f43b9b655a2715174b32e8abe36c1b9bddc29af89aa673f3e9f8efdad961a45526e827f876711a2f6cff1f754df89204de00958ba9142fc1acdbc4b4069026a495c41aad122110e676293083dcebc84244af027b851d3d9d8955c815ae62b0ffc551cc09d991c9dadb23b46e2cc03ed2c6508a5ecb2c1dd613f962762d73a3f53a33b485295d858b1081237a9a006644c787959bc7cb5109b1394c6c202daff368dc7ca57deed465bab4065fb146cf06cca6bcc9176567b6f597be5e12fb1598d5ae8cf163c047094e5ec5841eedd9a74a40584d46a4d25c558760d272867544053c5def677c5dc42fc3e96e1f703694d4e6f0beb1e41178659aac5fcb4a5f837c0877f5f56d7944e395fa945f78365dd10d2e9405adb5798a44295c89a134e5be9553ab9a3e3a0a1e47719d3b608960d3256a439e8c3efe5816405f3a3585d921558986d2490062245ad6cf5fb3805c6fb22c6408fa0e65438399ee5971c2ec58db820e1a287d0b8a32a2c128fbbb9eeb55fd7bc161a45cc10e8e7073e09c7dd9a9c5b7ee46f064d4816e0913b3aba6ea6345d1546da1337529969bf5fc532c0822ccfacb4f1aec87a9811dcc55d112f16cae2b2e788587c4776aa76c4f877588d9206d4d8b5d21082d8465af5cbc5184f48edfdc1cc1d8334a43495334b9c8b05f3885c1962790fa8ff0773952dde1098d7075d9b4c6934644e8f827565ab43307adbae3fa0acac3335dd8f6b2a6501389fb63a3eb344771e9a41a752f0ab67584c8930121972cf6da14e16416b61d278c785fd73a7b634a9b0d46b9191a5dfc3941a4c5a72d3609c6ce470dd97da6ba078f90c00d0c8534eb9d035fcf2a093b9781469de56d74809bd27060757d8b4f8d99cd0add881bc55ddbb6f59bba46b842001ee676b876dfcbd9e3e89536495c713f5b14464ea5706431f807194ba4f6bb56845bd59eab8bc94d1812a3285f6574d8c188b1f090da81483d00c23e827b55fd2d5a8c9081193694838b19d44bfeeb0ea6b4caee8c4857770c7f21338dbab45c606f063ea61c7648cc9e73ba7d8d56496134dbc8f65e3956dcdea0ab2539590cc405cce978ea1af249e94b5b9295490187957ef04d90b96024abdb05d77bb676cebb5b31782696f981d80b27f9ab25cf90431ef510645a1b7a633af413064f32f6fc3b9732367cf71b072db031439f1c01ba5657ed6d9de154914ac6664d95c9c354e89b25be3f536be33d84c7d2f77f52879f991300e76a39b2852d5fc63c93ca31ecadc1124096faf8c5062bfdd152192765294fb2d91e905374695e148629522fa25fa2d7334a4ea42eb4ec08bf4cbc164198e217e5670ed0833aef9d051311bac421396189d5ed92052176a813c7b1d0bf5888949eebfbc64bf292e45bb98f4fac82f365b6e24e3ed2dc5a30614b90e328f891bd6815fdb13920d67edcb5017ad6056f483cc7f707023615563a40efca38e99bf6c36d6b0dd55628c12a6e3ea8db191b8dae1f6e872ddf167e115014f249bc05d5535aea58ab03084fa77d9d76164e76aa6d511b4bb0380c1c68f1b6f7e5e07ddd7a76e21e14a8039ed64b844f32061f330d0583a133c134b5a39e2c4797e75273bb49f8cabcc599235950a9b098e0639c0f954e34230b4ede73ce0b7dca41324c983c84db0ddc477193356436c55de259e788c170f886a8fb3c09dae7177e8bac83d71ceb826c8d0e06625a4e41ef19f1176883f44ec3e1907eca012fea0fcd2820923768b4f6d85d355fe2638914890621bd1c1a70336732be8714c4cc657553d1064adf0ffbb7f3a2969313255eadeda8eee0701765d8567dd98c2239202294279bfdbb1debba45d09ee2d9813df73bff8677719ecb83803f39dde4aac0438d96db968949574dd831e1682337230355980c57bb90e5172465109078bbb65684914dcbd62ccee13f5906898cb1be40ef24f8f7aa7842f1c7a2064a4ac672da3dc95af40e22a322cfc866dd828b503e5d08c4ddcacf55a1fe587341f765a65d0d819ba5ade584712de28aba811e996a13c608808900adb61cfaf03dfb13915d786c786731cfe35abe39fac714f5fa32c7ef3c6681b6ab9cc82bf584c25af43a02ec89af466c305e15513f89cabbe356dde6c926315bdfc4745e0bcce9962f91218437e43824fbe9a7aab158feaaf514ca4f3716145adadb95f3ab6cdd7fa3e178b61bbca384b68c09c908db4d7d901b117b2edca74e0d20c19f4ceb1a5201b96d14ad8f0525f0c3a01eae87239e54c8480ce8d076afe7627bb378ce2cc7c967830255d1c9632b1f0f1e0ac30d77a3bad2772d97eefb09ef28d2a79c914b5baa3f11ad3b8ce6d5fcab69a63587a41d41554c45a98cb9e5455d6f61ccc44738c005b53c12bc0b71eb097419451eae121a24fec97bdc56f9f38e0c2fd5426601677b8f5afdd35b9f78adbfdc883ef032a3d5f131956a7cb8883f1b7a5ca80225ff14e2b2536f41bf140cbf58656514ff6cfce6166c9375c151e52fd9b941b616f54671bac9ec78415baaf525632d76c8d3ee2fd08803ec750f14bbb671cbfc64f8a49edcb7d749c6ae1cf3bc07f4b03f774e41087e183b741e5231992c833f806793cca0b3bc40cf89b72d94da573bb3c571bc16956d0d2efe02440a30241a09c0b8adaf3407f7cc7d1e154840c173d65d1d1393846ebc062cb94582231af661a2679440bf46d93e06c65d3ee1c01317ac94c9f7b199d2aa28fbc8898bc46f187b45331dbc055fa4a52447e113ef83d8126d61cbb36aeb8b812e4f98c0dceeaeb9c5ec8ec0a01590d6dc67e77d8c30c84d2b5d87f07e611ab3e54d3868b0ff84ec6e332c53b375732a335fba8542b448ab431fa4ff30dde83fa533d0e9ed1c4b91a2996eebcc09cbfded71c2b18f88e9cb494abb362eac6482d2a5fadaedbf633807a1df0f464d1bf05f60a878ef291c1ba241234bc467203c12262ea23f635c5e01cee524aea9e3700d8ed471ce0f601ae2b58596ae989bc9d816e4e66ea29762258339c281caa31b7c5ecf02c8c646478efa4abd29bb479a98faa60dd7f7b4e2e761157f5c09eb412072f0c25bc84f301b91fb15d249b44cd963fa8f17cd355ecbeb20a189f21c9f9e5df226f39feb52fd0f0f3734be524f1dc55ae0aabd89445783e3dfb81dc7754a624bb72cb79b3eb7e41f97dd93b22fdaa12fb91d233121febdc78052e76c60b93255e95399df31e09374ce1974444d948a116ecba8cd76460b5449e6d98be06f40b93434d137faebafc73094aa9946efe2887852b89ecfa1ff1282e07ea682d11fde3e1cd835f85d9b8f65bbd111aa214d0d7c3edd558cb70b7ad1dc513cb693124d4d882949989ae925e41b725dd5ed1c08d0dc71623bd9b2f59d46dbcefa09da8f09034ef37a480b33122ff8de58b7f2131cd82f556bae783b7b9c78cddbb9eb0bf71ab3c40bd9943fa665ef03a0f641a4b6ae619f8a99ed84c359d2c9ca37a64c8e4ae22bdbb3f693e749cf6e5d4c8d4644cbb2b11710659a2b1b543343e79ed934f0749b588bb4d87b68148edc0f57603dbc9d2aafc672b4093d87aae76e573a81b7c5a300b55185c93d48e5abd3229b17fd8b7c9310b79ae44ce791132041d90b1d6fd372c54f246735f6f34b2c615f5a0af8179f83969752d5fe7655a2014d277dcd9d0d30202ccbee8948486fa6157a617d9bf3938231cb5536db3d57f80f6d7589706e8a57176dd38a5522316365ff9d867a5dc51d02b4371b2028d6988843810dede538666cc361749a47062bb9601bad232cacc982a41825f5a6928540502ce5762fced0a57324d2884552519832685c36ee9f1a2a2164e1bc351030d019c58aa99cc21859e39a1ebf9baa977afd100e1622207171b2a9d8f462d41dbfe70767e8ba96cfe29b4dc3a0b8734fea068f4d5155e581e1be53762eae52be586e5f27b417c149d8109c6bcc3a40fd5e05529468f832ae02cafe43db86209542063934ac22e628c2da2271a28fa8226f7fe67ddd97ac685d5f06bc8b68a234f5552209316a59ef0b5e5c7fc436fd4166bcd7642fa2c74349f1095aaee46c0ffab1b62fd46cb10f4a23c6e081aec4fcfc6281d1cfa807c1510772a8c687f298cac242131598700bd7b0ee3e9b85a39798f792513e25d2551b28df2152b1ba71de0d624d757c0b576c8c3ef45229fdb3b4f2757d0b9adb8100dbbb4ee3f0480dace9935964960784512c35ac562a57d3e8d9a79fb87577d79a7673abeac20fcecfed61a16364e9152df75ec107e5267aad13a533c5543bcb50afb4a2e7a59657bf8f39c00267248c6ba436ccf8190e0a6a46faf392a59bdebbeddade6b29501ae455a83fc21b4e4c92894a4a97046315a8ca1539d0e81c74449772b8d5cbe1aae6c7197b130fcaf82b3d15a47555ca3ef1338080e09a324e8352f8bcb7ebbf6a3f5a2a0c85a32ef1ae260575037b97c8dc19c963424a71afe0a6f974a2274ddb4695465e8a83eedb93daa636d1f47045b1d35c5b96675f2af4e9e15af4fd119094eeeafba2008f1854d17454614ed8582af6c5d42d8f5f4228b23cea50ebaf1cb2fda46e6cd7943a99910c7821e93452affa7257a8010678048688ad26617ac22917ff213b4772a4baafbafc945218d79964fe60668ac95f00ed410de5fd09335fe457be9dfebf0940641c6c59280a59afbcd689198b2c49b64cf2a7201cdee2dfd94a81255bedbab374bd41c0c96d5b3b68773c1160b3da8d2c19e3655f7053117d442331ed634b8c580a176bc4c65ed50e7cf3eec9d4840e01235d162341f6ad26d11f7431d42e53647f47ca88b9c6f505443b122522c8b172bb7ec306d8500b9c8dd03cb7a4f58140a97d5da39c4623e3699c2be1133b0fe72ec2ec88b801a514b6e02bed4a139e630502a5a3f23eda3f49718cac1a3d81e509c40317456e0245f8c9a241581b13521e8232e86013905f8065c4d4cc52afd2e8ec973124f7bb96dfe73062437e88844276760f5a86defa9ad355099e1cf25728b72974bb51398db8d366be90b056703d49ff8735fb2e66f564cda903fee1e865be3a409cecf4a12018b5c4c45305ac5b972fcea6d3074b2c748f31926b06ed0c6c3a233e4d8567b2219e0352c93eaf39c8976411b0e20dac9d3a31ce03d9fba94ba9ab13d56447db789ff8c09539ef3468b6d60b175724f2492f381b3bc39aa8c72936b21709d7f8a82c139249bff2e7f21ea2f778cf37aa02fea30e855c20a77909548da4ee7eb61ad2f24c591940c0ef3f495b47c2ac105529112c632c4411dbfa833af19ad2805b25036345de5f6bda8937db26ca08d1aa2ee0d9778c6b746a5d511e7f9749e3e382d55b8287a5252e9cfccb785db47a8c80c0aa15251d4baea23cbcb15c6b5d3e7cc6a9b1adc89965db16b0cee6555776bf0f22ee6ec0040379b49a3962ad58e69375e235a920451ad4042f9d0c6214f34a4ab845c1fa3a2344373b7a32966356376179911242a4b808539c5538411f8cb2f1febdd7225a68825314e654ad091808f7f45661b624b7f8639ba9e298f39d79934ad916eee15db496cb104157b6a658c7d6e82fd161b524d281eda3d02dc01ead4119f9a66b6d7b50a29a712d088bd74f85d8c55ad81a0e2f03a2e46d2a7f02be65e2f7ef6532273f5fc76ca35b22e50da5bada88f46114b7756c3ce66634c6452dd6ba304b2648b13729ac413b260270aae0d8023324e92a7bac15c28d8bf9b00d67990fa9c46034ed53b88d34efd01709ed364d30cffbf66ad4f797fcdefdad89081cd3ed96fe58d6b809fdb4faae7f47528dd079eccd89e7895abd30b8428c155ace33a318939b87e9290957c11df7e79337225ae5be73664bc7d8d5b278ea66b2159546c3905b65499e3679fdaf4f6f41dab960557f316b7ec74138380126c1b09b7f65129537135bc21bb7ead2b442c0d10c26b660526b94c1ace4b36bffcad8c8687aa012ad06b23d1f8e3308e506a2c2a11a730244eb405f6267df29a3e69d14d6f3d6893bb3df77b86940e2402f5a180ec835e5876ee3e9084df5bad1a97019415d307941af260a7cd59edf54317959ab9c598a986b020714e3b1aff797e43e4e3338638d5d385de35fc760af9163001e13685206642d320ee57d6984167c0c340278c84d5288fa72643506a0e3b993ccd9ecec4feec7e25cafb38815c9aa0bc9475c1820039a58b08f8231d68cef9d3e4c51b9e36f64a094cf1e7c1b05f0a5448e6cf393f4df01143e1992cf117774f8d7213b4f7a75e53da008c6027fe2615c2425bb17bad98c13fc7589e8f5d3c37326f5e102749e38bdeefcf67a8be1d866b5110f39aa2c4236471087b2cea70133a82a5bab022003abf8757dd1ae9172fabda930686729cc01ba952ccaf04396c0d7490b8787bdee7e590cdca67c53b99eba78ff22565491fca35de9800f4c2c8130cc614699ba41ab8d2d836769bb24b917eaac061c5f3c8dbde53e7070231b2b414f0d66acc7b5ba014212a2fb2a4cd07288c7720d8c144b46c59c1ac75afaf5852b50462548b33052050ad7a5438a8b36dde1f4ce8dc1abfa79a2fd79763496790bea83b7cfb294fbc0cc83fc79663ff1448c1cc3b6cd26257bb3870ae76074994b2c9dc8cf4c6e6b1fd826654e78652e77163881998f5074367e55f030f7166263a702dcc9d9032c6cce3d743539a13ac021068cc880a1534443d8cde57102610fea416831f119cc521f37bdc0126ac2ca2cd549b6599f4f2fa48df86766bf219a56d7ffba1d18a74a3bb38671ab2842ffaa434cd572a0b45320e4145930b3008d8d3507a4c57659dfb42f72bc5c6037db29cf0ab8546c4f594989861d6764aa63edf7149472b9606d190a1712beb91dd71bd707d187486c9c7edce236836a6bb8098cab0bbd58378ccae1c8173a89618df109d8b373dba8a7415c9d371d3ae0f450744f6d0dd96ba94a352a3c6867af6a59c5d1c0b28c600421973b918d3c8693632c565adcc3696d277291f4c0ca53f6b6a9979bcbd13f3da00b21d86c05e92fa2336437b2acad22e338b3c2cc280bbd8803aeb7184092be3d27046e321d7533ae280d9617dbc374fde5f438f30713295e826b85206106f0697947d567f9b729e75896f884f738dde808d7c9cdfe16b4aaa472888ca9189eb58060a076112b7cde63b4d1827579c8222fc2f7c56392f9ecc83853b58f23f391dae351f4fa4ec703d7dba388ed02be4ca96a4561ddf463958c41592399d5a98ec7446c6d1b9d72e803600100b4604ab83422353bd3d78c455f122b6f4f8a2b2cf40842370b942b0b95065c92621ed8052e8f39bbdb98de7ccf2f2cf116dde2ccdfa385fb30cf39eefb2328b67c9af0b41715d55a5bd4c49c4afcd041963d8b1ee8aaaa1231ab29f2b44ae7d57a712f357c3a9aafeb07e93450ffd7d934256e73bd82212464b495b74ee23c87d21dde19cc71fc14efaeb6c58fdc96307712176bbcce8daa7087e7bd298d79361a0da7c196506c320035b7d035e78defd5a0107774f4320cbb71ba74d2a13078c8dcf6dd586a8d7f932966e501b5315fe64bd4275477d0c3cc2e686ee8c1f4c854e855bd8104b2663f163e6471ca23191f71fcebf9edcc8818fa8c1bca74389d44dc4ef2bed38d7e5a88c +MD = c432bfd68fc8930c9bfc03eb71555eaf488d7c58a421018708dd3a58 diff --git a/test/nist_cavs/vectors/shabytesvectors/SHA224Monte.rsp b/test/nist_cavs/vectors/shabytesvectors/SHA224Monte.rsp new file mode 100644 index 0000000..62ded96 --- /dev/null +++ b/test/nist_cavs/vectors/shabytesvectors/SHA224Monte.rsp @@ -0,0 +1,308 @@ +# CAVS 21.2 +# "SHA-224 Monte" information for "test1" +# SHA-224 tests are configured for BYTE oriented implementations +# Generated on Mon Jan 30 15:53:24 2017 + +[L = 28] + +Seed = 99f957f272b0acc5bfaf38c03078c88c9722671af04f7e399f5e4068 + +COUNT = 0 +MD = a97f4fb283d066320eb076b11b28160470709043c58e5edd607aa52e + +COUNT = 1 +MD = 80cdcc2662b5105556820603a2988b9cf8df974b9807380659e4ae37 + +COUNT = 2 +MD = 9a67e8195a12d7cb41e7b94d952f3d1f353fe1f1d76a1025948b33d3 + +COUNT = 3 +MD = be8318fdb5091863d7fa72c0f88b5e12a906440a7589fb3088798951 + +COUNT = 4 +MD = 964550797c331129c553a5993cd167a2e90e8bf2b9204639914072a2 + +COUNT = 5 +MD = 0a91352d4def364578f8dda504c98b3f8943e1cca75b071a177e1d32 + +COUNT = 6 +MD = 53bcac88418166b1f0c107b23d144e22a73164d1d8b86202d1e76a90 + +COUNT = 7 +MD = ac721adbc1c7ac5fb50b83065efab228528527f64b9cc78c0ed726f7 + +COUNT = 8 +MD = f34ce0608ac7e544c566271333f9e52da64022b3b2075932d9dbb42d + +COUNT = 9 +MD = 9773f3615785c86eb6f720190fe62ff7169591fb2dbc2e5e265ae542 + +COUNT = 10 +MD = a3913f3aee0ce95d85b7fdbd9f5252af98fef764385d270b77ec9cae + +COUNT = 11 +MD = 927f2f87a521e3f9e91680625b18bf5b377a3ad63fe6cd56e37ff157 + +COUNT = 12 +MD = 816c746b8086e83462665cfa9ea2bd26d982ffa4f6880fd788650a4e + +COUNT = 13 +MD = 6feca3ce49da9326895bf373f4b8ec42353fad65b4466e291f104706 + +COUNT = 14 +MD = 9b66bf2c091d81c8a9cb7d5866f1304a07d2f34350cb2a02ddaf9425 + +COUNT = 15 +MD = 87f3214e08a075b0533b310c5d6018a684cd6b72ceb9bf414224093a + +COUNT = 16 +MD = 8be8dcab9fb9ae469b6a88117a2915fed37741790b318e84973b5bb7 + +COUNT = 17 +MD = cc7d3e217a2d346dcfe112c0ac1e170c331c05232f52f9f41757058a + +COUNT = 18 +MD = a0849536e6120de1100a9d59b26417ec04476ebb4ba25746e2db1804 + +COUNT = 19 +MD = 38c54607c3eef43bf32fbe03adb4019b266890deb2fc9927e40102c0 + +COUNT = 20 +MD = fa1adb7e6a688a46ba6b1641bf4355741d9962aabc3161c45d548529 + +COUNT = 21 +MD = 63bb7fd11afe46ed8acfc9bc99daa7a8fec703596d88bedcfc89e60a + +COUNT = 22 +MD = 577df9b985af76c9d0ed4e6c107602051700f55d7d6b88c373d3741d + +COUNT = 23 +MD = 412cb56b628bc4ae14aa9830189814e480bb1bbabe414460247a39f9 + +COUNT = 24 +MD = 83eba232f2231f78a58e46d313c4c960d98016ae615496d4eb56ba86 + +COUNT = 25 +MD = 4810cbe71f525e787bc199018853e40ff5c8791117e908f57bc5cc1d + +COUNT = 26 +MD = 332abc2dd56fd3032c9f28a4f14963265aea53c40d335cea5d60656f + +COUNT = 27 +MD = fa15af39278844c95ca7d27e758602f526d4e05bb958871fcffff5c6 + +COUNT = 28 +MD = 6f8a51eb212d3604327ef0e70759ddfb721963eee7ab42b0c2e88275 + +COUNT = 29 +MD = 10a7247b91bfad89049dad9c94c58558bd3378ae63f3976bce8d17d9 + +COUNT = 30 +MD = dede68821125b589bdeedf15c64d61b7e39016450f65747ed1e5901f + +COUNT = 31 +MD = 24f294658419fa2e371938e4dfecc9ef89559431928f5662f584d8b3 + +COUNT = 32 +MD = 171e0b09c90d2a03e1697faf45e1f62b137044d1008310b903a2f141 + +COUNT = 33 +MD = 6ddcc81c7de5e1bb90fa2ddb29532f68ae6f35af73b6093b978fee59 + +COUNT = 34 +MD = 15be249004f9e7c13347c4f49077bba9cf9fce2583a2a7cbced299af + +COUNT = 35 +MD = 09de714c70718e8bc4dee4438566756a41af6dca33ee59aac0938d7d + +COUNT = 36 +MD = 7b9601889188bbeed0bf9bbb6ca66d439408f2db7745145b840a1125 + +COUNT = 37 +MD = 7ed55f460083c9c70c7fa230d2fb41c11c7f100a72ea7c06368b2dcb + +COUNT = 38 +MD = f6b0dafc7a31064962caeae60dd8ac3bda1d0284ac9e3d831aafb952 + +COUNT = 39 +MD = 8ae9fd2f41db2f99ab7bb4318513af22dbb86b251f942d23d467d968 + +COUNT = 40 +MD = e7a63d7128b3fa15bebcd6a4cc5a74e0d50a5e950ffb661fd65127db + +COUNT = 41 +MD = 0312780b4183d700262dad2eee9e099c56eb9875f9e1cb6fc4f919d1 + +COUNT = 42 +MD = cf081a6003002d95920d661c9ac737f7827364dd2abd52ca48cd03aa + +COUNT = 43 +MD = 1290819d3fc433f8bbaa0dc9829748c860e8f566bcb2e35602ae9c39 + +COUNT = 44 +MD = 9ff2444a4dadb2ae307ceb09de85e92643046b6edd5f1c5fde1882c5 + +COUNT = 45 +MD = 7e6230246696ab77b36c4d1ac16f70268e81315695d1f4b8dadb8114 + +COUNT = 46 +MD = 42dd26d4bb4712c0dec44f726a92c9c1e4d0b569aad9110f07b4c399 + +COUNT = 47 +MD = 0ef38f8603b380a152d0dc01bb174f575cf22f4bf463b5bbb332c5f6 + +COUNT = 48 +MD = 618d260810e963a2bcc375f521e004cfb10379969793519f036ecdbd + +COUNT = 49 +MD = f1ae076e7657fc445a279cdbd2c18b3e4687ce34551e6bf5e337321e + +COUNT = 50 +MD = 1ba0880dfc1960eee76c3e87a4973b67b5748012c9f3e1a756605e1f + +COUNT = 51 +MD = e0044bac954b4e58164ef2ed50cb9ac6c93b2e30c51cf12293d2fb38 + +COUNT = 52 +MD = c2b8bd56a651935455f69287559d020393be5c325b8207a552169a78 + +COUNT = 53 +MD = e04a4120378cc3f2e640880a98affda1efb6968956f50380852d3767 + +COUNT = 54 +MD = 23e36787285dabe9125ebd4eac7d8b2421ce9edb470129aefd90e840 + +COUNT = 55 +MD = 6926a28c64f363d4cd4557a42fa3ada789638e8bf83730dc1d9b9e6e + +COUNT = 56 +MD = bddc919a0e287a27628bbca93653a77c795eb122ba92e09b31fcefc1 + +COUNT = 57 +MD = 7cb987c91e4b019527a42961a307e968de3098bd45eff53151f40586 + +COUNT = 58 +MD = f844e618d0d07d0f7c172025e97e87d1383a78533dd3f9b4b1db3d97 + +COUNT = 59 +MD = bf3464d523e1fdebd7865bd806391214aea6198d2cce1e3fc0eabe06 + +COUNT = 60 +MD = 0f9e18db228d50e4e8d5ba8cc732fb16b74bfd770b782b0d03ec7f5e + +COUNT = 61 +MD = de916b3213c44f15ce9a938ecc338b22301c14565f8135a8dedb5ee9 + +COUNT = 62 +MD = 89e966949047704928aa2691cbb92c0a1e63bac15815531d10f131d8 + +COUNT = 63 +MD = b4e744472301b8d8d961a7d21786f125c6bb4a0d94ed51576c4bb0b7 + +COUNT = 64 +MD = 5098cc197896b4a5ad146cde88a6d17f0ed7f54a059046fa77f90646 + +COUNT = 65 +MD = 90d6e9cc23e098c168705093de8ff62b7492462d38330dc3c6f47553 + +COUNT = 66 +MD = ddb68b986dee2c2b7b10c05a71fe3fa37cf7d02cc7775e63cc6dbbb8 + +COUNT = 67 +MD = 7eea7f1177c9d812f8beac929494947cdfc7e2d5005b2c2285ca1ad3 + +COUNT = 68 +MD = c664e14d86be242b02b8fcf743ef981bd6b8751fea847e48df392a68 + +COUNT = 69 +MD = 16f28c22973cb8bb058a4d0315a1fbb4ab435d080983abc22b722384 + +COUNT = 70 +MD = 0b2d24239a013e585711f4beb55bdf0e5cbe03c9e0ec8e82c715b10c + +COUNT = 71 +MD = 66ef1ecc1c45c2223881b544e787d151c6113a02438566fd4ea71174 + +COUNT = 72 +MD = 2865724e230e6f47bb2c409669221111ad560076159052f3cb321422 + +COUNT = 73 +MD = 75eb1ba2db3f8f91a370db5af20e5d7e32be424c256ea2d3b80edd46 + +COUNT = 74 +MD = aae5cb2cd43b147e525cc0a9061939ebe71b4f3fc2731fda00d8187a + +COUNT = 75 +MD = 1b24e1960e033ceef5714f08d5105f96de8a887a8a86e4ad59a29434 + +COUNT = 76 +MD = a1ae4a3e61f98e765605d75ea8913be56ad30452047d42323aff633d + +COUNT = 77 +MD = 5528c79399f28c7864b6056963bb84dd9ed4a1cf8aec8ff40cae94fe + +COUNT = 78 +MD = c9f758d766673b6d4ce0755a07b53cc614e2c902c1983cc0ebea9445 + +COUNT = 79 +MD = 83e9b2071a139bb44e6a87d7812b1b74fa34c33e443462cd423ae56d + +COUNT = 80 +MD = 34d11327ecbe3b8e55f86987355a221248faa1b1a5f646b9f78d927f + +COUNT = 81 +MD = a3b4196991f64517c707013cbdd91ef5d175e94789f5fc0b37eb29d5 + +COUNT = 82 +MD = 1822c16ac79bc3dfc66fece539a7018be12750be546fcb6aebba187a + +COUNT = 83 +MD = 439ce528bc990905bdf64db90186b638977fd5833329f2f5f9970845 + +COUNT = 84 +MD = a9f6a57dc3feddf4efc4dfd44875c0850174a00d8874b73d2c401123 + +COUNT = 85 +MD = 82b9db90d8a3a2bf7b2a995ddbe74879b2231c080310459ca56b1c72 + +COUNT = 86 +MD = a5857c3a649acd2ac32d02d82c39ab8406be49f42280f1208e248b12 + +COUNT = 87 +MD = 90ee7fc3d8912f8a787dc15e4eb18b03bd4e65616139e1935684af5f + +COUNT = 88 +MD = 8830995c82ecf573b1f815ce45b60cce1ec7f28a93042a813ce6fc43 + +COUNT = 89 +MD = 388a1f2f762177fe67999c90d9d276297ace5ec5c922d519b99ea02b + +COUNT = 90 +MD = 2323df0af8cdd3369daa6a809f8f9058ced5d9213e203e7ab04b6507 + +COUNT = 91 +MD = 933ce0fc3b33bc49e8f97e02c407f6aacad4f7c43ccad49b95bfa088 + +COUNT = 92 +MD = ea6618249f0d3e3e410bd4a3762c35490813cbeca717c166144f688a + +COUNT = 93 +MD = 967147fb559558064f668f6a1d5992df6935d8704cac9f65d735819f + +COUNT = 94 +MD = 5ae36f430eb209e11aab24f50cdc8299f5d88186787165b10f0d6576 + +COUNT = 95 +MD = 0cf42cc644a82124d944b7116a2ee25fb27c3e68441cd315cc1348d9 + +COUNT = 96 +MD = 4c76a3db18aa876dd2a2dd9ce0bab4f56ddbaea74861eb983de02307 + +COUNT = 97 +MD = 4964c5f2a2e287b1c1c55b9f1831c44b779098d5b0d3ad681e18749b + +COUNT = 98 +MD = 8e2ac139e51ba817973e90fe0e21f7624678e4858411bce515cb914b + +COUNT = 99 +MD = 35bf53ae63fd979cc8cbbb05980d238edb05b0687158f600ed853ed4 diff --git a/test/nist_cavs/vectors/shabytesvectors/SHA224ShortMsg.rsp b/test/nist_cavs/vectors/shabytesvectors/SHA224ShortMsg.rsp new file mode 100644 index 0000000..57e9d97 --- /dev/null +++ b/test/nist_cavs/vectors/shabytesvectors/SHA224ShortMsg.rsp @@ -0,0 +1,266 @@ +# CAVS 21.2 +# "SHA-224 ShortMsg" information for "test1" +# SHA-224 tests are configured for BYTE oriented implementations +# Generated on Mon Jan 30 15:53:23 2017 + +[L = 28] + +Len = 0 +Msg = 00 +MD = d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f + +Len = 8 +Msg = cf +MD = 2e3033dd0424781376079c0b9fe6617ff1d3e25b56fd498b607b3879 + +Len = 16 +Msg = 6697 +MD = 5756525a52fc18f6e77b5280cc77d2300a9b69609167128b6332bd9c + +Len = 24 +Msg = 1e97aa +MD = 2b828763bc48b15c082a6ca2721381c994dcf68395ffe9e552adf163 + +Len = 32 +Msg = d0fe53a3 +MD = d8509746732620c19fce8d20f7bb01d315fcd637fb8582bc3a372e90 + +Len = 40 +Msg = efc31c8135 +MD = 1fb01b22e2c30a29a4fb8132f625a05f6fd0e0daf06e65f8c61e4216 + +Len = 48 +Msg = 9d30f13212f8 +MD = bfa5c9baf0898844d835ca4ec3f2aab2a6388c9f5a7f942795c9a633 + +Len = 56 +Msg = 91a9f9743122c5 +MD = caa3132102d0ebf7027dae57de63171efbc5b0ba54652d4705be2d87 + +Len = 64 +Msg = f00d69ee8578e870 +MD = 6fc0703d514db3be9a877123954738a20054825b52f045583d186bdd + +Len = 72 +Msg = 1a67e994aa16fc3a5f +MD = 7134a53c14d31bb5fc84f0fe0e3c098015ef2b6b923a2e9f97f655a4 + +Len = 80 +Msg = 6dac965650a50826a87e +MD = 556129051b904d23b0c3f35a31adff78d93ada5ec74fe4bf8cdf6b4b + +Len = 88 +Msg = eb1d67d9c6a3d1e30eda40 +MD = f8e0cb5da106999f462e23e3abbc0dee909cb3b261eb6eaf12a66ac3 + +Len = 96 +Msg = 338be90d9ee066627513e5da +MD = 3b279630902e7978357fad32b75c6161116fd2a122cec86bc9bcd560 + +Len = 104 +Msg = 97041de2d7dfff288498d7d613 +MD = 50ceb6594b4967aaddc686c5724cac7530953e18ef585064bfa62544 + +Len = 112 +Msg = 04b855816822929aee5dbec0b49b +MD = 0b4169bba31259dc8a08caf4a417b5113033fe4e9eb1ca84b5ed22b8 + +Len = 120 +Msg = fb3e9327e1c1ae2d0bcf1c5c57a2be +MD = b68cb87e1e57380f85c61fed322aec5d0ecb6a8fa14473a2ebd60cbc + +Len = 128 +Msg = cf0533260a9cd8380e20dbc3f21b2d3f +MD = 7bed252d6aa3bb5c4f65bf3769e84fcb4a73068fe3513a073d756e1b + +Len = 136 +Msg = 2235cb0bf61f1552ee0ffac183ebd8111b +MD = 94c51d252ef08454985c9cfe721d772d387463c266e043a44ab9432b + +Len = 144 +Msg = 35ef2be94b8332cfefd7b11fd4e884d850c1 +MD = 7461c57fde196c180820643eae3715ce1df770652a5f7fc85320deaa + +Len = 152 +Msg = 4d7f986d02b43a03098b37c8ca56ebb331e62d +MD = bbfba7004558ade0cfc3c9ec4f3d044b4b9bb3aa1c0424c60045077b + +Len = 160 +Msg = 7f2197152e9adf630fd4dab974ac7e862598fc86 +MD = 852c60d8475aaa4156f6d8ba142f325cbfeb965c89db3cc42166dfc8 + +Len = 168 +Msg = 4989b0f6a6feebb749a490446d17dabe401e86b896 +MD = f792e20526997b4b82916c74bacd8da59e56130dc0520d17d0e38489 + +Len = 176 +Msg = 557cd0edf6ab4c9bcdc94bd5b29e7f5df295be7c44d5 +MD = aef8862a8f463ac5dd38940f3598d5f21a95c096dd1cf69d6d5a1e16 + +Len = 184 +Msg = 0e9e3933d66c98f9172d08d34d7d845df5f31410f2fa4e +MD = a194bcb481ce31f555fd741a7872fcf87ea689b261ba73a101dbdf71 + +Len = 192 +Msg = 42158952b9ae0550ae4617cc64e43ba05fce32e0754cb1ba +MD = 600127a021b888132f46c74009a9e0f612134797928b880a8f4ebae9 + +Len = 200 +Msg = 27c81f191c73bd9fac9906d803c81af3e9b9a386e6df14c7aa +MD = 1448c7493456bcae8db0a392f3e2b70b1cabf9cfead06e2b9de40290 + +Len = 208 +Msg = 0705496f1707f3a71174d4d078db0d141fcdc09dd6edd34e4847 +MD = 32dc7eee8c928dcdd8b5b4c0645e6740ef6549178a0d47bd45778a63 + +Len = 216 +Msg = eaa1d61ad09d1dd631fea86339151932aa686aa274fa236987cdd0 +MD = 1afb655973114d716323dc062accfc5e1a76557b05c34fba6c84513b + +Len = 224 +Msg = 5b2e07b3778538b4f1d9370a39679808205146f9964e6d6fb89f97d8 +MD = 84fb3cb342ca13158375005155e97d8f3ec83487682596627cc2d056 + +Len = 232 +Msg = 20d2824ec28da90c2f8b1ab77144bbb030472e21bf2ff6915dd2dbb6b4 +MD = 12edcf6886de6180ef18af7128620acfa86ce4b688c72f44085a8499 + +Len = 240 +Msg = 0f2651ef6502640386ccb72ed5b0de88992382e2f60efc051d2e223bbfba +MD = 448f0a94895199caecd9ec4fe0cf7459e832d0f74fa55cb8a53eeab6 + +Len = 248 +Msg = a82fd814ed28d5a7d1dcd3977e9f6b6d66ebbd15d7a5aa3ecfa24302116a80 +MD = 53f28b8215070db923078501503bfef14b5aec37429a4debc0f553b0 + +Len = 256 +Msg = 50acaaaa30c098a240e661d92dacac6485f42062bfed848c7c42240e0c917796 +MD = 27a946257d8a285fdedd2add01f55015618c9bd3ed531e377a5c0025 + +Len = 264 +Msg = 41e6382f745cee09375c50022e10acc2b279d366bbbf1d7503c5ae166801f88092 +MD = 0181d5a84fcd4749474f41b58a02234f718e2ae385ebc91a9323ae01 + +Len = 272 +Msg = 22b25bcaec26c95fcbea92fd47bb96d35deedd9b749f2ad7930ad35ad039cf0b0ce0 +MD = e33796e7f869e1393625671d4cb43edf3fd374d10b4b854bab450d3c + +Len = 280 +Msg = a4437d7ab2ef3d31e87958f88de259809c05430a5ed5cacf3ee6c3a0da2fdaca560e83 +MD = 6f997535e390cb633c38654928dffa3327bc31726da0dc424f60fce7 + +Len = 288 +Msg = 57e20cde6605f56f0f37191627079df0a79ed3990a98bb9ff712ca372004eb2f6ad2c424 +MD = 052d480a2861a3ad5c8ac3fb3cc251f15ab73ac58f8e4947c11c7255 + +Len = 296 +Msg = bb6cae13d474def03a89067fb3eabd111d8f6883af5fa21382a3e27150bb571a7b0f17e151 +MD = 6aa7397105d9ed13d97611fad241e5801b617ed53957c4cf19761d41 + +Len = 304 +Msg = f5df8266872bd8f85284da072356d6fad5dcac816ae482785bd3b80e2be81e2642c565fdf92b +MD = 7e326af1b9d16ee1101ef4411b9a5f879b5424b838466a6efa7e525f + +Len = 312 +Msg = d28278322325102c2e57c27d462e1e0618b4d63d8e3bc625f4f0317e5ab34e383926032e5904f0 +MD = 9110c3a9806c3e19cb0d7097d1867d6e6c10c6d63231bfc90ed34e2b + +Len = 320 +Msg = 35e2b0b29c7f9ce4615eb8aa08c1ccf5cdc11f463a92a217f8086c77e65a66f4682748bd02b6c408 +MD = d33f7d26e49bb77cd6dca9742081a6ba2431521312ee2bf7c2eb99ee + +Len = 328 +Msg = 97d8ba12456684974bd8e87e972d776857b1dd9cc77f5baa4745784eb147f396e9a7fb47b6e3a27ed0 +MD = 145dd61cf38ee6fc9d9edcad17580bd664aca71f8eab5ec0779b4b1c + +Len = 336 +Msg = e850effdc09ec09905c89b3cb916b718d8e214f88dfd54c9a64ecd5a46bcdc60d94f7cbd4d911702803b +MD = 7ae0c93ceaf8785cebd62f9d71916c33a95b1e30c3028d0effcb1c01 + +Len = 344 +Msg = 51085e972cdde91b76c621db39ae1344837fd5a0c6f00f8b7f9fbaa6165f288f05d345103d3c1c96c58f9d +MD = 6e88b3c2eba790bef99de6e76c44621e68f7b06e69883cfdb86843b7 + +Len = 352 +Msg = c2ce6e3714421575fdda984f81583c49210ca2cead553ed25a660ab615467c6c161ab5dbb7a7fb8587136967 +MD = 08ee220b5536dee8d69530803a0843ac790a4f8cccbd3706aed6373d + +Len = 360 +Msg = 420322d20c2c556ed6382f242a1e1dbb82fa1a525203d1f649bd0670d4703260e5d86d90f21e918240079d4b61 +MD = 080173861fe11bbecad3be10f68284bc4f1f8e41e6491f239a1e468e + +Len = 368 +Msg = fa123538d737d47517cf41c9838f2fb1f6f9ead7bf2ede8847035968f45692654ca3e9e95ed270545d53aba98f6d +MD = 6b024895cf0ad45d4bc8be6c9091fc575945b5ab1417db0c7d66d1e8 + +Len = 376 +Msg = af53cce8eefbe1b9835f8f679617d975e7f02640b44244ecdd7eac9e460708eb7d43f2919df1ff6572bdfc8ddd1177 +MD = 829c45a8aa75f6c5fbe431737e911573aafabf2c7f294bd11b4bb3c4 + +Len = 384 +Msg = bf45a1323cd807e3c5aa8f9511e3cc6261102ccfb681cd5041ef920f1b6377e9365221b9940dbadab659fbe758598ac5 +MD = 9ea200d878fa3ea3ac590f48205f8f8f33e034ad82268c29281d990c + +Len = 392 +Msg = 3f036c7f0efc90271912eb86f4d9cf6eba514c88fe0db99804959102310a818ec108be68b8d09c6b1ba75d9e5f7946ff22 +MD = efbfd07a77faabef3b5be5a3fda44e7a20f03d28e4d137bf733b3971 + +Len = 400 +Msg = deda20d39a57d75c2a5af0f018dcca7c63671bf010869250e17bbb08652f2281316fbbf16c54817791035e6770974be3765c +MD = 6ebfbf08010a05174aadd3ed72805ef3584c2719886b4ba06e40107c + +Len = 408 +Msg = c415c7702816797dd9c18572f0d384137842671b8acebb75b6d92caea57848abfdca8697858987208ade9be3817a8724ede286 +MD = 7df0f4ee4876a29d7b3f5f7ecb8e8b61a57f2cea128e567ee5079140 + +Len = 416 +Msg = 3b9c7c4755cea5ca0e13c3e6962f9b20e87b2f3d448ad707e00b934ddbf1a02c72d2498d768d00effd30ad67591946e4465ba0b8 +MD = d92d37f0da87a07bf0dd1569f205dc29100d70fe9be973398bf3754b + +Len = 424 +Msg = b6f93cbd0aa67b70e286dc853afa51f8ae797fa7327b155903955dfedee511396fb06f1b0c4a8f32a336f5c2f18f6352f5a6f06aa5 +MD = 9ec1310113be12652437a94848cb42225c37b8cd552bb7f40d815a5b + +Len = 432 +Msg = 25ff4fb99b0a2b6cef01a80c0bfb1204bb62bdae04f5f473b8133233473695e6d8be8f8498f0df23523ebf5f41c85fff222493d68c5a +MD = 71acb332e4886776a5474e56bd9bb56c26bc9cbad7fb5dedee802c59 + +Len = 440 +Msg = 4bedf9b3db9058fc0828714e7fbff61e2aa6c26f550d1b0110d134c5d495f6936914001f06b5ed2abb61d5f50c9116fbdfab54df988ebe +MD = ef4e9d83e703d99fa5c04fd048c82968164616654f5ab3e2db691107 + +Len = 448 +Msg = 0f14e96addd273c134f4db66f4e8a45b67e10787232af2ad31bb529f6e0a8eaf3223536730fb977a9d01d8f995f7a5caba0060571efa4283 +MD = e0192d4bc60210c76f4a6f8c068254f11cae923ac640336e84944628 + +Len = 456 +Msg = 8dae2a89a9817a80502503c32bf1d4f9cf6f59aa3605750270d4d0d296e073d800719240b7baa86a2db9caee2c5e34de0def294b2aabfa0a96 +MD = 9ac2ab0630082fcdee4ab248453da71a484bfb20b35bd5d8a3ca8734 + +Len = 464 +Msg = aacff206c3504d9960b99386965d18e6ef2b5f3ab2e08347657bd52491f1c791c523098add0df11c84402078f89263460e14d73b754451ee3e84 +MD = 59e3b0df356f12db7b11864612970fa8cc45de51b01ddffceb6665b3 + +Len = 472 +Msg = 1d41dca85e1fa36ef6d2553a318b2cecb95acd24fffcccb5dcf4735679ddbf9b6cfeac24231fb215869b90c5d8b748bbde326bd6441d96cb3ced3d +MD = a349921bb05067527a81f8ff7246d90102dd4536ee560e1ee15dd634 + +Len = 480 +Msg = d36d1e7e3bdb24bbd35fee9ea8a8feef715fe64b63b0b7c94d07bddee017697e4e218f841873d254202f5cbf064dd227b1e386e32ca4efe4b4a75799 +MD = a5b7765377f21bad7a40ddfe7a568e3ce8ea48a53f8ba0998339b558 + +Len = 488 +Msg = e948155b349ac88d043edf78ead2983b21f129fbc49e9c6f3fe6dda204c112f47f3a2a624bcfb908a61b03e422b256dd9e4d9e0475273319f5a6f55113 +MD = 396fd0383ebfdd36cb941a5832d08e16a8d06d626c9befca10584465 + +Len = 496 +Msg = d4d2663595c04fa11918d989154dff07057ac03472977cf970f3a2226cde88b424a69a81f7c6b7f95f59d843bcd5f38d53f51fa096f7f8b7a608459116fd +MD = aed16437f01ea474cdf614b19380f4532726293a96df96a7f5ba7b77 + +Len = 504 +Msg = dc8a32d028bc98e74098dae449bde97b76a232f92d2adb7c65784a645304e80545ee249ece93ba8f235f35c6c5e2b27b6025e81df33e658c32221a8829bb1a +MD = 430f4b863f9dd7cdcad80c90e520f57360d2821881a8d41d5d091577 + +Len = 512 +Msg = 2f7525c44940b3820e30671e5452633ff4ade735cd30748c0be931e1a9788df534c22600d2eaea48847d7bf1a8ecd817c2403b1a7b093d39ea974063136d0e49 +MD = ee36e4d503aa9a6aa1adc45563bbb7a75204779e79592aea764ca7f5 diff --git a/test/nvcc_jamfile b/test/nvcc_jamfile index 6cdcf50..442f258 100644 --- a/test/nvcc_jamfile +++ b/test/nvcc_jamfile @@ -11,4 +11,5 @@ project : requirements run test_md5_nvcc.cu ; run test_sha1_nvcc.cu ; +run test_sha224_nvcc.cu ; run test_sha256_nvcc.cu ; diff --git a/test/nvrtc_jamfile b/test/nvrtc_jamfile index 0f9ea02..06474f9 100644 --- a/test/nvrtc_jamfile +++ b/test/nvrtc_jamfile @@ -11,4 +11,5 @@ project : requirements run test_md5_nvrtc.cpp ; run test_sha1_nvrtc.cpp ; +run test_sha224_nvrtc.cpp ; run test_sha256_nvrtc.cpp ; diff --git a/test/test_nist_cavs_sha224_monte.cpp b/test/test_nist_cavs_sha224_monte.cpp new file mode 100644 index 0000000..98cfc2c --- /dev/null +++ b/test/test_nist_cavs_sha224_monte.cpp @@ -0,0 +1,33 @@ +// Copyright 2024 Matt Borland +// Copyright 2024 Christopher Kormanyos +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include + +#include "test_nist_cavs_detail.hpp" + +auto main() -> int +{ + bool result_is_ok { true }; + + { + nist::cavs::test_vector_container_type my_test_vectors_monte { }; + + std::vector + seed_init + ( + { + 0x99, 0xf9, 0x57, 0xf2, 0x72, 0xb0, 0xac, 0xc5, 0xbf, 0xaf, 0x38, 0xc0, 0x30, 0x78, 0xc8, 0x8c, 0x97, 0x22, 0x67, 0x1a, 0xf0, 0x4f, 0x7e, 0x39, 0x9f, 0x5e, 0x40, 0x68 + } + ); + + static_cast(nist::cavs::parse_file_monte("SHA224Monte.rsp", my_test_vectors_monte)); + + result_is_ok = (nist::cavs::test_vectors_monte(my_test_vectors_monte, seed_init) && result_is_ok); + + BOOST_TEST(result_is_ok); + } + + return boost::report_errors(); +} diff --git a/test/test_nist_cavs_sha224_short_long.cpp b/test/test_nist_cavs_sha224_short_long.cpp new file mode 100644 index 0000000..11e8529 --- /dev/null +++ b/test/test_nist_cavs_sha224_short_long.cpp @@ -0,0 +1,36 @@ +// Copyright 2024 Matt Borland +// Copyright 2024 Christopher Kormanyos +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include + +#include "test_nist_cavs_detail.hpp" + +auto main() -> int +{ + bool result_is_ok { true }; + + { + nist::cavs::test_vector_container_type test_vectors_short { }; + + static_cast(nist::cavs::detail::parse_file_vectors("SHA224ShortMsg.rsp", test_vectors_short)); + + result_is_ok = (nist::cavs::test_vectors_oneshot(test_vectors_short) && result_is_ok); + + BOOST_TEST(result_is_ok); + } + + + { + nist::cavs::test_vector_container_type test_vectors_long { }; + + static_cast(nist::cavs::detail::parse_file_vectors("SHA224LongMsg.rsp", test_vectors_long)); + + result_is_ok = (nist::cavs::test_vectors_oneshot(test_vectors_long) && result_is_ok); + + BOOST_TEST(result_is_ok); + } + + return boost::report_errors(); +} diff --git a/test/test_sha224.cpp b/test/test_sha224.cpp new file mode 100644 index 0000000..bc43698 --- /dev/null +++ b/test/test_sha224.cpp @@ -0,0 +1,352 @@ +// Copyright 2024 Matt Borland +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt + +#include +#include +#include "generate_random_strings.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +constexpr std::array, 4> test_values = +{ + std::make_tuple("a", + boost::crypt::sha224_hasher::return_type{0xab, 0xd3, 0x75, 0x34, 0xc7, 0xd9, 0xa2, 0xef, 0xb9, 0x46, 0x5d, 0xe9, 0x31, 0xcd, 0x70, 0x55, 0xff, 0xdb, 0x88, 0x79, 0x56, 0x3a, 0xe9, 0x80, 0x78, 0xd6, 0xd6, 0xd5}), + std::make_tuple("The quick brown fox jumps over the lazy dog", + boost::crypt::sha224_hasher::return_type{0x73, 0x0e, 0x10, 0x9b, 0xd7, 0xa8, 0xa3, 0x2b, 0x1c, 0xb9, 0xd9, 0xa0, 0x9a, 0xa2, 0x32, 0x5d, 0x24, 0x30, 0x58, 0x7d, 0xdb, 0xc0, 0xc3, 0x8b, 0xad, 0x91, 0x15, 0x25}), + std::make_tuple("The quick brown fox jumps over the lazy dog.", + boost::crypt::sha224_hasher::return_type{0x61, 0x9c, 0xba, 0x8e, 0x8e, 0x05, 0x82, 0x6e, 0x9b, 0x8c, 0x51, 0x9c, 0x0a, 0x5c, 0x68, 0xf4, 0xfb, 0x65, 0x3e, 0x8a, 0x3d, 0x8a, 0xa0, 0x4b, 0xb2, 0xc8, 0xcd, 0x4c}), + std::make_tuple("", + boost::crypt::sha224_hasher::return_type {0xd1, 0x4a, 0x02, 0x8c, 0x2a, 0x3a, 0x2b, 0xc9, 0x47, 0x61, 0x02, 0xbb, 0x28, 0x82, 0x34, 0xc4, 0x15, 0xa2, 0xb0, 0x1f, 0x82, 0x8e, 0xa6, 0x2a, 0xc5, 0xb3, 0xe4, 0x2f}) +}; + +void basic_tests() +{ + for (const auto& test_value : test_values) + { + const auto message_result {boost::crypt::sha224(std::get<0>(test_value))}; + const auto valid_result {std::get<1>(test_value)}; + for (std::size_t i {}; i < message_result.size(); ++i) + { + if (!BOOST_TEST_EQ(message_result[i], valid_result[i])) + { + // LCOV_EXCL_START + std::cerr << "Failure with: " << std::get<0>(test_value) << '\n'; + break; + // LCOV_EXCL_STOP + } + } + } +} + +void string_test() +{ + for (const auto& test_value : test_values) + { + const std::string string_message {std::get<0>(test_value)}; + const auto message_result {boost::crypt::sha224(string_message)}; + const auto valid_result {std::get<1>(test_value)}; + for (std::size_t i {}; i < message_result.size(); ++i) + { + if (!BOOST_TEST_EQ(message_result[i], valid_result[i])) + { + // LCOV_EXCL_START + std::cerr << "Failure with: " << std::get<0>(test_value) << '\n'; + break; + // LCOV_EXCL_STOP + } + } + } +} + +void string_view_test() +{ + #ifdef BOOST_CRYPT_HAS_STRING_VIEW + for (const auto& test_value : test_values) + { + const std::string string_message {std::get<0>(test_value)}; + const std::string_view string_view_message {string_message}; + const auto message_result {boost::crypt::sha224(string_view_message)}; + const auto valid_result {std::get<1>(test_value)}; + for (std::size_t i {}; i < message_result.size(); ++i) + { + if (!BOOST_TEST_EQ(message_result[i], valid_result[i])) + { + // LCOV_EXCL_START + std::cerr << "Failure with: " << std::get<0>(test_value) << '\n'; + break; + // LCOV_EXCL_STOP + } + } + } + #endif +} + +void bad_input() +{ + const auto null_message {boost::crypt::sha224(static_cast(nullptr))}; + BOOST_TEST_EQ(null_message[0], 0x0); + BOOST_TEST_EQ(null_message[1], 0x0); + BOOST_TEST_EQ(null_message[2], 0x0); + BOOST_TEST_EQ(null_message[3], 0x0); + + const auto null_message_len {boost::crypt::sha224(static_cast(nullptr), 100)}; + BOOST_TEST_EQ(null_message_len[0], 0x0); + BOOST_TEST_EQ(null_message_len[1], 0x0); + BOOST_TEST_EQ(null_message_len[2], 0x0); + BOOST_TEST_EQ(null_message_len[3], 0x0); + + const auto unsigned_null_message {boost::crypt::sha224(static_cast(nullptr))}; + BOOST_TEST_EQ(unsigned_null_message[0], 0x0); + BOOST_TEST_EQ(unsigned_null_message[1], 0x0); + BOOST_TEST_EQ(unsigned_null_message[2], 0x0); + BOOST_TEST_EQ(unsigned_null_message[3], 0x0); + + const auto unsigned_null_message_len {boost::crypt::sha224(static_cast(nullptr), 100)}; + BOOST_TEST_EQ(unsigned_null_message_len[0], 0x0); + BOOST_TEST_EQ(unsigned_null_message_len[1], 0x0); + BOOST_TEST_EQ(unsigned_null_message_len[2], 0x0); + BOOST_TEST_EQ(unsigned_null_message_len[3], 0x0); + + std::string test_str {"Test string"}; + const auto reveresed_input {boost::crypt::detail::sha224(test_str.end(), test_str.begin())}; + BOOST_TEST_EQ(reveresed_input[0], 0x0); + BOOST_TEST_EQ(reveresed_input[1], 0x0); + BOOST_TEST_EQ(reveresed_input[2], 0x0); + BOOST_TEST_EQ(reveresed_input[3], 0x0); +} + +void test_class() +{ + boost::crypt::sha224_hasher hasher; + + for (const auto& test_value : test_values) + { + const auto msg {std::get<0>(test_value)}; + hasher.process_bytes(msg, std::strlen(msg)); + const auto message_result {hasher.get_digest()}; + + const auto valid_result {std::get<1>(test_value)}; + for (std::size_t i {}; i < message_result.size(); ++i) + { + if (!BOOST_TEST_EQ(message_result[i], valid_result[i])) + { + // LCOV_EXCL_START + std::cerr << "Failure with: " << std::get<0>(test_value) << '\n'; + break; + // LCOV_EXCL_STOP + } + } + + hasher.init(); + } +} + +template +void test_file(T filename, const boost::crypt::sha224_hasher::return_type& res) +{ + const auto crypt_res {boost::crypt::sha224_file(filename)}; + + for (std::size_t j {}; j < crypt_res.size(); ++j) + { + if (!BOOST_TEST_EQ(res[j], crypt_res[j])) + { + // LCOV_EXCL_START + std::cerr << "Failure with file: " << filename << std::endl; + break; + // LCOV_EXCL_STOP + } + } +} + +template +void test_invalid_file(T filename) +{ + constexpr boost::crypt::sha224_hasher::return_type res{}; + + const auto crypt_res {boost::crypt::sha224_file(filename)}; + + for (std::size_t j {}; j < crypt_res.size(); ++j) + { + if (!BOOST_TEST_EQ(res[j], crypt_res[j])) + { + // LCOV_EXCL_START + std::cerr << "Failure with file: " << filename << std::endl; + break; + // LCOV_EXCL_STOP + } + } +} + +void files_test() +{ + // Based off where we are testing from (test vs boost_root) we need to adjust our filepath + const char* filename; + const char* filename_2; + + // Boost-root + std::ifstream fd("libs/crypt/test/test_file_1.txt", std::ios::binary | std::ios::in); + filename = "libs/crypt/test/test_file_1.txt"; + filename_2 = "libs/crypt/test/test_file_2.txt"; + + // LCOV_EXCL_START + if (!fd.is_open()) + { + // Local test directory or IDE + std::ifstream fd2("test_file_1.txt", std::ios::binary | std::ios::in); + filename = "test_file_1.txt"; + filename_2 = "test_file_2.txt"; + + if (!fd2.is_open()) + { + // test/cover + std::ifstream fd3("../test_file_1.txt", std::ios::binary | std::ios::in); + filename = "../test_file_1.txt"; + filename_2 = "../test_file_2.txt"; + + if (!fd3.is_open()) + { + std::cerr << "Test not run due to file system issues" << std::endl; + return; + } + else + { + fd3.close(); + } + } + else + { + fd2.close(); + } + } + else + { + fd.close(); + } + // LCOV_EXCL_STOP + + // On macOS 15 + // sha224 test_file_1.txt + // sha224 (test_file_1.txt) = e88799b0d0d5becc6791837fa95388d4056f1250a511d14829766663 + constexpr boost::crypt::sha224_hasher::return_type res{0xe8, 0x87, 0x99, 0xb0, 0xd0, 0xd5, 0xbe, 0xcc, 0x67, 0x91, 0x83, 0x7f, 0xa9, 0x53, 0x88, 0xd4, 0x05, 0x6f, 0x12, 0x50, 0xa5, 0x11, 0xd1, 0x48, 0x29, 0x76, 0x66, 0x63}; + + test_file(filename, res); + + const std::string str_filename {filename}; + test_file(str_filename, res); + + #ifdef BOOST_CRYPT_HAS_STRING_VIEW + const std::string_view str_view_filename {str_filename}; + test_file(str_view_filename, res); + #endif + + const auto invalid_filename = "broken.bin"; + test_invalid_file(invalid_filename); + + const std::string str_invalid_filename {invalid_filename}; + test_invalid_file(str_invalid_filename); + + #ifdef BOOST_CRYPT_HAS_STRING_VIEW + const std::string_view str_view_invalid_filename {str_invalid_filename}; + test_invalid_file(str_view_invalid_filename); + #endif + + // On macOS 15 + // sha224 test_file_2.txt + // sha224 (test_file_2.txt) = c58605901d0923feb172e964ca6722378063574d18ff3efa7881bd91 + constexpr boost::crypt::sha224_hasher::return_type res_2{0xc5, 0x86, 0x05, 0x90, 0x1d, 0x09, 0x23, 0xfe, 0xb1, 0x72, 0xe9, 0x64, 0xca, 0x67, 0x22, 0x37, 0x80, 0x63, 0x57, 0x4d, 0x18, 0xff, 0x3e, 0xfa, 0x78, 0x81, 0xbd, 0x91}; + + test_file(filename_2, res_2); + + const char* test_null_file = nullptr; + test_invalid_file(test_null_file); +} + +void test_invalid_state() +{ + boost::crypt::sha224_hasher hasher; + auto current_state = hasher.process_bytes("test", 4); + BOOST_TEST(current_state == boost::crypt::hasher_state::success); + + hasher.get_digest(); + + const auto bad_state = hasher.process_bytes("test", 4); + BOOST_TEST(bad_state == boost::crypt::hasher_state::state_error); + + const auto digest = hasher.get_digest(); + + for (const auto& val : digest) + { + BOOST_TEST_EQ(val, static_cast(0)); + } + + hasher.init(); + + current_state = hasher.process_bytes("test", 4); + BOOST_TEST(current_state == boost::crypt::hasher_state::success); + current_state = hasher.process_byte(0x03); + BOOST_TEST(current_state == boost::crypt::hasher_state::success); + const char* ptr = nullptr; + current_state = hasher.process_bytes(ptr, 4); + BOOST_TEST(current_state == boost::crypt::hasher_state::null); + + const char16_t* ptr16 = nullptr; + current_state = hasher.process_bytes(ptr16, 4); + BOOST_TEST(current_state == boost::crypt::hasher_state::null); + + const char32_t* ptr32 = nullptr; + current_state = hasher.process_bytes(ptr32, 4); + BOOST_TEST(current_state == boost::crypt::hasher_state::null); + + const wchar_t* wptr = nullptr; + current_state = hasher.process_bytes(wptr, 4); + BOOST_TEST(current_state == boost::crypt::hasher_state::null); +} + +// This ends up being completely calculated in a constexpr fashion so Codecov complains +// LCOV_EXCL_START +void test_span() +{ + #ifdef BOOST_CRYPT_HAS_SPAN + + // "abc" in hex + const std::byte vals[] = {std::byte{0x61}, std::byte{0x62}, std::byte{0x63}}; + std::span byte_span {vals}; + const auto expected_res = boost::crypt::sha224_hasher::return_type{0x23, 0x09, 0x7d, 0x22, 0x34, 0x05, 0xd8, 0x22, 0x86, 0x42, 0xa4, 0x77, 0xbd, 0xa2, 0x55, 0xb3, 0x2a, 0xad, 0xbc, 0xe4, 0xbd, 0xa0, 0xb3, 0xf7, 0xe3, 0x6c, 0x9d, 0xa7}; + const auto res = boost::crypt::sha224(byte_span); + + for (std::size_t i {}; i < res.size(); ++i) + { + BOOST_TEST_EQ(res[i], expected_res[i]); + } + + #endif // BOOST_CRYPT_HAS_SPAN +} +// LCOV_EXCL_STOP + +int main() +{ + basic_tests(); + string_test(); + string_view_test(); + bad_input(); + test_class(); + + // The Windows file system returns a different result than on UNIX platforms + #if defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)) + files_test(); + #endif + + test_invalid_state(); + + test_span(); + + return boost::report_errors(); +} diff --git a/test/test_sha224_nvcc.cu b/test/test_sha224_nvcc.cu new file mode 100644 index 0000000..79a8a5d --- /dev/null +++ b/test/test_sha224_nvcc.cu @@ -0,0 +1,111 @@ +// Copyright Matt Borland 2024 +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +#include +#include "cuda_managed_ptr.hpp" +#include "stopwatch.hpp" +#include "generate_random_strings.hpp" +#include +#include +#include +#include + +#include + +using digest_type = boost::crypt::sha224_hasher::return_type; + +// The kernel function +__global__ void cuda_test(char** in, digest_type* out, int numElements) +{ + int i = blockIdx.x * blockDim.x + threadIdx.x; + + if (i < numElements) + { + out[i] = boost::crypt::sha224(in[i]); + } +} + +int main() +{ + try + { + // Error code to check return values for CUDA calls + cudaError_t err = cudaSuccess; + + // Print the vector length to be used, and compute its size + constexpr int numElements = 50000; + constexpr std::size_t elementSize = 64; + + std::cout << "[Vector operation on " << numElements << " elements]" << std::endl; + + // Allocate the managed input vector A + char** input_vector1; + cudaMallocManaged(&input_vector1, numElements * sizeof(char*)); + + // Allocate the managed output vector C + cuda_managed_ptr output_vector(numElements); + + for (int i = 0; i < numElements; ++i) + { + cudaMallocManaged(&input_vector1[i], elementSize * sizeof(char)); + if (input_vector1[i] == nullptr) + { + throw std::runtime_error("Failed to allocate memory for input_vector1"); + } + boost::crypt::generate_random_string(input_vector1[i], elementSize); + } + + // Launch the Vector Add CUDA Kernel + int threadsPerBlock = 256; + int blocksPerGrid =(numElements + threadsPerBlock - 1) / threadsPerBlock; + std::cout << "CUDA kernel launch with " << blocksPerGrid << " blocks of " << threadsPerBlock << " threads" << std::endl; + + watch w; + cuda_test<<>>(input_vector1, output_vector.get(), numElements); + cudaDeviceSynchronize(); + std::cout << "CUDA kernal done in " << w.elapsed() << "s" << std::endl; + + err = cudaGetLastError(); + if (err != cudaSuccess) + { + std::cerr << "Failed to launch vectorAdd kernel (error code " << cudaGetErrorString(err) << ")!" << std::endl; + return EXIT_FAILURE; + } + + // Verify that the result vector is correct + std::vector results; + results.reserve(numElements); + w.reset(); + for(int i = 0; i < numElements; ++i) + { + results.emplace_back(boost::crypt::sha224(input_vector1[i])); + } + double t = w.elapsed(); + + // check the results + for(int i = 0; i < numElements; ++i) + { + if (output_vector[i][0] != results[i][0]) + { + std::cerr << "Result verification failed at element " << i << "!" << std::endl; + return EXIT_FAILURE; + } + } + + std::cout << "Test PASSED with calculation time: " << t << "s" << std::endl; + std::cout << "Done\n"; + + // Cleanup all the memory we allocated + for (int i = 0; i < numElements; ++i) + { + cudaFree(input_vector1[i]); + } + cudaFree(input_vector1); + } + catch (const std::exception& e) + { + std::cerr << "Terminated with exception: " << e.what() << std::endl; + } +} diff --git a/test/test_sha224_nvrtc.cpp b/test/test_sha224_nvrtc.cpp new file mode 100644 index 0000000..ee61704 --- /dev/null +++ b/test/test_sha224_nvrtc.cpp @@ -0,0 +1,202 @@ +// Copyright Matt Borland 2024. +// Use, modification and distribution are subject to the +// Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// Must be included first + +#include +#include +#include + +#include +#include +#include +#include + +#include +#include "generate_random_strings.hpp" +#include "cuda_managed_ptr.hpp" +#include "stopwatch.hpp" + +using digest_type = boost::crypt::sha224_hasher::return_type; + +const char* cuda_kernel = R"( + +#include +using digest_type = boost::crypt::sha224_hasher::return_type; +extern "C" __global__ +void test_sha224_kernel(char** in, digest_type* out, int numElements) +{ + int i = blockIdx.x * blockDim.x + threadIdx.x; + + if (i < numElements) + { + out[i] = boost::crypt::sha224(in[i]); + } +} + +)"; + +void checkCUDAError(cudaError_t result, const char* msg) +{ + if (result != cudaSuccess) + { + std::cerr << msg << ": " << cudaGetErrorString(result) << std::endl; + exit(EXIT_FAILURE); + } +} + +void checkCUError(CUresult result, const char* msg) +{ + if (result != CUDA_SUCCESS) + { + const char* errorStr; + cuGetErrorString(result, &errorStr); + std::cerr << msg << ": " << errorStr << std::endl; + exit(EXIT_FAILURE); + } +} + +void checkNVRTCError(nvrtcResult result, const char* msg) +{ + if (result != NVRTC_SUCCESS) + { + std::cerr << msg << ": " << nvrtcGetErrorString(result) << std::endl; + exit(EXIT_FAILURE); + } +} + +int main() +{ + try + { + // Initialize CUDA driver API + checkCUError(cuInit(0), "Failed to initialize CUDA"); + + // Create CUDA context + CUcontext context; + CUdevice device; + checkCUError(cuDeviceGet(&device, 0), "Failed to get CUDA device"); + checkCUError(cuCtxCreate(&context, 0, device), "Failed to create CUDA context"); + + nvrtcProgram prog; + nvrtcResult res; + + res = nvrtcCreateProgram(&prog, cuda_kernel, "test_sha224_kernel.cu", 0, nullptr, nullptr); + checkNVRTCError(res, "Failed to create NVRTC program"); + + nvrtcAddNameExpression(prog, "test_sha224_kernel"); + + #ifdef BOOST_CRYPT_NVRTC_CI_RUN + const char* opts[] = {"--std=c++14", "--gpu-architecture=compute_75", "--include-path=/home/runner/work/crypt/boost-root/libs/crypt/include/", "-I/usr/local/cuda/include"}; + #else + const char* opts[] = {"--std=c++14", "--include-path=/home/mborland/Documents/boost/libs/crypt/include/", "-I/usr/local/cuda/include"}; + #endif + + // Compile the program + res = nvrtcCompileProgram(prog, sizeof(opts) / sizeof(const char*), opts); + if (res != NVRTC_SUCCESS) + { + size_t log_size; + nvrtcGetProgramLogSize(prog, &log_size); + char* log = new char[log_size]; + nvrtcGetProgramLog(prog, log); + std::cerr << "Compilation failed:\n" << log << std::endl; + delete[] log; + exit(EXIT_FAILURE); + } + + // Get PTX from the program + size_t ptx_size; + nvrtcGetPTXSize(prog, &ptx_size); + char* ptx = new char[ptx_size]; + nvrtcGetPTX(prog, ptx); + + // Load PTX into CUDA module + CUmodule module; + CUfunction kernel; + checkCUError(cuModuleLoadDataEx(&module, ptx, 0, 0, 0), "Failed to load module"); + checkCUError(cuModuleGetFunction(&kernel, module, "test_sha224_kernel"), "Failed to get kernel function"); + + // Allocate memory + int numElements = 50000; + int elementSize = 64; + + char** input_vector1; + cudaMallocManaged(&input_vector1, numElements * sizeof(char*)); + + for (int i = 0; i < numElements; ++i) + { + cudaMallocManaged(&input_vector1[i], elementSize * sizeof(char)); + if (input_vector1[i] == nullptr) + { + throw std::runtime_error("Failed to allocate memory for input_vector1"); + } + boost::crypt::generate_random_string(input_vector1[i], elementSize); + } + + digest_type* output_vector; + cudaMallocManaged(&output_vector, numElements * sizeof(digest_type)); + + int blockSize = 256; + int numBlocks = (numElements + blockSize - 1) / blockSize; + void* args[] = { &input_vector1, &output_vector, &numElements }; + + watch w; + checkCUError(cuLaunchKernel(kernel, numBlocks, 1, 1, blockSize, 1, 1, 0, 0, args, 0), "Kernel launch failed"); + checkCUDAError(cudaDeviceSynchronize(), "Kernel execution failed"); + + double t = w.elapsed(); + // Verify the result + int fail_counter = 0; + for (int i = 0; i < numElements; ++i) + { + auto res = boost::crypt::sha224(input_vector1[i]); + + for (int j = 0; j < res.size(); ++j) + { + if (res[j] != output_vector[i][j]) + { + std::cerr << std::hex << "Result verification failed at element " << i << "!\n" + << "Got: " << static_cast(output_vector[i][j]) << "\n" + << "Expected: " << static_cast(res[j]) << std::endl; + ++fail_counter; + if (fail_counter == 100) + { + break; + } + } + } + } + + if (fail_counter == 100) + { + return EXIT_FAILURE; + } + + std::cout << "Test PASSED with calculation time: " << t << "s" << std::endl; + std::cout << "Done\n"; + + // Cleanup all the memory we allocated + for (int i = 0; i < numElements; ++i) + { + cudaFree(input_vector1[i]); + } + cudaFree(input_vector1); + cudaFree(output_vector); + + nvrtcDestroyProgram(&prog); + delete[] ptx; + + cuCtxDestroy(context); + + std::cout << "Kernel executed successfully." << std::endl; + return 0; + } + catch(const std::exception& e) + { + std::cerr << "Stopped with exception: " << e.what() << std::endl; + return EXIT_FAILURE; + } +}