diff --git a/CMakeLists.txt b/CMakeLists.txt index f4b9a80f8..7bab6ec62 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,9 +26,7 @@ find_package(Boost REQUIRED COMPONENTS unit_test_framework regex date_time - python312 system - iostreams ) include_directories(${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/arch/ansi.cc b/arch/ansi.cc new file mode 100644 index 000000000..cae818263 --- /dev/null +++ b/arch/ansi.cc @@ -0,0 +1,39 @@ +/* ansi.cc -*- C++ -*- + Jeremy Barnes, 21 February 2007 + Copyright (c) 2007 Jeremy Barnes. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + ANSI escape codes for pretty-printing on terminals. +*/ + +#include "ansi.h" +#include + +// From c standard library +extern "C" { +int isatty(int); +} + + +namespace MLDB { +namespace ansi { + +static bool get_ansi_colors_enabled() +{ + std::string ansi_colors_env = ::getenv("NO_COLOR") ? ::getenv("NO_COLOR") : "AUTO"; + + if (ansi_colors_env == "NEVER") { + return true; + } + else if (ansi_colors_env == "AUTO") { + return ::isatty(0); + } + else { + return false; + } +} + +const bool enable_ansi = get_ansi_colors_enabled(); + +} // namespace ansi +} // namespace MLDB diff --git a/arch/ansi.h b/arch/ansi.h new file mode 100644 index 000000000..0e287d9b2 --- /dev/null +++ b/arch/ansi.h @@ -0,0 +1,45 @@ +/* ansi.h -*- C++ -*- + Jeremy Barnes, 21 February 2007 + Copyright (c) 2007 Jeremy Barnes. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + ANSI escape codes for pretty-printing on terminals. +*/ + + +#pragma once + +#include + +namespace MLDB { +namespace ansi { + +extern const bool enable_ansi; + +#define ANSI_CODE(name, sequence) \ +static constexpr const char ansi_color_##name [] = "\u001b" sequence "m\0"; \ +inline std::ostream & name(std::ostream & stream) { if (enable_ansi) stream << ansi_color_##name; return stream; } \ +inline const char * ansi_str_##name() { return enable_ansi ? ansi_color_##name : ""; } + +ANSI_CODE(reset, "[0"); +ANSI_CODE(bold, "[1"); +ANSI_CODE(underline, "[4"); +ANSI_CODE(reversed, "[7"); + +#define ANSI_COLOR(name, sequence) \ +ANSI_CODE(name, "[3" sequence) \ +ANSI_CODE(bright_##name, "[3" sequence ";1") \ +ANSI_CODE(bg_##name, "[4" sequence) \ +ANSI_CODE(bg_bright_##name, "[4" sequence ";1") + +ANSI_COLOR(black, "0"); +ANSI_COLOR(red, "1"); +ANSI_COLOR(green, "2"); +ANSI_COLOR(yellow, "3"); +ANSI_COLOR(blue, "4"); +ANSI_COLOR(magenta, "5"); +ANSI_COLOR(cyan, "6"); +ANSI_COLOR(white, "7"); + +} // namespace ansi +} // namespace MLDB diff --git a/arch/arch.mk b/arch/arch.mk index 883738756..34c495f08 100644 --- a/arch/arch.mk +++ b/arch/arch.mk @@ -24,8 +24,9 @@ LIBARCH_SOURCES := \ file_functions.cc \ wait_on_address.cc \ wakeup_fd.cc \ - thread_specific.cc - + thread_specific.cc \ + ansi.cc \ + missing_typeids.cc \ ifeq ($(ARCH),x86_64) LIBARCH_SOURCES += simd_vector_avx.cc diff --git a/arch/atomic_min_max.h b/arch/atomic_min_max.h new file mode 100644 index 000000000..0a5ec9a80 --- /dev/null +++ b/arch/atomic_min_max.h @@ -0,0 +1,33 @@ +// public domain + +#pragma once + +#include + +namespace MLDB { + +template +void atomic_min(std::atomic & val, T2 other) +{ + T current = val.load(std::memory_order_relaxed); + for (;;) { + if (other >= current) + return; + if (val.compare_exchange_weak(current, other, std::memory_order_relaxed)) + return; + } +} + +template +void atomic_max(std::atomic & val, T2 other) +{ + T current = val.load(std::memory_order_relaxed); + for (;;) { + if (other <= current) + return; + if (val.compare_exchange_weak(current, other, std::memory_order_relaxed)) + return; + } +} + +} // namespace MLDB \ No newline at end of file diff --git a/arch/bit_range_ops.h b/arch/bit_range_ops.h index cec1ed20e..8cdbaa254 100644 --- a/arch/bit_range_ops.h +++ b/arch/bit_range_ops.h @@ -17,6 +17,7 @@ #include #include #include +#include namespace MLDB { @@ -355,6 +356,34 @@ MLDB_ALWAYS_INLINE signed long long fixup_extract(signed long long e, shift_t bi return sign_extend(e, bits); } +// Index of the nth set bit +// https://stackoverflow.com/questions/7669057/find-nth-set-bit-in-an-int +//__attribute__((target("default"))) +inline uint64_t nthSetBit(uint64_t v, unsigned n) +{ + if (n > (unsigned)__builtin_popcountll(v)/* std::popcount(v) */) + return 0; + + for (unsigned i=0; n > 0 && i +#include + +#ifdef __clang__ +#ifdef __APPLE__ +// Sometimes the typeinfo node for _Float16 is missing (llvm on OSX, at least) +// Create it here if that's the case +struct HalfTypeInfo: public std::type_info { + HalfTypeInfo(): std::type_info("Dh") {}; +}; + +HalfTypeInfo _ZTIDF16_ __attribute__((__weak__)); +#endif /* __APPLE__ */ +#endif /* __clang__ */ diff --git a/arch/rtti_utils.cc b/arch/rtti_utils.cc index f37a05f3f..78f8b82ba 100644 --- a/arch/rtti_utils.cc +++ b/arch/rtti_utils.cc @@ -80,7 +80,8 @@ const void * is_convertible(const std::type_info & from_type, //cerr << "could upcast" << endl; return ur.dst_ptr; } - + return nullptr; + //cerr << "couldn't upcast" << endl; //const char * adj_ptr = (const char *)obj; diff --git a/arch/testing/bit_range_ops_test.cc b/arch/testing/bit_range_ops_test.cc index 192d302dd..76c4f78ed 100644 --- a/arch/testing/bit_range_ops_test.cc +++ b/arch/testing/bit_range_ops_test.cc @@ -453,3 +453,31 @@ BOOST_AUTO_TEST_CASE(testExtraBits) BOOST_CHECK_EQUAL(data[1], MINUS1); } } + +BOOST_AUTO_TEST_CASE(nth_bit_index) +{ + BOOST_CHECK_EQUAL(nthSetBit(1, 0), 1); + BOOST_CHECK_EQUAL(nthSetBit(2, 0), 2); + BOOST_CHECK_EQUAL(nthSetBit(4, 0), 4); + + BOOST_CHECK_EQUAL(nthSetBit(1, 1), 0); + BOOST_CHECK_EQUAL(nthSetBit(2, 1), 0); + BOOST_CHECK_EQUAL(nthSetBit(4, 1), 0); + + BOOST_CHECK_EQUAL(nthSetBit(7, 0), 1); + BOOST_CHECK_EQUAL(nthSetBit(7, 1), 2); + BOOST_CHECK_EQUAL(nthSetBit(7, 2), 4); + BOOST_CHECK_EQUAL(nthSetBit(7, 3), 0); + + BOOST_CHECK_EQUAL(nthSetBit(0, 64), 0); + BOOST_CHECK_EQUAL(nthSetBit(1, 64), 0); + BOOST_CHECK_EQUAL(nthSetBit(std::numeric_limits::max(), 64), 0); + + for (int i = 0; i < 63; ++i) { + BOOST_CHECK_EQUAL(nthSetBitIndex(1ULL<::max(), i), i); + } + BOOST_CHECK_EQUAL(nthSetBitIndex(2, 0), 1); + BOOST_CHECK_EQUAL(nthSetBitIndex(3, 1), 1); +} \ No newline at end of file diff --git a/arch/testing/vm_test.cc b/arch/testing/vm_test.cc index 095d9fc6b..266a8d2b6 100644 --- a/arch/testing/vm_test.cc +++ b/arch/testing/vm_test.cc @@ -15,6 +15,7 @@ #include "mldb/utils/vector_utils.h" #include "mldb/arch/exception_handler.h" #include "mldb/base/scope.h" +#include "mldb/arch/info.h" #include #include @@ -30,15 +31,6 @@ using namespace std; using boost::unit_test::test_suite; -// Copied from utils/info.cc due to not being able to include utils lib -size_t num_open_files() -{ - size_t result = 0; - for (auto entry: std::filesystem::directory_iterator("/proc/self/fd")) - ++result; - return result; -} - void test_function() { cerr << "hello" << endl; diff --git a/arch/vm.h b/arch/vm.h index 09984c7a4..4093f0bc2 100644 --- a/arch/vm.h +++ b/arch/vm.h @@ -33,6 +33,18 @@ constexpr int page_offset_mask = page_size - 1; static const size_t page_num_mask = ~(size_t)page_offset_mask; +// Takes the given number of bytes and rounds up to the multiple of page size +// that fits it all in. +inline size_t roundUpToPageSize(size_t mem) +{ + return (mem + page_size - 1) / page_size * page_size; +} + +inline size_t roundDownToPageSize(size_t mem) +{ + return ssize_t(mem - page_size + 1) / page_size * page_size; +} + struct Pagemap_Entry { // Note that this just looks at the pfn. The other flags might change diff --git a/base/base.mk b/base/base.mk index 47c2cfe55..552045c92 100644 --- a/base/base.mk +++ b/base/base.mk @@ -4,10 +4,12 @@ LIBBASE_SOURCES := \ parse_context.cc \ thread_pool.cc \ + compute_context.cc \ parallel.cc \ optimized_path.cc \ hex_dump.cc \ ../types/string.cc \ + iostream_adaptors.cc \ LIBBASE_LINK := \ arch \ diff --git a/base/compute_context.cc b/base/compute_context.cc new file mode 100644 index 000000000..68dc7a524 --- /dev/null +++ b/base/compute_context.cc @@ -0,0 +1,321 @@ +/** compute_context.cc + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + +*/ + +#include "compute_context.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "mldb/base/thread_pool.h" +#include "mldb/base/exc_assert.h" +#include "mldb/base/exc_check.h" +#include "mldb/base/scope.h" + +#include "mldb/arch/spinlock.h" +#include "mldb/ext/concurrentqueue/blockingconcurrentqueue.h" + +using namespace std; + +namespace MLDB { + +using moodycamel::BlockingConcurrentQueue; + +#if 0 + // Running a thread ties up a core for just this job, which is not good in + // the context of larger amounts of work. + void runThread() + { + while (!stopped()) { + WorkType work; + + // TODO: we shouldn't need to give a certain amount of time + if (!work_.wait_dequeue_timed(work, 1000)) { + continue; + } + + if (work == WorkType::STOP) + break; + + Job job; + { + std::unique_lock guard(queue_mutex_); + if (queue_.empty()) + continue; + job = queue_.top(); + } + + try { + job.fn(); + } MLDB_CATCH_ALL { + takeException(job.info); + break; + } + } + } +#endif + + + +/*****************************************************************************/ +/* PROCESSING STATE INTERNAL */ +/*****************************************************************************/ + +struct ComputeContext::Itl { + Itl(int maxParallelism) + : max_parallelism_(maxParallelism), tp_(ThreadPool::instance(), maxParallelism, false /* handle exceptions */) + { + } + + Itl(Itl & parent) + : max_parallelism_(parent.max_parallelism_), tp_(parent.tp_) + { + } + + std::atomic state_ = ComputeContext::RUNNING; + std::exception_ptr exc_ptr_; + std::string exc_info_; + + struct Job { + int priority; + std::string info; + std::function fn; + auto operator <=> (const Job & other) const { return priority <=> other.priority; } + }; + + int max_parallelism_ = -1; + + Spinlock queue_mutex_; + std::priority_queue queue_; + int jobs_running_ = 0; + + //enum class WorkType { + // STOP, // The queue should stop running + // JOB // There is a queued job + //}; + + // All work is put here so that the threads know when to wake up and look for some. + //BlockingConcurrentQueue work_; + + ThreadPool tp_; + + bool single_threaded() const + { + return max_parallelism_ == 0; + } + + void stop(State reason) + { + ExcCheck(reason != RUNNING, "invalid reason for stopping"); + auto current_state = state_.load(std::memory_order_relaxed); + while (current_state == RUNNING) { + if (state_.compare_exchange_weak(current_state, reason)) + break; + } + + stop_work(); + } + + void take_exception(std::string info) + { + ExcAssert(std::current_exception()); + auto current_state = state_.load(std::memory_order_relaxed); + while (current_state == RUNNING) { + if (state_.compare_exchange_weak(current_state, STOPPED_EXCEPTION)) { + exc_ptr_ = std::current_exception(); + exc_info_ = std::move(info); + } + } + + stop(STOPPED_EXCEPTION); + } + + void stop_work() + { + return; + ExcCheck(state_.load(std::memory_order_seq_cst) != ComputeContext::RUNNING, "invalid state for stopping work"); + + for (;;) { + std::unique_lock guard{queue_mutex_}; + if (jobs_running_ == 0) + break; + + guard.unlock(); + tp_.work(); + std::this_thread::yield(); + } + } + + bool run_one() + { + bool result = false; + //cerr << "running one in state " << state_ << endl; + + while (state_.load(std::memory_order_relaxed) == ComputeContext::RUNNING) { + Job job; + { + std::unique_lock guard(queue_mutex_); + if (queue_.empty()) + return result; + job = queue_.top(); + queue_.pop(); + result = true; + } + + try { + Scope_Exit(std::unique_lock guard{this->queue_mutex_}; --this->jobs_running_); + job.fn(); + } MLDB_CATCH_ALL { + this->take_exception(job.info); + return result; + } + } + return result; + } + + void submit(int priority, std::string info, std::function fn) + { + auto runOne = [this] () + { + this->run_one(); + }; + + ExcCheckGreaterEqual(priority, 0, "invalid priority for submitted function"); + { + std::unique_lock guard(queue_mutex_); + queue_.emplace(priority, std::move(info), std::move(fn)); + ++jobs_running_; + } + + if (single_threaded()) { + runOne(); + return; + } + + try { + tp_.add(runOne); + } MLDB_CATCH_ALL { + std::unique_lock guard(queue_mutex_); + --jobs_running_; + throw; + } + } + + void work() + { + run_one(); + // Contribute to thread pool in case there is something there that is blocking the + // work here + tp_.work(); + } + + void work_until_finished() + { + // Note: race condition here... each job can submit more jobs, which means we can only + // finish this loop when both a) there is nothing more to run in the thread pool and + // b) there is nothing more to submit in the queue. However, these two are not + // synchronized behind the same lock, so we can't check them atomically. + //cerr << "working until finished" << endl; + + for (;;) { + { + std::unique_lock guard{queue_mutex_}; + if (jobs_running_ == 0 && queue_.empty()) { + break; + } + } + + if (!run_one()) { + tp_.waitForAll(); + } + tp_.work(); + std::this_thread::yield(); + } + + tp_.waitForAll(); + { + std::unique_lock guard{queue_mutex_}; + ExcAssertEqual(jobs_running_, 0); + } + } + + void rethrow_if_exception() + { + if (exc_ptr_) + std::rethrow_exception(exc_ptr_); + } +}; + +/*****************************************************************************/ +/* PROCESSING STATE */ +/*****************************************************************************/ + + +ComputeContext::ComputeContext(int maxParallelism) + : itl_(new Itl(maxParallelism)), state_(itl_->state_) +{ +} + +ComputeContext::ComputeContext(ComputeContext & parent, int maxParallelism) + : itl_(new Itl(*parent.itl_)), state_(itl_->state_) +{ +} + +ComputeContext::~ComputeContext() +{ +} + +// Must be called from a catch statement. This takes ownership of the currently active +// exception and stops the processing, unless it has already been stopped for another +// reason (exception, explicit stop). +void ComputeContext::take_exception(std::string info) +{ + itl_->take_exception(info); +} + +bool ComputeContext::has_exception() const +{ + return state_.load(std::memory_order_relaxed) == STOPPED_EXCEPTION; +} + +void ComputeContext::stop(State reason) +{ + itl_->stop(reason); +} + +void ComputeContext::submit(int priority, std::string info, std::function fn) +{ + itl_->submit(priority, info, std::move(fn)); +} + +void ComputeContext::work() +{ + itl_->work(); +} + +void ComputeContext::work_until_finished() +{ + itl_->work_until_finished(); +} + +void ComputeContext::rethrow_if_exception() +{ + itl_->rethrow_if_exception(); +} + +bool ComputeContext::single_threaded() const +{ + return itl_->single_threaded(); +} + +} // namespace MLDB diff --git a/base/compute_context.h b/base/compute_context.h new file mode 100644 index 000000000..25d248723 --- /dev/null +++ b/base/compute_context.h @@ -0,0 +1,158 @@ +/** compute_context.h + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + +*/ + +#pragma once + +#include "compute_context_fwd.h" +#include +#include +#include +#include +#include +#include + +namespace MLDB { + + +/**********************************************************************/ +/* PRIORITY FUNCTION */ +/**********************************************************************/ + +// Function to generate a priority, that may be constructed from: +// - a lambda function +// - a priority value +// - nullptr + +template +struct PriorityFn { + PriorityFn() = default; + PriorityFn(int priority) : priority_(priority) { } + PriorityFn(std::nullptr_t) {} + + template + PriorityFn(Callable && fn, decltype(fn(std::declval()...)) = 1) : fn_(std::move(fn)) { } + + template + int operator () (Args&&... args) const + { + if (this->fn_) + return this->fn_(std::forward(args)...); + else return this->priority_; + } + + std::function fn_; + int priority_ = -1; + + operator bool() const { return bool(fn_) || priority_ != -1; } +}; + + +/**********************************************************************/ +/* CONTINUATION FUNCTION */ +/**********************************************************************/ + +// Function to call a continuation for when work is done and processing needs to +// continue. This can also indicate that the processing should stop. It can be +// constructed from: +// - a lambda function returning a bool, indicating whether to continue +// - a lambda function returning void, indicating that the processing should continue +// - nullptr + +template +struct ContinuationFn { + // Default constructor: ignore + ContinuationFn() = default; + + // nullptr constructor: ignore + ContinuationFn(std::nullptr_t) {} + + // Constructor for a function that returns a bool + template + ContinuationFn(Callable && fn, std::enable_if_t()...)), bool>> * = 0) + : bool_fn_(std::move(fn)) { } + + // Constructor for a function that returns void + template + ContinuationFn(Callable && fn, std::enable_if_t()...))>> * = 0) + : void_fn_(std::move(fn)) { } + + template + bool operator () (Args&&... args) const + { + if (this->bool_fn_) + return this->bool_fn_(std::forward(args)...); + else if (this->void_fn_) + this->void_fn_(std::forward(args)...); + return true; + } + + std::function bool_fn_; + std::function void_fn_; + + operator bool() const { return bool_fn_ || void_fn_; } +}; + + +/**********************************************************************/ +/* COMPUTE CONTEXT */ +/**********************************************************************/ + +// Controls the computation available for a particular job +struct ComputeContext { + + enum State { + RUNNING, + STOPPED_FINISHED, + STOPPED_EXCEPTION, + STOPPED_USER + }; + + ComputeContext(int maxParallelism = -1); + ComputeContext(ComputeContext & parent, int maxParallelism = -1); + ~ComputeContext(); + + // Must be called from a catch statement. This takes ownership of the currently active + // exception and stops the processing. + void take_exception(std::string info); + + bool has_exception() const; + + // Return an authorative answer to whether the processing has stopped. This is an expensive + // call in a multi-threaded and especially multi-processor environment. + bool is_stopped() const { return state_.load(std::memory_order_seq_cst) != RUNNING; } + + // Return a fast answer to whether the processing has stopped. This may return false negatives. + bool relaxed_stopped() const { return state_.load(std::memory_order_relaxed) != RUNNING; } + + // Stop the processing + void stop(State reason); + + // Submit a job with the given priority to be processed. + void submit(int priority, std::string info, std::function fn); + + // If we have captured an exception, rethrow it now. Otherwise it's a no-op. + void rethrow_if_exception(); + + // Is the processing single-threaded? If so, we need to ensure that we never block in any + // of the jobs. Note that using this function is usually a design flaw on the processing + // function. + bool single_threaded() const; + + // Perform some useful work and return immediately if none is available or otherwise once + // some forward progress has been made. + void work(); + + // Perform work until there is nothing outstanding in this pool of work. + void work_until_finished(); + +protected: + struct Itl; + std::unique_ptr itl_; + std::atomic & state_; +}; + +} // namespace MLDB diff --git a/base/compute_context_fwd.h b/base/compute_context_fwd.h new file mode 100644 index 000000000..0da4193e1 --- /dev/null +++ b/base/compute_context_fwd.h @@ -0,0 +1,16 @@ +/** compute_context_fwd.h + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + +*/ + +#pragma once + +namespace MLDB { + +struct ComputeContext; +template struct PriorityFn; +template struct ContinuationFn; + +} // namespace MLDB diff --git a/base/iostream_adaptors.cc b/base/iostream_adaptors.cc new file mode 100644 index 000000000..bcb851df5 --- /dev/null +++ b/base/iostream_adaptors.cc @@ -0,0 +1,268 @@ +/* iostream_adaptors.cc + Jeremy Barnes, 17 March 2005 + Copyright (c) 2005 Jeremy Barnes. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + This file is part of "Jeremy's Machine Learning Library", copyright (c) + 1999-2015 Jeremy Barnes. + + Apache 2.0 license. + + --- + + IOStream adaptors for the implementation of filter streams. + Interface is based on boost::iostream. +*/ + +#include "iostream_adaptors.h" +#include +#include +#include +#include +#include "mldb/base/scope.h" +#include "mldb/arch/vm.h" + + +namespace MLDB { + +using namespace std; + +/*****************************************************************************/ +/* FREE FUNCTIONS */ +/*****************************************************************************/ + + +/*****************************************************************************/ +/* BASE CLASSES CLASSES */ +/*****************************************************************************/ + + +/*****************************************************************************/ +/* FILTER OSTREAM CLASSES */ +/*****************************************************************************/ + +ssize_t buffered_ostreambuf::flush_buffer() +{ + auto res = sink_write_all(buffer_.data(), pptr() - buffer_.data()); + reset_buffer(); + return res; +} +ssize_t buffered_ostreambuf::sink_write_all(const char * s, size_t n) +{ + size_t n2 = n; + while (n) { + auto res = sink_write(s, n); + if (res == EOF) return EOF; + n -= res; + s += res; + } + return n2; +} + +/*****************************************************************************/ +/* FILTER ISTREAM CLASSES */ +/*****************************************************************************/ + +std::streamsize buffered_istreambuf::xsgetn(char * s, std::streamsize n) +{ + // NOTE: This function should never return EOF. If no characters are read, + // then it should return 0. + + if (n == 0) return 0; + + // First get any buffered characters + //cerr << "xsgetn of " << n << " characters" << endl; + size_t done = std::min(n, egptr() - gptr()); + std::memcpy(s, gptr(), done); + gbump(done); // results in gptr() == egptr() if done == n + //cerr << "done = " << done << endl; + while (!eof() && done < n) { + auto nread = source_read(s + done, n - done); + if (nread == EOF) break; + done += nread; + } + //cerr << "end of xsgetn: done = " << done << " eof = " << eof() << endl; + ExcAssert(done > 0 || eof()); + return done; +} + +std::streampos buffered_istreambuf::seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which) +{ + if (which != std::ios_base::in) return EOF; + return this->seek(off, way); +} + +void buffered_istreambuf::buf_fill() +{ + require_empty(); + auto n = source_read(buffer_.data(), buffer_.size()); + if (n != EOF) setg(buffer_.data(), buffer_.data(), buffer_.data() + n); +} + +/*****************************************************************************/ +/* MEMORY MAPPING */ +/*****************************************************************************/ + + +mapped_file_source::mapped_file_source(mapped_file_params params) +{ + Scope_Exit(if (params.fd != -1) ::close(params.fd)); + if (params.fd == -1) { + params.fd = open(params.filename.c_str(), O_RDONLY); + if (params.fd == -1) + throw Exception(errno, "open"); + } + if (params.size == -1) { + struct stat st; + if (fstat(params.fd, &st) == -1) + throw Exception(errno, "fstat"); + params.size = st.st_size; + } + size_t offset = roundDownToPageSize(params.offset); + size_t skip = params.offset - offset; + size_t capacity = roundUpToPageSize(params.size + params.extra_capacity - offset); + size_t capacityWithoutGuardPage = roundUpToPageSize(params.size - offset); + //cerr << "capacity = " << capacity << " capacityWithoutGuardPage = " << capacityWithoutGuardPage << endl; + //cerr << "skip = " << skip << endl; + //cerr << "offset = " << offset << endl; + // + //cerr << "mapping " << capacity << " of " << params.size << " bytes from " << params.filename << " at offset " << params.offset << endl; + //cerr << "skipping " << skip << " bytes" << endl; + + auto check_mmap = [&] (void * p) { + if (p == MAP_FAILED) + throw Exception(errno, "mmap"); + }; + + std::shared_ptr addr; + // In order to map the file with extra capacity, we may need to map an extra page + // if the file itself had nearly filled up the last page. If that happens, we first + // map the entire range as nulls, and then map the file on top of the first part + // so that the extra capacity is at the end. This is because OSX doesn't like + // MAP_FIXED on an unmapped page. + if (capacity == capacityWithoutGuardPage) { + // No extra page + addr = std::shared_ptr + (mmap(nullptr, capacity, + PROT_READ, MAP_PRIVATE, params.fd, params.offset), + [=] (void * p) { munmap(p, page_size); }); + check_mmap(addr.get()); + } + else { + // Firstly, make an anonymous zero-filled mapping + addr = std::shared_ptr + (mmap(nullptr, capacity, PROT_READ, MAP_PRIVATE | MAP_ANON, -1, 0), + [=] (void * p) { munmap(p, page_size); }); + check_mmap(addr.get()); + + // Now remap the file on all but the last page + void * addr2 = mmap(addr.get(), capacity - page_size, PROT_READ, MAP_PRIVATE | MAP_FIXED, params.fd, params.offset); + if (addr2 == MAP_FAILED) + throw Exception(errno, "mmap"); + if (addr2 != addr.get()) + MLDB_THROW_LOGIC_ERROR("mmap: remapped to different address"); + } + + data_ = (const char *)addr.get() + skip; + ptr_ = data_; + size_ = params.size - params.offset; + capacity_ = capacity - skip; + region_ = std::move(addr); + + //cerr << "data_ = " << (void *)data_ << endl; + //cerr << "ptr_ = " << (void *)ptr_ << endl; + //cerr << "size_ = " << size_ << endl; + //cerr << "capacity_ = " << capacity_ << endl; + //cerr << "region_ = " << (void *)region_.get() << endl; +} + +ssize_t mapped_file_source::read(char * s, size_t n) +{ + //cerr << "reading " << n << " bytes from mapped file" << endl; + size_t left = avail(); + if (left == 0) + return EOF; + n = std::min(n, left); + memcpy(s, ptr_, n); + ptr_ += n; + //cerr << "read " << n << " bytes from mapped file" << endl; + return n; +} + +std::streampos mapped_file_source::seek(std::streamoff off, std::ios_base::seekdir way) +{ + ssize_t currentOff = ptr_ - data_; + cerr << "currentOff = " << currentOff << endl; + std::streamoff newOff; + switch (way) { + case std::ios_base::beg: + newOff = off; + break; + case std::ios_base::cur: + newOff = currentOff + off; + break; + case std::ios_base::end: + newOff = size_ + off; + break; + default: + MLDB_THROW_LOGIC_ERROR("invalid seek direction"); + } + + if (newOff < 0 || newOff > size_) + return EOF; + + if (currentOff == newOff) + return newOff; + + ptr_ = data_ + newOff; + return newOff == size_ ? EOF : newOff; +} + +/*****************************************************************************/ +/* FILE DESCRIPTOR */ +/*****************************************************************************/ + +file_descriptor_sink::file_descriptor_sink(int fd, close_handle close_handle) + : fd_(fd), close_handle_(close_handle) +{ +} + +file_descriptor_sink::file_descriptor_sink(file_descriptor_sink && other) + : fd_(other.fd_), close_handle_(other.close_handle_) +{ + other.fd_ = -1; +} + +void file_descriptor_sink::swap(file_descriptor_sink & other) +{ + std::swap(fd_, other.fd_); + std::swap(close_handle_, other.close_handle_); +} + +file_descriptor_sink::~file_descriptor_sink() +{ + close(); +} + +void file_descriptor_sink::close() +{ + if (fd_ != -1) { + if (close_handle_ == always_close_handle) + ::close(fd_); + fd_ = -1; + } +} + +void file_descriptor_sink::flush() +{ +} + +ssize_t file_descriptor_sink::write(const char * data, size_t len) +{ + auto res = ::write(fd_, data, len); + if (res == -1) + throw Exception(errno, "write"); + return res; +} + +} // namespace MLDB diff --git a/base/iostream_adaptors.h b/base/iostream_adaptors.h new file mode 100644 index 000000000..a1b342065 --- /dev/null +++ b/base/iostream_adaptors.h @@ -0,0 +1,391 @@ +/* iostream_adaptors.h + Jeremy Barnes, 17 March 2005 + Copyright (c) 2005 Jeremy Barnes. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + This file is part of "Jeremy's Machine Learning Library", copyright (c) + 1999-2015 Jeremy Barnes. + + Apache 2.0 license. + + --- + + IOStream adaptors for the implementation of filter streams. + Interface is based on boost::iostream. +*/ + +#pragma once + +#include +#include +#include +#include +#include +#include "mldb/arch/exception.h" +#include "mldb/compiler/compiler.h" +#include "mldb/base/exc_check.h" +#include "mldb/base/exc_assert.h" + +namespace MLDB { + +/*****************************************************************************/ +/* FREE FUNCTIONS */ +/*****************************************************************************/ + +template +struct has_flush { + template static auto test(int) -> decltype(std::declval().flush(), std::true_type()); + template static auto test(...) -> std::false_type; + using type = decltype(test(0)); + static constexpr bool value = type::value; +}; + +template constexpr bool has_flush_v = has_flush::value; +template using has_flush_t = has_flush::type; + +template void flush_stream(Stream& stream, std::enable_if_t> * = 0) { stream.flush(); } +template void flush_stream(Stream& stream, std::enable_if_t> * = 0) { } + + +template +struct has_close { + template static auto test(int) -> decltype(std::declval().close(), std::true_type()); + template static auto test(...) -> std::false_type; + using type = decltype(test(0)); + static constexpr bool value = type::value; +}; + +template constexpr bool has_close_v = has_close::value; +template using has_close_t = has_close::type; + +template void close_stream(Stream& stream, std::enable_if_t> * = 0) { stream.close(); } +template void close_stream(Stream& stream, std::enable_if_t> * = 0) { } + + +template +struct has_seek { + template static auto test(int) -> decltype(std::declval().seek(0, std::ios::beg), std::true_type()); + template static auto test(...) -> std::false_type; + using type = decltype(test(0)); + static constexpr bool value = type::value; +}; + +template constexpr bool has_seek_v = has_seek::value; +template using has_seek_t = has_seek::type; + +template void seek_stream(SinkOrSource& stream, std::streamoff off, std::ios::seekdir dir, std::enable_if_t> * = 0) { stream.seek(off, dir); } +template void seek_stream(SinkOrSource& stream, std::streamoff off, std::ios::seekdir dir, std::enable_if_t> * = 0) { } + + +template +ssize_t write_stream(std::ostream& stream, const char * data, size_t len) +{ + stream.write(data, len); + if (!stream) + throw Exception("unable to write data"); + return len; +} + +template ssize_t write_stream(Stream& stream, const char * data, size_t len) { return stream.write(data, len); } +template ssize_t read_stream(Stream& stream, char * data, size_t len) { return stream.read(data, len); } + + +/*****************************************************************************/ +/* BASE CLASSES */ +/*****************************************************************************/ + +// Similar interface to boost::iostreams, except that these: +// a) don't use boost +// b) minimize template metaprogramming +// c) can map extra space at the end of a memory mapped file, allowing for +// algorithms that require specific alignment to work efficiently + +struct filter_streambuf: public std::streambuf { + virtual ~filter_streambuf() = default; + virtual void close() = 0; // should ensure that nothing more is written to the output + void set_output(std::streambuf * sb) { output_ = sb; } + bool has_output() const { return output_; } + + std::streamsize write(const char* s, std::streamsize n) { return require_output()->sputn(s, n); } + std::streamsize read(char* s, std::streamsize n) { return require_output()->sgetn(s, n); } + void flush() { require_output()->pubsync(); } + +protected: + void check_output() const { ExcCheck(output_, "Attempt to use non-capped filter_streambuf"); } + std::streambuf * require_output() const { check_output(); return output_; } + +private: + std::streambuf * output_ = nullptr; +}; + +inline void close_stream(std::streambuf & stream) { if (auto * buf = dynamic_cast(&stream)) buf->close(); } + +template +struct filtering_stream: public IOStream { + using IOStream::rdbuf; + filtering_stream() : IOStream(nullptr) + { + } + + virtual ~filtering_stream() + { + MLDB_EAT_EXCEPTIONS(flush_stream((IOStream&)*this)); + rdbuf(nullptr); + for (auto & filter: filters_) MLDB_EAT_EXCEPTIONS(filter->close()); + if (cap_) MLDB_EAT_EXCEPTIONS(cap_->close()); + } + + void push(std::streambuf & sb, size_t /* buffer_size */ = 4096) { check_not_capped(); push_streambuf(sb); } + + bool empty() const { return filters_.empty() && !cap_ && !rdbuf(); } + bool capped() const { return rdbuf() && (filters_.empty() || filters_.back()->has_output()); } + +protected: + void check_not_capped() const { ExcCheck(!cap_, "Attempt to push a second sink into a filtering_stream"); } + void push_streambuf(std::streambuf & sb) { if (!rdbuf()) { rdbuf(&sb); } else filters_.back()->set_output(&sb); } + template void push_cap(Cap cap, size_t buffer_size) { check_not_capped(); push_streambuf(*(cap_ = std::make_unique(std::move(cap), buffer_size))); } + template void push_filter(Filter filter, size_t buffer_size) + { + check_not_capped(); + filters_.emplace_back(std::make_unique(std::move(filter), buffer_size)); + push_streambuf(*filters_.back()); + } +private: + std::vector> filters_; + std::unique_ptr cap_; +}; + +template struct filtering_stream; +template struct filtering_stream; + + +/*****************************************************************************/ +/* FILTER OSTREAM CLASSES */ +/*****************************************************************************/ + +struct buffered_ostreambuf: public filter_streambuf { + buffered_ostreambuf(size_t buffer_size = 4096) : buffer_(buffer_size) { reset_buffer(); } +protected: + std::vector buffer_; + virtual ssize_t flush_sink() = 0; + virtual int sync() override { return (flush_buffer() == EOF || flush_sink() == EOF) ? EOF : 0; } + virtual int overflow(int c) override { if (flush_buffer() == EOF) return EOF; return sputc(c); } + virtual std::streamsize xsputn(const char * s, std::streamsize n) override { return (flush_buffer() == EOF || sink_write_all(s, n) == EOF) ? EOF : n; } + ssize_t flush_buffer(); + template ssize_t sink_write_impl(const char * s, size_t n, Sink & sink, Args&&... args) { return sink.write(std::forward(args)..., s, n); } + virtual ssize_t sink_write(const char * s, size_t n) = 0; + ssize_t sink_write_all(const char * s, size_t n); + void reset_buffer() { setp(buffer_.data(), buffer_.data() + buffer_.size()); } +}; + +template +struct sink_ostreambuf: public buffered_ostreambuf { + using base_type = buffered_ostreambuf; + sink_ostreambuf(Sink sink, size_t buffer_size = 4096) : base_type(buffer_size), sink_(std::move(sink)) {} + virtual ~sink_ostreambuf() = default; + const Sink & sink() const { return sink_; } + Sink & sink() { return sink_; } + virtual void close() override { flush_buffer(); flush_stream(sink_); sink_.close(); } +protected: + virtual ssize_t flush_sink() override { flush_stream(sink_); return 0; } + virtual ssize_t sink_write(const char * s, size_t n) override { return sink_write_impl(s, n, sink_); } +private: + Sink sink_; +}; + +template +struct filtering_ostreambuf: public buffered_ostreambuf { + using base_type = buffered_ostreambuf; + filtering_ostreambuf(Filter filter, size_t buffer_size = 4096) : base_type(buffer_size), filter_(std::move(filter)) {} + virtual ~filtering_ostreambuf() = default; + const Filter & filter() const { return filter_; } + Filter & filter() { return filter_; } + virtual void close() override { flush_buffer(); filter_.flush(*this); filter_.close(*this); } +protected: + virtual ssize_t flush_sink() override { filter_.flush(*this); return 0; } + virtual ssize_t sink_write(const char * s, size_t n) override { return sink_write_impl(s, n, filter_, *this); } +private: + Filter filter_; +}; + +struct filtering_ostream: public filtering_stream { + using filtering_stream::push; + template void push(Sink sink, size_t buffer_size = 4096, typename Sink::is_sink::type = {}) { push_cap>(std::move(sink), buffer_size); } + template void push(Filter filter, size_t buffer_size = 4096, typename Filter::is_filter::type = {}) { push_filter>(std::move(filter), buffer_size); } +}; + + +/*****************************************************************************/ +/* FILTER ISTREAM CLASSES */ +/*****************************************************************************/ + +struct buffered_istreambuf: public filter_streambuf { + buffered_istreambuf(size_t buffer_size = 4096) : buffer_(buffer_size) {} + virtual int underflow() override { buf_fill(); ExcAssert((eof() && buf_empty()) || !buf_empty()); return eof() ? EOF : *gptr(); } + virtual std::streamsize xsgetn(char * s, std::streamsize n) override; + virtual std::streampos seekoff(std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which) override; + bool eof() const { return eof_; } + +protected: + std::vector buffer_; + ssize_t pos_ = 0; + bool eof_ = false; + bool buf_empty() const { return gptr() == egptr(); } + void require_empty() { ExcAssert(buf_empty()); } + void buf_fill(); + virtual ssize_t source_read(char * s, size_t n) = 0; + template ssize_t do_source_read(char * s, size_t n, Source & source, Args&&... args) + { + if (eof_) return EOF; + auto res = source.read(std::forward(args)..., s, n); + if (res == 0 || res == EOF) eof_ = true; + pos_ += (res == EOF ? 0 : res); + return res; + } + size_t current_pos() const { return pos_ - (egptr() - gptr()); }; + virtual std::streampos seek(std::streamoff off, std::ios_base::seekdir way) + { + if (way != std::ios_base::cur || off != 0) return EOF; + return current_pos(); + } +}; + +template +struct source_istreambuf: public buffered_istreambuf { + using base_type = buffered_istreambuf; + source_istreambuf(Source source, size_t buffer_size = 4096) : base_type(buffer_size), source_(std::move(source)) {} + virtual ~source_istreambuf() = default; + const Source & source() const { return source_; } + Source & source() { return source_; } + virtual void close() override { close_stream(source_); } +protected: + virtual ssize_t source_read(char * s, size_t n) override { return do_source_read(s, n, source_); } + virtual std::streampos seek(std::streamoff off, std::ios_base::seekdir way) override + { + if (way == std::ios_base::cur && off == 0) return current_pos(); + + // If the source supports seeking, then we can seek to the new position. + // Since the source doesn't know about buffering at all, we need to calculate + // a different offset to seek to, and then perform the actual seek. + if constexpr (has_seek_v) { + auto curr_pos = current_pos(); + if (way == std::ios_base::cur) off -= egptr() - gptr(); + std::streampos new_pos = source_.seek(off, way); + if (curr_pos != new_pos && !eof()) { + setg(nullptr, nullptr, nullptr); // we no longer have a buffer + buf_fill(); + } + return new_pos; + } + return base_type::seek(off, way); + } + Source source_; +}; + +template +struct filtering_istreambuf: public buffered_istreambuf { + using base_type = buffered_istreambuf; + filtering_istreambuf(Filter filter, size_t buffer_size = 4096) : base_type(buffer_size), filter_(std::move(filter)) {} + virtual ~filtering_istreambuf() = default; + const Filter & filter() const { return filter_; } + Filter & filter() { return filter_; } + virtual void close() override { close_stream(filter_); } +protected: + virtual ssize_t source_read(char * s, size_t n) override { return do_source_read(s, n, filter_, *this); } + Filter filter_; +}; + +struct filtering_istream: public filtering_stream { + using filtering_stream::push; + template void push(Source source, size_t buffer_size = 4096, typename Source::is_source::type = {}) { push_cap>(std::move(source), buffer_size); } + template void push(Filter filter, size_t buffer_size = 4096, typename Filter::is_filter::type = {}) { push_filter>(std::move(filter), buffer_size); } +}; + + +/*****************************************************************************/ +/* NULL FILTER */ +/*****************************************************************************/ + +// Filter which passes its data straight through; mostly for testing + +struct null_filter { + using is_filter = std::true_type; + template void flush(Sink & sink) { flush_stream(sink); } + template void close(SourceOrSink & s) { close_stream(s); } + template ssize_t read(Source & source, char * s, size_t n) { return source.read(s, n); } + template ssize_t write(Sink & sink, const char * s, size_t n) { return sink.write(s, n); } + template std::streampos seek(SourceOrSink & s, std::streamoff off, std::ios_base::seekdir way, std::ios_base::openmode which) + { + return s.seek(off, way, which); + } +}; + + +/*****************************************************************************/ +/* MEMORY MAPPING */ +/*****************************************************************************/ + +struct mapped_file_params { + std::string filename; + int fd = -1; + size_t offset = 0; + ssize_t size = -1; + ssize_t extra_capacity = 0; +}; + +struct mapped_file_source { + using is_source = std::true_type; + mapped_file_source(mapped_file_params params); + + const char * data() const { return data_; } + size_t size() const { return size_; } + size_t avail() const { return data_ + size_ - ptr_; } + size_t capacity() const { return capacity_; } + size_t extra_capacity() const { return capacity_ - size_; } + + ssize_t read(char * s, size_t n); + std::streampos seek(std::streamoff off, std::ios_base::seekdir way); + + int fd_ = -1; + std::shared_ptr region_; + const char * data_ = nullptr; + const char * ptr_ = nullptr; + size_t size_ = 0; + size_t capacity_ = 0; +}; + + +/*****************************************************************************/ +/* FILE DESCRIPTOR */ +/*****************************************************************************/ + +enum close_handle { + never_close_handle = false, + always_close_handle = true +}; + +struct file_descriptor_sink { + using is_sink = std::true_type; + file_descriptor_sink(int fd, close_handle close_handle = never_close_handle); + file_descriptor_sink(file_descriptor_sink && other); + + void swap(file_descriptor_sink & other); + file_descriptor_sink & operator = (file_descriptor_sink && other) + { + swap(other); + return *this; + } + + ~file_descriptor_sink(); + + void close(); + void flush(); + + ssize_t write(const char * data, size_t len); + +protected: + int fd_ = -1; + close_handle close_handle_ = never_close_handle; +}; + +} // namespace MLDB diff --git a/base/parse_context.cc b/base/parse_context.cc index 600e9c267..010ab174c 100644 --- a/base/parse_context.cc +++ b/base/parse_context.cc @@ -704,9 +704,10 @@ read_new_buffer() char * tmpbuf = buf.data(); stream_->read(tmpbuf, chunk_size_); - size_t read = stream_->gcount(); + ssize_t read = stream_->gcount(); - //cerr << "read " << read << " bytes" << endl; + //cerr << "read " << read << " bytes" << " of " << chunk_size_ << endl; + ExcAssertGreaterEqual(read, 0); if (stream_->bad()) exception("stream is bad/has failed 2"); diff --git a/base/testing/base_testing.mk b/base/testing/base_testing.mk index 9e424e175..e36c8123d 100644 --- a/base/testing/base_testing.mk +++ b/base/testing/base_testing.mk @@ -4,3 +4,5 @@ export MLDB_NO_TIMING_TESTS=1 $(eval $(call test,thread_pool_test,base arch,boost timed)) $(eval $(call test,thread_queue_test,base arch,boost timed)) $(eval $(call test,per_thread_accumulator_test,base arch,boost)) +$(eval $(call test,iostream_adaptors_test,arch base, catch2)) +$(eval $(call test,compute_context_test,arch base,catch2)) diff --git a/base/testing/compute_context_test.cc b/base/testing/compute_context_test.cc new file mode 100644 index 000000000..edee7c2ec --- /dev/null +++ b/base/testing/compute_context_test.cc @@ -0,0 +1,21 @@ +/* compute_context_test.cc + Wolfgang Sourdeau, 28 August 2014 + Copyright (c) 2014 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Test processing state tracker. +*/ + + +#include "mldb/base/compute_context.h" +#include "mldb/utils/testing/mldb_catch2.h" + +using namespace std; +using namespace MLDB; + +TEST_CASE("basics") +{ + ComputeContext state(0 /* max parallelism */); + state.work_until_finished(); +} + diff --git a/base/testing/iostream_adaptors_test.cc b/base/testing/iostream_adaptors_test.cc new file mode 100644 index 000000000..08d686215 --- /dev/null +++ b/base/testing/iostream_adaptors_test.cc @@ -0,0 +1,99 @@ +/* iostream_adaptors_test.cc + Jeremy Barnes, 17 March 2005 + Copyright (c) 2005 Jeremy Barnes. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + This file is part of "Jeremy's Machine Learning Library", copyright (c) + 1999-2015 Jeremy Barnes. + + Apache 2.0 license. + + --- + + IOStream adaptors for the implementation of filter streams. + Interface is based on boost::iostream. +*/ + +#include "catch2/catch_all.hpp" +#include "mldb/base/iostream_adaptors.h" +#include +#include + +using namespace std; +using namespace MLDB; + +#if 0 +TEST_CASE("proper EOF sequencing") +{ + string input_file = "mldb/utils/testing/parse_context_test_data.csv"; + size_t input_length = std::filesystem::file_size(input_file); + + for (auto chunk_size: { 1, 2, 3, 5, 7, 11, 50, 71, 1000, 1000000 }) { + SECTION("chunk_size " + std::to_string(chunk_size)) { + for (auto buffer_size: { /*1, 2, 3, 5, 7, 11, 16,*/ 128, 1000 }) { + SECTION("buffer_size " + std::to_string(buffer_size)) { + ifstream file(input_file); + filtering_istream stream; + stream.push(null_filter(), buffer_size); + stream.push(*file.rdbuf(), buffer_size); + + std::vector buffer(chunk_size); + std::string contents; + + ssize_t total_read = 0; + bool has_read_zero = false; + + while (!stream.eof()) { + stream.read(buffer.data(), buffer.size()); + contents.append(buffer.data(), stream.gcount()); + total_read += stream.gcount(); + if (stream.gcount() == 0) { + CHECK(!has_read_zero); + has_read_zero = true; + CHECK(total_read == input_length); + REQUIRE(stream.eof()); + } + + // Reading zero characters shouldn't mess up the stream + stream.read(buffer.data(), 0); + CHECK(stream.gcount() == 0); + } + + if (!has_read_zero) { + stream.read(buffer.data(), buffer.size()); + CHECK(stream.gcount() == 0); + has_read_zero = true; + } + + CHECK(contents.size() == input_length); + CHECK(has_read_zero); + } + } + } + } +} +#endif + +TEST_CASE("mapped stream tellg") +{ + string input_file = "mldb/vfs/testing/fixtures/minimal.csv"; + + for (auto buffer_size: { /*1, 2, 3, 5, 7, 11, 16, 128,*/ 1000 }) { + SECTION("buffer_size " + std::to_string(buffer_size)) { + filtering_istream stream; + stream.push(mapped_file_source({input_file}), buffer_size); + + CHECK(stream.tellg() == 0); + std::string line; + getline(stream, line); + CHECK(line == "a,b,c"); + CHECK(stream.tellg() == 6); + getline(stream, line); + CHECK(line == "d,e,f"); + CHECK(stream.tellg() == 12); + getline(stream, line); + CHECK(line == ""); + CHECK(stream.eof()); + } + } +} diff --git a/base/testing/thread_pool_test.cc b/base/testing/thread_pool_test.cc index 4a6cd3721..103474231 100644 --- a/base/testing/thread_pool_test.cc +++ b/base/testing/thread_pool_test.cc @@ -190,7 +190,7 @@ BOOST_AUTO_TEST_CASE(threadPoolBindingAdd) BOOST_AUTO_TEST_CASE(threadPoolExceptionCatching) { - ThreadWorkGroup workGroup; + ThreadPool workGroup(-1 /* num threads */, true /* catch exceptions */); workGroup.add([] () { throw Exception("hello"); }); @@ -208,7 +208,7 @@ BOOST_AUTO_TEST_CASE(threadPoolExceptionCatching) BOOST_AUTO_TEST_CASE(threadPoolMultiExceptionCatching) { - ThreadWorkGroup workGroup; + ThreadPool workGroup(-1 /* num threads */, true /* catch exceptions */); for (size_t i = 0; i < 100; ++i) { workGroup.add([] () { throw Exception("hello"); }); diff --git a/base/thread_pool.cc b/base/thread_pool.cc index 2a092b13e..5e67c27ff 100644 --- a/base/thread_pool.cc +++ b/base/thread_pool.cc @@ -51,6 +51,9 @@ int numCpus() threads, but not being able to do much itself. So the ability to handle lots of work being submitted by a given thread but not much being done by it is important. + + It's important that pool threads not block or sleep, as this can cause + deadlocks. */ struct ThreadPool::Itl: public std::enable_shared_from_this { diff --git a/base/thread_pool.h b/base/thread_pool.h index 438292a22..85e4566ed 100644 --- a/base/thread_pool.h +++ b/base/thread_pool.h @@ -41,9 +41,17 @@ struct ThreadPool { /** Add the given job to the thread pool. - The job MUST NOT throw an exception; any exception thrown within the - job WILL CRASH THE PROGRAM. (The lambda will be marked noexcept at - a later date). + If the ThreadPool is constructued with handleExceptions = false: + + The job MUST NOT throw an exception; any exception thrown within the + job WILL CRASH THE PROGRAM. (The lambda will be marked noexcept at + a later date). + + If the ThreadPool is constructed with handleExceptions = true: + + The job MAY throw an exception. If it does, then the exception will + be caught and stored. The first exception thrown will be rethrown + from waitForAll(). The job may either: 1. Be run before the add() function terminates @@ -104,6 +112,10 @@ struct ThreadPool { /** Lend the calling thread to the thread pool for one job. */ void work() const; + /** Lend the calling thread to the thread pool for one job, or return + immediately if there is no work to do. */ + void tryWork() const; + size_t numThreads() const; uint64_t jobsRunning() const; @@ -122,17 +134,4 @@ struct ThreadPool { std::shared_ptr itl; }; - -/*****************************************************************************/ -/* THREAD WORK GROUP */ -/*****************************************************************************/ - -struct ThreadWorkGroup: public ThreadPool { - - ThreadWorkGroup(int maxParallelism = -1) - : ThreadPool(ThreadPool::instance(), maxParallelism, true /* handle exceptions */) - { - } -}; - } // namespace MLDB diff --git a/block/block.mk b/block/block.mk index ae624b1ff..9e3764f66 100644 --- a/block/block.mk +++ b/block/block.mk @@ -7,7 +7,7 @@ LIBBLOCK_SOURCES:= \ content_descriptor.cc \ content.cc \ -$(eval $(call library,block,$(LIBBLOCK_SOURCES),vfs $(LIBARCHIVE_LIB_NAME) types arch db base value_description any)) +$(eval $(call library,block,$(LIBBLOCK_SOURCES),vfs $(LIBARCHIVE_LIB_NAME) types arch db base value_description any watch)) $(eval $(call include_sub_make,testing)) diff --git a/block/content.cc b/block/content.cc index 7006d3e44..2074664cf 100644 --- a/block/content.cc +++ b/block/content.cc @@ -6,7 +6,6 @@ */ #include -#include #include "mldb/http/http_rest_proxy.h" #include "mldb/vfs/filter_streams_registry.h" #include "mldb/vfs/fs_utils.h" diff --git a/block/content_descriptor.cc b/block/content_descriptor.cc index 31db91372..9d7de1b40 100644 --- a/block/content_descriptor.cc +++ b/block/content_descriptor.cc @@ -10,11 +10,12 @@ #include "mldb/types/annotated_exception.h" #include "mldb/vfs/filter_streams.h" #include "mldb/types/any_impl.h" -#include #include #include "mldb/vfs/compressor.h" #include "mldb/watch/watch_impl.h" #include "mldb/base/thread_pool.h" +#include "mldb/base/iostream_adaptors.h" +#include "mldb/base/compute_context.h" using namespace std; @@ -123,6 +124,15 @@ DEFINE_VALUE_DESCRIPTION_NS(ContentHashes, ContentHashesDescription); /* CONTENT DESCRIPTOR */ /*****************************************************************************/ + +void +ContentDescriptor:: +addUrl(Utf8String url) +{ + ContentHash hash{"url", std::move(url)}; + content.emplace_back(std::move(hash)); +} + Url ContentDescriptor:: getUrl() const @@ -241,12 +251,16 @@ struct ContentInputSeekableStreambuf { static_assert(sizeof(char_type) == 1, "content streams for single-char bytes only"); + using is_source = std::true_type; + using is_seekable = std::true_type; +#if 0 struct category : public boost::iostreams::input_seekable, public boost::iostreams::device_tag, public boost::iostreams::closable_tag { }; - +#endif + struct Impl { Impl(std::shared_ptr handler__) : handler(std::move(handler__)) @@ -367,47 +381,68 @@ bool ContentHandler:: forEachBlockParallel(uint64_t startOffset, uint64_t requestedBlockSize, - int maxParallelism, - std::function fn) const + ComputeContext & compute, + const PriorityFn & priority, + const OnBlockFn & onBlock) const { + constexpr bool debug = false; + if (debug) cerr << "ContentHandler foreachblockparallel" << endl; size_t offset = startOffset; std::atomic finished(false); - ThreadWorkGroup tp(maxParallelism); + ComputeContext block_compute(compute); size_t blockNumber = 0; - - while (!finished && !tp.hasException()) { + + auto submitBlockJob = [&] (auto && block) + { + if (compute.single_threaded()) + block(); + else + block_compute.submit(priority(blockNumber), "ContentHandler::forEachBlockParallel", std::move(block)); + }; + + while (!finished && !compute.relaxed_stopped()) { uint64_t startOffset; FrozenMemoryRegion region; std::tie(startOffset, region) = getRangeContaining(offset, requestedBlockSize); - if (!region) + if (debug) cerr << "startOffset = " << startOffset << " region = " << (bool)region << endl; + + if (!region && !finished) { + // This is the last block + submitBlockJob([blockNumber, startOffset, &onBlock, &finished] () + { + if (!onBlock(blockNumber, startOffset, FrozenMemoryRegion(), true /* lastBlock */)) + finished = true; + }); break; + } uint64_t toSkip = startOffset - offset; ExcAssertEqual(toSkip, 0); size_t myBlockNumber = blockNumber++; + if (debug) cerr << "doing block " << myBlockNumber << " at offset " + << startOffset << " len " << region.length() << endl; + auto processBlock - = [myBlockNumber, startOffset, region, &fn, &finished] () + = [myBlockNumber, startOffset, region, &onBlock, &finished] () { - if (!fn(myBlockNumber, startOffset, region)) + if (!onBlock(myBlockNumber, startOffset, region, false /* lastBlock */)) { finished = true; + } }; - if (maxParallelism == 1) - processBlock(); - else - tp.add(std::move(processBlock)); + submitBlockJob(std::move(processBlock)); offset = startOffset + region.length(); } - tp.waitForAll(); + block_compute.work_until_finished(); return !finished; } @@ -460,13 +495,22 @@ getStream(const std::map & options) const //cerr << "url = " << descriptor.getUrlStringUtf8() << " compression = " // << compression << " mapped = " << isMapped << endl; - if (isMapped) { + while (isMapped) { // actually an if, but now we can break out // Just get one single big block auto contentHandler = getContent(descriptor); struct Vals { FsObjectInfo info; FrozenMemoryRegion mem; + +#if 0 + ~Vals() + { + cerr << endl << endl << endl; + cerr << "NO MORE MAPPING VALS" << endl; + cerr << endl << endl << endl; + } +#endif }; auto vals = std::make_shared(); @@ -493,7 +537,10 @@ getStream(const std::map & options) const vals->mem.length()); if (outputSize < 0) { - throw Exception("decompressed size unknown"); + if (outputSize == Decompressor::LENGTH_UNKNOWN) + break; // do as an istream as we can't run the splitting algorithm + + throw Exception("decompressed size unknown: %i", (int)outputSize); } static MemorySerializer serializer; @@ -535,7 +582,7 @@ getStream(const std::map & options) const ContentInputSeekableStreambuf bufImpl(getSharedThis()); std::streambuf * buf - = new boost::iostreams::stream_buffer + = new source_istreambuf (std::move(bufImpl), 1024 * 1024); UriHandler handler(buf /* streambuf */, @@ -546,10 +593,8 @@ getStream(const std::map & options) const filter_istream stream(handler, descriptor.getUrlString(), options2); return stream; } - else { - // Not mapped. We go block by block. - } - + + // Not mapped. We go block by block. filter_istream result(descriptor.getUrlStringUtf8(), options2); return result; } @@ -639,8 +684,9 @@ struct UrlContentHandler { const char * data; size_t len; + size_t capacity; - std::tie(data, len) = stream.mapped(); + std::tie(data, len, capacity) = stream.mapped(); if (data && length) { if (length == -1) length = len - offset; @@ -819,8 +865,9 @@ struct ContentDecompressor virtual bool forEachBlockParallel(uint64_t startOffset, uint64_t requestedBlockSize, - int maxParallelism, - std::function fn) const override + ComputeContext & compute, + const PriorityFn & priority, + const OnBlockFn & fn) const override { //maxParallelism = 1; @@ -860,7 +907,8 @@ struct ContentDecompressor auto onBlock = [&] (size_t blockNumber, uint64_t blockStartOffset, std::shared_ptr mem, - size_t length) -> bool + size_t length, + bool lastBlock) -> bool { if (blockStartOffset + length < startOffset) return true; @@ -873,7 +921,7 @@ struct ContentDecompressor } FrozenMemoryRegion region(mem, mem.get(), length); - return fn(blockNumber, blockStartOffset, std::move(region)); + return fn(blockNumber, blockStartOffset, std::move(region), lastBlock); }; auto allocate = [&] (size_t len) -> std::shared_ptr @@ -882,7 +930,7 @@ struct ContentDecompressor }; return decompressor->forEachBlockParallel(requestedBlockSize, getData, onBlock, - allocate, maxParallelism); + allocate, compute, priority); } virtual std::pair diff --git a/block/content_descriptor.h b/block/content_descriptor.h index db64c9d2e..e43602d0f 100644 --- a/block/content_descriptor.h +++ b/block/content_descriptor.h @@ -19,6 +19,7 @@ #include "mldb/block/memory_region.h" #include "mldb/vfs/fs_utils.h" #include "mldb/watch/watch.h" +#include "mldb/base/compute_context.h" namespace MLDB { @@ -80,6 +81,9 @@ PREDECLARE_VALUE_DESCRIPTION(ContentHashes); struct ContentDescriptor { ContentHashes content; + // Add a single (non-hashed) URL to enable it to be used in place of legacy URLs + void addUrl(Utf8String url); + Url getUrl() const; Utf8String getUrlString() const; std::u8string getUrlStringUtf8() const; @@ -158,13 +162,14 @@ struct ContentHandler { virtual AccessPattern getPattern() const = 0; + using OnBlockFn = ContinuationFn; + virtual bool forEachBlockParallel(uint64_t startOffset, uint64_t requestedBlockSize, - int maxParallelism, - std::function fn) - const; + ComputeContext & compute, + const PriorityFn & priority, + const OnBlockFn & onBlock) const; virtual FrozenMemoryRegion getRange(uint64_t offset = 0, int64_t length = -1) const; diff --git a/block/testing/content_descriptor_test.cc b/block/testing/content_descriptor_test.cc index add992d84..c936a577b 100644 --- a/block/testing/content_descriptor_test.cc +++ b/block/testing/content_descriptor_test.cc @@ -1,4 +1,4 @@ -/* filter_streams_test.cc +/* content_descriptor_test.cc Jeremy Barnes, 29 June 2011 Copyright (c) 2011 mldb.ai inc. Copyright (c) 2011 Jeremy Barnes. @@ -6,15 +6,12 @@ This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. */ -#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK - #include "mldb/vfs/filter_streams.h" #include "mldb/block/content_descriptor.h" #include "mldb/types/value_description.h" #include "mldb/types/json.h" - -#include +#include "mldb/arch/atomic_min_max.h" +#include "mldb/utils/testing/mldb_catch2.h" using namespace std; using namespace MLDB; @@ -147,3 +144,110 @@ BOOST_AUTO_TEST_CASE( test_compressed_random_access ) { } + + +struct TestParallelDecompressData { + size_t numBlocks = 0, totalLength = 0, maxNumParallel = 0, minBlock = 10000000, maxBlock = 0; + bool hasLastBlock = false; +}; + +TestParallelDecompressData testParallelDecompress(string input_file, int maxParallelism = 16) +{ + ContentDescriptor descriptor = jsonDecode("file://" + input_file); + std::shared_ptr handler = getDecompressedContent(descriptor); + + std::atomic numBlocks{0}, totalLength{0}, numParallel{0}, maxNumParallel{0}, minBlock(10000000), maxBlock(0); + bool hasLastBlock = false; + + auto onBlock = [&] (size_t blockNum, uint64_t blockOffset, + FrozenMemoryRegion block, bool lastBlock) + { + if (lastBlock) { + BOOST_CHECK(!hasLastBlock); + hasLastBlock = true; + } + auto par = numParallel.fetch_add(1) + 1; + atomic_max(maxNumParallel, par); + atomic_min(minBlock, blockNum); + atomic_max(maxBlock, blockNum); + + numBlocks.fetch_add(1); + totalLength.fetch_add(block.length()); + + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + + //cerr << "got block " << blockNum << " from " << blockOffset << " of length " << block.length() << endl; + + numParallel.fetch_sub(1); + return true; + }; + + ComputeContext compute(maxParallelism); + + handler->forEachBlockParallel(0, 1024 * 1024 /* requested block size */, compute, 1 /* priority */, onBlock); + BOOST_CHECK_EQUAL(numParallel, 0); + + cerr << "maxNumParallel = " << maxNumParallel << endl; + return { numBlocks, totalLength, maxNumParallel, minBlock, maxBlock, hasLastBlock }; +} + + +BOOST_AUTO_TEST_CASE( test_parallel_decompress_zstd ) +{ + string input_file = "mldb_test_data/reviews_Digital_Music_5.json.zstd"; + + for (auto maxParallelism: {0, 1, 4, 16}) { + SECTION("maxParallelism = " + to_string(maxParallelism)) { + + auto [numBlocks, totalLength, maxNumParallel, minBlock, maxBlock, hasLastBlock] + = testParallelDecompress(input_file, 16 /* maxParallelism */); + + BOOST_CHECK_EQUAL(hasLastBlock, true); + BOOST_CHECK_EQUAL(numBlocks, 680); + BOOST_CHECK_EQUAL(totalLength, 88964528); + if (maxParallelism > 0) + BOOST_CHECK_GT(maxNumParallel, 1); + BOOST_CHECK_EQUAL(minBlock, 0); + BOOST_CHECK_EQUAL(maxBlock, 679); + } + } +} + +BOOST_AUTO_TEST_CASE( test_parallel_decompress_lz4 ) +{ + string input_file = "mldb_test_data/train-1m.csv.lz4"; + for (auto maxParallelism: {0, 1, 4, 16}) { + SECTION("maxParallelism = " + to_string(maxParallelism)) { + + auto [numBlocks, totalLength, maxNumParallel, minBlock, maxBlock, hasLastBlock] + = testParallelDecompress(input_file, maxParallelism); + + BOOST_CHECK_EQUAL(hasLastBlock, true); + BOOST_CHECK_EQUAL(numBlocks, 13); + BOOST_CHECK_EQUAL(totalLength, 48882727); + if (maxParallelism > 0) + BOOST_CHECK_GT(maxNumParallel, 1); + BOOST_CHECK_EQUAL(minBlock, 0); + BOOST_CHECK_EQUAL(maxBlock, 12); + } + } +} + +BOOST_AUTO_TEST_CASE( test_parallel_decompress_gzip ) +{ + string input_file = "mldb_test_data/enron.csv.gz"; + for (auto maxParallelism: {0, 1, 4, 16}) { + SECTION("maxParallelism = " + to_string(maxParallelism)) { + auto [numBlocks, totalLength, maxNumParallel, minBlock, maxBlock, hasLastBlock] + = testParallelDecompress(input_file, 16 /* maxParallelism */); + + BOOST_CHECK_EQUAL(hasLastBlock, true); + BOOST_CHECK_EQUAL(numBlocks, 408); + BOOST_CHECK_EQUAL(totalLength, 52229289); + if (maxParallelism > 0) + BOOST_CHECK_GT(maxNumParallel, 1); + BOOST_CHECK_EQUAL(minBlock, 0); + BOOST_CHECK_EQUAL(maxBlock, 407); + } + } +} \ No newline at end of file diff --git a/block/testing/testing.mk b/block/testing/testing.mk index 65e57f95b..0363dff0d 100644 --- a/block/testing/testing.mk +++ b/block/testing/testing.mk @@ -1,3 +1,3 @@ # This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. -$(eval $(call test,content_descriptor_test,vfs block types value_description vfs base,boost)) +$(eval $(call test,content_descriptor_test,vfs block types value_description vfs base,catch2)) diff --git a/builtin/fetcher.cc b/builtin/fetcher.cc index 5a09cc617..11f8f6d87 100644 --- a/builtin/fetcher.cc +++ b/builtin/fetcher.cc @@ -150,7 +150,8 @@ struct FetcherFunction: public ValueFunctionT { const char * mappedAddr; size_t mappedSize; - std::tie(mappedAddr, mappedSize) = stream.mapped(); + size_t mappedCapacity; + std::tie(mappedAddr, mappedSize, mappedCapacity) = stream.mapped(); CellValue blob; if (mappedAddr) { diff --git a/builtin/python/python_interpreter.cc b/builtin/python/python_interpreter.cc index 33f40a277..d7d4234a1 100644 --- a/builtin/python/python_interpreter.cc +++ b/builtin/python/python_interpreter.cc @@ -593,8 +593,9 @@ PythonInterpreter(InitializationContext context) if (auto venv_path = std::getenv("MLDB_VIRTUAL_ENV")) { std::wstring venv(venv_path, venv_path + strlen(venv_path)); - venv += L"/bin"; - //venv += L"/lib/python" + std::wstring(pythonMajorMinor.begin(), pythonMajorMinor.end()) + L"/site-packages"; + //venv += L"/bin"; + venv += L"/lib/python" + std::wstring(pythonMajorDotMinor.begin(), pythonMajorDotMinor.end()) + L"/site-packages"; + cerr << "adding virtual env path " << venv << endl; checkStatus(PyWideStringList_Append(&config.module_search_paths, venv.c_str())); } diff --git a/builtin/python/python_plugin_context.cc b/builtin/python/python_plugin_context.cc index 4ee80c192..54fbcc318 100644 --- a/builtin/python/python_plugin_context.cc +++ b/builtin/python/python_plugin_context.cc @@ -728,9 +728,8 @@ readLines(const std::string & path, int maxLines) lines.append(line); }; - auto logger = getMldbLog("python"); - forEachLine(stream, onLine, logger, 1 /* numThreads */, false /* ignore exc */, - maxLines); + namespace o = ForEachLine::options; + forEachLine(stream, onLine, o::maxParallelism = 0, o::maxLines = maxLines); return lines; } diff --git a/compiler/compiler.h b/compiler/compiler.h index f93388fe1..033699665 100644 --- a/compiler/compiler.h +++ b/compiler/compiler.h @@ -47,6 +47,10 @@ } catch (...) #endif +// Run the given statement, eating all non stack unwinding exceptions +#define MLDB_EAT_EXCEPTIONS(...) \ + try { __VA_ARGS__; } MLDB_CATCH_ALL { } + #if __GNUC__ == 4 # if __CNUC_MINOR__ < 8 # define MLDB_NO_MOVE_IF_NOEXCEPT diff --git a/engine/static_content_macro.cc b/engine/static_content_macro.cc index dfdcec29e..d7e3705ca 100644 --- a/engine/static_content_macro.cc +++ b/engine/static_content_macro.cc @@ -19,6 +19,7 @@ #include "mldb/utils/string_functions.h" #include "mldb/types/value_description.h" #include "mldb/types/annotated_exception.h" +#include "mldb/types/meta_value_description.h" using namespace std; @@ -97,18 +98,15 @@ static std::string getTypeName(const ValueDescription & description, } } -static std::string getDefaultValue(const ValueDescription & description) +static std::string getDefaultValueStr(const ValueDescription & description) { - void * val = description.constructDefault(); - std::ostringstream stream; - StreamJsonPrintingContext context(stream); - description.printJson(val, context); - description.destroy(val); - - if (stream.str() == "null" || stream.str() == "\"\"" || stream.str() == "[]" || stream.str() == "{}") - return ""; + auto jval = getDefaultValue(description); + std::string str = jval.toStringNoNewLine(); + if (str == "null" || str == "\"\"" || str == "[]" || str == "{}") { + str = ""; + } - return stream.str(); + return str; } static void renderType(MacroContext & context, @@ -150,7 +148,7 @@ static void renderType(MacroContext & context, context.writeHtml(MLDB::format("

%s
%s
%s

%s\n", fd.fieldName.c_str(), getTypeName(*fd.description, context.engine).c_str(), - getDefaultValue(*fd.description).c_str(), + getDefaultValueStr(*fd.description).c_str(), renderMarkdown(fd.comment.c_str(), context).rawString())); }; vd->forEachField(nullptr, onField); diff --git a/io/testing/io_testing.mk b/io/testing/io_testing.mk index d9ca377da..3606c9613 100644 --- a/io/testing/io_testing.mk +++ b/io/testing/io_testing.mk @@ -1,6 +1,6 @@ # This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. -$(eval $(call test,asio_timer_test,io_base watch types,boost)) +$(eval $(call test,asio_timer_test,io_base arch base value_description watch types,boost)) $(eval $(call test,async_writer_bench,io_base arch types,boost manual)) $(eval $(call test,epoll_test,io_base arch base,boost)) $(eval $(call test,epoller_test,io_base,boost)) diff --git a/jml-build/functions.mk b/jml-build/functions.mk index be346aaa5..1f7f3e30c 100644 --- a/jml-build/functions.mk +++ b/jml-build/functions.mk @@ -575,6 +575,7 @@ LINK_$(1)_COMMAND:=$$(CXX) $$(CXXFLAGS) $$(CXXEXEFLAGS) $$(CXXNODEBUGFLAGS) -o $ $(TESTS)/$(1): $(TESTS)/.dir_exists $(TEST_TMP)/.dir_exists $$($(1)_OBJFILES) $$(foreach lib,$(2),$$(LIB_$$(lib)_DEPS)) $$(LIB)/libexception_hook$(SO_EXTENSION) $$(if $(verbose_build),@echo $$(LINK_$(1)_COMMAND),@echo " $(COLOR_BLUE)[TESTBIN]$(COLOR_RESET) $(1)") @$$(LINK_$(1)_COMMAND) + $(if $(POST_LINK_COMMAND)$(POST_LINK_COMMAND_$(1)),@$(if $(POST_LINK_COMMAND_$(1)),$(POST_LINK_COMMAND_$(1)),$(POST_LINK_COMMAND)) $$@) tests: $(TESTS)/$(1) $$(CURRENT)_tests: $(TESTS)/$(1) diff --git a/jml-build/os/Darwin.mk b/jml-build/os/Darwin.mk index af30801dd..033f2cab1 100644 --- a/jml-build/os/Darwin.mk +++ b/jml-build/os/Darwin.mk @@ -89,7 +89,7 @@ LLVM_LIB_NAME:=LLVM-19 LIB_$(LLVM_LIB_NAME)_LINKER_OPTIONS+=-L$(LLVM_LIB_PATH) # This provides attributes allowing easier debugability including core files -POST_LINK_COMMAND:=codesign -s - -f --entitlements $(JML_BUILD)/os/mldb.debug.entitlements.plist +POST_LINK_COMMAND:=$(JML_BUILD)/os/osx-sign-binary.sh # Build and load Make extentions that allow us to avoid shell execution ifneq ($(DONE_LOAD),1) diff --git a/jml-build/os/osx-sign-binary.sh b/jml-build/os/osx-sign-binary.sh new file mode 100755 index 000000000..f2321c54c --- /dev/null +++ b/jml-build/os/osx-sign-binary.sh @@ -0,0 +1,7 @@ +#!/bin/bash +# This script is used to sign a binary on OSX so that it can be debugged and dump core. +#echo "Signing $1" +set -e +#set -x +codesign -s - -f --entitlements mldb/jml-build/os/mldb.debug.entitlements.plist $1 > $1.codesign.log 2>&1 +#codesign -vvv $1 >> $1.codesign.log 2>&1 diff --git a/plugins/azure/azure_blob_storage.cc b/plugins/azure/azure_blob_storage.cc index 92ca393f5..aaa2a9b73 100644 --- a/plugins/azure/azure_blob_storage.cc +++ b/plugins/azure/azure_blob_storage.cc @@ -5,7 +5,6 @@ **/ #include -#include #include #include #include diff --git a/plugins/behavior/mutable_behavior_domain.cc b/plugins/behavior/mutable_behavior_domain.cc index 4362aaee9..c87b75101 100644 --- a/plugins/behavior/mutable_behavior_domain.cc +++ b/plugins/behavior/mutable_behavior_domain.cc @@ -15,35 +15,12 @@ #include "mldb/types/value_description.h" #include "mldb/base/parallel_merge_sort.h" #include "mldb/utils/possibly_dynamic_buffer.h" +#include "mldb/arch/atomic_min_max.h" using namespace std; namespace MLDB { -template -void atomic_min(std::atomic & val, T other) -{ - T current = val.load(std::memory_order_relaxed); - for (;;) { - if (other >= current) - return; - if (val.compare_exchange_weak(current, other, std::memory_order_relaxed)) - return; - } -} - -template -void atomic_max(std::atomic & val, T other) -{ - T current = val.load(std::memory_order_relaxed); - for (;;) { - if (other <= current) - return; - if (val.compare_exchange_weak(current, other, std::memory_order_relaxed)) - return; - } -} - void atomic_min(std::atomic & val, Date other) { atomic_min(val, other.secondsSinceEpoch()); diff --git a/plugins/behavior/testing/behavior_domain_read_bench.cc b/plugins/behavior/testing/behavior_domain_read_bench.cc index 21660b92c..0c09e326e 100644 --- a/plugins/behavior/testing/behavior_domain_read_bench.cc +++ b/plugins/behavior/testing/behavior_domain_read_bench.cc @@ -14,8 +14,6 @@ #include #include #include -#include -#include #include "mldb/utils/testing/benchmarks.h" diff --git a/plugins/hadoop/hdfs.cc b/plugins/hadoop/hdfs.cc index 04cb90a6d..ef702b261 100644 --- a/plugins/hadoop/hdfs.cc +++ b/plugins/hadoop/hdfs.cc @@ -7,7 +7,6 @@ #include #include -#include #include "hdfs/hdfs.h" #include diff --git a/plugins/textual/importtext_procedure.cc b/plugins/textual/importtext_procedure.cc index ced4bcc5c..cb7204f6e 100644 --- a/plugins/textual/importtext_procedure.cc +++ b/plugins/textual/importtext_procedure.cc @@ -1013,7 +1013,7 @@ struct ImportTextProcedureWorkInstance PerThreadAccumulator accum; - auto startChunk = [&] (int64_t chunkNumber, size_t lineNumber) + auto startChunk = [&] (int64_t chunkNumber, size_t lineNumber, int64_t numLinesInChunk) { auto & threadAccum = accum.get(); threadAccum.threadRecorder = recorder.newChunk(chunkNumber); @@ -1024,7 +1024,7 @@ struct ImportTextProcedureWorkInstance return true; }; - auto doneChunk = [&] (int64_t chunkNumber, size_t lineNumber) + auto doneChunk = [&] (int64_t chunkNumber, size_t lineNumber, int64_t numLinesInChunk) { auto & threadAccum = accum.get(); ExcAssert(threadAccum.threadRecorder.get()); @@ -1038,11 +1038,13 @@ struct ImportTextProcedureWorkInstance atomic lineCount(0); atomic byteCount(0); - auto onLine = [&] (const char * line, - size_t length, - int chunkNum, - int64_t lineNum) + + auto onLine = [&] (LineInfo lineInfo) { + auto lineNum = lineInfo.lineNumber; + const char * line = lineInfo.line.data(); + size_t length = lineInfo.line.size(); + try { auto & threadAccum = accum.get(); @@ -1083,9 +1085,11 @@ struct ImportTextProcedureWorkInstance return true; } - // MLDB-1111 empty lines are treated as error - if (length == 0) + // MLDB-1111 empty lines are treated as error, unless they are + // at the end of the file + if (length == 0) { return handleError("empty line", actualLineNum, 0, ""); + } // Values that come in from the CSV file @@ -1313,9 +1317,8 @@ struct ImportTextProcedureWorkInstance if(!config.allowMultiLines) { - forEachLineBlock(stream, onLine, config.limit, - numCpus() /* parallelism */, - startChunk, doneChunk); + namespace o = ForEachLine::options; + forEachLineBlock(stream, onLine, startChunk, doneChunk, o::maxLines=config.limit, o::outputTrailingEmptyLines=false); } else { // very simplistic and not efficient way of doing multi-line. we send @@ -1323,7 +1326,7 @@ struct ImportTextProcedureWorkInstance // we get an error that probably is caused by a multi- // line string, we concat the current line with the next // one and try again. - startChunk(0, 0); + startChunk(0, 0, -1 /* numLinesInChunk; unused */); string line; string t_line; @@ -1337,8 +1340,12 @@ struct ImportTextProcedureWorkInstance line += ' ' + t_line; } - if(!onLine(line.c_str(), line.size(), - 0 /* chunkNum */, lineNum)) { + LineInfo lineInfo { + .line = line, + .lineNumber = lineNum, + .lastLine = false, + }; + if(!onLine(lineInfo)) { prevLine.assign(std::move(line)); } else { prevLine.erase(); @@ -1349,7 +1356,7 @@ struct ImportTextProcedureWorkInstance break; } - doneChunk(0, lineNum); + doneChunk(0, lineNum, -1 /* numLinesInChunk */); } // Accumulate any from the end diff --git a/plugins/textual/json_importer.cc b/plugins/textual/json_importer.cc index 00b2f123e..9ed44eb8a 100644 --- a/plugins/textual/json_importer.cc +++ b/plugins/textual/json_importer.cc @@ -292,14 +292,14 @@ struct JSONImporter: public Procedure { PerThreadAccumulator accum; - auto startChunk = [&] (int64_t chunkNumber, size_t lineNumber) + auto startChunk = [&] (int64_t chunkNumber, size_t lineNumber, int64_t numLinesInChunk) { auto & threadAccum = accum.get(); threadAccum.threadRecorder = recorder.newChunk(chunkNumber); return true; }; - auto doneChunk = [&] (int64_t chunkNumber, size_t lineNumber) + auto doneChunk = [&] (int64_t chunkNumber, size_t lineNumber, int64_t numLinesInChunk) { auto & threadAccum = accum.get(); ExcAssert(threadAccum.threadRecorder.get()); @@ -392,8 +392,9 @@ struct JSONImporter: public Procedure { return keepGoing; }; - forEachLineBlock(stream, onLine, runProcConf.limit, 32, - startChunk, doneChunk); + namespace o = ForEachLine::options; + forEachLineBlock(stream, onLine, startChunk, doneChunk, o::maxLines=runProcConf.limit); + if (!keepGoing) { throw MLDB::CancellationException("Procedure import.json cancelled"); } diff --git a/python_requirements.txt b/python_requirements.txt index 5bd749c23..2b722f67a 100644 --- a/python_requirements.txt +++ b/python_requirements.txt @@ -34,6 +34,7 @@ requests==2.25.1 Pygments==2.9.0 setuptools==75.6.0 lz4==4.3.3 +pyzstd==0.16.2 # Fix requests broken dependencies urllib3==1.26.20 diff --git a/sql/builtin_functions.cc b/sql/builtin_functions.cc index 542eef3d6..4d70c0d74 100644 --- a/sql/builtin_functions.cc +++ b/sql/builtin_functions.cc @@ -3637,7 +3637,9 @@ BoundFunction fetcher(const std::vector & args) const char * mappedAddr; size_t mappedSize; - std::tie(mappedAddr, mappedSize) = stream.mapped(); + size_t mappedCapacity; + + std::tie(mappedAddr, mappedSize, mappedCapacity) = stream.mapped(); CellValue blob; if (mappedAddr) { @@ -3645,7 +3647,16 @@ BoundFunction fetcher(const std::vector & args) } else { std::ostringstream streamo; - streamo << stream.rdbuf(); + + // Could do stream << streambuf, but that eats exceptions which the + // users need to be able to see any fetcher errors + constexpr size_t BUFFER_SIZE = 16384; + while (stream) { + char buffer[BUFFER_SIZE]; + stream.read(buffer, BUFFER_SIZE); + streamo.write(buffer, stream.gcount()); + } + blob = CellValue::blob(streamo.str()); } stream.close(); diff --git a/testing/MLDB-1155_csv_line_endings.py b/testing/MLDB-1155_csv_line_endings.py index ed2fba79c..b207f03d9 100644 --- a/testing/MLDB-1155_csv_line_endings.py +++ b/testing/MLDB-1155_csv_line_endings.py @@ -4,6 +4,8 @@ # This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. # import gzip +import pyzstd +import lz4 import unittest import os from mldb import mldb, ResponseException @@ -231,5 +233,12 @@ class CsvLineEndingsCsv(CsvLineEndingsGeneric, unittest.TestCase): class CsvLineEndingsCsvGz(CsvLineEndingsGeneric, unittest.TestCase): data = {'open_fct' : gzip.open, 'ext' : '.csv.gz'} +class CsvLineEndingsCsvZstd(CsvLineEndingsGeneric, unittest.TestCase): + data = {'open_fct' : pyzstd.open, 'ext' : '.csv.zstd'} + +#class CsvLineEndingsCsvLz4(CsvLineEndingsGeneric, unittest.TestCase): +# data = {'open_fct' : lz4.decompress, 'ext' : '.csv.lz4'} + + if __name__ == '__main__': mldb.run_tests() diff --git a/types/any.cc b/types/any.cc index be415efbf..c72c0102f 100644 --- a/types/any.cc +++ b/types/any.cc @@ -22,6 +22,51 @@ namespace MLDB { /* ANY */ /*****************************************************************************/ +namespace { + +std::shared_ptr +initAnyFromJson(JsonParsingContext & context, + const ValueDescription * desc) +{ + ExcAssert(desc); + + void * ptr = nullptr; + if (desc->align < alignof(void *)) { + ptr = malloc(desc->width); + if (!ptr) + throw MLDB::Exception(errno, "malloc"); + } + else { + int res = posix_memalign(&ptr, desc->align, desc->width); + if (res != 0) + throw MLDB::Exception(res, "posix_memalign"); + } + + try { + desc->initializeDefault(ptr); + } MLDB_CATCH_ALL { + free(ptr); + throw; + } + + auto destruct = [desc] (void * ptr) + { + try { + desc->destruct(ptr); + } MLDB_CATCH_ALL { + free(ptr); + throw; + } + free(ptr); + }; + + std::shared_ptr result(ptr, std::move(destruct)); + desc->parseJson(result.get(), context); + return result; +} + +} // file scope + /** Construct directly from Json, with a known type */ Any:: Any(const Json::Value & val, @@ -30,8 +75,7 @@ Any(const Json::Value & val, desc_(desc) { StructuredJsonParsingContext context(val); - obj_.reset(desc->constructDefault(), [=] (void * obj) { desc->destroy(obj); }); - desc_->parseJson(obj_.get(), context); + obj_ = initAnyFromJson(context, desc); } Any:: @@ -42,8 +86,7 @@ Any(const std::string & jsonValString, { std::istringstream stream(jsonValString); StreamingJsonParsingContext context(jsonValString, stream); - obj_.reset(desc->constructDefault(), [=] (void * obj) { desc->destroy(obj); }); - desc_->parseJson(obj_.get(), context); + obj_ = initAnyFromJson(context, desc); } /** Get it as JSON */ @@ -175,13 +218,29 @@ throwNoValueDescription() const throw MLDB::Exception("Any had no type attached"); } +std::span +Any:: +asBytes() const +{ + return { (const std::byte *)obj_.get(), desc().width }; +} + bool operator==(const Any & lhs, const Any & rhs) { if (!lhs.desc_ || !rhs.desc_) { // we have no way to interpret the value - the best we can do is compare pointers return lhs.obj_ == rhs.obj_; } - else return lhs.asJsonStr() == rhs.asJsonStr(); + else if (lhs.desc_->type != rhs.desc_->type) { + // Cannot compare values if value descriptions are different + return false; + } + else if (lhs.desc_->hasEqualityComparison()) { + return lhs.desc_->compareEquality(lhs.obj_.get(), rhs.obj_.get()); + } + else { + return lhs.asJsonStr() == rhs.asJsonStr(); + } } struct AnyRep { @@ -235,13 +294,11 @@ parseJsonTyped(Any * val, // Get the default description for the type auto desc = ValueDescription::get(rep.typeName); - std::shared_ptr obj(desc->constructDefault(), - [=] (void * val) { desc->destroy(val); }); - + // Parse the payload StreamingJsonParsingContext pcontext(rep.payload, rep.payload.c_str(), rep.payload.size()); - desc->parseJson(obj.get(), pcontext); + auto obj = initAnyFromJson(pcontext, desc.get()); val->obj_ = std::move(obj); val->desc_ = desc.get(); diff --git a/types/any.h b/types/any.h index 900917bff..e8a1e5167 100644 --- a/types/any.h +++ b/types/any.h @@ -10,6 +10,8 @@ #include "mldb/types/value_description_fwd.h" #include "mldb/compiler/compiler.h" +#include + namespace MLDB { @@ -164,6 +166,9 @@ struct Any { */ Any getField(const std::string & fieldName) const; + // Return the underlying binary representation + std::span asBytes() const; + private: friend struct TypedAnyDescription; friend struct BareAnyDescription; diff --git a/types/array_description.h b/types/array_description.h index 7e3658f3e..1f37e84d0 100644 --- a/types/array_description.h +++ b/types/array_description.h @@ -98,10 +98,24 @@ struct ArrayDescription return val->empty(); } + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::FIXED; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::NONE; + } + + virtual size_t getArrayFixedLength() const override + { + return N; + } + virtual size_t getArrayLength(void * val) const override { - const std::array * val2 = reinterpret_cast *>(val); - return val2->size(); + return N; } virtual void * @@ -135,6 +149,6 @@ struct ArrayDescription }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(ArrayDescription, std::array, typename, T, size_t, N); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(ArrayDescription, std::array, typename, T, size_t, N, MLDB::has_default_description::value); } // namespace MLDB diff --git a/types/basic_value_descriptions.cc b/types/basic_value_descriptions.cc index 5a4777e97..e8f93041b 100644 --- a/types/basic_value_descriptions.cc +++ b/types/basic_value_descriptions.cc @@ -5,13 +5,16 @@ Jeremy Barnes, 19 August 2015 */ + #include "basic_value_descriptions.h" +#include "comparable_value_descriptions.h" +#include +#include namespace MLDB { - struct StringDescription - : public ValueDescriptionI { + : public OrderedComparableValueDescriptionI { virtual void parseJsonTyped(std::string * val, JsonParsingContext & context) const @@ -33,8 +36,8 @@ struct StringDescription template struct ValueDescriptionI; -class Utf8StringDescription - : public ValueDescriptionI { +struct Utf8StringDescription + : public OrderedComparableValueDescriptionI { virtual void parseJsonTyped(Utf8String * val, JsonParsingContext & context) const @@ -57,7 +60,7 @@ class Utf8StringDescription template struct ValueDescriptionI; struct Utf32StringDescription - : public ValueDescriptionI { + : public OrderedComparableValueDescriptionI { virtual void parseJsonTyped(Utf32String *val, JsonParsingContext & context) const { @@ -81,198 +84,120 @@ struct Utf32StringDescription template struct ValueDescriptionI; -struct CharDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(char * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); - } - - virtual void printJsonTyped(const char * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); - } -}; - -template struct ValueDescriptionI; - -struct SignedCharDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(signed char * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); - } - - virtual void printJsonTyped(const signed char * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); - } -}; - -template struct ValueDescriptionI; - -struct UnsignedCharDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(unsigned char * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); - } - - virtual void printJsonTyped(const unsigned char * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); - } -}; - -struct SignedShortIntDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(signed short int * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); - } - - virtual void printJsonTyped(const signed short int * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); - } -}; - -template struct ValueDescriptionI; - -struct UnsignedShortIntDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(unsigned short int * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); - } - - virtual void printJsonTyped(const unsigned short int * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); - } -}; - -template struct ValueDescriptionI; - -struct SignedIntDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(signed int * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); +template +struct IntegralValueDescription: public StrongComparableValueDescriptionI { + + static constexpr int Width = sizeof(T); + static constexpr bool Signed = std::is_signed_v; + + virtual void parseJsonTyped(T * val, + JsonParsingContext & context) const override + { + if constexpr (Signed) { + if constexpr (Width <= sizeof(int)) + *val = context.expectInt(); + else if constexpr (Width <= sizeof(long)) + *val = context.expectLong(); + else + *val = context.expectLongLong(); + } + else { + if constexpr (Width <= sizeof(int)) + *val = context.expectUnsignedInt(); + else if constexpr (Width <= sizeof(long)) + *val = context.expectUnsignedLong(); + else + *val = context.expectUnsignedLongLong(); + } } - virtual void printJsonTyped(const signed int * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); + virtual void printJsonTyped(const T * val, + JsonPrintingContext & context) const override + { + if constexpr (Signed) { + if constexpr (Width <= sizeof(int)) + context.writeInt(*val); + else if constexpr (Width <= sizeof(long)) + context.writeLong(*val); + else + context.writeLongLong(*val); + } + else { + if constexpr (Width <= sizeof(int)) + context.writeUnsignedInt(*val); + else if constexpr (Width <= sizeof(long)) + context.writeUnsignedLong(*val); + else + context.writeUnsignedLongLong(*val); + } + } + + virtual void extractBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const override + { + const auto & fromV = *reinterpret_cast(from); + auto & toV = *reinterpret_cast(to); + ExcAssertLess(bitWidth, Width * 8); + ExcAssertLessEqual(bitOffset + bitWidth, Width * 8); + toV = (fromV >> bitOffset) & ((T(1) << bitWidth)-1); + } + + virtual void insertBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const override + { + const auto & fromV = *reinterpret_cast(from); + auto & toV = *reinterpret_cast(to); + ExcAssertLessEqual(bitWidth, Width * 8); + ExcAssertLessEqual(bitOffset + bitWidth, Width * 8); + auto fromMask = (T(1) << bitWidth) - 1; + auto toMask = fromMask << bitOffset; + ExcAssertEqual((fromV & fromMask), 0); + toV = (toV & ~toMask) | (fromV << bitWidth); } }; -template struct ValueDescriptionI; -struct UnsignedIntDescription - : public ValueDescriptionI { +#define DEFINE_INTEGRAL_DESCRIPTION(Type, Desc) \ +struct Desc##Description : public IntegralValueDescription {}; \ +template struct ValueDescriptionI; \ +DEFINE_VALUE_DESCRIPTION(Type, Desc##Description) - virtual void parseJsonTyped(unsigned int * val, - JsonParsingContext & context) const - { - *val = context.expectInt(); - } - - virtual void printJsonTyped(const unsigned int * val, - JsonPrintingContext & context) const - { - context.writeInt(*val); - } -}; +DEFINE_INTEGRAL_DESCRIPTION(char, Char); +DEFINE_INTEGRAL_DESCRIPTION(unsigned char, UnsignedChar); +DEFINE_INTEGRAL_DESCRIPTION(signed char, SignedChar); +DEFINE_INTEGRAL_DESCRIPTION(unsigned short, UnsignedShort); +DEFINE_INTEGRAL_DESCRIPTION(signed short, SignedShort); +DEFINE_INTEGRAL_DESCRIPTION(unsigned int, UnsignedInt); +DEFINE_INTEGRAL_DESCRIPTION(signed int, SignedInt); +DEFINE_INTEGRAL_DESCRIPTION(unsigned long, UnsignedLong); +DEFINE_INTEGRAL_DESCRIPTION(signed long, SignedLong); +DEFINE_INTEGRAL_DESCRIPTION(unsigned long long, UnsignedLongLong); +DEFINE_INTEGRAL_DESCRIPTION(signed long long, SignedLongLong); -template struct ValueDescriptionI; -struct SignedLongDescription - : public ValueDescriptionI { +struct HalfValueDescription + : public PartialComparableValueDescriptionI { - virtual void parseJsonTyped(signed long * val, + virtual void parseJsonTyped(half * val, JsonParsingContext & context) const { - *val = context.expectLong(); - } - - virtual void printJsonTyped(const signed long * val, - JsonPrintingContext & context) const - { - context.writeLong(*val); + *val = context.expectFloat(); } -}; -template struct ValueDescriptionI; - -struct UnsignedLongDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(unsigned long * val, - JsonParsingContext & context) const - { - *val = context.expectUnsignedLong(); - } - - virtual void printJsonTyped(const unsigned long * val, - JsonPrintingContext & context) const + virtual void parseJson(void * val, + JsonParsingContext & context) const { - context.writeUnsignedLong(*val); + *(half *)val = context.expectFloat(); } -}; -struct SignedLongLongDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(signed long long * val, - JsonParsingContext & context) const - { - *val = context.expectLongLong(); - } - - virtual void printJsonTyped(const signed long long * val, + virtual void printJsonTyped(const half * val, JsonPrintingContext & context) const { - context.writeLongLong(*val); + context.writeFloat(*val); } }; -struct UnsignedLongLongDescription - : public ValueDescriptionI { - - virtual void parseJsonTyped(unsigned long long * val, - JsonParsingContext & context) const - { - *val = context.expectUnsignedLongLong(); - } - - virtual void printJsonTyped(const unsigned long long * val, - JsonPrintingContext & context) const - { - context.writeUnsignedLongLong(*val); - } -}; struct FloatValueDescription - : public ValueDescriptionI { + : public PartialComparableValueDescriptionI { virtual void parseJsonTyped(float * val, JsonParsingContext & context) const @@ -294,7 +219,7 @@ struct FloatValueDescription }; struct DoubleValueDescription - : public ValueDescriptionI { + : public PartialComparableValueDescriptionI { virtual void parseJsonTyped(double * val, JsonParsingContext & context) const @@ -310,7 +235,7 @@ struct DoubleValueDescription }; struct JsonValueDescription - : public ValueDescriptionI { + : public EqualityComparableValueDescriptionI { virtual void parseJsonTyped(Json::Value * val, JsonParsingContext & context) const @@ -331,7 +256,7 @@ struct JsonValueDescription }; struct BoolDescription - : public ValueDescriptionI { + : public StrongComparableValueDescriptionI { virtual void parseJsonTyped(bool * val, JsonParsingContext & context) const @@ -354,17 +279,7 @@ struct BoolDescription DEFINE_VALUE_DESCRIPTION(std::string, StringDescription); DEFINE_VALUE_DESCRIPTION(Utf8String, Utf8StringDescription); DEFINE_VALUE_DESCRIPTION(Utf32String, Utf32StringDescription); -DEFINE_VALUE_DESCRIPTION(char, CharDescription); -DEFINE_VALUE_DESCRIPTION(signed char, SignedCharDescription); -DEFINE_VALUE_DESCRIPTION(unsigned char, UnsignedCharDescription); -DEFINE_VALUE_DESCRIPTION(signed short int, SignedShortIntDescription); -DEFINE_VALUE_DESCRIPTION(unsigned short int, UnsignedShortIntDescription); -DEFINE_VALUE_DESCRIPTION(signed int, SignedIntDescription); -DEFINE_VALUE_DESCRIPTION(unsigned int, UnsignedIntDescription); -DEFINE_VALUE_DESCRIPTION(signed long, SignedLongDescription); -DEFINE_VALUE_DESCRIPTION(unsigned long, UnsignedLongDescription); -DEFINE_VALUE_DESCRIPTION(signed long long, SignedLongLongDescription); -DEFINE_VALUE_DESCRIPTION(unsigned long long, UnsignedLongLongDescription); +DEFINE_VALUE_DESCRIPTION(half, HalfValueDescription); DEFINE_VALUE_DESCRIPTION(float, FloatValueDescription); DEFINE_VALUE_DESCRIPTION(double, DoubleValueDescription); DEFINE_VALUE_DESCRIPTION(Json::Value, JsonValueDescription); diff --git a/types/compact_vector_description.h b/types/compact_vector_description.h index 03db86d48..ee994019d 100644 --- a/types/compact_vector_description.h +++ b/types/compact_vector_description.h @@ -66,6 +66,16 @@ struct CompactVectorDescription return val->empty(); } + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::VARIABLE; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::UNIQUE; + } + virtual size_t getArrayLength(void * val) const override { const compact_vector * val2 = reinterpret_cast *>(val); @@ -109,7 +119,8 @@ struct CompactVectorDescription DECLARE_TEMPLATE_VALUE_DESCRIPTION_6(CompactVectorDescription, compact_vector, typename, T, size_t, I, typename, S, - bool, Sf, typename, P, typename, A); + bool, Sf, typename, P, typename, A, + MLDB::has_default_description::value); diff --git a/types/comparable_value_descriptions.h b/types/comparable_value_descriptions.h new file mode 100644 index 000000000..4ab0beb58 --- /dev/null +++ b/types/comparable_value_descriptions.h @@ -0,0 +1,126 @@ +// This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + +/** basic_value_descriptions.cc + + Jeremy Barnes, 19 August 2015 +*/ + +#pragma once +#include "value_description.h" + +namespace MLDB { + +template +struct StrongComparableValueDescriptionI: public ValueDescriptionI { + static const Type & getValue(const void * val) { return *(const Type *)val; } + + virtual bool hasEqualityComparison() const override { return true; } + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return getValue(val1) == getValue(val2); + } + virtual bool hasLessThanComparison() const override { return true; } + virtual bool compareLessThan(const void * val1, const void * val2) const override + { + return getValue(val1) < getValue(val2); + } + virtual bool hasStrongOrderingComparison() const override + { + return true; + } + virtual std::strong_ordering compareStrong(const void * val1, const void * val2) const override + { + return getValue(val1) <=> getValue(val2); + } + + virtual bool hasWeakOrderingComparison() const override { return true; } + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const override + { + return getValue(val1) <=> getValue(val2); + } + + virtual bool hasPartialOrderingComparison() const override { return true; } + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const override + { + return getValue(val1) <=> getValue(val2); + } +}; + +template +struct WeakComparableValueDescriptionI: public ValueDescriptionI { + static const Type & getValue(const void * val) { return *(const Type *)val; } + + virtual bool hasEqualityComparison() const override { return true; } + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return getValue(val1) == getValue(val2); + } + virtual bool hasLessThanComparison() const override { return true; } + virtual bool compareLessThan(const void * val1, const void * val2) const override + { + return getValue(val1) < getValue(val2); + } + + virtual bool hasWeakOrderingComparison() const override { return true; } + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const override + { + return getValue(val1) <=> getValue(val2); + } + + virtual bool hasPartialOrderingComparison() const override { return true; } + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const override + { + return getValue(val1) <=> getValue(val2); + } +}; + +template +struct PartialComparableValueDescriptionI: public ValueDescriptionI { + static const Type & getValue(const void * val) { return *(const Type *)val; } + + virtual bool hasEqualityComparison() const override { return true; } + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return getValue(val1) == getValue(val2); + } + virtual bool hasLessThanComparison() const override { return true; } + virtual bool compareLessThan(const void * val1, const void * val2) const override + { + return getValue(val1) < getValue(val2); + } + + virtual bool hasPartialOrderingComparison() const override { return true; } + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const override + { + return getValue(val1) <=> getValue(val2); + } +}; + +template +struct OrderedComparableValueDescriptionI: public ValueDescriptionI { + static const Type & getValue(const void * val) { return *(const Type *)val; } + + virtual bool hasEqualityComparison() const override { return true; } + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return getValue(val1) == getValue(val2); + } + virtual bool hasLessThanComparison() const override { return true; } + virtual bool compareLessThan(const void * val1, const void * val2) const override + { + return getValue(val1) < getValue(val2); + } +}; + +template +struct EqualityComparableValueDescriptionI: public ValueDescriptionI { + static const Type & getValue(const void * val) { return *(const Type *)val; } + + virtual bool hasEqualityComparison() const override { return true; } + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return getValue(val1) == getValue(val2); + } +}; + +} // namespace MLDB diff --git a/types/distribution_description.h b/types/distribution_description.h index 79ed47100..be34162a3 100644 --- a/types/distribution_description.h +++ b/types/distribution_description.h @@ -86,6 +86,16 @@ struct DistributionValueDescription return val2->size(); } + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::VARIABLE; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::UNIQUE; + } + virtual void * getArrayElement(void * val, uint32_t element) const override { distribution * val2 = reinterpret_cast *>(val); @@ -116,7 +126,7 @@ struct DistributionValueDescription } }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(DistributionValueDescription, distribution, typename, T, class, Underlying); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(DistributionValueDescription, distribution, typename, T, class, Underlying, MLDB::has_default_description::value); MLDB::ValueDescriptionT > * getDefaultDescription(const distribution * = 0); diff --git a/types/dtoa_impl.cc b/types/dtoa_impl.cc index 37de12630..64113ff07 100644 --- a/types/dtoa_impl.cc +++ b/types/dtoa_impl.cc @@ -103,15 +103,16 @@ std::string dtoa_impl(double floatVal, int mode, int numDigits, int biasAgainstS toReturn.insert(2, "0"); } else { + auto ndigits = toReturn.size(); size_t lenScientific - = toReturn.size() // digits - + (toReturn.size() > 1 ? 1 : 0) // decimal point + = ndigits // digits + + (ndigits > 1 ? 1 : 0) // decimal point + 1 // e + std::to_string(decpt-1).size(); // exponent size_t lenNormal = toReturn.size() // digits - + (decpt > 1 ? decpt - 1 : 0); // extra zeros + + (decpt > 1 ? decpt - ndigits : 0); // extra zeros if (debug) { cerr << "working on decpt" << endl; @@ -121,8 +122,8 @@ std::string dtoa_impl(double floatVal, int mode, int numDigits, int biasAgainstS } if (decpt > 1 && lenNormal <= lenScientific + biasAgainstScientific) { // If it's short enough then just add zeros, so we don't get 10 -> 1e1 - if (debug) cerr << "appending " << decpt - 1 << " zeros" << endl; - toReturn.append(decpt - 1, '0'); + if (debug) cerr << "appending " << decpt - ndigits << " zeros" << endl; + toReturn.append(decpt - ndigits, '0'); ExcAssertEqual(toReturn.size(), lenNormal); } else { diff --git a/types/enum_description.h b/types/enum_description.h index 6cbda188d..86aa171f6 100644 --- a/types/enum_description.h +++ b/types/enum_description.h @@ -13,19 +13,17 @@ namespace MLDB { - /*****************************************************************************/ /* ENUM DESCRIPTION */ /*****************************************************************************/ -template +template> struct EnumDescription: public ValueDescriptionT { - using Underlying = std::underlying_type_t; - - EnumDescription() + EnumDescription(std::shared_ptr underlying = getDefaultDescriptionSharedT()) : ValueDescriptionT(ValueKind::ENUM), - hasDefault(false), defaultValue(Enum(0)) + hasDefault(false), defaultValue(Enum(0)), + underlying(std::move(underlying)) { } @@ -44,11 +42,11 @@ struct EnumDescription: public ValueDescriptionT { { auto it = print.find(e); if (it == print.end()) - return std::to_string((int)e); + return std::to_string((Underlying)e); else return it->second.first; } - virtual void parseJsonTyped(Enum * val, JsonParsingContext & context) const + virtual void parseJsonTyped(Enum * val, JsonParsingContext & context) const override { if (context.isNull()) { context.exception("NULL value found parsing enumeration " @@ -69,7 +67,7 @@ struct EnumDescription: public ValueDescriptionT { *val = (Enum)context.expectInt(); } - virtual void printJsonTyped(const Enum * val, JsonPrintingContext & context) const ATTRIBUTE_NO_SANITIZE_UNDEFINED + virtual void printJsonTyped(const Enum * val, JsonPrintingContext & context) const override ATTRIBUTE_NO_SANITIZE_UNDEFINED { auto it = print.find(static_cast(*val)); if (it == print.end()) @@ -77,20 +75,31 @@ struct EnumDescription: public ValueDescriptionT { else context.writeString(it->second.first); } - virtual bool isDefaultTyped(const Enum * val) const + virtual bool isDefaultTyped(const Enum * val) const override { if (!hasDefault) return false; return *val == defaultValue; } - virtual void setDefaultTyped(Enum * val) const + virtual void setDefaultTyped(Enum * val) const override { *val = defaultValue; } + virtual const ValueDescription & contained() const override + { + return *underlying; + } + + virtual std::shared_ptr containedPtr() const override + { + return underlying; + } + bool hasDefault; Enum defaultValue; + std::shared_ptr underlying; void setDefaultValue(Enum value) { @@ -104,7 +113,7 @@ struct EnumDescription: public ValueDescriptionT { throw MLDB::Exception("double added name '" + name + "' to enum '" + this->typeName + "'"); - print.insert({ value, { name, "" } }); + print.insert({ static_cast(value), { name, "" } }); } void addValue(const std::string & name, Enum value, @@ -116,7 +125,7 @@ struct EnumDescription: public ValueDescriptionT { } virtual std::vector > - getEnumValues() const + getEnumValues() const override { std::vector > result; for (auto & v: print) @@ -124,7 +133,7 @@ struct EnumDescription: public ValueDescriptionT { return result; } - virtual const std::vector getEnumKeys() const + virtual const std::vector getEnumKeys() const override { std::vector res; for (const auto & it: print) { @@ -133,6 +142,16 @@ struct EnumDescription: public ValueDescriptionT { return res; } + virtual void extractBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const override + { + underlying->extractBitField(from, to, bitOffset, bitWidth); + } + + virtual void insertBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const override + { + underlying->insertBitField(from, to, bitOffset, bitWidth); + } + std::unordered_map parse; std::map > print; }; diff --git a/types/exception_description.cc b/types/exception_description.cc new file mode 100644 index 000000000..c3d6e1483 --- /dev/null +++ b/types/exception_description.cc @@ -0,0 +1,74 @@ +/* exception_description.cc -*- C++ -*- + Jeremy Barnes, 29 March 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. +*/ + +#include "exception_description.h" +#include "value_description.h" +#include "annotated_exception.h" + +namespace MLDB { + +struct ExceptionPtrDescription: public ValueDescriptionT { + + + virtual void parseJsonTyped(std::exception_ptr * val, + JsonParsingContext & context) const override + { + MLDB_THROW_UNIMPLEMENTED("can't parse exception pointers"); + } + + virtual void printJsonTyped(const std::exception_ptr * val, + JsonPrintingContext & context) const override + { + if (!(*val)) { + context.writeNull(); + return; + } + + MLDB_TRACE_EXCEPTIONS(false); + + context.startObject(); + + try { + std::rethrow_exception(*val); + } catch (const AnnotatedException & exc) { + context.startMember("message"); + context.writeStringUtf8(getUtf8ExceptionString()); + context.startMember("type"); + context.writeString(demangle(typeid(exc).name())); + context.startMember("httpCode"); + context.writeInt(exc.httpCode); + if (!exc.details.empty()) { + context.startMember("details"); + std::shared_ptr desc = getDefaultDescriptionSharedT(); + desc->printJson(&exc.details, context); + } + } catch (const std::exception & exc) { + context.startMember("message"); + context.writeStringUtf8(getUtf8ExceptionString()); + context.startMember("type"); + context.writeString(demangle(typeid(exc).name())); + } catch (...) { + context.startMember("message"); + context.writeStringUtf8(getUtf8ExceptionString()); + } + + context.endObject(); + } + + virtual bool isDefaultTyped(const std::exception_ptr * val) const override + { + return !(*val); + } +}; + +} // namespace MLDB + +namespace std { + +DEFINE_VALUE_DESCRIPTION_NS(std::exception_ptr, MLDB::ExceptionPtrDescription); + +} // namespace std diff --git a/types/exception_description.h b/types/exception_description.h new file mode 100644 index 000000000..48e7ce9a0 --- /dev/null +++ b/types/exception_description.h @@ -0,0 +1,17 @@ +/* exception_description.h -*- C++ -*- + Jeremy Barnes, 29 March 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. +*/ + +#pragma once + +#include "value_description_fwd.h" +#include + +namespace std { + +PREDECLARE_VALUE_DESCRIPTION(std::exception_ptr); + +} // namespace std diff --git a/types/generic_array_description.cc b/types/generic_array_description.cc new file mode 100644 index 000000000..0480dfbaa --- /dev/null +++ b/types/generic_array_description.cc @@ -0,0 +1,201 @@ +/** generic_array_description.cc -*- C++ -*- + Jeremy Barnes, 4 January 2015 + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Description of generic arrays +*/ + +#include "generic_array_description.h" + +namespace MLDB { + +GenericFixedLengthArrayDescription:: +GenericFixedLengthArrayDescription(size_t width, + size_t align, + const std::string & typeName, + std::shared_ptr inner, + size_t fixedLength) + : ValueDescription(ValueKind::ARRAY, nullptr, width, align, typeName), + inner(inner), fixedLength(fixedLength) +{ + ExcAssert(inner); + ExcAssertEqual(width, inner->width * fixedLength); +} + +void +GenericFixedLengthArrayDescription:: +parseJson(void * val, + JsonParsingContext & context) const +{ + if (!context.isArray()) + context.exception("expected array of " + inner->typeName); + + size_t i = 0; + auto onElement = [&] () + { + if (i >= fixedLength) + context.exception("too many elements in array"); + inner->parseJson(getElement(val, i++), context); + }; + + context.forEachElement(onElement); + + if (i != fixedLength) { + context.exception("not enough elements in array; expecting " + + std::to_string(fixedLength) + " but got " + + std::to_string(i)); + } +} + +void +GenericFixedLengthArrayDescription:: +printJson(const void * val, + JsonPrintingContext & context) const +{ + context.startArray(fixedLength); + + for (size_t i = 0; i < fixedLength; ++i) { + context.newArrayElement(); + inner->printJson(getElement(val, i), context); + } + + context.endArray(); +} + +bool +GenericFixedLengthArrayDescription:: +isDefault(const void * val) const +{ + return false; // for now +} + +LengthModel +GenericFixedLengthArrayDescription:: +getArrayLengthModel() const +{ + return LengthModel::FIXED; +} + +OwnershipModel +GenericFixedLengthArrayDescription:: +getArrayIndirectionModel() const +{ + return OwnershipModel::NONE; +} + +size_t +GenericFixedLengthArrayDescription:: +getArrayFixedLength() const +{ + return fixedLength; +} + +size_t +GenericFixedLengthArrayDescription:: +getArrayLength(void * val) const +{ + return fixedLength; +} + +void * +GenericFixedLengthArrayDescription:: +getArrayElement(void * val, uint32_t element) const +{ + return getElement(val, element); +} + +const void * +GenericFixedLengthArrayDescription:: +getArrayElement(const void * val, uint32_t element) const +{ + return getElement(val, element); +} + +const ValueDescription & +GenericFixedLengthArrayDescription:: +contained() const +{ + return *this->inner; +} + +std::shared_ptr +GenericFixedLengthArrayDescription:: +containedPtr() const +{ + return this->inner; +} + +void +GenericFixedLengthArrayDescription:: +setDefault(void * val) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->setDefault(getElement(val, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +copyValue(const void * from, void * to) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->copyValue(getElement(from, i), getElement(to, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +moveValue(void * from, void * to) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->moveValue(getElement(from, i), getElement(to, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +swapValues(void * from, void * to) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->swapValues(getElement(from, i), getElement(to, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +initializeDefault(void * mem) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->initializeDefault(getElement(mem, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +initializeCopy(void * mem, const void * other) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->initializeCopy(getElement(mem, i), getElement(other, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +initializeMove(void * mem, void * other) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->initializeMove(getElement(mem, i), getElement(other, i)); + } +} + +void +GenericFixedLengthArrayDescription:: +destruct(void * mem) const +{ + for (size_t i = 0; i < fixedLength; ++i) { + inner->destruct(getElement(mem, i)); + } +} + +} // namespace MLDB + diff --git a/types/generic_array_description.h b/types/generic_array_description.h new file mode 100644 index 000000000..1a04982b7 --- /dev/null +++ b/types/generic_array_description.h @@ -0,0 +1,67 @@ +/** generic_array_description.h -*- C++ -*- + Jeremy Barnes, 4 January 2015 + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Description of generic arrays +*/ + +#pragma once + +#include "mldb/types/value_description.h" + +namespace MLDB { + +// Value description for a generic fixed-length array of values. Does not need to mirror +// a C++ type. Models std::array. + +struct GenericFixedLengthArrayDescription + : public ValueDescription { + + GenericFixedLengthArrayDescription(size_t width, + size_t align, + const std::string & typeName, + std::shared_ptr inner, + size_t fixedLength); + + std::shared_ptr inner; + size_t fixedLength = 0; + + inline std::byte * getElement(void * valIn, size_t elNum) const + { + std::byte * val = (std::byte *)valIn; + ExcAssertLess(elNum, fixedLength); + return val + (inner->width * elNum); + } + + inline const std::byte * getElement(const void * valIn, size_t elNum) const + { + const std::byte * val = (const std::byte *)valIn; + ExcAssertLess(elNum, fixedLength); + return val + (inner->width * elNum); + } + + virtual void parseJson(void * val, + JsonParsingContext & context) const override; + virtual void printJson(const void * val, + JsonPrintingContext & context) const override; + virtual bool isDefault(const void * val) const override; + virtual LengthModel getArrayLengthModel() const override; + virtual OwnershipModel getArrayIndirectionModel() const override; + virtual size_t getArrayFixedLength() const override; + virtual size_t getArrayLength(void * val) const override; + virtual void * getArrayElement(void * val, uint32_t element) const override; + virtual const void * getArrayElement(const void * val, uint32_t element) const override; + virtual const ValueDescription & contained() const override; + virtual std::shared_ptr containedPtr() const override; + virtual void setDefault(void * val) const override; + virtual void copyValue(const void * from, void * to) const override; + virtual void moveValue(void * from, void * to) const override; + virtual void swapValues(void * from, void * to) const override; + virtual void initializeDefault(void * mem) const override; + virtual void initializeCopy(void * mem, const void * other) const override; + virtual void initializeMove(void * mem, void * other) const override; + virtual void destruct(void * mem) const override; +}; + +} // namespace MLDB + diff --git a/types/generic_atom_description.cc b/types/generic_atom_description.cc new file mode 100644 index 000000000..30eddbdeb --- /dev/null +++ b/types/generic_atom_description.cc @@ -0,0 +1,107 @@ +/** generic_atom_description.cc -*- C++ -*- + Jeremy Barnes, 4 January 2015 + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Description of generic atom types +*/ + +#include "generic_atom_description.h" + +#define THROW_NOT_SUPPORTED do { throw MLDB::Exception(std::string("Not supported: ") + __PRETTY_FUNCTION__ + " at " + __FILE__ + ":" + std::to_string(__LINE__)); } while (false) // + " at " + __FILE__ + ":" + __LINE__) + +namespace MLDB { + +GenericAtomDescription:: +GenericAtomDescription(size_t width, + size_t align, + const std::string & typeName, + const std::type_info * type) + : ValueDescription(ValueKind::ATOM, type, width, align, typeName) +{ + if (width > MAX_WIDTH) + throw LogicError("Atoms can't be more than 64 bytes"); +} + +void +GenericAtomDescription:: +parseJson(void * val, + JsonParsingContext & context) const +{ + THROW_NOT_SUPPORTED; +} + +void +GenericAtomDescription:: +printJson(const void * val, + JsonPrintingContext & context) const +{ + THROW_NOT_SUPPORTED; +} + +bool +GenericAtomDescription:: +isDefault(const void * val) const +{ + return false; +} + +void +GenericAtomDescription:: +setDefault(void * val) const +{ + THROW_NOT_SUPPORTED; +} + +void +GenericAtomDescription:: +copyValue(const void * from, void * to) const +{ + memcpy(to, from, width); +} + +void +GenericAtomDescription:: +moveValue(void * from, void * to) const +{ + memcpy(to, from, width); +} + +void +GenericAtomDescription:: +swapValues(void * from, void * to) const +{ + std::byte tmp[MAX_WIDTH]; + memcpy(tmp, from, width); + memcpy(from, to, width); + memcpy(to, tmp, width); +} + +void +GenericAtomDescription:: +initializeDefault(void * mem) const +{ + THROW_NOT_SUPPORTED; +} + +void +GenericAtomDescription:: +initializeCopy(void * mem, const void * other) const +{ + memcpy(mem, other, width); +} + +void +GenericAtomDescription:: +initializeMove(void * mem, void * other) const +{ + memcpy(mem, other, width); +} + +void +GenericAtomDescription:: +destruct(void * mem) const +{ +} + +} // namespace MLDB + diff --git a/types/generic_atom_description.h b/types/generic_atom_description.h new file mode 100644 index 000000000..b72209964 --- /dev/null +++ b/types/generic_atom_description.h @@ -0,0 +1,43 @@ +/** generic_array_description.h -*- C++ -*- + Jeremy Barnes, 4 January 2015 + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Description of generic arrays +*/ + +#pragma once + +#include "mldb/types/value_description.h" + +namespace MLDB { + +// Value description for a generic atomic type (whose representation is trivial) with a fixed +// number of bytes. + +struct GenericAtomDescription + : public ValueDescription { + + static constexpr size_t MAX_WIDTH = 64; // max number of bytes a generic atom can be + + GenericAtomDescription(size_t width, + size_t align, + const std::string & typeName, + const std::type_info * type = nullptr); + + virtual void parseJson(void * val, + JsonParsingContext & context) const override; + virtual void printJson(const void * val, + JsonPrintingContext & context) const override; + virtual bool isDefault(const void * val) const override; + virtual void setDefault(void * val) const override; + virtual void copyValue(const void * from, void * to) const override; + virtual void moveValue(void * from, void * to) const override; + virtual void swapValues(void * from, void * to) const override; + virtual void initializeDefault(void * mem) const override; + virtual void initializeCopy(void * mem, const void * other) const override; + virtual void initializeMove(void * mem, void * other) const override; + virtual void destruct(void * mem) const override; +}; + +} // namespace MLDB + diff --git a/types/generic_enum_description.h b/types/generic_enum_description.h new file mode 100644 index 000000000..4741822ad --- /dev/null +++ b/types/generic_enum_description.h @@ -0,0 +1,195 @@ +/** generic_enum_description.h -*- C++ -*- + Jeremy Barnes, 21 August 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Value description for an enum. +*/ + +#pragma once + +#include "value_description.h" +#include "mldb/compiler/compiler.h" + +namespace MLDB { + + +/*****************************************************************************/ +/* GENERIC ENUM DESCRIPTION */ +/*****************************************************************************/ + +/** Enum description that's not based on a C++ type. */ + +struct GenericEnumDescription: public ValueDescription { + GenericEnumDescription(std::shared_ptr underlying, std::string typeName, + const std::type_info * type = nullptr) + : ValueDescription(ValueKind::ENUM, type, underlying->width, underlying->align, std::move(typeName)), + underlying(std::move(underlying)) + { + } + + using Enum = int; + std::shared_ptr defaultValue; + std::shared_ptr underlying; + std::unordered_map parse; + std::map > print; + + /** Parse the value of the enum which is already in a string. */ + Enum parseString(const std::string & s) const + { + auto it = parse.find(s); + if (it == parse.end()) + throw MLDB::Exception("unknown value for " + this->typeName + + ": " + s); + return it->second; + } + + /** Convert the value of the enum to a string that represents the value. */ + std::string printString(Enum e) const + { + auto it = print.find(e); + if (it == print.end()) + return std::to_string(e); + else return it->second.first; + } + + Enum getValue(const void * val) const + { + auto jval = underlying->printJsonStructured(val); + return jval.asInt(); + } + + void setValue(void * val, Enum to) const + { + // TODO: anything but JSON... + Json::Value jval(to); + StructuredJsonParsingContext context(jval); + underlying->parseJson(val, context); + } + + virtual void parseJson(void * val, JsonParsingContext & context) const override + { + if (context.isNull()) { + context.exception("NULL value found parsing enumeration " + + this->typeName + "; expected either a " + "string or an integer"); + } + + if (context.isString()) { + std::string s = context.expectStringAscii(); + auto it = parse.find(s); + if (it == parse.end()) + context.exception("unknown value for " + this->typeName + + ": " + s); + setValue(val, it->second); + return; + } + + // Otherwise, it was serialized directly as an integer + underlying->parseJson(val, context); + } + + virtual void printJson(const void * val, JsonPrintingContext & context) const override + { + auto val2 = getValue(val); + auto it = print.find(val2); + if (it == print.end()) + underlying->printJson(val, context); + else context.writeString(it->second.first); + } + + virtual bool isDefault(const void * val) const override + { + if (!defaultValue) + return false; + return underlying->compareEquality(val, defaultValue.get()); + } + + virtual void setDefault(void * val) const override + { + if (!defaultValue) + underlying->setDefault(val); + } + + virtual void copyValue(const void * from, void * to) const override + { + underlying->copyValue(from, to); + } + + virtual void moveValue(void * from, void * to) const override + { + underlying->moveValue(from, to); + } + + virtual void swapValues(void * from, void * to) const override + { + underlying->swapValues(from, to); + } + + virtual void initializeDefault(void * obj) const override + { + if (!defaultValue) { + underlying->initializeDefault(obj); + return; + } + underlying->initializeCopy(obj, defaultValue.get()); + } + + virtual void initializeCopy(void * obj, const void * other) const override + { + underlying->initializeCopy(obj, other); + } + + virtual void initializeMove(void * obj, void * other) const override + { + underlying->initializeMove(obj, other); + } + + virtual void destruct(void * obj) const override + { + underlying->destruct(obj); + } + + void setDefaultValue(Enum value) + { + throw MLDB::Exception("setDefaultValue"); + } + + void addValue(const std::string & name, Enum value) + { + if (!parse.insert(make_pair(name, value)).second) + throw MLDB::Exception("double added name '" + name + "' to enum '" + + this->typeName + "'"); + + print.insert({ value, { name, "" } }); + } + + void addValue(const std::string & name, Enum value, + const std::string & description) + { + if (!parse.insert(make_pair(name, value)).second) + throw MLDB::Exception("double added name to enum"); + print.insert({ value, { name, description } }); + } + + virtual std::vector > + getEnumValues() const override + { + std::vector > result; + for (auto & v: print) + result.emplace_back((int)v.first, v.second.first, v.second.second); + return result; + } + + virtual const std::vector getEnumKeys() const override + { + std::vector res; + for (const auto & it: print) { + res.push_back(it.second.first); + } + return res; + } +}; + + +} // namespace MLDB diff --git a/types/hash_wrapper.h b/types/hash_wrapper.h index b5be0701b..f36d173cf 100644 --- a/types/hash_wrapper.h +++ b/types/hash_wrapper.h @@ -135,8 +135,8 @@ typedef HashWrapper<2> VH; ///< Verb Hash template struct HashWrapperDescription; template struct IntWrapperDescription; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(HashWrapper, HashWrapperDescription, int, Domain); -DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(IntWrapper, IntWrapperDescription, typename, Int, int, Domain); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(HashWrapper, HashWrapperDescription, int, Domain, true /* enable */); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(IntWrapper, IntWrapperDescription, typename, Int, int, Domain, true /* enable */); // Allow it to be used as part of a REST interface diff --git a/types/json_parsing.cc b/types/json_parsing.cc index 2d7478f85..78f18bb4c 100644 --- a/types/json_parsing.cc +++ b/types/json_parsing.cc @@ -898,24 +898,6 @@ bool matchJsonNumber(ParseContext & context, JsonNumber & result) return true; } -#if 0 -/** Match a JSON number. */ -bool matchJsonNumber(ParseContext & context, JsonNumber & num) -{ - ParseContext::Revert_Token token(context); - try { - MLDB_TRACE_EXCEPTIONS(false); - auto res = expectJsonNumber(context); - token.ignore(); - num = res; - return true; - } - MLDB_CATCH_ALL { - return false; - } -} -#endif - /*****************************************************************************/ /* JSON PATH ENTRY */ /*****************************************************************************/ diff --git a/types/json_printing.cc b/types/json_printing.cc index 96f9c27af..ca91ad88b 100644 --- a/types/json_printing.cc +++ b/types/json_printing.cc @@ -801,8 +801,16 @@ Utf8StringJsonPrintingContext(Utf8String & str) StructuredJsonPrintingContext:: StructuredJsonPrintingContext(Json::Value & output) - : output(output), current(&output) { + reset(output); +} + +void +StructuredJsonPrintingContext:: +reset(Json::Value & newOutput) +{ + outputPtr = current = &newOutput; + path.clear(); path.reserve(8); } diff --git a/types/json_printing.h b/types/json_printing.h index b8bb60639..4501bfa25 100644 --- a/types/json_printing.h +++ b/types/json_printing.h @@ -24,6 +24,12 @@ void jsonEscape(const std::string & str, std::ostream & out); void jsonEscape(const std::string & str, std::string & out); +void jsonEscape(const char * str, size_t len, std::ostream & out); + +void jsonEscape(const char * str, size_t len, std::string & out); + +std::string jsonEscape(const char * str, size_t len); + bool isJsonValidAscii(char c); /*****************************************************************************/ @@ -244,11 +250,13 @@ struct Utf8StringJsonPrintingContext struct StructuredJsonPrintingContext : public JsonPrintingContext { - Json::Value & output; + Json::Value * outputPtr; Json::Value * current; StructuredJsonPrintingContext(Json::Value & output); + void reset(Json::Value & newOutput); + std::vector path; virtual void startObject(); diff --git a/types/map_description.h b/types/map_description.h index a5f8657f1..8b5e4750d 100644 --- a/types/map_description.h +++ b/types/map_description.h @@ -199,6 +199,6 @@ struct MapDescription } }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_4(MapDescription, std::map, typename, Key, typename, Value, typename, Compare, typename, Alloc); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_4(MapDescription, std::map, typename, Key, typename, Value, typename, Compare, typename, Alloc, (MLDB::all_have_default_descriptions::value)); } // namespace MLDB diff --git a/types/meta_value_description.cc b/types/meta_value_description.cc index e7f5472f0..1811920ac 100644 --- a/types/meta_value_description.cc +++ b/types/meta_value_description.cc @@ -12,23 +12,26 @@ #include "mldb/types/structure_description.h" #include "mldb/types/vector_description.h" #include "mldb/types/pointer_description.h" +#include "mldb/types/optional_description.h" +#include "mldb/types/generic_array_description.h" +#include "mldb/types/generic_enum_description.h" +#include -namespace MLDB { +using namespace std; -DEFINE_ENUM_DESCRIPTION(ValueKind); +namespace MLDB { -ValueKindDescription:: -ValueKindDescription() +DEFINE_ENUM_DESCRIPTION_INLINE(ValueKind) { addValue("ATOM", ValueKind::ATOM, "Atomic structured type; normally JSON"); addValue("INTEGER", ValueKind::INTEGER, "Integral type"); - addValue("FLOAT", ValueKind::INTEGER, "Floating point type"); + addValue("FLOAT", ValueKind::FLOAT, "Floating point type"); addValue("BOOLEAN", ValueKind::BOOLEAN, "Boolean type"); addValue("STRING", ValueKind::STRING, "String type"); addValue("ENUM", ValueKind::ENUM, "Enumerated type"); - addValue("OPTIONAL", ValueKind::ENUM, "Optional type"); - addValue("LINK", ValueKind::ENUM, "Link (reference to other object)"); + addValue("OPTIONAL", ValueKind::OPTIONAL, "Optional type"); + addValue("LINK", ValueKind::LINK, "Link (reference to other object)"); addValue("ARRAY", ValueKind::ARRAY, "Array type"); addValue("STRUCTURE",ValueKind::STRUCTURE,"Structure type"); addValue("TUPLE", ValueKind::TUPLE, "Tuple type"); @@ -37,10 +40,20 @@ ValueKindDescription() addValue("ANY", ValueKind::ANY, "Can be any type"); } -DEFINE_STRUCTURE_DESCRIPTION(EnumValueRepr); +DEFINE_ENUM_DESCRIPTION_INLINE(OwnershipModel) +{ + addValue("NONE", OwnershipModel::NONE, "Indirect values are not owned"); + addValue("SHARED", OwnershipModel::SHARED, "Ownership of indirect values is shared"); + addValue("UNIQUE", OwnershipModel::UNIQUE, "Ownership of indirect values is exclusive"); +} -EnumValueReprDescription:: -EnumValueReprDescription() +DEFINE_ENUM_DESCRIPTION_INLINE(LengthModel) +{ + addValue("FIXED", LengthModel::FIXED, "Length is fixed & implicit"); + addValue("VARIABLE", LengthModel::VARIABLE, "Length is variable & stored with data"); +} + +DEFINE_STRUCTURE_DESCRIPTION_INLINE(EnumValueRepr) { addField("val", &EnumValueRepr::val, "Integral value of enumeration"); @@ -50,10 +63,7 @@ EnumValueReprDescription() "Human-readable comment on meaning of value"); } -DEFINE_STRUCTURE_DESCRIPTION(StructureFieldRepr); - -StructureFieldReprDescription:: -StructureFieldReprDescription() +DEFINE_STRUCTURE_DESCRIPTION_INLINE(StructureFieldRepr) { addField("name", &StructureFieldRepr::fieldName, "Name of the field in the structure"); @@ -67,10 +77,7 @@ StructureFieldReprDescription() "Default value of field"); } -DEFINE_STRUCTURE_DESCRIPTION(ValueDescriptionRepr); - -ValueDescriptionReprDescription:: -ValueDescriptionReprDescription() +DEFINE_STRUCTURE_DESCRIPTION_INLINE(ValueDescriptionRepr) { addField("kind", &ValueDescriptionRepr::kind, "Broad categorization of type"); @@ -90,17 +97,61 @@ ValueDescriptionReprDescription() "Type that is contained"); addField("elements", &ValueDescriptionRepr::tupleElements, "Elements of tuple"); + addField("lengthModel", &ValueDescriptionRepr::lengthModel, + "Array or map length model"); + addField("elementModel", &ValueDescriptionRepr::elementModel, + "Array element ownership model"); + addField("fixedLength", &ValueDescriptionRepr::fixedLength, + "Array length when this is fixed and implicit in the definition"); + addField("width", &ValueDescriptionRepr::width, + "width in bytes of an ATOM type", (size_t)0); + addField("align", &ValueDescriptionRepr::align, + "alignment in bytes of an ATOM type", (size_t)0); } -static Json::Value getDefaultValue(const ValueDescription & description) +Json::Value getDefaultValue(const ValueDescription & description) { - void * val = description.constructDefault(); - if (!val) - return Json::Value(); + void * ptr = nullptr; + if (description.align < 8) { + ptr = malloc(description.width); + if (!ptr) { + MLDB_THROW_BAD_ALLOC("Couldn't allocate memory for default value"); + } + ExcAssertEqual(((size_t)ptr) % description.align, 0); + } + else { + int res = posix_memalign(&ptr, description.align, description.width); + if (res != 0) { + using namespace std; + cerr << "align: " << description.align << endl; + cerr << "width: " << description.width << endl; + cerr << "type: " << description.typeName << endl; + throw MLDB::Exception(errno, "posix_memalign"); + } + } + try { + description.initializeDefault(ptr); + } MLDB_CATCH_ALL { + free(ptr); + throw; + } + + auto destruct = [desc=&description] (void * ptr) + { + try { + desc->destruct(ptr); + } MLDB_CATCH_ALL { + free(ptr); + throw; + } + free(ptr); + }; + + std::shared_ptr result(ptr, std::move(destruct)); + Json::Value jval; StructuredJsonPrintingContext context(jval); - description.printJson(val, context); - description.destroy(val); + description.printJson(result.get(), context); return jval; } @@ -115,12 +166,18 @@ getRepr(const ValueDescription & desc, bool detailed) result.cppType = demangle(desc.type->name()); result.documentationUri = desc.documentationUri; //result.parents = desc.parents; - + + result.width = desc.width; + result.align = desc.align; + switch (desc.kind) { - case ValueKind::ATOM: case ValueKind::INTEGER: case ValueKind::FLOAT: case ValueKind::BOOLEAN: + break; + case ValueKind::ATOM: + //result.contained = desc.containedPtr().get(); + break; case ValueKind::STRING: break; case ValueKind::ENUM: @@ -130,6 +187,7 @@ getRepr(const ValueDescription & desc, bool detailed) result.enumValues.emplace_back (EnumValueRepr{std::get<0>(v), std::get<1>(v), std::get<2>(v)}); } + result.contained = &desc.contained(); break; case ValueKind::OPTIONAL: result.contained = &desc.contained(); @@ -143,6 +201,16 @@ getRepr(const ValueDescription & desc, bool detailed) break; case ValueKind::ARRAY: result.contained = &desc.contained(); + result.lengthModel.emplace(desc.getArrayLengthModel()); + result.elementModel.emplace(desc.getArrayIndirectionModel()); + + switch (desc.getArrayLengthModel()) { + case LengthModel::FIXED: + result.fixedLength.emplace(desc.getArrayFixedLength()); + break; + case LengthModel::VARIABLE: + break; + } break; case ValueKind::STRUCTURE: { if (!detailed) @@ -313,9 +381,88 @@ isDefaultTyped(ValueDescription * const * val) const void ValueDescriptionNakedConstPtrDescription:: parseJsonTyped(ValueDescription const * * val, - JsonParsingContext & context) const + JsonParsingContext & context) const { - throw MLDB::Exception("Can't parse value descriptions"); + static const auto reprDescription = getDefaultDescriptionSharedT(); + ValueDescriptionRepr repr; + reprDescription->parseJsonTyped(&repr, context); + + ValueDescription * valOut = nullptr; + + switch (repr.kind) { + case ValueKind::INTEGER: + case ValueKind::FLOAT: + case ValueKind::BOOLEAN: + case ValueKind::STRING: + // These should already be here... + *val = ValueDescription::get(repr.typeName).get(); + ExcAssert(*val); + return; + + case ValueKind::ATOM: + // May need to handle completely generically + *val = ValueDescription::get(repr.typeName).get(); + if (!(*val)) { + // We use the contained type instead, if it's there + // So for example an atom which is a dressed-up integer will fall back to using the + // underlying integer representation + + ExcAssert(repr.contained); + std::shared_ptr containedPtr(repr.contained, [] (auto) {}); + auto result = std::make_unique(containedPtr); + valOut = result.release(); + break; + } + return; + + case ValueKind::ENUM: { + auto result = std::make_unique(std::shared_ptr(repr.contained, [] (auto) {}), repr.typeName); + for (auto & val: repr.enumValues) { + result->addValue(val.name, val.val, val.comment); + } + valOut = result.release(); + break; + } + case ValueKind::ARRAY: { + ExcAssert(repr.lengthModel); + switch (*repr.lengthModel) { + case LengthModel::FIXED: { + ExcAssert(repr.contained); + std::shared_ptr containedPtr(repr.contained, [] (auto) {}); + auto result = std::make_unique(repr.width, repr.align, repr.typeName, containedPtr, *repr.fixedLength); + valOut = result.release(); + break; + } + case LengthModel::VARIABLE: + throw MLDB::Exception("not clear how to deal with reconstituting value descriptions of variable length arrays"); + } + break; + } + case ValueKind::STRUCTURE: { + auto result = std::make_unique(false /* null accepted */, repr.typeName); + for (auto & field: repr.structureFields) { + result->addFieldDesc(field.fieldName, field.offset, field.comment, std::shared_ptr(field.description, [] (auto) {})); + } + valOut = result.release(); + break; + } + + case ValueKind::OPTIONAL: + case ValueKind::LINK: + case ValueKind::TUPLE: + case ValueKind::VARIANT: + case ValueKind::MAP: + case ValueKind::ANY: + throw MLDB::Exception("can't parse value description for this type: " + repr.typeName + " " + jsonEncodeStr(repr)); + } + ExcAssert(valOut); + + valOut->documentationUri = repr.documentationUri; + valOut->typeName = repr.typeName; + valOut->width = repr.width; + valOut->align = repr.align; + + *val = valOut; } void diff --git a/types/meta_value_description.h b/types/meta_value_description.h index f92c1e38c..8e0e76b17 100644 --- a/types/meta_value_description.h +++ b/types/meta_value_description.h @@ -10,10 +10,17 @@ #include "mldb/types/value_description_fwd.h" #include #include "mldb/ext/jsoncpp/value.h" +#include "mldb/types/optional.h" namespace MLDB { +// Return a JSON representation of the default value of this particular +// value description. +Json::Value getDefaultValue(const ValueDescription & description); + DECLARE_ENUM_DESCRIPTION(ValueKind); +DECLARE_ENUM_DESCRIPTION(OwnershipModel); +DECLARE_ENUM_DESCRIPTION(LengthModel); struct EnumValueRepr { int val; @@ -44,6 +51,12 @@ struct ValueDescriptionRepr { std::vector enumValues; std::vector tupleElements; const ValueDescription * contained = nullptr; + Optional lengthModel; + Optional elementModel; + Optional fixedLength; + + size_t width = 0; // for atomic types + size_t align = 0; // for atomic types }; DECLARE_STRUCTURE_DESCRIPTION(ValueDescriptionRepr); diff --git a/types/optional_description.h b/types/optional_description.h index 2db854f7e..1ccafa035 100644 --- a/types/optional_description.h +++ b/types/optional_description.h @@ -91,6 +91,6 @@ struct OptionalDescription } }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(OptionalDescription, Optional, typename, T); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(OptionalDescription, Optional, typename, T, MLDB::has_default_description::value); } // namespace MLDB diff --git a/types/pair_description.h b/types/pair_description.h index fda7c2192..6f35c036b 100644 --- a/types/pair_description.h +++ b/types/pair_description.h @@ -105,6 +105,6 @@ struct PairDescription } }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(PairDescription, std::pair, typename, T1, typename, T2); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(PairDescription, std::pair, typename, T1, typename, T2, (MLDB::all_have_default_descriptions::value)); } // namespace MLDB diff --git a/types/path.cc b/types/path.cc index 667d9c7e6..85e2dab0f 100644 --- a/types/path.cc +++ b/types/path.cc @@ -10,6 +10,7 @@ #include "mldb/types/hash_wrapper.h" #include "mldb/types/value_description.h" #include "mldb/types/vector_description.h" +#include "mldb/types/comparable_value_descriptions.h" #include "mldb/types/annotated_exception.h" #include "mldb/ext/highwayhash.h" #include "mldb/types/itoa.h" @@ -1556,7 +1557,7 @@ operator >> (std::istream & stream, Path & id) /*****************************************************************************/ struct PathElementDescription - : public ValueDescriptionI { + : public OrderedComparableValueDescriptionI { virtual void parseJsonTyped(PathElement * val, JsonParsingContext & context) const; @@ -1610,7 +1611,7 @@ isDefaultTyped(const PathElement * val) const } struct PathDescription - : public ValueDescriptionI { + : public OrderedComparableValueDescriptionI { virtual void parseJsonTyped(Path * val, JsonParsingContext & context) const; diff --git a/types/path.h b/types/path.h index d0b0218d5..2f94f092b 100644 --- a/types/path.h +++ b/types/path.h @@ -14,6 +14,7 @@ #include #include #include +#include // NOTE TO MLDB DEVELOPERS: This is an API header file. No includes // should be added, especially value_description.h. @@ -49,6 +50,12 @@ struct PathElement { PathElement(std::string str); PathElement(const char * str, size_t len); PathElement(const char * str, size_t len, int digits); + + PathElement(const std::string_view & str) + : PathElement(str.data(), str.length()) + { + } + PathElement(const char * str) : PathElement(str, std::strlen(str)) { diff --git a/types/periodic_utils.cc b/types/periodic_utils.cc index e1e72c79c..41470c571 100644 --- a/types/periodic_utils.cc +++ b/types/periodic_utils.cc @@ -324,6 +324,24 @@ toString() const } } +double +TimePeriod:: +toSeconds() const +{ + switch (granularity) { + case MILLISECONDS: return number * 0.001; + case SECONDS: return number; + case MINUTES: return number * 60; + case HOURS: return number * 3600; + case DAYS: return number * 86400; + case WEEKS: return number * 86400 * 7; + case MONTHS: return number * 86400 * 30; + case YEARS: return number * 86400 * 365.25; + default: + throw MLDB::Exception("unknown time period"); + } +} + void TimePeriod:: parse(const std::string & str) diff --git a/types/periodic_utils.h b/types/periodic_utils.h index 04927ee45..0a0da9329 100644 --- a/types/periodic_utils.h +++ b/types/periodic_utils.h @@ -143,6 +143,9 @@ struct TimePeriod { void parse(const std::string & val); + // Return the granularity mapped to a number of seconds + double toSeconds() const; + TimePeriod operator + (const TimePeriod & other) const; TimePeriod & operator += (const TimePeriod & other) diff --git a/types/pointer_description.h b/types/pointer_description.h index 612871fe5..adf73525b 100644 --- a/types/pointer_description.h +++ b/types/pointer_description.h @@ -10,6 +10,7 @@ #pragma once #include +#include #include "value_description.h" @@ -67,11 +68,21 @@ struct PointerDescription return *static_cast(obj); } + static const T*& constCast(const void* obj) + { + return *static_cast(obj); + } + virtual void* getLink(void* obj) const override { return cast(obj); } + virtual const void* getConstLink(const void* obj) const override + { + return constCast(obj); + } + virtual void set( void* obj, void* value, const ValueDescription* valueDesc) const override { @@ -165,11 +176,21 @@ struct UniquePtrDescription return *static_cast< std::unique_ptr* >(obj); } + static std::unique_ptr& constCast(const void* obj) + { + return *static_cast* >(obj); + } + virtual void* getLink(void* obj) const override { return cast(obj).get(); } + virtual const void* getConstLink(const void* obj) const override + { + return constCast(obj).get(); + } + virtual void set( void* obj, void* value, const ValueDescription* valueDesc) const override { @@ -189,20 +210,20 @@ struct UniquePtrDescription } }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(UniquePtrDescription, std::unique_ptr, typename, T); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(UniquePtrDescription, std::unique_ptr, typename, T, MLDB::has_default_description::value); template struct SharedPtrDescription : public ValueDescriptionI, ValueKind::LINK, SharedPtrDescription > { - SharedPtrDescription(std::shared_ptr > inner - = getDefaultDescriptionShared((T *)0)) + SharedPtrDescription(std::shared_ptr>> inner + = getDefaultDescriptionShared((std::remove_const_t *)0)) : inner(inner) { } - SharedPtrDescription(ValueDescriptionT * inner) + SharedPtrDescription(ValueDescriptionT> * inner) : inner(inner) { } @@ -211,7 +232,7 @@ struct SharedPtrDescription { } - std::shared_ptr > inner; + std::shared_ptr> > inner; virtual void parseJsonTyped(std::shared_ptr * val, JsonParsingContext & context) const override @@ -221,8 +242,9 @@ struct SharedPtrDescription context.expectNull(); return; } - val->reset(new T()); - inner->parseJsonTyped(val->get(), context); + auto newVal = std::make_shared>(); + inner->parseJsonTyped(newVal.get(), context); + *val = std::move(newVal); } virtual void printJsonTyped(const std::shared_ptr * val, @@ -248,10 +270,14 @@ struct SharedPtrDescription return OwnershipModel::SHARED; } + static std::shared_ptr>& cast(void* obj) + { + return *static_cast< std::shared_ptr>* >(obj); + } - static std::shared_ptr& cast(void* obj) + static const std::shared_ptr& constCast(const void* obj) { - return *static_cast< std::shared_ptr* >(obj); + return *static_cast* >(obj); } virtual void* getLink(void* obj) const override @@ -259,6 +285,11 @@ struct SharedPtrDescription return cast(obj).get(); } + virtual const void* getConstLink(const void* obj) const override + { + return constCast(obj).get(); + } + virtual void set( void* obj, void* value, const ValueDescription* valueDesc) const override { @@ -273,16 +304,16 @@ struct SharedPtrDescription // Casting is necessary to make sure the ref count is incremented. if (valueDesc->getOwnershipModel() == OwnershipModel::SHARED) cast(obj) = cast(value); - else cast(obj).reset(static_cast(valueDesc->getLink(value))); + else cast(obj).reset(static_cast*>(valueDesc->getLink(value))); } virtual void initialize() override { - this->inner = getDefaultDescriptionSharedT(); + this->inner = getDefaultDescriptionSharedT>(); } }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(SharedPtrDescription, std::shared_ptr, typename, T); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(SharedPtrDescription, std::shared_ptr, typename, T, MLDB::has_default_description::value); #if 0 template diff --git a/types/set_description.h b/types/set_description.h index c5c0e8ef5..4d5bca311 100644 --- a/types/set_description.h +++ b/types/set_description.h @@ -80,6 +80,16 @@ struct SetDescription return val2->size(); } + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::VARIABLE; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::UNIQUE; + } + virtual void * getArrayElement(void * val, uint32_t element) const override { throw MLDB::Exception("can't mutate set elements"); @@ -118,7 +128,7 @@ struct SetDescription }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(SetDescription, std::set, typename, T); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(SetDescription, std::set, typename, T, MLDB::has_default_description::value); } // namespace MLDB diff --git a/types/span_description.h b/types/span_description.h new file mode 100644 index 000000000..181f76d02 --- /dev/null +++ b/types/span_description.h @@ -0,0 +1,247 @@ +/** span_description.h -*- C++ -*- + Jeremy Barnes, 21 August 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Value description implementations for spans. +*/ + +#pragma once + +#include +#include "list_description_base.h" +#include "value_description.h" +#include + +namespace MLDB { + + +/*****************************************************************************/ +/* DEFAULT DESCRIPTION FOR SPAN */ +/*****************************************************************************/ + +template +struct SpanDescription + : public ValueDescriptionI, ValueKind::ARRAY, SpanDescription > { + + using InnerT = std::remove_const_t; + std::shared_ptr > inner; + + SpanDescription(ValueDescriptionT * inner) + : inner(inner) + { + } + + SpanDescription(std::shared_ptr > inner + = getDefaultDescriptionShared((InnerT *)0)) + : inner(std::move(inner)) + { + } + + // Constructor to create a partially-evaluated span description. + SpanDescription(ConstructOnly) + { + } + + virtual void parseJson(void * val, JsonParsingContext & context) const override + { + throw MLDB::Exception("Can't parse Spans"); + } + + virtual void parseJsonTyped(std::span * val, JsonParsingContext & context) const override + { + throw MLDB::Exception("Can't parse Spans"); + } + + virtual void printJson(const void * val, JsonPrintingContext & context) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return printJsonTyped(val2, context); + } + + virtual void printJsonTyped(const std::span * val, JsonPrintingContext & context) const override + { + size_t sz = val->size(); + context.startArray(sz); + + auto it = val->begin(); + for (size_t i = 0; i < sz; ++i, ++it) { + ExcAssert(it != val->end()); + context.newArrayElement(); + InnerT v(*it); + inner->printJsonTyped(&v, context); + } + + context.endArray(); + } + + virtual bool isDefault(const void * val) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return isDefaultTyped(val2); + } + + virtual bool isDefaultTyped(const std::span * val) const override + { + return val->empty(); + } + + virtual size_t getArrayLength(void * val) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return val2->size(); + } + + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::VARIABLE; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::UNIQUE; + } + + virtual void * getArrayElement(void * val, uint32_t element) const override + { + throw MLDB::Exception("Can't mutate Spans"); + } + + virtual const void * getArrayElement(const void * val, uint32_t element) const override + { + const std::span * val2 = reinterpret_cast *>(val); + ExcAssertLess(element, val2->size()); + return &val2[element]; + } + + virtual void setArrayLength(void * val, size_t newLength) const override + { + throw MLDB::Exception("Can't mutate Spans"); + } + + virtual const ValueDescription & contained() const override + { + return *this->inner; + } + + virtual std::shared_ptr containedPtr() const override + { + return this->inner; + } + + virtual void initialize() override + { + this->inner = getDefaultDescriptionSharedT(); + } +}; + +#if 0 +template +struct SpanDescription + : public ValueDescriptionI, ValueKind::ARRAY, SpanDescription > { + + using InnerT = std::remove_const_t; + std::shared_ptr > inner; + + SpanDescription(ValueDescriptionT * inner) + : inner(inner) + { + } + + SpanDescription(std::shared_ptr > inner + = getDefaultDescriptionShared((InnerT *)0)) + : inner(std::move(inner)) + { + } + + // Constructor to create a partially-evaluated span description. + SpanDescription(ConstructOnly) + { + } + + virtual void parseJson(void * val, JsonParsingContext & context) const override + { + throw MLDB::Exception("Can't parse Spans"); + } + + virtual void parseJsonTyped(std::span * val, JsonParsingContext & context) const override + { + throw MLDB::Exception("Can't parse Spans"); + } + + virtual void printJson(const void * val, JsonPrintingContext & context) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return printJsonTyped(val2, context); + } + + virtual void printJsonTyped(const std::span * val, JsonPrintingContext & context) const override + { + size_t sz = val->size(); + context.startArray(sz); + + auto it = val->begin(); + for (size_t i = 0; i < sz; ++i, ++it) { + ExcAssert(it != val->end()); + context.newArrayElement(); + InnerT v(*it); + inner->printJsonTyped(&v, context); + } + + context.endArray(); + } + + virtual bool isDefault(const void * val) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return isDefaultTyped(val2); + } + + virtual bool isDefaultTyped(const std::span * val) const override + { + return val->empty(); + } + + virtual size_t getArrayLength(void * val) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return val2->size(); + } + + virtual void * getArrayElement(void * val, uint32_t element) const override + { + throw MLDB::Exception("Can't mutate Spans"); + } + + virtual const void * getArrayElement(const void * val, uint32_t element) const override + { + const std::span * val2 = reinterpret_cast *>(val); + return &val2->at(element); + } + + virtual void setArrayLength(void * val, size_t newLength) const override + { + throw MLDB::Exception("Can't mutate Spans"); + } + + virtual const ValueDescription & contained() const override + { + return *this->inner; + } + + virtual std::shared_ptr containedPtr() const + { + return this->inner; + } + + virtual void initialize() override + { + this->inner = getDefaultDescriptionSharedT(); + } +}; +#endif + +DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(SpanDescription, std::span, typename, T, size_t, Sz, MLDB::has_default_description::value); + +} // namespace MLDB diff --git a/types/string.cc b/types/string.cc index 9c3af3233..4a0d8930a 100644 --- a/types/string.cc +++ b/types/string.cc @@ -15,17 +15,22 @@ #include #include "mldb/arch/demangle.h" #include -#include #include #include #include +#include using namespace std; namespace MLDB { +/*****************************************************************************/ +/* EXCEPTION UTF8STRING CONSTRUCTOR */ +/*****************************************************************************/ + // Put this here, since it needs Utf8String to work + Exception::Exception(const Utf8String & msg) : message(msg.rawString()) { @@ -38,14 +43,27 @@ Exception::Exception(Utf8String && msg) Exception:: Exception(int errnum, const Utf8String & msg, const char * function) -: Exception(errnum, msg.rawString(), function) + : Exception(errnum, msg.rawString(), function) { } +namespace { +thread_local std::va_list exception_args; +} /* file scope */ + +#define MLDB_IMPLEMENT_EXCEPTION_CLASS_UTF8(Name) \ +void throw##Name(const char * function, const char * file, int line, const Utf8String msg, ...) \ +{ \ + throw Name(format(#Name ": %s at %s:%d : ", function, file, line) \ + + ((va_start(exception_args, msg), format(msg.c_str(), exception_args)))); \ +} \ + +MLDB_FOR_EACH_EXCEPTION_CLASS(MLDB_IMPLEMENT_EXCEPTION_CLASS_UTF8) + /*****************************************************************************/ /* UTF8STRING */ -/****************************************************************************/ +/*****************************************************************************/ Utf8String Utf8String::fromLatin1(const std::string & lat1Str) diff --git a/types/structure_description.cc b/types/structure_description.cc new file mode 100644 index 000000000..5b7ac04e5 --- /dev/null +++ b/types/structure_description.cc @@ -0,0 +1,628 @@ +/** structure_description.cc -*- C++ -*- + Jeremy Barnes, 21 August 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Value desriptions for structures. +*/ + +#include "structure_description.h" +#include + +using namespace std; + +namespace MLDB { + + +/*****************************************************************************/ +/* STRUCTURE DESCRIPTION BASE */ +/*****************************************************************************/ + + +StructureDescriptionBase:: +StructureDescriptionBase(const std::type_info * type, + ValueDescription * owner, + const std::string & structName, + bool nullAccepted) + : type(type), + structName(structName), + nullAccepted(nullAccepted), + owner(owner) +{ + ExcAssert(!structName.empty()); +} + +void +StructureDescriptionBase:: +operator = (const StructureDescriptionBase & other) +{ + type = other.type; + structName = other.structName; + nullAccepted = other.nullAccepted; + + fieldNames.clear(); + orderedFields.clear(); + fields.clear(); + fieldNames.reserve(other.fields.size()); + + // Don't set owner + for (auto & f: other.orderedFields) { + std::string_view s = f->first; + fieldNames.emplace_back(::strndup(s.data(), s.size())); + auto it = fields.insert(make_pair(fieldNames.back().get(), f->second)) + .first; + orderedFields.push_back(it); + } +} + +void +StructureDescriptionBase:: +operator = (StructureDescriptionBase && other) +{ + type = std::move(other.type); + structName = std::move(other.structName); + nullAccepted = std::move(other.nullAccepted); + fields = std::move(other.fields); + fieldNames = std::move(other.fieldNames); + orderedFields = std::move(other.orderedFields); + // don't set owner +} + +StructureDescriptionBase::Exception:: +Exception(JsonParsingContext & context, + const std::string & message) + : MLDB::Exception("at " + context.printPath() + ": " + message) +{ +} + +StructureDescriptionBase::Exception:: +~Exception() throw () +{ +} + +void +StructureDescriptionBase:: +parseJson(void * output, JsonParsingContext & context) const +{ + try { + + if (!onEntry(output, context)) return; + + if (nullAccepted && context.isNull()) { + context.expectNull(); + return; + } + + if (!context.isObject()) { + std::string typeName; + if (context.isNumber()) + typeName = "number"; + else if (context.isBool()) + typeName = "boolean"; + else if (context.isString()) + typeName = "string"; + else if (context.isNull()) + typeName = "null"; + else if (context.isArray()) + typeName = "array"; + else typeName = "<>"; + + std::string msg + = "expected object of type " + + structName + ", but instead a " + + typeName + " was provided"; + + if (context.isString()) + msg += ". Did you accidentally JSON encode your object into a string?"; + + context.exception(msg); + } + + auto onMember = [&] () + { + try { + auto n = context.fieldNameView(); + + auto it = fields.find(n); + if (it == fields.end()) { + context.onUnknownField(owner); + } + else { + it->second.description + ->parseJson(addOffset(output, + it->second.offset), + context); + } + } + catch (const Exception & exc) { + throw; + } + catch (const std::exception & exc) { + throw Exception(context, exc.what()); + } + catch (...) { + throw; + } + }; + + + context.forEachMember(onMember); + + onExit(output, context); + } + catch (const Exception & exc) { + throw; + } + catch (const std::exception & exc) { + throw Exception(context, exc.what()); + } + catch (...) { + throw; + } +} + +void +StructureDescriptionBase:: +printJson(const void * input, JsonPrintingContext & context) const +{ + //cerr << "--- Start object " << demangle(this->type->name()) << " at " << input << endl; + + context.startObject(); + + for (const auto & it: orderedFields) { + auto & fd = it->second; + const void * mbr = addOffset(input, fd.offset); + + //cerr << "field " << demangle(this->type->name()) << "::" << fd.fieldName << " at " << mbr << endl; + //const unsigned char * mbrc = (const unsigned char *)mbr; + //cerr << " first 4 bytes: " << format("%02x %02x %02x %02x", mbrc[0], mbrc[1], mbrc[2], mbrc[3]) << endl; + + // Skip inactive fields + if (fd.isActive && !fd.isActive(input)) { + //cerr << " skipping field " << fd.fieldName << " as isActive is false" << endl; + continue; + } + + if (fd.bitField.has_value()) { + auto & bitField = *fd.bitField; + constexpr size_t MAX_WIDTH=64; + char data[MAX_WIDTH]; + ExcCheckLessEqual(fd.description->width, MAX_WIDTH, "Type is too wide to be accessed as a bit field"); + memset(data, 0, fd.description->width); + //bitField.extract(mbr, data); + fd.description->extractBitField(mbr, data, bitField.startBit, bitField.bitWidth); + //cerr << "Extracting bit field " << it->first << ": bytes "; + //const unsigned char * mbrBytes = (const unsigned char *)mbr; + //cerr << format("%02x %02x %02x %02x", mbrBytes[0], mbrBytes[1], mbrBytes[2], mbrBytes[3]); + //cerr << " bits " << bitField.startBit << ":" << bitField.bitWidth << " = " << fd.description->printJsonString(data) << endl; + context.startMember(it->first.data(), it->first.length()); + fd.description->printJson(data, context); + //cerr << " bit field value " << fd.description->printJsonString(data) << endl; + } + else { + if (fd.description->isDefault(mbr)) { + //cerr << " skipping due to default value" << endl; + continue; + } + context.startMember(it->first.data(), it->first.length()); + fd.description->printJson(mbr, context); + //cerr << " member value " << fd.description->printJsonString(mbr); + } + } + + context.endObject(); +} + +// Comparison object to allow const char * objects to be looked up +// in the map and so for comparisons to be done with no memory +// allocations. +bool +StructureDescriptionBase::StrCompare:: +operator () (const std::string_view & v1, const std::string_view & v2) const +{ + return v1 < v2; + +#if 0 + char c1 = *s1++, c2 = *s2++; + + if (c1 < c2) return true; + if (c1 > c2) return false; + if (c1 == 0) return false; + + c1 = *s1++; c2 = *s2++; + + if (c1 < c2) return true; + if (c1 > c2) return false; + if (c1 == 0) return false; + + return std::strcmp(s1, s2) < 0; +#endif +} + +StructureDescriptionBase::FieldDescription & +StructureDescriptionBase:: +addFieldDesc(std::string name, + size_t offset, + std::string comment, + std::shared_ptr description) +{ + ExcAssert(description); + + if (fields.count(name.c_str())) + throw MLDB::Exception("field '" + name + "' added twice"); + + fieldNames.emplace_back(::strdup(name.c_str())); + const char * fieldName = fieldNames.back().get(); + + auto it = fields.insert + (Fields::value_type(fieldName, FieldDescription())) + .first; + + FieldDescription & fd = it->second; + fd.fieldName = fieldName; + fd.comment = comment; + fd.description = description; + fd.offset = offset; + fd.width = description->width; + fd.fieldNum = fields.size() - 1; + orderedFields.push_back(it); + //using namespace std; + //cerr << "offset = " << fd.offset << endl; + + fixupAlign(offset + description->width, description->align); + + hasLess = hasLess && description->hasLessThanComparison(); + hasEquality = hasEquality && description->hasLessThanComparison(); + hasPartial = hasPartial && description->hasPartialOrderingComparison(); + hasWeak = hasWeak && description->hasWeakOrderingComparison(); + hasStrong = hasStrong && description->hasStrongOrderingComparison(); + + return fd; +} + +/// Add a bit field, specified by the containing field and a bit offset +void +StructureDescriptionBase:: +addBitFieldDesc(std::string name, + size_t offset, + std::string comment, + std::shared_ptr containingDescription, + uint32_t bitOffset, + uint32_t bitWidth) +{ + size_t containingWidth = containingDescription->width * 8; + ExcAssertLessEqual(bitOffset + bitWidth, containingWidth); + FieldDescription & fd = addFieldDesc(std::move(name), offset, std::move(comment), containingDescription); + +#if 0 + auto extract = [=] (const void * obj, void * val) + { + containingDescription->extractBitField(obj, val, bitOffset, bitWidth); + }; + + auto insert = [=] (void * obj, const void * val) + { + containingDescription->insertBitField(val, obj, bitOffset, bitWidth); + }; +#endif + + ValueDescription::BitFieldDescription bitFieldDescription = { bitOffset, bitWidth }; + + fd.bitField.emplace(std::move(bitFieldDescription)); +} + +/// Add a discriminated field, including the function used to know whether it is active +/// or not and a string description of that function. +void +StructureDescriptionBase:: +addDiscriminatedFieldDesc(std::string name, + size_t offset, + std::string comment, + std::shared_ptr desc, + std::function isActive, + std::string isActiveStr) +{ + FieldDescription & fd = addFieldDesc(std::move(name), offset, std::move(comment), std::move(desc)); + fd.isActive = std::move(isActive); + fd.isActiveStr = std::move(isActiveStr); +} + +const StructureDescriptionBase::FieldDescription * +StructureDescriptionBase:: +hasField(const void * val, const std::string & field) const +{ + auto it = fields.find(field.c_str()); + if (it != fields.end()) + return &it->second; + return nullptr; +} + +const StructureDescriptionBase::FieldDescription * +StructureDescriptionBase:: +getFieldDescription(const void * val, const void * field) const +{ + ssize_t offset = (const char *)field - (const char *)val; + for (auto & f: fields) { + if (f.second.offset >= offset + && f.second.offset + f.second.width <= offset) + return &f.second; + } + return nullptr; +} + +void +StructureDescriptionBase:: +forEachField(const void * val, + const std::function & onField) const +{ + for (auto f: orderedFields) { + onField(f->second); + } +} + +const StructureDescriptionBase::FieldDescription & +StructureDescriptionBase:: +getField(const std::string & field) const +{ + auto it = fields.find(field.c_str()); + if (it != fields.end()) + return it->second; + throw MLDB::Exception("structure has no field " + field); +} + +const StructureDescriptionBase::FieldDescription & +StructureDescriptionBase:: +getFieldByNumber(int fieldNum) const +{ + for (auto & f: fields) { + if (f.second.fieldNum == fieldNum) + return f.second; + } + + throw MLDB::Exception("structure has no field with given number"); +} + +int +StructureDescriptionBase:: +getVersion() const +{ + return this->version; +} + +bool +StructureDescriptionBase:: +hasEqualityComparison() const +{ + return hasEquality; +} + +bool +StructureDescriptionBase:: +compareEquality(const void * val1, const void * val2) const +{ + for (auto & [name,f]: fields) { + if (!f.description->compareEquality(f.getFieldPtr(val1), f.getFieldPtr(val2))) + return false; + } + return true; +} + +bool +StructureDescriptionBase:: +hasLessThanComparison() const +{ + return hasLess; +} + +bool +StructureDescriptionBase:: +compareLessThan(const void * val1, const void * val2) const +{ + for (auto it: orderedFields) { + auto [name,f] = *it; + //using namespace std; + //cerr << "field " << name << ": " + // << f.description->printJsonString(f.getFieldPtr(val1)) << " vs " + // << f.description->printJsonString(f.getFieldPtr(val2)) << ": " + // << f.description->compareLessThan(f.getFieldPtr(val1), f.getFieldPtr(val2)) + // << " vs " << f.description->compareLessThan(f.getFieldPtr(val2), f.getFieldPtr(val1)) + // << endl; + if (f.description->compareLessThan(f.getFieldPtr(val1), f.getFieldPtr(val2))) + return true; + if (f.description->compareLessThan(f.getFieldPtr(val2), f.getFieldPtr(val1))) + return false; + } + return false; +} + +bool +StructureDescriptionBase:: +hasStrongOrderingComparison() const +{ + return hasStrong; +} + +std::strong_ordering +StructureDescriptionBase:: +compareStrong(const void * val1, const void * val2) const +{ + throw MLDB::Exception("not implemented: StructureDescriptionBase::compareStrong"); +} + +bool +StructureDescriptionBase:: +hasWeakOrderingComparison() const +{ + return hasWeak; +} + +std::weak_ordering +StructureDescriptionBase:: +compareWeak(const void * val1, const void * val2) const +{ + throw MLDB::Exception("not implemented: StructureDescriptionBase::compareWeak"); +} + +bool +StructureDescriptionBase:: +hasPartialOrderingComparison() const +{ + return hasPartial; +} + +std::partial_ordering +StructureDescriptionBase:: +comparePartial(const void * val1, const void * val2) const +{ + throw MLDB::Exception("not implemented: StructureDescriptionBase::comparePartial"); +} + + + +/*****************************************************************************/ +/* GENERIC STRUCTURE DESCRIPTION */ +/*****************************************************************************/ + +GenericStructureDescription:: +GenericStructureDescription(bool nullAccepted, + const std::string & structName) + : ValueDescription(ValueKind::STRUCTURE, nullptr, 0 /* width */, 0 /* align */, structName), + StructureDescriptionBase(nullptr, this, structName, nullAccepted) +{ +} + +void +GenericStructureDescription:: +parseJson(void * val, JsonParsingContext & context) const +{ + return StructureDescriptionBase::parseJson(val, context); +} + +void +GenericStructureDescription:: +printJson(const void * val, JsonPrintingContext & context) const +{ + return StructureDescriptionBase::printJson(val, context); +} + +bool +GenericStructureDescription:: +isDefault(const void * val) const +{ + return false; +} + +void +GenericStructureDescription:: +setDefault(void * val) const +{ + for (auto & [name, desc]: this->fields) { + auto field = desc.getFieldPtr(val); + desc.description->setDefault(field); + } +} + +void +GenericStructureDescription:: +copyValue(const void * from, void * to) const +{ + for (auto & [name, desc]: this->fields) { + auto fromField = desc.getFieldPtr(from); + auto toField = desc.getFieldPtr(to); + desc.description->copyValue(fromField, toField); + } +} + +void +GenericStructureDescription:: +moveValue(void * from, void * to) const +{ + for (auto & [name, desc]: this->fields) { + auto fromField = desc.getFieldPtr(from); + auto toField = desc.getFieldPtr(to); + desc.description->moveValue(fromField, toField); + } +} + +void +GenericStructureDescription:: +swapValues(void * from, void * to) const +{ + for (auto & [name, desc]: this->fields) { + auto fromField = desc.getFieldPtr(from); + auto toField = desc.getFieldPtr(to); + desc.description->swapValues(fromField, toField); + } +} + +void +GenericStructureDescription:: +initializeDefault(void * mem) const +{ + for (auto & [name, desc]: this->fields) { + desc.description->initializeDefault(desc.getFieldPtr(mem)); + } +} + +void +GenericStructureDescription:: +initializeCopy(void * mem, const void * val) const +{ + for (auto & [name, desc]: this->fields) { + auto fromField = desc.getFieldPtr(val); + auto toField = desc.getFieldPtr(mem); + desc.description->initializeCopy(toField, fromField); + } +} + +void +GenericStructureDescription:: +initializeMove(void * mem, void * val) const +{ + for (auto & [name, desc]: this->fields) { + auto fromField = desc.getFieldPtr(val); + auto toField = desc.getFieldPtr(mem); + desc.description->initializeMove(toField, fromField); + } +} + +void +GenericStructureDescription:: +destruct(void * val) const +{ + for (auto & [name, desc]: this->fields) { + auto field = desc.getFieldPtr(val); + desc.description->destruct(field); + } +} + +bool +GenericStructureDescription:: +onEntry(void * output, JsonParsingContext & context) const +{ + return true; +} + +void +GenericStructureDescription:: +onExit(void * output, JsonParsingContext & context) const +{ +} + +void +GenericStructureDescription:: +fixupAlign(size_t knownWidth, size_t knownAlign) +{ + if (knownAlign > this->align) { + this->align = knownAlign; + } + + if (knownWidth > this->width) { + this->width = knownWidth; + while (this->width % this->align != 0) + ++this->width; + } +} + +} // namespace MLDB diff --git a/types/structure_description.h b/types/structure_description.h index b8216618a..0932ab3ba 100644 --- a/types/structure_description.h +++ b/types/structure_description.h @@ -12,6 +12,7 @@ #include "value_description.h" #include "utility_descriptions.h" #include +#include namespace MLDB { @@ -26,8 +27,8 @@ struct StructureDescriptionBase { StructureDescriptionBase(const std::type_info * type, ValueDescription * owner, - const std::string & structName = "", - bool nullAccepted = false); + const std::string & structName, + bool nullAccepted); StructureDescriptionBase(const StructureDescriptionBase & other) = delete; StructureDescriptionBase(StructureDescriptionBase && other) = delete; @@ -41,6 +42,8 @@ struct StructureDescriptionBase { int version = -1; ///< The version number of this structure + bool hasLess = true, hasEquality = true, hasWeak = true, hasStrong = true, hasPartial = true; + struct OldVersion { int version = -1; std::shared_ptr desc; @@ -62,26 +65,10 @@ struct StructureDescriptionBase { // in the map and so for comparisons to be done with no memory // allocations. struct StrCompare { - inline bool operator () (const char * s1, const char * s2) const - { - char c1 = *s1++, c2 = *s2++; - - if (c1 < c2) return true; - if (c1 > c2) return false; - if (c1 == 0) return false; - - c1 = *s1++; c2 = *s2++; - - if (c1 < c2) return true; - if (c1 > c2) return false; - if (c1 == 0) return false; - - return std::strcmp(s1, s2) < 0; - } - + bool operator () (const std::string_view & s1, const std::string_view & s2) const; }; - typedef std::map Fields; + typedef std::map Fields; Fields fields; /* A deleter that works with buffers allocated with malloc */ @@ -108,6 +95,191 @@ struct StructureDescriptionBase { virtual bool onEntry(void * output, JsonParsingContext & context) const = 0; virtual void onExit(void * output, JsonParsingContext & context) const = 0; + + FieldDescription & + addFieldDesc(std::string name, + size_t offset, + std::string comment, + std::shared_ptr description); + + /// Add a bit field, specified by the containing field and a bit offset + void addBitFieldDesc(std::string name, + size_t offset, + std::string comment, + std::shared_ptr containingDescription, + uint32_t bitOffset, + uint32_t bitWidth); + + /// Add a discriminated field, including the function used to know whether it is active + /// or not and a string description of that function. + void addDiscriminatedFieldDesc(std::string name, + size_t offset, + std::string comment, + std::shared_ptr desc, + std::function isActive, + std::string isActiveStr); + + virtual const FieldDescription * + hasField(const void * val, const std::string & field) const; + + virtual const FieldDescription * + getFieldDescription(const void * val, const void * field) const; + + virtual void forEachField(const void * val, + const std::function & onField) const; + + virtual const FieldDescription & + getField(const std::string & field) const; + + virtual const FieldDescription & + getFieldByNumber(int fieldNum) const; + + virtual int getVersion() const; + + virtual void fixupAlign(size_t knownWidth, size_t knownAlign) = 0; + + // Comparisons + virtual bool hasEqualityComparison() const; + virtual bool compareEquality(const void * val1, const void * val2) const; + virtual bool hasLessThanComparison() const; + virtual bool compareLessThan(const void * val1, const void * val2) const; + virtual bool hasStrongOrderingComparison() const; + virtual std::strong_ordering compareStrong(const void * val1, const void * val2) const; + virtual bool hasWeakOrderingComparison() const; + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const; + virtual bool hasPartialOrderingComparison() const; + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const; +}; + + +/*****************************************************************************/ +/* GENERIC STRUCTURE DESCRIPTION */ +/*****************************************************************************/ + +struct GenericStructureDescription: + public ValueDescription, + public StructureDescriptionBase { + + GenericStructureDescription(bool nullAccepted, + const std::string & structName); + + virtual void parseJson(void * val, JsonParsingContext & context) const override; + virtual void printJson(const void * val, JsonPrintingContext & context) const override; + virtual bool isDefault(const void * val) const override; + virtual void setDefault(void * val) const override; + virtual void copyValue(const void * from, void * to) const override; + virtual void moveValue(void * from, void * to) const override; + virtual void swapValues(void * from, void * to) const override; + virtual void initializeDefault(void * mem) const override; + virtual void initializeCopy(void * mem, const void * other) const override; + virtual void initializeMove(void * mem, void * other) const override; + virtual void destruct(void *) const override; + + virtual bool onEntry(void * output, JsonParsingContext & context) const override; + virtual void onExit(void * output, JsonParsingContext & context) const override; + + virtual size_t getFieldCount(const void * val) const override + { + return fields.size(); + } + + virtual bool hasFixedFieldCount() const override + { + return true; + } + + virtual size_t getFixedFieldCount() const override + { + return fields.size(); + } + + virtual const FieldDescription * + hasField(const void * val, const std::string & field) const override + { + return StructureDescriptionBase::hasField(val, field); + } + + virtual const FieldDescription * + getFieldDescription(const void * val, const void * field) const override + { + return StructureDescriptionBase::getFieldDescription(val, field); + } + + virtual void forEachField(const void * val, + const std::function & onField) const override + { + return StructureDescriptionBase::forEachField(val, onField); + } + + virtual const FieldDescription & + getField(const std::string & field) const override + { + return StructureDescriptionBase::getField(field); + } + + virtual const FieldDescription & + getFieldByNumber(int fieldNum) const override + { + return StructureDescriptionBase::getFieldByNumber(fieldNum); + } + + virtual int getVersion() const override + { + return StructureDescriptionBase::getVersion(); + } + + virtual void fixupAlign(size_t knownWidth, size_t knownAlign) override; + + // Comparisons + virtual bool hasEqualityComparison() const override + { + return StructureDescriptionBase::hasEqualityComparison(); + } + + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareEquality(val1, val2); + } + + virtual bool hasLessThanComparison() const override + { + return StructureDescriptionBase::hasLessThanComparison(); + } + + virtual bool compareLessThan(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareLessThan(val1, val2); + } + + virtual bool hasStrongOrderingComparison() const override + { + return StructureDescriptionBase::hasStrongOrderingComparison(); + } + + virtual std::strong_ordering compareStrong(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareStrong(val1, val2); + } + + virtual bool hasWeakOrderingComparison() const override + { + return StructureDescriptionBase::hasWeakOrderingComparison(); + } + + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareWeak(val1, val2); + } + + virtual bool hasPartialOrderingComparison() const override + { + return StructureDescriptionBase::hasPartialOrderingComparison(); + } + + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::comparePartial(val1, val2); + } }; @@ -124,7 +296,7 @@ struct StructureDescription : public ValueDescriptionT, public StructureDescriptionBase { StructureDescription(bool nullAccepted = false, - const std::string & structName = "") + const std::string & structName = type_name()) : ValueDescriptionT(ValueKind::STRUCTURE), StructureDescriptionBase(&typeid(Struct), this, structName, nullAccepted) @@ -181,6 +353,15 @@ struct StructureDescription addFieldDesc(name, field, comment, getDefaultDescriptionSharedT()); } + template + void addField(std::string name, + Base2 Base1::* field1, + V Base2::* field2, + std::string comment) + { + addFieldDesc(name, field1, field2, comment, getDefaultDescriptionSharedT()); + } + /** Add a field, but override the default value description to use. Note that description needs to be convertible to std::shared_ptr >, but GCC 5.1 is confused @@ -192,29 +373,25 @@ struct StructureDescription std::string comment, std::shared_ptr description) { - ExcAssert(description); - - if (fields.count(name.c_str())) - throw MLDB::Exception("field '" + name + "' added twice"); - - fieldNames.emplace_back(::strdup(name.c_str())); - const char * fieldName = fieldNames.back().get(); - - auto it = fields.insert - (Fields::value_type(fieldName, FieldDescription())) - .first; - - FieldDescription & fd = it->second; - fd.fieldName = fieldName; - fd.comment = comment; - fd.description = description; Struct * p = nullptr; - fd.offset = (size_t)&(p->*field); - fd.width = sizeof(V); - fd.fieldNum = fields.size() - 1; - orderedFields.push_back(it); - //using namespace std; - //cerr << "offset = " << fd.offset << endl; + size_t offset = (size_t)&(p->*field); + StructureDescriptionBase::addFieldDesc(std::move(name), offset, std::move(comment), std::move(description)); + } + + /** Add a field, which is part of a sub-structure. + */ + template + void addFieldDesc(std::string name, + Base2 Base1::* field1, + V Base2::* field2, + std::string comment, + std::shared_ptr description) + { + Struct * p1 = nullptr; + Base2 * p2 = nullptr; + size_t offset1 = (size_t)&(p1->*field1); + size_t offset2 = (size_t)&(p2->*field2); + StructureDescriptionBase::addFieldDesc(std::move(name), offset1 + offset2, std::move(comment), std::move(description)); } /** Add a description with a default value. */ @@ -227,27 +404,8 @@ struct StructureDescription std::shared_ptr > baseDesc = getDefaultDescriptionSharedT()) { - if (fields.count(name.c_str())) - throw MLDB::Exception("field '" + name + "' added twice"); - - fieldNames.emplace_back(::strdup(name.c_str())); - const char * fieldName = fieldNames.back().get(); - - auto it = fields.insert - (Fields::value_type(fieldName, FieldDescription())) - .first; - auto desc = std::make_shared(defaultValue, baseDesc); - - FieldDescription & fd = it->second; - fd.fieldName = fieldName; - fd.comment = comment; - fd.description = std::move(desc); - Struct * p = nullptr; - fd.offset = (size_t)&(p->*field); - fd.width = sizeof(V); - fd.fieldNum = fields.size() - 1; - orderedFields.push_back(it); + return addFieldDesc(std::move(name), field, std::move(comment), std::move(desc)); } /** Add a description with an automatic default value derived @@ -265,79 +423,186 @@ struct StructureDescription addField(std::move(name), field, comment, defValue, baseDesc); } + template + void addBitField(std::string name, + V Base::* containingField, + uint32_t bitStart, + uint32_t bitWidth, + std::function extract, + std::string comment) + { + addBitFieldDesc(std::move(name), containingField, bitStart, bitWidth, + std::move(extract), std::move(comment), + getDefaultDescriptionSharedT()); + } + + template + void addBitFieldCast(std::string name, + Bits Base::* containingFieldBits, + uint32_t bitStart, + uint32_t bitWidth, + std::function extract, + std::string comment) + { + static_assert(sizeof(Bits) == sizeof(V)); + typedef V Base::* ContainingField; + auto containingField = (ContainingField)containingFieldBits; + addBitFieldDesc(std::move(name), containingField, bitStart, bitWidth, + std::move(extract), std::move(comment), + getDefaultDescriptionSharedT()); + } + + template + void addBitField(std::string name, + V Base::* containingField, + uint32_t bitStart, + uint32_t bitWidth, + std::string comment) + { + addBitFieldCast(std::move(name), containingField, bitStart, bitWidth, std::move(comment)); + } + + template + void addBitFieldCast(std::string name, + V Base::* containingFieldBits, + uint32_t bitStart, + uint32_t bitWidth, + std::string comment) + { + static_assert(sizeof(Field) == sizeof(V)); + typedef Field Base::* ContainingField; + auto containingField = (ContainingField)containingFieldBits; + + std::shared_ptr desc = getDefaultDescriptionSharedT(); + + std::function extract = [bitStart,bitWidth,containingField,desc] (const void * obj) -> Field + { + const Field * containing = &(reinterpret_cast(obj)->*containingField); + //using namespace std; + //cerr << " extract: containing = " << (uint64_t)*containing << endl; + Field result; + desc->extractBitField(containing, &result, bitStart, bitWidth); + //cerr << " extract: result = " << (uint64_t)result << endl; + return result; + }; + + addBitFieldDesc(std::move(name), containingField, bitStart, bitWidth, + std::move(extract), std::move(comment), + desc); + } + + template + void addBitFieldDesc(std::string name, + V Base::* containingField, + uint32_t bitStart, + uint32_t bitWidth, + std::function extract, + std::string comment, + std::shared_ptr description) + { + Struct * p = nullptr; + size_t offset = (size_t)&(p->*containingField); + StructureDescriptionBase::addBitFieldDesc(std::move(name), offset, std::move(comment), std::move(description), + bitStart, bitWidth); + } + + template + void addDiscriminatedField(std::string name, + V Base::* field, + std::function isActive, + std::string comment, + std::string isActiveComment) + { + addDiscriminatedFieldDesc(std::move(name), field, std::move(isActive), + std::move(comment), + std::move(isActiveComment), + getDefaultDescriptionSharedT()); + } + + template + void addDiscriminatedFieldDesc(std::string name, + V Base::* field, + std::function isActive, + std::string comment, + std::string isActiveComment, + std::shared_ptr description) + { + Struct * p = nullptr; + size_t offset = (size_t)&(p->*field); + StructureDescriptionBase:: + addDiscriminatedFieldDesc(std::move(name), offset, std::move(comment), std::move(description), + isActive, isActiveComment); + } + + using ValueDescriptionT::parents; template void addParent(ValueDescriptionT * description_ = getDefaultDescription((V *)0)); + template + void addParentAsField(const std::string & name, const std::string & comment, + std::shared_ptr> description_ = getDefaultDescriptionSharedT()); + + virtual void parseJson(void * val, JsonParsingContext & context) const override + { + return StructureDescriptionBase::parseJson(val, context); + } + + virtual void printJson(const void * val, JsonPrintingContext & context) const override + { + return StructureDescriptionBase::printJson(val, context); + } + virtual size_t getFieldCount(const void * val) const override { return fields.size(); } + virtual bool hasFixedFieldCount() const override + { + return true; + } + virtual const FieldDescription * hasField(const void * val, const std::string & field) const override { - auto it = fields.find(field.c_str()); - if (it != fields.end()) - return &it->second; - return nullptr; + return StructureDescriptionBase::hasField(val, field); + } + + virtual size_t getFixedFieldCount() const override + { + return fields.size(); } virtual const FieldDescription * getFieldDescription(const void * val, const void * field) const override { - ssize_t offset = (const char *)field - (const char *)val; - for (auto & f: fields) { - if (f.second.offset >= offset - && f.second.offset + f.second.width <= offset) - return &f.second; - } - return nullptr; + return StructureDescriptionBase::getFieldDescription(val, field); } virtual void forEachField(const void * val, const std::function & onField) const override { - for (auto f: orderedFields) { - onField(f->second); - } + return StructureDescriptionBase::forEachField(val, onField); } virtual const FieldDescription & getField(const std::string & field) const override { - auto it = fields.find(field.c_str()); - if (it != fields.end()) - return it->second; - throw MLDB::Exception("structure has no field " + field); + return StructureDescriptionBase::getField(field); } virtual const FieldDescription & getFieldByNumber(int fieldNum) const override { - for (auto & f: fields) { - if (f.second.fieldNum == fieldNum) - return f.second; - } - - throw MLDB::Exception("structure has no field with given number"); + return StructureDescriptionBase::getFieldByNumber(fieldNum); } virtual int getVersion() const override { - return this->version; - } - - virtual void parseJson(void * val, JsonParsingContext & context) const override - { - return StructureDescriptionBase::parseJson(val, context); - } - - virtual void printJson(const void * val, JsonPrintingContext & context) const override - { - return StructureDescriptionBase::printJson(val, context); + return StructureDescriptionBase::getVersion(); } void collectUnparseableJson(Json::Value Struct::* member) @@ -357,6 +622,63 @@ struct StructureDescription getEntry(0, obj->*member) = context.expectJson(); }; } + + virtual void fixupAlign(size_t knownWidth, size_t knownAlign) override + { + ExcAssertLessEqual(knownWidth, this->width); + ExcAssertLessEqual(knownAlign, this->align); + } + + // Comparisons + virtual bool hasEqualityComparison() const override + { + return StructureDescriptionBase::hasEqualityComparison(); + } + + virtual bool compareEquality(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareEquality(val1, val2); + } + + virtual bool hasLessThanComparison() const override + { + return StructureDescriptionBase::hasLessThanComparison(); + } + + virtual bool compareLessThan(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareLessThan(val1, val2); + } + + virtual bool hasStrongOrderingComparison() const override + { + return StructureDescriptionBase::hasStrongOrderingComparison(); + } + + virtual std::strong_ordering compareStrong(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareStrong(val1, val2); + } + + virtual bool hasWeakOrderingComparison() const override + { + return StructureDescriptionBase::hasWeakOrderingComparison(); + } + + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::compareWeak(val1, val2); + } + + virtual bool hasPartialOrderingComparison() const override + { + return StructureDescriptionBase::hasPartialOrderingComparison(); + } + + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const override + { + return StructureDescriptionBase::comparePartial(val1, val2); + } }; /** Base class for an implementation of a structure description. It @@ -382,6 +704,15 @@ RegisterValueDescriptionI StructureDescriptionImpl:: regme; +template +/*constexpr*/ size_t getParentOffset() +{ + constexpr size_t BASE = 0x1000; // can't use a null pointer + Struct * p = reinterpret_cast(BASE); + Parent * p2 = static_cast(p); + size_t ofs = reinterpret_cast(p2) - BASE; + return ofs; +} template template @@ -394,18 +725,15 @@ addParent(ValueDescriptionT * description_) StructureDescription * desc2 = dynamic_cast *>(description_); if (!desc2) { + auto name = type_name(*description_); delete description_; - throw MLDB::Exception("parent description is not a structure"); + throw MLDB::Exception("parent description is not a structure: it is " + name); } std::shared_ptr > description(desc2); parents.push_back(description); - constexpr size_t BASE = 0x1000; // can't use a null pointer - Struct * p = reinterpret_cast(BASE); - V * p2 = static_cast(p); - - size_t ofs = reinterpret_cast(p2) - BASE; + size_t ofs = getParentOffset(); //using namespace std; //cerr << "parent " << description_->typeName << " of " << this->typeName << " is at offset " << ofs << endl; @@ -432,8 +760,29 @@ addParent(ValueDescriptionT * description_) fd.offset = ofd.offset + ofs; fd.width = ofd.width; fd.fieldNum = fields.size() - 1; + + if (ofd.isActive) { + fd.isActive = ofd.isActive; + //MLDB_THROW_UNIMPLEMENTED("TODO: copy isActive"); + } + fd.isActiveStr = ofd.isActiveStr; + + if (ofd.bitField.has_value()) { + fd.bitField = *ofd.bitField; + //MLDB_THROW_UNIMPLEMENTED("TODO: copy bitfield"); + } + orderedFields.push_back(it); } } +template +template +void StructureDescription:: +addParentAsField(const std::string & name, const std::string & comment, + std::shared_ptr> description) +{ + StructureDescriptionBase::addFieldDesc(name, getParentOffset(), comment, description); +} + } // namespace MLDB diff --git a/types/testing/json_parsing_test.cc b/types/testing/json_parsing_test.cc index f13c06142..a4b9b0e30 100644 --- a/types/testing/json_parsing_test.cc +++ b/types/testing/json_parsing_test.cc @@ -72,6 +72,8 @@ BOOST_AUTO_TEST_CASE( test1 ) testFp("1.0E-3", 1.0E-3); testFp("Inf", INFINITY); testFp("-Inf", -INFINITY); + testFp("45000.00", 45000.00); + testUnsigned("45000", 45000); testHex4("0026", 38); testHex4("001A", 26); @@ -117,11 +119,16 @@ void testExpectStringUtf8(ParseContext * context) //cerr << "c = " << c << " " << (char)c << endl; if (c < 0 || c > 127) { + // Unicode c = context->expect_utf8_code_point(); + + char * p1 = buffer + pos; + char * p2 = p1; + pos += utf8::append(c, p2) - p1; + + continue; } - else { - ++(*context); - } + ++(*context); if (c == '\\') { c = *(*context)++; @@ -168,3 +175,11 @@ BOOST_AUTO_TEST_CASE(test_utf8_parsing) BOOST_CHECK_EQUAL(context.expectStringUtf8(), "hellô"); } + +BOOST_AUTO_TEST_CASE(test_match_number) +{ + std::string s = "e"; + ParseContext context(s, s.c_str(), s.c_str() + s.length()); + JsonNumber num; + BOOST_CHECK(!matchJsonNumber(context, num)); +} \ No newline at end of file diff --git a/types/testing/value_description_test.cc b/types/testing/value_description_test.cc index b63300e86..75a4f7b96 100644 --- a/types/testing/value_description_test.cc +++ b/types/testing/value_description_test.cc @@ -550,3 +550,43 @@ BOOST_AUTO_TEST_CASE(test_array_description) BOOST_CHECK_EQUAL(std::get<2>(testArray), 3); } } + + +struct ThingWithNoValueDescription { + +}; + +BOOST_AUTO_TEST_CASE(test_has_default_description) +{ + auto return1 = getDefaultDescriptionMaybe((ThingWithNoValueDescription *)0); + cerr << "return type 1 = " << type_name(return1) << endl; + auto return2 = getDefaultDescriptionMaybe((int *)0); + cerr << "return type 2 = " << type_name(return2) << endl; + auto return3 = getDefaultDescriptionMaybe((RecursiveStructure *)0); + cerr << "return type 3 = " << type_name(return3) << endl; + auto return4 = getDefaultDescriptionMaybe((std::vector *)0); + cerr << "return type 4 = " << type_name(return4) << endl; + auto return5 = getDefaultDescriptionMaybe((std::vector *)0); + cerr << "return type 5 = " << type_name(return5) << endl; + BOOST_CHECK_EQUAL(has_default_description::value, true); + BOOST_CHECK_EQUAL(has_default_description::value, false); + BOOST_CHECK_EQUAL((all_have_default_descriptions<>::value), true); + BOOST_CHECK_EQUAL((all_have_default_descriptions::value), true); + BOOST_CHECK_EQUAL((all_have_default_descriptions::value), true); + BOOST_CHECK_EQUAL((all_have_default_descriptions::value), false); + BOOST_CHECK_EQUAL((all_have_default_descriptions::value), false); + BOOST_CHECK_EQUAL((all_have_default_descriptions::value), false); +} + +BOOST_AUTO_TEST_CASE(containers_have_no_default_description) +{ + BOOST_CHECK_EQUAL((has_default_description>::value), true); + BOOST_CHECK_EQUAL((has_default_description>::value), true); + BOOST_CHECK_EQUAL((has_default_description>::value), true); + BOOST_CHECK_EQUAL((has_default_description>::value), false); + BOOST_CHECK_EQUAL((has_default_description::value), true); + BOOST_CHECK_EQUAL((has_default_description>::value), true); + BOOST_CHECK_EQUAL((has_default_description>::value), false); + BOOST_CHECK_EQUAL((has_default_description>::value), true); + BOOST_CHECK_EQUAL((has_default_description>::value), false); +} diff --git a/types/tuple_description.h b/types/tuple_description.h index 0ce531e81..949da96fc 100644 --- a/types/tuple_description.h +++ b/types/tuple_description.h @@ -24,11 +24,11 @@ namespace std { template MLDB::TupleDescription * -getDefaultDescription(tuple * = 0); +getDefaultDescription(tuple * = 0, std::enable_if_t::value> * = 0); template MLDB::TupleDescription * -getDefaultDescriptionUninitialized(tuple * = 0); +getDefaultDescriptionUninitialized(tuple * = 0, std::enable_if_t::value> * = 0); } // namespace std @@ -148,6 +148,21 @@ struct TupleDescription return sizeof...(T); } + virtual size_t getArrayFixedLength() const override + { + return sizeof...(T); + } + + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::FIXED; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::NONE; + } + virtual void * getArrayElement(void * val, uint32_t element) const override { return ((char*) val) + elements.at(element).offset; @@ -238,14 +253,14 @@ namespace std { template MLDB::TupleDescription * -getDefaultDescription(std::tuple *) +getDefaultDescription(std::tuple *, std::enable_if_t::value> *) { return new MLDB::TupleDescription(); } template MLDB::TupleDescription * -getDefaultDescriptionUninitialized(std::tuple *) +getDefaultDescriptionUninitialized(std::tuple *, std::enable_if_t::value> *) { return new MLDB::TupleDescription(MLDB::constructOnly); } diff --git a/types/types.mk b/types/types.mk index b2bd7e372..4e44d1a5e 100644 --- a/types/types.mk +++ b/types/types.mk @@ -14,6 +14,7 @@ JSONCPP_SOURCES := \ LIBVALUE_DESCRIPTION_SOURCES := \ value_description.cc \ + structure_description.cc \ basic_value_descriptions.cc \ libc_value_descriptions.cc \ json_parsing.cc \ @@ -22,7 +23,8 @@ LIBVALUE_DESCRIPTION_SOURCES := \ dtoa_impl.cc \ meta_value_description.cc \ distribution_description.cc \ -# string.cc \ + generic_array_description.cc \ + generic_atom_description.cc \ LIBVALUE_DESCRIPTION_LINK := \ arch base icui18n icuuc icudata @@ -45,7 +47,8 @@ LIBTYPES_SOURCES := \ regex.cc \ periodic_utils_value_descriptions.cc \ path.cc \ - annotated_exception.cc + exception_description.cc \ + annotated_exception.cc \ LIBTYPES_LINK := \ diff --git a/types/utility_descriptions.h b/types/utility_descriptions.h index f2d282ddc..b52555b10 100644 --- a/types/utility_descriptions.h +++ b/types/utility_descriptions.h @@ -31,13 +31,26 @@ struct BridgedValueDescription: public ValueDescription { virtual void copyValue(const void * from, void * to) const override; virtual void moveValue(void * from, void * to) const override; virtual void swapValues(void * from, void * to) const override; - virtual void * constructDefault() const override; - virtual void * constructCopy(const void * from) const override; - virtual void * constructMove(void * from) const override; - virtual void destroy(void *) const override; + virtual void initializeDefault(void * mem) const override; + virtual void initializeCopy(void * mem, const void * from) const override; + virtual void initializeMove(void * mem, void * from) const override; + virtual void destruct(void * obj) const override; + virtual bool hasEqualityComparison() const override; + virtual bool compareEquality(const void * val1, const void * val2) const override; + virtual bool hasLessThanComparison() const override; + virtual bool compareLessThan(const void * val1, const void * val2) const override; + virtual bool hasStrongOrderingComparison() const override; + virtual std::strong_ordering compareStrong(const void * val1, const void * val2) const override; + virtual bool hasWeakOrderingComparison() const override; + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const override; + virtual bool hasPartialOrderingComparison() const override; + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const override; virtual void * optionalMakeValue(void * val) const override; virtual const void * optionalGetValue(const void * val) const override; + virtual size_t getArrayFixedLength() const override; virtual size_t getArrayLength(void * val) const override; + virtual LengthModel getArrayLengthModel() const override; + virtual OwnershipModel getArrayIndirectionModel() const override; virtual void * getArrayElement(void * val, uint32_t element) const override; virtual const void * getArrayElement(const void * val, uint32_t element) const override; virtual const ValueDescription & @@ -50,6 +63,7 @@ struct BridgedValueDescription: public ValueDescription { virtual const ValueDescription & contained() const override; virtual OwnershipModel getOwnershipModel() const override; virtual void* getLink(void* obj) const override; + virtual const void* getConstLink(const void* obj) const override; virtual void set(void* obj, void* value, const ValueDescription* valueDesc) const override; virtual void convertAndCopy(const void * from, const ValueDescription & fromDesc, @@ -80,20 +94,20 @@ struct PureValueDescription : public ValueDescriptionT { ValueDescriptionT(ValueKind::ATOM) { } - virtual void parseJson(void * val, JsonParsingContext & context) const {}; - virtual void printJson(const void * val, JsonPrintingContext & context) const + virtual void parseJson(void * val, JsonParsingContext & context) const override {}; + virtual void printJson(const void * val, JsonPrintingContext & context) const override { context.writeNull(); }; - virtual bool isDefault(const void * val) const { return false; } - virtual void setDefault(void * val) const {} - virtual void copyValue(const void * from, void * to) const {} - virtual void moveValue(void * from, void * to) const {} - virtual void swapValues(void * from, void * to) const {} - virtual void * constructDefault() const {return nullptr;} - virtual void * constructCopy(const void *) const {return nullptr;} - virtual void * constructMove(void *) const {return nullptr;} - virtual void destroy(void *) const {} + virtual bool isDefault(const void * val) const override { return false; } + virtual void setDefault(void * val) const override {} + virtual void copyValue(const void * from, void * to) const override {} + virtual void moveValue(void * from, void * to) const override {} + virtual void swapValues(void * from, void * to) const override {} + virtual void initializeDefault(void * mem) const override {} + virtual void initializeCopy(void * mem, const void *) const override {} + virtual void initializeMove(void * mem, void *) const override {} + virtual void destruct(void *) const override {} }; @@ -127,9 +141,9 @@ struct ValueDescriptionWithDefault : public BridgedValueDescription { *val = defaultValue; } - virtual void * constructDefault() const override + virtual void initializeDefault(void * mem) const override { - return new T(defaultValue); + new (mem) T(defaultValue); } T defaultValue; @@ -180,57 +194,72 @@ struct DescriptionFromBase return addOffset(ptr, offset()); } - virtual void parseJson(void * val, JsonParsingContext & context) const + virtual void parseJson(void * val, JsonParsingContext & context) const override { inner->parseJson(fixPtr(val), context); } - virtual void parseJsonTyped(T * val, JsonParsingContext & context) const + virtual void parseJsonTyped(T * val, JsonParsingContext & context) const override { inner->parseJson(fixPtr(val), context); } - virtual void printJson(const void * val, JsonPrintingContext & context) const + virtual void printJson(const void * val, JsonPrintingContext & context) const override { inner->printJson(fixPtr(val), context); } - virtual void printJsonTyped(const T * val, JsonPrintingContext & context) const + virtual void printJsonTyped(const T * val, JsonPrintingContext & context) const override { inner->printJson(fixPtr(val), context); } - virtual bool isDefault(const void * val) const + virtual bool isDefault(const void * val) const override { return inner->isDefault(fixPtr(val)); } - virtual bool isDefaultTyped(const T * val) const + virtual bool isDefaultTyped(const T * val) const override { return inner->isDefault(fixPtr(val)); } - virtual size_t getArrayLength(void * val) const + virtual size_t getArrayLength(void * val) const override { return inner->getArrayLength(fixPtr(val)); } - virtual void * getArrayElement(void * val, uint32_t element) const + virtual size_t getArrayFixedLength() const override + { + return inner->getArrayFixedLength(); + } + + virtual LengthModel getArrayLengthModel() const override + { + return inner->getArrayLengthModel(); + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return inner->getArrayIndirectionModel(); + } + + virtual void * getArrayElement(void * val, uint32_t element) const override { return inner->getArrayElement(fixPtr(val), element); } - virtual const void * getArrayElement(const void * val, uint32_t element) const + virtual const void * getArrayElement(const void * val, uint32_t element) const override { return inner->getArrayElement(fixPtr(val), element); } - virtual void setArrayLength(void * val, size_t newLength) const + virtual void setArrayLength(void * val, size_t newLength) const override { inner->setArrayLength(fixPtr(val), newLength); } - virtual const ValueDescription & contained() const + virtual const ValueDescription & contained() const override { return inner->contained(); } diff --git a/types/value_description.cc b/types/value_description.cc index 4af4c7124..2877c5f00 100644 --- a/types/value_description.cc +++ b/types/value_description.cc @@ -14,7 +14,6 @@ #include "value_description.h" #include "structure_description.h" - using namespace std; @@ -51,10 +50,14 @@ std::ostream & operator << (std::ostream & stream, ValueKind kind) ValueDescription:: ValueDescription(ValueKind kind, const std::type_info * type, + uint32_t width, + uint32_t align, const std::string & typeName) : kind(kind), type(type), - typeName(typeName.empty() ? demangle(type->name()) : typeName), + width(width), + align(align), + typeName(typeName.empty() ? (type ? demangle(type->name()) : "") : typeName), jsConverters(nullptr), jsConvertersInitialized(false) { @@ -92,53 +95,143 @@ printJsonString(const void * val) const return result; } +bool +ValueDescription:: +hasEqualityComparison() const +{ + return false; +} + +bool +ValueDescription:: +compareEquality(const void * val1, const void * val2) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " does not support equality comparison"); +} + +bool +ValueDescription:: +hasLessThanComparison() const +{ + return false; +} + +bool +ValueDescription:: +compareLessThan(const void * val1, const void * val2) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " does not support less than comparison"); +} + +bool +ValueDescription:: +hasStrongOrderingComparison() const +{ + return false; +} + +std::strong_ordering +ValueDescription:: +compareStrong(const void * val1, const void * val2) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " does not support strongly ordered comparison"); +} + +bool +ValueDescription:: +hasWeakOrderingComparison() const +{ + return false; +} + +std::weak_ordering +ValueDescription:: +compareWeak(const void * val1, const void * val2) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " does not support weakly ordered comparison"); +} + +bool +ValueDescription:: +hasPartialOrderingComparison() const +{ + return false; +} + +std::partial_ordering +ValueDescription:: +comparePartial(const void * val1, const void * val2) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " does not support partially ordered comparison"); +} void * ValueDescription:: optionalMakeValue(void * val) const { - throw MLDB::Exception("type is not optional"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type is not optional"); } const void * ValueDescription:: optionalGetValue(const void * val) const { - throw MLDB::Exception("type is not optional"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type is not optional"); } size_t ValueDescription:: getArrayLength(void * val) const { - throw MLDB::Exception("type is not an array"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); +} + +size_t +ValueDescription:: +getArrayFixedLength() const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); +} + +LengthModel +ValueDescription:: +getArrayLengthModel() const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); +} + +OwnershipModel +ValueDescription:: +getArrayIndirectionModel() const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); } void * ValueDescription:: getArrayElement(void * val, uint32_t element) const { - throw MLDB::Exception("type is not an array"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); } std::vector > ValueDescription:: getTupleElementDescriptions() const { - throw MLDB::Exception("type '" + typeName + "' is not a tuple " + MLDB::type_name(*this)); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' is not a tuple " + MLDB::type_name(*this)); } size_t ValueDescription:: getTupleLength() const { - throw MLDB::Exception("type '" + typeName + "' is not a tuple " + MLDB::type_name(*this)); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' is not a tuple " + MLDB::type_name(*this)); } const void * ValueDescription:: getArrayElement(const void * val, uint32_t element) const { - throw MLDB::Exception("type is not an array"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); } /** Return the value description for the nth array element. This is @@ -156,70 +249,91 @@ void ValueDescription:: setArrayLength(void * val, size_t newLength) const { - throw MLDB::Exception("type is not an array"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type " + typeName + " is not an array"); } const ValueDescription & ValueDescription:: getKeyValueDescription() const { - throw MLDB::Exception("type '" + typeName + "' has no key"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' has no key"); } const ValueDescription & ValueDescription:: contained() const { - throw MLDB::Exception("type '" + typeName + "' does not contain another"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' does not contain another"); } std::shared_ptr ValueDescription:: containedPtr() const { - throw MLDB::Exception("type '" + typeName + "' does not contain another"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' does not contain another"); } OwnershipModel ValueDescription:: getOwnershipModel() const { - throw MLDB::Exception("type '" + typeName + "' does not define an ownership type"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' does not define an ownership type"); } void* ValueDescription:: getLink(void* obj) const { - throw MLDB::Exception("type '" + typeName + "' is not a link"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' is not a link"); +} + +const void* +ValueDescription:: +getConstLink(const void* obj) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' is not a link"); } void ValueDescription:: set(void* obj, void* value, const ValueDescription* valueDesc) const { - throw MLDB::Exception("type '" + typeName + "' can't be written to"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' can't be written to"); } size_t ValueDescription:: getFieldCount(const void * val) const { - throw MLDB::Exception("type '" + typeName + "' doesn't support fields"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); +} + +bool +ValueDescription:: +hasFixedFieldCount() const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); +} + +size_t +ValueDescription:: +getFixedFieldCount() const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); } const ValueDescription::FieldDescription * ValueDescription:: hasField(const void * val, const std::string & name) const { - throw MLDB::Exception("type '" + typeName + "' doesn't support fields"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); } const ValueDescription::FieldDescription * ValueDescription:: getFieldDescription(const void * val, const void * field) const { - throw MLDB::Exception("type '" + typeName + "' doesn't support fields"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); } void @@ -227,35 +341,35 @@ ValueDescription:: forEachField(const void * val, const std::function & onField) const { - throw MLDB::Exception("type '" + typeName + "' doesn't support fields"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); } const ValueDescription::FieldDescription & ValueDescription:: getField(const std::string & field) const { - throw MLDB::Exception("type '" + typeName + "' doesn't support fields"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); } const ValueDescription::FieldDescription & ValueDescription:: getFieldByNumber(int fieldNum) const { - throw MLDB::Exception("type '" + typeName + "' doesn't support fields"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' doesn't support fields"); } const std::vector ValueDescription:: getEnumKeys() const { - throw MLDB::Exception("type '" + typeName + "' is not an enum"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' is not an enum"); } std::vector > ValueDescription:: getEnumValues() const { - throw MLDB::Exception("type '" + typeName + "' is not an enum"); + MLDB_THROW_UNIMPLEMENTED_ON_THIS("type '" + typeName + "' is not an enum"); } int @@ -314,9 +428,13 @@ initialize() namespace { std::recursive_mutex registryMutex; -std::unordered_map > & registry() +struct RegistryEntry { + std::shared_ptr desc; + std::vector aliases; +}; +std::unordered_map & registry() { - static std::unordered_map > result; + static std::unordered_map result; return result; } @@ -328,7 +446,7 @@ get(std::string const & name) { std::unique_lock guard(registryMutex); auto i = registry().find(name); - return registry().end() != i ? i->second : nullptr; + return registry().end() != i ? i->second.desc : nullptr; } std::shared_ptr @@ -367,9 +485,9 @@ registerValueDescription(const std::type_info & type, std::shared_ptr desc(createFn()); ExcAssert(desc); - registry()[desc->typeName] = desc; - registry()[type.name()] = desc; - registry()[demangle(type.name())] = desc; + registry()[desc->typeName].desc = desc; + registry()[type.name()].desc = desc; + registry()[demangle(type.name())].desc = desc; initFn(*desc); #if 0 cerr << "type " << demangle(type.name()) @@ -392,9 +510,9 @@ registerValueDescriptionFunctions(const std::type_info & type, std::shared_ptr desc(create()); ExcAssert(desc); - registry()[desc->typeName] = desc; - registry()[type.name()] = desc; - registry()[demangle(type.name())] = desc; + registry()[desc->typeName].desc = desc; + registry()[type.name()].desc = desc; + registry()[demangle(type.name())].desc = desc; initialize(*desc); #if 0 cerr << "type " << demangle(type.name()) @@ -407,183 +525,73 @@ registerValueDescriptionFunctions(const std::type_info & type, #endif } -void -ValueDescription:: -convertAndCopy(const void * from, - const ValueDescription & fromDesc, - void * to) const -{ - Json::Value val; - StructuredJsonPrintingContext context(val); - fromDesc.printJson(from, context); - - StructuredJsonParsingContext context2(val); - parseJson(to, context2); -} - -/*****************************************************************************/ -/* STRUCTURE DESCRIPTION BASE */ -/*****************************************************************************/ - - -StructureDescriptionBase:: -StructureDescriptionBase(const std::type_info * type, - ValueDescription * owner, - const std::string & structName, - bool nullAccepted) - : type(type), - structName(structName.empty() ? demangle(type->name()) : structName), - nullAccepted(nullAccepted), - owner(owner) +void registerValueDescriptionAlias(const std::type_info & type, const std::string & alias) { -} - -void -StructureDescriptionBase:: -operator = (const StructureDescriptionBase & other) -{ - type = other.type; - structName = other.structName; - nullAccepted = other.nullAccepted; - - fieldNames.clear(); - orderedFields.clear(); - fields.clear(); - fieldNames.reserve(other.fields.size()); - - // Don't set owner - for (auto & f: other.orderedFields) { - const char * s = f->first; - fieldNames.emplace_back(::strdup(s)); - auto it = fields.insert(make_pair(fieldNames.back().get(), f->second)) - .first; - orderedFields.push_back(it); + auto desc = ValueDescription::get(type); + if (!desc) { + throw MLDB::Exception("registering value description alias '" + alias + "' of type '" + + demangle(type.name()) + "': type isn't registered"); } + + std::unique_lock guard(registryMutex); + registry()[alias].desc = desc; + registry()[type.name()].aliases.push_back(alias); } -void -StructureDescriptionBase:: -operator = (StructureDescriptionBase && other) +std::vector +getValueDescriptionAliases(const std::type_info & type) { - type = std::move(other.type); - structName = std::move(other.structName); - nullAccepted = std::move(other.nullAccepted); - fields = std::move(other.fields); - fieldNames = std::move(other.fieldNames); - orderedFields = std::move(other.orderedFields); - // don't set owner + std::unique_lock guard(registryMutex); + auto it = registry().find(type.name()); + if (it == registry().end()) { + return {}; + } + return it->second.aliases; } -StructureDescriptionBase::Exception:: -Exception(JsonParsingContext & context, - const std::string & message) - : MLDB::Exception("at " + context.printPath() + ": " + message) +void registerForeignValueDescription(const std::string & typeName, + std::shared_ptr desc, + const std::vector & aliases) { + std::unique_lock guard(registryMutex); + if (registry().count(typeName)) + throw MLDB::Exception("Foreign value description overwrites a native one"); + registry()[typeName].desc = desc; + registry()[typeName].aliases = aliases; + + for (auto & alias: aliases) { + if (registry().count(alias)) + throw MLDB::Exception("Foreign value description alias overwrites a native one"); + registry()[alias].desc = desc; + } } -StructureDescriptionBase::Exception:: -~Exception() throw () +void +ValueDescription:: +extractBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const { + MLDB_THROW_UNIMPLEMENTED_ON_THIS("Only integral types support insertion/extraction of bit fields"); } void -StructureDescriptionBase:: -parseJson(void * output, JsonParsingContext & context) const -{ - try { - - if (!onEntry(output, context)) return; - - if (nullAccepted && context.isNull()) { - context.expectNull(); - return; - } - - if (!context.isObject()) { - std::string typeName; - if (context.isNumber()) - typeName = "number"; - else if (context.isBool()) - typeName = "boolean"; - else if (context.isString()) - typeName = "string"; - else if (context.isNull()) - typeName = "null"; - else if (context.isArray()) - typeName = "array"; - else typeName = "<>"; - - std::string msg - = "expected object of type " - + structName + ", but instead a " - + typeName + " was provided"; - - if (context.isString()) - msg += ". Did you accidentally JSON encode your object into a string?"; - - context.exception(msg); - } - - auto onMember = [&] () - { - try { - auto n = context.fieldName(); // TODO: use FieldNameView - - auto it = fields.find(n.c_str()); - if (it == fields.end()) { - context.onUnknownField(owner); - } - else { - it->second.description - ->parseJson(addOffset(output, - it->second.offset), - context); - } - } - catch (const Exception & exc) { - throw; - } - catch (const std::exception & exc) { - throw Exception(context, exc.what()); - } - catch (...) { - throw; - } - }; - - - context.forEachMember(onMember); - - onExit(output, context); - } - catch (const Exception & exc) { - throw; - } - catch (const std::exception & exc) { - throw Exception(context, exc.what()); - } - catch (...) { - throw; - } +ValueDescription:: +insertBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const +{ + MLDB_THROW_UNIMPLEMENTED_ON_THIS("Only integral types support insertion/extraction of bit fields"); } void -StructureDescriptionBase:: -printJson(const void * input, JsonPrintingContext & context) const +ValueDescription:: +convertAndCopy(const void * from, + const ValueDescription & fromDesc, + void * to) const { - context.startObject(); - - for (const auto & it: orderedFields) { - auto & fd = it->second; + Json::Value val; + StructuredJsonPrintingContext context(val); + fromDesc.printJson(from, context); - const void * mbr = addOffset(input, fd.offset); - if (fd.description->isDefault(mbr)) - continue; - context.startMember(it->first); - fd.description->printJson(mbr, context); - } - - context.endObject(); + StructuredJsonParsingContext context2(val); + parseJson(to, context2); } @@ -593,7 +601,7 @@ printJson(const void * input, JsonPrintingContext & context) const BridgedValueDescription:: BridgedValueDescription(std::shared_ptr impl) - : ValueDescription(impl->kind, impl->type, impl->typeName), + : ValueDescription(impl->kind, impl->type, impl->width, impl->align, impl->typeName), impl(std::move(impl)) { this->documentationUri = this->impl->documentationUri; @@ -660,36 +668,36 @@ swapValues(void * from, void * to) const swapValues(from, to); } -void * +void BridgedValueDescription:: -constructDefault() const +initializeDefault(void * mem) const { ExcAssert(impl); - return impl->constructDefault(); + impl->initializeDefault(mem); } -void * +void BridgedValueDescription:: -constructCopy(const void * from) const +initializeCopy(void * mem, const void * from) const { ExcAssert(impl); - return impl->constructCopy(from); + return impl->initializeCopy(mem, from); } -void * +void BridgedValueDescription:: -constructMove(void * from) const +initializeMove(void * mem, void * from) const { ExcAssert(impl); - return impl->constructMove(from); + return impl->initializeMove(mem, from); } void BridgedValueDescription:: -destroy(void * val) const +destruct(void * val) const { ExcAssert(impl); - impl->destroy(val); + impl->destruct(val); } void * @@ -700,6 +708,86 @@ optionalMakeValue(void * val) const return impl->optionalMakeValue(val); } +bool +BridgedValueDescription:: +hasEqualityComparison() const +{ + ExcAssert(impl); + return impl->hasEqualityComparison(); +} + +bool +BridgedValueDescription:: +compareEquality(const void * val1, const void * val2) const +{ + ExcAssert(impl); + return impl->compareEquality(val1, val2); +} + +bool +BridgedValueDescription:: +hasLessThanComparison() const +{ + ExcAssert(impl); + return impl->hasLessThanComparison(); +} + +bool +BridgedValueDescription:: +compareLessThan(const void * val1, const void * val2) const +{ + ExcAssert(impl); + return impl->compareLessThan(val1, val2); +} + +bool +BridgedValueDescription:: +hasStrongOrderingComparison() const +{ + ExcAssert(impl); + return impl->hasStrongOrderingComparison(); +} + +std::strong_ordering +BridgedValueDescription:: +compareStrong(const void * val1, const void * val2) const +{ + ExcAssert(impl); + return impl->compareStrong(val1, val2); +} + +bool +BridgedValueDescription:: +hasWeakOrderingComparison() const +{ + ExcAssert(impl); + return impl->hasWeakOrderingComparison(); +} + +std::weak_ordering +BridgedValueDescription:: +compareWeak(const void * val1, const void * val2) const +{ + ExcAssert(impl); + return impl->compareWeak(val1, val2); +} + +bool +BridgedValueDescription:: +hasPartialOrderingComparison() const +{ + ExcAssert(impl); + return impl->hasPartialOrderingComparison(); +} + +std::partial_ordering +BridgedValueDescription:: +comparePartial(const void * val1, const void * val2) const +{ + ExcAssert(impl); + return impl->comparePartial(val1, val2); +} + const void * BridgedValueDescription:: optionalGetValue(const void * val) const @@ -708,6 +796,14 @@ optionalGetValue(const void * val) const return impl->optionalGetValue(val); } +size_t +BridgedValueDescription:: +getArrayFixedLength() const +{ + ExcAssert(impl); + return impl->getArrayFixedLength(); +} + size_t BridgedValueDescription:: getArrayLength(void * val) const @@ -716,6 +812,22 @@ getArrayLength(void * val) const return impl->getArrayLength(val); } +LengthModel +BridgedValueDescription:: +getArrayLengthModel() const +{ + ExcAssert(impl); + return impl->getArrayLengthModel(); +} + +OwnershipModel +BridgedValueDescription:: +getArrayIndirectionModel() const +{ + ExcAssert(impl); + return impl->getArrayIndirectionModel(); +} + void * BridgedValueDescription:: getArrayElement(void * val, uint32_t element) const @@ -796,6 +908,14 @@ getLink(void* obj) const return impl->getLink(obj); } +const void* +BridgedValueDescription:: +getConstLink(const void* obj) const +{ + ExcAssert(impl); + return impl->getConstLink(obj); +} + void BridgedValueDescription:: set(void* obj, void* value, const ValueDescription* valueDesc) const diff --git a/types/value_description.h b/types/value_description.h index b7d35dd2c..8f1088a34 100644 --- a/types/value_description.h +++ b/types/value_description.h @@ -23,6 +23,8 @@ #include "json_printing.h" #include "mldb/ext/jsoncpp/value.h" #include "mldb/types/string.h" +#include +#include namespace MLDB { @@ -40,12 +42,16 @@ namespace MLDB { struct ValueDescription { ValueDescription(ValueKind kind, const std::type_info * type, + uint32_t width, + uint32_t align, const std::string & typeName = ""); virtual ~ValueDescription(); ValueKind kind; const std::type_info * type; + uint32_t width; + uint32_t align; std::string typeName; std::string documentationUri; @@ -60,16 +66,30 @@ struct ValueDescription { virtual void copyValue(const void * from, void * to) const = 0; virtual void moveValue(void * from, void * to) const = 0; virtual void swapValues(void * from, void * to) const = 0; - virtual void * constructDefault() const = 0; - virtual void * constructCopy(const void * other) const = 0; - virtual void * constructMove(void * other) const = 0; - virtual void destroy(void *) const = 0; + virtual void initializeDefault(void * obj) const = 0; + virtual void initializeCopy(void * obj, const void * other) const = 0; + virtual void initializeMove(void * obj, void * other) const = 0; + virtual void destruct(void *) const = 0; + + // Comparisons + virtual bool hasEqualityComparison() const; + virtual bool compareEquality(const void * val1, const void * val2) const; + virtual bool hasLessThanComparison() const; + virtual bool compareLessThan(const void * val1, const void * val2) const; + virtual bool hasStrongOrderingComparison() const; + virtual std::strong_ordering compareStrong(const void * val1, const void * val2) const; + virtual bool hasWeakOrderingComparison() const; + virtual std::weak_ordering compareWeak(const void * val1, const void * val2) const; + virtual bool hasPartialOrderingComparison() const; + virtual std::partial_ordering comparePartial(const void * val1, const void * val2) const; - virtual void * optionalMakeValue(void * val) const; virtual const void * optionalGetValue(const void * val) const; + virtual size_t getArrayFixedLength() const; virtual size_t getArrayLength(void * val) const; + virtual LengthModel getArrayLengthModel() const; + virtual OwnershipModel getArrayIndirectionModel() const; // NONE = inline, SHARED = external, shared, UNIQUE = external, unique virtual void * getArrayElement(void * val, uint32_t element) const; virtual const void * getArrayElement(const void * val, uint32_t element) const; @@ -100,6 +120,7 @@ struct ValueDescription { virtual OwnershipModel getOwnershipModel() const; virtual void* getLink(void* obj) const; + virtual const void* getConstLink(const void* obj) const; virtual void set(void* obj, void* value, const ValueDescription* valueDesc) const; @@ -110,6 +131,22 @@ struct ValueDescription { const ValueDescription & fromDesc, void * to) const; + // Extract the bit range. From points to an initialized object from this + // ValueDescription, to points to an initialized object of the same type. + virtual void extractBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const; + + // Extract the bit range. From points to an initialized object from this + // ValueDescription to insert into, to points to an initialized object of the same type into + // which the value should be inserted. + virtual void insertBitField(const void * from, void * to, uint32_t bitOffset, uint32_t bitWidth) const; + + struct BitFieldDescription { + uint32_t startBit; + uint32_t bitWidth; + //std::function extract; + //std::function insert; + }; + struct FieldDescription { std::string fieldName; std::string comment; @@ -118,6 +155,13 @@ struct ValueDescription { int width; int fieldNum; + /// For unions: return whether the field is active or not based upon the + /// state of the object. + std::function isActive; + + /// String version of active condition + std::string isActiveStr; + void* getFieldPtr(void* obj) const { return ((char*) obj) + offset; @@ -127,10 +171,16 @@ struct ValueDescription { { return ((const char*) obj) + offset; } + + std::optional bitField; }; virtual size_t getFieldCount(const void * val) const; + virtual bool hasFixedFieldCount() const; + + virtual size_t getFixedFieldCount() const; + virtual const FieldDescription * hasField(const void * val, const std::string & name) const; @@ -236,6 +286,19 @@ void registerValueDescriptionFunctions(const std::type_info & type, void (*initialize) (ValueDescription &), bool isDefault); +/** Register an alias to a pre-existing type. This allows non-C++ names to be used + whilst maintaining the ability to find the equivalent C++ type. +*/ +void registerValueDescriptionAlias(const std::type_info & type, const std::string & alias); + +// Return the aliases for this type +std::vector getValueDescriptionAliases(const std::type_info & type); + +// Register a foreign value description (for a type that doesn't have a C++ equivalent) +void registerForeignValueDescription(const std::string & typeName, + std::shared_ptr desc, + const std::vector & aliases = {}); + template struct RegisterValueDescription { static ValueDescription * create() { return getDefaultDescription((T*)0); } @@ -262,6 +325,11 @@ struct RegisterValueDescriptionI { static const RegisterValueDescription registerValueDescription##type; \ } +#define REGISTER_VALUE_DESCRIPTION_ALIAS_NAMED(type, name) \ +namespace { static const struct DoRegisterAlias##type##name { DoRegisterAlias##type##name() { MLDB::registerValueDescriptionAlias(typeid(type), #name); }} doRegisterAlias##type##name; } + +#define REGISTER_VALUE_DESCRIPTION_ALIAS(type) REGISTER_VALUE_DESCRIPTION_ALIAS_NAMED(type, type) + template void doSwap(T1 & t1, T2 & t2) { @@ -281,7 +349,7 @@ template struct ValueDescriptionT : public ValueDescription { ValueDescriptionT(ValueKind kind = ValueKind::ATOM) - : ValueDescription(kind, &typeid(T)) + : ValueDescription(kind, &typeid(T), sizeof(T), alignof(T)) { } @@ -336,7 +404,7 @@ struct ValueDescriptionT : public ValueDescription { virtual void setDefaultTyped(T * val) const { - *val = T(); + return setDefault(val, typename std::is_default_constructible::type()); } virtual void copyValue(const void * from, void * to) const override @@ -359,24 +427,24 @@ struct ValueDescriptionT : public ValueDescription { doSwap(*from2, *to2); } - virtual void * constructDefault() const override + virtual void initializeDefault(void * obj) const override { - return constructDefault(typename std::is_default_constructible::type()); + return initializeDefault(obj, typename std::is_default_constructible::type()); } - virtual void * constructCopy(const void * val) const override + virtual void initializeCopy(void * obj, const void * val) const override { - return constructCopy(val, typename std::is_copy_constructible::type()); + return initializeCopy(obj, val, typename std::is_copy_constructible::type()); } - virtual void * constructMove(void * val) const override + virtual void initializeMove(void * obj, void * val) const override { - return constructMove(val, typename std::is_move_constructible::type()); + return initializeMove(obj, val, typename std::is_move_constructible::type()); } - virtual void destroy(void * val) const override + virtual void destruct(void * val) const override { - delete (T*)val; + ((T*)val)->~T(); } virtual void set( @@ -467,24 +535,55 @@ struct ValueDescriptionT : public ValueDescription { { throw MLDB::Exception("type is not move constructible"); } -}; -template -struct GetDefaultDescriptionMaybe { - static std::shared_ptr get() + // Template parameter so not instantiated for types that are not + // default constructible + template + void setDefault(void * obj, X) const { - return nullptr; + *reinterpret_cast(obj) = T(); } -}; -template -struct GetDefaultDescriptionMaybe { - static std::shared_ptr get() + void setDefault(void * obj, std::false_type) const { - return getDefaultDescriptionShared((T *)0); + throw MLDB::Exception("type is not default initializable"); + } + + template + void initializeDefault(void * obj, X) const + { + new (obj) T(); + } + + void initializeDefault(void * obj, std::false_type) const + { + throw MLDB::Exception("type is not default initializable"); + } + + template + void initializeCopy(void * obj, const void * from, X) const + { + new (obj) T(*((T*)from)); + } + + void initializeCopy(void * obj, const void *, std::false_type) const + { + throw MLDB::Exception("type is not copy initializable"); + } + + template + void initializeMove(void * obj, void * from, X) const + { + new (obj) T(std::move(*((T*)from))); + } + + void initializeMove(void * obj, void *, std::false_type) const + { + throw MLDB::Exception("type is not move initializable"); } }; + /** Return the default description for the given type if it exists, or otherwise return a null pointer. */ @@ -493,7 +592,7 @@ template inline std::shared_ptr maybeGetDefaultDescriptionShared(T * = 0) { - auto result = GetDefaultDescriptionMaybe::get(); + std::shared_ptr result = getDefaultDescriptionSharedMaybe((T*)0); if (!result) { // Look to see if it's registered in the registry so that we can // get it @@ -648,7 +747,7 @@ Json::Value jsonEncode(const T & obj) Json::Value output; StructuredJsonPrintingContext context(output); desc->printJson(&obj, context); - return std::move(context.output); + return std::move(*context.outputPtr); } // jsonEncode implementation for any type which: @@ -703,6 +802,9 @@ extern template struct ValueDescriptionT; extern template struct ValueDescriptionT; extern template struct ValueDescriptionT; extern template struct ValueDescriptionT; +extern template struct ValueDescriptionT; +extern template struct ValueDescriptionT; +extern template struct ValueDescriptionT; extern template struct ValueDescriptionT; extern template struct ValueDescriptionT; extern template struct ValueDescriptionT; diff --git a/types/value_description_fwd.h b/types/value_description_fwd.h index f4aaac660..5c39b008c 100644 --- a/types/value_description_fwd.h +++ b/types/value_description_fwd.h @@ -16,6 +16,8 @@ namespace MLDB { +using half = _Float16; + class Utf8String; class Utf32String; struct JsonParsingContext; @@ -85,6 +87,12 @@ enum class OwnershipModel : int32_t { SHARED }; +/// Models the length of an array +enum class LengthModel : int32_t { + FIXED, + VARIABLE +}; + template struct ValueDescriptionI; std::ostream & operator << (std::ostream & stream, ValueKind kind); @@ -103,16 +111,21 @@ std::shared_ptr > getDefaultDescriptionShared(T *); template -std::shared_ptr > -getDefaultDescriptionSharedT() +auto getDefaultDescriptionSharedT() { using namespace MLDB; return getDefaultDescriptionShared((T *)0); } template -ValueDescriptionT * -getDefaultDescriptionUninitialized(T *) +auto getDefaultDescriptionSharedGenericT() +{ + using namespace MLDB; + return getDefaultDescriptionSharedGeneric((T *)0); +} + +template +auto getDefaultDescriptionUninitialized(T *) { using namespace MLDB; return getDefaultDescription((T *)0); @@ -124,19 +137,22 @@ getDefaultDescriptionUninitialized(T *) #define DECLARE_STRUCTURE_DESCRIPTION_NAMED(Name, Type) \ struct Name; \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescription(Type *); \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescriptionUninitialized(Type *); \ + \ + std::shared_ptr \ + getDefaultDescriptionSharedGeneric(Type *); \ #define DEFINE_STRUCTURE_DESCRIPTION_NAMED(Name, Type) \ \ struct Name \ - : public MLDB::StructureDescription { \ + : public MLDB::StructureDescription { \ Name(); \ \ - Name(const MLDB::ConstructOnly &); \ + Name(const MLDB::ConstructOnly &); \ \ virtual void initialize() \ { \ @@ -150,30 +166,36 @@ getDefaultDescriptionUninitialized(T *) \ struct Name::Regme { \ bool done; \ - static ValueDescription * creator() { return new Name(); } \ + static MLDB::ValueDescription * creator() { return new Name(); } \ Regme() \ : done(false) \ { \ MLDB::registerValueDescriptionFunctions \ - (typeid(Type), creator, true); \ + (typeid(Type), creator, true); \ } \ }; \ \ - Name::Name(const MLDB::ConstructOnly &) \ + Name::Name(const MLDB::ConstructOnly &) \ { \ regme.done = true; \ } \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescription(Type *) \ { \ return new Name(); \ } \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescriptionUninitialized(Type *) \ { \ return new Name(::MLDB::constructOnly); \ + } \ + \ + std::shared_ptr \ + getDefaultDescriptionSharedGeneric(Type *) \ + { \ + return MLDB::ValueDescription::get(typeid(Type)); \ } \ Name::Regme Name::regme; \ @@ -193,29 +215,33 @@ getDefaultDescriptionUninitialized(T *) DEFINE_STRUCTURE_DESCRIPTION(type) \ type##Description::type##Description() +#define IMPLEMENT_STRUCTURE_DESCRIPTION_NAMED(name, type) \ + DECLARE_STRUCTURE_DESCRIPTION_NAMED(name, type) \ + DEFINE_STRUCTURE_DESCRIPTION_NAMED(name, type) \ + name::name() -#define DECLARE_ENUM_DESCRIPTION_NAMED(Name, Type) \ - \ - MLDB::ValueDescriptionT * \ - getDefaultDescription(Type *); \ - \ - MLDB::ValueDescriptionT * \ - getDefaultDescriptionUninitialized(Type *); \ +#define DECLARE_ENUM_DESCRIPTION_NAMED(Name, Type) \ + \ + MLDB::ValueDescriptionT * \ + getDefaultDescription(Type *); \ + \ + MLDB::ValueDescriptionT * \ + getDefaultDescriptionUninitialized(Type *); \ #define DEFINE_ENUM_DESCRIPTION_NAMED(Name, Type) \ \ struct Name \ - : public MLDB::EnumDescription { \ + : public MLDB::EnumDescription { \ Name(); \ }; \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescription(Type *) \ { \ return new Name(); \ } \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescriptionUninitialized(Type *) \ { \ return new Name(); \ @@ -238,35 +264,43 @@ getDefaultDescriptionUninitialized(T *) type##Description::type##Description() #define PREDECLARE_VALUE_DESCRIPTION(T) \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescription(T * = 0); \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescriptionUninitialized(T * = 0); \ - std::shared_ptr > \ + std::shared_ptr > \ getDefaultDescriptionShared(T * = 0); \ + std::shared_ptr \ + getDefaultDescriptionSharedGeneric(T * = 0); \ #define DECLARE_VALUE_DESCRIPTION(T) \ PREDECLARE_VALUE_DESCRIPTION(T) \ - extern template struct ValueDescriptionT; \ + extern template struct MLDB::ValueDescriptionT; \ #define DEFINE_VALUE_DESCRIPTION_NS(T, Desc) \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescription(T *) \ { \ return new Desc(); \ } \ \ - MLDB::ValueDescriptionT * \ + MLDB::ValueDescriptionT * \ getDefaultDescriptionUninitialized(T *) \ { \ return new Desc(); \ } \ \ - std::shared_ptr > \ + std::shared_ptr > \ getDefaultDescriptionShared(T *) \ { \ static std::shared_ptr result = std::make_shared(); \ return result; \ + } \ + \ + std::shared_ptr \ + getDefaultDescriptionSharedGeneric(T *) \ + { \ + return getDefaultDescriptionShared((T*)0); \ } \ #define DEFINE_VALUE_DESCRIPTION(T, Desc) \ @@ -276,39 +310,43 @@ getDefaultDescriptionUninitialized(T *) #define VD_SINGLE_ARG(...) __VA_ARGS__ -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, ParamList, ArgList) \ +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, ParamList, ArgList, Enable) \ template \ - ValueDescriptionT > * \ - getDefaultDescription(Type * = 0) \ + MLDB::ValueDescriptionT > * \ + getDefaultDescription(Type * = 0, std::enable_if_t * = 0) \ { \ return new Impl(); \ } \ \ template \ - struct ValueDescriptionInit >: public ValueDescriptionInitBase { \ - static ValueDescription * create() \ + struct ValueDescriptionInit >: public MLDB::ValueDescriptionInitBase { \ + static MLDB::ValueDescription * create() \ { \ - return new Impl(MLDB::ConstructOnly()); \ + return new Impl(MLDB::ConstructOnly()); \ } \ - } \ + }; \ + \ + template \ + struct has_default_description> : std::integral_constant {} \ -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(Impl, Type, ArgType1, Arg1) \ - DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1), VD_SINGLE_ARG(Arg1)) -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(Impl, Type, ArgType1, Arg1, ArgType2, Arg2) \ - DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2), VD_SINGLE_ARG(Arg1, Arg2)) +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_1(Impl, Type, ArgType1, Arg1, Enable) \ + DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1), VD_SINGLE_ARG(Arg1), Enable) -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_3(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3) \ - DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3), VD_SINGLE_ARG(Arg1, Arg2, Arg3)) +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, Enable) \ + DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2), VD_SINGLE_ARG(Arg1, Arg2), Enable) -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_4(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, ArgType4, Arg4) \ - DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3, ArgType4 Arg4), VD_SINGLE_ARG(Arg1, Arg2, Arg3, Arg4)) +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_3(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, Enable) \ + DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3), VD_SINGLE_ARG(Arg1, Arg2, Arg3), Enable) -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_5(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, ArgType4, Arg4, ArgType5, Arg5) \ - DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3, ArgType4 Arg4, ArgType5 Arg5), VD_SINGLE_ARG(Arg1, Arg2, Arg3, Arg4, Arg5)) +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_4(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, ArgType4, Arg4, Enable) \ + DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3, ArgType4 Arg4), VD_SINGLE_ARG(Arg1, Arg2, Arg3, Arg4), Enable) -#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_6(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, ArgType4, Arg4, ArgType5, Arg5, ArgType6, Arg6) \ - DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3, ArgType4 Arg4, ArgType5 Arg5, ArgType6 Arg6), VD_SINGLE_ARG(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6)) +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_5(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, ArgType4, Arg4, ArgType5, Arg5, Enable) \ + DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3, ArgType4 Arg4, ArgType5 Arg5), VD_SINGLE_ARG(Arg1, Arg2, Arg3, Arg4, Arg5), Enable) + +#define DECLARE_TEMPLATE_VALUE_DESCRIPTION_6(Impl, Type, ArgType1, Arg1, ArgType2, Arg2, ArgType3, Arg3, ArgType4, Arg4, ArgType5, Arg5, ArgType6, Arg6, Enable) \ + DECLARE_TEMPLATE_VALUE_DESCRIPTION_N(Impl, Type, VD_SINGLE_ARG(ArgType1 Arg1, ArgType2 Arg2, ArgType3 Arg3, ArgType4 Arg4, ArgType5 Arg5, ArgType6 Arg6), VD_SINGLE_ARG(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6), Enable) @@ -330,6 +368,7 @@ PREDECLARE_VALUE_DESCRIPTION(signed long); PREDECLARE_VALUE_DESCRIPTION(unsigned long); PREDECLARE_VALUE_DESCRIPTION(signed long long); PREDECLARE_VALUE_DESCRIPTION(unsigned long long); +PREDECLARE_VALUE_DESCRIPTION(half); PREDECLARE_VALUE_DESCRIPTION(float); PREDECLARE_VALUE_DESCRIPTION(double); PREDECLARE_VALUE_DESCRIPTION(Json::Value); @@ -338,4 +377,80 @@ PREDECLARE_VALUE_DESCRIPTION(bool); template ValueDescriptionT * getDefaultDescription(T ** ptr); +// Base case where there is no default description defined, return nullptr_t +inline std::nullptr_t getDefaultDescriptionMaybe(...) +{ + return nullptr; +} + +// If there is a default description defined, return it +template +auto getDefaultDescriptionMaybe(T *) -> decltype(getDefaultDescription((T*)0)) +{ + return getDefaultDescription((T*)0); +} + +// Base case where there is no default description defined, return nullptr_t +inline std::nullptr_t getDefaultDescriptionSharedMaybe(...) +{ + return nullptr; +} + +// If there is a default description defined, return it +template +auto getDefaultDescriptionSharedMaybe(T *) -> decltype(getDefaultDescription((T*)0), getDefaultDescriptionShared((T*)0)) +{ + return getDefaultDescriptionShared((T*)0); +} + +// Base case where there is no default description defined, return nullptr_t +inline std::shared_ptr getDefaultDescriptionSharedGenericMaybe(...) +{ + return nullptr; +} + +// If there is a default description defined, return it +template +auto getDefaultDescriptionSharedGenericMaybe(T *) -> decltype(getDefaultDescriptionSharedGeneric((T*)0)) +{ + return getDefaultDescriptionSharedGeneric((T*)0); +} + +// Allow overriding based on whether a type has a default description defined or not +template +struct has_default_description_probe : std::true_type {}; + +template +struct has_default_description_probe : std::false_type {}; + +template struct has_default_description : has_default_description_probe {}; + +template +inline constexpr bool has_default_description_v = has_default_description::value; + +template +using has_default_description_t = typename has_default_description::type; + +template +struct and_base : std::false_type {}; + +template<> +struct and_base : std::true_type {}; + +template +struct all_have_default_descriptions; + +template<> +struct all_have_default_descriptions<> : std::true_type {}; + +template +struct all_have_default_descriptions + : and_base::value, has_default_description_v> {}; + +template +inline constexpr bool all_have_default_descriptions_v = all_have_default_descriptions::value; + +template +using all_have_default_descriptions_t = typename all_have_default_descriptions::type; + } // namespace MLDB diff --git a/types/vector_description.h b/types/vector_description.h index 101c73cfd..604264bb5 100644 --- a/types/vector_description.h +++ b/types/vector_description.h @@ -75,6 +75,16 @@ struct VectorDescription return val->empty(); } + virtual LengthModel getArrayLengthModel() const override + { + return LengthModel::VARIABLE; + } + + virtual OwnershipModel getArrayIndirectionModel() const override + { + return OwnershipModel::UNIQUE; + } + virtual size_t getArrayLength(void * val) const override { const std::vector * val2 = reinterpret_cast *>(val); @@ -116,6 +126,6 @@ struct VectorDescription }; -DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(VectorDescription, std::vector, typename, T, typename, A); +DECLARE_TEMPLATE_VALUE_DESCRIPTION_2(VectorDescription, std::vector, typename, T, typename, A, MLDB::has_default_description::value); } // namespace MLDB diff --git a/utils/block_splitter.cc b/utils/block_splitter.cc new file mode 100644 index 000000000..48395e0fb --- /dev/null +++ b/utils/block_splitter.cc @@ -0,0 +1,62 @@ +/** block_splitter.cc + + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Classes to identify split points of blocks of records (lines, CSV rows, JSON objects, etc). +*/ + +#include "block_splitter.h" +#include "block_splitter_impl.h" +#include "mldb/utils/coalesced_range.h" + +namespace MLDB { + +using namespace std; + +const NewlineSplitter newLineSplitter; + +NewlineSplitter::NextRecordResultT +NewlineSplitter:: +nextRecordT(const TextBlock & data, TextBlockIterator curr, bool noMoreData) const +{ + auto result = data.find(curr, data.end(), '\n'); + if (result != data.end()) { + // Found a newline, skip it and return + size_t skip = 1; // skip the newline + size_t record_end = result - curr; + + // Skip back through the \r if it's a DOS line ending + if (result != curr && result[-1] == '\r') { + ++skip; + --record_end; + }; + + return { true, record_end, skip }; + } + + // No newline but EOF, return up to the last character + if (noMoreData) { + size_t skip = 0; + if (curr != data.end() && result[-1] == '\r') { ++skip; --result; }; + return { true, data.end() - curr - skip, skip }; + } + + // No newline and not EOF, we need more data + return { false }; +} + +std::span +NewlineSplitter:: +removeNewlines(std::span block) +{ + const char * p = block.data(); + const char * e = p + block.size(); + if (e > p && e[-1] == '\n') --e; + if (e > p && e[-1] == '\r') --e; + return { p, size_t(e - p) }; +} + +} // namespace MLDB diff --git a/utils/block_splitter.h b/utils/block_splitter.h new file mode 100644 index 000000000..76b479808 --- /dev/null +++ b/utils/block_splitter.h @@ -0,0 +1,131 @@ +/** block_splitter.h + + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Classes to identify split points of blocks of records (lines, CSV rows, JSON objects, etc). +*/ + +#pragma once + +#include +#include +#include +#include "mldb/utils/coalesced_range_fwd.h" + +namespace MLDB { + +using TextBlock = CoalescedRange>>; +using TextBlockIterator = CoalescedRangeIterator>>; + +/* Structure that encapsulates logic to split a block of memory into separate + * chunks that can be handled in parallel. The simplest is to split per line + * of text, but this interface allows state to be carried around which allows + * for other splitting schemes that can handle quoted or structured records + * like CSV and JSON. + */ +struct BlockSplitter { + virtual ~BlockSplitter() = default; + + // Return an initial splitter state. This is used to initialize the splitter state before the first + // invocation of nextRecord. + virtual std::any newState() const = 0; + + // If this is true, then the splitter does not need to carry any state around. This is useful for + // parallelization as it means there is no dependency chain between calls of the splitter. + virtual bool isStateless() const { return false; }; + + // How many extra characters beyond the end of data are required for the scanning algorithms. Some high + // speed algorithms operate a full cache line or two at a time, and need this amount of extra data to be + // readable (even though the contents don't matter) in order to avoid segfaults and operate at maximum + // speed. + virtual size_t requiredBlockPadding() const { return 0; } + + // Result of the NextRecord function + template + struct NextRecordResultT { + bool foundRecord = false; // True if a new record was found within the data bounds + size_t skipToEndOfRecord = 0; // Number of bytes to skip from the iterator to the end of the record + size_t skipSeparators = 0; // Number of extra bytes to skip over the separator + + operator bool() const { return foundRecord; } + State newState; // New splitter state corresponding to the beginning of the next record + }; + + // Result of the stateless next record function + template<> + struct NextRecordResultT { + bool foundRecord = false; // True if a new record was found within the data bounds + size_t skipToEndOfRecord = 0; // Number of bytes to skip from the iterator to the end of the record + size_t skipSeparators = 0; // Number of extra bytes to skip over the separator + + operator bool() const { return foundRecord; } + }; + + using NextRecordResult = NextRecordResultT; + + + // Jump the iterator to the beginning of the next record. If a new record has not begun, foundRecord will be + // false. + // + // If foundRecord is true, then the output contains: + // - The iterator position of the end of the current record + // - The new splitter state to pass to the splitter + // - The number of bytes to skip the separator (if any) to get to the next record. The iterator must be + // advanced by this number of bytes before this function is called again. + virtual NextRecordResult + nextRecord(const TextBlock & data, TextBlockIterator curr, bool noMoreData, const std::any & state) const = 0; +}; + +/* BlockSplitter with a specific state type. */ +template +struct BlockSplitterT: public BlockSplitter { + virtual ~BlockSplitterT() = default; + virtual State newStateT() const { return State(); } + + virtual NextRecordResultT + nextRecordT(const TextBlock & data, TextBlockIterator curr, bool noMoreData, const State & state) const = 0; + + virtual std::any newState() const override + { + return newStateT(); + } + + // in block_splitter_impl.h + virtual NextRecordResult + nextRecord(const TextBlock & data, TextBlockIterator curr, bool noMoreData, const std::any & state) const override; +}; + +/* BlockSplitter with no state. */ +template<> +struct BlockSplitterT: public BlockSplitter { + virtual ~BlockSplitterT() = default; + virtual std::any newState() const override + { + return {}; + } + virtual bool isStateless() const override { return true; }; + + virtual NextRecordResultT + nextRecordT(const TextBlock & data, TextBlockIterator curr, bool noMoreData) const = 0; + + // in block_splitter_impl.h + virtual NextRecordResult + nextRecord(const TextBlock & data, TextBlockIterator curr, bool noMoreData, const std::any & state) const override; +}; + +/* BlockSplitter that splits on the newline character. */ +struct NewlineSplitter: public BlockSplitterT { + virtual NextRecordResultT + nextRecordT(const TextBlock & data, TextBlockIterator curr, bool noMoreData) const override; + + static std::span removeNewlines(std::span block); +}; + +/* Instance of the newline splitter that we can use for default reference arguments. */ +extern const NewlineSplitter newLineSplitter; + + +} // namespace MLDB diff --git a/utils/block_splitter_impl.h b/utils/block_splitter_impl.h new file mode 100644 index 000000000..9aeb69f26 --- /dev/null +++ b/utils/block_splitter_impl.h @@ -0,0 +1,39 @@ +/** block_splitter_impl.h + + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Classes to identify split points of blocks of records (lines, CSV rows, JSON objects, etc). +*/ + +#pragma once + +#include "block_splitter.h" +#include "coalesced_range.h" + +namespace MLDB { + +/* BlockSplitter with a specific state type. */ +template +BlockSplitterT::NextRecordResult +BlockSplitterT:: +nextRecord(const TextBlock & data, TextBlockIterator curr, bool noMoreData, const std::any & state) const +{ + const State & stateT = std::any_cast(state); + auto [found, skip_end, skip_sep, new_state] = nextRecordT(data, noMoreData, stateT); + return { found, skip_end, skip_sep, std::move(new_state) }; +}; + +/* BlockSplitter with no state. */ +BlockSplitterT::NextRecordResult +BlockSplitterT:: +nextRecord(const TextBlock & data, TextBlockIterator curr, bool noMoreData, const std::any & state) const +{ + auto [found, skip_end, skip_sep] = nextRecordT(data, curr, noMoreData); + if (!found) return { false }; + return { true, skip_end, skip_sep, std::any() }; +} + +} // namespace MLDB \ No newline at end of file diff --git a/utils/coalesced_range.h b/utils/coalesced_range.h new file mode 100644 index 000000000..80174bbed --- /dev/null +++ b/utils/coalesced_range.h @@ -0,0 +1,367 @@ +/* coalesced_range.h" + + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Class to process each line in a file in parallel. +*/ + +#pragma once + +#include "coalesced_range_fwd.h" +#include +#include +#include +#include +#include +#include +#include "mldb/base/exc_assert.h" +#include "mldb/base/exc_check.h" +#include "mldb/compiler/compiler.h" + +namespace MLDB { + +template +struct CoalescedRangeIterator { + using value_type = Value; + using difference_type = ssize_t; + using pointer = Value *; + using reference = Value &; + using iterator_category = std::random_access_iterator_tag; + using ranges_type = Ranges; + + auto operator <=> (const CoalescedRangeIterator & other) const = default; + + size_t range_size() const + { + ExcCheck(ranges_, "Coalesced range iterator not initialized"); + ExcCheckLess(range_, ranges_->size(), "Coalesced range iterator past end"); + return (*ranges_)[range_].size(); + } + + CoalescedRangeIterator & operator ++ () + { + ExcAssert(ranges_); + ExcAssert(offset_ < range_size()); + ++offset_; + if (MLDB_UNLIKELY(offset_ == range_size())) { + ExcAssert(range_ < ranges_->size()); + ++range_; + offset_ = 0; + } + return *this; + } + + CoalescedRangeIterator operator ++ (int) + { + auto result = *this; + operator ++ (); + return result; + } + + CoalescedRangeIterator & operator -- () + { + ExcAssert(ranges_); + if (MLDB_UNLIKELY(offset_ == 0)) { + ExcAssert(range_ > 0); + --range_; + offset_ = range_size(); + } + ExcAssert(offset_ > 0); + --offset_; + return *this; + } + + CoalescedRangeIterator operator -- (int) + { + auto result = *this; + operator -- (); + return result; + } + + CoalescedRangeIterator & operator += (ssize_t ofs) + { + if (ofs >= 0) { + while (ofs) { + auto cs = range_size(); + if (ofs >= cs - offset_) { + ofs -= cs - offset_; + offset_ = 0; + ++range_; + } + else { + offset_ += ofs; + ofs = 0; + } + } + return *this; + } + else return operator -= (-ofs); + } + + CoalescedRangeIterator & operator -= (ssize_t ofs) + { + if (ofs >= 0) { + while (ofs) { + if (ofs > offset_) { + ofs -= offset_; + ExcCheckGreater(range_, 0, "Coalesced range iterator before beginning"); + --range_; + offset_ = range_size(); + } + else { + offset_ -= ofs; + ofs = 0; + } + } + return *this; + } + else return operator += (-ofs); + } + + CoalescedRangeIterator operator + (ssize_t ofs) const { CoalescedRangeIterator result = *this; result += ofs; return result; } + CoalescedRangeIterator operator - (ssize_t ofs) const { CoalescedRangeIterator result = *this; result -= ofs; return result; } + + ssize_t operator - (const CoalescedRangeIterator & other) const + { + ExcCheck(ranges_ == other.ranges_, "Attempt to subtract non-compatible range iterators"); + + if (range_ < other.range_) + return - other.operator-(*this); + + ssize_t result = -other.offset_; + for (auto r = other.range_; r < range_; ++r) { + result += (*ranges_)[r].size(); + } + result += offset_; + return result; + } + + value_type & operator * () const + { + ExcCheck(ranges_, "Attempt to dereference null coalesced range iterator"); + ExcCheckLess(range_, ranges_->size(), "Attempt to dereference off-the-end coalesced range iterator"); + return (*ranges_)[range_][offset_]; + } + + value_type & operator [] (ssize_t ofs) const + { + return *(*this + ofs); + } + + const ranges_type * ranges_ = nullptr; + size_t range_ = 0; + size_t offset_ = 0; // invariant: offset_ will never point past the end of a valid range_ value + + const value_type * range_begin() const + { + ExcCheck(ranges_, "Attempt to dereference null coalesced range iterator"); + return ranges_->at(range_).data(); + } + + const value_type * range_it() const { return range_begin() + offset_; } + const value_type * range_end() const { return range_begin() + range_size(); } + + typename ranges_type::iterator ranges_begin() const + { + ExcCheck(ranges_, "Attempt to dereference null coalesced range iterator"); + return ranges_->begin(); + } + + typename ranges_type::iterator ranges_end() const + { + ExcCheck(ranges_, "Attempt to dereference null coalesced range iterator"); + return ranges_->end(); + } + + size_t block_number() const { return range_; } + size_t block_offset() const { return offset_; } + bool at_the_end() const { return range_ == ranges_->size(); } + + // Used in the implementation of some algorithms which work better if the off_the_end is represented + // by a range_ pointing to the last range and offset_ pointing to the end of that range. Note that + // the iterator to which this is done is no longer usable as an iterator. + + void flip_ate() { if (at_the_end() && range_ > 0) { --range_; offset_ = range_size(); } } + + template friend struct CoalescedRange; +}; + +template +struct CoalescedRange { + using ranges_type = Ranges; + using range_type = typename ranges_type::value_type; + using value_type = T; + + using iterator = CoalescedRangeIterator; + using const_iterator = CoalescedRangeIterator; + + iterator begin() { return {&ranges_, 0, 0}; } + iterator end() { return {&ranges_, ranges_.size(), 0}; } + const_iterator begin() const { return {&ranges_, 0, 0}; } + const_iterator end() const { return {&ranges_, ranges_.size(), 0}; } + + void clear() { ranges_.clear(); } + + // Add something to the ranges. Invalidates iterators. + // If it is empty, it will not be added. + // If it is an extension of the previous range, then it will be extended. + // Returns true if and only if the length of ranges_ increased + template bool add(Args&&... args) { return add(range_type(std::forward(args)...)); } + + bool add(range_type range) + { + if (range.empty()) + return false; + else if (!ranges_.empty() && ranges_.back().data() + ranges_.back().size() == range.data()) { + // Contiguous, combine them + ranges_.back() = {ranges_.back().data(), ranges_.back().size() + range.size()}; + return false; + } + else { + ranges_.push_back(range); + return true; + } + } + + size_t size() const { size_t result = 0; for (auto r: ranges_) result += r.size(); return result; } + size_t range_count() const { return ranges_.size(); } + + // Convert to a string, rolling up all of the ranges + std::basic_string> to_string() const + { + std::basic_string> result; + for (auto r: ranges_) + result.append(r.data(), r.size()); + return result; + } + + std::basic_string> to_string(const_iterator first, const_iterator last) const + { + ExcCheck(first.ranges_ == &ranges_ && last.ranges_ == &ranges_, "Attempt to convert span from wrong ranges"); + ExcCheck(first <= last, "Attempt to convert backwards span"); + + size_t n = std::distance(first, last); + std::basic_string> result; + result.reserve(n); + for (size_t i = first.range_; i <= last.range_ && i < ranges_.size(); ++i) { + auto start_ofs = i == first.range_ ? first.offset_ : 0; + auto end_ofs = i == last.range_ ? last.offset_ : ranges_[i].size(); + result.append(ranges_[i].data() + start_ofs, ranges_[i].data() + end_ofs); + } + return result; + } + + + // Reduce it to contain just the mentioned range + // It may lead to the list of ranges shrinking + // The result gives the indexes (first and past-the-end) of the new range in the + // old ranges. + std::tuple reduce(const_iterator begin, const_iterator end) + { + ExcCheck(begin <= end, "Attempt to reduce with backwards span"); + ExcCheck(begin.ranges_ == &ranges_ && end.ranges_ == &ranges_, "Attempt to reduce span from wrong ranges"); + + if (begin == end) { + ranges_.clear(); + return { begin.range_, begin.range_ }; + } + + size_t first = begin.block_number(); + size_t first_ofs = begin.block_offset(); + size_t last = end.block_number(); + size_t last_ofs = end.block_offset(); + if (last_ofs == 0) { + ExcAssert(last > 0); + last -= 1; + } + + ranges_type new_ranges(ranges_.begin() + first, ranges_.begin() + last + 1); + + if (!new_ranges.empty()) { + auto p1 = new_ranges.front().data(); + auto sz1 = new_ranges.front().size(); + p1 += first_ofs; + sz1 -= first_ofs; + new_ranges.front() = { p1, sz1 }; + + auto p2 = new_ranges.back().data(); + auto sz2 = new_ranges.back().size(); + sz2 -= last_ofs; + new_ranges.back() = { p2, sz2 }; + } + + ranges_.swap(new_ranges); + + return { first, last + 1 }; + } + + // Try to extract a single contiguous span of memory from two iterators. + // If both iterators are contained within a contiguous span of memory, then return the + // span of memory between them. Otherwise, a null option is returned. + std::optional get_span(const_iterator begin, const_iterator end) const + { + ExcCheck(begin <= end, "Attempt to extract backwards span"); + ExcCheck(begin.ranges_ == &ranges_ && end.ranges_ == &ranges_, "Attempt to extract span from wrong ranges"); + + if (begin == end) + return range_type(); + + end.flip_ate(); + + if (begin.range_ != end.range_) + return std::nullopt; + + auto first = begin.range_it(); + auto last = end.range_it(); + return range_type(first, last - first); + } + + std::optional>> get_string_view(const_iterator begin, const_iterator end) const + { + auto span = get_span(begin, end); + if (!span) + return std::nullopt; + return std::basic_string_view>(span->data(), span->size()); + } + + iterator find(const value_type & what) { return find(begin(), end(), what); } + const_iterator find(const value_type & what) const { return find(begin(), end(), what); } + + iterator find(iterator first, iterator last, const value_type & what) { return find_impl(first, last, what); } + const_iterator find(iterator first, iterator last, const value_type & what) const { return find_impl(first, last, what); } + +private: + template + static Iterator find_impl(Iterator first, const Iterator & last, const value_type & what) + { + ExcAssert(first <= last); + ExcAssert(first.ranges_); + ExcAssert(first.ranges_ == last.ranges_); + + while (first < last) { + auto rit = first.range_it(); + auto rend = first.range_ == last.range_ ? last.range_it() : first.range_end(); + + // For chars, this should be optimized to memchr or similar + auto rfound = std::find(rit, rend, what); + if (rfound != rend) { + ExcAssert(*rfound == what); + // Found here + return Iterator{first.ranges_, first.range_, first.offset_ + std::distance(rit, rfound)}; + } + + // Skip to the next one + ++first.range_; + first.offset_ = 0; + } + + return last; + } + + ranges_type ranges_; +}; + +} // namespace MLDB diff --git a/utils/coalesced_range_fwd.h b/utils/coalesced_range_fwd.h new file mode 100644 index 000000000..ba1ee5a3a --- /dev/null +++ b/utils/coalesced_range_fwd.h @@ -0,0 +1,21 @@ +/* coalesced_range.h" + + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Class to process each line in a file in parallel. +*/ + +#pragma once + +#include +#include + +namespace MLDB { + +template struct CoalescedRangeIterator; +template>> struct CoalescedRange; + +} // namespace MLDB diff --git a/utils/command.cc b/utils/command.cc index b319a6af5..7b00e7ae0 100644 --- a/utils/command.cc +++ b/utils/command.cc @@ -8,6 +8,7 @@ */ #include "command.h" +#include "command_expression.h" #include "mldb/arch/exception.h" #include "mldb/types/map_description.h" #include "mldb/types/structure_description.h" @@ -100,6 +101,137 @@ shellEscape(const std::string & str) return result; } +std::string +argumentRender(const Json::Value & val) +{ + using std::to_string; + + switch (val.type()) { + case Json::nullValue: return ""; + case Json::intValue: return to_string(val.asInt()); + case Json::uintValue: return to_string(val.asUInt()); + case Json::realValue: return to_string(val.asDouble()); + case Json::booleanValue: return to_string(val.asBool()); + case Json::stringValue: return val.asString(); + case Json::arrayValue: { + std::string str; + for (auto & v: val) { + if (!str.empty()) + str += " "; + str += shellEscape(argumentRender(v)); + } + return str; + } + default: + throw MLDB::Exception("can't render value " + val.toString() + " as string"); + } +} + +namespace PluginCommand { + +std::vector +commandRender(const Json::Value & val) +{ + //cerr << "commandRender " << val << endl; + + using std::to_string; + + switch (val.type()) { + case Json::nullValue: return { "" }; + case Json::intValue: return { to_string(val.asInt()) }; + case Json::uintValue: return { to_string(val.asUInt()) }; + case Json::realValue: return { to_string(val.asDouble()) }; + case Json::booleanValue: return { to_string(val.asBool()) }; + case Json::stringValue: return { val.asString() }; + case Json::arrayValue: { + std::vector str; + for (auto & v: val) { + str.push_back(argumentRender(v)); + } + return str; + } + default: + throw MLDB::Exception("can't render value " + val.toString() + " as command"); + } +} + +/*****************************************************************************/ +/* COMMAND TEMPLATE */ +/*****************************************************************************/ + +void +CommandTemplate:: +parse(const std::string & command) +{ + ParseContext context(command, + command.c_str(), command.c_str() + command.size()); + + while (context) { + commandLine.push_back + (CommandExpression::parseExpression + (context, true /* stop on whitespace */)); + context.skip_whitespace(); + } +} + +void +CommandTemplate:: +parse(const std::vector & cmdline) +{ + for (unsigned i = 0; i < cmdline.size(); ++i) + commandLine.push_back(CommandExpression::parse(cmdline[i])); +} + +Command +CommandTemplate:: +operator () (CommandExpressionContext & context) const +{ + Command result; + + for (auto & c: commandLine) { + Json::Value r = c->apply(context); + //cerr << "result of " << c->surfaceForm << " is " << r << endl; + vector vals = commandRender(r); + result.cmdLine.insert(result.cmdLine.end(), vals.begin(), vals.end()); + } + + return result; +} + + +Command +CommandTemplate:: +operator () (const std::initializer_list > & vals) const +{ + CommandExpressionContext context(vals); + return operator () (context); +} + +#if 0 +struct CommandTemplateDescription + : public StructureDescriptionImpl { + + CommandTemplateDescription(); +}; + +inline CommandTemplateDescription * getDefaultDescription(CommandTemplate*) +{ + return new CommandTemplateDescription(); +} +#endif + +DEFINE_STRUCTURE_DESCRIPTION(CommandTemplate); + +CommandTemplateDescription:: +CommandTemplateDescription() +{ + //addField("env", &CommandTemplate::env, "expression to generate the environment"); + addField("commandLine", &CommandTemplate::commandLine, "expression to generate the command line"); +} + +} // namespace PluginCommand + + /*****************************************************************************/ /* COMMAND */ /*****************************************************************************/ diff --git a/utils/command_expression.cc b/utils/command_expression.cc index bbb47fdec..debd5d2a3 100644 --- a/utils/command_expression.cc +++ b/utils/command_expression.cc @@ -188,6 +188,29 @@ Json::Value hash(const std::vector & params) return jsonHash(params[0]); } +// ceilDiv(x, y) = ceil(x/y) +Json::Value ceilDiv(const std::vector & params) +{ + if (params.size() != 2) + throw MLDB::Exception("ceilDiv() function takes exactly two arguments"); + auto modulus = params[1].asUInt(); + if (modulus == 0) + throw MLDB::Exception("ceilDiv(): divide by zero"); + + if (params[1].isUInt()) { + auto val = params[0].asUInt(); + //cerr << "ceilDiv(" << params[0].toStringNoNewLine() << "," << params[1].toStringNoNewLine() << ") = " + // << (val + (modulus - 1)) / modulus << endl; + return (val + (modulus - 1)) / modulus; + } + if (params[1].isInt()) { + auto val = params[0].asInt(); + // hmmm... plus or minus if it's negative? + return (val + (modulus - 1)) / modulus; + } + return ceil(params[0].asDouble() / params[1].asDouble()); +} + } // file scope @@ -222,6 +245,7 @@ builtins() value->addFunction("max", jsonMaxVector); value->addFunction("flatten", flatten); value->addFunction("hash", hash); + value->addFunction("ceilDiv", ceilDiv); return value; } @@ -249,8 +273,7 @@ applyFunction(const std::string & functionName, return it->second(functionArgs); } catch (const std::exception & exc) { throw MLDB::Exception("error trying to apply %s to args %s: %s", - functionName.c_str(), - MLDB::lexical_cast(functionArgs).c_str(), + functionName.c_str(), jsonEncodeStr(functionArgs).c_str(), exc.what()); } } @@ -279,11 +302,11 @@ parse(const std::string & val) std::shared_ptr CommandExpression:: -parseArgumentExpression(const std::string & val) +parseArgumentExpression(const std::string & val, int precedence) { ParseContext context(val, val.c_str(), val.c_str() + val.length()); - auto res = parseArgumentExpression(context); + auto res = parseArgumentExpression(context, precedence); context.expect_eof(); @@ -375,7 +398,7 @@ parseExpression(ParseContext & context, bool stopOnWhitespace) std::shared_ptr CommandExpression:: -parseArgumentExpression(ParseContext & context) +parseArgumentExpression(ParseContext & context, int precedence) { ParseContext::Hold_Token token(context); @@ -387,6 +410,10 @@ parseArgumentExpression(ParseContext & context) context.skip_whitespace(); + if (context.eof()) { + context.exception("expected expression"); + } + std::shared_ptr result; if (context.match_literal('\'')) { @@ -444,6 +471,13 @@ parseArgumentExpression(ParseContext & context) } result = std::make_shared(elements); } + else if (context.match_literal('(')) { + // Parenthesis + auto contained = parseArgumentExpression(context, 0 /* precedence */); + context.skip_whitespace(); + context.expect_literal(')'); + result = std::make_shared(contained); + } else if (context.match_literal('%')) { context.exception("nested expression literals not yet supported"); } @@ -482,17 +516,17 @@ parseArgumentExpression(ParseContext & context) result = std::make_shared(expressions, applyExpr); } - else if (isalpha(*context) || *context == '_') { + else if (context && (isalpha(*context) || *context == '_')) { // Must be a variable or argument name string entityName; bool isFunction = false; vector > args; - while (isalnum(*context) || *context == '_') + while (context && (isalnum(*context) || *context == '_')) entityName += *context++; - if (*context == ' ' && false) { + if (context && *context == ' ' && false) { context.skip_whitespace(); // Expression with space separated args isFunction = true; @@ -526,14 +560,25 @@ parseArgumentExpression(ParseContext & context) else result = addContext(std::make_shared(expectJson(context))); // Now look for operators that modify the output of the previous - while (true) { + while (context) { context.skip_whitespace(); + // -> gets greedily consumed as - if we don't check here + { + ParseContext::Revert_Token token(context); + if (context.match_literal("->")) { + break; + } + } + if (context.match_literal('.')) { string fieldName; - while (isalnum(*context) || *context == '_') + while (context && (isalnum(*context) || *context == '_')) fieldName += *context++; + if (fieldName == "") + context.exception("expected field name after '.'"); + result = std::make_shared(fieldName, result); } else if (context.match_literal('[')) { @@ -542,72 +587,32 @@ parseArgumentExpression(ParseContext & context) context.skip_whitespace(); context.expect_literal(']'); } - else if (context.match_literal('+')) { - auto rhs = parseArgumentExpression(context); + else if (precedence <= 10 && context.match_literal('+')) { + auto rhs = parseArgumentExpression(context, 10); result = std::make_shared(result, rhs); } - else if (context.match_literal('/')) { - auto rhs = parseArgumentExpression(context); + else if (precedence <= 10 && context.match_literal('-')) { + auto rhs = parseArgumentExpression(context, 10); + result = std::make_shared(result, rhs); + } + else if (precedence <= 20 && context.match_literal('*')) { + auto rhs = parseArgumentExpression(context, 20); + result = std::make_shared(result, rhs); + } + else if (precedence <= 20 && context.match_literal('/')) { + auto rhs = parseArgumentExpression(context, 20); result = std::make_shared(result, rhs); } + else if (precedence <= 20 && context.match_literal('%')) { + auto rhs = parseArgumentExpression(context, 20); + result = std::make_shared(result, rhs); + } else break; } return addContext(result); } -std::string -argumentRender(const Json::Value & val) -{ - using std::to_string; - - switch (val.type()) { - case Json::nullValue: return ""; - case Json::intValue: return to_string(val.asInt()); - case Json::uintValue: return to_string(val.asUInt()); - case Json::realValue: return to_string(val.asDouble()); - case Json::booleanValue: return to_string(val.asBool()); - case Json::stringValue: return val.asString(); - case Json::arrayValue: { - std::string str; - for (auto & v: val) { - if (!str.empty()) - str += " "; - str += shellEscape(argumentRender(v)); - } - return str; - } - default: - throw MLDB::Exception("can't render value " + val.toString() + " as string"); - } -} - -std::vector -commandRender(const Json::Value & val) -{ - //cerr << "commandRender " << val << endl; - - using std::to_string; - - switch (val.type()) { - case Json::nullValue: return { "" }; - case Json::intValue: return { to_string(val.asInt()) }; - case Json::uintValue: return { to_string(val.asUInt()) }; - case Json::realValue: return { to_string(val.asDouble()) }; - case Json::booleanValue: return { to_string(val.asBool()) }; - case Json::stringValue: return { val.asString() }; - case Json::arrayValue: { - std::vector str; - for (auto & v: val) { - str.push_back(argumentRender(v)); - } - return str; - } - default: - throw MLDB::Exception("can't render value " + val.toString() + " as command"); - } -} - std::string stringRender(const Json::Value & val) { @@ -636,7 +641,7 @@ stringRender(const Json::Value & val) /*****************************************************************************/ -/* COMMAND TEMPLATE */ +/* STRING TEMPLATE */ /*****************************************************************************/ void @@ -668,81 +673,8 @@ operator () (const std::initializer_list > & } -/*****************************************************************************/ -/* COMMAND TEMPLATE */ -/*****************************************************************************/ - -void -CommandTemplate:: -parse(const std::string & command) -{ - ParseContext context(command, - command.c_str(), command.c_str() + command.size()); - - while (context) { - commandLine.push_back - (CommandExpression::parseExpression - (context, true /* stop on whitespace */)); - context.skip_whitespace(); - } -} - -void -CommandTemplate:: -parse(const std::vector & cmdline) -{ - for (unsigned i = 0; i < cmdline.size(); ++i) - commandLine.push_back(CommandExpression::parse(cmdline[i])); -} - -Command -CommandTemplate:: -operator () (CommandExpressionContext & context) const -{ - Command result; - - for (auto & c: commandLine) { - Json::Value r = c->apply(context); - //cerr << "result of " << c->surfaceForm << " is " << r << endl; - vector vals = commandRender(r); - result.cmdLine.insert(result.cmdLine.end(), vals.begin(), vals.end()); - } - - return result; -} - - -Command -CommandTemplate:: -operator () (const std::initializer_list > & vals) const -{ - CommandExpressionContext context(vals); - return operator () (context); -} - -#if 0 -struct CommandTemplateDescription - : public StructureDescriptionImpl { - - CommandTemplateDescription(); -}; - -inline CommandTemplateDescription * getDefaultDescription(CommandTemplate*) -{ - return new CommandTemplateDescription(); -} -#endif - -DEFINE_STRUCTURE_DESCRIPTION(CommandTemplate); - -CommandTemplateDescription:: -CommandTemplateDescription() -{ - //addField("env", &CommandTemplate::env, "expression to generate the environment"); - addField("commandLine", &CommandTemplate::commandLine, "expression to generate the command line"); -} - DEFINE_VALUE_DESCRIPTION_NS(std::shared_ptr, CommandExpressionDescription); +DEFINE_VALUE_DESCRIPTION_NS(std::shared_ptr, ConstCommandExpressionDescription); DEFINE_VALUE_DESCRIPTION_NS(StringTemplate, StringTemplateDescription); } // namespace PluginCommand diff --git a/utils/command_expression.h b/utils/command_expression.h index eba0fdd5f..1d31d2a5a 100644 --- a/utils/command_expression.h +++ b/utils/command_expression.h @@ -8,10 +8,16 @@ #pragma once +#include "command_expression_fwd.h" + +#include +#include +#include +#include + #include "mldb/ext/jsoncpp/json.h" #include #include "mldb/arch/exception.h" -#include #include "mldb/base/parse_context.h" #include "mldb/utils/vector_utils.h" #include "mldb/base/exc_assert.h" @@ -80,7 +86,7 @@ struct CommandExpressionVariables { } /// Outer context we look in if we don't find something here - const CommandExpressionVariables * outer; + const CommandExpressionVariables * outer = nullptr; /// Value of local variables std::map values; @@ -90,7 +96,7 @@ struct CommandExpressionVariables { bool hasValue(const std::string & name) const { - return values.count(name); + return values.count(name) || (outer && outer->hasValue(name)); } void setValue(const std::string & key, const Json::Value & val) @@ -119,9 +125,15 @@ struct CommandExpressionVariables { return it->second; } + // Need to include command_expression_impl.h if you want to use this method template void setValue(const std::string & key, const T & val); + bool hasFunction(const std::string & name) const + { + return functions.count(name) || (outer && outer->hasFunction(name)); + } + Json::Value applyFunction(const std::string & functionName, const std::vector & functionArgs) const; @@ -257,6 +269,27 @@ struct CommandExpression { } } + // Return all child clauses that make up this one. Default returns no clauses. + virtual std::vector> childClauses() const + { + return {}; + } + + // Return variables which are not set and would definitely need to be to evaluate this + // expression. + virtual std::set unknowns(const CommandExpressionVariables & knowns) const + { + std::set result; + + for (auto & clause: childClauses()) { + for (auto & var: clause->unknowns(knowns)) { + result.insert(var); + } + } + + return result; + } + // Original form that was parsed to get it... used for printing std::string surfaceForm; @@ -264,23 +297,21 @@ struct CommandExpression { parseExpression(ParseContext & context, bool stopOnWhitespace = false); static std::shared_ptr - parseArgumentExpression(ParseContext & context); + parseArgumentExpression(ParseContext & context, int precedence = 0); static std::shared_ptr parse(const std::string & val); static std::shared_ptr - parseArgumentExpression(const std::string & expr); + parseArgumentExpression(const std::string & expr, int precedence = 0); static std::shared_ptr parse(const std::vector & vals); - - }; // Convert to strings and concatenate struct ConcatExpression : public CommandExpression { - virtual std::string applyString(const CommandExpressionContext & vars) const + virtual std::string applyString(const CommandExpressionContext & vars) const override { std::string result; @@ -290,12 +321,17 @@ struct ConcatExpression : public CommandExpression { return result; } + virtual std::vector> childClauses() const override + { + return clauses; + } + std::vector > clauses; }; struct ArrayExpression: public CommandExpression { - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { Json::Value result(Json::arrayValue); @@ -305,6 +341,11 @@ struct ArrayExpression: public CommandExpression { return result; } + virtual std::vector> childClauses() const override + { + return clauses; + } + std::vector > clauses; }; @@ -316,7 +357,7 @@ struct ObjectExpression: public CommandExpression { { } - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { Json::Value result(Json::objectValue); @@ -326,6 +367,16 @@ struct ObjectExpression: public CommandExpression { return result; } + virtual std::vector> childClauses() const override + { + std::vector> result; + for (auto & [c1, c2]: clauses) { + result.push_back(c1); + result.push_back(c2); + } + return result;; + } + std::vector, std::shared_ptr > > clauses; }; @@ -337,7 +388,7 @@ struct LiteralExpression : public CommandExpression { { } - virtual std::string applyString(const CommandExpressionContext & vars) const + virtual std::string applyString(const CommandExpressionContext & vars) const override { return literal; } @@ -352,7 +403,7 @@ struct JsonLiteralExpression : public CommandExpression { { } - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { return literal; } @@ -366,7 +417,7 @@ struct InlineArrayExpression: public CommandExpression { { } - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { Json::Value result(Json::arrayValue); for (auto & e: elements) @@ -374,9 +425,33 @@ struct InlineArrayExpression: public CommandExpression { return result; } + virtual std::vector> childClauses() const override + { + return elements; + } + std::vector > elements; }; +struct ParenthesisExpression: public CommandExpression { + ParenthesisExpression(std::shared_ptr expr) + : expr(expr) + { + } + + virtual Json::Value apply(const CommandExpressionContext & vars) const override + { + return expr->apply(vars); + } + + virtual std::vector> childClauses() const override + { + return {expr}; + } + + std::shared_ptr expr; +}; + /** Expression that iterates over one or more lists and calls an inner expression on the cross product of those expressions. Eg @@ -401,7 +476,7 @@ struct MapExpression: public CommandExpression { { } - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { Json::Value result(Json::arrayValue); @@ -432,6 +507,26 @@ struct MapExpression: public CommandExpression { } } + virtual std::vector> childClauses() const override + { + std::vector> result; + result.push_back(outputExpression); + for (auto & [name, expr]: iterExpressions) + result.push_back(expr); + return result; + } + + virtual std::set unknowns(const CommandExpressionVariables & knowns) const override + { + auto outputUnknowns = outputExpression->unknowns(knowns); + for (auto & e: iterExpressions) { + auto iterUnknowns = e.expression->unknowns(knowns); + outputUnknowns.insert(iterUnknowns.begin(), iterUnknowns.end()); + outputUnknowns.erase(e.variableName); + } + return outputUnknowns; + } + std::vector iterExpressions; std::shared_ptr outputExpression; }; @@ -450,7 +545,7 @@ struct FunctionExpression : public CommandExpression { std::vector > args; virtual Json::Value - apply(const CommandExpressionContext & context) const + apply(const CommandExpressionContext & context) const override { //std::string functionNameValue = functionName->applyString(context); @@ -460,6 +555,12 @@ struct FunctionExpression : public CommandExpression { return context.applyFunction(functionNameValue, argValues); } + + virtual std::vector> childClauses() const override + { + return args; + } + }; struct VariableExpression : public CommandExpression { @@ -471,11 +572,16 @@ struct VariableExpression : public CommandExpression { std::string variableName; - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { return vars.getValue(variableName); } - + + virtual std::set unknowns(const CommandExpressionVariables & knowns) const override + { + if (knowns.hasValue(variableName)) return {}; + return { variableName }; + } }; struct ExtractFieldExpression: public CommandExpression { @@ -487,13 +593,18 @@ struct ExtractFieldExpression: public CommandExpression { { } - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { return expr->apply(vars)[fieldName]; } std::string fieldName; std::shared_ptr expr; + + virtual std::vector> childClauses() const override + { + return { expr }; + } }; struct ExtractElementExpression: public CommandExpression { @@ -505,16 +616,28 @@ struct ExtractElementExpression: public CommandExpression { { } - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { + Json::Value val = expr->apply(vars); Json::Value index = element->apply(vars); - if (index.isString()) + if (index.isString()) { + if (!val.isMember(index.asString())) + throw MLDB::Exception("couldn't find field " + index.asString()); return expr->apply(vars)[index.asString()]; + } + if (!val.isValidIndex(index.asInt())) { + throw MLDB::Exception("couldn't find field " + std::to_string(index.asInt())); + } return expr->apply(vars)[index.asInt()]; } std::shared_ptr element; std::shared_ptr expr; + + virtual std::vector> childClauses() const override + { + return { element, expr }; + } }; struct ArithmeticExpression: public CommandExpression { @@ -534,13 +657,18 @@ struct BinaryArithmeticExpression: public CommandExpression { virtual Json::Value op(const Json::Value & lhs, const Json::Value & rhs) const = 0; - virtual Json::Value apply(const CommandExpressionContext & vars) const + virtual Json::Value apply(const CommandExpressionContext & vars) const override { Json::Value l = lhs->apply(vars); Json::Value r = rhs->apply(vars); return op(l, r); } + + virtual std::vector> childClauses() const override + { + return { lhs, rhs }; + } }; struct PlusExpression: public BinaryArithmeticExpression { @@ -552,7 +680,7 @@ struct PlusExpression: public BinaryArithmeticExpression { } virtual Json::Value op(const Json::Value & lhs, - const Json::Value & rhs) const + const Json::Value & rhs) const override { if (lhs.isNumeric() && rhs.isNumeric()) { if (lhs.isDouble() || rhs.isDouble()) { @@ -576,6 +704,29 @@ struct PlusExpression: public BinaryArithmeticExpression { } }; +struct MinusExpression: public BinaryArithmeticExpression { + + MinusExpression(std::shared_ptr lhs, + std::shared_ptr rhs) + : BinaryArithmeticExpression(lhs, rhs) + { + } + + virtual Json::Value op(const Json::Value & lhs, + const Json::Value & rhs) const override + { + if (lhs.isNumeric() && rhs.isNumeric()) { + if (lhs.isDouble() || rhs.isDouble()) { + return lhs.asDouble() + rhs.asDouble(); + } + return lhs.asInt() - rhs.asInt(); + } + else throw MLDB::Exception("don't know how to subtract %s and %s", + lhs.toString().c_str(), + rhs.toString().c_str()); + } +}; + struct DivideExpression: public BinaryArithmeticExpression { DivideExpression(std::shared_ptr lhs, @@ -585,12 +736,18 @@ struct DivideExpression: public BinaryArithmeticExpression { } virtual Json::Value op(const Json::Value & lhs, - const Json::Value & rhs) const + const Json::Value & rhs) const override { if (lhs.isNumeric() && rhs.isNumeric()) { if (lhs.isDouble() || rhs.isDouble()) { + if (rhs.asDouble() == 0.0) { + throw MLDB::Exception("divide by zero"); + } return lhs.asDouble() / rhs.asDouble(); } + if (rhs.asInt() == 0) { + throw MLDB::Exception("divide by zero"); + } return lhs.asInt() / rhs.asInt(); } else throw MLDB::Exception("don't know how to divide %s by %s", @@ -599,7 +756,51 @@ struct DivideExpression: public BinaryArithmeticExpression { } }; -PREDECLARE_VALUE_DESCRIPTION(std::shared_ptr); +struct ModulusExpression: public BinaryArithmeticExpression { + + ModulusExpression(std::shared_ptr lhs, + std::shared_ptr rhs) + : BinaryArithmeticExpression(lhs, rhs) + { + } + + virtual Json::Value op(const Json::Value & lhs, + const Json::Value & rhs) const override + { + if (lhs.isNumeric() && rhs.isNumeric()) { + if (rhs.asInt() == 0) { + throw MLDB::Exception("divide by zero in modulus"); + } + return lhs.asInt() % rhs.asInt(); + } + else throw MLDB::Exception("don't know how to take %s modulo %s", + lhs.toString().c_str(), + rhs.toString().c_str()); + } +}; + +struct TimesExpression: public BinaryArithmeticExpression { + + TimesExpression(std::shared_ptr lhs, + std::shared_ptr rhs) + : BinaryArithmeticExpression(lhs, rhs) + { + } + + virtual Json::Value op(const Json::Value & lhs, + const Json::Value & rhs) const override + { + if (lhs.isNumeric() && rhs.isNumeric()) { + if (lhs.isDouble() || rhs.isDouble()) { + return lhs.asDouble() * rhs.asDouble(); + } + return lhs.asInt() * rhs.asInt(); + } + else throw MLDB::Exception("don't know how to multiply %s by %s", + lhs.toString().c_str(), + rhs.toString().c_str()); + } +}; /** Renders the given JSON expression as a shell command. */ std::vector commandRender(const Json::Value & val); @@ -655,8 +856,6 @@ struct StringTemplate { std::string operator () (const std::initializer_list > & vals) const; }; -PREDECLARE_VALUE_DESCRIPTION(StringTemplate); - inline std::ostream & operator << (std::ostream & stream, const StringTemplate & tmpl) { return stream << tmpl.toString(); @@ -710,5 +909,10 @@ struct CommandTemplate { DECLARE_STRUCTURE_DESCRIPTION(CommandTemplate); } // namespace PluginCommand + +using PluginCommand::CommandExpression; +using PluginCommand::CommandExpressionContext; +using PluginCommand::CommandExpressionVariables; + } // namespace MLDB diff --git a/utils/command_expression_fwd.h b/utils/command_expression_fwd.h new file mode 100644 index 000000000..98bb98279 --- /dev/null +++ b/utils/command_expression_fwd.h @@ -0,0 +1,75 @@ +/* command_expression.h -*- C++ -*- + Jeremy Barnes, 27 August 2013 + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Template for a command that can be reconstituted with calculated + arguments. +*/ + +#pragma once + +#include +#include "mldb/types/value_description_fwd.h" +#include + +namespace MLDB { + +namespace PluginCommand { + +struct CommandExpressionVariables; + +typedef std::function &)> + CommandExpressionFunction; + +/** Renders the given JSON expression as a string. */ +std::string stringRender(const Json::Value & val); + +struct CommandExpressionContext; + +struct CommandExpression; + +struct ConcatExpression; +struct ArrayExpression; +struct ObjectExpression; +struct LiteralExpression; +struct JsonLiteralExpression; +struct InlineArrayExpression; +struct ParenthesisExpression; +struct MapExpression; +struct FunctionExpression; +struct VariableExpression; +struct ExtractFieldExpression; +struct ExtractElementExpression; +struct ArithmeticExpression; +struct BinaryArithmeticExpression; +struct PlusExpression; +struct MinusExpression; +struct DivideExpression; +struct ModulusExpression; +struct TimesExpression; + +PREDECLARE_VALUE_DESCRIPTION(std::shared_ptr); +PREDECLARE_VALUE_DESCRIPTION(std::shared_ptr); + +/** Renders the given JSON expression as a shell command. */ +std::vector commandRender(const Json::Value & val); + + +struct StringTemplate; +PREDECLARE_VALUE_DESCRIPTION(StringTemplate); + +std::ostream & operator << (std::ostream & stream, const StringTemplate & tmpl); + + +struct CommandTemplate; + +DECLARE_STRUCTURE_DESCRIPTION(CommandTemplate); + +} // namespace PluginCommand + +using PluginCommand::CommandExpression; +using PluginCommand::CommandExpressionContext; +using PluginCommand::CommandExpressionVariables; + +} // namespace MLDB + diff --git a/utils/command_expression_impl.h b/utils/command_expression_impl.h index 7888bb644..ac2080ba7 100644 --- a/utils/command_expression_impl.h +++ b/utils/command_expression_impl.h @@ -214,17 +214,61 @@ bindFunction(const std::function & fn) struct CommandExpressionDescription : public ValueDescriptionT > { + virtual bool isDefaultTyped(const std::shared_ptr * val) const override + { + return !(*val); + } + virtual void parseJsonTyped(std::shared_ptr * val, - JsonParsingContext & context) const + JsonParsingContext & context) const override { + if (context.isNull()) { + *val = nullptr; + return; + } std::string str = context.expectStringAscii(); ParseContext pcontext(str, str.c_str(), str.c_str() + str.size()); *val = CommandExpression::parseExpression(pcontext, false); } virtual void printJsonTyped(const std::shared_ptr * val, - JsonPrintingContext & context) const + JsonPrintingContext & context) const override + { + if (!(*val)) { + context.writeNull(); + return; + } + context.writeString((*val)->surfaceForm); + } +}; + +struct ConstCommandExpressionDescription + : public ValueDescriptionT > { + + virtual bool isDefaultTyped(const std::shared_ptr * val) const override + { + return !(*val); + } + + virtual void parseJsonTyped(std::shared_ptr * val, + JsonParsingContext & context) const override + { + if (context.isNull()) { + *val = nullptr; + return; + } + std::string str = context.expectStringAscii(); + ParseContext pcontext(str, str.c_str(), str.c_str() + str.size()); + *val = CommandExpression::parseExpression(pcontext, false); + } + + virtual void printJsonTyped(const std::shared_ptr * val, + JsonPrintingContext & context) const override { + if (!(*val)) { + context.writeNull(); + return; + } context.writeString((*val)->surfaceForm); } }; diff --git a/utils/csv.cc b/utils/csv.cc index 55434b0c7..9f507c913 100644 --- a/utils/csv.cc +++ b/utils/csv.cc @@ -11,6 +11,7 @@ #include "mldb/base/parse_context.h" #include "mldb/arch/format.h" #include "mldb/utils/vector_utils.h" +#include "mldb/utils/ostream_vector.h" using namespace std; diff --git a/utils/environment.h b/utils/environment.h index 2b798ea1f..17339c519 100644 --- a/utils/environment.h +++ b/utils/environment.h @@ -63,6 +63,14 @@ inline bool from_string(const std::string & s, bool *) return from_string(s, (int *)0); } +// Anything that is constructible from a string can be passed +template +inline T from_string(const std::string & s, T *, decltype(T(s)) * = nullptr) +{ + return T(s); +} + + /*****************************************************************************/ /* ENV_OPTION */ /*****************************************************************************/ diff --git a/utils/for_each_line.cc b/utils/for_each_line.cc index 37ff071a8..10ff3aa12 100644 --- a/utils/for_each_line.cc +++ b/utils/for_each_line.cc @@ -12,7 +12,8 @@ #include #include #include -#include "mldb/ext/concurrentqueue/blockingconcurrentqueue.h" +#include +#include #include "mldb/vfs/filter_streams.h" #include "mldb/base/thread_pool.h" #include "mldb/base/exc_assert.h" @@ -21,847 +22,631 @@ #include "mldb/base/hex_dump.h" #include "mldb/block/content_descriptor.h" #include "mldb/arch/spinlock.h" +#include "mldb/arch/atomic_min_max.h" +#include "mldb/base/scope.h" +#include "mldb/utils/scoreboard.h" +#include "mldb/utils/coalesced_range.h" +#include "mldb/base/compute_context.h" using namespace std; -using moodycamel::BlockingConcurrentQueue; -namespace { +namespace MLDB { -struct Processing { - Processing() - : shutdown(false), hasException_(false), - excPtr(nullptr), decompressedLines(16000) - { - } +// First phase: blocks are processed in sequence, with each block creating +// a set of lines plus a state containing leftover data to pass to the +// next block. - void takeLastException() - { - std::lock_guard guard(excPtrLock); - excPtr = std::current_exception(); - hasException_ = true; - } +namespace { + +struct ForEachLineProcessor: public ComputeContext { - bool hasException() + ForEachLineProcessor(ForEachLineOptions options) + : ComputeContext(options.maxParallelism), options(std::move(options)) { - return hasException_; } - atomic shutdown; - atomic hasException_; - std::mutex excPtrLock; - std::exception_ptr excPtr; + ForEachLineOptions options; - BlockingConcurrentQueue > > decompressedLines; -}; +#if 0 + enum { + CHUNK_STREAM_PRIORITY = 5, + }; +#endif -} // file scope +#if 0 + struct JobPromise; -namespace MLDB { + struct CoroutineJob: public std::coroutine_handle { + using promise_type = JobPromise; + }; + struct JobPromise { + CoroutineJob get_return_object() { return {CoroutineJob::from_promise(*this)}; } + std::suspend_always initial_suspend() noexcept { return {}; } + std::suspend_always final_suspend() noexcept { return {}; } + void return_void() {} + void unhandled_exception() {} + }; +#endif -/*****************************************************************************/ -/* PARALLEL LINE PROCESSOR */ -/*****************************************************************************/ + // A chunk of memory plus metadata + struct Chunk { + size_t chunkNumber = 0; + size_t startOffset = 0; + bool lastChunk = false; + std::span data; + shared_ptr keep; // Pins data in place + }; -static size_t -readStream(std::istream & stream, - Processing & processing, - shared_ptr logger, - bool ignoreStreamExceptions, - int64_t maxLines) -{ - Date start = Date::now(); + // Pushes a series of jobs that call onChunk + // Returns true if and only if all continuations returned true + bool chunk_source(std::istream & stream) + { + filter_istream * fistream = dynamic_cast(&stream); + size_t extraCapacity = options.splitter->requiredBlockPadding(); + + if (fistream) { + size_t chunkOffset = stream.tellg(); + // Can we get a memory mapped version of our stream? It + // saves us having to copy data. mapped will be set to + // nullptr if it's not possible to memory map this stream. + auto [mapped, mappedSize, mappedCapacity] = fistream->mapped(); + + if (mapped) { + ExcCheckLessEqual(options.startOffset + chunkOffset, mappedSize, "startOffset is beyond the size of the file"); + std::span mem(reinterpret_cast(mapped) + options.startOffset + chunkOffset, + mappedSize - options.startOffset - chunkOffset); + return chunk_source(mem, options.startOffset + chunkOffset); + } + } + size_t blockSize = options.defaultBlockSize == -1 ? 2'000'000 : options.defaultBlockSize; + if (options.startOffset > 0) + stream.seekg(options.startOffset); + + bool lastChunk = false; + + for (size_t chunkNumber = 0; stream; ++chunkNumber) { + if (relaxed_stopped() || chunks_in_finished_ || chunks_out_finished_) return false; + size_t chunkOffset = stream.tellg(); + std::shared_ptr block(new std::byte[blockSize]); + stream.read(reinterpret_cast(block.get()), blockSize + extraCapacity); + ssize_t bytesRead = stream.gcount(); + if (bytesRead <= 0) + break; + if (!stream) + lastChunk = true; + std::span mem(block.get(), bytesRead); + if (!handle_out_of_order_chunk({chunkNumber, chunkOffset, lastChunk, mem, {block}})) + return false; + } + return true; + } - pair > current; - current.second.reserve(1000); + size_t block_size_for_content_length(size_t contentLength) + { + size_t blockSize = options.defaultBlockSize; + if (blockSize == -1) { + blockSize = std::max(1000000, contentLength / options.maxParallelism); + blockSize = std::min(blockSize, 20000000); + } + return blockSize; + } - Date lastCheck = start; + // Returns true if and only if all continuations returned true + bool chunk_source(std::span mem, size_t startOffset) + { + size_t numBytes = mem.size(); + size_t blockSize = block_size_for_content_length(numBytes); + + const std::byte * p = mem.data(); + const std::byte * e = p + mem.size(); + + for (size_t chunkNumber = 0; p < e; p += blockSize, ++chunkNumber) { + if (relaxed_stopped() || chunks_in_finished_ || chunks_out_finished_) return false; + const std::byte * eb = std::min(e, p + blockSize); + std::span mem(p, eb-p); + size_t chunkOffset = startOffset + p - mem.data(); + bool lastChunk = eb == e; + if (!handle_out_of_order_chunk({chunkNumber, chunkOffset, lastChunk, mem, {}})) + return false; + } + return true; + } - int64_t done = current.first = 0; // 32 bit not enough + bool chunk_source(const ContentHandler & content) + { + size_t contentSize = content.getSize(); + size_t blockSize = block_size_for_content_length(contentSize); - try { - while (stream && !stream.eof() && (maxLines == -1 || done < maxLines)) { + auto doBlock = [&] (size_t chunkNumber, uint64_t chunkOffset, FrozenMemoryRegion region, bool lastBlock) + { + if (relaxed_stopped() || chunks_in_finished_ || chunks_out_finished_) return false; + bool lastChunk = lastBlock || chunkOffset + region.length() == contentSize; + std::span mem(reinterpret_cast(region.data()), region.length()); + return handle_out_of_order_chunk({chunkNumber, chunkOffset, lastChunk, mem, {}}); + }; + + auto res = content.forEachBlockParallel(options.startOffset, blockSize, *this /*compute*/, 5 /* priority */, doBlock); + return res; + } - if (processing.hasException()) { + bool handle_out_of_order_chunk(Chunk chunk) + { + // The chunks need to be processed in order by handle_next_chunk + // This function is called from multiple threads, so we need to reassemble and sychronize them. + // + // Basically: + // - Take a lock on the queue + // - Add it to the queue + // - For as long as the chunk at the beginning of the queue is the next in-order one + // - drop the lock + // - process it (only we will do se because no other thread will get the next in-order chunk) + // - grab the lock again + // - Otherwise + // Note that this is the ONLY function which touches the queue. No other functions should touch it. + + std::unique_lock guard{chunks_mutex_}; + auto [it, inserted] = chunks_.emplace(chunk.chunkNumber, std::move(chunk)); + ExcAssert(inserted); // Failure means that chunk numbers are repeated by the upstream functions + + while (!chunks_.empty() && it->first == chunks_done_) { + Chunk & chunk = it->second; + + guard.unlock(); + handle_next_chunk(it->second); + guard.lock(); + + // Nothing should have happened in the meantime... + ExcAssertEqual(chunks_done_, chunk.chunkNumber); + + if (chunk.lastChunk || (options.maxLines != -1 && outputLineNumber >= options.maxLines)) { + chunks_in_finished_ = true; + chunks_out_finished_ = true; + chunks_.clear(); break; } - string line; - getline(stream, line); - current.second.emplace_back(std::move(line)); - - ++done; - - if (current.second.size() == 1000) { - processing.decompressedLines.enqueue(std::move(current)); - current.first = done; - current.second.clear(); - //current.clear(); - ExcAssertEqual(current.second.size(), 0); - current.second.reserve(1000); - } + chunks_.erase(it); + ++chunks_done_; + it = chunks_.begin(); + } + guard.unlock(); + + // At this point, we have processed all the chunks we can + // TODO: if the list of chunks is too big, start slowing down the chunk producers by making them + // contribute to work + + // TODO: uncommenting this and running with ASAN uncovers a bug in the ThreadPool whereby one + // thread trying to steal work from another has its data freed. We should deal with that bug! + // nice make -j16 -k SANITIZERS=address for_each_line_test + //work(); - if (done % 1000000 == 0 && - logger->should_log(spdlog::level::info)) { + return !relaxed_stopped() && !chunks_out_finished_; - logger->info() << "done " << done << " lines"; - Date now = Date::now(); +#if 0 + // Slow down the production of chunks if there are too many by contributing to + // other work. + while (numChunksOutstanding > numCpus() && !relaxed_stopped() && !chunks_out_finished_) { + { + // Make sure there is no data race on chunks_out_finished_ + // We could remove this lock if it becomes a problem by using the right sequencing + std::unique_lock guard{chunks_mutex_}; + if (chunks_out_finished_) + break; + } - double elapsed = now.secondsSince(start); - double instElapsed = now.secondsSince(lastCheck); - logger->info() << MLDB::format("doing %.3fMlines/second total, %.3f instantaneous", - done / elapsed / 1000000.0, - 1000000 / instElapsed / 1000000.0); - lastCheck = now; + work(); + + std::unique_lock guard{chunks_mutex_}; + numChunksOutstanding = chunks_.size(); + if (!chunks_.empty() && chunks_.begin()->first == chunks_done_) { + if (chunks_.begin()->second.lastChunk) + chunks_in_finished_ = true; + guard.unlock(); + if (!handle_next_chunk(chunks_.begin()->second)) + return false; } } - } catch (const std::exception & exc) { - if (!ignoreStreamExceptions) { - processing.takeLastException(); - } - else { - WARNING_MSG(logger) << "stream threw ignored exception: " << exc.what(); - } - } - if (!current.second.empty() && !processing.hasException()) { - processing.decompressedLines.enqueue(std::move(current)); + return true; +#endif } - return done; -}; - -static void -parseLinesThreadStr(Processing & processing, - const std::function & processLine, - shared_ptr logger) -{ - while (!processing.hasException()) { - std::pair > lines; - if (!processing.decompressedLines.wait_dequeue_timed(lines, 1000 /* us */)) { - if (processing.shutdown) { - break; + struct LineBlock { + size_t blockNumber = 0; + size_t startLine = 0; + size_t startOffset = 0; + size_t endOffset = 0; + bool lastBlock = false; + size_t numLeadingEmptyLines = 0; + std::vector lines; + std::vector> keep; + size_t numTrailingEmptyLines = 0; // only for the last block + size_t lineCount() const { return numLeadingEmptyLines + lines.size() + numTrailingEmptyLines; } + + void addLine(std::string_view line, std::shared_ptr keep = nullptr) + { + if (line.empty()) { + // Empty line, just accumulate it + ++numTrailingEmptyLines; + } + else { + // Add the empty line block we accumulated so far as it's no longer trailing + lines.resize(lines.size() + numTrailingEmptyLines); + numTrailingEmptyLines = 0; + lines.push_back(line); } - continue; + if (keep) + this->keep.push_back(keep); } - - for (unsigned i = 0; i < lines.second.size(); ++i) { - if (processing.hasException()) { - break; + + // Truncate to the given number of lines + void truncate(size_t maxLines) + { + if (lineCount() <= maxLines) + return; + if (maxLines <= numLeadingEmptyLines) { + numLeadingEmptyLines = maxLines; + lines.clear(); + numTrailingEmptyLines = 0; + return; } - const string & line = lines.second[i]; - try { - processLine(line, lines.first + i); - } catch (const std::exception & exc) { - processing.takeLastException(); - WARNING_MSG(logger) << "error dealing with line " << line - << ": " << exc.what(); - } catch (...) { - processing.takeLastException(); + maxLines -= numLeadingEmptyLines; + if (maxLines <= lines.size()) { + lines.resize(maxLines); + numTrailingEmptyLines = 0; + return; } + maxLines -= lines.size(); + ExcAssertLessEqual(maxLines, numTrailingEmptyLines); + numTrailingEmptyLines -= maxLines; } - } -}; -size_t -forEachLine(std::istream & stream, - const std::function & processLine, - shared_ptr logger, - int numThreads, - bool ignoreStreamExceptions, - int64_t maxLines) -{ - auto onLineStr = [&] (const string & line, int64_t lineNum) { - processLine(line.c_str(), line.size(), lineNum); + void pushEmptyLinesToTrailing() + { + if (lines.empty()) { + numTrailingEmptyLines += numLeadingEmptyLines; + numLeadingEmptyLines = 0; + } + } + + void removeTrailingEmptyLines() + { + numTrailingEmptyLines = 0; + if (lines.empty()) + numLeadingEmptyLines = 0; + } }; - return forEachLineStr(stream, onLineStr, logger, numThreads, - ignoreStreamExceptions, maxLines); -} + // Information passed from one chunk to the next + size_t outputChunkNumber = 0; + size_t outputStartOffset = 0; + size_t outputLineNumber = 0; + CoalescedRange chunkData; + std::any splitterState; + std::vector> keep; // pins for each block in chunkData + size_t numTrailingEmptyLines = 0; + std::shared_ptr consolidated_; + size_t consolidated_size_ = 0; + size_t consolidated_capacity_ = 0; + size_t consolidated_allocate_ = 1024; + + // Handle the next chunk, which will be done in-order and one at a time. This should do the + // smallest amount of work possible, submitting any further processing as a job to be + // handled by another thread (if there is one). + void handle_next_chunk(Chunk chunk) + { + if (chunks_out_finished_ || relaxed_stopped()) + return; + + // TODO: If there are too many chunks, then consolidate them + // (needs careful thought as to how...) + + // Precondition: chunks_done_ is equal to this chunk number + // Only one thread in this block at a time, which is staisfied by the condition above + ExcAssertEqual(chunks_done_, chunk.chunkNumber); + ExcAssertEqual(chunkData.range_count(), keep.size()); + + // If our chunk size is much smaller than our line size, the algorithm becomes + // inefficient. We need to consolidate chunks until we have a reasonable size. + if (consolidated_ || chunkData.range_count() > 10) { + if (!consolidated_ || consolidated_size_ + chunk.data.size() > consolidated_capacity_) { + + // Doesn't fit. Make consolidated bigger + auto required_capacity = consolidated_size_ + chunk.data.size(); + if (required_capacity > consolidated_allocate_) + consolidated_allocate_ = std::max(required_capacity, consolidated_allocate_ * 2); + std::shared_ptr new_consolidated(new char[consolidated_allocate_]); + std::copy(consolidated_.get(), consolidated_.get() + consolidated_size_, new_consolidated.get()); + consolidated_ = new_consolidated; + consolidated_capacity_ = consolidated_allocate_; + chunkData.clear(); + chunkData.add(consolidated_.get(), consolidated_size_); + keep = { consolidated_ }; + } -size_t -forEachLineStr(std::istream & stream, - const std::function & processLine, - shared_ptr logger, - int numThreads, - bool ignoreStreamExceptions, - int64_t maxLines) -{ - Processing processing; - - std::vector threads; - for (unsigned i = 0; i < numThreads; ++i) - threads.emplace_back(std::bind(parseLinesThreadStr, - std::ref(processing), - std::ref(processLine), - logger)); - - size_t result = readStream(stream, processing, logger, - ignoreStreamExceptions, maxLines); - - processing.shutdown = true; - - for (auto & t: threads) - t.join(); - - if (processing.hasException()) { - std::rethrow_exception(processing.excPtr); - } + // This new chunk fits in the already-allocated capacity + char * first = consolidated_.get() + consolidated_size_; + std::copy((const char *)chunk.data.data(), (const char *)chunk.data.data() + chunk.data.size(), first); + consolidated_size_ += chunk.data.size(); + chunkData.add({first, chunk.data.size()}); + ExcAssertEqual(chunkData.range_count(), 1); + } + else { + // Add this chunk + if (chunkData.add(reinterpret_cast(chunk.data.data()), chunk.data.size())) + keep.emplace_back(chunk.keep); + } - return result; -} -size_t -forEachLine(const std::string & filename, - const std::function & processLine, - shared_ptr logger, - int numThreads, - bool ignoreStreamExceptions, - int64_t maxLines) -{ - filter_istream stream(filename); - return forEachLine(stream, processLine, logger, numThreads, - ignoreStreamExceptions, maxLines); -} + LineBlock lineBlock { + .blockNumber = outputChunkNumber, + .startLine = outputLineNumber, + .startOffset = outputStartOffset, + .lastBlock = chunk.lastChunk, + .numLeadingEmptyLines = numTrailingEmptyLines, + .keep = keep, + }; -size_t -forEachLineStr(const std::string & filename, - const std::function & processLine, - shared_ptr logger, - int numThreads, - bool ignoreStreamExceptions, - int64_t maxLines) -{ - filter_istream stream(filename); - return forEachLineStr(stream, processLine, logger, numThreads, - ignoreStreamExceptions, maxLines); -} + auto it = chunkData.begin(), end = chunkData.end(); + bool trailingSeparator = false; + while (it != end) { + auto [found_record, skip_to_end, skip_separator, next_state] + = options.splitter->nextRecord(chunkData, it, chunk.lastChunk, splitterState); + if (!found_record) + break; + auto next_it = it + skip_to_end; -/*****************************************************************************/ -/* FOR EACH LINE BLOCK (ISTREAM) */ -/*****************************************************************************/ + if (auto lineView = chunkData.get_string_view(it, next_it)) { + // Push the contiguous line + lineBlock.addLine(lineView.value()); + } + else { + // Line is not in a contiguous range; need to extract as a string + size_t len = next_it - it; + std::shared_ptr contiguous(new char[len]); + using std::copy; + copy(it, next_it, contiguous.get()); + std::string_view line(contiguous.get(), len); + lineBlock.addLine(line, std::move(contiguous)); + } -void forEachLineBlock(std::istream & stream, - std::function onLine, - int64_t maxLines, - int maxParallelism, - std::function startBlock, - std::function endBlock) -{ - //static constexpr int64_t BLOCK_SIZE = 100000000; // 100MB blocks - static constexpr int64_t BLOCK_SIZE = 20000000; // 20MB blocks - static constexpr int64_t READ_SIZE = 200000; // read&scan 200kb to fit in cache + splitterState = std::move(next_state); + it = next_it + skip_separator; + trailingSeparator = skip_separator > 0; + } - std::atomic doneLines(0); //number of lines processed but not yet returned - std::atomic returnedLines(0); //number of lines returned - std::atomic byteOffset(0); - std::atomic chunkNumber(0); + // If there is a trailing separator and this is the last block, we need to add an empty + // line. + if (trailingSeparator && chunk.lastChunk) { + lineBlock.addLine({}); + } - ThreadPool tp(ThreadPool::instance(), maxParallelism); + // The output block consists of: + // - numLeadingEmptyLines empty lines from the previous block + // - lines.size() lines from this block + // - numTrailingEmptyLines empty lines from this block + // + // We output the first and the second in this block; the rest are the responsibility of + // the next block (unless this is the last block). - // Memory map if possible - const char * mapped = nullptr; - size_t mappedSize = 0; + lineBlock.pushEmptyLinesToTrailing(); - filter_istream * fistream = dynamic_cast(&stream); + if (chunk.lastChunk && !options.outputTrailingEmptyLines) { + lineBlock.removeTrailingEmptyLines(); + } - if (fistream) { - // Can we get a memory mapped version of our stream? It - // saves us having to copy data. mapped will be set to - // nullptr if it's not possible to memory map this stream. - std::tie(mapped, mappedSize) = fistream->mapped(); - } + if (options.maxLines != -1 && outputLineNumber + lineBlock.lineCount() >= options.maxLines) { + // We've reached the maximum number of lines + lineBlock.truncate(options.maxLines - outputLineNumber); + lineBlock.lastBlock = true; + numTrailingEmptyLines = 0; + } + else if (!chunk.lastChunk) { + // The next block deals with trailing empty lines + numTrailingEmptyLines = lineBlock.numTrailingEmptyLines; + lineBlock.numTrailingEmptyLines = 0; + } - //cerr << "mapped = " << (void *)mapped << endl; - //cerr << "mappedSize = " << mappedSize << endl; - //hex_dump(mapped, mappedSize, mappedSize); - - std::atomic hasExc(false); - std::exception_ptr exc; + // Reduce the chunk data to the leftover parts and remove the associated + // data pins. - std::function doBlock = [&] () - { - std::shared_ptr blockOut; + ExcAssertEqual(keep.size(), chunkData.range_count()); + auto [firstChunk, lastChunk] = chunkData.reduce(it, end); + keep.erase(keep.begin() + lastChunk, keep.end()); + keep.erase(keep.begin(), keep.begin() + firstChunk); - int64_t startOffset = byteOffset; - int64_t startLine = doneLines; - vector lineOffsets = {0}; - bool lastBlock = false; - size_t myChunkNumber = 0; + ExcAssertEqual(keep.size(), chunkData.range_count()); + outputLineNumber += lineBlock.lineCount(); + outputStartOffset = chunk.startOffset + chunk.data.size(); - - try { - //MLDB-1426 - if (mapped) { - std::streamsize pos = stream.tellg(); - if (mappedSize == 0 || pos == EOF) - return; // EOF, so nothing to read... probably empty - const char * start = mapped + pos; - const char * current = start; - const char * end = mapped + mappedSize; - - while (current && current < end && (current - start) < BLOCK_SIZE - && (maxLines == -1 || doneLines < maxLines)) { //stop processing new line when we have enough) - current = (const char *)memchr(current, '\n', end - current); - if (current && current < end) { - ExcAssertEqual(*current, '\n'); - lineOffsets.push_back(current - start); - ++doneLines; - ++current; - } - } - - if (current) - stream.seekg(current - start, ios::cur); - else { - // Last line has no newline - lineOffsets.push_back(end - start); - ++doneLines; - } - - myChunkNumber = chunkNumber++; - - if (current && current < end && - (maxLines == -1 || doneLines < maxLines)) // don't schedule a new block if we have enough lines - { - // Ready for another chunk - tp.add(doBlock); - } else if (current == end) { - lastBlock = true; - } + if (lineBlock.lineCount() > 0) { - blockOut = std::shared_ptr(start, - [] (const char *) {}); - } - else { - // How far through our block are we? - size_t offset = 0; - - // How much extra space to allocate for the last line? - static constexpr size_t EXTRA_SIZE = 10000; - - std::shared_ptr block(new char[BLOCK_SIZE + EXTRA_SIZE], - [] (char * c) { delete[] c; }); - blockOut = block; - - // First line starts at offset 0 - - while (stream && !stream.eof() - && (maxLines == -1 || doneLines < maxLines) //stop processing new line when we have enough - && (byteOffset - startOffset < BLOCK_SIZE)) { - - stream.read((char *)block.get() + offset, - std::min(READ_SIZE, BLOCK_SIZE - offset)); - - // Check how many bytes we actually read - size_t bytesRead = stream.gcount(); - - offset += bytesRead; - - // Scan for end of line characters - const char * current = block.get() + lineOffsets.back(); - const char * end = block.get() + offset; - - while (current && current < end) { - current = (const char *)memchr(current, '\n', end - current); - if (current && current < end) { - ExcAssertEqual(*current, '\n'); - if (lineOffsets.back() != current - block.get()) { - lineOffsets.push_back(current - block.get()); - ++doneLines; - } - ++current; - } - } - - byteOffset += bytesRead; - } + // Submit the line block for processing before we schedule another chunk so + // we don't get ahead of ourselves. + int priority = 1; - - if (stream.eof()) { - // If we are at the end of the stream - // make sure we include the last line - // if there was no newline - if (lineOffsets.back() != offset - 1) { - lineOffsets.push_back(offset); - ++doneLines; - } - } - else { - // If we are not at the end of the stream - // get the last line, as we probably got just a partial - // line in the last one - std::string lastLine; - getline(stream, lastLine); - - if (!lastLine.empty()) { - // Check for overflow on the buffer size - if (offset + lastLine.size() + 1 > BLOCK_SIZE + EXTRA_SIZE) { - // reallocate and copy - std::shared_ptr newBlock(new char[offset + lastLine.size() + 1], - [] (char * c) { delete[] c; }); - std::copy(block.get(), block.get() + offset, - newBlock.get()); - block = newBlock; - blockOut = block; - } - - std::copy(lastLine.data(), lastLine.data() + lastLine.length(), - block.get() + offset); - - lineOffsets.emplace_back(offset + lastLine.length()); - ++doneLines; - offset += lastLine.size() + 1; - } - } - - myChunkNumber = chunkNumber++; - - if (stream && !stream.eof() && - (maxLines == -1 || doneLines < maxLines)) // don't schedule a new block if we have enough lines - { - // Ready for another chunk - tp.add(doBlock); - } else if (stream.eof()) { - lastBlock = true; - } - } - - int64_t chunkLineNumber = startLine; - size_t lastLineOffset = lineOffsets[0]; - - if (startBlock) - if (!startBlock(myChunkNumber, chunkLineNumber)) - return; - - for (unsigned i = 1; i < lineOffsets.size() && (maxLines == -1 || returnedLines++ < maxLines); ++i) { - if (hasExc.load(std::memory_order_relaxed)) - return; - const char * line = blockOut.get() + lastLineOffset; - size_t len = lineOffsets[i] - lastLineOffset; - - // Skip \r for DOS line endings - if (len > 0 && line[len - 1] == '\r') - --len; - - // if we are not at the last line - if (!lastBlock || len != 0 || i != lineOffsets.size() - 1) - if (!onLine(line, len, chunkNumber, chunkLineNumber++)) - return; - - lastLineOffset = lineOffsets[i] + 1; - - } - - if (endBlock) - if (!endBlock(myChunkNumber, chunkLineNumber)) - return; + std::function job = [lineBlock=std::move(lineBlock),this] () + { + if (this->relaxed_stopped()) + return; + if (!this->handle_line_block(std::move(lineBlock))) + this->stop(ComputeContext::STOPPED_USER); + }; - } MLDB_CATCH_ALL { - if (hasExc.fetch_add(1) == 0) { - exc = std::current_exception(); + if (options.maxParallelism > 0) { + submit(priority, "process_line_block " + std::to_string(chunk.chunkNumber), std::move(job)); + } + else { + // We're not processing in parallel, so there is no other thread + try { + job(); + } MLDB_CATCH_ALL { + take_exception("handle_line_block"); } } - }; - - // Run the first block, which will enqueue the second before exiting - doBlock(); - - // Wait for all to be done - tp.waitForAll(); - - // If there was an exception, rethrow it rather than returning - // cleanly - if (hasExc) { - std::rethrow_exception(exc); + ++outputChunkNumber; + consolidated_ = nullptr; + consolidated_size_ = 0; + } } -} - - -/*****************************************************************************/ -/* FOR EACH LINE BLOCK (CONTENT HANDLER) */ -/*****************************************************************************/ -void forEachLineBlock(std::shared_ptr content, - uint64_t startOffset, - std::function onLine, - int64_t maxLines, - int maxParallelism, - std::function startBlock, - std::function endBlock, - size_t blockSize) -{ - std::atomic hasExc(false); - std::exception_ptr exc; + std::function handle_line_block; - /// This is what we pass to the next block once we've finished scanning for - /// line breaks. - struct PassToNextBlock { - FrozenMemoryRegion leftoverFromPreviousBlock; - uint64_t doneLines = 0; - bool bail = false; ///< Should we bail out (stop) immediately? - }; + template + bool process(Source&& source, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock, + const BlockContinuationFn & endBlock) + { + std::atomic done = 0; + Date start = Date::now(), lastCheck = start; - // Set of queues, one per block, that grows with the amount of data - // TODO: make this a deque so we can remove early entries - Spinlock queuesMutex; - std::vector > > queues; - queues.reserve(1024); - queues.emplace_back(new BlockingConcurrentQueue()); - - auto getQueues = [&] (size_t blockNumber) - -> std::pair >, - std::shared_ptr > > + handle_line_block = [&] (LineBlock block) { - std::unique_lock guard(queuesMutex); - while (blockNumber + 1 >= queues.size()) - queues.emplace_back(new BlockingConcurrentQueue()); - return { queues[blockNumber], queues[blockNumber + 1] }; - }; - - - auto doBlock - = [&hasExc,&exc,maxLines,&onLine,&startBlock,&endBlock,&getQueues] - (int chunkNumber, - uint64_t offset, - FrozenMemoryRegion mem) -> bool - { - //cerr << "chunk " << chunkNumber << " with " << mem.length() << " bytes" << endl; - - // Contains the full first line of our block, which is made up - // of whatever was leftover from the previous block plus - // our current line - FrozenMemoryRegion firstLine; - - // Contains the (partial) last line of our block - FrozenMemoryRegion partialLastLine; - - // Offset in otherLines of line start characters - vector lineOffsets; - - // What we got from the last block - PassToNextBlock fromPrev; - - std::shared_ptr > - fromPrevQueue, toNextQueue; - std::tie(fromPrevQueue, toNextQueue) = getQueues(chunkNumber); - - // Call this to tell the next block that it should bail out. It's - // safe to call at any time, including before the next block has - // been launched and after the next block has already been told to - // do something else. - auto bailNextBlock = [&] () { - PassToNextBlock toNext; - toNext.bail = true; - toNextQueue->enqueue(std::move(toNext)); + LineBlockInfo blockInfo { + .blockNumber = static_cast(block.blockNumber), + .startOffset = static_cast(block.startOffset), + .lineNumber = static_cast(block.startLine), + .numLinesInBlock = static_cast(block.lineCount()), + .lastBlock = block.lastBlock, }; - try { - //cerr << endl << endl - // << "------------- starting block " << chunkNumber - // << " at offset " - // << offset << endl; - //cerr << "with " << leftoverFromPreviousBlock.length() - // << " characters leftover" << endl; - //hex_dump(leftoverFromPreviousBlock.data(), - // leftoverFromPreviousBlock.length()); - //cerr << "getting block at offset " << offset - // << " with " << leftoverFromPreviousBlock.length() - // << " bytes left over" << endl; - - //Date start = Date::now(); - - //Date gotData = Date::now(); + if (startBlock && !startBlock(blockInfo)) + return false; - //double elapsed = gotData.secondsSince(start); - - //cerr << " chunk " << chunkNumber << " got " - // << mem.length() << " bytes in " << elapsed << " seconds" - // << " at " << mem.length() / elapsed / 1000000 << " MB/s" - // << endl; - - //cerr << "got " << mem.length() << " bytes at " - // << (void *)mem.data() << endl; - - //hex_dump(mem.data(), mem.length()); - - size_t length = mem.length(); - const char * start = mem.data(); - const char * current = length == 0 ? start : (const char *)memchr(start, '\n', length); - const char * end = start + length; - size_t numLinesInBlock = 0; - - //cerr << "start = " << (void *)start - // << " current = " << (void *)current - // << " end = " << (void *)end - // << endl; - - bool noBreakInChunk = false; - ssize_t charsUntilFirstLineBreak = -1; - if (!current) { - noBreakInChunk = true; - } - else { - charsUntilFirstLineBreak = current - start; - //cerr << "firstLine is " << endl; - //hex_dump(firstLine.data(), firstLine.length()); - - ++current; - ++numLinesInBlock; - //cerr << "numLinesInBlock incremented for first line" << endl; - - // Second line starts here; record the start - lineOffsets.push_back(current - start); - - const char * lastLineStart = current; - - //cerr << "start = " << (void *)start - // << " current = " << (void *)current - // << " end = " << (void *)end - // << endl; - - while (current && current < end) { - // Bail out on exception - if (numLinesInBlock % 256 == 0 - && hasExc.load(std::memory_order_relaxed)) { - bailNextBlock(); - return false; - } - - current = (const char *)memchr(current, '\n', end - current); - - //cerr << " current now = " << (void *)current << endl; - - if (current) - lastLineStart = current + 1; - - if (current && current < end) { - ExcAssertEqual(*current, '\n'); - lineOffsets.push_back(current - start); - ++numLinesInBlock; - //cerr << "doneLines incremented for other line" - // << endl; - ++current; - } - } - - // Whatever is left over is the last line, which we pass - // through to the next block - if (!current && mem) { - //cerr << "lastLineStart - start = " - // << lastLineStart - start << endl; - //cerr << "mem.length() = " << mem.length() << endl; - partialLastLine = mem.range(lastLineStart - start, - mem.length()); - //cerr << "partial last line" << endl; + auto outputLine = [&] (std::string_view line, int64_t lineNumber, int64_t blockNumber, bool lastLine) + { + if (options.logger) { + auto new_done = done.fetch_add(1) + 1; + + if (new_done % options.logInterval == 0 && + options.logger->should_log(spdlog::level::info)) { + + options.logger->info() << "done " << new_done << " lines"; + Date now = Date::now(); + + double elapsed = now.secondsSince(start); + double instElapsed = now.secondsSince(lastCheck); + options.logger->info() << MLDB::format("doing %.3fMlines/second total, %.3f instantaneous", + done / elapsed / 1000000.0, + options.logInterval / instElapsed / 1000000.0); + lastCheck = now; } } - if (hasExc.load(std::memory_order_relaxed)) { - bailNextBlock(); - return false; - } - - fromPrevQueue->wait_dequeue(fromPrev); + LineInfo lineInfo { line, lineNumber, blockNumber, lastLine }; - // Do we bail out? If our previous block says it has bailed, - // then we should too. - if (fromPrev.bail) { - bailNextBlock(); + if (onLine && !onLine(lineInfo)) return false; - } - // Now we have information from the previous block, we can reconstruct - // our first line and know our real line numbers - FrozenMemoryRegion leftoverFromPreviousBlock - = std::move(fromPrev.leftoverFromPreviousBlock); - int64_t startLine = fromPrev.doneLines; - uint64_t doneLines = startLine + numLinesInBlock; - - if (noBreakInChunk && mem) { - // No line break in the whole chunk; it's all a partial - // last line - partialLastLine - = FrozenMemoryRegion::combined - (leftoverFromPreviousBlock, - mem); - } - else if (mem) { - firstLine - = FrozenMemoryRegion::combined - (leftoverFromPreviousBlock, - mem.range(0, charsUntilFirstLineBreak)); - } - else { - firstLine = std::move(leftoverFromPreviousBlock); - if (firstLine.length() == 0) - return false; - } + return true; + }; - if (maxLines == -1 || doneLines < maxLines) { + size_t l = 0; - //cerr << "sending on partial last line with " - // << partialLastLine.length() << " characters" - // << endl; - //hex_dump(partialLastLine.data(), - // partialLastLine.length()); + // Leading empty lines + for (size_t i = 0; i < block.numLeadingEmptyLines; ++i, ++l) { + bool lastLine = block.lastBlock && i == block.numLeadingEmptyLines - 1 && block.lines.empty() && block.numTrailingEmptyLines == 0; + if (!outputLine({}, block.startLine + l, block.blockNumber, lastLine)) + return false; + } + // Block lines + for (size_t i = 0; i < block.lines.size(); ++i, ++l) { + bool lastLine = i == block.lines.size() - 1 && block.lastBlock && block.numTrailingEmptyLines == 0; + if (!outputLine(block.lines[i], block.startLine + l, block.blockNumber, lastLine)) + return false; + } - // What we pass on to the next block - PassToNextBlock toNext; - toNext.leftoverFromPreviousBlock - = std::move(partialLastLine); - toNext.doneLines = doneLines; - toNextQueue->enqueue(std::move(toNext)); - } - else { - bailNextBlock(); - } - - int64_t chunkLineNumber = startLine; - size_t numLines = (firstLine ? 1 : 0) - + (lineOffsets.empty() ? 0 : lineOffsets.size() - 1); - - auto doLine = [&] (const char * line, size_t len) - { - // Skip \r for DOS line endings - if (len > 0 && line[len - 1] == '\r') - --len; - - return onLine(line, len, chunkNumber, chunkLineNumber++); - }; - - if (startBlock) - if (!startBlock(chunkNumber, chunkLineNumber, numLines)) - return false; - - auto returnedLines = startLine; - - if (firstLine) { - //cerr << "doing first line" << endl; - if (maxLines == -1 || returnedLines++ < maxLines) { - if (!doLine(firstLine.data(), firstLine.length())) { - return false; - } - } - } - - if (!lineOffsets.empty()) { - size_t lastLineOffset = lineOffsets[0]; - - for (unsigned i = 1; - i < lineOffsets.size() - && (maxLines == -1 || returnedLines++ < maxLines); - ++i) { - - // Check for exception bailout every 256 lines - if (i % 256 == 0 - && hasExc.load(std::memory_order_relaxed)) - return false; - - const char * line = mem.data() + lastLineOffset; - size_t len = lineOffsets[i] - lastLineOffset; - - //cerr << "doing other line " << i << " with " - // << len << " chars" << endl; - - if (!doLine(line, len)) - return false; - - lastLineOffset = lineOffsets[i] + 1; // skip \n - } - } - - if (endBlock) - if (!endBlock(chunkNumber, chunkLineNumber)) - return false; - - } MLDB_CATCH_ALL { - //cerr << "got exception in chunk " << myChunkNumber - //<< " " << getExceptionString() << endl; - if (hasExc.fetch_add(1) == 0) { - exc = std::current_exception(); - } + // Trailing empty lines + for (size_t i = 0; i < block.numTrailingEmptyLines; ++i, ++l) { + bool lastLine = block.lastBlock && i == block.numTrailingEmptyLines - 1; + if (!outputLine({}, block.startLine + l, block.blockNumber, lastLine)) + return false; + } - // If the next block is waiting for instructions, tell it - // to bail out. - bailNextBlock(); + if (endBlock && !endBlock(blockInfo)) return false; - } return true; }; - // Unblock the first block by writing to it - PassToNextBlock pass; - pass.doneLines = 0; - queues[0]->enqueue(std::move(pass)); - - content->forEachBlockParallel(startOffset, blockSize, maxParallelism, doBlock); + bool res = chunk_source(source); + work_until_finished(); + rethrow_if_exception(); + return res && !is_stopped(); + - // last chunk with single last line is in the last queue entry - if (!hasExc && !queues.empty()) { - cerr << "last one; queues.size() = " << queues.size() << endl; - size_t chunkNumber = queues.size() - 1; - doBlock(chunkNumber, -1 /* offset */, FrozenMemoryRegion()); - #if 0 - if (!queues.back()->try_dequeue(pass)) { - throw Exception("Queue issues"); - } - cerr << "total doneLines = " << pass.doneLines << endl; - if (pass.leftoverFromPreviousBlock) { + auto pipeline + = getLazyStream(source, block_size=blockSize, start_offset=startOffset) + .map(handle_chunk, parallel=true, in_order=true) + .reduce(LeftoverChunk(), split_chunk, in_order=true) + .map(handle_block, parallel=true); + + auto executor = pipeline.compile(); + return executor(); +#endif + } - if (!startBlock || startBlock(chunkNumber, pass.doneLines, 1 /* num in block*/)) { - const char * line = pass.leftoverFromPreviousBlock.data(); - size_t len = pass.leftoverFromPreviouBlock.length(); + mutable std::mutex chunks_mutex_; + std::map chunks_; + std::atomic chunks_done_ = 0; + std::atomic chunks_in_finished_ = false; + std::atomic chunks_out_finished_ = false; +}; - // Skip \r for DOS line endings - if (len > 0 && line[len - 1] == '\r') - --len; +} // file scope - if (onLine(line, len, chunkNumber, pass.doneLines)) { - if (endBlock) { - endBlock(chunkNumber, pass.doneLines + 1); - } - } - } - } -#endif +size_t +forEachLine(std::istream & stream, + const LineContinuationFn & processLine, + const ForEachLineOptions & options) +{ + ForEachLineProcessor processor(options); + return processor.process(stream, processLine, nullptr /* startBlock */, nullptr /* endBlock */); +} - } - - // If there was an exception, rethrow it rather than returning - // cleanly - if (hasExc) { - std::rethrow_exception(exc); - } + +/*****************************************************************************/ +/* FOR EACH LINE BLOCK (ISTREAM) */ +/*****************************************************************************/ + +bool forEachLineBlock(std::istream & stream, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock, + const BlockContinuationFn & endBlock, + const ForEachLineOptions & options) +{ + ForEachLineProcessor processor(options); + return processor.process(stream, onLine, startBlock, endBlock); } +/*****************************************************************************/ +/* FOR EACH LINE BLOCK (CONTENT HANDLER) */ +/*****************************************************************************/ + +bool forEachLineBlock(std::shared_ptr content, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock, + const BlockContinuationFn & endBlock, + const ForEachLineOptions & options) +{ + ForEachLineProcessor processor(options); + return processor.process(*content, onLine, startBlock, endBlock); +} +#if 0 /*****************************************************************************/ /* FOR EACH CHUNK */ /*****************************************************************************/ void forEachChunk(std::istream & stream, - std::function onChunk, + const ChunkContinuationFn & onChunk, size_t chunkLength, int64_t maxChunks, int maxParallelism) @@ -903,7 +688,14 @@ void forEachChunk(std::istream & stream, tp.add(doBlock); } - if (!onChunk(block.get(), bytesRead, myChunkNumber)) { + MLDB::ChunkInfo chunkInfo { + .data = std::span(block.get(), bytesRead), + .chunkNumber = static_cast(myChunkNumber), + .startOffset = static_cast(myChunkNumber * chunkLength), + .lastChunk = !stream || stream.eof(), + }; + + if (!onChunk(chunkInfo)) { // We decided to stop. We should probably stop everything // else, too. stop = true; @@ -925,5 +717,6 @@ void forEachChunk(std::istream & stream, std::rethrow_exception(exc); } } +#endif } // namespace MLDB diff --git a/utils/for_each_line.h b/utils/for_each_line.h index b010ceda6..14e781b16 100644 --- a/utils/for_each_line.h +++ b/utils/for_each_line.h @@ -10,15 +10,177 @@ #pragma once #include "mldb/utils/log_fwd.h" +#include "mldb/block/content_descriptor_fwd.h" +#include "mldb/utils/block_splitter.h" +#include "mldb/utils/is_callable_with.h" +#include "mldb/base/compute_context.h" #include +#include #include #include +#include #include +#include +#include +#include namespace MLDB { -struct ContentHandler; +/*************************************************************************/ +/* FOR EACH LINE OPTIONS */ +/*************************************************************************/ + +// Options for the for_each_line functions. Not all options apply to all +// functions. +struct ForEachLineOptions { + int maxParallelism = -1; // Controls the number of extra threads; 0 = use the main thread only, -1 = all available cores + ssize_t defaultBlockSize = -1; // Granularity of blocks being passed to the processing function + size_t startOffset = 0; // How much of the file to skip at the beginning + size_t skipLines = 0; // How many lines to skip at the beginning + ssize_t maxLines = -1; // Maximum number of lines to process + bool outputTrailingEmptyLines = false; // Whether to output trailing empty lines if the file ends with blank lines + std::shared_ptr logger = nullptr; // Logger to use for logging + size_t logInterval = 1000000; // How often to log a progress message to the logger (every n lines) + const BlockSplitter * splitter = &newLineSplitter; // Block splitter to split into lines +}; + + +template +struct OptionValue { + using Member = Result Struct::*; + Member member; + Result value; + + constexpr OptionValue(Member member, Result value): member(member), value(std::move(value)) { } + void apply(ForEachLineOptions & opts) const { opts.*member = value; } +}; + +template +struct OptionSpec { + using Type = Result Struct::*; + Type member; + + template + constexpr OptionValue operator = (Arg&& val) const { + return { member, Result(std::move(val)) }; + } +}; + +#define DECLARE_OPTION_SPEC(Struct, Member) \ + constexpr OptionSpec Member = { &Struct::Member } + +namespace ForEachLine { +namespace options { + +DECLARE_OPTION_SPEC(ForEachLineOptions, maxParallelism); +DECLARE_OPTION_SPEC(ForEachLineOptions, defaultBlockSize); +DECLARE_OPTION_SPEC(ForEachLineOptions, startOffset); +DECLARE_OPTION_SPEC(ForEachLineOptions, skipLines); +DECLARE_OPTION_SPEC(ForEachLineOptions, maxLines); +DECLARE_OPTION_SPEC(ForEachLineOptions, outputTrailingEmptyLines); +DECLARE_OPTION_SPEC(ForEachLineOptions, logger); +DECLARE_OPTION_SPEC(ForEachLineOptions, logInterval); +DECLARE_OPTION_SPEC(ForEachLineOptions, splitter); + +template +const inline ForEachLineOptions & apply_options(ForEachLineOptions & opts, Options&&... options) +{ + (void)std::initializer_list { (void(options.apply(opts)), 0)... }; + return opts; +} + +const inline ForEachLineOptions & apply_options(ForEachLineOptions & opts, ForEachLineOptions & real_opts) +{ + return real_opts; +} + +} // namespace ForEachLine +} // namespace options + +using namespace ForEachLine; + +/*************************************************************************/ +/* LINE CONTINUATION FUNCTION */ +/*************************************************************************/ + +struct LineInfo { + std::string_view line; + int64_t lineNumber = -1; + int64_t blockNumber = -1; + bool lastLine = false; + //int64_t startOffset = -1; +}; + +struct LineContinuationFn: public ContinuationFn { + using Base = ContinuationFn; + + // Forward the base constructor + template + LineContinuationFn(Callable&& fn, std::enable_if_t> * = 0) + : Base(std::forward(fn)) {} + + // Constructor for a function + template + LineContinuationFn(Callable fn, std::enable_if_t + && !is_callable_with_v> * = 0) + : Base([fn = std::forward(fn)] (LineInfo line) { return fn(line.line.data(), line.line.size(), line.blockNumber, line.lineNumber); }) { } + + // Constructor for a function + template + LineContinuationFn(Callable fn, std::enable_if_t> * = 0) + : Base([fn = std::forward(fn)] (LineInfo line) { return fn(std::string(line.line.data(), line.line.data() + line.line.size()), line.lineNumber); }) { } + + // Constructor for a function + template + LineContinuationFn(Callable fn, std::enable_if_t> * = 0) + : Base([fn = std::forward(fn)] (LineInfo line) { return fn(line.line.data(), line.line.size(), line.lineNumber); }) { } +}; + + +/*************************************************************************/ +/* BLOCK CONTINUATION FUNCTION */ +/*************************************************************************/ + +struct LineBlockInfo { + int64_t blockNumber = -1; + int64_t startOffset = -1; + int64_t lineNumber = -1; + int64_t numLinesInBlock = -1; + bool lastBlock = false; +}; + +struct BlockContinuationFn: public ContinuationFn { + using Base = ContinuationFn; + using Base::Base; + + // Constructor for a function + template + BlockContinuationFn(Callable && fn, decltype(fn(1,2,3)) * = 0) + : Base([fn = std::move(fn)] (LineBlockInfo block) { return fn(block.blockNumber, block.lineNumber, block.numLinesInBlock); }) { } +}; + +#if 0 +/*************************************************************************/ +/* CHUNK CONTINUATION FUNCTION */ +/*************************************************************************/ + +struct ChunkInfo { + std::span data; + int64_t chunkNumber = -1; + int64_t startOffset = -1; + bool lastChunk = false; +}; + +struct ChunkContinuationFn: public ContinuationFn { + using Base = ContinuationFn; + using Base::Base; +}; +#endif + +/*************************************************************************/ +/* FOR EACH LINE FUNCTIONS */ +/*************************************************************************/ /** Run the given lambda over every line read from the stream, with the work distributed over the given number of threads. @@ -30,70 +192,17 @@ struct ContentHandler; */ size_t forEachLine(std::istream & stream, - const std::function & processLine, - std::shared_ptr logger, - int numThreads = 4, - bool ignoreStreamExceptions = false, - int64_t maxLines = -1); + const LineContinuationFn & processLine, + const ForEachLineOptions & options); - -/** Run the given lambda over every line read from the stream, with the - work distributed over the given number of threads. - - The processLine function takes a string with the contents of the line, - without the newline. - - Returns the number of lines produced. -*/ -size_t -forEachLineStr(std::istream & stream, - const std::function & processLine, - std::shared_ptr logger, - int numThreads = 4, - bool ignoreStreamExceptions = false, - int64_t maxLines = -1); - - -/** Run the given lambda over every line read from the file, with the - work distributed over the given number of threads. - - The processLine function takes a string with the contents of the line, - without the newline, as a beginning and a length. - - Uses an filter_istream under the hood. - - Returns the number of lines produced. -*/ -size_t -forEachLine(const std::string & filename, - const std::function & processLine, - std::shared_ptr logger, - int numThreads = 4, - bool ignoreStreamExceptions = false, - int64_t maxLines = -1); - - -/** Run the given lambda over every line read from the file, with the - work distributed over the given number of threads. - - The processLine function takes a string with the contents of the line, - without the newline. - - Uses an filter_istream under the hood. - - Returns the number of lines produced. -*/ -size_t -forEachLineStr(const std::string & filename, - const std::function & processLine, - std::shared_ptr logger, - int numThreads = 4, - bool ignoreStreamExceptions = false, - int64_t maxLines = -1); +template +size_t forEachLine(std::istream & stream, + const LineContinuationFn & processLine, + Options&&... options) +{ + ForEachLineOptions opts; + return forEachLine(stream, processLine, ForEachLine::options::apply_options(opts, std::forward(options)...)); +} /** Run the given lambda over every line read from the file, with the @@ -109,20 +218,30 @@ forEachLineStr(const std::string & filename, the processing thread, at the beginning and end of the block respectively. + Returns true if and only if it was stopped by a lambda returning false. + In that case, the process will be stopped once all previous lambdas + have finished executing without any guarantees as to which lambdas + will be started in the meantime. + This is the second fastest way to parse a text file. */ -void forEachLineBlock(std::istream & stream, - std::function onLine, - int64_t maxLines = -1, - int maxParallelism = 8, - std::function startBlock - = nullptr, - std::function endBlock - = nullptr); +bool forEachLineBlock(std::istream & stream, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock = nullptr, + const BlockContinuationFn & endBlock = nullptr, + const ForEachLineOptions & options = ForEachLineOptions()); + +template +size_t forEachLineBlock(std::istream & stream, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock = nullptr, + const BlockContinuationFn & endBlock = nullptr, + Options&&... options) +{ + ForEachLineOptions opts; + return forEachLineBlock(stream, onLine, startBlock, endBlock, ForEachLine::options::apply_options(opts, std::forward(options)...)); +} /** Run the given lambda over every line read from the file, with the work distributed over threads each of which receive one block. The @@ -139,23 +258,23 @@ void forEachLineBlock(std::istream & stream, This is the fastest way to parse a text file. */ -void forEachLineBlock(std::shared_ptr content, - uint64_t startOffset, - std::function onLine, - int64_t maxLines = -1, - int maxParallelism = 8, - std::function startBlock - = nullptr, - std::function endBlock - = nullptr, - size_t blockSize = 20'000'000); - +bool forEachLineBlock(std::shared_ptr content, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock = nullptr, + const BlockContinuationFn & endBlock = nullptr, + const ForEachLineOptions & options = ForEachLineOptions()); + +template +size_t forEachLineBlock(std::shared_ptr content, + const LineContinuationFn & onLine, + const BlockContinuationFn & startBlock = nullptr, + const BlockContinuationFn & endBlock = nullptr, + Options&&... options) +{ + ForEachLineOptions opts; + return forEachLineBlock(content, onLine, startBlock, endBlock, ForEachLine::options::apply_options(opts, std::forward(options)...)); +} +#if 0 /** Run the given lambda over fixed size chunks read from the stream, in parallel as much as possible. If there is a smaller chunk at the end (EOF is obtained), then the smaller chunk will be returned by itself. @@ -167,11 +286,9 @@ void forEachLineBlock(std::shared_ptr content, concurrent lambdas have finished executing. */ void forEachChunk(std::istream & stream, - std::function onChunk, + const ChunkContinuationFn & onChunk, size_t chunkLength, int64_t maxChunks, int maxParallelism); - +#endif } // namespace MLDB diff --git a/utils/is_callable_with.h b/utils/is_callable_with.h new file mode 100644 index 000000000..11b829d53 --- /dev/null +++ b/utils/is_callable_with.h @@ -0,0 +1,27 @@ +/** is_callable_with.h -*- C++ -*- + Jeremy Barnes, 29 November 2013 + Copyright (c) 2013 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Class to process each line in a file in parallel. +*/ + +#pragma once + +#include + +namespace MLDB { + +template +struct is_callable_with { + template static auto test(int) -> decltype(std::declval()(std::declval()...), std::true_type()); + template static auto test(...) -> std::false_type; + using type = decltype(test(0)); + static constexpr bool value = type::value; +}; + +template constexpr bool is_callable_with_v = is_callable_with::value; +template using is_callable_with_t = is_callable_with::type; + +} // namespace MLDB \ No newline at end of file diff --git a/utils/ostream_array.h b/utils/ostream_array.h index a49a62718..86ba555a7 100644 --- a/utils/ostream_array.h +++ b/utils/ostream_array.h @@ -1,3 +1,10 @@ +/* ostream_vector.h -*- C++ -*- + Jeremy Barnes, 6 November 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. +*/ + #pragma once #include @@ -16,4 +23,4 @@ operator << (std::ostream & stream, const std::array & a) return stream << " ]"; } -} // namespace std \ No newline at end of file +} // namespace std diff --git a/utils/ostream_set.h b/utils/ostream_set.h index ffd3cd02a..f31d764a0 100644 --- a/utils/ostream_set.h +++ b/utils/ostream_set.h @@ -1,8 +1,16 @@ +/* ostream_set.h -*- C++ -*- + Jeremy Barnes, 6 November 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. +*/ #pragma once #include #include +namespace std { + template std::ostream & operator << (std::ostream & stream, const std::set & s) @@ -11,4 +19,6 @@ operator << (std::ostream & stream, const std::set & s) for (const auto & e: s) stream << " " << e; return stream << " }"; -} \ No newline at end of file +} + +} // namespace std \ No newline at end of file diff --git a/utils/ostream_span.h b/utils/ostream_span.h index 77c3ae268..27f48e9b1 100644 --- a/utils/ostream_span.h +++ b/utils/ostream_span.h @@ -1,3 +1,10 @@ +/* ostream_span.h -*- C++ -*- + Jeremy Barnes, 6 November 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. +*/ + #pragma once #include @@ -12,4 +19,3 @@ operator << (std::ostream & stream, const std::span & s) stream << " " << e; return stream << " ]"; } - diff --git a/utils/ostream_vector.h b/utils/ostream_vector.h index 0d36c386e..c32c769f5 100644 --- a/utils/ostream_vector.h +++ b/utils/ostream_vector.h @@ -1,8 +1,17 @@ +/* ostream_vector.h -*- C++ -*- + Jeremy Barnes, 6 November 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. +*/ + #pragma once #include #include +namespace std { + template std::ostream & operator << (std::ostream & stream, const std::vector & v) @@ -13,3 +22,4 @@ operator << (std::ostream & stream, const std::vector & v) return stream << " ]"; } +} // namespace std diff --git a/utils/possibly_dynamic_buffer.h b/utils/possibly_dynamic_buffer.h index b3889222f..6b700f48a 100644 --- a/utils/possibly_dynamic_buffer.h +++ b/utils/possibly_dynamic_buffer.h @@ -7,6 +7,7 @@ #pragma once #include +#include namespace MLDB { @@ -37,13 +38,16 @@ struct PossiblyDynamicBuffer { } } - size_t size_; - bool onStack() const { return size_ <= MAX_STACK_ENTRIES; } T * data() { return onStack() ? stackEntries: heapEntries; } const T * data() const { return onStack() ? stackEntries: heapEntries; } size_t size() const { return size_; } + + operator std::span () const { return { data(), size() }; } + + const T * begin() const { return data(); } + const T * end() const { return data() + size(); } T * begin() { return data(); } T * end() { return data() + size(); } @@ -59,6 +63,8 @@ struct PossiblyDynamicBuffer { return data()[el]; } + size_t size_; + union { T stackEntries[MAX_STACK_ENTRIES]; T * heapEntries; diff --git a/utils/processing_state.h b/utils/processing_state.h new file mode 100644 index 000000000..e69de29bb diff --git a/utils/scoreboard.h b/utils/scoreboard.h new file mode 100644 index 000000000..38d03664d --- /dev/null +++ b/utils/scoreboard.h @@ -0,0 +1,265 @@ +/* scoreboard.h + Jeremy Barnes, 21 February 2007 + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Scoreboard for keeping track of the progress of multithreaded operations. +*/ + +#pragma once + +#include +#include +#include +#include +#include +#include "mldb/arch/spinlock.h" +#include "mldb/compiler/compiler.h" +#include "mldb/arch/exception.h" +#include "mldb/base/exc_check.h" +#include "mldb/base/exc_assert.h" + +namespace MLDB { + +/*****************************************************************************/ +/* SCOREBOARD */ +/*****************************************************************************/ + +/** This structure allows us to keep track of the in progress and done + status of work that is done across multiple threads. + + The work is conceptually split into work items, which are numbered + sequentially from zero. + + When a thread begins working on a work item, it calls beginWorkItem(). + + When it finishes, it calls endWorkItem(). This will return the number of + the previous highest work item done, and the number of the new highest + work item done. If there is cleanup to be done once a work item ends, + then it can be done by that thread. + + The highestFinishedWorkItem() method returns the index of the highest + work item that has been completed. Note that there may be earlier work + items not completed. + + The highestInProgressWorkItem() method returns the index of the highest + work item that is in progress. + + The progress() method returns the highest item which is both done and all + of the previous work items are done. + + This structure is thread-safe. Initial implementation is via a spinlock + but it could probably be made lock-free without changing the contract + too much if it were to become a bottleneck (probably not due to the + expectation that the work items should be large & they can be pre- + chunked if necessary). +*/ + +using namespace std; + +struct LinearScoreboard { + + LinearScoreboard(size_t maxInProgressWorkItems = 128) + : maxInProgressWorkItems_(maxInProgressWorkItems), + workItems_(maxInProgressWorkItems * 8, WorkItemState::NOT_STARTED) + { + } + + /** Begin work new work item n. Will return true if this is the first + thread to work on the item, or false if another thread has already + started it. + + If this thread is too far ahead (index is more than + maxInProgressWorkItems_ ahead of the highestInProgressWorkItem_), + then it will return false. + + Output: + - If started is true, then tooFarAhead is false, and the item started + - Otherwise, if tooFarAhead is true, then started is false, and the + item was not started because the rest of the work needs to catch up. + This thread should probably either wait or contribute to the work + already in progress. + - If both are false, then the item was already in progress and this + thread should not do anything. This may indicate a logic error in + the program. + */ + struct BeginWorkItemResult { + bool started = false; + bool tooFarAhead = false; + }; + + BeginWorkItemResult beginWorkItem(size_t index) MLDB_WARN_UNUSED_RESULT + { + //cerr << endl << "Begin work item " << index << endl; + //dumpState(); + //cerr << endl; + std::unique_lock guard(mutex_); + ExcCheckGreaterEqual(index, workItemsBase_, "attempting to restart old work item"); + size_t i = index - workItemsBase_; + if (i >= earliestNonCompletedItem_ + maxInProgressWorkItems_) { + // Too many in progress + return { false, true }; + } + ExcAssert(i < workItems_.size()); + if (workItems_[i] != WorkItemState::NOT_STARTED) { + // Already started + return { false, false }; + } + + ++workItemsStarted_; + + workItems_[i] = WorkItemState::IN_PROGRESS; + if (index >= nextWorkItem_) { + nextWorkItem_ = index + 1; + } + + // Started + return { true, false }; + } + + /** End work on a work item. Returns the number of the work item that + was in progress before this one, and the number of the work item + that is now in progress. */ + + struct EndWorkItemResult { + int64_t prevEarliestUncompletedWork = -1; + int64_t newEarliestUncompletedWork = -1; + int64_t count() const { return newEarliestUncompletedWork - prevEarliestUncompletedWork; } + int64_t begin() const { return prevEarliestUncompletedWork; } + int64_t end() const { return newEarliestUncompletedWork; } + }; + + EndWorkItemResult endWorkItem(size_t index) + { + //cerr << "endWorkItem " << index << endl; + //dumpState(); + std::unique_lock guard(mutex_); + ExcCheckGreaterEqual(index, workItemsBase_, "attempting to restart old work item"); + size_t i = index - workItemsBase_; + ExcAssert(i < workItems_.size()); + if (workItems_[i] != WorkItemState::IN_PROGRESS) { + // Not started or already finished + MLDB_THROW_LOGIC_ERROR("attempt to finish unstarted or previously finished work item %d", (int)index); + } + + ++workItemsCompleted_; + + EndWorkItemResult result; + result.prevEarliestUncompletedWork = earliestNonCompletedItem_; + + workItems_[i] = WorkItemState::DONE; + if (index == earliestNonCompletedItem_) { + // Find the next earliest work item + while (earliestNonCompletedItem_ < nextWorkItem_ && + workItems_[earliestNonCompletedItem_ - workItemsBase_] == WorkItemState::DONE) { + ++earliestNonCompletedItem_; + } + } + + size_t numUnused = earliestNonCompletedItem_ - workItemsBase_ - 1; + if (numUnused + maxInProgressWorkItems_ > workItems_.size()) { + //cerr << endl << "SHIFTING by " << numUnused << endl; + //dumpState(); + //cerr << "numUnused = " << numUnused << " maxInProgressWorkItems_ = " << maxInProgressWorkItems_ << " workItems_.size() = " << workItems_.size() << endl; + //cerr << "earliestNonCompletedItem_ = " << earliestNonCompletedItem_ << " workItemsBase_ = " << workItemsBase_ << endl; + std::copy(workItems_.begin() + numUnused, workItems_.end(), workItems_.begin()); + std::fill(workItems_.begin() + workItems_.size() - numUnused, workItems_.end(), WorkItemState::NOT_STARTED); + workItemsBase_ += numUnused; + //cerr << "state after shift: " << endl; + //dumpState(); + } + + result.newEarliestUncompletedWork = earliestNonCompletedItem_; + return result; + } + + ssize_t earliestNonCompletedItem() const + { + std::unique_lock guard(mutex_); + return earliestNonCompletedItem_; + } + +#if 0 + /** Return the highest work item that has been completed. */ + ssize_t highestFinishedWorkItem() const + { + std::unique_lock guard(mutex_); + return highestFinishedWorkItem_; + } + + /** Return the highest work item that is in progress, or nothing + if no work is in progress. */ + std::optional highestInProgressWorkItem() const + { + std::unique_lock guard(mutex_); + ssize_t result = nextWorkItem_ - 1; + return result == earliestNonCompletedItem_ ? std::nullopt : std::optional(result); + } +#endif + + /** Return the highest work item that is both done and all of the previous + work items are done, plus one. + + If zero work items have been submitted, progress is zero. + If 100 work items have been submitted and all are done, progress is 100. + If 100 work items have been submitted and all are done apart from the first, progress is zero. + */ + size_t progress() const + { + std::unique_lock guard(mutex_); + return earliestNonCompletedItem_; + } + + void dumpState() const + { + auto dumpItemState = [] (WorkItemState state) -> char { + return state == WorkItemState::NOT_STARTED ? 'N' : + state == WorkItemState::IN_PROGRESS ? 'I' : 'D'; + }; + + cerr << "earliestNonCompletedItem_ = " << earliestNonCompletedItem_ << endl; + cerr << "nextWorkItem_ = " << nextWorkItem_ << endl; + cerr << "workItemsBase_ = " << workItemsBase_ << endl; + cerr << "workItemsStarted_ = " << workItemsStarted_ << endl; + cerr << "workItemsCompleted_ = " << workItemsCompleted_ << endl; + + cerr << "items: "; + for (size_t i = 0; i < workItems_.size(); ++i) { + cerr << dumpItemState(workItems_[i]); + } + cerr << endl; + +#if 0 + cerr << "pre: " << workItemsBase_ << " * C "; + cerr << "before: " << earliestNonCompletedItem_ - workItemsBase << " = "; + for (auto it = workItems_.begin(); it != workItems_.begin() + earliestNonCompletedItem_ - workItemsBase_; ++it) { + cerr << dumpItemState(*it); + } + cerr << "curr: " << nextWorkItem_ - workItemsBase_ << " = "; + for (auto it = workItems_.begin() + earliestNonCompletedItem_ - workItemsBase_; it != workItems_.begin() + nextWorkItem_ - workItemsBase_; ++it) { + cerr << dumpItemState(*it); + } + cerr << endl; + for (sizeIt - +#endif + } + +private: + enum class WorkItemState: uint8_t { + NOT_STARTED, + IN_PROGRESS, + DONE + }; + + using Mutex = Spinlock; + mutable Mutex mutex_; + size_t maxInProgressWorkItems_; + std::vector workItems_; + ssize_t workItemsBase_ = 0; //< offset for first work item + ssize_t earliestNonCompletedItem_ = 0; //< earliest work item that is not comlpeted. + ssize_t nextWorkItem_ = 0; //< all work items from this one are unstarted + size_t workItemsStarted_ = 0; + size_t workItemsCompleted_ = 0; +}; + + +} // namespace MLDB diff --git a/utils/testing/coalesced_range_test.cc b/utils/testing/coalesced_range_test.cc new file mode 100644 index 000000000..12af733fc --- /dev/null +++ b/utils/testing/coalesced_range_test.cc @@ -0,0 +1,276 @@ +/* coalesced_range_test.cc + Wolfgang Sourdeau, 28 August 2014 + Copyright (c) 2014 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Test CoalescedRange +*/ + +#include "mldb/utils/coalesced_range.h" +#include "mldb/utils/testing/mldb_catch2.h" + +using namespace std; +using namespace MLDB; + +TEST_CASE("coalesced range basics") +{ + CoalescedRange range; + + range.add(span("hello", 5)); + range.add(span(" ", 1)); + range.add(span("world", 5)); + range.add(span("\n", 1)); + + CHECK(range.size() == 12); + + std::string s; + for (char c: range) s += c; + + CHECK(s == "hello world\n"); + + auto it = range.begin(), end = range.end(); + CHECK(std::distance(it, end) == 12); + CHECK(end - it == 12); + CHECK(it != end); + CHECK(it < end); + CHECK(it <= end); + CHECK(end > it); + CHECK(end >= it); + + CHECK(it[0] == 'h'); + CHECK(it[5] == ' '); + CHECK(it[6] == 'w'); + CHECK(it[11] == '\n'); + + ++it; + CHECK(std::distance(it, end) == 11); + CHECK(it[0] == 'e'); + CHECK(it[5] == 'w'); + CHECK(it[6] == 'o'); + CHECK_THROWS(it[11]); + + --end; + CHECK(std::distance(it, end) == 10); + + auto found = range.find(' '); + CHECK(found != range.end()); + CHECK(std::distance(range.begin(), found) == 5); + CHECK(*found == ' '); + + auto found2 = range.find(found + 1, range.end(), ' '); + CHECK(found2 == range.end()); + + auto found3 = range.find(range.begin() + 1, range.end(), 'h'); + CHECK(found3 == range.end()); + + auto found4 = range.find(range.begin(), range.end() - 1, '\n'); + CHECK(found4 == range.end() - 1); +} + +TEST_CASE("coalesced range reduce") +{ + CoalescedRange range; + + range.add(span("hello", 5)); + range.add(span(" ", 1)); + range.add(span("world", 5)); + range.add(span("\n", 1)); + + SECTION("no-op reduce") { + auto [first, last] = range.reduce(range.begin(), range.end()); + CHECK(first == 0); + CHECK(last == 4); + CHECK(range.to_string() == "hello world\n"); + } + + SECTION("null reduce at beginning") { + auto [first, last] = range.reduce(range.begin(), range.begin()); + CHECK(first == 0); + CHECK(last == 0); + CHECK(range.to_string() == ""); + } + + SECTION("null reduce at all positions") { + for (size_t i = 0; i < range.size(); ++i) { + SECTION("position " + to_string(i)) { + auto [first, last] = range.reduce(range.begin() + i, range.begin() + i); + CHECK(first == last); + CHECK(range.to_string() == ""); + } + } + } + + SECTION("keep n characters") { + for (size_t keep = 0; keep < range.size(); ++keep) { + SECTION("keep " + to_string(keep)) { + for (size_t i = 0; i < range.size() - keep; ++i) { + SECTION("position " + to_string(i)) { + auto it = range.begin() + i, end = range.begin() + i + keep; + string str(it, end); + auto [first, last] = range.reduce(it, end); + CHECK(first <= last); + CHECK(range.to_string() == str); + CHECK(range.to_string() == string("hello world\n").substr(i, keep)); + } + } + } + } + } + + SECTION("reduce remove first word") { + auto [first, last] = range.reduce(range.begin(), range.begin() + 5); + CHECK(first == 0); + CHECK(last == 1); + CHECK(range.to_string() == "hello"); + } + + SECTION("reduce remove second word") { + auto [first, last] = range.reduce(range.begin() + 6, range.begin() + 11); + CHECK(first == 2); + CHECK(last == 3); + CHECK(range.to_string() == "world"); + } +} + +TEST_CASE("coalesced range to_string()") +{ + CoalescedRange range; + + range.add(span("hello", 5)); + range.add(span(" ", 1)); + range.add(span("world", 5)); + range.add(span("\n", 1)); + + SECTION("full range") { + CHECK(range.to_string() == "hello world\n"); + } + + SECTION("partial range") { + CHECK(range.to_string(range.begin() + 6, range.end()) == "world\n"); + } + + SECTION("empty range") { + CHECK(range.to_string(range.end(), range.end()) == ""); + CHECK(range.to_string(range.begin(), range.begin()) == ""); + } + + SECTION("keep n characters") { + for (size_t keep = 0; keep < range.size(); ++keep) { + SECTION("keep " + to_string(keep)) { + for (size_t i = 0; i < range.size() - keep; ++i) { + SECTION("position " + to_string(i)) { + auto it = range.begin() + i, end = range.begin() + i + keep; + string str(it, end); + CHECK(range.to_string(it, end) == str); + } + } + } + } + } +} + +TEST_CASE("coalesced range get_span") +{ + CoalescedRange range; + + range.add(span("hello, world!", 13)); + + SECTION("full range") { + auto found = range.get_span(range.begin(), range.end()); + REQUIRE(found.has_value()); + CHECK(std::string(found->data(), found->data() + found->size()) == "hello, world!"); + } + + SECTION("partial range at end") { + auto found = range.get_span(range.begin() + 7, range.end()); + REQUIRE(found.has_value()); + CHECK(std::string(found->data(), found->data() + found->size()) == "world!"); + } + + SECTION("partial range at beginning") { + auto found = range.get_span(range.begin(), range.begin() + 5); + REQUIRE(found.has_value()); + CHECK(std::string(found->data(), found->data() + found->size()) == "hello"); + } + + SECTION("empty range at beginning") { + auto found = range.get_span(range.begin(), range.begin()); + CHECK(found.has_value()); + CHECK(found->size() == 0); + } + + SECTION("empty range at end") { + auto found = range.get_span(range.end(), range.end()); + CHECK(found.has_value()); + CHECK(found->size() == 0); + } + + SECTION("empty range in middle") { + auto found = range.get_span(range.begin() + 5, range.begin() + 5); + CHECK(found.has_value()); + CHECK(found->size() == 0); + } + + SECTION("backwards range") { + CHECK_THROWS(range.get_span(range.end(), range.begin())); + } +} + +TEST_CASE("iterators") +{ + CoalescedRange range; + range.add(span("hello, world!", 13)); + + SECTION("at begin") { + auto it = range.begin(); + CHECK_THROWS(it[-1]); + CHECK(it[0] == 'h'); + CHECK(it[1] == 'e'); + CHECK(it[2] == 'l'); + CHECK(it[12] == '!'); + CHECK_THROWS(it[13]); + } + + SECTION("at end") { + auto it = range.end(); + CHECK_THROWS(it[0]); + CHECK(it[-1] == '!'); + CHECK(it[-13] == 'h'); + CHECK_THROWS(it[-14]); + } + + range.add(span("\n", 1)); + + SECTION("at begin with newline") { + auto it = range.begin(); + CHECK_THROWS(it[-1]); + CHECK(it[0] == 'h'); + CHECK(it[1] == 'e'); + CHECK(it[2] == 'l'); + CHECK(it[13] == '\n'); + CHECK_THROWS(it[14]); + } + + SECTION("at end with newline") { + auto it = range.end(); + CHECK_THROWS(it[0]); + CHECK(it[-14] == 'h'); + CHECK(it[-1] == '\n'); + CHECK(it[-2] == '!'); + } +} + +TEST_CASE("one character ranges") +{ + std::string s = "hello, world!"; + std::string data; + for (char c: s) { data.push_back(c); data.push_back(0); } + + CoalescedRange range; + for (size_t i = 0; i < s.size(); ++i) { + range.add(span(data.data() + 2 * i, 1)); + } + + CHECK(range.size() == s.size()); + CHECK(range.to_string() == s); +} \ No newline at end of file diff --git a/utils/testing/fixtures/16kbofones.txt b/utils/testing/fixtures/16kbofones.txt new file mode 100644 index 000000000..2afb00fdf --- /dev/null +++ b/utils/testing/fixtures/16kbofones.txt @@ -0,0 +1 @@ +1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 \ No newline at end of file diff --git a/utils/testing/for_each_line_test.cc b/utils/testing/for_each_line_test.cc index feae0d5d4..aa35dd180 100644 --- a/utils/testing/for_each_line_test.cc +++ b/utils/testing/for_each_line_test.cc @@ -6,31 +6,33 @@ Test for_each_line */ -#define BOOST_TEST_MAIN -#define BOOST_TEST_DYN_LINK - #include #include #include #include -#include +#include #include "mldb/arch/exception.h" #include "mldb/utils/string_functions.h" #include "mldb/utils/vector_utils.h" #include "mldb/utils/for_each_line.h" #include "mldb/vfs/filter_streams.h" #include "mldb/block/content_descriptor.h" +#include "mldb/utils/coalesced_range.h" +#include "mldb/utils/testing/mldb_catch2.h" using namespace std; +using namespace std::placeholders; using namespace MLDB; - +namespace o = ForEachLine::options; namespace { void testForEachLineBlock(const std::string & data, size_t blockSize, size_t startOffset, - int64_t maxLines = -1) + int64_t maxLines, + int maxParallelism, + bool outputTrailingEmptyLines) { std::vector splitLines = split(string(data, startOffset), '\n'); for (auto & l: splitLines) { @@ -39,7 +41,7 @@ void testForEachLineBlock(const std::string & data, } } - if (!data.empty() && data.back() == '\n' && !splitLines.empty()) + while (!outputTrailingEmptyLines && !splitLines.empty() && splitLines.back().empty()) splitLines.pop_back(); if (maxLines >= 0 && maxLines < splitLines.size()) { @@ -50,11 +52,11 @@ void testForEachLineBlock(const std::string & data, string url = "mem://testdata" + std::to_string(++testNumber); - cerr << endl; - cerr << "test " << testNumber << " with " - << splitLines.size() << " lines, " << startOffset << " start offset and " - << maxLines << " max lines" << endl; - cerr << "test has " << data.size() << " characters" << endl; + //cerr << endl; + //cerr << "test " << testNumber << " with " + // << splitLines.size() << " lines, " << startOffset << " start offset and " + // << maxLines << " max lines" << endl; + //cerr << "test has " << data.size() << " characters" << endl; { filter_ostream stream(url); @@ -80,74 +82,93 @@ void testForEachLineBlock(const std::string & data, return true; }; - auto onEndBlock = [&] (int64_t blockNumber, int64_t lineNumber) -> bool + auto onEndBlock = [&] (int64_t blockNumber, int64_t lineNumber, size_t numLinesInBlock) -> bool { ++numBlocksFinished; return true; }; - + + std::mutex onLineMutex; + auto onLine = [&] (const char * line, size_t length, int64_t blockNumber, int64_t lineNumber) -> bool { - BOOST_CHECK_EQUAL(lineNumber, numLines); - BOOST_CHECK_LT(lineNumber, splitLines.size()); + std::unique_lock lock{onLineMutex}; + if (maxParallelism == 0) { + CHECK(lineNumber == numLines); + } + CHECK(lineNumber < splitLines.size()); if (lineNumber < splitLines.size()) { if (splitLines[lineNumber] != string(line, length)) cerr << "error on line " << lineNumber << endl; - BOOST_CHECK_EQUAL(splitLines[lineNumber], string(line, length)); + CHECK(splitLines[lineNumber] == string(line, length)); } ++numLines; return true; }; - int maxParallelism = 1; + forEachLineBlock(content, onLine, onStartBlock, onEndBlock, + o::maxParallelism=maxParallelism, + o::defaultBlockSize=blockSize, + o::startOffset=startOffset, + o::maxLines=maxLines, + o::outputTrailingEmptyLines=outputTrailingEmptyLines); - forEachLineBlock(content, startOffset, onLine, maxLines, maxParallelism, - onStartBlock, onEndBlock, blockSize); - - BOOST_CHECK_EQUAL(numLines, splitLines.size()); + CHECK(numLines == splitLines.size()); if (maxLines == -1) - BOOST_CHECK_EQUAL(numLinesInBlockTotal, numLines); - BOOST_CHECK_EQUAL(numBlocksStarted, numBlocksFinished); - - cerr << "did " << numBlocksStarted << " blocks" << endl; + CHECK(numLinesInBlockTotal == numLines); + CHECK(numBlocksStarted == numBlocksFinished); } -BOOST_AUTO_TEST_CASE(test_forEachLineBlock) +TEST_CASE("test_forEachLineBlock") { - /* 1 */ testForEachLineBlock("", 1 /* blockSize */, 0 /* startOffset */); - /* 2 */ testForEachLineBlock("\n", 1 /* blockSize */, 0 /* startOffset */); - /* 3 */ testForEachLineBlock("\n", 1 /* blockSize */, 1 /* startOffset */); - /* 4 */ testForEachLineBlock(" ", 1 /* blockSize */, 0 /* startOffset */); - /* 5 */ testForEachLineBlock("\n\n\n\n\n\n\n\n\n\n", 1 /* blockSize */, 0 /* startOffset */); - /* 6 */ testForEachLineBlock("\n\n\n\n\n\n\n\n\n\n", 100 /* blockSize */, 0 /* startOffset */); - /* 7 */ testForEachLineBlock("\n\n\n\n\n\n\n\n\n\n", 100 /* blockSize */, 10 /* startOffset */); - /* 8 */ testForEachLineBlock("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 1 /* blockSize */, 10 /* startOffset */); - /* 9 */ testForEachLineBlock("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 2 /* blockSize */, 0 /* startOffset */); - /* 10 */ testForEachLineBlock("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 2 /* blockSize */, 1 /* startOffset */); - /* 11 */ testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 100 /* blockSize */, 0 /* startOffset */); - /* 12 */ testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 1 /* blockSize */, 0 /* startOffset */); - /* 13 */ testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 2 /* blockSize */, 0 /* startOffset */); - /* 14 */ testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 5 /* blockSize */, 0 /* startOffset */); - - /* 15 */ testForEachLineBlock("", 1 /* blockSize */, 0 /* startOffset */, 0 /* max lines */); - /* 16 */ testForEachLineBlock("\n", 1 /* blockSize */, 0 /* startOffset */, 0 /* max lines */); - /* 17 */ testForEachLineBlock("\n", 1 /* blockSize */, 0 /* startOffset */, 1 /* max lines */); - /* 18 */ testForEachLineBlock("\n", 1 /* blockSize */, 0 /* startOffset */, 2 /* max lines */); - /* 19 */ testForEachLineBlock("a\nb\nc\n", 1 /* blockSize */, 0 /* startOffset */, 0 /* max lines */); - /* 20 */ testForEachLineBlock("a\nb\nc\n", 1 /* blockSize */, 0 /* startOffset */, 1 /* max lines */); - /* 21 */ testForEachLineBlock("a\nb\nc\n", 1 /* blockSize */, 0 /* startOffset */, 2 /* max lines */); - /* 22 */ testForEachLineBlock("a\nb\nc\n", 1 /* blockSize */, 0 /* startOffset */, 3 /* max lines */); - /* 23 */ testForEachLineBlock("a\nb\nc\n", 1 /* blockSize */, 0 /* startOffset */, 4 /* max lines */); - - /* 24 */ testForEachLineBlock("a\r\nab\r\nabc\r\nabcd\r\nabcde\r\nabcd\r\nabc\r\nab\r\na\r\n\r\n", 5 /* blockSize */, 0 /* startOffset */); + for (auto empty: { false, true }) { + SECTION("output empty " + std::to_string(empty)) { + for (auto parallelism: { 0 /*, 1, -1*/ }) { + SECTION("parallelism " + std::to_string(parallelism)) { // blkSz startOfs maxLns empty parallelism +#if 1 + SECTION("test 01") { testForEachLineBlock("", 1, 0, -1, empty, parallelism); } + SECTION("test 02") { testForEachLineBlock("\n", 1, 0, -1, empty, parallelism); } + SECTION("test 03") { testForEachLineBlock("\n", 1, 1, -1, empty, parallelism); } + SECTION("test 04") { testForEachLineBlock(" ", 1, 0, -1, empty, parallelism); } + SECTION("test 05") { testForEachLineBlock("\n\n\n\n\n\n\n\n\n\n", 1, 0, -1, empty, parallelism); } + SECTION("test 06") { testForEachLineBlock("\n\n\n\n\n\n\n\n\n\n", 100, 0, -1, empty, parallelism); } + SECTION("test 07") { testForEachLineBlock("\n\n\n\n\n\n\n\n\n\n", 100, 10, -1, empty, parallelism); } + SECTION("test 08") { testForEachLineBlock("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 1, 10, -1, empty, parallelism); } + SECTION("test 09") { testForEachLineBlock("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 2, 0, -1, empty, parallelism); } + SECTION("test 10") { testForEachLineBlock("\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n", 2, 1, -1, empty, parallelism); } + SECTION("test 11") { testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 100, 0, -1, empty, parallelism); } + SECTION("test 12") { testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 1, 0, -1, empty, parallelism); } + SECTION("test 13") { testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 2, 0, -1, empty, parallelism); } + SECTION("test 14") { testForEachLineBlock("a\nab\nabc\nabcd\nabcde\nabcd\nabc\nab\na\n\n", 5, 0, -1, empty, parallelism); } + SECTION("test 15") { testForEachLineBlock("", 1, 0, 0, empty, parallelism); } + SECTION("test 16") { testForEachLineBlock("\n", 1, 0, 0, empty, parallelism); } +#endif + SECTION("test 17") { testForEachLineBlock("\n", 1, 0, 1, empty, parallelism); } + SECTION("test 18") { testForEachLineBlock("\n", 1, 0, 2, empty, parallelism); } +#if 1 + SECTION("test 19") { testForEachLineBlock("a\nb\nc\n", 1, 0, 0, empty, parallelism); } + SECTION("test 20") { testForEachLineBlock("a\nb\nc\n", 1, 0, 1, empty, parallelism); } + SECTION("test 21") { testForEachLineBlock("a\nb\nc\n", 1, 0, 2, empty, parallelism); } + SECTION("test 22") { testForEachLineBlock("a\nb\nc\n", 1, 0, 3, empty, parallelism); } + SECTION("test 23") { testForEachLineBlock("a\nb\nc\n", 1, 0, 4, empty, parallelism); } + SECTION("test 24") { testForEachLineBlock("a\r\nab\r\nabc\r\nabcd\r\nabcde\r\nabcd\r\nabc\r\nab\r\na\r\n\r\n", 5, 0, -1, empty, parallelism); } + SECTION("test 24") { testForEachLineBlock("a\r\nab\r\nabc\r\nabcd\r\nabcde\r\nabcd\r\nabc\r\nab\r\na\r\n\r\n", 5, 0, 0, empty, parallelism); } + SECTION("test 24") { testForEachLineBlock("a\r\nab\r\nabc\r\nabcd\r\nabcde\r\nabcd\r\nabc\r\nab\r\na\r\n\r\n", 5, 0, 1, empty, parallelism); } + SECTION("test 24") { testForEachLineBlock("a\r\nab\r\nabc\r\nabcd\r\nabcde\r\nabcd\r\nabc\r\nab\r\na\r\n\r\n", 5, 0, -1, empty, parallelism); } +#endif + } + } + } + } } vector dataStrings{"line1", "line2", "", "line forty 2"}; } -BOOST_AUTO_TEST_CASE( test_forEachLine_data ) + +TEST_CASE("test_forEachLine_data trailing newline") { vector expected(dataStrings); expected.emplace_back(""); @@ -163,20 +184,19 @@ BOOST_AUTO_TEST_CASE( test_forEachLine_data ) result.emplace_back(data, dataSize); }; - auto logger = getMldbLog("test"); - forEachLine(stream, processLine, logger); - BOOST_CHECK_EQUAL(result, expected); + forEachLine(stream, processLine, o::outputTrailingEmptyLines=true); + CHECK(result == expected); } -BOOST_AUTO_TEST_CASE( test_forEachLineStr_data ) +TEST_CASE("test_forEachLine_data no trailing newline") { vector expected(dataStrings); - expected.emplace_back(""); string data; for (const auto & line: dataStrings) { data += line + "\n"; } + data.pop_back(); istringstream stream(data); vector result; @@ -184,12 +204,11 @@ BOOST_AUTO_TEST_CASE( test_forEachLineStr_data ) result.emplace_back(data); }; - auto logger = getMldbLog("test"); - forEachLineStr(stream, processLine, logger); - BOOST_CHECK_EQUAL(result, expected); + forEachLine(stream, processLine, o::outputTrailingEmptyLines=false); + CHECK(result == expected); } -BOOST_AUTO_TEST_CASE( test_forEachLine_throw ) +TEST_CASE("test_forEachLine_throw") { string data; for (int i = 0; i < 1000; i++) { @@ -205,7 +224,262 @@ BOOST_AUTO_TEST_CASE( test_forEachLine_throw ) } }; - auto logger = getMldbLog("test"); - BOOST_CHECK_THROW(forEachLineStr(stream, processLine, logger), MLDB::Exception); + CHECK_THROWS(forEachLine(stream, processLine)); } +struct ForEachLineTester { + ForEachLineTester() + : splitter(new NewlineSplitter()) + { + } + + bool debug = false; + bool blocked = true; + ssize_t maxLines = -1; + + std::unique_ptr splitter; + + atomic lineCount = 0; + + struct LineInfo { + std::string contents; + bool found = false; + }; + + struct BlockInfo { + int64_t blockNumber = -1; + int64_t firstLineNumber = -1; + uint64_t numLines = 0; + std::vector lines; + bool ended = false; + + LineInfo & getLineInfo(int64_t lineNum, bool blocked) + { + if (!blocked) { + static std::mutex linesMutex; // for unblocked only + REQUIRE(firstLineNumber == 0); + std::lock_guard guard(linesMutex); + if (lines.size() <= lineNum) { + lines.resize(lineNum + 1); + } + return lines[lineNum]; + } + else { + CHECK(lineNum >= firstLineNumber); + CHECK(lineNum < firstLineNumber + numLines); + REQUIRE(lineNum - firstLineNumber < lines.size()); + } + return lines[lineNum - firstLineNumber]; + } + }; + + // Call the first time we see a block + BlockInfo & addBlockInfo(int64_t blockNumber) + { + //CHECK(blockNumber < 50); + std::lock_guard guard(blockInfoMutex); + if (blocks.size() <= blockNumber) + blocks.resize(blockNumber + 1); + CHECK(blocks[blockNumber].blockNumber == -1); + return blocks[blockNumber]; + }; + + // Call after we've seen a block + BlockInfo & getBlockInfo(int64_t blockNumber) + { + std::lock_guard guard(blockInfoMutex); + + if (!blocked) { + CHECK(blockNumber == 0); + if (blocks.empty()) { + blocks.resize(1); + blocks[0].firstLineNumber = 0; + } + return blocks[0]; + } + + REQUIRE(blockNumber < blocks.size()); + CHECK(blocks[blockNumber].ended == false); + CHECK(blocks[blockNumber].blockNumber == blockNumber); + return blocks[blockNumber]; + }; + + std::mutex blockInfoMutex; + std::vector blocks; + + void processUsingBlockedStream(const std::string & filename, ssize_t blockSize = -1, ssize_t maxLines = -1, int maxParallelism = 0) + { + filter_istream stream(filename); + REQUIRE(stream); + + forEachLineBlock(stream, + std::bind(&ForEachLineTester::processLine, this, _1, _2, _3, _4), + std::bind(&ForEachLineTester::startBlock, this, _1, _2, _3), + std::bind(&ForEachLineTester::endBlock, this, _1, _2, _3), + o::maxParallelism=maxParallelism, o::defaultBlockSize=blockSize, o::maxLines=maxLines, o::splitter=splitter.get()); + + this->maxLines = maxLines; + } + + void processUsingBlockedMappedStream(const std::string & filename, ssize_t blockSize = -1, ssize_t maxLines = -1, int maxParallelism = 0) + { + filter_istream stream(filename, { { "mapped", "true" } } ); + REQUIRE(stream); + + forEachLineBlock(stream, + std::bind(&ForEachLineTester::processLine, this, _1, _2, _3, _4), + std::bind(&ForEachLineTester::startBlock, this, _1, _2, _3), + std::bind(&ForEachLineTester::endBlock, this, _1, _2, _3), + o::maxParallelism=maxParallelism, o::defaultBlockSize=blockSize, o::maxLines=maxLines, o::splitter=splitter.get()); + + this->maxLines = maxLines; + } + + void processUsingLineByLine(const std::string & filename, ssize_t maxLines = -1, int maxParallelism = 0) + { + this->blocked = false; + filter_istream stream(filename); + REQUIRE(stream); + + forEachLine(stream, + std::bind(&ForEachLineTester::processLine, this, _1, _2, 0, _3), + o::maxParallelism=maxParallelism, o::maxLines=maxLines, o::splitter=splitter.get()); + + this->maxLines = maxLines; + } + + void processUsingContentDescriptor(const std::string & filename, ssize_t blockSize = -1, ssize_t maxLines = -1, int maxParallelism = 0) + { + ContentDescriptor descriptor; + descriptor.addUrl(filename); + auto content = getContent(descriptor); + + forEachLineBlock(content, + std::bind(&ForEachLineTester::processLine, this, _1, _2, _3, _4), + std::bind(&ForEachLineTester::startBlock, this, _1, _2, _3), + std::bind(&ForEachLineTester::endBlock, this, _1, _2, _3), + o::maxParallelism=maxParallelism, o::defaultBlockSize=blockSize, o::maxLines=maxLines, o::splitter=splitter.get()); + + this->maxLines = maxLines; + } + + bool processLine(const char * line, size_t length, int64_t blockNumber, int64_t lineNum) + { + if (debug) + cerr << "got line " << lineNum << " with length " << length << " at " << lineNum << " of block " << blockNumber << endl; + BlockInfo & blockInfo = getBlockInfo(blockNumber); + LineInfo & lineInfo = blockInfo.getLineInfo(lineNum, blocked); + lineInfo.contents = std::string(line, line + length); + lineInfo.found = true; + ++lineCount; + if (maxLines != -1) + CHECK(lineNum < maxLines); + return true; + } + + bool startBlock(int64_t blockNumber, int64_t lineNumber, int64_t numLines) + { + if (debug) + cerr << "startBlock " << blockNumber << " with " << numLines << " lines from " << lineNumber << endl; + + BlockInfo & blockInfo = addBlockInfo(blockNumber); + blockInfo.blockNumber = blockNumber; + blockInfo.firstLineNumber = lineNumber; + blockInfo.numLines = numLines; + blockInfo.lines.resize(numLines); + + //REQUIRE(blockNumber < 5); + //return blockNumber < 5; + + return true; + } + + bool endBlock(int64_t blockNumber, int64_t lineNumber, int64_t numLines) + { + if (debug) + cerr << "endBlock " << blockNumber << " at " << lineNumber << " with " << numLines << " lines" << endl; + BlockInfo & blockInfo = getBlockInfo(blockNumber); + blockInfo.ended = true; + return true; + } + + void validate() + { + int b = 0; + for (auto & block: blocks) { + if (blocked) REQUIRE(block.ended); + int n = 0; + for (auto & line: block.lines) { + if (!line.found) + cerr << "line not found: line " << n << " of block " << b << " of " << blocks.size() + << " (" << b + block.firstLineNumber << " of " << lineCount.load() << " in file)" << endl; + REQUIRE(line.found); + ++n; + } + ++b; + } + + if (maxLines != -1) + CHECK(lineCount == maxLines); + } +}; + + +TEST_CASE("for_each_line newline splitter") +{ + for (auto parallelism: { 0, 1, -1 }) { + SECTION("parallelism " + std::to_string(parallelism)) { + //cerr << "parallelism " << parallelism << endl; + for (auto blockSize: { -1, 1, 2, 3, 5, 17, 1000000 }) { + SECTION("blockSize " + std::to_string(blockSize)) { + //cerr << "blockSize " << blockSize << endl; + + SECTION("blocked stream") { + ForEachLineTester tester; + tester.processUsingBlockedStream("file://mldb/testing/MLDB-1043-bucketize-data.csv", blockSize); + tester.validate(); + } + + // Mapping requires the file to be non-compressed + SECTION("blocked mapped stream") { + ForEachLineTester tester; + tester.processUsingBlockedMappedStream("file://mldb/testing/MLDB-1043-bucketize-data.csv", blockSize); + tester.validate(); + } + SECTION("blocked gzip stream") { + ForEachLineTester tester; + tester.processUsingBlockedMappedStream("file://mldb/mldb_test_data/reviews_Digital_Music_5.json.zstd", blockSize, blockSize > 17 ? 64000: 640 /* maxLines */); + tester.validate(); + } + SECTION("line by line") { + ForEachLineTester tester; + tester.processUsingLineByLine("file://mldb/mldb_test_data/reviews_Digital_Music_5.json.zstd", 1000 /* maxLines */); + tester.validate(); + }; + + SECTION("blocked content descriptor") { + ForEachLineTester tester; + tester.processUsingContentDescriptor("file://mldb/testing/MLDB-1043-bucketize-data.csv", blockSize); + tester.validate(); + } + + if (blockSize > 5) { + SECTION("blocked content descriptor large stream") { + ForEachLineTester tester; + tester.processUsingContentDescriptor("file://mldb/mldb_test_data/train-1m.csv.lz4", blockSize, 100000 /* maxLines */); + tester.validate(); + } + } + } + } + } + } + +#if 0 + SECTION("blocked filter stream") { + ForEachLineTester tester; + tester.processUsingBlockedStream("file://mldb/testing/MLDB-1043-bucketize-data.csv"); + tester.validate(); + } +#endif +} diff --git a/utils/testing/lexical_cast_test.cc b/utils/testing/lexical_cast_test.cc index 932648696..359fff942 100644 --- a/utils/testing/lexical_cast_test.cc +++ b/utils/testing/lexical_cast_test.cc @@ -116,6 +116,10 @@ TEST_CASE("to string") CHECK(do_lexical_cast(123.456) == "123.456"); CHECK(do_lexical_cast(-123.456) == "-123.456"); CHECK(do_lexical_cast(1.234567890123456789) == "1.2345678901234567"); + CHECK(do_lexical_cast(45000.0) == "45000"); + CHECK( lexical_cast(45678.90) == "45678.9"); + CHECK( lexical_cast(0.00045) == "0.00045"); + CHECK( lexical_cast(1.00045) == "1.00045"); CHECK(do_lexical_cast(INFINITY) == "inf"); CHECK(do_lexical_cast(-INFINITY) == "-inf"); CHECK(do_lexical_cast(NAN) == "nan"); @@ -144,6 +148,7 @@ TEST_CASE("to string") CHECK( lexical_cast(123.456f) == "123.456"); CHECK( lexical_cast(-123.456f) == "-123.456"); CHECK( lexical_cast(1.234567890123456789f) == "1.2345679"); + CHECK(do_lexical_cast(45000.0f) == "45000"); CHECK(do_lexical_cast(float(INFINITY)) == "inf"); CHECK(do_lexical_cast(float(-INFINITY)) == "-inf"); CHECK(do_lexical_cast(float(NAN)) == "nan"); diff --git a/utils/testing/mldb_catch2.h b/utils/testing/mldb_catch2.h new file mode 100644 index 000000000..14737fa22 --- /dev/null +++ b/utils/testing/mldb_catch2.h @@ -0,0 +1,39 @@ +#pragma once + +#include "catch2/catch_all.hpp" +#include "mldb/arch/exception.h" + +// Save the Catch2 CHECK_THROWS macro... +#define CATCH2_CHECK_THROWS(...) INTERNAL_CATCH_THROWS( "CHECK_THROWS", Catch::ResultDisposition::ContinueOnFailure, __VA_ARGS__ ) +#define CATCH2_REQUIRE_THROWS(...) INTERNAL_CATCH_THROWS( "REQUIRE_THROWS", Catch::ResultDisposition::Normal, __VA_ARGS__ ) + +// ...and replace it with our own that disables exceptions +#undef CHECK_THROWS +#define CHECK_THROWS(...) do { MLDB_TRACE_EXCEPTIONS(false); CATCH2_CHECK_THROWS(__VA_ARGS__); } while (0) + +#undef REQUIRE_THROWS +#define REQUIRE_THROWS(...) do { MLDB_TRACE_EXCEPTIONS(false); CATCH2_REQUIRE_THROWS(__VA_ARGS__); } while (0) + +#define BOOST_CHECK_EQUAL(x, y) CHECK(x == y) +#define BOOST_CHECK(x) CHECK(x) +#define BOOST_CHECK_GT(x, y) CHECK(x > y) +#define BOOST_CHECK_LT(x, y) CHECK(x < y) +#define BOOST_CHECK_GE(x, y) CHECK(x >= y) +#define BOOST_CHECK_LE(x, y) CHECK(x <= y) + +#define BOOST_REQUIRE_EQUAL(x, y) REQUIRE(x == y) +#define BOOST_REQUIRE(x) REQUIRE(x) +#define BOOST_REQUIRE_GT(x, y) REQUIRE(x > y) +#define BOOST_REQUIRE_LT(x, y) REQUIRE(x < y) +#define BOOST_REQUIRE_GE(x, y) REQUIRE(x >= y) +#define BOOST_REQUIRE_LE(x, y) REQUIRE(x <= y) + +#define BOOST_AUTO_TEST_CASE(name) TEST_CASE(#name) + +namespace boost { + namespace unit_test { + struct test_suite { + test_suite(const char * name = "") { } + }; + } +} diff --git a/utils/testing/newline_splitter_test.cc b/utils/testing/newline_splitter_test.cc new file mode 100644 index 000000000..7aa315f91 --- /dev/null +++ b/utils/testing/newline_splitter_test.cc @@ -0,0 +1,82 @@ +/* for_each_line_test.cc + Wolfgang Sourdeau, 28 August 2014 + Copyright (c) 2014 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Test for_each_line +*/ + +#include "mldb/utils/testing/mldb_catch2.h" +#include "mldb/utils/block_splitter.h" +#include "mldb/vfs/filter_streams.h" +#include "mldb/utils/coalesced_range.h" + +using namespace std; +using namespace MLDB; + +TEST_CASE("split newlines") +{ + const auto & splitter = newLineSplitter; + + for (auto filename: { "file://mldb/testing/MLDB-1043-bucketize-data.csv"}) { + filter_istream stream(filename); + + std::vector lines; + std::string withNewLines; + std::string withDosNewLines; + + while (stream) { + std::string line; + std::getline(stream, line); + lines.push_back(line); + withNewLines += line + "\n"; + withDosNewLines += line + "\r\n"; + } + + // Make sure the block padding is respected + withNewLines.reserve(withNewLines.size() + splitter.requiredBlockPadding()); + withDosNewLines.reserve(withDosNewLines.size() + splitter.requiredBlockPadding()); + + auto testSplitter = [&] (size_t blockSize, const char * data, const char * end) + { + int lineNum = 0; + auto checkLine = [&] (const std::string & line) + { + CHECK(line == lines[lineNum]); + ++lineNum; + }; + + const char * p = data; + + auto currentState = splitter.newState(); + TextBlock block; + + for (; p < end; p += blockSize) { + // Add a new block + block.add(p, std::min(p + blockSize, end)); + bool isLastBlock = p + blockSize == end; + + auto [found_split, skip_to_end, skip_separator, newState] = splitter.nextRecord(block, block.begin(), isLastBlock, currentState); + if (!found_split) continue; // No newline, we need a new block + currentState = std::move(newState); + auto newline_pos = block.begin() + skip_to_end; + CHECK(newline_pos[skip_separator-1] == '\n'); + std::string line = block.to_string(block.begin(), newline_pos); + block.reduce(newline_pos + skip_separator, block.end()); + + checkLine(line); + } + }; + + for (auto blockSize: { 1, 5, 8, 11, 17, 231, 1024 }) { + SECTION("blockSize " + std::to_string(blockSize)) { + SECTION("Unix line endings") { + testSplitter(blockSize, withNewLines.c_str(), withNewLines.c_str() + withNewLines.size()); + } + SECTION("DOS line endings") { + testSplitter(blockSize, withDosNewLines.c_str(), withDosNewLines.c_str() + withDosNewLines.size()); + } + } + } + } +} diff --git a/utils/testing/parse_context_test.cc b/utils/testing/parse_context_test.cc index 25e1e53ba..6460814f9 100644 --- a/utils/testing/parse_context_test.cc +++ b/utils/testing/parse_context_test.cc @@ -33,7 +33,7 @@ using namespace std; using boost::unit_test::test_suite; -#if 0 +#if 1 BOOST_AUTO_TEST_CASE( test_float_parsing ) { @@ -615,7 +615,12 @@ BOOST_AUTO_TEST_CASE( test_csv_data ) vector > reference; for (unsigned i = 0; i < nchunk_sizes; ++i) { - BOOST_CHECK_NO_THROW(test_csv_data_size(chunk_sizes[i], reference)); + try { + test_csv_data_size(chunk_sizes[i], reference); + } catch (const std::exception & exc) { + cerr << "exception on chunk size: " << chunk_sizes[i] << ": " << exc.what() << endl; + BOOST_CHECK_EQUAL(exc.what(), ""); + } } } diff --git a/utils/testing/parse_context_test_data.csv b/utils/testing/parse_context_test_data.csv new file mode 100644 index 000000000..f77de8fa0 --- /dev/null +++ b/utils/testing/parse_context_test_data.csv @@ -0,0 +1,10000 @@ +"aaa","aaaaaaa_aaa","aaaaaaa_aaaaa","aaaaaaa_aaaa","aaaaaa_aa","aaaaaaaaaa_aaaa","aaaaaa" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,0.00,"0000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,0.00,"0000A000","AAAA" +"00,000","000,000","aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,0.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,0.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,0.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,0.00,"0000A000","AAAA" +"000,000","00,000","aa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,0.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,0.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,0.00,"0A00000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,00.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0000A000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A000A000","AAAAAAAA" +"000,000","00,000","aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","Aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAA" +"000,000","00,000","aaaaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAAAAAA" +"000,000","00,000","aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA" +"00,000","000,000","aaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA" +"000,000","00,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A00A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000A000","AAAAAAAA" +"00,000","00,000","aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"AA00A000","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,00.00,"AA000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"AA00A00A","AAAA" +"000,000",,"aaaaaaaaa0@aaaaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa00@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A00A0AA0","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,00.00,"A00A0AA0","AAAA" +"00,000",,"Aaaaaa_aaaAaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A00A0AA0","AAAA" +"00,000",,"aaaaaaa0000@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A00A0AA0","AAAA" +"00,000",,"a-aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"A00A0AA0","AAAA" +"000,000","00,000","aaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A000A00","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"A00A00AA","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000AA00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A000AA00","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000000","AAAAAAAA" +"000,000","000,000","aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000A0A","AAAAAAAA" +"000,000","000,000","aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000A0A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaaaa@aaaa.aaaaaa.aa",00/00/0000 0:00:00AA,00.00,"000AA000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A00A","AAAA" +"00,000","000,000","aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000000","AAAAAAAA" +"00,000",,"aaaaa.aaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"00000000","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A0A0AA0","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A0A0AA0","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"A000000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A000000A","AAAA" +"00,000","00,000","aaaaa@aaa.aaa",00/00/0000 00:00:00AA,00.00,"A000000A","AAAAAAAA" +"00,000",,"Aaaaaa.Aaaa@aa.aaaa.aaa",00/00/0000 00:00:00AA,00.00,"A000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"A000000A","AAAA" +"000,000","000,000","aaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,00.00,"00000000","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaa@aaaaaa.aa",00/00/0000 0:00:00AA,00.00,"000A0A0A","AAAA" +"0,000",,"aaaa@aaaaaa.aa",00/00/0000 0:00:00AA,00.00,"000A0A0A","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A00A","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"0000000A","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,00.00,"A0000A00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","0,000","Aaa.Aaaaaa@aaaaaa-aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A000","AAAAAAAA" +"00,000","000,000","aaaaaaa.aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,00.00,"0000A00A","AAAA" +"00,000",,"aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,00.00,"0A0AA000","AAAA" +"00,000",,"a.aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"a.aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,00.00,"AA000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"AA000000","AAAA" +"00,000",,"Aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAAAAAA" +"00,000","000,000","a.aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaa.aa",00/00/0000 00:00:00AA,00.00,"0A0A00AA","AAAA" +"00,000",,"aaaaa-aa@aaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A0A00AA","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"000,000","000,000","aaaaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaa-aaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"00,000","000,000","aaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A0A00AA","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A00A","AAAA" +"000,000",,"aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"AA000A0A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaa.aaaaaa@aaa.aa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAAAA" +"000,000","00,000","aaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aa.aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000","000,000","aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAA AAAA AAAAA" +"000,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"0,000","000,000","aaaaaaaaaa@aa.aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA0A0A00","AAAAAAAA" +"0,000",,"aaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A0A00","AAAA" +"0,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A0A00","AAAA" +"0,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A0A00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","Aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000","000,000","a_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000","000,000","a_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000","000,000","a_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,000.00,"A00A0AA0","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAA" +"000,000",,"aaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa.a@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaa_aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaaa.aaaaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaa@aaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaa@aaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaa@aaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"000AA0A0","AAAAAAAA" +"00,000",,"aaaaa000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"00,000","000,000","aaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +0,,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","Aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"Aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaaaa.aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000","00,000","aaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAAAAAA" +"00,000","00,000","aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A00A0000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00A00A","AAAA" +"000,000","00,000","aaaaa@aaaa.aa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAA" +"0,000","00,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000","000,000","aaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"00,000","00,000","aaaa.aaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAAAAAA" +"000,000",,"aaaaaaa_aaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000",000,"000aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00000A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAA AAAA AAAAA" +"00,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"00,000",,"aaaaa@aaa.aa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AA0A0","AAAAAAAA" +"00,000",,"aaaaaa@aaa-aa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A00A","AAAA" +"00,000","00,000","aaaaaaaaa@aa.aa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAAAAAA" +"000,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000",,"aaaaa0aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000","000,000","aaaaaa0aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa_aaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAA" +"000,000","00,000","aaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000A00","AAAA" +"000,000","00,000","aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@000.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAAAAAA" +"000,000",,"AaaaaA@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000","00,000","aaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0AA0A0","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAA" +"00,000","00,000","aaaaaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000AA0A","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"000A0AAA","AAAA" +"000,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","000,000","aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000000","AAAA" +"00,000",,"aaaaa.aaaaa@aaaa.aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA000000","AAAA" +"00,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"a_a_@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000","00,000","aaaa_aaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAAAAAA" +"00,000",,"aaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaa_aa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaa000aa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAAAAAA" +"000,000","00,000","aaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","Aaaa.Aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaa.a.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","Aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","0,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa.a.aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAA" +"00,000","000,000","aaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAAAAAA" +"000,000","00,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A0AA00A","AAAAAAAA" +"000,000","0,000","aaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A0AA00A","AAAAAAAA" +"000,000","00,000","Aaaaa000@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000",,"a.aaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"000,000","00,000","aaaaa@aaaa.aa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAAAAAA" +"000,000","000,000","aaaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000000A","AAAAAAAA" +"00,000","00,000","aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"000A0AA0","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaaaa.aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"000,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"a0_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA00","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"Aaaa_Aaaaaaaa@Aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"AAaaaaaa@aaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000","00,000","aaaaaaa.aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aa.aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAA" +"000,000","0,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000","00,000","aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaa.aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa0000@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAA" +"00,000","00,000","aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAAAAAA" +"00,000","00,000","aaaaa.aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"Aaaaa.Aaaaa@aa.aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A00","AAAA" +"00,000","000,000","aa00@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A00","AAAA" +"000,000",,"a.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000A00","AAAA" +"00,000",,"aaaaaaaaa.aaaaaaa@aaaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"A00AAAA0","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaa@aa-aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A00AA","AAAA" +000,000,"a.aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaa@AaaaAaa.aa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"00,000","00,000","aaaaaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA0A0000","AAAAAAAA AAA AAAAAAA" +"000,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"Aa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000AA0A","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000AA0A","AAAA" +"000,000",,"aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","0,000","aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaa-aaaaaaa@aaa.aaa.aa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAA AAAA AAAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"000,000","000,000","aaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00AA","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000","000,000","Aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A00A0A00","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A00A0","AAAA" +"00,000","00,000","Aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"000,000",,"aaaa_aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA00A00A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","AAAAAAAAAA@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"000,000","000,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"000,000","00,000","aaaaaaaaaa.aa@0.aa",00/00/0000 0:00:00AA,000.00,"A0000A0A","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA" +"000,000",,"Aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"0,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0000A00A","AAAA" +"00,000",,"aaaaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000AA0A","AAAA" +"000,000","00,000","aaaaaa_000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000","0,000","AAAAAAAA@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A000","AAAA" +"000,000",,"aaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A0A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa@aaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0000AA0A","AAAAAAAA" +"000,000",,"aaaa_aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAAAA","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00AA0A","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,000.00,"AA000000","AAAA" +"000,000","000,000","aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00000A","AAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00000A","AAAA" +"00,000",,"aaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00000A","AAAA" +"00,000","00,000","aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaa.aaaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@0aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000","000,000","aaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0A000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"a_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"a.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000","000,000","aaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaaaa@aa.aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"000,000",,"aaaa0@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAA" +"000,000","00,000","aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAA" +"000,000","00,000","aaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"0A0A0A00","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aa.aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"000,000","00,000","aaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"Aaaaa_A_Aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0A00","AAAA" +"00,000","000,000","aaaaa_aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"000,000","000,000","aaaa_a00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA" +"000,000","000,000","a.aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","0,000","aaaaaa@aaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaa.aaaaaaa-aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","0,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A00AA0A0","AAAAAAAA" +"000,000","000,000","aaaaa0@aaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0000A00A","AAAA" +"000,000",,"a.aaaaaaaa@a0aaa0aaa.aa",00/00/0000 00:00:00AA,000.00,"AA00AA00","AAAA" +"00,000",,"aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00000A","AAAAAAAA AAA AAAAAAA" +"000,000","0,000","aaaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaa@AAaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000","0,000","aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaa@aaaaaa.aa.aa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaa@aaaa.aa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000","00,000","Aaaa.Aaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaa_aaa00@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA000000","AAAAAAAA" +"000,000",,"aaaaa00@aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"000AAA00","AAAA" +"000,000","000,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"0,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"0,000","00,000","aaa00a@aaa.aaa",00/00/0000 00:00:00AA,000.00,"00000A00","AAAAAAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"Aaaaaaaa.Aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0AA00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000","0,000","aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAAAAAA" +"0,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"0A0AA0A0","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAA" +"00,000","00,000","aa_aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAAAAAA" +"000,000","00,000","aaaaaaa00@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAA AAAA AAAAA" +"000,000",,"Aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"000,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAA" +"0,000",,"aaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000","00,000","aaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"AaaaaaaAaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAA" +"000,000","000,000","AaaaaaaAaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaaaaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000",,"aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000A00","AAAAAAAA" +"00,000",,"aaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0000AA00","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","0,000","aaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaa0@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000AA00","AAAA" +"000,000","000,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","0,000","AAAAAAA_AAAAA@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaa.aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","0,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","a_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaa.aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A00A","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A00A","AAAA" +"0,000","0,000","aaaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A00A","AAAAAAAA" +"0,000",,"aaaaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A00A","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00A00A","AAAAAAAA" +"000,000",,"aa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00A00A","AAAA" +"000,000",,"aaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00A00A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00AA00","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaa_aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000","000,000","aaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaa_aaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaa.aaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa.aaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaa.aaaaaaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa.aaaaa-aaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaa@aaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa.aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa-aaaaaa.aaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaa.aaaaa-aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaa_00_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000","000,000","aaaaaa.aaaa@aaaa.aa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaa.aaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaa.aaaa@aa.aa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000","000,000","aaaaa_aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaaaaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA0A00A0","AAAA" +"000,000",,"aaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000","0,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAAAAAA" +"000,000",,"aaaaa_aa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"Aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAA" +"0,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000A0A","AAAA" +"000,000",,"aaaa_aaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000","000,000","aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","0,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaa_aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA000000","AAAA" +"00,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000A0A","AAAA" +"000,000",,"aaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000","00,000","aaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaa@aaaa.aaaaa.aa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaa.aaaaa.aa.aa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000","00,000","aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00AA000","AAAA" +"000,000","00,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"00,000",,"aaaaaa0@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"00,000","000,000","aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"00,000","00,000","aaaaaaaa.aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAAAA" +"0,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"0,000",,"aaaa0000@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"0,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"0,000",,"aaaaaaaaaaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"0,000","000,000","aaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAAAAAA" +"0,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"0,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"0,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000000","AAAA" +"0,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAAAAAA" +"000,000","000,000","aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAAAAAA" +"000,000",,"aaaaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"000,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAA" +"000,000",,"aaaaaaaa000@Aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAA" +"00,000",,"aaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAA" +"00,000",,"aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAA" +"00,000","00,000","aaa0aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"000AA00A","AAAA" +"00,000","000,000","aaaaaaa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AA00A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A000","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00000A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"0,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAAAAAA" +"00,000","000,000","aaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaa.aaaaaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"AA00A000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00AA00","AAAA" +"00,000","00,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A00AA00","AAAAAAAA AAA AAAAAAA" +"00,000","0,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAAAAAA" +"000,000","000,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"Aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"000A000A","AAAA" +"00,000",,"aaaaaaaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,000.00,"0000A000","AAAA" +"00,000",,"a.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A000","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000",,"aaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAA" +"00,000","000,000","aaaaaaa.aaaa@aaaa.aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000000","AAAA" +"0,000",,"aaaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","Aaaaa-aa00@aaaaaa.aa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","a_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"00,000","0,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00AA00A","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"0,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000","0,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"000,000","000,000","AAAAAAAAAA@AAAAA.AAA",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"00,000","0,000","aaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,000.00,"AA000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000AA00","AAAAAAAA" +"00,000",,"aaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000A00","AAAA" +"00,000",,"aaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaaa-0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A0A0A00","AAAA" +"000,000",,"aaaaaaaaaaaaaaa-0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0A0A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaa_aaaaa_aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000000A","AAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"0,000",,"aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAAAAAA" +"0,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000A0A","AAAA" +"000,000","00,000","aaaaaa_@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000","00,000","Aaaaa00@aa.aaa",00/00/0000 00:00:00AA,000.00,"0000AA0A","AAAAAAAA" +"00,000",,"AaaaaaAaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000AA0A","AAAA" +"00,000","00,000","Aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000AA0A","AAAAAAAA" +"00,000","000,000","AaaaaAaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000AA0A","AAAAAAAA" +"00,000",,"AAAAAAA@AAAAA.AA.AA",00/00/0000 00:00:00AA,000.00,"0A00AA00","AAAA" +"00,000","00,000","AAAAAA.AAAAAAAA@AAAAAA.AAA",00/00/0000 00:00:00AA,000.00,"0A00AA00","AAAAAA AAAA AAAAA" +"00,000",,"AAAAAAAA@AAAAA.AA.AA",00/00/0000 00:00:00AA,000.00,"0A00AA00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"0000AA0A","AAAAAAAA" +"00,000",,"Aaaaa.Aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000AA00","AAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"AAAAAAAAAAAAAA@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000","000,000","a.aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"Aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaaa0@aaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"00,000",,"aaaaaa_aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,000.00,"00000000","AAAA" +"000,000","000,000","aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,000.00,"0A0AAA0A","AAAAAAAA" +"00,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,000.00,"A000AA00","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaa@aaa-aa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","Aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","00,000","a_aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"000,000",,"aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00A00A","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A00A0","AAAA" +"000,000","00,000","Aaa.Aaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AA0AA","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A00A0","AAAAAAAA" +"0,000",,"aaaaaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,000.00,"000A0AA0","AAAA" +"000,000",,"aaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA00","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000","00,000","aaaaaaaa_0@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"00,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000A00A","AAAA" +"000,000",,"aaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000AA0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000000A","AAAA" +"00,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"000,000",,"aaaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"00,000",,"aaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"00,000",,"aa_aaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"00,000",,"aa0aa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000",,"a_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"00,000","00,000","aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0000","AAAAAAAA" +"00,000",,"aaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00A000","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000A0000","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"aa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"a_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00AA00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"000AAA0A","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"00,000","0,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaa_aaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","00,000","Aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00000A","AAAA" +"000,000",,"aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA00000A","AAAA" +"000,000","00,000","aaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000","000,000","a0aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaa0a@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000A00","AAAA" +"00,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00AA00A","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00AA00A","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00AA00A","AAAA" +"00,000",,"aaaaaaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA00","AAAA" +"00,000","000,000","aaaa.aa.a000000@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000",,"aaaaa.aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000",,"aaaa.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"00,000",,"aaaaaaa.a.aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00AA0A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00A0A0A","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A00A0A0A","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A00000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0AA0","AAAA" +"00,000",,"aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"AA000000","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0000A000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAA" +"00,000",,"aaaaa.aaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000",,"aaaaaa.a.aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000",,"Aaaaaa.Aaaaa@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000","000,000","aaaaaaa000a@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAAAAAA" +"00,000",,"AAAAAAA@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A000AA0A","AAAA" +"000,000","00,000","aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A0A0AA0","AAAA" +"000,000",,"AaaaaaaaAaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000A00","AAAA" +"000,000","00,000","aaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","0,000","aaaaa0aa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAA" +"000,000","000,000","aaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000","000,000","a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"0A000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,000.00,"00000A0A","AAAA" +"000,000","000,000","AAaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,000.00,"A0000000","AAAAAAAA" +"0,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"Aaaaaa.Aaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +000,"00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"Aaaaaaa.Aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaa_aaaaaa-aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaa_aaaaa-aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaa.aaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000","00,000","aaaaaaaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000",,"Aaaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaa_aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000","000,000","aaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000","0,000","aaaaaa_aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"000,000",,"aaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"a00aa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"000,000","000,000","aaaa_aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"000,000","000,000","aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000",,"a0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA000","AAAA" +"000,000",,"aaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","00,000","aaaaa.a.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0AAA","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"00,000","00,000","aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaa-aaaa.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","0,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"Aaaaaaaa.Aaaaaaaaa@AAAAAAAAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"AAaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","000,000","Aaaa_Aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"Aaaa.Aaaaaaaaa@AaaaAaaaaAaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"AaaaaA@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAAAAAA" +"00,000",,"Aaaaaaa.Aaaaaaa@AaaaaAaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","000,000","aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","000,000","aaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A00A","AAAAAAAA" +"00,000",,"AAaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"Aaaaaa.Aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"000,000",,"a.aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaaaa.aaa.aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000","000,000","aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAAAAAA" +"000,000",,"a.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","000,000","Aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000",,"aaaaaa@aaaaaaa0.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","000,000","aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000",,"aaaa_aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"00,000",,"aaaa000000@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","000,000","Aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAAAAAA" +"000,000",,"Aaaaaaaa.aaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAA" +"00,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A0A","AAAA" +"000,000","000,000","aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000","00,000","AAAAAAAA.A.AAAAAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000",,"AAAAA.A.AAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAAAAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"000,000",,"aa_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA00","AAAA" +"00,000","000,000","aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","0,000","aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","AAaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0AA0","AAAAAAAA" +"00,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","00,000","aaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa_a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000","000,000","Aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A0AAA","AAAAAAAA" +"0,000","000,000","aaaaa.aaaaa0@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAAAAAA" +"000,000",,"aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaaa_000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"a_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000","00,000","aaaaaa.aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000","000,000","aaaaaaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaa0@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A0AA0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","00,000","a.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"Aaaaaaaa.aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00AA0AA","AAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0A000A","AAAA" +"00,000",,"aaaaa.aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00AA0AA","AAAA" +"00,000",,"aaaa.aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00AA0AA","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00AA0AA","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A0A","AAAA" +"00,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"00,000","000,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"Aaa_Aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAAAAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000","000,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaaaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaa@aaaaaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","0,000","aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaa@aaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","000,000","aaa0000000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa_0aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A00","AAAAAA AAAA AAAAA" +"000,000","00,000","AAaaaaaaaa@AaaaAaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaa0@aaaaaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","AAA0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","Aaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA AAA AAAAAAA" +"000,000","0,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAA" +"00,000",,"aaaaaaa_a_aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAA" +"00,000","00,000","aaaa_aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000",,"Aaaaaa.Aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"00,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"00,000",,"Aaaaaaaaaa.Aaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aa00aaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaa_aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"a0a0@aaaaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaa_a_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaa_aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaaaaa.a.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0AA0","AAAA" +"00,000",,"aaa0aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"000,000",,"aaaaaaaa.aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000","0,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00AA","AAAAAAAA" +"000,000",,"AAAAAA.AAAAAA@AAAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000","00,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"00,000",,"AAAaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000","000,000","aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"00,000",,"aaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0AA0","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"Aaaaaaa@AaaaaAaaaAaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"0,000",,"aaaaaaaa.aaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A00A0","AAAA" +"0,000","00,000","aaaaaaa.aaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A00A0","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"0,000","00,000","aaaaaaaaa.aaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A00A0","AAAAAA AAAA AAAAA" +"0,000","00,000","aaaaaa.aaaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A00A0","AAAAAAAA" +"000,000","000,000","aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +000,,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"0,000","000,000","aaaaaaa.aaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A00A0","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AAA00","AAAAAAAA" +"000,000","00,000","aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","000,000","aaaaa.aaaaaaa@a-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"000,000","000,000","aaa0aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"AAaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000","00,000","aaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AA00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000","00,000","aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAAAAAA" +"00,000",,"aaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000","00,000","aaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000","000,000","aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000",,"aaaaa00a@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaa_aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A00A","AAAA" +"000,000","000,000","aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaa.a.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAAAAAA" +"000,000","0,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","Aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","000,000","aaaa_aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaa.aaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"AAaaaaaa@aaaaaaaaaa.aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaa_aa_aaaaaaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","00,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000","000,000","aaaaa-aaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaaaaa_aa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","000,000","aaaaaa_aaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","00,000","AAaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaa.aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaa-aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000","000,000","aaaaaa.aaaaaaa@aa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaa_aaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaaa0a_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","AaaaaaAaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaa-aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaa.aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"Aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"Aaaaaaa.Aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000","000,000","Aaaa.Aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"0,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"000,000",,"aaa.aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaaaaa.aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaa.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","0,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaa.aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"a.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaa0aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000","00,000","aaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAAAAAA" +"00,000","00,000","aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAAAAAA" +"00,000",,"aaaaaa.a.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000","00,000","aaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"000,000",,"aaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"00,000",,"aaaaaa.aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","Aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"AAAAAAAA000@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","Aaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa.a.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"00,000",,"aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0000","AAAAAAAA" +"000,000","00,000","aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaaa@000.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaaa000@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A000A","AAAA" +"000,000","000,000","aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"00,000","00,000","AaaaaaaaaAA00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000","00,000","aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAA" +"00,000",,"aaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaa_aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"AAAaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00AA","AAAA" +"00,000","00,000","aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"000,000",,"Aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaaa.a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"AAAAAAAA@AAA.AAA",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A00A","AAAA" +"00,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaa_aaaaa@aaaaaaa-aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"0,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"aaaaa_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaa_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0000","AAAA" +"000,000","00,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"00,000","00,000","Aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"00,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"00,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0A00","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A00AA","AAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaa@aaaaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"0,000","00,000","aaaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","00,000","Aaaaaaaaa.Aaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"0,000",,"aaaa.aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"0,000",,"a0aaaaaaaaaa00a0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000","00,000","aaaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000",,"aaaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAA" +"00,000",,"aaaaaaa-00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"Aaaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","a@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaa.aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa0aa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000",,"aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000","00,000","aaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A000A","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A000A","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"Aaaaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"Aaaa.Aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"Aaaaaaaaaaa.Aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","Aaaaa.Aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000",,"aaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000","00,000","aaaaa@aaaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"aaaaaaa.a.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","00,000","aaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0AA0","AAAAAAAA" +"000,000",,"aaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"Aaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaa_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaa0@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000","00,000","aaaaaaaaaa@aaa0000.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"000,000","00,000","aaaaa.a.aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0AA0A0","AAAAAAAA" +"00,000","00,000","aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A0AA0","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa_aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa_aaaaaaaa-aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","00,000","Aaaaaaaaa_Aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaa_aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","0,000","aaaaaa_aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaa_aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa_aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"Aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"AAaaaaaaa@aaaaaaa-aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000","000,000","aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000",,"aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaa_aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"AAaa@AaaaaAaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"Aaaaa.Aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AAA00","AAAA" +"000,000",,"aa00aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A00","AAAA" +"00,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaa_aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aAaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","0,000","aaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaaaaa00@a0a.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaa.aaaa@aaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"Aaaa.AAaaaa@aaaaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa&aaaaa@0aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAA" +"00,000","00,000","aaaaa.aaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaa00@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"AAAAAAA@AAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"Aaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"AAaaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"Aaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000","000,000","aaa_aaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","000AA0A0","AAAAAAAA" +"00,000","000,000","AaaaaaAAaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0A0","AAAAAAAA" +"00,000","000,000","aaaa.a.aaaaaaa-aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0A0","AAAAAAAA" +"00,000","00,000","aaaaaa0aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0A0","AAAAAAAA" +"00,000",,"Aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0A0","AAAA" +"0,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","00,000","aaaaa.aaaaaaa@aaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","Aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0000","AAAA" +"00,000","0,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAAAAAA" +"000,000",,"Aaaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","000,000","aaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","000,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","000,000","Aaaaa.Aaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","000,000","aaaaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000",,"aaaaaaa0@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAA0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAA0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAA0A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaa.0@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000","000,000","aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"a0aaaaaaa0a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","000,000","aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000","00,000","aa00@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000","00,000","aaaaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAAAAAA" +"00,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaa@aaaaa-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","000,000","aaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000","00,000","aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000","00,000","aaaaa_aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@AAAAA.AAAAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","00,000","aaaaaaaaaa_000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000","00,000","a_aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAAAAAA" +"000,000","0,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000","00,000","AAAAAAAAAAA@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"000,000",,"AAAAA00@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"000,000","000,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"00,000",,"Aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000","000,000","aaaa_aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaa@aa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaa@aaaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"AAaaaaaaaa@aaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000","00,000","aaaaa.aa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"000,000","000,000","Aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000","0,000","aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000","000,000","aa.aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"00,000",,"aaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaa-a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaa__a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAA" +"00,000","00,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"000,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AAAA0","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AAAA0","AAAA" +"000,000","00,000","aaaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0A0","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AAAA0","AAAA" +"00,000",,"aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","000,000","Aaaaaa.Aaaaa@AAAA.aa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"0,000","000,000","aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAA" +"000,000",,"aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaaaa000@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaa0aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000","000,000","aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAAAAAA" +"000,000",,"aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000","000,000","aaaaaaaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAAAAAA" +"000,000",,"aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000","0,000","aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","0,000","aaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA00A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","00,000","aaaaaaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"000,000","000,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaaaaa-aa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA000","AAAA" +"00,000","00,000","aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","0,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA000","AAAA" +"00,000",,"Aaaaa_Aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","00,000","aaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaa_aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AAA00","AAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000","00,000","aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"0,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAA" +"0,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAA" +"0,000","000,000","aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@a-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"Aaaaa.Aaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A00","AAAA" +"00,000",,"aaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A0AA0","AAAA" +"00,000","000,000","aaaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A0AA0","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A0AA0","AAAA" +"000,000","00,000","aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA AAA AAAAAAA" +"0,000",,"Aaaaaaa_Aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AAA00","AAAA" +"000,000",,"AaaaaaaA00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"0,000",,"AAaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000","000,000","aaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A000A","AAAAAAAA" +"000,000",,"aaaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaaaaa0000@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","00,000","aaaaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","00,000","aaaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0AAAAA","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"000,000","00,000","Aaaaaa.Aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","00,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000","000,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAAAAAA" +"000,000","00,000","aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAAAAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","000,000","aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000","000,000","aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaa.aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00A0","AAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA000","AAAA" +"00,000","00,000","aaa0@aaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00A0","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000",,"aaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000",,"aaaaaa000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A0A","AAAA" +"000,000","000,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","a_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"00,000",,"aaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"Aaaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"Aaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AAAA0","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"000,000","000,000","aaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A00AA","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000","0,000","aaaaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A00AA","AAAAAA AAAA AAAAA" +0,,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"Aaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"0,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"0,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"0,000",,"aaaaa.aaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"AAaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A000A","AAAA" +"00,000","000,000","aaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","000,000","a.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0AAA0A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","000,000","aaaaaaaaaa-aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAA AAAA AAAAA" +"00,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","00,000","aaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00AA00","AAAAAAAA" +"00,000",,"aaaaaa_aaa@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaa.aaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","00,000","aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaa_aaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0AAAA0","AAAA" +"0,000","00,000","aaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"0,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaaaa.aaaaa@aa.aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"000,000","00,000","aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AAA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AAA00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000","00,000","aaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"000,000",,"aaaaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"000,000",,"aaaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","00,000","aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaa.aaaaaaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A00A0","AAAAAAAA" +"00,000",,"aaaaa.aaaaaaaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A00A0","AAAA" +"00,000","000,000","aaaaaa-aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaa_0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000","00,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"000,000",,"aaaaaaaa00a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","aaa0aaaa0a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000",,"Aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","Aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"0,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A00AA","AAAA" +"0,000",,"aaaa@aaa-aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAAAAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"Aaaa.Aaaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0A000A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"Aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"AAAAAAAAAAA@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaa000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"AAAA.AAAAAA@AAAAAAAAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaa.aaaaa@aaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A0A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A0A","AAAA" +"00,000",,"aAaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A0A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","00,000","Aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaa.aaaaaa-aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA0A0","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"0,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa_000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa0000@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000","000,000","aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A0A00","AAAA" +"00,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A0A","AAAA" +"000,000",,"aaaaa_aaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"000,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000","000,000","aa00aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0AAAA0","AAAA" +"00,000",,"aaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaa_aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaa_aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.a00.aa.aa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaa_0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"Aaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","00,000","aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"Aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A00AA","AAAA" +"000,000","000,000","aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000","000,000","Aaaaa.Aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA AAA AAAAAAA" +"00,000",,"Aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000","00,000","Aaaaa.Aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000","000,000","Aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"Aaaaaaaaa_aa@Aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaa_aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A0A0A00","AAAA" +"00,000","00,000","aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","Aaaaa.Aaaaaa@00.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"000,000","000,000","aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A00","AAAAAAAA" +"000,000",,"aaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaa.aaaa@a-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@a-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa.aaaa0@a-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"00,000","0,000","Aaaaaaa.AaAaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000",,"aaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAAAAAA" +"000,000","000,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"0,000","00,000","aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"000,000","000,000","aaaa_0000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000","00,000","aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaa0aaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaa0a@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"Aaaaaaa_Aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000","000,000","aaaaaaaaa@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0000","AAAA" +"000,000",,"aaaaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0000","AAAA" +"00,000","00,000","aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","00,000","aaaa-aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000","000,000","aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A0A","AAAAAAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A0A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aa_aa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaa-aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000","000,000","Aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAA" +"0,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"0,000",,"aaaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","000,000","aaa@AaaaAaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000",,"aaaaaaa@0000aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaa0aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"000,000","00,000","aaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaaaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"0,000",,"aaaaa00@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000","000,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"0,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000","000,000","aa0000@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000","00,000","aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","000,000","aaaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000","000,000","aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"000,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","aaaaa00@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"0,000",,"aaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0A0A","AAAA" +"0,000","00,000","aaaaaaaa.aaaaa@aaaaaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A0A0A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000","00,000","aaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00AA000","AAAAAAAA" +"00,000","000,000","aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaaa@a0.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000","0,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000","00,000","aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000","00,000","aaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A00AA000","AAAAAAAA" +"00,000","00,000","aaaaaaa_aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA000","AAAAAAAA" +"000,000","00,000","aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"000,000",,"aaaaaa.a.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA0A0","AAAA" +"0,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000","00,000","aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"Aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A00A","AAAA" +"00,000","00,000","Aaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAAAAAA" +"000,000",,"aaaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AA000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA000","AAAA" +"00,000",,"aaaaaaa0@aaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000","00,000","aaaaaa@aaa-aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000","00,000","aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","00,000","aaaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","00,000","aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","000,000","aaaaaaaaaaaa.00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000","00,000","aaaaaaa0@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAAAAAA" +"00,000","000,000","aaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"000,000",,"AAAAAAAAAAAAA@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"0,000",,"Aaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"0,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0A00A0","AAAA" +"0,000",,"aaaaa.a.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0A00A0","AAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","Aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0000","AAAAAAAA" +"000,000","000,000","Aaaaaaa.Aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0000","AAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"0,000",000,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0AA","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",000,"a.a.aaaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaa0000@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"00,000","00,000","aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","Aaaa_Aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0A0AA0","AAAAAAAA" +"00,000","000,000","aaaaaa.a.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000",,"aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"aaaaa_aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A000A","AAAA" +"000,000",,"aaaaaa_a_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000","00,000","aaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A0000","AAAAAAAA" +"000,000",,"Aaaaaaaaaaaa00@Aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"Aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"Aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","000,000","aa0aa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"00,000",,"aaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAA AAAA AAAAA" +"00,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"00,000","000,000","aaaaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AAAA0","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AAAA0","AAAA" +"000,000",,"Aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000","00,000","aaaaa_aa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"000,000",,"aaaaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"000,000","000,000","a.aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAAAAAA" +"000,000","000,000","aa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000","00,000","aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"0,000",,"Aaaaaa.aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"0,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAAAAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AAA0A","AAAA" +"00,000","00,000","aaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"00,000",,"aa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaa-aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","00,000","aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"00,000",,"aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000","00,000","aaaaaa@aaaaaaa-aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"0000aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"Aaaaaaaa.Aaaaaaa@AaaaaaAaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaa@aaaaaaa-aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AA000","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AA000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0AA000","AAAA" +"00,000","000,000","aaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","0,000","aaaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"Aaaaaaa.Aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"a.aaaaaaa@aaaaaaaa.aaa.",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaa-aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa_aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A0A","AAAA" +"00,000","00,000","Aaaaaaa@aaaa-aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A00A0","AAAAAAAA" +"00,000","00,000","aaaaa_aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A00A0","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A000A","AAAA" +"000,000","000,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"00,000","00,000","aaaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","000,000","aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaa_aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaaaaa00@aaa-aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000","00,000","aaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"0,000","0,000","aaaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aa000@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","0,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"000,000",,"a_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00A0","AAAA" +"000,000",,"aaaa.aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"Aaaaaa.Aaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"00,000","00,000","aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA" +"00,000","00,000","AAAAAAAAAA@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAA AAAA AAAAA" +000,"000,000","aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"00,000",,"Aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAA" +"00,000",,"aaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"AaaaaaaaaaA@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"AAaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA000","AAAAAAAA" +"0,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaa.aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"00,000",,"Aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","AaaaAaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +000,"000,000","aaa0aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +000,,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AA0AA","AAAA" +"000,000",,"Aaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"00,000","00,000","aaaaa.aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000AAAAA","AAAAAAAA" +"0,000",,"aaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A0AAA","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000",,"aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","00,000","aaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","00,000","aaaaaa_a_aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000","000,000","aa.00_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","000,000","aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"000,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"000,000",,"a00aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000",,"aaaaaaa@aa.aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A00A000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","00,000","aaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaa00@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"0,000",,"a.a.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A00","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAAAAAA" +"0,000",,"aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000","00,000","aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00AAA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0A0AA0","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"0,000","000,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000",,"aaaaaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"0,000","000,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaa.aaaaaaaaaaaa@a-a-a.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A000","AAAA" +"000,000","000,000","aaa0000aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaaa0@aaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAA" +"00,000",,"aaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aa_aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","aaaaaa.aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","aaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","a.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaa000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"a_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","000,000","aaaa_000@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaa_000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA0A0","AAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA0A0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","000AA0A0","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA0A0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA0A0","AAAA" +"0,000","000,000","AAAAAAAA@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000","00,000","aaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaa@aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa-aaaaaaaa.aaaaaaaa@aaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaa.aaaaa@aaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aa@aaaaaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaa@aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaaaaaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa.aa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaa@aa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaa.aaaaa@aaaa.aaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaa000000@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"aaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000","0,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A0AAAA0","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAAAAAA" +0,"00,000","aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAA AAAA AAAAA" +0,"000,000","aaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +0,"000,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +0,"00,000","aaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"00,000",,"aaaa00@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAA" +"000,000","000,000","aaa__aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA0A0000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"000,000",,"aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AA00A","AAAA" +"000,000","000,000","aaa_a_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AA00A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AA00A","AAAA" +"000,000",,"aaaaaa_a_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0AA00A","AAAA" +"000,000",,"a_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AA000","AAAA" +"000,000","000,000","a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAAAAAA" +"000,000","00,000","aaaaaa__aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAAAAAA" +"00,000",,"aaaaaaaa.a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAA" +"00,000","0,000","aaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"000,000",,"aaaaa000@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A0A","AAAA" +"00,000","00,000","aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"000,000","000,000","aaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","Aaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A000A","AAAA" +"0,000","000,000","aaaaaa@aaaaa.aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaa@aaaaa.aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"0,000","0,000","aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","000AAAA0","AAAAAAAA" +"0,000",,"AAAA.AAAAAA@AAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000","00,000","aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A0A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A0A","AAAA" +"00,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000","00,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0A0A","AAAA" +"00,000","00,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa.aaaaaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAA" +0,,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAA" +"00,000","00,000","Aaaaaaaaa_Aaaaaa@AAA.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"000,000","00,000","Aaaaaa0aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000",,"aaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A000A","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","0,000","aaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"0,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00A0","AAAA" +"0,000","00,000","aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00A0","AAAAAAAA" +"000,000","000,000","aaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A00AA","AAAAAA AAAA AAAAA" +"000,000","000,000","a.aaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaa_00@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"0,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"AaaaaaAaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"00,000",,"aaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000","000,000","aaaaaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","Aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","000,000","aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000","00,000","aaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"00,000","0,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000","00,000","aaa00@aa.aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A00A","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaaA@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"0,000","000,000","AaaaaaaaaA@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"Aaaaa-Aaaa.Aaaa@AAAaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aa.aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"Aaa.Aaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAA" +"000,000","000,000","aaaaaaaaa@aa00.aa.aa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A00A00A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"000,000","000,000","aaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0000","AAAA" +"000,000","00,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"000,000",,"aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000A0A00","AAAA" +"000,000","00,000","aaaaaa__aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A00A000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AA00000A","AAAA" +"00,000",,"aaaaa_aaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","00,000","aaaaa_aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","00,000","aaaa_aa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A0A0AA0","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A000A","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","00,000","aaaaaaa_0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"0,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"0,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"0,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","000A0AA0","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"000,000","0,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"000,000",,"aaaaaa0@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaaaaa_@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"000,000",,"aaaaaaaaaaaa_@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000000A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","Aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"00,000",,"aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"00,000",,"Aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00AA00","AAAA" +"000,000","00,000","aaaa.aaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"000,000","0,000","aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"00,000","00,000","aaa0000aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"00,000","00,000","aaaaaaa_0@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"000,000","00,000","aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"0,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"Aaaaaa.Aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000","00,000","aaaaaa0a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA" +"0,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000A0A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","A00A00A0","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaa0000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAA" +"00,000",,"aaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaa.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00AA00","AAAA" +"000,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAAAA" +"00,000",,"Aaaaaaaa.Aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAA0A","AAAAAAAA" +"0,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAA" +"00,000","000,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000",,"aaaaaaaaa.aaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"0,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A00A0","AAAA" +"0,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA0A00A0","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"0,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAA" +"00,000",,"aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"000,000","000,000","aaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000",,"aa.aaaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"000,000",,"aaaa.aa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +0,,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000000A","AAAA" +"00,000","000,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"00,000","000,000","aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"00,000",,"Aaaaaaaa.Aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000","000,000","aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa00@AAA.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaa0.0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"Aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000","0,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAA" +"0,000","00,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"0,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAAAAAA" +"000,000","00,000","aaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"0,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A000","AAAA" +"000,000","00,000","aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA00","AAAA" +"00,000",,"Aaaaaa.Aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"00,000",,"Aaaaaa.Aaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"00,000",,"aaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A0A00AA","AAAA" +"00,000","0,000","aaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","000,000","aaaa_000@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaa000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"a_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aa_aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000","00,000","aaaaaa.aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"000,000",,"aaaa_aaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00AA00","AAAA" +"0,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAAAAAA" +"0,000","000,000","aaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAA" +"00,000",,"aaa.aaa-aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A0000000","AAAA" +"0,000","000,000","AAaaaaaaa@AAAAAAA.AA",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAAAAAA" +"00,000","00,000","aaaaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"00,000","000,000","aaaaaaa_aaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0A000A00","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","000AAAA0","AAAA" +"00,000","000,000","AAAAAAA@AAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A00A000","AAAA" +"000,000","000,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A000000","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0A0AA0AA","AAAA" +"00,000","000,000","AAAAAAAA0@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","0000A00A","AAAAAAAA" +"00,000",,"AAAAAAAA.AAAAAAA@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"000,000","000,000","aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAAAAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"000,000",,"aaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAAAAAA" +"0,000","000,000","aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"0,000",,"aaaaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAA" +"0,000","0,000","aaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA0A","AAAAAAAA" +"00,000","000,000","aaaa.aaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAAAAAA" +"00,000",,"aaa_aaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000AA0A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"000,000",,"aaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000A00","AAAA" +"0,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A0000A00","AAAA" +"000,000",,"aaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"000,000","00,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000A00","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000","000,000","Aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAAAAAA" +"00,000",,"aa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","00000A00","AAAA" +"000,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"0,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA000000","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAAAAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"a.a.aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A00000A","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","0000AA00","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","0000000A","AAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA00A000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","A000AA0A","AAAA" +"000,000","00,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA00A000","AAAAAAAA" +"000,000","000,000","aaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","0A000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","A0000A00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaaaaa000_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"Aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaa000000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaa.00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaa__@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaa_@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","000,000","AaaaAaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAAAAAA" +"000,000",,"aaaaaa00@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"Aaaaa00@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"0,000","000,000","AAAA0000@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","0,000","aaaaa_aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000","00,000","aaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"AaaaaaAaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"AAAAAAAAAA@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa0aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa.aaaaaa@aa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"Aa_0000@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAA" +"00,000","00,000","Aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"00,000",,"a_aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000","000,000","aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","00,000","aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","00,000","aaaaa_aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaa@aa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaa0@aa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"Aaaaa_a_aaaaaa@aa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000","00,000","aaaaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","0,000","aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaaa.a.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"0,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA00","AAAA" +"000,000","000,000","aaaaaaa000000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","AAaaaaa@aaaaaaaaaa.aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaa-aaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaa.aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"0,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000",,"aaaaaaa.a.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaa00@aaaaaaa.aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"0,000",,"aaaaaa.00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","AAAAAAAA@AAAAAAAAA.AA",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"00,000",,"aaaaaaaa.a.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"00,000",,"Aaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"a0aaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"00,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"0,000","000,000","aaaaaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaa.a@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +000,,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"00,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,"00,000","aaaaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaa.aaaaa@aaaaaaaaaaaaa.aaaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"000,000","aaaaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,"000,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"000,000","aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAA AAAA AAAAA" +000,,"aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"00,000","aaaaaaaaaa___@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAA AAAA AAAAA" +000,"00,000","aaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"0aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"00,000","aaaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"000,000","aaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAA AAAA AAAAA" +000,"00,000","aaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"a0aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"000,000","aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"000,000","aaaa.aa.00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAA AAAA AAAAA" +000,,"aaaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"00,000","aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"Aaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"Aaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaaaaaaaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +000,,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaa_aa0aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"000,000","aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA AAA AAAAAAA" +000,,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"a00aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaa_00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +000,"00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","0,000","Aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","00,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaa.aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"Aaaa.Aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaa@a0.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@a-aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A0A","AAAAAAAA" +"000,000","0,000","aaaaaaaa.000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A0A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","0,000","aaaaaa.aa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","00,000","aaa.aaaaaaa@aaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000",,"aaaa_aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaaaaa_aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000","00,000","a_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A000A","AAAA" +"000,000","000,000","aaaaaa_aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaa_aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaa_aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","00,000","aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0AA0","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","000,000","aaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000",,"AAAAAAAAAAAAAA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A000A","AAAAAAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaa.aaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AA0A0","AAAAAAAA" +"00,000","000,000","aaaa.aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AA0A0","AAAAAAAA" +"000,000","00,000","aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A000A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A000A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0A00","AAAAAAAA" +"00,000","00,000","Aaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000",,"aaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaa.aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaa.aaaaaaaaaa@aa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"Aaaaaa.Aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"00,000",,"aaaaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"0,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"AAAAAA@AAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaa.a.aaaaaaa@aa.aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"a_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","aaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"Aaaaa.AAAAAA@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"Aaaaa.aaaaa0@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000","00,000","aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","0,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","00,000","aaaaaa.a.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaa.aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaa_aaaaaaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","0,000","aaaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"AAAAA.AAAAAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaa.aaaaaa@aaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000","00,000","aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000","000,000","aa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"00,000","00,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaaa.aaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","00,000","aaaaaaa_0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaa0aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aaaaaaa.a.aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0AA","AAAAAAAA" +"00,000","000,000","aaaaaa.a.aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0AA","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"Aaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"Aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"AaaaAAaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"0,000",,"aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"a_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAAAAAA AAA AAAAAAA" +"0,000","000,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"0,000",,"aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaa00aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaa_aaa@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaa_aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"Aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"000,000","00,000","aaaaaa0aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaa_0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","0,000","aaaaaaaaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"0,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"0,000",,"aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000","00,000","aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000","00,000","aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaaa0aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaa.a.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaa_a00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaa.aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaa.aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","00,000","aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000","00,000","aaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000","000,000","aaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa00000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000","0,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"0,000",,"aaaa.aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"0,000","00,000","aaaa.aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAAAAAA" +"0,000",,"aaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaa_a00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"0,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","0,000","aaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaaaa@AAAaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","a0aaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"a-aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa_aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaa_aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaa_aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","000,000","aaaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaa.aaaa@a-aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aa.aa@aaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"a.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaa_aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaa.aaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","000,000","aaaaaaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","00,000","aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"0,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","0,000","aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"Aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","00,000","aaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa.aa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","Aaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","000,000","aaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aa.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAA" +"0,000","000,000","aaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000","00,000","aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaa_0@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAA AAAA AAAAA" +"000,000",,"AaaaaAaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAA AAAA AAAAA" +"00,000",,"Aaaaaaaa.aaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"Aaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaa_aaa_@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAAAAAA AAA AAAAAAA" +"00,000","0,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaa@aaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"0,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"0,000",,"aaaaaa_aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaa_aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA00A","AAAAAA AAAA AAAAA" +"000,000",,"Aaaaa.Aaaaaaaa-Aaaaaaa@aaaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"aaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaa_00_aaa_a00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","00,000","aa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"0,000","000,000","aaaaaaa_aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"0,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"0,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","0,000","aaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"Aaaaaaaaa_Aaaaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000","00,000","aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"0,000",,"aaaaaaaaaa@a0aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaaaaaa@a0aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"0,000",,"aaaa_aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000","00,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"000,000","0,000","AAAAAA.AAAAAAAAA@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"000,000",,"aaa00000@AAA.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaaaaa000@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000","000,000","aaaaaaa00@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"Aaaa.Aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"0,000",,"aaaaaaaaaaaaaaa_0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaa_000@aaaaaaa.aaaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaa_000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"AaaaAAaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","0,000","aaaaaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"0,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000","000,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000","00,000","AAAAAAAAAA000@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa.aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","000,000","aaaa.aaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"00,000",,"Aaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","a_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa_a0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaa_aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0A0A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaa-aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","00,000","aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aa0aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaa.a.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa_aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaa.a.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"Aaaaa0@aaaaaaa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","0,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aa.aa.aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"a_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aa@aaa.aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000",,"aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"0,000","000,000","aaaaa.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"Aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"0,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","0,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","000,000","aaaaaaa.a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaa.aaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","0,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaa_aaaaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000",,"a_aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","000,000","aaaa_aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","a.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaaa_aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","00,000","Aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"Aaaaaaaa.aaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"Aa.Aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"Aaaaaaa.Aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000","00,000","aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000",,"Aaaaaaaa.Aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"Aaaaa.Aaaaaaaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"Aaaaaa.Aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","00,000","aaaaaaaa.aaaaaa-aaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000",,"aaaa.aa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","000,000","aaaaa@a0aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000",,"aaaa.aaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaa.aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaa_aaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa_aaaaaaaa@aaaaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","AaaaAaaaaAaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000","00,000","aaa@aaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaaaaa_aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaaaaaa_@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa_0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"0,000","000,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"aaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","Aaa.Aaa@aaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","000,000","aaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaa0aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"a_aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"0,000","000,000","aaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000","000,000","aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000","000,000","aaaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","0,000","aaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"000,000","00,000","aaaaaa@aaaaaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaaaaa@aaaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A000A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"'aaaaaaaa_aaaaaa@aaaaaaaa-aaaaaaaa.aaa'",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaa_aaaaaaaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaa_aaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","00,000","aaaaaaaa_aaaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000","00,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000","00,000","aaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000","000,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"0,000","0,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","0,000","aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"AaaaaaAaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"Aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa_aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaaaa_a_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaa0@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","0,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa@aaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","00,000","aaaaaa0_aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0AA0","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","0,000","aaaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaa_aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","000,000","aaaaaaa@aa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"Aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"Aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaa_aaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaa@aa00aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"0,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAA" +"0,000",,"aaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"0,000","000,000","aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"0,000",,"Aaaaa_Aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","000,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaa.aaaaaaaaaa@aa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","00,000","aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000","00,000","aaaa_aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","000,000","Aaaaa.Aaaaaa@Aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAAAAAA" +"000,000",,"Aaaaa.Aaaaaa@Aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000",,"Aaaaaaaaaaaaaa.Aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000","00,000","aaaaaa.aaaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"0,000","000,000","aaaaaa_a00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000","000,000","aaaaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","000,000","aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaa.aaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"Aaaaa_Aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0A0A","AAAA" +"000,000",,"aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"0,000","00,000","aaaaaa.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaa_aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa.aaaaaaaa00@a-aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","a_aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000","00,000","Aaaa_Aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"Aaa.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"Aaaaaaa00@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","0,000","Aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","0,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aa_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa-aaaaaa-aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","0,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","0,000","aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","00,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaa.a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +0,"00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa_aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"a0aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","000,000","aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa_aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","000,000","Aaaaaaaa.Aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","000,000","aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaa.aaaaaaaaa@aaaaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa0a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"Aaaaa.Aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"0,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaa0000@aaaaaaa.aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"00,000",,"Aaaaaaaa_Aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"00,000",,"aaaa0000@aaaaaaa.aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"00,000",,"aaaaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaa0a@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaa0a@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"00,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00AA","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"0,000",,"AAAAA_AAAAAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaaaa@aaaa.aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAAAAAA" +"000,000","00,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaaaa.a.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaa.aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"00,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","000,000","a.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaaa.aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000",,"Aaaaaa.Aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"AAaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","00,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"00,000","0,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000","0,000","AAAAAA.AAAAAAAAA@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"000,000",,"aaa00000@AAA.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaaaaa000@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"00,000",,"0aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaaaa000000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","00,000","aaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaaa.aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000","00,000","aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0AA0","AAAAAAAA" +"000,000","00,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"AaaaAAaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAA AAAA AAAAA" +"00,000",,"Aaaaa.Aaaaaaaa@aaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaa.aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa.a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaa_000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa_0a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","000,000","aaaaa__0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","Aaaaaa.Aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","aaaaa.a.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@Aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaa_000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","000,000","aaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","00,000","aaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaa0000@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","000,000","Aaaa.Aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","000,000","aaaaaaaa_aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAA AAAA AAAAA" +"000,000","00,000","Aaaaaaaa.A.Aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"0,000","000,000","aaaa.aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","000,000","aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","0,000","aaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa0a@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa0000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaa-aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa00000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa0aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","00,000","aaaa.aa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa.aaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaa-0@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"00,000",,"aaa0@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaa-aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","000,000","Aaaa.Aaaaaaa@Aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA00A","AAAA" +"000,000","00,000","Aaaaaaa_aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","00,000","aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00AA","AAAAAAAA" +"0,000",,"A.Aaaaaa@aaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaa.aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaa.aaaaa_aaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","00,000","aaaa-aaaaa.aaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"0,000",,"AAAAAAA.AAAA@AAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A000A","AAAA" +"000,000",,"AAAAAAA_AAAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"AAAA_AAAAAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000",,"AAAAAAAA@AAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000",,"AAAAAA_AAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000","000,000","AAAAAAA@AAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAAAAAA" +"000,000",,"AAAAA_AAAAAAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000",,"AAA_AAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"000,000",,"AAAAA_AAAAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"0,000","00,000","aaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"AAAAAA_AAAAAAA@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000","00,000","aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"a00aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaa0_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AAAA0","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","Aaaaaa.aaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AAAA0","AAAAAAAA" +"000,000","000,000","aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","0,000","aaaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",000,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"Aaa.aaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"Aaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000",,"aaaaaaa-aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"0,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaa@a0aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +000,,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","000,000","aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","0,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"0,000","00,000","aaaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaa_aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","0,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaa_aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aa_aa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","0,000","aaaaaa0a0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaa000000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaa__a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000","000,000","aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","Aaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",,"aaaaa_0000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaa0-0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAA" +"000,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"0000000000@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +000,000,"00aaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","aaaaaa0@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"Aaaaaaaa.Aaaaaa@aaa-aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaa.aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"Aaaa.Aaaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","00,000","aaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaa00@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"0,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa0@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaa_a@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000","00,000","AAAAAAAAAA@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000","0,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","a.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A000A","AAAAAAAA" +"000,000","00,000","aaaaaa__aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAAAAAA" +"000,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000",,"aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"0,000",,"aaa_a_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"00,000",,"Aaaaaa_aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0AA","AAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"000,000",,"Aaaaaa.Aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","00,000","aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000","000,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAAAAAA" +"00,000","000,000","AaaaaAaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"Aaaa.Aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000","00,000","aaaaa_aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"Aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",000,"aaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0AA","AAAA" +"00,000",,"000000@aaaaaaaaa.aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0AA","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"0,000",,"aaaaa.aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aa@aaaa-aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","AAaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000","00,000","aaaaaaaa@aaa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000","00,000","aaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAAAAAA" +"00,000",,"aaaa.000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaa_aa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaa_0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa_aaaaaaaaa000@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa_aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","Aaaaaaaaa0@aaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaa_aaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"Aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +000,,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","A.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"00,000","00,000","aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"0,000","0,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A000A","AAAA" +"000,000","000,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaa000@aaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa.aaaa@aaa.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","000,000","aaaaaa_aaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"0,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","00,000","aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","00,000","aaaa_0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"000,000",,"aaaaaaaa0aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","000,000","aaaa000aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","aaaaaa@aaaaa-aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaa0000@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000","000,000","aaaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaa00a@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000","00,000","aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","000,000","aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000","00,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"Aaaaaaa0@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"Aaaaa0000000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaa-0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"AAAAA@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","000,000","AAAAA0000@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000","000,000","aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"AaaaaA@aaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","0,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",000,"aaaa000aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa0aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","Aaaaa_Aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000","0,000","aaaa0000@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"Aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAA00","AAAA" +"00,000","000,000","aaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAA00","AAAAAAAA" +"00,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa_a_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa.aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaa.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","000,000","a0_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"Aaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa00000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"a0aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","0,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaa@a.aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaa.a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@000.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000","0,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","00,000","aaa.aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000","0,000","aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaa.a.aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0AAA","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"0,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaa@aa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaa@aaaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000","000,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaa.aaaaa@aa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaa@aa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaa.0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaa@aaaa-aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaa-aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000","000,000","aaaaaaaa.aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AAAA0","AAAAAAAA" +"000,000","00,000","aaaaaaaa_00@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaa@aaaaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"a.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaa.a.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaa.Aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaa0@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa_aa_aaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa.aaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa0@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaa@aaaaaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaa@aaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaa@aaaaaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa-aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"0,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaa_@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa.aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaa_a_aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"AaaaaaAaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa_aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","000,000","aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","0,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAA AAAA AAAAA" +"000,000",,"aa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa0@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","00,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","a_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","000,000","aaaaa0aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","00,000","aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaa_aaaaaaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"a0aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"0,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaaaaa.aa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaa_aa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +000,,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +000,,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +000,,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +000,,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaa0aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAA00","AAAAAA AAAA AAAAA" +000,,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +000,,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +000,"000,000","aaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000","000,000","aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","Aaaaa.Aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaa.a.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"000,000","000,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"a00aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaa.aaaaaa-aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","00,000","aaaaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000","000,000","aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","0,000","aaa0000aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa.a@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa_aaaaaaaa_aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa.aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","0,000","aaaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000","000,000","aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000",,"aaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"Aaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"Aaaaaaa0@aaaa.aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +000,,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","Aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000",,"aa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","aaaaaaaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa_Aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa.aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","0,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaa_aa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","00,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","Aa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","00,000","Aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"Aaa.Aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaa.aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa00.00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa_aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","0,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"Aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"Aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A0A","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000","0,000","aaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"Aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","0,000","aaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaa_aaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","000,000","aaaaaaaaaa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","AAAAAAAAAAA@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","Aaaaa.Aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","00,000","aaaaa.aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","0,000","aaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","000,000","Aaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"Aaaaa.Aaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","00,000","Aaaa.Aaaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaa@aaa0000.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa0@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa_aa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa_0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aa_aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaa00aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaa_aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa_a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAA" +"000,000","00,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaa.a.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa.aaaaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaa_aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaa.aaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A000A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"000,000",,"aaaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","000,000","aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaa_0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"Aaaaaa_Aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"AAAaaaAaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","aaaaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","000,000","aaaaaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","00,000","aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAAAAAA" +"00,000","000,000","aaaa_0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAA" +"000,000","00,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa000@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"000,000",,"Aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"00,000",,"aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"a_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A0A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","000,000","aaaaaaaaaa@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"Aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"Aaaaa.aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"000,000",,"aaaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa.aaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"00,000",,"aa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAAAAAA" +"00,000","00,000","aaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAAAAAA" +"00,000",,"aa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aa.aaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaa.aaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AAAA0","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA0A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA0A","AAAA" +"000,000",,"a.a.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA0A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A0A","AAAA" +"00,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"0,000",,"aaaaaa.aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +000,,"aaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0AA0","AAAAAAAA" +000,,"aaaaaa.aaaaa@aaaaaa-aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +000,,"aaaaaa.aaaaa@aaaaaa-aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +000,,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +000,"00,000","aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +000,,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","AAAAA0AA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaaaaa_0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaaaa.aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"0,000",,"aaaaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaa.a.aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.a.aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa0@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000",,"AAaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"Aaaaa.Aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaa.aaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000","000,000","Aaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","000,000","aa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"AAAAAAA@AAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"Aaaaaa_aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","00,000","Aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"Aaaaaaaa.Aaaa@AaaaAaaaaAaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000","000,000","aaaa.aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaa000@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaa_aa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","0,000","Aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAAA0","AAAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA0A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAAA0","AAAA" +"00,000",,"aaaaaaa_aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"AAaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAAA0","AAAA" +"000,000","00,000","aaaaa_aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000",,"Aaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa_aaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000","00,000","aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa000a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaa@aaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaa-a@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"a_aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaa0000@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000","000,000","Aaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"000,000","00,000","aa_aa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"Aaaaa.aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa_aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000","000,000","aaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0A00","AAAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0A00","AAAAAAAA" +"000,000",,"aaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000","000,000","aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","00,000","aaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaaa.aaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAAA","AAAA" +"0,000",,"aaaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AA0A0","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000","00,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaa.a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaa.aaaaa@aaaaaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","00,000","aaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"AAAaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"AAaaa0@AaaaaAaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"Aaaaaaaaa.A.Aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","000,000","aaaaaa.aaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000","00,000","aaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa0000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa.aaaaaa.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000",,"aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","00,000","aaaaaaa.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA" +"00,000",,"aaaaaaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","000,000","aaaaa00@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000","0,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"AAaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AAAA0","AAAA" +"00,000",,"aa0000@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"0,000",,"aaaa_aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaa.aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000",,"aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","0,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000","000,000","aaaaa.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaa0a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"AAAAAAAAAAAAA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","0,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa00aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","00,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","0,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"Aaaaaaa.Aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaa.aaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa.aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaa.000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA0A","AAAA" +"000,000",,"aaaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000","000,000","a0000.aa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"AAAAAAA@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aa0000@aa00.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"AAAAA@AAAAAAAAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaa-000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000","000,000","Aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaa0000@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaa0a@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000",,"aaaa-aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000","0,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"a.a.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"00,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaa.aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaa0000@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"0,000","00,000","a_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","00,000","aaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa.aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"000,000",,"Aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA00A","AAAA" +"0,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","Aaaaa.Aaa.Aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","00,000","Aaaaaa.Aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"a000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaa0000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaa_00@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa0a0aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"000,000",,"aaaaa.a.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A0000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A0000","AAAA" +"00,000","000,000","aaaa_aaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa_a0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","0,000","aaaaaa.a.aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa0aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"AAAaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0AA","AAAA" +"00,000",,"aaaa0a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000","0,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaaa.Aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000","00,000","aaaa0a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaa0a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa_aaaa@aaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000",,"aaaaa.aaaa@aa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000",,"aaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000","000,000","aaa_aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"Aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaa@aaa-aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA.00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa@aaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000","00,000","aaaaaaa_a_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaaaaaa_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaaa.aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaa.aaaaaaa.aaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaa@aa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaa0000aa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"a_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","000,000","aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"0000000000@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"00,000","000,000","aaaaaa@aaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa@aaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaa_aaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaa0aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000","000,000","aaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","00,000","Aaaaa.Aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000","00,000","Aaaaaaaa_Aaa@aaaa.aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aa-aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaa00000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","00,000","aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAA AAAA AAAAA" +"0,000",,"a_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaa_aaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaaa0000@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","Aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","000,000","aaaaa00aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AA.00000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A000A","AAAAAA AAAA AAAAA" +000,"000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAAAAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"0,000","000,000","aaaaaa_000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaa_aa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAAAAAA" +"000,000",,"AAaaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaa.aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaa.aa-aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","AAAAAA@AAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaa.aaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaaaaa_0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaa.aaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","0,000","aaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"Aaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AAA","AAAAAAAA" +"00,000","00,000","Aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"000,000","000,000","AAaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000","000,000","aaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A A00000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","A A00000000","AAAA" +"00,000","00,000","a.aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A0000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAA0A","AAAA" +"000,000",,"aaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"00,000",000,"a.aaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"a.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaaa-aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa.aaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaa.aaaaa000@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaa.aa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","000,000","aaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","00,000","aaaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000",,"aa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000",,"aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","00,000","aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000",,"aaaaaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","0,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0A0","AAAAAAAA" +"00,000","000,000","aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"a.aaaaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","000,000","Aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","000,000","Aaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaa.aaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0AA","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0AA","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa_aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","Aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaa00aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000","000,000","aaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","Aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0A00","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"000,000",,"Aa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"Aaaaaa_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa00@aa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A0000","AAAA" +"000,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","00,000","a000000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","Aaaaaaa_Aaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aa_aaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaa.aaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","00,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","00,000","aaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaa_000@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",000,"000aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000","0,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","00,000","aaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA.00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA.00000000","AAAA" +"00,000","000,000","aaaaa00aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA.00000000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaaa0000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AA.00000000","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AA.00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0A0A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A000A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaa_aaaaa00@aaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"00,000",,"aaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"AaaaaaaaAaaa@AaaaaaaAaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"000,000","000,000","AAAA_AAAAAAA@AA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAA AAAA AAAAA" +"000,000",,"aa0aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000","00,000","a.a.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa-aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"Aaaaaaaa.Aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa.aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaa.aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aa.aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"AAAAAA.AAAAAAAA@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa0@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"Aaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa00@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa_aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"AAA0@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa_aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAAAAAA" +"000,000","000,000","aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000",,"aaaaaa_aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"a_a_a_a_a_0_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000","000,000","aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"0,000",,"aaaaaaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaa.aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000","000,000","aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","00,000","aa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"Aaaaaaa.A@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaa_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A00","AAAAAAAA" +"00,000",,"Aaaaaa@aaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"Aaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","Aaaaaaa_Aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","0,000","Aaaaaa.Aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","000,000","aaaaaa0a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AAA","AAAA" +"00,000",,"aaaa.aaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","00,000","aaaaa.aaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","00,000","aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","Aaaa.Aaaaa@Aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00A0","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAAA","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaa.aa-aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","0,000","aaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaa.aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000","000,000","aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaa.aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"Aaaa-Aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"00,000",,"aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaa.a.0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00AA","AAAAAAAA AAA AAAAAAA" +"000,000",,"Aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"Aaaa_Aaaaaa@Aaaaaaaaaaa.Aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA0A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"0,000",,"aaaa.aaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000","000,000","aaaaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaa@aaa-aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"00,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"AAAAA_AAAAA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa_aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa_aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaa000@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA AAA AAAAAAA" +"0,000","000,000","aaaaa000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa00@aaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","00,000","aaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaaaa@aaaa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"Aaaaa.Aaaaaa@aaaaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA000","AAAAAAAA" +"00,000","000,000","Aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","000,000","aaaaa00aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000","00,000","aaaa000aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"Aaaa.Aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"0,000",,"aaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"Aaaaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.a",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AAA0A","AAAAAAAA" +"0,000","000,000","aaaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"AaaaaAaaaAaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"Aaaaaaa.Aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000",,"aaaaaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa0a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaa0_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaa_aaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaaa-aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"Aaaaa.Aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","00,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"Aaaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"Aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"a_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"0,000",,"Aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaa.00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"0,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaa_aa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aa0aaaaaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"Aaaaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaa@aa0aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000","000,000","aaaaaa0aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"Aaaaaa.Aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0AA","AAAA" +"000,000","00,000","Aaaaa.Aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"00,000",,"aaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000","0,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAAA","AAAAAAAA" +"000,000",,"aaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","Aaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","000,000","a_aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","000,000","aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"Aaaaa.A.Aaaaaaaaa@Aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","000,000","Aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa_aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AA0","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AA0","AAAA" +"000,000",,"aaaaa_aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AA0","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"AAAAA.AAAAAA@AAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaa_a_aaaaa00@aaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"a.aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","0,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaa.a.aaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"aaaaa.aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.a.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","0,000","aaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaa-@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"0,000",000,"a.aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","Aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","0,000","aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"0,000","000,000","aaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa_aaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","aaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"AaaAaaaa_Aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","00,000","a_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"aaaa.aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"Aaaaaa.Aaaaaa@AAAaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"0,000","00,000","aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","aaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa.a.aaaaaaa@aa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaa0aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaa.aaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"Aaaaaa.Aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"AAaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aaaaaaaa-aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"0,000","00,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000","000,000","a.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000","000,000","aaaaa.aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaa.aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"Aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","0,000","aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa0aaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a.aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a.aaa.a.00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaa00_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa0aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","a_aaa_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaa00000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa0a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","000,000","aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa0@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"0aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"Aaaaaaaa.a.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","Aaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"AAA0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa_aaaaa_00@aaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa-aaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a00_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"a0aa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa.aaaaaa@a-aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aa_aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000",,"aa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaaaa.aaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAAAAAA" +"00,000","00,000","aa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"Aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","000,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0AA","AAAA" +"000,000","00,000","aaaaaaa@aa.aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa_aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","aa0aaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"0,000","000,000","AAaaaaaaa@aaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAAAAAA" +"0,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"a0aaa0aa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"Aaaaa.Aaaaaa@aaaaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"Aaaaaaaaa.Aaaaaa@aa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"AaaaaaaaaaA@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaa.aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"Aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000",,"Aaaaaaaa.Aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","00,000","aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"Aaaaa0@aaaaaaa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"0,000","00,000","aaaaaaaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","0,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"Aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"0,000",,"aaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","00,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","000,000","aaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000","0,000","aaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"000,000","00,000","aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"0,000",,"aaaaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","0,000","aaaaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa.a.aaaaa@aaaa.aaaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"00,000",,"AAAAA.AAA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"0,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000",,"aaaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"Aaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0A0A","AAAAAAAA" +"00,000","000,000","Aaaa_Aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"Aaaaaaaa_Aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa00000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"0,000","00,000","aaaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","Aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"AAAaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","00,000","aaaaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaaa_aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"Aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","Aaaaaa.Aaaaaaaaa@aaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0AA","AAAAAAAA" +"00,000","00,000","Aaaaa.Aaaaaaa@aaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0AA","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","0,000","aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"Aaaaa.Aaaaa@aaa.aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0AA","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"0,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaa0000@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaaaaaa@aaaaaaaaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"Aaaaa.Aaaaaa@aaaaaaaaa-aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"0,000","000,000","aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"0,000","00,000","aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAAAAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +000,,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa.aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaa.aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaaaaaaaaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"aaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"Aaaaaaa.Aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","00,000","aaaaaaa_0@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","00,000","aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"Aaaa_aaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","00,000","a_aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","a_aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAAAAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0AA0","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"Aaaaaaaaa.Aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00AA","AAAA" +"00,000",,"Aaaaa.Aaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaa_aaaa0000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaa_aaaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"Aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"Aaaaaa_Aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA00A","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0A0A","AAAA" +"00,000",,"aaaaaa_aaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"a.aaaaaaaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","0,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"0,000","00,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"0,000",,"aa@aaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"0,000","00,000","AAaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAAAAAA" +"0,000",,"aaaa.aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000","000,000","aaaaaaaaaaa@000.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +0,"000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAAAAAA" +"00,000","00,000","Aaaaaaa.aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAA AAAA AAAAA" +"0,000","000,000","aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"AAA.A@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaa.aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaa@aaa-aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","00,000","aaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"0,000",,"Aaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaa@aaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000","00,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AA0","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","00,000","a_aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","a_aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAA AAAA AAAAA" +"0,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaa_0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","a_aaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaaaa_000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000",,"a0aaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"000,000","00,000","a_aaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"00,000",,"Aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa0aaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a.aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a.aaa.a.00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa00_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a.a.a0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa0aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa0a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa0@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa0@aaaaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"A_Aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaa.a.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"Aaaaaaa.Aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"Aaaa_Aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaa.aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaa.a.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","000,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAAAAAA" +"00,000",,"aaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0A0A","AAAA" +"00,000",,"aaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"Aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"0,000",,"AAaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","0,000","aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","00,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000","00,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"0,000",,"aaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","Aaaa_Aaaaaa@Aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","Aaaa_Aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAA AAAA AAAAA" +"0,000","000,000","aaaaaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"0,000","00,000","aaaaaaa0000@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000","00,000","aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",000,"000aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"00,000","0,000","aaaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"000,000",,"Aaaaa.Aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaa.aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","0,000","aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","00,000","aaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","000,000","aaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","000,000","aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaa@aa-aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"Aaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"000,000",,"aaaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAAA","AAAA" +"00,000",,"aaaa_aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","000,000","aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","0,000","aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +000,"00,000","aaaaaaaa000@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +000,,"0aaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA0A","AAAA" +"000,000",,"aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"0,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaa@aaaa-aaaa-aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","Aaaaa.Aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaa000@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","aaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"Aaaaaaaa.Aaaa@AaaaAaaaaAaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"AAAAAAA00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000",,"A.aaaaaaa@Aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","0,000","aaaaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"0,000",,"Aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAAA","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa_aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaa@a-aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","00,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaa.a.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","00,000","aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaa.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaa@aaaa.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaa-aa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","000,000","aaaaaaaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","00,000","aaaaa-a.aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa.aa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"a.aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa.a.000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaa0aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa.a.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa.aaaaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"Aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","AAaaaaAAAaaaaa@aaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"000,000",,"aaaaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","Aaaa.aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000","00,000","aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA00A","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","0,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000","0,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000",,"aaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000","00,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaa00@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","0,000","aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000","00,000","aaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","aaa000@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa@aaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa_aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000","000,000","aaaaaaa0_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000",,"aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"0,000",,"aaaaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"aaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","00,000","aaaaa@aaaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaa_aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0000@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa0aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa0aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa0a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa_aaaaa_0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa_aaaaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa-aaaaaaaaa-aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa0000@aa.aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaa.aaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"a_aa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"000,000","00,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"0,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaa_aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa_aaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"Aaa_Aaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"0,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaa@aaa-aaaaa-aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaa00a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","000,000","aaaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"a_aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"0000000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaa_aaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","00,000","aa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAAAAAA" +"000,000",,"AaaaaaaaaAaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"000,000","00,000","Aaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +000,"00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AA0A0","AAAA" +"000,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaa.aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaa00aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"0,000","00,000","aaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa_aaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000","000,000","Aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","Aaaaaaaa.Aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"0,000","00,000","aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaa.aaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"0,000","000,000","aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000",,"aaaaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000",,"0aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"Aaaa.A.Aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","000,000","Aaa0aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","000,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +0,,"aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"Aaaaa.Aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"Aaa.Aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"Aaaa.Aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"a0aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"a0aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"000,000",,"AA0aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaa.aaaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"00,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"0,000",,"aaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"0,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000","000,000","AaaAa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA" +"000,000",,"aaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAAAAAA" +"00,000",,"aaaaaaa.a.aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"aaaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"Aaaaaa.Aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"00,000",,"aaaaaaa@aaaaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AA0A0","AAAA" +"000,000",,"aaaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AA0A0","AAAA" +"00,000",,"aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"AAA000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000","000,000","aaaaaa0aa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"0,000",,"aaaaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaa_0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaaa-aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaa@aaaaaa0.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaa00000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","0,000","aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaaa0000@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"AaaaaaaAaaaaAaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","00,000","Aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000","000,000","AAAAAA00@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","00,000","aaaaaa@aaaa.aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","000,000","a_aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000","000,000","aaa_aaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa@aaaaa0aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000","000,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAA" +"0,000",,"aaaaaa_aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","aaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","00,000","a.aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"AAaaaaaaaaa@AaaaaAaaaa.Aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"Aaaaaaaa.aaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaa_0@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaa.aaaaaaaaa@aaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"a0aaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"Aaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"Aaaaa.Aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","00,000","aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAAA0","AAAAAAAA" +"000,000",,"Aaaaaa.Aaaaaa@Aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0A0A","AAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaa.a.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aaa_0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","000,000","aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"0,000","000,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0AA","AAAA" +"00,000","000,000","aaa_aaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","0,000","aaaaaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"0,000","000,000","aaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaa0000_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaa_aa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","a0aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000",,"AAaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaa0aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaa-aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaaaaaaaaaa00000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","Aaaaaa.Aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaa.aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAA AAAA AAAAA" +"00,000",,"AAAAA.A.AAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaa.aaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaa0000@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"AAAaaaaaaa@aaaa-aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaa.aaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaa0000@aaaaaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"Aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaa_aa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000",,"aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaa-00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa@aa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"000,000",,"aaaaaaa@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"aaa_aaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaa-aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaaaaa.aaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaaaa.aaaaaaaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaaaaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaa.a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa0aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"Aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","00,000","aaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aa.aaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","0,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000",,"aaaaa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"Aaaaaaa0000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"A_aaaaaaa_aa0@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"0,000",,"aaaa_aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","0,000","aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000","00,000","aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","00,000","aaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000","000,000","aaaa.aaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +000,,"aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","Aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000","000,000","aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","000,000","aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaa_aaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"00,000","00,000","aaaaaaaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa00@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"0,000",,"aaaaa.aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"a_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaa.aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","000,000","aaaaaa@aaa-aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","Aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000","00,000","aaaaaa.a.aaaaaa.aa0a@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AAA","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaa.aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaa.aaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"0,000","000,000","a.aaaaaa@aaaaa-aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"AaaaaaaAAAA@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaaaa.aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"0,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa.aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa-aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa0@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa00000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa_aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa00@aaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaa.aaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA00A","AAAA" +"00,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaa_000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000","000,000","aaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaa-aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"0,000","000,000","aaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","0,000","aaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000",,"aaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"Aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaa000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","00,000","aaaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"Aaaaa.Aaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAAAAAA" +"000,000",,"aaaa.aaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","00,000","aaaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0A00","AAAAAAAA" +"00,000","000,000","aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000",,"aaaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaaa_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"Aaaaaa.Aaaaaaaaa.aa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaa0aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaa.aaaaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"Aaaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"Aaaaa.Aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","000,000","Aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"Aaaa.Aaaaaa@aa.aaaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"Aaaa.Aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa.aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","000,000","aaaaa.aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0A00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA AAA AAAAAAA" +"000,000",,"Aaaa.Aaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","Aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"0,000",,"aaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","000,000","aaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaaaaa000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000","00,000","Aaaaaa.Aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","00,000","aaaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAAAAAA" +"000,000","00,000","aaaaaaa.a.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000","00,000","Aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","00,000","aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aaaaaaaaa@Aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaa.aaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","AAAAAA0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"0,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaaaaa@aa.aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"Aaaaaaaa.Aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","000,000","aaaaa0_0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"a00000000@aaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"0,000","00,000","aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaa_aaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"Aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaaaaaa.aaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAA AAAA AAAAA" +"00,000","0,000","aaaaaa.aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaaaa.aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAA AAAA AAAAA" +"00,000","000,000","Aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A0A00","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"a.aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"a.aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000","000,000","aaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"Aaa_Aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"Aaaaa.Aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa.aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000",,"aa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000","0,000","aaaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAAAAAA" +"000,000",,"aaaaaaa.a.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"000,000","000,000","aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","000,000","AAAAAAAAAAA000@AAAAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa_aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"Aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaa-aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaa_a00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaa_a00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","aaaaa_aa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaa_0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaa0_aaaaaa00aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00A0","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaa_aaaaaaaa@aaaaa.aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000","000,000","aaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A000A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"Aaaa0Aaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000",,"aaaa-aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"Aaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaa.aaaaaaa@AAAAA.AA",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaa_aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","00,000","aaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaa00000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaaa_aaaaaaaaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"000,000","00,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"Aaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAAA","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"Aaaaa_Aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaa_aa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaa.Aaaaaaa@aaa.aaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","000,000","aaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaa@aaa.aaaaaaaa-aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","0,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAA AAAA AAAAA" +"000,000","0,000","aaaaaa.aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA AAA AAAAAAA" +"00,000",,"a.aaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000","000,000","aaaaa0@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","00,000","aaaa_a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"00,000","000,000","aaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000","00,000","a.a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"000,000",,"Aaaaa.Aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00A0","AAAA" +"000,000","00,000","aaaaaa_aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaa_aaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaa.a.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","00,000","aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","00,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0AA0","AAAAAAAA" +"00,000",,"aaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa.aaaaa-aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"a.aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"00,000",,"aaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaa@aaaaa-aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"00,000",,"aa00a0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaa_aa_aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"a_aaaa_0_aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"a_aaaa_0_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","0,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000","000,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa_@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"0,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa000000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaaa.a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa0000@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaa_a_aaaa_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa0aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAAAA","AAAAAAAA" +"000,000",,"aaa.aaaaaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa.aaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaa.aaaaaaa-aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa.aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0AA0","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"0,000","00,000","aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","000,000","Aaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"0,000",,"Aaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","00,000","aaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAAAAAA" +"000,000","000,000","aaaaaa.aaaaaaaaa@aa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"00,000",,"Aaaaaaa.Aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa.aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"AAaaaaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaa@AaaaaaAaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"AaaaaaAA@aaa.aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"AaaaaAaa@aaa.aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000","000,000","AAAAAAAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"Aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","AAAAAAA.AAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa_000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000","0,000","aaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAAA0","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aa-aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaa.aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAAAA","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aa_aaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000",,"aaaaaa0a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"00,000",,"aaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",000,"aaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"Aaaaaaa.Aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000","00,000","aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaa00a@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","aaaaaaaa.a.aaaaa@aa.aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaa@aa-aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"a0aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","00,000","AaAaaaAaaA@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"Aaa.Aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaa0aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"Aaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aa00000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA00A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"a_aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","00,000","Aaaaaaaaaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"0,000","0,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"00,000",,"a_aaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"a_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"AAaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","aaaaaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAAAAAA" +"000,000","000,000","AAAaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"0,000","00,000","a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"0,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaaa_@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA" +"000,000","00,000","aaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"000,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"a_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa.aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaa.aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaa.a.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"000,000",,"aaa_aaaaa-aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaaaa_aaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"00,000","00,000","a.aaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa_aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaa_aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaa_aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"0,000",,"aaaa_aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"aaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"00,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaa_aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AA0","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaaaaaa.aaaaaa@aa.aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","000,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"000,000","000,000","Aaaaaa_Aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"Aaaaa.Aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a.0aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaa0.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@0aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa.aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa_aaaaaaaa@aaaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.a.aaaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.a.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@0aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa_aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa-aaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa-a@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa.aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@a-aaaa.a00.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa.aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0a@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa.aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@00.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa_aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@0aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaa@a0aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.a.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaa0.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.a.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa.aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa_a_aaaaaaaaaa-aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa0aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.a.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aa.aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaa00@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaa.aaaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaa0@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaaaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa00@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAA AAAA AAAAA" +"00,000","000,000","aaaaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","00,000","aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","0,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","000,000","aaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa0@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","00,000","Aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaa_0_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa_aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000","00,000","aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"a.a.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA0A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AA0A0","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"00,000",,"aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaa.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaa.aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaa_00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0AA0","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"0,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaa00@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"a.aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaa.aaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"a_aaaa00@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaa0000@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaa-aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaa.aaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa.a@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"Aaaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa_a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"Aaaaaaa.Aaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaa_aaaaaa_000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","00,000","aaaa00a0aaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","Aaaaaa.Aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000","000,000","Aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000","00,000","aaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","00,000","aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"Aaaaaaa.A.Aaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","00,000","AaaaaaaAaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","a.aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"AAAAAAAAAAAA@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaaaaa.aaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"AAAAAAAAAA@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"AAaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"Aaaaaa@aaaaa-aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"AAAAAAAAAAAAAAA@AAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa.a.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA00","AAAA" +"00,000",,"Aaaaaaa.Aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA00","AAAA" +"00,000","000,000","Aaaaaa.Aaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AAA00","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaaaa000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0A0","AAAAAAAA" +"00,000",,"Aaaaa00000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00AA","AAAA" +"000,000","000,000","Aaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA AAA AAAAAAA" +"00,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa.aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000","000,000","aaaaaaa.aaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"Aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"Aaaaaa_0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000","000,000","aaaaa_aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaa@aaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"0,000",,"Aaaa000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"0,000",,"Aaaaaaa_aaaaaa@aaaa.aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"Aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA00","AAAA" +"00,000",,"aaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaa.Aaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.a.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaaaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","0,000","aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"0,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000","000,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000","000,000","aaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000",,"aaaaaa_aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000","00,000","aaaaaaa_aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000",,"aaaa.aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","00,000","aaaaa@aaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","00,000","aaaaa_aaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaa_aaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","00,000","aaaaa_aaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"00,000",,"Aaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000","00,000","Aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"0,000","000,000","aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","00,000","aaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaa_aaaaaa_000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","aaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA0A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A0A0A","AAAA" +"00,000","0,000","aaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaaa_0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"000000000@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"a.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAAAAAA" +"00,000",,"aaaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"0,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaa.aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"000,000","00,000","aaaa.aaa.00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A0A","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"000,000",,"Aaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","0,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA0A0","AAAA" +"0,000","000,000","aaaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A000A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaa-aaaa.aaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA0AA","AAAA" +"00,000","0,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AAA","AAAA" +"000,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"Aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaaaa.aaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"Aaaaaaaa.A.Aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"Aaaaaaa.A.Aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"0,000",,"aa_aaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","00,000","aaaaaaa.aaaaaa@aa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaa_aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"000,000",,"aaaaaa.aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA0A","AAAA" +"000,000",,"aaaa.00@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"a_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa0aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa0aa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaa.aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","0,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa00a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa_00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa_aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa_aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","000,000","aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","000,000","aaaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa@aaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"00,000",,"Aaaaaa.Aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaa.aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaa.aaaaaaa.0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"0,000",,"aaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000",,"aaaaaa@aaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","000,000","aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000","000,000","aaaaaa@aaaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaa_aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"a.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","00,000","aaaaaa0@aaaaaaaa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@000aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaa.a00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"Aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AAA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA AAA AAAAAAA" +"0,000",,"AAAAAA0000@AAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaa.aaaa00000@aaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaa.aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","000,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa.aaaa@Aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa.aaaaaaaaa@Aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aaaaaaaa000@Aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaa000@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A000A","AAAAAAAA" +"000,000","000,000","aaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a_aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa0@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a_aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa00000@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa.aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaa_a00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000","000,000","aaaaa0000@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaa-a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaa.aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaa0000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa.a.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa@aaaa.a00.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aa-aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa@aa.aaaaaaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","0,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa0aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa_aa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa.aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa_aaaaa_aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa_aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaa_aaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa00000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa_aaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaa@aa000.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaa@aaaaa-a.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","Aaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000","000,000","AAAAAA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaa0@aa.aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","000,000","aaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","000,000","aaaaa@a0aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaa.aaaaaaaa@aaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","Aaaaaaa.Aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000",,"aaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"0,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAA0A","AAAAAAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA" +"000,000",,"aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"a.aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"Aaaa.Aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","00,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00AA","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"000,000",,"aaaaaaaaaa_00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaa.Aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000","000,000","aaaaaaa_a@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa.aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aaaaaaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa.aaaaa@aaa-aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAA" +"000,000",,"aaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","00,000","aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa0@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","AAaaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaa.aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"0,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaa_aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000",,"aaaaaa.aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000",,"aaaaa0aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"0,000","000,000","aaaaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaa.a.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaaaa.a.aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000",,"aaaaaaa.00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000","000,000","aaaaaaa0@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaaaaaaa.aaaaaaa.a000000@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","000,000","aaaaaa_aaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"aaaaaa.aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAAAAAA" +"000,000",,"aaaaa_aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaa.aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","a_a_aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","00,000","aaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","AaAaaaa@aaaa-aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaaaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000",,"aaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0000","AAAA" +"000,000","00,000","aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAAAAAA" +"0,000","00,000","aaaaa.aa.aaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000","000,000","aaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"000,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","000,000","Aaaaaa.AaAaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000",,"aaaaaaaaa00@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A0AA0","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"0,000",,"aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","00,000","aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"AAAAA.AAAAAAA@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaa.aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"Aaaaaaa.Aaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"0,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","000,000","aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000","00,000","aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000","00,000","aaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000",,"aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaaa_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000","000,000","aaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaaa.a.aaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"Aaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000","00,000","aaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000",,"aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAA AAAA AAAAA" +"00,000","00,000","a.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"a.aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaaa.__@aaaaaaa.a",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"AaaaAaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"a@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaa_0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa000@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa0000@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaa.aaaaaa@aaaaaa.aaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaa.aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa_0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaaa.aaaa@aa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","000,000","aaaaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0AA0A0","AAAAAAAA" +"00,000",,"aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"000,000","00,000","aaaaa.aaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaa.aaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaa.aaaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000","00,000","aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","00,000","AaaaAaaA00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"000,000",,"AAAAAA.AAAAAAAA@Aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"Aaaaaaa.aaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"000,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000","00,000","aaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaa.aaaaaaa.aaa0@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A00A0","AAAA" +"00,000",,"a.aaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaa.a00.aa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000","000,000","aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaa0000@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","0,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000",,"aaaaaa.aaa-aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"000,000","000,000","aaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAAAAAA AAA AAAAAAA" +"000,000",,"AAAAAAAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"AAAAAAAAA000@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaaa000@aaa.aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","000,000","aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"0,000",,"aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"0,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaa.aaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"0,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000","000,000","aaaa_aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000","00,000","aaaaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"000,000",,"aaaaaaaa.a.aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"Aaaaaa.Aaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"0,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"a.aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa_aaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000","00,000","aaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","aaaaa.aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"Aaaaaa.Aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"AAAAAA.AAAAAAA@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa.a.aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"Aaaaaa.Aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa0@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa.aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"a.aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaaaa.aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@Aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaaa_aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaa0000@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"AAAAAAAA@AAAAA.AAA",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"00,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"00,000","00,000","aaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","00,000","aaaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"AAAAAA@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"Aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"AAAAAA0@AA.AA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000","00,000","aaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000",,"aaaaaaa.aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaa.aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaa0000@000.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaa.a.aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AA0AA","AAAAAAAA" +"000,000",,"aaaaa_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","0,000","aaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","000,000","aaaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000","0,000","aaaaaa_000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAAAAAA" +"000,000",,"aaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000",,"aaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000",,"aaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000","000,000","aaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAAAAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAAAAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AA000","AAAA" +"000,000",,"aaaaa_a@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"000,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA" +"0,000",,"aaaaa.aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"00,000","000,000","aaaaaaa.aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"0,000",,"aaaaaaaa@aaa-aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","a.aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"aaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa.aaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","00,000","aaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"Aaaaaa.a.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaa.aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AA0","AAAA" +"0,000",,"aaaaaaa.aaaaaa@aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"0,000","000,000","aaaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","00,000","aaaaa.a.aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"aaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","0,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaa@a0aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"0,000","000,000","aaaaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"AAAAAAAAA@AAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa_aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","000,000","aaaaaa_aaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00A0","AAAAAA AAAA AAAAA" +"0,000","00,000","aaaaaaa-aaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"0,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0AA0","AAAA" +"00,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaa00aaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","00,000","aaaaaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"00,000",,"aaaaaaaa.a.aaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00A0000","AAAA" +"00,000","000,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AAA0A","AAAAAAAA" +"00,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","000,000","aaaaa.aaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaa0aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A0A","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"000,000",,"aaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAA0","AAAA" +"00,000","000,000","aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaa_aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"0,000",,"aaaaaaa000a@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","000,000","aaaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000",,"aaaaa_aaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaaa-aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"Aaaaaaa.Aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","Aaaaaa.Aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaa.aaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000","000,000","aaaa0aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"0,000",,"aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAA00","AAAA" +"0,000",,"aaaaaaa.aa00@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000","000,000","aaaaaaaaaaa@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"0,000",,"aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000","00,000","aaa00@aaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"0,000","000,000","aaaaaaaaaa@aaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000","00,000","aaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAAAAAA" +"000,000","000,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaa_aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaa_aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaaa_00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000","00,000","aaaaaa.aaaaaaa@aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa_aaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"Aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","000,000","Aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"000,000",,"aaaaaaaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","00,000","aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000","00,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"aaaaaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000","00,000","aaaaa_aaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","000,000","aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaa0@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aa_aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"Aaaaa.Aaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaa.aaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"AAAAAAA@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000",,"AAAAA@AAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa_aaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","000,000","aaaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaa.a.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"Aaaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"00,000","00,000","aaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"aaaaaaaaaaa000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","000,000","aa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","000,000","a.aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","000,000","aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","0,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000","000,000","a.aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000","00,000","aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"0,000","000,000","aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"000,000","00,000","aaa000000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +000,,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"0000000000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaa_aaaaaa@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000","000,000","Aaaaaaa_aaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000","000,000","aaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","000,000","aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","aaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaa.aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","000,000","aaaaaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaaa0000@aaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaa_a_aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","000,000","aa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA000","AAAA" +"00,000",,"aaaaaaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","00,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"000,000",,"aaaaa.aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA0A00AA","AAAA" +"00,000","00,000","aaaaaaa_aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000","000,000","aaa-aaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000","000,000","aaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","000,000","aaa_aaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000","000,000","aaaa_aaaa_aaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA" +"000,000","000,000","aaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaaa000000@aaaaa.aaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","000,000","Aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAAAA" +"000,000",,"Aaaaaaaa.Aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000","000,000","aaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","0,000","aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaa.aaaaa@aaaaaaaa-aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaa00000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","0,000","aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"000,000",,"aaa00000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A00A","AAAA" +"00,000",,"aaaaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AAAAA","AAAA" +"000,000",,"Aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AAAAA","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000","00,000","aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000","000,000","aaaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"00,000","000,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"000,000",,"aaaaaaaa@aa.aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"aaaaa@aaaa.aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000",,"aaaaa0@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","00,000","aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaa0000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAAAAAA" +"000,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000",,"Aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaa.a.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAA" +"00,000","000,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000","00,000","a0aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000",,"aaaaaaaaaaaaaaaaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","00,000","aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A0A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000","00,000","aaaaaaaaaaaaa@aa.aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","000,000","aaaaaa_aaaa_aaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAA" +"000,000","000,000","aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"00,000","00,000","aaaaaaaa.aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAAAAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000",,"aaaaaaaaa0@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaa0@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000","0,000","aaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAAAA AAAA AAAAA" +"000,000",,"aaaa000aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A00A","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"00,000","00,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000",,"aaaaaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A000","AAAA" +"00,000","00,000","aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"000,000","000,000","aaaaa.aaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAA AAAA AAAAA" +"000,000","000,000","aaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAAAAAA" +"000,000",,"aaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000",,"aaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0AA0A0","AAAA" +"000,000","00,000","aaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaa.aaaaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaaa.aaaa@aaaaaaaa-aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"000,000",,"aaaaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"aaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000","00,000","aaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAAAA AAAA AAAAA" +"000,000","00,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA AAA AAAAAAA" +"000,000",,"aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"Aaaaa.Aaaaa-Aaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000","0,000","aaaaaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","000,000","aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A00","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00A00A","AAAAAAAA" +"000,000",,"a_aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA00A00A0","AAAA" +"00,000",,"Aaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA" +"00,000",,"aaaaaaa.aaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000","000,000","aaaaaa.aaaaaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA AAA AAAAAAA" +"00,000","00,000","Aaaaaaaaa.Aaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaa.aaaaaaaa@aaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaaa_aaaaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"aaaaaaaaa000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA00A","AAAA" +"00,000",,"AAAaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaa-aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaa0aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +000,,"aaaaaa.aaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +000,,"aaaaa.aaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA0A","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A00A","AAAA" +"000,000","0,000","aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"000,000",,"aaaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000","000,000","AAAAAAAA@AAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAAAAAA" +"00,000",,"aaaa.aaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000000A","AAAA" +"00,000","00,000","aaaaaaaa.aaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"0,000",,"aaaaaaaa.a@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAA" +"0,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0A0A0A","AAAAAAAA" +"0,000",,"aaa_aaa_aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"0,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"000,000",,"aaaaa_a@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"Aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A00A","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAA" +"00,000","00,000","aaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaaaaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A00","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaaa.aaaaaaaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","00,000","aaaaaa00000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000","000,000","aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaa.aaaaaaaaa@aaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa000000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"0,000","0,000","aaaaa.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"000,000",,"Aaaaaaaaaaaa@aaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A0A000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa_00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000","00,000","aaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A0A","AAAA" +"000,000",,"aaaaa.aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","00,000","aaaaaa0_aa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000","000,000","aaaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000","000,000","Aaaaaa.Aaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaaaa.aa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAA00AAA0A","AAAA" +"000,000",,"aaaaaaaa.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"000,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa@aa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaa_aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAA" +"000,000","000,000","aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","000,000","aaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","000,000","aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"000,000",,"aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaa0@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"Aaa_Aa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000AA000","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"a.aaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaaaaa.aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A0A00AA","AAAA" +000,"00,000","aaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000",,"aaaaaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA00AA00","AAAA" +"00,000","000,000","aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00AA0A","AAAAAAAA" +"000,000","00,000","aaaaaaa0@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAAAAAA AAA AAAAAAA" +"0,000",,"aaaa00@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAA" +"0,000","0,000","aaaaaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"0,000","000,000","aaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"AaaaaAaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000","00,000","Aaaaa.Aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAAAAAA" +"00,000","000,000","aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000A00","AAAAAAAA" +"000,000","00,000","aaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A00A","AAAAAAAA" +"00,000","00,000","aaaaaa.aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"00,000",,"aaaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaa0000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA00","AAAA" +"000,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"000,000",,"AAaaa@a0a.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaa0@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","000,000","aaaaaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A00A","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000","0,000","aaaaaaaaaa-aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa0@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000A000","AAAA" +"000,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA0000000","AAAA" +"000,000","00,000","aaaa.aaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaaaaa.aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","00,000","aaaaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAAAAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"00,000",,"aaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000A000","AAAA" +"00,000",,"aaaaaa.aaaaaaaa@aaaa-aaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000",,"aaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"000,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"0,000",,"aaaaaa@aaaaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00000A","AAAA" +"00,000","000,000","aaaaaaa_aaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAAA000000","AAAA" +"000,000",,"Aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000A00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"aaaaa.aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A00A000","AAAA" +"00,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA AAA AAAAAAA" +"00,000","000,000","aaaaaa.aaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaa_aaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000","000,000","aaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000000A","AAAAAA AAAA AAAAA" +"00,000",,"aaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000",,"aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaaaaaaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000",,"Aaaa.Aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"00,000",,"aaaaaaa00@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAA" +"00,000","000,000","aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAAA000AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa_aaaaaa@aaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa.aaaaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aa_aaaaa@aaaaaaaaa.aaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa_a@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa.aaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aa@aaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa0@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000","00,000","aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa0@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa.aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaa_a_aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa0000@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000","000,000","aaaaaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"00,000",,"aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaa_aaaaaaa00@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa_aaaa@aaaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aa.aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaa0000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa_aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa_aaaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aa@aaaaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa00@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa_aaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa0@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa@aaa.aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa.aaaaaa@aaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa000@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa_aaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaa@aaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa000@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa@aaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaa@aaaaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaaaaaaaaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaaa_@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaaaa@aaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaa@aaaaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000",,"aaaaa_aaaaaaa@aaaaaaa.aaa",00/00/0000 0:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"000,000",,"aaa0a@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"00,000","00,000","aaaaa@AAAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA AAA AAAAAAA" +"000,000","000,000","aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA00AAAAA","AAAAAAAA" +"000,000",,"aaaaaa_aaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A000A","AAAA" +"00,000","000,000","aaa.aaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"00,000","00,000","aaaaaaaaaaaaaaaaaaa@aaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAAAAAA AAA AAAAAAA" +"00,000",,"aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAA" +"00,000","00,000","aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0A00","AAAAAAAA" +"000,000","0,000","Aaa00a@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00A000","AAAAAAAA" +"000,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000","00,000","aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"0,000",,"Aaaaaaa.Aaaaaaaaa@Aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"000,000",,"aaaaa.a.aaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"aaaaaaaaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAA" +"00,000","000,000","aaaaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAAAAAA" +"00,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"000,000","000,000","aaaaaaaaaa0@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000000A","AAAAAAAA" +"0,000",,"Aaaaaaa_Aaaaaaaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAA" +"00,000",,"AAAAAA@AAAAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","00,000","aaaaa_aaaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAAAAAA" +"000,000",,"aaaaaaa00@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAA" +"000,000",,"aaaaaaaaaaaaa@aaaaa.aa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000000","AAAA" +"00,000",,"AAAA@AAAAAAAA.AAA",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000AA0A0","AAAA" +"00,000",,"aaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000",,"aaaaaaa.aaaaa00@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000000","AAAA" +"00,000",,"aaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00AA00","AAAA" +"000,000",,"aaaaa.aaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A0A","AAAA" +"00,000",,"aaa00@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000",,"aaaaaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA0000A00","AAAA" +"00,000","000,000","aaaaaaaaa@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A0000","AAAAAAAA" +"00,000",,"Aaaaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"000,000",,"aaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"0,000","00,000","aaaaaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAAAAAA" +"00,000",,"aaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"000,000",,"aaaaa.aaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000AA0A","AAAA" +"000,000","000,000","aaaa0000@aaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000A00","AAAAAAAA" +"00,000","00,000","aaa@aaaaaaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaaaaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aaaaa.aaaaa@aaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A000A0A","AAAAAAAA" +"00,000","00,000","aaaaaaaa000@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAAAAAA" +"000,000",,"aaaaaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +000,,"aaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +000,,"aaaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +"00,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +000,"000,000","aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAAAAAA" +000,,"aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +000,,"aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +000,,"aaaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +000,,"aaaaaaa@aaaaaa-aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA0AAA00","AAAA" +"000,000",,"aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAA" +"00,000",,"aaaaaaa.aaaaa@aa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAA" +"000,000",,"Aaaaaaa@aaaaaaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAA" +"00,000","000,000","aaaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0A00000A","AAAAAAAA" +"00,000","000,000","aaaaaa.aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" +"000,000",,"aaaaaaaaaa@aaaaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAAA00AA0A","AAAA" +"00,000",,"aaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAAA000AA00","AAAA" +"000,000","000,000","aaaaaaa.aaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA0000A000","AAAAAAAA" +"00,000",,"aaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAA" +"00,000","000,000","a_aaaaaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA000A00AA","AAAAAAAA" +"000,000","000,000","aaaaaa.aaaaaa@aaaaa.aaa",00/00/0000 00:00:00AA,"0,000.00","AAA00000000","AAAAAAAA" diff --git a/utils/testing/safe_clamp_test.cc b/utils/testing/safe_clamp_test.cc new file mode 100644 index 000000000..6599dd695 --- /dev/null +++ b/utils/testing/safe_clamp_test.cc @@ -0,0 +1,153 @@ +#include "catch2/catch_all.hpp" +#include "mldb/utils/safe_clamp.h" +#include "mldb/arch/demangle.h" +#include +#include + +using namespace std; +using namespace MLDB; + +template +struct ConvertibleLimits { + static constexpr Float min = static_cast(std::numeric_limits::min()); + static constexpr Float max = static_cast(std::numeric_limits::max()); +}; + +template<> +struct ConvertibleLimits { + static constexpr double min = -0x1p+63; + static constexpr double max = 0x1.fffffffffffffp+62; +}; + +template<> +struct ConvertibleLimits { + static constexpr double min = 0; + static constexpr double max = 0x1.fffffffffffffp+63; +}; + +template<> +struct ConvertibleLimits { + static constexpr float min = -0x1p+63; + static constexpr float max = 0x1.fffffep+62; +}; + +template<> +struct ConvertibleLimits { // here + static constexpr float min = 0; + static constexpr float max = 0x1.fffffep+63; +}; + +template<> +struct ConvertibleLimits { + static constexpr float min = -0x1p+31; + static constexpr float max = 0x1.fffffep+30; +}; + +template<> +struct ConvertibleLimits { + static constexpr float min = 0; + static constexpr float max = 0x1.fffffep+31; +}; + +#if 0 +template struct IntUnderlyingFloat; +template<> struct IntUnderlyingFloat { using type = int64_t; }; +template<> struct IntUnderlyingFloat { using type = int32_t; }; + +template struct DoubleIntUnderlyingFloat; +template<> struct DoubleIntUnderlyingFloat { using type = __int128; }; +template<> struct DoubleIntUnderlyingFloat { using type = int64_t; }; + +template +void find_min_max() +{ + using Limits = ConvertibleLimits; + static_assert(Int(Limits::min) >= std::numeric_limits::min()); + static_assert(Int(Limits::max) <= std::numeric_limits::max()); + + using FloatInt = typename IntUnderlyingFloat::type; + using DoubleFloatInt = typename DoubleIntUnderlyingFloat::type; + + union { + FloatInt i; + Float f; + } min, max; + + min.f = static_cast(std::numeric_limits::min()); + max.f = static_cast(std::numeric_limits::max()); + + // Find the highest float that converts to max + for (;;) { + DoubleFloatInt i = max.f; + if (i > DoubleFloatInt(std::numeric_limits::max())) + --max.i; + else break; + } + + // Find the lowest float that converts to min + for (;;) { + DoubleFloatInt i = min.f; + if (i < DoubleFloatInt(std::numeric_limits::min())) + --min.i; + else break; + } + + cerr << demangle(typeid(Float).name()) << " to " << demangle(typeid(Int).name()) << ": min " << std::setprecision(24) << std::scientific << std::hexfloat << min.f << endl; + cerr << demangle(typeid(Float).name()) << " to " << demangle(typeid(Int).name()) << ": max " << std::setprecision(24) << std::scientific << std::hexfloat << max.f << endl; +} +#endif + +template struct DoubleIntUnderlyingFloat; +template<> struct DoubleIntUnderlyingFloat { using type = __int128; }; +template<> struct DoubleIntUnderlyingFloat { using type = int64_t; }; + +template +struct Checker { + static void check() + { + // If not specialized, there is no way that it can be out of range so it's moot + if (!FloatIntegerClamper::specialized) + return; + + std::string section = demangle(typeid(F).name()) + " -> " + demangle(typeid(I).name()); + using DI = __int128;//typename DoubleIntUnderlyingFloat::type; + + SECTION(section) { + //cerr << "type " << section << endl; + //cerr << "range " << hex << std::numeric_limits::min() << " to " << std::numeric_limits::max() << dec << endl; + //cerr << "max = " << hex << int64_t(FloatIntegerClamper::max) << dec << endl; + CHECK(DI(FloatIntegerClamper::max) <= std::numeric_limits::max()); + CHECK(DI(std::nextafter(FloatIntegerClamper::max, INFINITY)) > DI(std::numeric_limits::max())); + if (std::numeric_limits::min() < 0) { + CHECK(DI(FloatIntegerClamper::min) >= std::numeric_limits::min()); + CHECK(DI(std::nextafter(FloatIntegerClamper::min, -INFINITY)) < std::numeric_limits::min()); + } + } + } +}; + +#define TEST_TYPES int64_t, uint64_t, int32_t, uint32_t, int16_t, uint16_t, int8_t, uint8_t + +TEMPLATE_TEST_CASE("safe float conversion limits", "[none]", TEST_TYPES) +{ + Checker::check(); + Checker::check(); +} + +template +void do_safe_int_conversion_test() +{ + SECTION("to " + demangle(typeid(Float).name())) { + CHECK(safe_clamp(INFINITY) == std::numeric_limits::max()); + CHECK(safe_clamp(0) == 0); + CHECK(safe_clamp(-INFINITY) == std::numeric_limits::min()); + } +} + +TEMPLATE_TEST_CASE("safe int conversion", "[none]", TEST_TYPES) +{ + //find_min_max(); + //find_min_max(); + do_safe_int_conversion_test(); + do_safe_int_conversion_test(); +} diff --git a/utils/testing/scoreboard_test.cc b/utils/testing/scoreboard_test.cc new file mode 100644 index 000000000..c21d2e4c7 --- /dev/null +++ b/utils/testing/scoreboard_test.cc @@ -0,0 +1,131 @@ +/* scoreboard_test.cc + Jeremy Barnes, 28 August 2014 + Copyright (c) 2014 mldb.ai inc. All rights reserved. + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Test the scoreboard class. +*/ + +#include "mldb/utils/scoreboard.h" +#include "mldb/utils/testing/mldb_catch2.h" + +using namespace std; +using namespace MLDB; + +TEST_CASE("test linear scoreboard") +{ + LinearScoreboard s(8 /* max ahead */); + + SECTION("empty") { + CHECK(s.progress() == 0); + + } + + SECTION("one item") { + auto [started, toofarahead] = s.beginWorkItem(0); + CHECK(started); + CHECK(!toofarahead); + CHECK(s.progress() == 0); + + CHECK(!s.beginWorkItem(0).started); + + auto [first, last] = s.endWorkItem(0); + CHECK(first == 0); + CHECK(last == 1); + CHECK(s.progress() == 1); + CHECK_THROWS(s.endWorkItem(0)); + CHECK(s.beginWorkItem(0).started == false); + } + + SECTION("too far ahead") { + auto [started, toofarahead] = s.beginWorkItem(8); + CHECK(!started); + CHECK(toofarahead); + } + + SECTION("out of order, first ending at start") { + auto [started2, toofarahead2] = s.beginWorkItem(3); + CHECK(started2); + CHECK(!toofarahead2); + CHECK(s.progress() == 0); + + auto [first, last] = s.endWorkItem(3); + CHECK(first == 0); + CHECK(last == 0); + CHECK(s.progress() == 0); + + CHECK(s.beginWorkItem(1).started); + CHECK(s.beginWorkItem(2).started); + CHECK(s.endWorkItem(2).count() == 0); + CHECK(s.endWorkItem(1).count() == 0); + + CHECK(s.beginWorkItem(0).started); + auto [first2, last2] = s.endWorkItem(0); + CHECK(first2 == 0); + CHECK(last2 == 4); + } + + SECTION("out of order, first ending in middle") { + auto [started2, toofarahead2] = s.beginWorkItem(3); + CHECK(started2); + CHECK(!toofarahead2); + CHECK(s.progress() == 0); + + auto [first, last] = s.endWorkItem(3); + CHECK(first == 0); + CHECK(last == 0); + CHECK(s.progress() == 0); + + CHECK(s.beginWorkItem(0).started); + CHECK(s.beginWorkItem(2).started); + CHECK(s.endWorkItem(2).count() == 0); + CHECK(s.endWorkItem(0).count() == 1); + + CHECK(s.beginWorkItem(1).started); + auto [first2, last2] = s.endWorkItem(1); + CHECK(first2 == 1); + CHECK(last2 == 4); + } + + SECTION("one at a time") { + for (size_t i = 0; i < 1000; ++i) { + auto [started, toofarahead] = s.beginWorkItem(i); + CHECK(started); + CHECK(!toofarahead); + CHECK(s.progress() == i); + + auto [first, last] = s.endWorkItem(i); + CHECK(first == i); + CHECK(last == i + 1); + CHECK(s.progress() == i + 1); + } + } + + SECTION("five at a time") { + for (size_t i = 0; i < 5; ++i) { + auto [started, toofarahead] = s.beginWorkItem(i); + CHECK(started); + CHECK(!toofarahead); + CHECK(s.progress() == 0); + } + + for (size_t i = 5; i < 1000; ++i) { + auto [started, toofarahead] = s.beginWorkItem(i); + CHECK(started); + CHECK(!toofarahead); + CHECK(s.progress() == i - 5); + + auto [first, last] = s.endWorkItem(i - 5); + CHECK(first == i - 5); + CHECK(last == i - 4); + CHECK(s.progress() == i - 4); + } + + for (size_t i = 995; i < 1000; ++i) { + auto [first, last] = s.endWorkItem(i); + CHECK(first == i); + CHECK(last == i + 1); + CHECK(s.progress() == i + 1); + } + } +} \ No newline at end of file diff --git a/utils/testing/testing.mk b/utils/testing/testing.mk index 3312d4eb2..eaddf9282 100644 --- a/utils/testing/testing.mk +++ b/utils/testing/testing.mk @@ -34,8 +34,11 @@ $(eval $(call test,environment_test,utils arch base,boost)) $(eval $(call test,string_functions_test,arch utils,boost)) $(eval $(call test,csv_parsing_test,arch utils base,boost)) $(eval $(call test,round_test,,boost)) -$(eval $(call test,for_each_line_test,utils log arch base block types value_description vfs,boost)) +$(eval $(call test,for_each_line_test,utils log arch base block types value_description vfs,catch2)) $(eval $(call test,floating_point_test,utils log arch base,boost)) - $(eval $(call test,string_algorithm_test,base utils arch base value_description,catch2)) $(eval $(call test,lexical_cast_test,arch types value_description,catch2)) +$(eval $(call test,safe_clamp_test,utils log arch,catch2)) +$(eval $(call test,scoreboard_test,utils log arch,catch2)) +$(eval $(call test,coalesced_range_test,arch,catch2)) +$(eval $(call test,newline_splitter_test,arch utils,catch2)) diff --git a/utils/utils.mk b/utils/utils.mk index 3a02391da..dc244ffad 100644 --- a/utils/utils.mk +++ b/utils/utils.mk @@ -13,6 +13,7 @@ LIBUTILS_SOURCES := \ confidence_intervals.cc \ quadtree.cc \ for_each_line.cc \ + block_splitter.cc \ tmpdir.cc \ LIBUTILS_LINK := \ @@ -24,7 +25,8 @@ LIBUTILS_LINK := \ arch \ base \ types \ - $(STD_FILESYSTEM_LIBNAME) + value_description \ + $(STD_FILESYSTEM_LIBNAME) \ $(eval $(call library,utils,$(LIBUTILS_SOURCES),$(LIBUTILS_LINK))) diff --git a/utils/vector_utils.h b/utils/vector_utils.h index c65c4b400..fb02bf20c 100644 --- a/utils/vector_utils.h +++ b/utils/vector_utils.h @@ -15,6 +15,7 @@ #include #include +#include "ostream_vector.h" namespace MLDB { @@ -115,16 +116,6 @@ void make_vector_set(std::vector & vec) namespace std { -template -std::ostream & -operator << (std::ostream & stream, const vector & vec) -{ - stream << "["; - for (unsigned i = 0; i < vec.size(); ++i) - stream << " " << vec[i]; - return stream << " ]"; -} - template std::string to_string(const vector & vec) diff --git a/vfs/CMakeLists.txt b/vfs/CMakeLists.txt index 2ed778687..9047cb91a 100644 --- a/vfs/CMakeLists.txt +++ b/vfs/CMakeLists.txt @@ -9,7 +9,7 @@ set(LIBVFS_SOURCES http_streambuf.cc compressor.cc exception_ptr.cc - libdb_initialization.cc + libdb_init.cc gzip.cc bzip2.cc lzma.cc @@ -21,7 +21,6 @@ set(LIBVFS_SOURCES # Define the libraries to link with the VFS library set(LIBVFS_LINK arch - Boost::iostreams types http lz4 diff --git a/vfs/bzip2.cc b/vfs/bzip2.cc index be5f6e2e4..1b0404b29 100644 --- a/vfs/bzip2.cc +++ b/vfs/bzip2.cc @@ -112,8 +112,8 @@ struct BzlibStreamCommon: public bz_stream { { int bzlibFlushLevel; switch (flushLevel) { - case Compressor::FLUSH_NONE: bzlibFlushLevel = BZ_RUN; break; - case Compressor::FLUSH_AVAILABLE: bzlibFlushLevel = BZ_RUN; break; + case Compressor::FLUSH_NONE: return 0; + case Compressor::FLUSH_AVAILABLE: return 0; case Compressor::FLUSH_SYNC: bzlibFlushLevel = BZ_FLUSH; break; case Compressor::FLUSH_RESTART: bzlibFlushLevel = BZ_FINISH; break; default: diff --git a/vfs/compressibility.cc b/vfs/compressibility.cc new file mode 100644 index 000000000..255a32cee --- /dev/null +++ b/vfs/compressibility.cc @@ -0,0 +1,77 @@ +/* compressibility.cc -*- C++ -*- + Jeremy Barnes, 6 November 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Enables MIN_LIMIT and MAX_LIMIT which automatically take on the type of their context. +*/ + +#include "compressibility.h" +#include "compressor.h" + +namespace MLDB { + +namespace { + +static constexpr const char * COMPRESSIBILITY_COMPRESSOR = "zstd"; +static constexpr int COMPRESSIBILITY_LEVEL = 9; + +std::unique_ptr createCompressor() +{ + return std::unique_ptr + (Compressor::create(COMPRESSIBILITY_COMPRESSOR, COMPRESSIBILITY_LEVEL)); +} + +size_t calcZstdHeaderLength() +{ + auto compressor = createCompressor(); + + size_t compressedBytes = 0; + auto onData = [&] (const char *, size_t len) + { + compressedBytes += len; + return len; + }; + compressor->finish(onData); + return compressedBytes; +} + +size_t zstdHeaderLength() +{ + static const size_t result = calcZstdHeaderLength(); + return result; +} + +} // fiel scope + +CompressibilityStats calc_compressibility(const void * data, size_t numBytes) +{ + auto compressor = createCompressor(); + + size_t compressedBytes = 0; + auto onData = [&] (const char *, size_t len) + { + compressedBytes += len; + return len; + }; + + using namespace std; + if (numBytes > 0) + compressor->compress((const char *)data, numBytes, onData); + compressor->finish(onData); + + CompressibilityStats result{ numBytes, compressedBytes - zstdHeaderLength(), 1.0 * (compressedBytes - zstdHeaderLength()) / numBytes }; + + return result; +} + +CompressibilityStats & CompressibilityStats::operator += (const CompressibilityStats & other) +{ + bytesUncompressed += other.bytesUncompressed; + bytesCompressed += other.bytesCompressed; + compressionRatio = 1.0 * bytesCompressed / bytesUncompressed; + return *this; +} + +} // namespace MLDB diff --git a/vfs/compressibility.h b/vfs/compressibility.h new file mode 100644 index 000000000..339aac058 --- /dev/null +++ b/vfs/compressibility.h @@ -0,0 +1,27 @@ +/* compressibility.h -*- C++ -*- + Jeremy Barnes, 6 November 2015 + Copyright (c) 2015 mldb.ai inc. All rights reserved. + + This file is part of MLDB. Copyright 2015 mldb.ai inc. All rights reserved. + + Compressibility function. +*/ +#pragma once + +#include + +namespace MLDB { + +struct CompressibilityStats { + size_t bytesUncompressed; + size_t bytesCompressed; + double compressionRatio; + + CompressibilityStats & operator += (const CompressibilityStats & other); +}; + +CompressibilityStats calc_compressibility(const void * data, size_t numBytes); + +std::ostream & operator << (std::ostream & stream, const CompressibilityStats & stats); + +} // namespace MLDB diff --git a/vfs/compressor.cc b/vfs/compressor.cc index ee8b6f566..b077fce20 100644 --- a/vfs/compressor.cc +++ b/vfs/compressor.cc @@ -13,6 +13,8 @@ #include #include #include "mldb/base/thread_pool.h" +#include "mldb/base/compute_context.h" +#include using namespace std; @@ -44,6 +46,20 @@ std::map decompressors; } // file scope +bool +Compressor:: +canFixupLength() const +{ + return false; +} + +std::string +Compressor:: +newHeaderForLength(uint64_t lengthWritten) const +{ + throw MLDB::Exception("Attempt to call newHeaderForLength for class that doesn't support it"); +} + std::string Compressor:: filenameToCompression(const Utf8String & filename) @@ -165,17 +181,46 @@ forEachBlockParallel(size_t requestedBlockSize, const GetDataFunction & getData, const ForEachBlockFunction & onBlock, const Allocate & allocate, - int maxParallelism) + ComputeContext & compute, + const PriorityFn & priority) { - bool finished = false; + std::atomic finished = false; size_t blockNumber = 0; size_t currentOffset = 0; size_t numChars = 0; std::shared_ptr buf; - ThreadWorkGroup tp(maxParallelism); - - while (std::get<0>((std::tie(buf, numChars) = getData(requestedBlockSize)))) { + // We queue them up as we want to ensure they run in sequence + std::mutex jobsMutex; + std::deque jobs; + + auto doOne = [&] () + { + ThreadJob job; + { + std::unique_lock guard{jobsMutex}; + ExcAssert(!jobs.empty()); + job = std::move(jobs.front()); + jobs.pop_front(); + } + job(); + }; + + auto submitJob = [&] (ThreadJob job) + { + if (!compute.single_threaded()) { + { + std::unique_lock guard{jobsMutex}; + jobs.push_back(std::move(job)); + } + compute.submit(priority(blockNumber), "Decompressor::forEachBlockParallel", doOne); + } + else { + job(); + } + }; + + while (!finished.load(std::memory_order_relaxed) && std::get<0>((std::tie(buf, numChars) = getData(requestedBlockSize)))) { auto onData = [&] (std::shared_ptr data, size_t len) -> size_t { if (finished) @@ -187,19 +232,14 @@ forEachBlockParallel(size_t requestedBlockSize, auto doBlock = [myBlockNumber, myOffset, data = std::move(data), len, &finished, &onBlock] () { - if (finished) + if (finished.load(std::memory_order_relaxed)) return; - if (!onBlock(myBlockNumber, myOffset, std::move(data), len)) { + if (!onBlock(myBlockNumber, myOffset, std::move(data), len, false /* lastBlock */)) { finished = true; } }; - if (maxParallelism > 0) { - tp.add(std::move(doBlock)); - } - else { - doBlock(); - } + submitJob(doBlock); currentOffset += len; return len; @@ -208,7 +248,18 @@ forEachBlockParallel(size_t requestedBlockSize, decompress(buf, numChars, onData, allocate); } - tp.waitForAll(); + if (!finished) { + auto doLastBlock = [&] () + { + if (finished.load(std::memory_order_relaxed)) + return; + if (!onBlock(blockNumber, currentOffset, std::shared_ptr(), 0, true /* lastBlock */)) + finished = true; + }; + submitJob(doLastBlock); + } + + compute.work_until_finished(); return !finished; } diff --git a/vfs/compressor.h b/vfs/compressor.h index b75bab73d..0886dcff3 100644 --- a/vfs/compressor.h +++ b/vfs/compressor.h @@ -19,6 +19,7 @@ #include #include #include "mldb/types/string.h" +#include "mldb/base/compute_context_fwd.h" namespace MLDB { @@ -45,7 +46,7 @@ struct Compressor { passed to compress. Some of the compression formats can put this into their header to enable better decisions on allocation. - This must be called either never or ponce before compress(), flush() or + This must be called either never or once before compress(), flush() or finish(), and behavior is undefined if the exact same amount of data is not then passed to compress(). @@ -70,6 +71,19 @@ struct Compressor { */ virtual void finish(const OnData & onData) = 0; + /** Returns true if the compressor is able to write a new header with + a fixed-up length once closed. + + Default implementation returns false. + */ + virtual bool canFixupLength() const; + + /** Return a new header that will overwrite the one written before. The + * new header MUST have the same length as the old one. Will only be + * called if canFixupLength() returns true. + */ + virtual std::string newHeaderForLength(uint64_t lengthWritten) const; + /** Convert a filename to a compression scheme. Returns the empty string if it isn't found. */ @@ -173,10 +187,11 @@ struct Decompressor { const Allocate & allocate); - typedef std::function blockStart, - size_t blockLength)> + typedef ContinuationFn blockStart, + size_t blockLength, + bool lastBlock)> ForEachBlockFunction; typedef std::function, size_t> (size_t)> @@ -186,7 +201,8 @@ struct Decompressor { const GetDataFunction & getData, const ForEachBlockFunction & onBlock, const Allocate & allocate, - int maxParallelism = -1); + ComputeContext & compute, + const PriorityFn & priority); /** Create a compressor with the given scheme. Returns nullptr if the given compression scheme isn't found. diff --git a/vfs/filter_streams.cc b/vfs/filter_streams.cc index 93d368fc1..5cd9e58c3 100644 --- a/vfs/filter_streams.cc +++ b/vfs/filter_streams.cc @@ -18,11 +18,6 @@ #include "compressor.h" #include #include -#include -#include -#include -#include -#include #include "mldb/arch/exception.h" #include #include @@ -30,14 +25,22 @@ #include #include "fs_utils.h" #include "mldb/base/exc_assert.h" +#include "mldb/base/scope.h" #include "mldb/utils/lexical_cast.h" #include "mldb/utils/split.h" - +#include "mldb/arch/vm.h" +#include "mldb/base/iostream_adaptors.h" +#include using namespace std; namespace MLDB { + +/*****************************************************************************/ +/* URI HANDLING */ +/*****************************************************************************/ + const UriHandlerFactory & getUriHandler(const std::string & scheme); @@ -65,27 +68,37 @@ UriHandler(std::streambuf * buf, /*****************************************************************************/ -/* BOOST COMPRESSOR */ +/* STREAM COMPRESSOR */ /*****************************************************************************/ -/** Adaptor to allow boost::iostreams to be served by a compressor object. */ - -struct BoostCompressor: public boost::iostreams::multichar_output_filter { +struct StreamCompressor { + using is_filter = std::true_type; - BoostCompressor(Compressor * compressor) - : compressor(compressor) + StreamCompressor(Compressor * compressor, std::streambuf & buf) + : compressor(compressor), buf(buf) { + // Record the start position so that once we know the actual written + // size we can go back and rewrite the header with the right size. + if (compressor->canFixupLength()) { + try { + MLDB_TRACE_EXCEPTIONS(false); + startPos = buf.pubseekoff(0, ios::cur, ios_base::in); + } catch (std::ios_base::failure exc) { + startPos = -1; + } + } } template void writeAll(Sink& sink, const char* data, size_t size) { while (size > 0) { - size_t written = boost::iostreams::write(sink, data, size); + size_t written = write_stream(sink, data, size); if (!written) throw Exception("unable to write data"); data += written; size -= written; + bytesWritten += written; } } @@ -99,19 +112,40 @@ struct BoostCompressor: public boost::iostreams::multichar_output_filter { }; compressor->compress(s, n, onData); + bytesRead += n; return n; } template void close(Sink& sink) { + if (alreadyClosed) + return; + auto onData = [&] (const char * data, size_t len) -> size_t { writeAll(sink, data, len); return len; }; + if (bytesRead == 0) { + compressor->notifyInputSize(0); + } compressor->finish(onData); + + if (bytesRead != 0 && startPos != -1 && compressor->canFixupLength()) { + std::string data = compressor->newHeaderForLength(bytesRead); + { + std::ostream stream(&buf); + auto oldPos = stream.tellp(); + stream.seekp(startPos, std::ios::beg); + stream.write(data.data(), data.size()); + stream.flush(); + stream.seekp(oldPos, std::ios::beg); + } + } + + alreadyClosed = true; } template @@ -127,25 +161,25 @@ struct BoostCompressor: public boost::iostreams::multichar_output_filter { } std::shared_ptr compressor; + std::streambuf & buf; + uint64_t bytesWritten = 0; + uint64_t bytesRead = 0; + int64_t startPos = -1; + bool alreadyClosed = false; }; /*****************************************************************************/ -/* BOOST DECOMPRESSOR */ +/* STREAM DECOMPRESSOR */ /*****************************************************************************/ -/** Adaptor to allow boost::iostreams to be served by a decompressor object. */ +/** Adaptor to allow iostreams to be served by a decompressor object. */ -struct BoostDecompressor { +struct StreamDecompressor { + using is_filter = std::true_type; typedef char char_type; - struct category - : public boost::iostreams::filter_tag, - public boost::iostreams::input_seekable, - public boost::iostreams::multichar_tag { - }; - - BoostDecompressor(Decompressor * decompressor) + StreamDecompressor(Decompressor * decompressor) : decompressor(decompressor) { inbuf.resize(4096); @@ -172,8 +206,11 @@ struct BoostDecompressor { outbufPos = 0; } - if (n == 0) + if (n == 0) { + if (s == sBefore && eof) + return EOF; return s - sBefore; + } // Now, call the decompressor @@ -193,9 +230,10 @@ struct BoostDecompressor { }; while (n > 0) { - ssize_t numRead = boost::iostreams::read(src, inbuf.data(), inbuf.size()); + ssize_t numRead = read_stream(src, inbuf.data(), inbuf.size()); if (numRead <= 0) { decompressor->finish(onData); + eof = true; break; } else { @@ -203,7 +241,7 @@ struct BoostDecompressor { } } - return s - sBefore; + return (s == sBefore && eof) ? EOF : s - sBefore; } template @@ -235,7 +273,8 @@ struct BoostDecompressor { std::string outbuf; ///< Characters returned from decompressor but not yet written size_t outbufPos = 0; ///< Position in outbuf uint64_t streamPos = 0; - + bool eof = false; + std::shared_ptr decompressor; }; @@ -318,7 +357,7 @@ filter_ostream:: close(); } catch (...) { - cerr << "~filter_ostream: ignored exception\n"; + cerr << "~filter_ostream: ignored exception\n" + MLDB::getExceptionString() + "\n"; } } @@ -343,13 +382,11 @@ operator = (filter_ostream && other) namespace { void addCompression(streambuf & buf, - boost::iostreams::filtering_ostream & stream, + filtering_ostream & stream, const Utf8String & resource, const std::string & compression, int compressionLevel) { - using namespace boost::iostreams; - if (compression == "none") { // nothing to do } @@ -358,7 +395,7 @@ void addCompression(streambuf & buf, = Compressor::create(compression, compressionLevel); if (!compressor) throw MLDB::Exception("unknown filter compression " + compression); - stream.push(BoostCompressor(compressor)); + stream.push(StreamCompressor(compressor, buf)); } else { std::string compressionFromFilename @@ -368,13 +405,13 @@ void addCompression(streambuf & buf, = Compressor::create(compressionFromFilename, compressionLevel); if (!compressor) throw MLDB::Exception("unknown filter compression " + compression); - stream.push(BoostCompressor(compressor)); + stream.push(StreamCompressor(compressor, buf)); } } } void addCompression(streambuf & buf, - boost::iostreams::filtering_ostream & stream, + filtering_ostream & stream, const Utf8String & resource, const std::map & options) { @@ -399,12 +436,12 @@ createOptions(std::ios_base::openmode mode, int compressionLevel) { /* -app (append) Set the stream's position indicator to the end of the stream before each output operation. -ate (at end) Set the stream's position indicator to the end of the stream on opening. -binary (binary) Consider stream as binary rather than text. -in (input) Allow input operations on the stream. -out (output) Allow output operations on the stream. -trunc (truncate) Any current content is discarded, assuming a length of zero on opening. + app (append) Set the stream's position indicator to the end of the stream before each output operation. + ate (at end) Set the stream's position indicator to the end of the stream on opening. + binary (binary) Consider stream as binary rather than text. + in (input) Allow input operations on the stream. + out (output) Allow output operations on the stream. + trunc (truncate) Any current content is discarded, assuming a length of zero on opening. */ string modeStr; @@ -499,8 +536,6 @@ filter_ostream:: open(const Utf8String & uri, const std::map & options) { - using namespace boost::iostreams; - auto [scheme, resource] = getScheme(uri); std::ios_base::openmode mode = getMode(options); @@ -549,11 +584,8 @@ openFromStreambuf(std::streambuf * buf, const Utf8String & resource, const std::map & options) { - // TODO: exception safety for buf - using namespace boost::iostreams; - //cerr << "buf = " << (void *)buf << endl; //cerr << "weOwnBuf = " << weOwnBuf << endl; @@ -597,8 +629,6 @@ open(int fd, std::ios_base::openmode mode, void filter_ostream:: open(int fd, const std::map & options) { - using namespace boost::iostreams; - unique_ptr new_stream (new filtering_ostream()); @@ -612,12 +642,8 @@ open(int fd, const std::map & options) } } -#if (BOOST_VERSION < 104100) - new_stream->push(file_descriptor_sink(fd)); -#else - new_stream->push(file_descriptor_sink(fd, - boost::iostreams::never_close_handle)); -#endif + new_stream->push(file_descriptor_sink(fd, never_close_handle)); + stream.reset(new_stream.release()); sink.reset(); rdbuf(stream->rdbuf()); @@ -629,13 +655,13 @@ void filter_ostream:: close() { - if (stream) { - boost::iostreams::flush(*stream); - boost::iostreams::close(*stream); + if (rdbuf()) { + flush_stream(*rdbuf()); + close_stream(*rdbuf()); } - exceptions(ios::goodbit); - rdbuf(0); stream.reset(); + exceptions(ios::goodbit); + rdbuf(nullptr); sink.reset(); options.clear(); if (deferredExcPtr) { @@ -847,20 +873,18 @@ openFromStreambuf(std::streambuf * buf, { // TODO: exception safety for buf - using namespace boost::iostreams; - unique_ptr new_stream (new filtering_istream()); if (compression == "") { std::string compression = Compressor::filenameToCompression(resource); if (compression != "") { - new_stream->push(BoostDecompressor(Decompressor::create(compression))); + new_stream->push(StreamDecompressor(Decompressor::create(compression))); } } else if (compression == "none") { // no-op } else { - new_stream->push(BoostDecompressor(Decompressor::create(compression))); + new_stream->push(StreamDecompressor(Decompressor::create(compression))); } if (!new_stream->empty()) { @@ -888,8 +912,8 @@ filter_istream:: close() { if (stream) { - boost::iostreams::flush(*stream); - boost::iostreams::close(*stream); + flush_stream(*stream); + close_stream(*stream); } exceptions(ios::goodbit); rdbuf(0); @@ -962,11 +986,11 @@ fork(const std::map & options) const return result; } -std::pair +std::tuple filter_istream:: mapped() const { - return { handlerOptions.mapped, handlerOptions.mappedSize }; + return { handlerOptions.mapped, handlerOptions.mappedSize, handlerOptions.mappedCapacity }; } FsObjectInfo @@ -1031,8 +1055,6 @@ struct RegisterFileHandler { const std::map & options, const OnUriHandlerException & onException) { - using namespace boost::iostreams; - if (resource == "") resource = "/dev/null"; @@ -1061,13 +1083,26 @@ struct RegisterFileHandler { } else { try { - mapped_file_source source(resource.rawString()); - shared_ptr buf(new stream_buffer(source)); + // Here is where we stick things we need to + using KeepMeAround = std::vector>; + auto keepMe = std::make_shared(); + + mapped_file_params params(resource.rawString()); + params.extra_capacity = MAPPING_EXTRA_CAPACITY; + mapped_file_source source(params); + + auto buf = std::make_shared>(source); UriHandlerOptions options; options.mapped = source.data(); - options.mappedSize = source.size(); - return UriHandler(buf.get(), buf, info, options); + options.mappedSize = buf->source().size(); + options.mappedCapacity = buf->source().capacity(); + ExcCheckGreaterEqual(buf->source().extra_capacity(), MAPPING_EXTRA_CAPACITY, + "mapped file extra capacity not respected"); + + keepMe->emplace_back(buf); + + return UriHandler(buf.get(), std::move(keepMe), info, options); } catch (const std::exception & exc) { throw MLDB::Exception("Opening file " + resource + ": " + exc.what()); @@ -1166,12 +1201,6 @@ struct MemStreamingInOut { }; struct MemStreamingIn : public MemStreamingInOut { - struct category - : public boost::iostreams::input_seekable, - public boost::iostreams::device_tag, - public boost::iostreams::closable_tag - { - }; MemStreamingIn(string & targetString) : MemStreamingInOut(targetString) @@ -1198,6 +1227,12 @@ struct MemStreamingIn : public MemStreamingInOut { return res; } + streamsize avail() + { + unique_lock guard(memStringsLock); + return targetString_.size() - pos_; + } + std::streampos seek(std::streamsize where, std::ios_base::seekdir dir) { unique_lock guard(memStringsLock); @@ -1233,12 +1268,6 @@ struct MemStreamingIn : public MemStreamingInOut { }; struct MemStreamingOut : public MemStreamingInOut { - struct category - : public boost::iostreams::output, - public boost::iostreams::device_tag, - public boost::iostreams::closable_tag - { - }; MemStreamingOut(string & targetString) : MemStreamingInOut(targetString) @@ -1256,6 +1285,8 @@ struct MemStreamingOut : public MemStreamingInOut { return n; } + + void flush() {} }; struct RegisterMemHandler { @@ -1278,12 +1309,10 @@ struct RegisterMemHandler { shared_ptr streamBuf; if (mode == ios::in) { - streamBuf.reset(new boost::iostreams::stream_buffer(MemStreamingIn(targetString), - 4096)); + streamBuf.reset(new source_istreambuf(MemStreamingIn(targetString), 4096)); } else if (mode == ios::out) { - streamBuf.reset(new boost::iostreams::stream_buffer(MemStreamingOut(targetString), - 4096)); + streamBuf.reset(new sink_ostreambuf(MemStreamingOut(targetString), 4096)); } else { throw MLDB::Exception("unable to create mem handler"); diff --git a/vfs/filter_streams.h b/vfs/filter_streams.h index e50cda680..2971d1056 100644 --- a/vfs/filter_streams.h +++ b/vfs/filter_streams.h @@ -24,6 +24,10 @@ namespace MLDB { struct FsObjectInfo; // Structure for file system or URL metadata; in fs_utils.h +// We always attempt to map this number of extra zero bytes beyond the end +// of a memory mapping so that algorithms that need to read beyond the end +// for efficiency reasons can do so without copying the whole memory buffer. +constexpr size_t MAPPING_EXTRA_CAPACITY = 64; /*****************************************************************************/ /* BASE STRUCTURES */ @@ -38,23 +42,16 @@ UriForkFunction; /// Structure that provides extra options about a URI handler struct UriHandlerOptions { - UriHandlerOptions() - : isForwardSeekable(false), - isRandomSeekable(false), - mapped(nullptr), - mappedSize(0) - { - } - - bool isForwardSeekable; ///< Can we seek forwards in the stream? - bool isRandomSeekable; ///< Can we seek at random in the stream? + bool isForwardSeekable = false; ///< Can we seek forwards in the stream? + bool isRandomSeekable = false; ///< Can we seek at random in the stream? /// Function used to fork the handler. If null, forking is not possible UriForkFunction fork; - /// If it's a mapped stream, returns the location and size - const char * mapped; - size_t mappedSize; + /// If it's a mapped stream, returns the location and size as well as the readable capacity + const char * mapped = nullptr; + size_t mappedSize = 0; + size_t mappedCapacity = 0; }; struct UriHandler { @@ -310,8 +307,18 @@ class filter_istream : public std::istream { they have this available. If it's not mapped, it will return (nullptr, 0). + + It returns { data, size, capacity }. The third capacity value + needs some explanation. It is the amount of data beyond the + end of the mapping that can be safely read (the values will be + zero). It will always be at least as large as size. Some + algorithms need to be able to read beyond the end for performance + reasons or otherwise are required to copy their data into a + padded buffer; knowing the extra capacity allows them to avoid + doing so. The system will always make a best effort to allocate + MAPPING_EXTRA_CAPACITY bytes beyond the end. */ - std::pair + std::tuple mapped() const; /** Return the information and metadata about the underlying object, diff --git a/vfs/gzip.cc b/vfs/gzip.cc index 42898d269..f4310664e 100644 --- a/vfs/gzip.cc +++ b/vfs/gzip.cc @@ -35,11 +35,16 @@ struct ZlibStreamCommon: public z_stream { opaque = nullptr; } + bool finished = false; int (*process) (z_streamp stream, int flush) = nullptr; size_t pump(const char * data, size_t len, const OnData & onData, int flushLevel) { + if (finished) { + return 0; + } + constexpr size_t bufSize = 131072; char output[bufSize]; next_in = (Bytef *)data; @@ -64,6 +69,11 @@ struct ZlibStreamCommon: public z_stream { result += bytesWritten; break; + case Z_BUF_ERROR: + if (avail_in == 0) + return 0; // not making progress on no input is not an error + throw Exception("Buffer error on zlib"); + case Z_STREAM_ERROR: throw Exception("Stream error on zlib"); @@ -71,6 +81,7 @@ struct ZlibStreamCommon: public z_stream { if (bytesWritten) onData(output, bytesWritten); result += bytesWritten; + finished = true; return result; default: diff --git a/vfs/http_streambuf.cc b/vfs/http_streambuf.cc index 9dc5b0357..6a41c2783 100644 --- a/vfs/http_streambuf.cc +++ b/vfs/http_streambuf.cc @@ -6,7 +6,6 @@ */ #include -#include #include "mldb/http/http_rest_proxy.h" #include "mldb/vfs/filter_streams_registry.h" #include "mldb/vfs/fs_utils.h" @@ -16,7 +15,7 @@ #include #include #include "mldb/ext/concurrentqueue/blockingconcurrentqueue.h" - +#include "mldb/base/iostream_adaptors.h" using namespace std; using moodycamel::BlockingConcurrentQueue; @@ -97,6 +96,7 @@ struct HttpStreamingDownloadSource { } typedef char char_type; +#if 0 struct category : boost::iostreams::input_seekable, @@ -104,6 +104,10 @@ struct HttpStreamingDownloadSource { boost::iostreams::closable_tag, boost::iostreams::multichar_tag { }; +#endif + + using is_source = std::true_type; + using is_seekable = std::true_type; struct Impl { Impl(const Utf8String & urlStr, @@ -318,7 +322,7 @@ struct HttpStreamingDownloadSource { dataQueue.enqueue(""); - } catch (const std::exception & exc) { + } MLDB_CATCH_ALL { lastExc = std::current_exception(); dataQueue.enqueue(""); if (!headerSet.exchange(true)) { @@ -367,7 +371,7 @@ makeHttpStreamingDownload(const Utf8String & uri, std::unique_ptr result; HttpStreamingDownloadSource source(uri, options, onException); const HttpHeader & header = source.getHeader(); - result.reset(new boost::iostreams::stream_buffer + result.reset(new source_istreambuf (source, 131072)); return { std::move(result), convertHeaderToInfo(header) }; } diff --git a/vfs/libdb_initialization.cc b/vfs/libdb_init.cc similarity index 100% rename from vfs/libdb_initialization.cc rename to vfs/libdb_init.cc diff --git a/vfs/lz4.cc b/vfs/lz4.cc index 46c3304ff..3efd10815 100644 --- a/vfs/lz4.cc +++ b/vfs/lz4.cc @@ -14,6 +14,7 @@ #include "mldb/arch/endian.h" #include "mldb/base/exc_assert.h" #include "mldb/base/thread_pool.h" +#include "mldb/base/compute_context.h" #include #include "mldb/base/scope.h" #include @@ -159,6 +160,19 @@ struct MLDB_PACKED Header return sizeof(*this); } + std::string asString(uint64_t lengthWritten) + { + std::string result; + const std::function onData + = [&] (const char * data, size_t len) -> size_t + { + result.append(data, len); + return len; + }; + write(onData, lengthWritten); + return result; + } + uint8_t checksumOptions(const uint64_le & knownContentSize) const { if (contentSize()) { @@ -200,7 +214,7 @@ struct Lz4Compressor : public Compressor { typedef Compressor::FlushLevel FlushLevel; Lz4Compressor(int level, uint8_t blockSizeId = 7, - uint64_t contentSize = 0) + uint64_t contentSize = -1) : head(blockSizeId, true /* independent blocks */, false /* block checksum */, @@ -231,16 +245,30 @@ struct Lz4Compressor : public Compressor { virtual void notifyInputSize(uint64_t inputSize) override { if (!writeHeader) { - throw Exception("lz4 input size already notified"); + throw Exception("lz4 input size notified too late"); } head.setContentSize(true); this->contentSize = inputSize; } - + + virtual bool canFixupLength() const override + { + return true; + } + + virtual std::string newHeaderForLength(uint64_t lengthWritten) const override + { + lz4::Header fixedHeader = this->head; + fixedHeader.setContentSize(lengthWritten); + std::string result = fixedHeader.asString(lengthWritten); + return result; + } + virtual void compress(const char * s, size_t n, const OnData & onData) override { if (writeHeader) { + auto asStringDebug = head.asString(contentSize); head.write(onData, contentSize); writeHeader = false; } @@ -588,10 +616,12 @@ struct Lz4Decompressor: public Decompressor { const GetDataFunction & getData, const ForEachBlockFunction & onBlock, const Allocate & allocate, - int maxParallelism) override + ComputeContext & compute, + const PriorityFn & priority) override { //return Decompressor::forEachBlockParallel(requestedBlockSize, getData, onBlock); - ThreadWorkGroup tp(maxParallelism); + + ComputeContext block_compute(compute); std::shared_ptr buf; size_t bufLen = 0; @@ -648,14 +678,16 @@ struct Lz4Decompressor: public Decompressor { size_t blockNumber = 0; size_t blockOffset = 0; size_t blockSize = header.blockSize(); - - while (state != FINISHED && state != STREAM_CHECKSUM && !aborted) { + while (!aborted) { while (state != FINISHED && state != STREAM_CHECKSUM && state != BLOCK_DATA) pumpState(); - if (state == FINISHED || state == STREAM_CHECKSUM || aborted) + if (state == FINISHED || state == STREAM_CHECKSUM) { + if (!onBlock(blockNumber, blockOffset, nullptr, 0, true)) + aborted = true; break; + } std::shared_ptr ourBlockData; @@ -685,8 +717,11 @@ struct Lz4Decompressor: public Decompressor { this, &aborted, &onBlock, - &allocate] () + &allocate, + &block_compute] () { + if (block_compute.relaxed_stopped()) + return; std::shared_ptr outputData; size_t outputLength; @@ -694,8 +729,7 @@ struct Lz4Decompressor: public Decompressor { std::tie(outputData, outputLength) = decompressBlock(std::move(ourBlockData), blockHeader, blockChecksum, allocate); - if (!onBlock(blockNumber, blockOffset, - outputData, outputLength)) + if (!onBlock(blockNumber, blockOffset, outputData, outputLength, false /* lastBlock */)) aborted = true; //if (header.streamChecksum()) { @@ -707,15 +741,16 @@ struct Lz4Decompressor: public Decompressor { blockOffset += blockSize; // Finish processing in a new thread - if (maxParallelism > 1) - tp.add(std::move(processBlock)); - else processBlock(); + if (block_compute.single_threaded()) + processBlock(); + else + block_compute.submit(priority(blockNumber), "lz4 decompress block", std::move(processBlock)); // Start of a new block again setCur(BLOCK_HEADER, blockHeader); } - tp.waitForAll(); + block_compute.work_until_finished(); return !aborted; } @@ -765,8 +800,7 @@ struct Lz4Decompressor: public Decompressor { uint64_le knownContentSize = 0; uint8_t checkBits = 0; uint32_le blockHeader = 0; - uint32_t blockLength() const { return blockHeader & ~lz4::NotCompressedMask; } -; + uint32_t blockLength() const { return blockHeader & ~lz4::NotCompressedMask; }; std::shared_ptr blockData; uint32_le blockChecksum = 0; uint32_le streamChecksum = 0; diff --git a/vfs/testing/compressor_test.cc b/vfs/testing/compressor_test.cc index 32640912b..035e9a197 100644 --- a/vfs/testing/compressor_test.cc +++ b/vfs/testing/compressor_test.cc @@ -89,3 +89,28 @@ BOOST_AUTO_TEST_CASE( test_compress_decompress_lz4_content_size ) BOOST_CHECK_EQUAL(size, stream2.readAll().length()); } + +BOOST_AUTO_TEST_CASE( test_compress_decompress_zstd_content_size ) +{ + string input_file = "mldb/vfs/testing/filter_streams_test.cc"; + string output_file = "tmp/compressor_test.zstd"; + string zstd_cmd = binDir / string("zstd -f " + input_file + " -o " + output_file); + + Scope_Exit(::unlink(output_file.c_str())); + system(zstd_cmd); + + std::ifstream stream(output_file.c_str()); + + char buf[200]; + stream.read(buf, 200); + + int numRead = stream.gcount(); + + auto decomp = Decompressor::create("zstd"); + + auto size = decomp->decompressedSize(buf, numRead, -1 /* total len unknown */); + + filter_istream stream2(output_file); + + BOOST_CHECK_EQUAL(size, stream2.readAll().length()); +} diff --git a/vfs/testing/filter_streams_test.cc b/vfs/testing/filter_streams_test.cc index 0f5dd0652..02d1d9e68 100644 --- a/vfs/testing/filter_streams_test.cc +++ b/vfs/testing/filter_streams_test.cc @@ -18,7 +18,6 @@ #include "mldb/arch/exception_handler.h" #include "mldb/compiler/filesystem.h" -#include #include #include #include @@ -29,7 +28,11 @@ #include "mldb/base/scope.h" #include "mldb/arch/exception_handler.h" +#include "mldb/base/exc_assert.h" #include "mldb/arch/demangle.h" +#include "mldb/base/hex_dump.h" +#include "mldb/utils/environment.h" +#include "mldb/base/iostream_adaptors.h" using namespace std; namespace fs = std::filesystem; @@ -40,8 +43,8 @@ using boost::unit_test::test_suite; #pragma clang diagnostic ignored "-Wunknown-warning-option" #pragma clang diagnostic ignored "-Wvla-cxx-extension" -fs::path binDir = std::string(getenv("BIN")); -fs::path tmpDir = std::string(getenv("TMP")); +EnvOption binDir("BIN", "./bin"); +EnvOption tmpDir("TMP", "./tmp"); struct FileCleanup { FileCleanup(const string & filename) @@ -72,14 +75,24 @@ void compress_using_tool(const std::string & input_file, const std::string & output_file, const std::string & command) { - system("cat " + input_file + " | " + command + " > " + output_file); + system(command + " " + input_file + " > " + output_file); } void decompress_using_tool(const std::string & input_file, const std::string & output_file, const std::string & command) { - system("cat " + input_file + " | " + command + " > " + output_file); + try { + //system("hexdump -C " + input_file + " | head -n 10"); + system("cat " + input_file + " | " + command + " > " + output_file); + } catch (...) { + std::ifstream stream(input_file); + constexpr size_t BUF_SIZE = 1024; + char buf[BUF_SIZE]; + size_t n = stream.readsome(buf, BUF_SIZE); + hex_dump(buf, n); + throw; + } } void compress_using_stream(const std::string & input_file, @@ -89,11 +102,12 @@ void compress_using_stream(const std::string & input_file, filter_ostream out(output_file); - char buf[16386]; + constexpr size_t BUF_SIZE = 16384; + char buf[BUF_SIZE]; while (in) { - in.read(buf, 16384); - int n = in.gcount(); + in.read(buf, BUF_SIZE); + auto n = in.gcount(); out.write(buf, n); } @@ -167,40 +181,40 @@ void test_compress_decompress(const std::string & input_file, BOOST_AUTO_TEST_CASE( test_compress_decompress_gz ) { string input_file = "mldb/vfs/testing/filter_streams_test.cc"; - test_compress_decompress(input_file, "gz", "gzip", "gzip -d"); + test_compress_decompress(input_file, "gz", "gzip -c", "gzip -d"); } BOOST_AUTO_TEST_CASE( test_compress_decompress_bzip2 ) { string input_file = "mldb/vfs/testing/filter_streams_test.cc"; - test_compress_decompress(input_file, "bz2", "bzip2", "bzip2 -d"); + test_compress_decompress(input_file, "bz2", "bzip2 -c", "bzip2 -d"); } BOOST_AUTO_TEST_CASE( test_compress_decompress_xz ) { string input_file = "mldb/vfs/testing/filter_streams_test.cc"; - test_compress_decompress(input_file, "xz", "xz", "xz -d"); + test_compress_decompress(input_file, "xz", "xz -c", "xz -d"); } BOOST_AUTO_TEST_CASE( test_compress_decompress_lz4 ) { string input_file = "mldb/vfs/testing/filter_streams_test.cc"; - string lz4_cmd = binDir / "lz4cli"; + string lz4_cmd = binDir.get() / "lz4cli"; test_compress_decompress(input_file, "lz4", lz4_cmd, lz4_cmd + " -d"); } BOOST_AUTO_TEST_CASE( test_compress_decompress_lz4_content_size ) { string input_file = "mldb/vfs/testing/filter_streams_test.cc"; - string lz4_cmd = binDir / "lz4cli --content-size"; - test_compress_decompress(input_file, "lz4", lz4_cmd, lz4_cmd + " -d"); + string lz4_cmd = binDir.get() / "lz4cli -B7 -BX --content-size"; + test_compress_decompress(input_file, "csize.lz4", lz4_cmd, lz4_cmd + " -d"); } BOOST_AUTO_TEST_CASE( test_compress_decompress_zstandard ) { string input_file = "mldb/vfs/testing/filter_streams_test.cc"; - string zstd_cmd = binDir / "zstd"; - test_compress_decompress(input_file, "zst", zstd_cmd, zstd_cmd + " -d"); + string zstd_cmd = binDir.get() / "zstd"; + test_compress_decompress(input_file, "zst", zstd_cmd + " -c", zstd_cmd + " -d"); } BOOST_AUTO_TEST_CASE( test_open_failure ) @@ -222,8 +236,15 @@ BOOST_AUTO_TEST_CASE( test_write_failure ) cerr << "fd = " << fd << endl; filter_ostream stream(fd); + BOOST_CHECK(!stream.eof()); + BOOST_CHECK(!stream.fail()); + BOOST_CHECK(!stream.bad()); + BOOST_CHECK_EQUAL(stream.rdstate(), std::ios::goodbit); - stream << "hello" << std::endl; + BOOST_CHECK(stream.good()); + + stream << "hello"; + stream << std::endl; { MLDB_TRACE_EXCEPTIONS(false); @@ -242,9 +263,9 @@ BOOST_AUTO_TEST_CASE( test_write_failure ) /* ensures that empty gz/bzip2/xz streams have a valid header */ BOOST_AUTO_TEST_CASE( test_empty_gzip ) { - fs::create_directories(tmpDir); + fs::create_directories(tmpDir.get()); - string fileprefix(tmpDir / "empty."); + string fileprefix(tmpDir.get() / "empty."); vector exts = { "gz", "bz2", "xz", "lz4", "zst" }; map compressions = { { "gz", "gzip" }, @@ -304,7 +325,7 @@ BOOST_AUTO_TEST_CASE( test_large_blocks ) block[i] = i ^ (i << 8) ^ (i << 16) ^ (1 << 24); } - string filename = tmpDir / "badfile.xz4"; + string filename = tmpDir.get() / "badfile.zstd"; FileCleanup cleanup(filename); @@ -419,11 +440,7 @@ struct ExceptionSource { } typedef char char_type; - struct category - : public boost::iostreams::bidirectional_device_tag, - public boost::iostreams::closable_tag - { - }; + using is_source = std::true_type; bool is_open() const { @@ -448,7 +465,7 @@ struct ExceptionSource { return n; } - void close(ios::openmode which) + void close() { if (throwType_ == ThrowType::ThrowOnClose) { onException_(exception_ptr()); @@ -466,9 +483,19 @@ struct RegisterExcHandlers { { shared_ptr handler; - handler.reset(new boost::iostreams::stream_buffer - (ExceptionSource(onException, throwType), - 1)); + handler.reset(new source_istreambuf(ExceptionSource(onException, throwType), 1)); + FsObjectInfo info; + info.exists = true; + return UriHandler(handler.get(), handler, info); + } + + static UriHandler + getExceptionSink(const OnUriHandlerException & onException, + ExceptionSource::ThrowType throwType) + { + shared_ptr handler; + + handler.reset(new sink_ostreambuf(ExceptionSource(onException, throwType), 1)); FsObjectInfo info; info.exists = true; return UriHandler(handler.get(), handler, info); @@ -491,7 +518,7 @@ struct RegisterExcHandlers { const std::map & options, const OnUriHandlerException & onException) { - return getExceptionSource(onException, ExceptionSource::ThrowOnWrite); + return getExceptionSink(onException, ExceptionSource::ThrowOnWrite); } static UriHandler @@ -501,7 +528,7 @@ struct RegisterExcHandlers { const std::map & options, const OnUriHandlerException & onException) { - return getExceptionSource(onException, ExceptionSource::ThrowOnClose); + return getExceptionSink(onException, ExceptionSource::ThrowOnClose); } void registerBuckets() @@ -584,17 +611,39 @@ BOOST_AUTO_TEST_CASE(test_filter_stream_exceptions_destruction_istream) action(); } - BOOST_AUTO_TEST_CASE(test_filter_stream_mapping) { filter_istream stream1("file://mldb/utils/testing/fixtures/hello.txt", { { "mapped", "true" } }); - BOOST_REQUIRE(stream1.mapped().first != nullptr); - BOOST_CHECK_EQUAL(strncmp(stream1.mapped().first, "hello", 5), 0); + BOOST_CHECK(!stream1.eof()); + BOOST_CHECK(!stream1.fail()); + BOOST_CHECK(!stream1.bad()); + BOOST_CHECK_EQUAL(stream1.rdstate(), std::ios::goodbit); + + const char * addr; + size_t size; + size_t capacity; + + std::tie(addr, size, capacity) = stream1.mapped(); + cerr << "addr = " << (void *)addr << endl; + cerr << "size = " << size << endl; + cerr << "capacity = " << capacity << endl; + + BOOST_REQUIRE(addr != nullptr); + BOOST_CHECK_EQUAL(strncmp(addr, "hello", 5), 0); + BOOST_CHECK_GE(strncmp(std::get<0>(stream1.mapped()), "hello", 5), 0); std::string str; + BOOST_CHECK(stream1.good()); getline(stream1, str); + BOOST_CHECK(stream1.good()); + + int c MLDB_UNUSED = stream1.get(); + BOOST_CHECK(!stream1.bad()); + BOOST_CHECK(stream1.fail()); + BOOST_CHECK(stream1.eof()); + BOOST_CHECK_EQUAL(str, "hello"); stream1.close(); @@ -605,7 +654,44 @@ BOOST_AUTO_TEST_CASE(test_filter_stream_mapping) getline(stream2, str); BOOST_CHECK_EQUAL(str, "hello"); + BOOST_CHECK(!stream2.fail()); + BOOST_CHECK(!stream2.bad()); + + getline(stream2, str); + + BOOST_CHECK_EQUAL(str, ""); + BOOST_CHECK(stream2.eof()); + BOOST_CHECK(stream2.fail()); + BOOST_CHECK(!stream2.bad()); stream2.close(); + + // Verify that the mapped stream has extra space beyond the end even when it's + // a multiple of the page size (16kb is chosen instead of 4k because that's the + // page size of arm64 based macs, which have the largest pages of supported + // hosts for MLDB). + filter_istream stream3("file://mldb/utils/testing/fixtures/16kbofones.txt", + { { "mapped", "true" } }); + + std::tie(addr, size, capacity) = stream3.mapped(); + cerr << "addr = " << (const void *)addr << endl; + cerr << "size = " << size << endl; + cerr << "capacity = " << capacity << endl; + + BOOST_REQUIRE(addr != nullptr); + BOOST_REQUIRE_EQUAL(size, 16384); + BOOST_REQUIRE_GE(capacity, 16384 + MAPPING_EXTRA_CAPACITY); + + // Verify the contents of the mapped file + for (size_t i = 0; i < 16384; ++i) { + BOOST_CHECK_EQUAL(addr[i], '1'); + } + + // Verify that we can read beyond the end and that it returns zeros (anything + // else indicates uninitialized memory which is a security risk and will trigger + // undefined behaviour / address sanitizer / valgrind issues). + for (size_t i = size; i < capacity; ++i) { + BOOST_CHECK_EQUAL(addr[i], 0); + } } BOOST_AUTO_TEST_CASE(test_empty_filter_stream_mapped) @@ -614,9 +700,9 @@ BOOST_AUTO_TEST_CASE(test_empty_filter_stream_mapped) stream.open("file://mldb/utils/testing/fixtures/empty.txt", { { "mapped", "true" } }); // we cannot map an empty file - auto mapped = stream.mapped(); - BOOST_CHECK_EQUAL(mapped.first, (char *)nullptr); - BOOST_CHECK_EQUAL(mapped.second, 0); + auto [addr, size, capacity] = stream.mapped(); + BOOST_CHECK_EQUAL(addr, (char *)nullptr); + BOOST_CHECK_EQUAL(size, 0); // but we can read it without failing BOOST_CHECK_EQUAL(stream.readAll(), ""); } @@ -684,4 +770,17 @@ BOOST_AUTO_TEST_CASE(test_file_stream_tellg) stream.close(); BOOST_CHECK_EQUAL(stream.tellg(), -1); } + + { + filter_istream stream; + stream.open("mldb/vfs/testing/fixtures/minimal.csv", {{ "mapped", "true" }}); + BOOST_CHECK_EQUAL(stream.tellg(), 0); + std::string line; + getline(stream, line); + BOOST_CHECK_EQUAL(line, "a,b,c"); + BOOST_CHECK_EQUAL(stream.tellg(), 6); + getline(stream, line); + BOOST_CHECK_EQUAL(line, "d,e,f"); + BOOST_CHECK_EQUAL(stream.tellg(), 12); + } } diff --git a/vfs/testing/fixtures/minimal.csv b/vfs/testing/fixtures/minimal.csv new file mode 100644 index 000000000..2e8f4cae1 --- /dev/null +++ b/vfs/testing/fixtures/minimal.csv @@ -0,0 +1,2 @@ +a,b,c +d,e,f diff --git a/vfs/vfs.mk b/vfs/vfs.mk index e2ace5344..815025c28 100644 --- a/vfs/vfs.mk +++ b/vfs/vfs.mk @@ -2,22 +2,22 @@ LIBVFS_SOURCES := \ fs_utils.cc \ - filter_streams.cc \ + filter_streams.cc \ http_streambuf.cc \ compressor.cc \ exception_ptr.cc \ - libdb_initialization.cc \ - \ + libdb_init.cc \ gzip.cc \ bzip2.cc \ lzma.cc \ zstandard.cc \ snappy.cc \ lz4.cc \ + compressibility.cc \ + LIBVFS_LINK := \ arch \ - boost_iostreams \ types \ $(STD_FILESYSTEM_LIBNAME) \ http \ diff --git a/vfs/zstandard.cc b/vfs/zstandard.cc index fe157608b..39eb51298 100644 --- a/vfs/zstandard.cc +++ b/vfs/zstandard.cc @@ -6,11 +6,17 @@ Zstandard compressor and decompressors. */ +#define ZSTD_STATIC_LINKING_ONLY 1 + #include "compressor.h" #include "mldb/base/exc_assert.h" #include "mldb/ext/zstd/lib/zstd.h" +#include "mldb/base/thread_pool.h" +#include "mldb/arch/exception.h" +#include "mldb/arch/endian.h" #include #include +#include using namespace std; @@ -134,9 +140,13 @@ struct ZStandardDecompressor: public Decompressor { if (res == ZSTD_CONTENTSIZE_UNKNOWN) { return LENGTH_UNKNOWN; // 0 means zero length OR unknown } - else if (ZSTD_isError(res)) { + else if (res == ZSTD_CONTENTSIZE_ERROR) { return LENGTH_INSUFFICIENT_DATA; } + else if (ZSTD_isError(res)) { + throw Exception("Error getting decompressed length of zstandard stream: %s", + ZSTD_getErrorName(res)); + } else return res; } @@ -158,7 +168,136 @@ struct ZStandardDecompressor: public Decompressor { } } } - + + virtual bool + forEachBlockParallel(size_t requestedBlockSize, + const GetDataFunction & getData, + const ForEachBlockFunction & onBlock, + const Allocate & allocate, + ComputeContext & compute, + const PriorityFn & priority) override + { + return Decompressor::forEachBlockParallel(requestedBlockSize, getData, onBlock, allocate, compute, priority); + // To do this, we would need to: + // - Get fixed sized chunks from the underlying stream + // - Pass each to a stream + // - For each one, scan for the magic characters to indicate the beginning + // - Decompress the blocks (taking into account the possibility that there are + // spurious magic markers) + // - Scan into the next one's blocks to finish off the last one + // - Verify that each before and after block agrees on what they are scanning for +#if 0 + ThreadWorkGroup tp(maxParallelism); + + std::shared_ptr lastBlock; + std::shared_ptr currentBlock; + const char * currentData = nullptr; + size_t currentBlockLeft = 0; + + auto makeAvail = [&] (size_t numBytes) -> std::span + { + if (numBytes > currentBlockLeft) { + auto [newBlock, newBlockSize] = getData(numBytes); + if (currentBlockLeft == 0) { + // First block or previous one completely used + cerr << "first block" << endl; + currentBlock = std::move(newBlock); + currentBlockLeft = newBlockSize; + currentData = currentBlock.get(); + } + else { + if (newBlock.get() == currentData + currentBlockLeft) { + // Contiguous; must be mapped + cerr << "contiguous" << endl; + lastBlock = std::move(currentBlock); + currentBlock = std::move(newBlock); + currentBlockLeft += newBlockSize; + } + else { + // Combine them together (slow, should try to avoid making this happen) + cerr << "combined" << endl; + std::shared_ptr combinedBlock + (new char[newBlockSize + currentBlockLeft], + [] (auto p) { delete[] p; }); + memcpy(combinedBlock.get(), currentData, currentBlockLeft); + memcpy(combinedBlock.get() + currentBlockLeft, newBlock.get(), newBlockSize); + lastBlock = {}; + currentBlock = std::move(combinedBlock); + currentData = combinedBlock.get(); + currentBlockLeft += newBlockSize; + } + } + } + + ExcAssertLessEqual(numBytes, currentBlockLeft); + + return { currentData, numBytes }; + }; + + auto consume = [&] (size_t numBytes) + { + ExcAssertGreaterEqual(currentBlockLeft, numBytes); + currentData += numBytes; + currentBlockLeft -= numBytes; + }; + + //auto magicBytes = makeAvail(4); + //uint32_le magic; + //std::memcpy(&magic, magicBytes.data(), 4); + //if (magic != ZSTD_MAGICNUMBER) + // throw MLDB::Exception("Corrupted zstandard file: magic number is wrong"); + + std::shared_ptr context(ZSTD_createDCtx(), ZSTD_freeDCtx); + std::span header = makeAvail(ZSTD_FRAMEHEADERSIZE_MAX); + ZSTD_frameHeader frameHeader; + cerr << "Frame header: max size " << ZSTD_FRAMEHEADERSIZE_MAX << endl; + hex_dump(header.data(), header.size()); + size_t headerResult = ZSTD_getFrameHeader(&frameHeader, header.data(), header.size()); + if (headerResult != 0) + throw MLDB::Exception("Corrupted ZStandard file: frame header not available"); + //consume(frameHeader.headerSize); + + cerr << "dict id " << frameHeader.dictID << endl; + cerr << "content size " << frameHeader.frameContentSize << endl; + cerr << "window size " << frameHeader.windowSize << endl; + cerr << "frame type " << frameHeader.frameType << endl; + cerr << "header size " << frameHeader.headerSize << endl; + cerr << "block size max " << frameHeader.blockSizeMax << endl; + + size_t outputBufSize = frameHeader.windowSize * 2; + std::shared_ptr outputBuf(new char[outputBufSize]); + char * outputBufPtr = outputBuf.get(); + char * outputBufEnd = outputBufPtr + outputBufSize; + + size_t res = ZSTD_decompressBegin(context.get()); + //cerr << "res = " << res << endl; + if (ZSTD_isError(res)) { + throw Exception("Error beginning decompression: %s", + ZSTD_getErrorName(res)); + } + for (size_t i = 0; i < 5; ++i) { + size_t nextSize = ZSTD_nextSrcSizeToDecompress(context.get()); + cerr << "next size is " << nextSize << endl; + if (ZSTD_isError(nextSize)) { + throw Exception("Error getting size to decompress: %s", + ZSTD_getErrorName(nextSize)); + } + auto data = makeAvail(nextSize); + consume(nextSize); + size_t written = ZSTD_decompressContinue(context.get(), outputBufPtr, outputBufEnd - outputBufPtr, + data.data(), data.size()); + cerr << "written " << written << " bytes" << endl; + if (ZSTD_isError(written)) { + throw Exception("Error continuing decompression: %s", + ZSTD_getErrorName(written)); + } + outputBufPtr += written; + } + + throw MLDB::Exception("not finished"); +#endif + } + virtual void finish(const OnData & onData) override { } diff --git a/vfs_handlers/aws/s3_handlers.cc b/vfs_handlers/aws/s3_handlers.cc index f038a0114..c99351218 100644 --- a/vfs_handlers/aws/s3_handlers.cc +++ b/vfs_handlers/aws/s3_handlers.cc @@ -11,7 +11,6 @@ #include #include #include -#include #include "mldb/utils/string_functions.h" #include "mldb/base/exc_assert.h" #include "mldb/base/hash.h" @@ -23,6 +22,9 @@ #include "mldb/arch/wait_on_address.h" #include "mldb/utils/split.h" #include "mldb/utils/starts_with.h" +#include "mldb/base/iostream_adaptors.h" +#include + using namespace std; using namespace MLDB; @@ -485,12 +487,16 @@ struct StreamingDownloadSource { } typedef char char_type; + using is_source = std::true_type; + +#if 0 struct category : //input_seekable, boost::iostreams::input, boost::iostreams::device_tag, boost::iostreams::closable_tag { }; +#endif std::streamsize read(char_type * s, std::streamsize n) { @@ -519,7 +525,7 @@ makeStreamingDownload(const Utf8String & uri) { std::unique_ptr result; StreamingDownloadSource source(uri); - result.reset(new boost::iostreams::stream_buffer + result.reset(new source_istreambuf (source,131072)); return make_pair(std::move(result), source.info()); } @@ -755,12 +761,16 @@ struct StreamingUploadSource { } typedef char char_type; + + using is_sink = std::true_type; +#if 0 struct category : public boost::iostreams::output, public boost::iostreams::device_tag, public boost::iostreams::closable_tag { }; +#endif std::streamsize write(const char_type* s, std::streamsize n) { @@ -789,7 +799,7 @@ makeStreamingUpload(const Utf8String & uri, const S3Api::ObjectMetadata & metadata) { std::unique_ptr result; - result.reset(new boost::iostreams::stream_buffer + result.reset(new sink_ostreambuf (StreamingUploadSource(uri, onException, metadata), 131072)); return result; diff --git a/vfs_handlers/sftp.cc b/vfs_handlers/sftp.cc index 4aa63f598..d306ea3af 100644 --- a/vfs_handlers/sftp.cc +++ b/vfs_handlers/sftp.cc @@ -8,7 +8,6 @@ */ #include -#include #include "mldb/vfs_handlers/sftp.h" #include #include @@ -31,6 +30,7 @@ #include #include #include +#include "mldb/base/iostream_adaptors.h" using namespace std; @@ -638,12 +638,15 @@ struct SftpStreamingDownloadSource { } typedef char char_type; +#if 0 struct category : public boost::iostreams::input /*_seekable*/, public boost::iostreams::device_tag, public boost::iostreams::closable_tag { }; - +#endif + using is_source = std::true_type; + struct Impl { Impl() : owner(0), offset(0), handle(0) @@ -682,7 +685,7 @@ struct SftpStreamingDownloadSource { std::streamsize read(char_type* s, std::streamsize n) { - BOOST_STATIC_ASSERT(sizeof(char_type) == 1); + static_assert(sizeof(char_type) == 1, "only works for single-byte chars"); ssize_t numRead = libssh2_sftp_read(handle, s, n); if (numRead < 0) { @@ -733,12 +736,15 @@ struct SftpStreamingUploadSource { } typedef char char_type; +#if 0 struct category : public boost::iostreams::output, public boost::iostreams::device_tag, public boost::iostreams::closable_tag { }; +#endif + using is_source = std::true_type; struct Impl { Impl() @@ -884,7 +890,7 @@ streamingUploadStreambuf(const Utf8String & path, const OnUriHandlerException & onException) const { std::unique_ptr result; - result.reset(new boost::iostreams::stream_buffer + result.reset(new sink_ostreambuf (SftpStreamingUploadSource(this, path, onException), 131072)); return result; @@ -906,7 +912,7 @@ SftpConnection:: streamingDownloadStreambuf(const Utf8String & path) const { std::unique_ptr result; - result.reset(new boost::iostreams::stream_buffer + result.reset(new source_istreambuf (SftpStreamingDownloadSource(this, path), 131072)); return result;