From c31fcaaad38b68fa170cf9fd900f2237c24016e3 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Tue, 13 May 2025 11:31:34 +0100 Subject: [PATCH] Squashed 'src/secp256k1/' changes from 0cdc758a56..4187a46649 4187a46649 Merge bitcoin-core/secp256k1#1492: tests: Add Wycheproof ECDH vectors e266ba11ae tests: Add Wycheproof ECDH vectors 13906b7154 Merge bitcoin-core/secp256k1#1669: gitignore: Add Python cache files c1bcb03276 gitignore: Add Python cache files 70f149b9a1 Merge bitcoin-core/secp256k1#1662: bench: add ellswift to bench help output 6b3fe51fb6 bench: add ellswift to bench help output d84bb83e26 Merge bitcoin-core/secp256k1#1661: configure: Show exhaustive tests in summary 3f54ed8c1b Merge bitcoin-core/secp256k1#1659: include: remove WARN_UNUSED_RESULT for functions always returning 1 20b05c9d3f configure: Show exhaustive tests in summary e56716a3bc Merge bitcoin-core/secp256k1#1660: ci: Fix exiting from ci.sh on error d87c3bc58f ci: Fix exiting from ci.sh on error 1b6e081538 include: remove WARN_UNUSED_RESULT for functions always returning 1 2abb35b034 Merge bitcoin-core/secp256k1#1657: tests: remove unused uncounting_illegal_callback_fn 51907fa918 tests: remove unused uncounting_illegal_callback_fn a7a5117144 Merge bitcoin-core/secp256k1#1359: Fix symbol visibility issues, add test for it 13ed6f65dc Merge bitcoin-core/secp256k1#1593: Remove deprecated `_ec_privkey_{negate,tweak_add,tweak_mul}` aliases from API d1478763a5 build: Drop no longer needed `-fvisibility=hidden` compiler option 8ed1d83d92 ci: Run `tools/symbol-check.py` 41d32ab2de test: Add `tools/symbol-check.py` 88548058b3 Introduce `SECP256K1_LOCAL_VAR` macro 03bbe8c615 Merge bitcoin-core/secp256k1#1655: gha: Print all *.log files, in a separate action 59860bcc24 gha: Print all *.log files, in a separate action 4ba1ba2af9 Merge bitcoin-core/secp256k1#1647: cmake: Adjust diagnostic flags for `clang-cl` abd25054a1 Merge bitcoin-core/secp256k1#1656: musig: Fix clearing of pubnonces 961ec25a83 musig: Fix clearing of pubnonces 3186082387 Merge bitcoin-core/secp256k1#1614: Add _ge_set_all_gej and use it in musig for own public nonces 6c2a39dafb Merge bitcoin-core/secp256k1#1639: Make static context const 37d2c60bec Remove deprecated _ec_privkey_{negate,tweak_add,tweak_mul} aliases 432ac57705 Make static context const 1b1fc09341 Merge bitcoin-core/secp256k1#1642: Verify `compressed` argument in `secp256k1_eckey_pubkey_serialize` c0d9480fbb Merge bitcoin-core/secp256k1#1654: use `EXIT_` constants over magic numbers for indicating program execution status 13d389629a CONTRIBUTING: mention that `EXIT_` codes should be used c855581728 test, bench, precompute_ecmult: use `EXIT_...` constants for `main` return values 965393fcea examples: use `EXIT_...` constants for `main` return values 2e3bf13653 Merge bitcoin-core/secp256k1#1646: README: add instructions for verifying GPG signatures b682dbcf84 README: add instructions for verifying GPG signatures 00774d0723 Merge bitcoin-core/secp256k1#1650: schnorrsig: clear out masked secret key in BIP-340 nonce function a82287fb85 schnorrsig: clear out masked secret key in BIP-340 nonce function 4c50d73dd9 ci: Add new "Windows (clang-cl)" job 84c0bd1f72 cmake: Adjust diagnostic flags for clang-cl f79f46c703 Merge bitcoin-core/secp256k1#1641: doc: Improve cmake instructions in README 2ac9f558c4 doc: Improve cmake instructions in README 1823594761 Verify `compressed` argument in `secp256k1_eckey_pubkey_serialize` 8deef00b33 Merge bitcoin-core/secp256k1#1634: Fix some misspellings 39705450eb Fix some misspellings ec329c2501 Merge bitcoin-core/secp256k1#1633: release cleanup: bump version after 0.6.0 c97059f594 release cleanup: bump version after 0.6.0 64228a648f musig: Use _ge_set_all_gej for own public nonces 300aab1c05 tests: Improve _ge_set_all_gej(_var) tests 365f274ce3 group: Simplify secp256k1_ge_set_all_gej d3082ddead group: Add constant-time secp256k1_ge_set_all_gej git-subtree-dir: src/secp256k1 git-subtree-split: 4187a4664914dc6f6fb6a619c6b85c854fc33033 --- .cirrus.yml | 3 + .github/actions/print-logs/action.yml | 34 + .github/workflows/ci.yml | 295 +- .gitignore | 4 + CHANGELOG.md | 8 + CMakeLists.txt | 22 +- CONTRIBUTING.md | 1 + Makefile.am | 15 +- README.md | 63 +- ci/ci.sh | 20 +- ci/linux-debian.Dockerfile | 6 +- configure.ac | 12 +- examples/ecdh.c | 9 +- examples/ecdsa.c | 13 +- examples/ellswift.c | 11 +- examples/musig.c | 15 +- examples/schnorr.c | 13 +- include/secp256k1.h | 34 +- include/secp256k1_extrakeys.h | 8 +- src/bench.c | 27 +- src/bench.h | 2 +- src/bench_ecmult.c | 7 +- src/bench_internal.c | 5 +- src/ctime_tests.c | 5 +- src/eckey_impl.h | 3 + src/group.h | 6 +- src/group_impl.h | 38 + src/modules/ecdh/Makefile.am.include | 1 + src/modules/ecdh/tests_impl.h | 41 + src/modules/musig/session_impl.h | 18 +- src/modules/schnorrsig/main_impl.h | 2 + src/precompute_ecmult.c | 5 +- src/precompute_ecmult_gen.c | 5 +- src/precomputed_ecmult.h | 6 +- src/precomputed_ecmult_gen.h | 4 +- src/scalar_impl.h | 4 +- src/secp256k1.c | 18 +- src/tests.c | 58 +- src/tests_exhaustive.c | 4 +- src/util.h | 2 +- src/util_local_visibility.h | 12 + src/wycheproof/WYCHEPROOF_COPYING | 11 +- src/wycheproof/ecdh_secp256k1_test.h | 2008 ++++ src/wycheproof/ecdh_secp256k1_test.json | 8441 +++++++++++++++++ .../ecdsa_secp256k1_sha256_bitcoin_test.h | 2 +- tools/symbol-check.py | 72 + tools/tests_wycheproof_generate_ecdh.py | 166 + ....py => tests_wycheproof_generate_ecdsa.py} | 10 +- tools/wycheproof_utils.py | 12 + 49 files changed, 11170 insertions(+), 411 deletions(-) create mode 100644 .github/actions/print-logs/action.yml create mode 100644 src/util_local_visibility.h create mode 100644 src/wycheproof/ecdh_secp256k1_test.h create mode 100644 src/wycheproof/ecdh_secp256k1_test.json create mode 100755 tools/symbol-check.py create mode 100755 tools/tests_wycheproof_generate_ecdh.py rename tools/{tests_wycheproof_generate.py => tests_wycheproof_generate_ecdsa.py} (95%) create mode 100644 tools/wycheproof_utils.py diff --git a/.cirrus.yml b/.cirrus.yml index 81a4f043285..023cd1916c2 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -29,6 +29,8 @@ env: BENCH: yes SECP256K1_BENCH_ITERS: 2 CTIMETESTS: yes + SYMBOL_CHECK: yes + VIRTUAL_ENV: /root/venv # Compile and run the tests EXAMPLES: yes @@ -53,6 +55,7 @@ cat_logs_snippet: &CAT_LOGS linux_arm64_container_snippet: &LINUX_ARM64_CONTAINER env_script: + - export PATH="$VIRTUAL_ENV/bin:$PATH" - env | tee /tmp/env build_script: - DOCKER_BUILDKIT=1 docker build --file "ci/linux-debian.Dockerfile" --tag="ci_secp256k1_arm" diff --git a/.github/actions/print-logs/action.yml b/.github/actions/print-logs/action.yml new file mode 100644 index 00000000000..33de35cb342 --- /dev/null +++ b/.github/actions/print-logs/action.yml @@ -0,0 +1,34 @@ +name: "Print logs" +description: "Print the log files produced by ci/ci.sh" +runs: + using: "composite" + steps: + - shell: bash + run: | + # Print the log files produced by ci/ci.sh + + # Helper functions + group() { + title=$1 + echo "::group::$title" + } + endgroup() { + echo "::endgroup::" + } + cat_file() { + file=$1 + group "$file" + cat "$file" + endgroup + } + + # Print all *.log files + shopt -s nullglob + for file in *.log; do + cat_file "$file" + done + + # Print environment + group "CI env" + env + endgroup diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 54b2fab1c46..a3108d6bb1a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,6 +40,7 @@ env: BENCH: 'yes' SECP256K1_BENCH_ITERS: 2 CTIMETESTS: 'yes' + SYMBOL_CHECK: 'yes' # Compile and run the examples. EXAMPLES: 'yes' @@ -107,23 +108,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} i686_debian: name: "i686: Linux (Debian stable)" @@ -157,23 +144,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} s390x_debian: name: "s390x (big-endian): Linux (Debian stable, QEMU)" @@ -203,23 +176,10 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} + arm32_debian: name: "ARM32: Linux (Debian stable, QEMU)" @@ -257,23 +217,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} arm64_debian: name: "ARM64: Linux (Debian stable, QEMU)" @@ -314,23 +260,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} ppc64le_debian: name: "ppc64le: Linux (Debian stable, QEMU)" @@ -360,23 +292,10 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} + valgrind_debian: name: "Valgrind (memcheck)" @@ -416,23 +335,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} sanitizers_debian: name: "UBSan, ASan, LSan" @@ -461,6 +366,7 @@ jobs: ASAN_OPTIONS: 'strict_string_checks=1:detect_stack_use_after_return=1:detect_leaks=1' LSAN_OPTIONS: 'use_unaligned=1' SECP256K1_TEST_ITERS: 32 + SYMBOL_CHECK: 'no' steps: - name: Checkout @@ -473,23 +379,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} msan_debian: name: "MSan" @@ -525,6 +417,7 @@ jobs: SECP256K1_TEST_ITERS: 32 ASM: 'no' WITH_VALGRIND: 'no' + SYMBOL_CHECK: 'no' steps: - name: Checkout @@ -537,23 +430,10 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} + mingw_debian: name: ${{ matrix.configuration.job_name }} @@ -593,23 +473,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} x86_64-macos-native: name: "x86_64: macOS Ventura, Valgrind" @@ -620,6 +486,7 @@ jobs: CC: 'clang' HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALL_CLEANUP: 1 + SYMBOL_CHECK: 'no' strategy: fail-fast: false @@ -652,23 +519,15 @@ jobs: env: ${{ matrix.env_vars }} run: ./ci/ci.sh - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Symbol check + run: | + python3 --version + python3 -m pip install lief + python3 ./tools/symbol-check.py .libs/libsecp256k1.dylib + + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} arm64-macos-native: name: "ARM64: macOS Sonoma" @@ -681,6 +540,7 @@ jobs: HOMEBREW_NO_INSTALL_CLEANUP: 1 WITH_VALGRIND: 'no' CTIMETESTS: 'no' + SYMBOL_CHECK: 'no' strategy: fail-fast: false @@ -708,23 +568,20 @@ jobs: env: ${{ matrix.env_vars }} run: ./ci/ci.sh - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Symbol check + env: + VIRTUAL_ENV: '${{ github.workspace }}/venv' + run: | + python3 --version + python3 -m venv $VIRTUAL_ENV + export PATH="$VIRTUAL_ENV/bin:$PATH" + python3 -m pip install lief + python3 ./tools/symbol-check.py .libs/libsecp256k1.dylib + + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} + win64-native: name: ${{ matrix.configuration.job_name }} @@ -737,6 +594,7 @@ jobs: configuration: - job_name: 'x64 (MSVC): Windows (VS 2022, shared)' cmake_options: '-A x64 -DBUILD_SHARED_LIBS=ON' + symbol_check: 'true' - job_name: 'x64 (MSVC): Windows (VS 2022, static)' cmake_options: '-A x64 -DBUILD_SHARED_LIBS=OFF' - job_name: 'x64 (MSVC): Windows (VS 2022, int128_struct)' @@ -746,6 +604,8 @@ jobs: cpp_flags: '/DSECP256K1_MSVC_MULH_TEST_OVERRIDE' - job_name: 'x86 (MSVC): Windows (VS 2022)' cmake_options: '-A Win32' + - job_name: 'x64 (MSVC): Windows (clang-cl)' + cmake_options: '-T ClangCL' steps: - name: Checkout @@ -763,6 +623,13 @@ jobs: run: | cd build/bin/RelWithDebInfo && file *tests.exe bench*.exe libsecp256k1-*.dll || true + - name: Symbol check + if: ${{ matrix.configuration.symbol_check }} + run: | + py -3 --version + py -3 -m pip install lief + py -3 .\tools\symbol-check.py build\bin\RelWithDebInfo\libsecp256k1-5.dll + - name: Check run: | ctest -C RelWithDebInfo --test-dir build -j ([int]$env:NUMBER_OF_PROCESSORS + 1) @@ -813,23 +680,9 @@ jobs: dockerfile: ./ci/linux-debian.Dockerfile tag: linux-debian-image - - run: cat tests.log || true - if: ${{ always() }} - - run: cat noverify_tests.log || true - if: ${{ always() }} - - run: cat exhaustive_tests.log || true - if: ${{ always() }} - - run: cat ctime_tests.log || true - if: ${{ always() }} - - run: cat bench.log || true - if: ${{ always() }} - - run: cat config.log || true - if: ${{ always() }} - - run: cat test_env.log || true - if: ${{ always() }} - - name: CI env - run: env - if: ${{ always() }} + - name: Print logs + uses: ./.github/actions/print-logs + if: ${{ !cancelled() }} cxx_headers_debian: name: "C++ (public headers)" diff --git a/.gitignore b/.gitignore index bffba8cb2c9..ce33a84adf4 100644 --- a/.gitignore +++ b/.gitignore @@ -65,3 +65,7 @@ libsecp256k1.pc /CMakeUserPresets.json # Default CMake build directory. /build + +### Python +__pycache__/ +*.py[oc] diff --git a/CHANGELOG.md b/CHANGELOG.md index ee447c0c1c7..7042171135d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +#### Removed +- Removed previously deprecated function aliases `secp256k1_ec_privkey_negate`, `secp256k1_ec_privkey_tweak_add` and + `secp256k1_ec_privkey_tweak_mul`. Use `secp256k1_ec_seckey_negate`, `secp256k1_ec_seckey_tweak_add` and + `secp256k1_ec_seckey_tweak_mul` instead. + ## [0.6.0] - 2024-11-04 #### Added @@ -162,6 +169,7 @@ This version was in fact never released. The number was given by the build system since the introduction of autotools in Jan 2014 (ea0fe5a5bf0c04f9cc955b2966b614f5f378c6f6). Therefore, this version number does not uniquely identify a set of source files. +[unreleased]: https://github.com/bitcoin-core/secp256k1/compare/v0.6.0...HEAD [0.6.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.1...v0.6.0 [0.5.1]: https://github.com/bitcoin-core/secp256k1/compare/v0.5.0...v0.5.1 [0.5.0]: https://github.com/bitcoin-core/secp256k1/compare/v0.4.1...v0.5.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index 041bfa3dca0..2b7737146d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ project(libsecp256k1 # The package (a.k.a. release) version is based on semantic versioning 2.0.0 of # the API. All changes in experimental modules are treated as # backwards-compatible and therefore at most increase the minor version. - VERSION 0.6.0 + VERSION 0.6.1 DESCRIPTION "Optimized C library for ECDSA signatures and secret/public key operations on curve secp256k1." HOMEPAGE_URL "https://github.com/bitcoin-core/secp256k1" LANGUAGES C @@ -32,7 +32,7 @@ endif() # All changes in experimental modules are treated as if they don't affect the # interface and therefore only increase the revision. set(${PROJECT_NAME}_LIB_VERSION_CURRENT 5) -set(${PROJECT_NAME}_LIB_VERSION_REVISION 0) +set(${PROJECT_NAME}_LIB_VERSION_REVISION 1) set(${PROJECT_NAME}_LIB_VERSION_AGE 0) #============================= @@ -55,7 +55,7 @@ option(SECP256K1_INSTALL "Enable installation." ${PROJECT_IS_TOP_LEVEL}) ## Modules # We declare all options before processing them, to make sure we can express -# dependendencies while processing. +# dependencies while processing. option(SECP256K1_ENABLE_MODULE_ECDH "Enable ECDH module." ON) option(SECP256K1_ENABLE_MODULE_RECOVERY "Enable ECDSA pubkey recovery module." OFF) option(SECP256K1_ENABLE_MODULE_EXTRAKEYS "Enable extrakeys module." ON) @@ -242,17 +242,21 @@ endif() include(TryAppendCFlags) if(MSVC) - # Keep the following commands ordered lexicographically. + # For both cl and clang-cl compilers. try_append_c_flags(/W3) # Production quality warning level. - try_append_c_flags(/wd4146) # Disable warning C4146 "unary minus operator applied to unsigned type, result still unsigned". - try_append_c_flags(/wd4244) # Disable warning C4244 "'conversion' conversion from 'type1' to 'type2', possible loss of data". - try_append_c_flags(/wd4267) # Disable warning C4267 "'var' : conversion from 'size_t' to 'type', possible loss of data". # Eliminate deprecation warnings for the older, less secure functions. add_compile_definitions(_CRT_SECURE_NO_WARNINGS) +else() + try_append_c_flags(-Wall) # GCC >= 2.95 and probably many other compilers. +endif() +if(CMAKE_C_COMPILER_ID STREQUAL "MSVC") + # Keep the following commands ordered lexicographically. + try_append_c_flags(/wd4146) # Disable warning C4146 "unary minus operator applied to unsigned type, result still unsigned". + try_append_c_flags(/wd4244) # Disable warning C4244 "'conversion' conversion from 'type1' to 'type2', possible loss of data". + try_append_c_flags(/wd4267) # Disable warning C4267 "'var' : conversion from 'size_t' to 'type', possible loss of data". else() # Keep the following commands ordered lexicographically. try_append_c_flags(-pedantic) - try_append_c_flags(-Wall) # GCC >= 2.95 and probably many other compilers. try_append_c_flags(-Wcast-align) # GCC >= 2.95. try_append_c_flags(-Wcast-align=strict) # GCC >= 8.0. try_append_c_flags(-Wconditional-uninitialized) # Clang >= 3.0 only. @@ -267,8 +271,6 @@ else() try_append_c_flags(-Wundef) endif() -set(CMAKE_C_VISIBILITY_PRESET hidden) - set(print_msan_notice) if(SECP256K1_BUILD_CTIME_TESTS) include(CheckMemorySanitizer) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a366d38b0ec..80890fb7068 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -74,6 +74,7 @@ In addition, libsecp256k1 tries to maintain the following coding conventions: * User-facing comment lines in headers should be limited to 80 chars if possible. * All identifiers in file scope should start with `secp256k1_`. * Avoid trailing whitespace. +* Use the constants `EXIT_SUCCESS`/`EXIT_FAILURE` (defined in `stdlib.h`) to indicate program execution status for examples and other binaries. ### Tests diff --git a/Makefile.am b/Makefile.am index a95b4809d48..d511853b058 100644 --- a/Makefile.am +++ b/Makefile.am @@ -47,6 +47,7 @@ noinst_HEADERS += src/assumptions.h noinst_HEADERS += src/checkmem.h noinst_HEADERS += src/testutil.h noinst_HEADERS += src/util.h +noinst_HEADERS += src/util_local_visibility.h noinst_HEADERS += src/int128.h noinst_HEADERS += src/int128_impl.h noinst_HEADERS += src/int128_native.h @@ -249,9 +250,17 @@ maintainer-clean-local: clean-precomp ### (see the comments in the previous section for detailed rationale) TESTVECTORS = src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h +if ENABLE_MODULE_ECDH +TESTVECTORS += src/wycheproof/ecdh_secp256k1_test.h +endif + src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h: mkdir -p $(@D) - python3 $(top_srcdir)/tools/tests_wycheproof_generate.py $(top_srcdir)/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json > $@ + python3 $(top_srcdir)/tools/tests_wycheproof_generate_ecdsa.py $(top_srcdir)/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json > $@ + +src/wycheproof/ecdh_secp256k1_test.h: + mkdir -p $(@D) + python3 $(top_srcdir)/tools/tests_wycheproof_generate_ecdh.py $(top_srcdir)/src/wycheproof/ecdh_secp256k1_test.json > $@ testvectors: $(TESTVECTORS) @@ -275,7 +284,9 @@ EXTRA_DIST += sage/secp256k1_params.sage EXTRA_DIST += sage/weierstrass_prover.sage EXTRA_DIST += src/wycheproof/WYCHEPROOF_COPYING EXTRA_DIST += src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.json -EXTRA_DIST += tools/tests_wycheproof_generate.py +EXTRA_DIST += src/wycheproof/ecdh_secp256k1_test.json +EXTRA_DIST += tools/tests_wycheproof_generate_ecdsa.py +EXTRA_DIST += tools/tests_wycheproof_generate_ecdh.py if ENABLE_MODULE_ECDH include src/modules/ecdh/Makefile.am.include diff --git a/README.md b/README.md index 222e5fb7685..f7a59b2b966 100644 --- a/README.md +++ b/README.md @@ -61,14 +61,50 @@ Implementation details * Optional runtime blinding which attempts to frustrate differential power analysis. * The precomputed tables add and eventually subtract points for which no known scalar (secret key) is known, preventing even an attacker with control over the secret key used to control the data internally. +Obtaining and verifying +----------------------- + +The git tag for each release (e.g. `v0.6.0`) is GPG-signed by one of the maintainers. +For a fully verified build of this project, it is recommended to obtain this repository +via git, obtain the GPG keys of the signing maintainer(s), and then verify the release +tag's signature using git. + +This can be done with the following steps: + +1. Obtain the GPG keys listed in [SECURITY.md](./SECURITY.md). +2. If possible, cross-reference these key IDs with another source controlled by its owner (e.g. + social media, personal website). This is to mitigate the unlikely case that incorrect + content is being presented by this repository. +3. Clone the repository: + ``` + git clone https://github.com/bitcoin-core/secp256k1 + ``` +4. Check out the latest release tag, e.g. + ``` + git checkout v0.6.0 + ``` +5. Use git to verify the GPG signature: + ``` + % git tag -v v0.6.0 | grep -C 3 'Good signature' + + gpg: Signature made Mon 04 Nov 2024 12:14:44 PM EST + gpg: using RSA key 4BBB845A6F5A65A69DFAEC234861DBF262123605 + gpg: Good signature from "Jonas Nick " [unknown] + gpg: aka "Jonas Nick " [unknown] + gpg: WARNING: This key is not certified with a trusted signature! + gpg: There is no indication that the signature belongs to the owner. + Primary key fingerprint: 36C7 1A37 C9D9 88BD E825 08D9 B1A7 0E4F 8DCD 0366 + Subkey fingerprint: 4BBB 845A 6F5A 65A6 9DFA EC23 4861 DBF2 6212 3605 + ``` + Building with Autotools ----------------------- - $ ./autogen.sh - $ ./configure - $ make - $ make check # run the test suite - $ sudo make install # optional + $ ./autogen.sh # Generate a ./configure script + $ ./configure # Generate a build system + $ make # Run the actual build process + $ make check # Run the test suite + $ sudo make install # Install the library into the system (optional) To compile optional modules (such as Schnorr signatures), you need to run `./configure` with additional flags (such as `--enable-module-schnorrsig`). Run `./configure --help` to see the full list of available flags. @@ -79,24 +115,23 @@ To maintain a pristine source tree, CMake encourages to perform an out-of-source ### Building on POSIX systems - $ mkdir build && cd build - $ cmake .. - $ cmake --build . - $ ctest # run the test suite - $ sudo cmake --install . # optional + $ cmake -B build # Generate a build system in subdirectory "build" + $ cmake --build build # Run the actual build process + $ ctest --test-dir build # Run the test suite + $ sudo cmake --install build # Install the library into the system (optional) -To compile optional modules (such as Schnorr signatures), you need to run `cmake` with additional flags (such as `-DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON`). Run `cmake .. -LH` to see the full list of available flags. +To compile optional modules (such as Schnorr signatures), you need to run `cmake` with additional flags (such as `-DSECP256K1_ENABLE_MODULE_SCHNORRSIG=ON`). Run `cmake -B build -LH` or `ccmake -B build` to see the full list of available flags. ### Cross compiling To alleviate issues with cross compiling, preconfigured toolchain files are available in the `cmake` directory. For example, to cross compile for Windows: - $ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/x86_64-w64-mingw32.toolchain.cmake + $ cmake -B build -DCMAKE_TOOLCHAIN_FILE=cmake/x86_64-w64-mingw32.toolchain.cmake To cross compile for Android with [NDK](https://developer.android.com/ndk/guides/cmake) (using NDK's toolchain file, and assuming the `ANDROID_NDK_ROOT` environment variable has been set): - $ cmake .. -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28 + $ cmake -B build -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_ROOT}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=28 ### Building on Windows @@ -106,7 +141,7 @@ The following example assumes using of Visual Studio 2022 and CMake v3.21+. In "Developer Command Prompt for VS 2022": - >cmake -G "Visual Studio 17 2022" -A x64 -S . -B build + >cmake -G "Visual Studio 17 2022" -A x64 -B build >cmake --build build --config RelWithDebInfo Usage examples diff --git a/ci/ci.sh b/ci/ci.sh index 3636deafa11..3285ecc951d 100755 --- a/ci/ci.sh +++ b/ci/ci.sh @@ -14,7 +14,7 @@ print_environment() { for var in WERROR_CFLAGS MAKEFLAGS BUILD \ ECMULTWINDOW ECMULTGENKB ASM WIDEMUL WITH_VALGRIND EXTRAFLAGS \ EXPERIMENTAL ECDH RECOVERY EXTRAKEYS MUSIG SCHNORRSIG ELLSWIFT \ - SECP256K1_TEST_ITERS BENCH SECP256K1_BENCH_ITERS CTIMETESTS\ + SECP256K1_TEST_ITERS BENCH SECP256K1_BENCH_ITERS CTIMETESTS SYMBOL_CHECK \ EXAMPLES \ HOST WRAPPER_CMD \ CC CFLAGS CPPFLAGS AR NM \ @@ -94,10 +94,10 @@ if [ $build_exit_code -ne 0 ]; then *snapshot*) # Ignore internal compiler errors in gcc-snapshot and clang-snapshot grep -e "internal compiler error:" -e "PLEASE submit a bug report" make.log - return $?; + exit $? ;; *) - return 1; + exit 1 ;; esac fi @@ -107,6 +107,20 @@ file *tests* || true file bench* || true file .libs/* || true +if [ "$SYMBOL_CHECK" = "yes" ] +then + python3 --version + case "$HOST" in + *mingw*) + ls -l .libs + python3 ./tools/symbol-check.py .libs/libsecp256k1-5.dll + ;; + *) + python3 ./tools/symbol-check.py .libs/libsecp256k1.so + ;; + esac +fi + # This tells `make check` to wrap test invocations. export LOG_COMPILER="$WRAPPER_CMD" diff --git a/ci/linux-debian.Dockerfile b/ci/linux-debian.Dockerfile index 241bfa97194..547b402232a 100644 --- a/ci/linux-debian.Dockerfile +++ b/ci/linux-debian.Dockerfile @@ -32,7 +32,7 @@ RUN apt-get update && apt-get install --no-install-recommends -y \ gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross libc6-dbg:ppc64el \ gcc-mingw-w64-x86-64-win32 wine64 wine \ gcc-mingw-w64-i686-win32 wine32 \ - python3 && \ + python3-full && \ if ! ( dpkg --print-architecture | grep --quiet "arm64" ) ; then \ apt-get install --no-install-recommends -y \ gcc-aarch64-linux-gnu libc6-dev-arm64-cross libc6-dbg:arm64 ;\ @@ -77,3 +77,7 @@ RUN \ apt-get autoremove -y wget && \ apt-get clean && rm -rf /var/lib/apt/lists/* +ENV VIRTUAL_ENV=/root/venv +RUN python3 -m venv $VIRTUAL_ENV +ENV PATH="$VIRTUAL_ENV/bin:$PATH" +RUN pip install lief diff --git a/configure.ac b/configure.ac index f880a3578dd..406227fcd10 100644 --- a/configure.ac +++ b/configure.ac @@ -5,8 +5,8 @@ AC_PREREQ([2.60]) # backwards-compatible and therefore at most increase the minor version. define(_PKG_VERSION_MAJOR, 0) define(_PKG_VERSION_MINOR, 6) -define(_PKG_VERSION_PATCH, 0) -define(_PKG_VERSION_IS_RELEASE, true) +define(_PKG_VERSION_PATCH, 1) +define(_PKG_VERSION_IS_RELEASE, false) # The library version is based on libtool versioning of the ABI. The set of # rules for updating the version can be found here: @@ -14,7 +14,7 @@ define(_PKG_VERSION_IS_RELEASE, true) # All changes in experimental modules are treated as if they don't affect the # interface and therefore only increase the revision. define(_LIB_VERSION_CURRENT, 5) -define(_LIB_VERSION_REVISION, 0) +define(_LIB_VERSION_REVISION, 1) define(_LIB_VERSION_AGE, 0) AC_INIT([libsecp256k1],m4_join([.], _PKG_VERSION_MAJOR, _PKG_VERSION_MINOR, _PKG_VERSION_PATCH)m4_if(_PKG_VERSION_IS_RELEASE, [true], [], [-dev]),[https://github.com/bitcoin-core/secp256k1/issues],[libsecp256k1],[https://github.com/bitcoin-core/secp256k1]) @@ -111,7 +111,6 @@ AC_DEFUN([SECP_TRY_APPEND_DEFAULT_CFLAGS], [ SECP_TRY_APPEND_CFLAGS([-Wcast-align=strict], $1) # GCC >= 8.0 SECP_TRY_APPEND_CFLAGS([-Wconditional-uninitialized], $1) # Clang >= 3.0 only SECP_TRY_APPEND_CFLAGS([-Wreserved-identifier], $1) # Clang >= 13.0 only - SECP_TRY_APPEND_CFLAGS([-fvisibility=hidden], $1) # GCC >= 4.0 CFLAGS="$SECP_TRY_APPEND_DEFAULT_CFLAGS_saved_CFLAGS" fi @@ -254,8 +253,8 @@ fi print_msan_notice=no if test x"$enable_ctime_tests" = x"yes"; then SECP_MSAN_CHECK - # MSan on Clang >=16 reports unitialized memory in function parameters and return values, even if - # the uninitalized variable is never actually "used". This is called "eager" checking, and it's + # MSan on Clang >=16 reports uninitialized memory in function parameters and return values, even if + # the uninitialized variable is never actually "used". This is called "eager" checking, and it's # sounds like good idea for normal use of MSan. However, it yields many false positives in the # ctime_tests because many return values depend on secret (i.e., "uninitialized") values, and # we're only interested in detecting branches (which count as "uses") on secret data. @@ -477,6 +476,7 @@ echo "Build Options:" echo " with external callbacks = $enable_external_default_callbacks" echo " with benchmarks = $enable_benchmark" echo " with tests = $enable_tests" +echo " with exhaustive tests = $enable_exhaustive_tests" echo " with ctime tests = $enable_ctime_tests" echo " with coverage = $enable_coverage" echo " with examples = $enable_examples" diff --git a/examples/ecdh.c b/examples/ecdh.c index 13aa760b2dc..67b8c2047ab 100644 --- a/examples/ecdh.c +++ b/examples/ecdh.c @@ -8,6 +8,7 @@ *************************************************************************/ #include +#include #include #include @@ -33,7 +34,7 @@ int main(void) { secp256k1_context* ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE); if (!fill_random(randomize, sizeof(randomize))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* Randomizing the context is recommended to protect against side-channel * leakage See `secp256k1_context_randomize` in secp256k1.h for more @@ -44,14 +45,14 @@ int main(void) { /*** Key Generation ***/ if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* If the secret key is zero or out of range (greater than secp256k1's * order), we fail. Note that the probability of this occurring is negligible * with a properly functioning random number generator. */ if (!secp256k1_ec_seckey_verify(ctx, seckey1) || !secp256k1_ec_seckey_verify(ctx, seckey2)) { printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); - return 1; + return EXIT_FAILURE; } /* Public key creation using a valid context with a verified secret key should never fail */ @@ -116,5 +117,5 @@ int main(void) { secure_erase(shared_secret1, sizeof(shared_secret1)); secure_erase(shared_secret2, sizeof(shared_secret2)); - return 0; + return EXIT_SUCCESS; } diff --git a/examples/ecdsa.c b/examples/ecdsa.c index 80ae9d46c52..ae16c180dc9 100644 --- a/examples/ecdsa.c +++ b/examples/ecdsa.c @@ -8,6 +8,7 @@ *************************************************************************/ #include +#include #include #include @@ -40,7 +41,7 @@ int main(void) { secp256k1_context* ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE); if (!fill_random(randomize, sizeof(randomize))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* Randomizing the context is recommended to protect against side-channel * leakage See `secp256k1_context_randomize` in secp256k1.h for more @@ -51,14 +52,14 @@ int main(void) { /*** Key Generation ***/ if (!fill_random(seckey, sizeof(seckey))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* If the secret key is zero or out of range (greater than secp256k1's * order), we fail. Note that the probability of this occurring is negligible * with a properly functioning random number generator. */ if (!secp256k1_ec_seckey_verify(ctx, seckey)) { printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); - return 1; + return EXIT_FAILURE; } /* Public key creation using a valid context with a verified secret key should never fail */ @@ -92,13 +93,13 @@ int main(void) { /* Deserialize the signature. This will return 0 if the signature can't be parsed correctly. */ if (!secp256k1_ecdsa_signature_parse_compact(ctx, &sig, serialized_signature)) { printf("Failed parsing the signature\n"); - return 1; + return EXIT_FAILURE; } /* Deserialize the public key. This will return 0 if the public key can't be parsed correctly. */ if (!secp256k1_ec_pubkey_parse(ctx, &pubkey, compressed_pubkey, sizeof(compressed_pubkey))) { printf("Failed parsing the public key\n"); - return 1; + return EXIT_FAILURE; } /* Verify a signature. This will return 1 if it's valid and 0 if it's not. */ @@ -133,5 +134,5 @@ int main(void) { * will remove any writes that aren't used. */ secure_erase(seckey, sizeof(seckey)); - return 0; + return EXIT_SUCCESS; } diff --git a/examples/ellswift.c b/examples/ellswift.c index afb2fee40be..d58e96b053d 100644 --- a/examples/ellswift.c +++ b/examples/ellswift.c @@ -13,6 +13,7 @@ */ #include +#include #include #include @@ -38,7 +39,7 @@ int main(void) { ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE); if (!fill_random(randomize, sizeof(randomize))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* Randomizing the context is recommended to protect against side-channel * leakage. See `secp256k1_context_randomize` in secp256k1.h for more @@ -49,14 +50,14 @@ int main(void) { /*** Generate secret keys ***/ if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* If the secret key is zero or out of range (greater than secp256k1's * order), we fail. Note that the probability of this occurring is negligible * with a properly functioning random number generator. */ if (!secp256k1_ec_seckey_verify(ctx, seckey1) || !secp256k1_ec_seckey_verify(ctx, seckey2)) { printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); - return 1; + return EXIT_FAILURE; } /* Generate ElligatorSwift public keys. This should never fail with valid context and @@ -64,7 +65,7 @@ int main(void) { optional, but recommended. */ if (!fill_random(auxrand1, sizeof(auxrand1)) || !fill_random(auxrand2, sizeof(auxrand2))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } return_val = secp256k1_ellswift_create(ctx, ellswift_pubkey1, seckey1, auxrand1); assert(return_val); @@ -117,5 +118,5 @@ int main(void) { secure_erase(shared_secret1, sizeof(shared_secret1)); secure_erase(shared_secret2, sizeof(shared_secret2)); - return 0; + return EXIT_SUCCESS; } diff --git a/examples/musig.c b/examples/musig.c index 0352dc40f37..bdb8fced0cf 100644 --- a/examples/musig.c +++ b/examples/musig.c @@ -12,6 +12,7 @@ */ #include +#include #include #include @@ -193,7 +194,7 @@ int main(void) { for (i = 0; i < N_SIGNERS; i++) { if (!create_keypair(ctx, &signer_secrets[i], &signers[i])) { printf("FAILED\n"); - return 1; + return EXIT_FAILURE; } pubkeys_ptr[i] = &signers[i].pubkey; } @@ -208,7 +209,7 @@ int main(void) { fflush(stdout); if (!secp256k1_ec_pubkey_sort(ctx, pubkeys_ptr, N_SIGNERS)) { printf("FAILED\n"); - return 1; + return EXIT_FAILURE; } printf("ok\n"); @@ -219,7 +220,7 @@ int main(void) { * while providing a non-NULL agg_pk argument. */ if (!secp256k1_musig_pubkey_agg(ctx, NULL, &cache, pubkeys_ptr, N_SIGNERS)) { printf("FAILED\n"); - return 1; + return EXIT_FAILURE; } printf("ok\n"); printf("Tweaking................"); @@ -227,21 +228,21 @@ int main(void) { /* Optionally tweak the aggregate key */ if (!tweak(ctx, &agg_pk, &cache)) { printf("FAILED\n"); - return 1; + return EXIT_FAILURE; } printf("ok\n"); printf("Signing message........."); fflush(stdout); if (!sign(ctx, signer_secrets, signers, &cache, msg, sig)) { printf("FAILED\n"); - return 1; + return EXIT_FAILURE; } printf("ok\n"); printf("Verifying signature....."); fflush(stdout); if (!secp256k1_schnorrsig_verify(ctx, sig, msg, 32, &agg_pk)) { printf("FAILED\n"); - return 1; + return EXIT_FAILURE; } printf("ok\n"); @@ -256,5 +257,5 @@ int main(void) { secure_erase(&signer_secrets[i], sizeof(signer_secrets[i])); } secp256k1_context_destroy(ctx); - return 0; + return EXIT_SUCCESS; } diff --git a/examples/schnorr.c b/examples/schnorr.c index 909fcaa1f3f..49baed24beb 100644 --- a/examples/schnorr.c +++ b/examples/schnorr.c @@ -8,6 +8,7 @@ *************************************************************************/ #include +#include #include #include @@ -34,7 +35,7 @@ int main(void) { secp256k1_context* ctx = secp256k1_context_create(SECP256K1_CONTEXT_NONE); if (!fill_random(randomize, sizeof(randomize))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* Randomizing the context is recommended to protect against side-channel * leakage See `secp256k1_context_randomize` in secp256k1.h for more @@ -45,7 +46,7 @@ int main(void) { /*** Key Generation ***/ if (!fill_random(seckey, sizeof(seckey))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* Try to create a keypair with a valid context. This only fails if the * secret key is zero or out of range (greater than secp256k1's order). Note @@ -53,7 +54,7 @@ int main(void) { * functioning random number generator. */ if (!secp256k1_keypair_create(ctx, &keypair, seckey)) { printf("Generated secret key is invalid. This indicates an issue with the random number generator.\n"); - return 1; + return EXIT_FAILURE; } /* Extract the X-only public key from the keypair. We pass NULL for @@ -90,7 +91,7 @@ int main(void) { /* Generate 32 bytes of randomness to use with BIP-340 schnorr signing. */ if (!fill_random(auxiliary_rand, sizeof(auxiliary_rand))) { printf("Failed to generate randomness\n"); - return 1; + return EXIT_FAILURE; } /* Generate a Schnorr signature. @@ -110,7 +111,7 @@ int main(void) { * be parsed correctly */ if (!secp256k1_xonly_pubkey_parse(ctx, &pubkey, serialized_pubkey)) { printf("Failed parsing the public key\n"); - return 1; + return EXIT_FAILURE; } /* Compute the tagged hash on the received messages using the same tag as the signer. */ @@ -149,5 +150,5 @@ int main(void) { * Here we are preventing these writes from being optimized out, as any good compiler * will remove any writes that aren't used. */ secure_erase(seckey, sizeof(seckey)); - return 0; + return EXIT_SUCCESS; } diff --git a/include/secp256k1.h b/include/secp256k1.h index c6e9417f055..1d25a02ab29 100644 --- a/include/secp256k1.h +++ b/include/secp256k1.h @@ -230,10 +230,10 @@ typedef int (*secp256k1_nonce_function)( * * It is highly recommended to call secp256k1_selftest before using this context. */ -SECP256K1_API const secp256k1_context *secp256k1_context_static; +SECP256K1_API const secp256k1_context * const secp256k1_context_static; /** Deprecated alias for secp256k1_context_static. */ -SECP256K1_API const secp256k1_context *secp256k1_context_no_precomp +SECP256K1_API const secp256k1_context * const secp256k1_context_no_precomp SECP256K1_DEPRECATED("Use secp256k1_context_static instead"); /** Perform basic self tests (to be used in conjunction with secp256k1_context_static) @@ -701,21 +701,13 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_seckey_negate( unsigned char *seckey ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2); -/** Same as secp256k1_ec_seckey_negate, but DEPRECATED. Will be removed in - * future versions. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_privkey_negate( - const secp256k1_context *ctx, - unsigned char *seckey -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) - SECP256K1_DEPRECATED("Use secp256k1_ec_seckey_negate instead"); - /** Negates a public key in place. * * Returns: 1 always * Args: ctx: pointer to a context object * In/Out: pubkey: pointer to the public key to be negated. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_pubkey_negate( +SECP256K1_API int secp256k1_ec_pubkey_negate( const secp256k1_context *ctx, secp256k1_pubkey *pubkey ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2); @@ -741,15 +733,6 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_seckey_tweak_add( const unsigned char *tweak32 ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); -/** Same as secp256k1_ec_seckey_tweak_add, but DEPRECATED. Will be removed in - * future versions. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_privkey_tweak_add( - const secp256k1_context *ctx, - unsigned char *seckey, - const unsigned char *tweak32 -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) - SECP256K1_DEPRECATED("Use secp256k1_ec_seckey_tweak_add instead"); - /** Tweak a public key by adding tweak times the generator to it. * * Returns: 0 if the arguments are invalid or the resulting public key would be @@ -788,15 +771,6 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_seckey_tweak_mul( const unsigned char *tweak32 ) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3); -/** Same as secp256k1_ec_seckey_tweak_mul, but DEPRECATED. Will be removed in - * future versions. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_privkey_tweak_mul( - const secp256k1_context *ctx, - unsigned char *seckey, - const unsigned char *tweak32 -) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) - SECP256K1_DEPRECATED("Use secp256k1_ec_seckey_tweak_mul instead"); - /** Tweak a public key by multiplying it by a tweak value. * * Returns: 0 if the arguments are invalid. 1 otherwise. @@ -883,7 +857,7 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_ec_pubkey_combine( * msg: pointer to an array containing the message * msglen: length of the message array */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_tagged_sha256( +SECP256K1_API int secp256k1_tagged_sha256( const secp256k1_context *ctx, unsigned char *hash32, const unsigned char *tag, diff --git a/include/secp256k1_extrakeys.h b/include/secp256k1_extrakeys.h index 48c98693cfa..1a517ded966 100644 --- a/include/secp256k1_extrakeys.h +++ b/include/secp256k1_extrakeys.h @@ -90,7 +90,7 @@ SECP256K1_API int secp256k1_xonly_pubkey_cmp( * the negation of the pubkey and set to 0 otherwise. * In: pubkey: pointer to a public key that is converted. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_xonly_pubkey_from_pubkey( +SECP256K1_API int secp256k1_xonly_pubkey_from_pubkey( const secp256k1_context *ctx, secp256k1_xonly_pubkey *xonly_pubkey, int *pk_parity, @@ -179,7 +179,7 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_create( * Out: seckey: pointer to a 32-byte buffer for the secret key. * In: keypair: pointer to a keypair. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_sec( +SECP256K1_API int secp256k1_keypair_sec( const secp256k1_context *ctx, unsigned char *seckey, const secp256k1_keypair *keypair @@ -192,7 +192,7 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_sec( * Out: pubkey: pointer to a pubkey object, set to the keypair public key. * In: keypair: pointer to a keypair. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_pub( +SECP256K1_API int secp256k1_keypair_pub( const secp256k1_context *ctx, secp256k1_pubkey *pubkey, const secp256k1_keypair *keypair @@ -211,7 +211,7 @@ SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_pub( * pk_parity argument of secp256k1_xonly_pubkey_from_pubkey. * In: keypair: pointer to a keypair. */ -SECP256K1_API SECP256K1_WARN_UNUSED_RESULT int secp256k1_keypair_xonly_pub( +SECP256K1_API int secp256k1_keypair_xonly_pub( const secp256k1_context *ctx, secp256k1_xonly_pubkey *pubkey, int *pk_parity, diff --git a/src/bench.c b/src/bench.c index 1127df67ae0..8ba7623a0eb 100644 --- a/src/bench.c +++ b/src/bench.c @@ -5,6 +5,7 @@ ***********************************************************************/ #include +#include #include #include "../include/secp256k1.h" @@ -15,18 +16,22 @@ static void help(int default_iters) { printf("Benchmarks the following algorithms:\n"); printf(" - ECDSA signing/verification\n"); -#ifdef ENABLE_MODULE_ECDH - printf(" - ECDH key exchange (optional module)\n"); -#endif - #ifdef ENABLE_MODULE_RECOVERY printf(" - Public key recovery (optional module)\n"); #endif +#ifdef ENABLE_MODULE_ECDH + printf(" - ECDH key exchange (optional module)\n"); +#endif + #ifdef ENABLE_MODULE_SCHNORRSIG printf(" - Schnorr signatures (optional module)\n"); #endif +#ifdef ENABLE_MODULE_ELLSWIFT + printf(" - ElligatorSwift (optional module)\n"); +#endif + printf("\n"); printf("The default number of iterations for each benchmark is %d. This can be\n", default_iters); printf("customized using the SECP256K1_BENCH_ITERS environment variable.\n"); @@ -188,11 +193,11 @@ int main(int argc, char** argv) { || have_flag(argc, argv, "--help") || have_flag(argc, argv, "help")) { help(default_iters); - return 0; + return EXIT_SUCCESS; } else if (invalid_args) { fprintf(stderr, "./bench: unrecognized argument.\n\n"); help(default_iters); - return 1; + return EXIT_FAILURE; } } @@ -201,7 +206,7 @@ int main(int argc, char** argv) { if (have_flag(argc, argv, "ecdh")) { fprintf(stderr, "./bench: ECDH module not enabled.\n"); fprintf(stderr, "Use ./configure --enable-module-ecdh.\n\n"); - return 1; + return EXIT_FAILURE; } #endif @@ -209,7 +214,7 @@ int main(int argc, char** argv) { if (have_flag(argc, argv, "recover") || have_flag(argc, argv, "ecdsa_recover")) { fprintf(stderr, "./bench: Public key recovery module not enabled.\n"); fprintf(stderr, "Use ./configure --enable-module-recovery.\n\n"); - return 1; + return EXIT_FAILURE; } #endif @@ -217,7 +222,7 @@ int main(int argc, char** argv) { if (have_flag(argc, argv, "schnorrsig") || have_flag(argc, argv, "schnorrsig_sign") || have_flag(argc, argv, "schnorrsig_verify")) { fprintf(stderr, "./bench: Schnorr signatures module not enabled.\n"); fprintf(stderr, "Use ./configure --enable-module-schnorrsig.\n\n"); - return 1; + return EXIT_FAILURE; } #endif @@ -227,7 +232,7 @@ int main(int argc, char** argv) { have_flag(argc, argv, "ellswift_ecdh")) { fprintf(stderr, "./bench: ElligatorSwift module not enabled.\n"); fprintf(stderr, "Use ./configure --enable-module-ellswift.\n\n"); - return 1; + return EXIT_FAILURE; } #endif @@ -275,5 +280,5 @@ int main(int argc, char** argv) { run_ellswift_bench(iters, argc, argv); #endif - return 0; + return EXIT_SUCCESS; } diff --git a/src/bench.h b/src/bench.h index 1564b1a1760..232fb35fc0e 100644 --- a/src/bench.h +++ b/src/bench.h @@ -24,7 +24,7 @@ static int64_t gettime_i64(void) { struct timespec tv; if (!timespec_get(&tv, TIME_UTC)) { fputs("timespec_get failed!", stderr); - exit(1); + exit(EXIT_FAILURE); } return (int64_t)tv.tv_nsec / 1000 + (int64_t)tv.tv_sec * 1000000LL; #else diff --git a/src/bench_ecmult.c b/src/bench_ecmult.c index 3974af75f44..172292d5706 100644 --- a/src/bench_ecmult.c +++ b/src/bench_ecmult.c @@ -4,6 +4,7 @@ * file COPYING or https://www.opensource.org/licenses/mit-license.php.* ***********************************************************************/ #include +#include #include "secp256k1.c" #include "../include/secp256k1.h" @@ -287,7 +288,7 @@ int main(int argc, char **argv) { || have_flag(argc, argv, "--help") || have_flag(argc, argv, "help")) { help(argv); - return 0; + return EXIT_SUCCESS; } else if(have_flag(argc, argv, "pippenger_wnaf")) { printf("Using pippenger_wnaf:\n"); data.ecmult_multi = secp256k1_ecmult_pippenger_batch_single; @@ -299,7 +300,7 @@ int main(int argc, char **argv) { } else { fprintf(stderr, "%s: unrecognized argument '%s'.\n\n", argv[0], argv[1]); help(argv); - return 1; + return EXIT_FAILURE; } } @@ -363,5 +364,5 @@ int main(int argc, char **argv) { free(data.output); free(data.expected_output); - return(0); + return EXIT_SUCCESS; } diff --git a/src/bench_internal.c b/src/bench_internal.c index a700684922a..8688a4dc77c 100644 --- a/src/bench_internal.c +++ b/src/bench_internal.c @@ -4,6 +4,7 @@ * file COPYING or https://www.opensource.org/licenses/mit-license.php.* ***********************************************************************/ #include +#include #include "secp256k1.c" #include "../include/secp256k1.h" @@ -393,7 +394,7 @@ int main(int argc, char **argv) { || have_flag(argc, argv, "--help") || have_flag(argc, argv, "help")) { help(default_iters); - return 0; + return EXIT_SUCCESS; } } @@ -432,5 +433,5 @@ int main(int argc, char **argv) { if (d || have_flag(argc, argv, "context")) run_benchmark("context_create", bench_context, bench_setup, NULL, &data, 10, iters); - return 0; + return EXIT_SUCCESS; } diff --git a/src/ctime_tests.c b/src/ctime_tests.c index bbde863d969..f81bdb9228d 100644 --- a/src/ctime_tests.c +++ b/src/ctime_tests.c @@ -5,6 +5,7 @@ ***********************************************************************/ #include +#include #include #include "../include/secp256k1.h" @@ -49,7 +50,7 @@ int main(void) { if (!SECP256K1_CHECKMEM_RUNNING()) { fprintf(stderr, "This test can only usefully be run inside valgrind because it was not compiled under msan.\n"); fprintf(stderr, "Usage: libtool --mode=execute valgrind ./ctime_tests\n"); - return 1; + return EXIT_FAILURE; } ctx = secp256k1_context_create(SECP256K1_CONTEXT_DECLASSIFY); /** In theory, testing with a single secret input should be sufficient: @@ -69,7 +70,7 @@ int main(void) { CHECK(ret); secp256k1_context_destroy(ctx); - return 0; + return EXIT_SUCCESS; } static void run_tests(secp256k1_context *ctx, unsigned char *key) { diff --git a/src/eckey_impl.h b/src/eckey_impl.h index 121966f8b5f..a88a5964d81 100644 --- a/src/eckey_impl.h +++ b/src/eckey_impl.h @@ -9,6 +9,7 @@ #include "eckey.h" +#include "util.h" #include "scalar.h" #include "field.h" #include "group.h" @@ -35,6 +36,8 @@ static int secp256k1_eckey_pubkey_parse(secp256k1_ge *elem, const unsigned char } static int secp256k1_eckey_pubkey_serialize(secp256k1_ge *elem, unsigned char *pub, size_t *size, int compressed) { + VERIFY_CHECK(compressed == 0 || compressed == 1); + if (secp256k1_ge_is_infinity(elem)) { return 0; } diff --git a/src/group.h b/src/group.h index 992ff5c98cf..05ae0d203cf 100644 --- a/src/group.h +++ b/src/group.h @@ -80,7 +80,11 @@ static void secp256k1_ge_set_gej(secp256k1_ge *r, secp256k1_gej *a); /** Set a group element equal to another which is given in jacobian coordinates. */ static void secp256k1_ge_set_gej_var(secp256k1_ge *r, secp256k1_gej *a); -/** Set a batch of group elements equal to the inputs given in jacobian coordinates */ +/** Set group elements r[0:len] (affine) equal to group elements a[0:len] (jacobian). + * None of the group elements in a[0:len] may be infinity. Constant time. */ +static void secp256k1_ge_set_all_gej(secp256k1_ge *r, const secp256k1_gej *a, size_t len); + +/** Set group elements r[0:len] (affine) equal to group elements a[0:len] (jacobian). */ static void secp256k1_ge_set_all_gej_var(secp256k1_ge *r, const secp256k1_gej *a, size_t len); /** Bring a batch of inputs to the same global z "denominator", based on ratios between diff --git a/src/group_impl.h b/src/group_impl.h index c668fb24010..b8f2395d93a 100644 --- a/src/group_impl.h +++ b/src/group_impl.h @@ -195,6 +195,44 @@ static void secp256k1_ge_set_gej_var(secp256k1_ge *r, secp256k1_gej *a) { SECP256K1_GE_VERIFY(r); } +static void secp256k1_ge_set_all_gej(secp256k1_ge *r, const secp256k1_gej *a, size_t len) { + secp256k1_fe u; + size_t i; +#ifdef VERIFY + for (i = 0; i < len; i++) { + SECP256K1_GEJ_VERIFY(&a[i]); + VERIFY_CHECK(!secp256k1_gej_is_infinity(&a[i])); + } +#endif + + if (len == 0) { + return; + } + + /* Use destination's x coordinates as scratch space */ + r[0].x = a[0].z; + for (i = 1; i < len; i++) { + secp256k1_fe_mul(&r[i].x, &r[i - 1].x, &a[i].z); + } + secp256k1_fe_inv(&u, &r[len - 1].x); + + for (i = len - 1; i > 0; i--) { + secp256k1_fe_mul(&r[i].x, &r[i - 1].x, &u); + secp256k1_fe_mul(&u, &u, &a[i].z); + } + r[0].x = u; + + for (i = 0; i < len; i++) { + secp256k1_ge_set_gej_zinv(&r[i], &a[i], &r[i].x); + } + +#ifdef VERIFY + for (i = 0; i < len; i++) { + SECP256K1_GE_VERIFY(&r[i]); + } +#endif +} + static void secp256k1_ge_set_all_gej_var(secp256k1_ge *r, const secp256k1_gej *a, size_t len) { secp256k1_fe u; size_t i; diff --git a/src/modules/ecdh/Makefile.am.include b/src/modules/ecdh/Makefile.am.include index 7f7f95f1fd6..18660535291 100644 --- a/src/modules/ecdh/Makefile.am.include +++ b/src/modules/ecdh/Makefile.am.include @@ -2,3 +2,4 @@ include_HEADERS += include/secp256k1_ecdh.h noinst_HEADERS += src/modules/ecdh/main_impl.h noinst_HEADERS += src/modules/ecdh/tests_impl.h noinst_HEADERS += src/modules/ecdh/bench_impl.h +noinst_HEADERS += src/wycheproof/ecdh_secp256k1_test.h diff --git a/src/modules/ecdh/tests_impl.h b/src/modules/ecdh/tests_impl.h index 3c3acdaf8c3..6888f18c64b 100644 --- a/src/modules/ecdh/tests_impl.h +++ b/src/modules/ecdh/tests_impl.h @@ -7,6 +7,13 @@ #ifndef SECP256K1_MODULE_ECDH_TESTS_H #define SECP256K1_MODULE_ECDH_TESTS_H +static int ecdh_hash_function_test_xpassthru(unsigned char *output, const unsigned char *x, const unsigned char *y, void *data) { + (void)y; + (void)data; + memcpy(output, x, 32); + return 1; +} + static int ecdh_hash_function_test_fail(unsigned char *output, const unsigned char *x, const unsigned char *y, void *data) { (void)output; (void)x; @@ -142,11 +149,45 @@ static void test_result_basepoint(void) { } } +static void test_ecdh_wycheproof(void) { +#include "../../wycheproof/ecdh_secp256k1_test.h" + int t; + for (t = 0; t < SECP256K1_ECDH_WYCHEPROOF_NUMBER_TESTVECTORS; t++) { + int parsed_ok; + secp256k1_pubkey point; + const unsigned char *pk; + const unsigned char *sk; + const unsigned char *expected_shared_secret; + unsigned char output_ecdh[65] = { 0 }; + + int expected_result; + + memset(&point, 0, sizeof(point)); + pk = &wycheproof_ecdh_public_keys[testvectors[t].pk_offset]; + parsed_ok = secp256k1_ec_pubkey_parse(CTX, &point, pk, testvectors[t].pk_len); + + expected_result = testvectors[t].expected_result; + CHECK(parsed_ok == expected_result); + if (!parsed_ok) { + continue; + } + + sk = &wycheproof_ecdh_private_keys[testvectors[t].sk_offset]; + CHECK(testvectors[t].sk_len == 32); + + CHECK(secp256k1_ecdh(CTX, output_ecdh, &point, sk, ecdh_hash_function_test_xpassthru, NULL) == 1); + expected_shared_secret = &wycheproof_ecdh_shared_secrets[testvectors[t].shared_offset]; + + CHECK(secp256k1_memcmp_var(output_ecdh, expected_shared_secret, testvectors[t].shared_len) == 0); + } +} + static void run_ecdh_tests(void) { test_ecdh_api(); test_ecdh_generator_basepoint(); test_bad_scalar(); test_result_basepoint(); + test_ecdh_wycheproof(); } #endif /* SECP256K1_MODULE_ECDH_TESTS_H */ diff --git a/src/modules/musig/session_impl.h b/src/modules/musig/session_impl.h index dde38085827..d8dcd00c95a 100644 --- a/src/modules/musig/session_impl.h +++ b/src/modules/musig/session_impl.h @@ -395,6 +395,7 @@ static void secp256k1_nonce_function_musig(secp256k1_scalar *k, const unsigned c static int secp256k1_musig_nonce_gen_internal(const secp256k1_context* ctx, secp256k1_musig_secnonce *secnonce, secp256k1_musig_pubnonce *pubnonce, const unsigned char *input_nonce, const unsigned char *seckey, const secp256k1_pubkey *pubkey, const unsigned char *msg32, const secp256k1_musig_keyagg_cache *keyagg_cache, const unsigned char *extra_input32) { secp256k1_scalar k[2]; secp256k1_ge nonce_pts[2]; + secp256k1_gej nonce_ptj[2]; int i; unsigned char pk_ser[33]; size_t pk_ser_len = sizeof(pk_ser); @@ -444,13 +445,20 @@ static int secp256k1_musig_nonce_gen_internal(const secp256k1_context* ctx, secp secp256k1_musig_secnonce_save(secnonce, k, &pk); secp256k1_musig_secnonce_invalidate(ctx, secnonce, !ret); + /* Compute pubnonce as two gejs */ for (i = 0; i < 2; i++) { - secp256k1_gej nonce_ptj; - secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &nonce_ptj, &k[i]); - secp256k1_ge_set_gej(&nonce_pts[i], &nonce_ptj); - secp256k1_declassify(ctx, &nonce_pts[i], sizeof(nonce_pts[i])); + secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &nonce_ptj[i], &k[i]); secp256k1_scalar_clear(&k[i]); - secp256k1_gej_clear(&nonce_ptj); + } + + /* Batch convert to two public ges */ + secp256k1_ge_set_all_gej(nonce_pts, nonce_ptj, 2); + for (i = 0; i < 2; i++) { + secp256k1_gej_clear(&nonce_ptj[i]); + } + + for (i = 0; i < 2; i++) { + secp256k1_declassify(ctx, &nonce_pts[i], sizeof(nonce_pts[i])); } /* None of the nonce_pts will be infinity because k != 0 with overwhelming * probability */ diff --git a/src/modules/schnorrsig/main_impl.h b/src/modules/schnorrsig/main_impl.h index 82bba2f5975..2ed7be677fd 100644 --- a/src/modules/schnorrsig/main_impl.h +++ b/src/modules/schnorrsig/main_impl.h @@ -94,6 +94,8 @@ static int nonce_function_bip340(unsigned char *nonce32, const unsigned char *ms secp256k1_sha256_write(&sha, msg, msglen); secp256k1_sha256_finalize(&sha, nonce32); secp256k1_sha256_clear(&sha); + secp256k1_memclear(masked_key, sizeof(masked_key)); + return 1; } diff --git a/src/precompute_ecmult.c b/src/precompute_ecmult.c index 5ef198a7700..021fe3940c5 100644 --- a/src/precompute_ecmult.c +++ b/src/precompute_ecmult.c @@ -6,6 +6,7 @@ #include #include +#include #include "../include/secp256k1.h" @@ -62,7 +63,7 @@ int main(void) { fp = fopen(outfile, "w"); if (fp == NULL) { fprintf(stderr, "Could not open %s for writing!\n", outfile); - return -1; + return EXIT_FAILURE; } fprintf(fp, "/* This file was automatically generated by precompute_ecmult. */\n"); @@ -86,5 +87,5 @@ int main(void) { fprintf(fp, "#undef S\n"); fclose(fp); - return 0; + return EXIT_SUCCESS; } diff --git a/src/precompute_ecmult_gen.c b/src/precompute_ecmult_gen.c index 4d153a65744..cd0fe70fc25 100644 --- a/src/precompute_ecmult_gen.c +++ b/src/precompute_ecmult_gen.c @@ -6,6 +6,7 @@ #include #include +#include #include "../include/secp256k1.h" @@ -64,7 +65,7 @@ int main(int argc, char **argv) { fp = fopen(outfile, "w"); if (fp == NULL) { fprintf(stderr, "Could not open %s for writing!\n", outfile); - return -1; + return EXIT_FAILURE; } fprintf(fp, "/* This file was automatically generated by precompute_ecmult_gen. */\n"); @@ -96,5 +97,5 @@ int main(int argc, char **argv) { fprintf(fp, "#undef S\n"); fclose(fp); - return 0; + return EXIT_SUCCESS; } diff --git a/src/precomputed_ecmult.h b/src/precomputed_ecmult.h index 17df1029672..e5a85f684f0 100644 --- a/src/precomputed_ecmult.h +++ b/src/precomputed_ecmult.h @@ -13,6 +13,8 @@ extern "C" { #include "ecmult.h" #include "group.h" +#include "util_local_visibility.h" + #if defined(EXHAUSTIVE_TEST_ORDER) # if EXHAUSTIVE_TEST_ORDER == 7 # define WINDOW_G 3 @@ -27,8 +29,8 @@ static secp256k1_ge_storage secp256k1_pre_g[ECMULT_TABLE_SIZE(WINDOW_G)]; static secp256k1_ge_storage secp256k1_pre_g_128[ECMULT_TABLE_SIZE(WINDOW_G)]; #else /* !defined(EXHAUSTIVE_TEST_ORDER) */ # define WINDOW_G ECMULT_WINDOW_SIZE -extern const secp256k1_ge_storage secp256k1_pre_g[ECMULT_TABLE_SIZE(WINDOW_G)]; -extern const secp256k1_ge_storage secp256k1_pre_g_128[ECMULT_TABLE_SIZE(WINDOW_G)]; +SECP256K1_LOCAL_VAR const secp256k1_ge_storage secp256k1_pre_g[ECMULT_TABLE_SIZE(WINDOW_G)]; +SECP256K1_LOCAL_VAR const secp256k1_ge_storage secp256k1_pre_g_128[ECMULT_TABLE_SIZE(WINDOW_G)]; #endif /* defined(EXHAUSTIVE_TEST_ORDER) */ #ifdef __cplusplus diff --git a/src/precomputed_ecmult_gen.h b/src/precomputed_ecmult_gen.h index 283738a5ce1..00ddce108b6 100644 --- a/src/precomputed_ecmult_gen.h +++ b/src/precomputed_ecmult_gen.h @@ -13,10 +13,12 @@ extern "C" { #include "group.h" #include "ecmult_gen.h" +#include "util_local_visibility.h" + #ifdef EXHAUSTIVE_TEST_ORDER static secp256k1_ge_storage secp256k1_ecmult_gen_prec_table[COMB_BLOCKS][COMB_POINTS]; #else -extern const secp256k1_ge_storage secp256k1_ecmult_gen_prec_table[COMB_BLOCKS][COMB_POINTS]; +SECP256K1_LOCAL_VAR const secp256k1_ge_storage secp256k1_ecmult_gen_prec_table[COMB_BLOCKS][COMB_POINTS]; #endif /* defined(EXHAUSTIVE_TEST_ORDER) */ #ifdef __cplusplus diff --git a/src/scalar_impl.h b/src/scalar_impl.h index dbb5b0a01ca..0232a8c223e 100644 --- a/src/scalar_impl.h +++ b/src/scalar_impl.h @@ -90,11 +90,11 @@ static void secp256k1_scalar_split_lambda_verify(const secp256k1_scalar *r1, con #endif /* - * Both lambda and beta are primitive cube roots of unity. That is lamba^3 == 1 mod n and + * Both lambda and beta are primitive cube roots of unity. That is lambda^3 == 1 mod n and * beta^3 == 1 mod p, where n is the curve order and p is the field order. * * Furthermore, because (X^3 - 1) = (X - 1)(X^2 + X + 1), the primitive cube roots of unity are - * roots of X^2 + X + 1. Therefore lambda^2 + lamba == -1 mod n and beta^2 + beta == -1 mod p. + * roots of X^2 + X + 1. Therefore lambda^2 + lambda == -1 mod n and beta^2 + beta == -1 mod p. * (The other primitive cube roots of unity are lambda^2 and beta^2 respectively.) * * Let l = -1/2 + i*sqrt(3)/2, the complex root of X^2 + X + 1. We can define a ring diff --git a/src/secp256k1.c b/src/secp256k1.c index a248519dfd8..0915af77973 100644 --- a/src/secp256k1.c +++ b/src/secp256k1.c @@ -71,8 +71,8 @@ static const secp256k1_context secp256k1_context_static_ = { { secp256k1_default_error_callback_fn, 0 }, 0 }; -const secp256k1_context *secp256k1_context_static = &secp256k1_context_static_; -const secp256k1_context *secp256k1_context_no_precomp = &secp256k1_context_static_; +const secp256k1_context * const secp256k1_context_static = &secp256k1_context_static_; +const secp256k1_context * const secp256k1_context_no_precomp = &secp256k1_context_static_; /* Helper function that determines if a context is proper, i.e., is not the static context or a copy thereof. * @@ -280,7 +280,7 @@ int secp256k1_ec_pubkey_serialize(const secp256k1_context* ctx, unsigned char *o ARG_CHECK(pubkey != NULL); ARG_CHECK((flags & SECP256K1_FLAGS_TYPE_MASK) == SECP256K1_FLAGS_TYPE_COMPRESSION); if (secp256k1_pubkey_load(ctx, &Q, pubkey)) { - ret = secp256k1_eckey_pubkey_serialize(&Q, output, &len, flags & SECP256K1_FLAGS_BIT_COMPRESSION); + ret = secp256k1_eckey_pubkey_serialize(&Q, output, &len, !!(flags & SECP256K1_FLAGS_BIT_COMPRESSION)); if (ret) { *outputlen = len; } @@ -634,10 +634,6 @@ int secp256k1_ec_seckey_negate(const secp256k1_context* ctx, unsigned char *seck return ret; } -int secp256k1_ec_privkey_negate(const secp256k1_context* ctx, unsigned char *seckey) { - return secp256k1_ec_seckey_negate(ctx, seckey); -} - int secp256k1_ec_pubkey_negate(const secp256k1_context* ctx, secp256k1_pubkey *pubkey) { int ret = 0; secp256k1_ge p; @@ -681,10 +677,6 @@ int secp256k1_ec_seckey_tweak_add(const secp256k1_context* ctx, unsigned char *s return ret; } -int secp256k1_ec_privkey_tweak_add(const secp256k1_context* ctx, unsigned char *seckey, const unsigned char *tweak32) { - return secp256k1_ec_seckey_tweak_add(ctx, seckey, tweak32); -} - static int secp256k1_ec_pubkey_tweak_add_helper(secp256k1_ge *p, const unsigned char *tweak32) { secp256k1_scalar term; int overflow = 0; @@ -729,10 +721,6 @@ int secp256k1_ec_seckey_tweak_mul(const secp256k1_context* ctx, unsigned char *s return ret; } -int secp256k1_ec_privkey_tweak_mul(const secp256k1_context* ctx, unsigned char *seckey, const unsigned char *tweak32) { - return secp256k1_ec_seckey_tweak_mul(ctx, seckey, tweak32); -} - int secp256k1_ec_pubkey_tweak_mul(const secp256k1_context* ctx, secp256k1_pubkey *pubkey, const unsigned char *tweak32) { secp256k1_ge p; secp256k1_scalar factor; diff --git a/src/tests.c b/src/tests.c index 78533b11c28..52614401c0a 100644 --- a/src/tests.c +++ b/src/tests.c @@ -87,15 +87,6 @@ static void counting_callback_fn(const char* str, void* data) { (*p)++; } -static void uncounting_illegal_callback_fn(const char* str, void* data) { - /* Dummy callback function that just counts (backwards). */ - int32_t *p; - (void)str; - p = data; - CHECK(*p != INT32_MIN); - (*p)--; -} - static void run_xoshiro256pp_tests(void) { { size_t i; @@ -3821,14 +3812,38 @@ static void test_ge(void) { /* Test batch gej -> ge conversion without known z ratios. */ { + secp256k1_ge *ge_set_all_var = (secp256k1_ge *)checked_malloc(&CTX->error_callback, (4 * runs + 1) * sizeof(secp256k1_ge)); secp256k1_ge *ge_set_all = (secp256k1_ge *)checked_malloc(&CTX->error_callback, (4 * runs + 1) * sizeof(secp256k1_ge)); - secp256k1_ge_set_all_gej_var(ge_set_all, gej, 4 * runs + 1); + secp256k1_ge_set_all_gej_var(&ge_set_all_var[0], &gej[0], 4 * runs + 1); for (i = 0; i < 4 * runs + 1; i++) { secp256k1_fe s; testutil_random_fe_non_zero(&s); secp256k1_gej_rescale(&gej[i], &s); - CHECK(secp256k1_gej_eq_ge_var(&gej[i], &ge_set_all[i])); + CHECK(secp256k1_gej_eq_ge_var(&gej[i], &ge_set_all_var[i])); } + + /* Skip infinity at &gej[0]. */ + secp256k1_ge_set_all_gej(&ge_set_all[1], &gej[1], 4 * runs); + for (i = 1; i < 4 * runs + 1; i++) { + secp256k1_fe s; + testutil_random_fe_non_zero(&s); + secp256k1_gej_rescale(&gej[i], &s); + CHECK(secp256k1_gej_eq_ge_var(&gej[i], &ge_set_all[i])); + CHECK(secp256k1_ge_eq_var(&ge_set_all_var[i], &ge_set_all[i])); + } + + /* Test with an array of length 1. */ + secp256k1_ge_set_all_gej_var(ge_set_all_var, &gej[1], 1); + secp256k1_ge_set_all_gej(ge_set_all, &gej[1], 1); + CHECK(secp256k1_gej_eq_ge_var(&gej[1], &ge_set_all_var[1])); + CHECK(secp256k1_gej_eq_ge_var(&gej[1], &ge_set_all[1])); + CHECK(secp256k1_ge_eq_var(&ge_set_all_var[1], &ge_set_all[1])); + + /* Test with an array of length 0. */ + secp256k1_ge_set_all_gej_var(NULL, NULL, 0); + secp256k1_ge_set_all_gej(NULL, NULL, 0); + + free(ge_set_all_var); free(ge_set_all); } @@ -6248,11 +6263,6 @@ static void run_eckey_negate_test(void) { CHECK(secp256k1_ec_seckey_negate(CTX, seckey) == 1); CHECK(secp256k1_memcmp_var(seckey, seckey_tmp, 32) == 0); - /* Check that privkey alias gives same result */ - CHECK(secp256k1_ec_seckey_negate(CTX, seckey) == 1); - CHECK(secp256k1_ec_privkey_negate(CTX, seckey_tmp) == 1); - CHECK(secp256k1_memcmp_var(seckey, seckey_tmp, 32) == 0); - /* Negating all 0s fails */ memset(seckey, 0, 32); memset(seckey_tmp, 0, 32); @@ -6413,22 +6423,15 @@ static void test_ecdsa_end_to_end(void) { if (testrand_int(3) == 0) { int ret1; int ret2; - int ret3; unsigned char rnd[32]; - unsigned char privkey_tmp[32]; secp256k1_pubkey pubkey2; testrand256_test(rnd); - memcpy(privkey_tmp, privkey, 32); ret1 = secp256k1_ec_seckey_tweak_add(CTX, privkey, rnd); ret2 = secp256k1_ec_pubkey_tweak_add(CTX, &pubkey, rnd); - /* Check that privkey alias gives same result */ - ret3 = secp256k1_ec_privkey_tweak_add(CTX, privkey_tmp, rnd); CHECK(ret1 == ret2); - CHECK(ret2 == ret3); if (ret1 == 0) { return; } - CHECK(secp256k1_memcmp_var(privkey, privkey_tmp, 32) == 0); CHECK(secp256k1_ec_pubkey_create(CTX, &pubkey2, privkey) == 1); CHECK(secp256k1_memcmp_var(&pubkey, &pubkey2, sizeof(pubkey)) == 0); } @@ -6437,22 +6440,15 @@ static void test_ecdsa_end_to_end(void) { if (testrand_int(3) == 0) { int ret1; int ret2; - int ret3; unsigned char rnd[32]; - unsigned char privkey_tmp[32]; secp256k1_pubkey pubkey2; testrand256_test(rnd); - memcpy(privkey_tmp, privkey, 32); ret1 = secp256k1_ec_seckey_tweak_mul(CTX, privkey, rnd); ret2 = secp256k1_ec_pubkey_tweak_mul(CTX, &pubkey, rnd); - /* Check that privkey alias gives same result */ - ret3 = secp256k1_ec_privkey_tweak_mul(CTX, privkey_tmp, rnd); CHECK(ret1 == ret2); - CHECK(ret2 == ret3); if (ret1 == 0) { return; } - CHECK(secp256k1_memcmp_var(privkey, privkey_tmp, 32) == 0); CHECK(secp256k1_ec_pubkey_create(CTX, &pubkey2, privkey) == 1); CHECK(secp256k1_memcmp_var(&pubkey, &pubkey2, sizeof(pubkey)) == 0); } @@ -7837,5 +7833,5 @@ int main(int argc, char **argv) { testrand_finish(); printf("no problems found\n"); - return 0; + return EXIT_SUCCESS; } diff --git a/src/tests_exhaustive.c b/src/tests_exhaustive.c index 6efa88982ef..f8bbcaaf5c4 100644 --- a/src/tests_exhaustive.c +++ b/src/tests_exhaustive.c @@ -383,7 +383,7 @@ int main(int argc, char** argv) { this_core = strtol(argv[4], NULL, 0); if (num_cores < 1 || this_core >= num_cores) { fprintf(stderr, "Usage: %s [count] [seed] [numcores] [thiscore]\n", argv[0]); - return 1; + return EXIT_FAILURE; } printf("running tests for core %lu (out of [0..%lu])\n", (unsigned long)this_core, (unsigned long)num_cores - 1); } @@ -462,5 +462,5 @@ int main(int argc, char** argv) { testrand_finish(); printf("no problems found\n"); - return 0; + return EXIT_SUCCESS; } diff --git a/src/util.h b/src/util.h index 88a4149421a..5f29f4076ce 100644 --- a/src/util.h +++ b/src/util.h @@ -232,7 +232,7 @@ static SECP256K1_INLINE void secp256k1_memclear(void *ptr, size_t len) { * As best as we can tell, this is sufficient to break any optimisations that * might try to eliminate "superfluous" memsets. * This method is used in memzero_explicit() the Linux kernel, too. Its advantage is that it - * is pretty efficient, because the compiler can still implement the memset() efficently, + * is pretty efficient, because the compiler can still implement the memset() efficiently, * just not remove it entirely. See "Dead Store Elimination (Still) Considered Harmful" by * Yang et al. (USENIX Security 2017) for more background. */ diff --git a/src/util_local_visibility.h b/src/util_local_visibility.h new file mode 100644 index 00000000000..8912a64d1da --- /dev/null +++ b/src/util_local_visibility.h @@ -0,0 +1,12 @@ +#ifndef SECP256K1_LOCAL_VISIBILITY_H +#define SECP256K1_LOCAL_VISIBILITY_H + +/* Global variable visibility */ +/* See: https://github.com/bitcoin-core/secp256k1/issues/1181 */ +#if !defined(_WIN32) && defined(__GNUC__) && (__GNUC__ >= 4) +# define SECP256K1_LOCAL_VAR extern __attribute__ ((visibility ("hidden"))) +#else +# define SECP256K1_LOCAL_VAR extern +#endif + +#endif /* SECP256K1_LOCAL_VISIBILITY_H */ diff --git a/src/wycheproof/WYCHEPROOF_COPYING b/src/wycheproof/WYCHEPROOF_COPYING index cddf9d9182b..efe3e8bf4ec 100644 --- a/src/wycheproof/WYCHEPROOF_COPYING +++ b/src/wycheproof/WYCHEPROOF_COPYING @@ -3,9 +3,18 @@ `b063b4aedae951c69df014cd25fa6d69ae9e8cb9`, see https://github.com/google/wycheproof/blob/b063b4aedae951c69df014cd25fa6d69ae9e8cb9/testvectors_v1/ecdsa_secp256k1_sha256_bitcoin_test.json +* The file `ecdh_secp256k1_test.json` in this directory + comes from Google's project Wycheproof with git commit + `d9f6ec7d8bd8c96da05368999094e4a75ba5cb3d`, see + https://github.com/google/wycheproof/blob/d9f6ec7d8bd8c96da05368999094e4a75ba5cb3d/testvectors_v1/ecdh_secp256k1_test.json + * The file `ecdsa_secp256k1_sha256_bitcoin_test.h` is generated from `ecdsa_secp256k1_sha256_bitcoin_test.json` using the script - `tests_wycheproof_generate.py`. + `tests_wycheproof_generate_ecdsa.py`. + +* The file `ecdh_secp256k1_test.h` is generated from + `ecdh_secp256k1_test.json` using the script + `tests_wycheproof_generate_ecdh.py`. ------------------------------------------------------------------------------- diff --git a/src/wycheproof/ecdh_secp256k1_test.h b/src/wycheproof/ecdh_secp256k1_test.h new file mode 100644 index 00000000000..02a087e53c9 --- /dev/null +++ b/src/wycheproof/ecdh_secp256k1_test.h @@ -0,0 +1,2008 @@ +/* Note: this file was autogenerated using tests_wycheproof_ecdh.py. Do not edit. */ +#define SECP256K1_ECDH_WYCHEPROOF_NUMBER_TESTVECTORS (503) + +typedef struct { + size_t pk_offset; + size_t pk_len; + size_t sk_offset; + size_t sk_len; + size_t shared_offset; + size_t shared_len; + int expected_result; + int wycheproof_tcid; +} wycheproof_ecdh_testvector; + +static const unsigned char wycheproof_ecdh_private_keys[] = { 0xf4,0xb7,0xff,0x7c,0xcc,0xc9,0x88,0x13,0xa6,0x9f,0xae,0x3d,0xf2,0x22,0xbf,0xe3,0xf4,0xe2,0x8f,0x76,0x4b,0xf9,0x1b,0x4a,0x10,0xd8,0x09,0x6c,0xe4,0x46,0xb2,0x54, + 0xa2,0xb6,0x44,0x2a,0x37,0xf8,0xa3,0x76,0x4a,0xef,0xf4,0x01,0x1a,0x4c,0x42,0x2b,0x38,0x9a,0x1e,0x50,0x96,0x69,0xc4,0x3f,0x27,0x9c,0x8b,0x7e,0x32,0xd8,0x0c,0x3a, + 0x2b,0xc1,0x5c,0xf3,0x98,0x1e,0xab,0x61,0xe5,0x94,0xeb,0xf5,0x91,0x29,0x0a,0x04,0x5c,0xa9,0x32,0x6a,0x8d,0x3d,0xd4,0x9f,0x3d,0xe1,0x19,0x0d,0x39,0x27,0x0b,0xb8, + 0x93,0x8f,0x3d,0xbe,0x37,0x13,0x5c,0xd8,0xc8,0xc4,0x8a,0x67,0x6b,0x28,0xb2,0x33,0x4b,0x72,0xa3,0xf0,0x98,0x14,0xc8,0xef,0xb6,0xa4,0x51,0xbe,0x00,0xc9,0x3d,0x23, + 0xc1,0x78,0x1d,0x86,0xca,0xc2,0xc0,0x52,0xb8,0x65,0xf2,0x28,0xe6,0x4b,0xd1,0xce,0x43,0x3c,0x78,0xca,0x7d,0xfc,0xa9,0xe8,0xb8,0x10,0x47,0x3e,0x2c,0xe1,0x7d,0xa5, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3a,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x41, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xc2,0x5e,0x8c,0xd0,0x36,0x41,0x41, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xca,0x5e,0x8c,0xd0,0x36,0x41,0x41, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8b,0xd0,0x36,0x41,0x41, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x40,0xc3, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x03, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x23, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x33, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x3b, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x3e, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,0x36,0x41,0x3f, + 0xc6,0xca,0xfb,0x74,0xe2,0xa5,0x0c,0x83,0xb3,0xd2,0x32,0xc4,0x58,0x52,0x37,0xf4,0x4d,0x4c,0x54,0x33,0xc4,0xb3,0xf5,0x0c,0xe9,0x78,0xe6,0xae,0xda,0x3a,0x4f,0x5d, + 0xcf,0xe7,0x5e,0xe7,0x64,0x19,0x7a,0xa7,0x73,0x2a,0x54,0x78,0x55,0x6b,0x47,0x88,0x98,0x42,0x3d,0x2b,0xc0,0xe4,0x84,0xa6,0xeb,0xb3,0x67,0x4a,0x60,0x36,0xa6,0x5d, + 0xd0,0x91,0x82,0xa4,0xd0,0xc9,0x4b,0xa8,0x5f,0x82,0xef,0xf9,0xfc,0x1b,0xdd,0xb0,0xb0,0x7d,0x3f,0x2a,0xf8,0x63,0x2f,0xc1,0xc7,0x3a,0x36,0x04,0xe8,0xf0,0xb3,0x35}; + +static const unsigned char wycheproof_ecdh_public_keys[] = { 0x04,0xd8,0x09,0x6a,0xf8,0xa1,0x1e,0x0b,0x80,0x03,0x7e,0x1e,0xe6,0x82,0x46,0xb5,0xdc,0xbb,0x0a,0xeb,0x1c,0xf1,0x24,0x4f,0xd7,0x67,0xdb,0x80,0xf3,0xfa,0x27,0xda,0x2b,0x39,0x68,0x12,0xea,0x16,0x86,0xe7,0x47,0x2e,0x96,0x92,0xea,0xf3,0xe9,0x58,0xe5,0x0e,0x95,0x00,0xd3,0xb4,0xc7,0x72,0x43,0xdb,0x1f,0x2a,0xcd,0x67,0xba,0x9c,0xc4, + 0x02,0xd8,0x09,0x6a,0xf8,0xa1,0x1e,0x0b,0x80,0x03,0x7e,0x1e,0xe6,0x82,0x46,0xb5,0xdc,0xbb,0x0a,0xeb,0x1c,0xf1,0x24,0x4f,0xd7,0x67,0xdb,0x80,0xf3,0xfa,0x27,0xda,0x2b, + 0x04,0x96,0x5f,0xf4,0x2d,0x65,0x4e,0x05,0x8e,0xe7,0x31,0x7c,0xce,0xd7,0xca,0xf0,0x93,0xfb,0xb1,0x80,0xd8,0xd3,0xa7,0x4b,0x0d,0xcd,0x9d,0x8c,0xd4,0x7a,0x39,0xd5,0xcb,0x9c,0x2a,0xa4,0xda,0xac,0x01,0xa4,0xbe,0x37,0xc2,0x04,0x67,0xed,0xe9,0x64,0x66,0x2f,0x12,0x98,0x3e,0x0b,0x52,0x72,0xa4,0x7a,0x5f,0x27,0x85,0x68,0x5d,0x80,0x87, + 0x04,0x06,0xc4,0xb8,0x7b,0xa7,0x6c,0x6d,0xcb,0x10,0x1f,0x54,0xa0,0x50,0xa0,0x86,0xaa,0x2c,0xb0,0x72,0x2f,0x03,0x13,0x7d,0xf5,0xa9,0x22,0x47,0x2f,0x1b,0xdc,0x11,0xb9,0x82,0xe3,0xc7,0x35,0xc4,0xb6,0xc4,0x81,0xd0,0x92,0x69,0x55,0x9f,0x08,0x0a,0xd0,0x86,0x32,0xf3,0x70,0xa0,0x54,0xaf,0x12,0xc1,0xfd,0x1e,0xce,0xd2,0xea,0x92,0x11, + 0x04,0xbb,0xa3,0x0e,0xef,0x79,0x67,0xa2,0xf2,0xf0,0x8a,0x2f,0xfa,0xda,0xc0,0xe4,0x1f,0xd4,0xdb,0x12,0xa9,0x3c,0xef,0x0b,0x04,0x5b,0x57,0x06,0xf2,0x85,0x38,0x21,0xe6,0xd5,0x0b,0x2b,0xf8,0xcb,0xf5,0x30,0xe6,0x19,0x86,0x9e,0x07,0xc0,0x21,0xef,0x16,0xf6,0x93,0xcf,0xc0,0xa4,0xb0,0xd4,0xed,0x5a,0x8f,0x46,0x46,0x92,0xbf,0x3d,0x6e, + 0x04,0x6d,0xa9,0xeb,0x2c,0xda,0xc0,0x21,0x22,0xd5,0xf0,0x5c,0xf6,0xa8,0xcd,0x76,0x8e,0x37,0x8f,0x66,0x4e,0xa4,0xa7,0x87,0x1d,0x10,0xe2,0x5f,0x57,0xeb,0x1e,0xe1,0xcc,0x5b,0x2b,0x5a,0xbf,0x9c,0x6c,0x65,0x96,0xf8,0xf3,0x83,0xdd,0xbc,0xb3,0xbc,0xc2,0xd5,0xa7,0xcc,0x60,0x59,0x84,0x93,0x12,0x39,0xca,0x96,0x69,0x94,0x60,0x32,0xee, + 0x04,0xf2,0x97,0x61,0x54,0xc4,0xf5,0x3c,0xe3,0x92,0xd1,0xfe,0x39,0xa8,0x91,0xa4,0x61,0x1b,0xa8,0xcf,0x04,0x60,0x23,0xcd,0x8f,0x1b,0xcd,0x9f,0xdd,0x2e,0x92,0x11,0x91,0xb2,0x5c,0xf3,0x1c,0xae,0xdf,0xbb,0x41,0x53,0x81,0x63,0x7b,0xc3,0xf5,0x99,0xa3,0x4f,0xba,0x3e,0x14,0x13,0xf6,0x44,0xcb,0x16,0x68,0x46,0x9f,0x45,0x58,0xa7,0x72, + 0x04,0x5e,0x42,0x2f,0xea,0x67,0xcc,0xa5,0xeb,0xae,0xac,0x87,0x74,0x5c,0x81,0xb1,0x0e,0xf8,0x07,0x03,0x03,0x67,0xe6,0xfc,0xe0,0x12,0x25,0x41,0x76,0xec,0x8c,0xf1,0x99,0x88,0x15,0x92,0xf4,0x2c,0x26,0x43,0x71,0xe1,0x9e,0x30,0x37,0x38,0x8a,0xb6,0x4f,0x32,0xfa,0x88,0x70,0xe6,0x29,0x05,0xe7,0xaf,0x20,0x5e,0x43,0xb0,0x2a,0xad,0x12, + 0x04,0xbb,0x57,0xb9,0xa1,0x23,0x1b,0xe0,0x42,0xd1,0x85,0xc0,0x3e,0xda,0x69,0x26,0xa6,0xde,0xf1,0x77,0xfe,0x67,0x45,0xed,0xa0,0x00,0xc5,0x20,0xd6,0x65,0x81,0xf0,0xcd,0xf1,0xd7,0x3c,0x80,0x45,0x3f,0x2f,0xe3,0x07,0x25,0xad,0xf9,0x51,0x39,0x0c,0x73,0x9e,0x36,0xfc,0x86,0x77,0x69,0x1d,0xb1,0x07,0x88,0x13,0x42,0x61,0x3d,0x00,0xab, + 0x04,0x55,0x63,0xc7,0x6c,0x19,0x37,0x76,0x38,0xf7,0xd5,0x17,0xbd,0xbe,0x0a,0xce,0x46,0x7e,0xb5,0xd4,0xdd,0x9f,0xb4,0xbf,0x18,0x33,0x2b,0xab,0x8f,0x07,0xb1,0xd8,0x0c,0x26,0x13,0x32,0xd4,0x6e,0x31,0x67,0x11,0x27,0x8b,0xac,0xcc,0xd8,0x80,0x05,0xee,0x4c,0x11,0x5f,0xa8,0x40,0x89,0xfd,0x19,0x06,0x74,0x62,0x6e,0x5e,0xd1,0xeb,0xfe, + 0x04,0x89,0x83,0xaa,0xe8,0xc0,0x02,0xf2,0xb5,0x55,0xac,0xb2,0x37,0x0a,0xdb,0x9b,0x50,0xba,0x4c,0xac,0x1b,0xfc,0xc9,0x03,0x9a,0x12,0x5c,0x70,0xca,0x7c,0x5f,0xc0,0xd1,0xf6,0xef,0xeb,0x8a,0xe4,0xba,0x8c,0x69,0x42,0x9d,0x93,0x24,0x43,0x82,0x44,0x7a,0xc5,0x34,0x89,0x1c,0x66,0x09,0x00,0x25,0x28,0x26,0x55,0x71,0x9b,0xd7,0x25,0x12, + 0x04,0x23,0x55,0x65,0x64,0x85,0x0c,0x50,0xfb,0xa5,0x1f,0x1e,0x64,0xef,0x98,0x37,0x8e,0xf5,0xc2,0x2f,0xea,0xfa,0x29,0x49,0x9c,0xa2,0x76,0x00,0xc4,0x73,0xca,0xce,0x88,0x9d,0x56,0x79,0xe9,0x17,0xda,0xa7,0xf4,0xc7,0x89,0x95,0x17,0xd3,0x78,0x26,0x28,0x4f,0x03,0x1d,0xe0,0x1a,0x60,0xbc,0x81,0x36,0x96,0x41,0x4d,0x04,0x53,0x1a,0x21, + 0x04,0xdd,0xbf,0x80,0x7e,0x22,0xc5,0x6a,0x19,0xcf,0x6c,0x47,0x28,0x29,0x15,0x03,0x50,0x78,0x10,0x34,0xa5,0xed,0xde,0xc3,0x65,0x69,0x4d,0x4b,0xd5,0xc8,0x65,0xea,0xd1,0x4e,0x67,0x41,0x27,0x02,0x8c,0x91,0xd3,0x39,0x4c,0xac,0x37,0x29,0x3a,0x86,0x60,0x55,0xd1,0x0f,0x0f,0x40,0xa3,0x70,0x6a,0xd1,0x6b,0x64,0xfc,0x9d,0x59,0x98,0xbd, + 0x04,0x64,0x68,0x8e,0xae,0x7a,0xab,0xd2,0x48,0xf6,0xf4,0x4a,0x0d,0x6e,0x2c,0x43,0x8e,0x41,0x00,0x00,0x18,0x13,0xeb,0x71,0xf9,0xf0,0x82,0xfa,0xd3,0xdf,0xe4,0x3e,0x28,0x7d,0xab,0x3d,0xab,0xe7,0xd4,0x36,0x00,0x1a,0x0f,0xb7,0x63,0x01,0x5d,0xed,0xbb,0x90,0xf8,0x11,0x00,0x0e,0xc8,0xf5,0xf2,0x99,0x53,0xe3,0xaf,0x42,0xf9,0x20,0x65, + 0x04,0xc4,0x04,0xe1,0x71,0x41,0xd1,0x02,0xbb,0xa2,0xf1,0xcb,0x16,0xbb,0x95,0x4a,0x20,0x87,0x98,0xb0,0x4d,0xca,0x8d,0xd1,0x39,0xa8,0xab,0x7f,0x01,0xf0,0xdb,0xef,0x39,0xc7,0xb8,0xe5,0x5f,0x22,0x57,0xa4,0x80,0x07,0x7e,0x41,0x90,0x57,0x0a,0x00,0x4c,0xbe,0x66,0x82,0x00,0xc9,0xc7,0x8e,0xaa,0x53,0xb6,0x1b,0x20,0xfc,0xe4,0xc6,0x85, + 0x04,0xe1,0x60,0xe8,0x7c,0x0a,0x56,0x2a,0x1d,0xbb,0x59,0xb4,0xc2,0xf6,0x14,0x72,0x0e,0x77,0x53,0x60,0x86,0x72,0xeb,0x8d,0x88,0x3b,0x91,0xe2,0x5f,0x8c,0xfc,0x58,0x47,0x46,0x23,0xcb,0xa5,0x84,0xe1,0x32,0x4b,0xc4,0x9b,0xcd,0xf0,0x89,0x11,0x66,0xb5,0x45,0xb7,0x70,0x4e,0x2b,0xbd,0xa7,0x05,0xd0,0xd7,0x3b,0x75,0x30,0xe4,0x79,0x52, + 0x04,0x5d,0x4d,0x18,0x2b,0x18,0x78,0x2a,0x02,0x68,0x5d,0xcc,0x7b,0x67,0x1e,0xc7,0x42,0xce,0x30,0x8c,0x7a,0xcc,0x8e,0x62,0x60,0xf6,0x7e,0x81,0x51,0x6e,0xb5,0x46,0xe8,0xa3,0x8f,0x07,0x56,0x07,0x4e,0xea,0x48,0x57,0x95,0x33,0x98,0xb6,0xd0,0x55,0x97,0xc7,0xce,0xb5,0xe6,0x5e,0x4e,0x8c,0xee,0x31,0xe8,0x1c,0x56,0x58,0x82,0x4c,0xe4, + 0x04,0x8e,0xcd,0x6a,0x25,0x76,0xf4,0x26,0x26,0x79,0x20,0x76,0x93,0x5e,0x2f,0xe9,0x61,0x59,0x9e,0x48,0x4c,0xd2,0x12,0xbc,0xe2,0x62,0x3b,0x83,0xaa,0x22,0xf5,0x46,0xd2,0xa7,0xf8,0x55,0xb0,0x9b,0xef,0x28,0x6b,0xcb,0xe9,0xe8,0xba,0xb1,0x7f,0xd5,0x6d,0x70,0x55,0xdf,0x64,0xf3,0x44,0x31,0x0c,0x35,0x22,0xe8,0xf2,0x27,0xe4,0x72,0xc8, + 0x04,0x68,0x26,0xf7,0x9e,0xf8,0x4d,0xa8,0x03,0x46,0x0a,0xed,0x09,0x19,0x8d,0x2b,0xbb,0x42,0xd7,0x89,0x2e,0xd6,0x08,0xaa,0xcb,0xb2,0x81,0xa9,0x5a,0xca,0xe1,0x14,0x65,0xa2,0x58,0x09,0x19,0x1a,0xa5,0xbd,0xfa,0x61,0xb8,0x96,0x3b,0xea,0xcb,0x4e,0xb1,0x33,0x26,0x6a,0x90,0xf3,0x3d,0x1b,0x2c,0xa4,0xf6,0x15,0x2d,0x37,0xa9,0x4f,0xd8, + 0x04,0xa5,0x4b,0xb2,0xae,0x80,0x08,0x60,0x53,0xa5,0xfa,0x4f,0xdb,0x18,0x36,0xa8,0xc6,0xac,0x41,0x78,0x36,0x50,0xb0,0xf7,0x9a,0x54,0x28,0xc9,0x8f,0xf6,0x4d,0x07,0x8a,0x12,0xbb,0xb4,0xcb,0x8a,0xf2,0x0c,0xa7,0x5e,0xc1,0x5b,0x2e,0x0d,0x47,0xa8,0x3c,0xa9,0x3f,0xc7,0x8c,0xd9,0x26,0x40,0xa0,0x2e,0x80,0x02,0x96,0x6f,0x1f,0xe8,0x0b, + 0x04,0xba,0xce,0x46,0xee,0xd4,0x92,0x74,0x3c,0x69,0x3e,0x1a,0x33,0xad,0xb0,0x46,0xb7,0x72,0x2c,0x55,0xce,0x36,0x9d,0x14,0x38,0xe6,0x7f,0x9c,0x5b,0x34,0x12,0x78,0x31,0x45,0x26,0x2d,0xd4,0xa8,0x6c,0x8a,0x52,0x7b,0x23,0xf4,0x11,0x4b,0x8a,0x9b,0x9f,0x36,0xf9,0x70,0x18,0x35,0xf5,0x0b,0x67,0x8b,0x24,0xd2,0xa9,0x15,0x5e,0xbc,0x2c, + 0x04,0x01,0x05,0x51,0x47,0x86,0x3a,0xa0,0x60,0xc0,0xe1,0x04,0xe2,0x43,0xec,0x01,0xed,0xa2,0xb0,0xe0,0xc6,0x81,0x4e,0x23,0x2d,0x67,0x1a,0xbc,0xba,0x97,0x15,0xd5,0xce,0x0c,0x13,0x00,0x6a,0xa7,0x96,0x0c,0x54,0xfe,0x3f,0x20,0x22,0x0b,0xef,0x76,0x67,0x56,0xc9,0x10,0xfd,0x05,0x76,0x4a,0xfc,0x31,0x83,0x75,0x54,0x0c,0xef,0x2d,0x5c, + 0x04,0x59,0x5e,0x46,0xee,0x7c,0x2d,0x71,0x83,0xff,0x2e,0xa7,0x60,0xff,0xd8,0x47,0x2f,0xb8,0x34,0xec,0x89,0xc0,0x8b,0x6e,0xf4,0x8f,0xf9,0x2b,0x44,0xa1,0x3a,0x6e,0x1a,0xe5,0x63,0xe2,0x39,0x53,0xc9,0x7c,0x26,0x44,0x13,0x23,0xd2,0x50,0x0c,0x84,0xe8,0xce,0xe0,0x4c,0x15,0xd4,0xd5,0xd2,0xcc,0x45,0x87,0x03,0xd1,0xf2,0xd0,0x2d,0x31, + 0x04,0x6a,0x40,0xad,0xc8,0x11,0xb0,0x9e,0x83,0xba,0x0f,0xb8,0xa9,0x4f,0xea,0x50,0x59,0x1c,0xa9,0xe5,0x8b,0xb7,0xd4,0x73,0x04,0x95,0x0d,0xbf,0xf7,0x8d,0xad,0x77,0x7e,0xe3,0xbd,0x08,0xf7,0x42,0xd7,0xe8,0xe3,0x0c,0xff,0x31,0xbc,0x6a,0x6c,0xc0,0x2c,0x87,0x17,0xee,0x25,0x83,0x8a,0xab,0xff,0xa6,0xe4,0x8f,0x65,0xcc,0xe7,0x4d,0x81, + 0x04,0x5a,0x33,0xfe,0x91,0xd7,0xe3,0x5d,0xb7,0x87,0x52,0x08,0xbe,0xe7,0x7f,0x4c,0xc0,0x00,0x6f,0x14,0x39,0xcc,0x84,0x5f,0x69,0x5b,0x6a,0x12,0x67,0x3d,0xcd,0x03,0xd1,0x8f,0x86,0xee,0x12,0x1c,0x5e,0xa0,0xda,0x3e,0xb0,0x21,0x05,0x09,0xe1,0x2d,0xb8,0x45,0x29,0x62,0x25,0xca,0x97,0x3e,0x2e,0x19,0xce,0x3e,0x3d,0x01,0x48,0x60,0x90, + 0x04,0xf6,0xeb,0xaa,0xb6,0x2c,0x35,0xfd,0x4b,0x8b,0xec,0x9d,0x95,0xbc,0xfc,0x43,0x3e,0x6b,0xde,0x7c,0x0f,0x0d,0x5e,0xf7,0x5d,0x6f,0xd3,0x26,0xaa,0xf2,0x8f,0x23,0xb0,0xb2,0xf4,0xd1,0xc2,0xe8,0x91,0x70,0x6b,0x7b,0xad,0xa5,0x9f,0xb0,0xf6,0xa3,0x2b,0x54,0x63,0x98,0x2a,0x9c,0x8c,0x2d,0x8e,0xa3,0x89,0x54,0x41,0x81,0x83,0xb6,0x34, + 0x04,0x52,0x43,0x92,0x41,0x6f,0x8c,0xfc,0x5f,0x84,0xdc,0x9b,0x72,0xf2,0x88,0x7c,0x68,0x4e,0x4b,0xd2,0x47,0x96,0xf0,0x06,0x50,0x78,0xe1,0x8d,0x16,0xbc,0x43,0xb5,0x6e,0xa0,0x21,0x78,0x31,0x17,0x99,0xeb,0x61,0xad,0x3b,0x3e,0x7d,0xcd,0xa1,0x04,0x04,0xdc,0x45,0x41,0xc1,0x3e,0x3d,0xe0,0xce,0xb4,0x0c,0x9a,0xa7,0xaf,0xab,0xc5,0x3b, + 0x04,0x99,0x96,0x5c,0x47,0x7a,0x24,0x0a,0xeb,0xbd,0x19,0xcd,0x09,0x4c,0x8b,0x62,0x85,0x2d,0xe8,0x66,0x3d,0x0c,0xc9,0xf0,0x6e,0xeb,0x39,0x5f,0xfc,0x92,0xd1,0x21,0xf6,0x48,0x11,0x88,0x2f,0x40,0x60,0x80,0xd7,0xd0,0x4e,0xa4,0xf3,0x39,0xbd,0xdd,0x2e,0x5e,0xf0,0x34,0x5b,0x58,0x34,0x14,0x2f,0x75,0xb5,0x62,0x15,0x4d,0x5e,0xc7,0xae, + 0x04,0xad,0x3d,0x17,0x98,0x77,0xe7,0x4e,0xe2,0x58,0xba,0x6f,0x8e,0x12,0x8b,0xc2,0xa0,0x04,0x5c,0x06,0xa3,0xd3,0xc3,0x0f,0xcc,0xe0,0x1c,0xa8,0xd9,0xe1,0xaf,0xee,0x4e,0xa3,0xfe,0x47,0x15,0x6f,0xb7,0x27,0xfc,0x1c,0x55,0xef,0x9d,0xb5,0x16,0xdf,0x66,0x5c,0xbb,0x07,0x34,0x05,0xc2,0xc3,0x01,0xa8,0xfe,0x1d,0x10,0xf3,0xb9,0xb3,0x00, + 0x04,0x4b,0xb1,0x9d,0xea,0xe6,0x38,0xfc,0x5f,0xa7,0x07,0x0c,0xc9,0x0e,0x96,0x9b,0xac,0x3f,0x83,0x84,0xa5,0x9e,0xa1,0x1c,0xb0,0x1b,0xc0,0x91,0xed,0xf1,0xa4,0xcb,0xd6,0x77,0xed,0x6b,0xdf,0x89,0x71,0xd3,0xe6,0x3c,0x90,0x3d,0x9a,0xca,0xbc,0x28,0xb7,0x5a,0xf6,0x61,0xa0,0x34,0x57,0x26,0x1c,0x5a,0x8d,0x59,0x40,0xad,0x02,0xc5,0x09, + 0x04,0x24,0x17,0x5c,0x07,0x8e,0x30,0x5d,0x31,0x39,0xe5,0xda,0xb7,0x27,0xa6,0xab,0x85,0x87,0xb2,0x6d,0xaa,0x47,0x0a,0x52,0x9a,0x23,0xc1,0x05,0x85,0xcb,0x56,0xc0,0x38,0xbf,0x1f,0x2b,0x93,0x7a,0xe0,0x74,0xff,0x94,0xb1,0x5f,0x5c,0xb5,0xe6,0x0e,0xb5,0xd3,0x2a,0xfb,0xa2,0x07,0x75,0x39,0xdb,0x79,0x42,0x94,0xbc,0xaa,0xb7,0x1a,0x81, + 0x04,0xef,0x69,0x1a,0xfe,0x2e,0xe4,0xaa,0x18,0xa8,0x48,0x5a,0x71,0xc0,0xe2,0x0e,0xff,0x13,0x37,0xae,0x06,0x22,0xac,0xc0,0x9c,0xcd,0xa1,0x0f,0x49,0x57,0x4a,0xe8,0x40,0xb8,0x27,0x30,0xbb,0x2e,0xef,0x59,0xa1,0x7a,0xb0,0x95,0xac,0xd1,0x31,0xe5,0xfc,0xf8,0xba,0x11,0x15,0x0a,0x94,0x21,0xbb,0xab,0x6b,0x9f,0x14,0x6a,0xa7,0x8f,0xfb, + 0x04,0x06,0x7e,0x7d,0xf0,0x9f,0x5e,0x38,0xf2,0xb2,0x82,0x3f,0x65,0xa6,0xb1,0x13,0x5c,0x32,0x90,0x58,0x6f,0xef,0x6e,0xce,0xff,0xa6,0xd5,0x95,0x95,0x74,0x88,0x79,0xf6,0x69,0x32,0xb3,0xf7,0x0d,0x60,0x32,0x29,0xe1,0x0a,0x57,0x34,0x4e,0xcd,0xe5,0x03,0xa2,0xdf,0x93,0x06,0x51,0x04,0x6c,0x2f,0x1d,0x2b,0x71,0x9b,0xfc,0x93,0xe0,0xa1, + 0x04,0xb8,0x72,0x2e,0xcd,0xde,0x7c,0x85,0x31,0x7e,0x48,0x6b,0x03,0x65,0x6b,0x83,0x91,0x0a,0xc3,0xc8,0x86,0x87,0xa4,0x29,0x1e,0x8b,0xb9,0xa4,0xb6,0xa5,0x2c,0xc6,0xe0,0x2e,0x41,0x58,0xa5,0xa8,0x8d,0xe0,0x23,0xd6,0xa1,0x35,0xbd,0x04,0xc1,0x58,0x5e,0xf4,0x67,0x41,0x89,0x03,0x76,0x13,0x54,0x53,0xec,0x56,0x2d,0xa5,0xb3,0x76,0x0b, + 0x04,0x72,0x8e,0x15,0xd5,0x78,0x21,0x2b,0xc4,0x22,0x87,0xc0,0x11,0x8c,0x82,0xc8,0x4b,0x12,0x6f,0x97,0xd5,0x49,0x22,0x3c,0x10,0xad,0x07,0xf4,0xe9,0x8a,0xf9,0x12,0x38,0x5d,0x23,0xb1,0xa6,0xe7,0x16,0x92,0x58,0x55,0xa2,0x47,0xb1,0x6e,0xff,0xe9,0x27,0x73,0x31,0x52,0x41,0xac,0x95,0x1c,0xdf,0xef,0xdf,0xac,0x0e,0xd1,0x64,0x67,0xf6, + 0x04,0xc3,0xef,0x35,0xfd,0x4c,0xda,0x66,0xe8,0xe8,0x50,0x09,0x5e,0x1e,0x69,0x7a,0xee,0x56,0xde,0xcc,0x29,0x48,0x4a,0xa4,0x63,0xf8,0x79,0xc7,0xb6,0xdd,0x76,0x69,0xe6,0x25,0x94,0x53,0x51,0x27,0x67,0x19,0xc5,0xe3,0xbb,0x8e,0x51,0x4f,0x69,0x30,0x5b,0x60,0x85,0xb7,0xc7,0x82,0xa0,0x7b,0x26,0xa8,0x42,0x88,0x7c,0x33,0xa9,0x3d,0xc6, + 0x04,0x78,0x49,0x07,0xc6,0xbe,0x62,0x02,0x77,0x0b,0x98,0xd0,0x1f,0x1f,0xfe,0x11,0xb9,0xed,0x2c,0x97,0x51,0x58,0x43,0xf5,0x7c,0x2c,0x06,0x36,0x3a,0x9d,0xad,0xc7,0x01,0x1d,0xe5,0xfb,0xaa,0x73,0x56,0xcf,0x3b,0xa2,0x8c,0xb7,0xb9,0x32,0xa0,0x7c,0x83,0x21,0x00,0x7c,0x7c,0x45,0x39,0x67,0x51,0xfe,0x70,0x72,0x43,0x43,0xd2,0xb1,0x9f, + 0x04,0x7c,0x01,0x6d,0xee,0x8b,0x54,0x11,0xf8,0xe9,0x51,0x84,0xda,0xf8,0xe3,0x18,0x11,0x9e,0x84,0x4b,0x8b,0xdc,0x70,0xd7,0x5e,0xfb,0x99,0xb8,0xd0,0xff,0x10,0xab,0x74,0x5e,0x90,0x51,0x03,0xd5,0x7d,0x65,0x37,0x90,0x8e,0x6e,0x98,0x64,0xae,0xe4,0xf0,0x91,0x7f,0x5b,0x92,0x0d,0x06,0xf9,0x80,0xaa,0x82,0x3f,0x04,0x3e,0xf9,0x13,0x9e, + 0x04,0x36,0xe1,0xe7,0x6f,0xfd,0xbe,0x85,0x77,0x52,0x0b,0x07,0x16,0xeb,0x88,0xc1,0x8e,0xa7,0x2a,0x49,0xe5,0xa4,0xe5,0x68,0x0a,0x7d,0x29,0x00,0x93,0xf8,0x41,0xcb,0x6e,0x73,0x10,0x72,0x8b,0x59,0xc7,0x57,0x2c,0x4b,0x35,0xfb,0x6c,0x29,0xc3,0x6e,0xba,0xbf,0xc5,0x35,0x53,0xc0,0x6e,0xcf,0x74,0x7f,0xcf,0xbe,0xfc,0xf6,0x11,0x4e,0x1c, + 0x04,0x7a,0x19,0x50,0x1d,0x64,0x6f,0xc9,0x33,0x2a,0x85,0x25,0xaf,0x4c,0xc7,0x95,0x23,0xb5,0x7d,0x73,0x6b,0x69,0xbb,0x24,0xb0,0x62,0x70,0xc1,0xb1,0xda,0xdf,0x88,0xce,0x83,0x4e,0xfa,0x1b,0xce,0x85,0x4f,0xf5,0xbc,0xad,0xe4,0x0c,0xbc,0xee,0x9f,0x40,0x15,0x4b,0xc2,0x60,0x36,0xad,0xc5,0xcf,0x87,0xe5,0x0e,0xa3,0x88,0xaf,0x29,0x87, + 0x04,0xf4,0x3b,0x61,0x0a,0x2a,0x5c,0x5f,0x6e,0x2b,0x39,0x55,0x67,0x48,0x96,0x57,0x05,0x9e,0x33,0x51,0xc6,0xf9,0xa7,0xe2,0xeb,0xde,0x52,0x63,0x8a,0xbf,0xea,0x00,0x6a,0xb2,0xd6,0x90,0x51,0x3e,0x91,0x87,0xc0,0xcc,0x90,0x3c,0xee,0xe0,0x22,0xee,0x42,0x1c,0x59,0x4a,0x8b,0xd7,0x61,0x0c,0x68,0xcd,0x81,0x43,0xad,0xfc,0x74,0x1d,0xde, + 0x04,0xd9,0x3b,0xfd,0xaa,0x79,0x7c,0xd4,0xbd,0x81,0xde,0xa8,0x0d,0x7c,0x72,0xa2,0x49,0x23,0xce,0x50,0xe9,0x4b,0xfc,0x4e,0xe1,0xbd,0x5f,0x5f,0x10,0xee,0xa3,0xf8,0xec,0xc0,0xb5,0x94,0x18,0x90,0xa2,0x6e,0x88,0xe5,0x02,0x9c,0x28,0x3e,0x0f,0xad,0xec,0xcc,0x0b,0x98,0x0f,0x8a,0x50,0x98,0xaa,0x78,0x35,0xc5,0xc9,0x58,0xd4,0x71,0xe5, + 0x04,0x0a,0xc1,0xea,0x7a,0x29,0xf7,0xac,0xe8,0xa3,0x8b,0x2f,0xed,0xbf,0xe4,0xd0,0xd9,0xae,0x45,0x34,0x44,0x32,0xab,0x3e,0xb5,0xe0,0xa5,0xb6,0x67,0x16,0xf6,0x1c,0x6a,0xaa,0xa3,0x9a,0x5f,0x09,0x8f,0xd4,0x47,0x25,0x87,0xd1,0x4b,0xdf,0x72,0xb3,0xdd,0x3e,0x96,0x6b,0x5f,0x0b,0x6e,0x40,0x0f,0xff,0x6e,0x0e,0x9c,0x84,0x53,0xfc,0x79, + 0x04,0xbf,0x2e,0x8a,0x61,0xa2,0x1d,0x96,0xe7,0x4a,0x29,0x6b,0x39,0x7e,0x53,0x04,0x4f,0x37,0x3a,0xcb,0x73,0xa6,0xea,0x4a,0x39,0x8d,0x89,0xc5,0x65,0x49,0xe9,0x6b,0x7f,0xe8,0x46,0xfd,0x0d,0xf2,0x39,0x69,0x1d,0x06,0x82,0xb0,0x67,0xa5,0x0a,0x24,0x23,0xd8,0x8b,0x4d,0x97,0x0b,0x1d,0x3d,0x81,0x41,0xa0,0x66,0xd1,0x3c,0x18,0x6f,0x96, + 0x04,0x56,0xba,0xf1,0xd7,0x26,0x06,0xc7,0xaf,0x5a,0x5f,0xa1,0x08,0x62,0x0b,0x08,0x39,0xe2,0xc7,0xdd,0x40,0xb8,0x32,0xef,0x84,0x7e,0x5b,0x64,0xc8,0x6e,0xfe,0x1a,0xa5,0x63,0xe5,0x86,0xa6,0x67,0xa6,0x5b,0xbb,0x56,0x92,0x50,0x0d,0xf1,0xff,0x84,0x03,0x73,0x68,0x38,0xb3,0x0e,0xa9,0x79,0x1d,0x9d,0x39,0x0e,0x3d,0xc6,0x68,0x9e,0x2c, + 0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9f,0xa2,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07,0xed,0x35,0x3c,0x9f,0x10,0x39,0xed,0xcc,0x9c,0xc5,0x33,0x6c,0x03,0x4d,0xc1,0x31,0xa4,0x08,0x76,0x92,0xc2,0xe5,0x6b,0xc1,0xdd,0x19,0x04,0xe3,0xff,0xff,0xff, + 0x04,0x5e,0x4c,0x2c,0xf1,0x32,0x0e,0xc8,0x4e,0xf8,0x92,0x08,0x67,0xb4,0x09,0xa9,0xa9,0x1d,0x2d,0xd0,0x08,0x21,0x6a,0x28,0x2e,0x36,0xbd,0x84,0xe8,0x84,0x72,0x6f,0xa0,0x5a,0x5e,0x4a,0xf1,0x1c,0xf6,0x3c,0xea,0xaa,0x42,0xa6,0xdc,0x9e,0x4c,0xcb,0x39,0x48,0x52,0xcf,0x84,0x28,0x4e,0x8d,0x26,0x27,0x57,0x2f,0xbf,0x22,0xc0,0xba,0x88, + 0x04,0x02,0xa3,0x0c,0x2f,0xab,0xc8,0x7e,0x67,0x30,0x62,0x5d,0xec,0x2f,0x0d,0x03,0x89,0x43,0x87,0xb7,0xf7,0x43,0xce,0x69,0xc4,0x73,0x51,0xeb,0xe5,0xee,0x98,0xa4,0x83,0x07,0xeb,0x78,0xd3,0x87,0x70,0xfe,0xa1,0xa4,0x4f,0x4d,0xa7,0x2c,0x26,0xf8,0x5b,0x17,0xf3,0x50,0x1a,0x4f,0x93,0x94,0xfe,0x29,0x85,0x6c,0xcb,0xf1,0x5f,0xd2,0x84, + 0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0x03,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x03,0x1a,0x6b,0xf3,0x44,0xb8,0x67,0x30,0xac,0x5c,0x54,0xa7,0x75,0x1a,0xef,0xdb,0xa1,0x35,0x75,0x9b,0x9d,0x53,0x5c,0xa6,0x41,0x11,0xf2,0x98,0xa3,0x8d, + 0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x24,0xdc,0xb0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x01,0x3b,0xc6,0xf0,0x84,0x31,0xe7,0x29,0xed,0x28,0x63,0xf2,0xf4,0xac,0x8a,0x30,0x27,0x96,0x95,0xc8,0x10,0x9c,0x34,0x0a,0x39,0xfa,0x86,0xf4,0x51,0xcd, + 0x04,0x5e,0x4c,0x2c,0xf1,0x32,0x0e,0xc8,0x4e,0xf8,0x92,0x08,0x67,0xb4,0x09,0xa9,0xa9,0x1d,0x2d,0xd0,0x08,0x21,0x6a,0x28,0x2e,0x36,0xbd,0x84,0xe8,0x84,0x72,0x6f,0xa0,0xa5,0xa1,0xb5,0x0e,0xe3,0x09,0xc3,0x15,0x55,0xbd,0x59,0x23,0x61,0xb3,0x34,0xc6,0xb7,0xad,0x30,0x7b,0xd7,0xb1,0x72,0xd9,0xd8,0xa8,0xd0,0x3f,0xdd,0x3f,0x41,0xa7, + 0x04,0x02,0xa3,0x0c,0x2f,0xab,0xc8,0x7e,0x67,0x30,0x62,0x5d,0xec,0x2f,0x0d,0x03,0x89,0x43,0x87,0xb7,0xf7,0x43,0xce,0x69,0xc4,0x73,0x51,0xeb,0xe5,0xee,0x98,0xa4,0x83,0xf8,0x14,0x87,0x2c,0x78,0x8f,0x01,0x5e,0x5b,0xb0,0xb2,0x58,0xd3,0xd9,0x07,0xa4,0xe8,0x0c,0xaf,0xe5,0xb0,0x6c,0x6b,0x01,0xd6,0x7a,0x93,0x33,0x0e,0xa0,0x29,0xab, + 0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0x03,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xe5,0x94,0x0c,0xbb,0x47,0x98,0xcf,0x53,0xa3,0xab,0x58,0x8a,0xe5,0x10,0x24,0x5e,0xca,0x8a,0x64,0x62,0xac,0xa3,0x59,0xbe,0xed,0x0d,0x67,0x58,0xa2, + 0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x24,0xdc,0xb0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xc4,0x39,0x0f,0x7b,0xce,0x18,0xd6,0x12,0xd7,0x9c,0x0d,0x0b,0x53,0x75,0xcf,0xd8,0x69,0x6a,0x37,0xef,0x63,0xcb,0xf5,0xc6,0x04,0x79,0x0b,0xaa,0x62, + 0x04,0x54,0x50,0xca,0xce,0x04,0x38,0x6a,0xdc,0x54,0xa1,0x43,0x50,0x79,0x3e,0x83,0xbd,0xc5,0xf2,0x65,0xd6,0xc2,0x92,0x87,0xec,0xd0,0x7f,0x79,0x1a,0xd2,0x78,0x4c,0x4c,0xeb,0xd3,0xc2,0x44,0x51,0x32,0x23,0x34,0xd8,0xd5,0x10,0x33,0xe9,0xd3,0x4b,0x6b,0xb5,0x92,0xb1,0x99,0x5d,0x07,0x86,0x78,0x63,0xd1,0x04,0x4b,0xd5,0x9d,0x75,0x01, + 0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x12,0x6b,0x54,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x41,0x06,0xa3,0x69,0x06,0x8d,0x45,0x4e,0xa4,0xb9,0xc3,0xac,0x61,0x77,0xf8,0x7f,0xc8,0xfd,0x3a,0xa2,0x40,0xb2,0xcc,0xb4,0x88,0x2b,0xdc,0xcb,0xd4,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x42,0x18,0xf2,0x0a,0xe6,0xc6,0x46,0xb3,0x63,0xdb,0x68,0x60,0x58,0x22,0xfb,0x14,0x26,0x4c,0xa8,0xd2,0x58,0x7f,0xdd,0x6f,0xbc,0x75,0x0d,0x58,0x7e,0x76,0xa7,0xee, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x66,0xfb,0xe7,0x27,0xb2,0xba,0x09,0xe0,0x9f,0x5a,0x98,0xd7,0x0a,0x5e,0xfc,0xe8,0x42,0x4c,0x5f,0xa4,0x25,0xbb,0xda,0x1c,0x51,0x1f,0x86,0x06,0x57,0xb8,0x53,0x5e, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x2f,0x23,0x33,0x95,0xc8,0xb0,0x7a,0x38,0x34,0xa0,0xe5,0x9b,0xda,0x43,0x94,0x4b,0x5d,0xf3,0x78,0x85,0x2e,0x56,0x0e,0xbc,0x0f,0x22,0x87,0x7e,0x9f,0x49,0xbb,0x4b, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2c,0x0e,0x99,0x4b,0x14,0xea,0x72,0xf8,0xc3,0xeb,0x95,0xc7,0x1e,0xf6,0x92,0x57,0x5e,0x77,0x50,0x58,0x33,0x2d,0x7e,0x52,0xd0,0x99,0x5c,0xf8,0x03,0x88,0x71,0xb6,0x7d, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x3c,0x81,0xe8,0x72,0x41,0xd9,0x45,0x1d,0x28,0x6d,0xdb,0xe6,0x5b,0x14,0xd4,0x72,0x34,0x30,0x7b,0x80,0xce,0x74,0xb8,0x92,0x1a,0xf7,0xd4,0x93,0x57,0x07,0x54,0x9d, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07,0x15,0x09,0x85,0x98,0xdc,0x12,0xcf,0x29,0x4e,0xa5,0xac,0x1e,0xb5,0xee,0xae,0x91,0x39,0xf5,0xcf,0xd3,0xd0,0xff,0xdc,0xfa,0x72,0x97,0xa0,0x1d,0xce,0x1e,0xe9,0xdf, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x61,0xbd,0x3a,0x38,0xf7,0x07,0x71,0x3b,0x97,0xea,0xf8,0xd0,0x18,0x4e,0x00,0x79,0xe2,0xa6,0x2c,0xfb,0xa7,0x5d,0x42,0x8b,0x13,0x26,0xea,0x86,0x1a,0xad,0xe9,0x50, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x15,0x82,0x0e,0x7e,0x26,0x67,0x0c,0x6b,0x45,0xc1,0xe0,0xca,0xa9,0x51,0xea,0xb3,0x12,0x75,0x41,0x80,0xba,0xa9,0xfc,0xff,0x9f,0x7e,0x7b,0xf4,0x6d,0xee,0xa7,0xfc, + 0x04,0x0b,0x7b,0xeb,0xa3,0x4f,0xeb,0x64,0x7d,0xa2,0x00,0xbe,0xd0,0x5f,0xad,0x57,0xc0,0x34,0x8d,0x24,0x9e,0x2a,0x90,0xc8,0x8f,0x31,0xf9,0x94,0x8b,0xb6,0x5d,0x52,0x07,0x74,0x35,0xa6,0xbe,0xf9,0x1b,0x92,0xae,0x32,0xcf,0x51,0xd7,0x14,0x9c,0xad,0x03,0x53,0xa4,0x65,0x13,0x85,0x14,0x27,0xc3,0x44,0x36,0x53,0x6e,0xc7,0xea,0xe4,0x83, + 0x04,0x21,0x0c,0x79,0x05,0x73,0x63,0x23,0x59,0xb1,0xed,0xb4,0x30,0x2c,0x11,0x7d,0x8a,0x13,0x26,0x54,0x69,0x2c,0x3f,0xee,0xb7,0xde,0x3a,0x86,0xac,0x3f,0x3b,0x53,0xf7,0x5f,0x45,0x0d,0xbb,0xf7,0x18,0xa4,0xf6,0x58,0x2d,0x7a,0xf8,0x39,0x53,0x17,0x0b,0x30,0x37,0xfb,0x81,0xa4,0x50,0xa5,0xca,0x5a,0xcb,0xec,0x74,0xad,0x6c,0xac,0x89, + 0x04,0x42,0x18,0xf2,0x0a,0xe6,0xc6,0x46,0xb3,0x63,0xdb,0x68,0x60,0x58,0x22,0xfb,0x14,0x26,0x4c,0xa8,0xd2,0x58,0x7f,0xdd,0x6f,0xbc,0x75,0x0d,0x58,0x7e,0x76,0xa7,0xee,0x37,0x26,0x9a,0x64,0xbb,0xcf,0x3a,0x3f,0x22,0x76,0x31,0xc7,0xa8,0xce,0x53,0x2c,0x77,0x24,0x5a,0x1c,0x0d,0xb4,0x34,0x3f,0x16,0xaa,0x1d,0x33,0x9f,0xd2,0x59,0x1a, + 0x04,0x39,0xf8,0x83,0xf1,0x05,0xac,0x7f,0x09,0xf4,0xe7,0xe4,0xdc,0xc8,0x4b,0xc7,0xff,0x4b,0x3b,0x74,0xf3,0x01,0xef,0xaa,0xaf,0x8b,0x63,0x8f,0x47,0x72,0x0f,0xda,0xec,0x24,0xf5,0x0e,0xfd,0x39,0xb8,0xae,0x75,0x36,0xe8,0x80,0x69,0x27,0xea,0xc6,0xfd,0x52,0x21,0x0a,0x23,0x9f,0xb4,0x12,0x9e,0x0b,0xfe,0xd3,0x33,0x47,0x65,0x75,0xea, + 0x04,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x13,0x4a,0x74,0xfc,0x6e,0x7d,0x7a,0xce,0xf5,0xbb,0x20,0xe9,0x69,0xab,0xb6,0xf0,0x26,0xec,0x0c,0xb0,0x4d,0xff,0x34,0xf7,0x91,0x6c,0xa6,0x4b,0x07,0xff,0xf5,0x11, + 0x04,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0x76,0x9a,0xfe,0x39,0x7a,0x57,0x09,0x20,0x1b,0xda,0x50,0xce,0x2d,0x31,0xa1,0x3f,0xde,0x40,0x76,0x72,0x2a,0x85,0x77,0x19,0x92,0x40,0x09,0xcc,0x28,0x15,0x98,0x69, + 0x04,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x04,0x34,0xe8,0x77,0xea,0xa7,0x13,0x40,0xaa,0x5e,0x57,0xe5,0x8a,0x01,0xf0,0xb0,0xae,0xc8,0xd2,0x4b,0x5c,0x64,0xaa,0x77,0xef,0x95,0xfa,0xe9,0xb4,0x95,0x8c,0x5d, + 0x04,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcb,0x2e,0x80,0x8a,0x8b,0x6c,0x6e,0x5b,0xc0,0x68,0xf9,0x63,0x48,0xd6,0x81,0x71,0xe6,0x61,0x59,0xa0,0xee,0x27,0x07,0x3c,0x82,0xfc,0x3f,0x95,0x81,0xa4,0xa1,0xfb,0x28, + 0x04,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c,0x1d,0x85,0x42,0x10,0xf7,0x97,0xc5,0x47,0xbd,0x3b,0x3f,0xec,0xcd,0xe1,0xce,0x3e,0x67,0xc6,0x1c,0x34,0x00,0x14,0x1d,0xa2,0x06,0x85,0x20,0xe2,0xba,0xe9,0xbf,0x90, + 0x04,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0x22,0xbc,0xbf,0x40,0xd6,0x58,0xbf,0x3f,0xf0,0x2d,0x98,0xae,0xa5,0xae,0x45,0xd4,0x3e,0xd8,0x5f,0x6d,0xe9,0x26,0x8f,0x0e,0xae,0x85,0x21,0x0f,0x2f,0xed,0x81,0xc6, + 0x04,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x21,0x0a,0x46,0x30,0x48,0x81,0x32,0x9c,0x98,0x07,0xb7,0x1b,0x63,0x93,0xba,0x10,0x4b,0x9f,0x27,0xd9,0x76,0x06,0x5e,0x85,0x24,0x29,0xfd,0x66,0x4d,0xe9,0x8e,0xee, + 0x04,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0x70,0x11,0xd6,0xe8,0x51,0xe5,0xa5,0x3f,0xde,0x41,0xc1,0xf3,0x48,0x69,0x0c,0x01,0x88,0xf2,0x4c,0x10,0x5d,0x5c,0xfc,0xa5,0xb6,0xff,0x3c,0x93,0xdb,0xfd,0xef,0x99, + 0x04,0x7f,0xff,0x00,0x01,0xff,0xfc,0x00,0x07,0xff,0xf0,0x00,0x1f,0xff,0xc0,0x00,0x7f,0xff,0x00,0x01,0xff,0xfc,0x00,0x07,0xff,0xf0,0x00,0x1f,0xff,0xc0,0x00,0x7f,0xff,0x4b,0x66,0x00,0x3c,0x74,0x82,0xd0,0xf2,0xfd,0x7b,0x1c,0xb2,0xb0,0xb7,0x07,0x8c,0xd1,0x99,0xf2,0x20,0x8f,0xc3,0x7e,0xb2,0xef,0x28,0x6c,0xcb,0x2f,0x12,0x24,0xe7, + 0x04,0x80,0x00,0xff,0xfe,0x00,0x03,0xff,0xf8,0x00,0x0f,0xff,0xe0,0x00,0x3f,0xff,0x80,0x00,0xff,0xfe,0x00,0x03,0xff,0xf8,0x00,0x0f,0xff,0xe0,0x00,0x3f,0xff,0x7f,0xff,0x0a,0x23,0x31,0x88,0x0c,0xb3,0xf8,0xf9,0x00,0x4b,0xf6,0x8f,0xc3,0x79,0xbe,0xb6,0xe3,0xaf,0xfa,0xdc,0xbe,0x81,0xbd,0x4f,0x9b,0xf7,0x6e,0x4a,0xc5,0xab,0x2c,0x37, + 0x04,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xfd,0x3b,0x6a,0x26,0x29,0xd5,0x98,0xa0,0x45,0xbe,0x28,0xa1,0x68,0x72,0x88,0xcc,0x4d,0x0c,0x38,0x9c,0xc6,0xfe,0x62,0x7c,0x5c,0xc3,0xaa,0x2a,0xb9,0x63,0xdb,0x74,0x95, + 0x04,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xfe,0xff,0xfe,0x35,0xe3,0x9d,0x53,0xd1,0x01,0xa6,0xaa,0x4a,0xb4,0x34,0xc5,0x5a,0x70,0xb0,0x3d,0x24,0x4b,0x6a,0x20,0x25,0xa1,0x8d,0x4d,0x54,0x9d,0xea,0x45,0x1c,0x03,0x13,0x92, + 0x04,0x80,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x07,0xff,0xff,0xfe,0x00,0x00,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x1f,0xff,0xff,0xf8,0x00,0x00,0x03,0xff,0xff,0xfd,0x3a,0xa7,0x74,0xf4,0xd2,0x9f,0xef,0xdd,0xd9,0x54,0x6a,0xd1,0xf7,0xb2,0xb7,0x9c,0xf4,0x26,0x34,0x28,0x4f,0xbb,0x1d,0x7c,0x70,0x2e,0x9f,0xca,0x3f,0xe0,0x49,0xaf, + 0x04,0x7f,0xff,0xff,0xe0,0x00,0x00,0x0f,0xff,0xff,0xfc,0x00,0x00,0x01,0xff,0xff,0xff,0x80,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x07,0xff,0xff,0xfd,0xff,0xff,0xfe,0x23,0xe4,0xbc,0xa0,0x98,0x4d,0xa4,0x24,0xa6,0x12,0x0a,0x13,0xdc,0x67,0x6c,0x77,0x76,0x07,0x56,0x2d,0x16,0xed,0x9b,0x8f,0xa9,0x4c,0x21,0xff,0xf7,0x15,0x1d,0x4e, + 0x04,0x00,0x00,0x03,0xff,0xff,0xff,0x00,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x03,0xff,0xff,0xff,0x00,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x03,0xff,0xff,0xfc,0x2a,0x95,0xc8,0x12,0x53,0xac,0x55,0x48,0x46,0x81,0x2d,0x2a,0x44,0x15,0xf6,0xed,0xcf,0x95,0x42,0x09,0x00,0x8d,0x26,0x0a,0x80,0x6b,0x85,0xab,0xa7,0x59,0xff,0x72, + 0x04,0xff,0xff,0xfc,0x00,0x00,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x0f,0xff,0xff,0xfc,0x00,0x00,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x0f,0xff,0xff,0xfb,0xff,0xff,0xfe,0x03,0x15,0x37,0xfc,0xab,0xe5,0xd5,0xe2,0x51,0x65,0xa1,0x8b,0x1b,0xd4,0x08,0x21,0x2c,0xb5,0x23,0xef,0xea,0x0f,0xc0,0xfd,0x1e,0xac,0x46,0xe8,0x3b,0x0d,0x0b,0x52, + 0x04,0xff,0xff,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0x63,0xa8,0x8b,0x2e,0x0c,0x89,0x87,0xc6,0x31,0x0c,0xf8,0x1d,0x0c,0x93,0x5f,0x00,0x21,0x3f,0x98,0xa3,0xda,0xd2,0xf4,0x3c,0x81,0x28,0xfa,0x31,0x3a,0x90,0xd5,0x5b, + 0x04,0x00,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xbf,0xff,0xff,0xfd,0x24,0x07,0xbd,0xdc,0x5a,0x50,0xb2,0xa7,0xb9,0x6a,0x28,0x8e,0xfb,0x83,0x8b,0xf7,0x68,0xc6,0x06,0x6e,0x60,0xb7,0x2f,0x08,0xa9,0x78,0x2d,0xa2,0xe3,0x9b,0xd3,0x4f, + 0x04,0xff,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x7f,0xff,0xff,0xfd,0x4a,0xf9,0xcc,0x40,0x6a,0x46,0x94,0x3f,0xfe,0x0f,0xe6,0x30,0xbd,0x21,0xf2,0x05,0xee,0xfa,0x05,0x35,0x5f,0x3a,0x13,0xc9,0x94,0x3d,0x58,0xe1,0x6e,0x88,0x04,0x35, + 0x04,0x00,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0x80,0x00,0x00,0x00,0x27,0x96,0xcf,0x7b,0xde,0x36,0xdc,0x6b,0x19,0x50,0x00,0x12,0x28,0xb7,0x24,0x9d,0x34,0x38,0xa3,0x5f,0xe5,0xbe,0x98,0x66,0x12,0x55,0xbf,0x63,0xa8,0x79,0xb3,0xa5, + 0x04,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x73,0xb0,0x88,0x64,0x96,0xae,0xd7,0x0d,0xb3,0x71,0xe2,0xe4,0x9d,0xb6,0x40,0xab,0xba,0x54,0x7e,0x5e,0x0c,0x27,0x63,0xb7,0x3a,0x0a,0x42,0xf8,0x43,0x48,0xa6,0xb1, + 0x04,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0x00,0x13,0xa9,0xbe,0x0c,0xba,0xaa,0xcf,0x4e,0x0f,0x53,0xee,0x45,0xbc,0x57,0x3e,0xaa,0x44,0xdb,0xf4,0x8d,0x5f,0xaf,0xc2,0x68,0x56,0xb4,0x4d,0x6d,0x00,0xe2,0xbe, + 0x04,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0x6e,0x56,0x3b,0xca,0x87,0x3b,0xd5,0x91,0xc9,0x66,0x33,0x91,0xc8,0x26,0x15,0x07,0x95,0xe3,0xc4,0x2c,0xed,0xd2,0x69,0xe6,0x8f,0xf0,0xe5,0x6d,0xc9,0x71,0xd5,0x54, + 0x04,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5b,0x5b,0x2e,0xc5,0x53,0xbe,0x67,0xfd,0x73,0xad,0xd4,0xcc,0x2b,0xce,0xd4,0xeb,0xe6,0xd0,0x4a,0x05,0xb0,0xe9,0x26,0xe3,0x12,0x03,0x7b,0x39,0x51,0x66,0x78,0x47, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x31,0xcf,0x13,0x67,0x1b,0x57,0x4e,0x31,0x3c,0x35,0x21,0x75,0x66,0xf1,0x8b,0xd2,0xc5,0xf7,0x58,0xc1,0x40,0xd2,0x4e,0x94,0xe6,0xa4,0xfd,0xa7,0xf4,0xc7,0xb1,0x2b, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5,0x3a,0x54,0x14,0x15,0x98,0x33,0x46,0x50,0xd1,0xf9,0x9a,0x12,0x85,0x07,0x69,0xf5,0x3d,0x34,0x52,0x9b,0x07,0xae,0x59,0x12,0x44,0xc6,0xed,0x70,0x2f,0x1a,0xa1,0x71, + 0x04,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0xff,0xff,0xfe,0xbc,0x7c,0x97,0x6b,0xdd,0xab,0x1d,0x1a,0x30,0x2c,0xfa,0x17,0x6c,0x25,0x43,0x45,0x58,0xec,0x7c,0xac,0x23,0x8e,0x73,0x9c,0xa9,0x84,0x9a,0xa1,0x04,0x32,0x3b,0x10,0x6c, + 0x04,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0xff,0xff,0xff,0x3c,0x7b,0x2b,0xf3,0x71,0x6a,0x9e,0x33,0x6e,0x16,0x29,0x66,0x59,0x7e,0x5c,0x42,0x3b,0xb9,0xd3,0xd0,0xd0,0xc3,0xc0,0x2b,0x9e,0x2d,0xc4,0xaa,0xba,0xd1,0x7b,0xfd,0xcb, + 0x04,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x6d,0xb6,0xda,0xe2,0x28,0x17,0x58,0x8a,0xa1,0x9f,0x91,0x0e,0x8b,0xed,0x1f,0x89,0xa6,0xb5,0xea,0x6c,0xde,0x48,0x00,0xdd,0x9b,0xeb,0x28,0xd1,0x33,0x6b,0xb4,0x60,0x75,0x11,0x81,0x44, + 0x04,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x55,0x55,0x54,0xe8,0x3c,0x4d,0x16,0xba,0x69,0x91,0x01,0x1c,0xf3,0xf9,0x4f,0xee,0xff,0x3f,0x48,0xad,0x29,0xed,0x9a,0x22,0xbc,0xef,0x8f,0xac,0x40,0xd9,0xb2,0xaf,0x25,0xe2,0xb9,0x09, + 0x04,0x59,0x29,0x4e,0x8b,0xc5,0x4e,0x76,0xd4,0x8b,0x55,0x94,0xf0,0x1f,0xe4,0x72,0x95,0x66,0xd9,0xb6,0xdf,0x63,0x85,0x98,0x2f,0xbb,0x53,0x31,0x83,0x92,0x1f,0x1a,0x12,0x45,0x43,0xe4,0x11,0x0b,0xf4,0xcd,0x22,0xe1,0xd4,0x44,0xd8,0x3e,0x24,0xc5,0xec,0xdb,0x32,0x8a,0x98,0xf2,0xf9,0x3e,0x8e,0xdc,0xb9,0x9b,0x07,0xd5,0xd9,0xfa,0xfc, + 0x04,0x29,0xb5,0x79,0x69,0x02,0x64,0x95,0x49,0x85,0x18,0x7a,0xaa,0x9e,0xa3,0x13,0xd3,0x9b,0x5c,0x82,0x8e,0x02,0x2a,0xfc,0xe8,0xfd,0x0c,0xb7,0x64,0xed,0x69,0x34,0x73,0xba,0x8c,0xde,0x1b,0x2b,0xe1,0x74,0x9c,0xf4,0xd5,0xbc,0x0d,0xf5,0x78,0x00,0x9c,0x96,0x50,0xe4,0x4b,0x6c,0x38,0x5c,0x5e,0xe2,0x62,0x1f,0xff,0xfc,0x20,0x5c,0xb7, + 0x04,0x41,0x50,0xa1,0x11,0xe0,0x48,0x9c,0xc8,0x2d,0x43,0xba,0x66,0xf4,0x04,0xba,0x0d,0xf2,0xb1,0xfa,0x13,0xff,0xea,0x36,0x14,0x42,0xf7,0x85,0x4f,0x9a,0xbb,0x38,0x14,0x65,0x62,0x7e,0x96,0xf3,0x72,0xfd,0x04,0x00,0xec,0xa4,0x21,0x13,0x89,0x0c,0xb1,0x10,0xc1,0x1e,0xda,0x22,0x40,0x5b,0xcd,0x29,0x5b,0x1c,0xaa,0xb9,0xd9,0x3a,0xf7, + 0x04,0xa7,0x46,0x46,0xc7,0x98,0xfd,0x5a,0x0a,0xf4,0x42,0xda,0x69,0xc8,0x22,0xcd,0xf1,0x13,0x4a,0xdb,0xa3,0x61,0xf9,0x06,0x63,0xd6,0x26,0x48,0x1a,0xa1,0x0e,0x00,0x04,0x56,0x71,0x60,0x69,0x68,0x18,0x28,0x6b,0x72,0xf0,0x1a,0x3e,0x5e,0x8c,0xac,0xa7,0x36,0x24,0x91,0x60,0xc7,0xde,0xd6,0x9d,0xd5,0x19,0x13,0xc3,0x03,0xa2,0xfa,0x97, + 0x04,0x61,0x1c,0x65,0xee,0xcd,0x9e,0x3d,0xe5,0x28,0xf6,0x39,0xe8,0xb6,0x69,0x86,0x88,0xdb,0x1f,0x4f,0xc8,0xc1,0x16,0x50,0xa6,0x01,0xfe,0x6d,0xae,0xca,0x5c,0x59,0x66,0x5f,0xa4,0x5a,0x23,0x40,0x06,0x33,0xba,0x36,0x30,0x24,0x4a,0xa6,0xb0,0x14,0x4d,0xe2,0xab,0x3b,0x62,0x95,0xe3,0xdf,0xa1,0x5f,0x58,0x6e,0x40,0xa8,0x40,0x53,0xaf, + 0x04,0xb4,0x9c,0x67,0x91,0x64,0x79,0x37,0x56,0x8c,0x75,0x70,0x06,0x48,0x56,0x42,0x08,0x35,0xd4,0x4a,0xf1,0xce,0xdd,0xd6,0x82,0x96,0x7f,0xbd,0x44,0xfc,0x97,0x29,0x4c,0xd1,0x35,0x65,0x1b,0xd7,0xee,0x3a,0xab,0x95,0x7e,0xba,0x10,0xed,0x4b,0x7a,0x5c,0x40,0xca,0x00,0xd9,0x59,0xca,0x66,0x30,0x80,0xc4,0xea,0xf0,0xe1,0x89,0xbc,0x21, + 0x04,0xc7,0x3c,0x71,0xd8,0x56,0xcb,0x94,0x9a,0x31,0xc2,0x49,0xc1,0xe9,0x9b,0x11,0xff,0xb6,0x98,0xcb,0xc1,0xdb,0xf4,0x00,0x2e,0x95,0x6c,0xde,0xb6,0x55,0xf8,0x40,0x45,0x71,0x6e,0x98,0xde,0xc1,0x0a,0x99,0x05,0xfa,0x1d,0x3a,0x85,0x1f,0x4f,0x1f,0xe6,0x17,0x35,0x6c,0xb5,0x6d,0x56,0x43,0xa1,0x48,0xee,0xc3,0x76,0x23,0x7a,0x27,0xf1, + 0x04,0xac,0xab,0xed,0xbe,0x76,0x0e,0x93,0x30,0xaf,0x35,0x08,0x20,0x9b,0xa0,0x08,0x1b,0x9c,0xe0,0x61,0x32,0x7d,0x1e,0xa0,0xb6,0xff,0xdc,0x57,0x7d,0xba,0xf2,0x8e,0x26,0x9c,0xd0,0x01,0x76,0x35,0x88,0x28,0x21,0x5d,0x30,0xad,0xe0,0xcf,0xf8,0xcd,0xc0,0x85,0x6c,0x84,0xfc,0xdb,0x42,0x4f,0xeb,0x93,0xce,0x58,0xa2,0x55,0x4a,0x9b,0xcd, + 0x04,0x4c,0xc9,0x19,0x7b,0xfd,0xef,0x17,0xd3,0x3a,0x9e,0xa7,0x43,0xbf,0x83,0x74,0x7b,0x56,0x4d,0x6a,0xd1,0x1e,0x60,0x80,0x95,0x7a,0x9d,0x3a,0xc4,0x41,0x65,0xfa,0x79,0x3c,0xe2,0x0d,0x13,0xd4,0x31,0x07,0x1b,0xe3,0x67,0xe5,0x92,0xf8,0xa2,0x2f,0x88,0xed,0xee,0x1c,0xd5,0x1c,0xad,0xb0,0x84,0x5e,0xbe,0xa6,0x4b,0x11,0xc4,0x57,0x08, + 0x04,0xfb,0xf4,0x11,0xaf,0xc8,0x83,0x58,0xdf,0xf2,0xba,0x15,0x6c,0xe2,0x73,0xd7,0xb1,0x5d,0x0b,0xa3,0x98,0x0a,0x60,0xa8,0x2e,0xb3,0x8b,0xfa,0x58,0x99,0x5e,0x16,0x3d,0x57,0xc6,0x2e,0x53,0x07,0x0e,0x8e,0x6c,0xb1,0xdf,0x4e,0xf5,0x09,0xeb,0x25,0x98,0xdb,0xdb,0x07,0xa5,0xff,0xd7,0x13,0x01,0xea,0xa2,0x89,0x2a,0xd1,0x23,0x8f,0x4a, + 0x04,0xcd,0x78,0x63,0xad,0xdd,0xaf,0x00,0x99,0x64,0x71,0x39,0xce,0x64,0xca,0x0b,0x39,0xdb,0xd3,0x12,0xcc,0xf9,0x6c,0x15,0xa6,0x2f,0x2c,0x49,0xe6,0x28,0x24,0x82,0x35,0x99,0x9f,0x82,0xaf,0xd0,0xf7,0x6e,0x74,0x4a,0xfd,0x0f,0xca,0x2a,0xab,0x36,0xf2,0x2f,0xf7,0xeb,0xef,0xd8,0xe5,0x41,0xfc,0xb6,0xe9,0x72,0x70,0x4b,0x8a,0xc5,0x21, + 0x04,0xbd,0x4f,0xd8,0x57,0x64,0x0a,0x6b,0xdf,0x5d,0xa4,0x2f,0xfc,0x5c,0x2c,0x17,0x55,0xc4,0xc1,0x25,0xa9,0x9d,0x38,0x0a,0x59,0x35,0xeb,0x1c,0x4c,0x3a,0x9c,0x2a,0x3a,0x47,0x60,0xdf,0x25,0xca,0x56,0x17,0x24,0xa8,0x2e,0x3f,0x9c,0x9d,0x78,0x25,0x36,0xdb,0x43,0x10,0xd6,0xc9,0xc7,0x69,0xf5,0x1b,0x73,0x3d,0xe4,0x4a,0x9c,0x02,0xf1, + 0x04,0x45,0x65,0x4b,0x3b,0x66,0x06,0x57,0x43,0xac,0x86,0x85,0x4d,0xaa,0x77,0xc9,0xe5,0xcf,0x71,0x3a,0x40,0x2f,0xbd,0x4a,0xda,0x36,0x5f,0x4f,0x96,0xbf,0x17,0x17,0xcd,0x63,0xcf,0x23,0xba,0x03,0x5d,0xe4,0x30,0xa2,0x12,0x8d,0xab,0x0d,0x2c,0x7b,0x93,0x9d,0x44,0xc6,0x66,0x24,0xf6,0x97,0x92,0x75,0xcd,0x37,0xcd,0x02,0x37,0x06,0x69, + 0x04,0xdd,0xa7,0x93,0xfe,0x7f,0xde,0xa5,0xc7,0x48,0x1c,0x75,0x6f,0x59,0xfb,0xff,0x48,0x48,0x17,0x77,0xa5,0x42,0x18,0xd9,0x5e,0xaa,0x24,0xe7,0xb8,0x6d,0x8a,0x58,0x58,0xfd,0xac,0x18,0x59,0x0c,0xd9,0x6e,0x19,0x3d,0xb5,0x1c,0x50,0x30,0x7d,0x26,0x06,0x67,0x4d,0x5b,0x8a,0xfc,0xc8,0x2d,0x1b,0x67,0x2d,0xd8,0xe0,0x97,0x19,0xa6,0xac, + 0x04,0x2e,0x04,0x3b,0x85,0x1f,0xc5,0xa5,0xf1,0x2d,0xeb,0x76,0xfe,0x94,0x18,0x2b,0x99,0xbb,0xce,0x72,0x7b,0x47,0x67,0x83,0xf9,0xd8,0x68,0xad,0x3a,0xb7,0xac,0x7a,0x25,0x14,0x62,0xb4,0x69,0xc2,0xe0,0x24,0x91,0xe0,0x5a,0x3a,0x45,0x23,0xe0,0x9a,0x6b,0xe8,0xe5,0xb2,0xd1,0x04,0x19,0xcb,0x77,0x60,0xa8,0x50,0x3a,0xe4,0xeb,0x7e,0x7b, + 0x04,0x3d,0x8f,0xdd,0xf4,0x1e,0x52,0x32,0x0c,0x80,0x81,0xe0,0xd6,0x0f,0x53,0x97,0x99,0x3a,0xbd,0xfa,0x97,0x9c,0x4b,0x5e,0x83,0x2a,0xc6,0x1b,0xf3,0xcc,0x2e,0x6f,0xd9,0x45,0x04,0xfe,0x32,0x07,0xdb,0xd1,0x8e,0xba,0xd2,0xb9,0x21,0xa5,0x2a,0x16,0xa3,0x36,0x59,0x93,0x9c,0x16,0xfb,0xb9,0x18,0x6c,0xaf,0x5e,0x2c,0xf3,0x17,0x03,0x46, + 0x04,0x65,0x10,0x6f,0xdc,0xa0,0xc4,0x08,0x73,0x8c,0x23,0x16,0xf3,0xec,0x22,0x38,0xd4,0x59,0x15,0x7b,0xab,0x2c,0x28,0x55,0x32,0x3b,0x95,0xbd,0x27,0x1c,0x91,0xde,0xdc,0xd9,0xfc,0x2d,0x68,0x54,0x46,0x78,0x98,0x29,0x25,0x1d,0x29,0x3a,0x50,0xd1,0x50,0xdf,0x5f,0x1f,0xc1,0xa0,0x60,0x4e,0x4d,0xef,0xaa,0x9a,0x8e,0x3f,0x8c,0x91,0x69, + 0x04,0x32,0x0c,0x81,0x35,0x48,0x18,0x3a,0xad,0xb0,0xe7,0xd2,0x1a,0x0f,0xfe,0x47,0x2b,0xfa,0x9b,0x4f,0xfe,0x81,0x5a,0xde,0xfd,0x09,0x18,0x0a,0x3a,0xe2,0xd1,0x5f,0xbc,0xd0,0xca,0x20,0x61,0x1d,0x22,0x32,0x84,0x7a,0xa8,0x0e,0x7f,0x76,0x91,0xc0,0x08,0xff,0x88,0x6d,0xfc,0xe5,0x50,0xf9,0x0c,0x4c,0x19,0x98,0x2e,0xd7,0x79,0xb4,0x66, + 0x04,0xa0,0xe2,0xb1,0xa9,0x2a,0x6a,0xfa,0x9f,0xe6,0x84,0x24,0xbc,0x63,0xdc,0xad,0x62,0x0b,0x7d,0xc8,0x44,0xe4,0x57,0x1f,0x54,0x04,0xab,0x9d,0x18,0xbf,0x08,0x54,0x5c,0xcb,0xa1,0xc1,0xff,0x49,0xbf,0x7b,0xaa,0x9b,0xe1,0xfc,0x0a,0xc4,0xbb,0xa6,0x3b,0x41,0xba,0x7a,0x37,0x4e,0x15,0xfc,0x39,0xb8,0x84,0xd8,0x0a,0x75,0xb0,0x70,0x92, + 0x04,0xdc,0x97,0x13,0x9a,0x3d,0xd1,0x41,0x1d,0x74,0x61,0x61,0x54,0xaa,0x0d,0x6b,0xce,0x78,0x7c,0xfa,0xfb,0xd8,0xfd,0x06,0x0b,0x68,0x0b,0x04,0xb4,0x22,0xb0,0xd2,0x2f,0x6a,0xb5,0x0e,0x5c,0x68,0xe0,0x27,0x80,0x59,0x53,0xbf,0x7c,0x3b,0xe4,0x0a,0x8f,0x7c,0x9b,0x56,0xc6,0xdb,0xbe,0x86,0x33,0x7e,0x61,0x63,0xad,0xa0,0x1d,0x9d,0x63, + 0x04,0x09,0x78,0xd4,0x2e,0x15,0x94,0x56,0x95,0x89,0xb5,0x78,0x26,0x6c,0xed,0xb6,0x08,0x8a,0x84,0xc9,0xcc,0x9b,0xaf,0xf0,0x07,0x0d,0xc1,0xd9,0x34,0x34,0x26,0x05,0xe6,0x2c,0xe8,0x0a,0x96,0x6b,0x5c,0xa0,0x34,0x49,0x81,0xf4,0x22,0x9c,0x7a,0xb6,0x22,0xa8,0x53,0xbd,0x9b,0xc5,0x9b,0x66,0x2e,0xcd,0x92,0xdf,0x23,0x8e,0x4e,0x46,0xed, + 0x04,0xa8,0x63,0x0a,0x7b,0xdb,0x78,0xa9,0x70,0xa0,0x1b,0x20,0xc3,0xe7,0xb9,0x5d,0x25,0xd3,0xee,0xbd,0xc8,0xe9,0x4e,0xcf,0xe0,0xf5,0x08,0xe4,0x13,0x6e,0xca,0x49,0xaf,0xa5,0xeb,0x12,0x11,0x4b,0x50,0xac,0x77,0xd6,0x8d,0x41,0x0c,0xd5,0xef,0x51,0x07,0xb2,0xe6,0x8f,0x08,0x60,0x0e,0x5e,0x69,0x38,0xc4,0x52,0xd5,0x1d,0x69,0x93,0xba, + 0x04,0xc4,0xea,0x8e,0xd3,0x1a,0xb4,0xa8,0xc9,0x94,0xa9,0x65,0xef,0xd4,0x77,0x0b,0xbb,0x5e,0x26,0xee,0x54,0xcb,0x72,0x17,0xff,0xd3,0x1f,0xa8,0x88,0xc1,0x08,0xfe,0xca,0x06,0x3c,0x41,0x52,0x01,0x32,0x9d,0xda,0x13,0x0f,0x43,0x97,0x3f,0x44,0x2a,0xd3,0x20,0xda,0x0c,0xcf,0x28,0x9c,0xd1,0xb7,0x14,0x89,0xca,0x0a,0x72,0x01,0xd5,0xa6, + 0x04,0x91,0x78,0x0d,0x19,0x05,0x31,0x61,0x05,0xd6,0xa6,0xac,0xa9,0x4a,0x0d,0x44,0x88,0xd1,0x34,0xf9,0x85,0xf7,0xe2,0x9a,0xde,0xcb,0x1b,0xc6,0xcd,0x0c,0x21,0x1a,0x78,0x80,0x35,0xb0,0x6e,0x49,0x5d,0x1e,0x58,0xb0,0x85,0xbf,0xb6,0x72,0x0b,0xca,0x84,0x55,0x7b,0x67,0x0d,0xe3,0x45,0x87,0xdf,0x0d,0x7e,0x3a,0xad,0x5b,0xbc,0x80,0x3a, + 0x04,0x19,0x61,0xa1,0xa4,0xb2,0x96,0x71,0xf1,0xd8,0x35,0xb3,0x13,0xff,0xeb,0xa4,0xd8,0x20,0x3d,0x84,0x14,0xcd,0xc0,0xea,0x11,0xe4,0x7d,0x61,0x9b,0x47,0x03,0x8b,0x1d,0xe5,0x0a,0x63,0xb8,0x9c,0xbc,0x89,0x56,0xa5,0x87,0x0c,0x6c,0x48,0x30,0xe2,0x10,0x2d,0x52,0x81,0xb9,0xb5,0xdc,0x12,0x7b,0x10,0x52,0xfe,0x7b,0x3e,0x11,0xc4,0x38, + 0x04,0x29,0xa9,0xe7,0xf2,0x51,0x09,0xa8,0xc4,0xbd,0x80,0xdb,0xea,0x05,0xfb,0xb4,0x6a,0xad,0xe5,0x87,0x97,0xc3,0xb2,0xfa,0x5f,0x00,0xf0,0xf0,0x81,0x66,0x9a,0xe3,0x9d,0x2c,0x78,0xfb,0x11,0x60,0xde,0x6e,0xda,0x50,0xf4,0x72,0xba,0x65,0x9d,0x4f,0x1d,0xb4,0xea,0x6e,0x29,0x72,0x44,0xb6,0xae,0x68,0xa0,0x51,0xd9,0x6e,0x62,0xe7,0x5e, + 0x04,0x16,0x17,0xdc,0x03,0xd3,0xee,0xa4,0x2e,0x8e,0xa2,0xc5,0xbd,0x03,0x4a,0x38,0xc5,0xa3,0xd7,0x41,0x65,0xa5,0x48,0x07,0x4b,0x7b,0x57,0x65,0xcc,0xd8,0x46,0x5b,0x7f,0x61,0x08,0x9d,0x6d,0xde,0x53,0x43,0x0f,0x34,0xcf,0x82,0x85,0xdd,0xbc,0x58,0x4d,0x15,0x43,0xfd,0xc7,0x0c,0x23,0x33,0xfc,0x31,0x5e,0xed,0x4e,0x93,0x0a,0xc3,0xa1, + 0x04,0x20,0xe7,0xa1,0x35,0x84,0x36,0xf6,0x75,0xf3,0x77,0x4d,0x60,0x95,0x4b,0x56,0x21,0x14,0x5b,0x8f,0x52,0x60,0xb5,0x50,0x36,0x36,0xf5,0x48,0x78,0xec,0xaa,0xff,0x8d,0xcc,0xaf,0x2f,0xff,0xcb,0x7c,0x70,0x84,0xe3,0x25,0xda,0xe5,0xe2,0x4b,0xff,0x5a,0x34,0xe3,0x79,0x80,0xd1,0x72,0x20,0x16,0xdd,0x66,0x67,0xda,0x71,0xf1,0x64,0xc4, + 0x04,0x27,0x59,0xbf,0x4c,0x33,0x65,0x01,0x34,0x0c,0xbc,0x67,0xaf,0xb4,0xa8,0xf5,0x74,0x4f,0x91,0x31,0xd9,0x73,0x96,0x6a,0x9d,0xe5,0x0d,0xed,0x60,0xfb,0xe0,0x45,0x12,0x1b,0x67,0xa9,0xe8,0x1e,0x53,0xb0,0x64,0xad,0xed,0xdd,0x16,0xa4,0xc0,0x30,0xdb,0xb1,0x89,0xcc,0xd7,0x01,0x9b,0x32,0x9d,0x67,0xa5,0x27,0xc3,0x11,0x72,0x34,0x69, + 0x04,0x19,0xb8,0xa1,0x0f,0x50,0x21,0xf1,0x1e,0x29,0xe1,0x86,0x11,0xfa,0x82,0x84,0xb7,0xe9,0xa3,0xf6,0x7c,0xf3,0x6e,0xec,0x8e,0xcc,0x4d,0x7a,0x5b,0x54,0x80,0x34,0x11,0x31,0x1a,0x8a,0x4e,0x19,0x9d,0x98,0xeb,0x35,0x8e,0x19,0xa2,0x7e,0x80,0xcd,0xa6,0xaf,0x14,0x2d,0x60,0x91,0xdd,0xaa,0x93,0x70,0xed,0x61,0x04,0x53,0xab,0xc6,0xc8, + 0x04,0x9b,0xa8,0x41,0xf4,0x12,0x45,0xac,0x08,0x95,0x59,0x66,0x47,0x04,0x25,0x59,0x32,0x90,0xb9,0xe1,0xd8,0x7b,0xda,0x8f,0x47,0xdf,0x19,0x04,0x8d,0xb8,0xe3,0xd8,0x30,0x97,0xf6,0x89,0x05,0xf3,0x60,0xce,0xd2,0x68,0x01,0x87,0x2a,0x7f,0xf1,0x24,0xc3,0x63,0x7b,0x02,0xc4,0xa5,0x96,0xb8,0x3a,0xba,0xfe,0x7b,0xce,0x56,0x7c,0xa1,0x77, + 0x04,0x68,0xaf,0x76,0x1d,0x05,0x3d,0xee,0x64,0xac,0xa5,0xe9,0x8f,0x54,0x7f,0xeb,0x2d,0xfb,0x6f,0x5e,0xdb,0x81,0x38,0x01,0x1c,0x7f,0x5c,0x33,0x80,0x9b,0x4b,0x9e,0x00,0x46,0x6d,0xd7,0x6c,0xb8,0xce,0xeb,0x51,0x32,0x86,0x20,0x52,0xad,0x3e,0x08,0xbf,0xea,0x24,0x5e,0xf1,0x6c,0xa0,0xd0,0x0e,0xd0,0xc4,0xb4,0x5f,0xb6,0xbd,0x30,0x28, + 0x04,0x05,0xdc,0x8b,0x18,0xbc,0x28,0x6f,0x20,0x32,0x13,0xb1,0x31,0x94,0x13,0xdf,0xa4,0x91,0x1d,0x6c,0x2e,0x30,0xf3,0xc7,0x78,0xc5,0x5e,0x4e,0x5f,0x5d,0x9b,0xfd,0xba,0xcd,0x0b,0x3b,0x20,0x9e,0x76,0x04,0x98,0x95,0xae,0x80,0xff,0x63,0xc0,0x22,0x5a,0x56,0x32,0x28,0xcd,0x99,0x24,0x3f,0x62,0x8a,0x9d,0xba,0xe7,0x0d,0x77,0x3c,0x66, + 0x04,0xba,0xcb,0x60,0x63,0x84,0xb1,0x93,0x0b,0xb4,0xb7,0x4d,0xed,0x23,0x6d,0x03,0xd3,0xbb,0x17,0x39,0xa5,0x1b,0x73,0xf2,0x0d,0xc3,0x34,0x9e,0xc3,0xb3,0x83,0x18,0x0a,0x68,0x96,0xed,0x59,0xfa,0x0b,0x65,0x4a,0x9c,0x40,0x4b,0x34,0xfe,0xe2,0xc7,0x67,0xbe,0x23,0x83,0xf4,0xb8,0xb1,0x71,0xd2,0x35,0x98,0x06,0xb0,0x4b,0x50,0x2d,0x16, + 0x04,0x48,0xab,0x89,0xb2,0xa3,0x12,0xde,0x51,0x0a,0x6d,0x3c,0x9a,0xc9,0xe4,0xc4,0xf5,0xb4,0x6e,0x04,0xd3,0xf8,0x58,0x43,0x3b,0x76,0x46,0xe4,0x62,0x73,0xd9,0x4d,0xce,0x4a,0x0c,0x7d,0xa6,0x16,0x38,0x8f,0x1e,0xb8,0xd5,0x5e,0xce,0x64,0xab,0x69,0x5e,0x54,0x05,0xd7,0x79,0xc9,0x2f,0x3b,0xc2,0x59,0x5c,0x27,0xd6,0x5d,0xef,0x8d,0xb9, + 0x04,0xfd,0x9d,0xe3,0x04,0xea,0x5f,0x18,0xdd,0x64,0x15,0x10,0xb9,0x80,0x94,0x73,0xd3,0x9a,0x23,0x73,0xed,0x5a,0x47,0x0f,0xfc,0x5e,0xa7,0xc8,0x30,0x93,0x91,0x1b,0x45,0x40,0xba,0xab,0xb9,0xd9,0x12,0x27,0x9a,0xee,0xa4,0x43,0x79,0x11,0x0a,0xbe,0xc7,0x5a,0xb7,0x99,0x4a,0x61,0x83,0xc6,0x29,0x4b,0xad,0x27,0xba,0xb5,0xbb,0xf8,0x21, + 0x04,0xbf,0x89,0x76,0xa2,0x82,0x21,0x00,0x0d,0x7f,0x52,0x19,0xfa,0x8d,0x06,0xf9,0xf8,0xae,0x47,0xbe,0x62,0x6f,0x89,0xc2,0xbb,0x6c,0x4d,0x03,0x23,0xbf,0x02,0xf8,0x49,0x0c,0x78,0xbc,0x94,0x8c,0x6b,0xf8,0x2a,0x19,0x1f,0x1d,0xe9,0x72,0xe5,0x7d,0xb3,0x5b,0x05,0x91,0x85,0x94,0xcc,0xfb,0xe8,0xda,0x19,0xbd,0x46,0xfa,0xcb,0xda,0x78, + 0x04,0xc3,0x22,0x9c,0x9b,0x4f,0x40,0x9a,0x65,0x39,0x48,0x41,0x52,0xb3,0x95,0x35,0xc5,0x12,0xa6,0x67,0x48,0x97,0x20,0x25,0x16,0x5f,0xd8,0x88,0xc3,0x88,0x36,0x9f,0xb3,0x29,0x8c,0xc4,0x1d,0xda,0x36,0xfc,0xb1,0x5a,0x0d,0x97,0xca,0xbf,0x75,0x7b,0xf0,0x73,0x7d,0xae,0x70,0x82,0x9f,0x4b,0x9a,0x1d,0x49,0x9d,0x9e,0x99,0x11,0x67,0x3a, + 0x04,0x6f,0x2c,0x3d,0xd8,0x4b,0x44,0xda,0xca,0x93,0x6a,0x2e,0xda,0xf4,0x3a,0xdc,0x8c,0x1b,0xd5,0xf4,0x28,0x01,0x23,0x17,0x18,0xfc,0xe6,0xf5,0xe9,0x4d,0x14,0x47,0x17,0xa2,0x47,0x59,0x8c,0x11,0xea,0xa2,0xc5,0x07,0xb0,0xe9,0x6d,0xfd,0xd0,0x32,0x94,0xcb,0xa4,0x47,0x2a,0xe8,0xa2,0x12,0x8e,0x36,0xf1,0xea,0xbd,0x31,0x5a,0xeb,0x25, + 0x04,0xa5,0x11,0xb0,0x93,0x34,0xf0,0x32,0xcc,0x33,0xee,0x4d,0xdb,0xb8,0x39,0x30,0x4f,0x6b,0xbf,0x1d,0xaa,0x4a,0x80,0xde,0x52,0x4c,0xa2,0x4e,0xbb,0x65,0xa0,0xa9,0x2e,0x4e,0xa4,0x82,0x43,0xcf,0x7e,0x26,0xde,0xaf,0x4d,0xe7,0x77,0x9c,0xa7,0x1f,0x76,0xd9,0xdc,0x6c,0x8c,0x1b,0x7f,0x44,0xcf,0x19,0x0f,0xdd,0xbe,0x82,0xc2,0xc9,0x40, + 0x04,0x7c,0xf4,0xa6,0xec,0x11,0x0d,0xb8,0x92,0xe4,0x5a,0x7b,0x2a,0xb3,0x8b,0x41,0x1a,0x6c,0x41,0xe8,0x6f,0xd2,0x1a,0x64,0x55,0xca,0x1a,0x4c,0x2e,0x22,0x20,0x68,0x13,0x09,0xb3,0xe3,0x99,0xae,0x30,0x09,0x8b,0xf8,0x72,0xc9,0xae,0xd5,0xdb,0x69,0xd1,0x4c,0xb7,0x11,0x49,0xab,0xb0,0x5c,0xf5,0x22,0x7a,0x62,0x0c,0x4b,0x16,0xb7,0x40, + 0x04,0x36,0xc7,0xdc,0xd1,0x52,0xfb,0x7e,0x53,0xfd,0x16,0x22,0x84,0x65,0xea,0x0c,0x41,0x9d,0xa2,0x9c,0xc6,0xc7,0x9f,0xd4,0x26,0x63,0x03,0xb3,0xbd,0x06,0xaa,0x0b,0x90,0x36,0x36,0x3a,0x95,0x9f,0x8c,0x0b,0x40,0x0d,0xa5,0x25,0xad,0x76,0x74,0x67,0x7f,0x82,0x90,0x92,0xae,0x7f,0x7e,0x8d,0xbf,0x88,0x39,0x7f,0xcd,0x19,0x04,0x7a,0xf5, + 0x04,0xb6,0x1d,0x3c,0xd2,0x7b,0xfa,0x12,0x69,0x23,0x4a,0x77,0x7e,0x11,0x8f,0x7d,0xb1,0x0a,0x38,0x44,0xe8,0xc7,0xd1,0x16,0x2c,0x09,0x9a,0x80,0x99,0xd8,0x87,0xdf,0xb8,0x49,0x52,0x0e,0x9a,0x03,0x8f,0x8b,0xa8,0x80,0x4d,0x44,0xf2,0x2b,0x37,0x45,0x25,0x14,0xf0,0xae,0xfe,0xa9,0x3b,0xab,0x7b,0xdf,0x18,0x0d,0xb5,0x44,0x85,0xaa,0xda, + 0x04,0xac,0x9c,0xbc,0x8b,0xd9,0x17,0x19,0x29,0x28,0xd9,0xa0,0x65,0xfb,0x1f,0x89,0xbe,0x4b,0xea,0x85,0x01,0x86,0xfd,0x46,0x6a,0x7a,0x90,0x14,0x06,0x6c,0xe0,0x02,0xc5,0x1a,0x90,0x6c,0x90,0xee,0xe5,0x5c,0xb5,0x69,0x2f,0x0a,0xc0,0x46,0x74,0x6e,0xe4,0xbd,0x22,0x05,0xfe,0x5f,0x43,0x5d,0x1e,0x71,0xf1,0x9a,0x8c,0xb8,0x55,0x0f,0x3e, + 0x04,0xc0,0x50,0xd0,0x58,0xaa,0xda,0x9e,0x43,0x76,0x7f,0x1f,0x76,0x0a,0xbd,0xbc,0x42,0x1a,0xe2,0x20,0xfd,0x01,0xe8,0x32,0xae,0x81,0xc6,0x28,0xbf,0xb1,0x27,0x7c,0x99,0xd3,0x54,0x83,0xfe,0x6a,0xea,0x51,0xde,0xa9,0xc0,0x17,0xc3,0x26,0xba,0x7b,0xbd,0x41,0x75,0x68,0x7a,0x72,0xdc,0x5c,0x4f,0x44,0x9e,0xed,0x0c,0x53,0xa0,0x80,0x52, + 0x04,0x39,0x95,0x42,0x88,0x2c,0xa4,0xd5,0xfa,0xe3,0x28,0x2c,0x4e,0xdf,0xfc,0x3c,0x7e,0xda,0x7c,0x45,0x1e,0x46,0xad,0xee,0x42,0x19,0x01,0x5e,0x91,0xc8,0xc6,0x9c,0xf8,0xb1,0x23,0xf8,0xed,0xe4,0x8a,0xb7,0x6f,0xe2,0xc9,0x21,0x83,0x26,0xcb,0x06,0x54,0x2a,0x83,0x2d,0x0a,0x32,0xb7,0xac,0x0d,0x48,0x5b,0x46,0x29,0xbf,0xaf,0x0d,0x76, + 0x04,0xbf,0xc3,0x04,0xfd,0x88,0xad,0x8f,0x11,0x80,0x1d,0x35,0x28,0x6a,0x49,0x50,0x5c,0xf3,0x49,0x40,0x3d,0x81,0x00,0xef,0xe9,0x03,0xd0,0x78,0xef,0xd5,0xd3,0xa6,0x6e,0xbf,0x05,0xd6,0xfe,0x2a,0x14,0xc0,0x69,0x90,0x2f,0x0d,0x8e,0xb6,0x80,0x04,0x60,0x73,0x1d,0x48,0x39,0x5e,0xfa,0xc4,0x42,0x8e,0xd8,0x7b,0x00,0xf3,0xfc,0x6f,0xb0, + 0x04,0x68,0x81,0x67,0x8d,0x6c,0x6d,0x8c,0xeb,0x01,0xde,0x5d,0x66,0x64,0xa0,0xb5,0x7b,0x47,0x0f,0x14,0x94,0x92,0xe8,0xe7,0x51,0x3e,0x12,0x1f,0xad,0x84,0x9a,0xba,0x1b,0x2a,0xd3,0x4d,0xb0,0x24,0xcc,0xd2,0x69,0x4e,0x49,0x7f,0x6a,0xdf,0x4d,0x3c,0xf5,0xad,0xbf,0x51,0x8c,0x76,0x8a,0x46,0x28,0xbc,0x2e,0x15,0x9d,0x09,0x49,0xf2,0xaa, + 0x04,0xe3,0x8d,0xac,0x9c,0xa4,0xef,0x5b,0x35,0xda,0x77,0xd8,0x46,0x09,0x3e,0x0d,0x29,0xc1,0xca,0x35,0x0e,0x72,0xb5,0xa6,0xce,0x90,0x1b,0xed,0x9f,0x47,0x2e,0xa1,0x99,0xf8,0x05,0xfc,0x32,0x02,0x92,0x07,0x82,0xf4,0x9f,0x4b,0x6e,0x72,0x57,0xa4,0x36,0x4d,0xd5,0x45,0x1d,0x98,0x2f,0x29,0xb6,0x2d,0x5d,0x4b,0x8e,0x07,0xa3,0x30,0x68, + 0x04,0x2d,0x8c,0x67,0x32,0xe3,0xd0,0xe1,0x82,0x21,0x93,0x24,0x3b,0xb9,0xec,0x3f,0xc2,0xc7,0xf2,0x64,0xe9,0x4e,0xe6,0x1b,0x29,0x5d,0xe5,0xb3,0xc1,0x0d,0xb9,0x37,0xf1,0x35,0x34,0x34,0x53,0x83,0x81,0x14,0xa4,0x75,0x2a,0x55,0x14,0xbc,0xfb,0x9d,0xce,0x10,0xf8,0x3e,0x01,0x90,0xc5,0x40,0xfe,0xf1,0x06,0x75,0xcb,0x42,0x58,0x4a,0x05, + 0x04,0x20,0xbe,0xc8,0xd2,0xb5,0xaa,0xe1,0xf9,0x55,0xb7,0x99,0x21,0x98,0xbc,0xfe,0x20,0x88,0x04,0x94,0x15,0x00,0x58,0xcf,0x61,0x51,0xfe,0x14,0xf6,0x07,0x1b,0xad,0x31,0x32,0xdc,0x1c,0xe5,0x03,0x96,0x9b,0x82,0x4c,0x5a,0x9e,0x23,0xae,0xb4,0x72,0x25,0x5d,0xd2,0x3f,0x97,0xd0,0x2f,0x68,0x28,0x1a,0xd0,0x26,0x98,0x18,0xb1,0x7e,0x49, + 0x04,0xf4,0x56,0x94,0x67,0x70,0xaf,0x5d,0x06,0x9d,0x60,0xb2,0x79,0xae,0x51,0x9e,0xa1,0x8e,0x71,0x9a,0xba,0xf5,0x78,0x74,0x76,0x87,0x3a,0x5e,0x61,0xf9,0x69,0x07,0x4d,0x47,0xeb,0x27,0x52,0x0d,0x72,0xfc,0xe1,0x06,0x50,0xd3,0x12,0xa5,0x43,0x1b,0xbd,0x6b,0x3f,0x37,0xcd,0x46,0x75,0x5b,0x7a,0x8e,0x1e,0xf1,0xa7,0x96,0xf9,0x09,0x08, + 0x04,0xd1,0x39,0x0a,0x94,0x4d,0x24,0xf3,0x00,0xfd,0xab,0x9b,0xd2,0x72,0xbb,0xac,0xa0,0x56,0xfe,0xb7,0x1c,0x0c,0x37,0x46,0x8e,0x03,0x27,0xb0,0x85,0x04,0xd5,0x5f,0x3a,0x80,0xa4,0xb2,0x40,0x56,0x5a,0xa4,0x3b,0xe8,0xf3,0xe2,0x08,0x9b,0x47,0x88,0x04,0x9c,0x5d,0x37,0x8b,0x66,0x7e,0x98,0x7e,0x01,0xaa,0x8a,0x08,0xa4,0xcd,0x2c,0x95, + 0x04,0x3e,0x61,0xff,0x24,0x43,0xd1,0x0b,0x1e,0x25,0xfb,0x0c,0xe1,0x9f,0x57,0xae,0x39,0x22,0x3d,0x33,0xfb,0xb0,0xe5,0xee,0x2b,0x47,0x40,0xfa,0x19,0x38,0x4b,0x7d,0x0e,0x14,0x08,0x11,0x9a,0x70,0xaa,0x9b,0x23,0x0d,0x9f,0x18,0x26,0x9c,0x06,0x5c,0x53,0xd4,0xc2,0x61,0x96,0x73,0xb4,0x93,0x77,0xaf,0x4c,0xdd,0x53,0x6c,0x93,0x1a,0xae, + 0x04,0xb0,0x60,0x28,0xd7,0x29,0x03,0x96,0x17,0xf9,0x12,0xe8,0x6d,0x1d,0x1f,0x44,0xe9,0x3e,0x63,0xaa,0x21,0x6a,0xb0,0x64,0x18,0x13,0xd0,0x6c,0x16,0xa3,0xed,0xae,0xe9,0x79,0xd2,0x15,0x72,0xf9,0x54,0x0d,0x7b,0x07,0xb0,0xa6,0x66,0x7f,0x7e,0x0a,0x94,0x52,0xf6,0xf9,0xf3,0x67,0x1e,0x52,0x2e,0x2b,0x49,0x7e,0xec,0x13,0x8a,0x46,0xea, + 0x04,0x0a,0x8f,0x74,0xce,0xe5,0x0d,0x1e,0x85,0x3a,0x38,0xc0,0x26,0xf6,0x27,0xfe,0x47,0xd8,0x1f,0xc1,0x1f,0x88,0x62,0x68,0xb3,0x53,0x79,0xa3,0x2a,0xda,0x24,0x9b,0xb9,0x1d,0x63,0xcf,0x01,0x98,0xe1,0xc9,0x26,0xbc,0xb6,0x5c,0xe2,0x18,0x13,0xe4,0xd7,0x21,0x18,0xb7,0x09,0x2a,0x5e,0x8b,0xc1,0x52,0x90,0x92,0x22,0xac,0x19,0x60,0x3a, + 0x04,0x0e,0xdb,0x70,0x20,0xcf,0x4d,0x6a,0xb1,0x4b,0x5a,0x3f,0x8f,0x69,0x8d,0x66,0xef,0xf9,0x83,0x58,0x88,0x46,0xd7,0x18,0xb4,0x84,0x5d,0x67,0x4e,0x7b,0xbf,0xc0,0xed,0xd9,0x2a,0x27,0xe4,0x0e,0x5a,0xb2,0xe0,0xcd,0x2d,0x0a,0xc1,0xab,0x67,0x94,0x02,0xce,0x36,0xf1,0x6d,0x3e,0xbf,0xc0,0xfd,0x9d,0xf8,0x17,0xda,0xb1,0x72,0x92,0xd9, + 0x04,0xf0,0x6c,0x77,0xca,0xc2,0x4a,0x6e,0xe5,0x14,0x21,0x86,0x3a,0x0d,0x14,0x69,0x41,0x8f,0x0a,0x64,0x30,0xe0,0x62,0xda,0x18,0xf2,0x7d,0xd5,0x74,0x01,0xc0,0xb6,0x12,0x03,0x2b,0x7e,0x05,0x91,0x45,0x5c,0xa3,0x3b,0x4e,0x49,0xe5,0x3f,0xac,0xf5,0x86,0x44,0x10,0xba,0x04,0x6b,0xa5,0xd4,0xfc,0x6b,0xac,0xfe,0xa9,0xa0,0x78,0x2f,0xf3, + 0x04,0xcb,0x2b,0x9d,0xf4,0xdd,0xc4,0x30,0xdf,0x7b,0x0b,0xef,0xcb,0x5a,0x82,0x6d,0xa1,0x58,0x9a,0x15,0xbe,0xf1,0xb6,0xb2,0x5f,0x12,0x01,0xda,0xab,0x5b,0x2f,0xa4,0xac,0x38,0x01,0xe2,0x7d,0x11,0x2f,0x0f,0x32,0x76,0x72,0x2d,0xcb,0x58,0xb8,0xb4,0xf4,0x84,0x4a,0x2e,0x61,0x4d,0xe4,0x9d,0xb4,0x40,0xb7,0xcc,0x76,0x20,0x81,0x27,0x34, + 0x04,0x45,0x20,0x6b,0x62,0xe4,0xa3,0xc4,0x40,0x4c,0x74,0xae,0x86,0x95,0xcd,0xb9,0x05,0xa8,0xe6,0xa9,0x45,0x6d,0xa0,0x9c,0x72,0xc7,0x2e,0xb7,0x71,0x2d,0x9d,0x52,0xe8,0x1d,0xdc,0x2d,0x56,0xb6,0x34,0xe4,0xab,0x66,0xb7,0x98,0xcd,0xb4,0xdb,0x86,0xcf,0x94,0xf0,0x22,0x08,0xf7,0x47,0x30,0x4a,0xb3,0xd5,0xaa,0x2b,0xb1,0x25,0xe1,0x37, + 0x04,0x58,0x4d,0x2d,0xc2,0x58,0xbd,0x46,0x50,0xe6,0xfa,0x04,0xfe,0x9d,0x3d,0x2a,0x5e,0x76,0x8d,0x79,0x59,0x45,0xed,0x23,0x23,0xf8,0x44,0xd0,0xa8,0xfa,0x0c,0x6f,0xbd,0x5f,0x96,0x25,0x6b,0x9e,0x1b,0x72,0x63,0xfa,0x00,0xfa,0x75,0x8c,0xd6,0xbe,0x15,0xd9,0xf6,0x15,0x7f,0xad,0x66,0xc7,0x29,0xab,0x0d,0xad,0x69,0x45,0x64,0xe8,0x34, + 0x04,0x6c,0x55,0x27,0x89,0x8a,0xe8,0x06,0x7d,0xa5,0x6a,0xc8,0x2c,0xaf,0x33,0x8c,0x9e,0x7f,0x40,0xee,0x44,0x89,0x11,0x5d,0xaf,0x0a,0xba,0x92,0x3a,0x8b,0x6e,0x50,0x1e,0x43,0x0f,0x59,0x70,0xce,0x9d,0x01,0xd0,0x3e,0xc0,0x76,0xf8,0xda,0xf6,0x85,0xcf,0x4d,0x5a,0x9c,0xcd,0x5e,0xb9,0xe8,0x49,0xd4,0x3a,0xe2,0xf3,0x6f,0x2e,0x80,0xe5, + 0x04,0x52,0xcd,0x99,0x24,0x79,0x5f,0xe2,0xa2,0x51,0xaf,0x7c,0xb5,0x69,0xf6,0x6d,0x91,0x41,0xdb,0x89,0x45,0x45,0xd7,0x98,0xa0,0xdb,0x3d,0x30,0xe5,0x0f,0x10,0x0f,0xe2,0x04,0xea,0x81,0xc8,0x08,0x58,0x7c,0x90,0xf3,0xf2,0xc9,0x4d,0x99,0x3c,0x2d,0x0c,0xc4,0xbe,0x64,0xdd,0x6a,0xeb,0x9d,0xc8,0x1c,0x70,0xd7,0x88,0x85,0xb2,0xf7,0x76, + 0x04,0xbb,0xad,0x8d,0xa4,0xc0,0x18,0xbd,0xc1,0x5a,0x5a,0xf8,0xf3,0xda,0x4b,0x38,0x4c,0x53,0x0e,0xa7,0x55,0x60,0xcd,0xfd,0x24,0x2b,0xfa,0x32,0x35,0xd8,0xd3,0x59,0x5f,0x73,0x4c,0xbd,0x86,0x64,0x87,0xb8,0x3f,0xcb,0x84,0xa4,0xac,0x74,0xac,0x54,0x8f,0x25,0x35,0xb7,0x9b,0x57,0xd0,0x2f,0x03,0xa1,0xa3,0x7e,0x27,0x91,0xa0,0x96,0xe4, + 0x04,0x38,0x9a,0xa5,0x22,0x35,0x04,0x3b,0xbd,0x75,0x98,0x68,0x89,0x8b,0xbe,0x27,0x7a,0xb9,0x96,0xea,0x93,0x87,0xbd,0x70,0x98,0xb0,0x07,0x24,0x42,0xbd,0x2b,0x42,0xf5,0xb8,0x23,0x36,0x4e,0x91,0x44,0xa1,0xee,0xf1,0xf1,0x00,0x93,0xfd,0xa0,0xc3,0x01,0x68,0xf3,0x00,0x4e,0x2c,0x2e,0xa7,0x4f,0xde,0x49,0x78,0xf3,0xaa,0x1a,0x31,0xc0, + 0x04,0xfd,0x1b,0xac,0x14,0x43,0x54,0xcf,0xe1,0xcd,0x4c,0x64,0xaa,0x3a,0x2f,0x77,0xf0,0xae,0xfa,0x26,0xcc,0x51,0x41,0x08,0x26,0x76,0x37,0x0a,0x0f,0x1e,0xc9,0x2c,0xd8,0xfe,0xe6,0x69,0x92,0xd2,0xd2,0xfc,0xb8,0x7f,0x90,0xda,0x0a,0x67,0x43,0x37,0x84,0x66,0x65,0x55,0x19,0xbc,0x78,0x2d,0xd7,0xb0,0xab,0x57,0x0f,0x6e,0xd4,0x51,0xd8, + 0x04,0x78,0xc9,0x26,0xb0,0xee,0x01,0xc0,0x00,0xc2,0x5a,0x83,0x63,0x12,0x19,0xf0,0x8d,0x8b,0x34,0x74,0x5d,0x2e,0xa2,0xfd,0xc9,0xeb,0xdc,0x5a,0x22,0x88,0xfa,0x9b,0x03,0x06,0xbc,0x00,0xab,0x37,0x90,0x50,0x8e,0x57,0x05,0xee,0xab,0xfb,0xaa,0x07,0x44,0x71,0x9c,0x9b,0xd7,0xb4,0x67,0xca,0x4a,0x37,0xa0,0x6f,0x6f,0xdb,0xe6,0xd8,0x6c, + 0x04,0x4c,0xae,0x56,0x06,0xba,0xd6,0x01,0x3f,0x7f,0x36,0x19,0x0d,0x72,0x54,0xcb,0xf0,0xd5,0xa9,0x2b,0x33,0x8e,0x4a,0x47,0x70,0x2a,0x3c,0x97,0xa3,0x37,0x1d,0x7e,0xc2,0x80,0xd2,0x73,0xdd,0x59,0x8c,0x20,0x39,0x2c,0x54,0x0e,0x58,0xbe,0xc9,0xb1,0x80,0x40,0x6f,0x3f,0xa6,0xe6,0xc5,0x29,0xa8,0x51,0xbc,0xf2,0xb9,0x6d,0x8f,0x38,0x09, + 0x04,0x08,0xcc,0xbd,0x74,0xf2,0x97,0xfe,0x71,0xca,0x31,0x15,0xc0,0xb1,0xef,0x4e,0x04,0x21,0xb9,0x9c,0xe9,0x1f,0xfc,0xd4,0xb7,0x2a,0x53,0x0b,0x22,0x99,0x3e,0x18,0xe9,0xba,0x0a,0xe1,0xbd,0xbe,0x1c,0x28,0x36,0xff,0xe9,0xa6,0x1a,0xe5,0xa8,0x99,0xf1,0x52,0xc9,0x0b,0x42,0x82,0x36,0x38,0xbe,0x4d,0x51,0xdc,0x3a,0xfa,0x99,0xe6,0xa0, + 0x04,0xaa,0xcc,0xef,0x83,0x4f,0x57,0xe6,0xc5,0x52,0x6f,0xe9,0x27,0x48,0xcd,0x8c,0xdc,0x13,0x75,0xc2,0xac,0x71,0x13,0x9f,0x5d,0x25,0x87,0x30,0x5b,0xd3,0xfd,0xd3,0xcd,0x96,0x5d,0xd5,0x37,0x4b,0x6a,0x31,0x98,0x50,0xc2,0x3e,0xbc,0x2e,0xc7,0xa2,0xde,0xb7,0xff,0x3e,0x42,0x86,0x79,0xd4,0xaf,0xc9,0xdf,0x7e,0x75,0xf2,0xe0,0x6e,0x4d, + 0x04,0xa5,0x85,0xe1,0xed,0x6e,0x47,0x22,0x4a,0x47,0x2c,0xf4,0xed,0x4f,0xf3,0x4e,0x62,0x51,0xc6,0x2a,0xc6,0x82,0xe4,0xb7,0x09,0x92,0xd5,0x00,0x2f,0x08,0xd9,0xe2,0x03,0xe9,0xb7,0xb2,0x88,0x95,0xb9,0xdb,0x40,0x16,0xe5,0xd9,0x4a,0x9f,0x59,0x38,0x5c,0x16,0xdb,0x73,0x8a,0x83,0xb8,0x4e,0x6d,0x43,0xec,0xef,0x82,0x0c,0x55,0xd4,0x62, + 0x04,0xb1,0x04,0xd0,0xcc,0x4a,0x98,0x77,0x71,0x65,0x51,0x05,0xcf,0xc8,0x40,0xf1,0x95,0x74,0x6e,0x11,0x23,0x34,0xc5,0x48,0x01,0xfd,0x93,0xf4,0xbe,0x8b,0x11,0x4a,0x1d,0x3c,0xd8,0xcb,0xcf,0x4b,0x27,0x41,0x66,0xf8,0x2c,0xfe,0x57,0x39,0x30,0x42,0xe3,0x53,0x4e,0x68,0xdf,0x2f,0x4c,0x3d,0xad,0x1b,0x7c,0xe7,0x2b,0x47,0xca,0xd2,0x56, + 0x04,0x82,0xbe,0xd3,0xd5,0x52,0x09,0x8d,0x2f,0xc9,0xe0,0x2f,0x1f,0x3c,0xc3,0x2f,0x5f,0x31,0xcf,0x6c,0xd1,0x01,0xbb,0xb8,0xb4,0x2b,0xc6,0xf7,0x32,0xba,0xdc,0x19,0x76,0x22,0x92,0x57,0xd9,0x2b,0x24,0x1f,0x20,0x31,0xec,0xae,0xba,0x10,0xf1,0xac,0x15,0x4d,0x8a,0x3b,0xea,0x30,0x93,0x28,0x23,0x12,0x72,0xeb,0x6a,0xa0,0x1a,0xa6,0x5f, + 0x04,0x5c,0x4f,0xb6,0x81,0x21,0x3b,0xf3,0x9b,0x68,0xe7,0xca,0x91,0x4d,0x28,0x30,0xb1,0x2a,0x7a,0x32,0xc9,0x6a,0x9c,0x78,0x8a,0xd2,0x98,0x7c,0x00,0x9e,0x08,0xd0,0xa3,0x76,0xa0,0x2c,0xcf,0x59,0x4c,0x28,0x99,0x5c,0xfc,0xb2,0x85,0xed,0x5d,0x91,0xdd,0xed,0x92,0x92,0x11,0x08,0xa0,0xb4,0x09,0x28,0x48,0x7c,0xd0,0x71,0x80,0xab,0x21, + 0x04,0x6b,0x29,0xf8,0xc0,0x06,0x86,0x9a,0xb6,0xbe,0x79,0x3e,0xa7,0x2b,0x97,0x0a,0xce,0xeb,0xb7,0xa4,0xc4,0xb6,0xfb,0xaf,0xec,0xd1,0xe3,0x57,0x13,0xa2,0x8b,0xf2,0x84,0xc7,0x6b,0x07,0xdc,0x14,0xf1,0xdc,0x53,0x3f,0x1c,0x4c,0xcb,0x09,0x73,0xeb,0x53,0xe5,0x30,0x23,0xf0,0xb0,0xf1,0xa8,0x91,0x4c,0x77,0x08,0xc2,0xd7,0x3d,0x48,0x17, + 0x04,0x6e,0x68,0x49,0xc2,0xb0,0x7a,0x37,0xc4,0xf3,0x6b,0xe9,0x11,0xb3,0x23,0xe4,0xce,0x70,0xc1,0x8b,0x15,0x90,0x26,0x12,0xc4,0xfc,0x0f,0xe6,0xd9,0x1e,0x7c,0x18,0x0d,0xe9,0x25,0x54,0x43,0x63,0xc6,0x80,0x35,0x49,0x8c,0xbb,0x22,0x36,0xf5,0xc1,0xec,0xd0,0xe4,0xb2,0xcb,0xb5,0x80,0x1a,0x8c,0xac,0x4d,0x08,0x83,0xf6,0x51,0xbb,0xd0, + 0x04,0x33,0x64,0x9a,0x1e,0x74,0xc7,0xff,0xb5,0xed,0xc3,0x94,0x9c,0x58,0xb7,0xa7,0xf4,0xb5,0x34,0x82,0x88,0xf6,0x21,0xc5,0x0f,0xbb,0xdb,0x71,0x4f,0xa4,0x2a,0xa7,0x93,0xcb,0xfd,0x96,0x9e,0x07,0x7b,0x00,0xea,0xd2,0x10,0x82,0xf0,0x98,0x00,0x09,0x86,0x8f,0x79,0xe4,0x30,0xef,0x1c,0x21,0x63,0x94,0xbb,0x0e,0x9e,0xda,0x13,0x5e,0x9c, + 0x04,0xbf,0x97,0x6e,0xf2,0x04,0x53,0x2b,0xf6,0x74,0x43,0xe8,0xb8,0xd9,0x98,0x7a,0x68,0x31,0x84,0xec,0x26,0x42,0x03,0x29,0xba,0x26,0x8e,0x54,0xe9,0x0b,0x48,0x0d,0xe0,0xbe,0xb1,0x08,0xdf,0x26,0xed,0xa9,0x1e,0xb4,0xfd,0x23,0xd2,0x6a,0xf6,0xf2,0xd7,0x8a,0x42,0x81,0xd5,0xed,0xe0,0x75,0xc2,0xc7,0x15,0xfb,0x1c,0x4f,0x87,0x67,0x84, + 0x04,0x2c,0x43,0x5d,0x9f,0xaa,0x59,0x80,0x70,0xb4,0x92,0x02,0x77,0x50,0x6c,0x10,0x0d,0xe6,0x2a,0x7d,0xf0,0x5c,0x34,0xa3,0x93,0x17,0x78,0x5d,0x62,0x8d,0x74,0xdd,0xe3,0xc7,0xf5,0xd0,0xbe,0xdf,0x54,0xaf,0x1c,0x7d,0x21,0xff,0x95,0x51,0x28,0x00,0x2f,0xd5,0x29,0x62,0x37,0x38,0x47,0x23,0xfe,0xf1,0xfb,0x80,0x6c,0x2a,0x6d,0x8e,0xa9, + 0x04,0x38,0x19,0xdf,0xaa,0xb5,0x53,0x78,0x63,0xc8,0xdb,0xf4,0x06,0xac,0x18,0xdd,0x67,0x56,0x19,0xc9,0xa7,0xa5,0x54,0x62,0x0a,0xd8,0xa1,0x44,0x92,0xbb,0xa4,0x25,0xa3,0xd6,0x8e,0x8c,0x68,0x18,0x15,0x55,0xe2,0x23,0x62,0x41,0x5c,0x95,0xa3,0x17,0x24,0xeb,0xfe,0x8b,0x2b,0xf1,0x76,0x4e,0x20,0x9e,0xae,0x9e,0x53,0xb3,0xf4,0x62,0xa0, + 0x04,0x70,0xad,0x3a,0x9c,0x9a,0x9d,0xb7,0x1d,0x42,0x0a,0xba,0xe8,0x4c,0xcd,0xb1,0x27,0x68,0x85,0x1b,0xac,0x6a,0x82,0xff,0xd0,0x3d,0x89,0x62,0x1a,0x50,0xa7,0xc3,0x11,0xbf,0xff,0x7c,0x66,0x4c,0x21,0x1f,0x93,0x76,0x8f,0x84,0xb5,0x25,0x5d,0x95,0xc7,0xf6,0x78,0x87,0xc3,0x30,0x5d,0x78,0x9d,0x7f,0xce,0xdc,0x2d,0x29,0x98,0x9f,0x9a, + 0x04,0x58,0x39,0x13,0x61,0xfb,0xc8,0x11,0x5c,0x97,0x8e,0x82,0x03,0x78,0x14,0xd3,0x1a,0xa3,0xa8,0x88,0x73,0xed,0x6c,0x74,0xc4,0xaa,0xea,0x97,0x27,0xe3,0x00,0xd9,0x45,0x42,0x92,0x4c,0x67,0xb5,0xcf,0x82,0x8b,0xe8,0x27,0xe5,0x81,0xda,0xfc,0xbd,0x16,0xe6,0x53,0xe7,0x2a,0x4f,0x2d,0x4d,0x05,0x50,0x80,0x53,0x87,0xb9,0x41,0x7e,0x77, + 0x04,0x23,0xa2,0xbe,0x68,0x4b,0x0b,0x5f,0x04,0xbe,0xf5,0xc6,0xca,0x8a,0x99,0x1b,0xf7,0x52,0xf5,0x96,0x4f,0x6f,0xdf,0x36,0xd7,0x12,0x91,0x00,0xda,0xf8,0x0f,0x14,0x34,0xb6,0xf3,0xca,0x2a,0x5e,0x85,0xce,0x00,0x5e,0x1c,0xb6,0xd2,0xb1,0x30,0x94,0xc4,0x34,0xfd,0xc1,0xc0,0x95,0xa3,0xae,0x5e,0x53,0xf6,0x49,0x49,0xca,0x56,0x69,0x1b, + 0x04,0x14,0x7b,0x8a,0x2f,0xb4,0xf6,0xe8,0x5e,0xea,0xd8,0x1c,0xa0,0xb3,0xf2,0x30,0xb8,0xd8,0xcc,0x23,0x0d,0xe7,0x31,0x07,0xd9,0xca,0xbc,0xbc,0x5b,0x39,0xe4,0xe7,0xea,0xda,0xa4,0x4e,0xc1,0xed,0x0b,0x95,0xf6,0x10,0x92,0x23,0xbc,0x48,0x0e,0x91,0x74,0x19,0xd8,0x60,0xf9,0xb9,0xa7,0x5f,0x81,0xd6,0xf8,0xca,0x3a,0xda,0x37,0x75,0x33, + 0x04,0x2b,0x3f,0xe6,0x4b,0xb1,0x42,0x78,0x9e,0x89,0xe1,0x09,0x2d,0xb4,0x6b,0x61,0x30,0x12,0xbc,0xfa,0xe5,0x77,0x59,0xea,0x90,0x81,0x65,0xc0,0x36,0x2f,0x80,0x4f,0x36,0xc0,0x05,0x3f,0xaf,0x32,0x66,0xad,0x7e,0xec,0xed,0xcb,0x24,0x63,0x6b,0x99,0xc9,0x35,0xf1,0xc8,0xe7,0x31,0x68,0xf0,0xee,0xb3,0xdd,0xfb,0x66,0x08,0x01,0xe5,0x5b, + 0x04,0xc4,0xed,0x72,0x44,0x54,0x65,0xcd,0xb4,0x4f,0x58,0xb0,0xe1,0xaf,0x08,0x23,0x22,0x6e,0xa7,0x9e,0xb2,0xe1,0xbc,0x3f,0x27,0xfb,0x8e,0x4c,0xe7,0xb8,0x5f,0x4a,0x30,0xc2,0x37,0xe5,0x74,0xc5,0x9a,0x99,0x24,0x06,0xfd,0x51,0x7f,0x4d,0x90,0x5e,0x03,0xd7,0xa2,0xb0,0xa4,0x0e,0xf8,0x5a,0xa3,0xc7,0x3b,0xd4,0x6a,0x1a,0x06,0xa9,0x18, + 0x04,0x18,0xef,0x4e,0x2f,0xad,0xaa,0xc1,0xb9,0x82,0xa7,0xd2,0xd1,0x2e,0x9d,0x51,0x48,0xec,0xf3,0x36,0xb1,0xd3,0x77,0x5d,0xa2,0xf7,0xdf,0x82,0x2a,0xd4,0x9a,0x13,0x24,0xbd,0x07,0x04,0x6a,0x3f,0x8e,0x94,0x9e,0x7a,0x0d,0x96,0x0f,0xe9,0xd9,0xa1,0xde,0x0f,0x61,0x49,0x7c,0xb4,0xe7,0xb2,0xf3,0x9a,0xee,0x68,0x44,0x39,0x6f,0x99,0x7f, + 0x04,0x39,0x8c,0xa1,0xa9,0x44,0x21,0x0a,0x10,0xb1,0xf5,0x73,0x20,0x71,0x25,0x95,0x28,0xdf,0x87,0xd4,0x2d,0x3d,0x7b,0x00,0x6b,0xc6,0xfd,0x9e,0x1e,0x09,0xf6,0xfa,0x30,0xfe,0xd3,0x79,0xdb,0x3f,0x1b,0xd9,0x15,0xdb,0x2b,0xa2,0x73,0x84,0xec,0x13,0x71,0x54,0x17,0x44,0x6e,0xe8,0x4f,0xb5,0xfd,0x0a,0x4b,0xf6,0x43,0x1c,0xfd,0x3f,0x15, + 0x04,0xd1,0xc1,0x82,0xad,0xb1,0x01,0xeb,0xe5,0xfe,0xc3,0x91,0x0f,0x80,0x05,0x8e,0x09,0x1d,0x13,0x25,0x43,0x3d,0x4f,0xd3,0xbb,0xb3,0x8e,0xb7,0x5b,0xca,0xf2,0x69,0x8a,0x21,0x21,0x8f,0x75,0x44,0xce,0x84,0xdc,0xfe,0x52,0xe8,0x17,0xec,0x0b,0xa6,0xbf,0x84,0x46,0x0f,0x49,0x93,0x2b,0x3e,0xc5,0xed,0x27,0x68,0x2d,0x33,0x7f,0x27,0x0d, + 0x04,0x3f,0x68,0xc4,0xe4,0x12,0xc5,0x7d,0xa0,0x15,0x56,0x8e,0x0a,0x9f,0xcc,0x3d,0xb4,0x99,0xb7,0x7e,0x6c,0x0f,0x55,0x05,0x08,0x28,0xc5,0x0c,0x35,0x49,0x3a,0xf5,0xe3,0xd0,0xb5,0x3f,0xe3,0x0b,0x0c,0x6c,0xf4,0x2c,0xdf,0x9f,0x4f,0x01,0xd5,0xc9,0x05,0x8f,0x81,0x69,0xb2,0x41,0xbd,0xea,0x22,0x59,0x32,0xf9,0x03,0x3f,0x8b,0xc5,0xeb, + 0x04,0x56,0xdd,0x4c,0x2b,0x1d,0x7a,0x1a,0x2d,0x65,0x59,0xb5,0x20,0x3f,0xcb,0x89,0x74,0xfa,0x81,0xbe,0x7d,0x64,0xcf,0x0a,0xe7,0xa1,0x4f,0xd9,0x65,0xdf,0xd6,0x9c,0xdd,0xeb,0xe1,0xca,0x78,0xd5,0x58,0x3f,0xda,0x34,0x87,0x04,0x0d,0xcd,0x94,0x76,0x4f,0x8d,0xc6,0x19,0xe8,0xd7,0x4a,0xae,0x8d,0x96,0x65,0xf3,0x40,0x69,0x3c,0x21,0xb3, + 0x04,0xe1,0xe5,0x05,0x3b,0x6f,0x43,0xb8,0x71,0x4a,0x02,0x5a,0xcf,0xb8,0x6a,0x8f,0x51,0x19,0x54,0x88,0x09,0x9b,0x1f,0x5d,0x63,0x31,0x0a,0x6b,0xec,0xd7,0xcc,0xb4,0x7e,0xf0,0xd1,0x6b,0xc0,0xc3,0x23,0x44,0x70,0xff,0xa8,0xd4,0x5f,0x58,0x2f,0xcb,0x65,0xff,0x9c,0xca,0xaa,0x6a,0xe0,0xcd,0x6b,0x57,0x2b,0xeb,0xaa,0x50,0xc1,0x77,0x41, + 0x04,0x1a,0x46,0x57,0x1a,0x14,0x38,0xca,0x23,0xdc,0x79,0x12,0xa8,0xa7,0xb2,0x24,0x5d,0x70,0xc8,0x52,0xa6,0xe9,0xf4,0xd3,0x85,0xdd,0x60,0x84,0x27,0xec,0x3c,0x41,0xe7,0xfe,0x06,0xe2,0xde,0xdf,0xba,0xa3,0x76,0xa6,0x14,0x65,0x7c,0xe6,0x17,0x01,0xa7,0xdb,0x18,0x1e,0x5b,0x1f,0x31,0x39,0x04,0x5b,0x84,0x24,0xee,0x54,0x96,0x4b,0x7a, + 0x04,0x8c,0xe5,0xa3,0xc8,0xbd,0x25,0x44,0x69,0x5a,0x00,0x58,0x41,0x61,0x2a,0x7c,0x5d,0x05,0xbe,0xb0,0x7c,0xf7,0xbc,0xa1,0x02,0x71,0x72,0xb0,0x30,0xac,0xf7,0xd2,0x75,0xfb,0xa0,0xc3,0x39,0xf7,0x4c,0xe3,0x6d,0x10,0x4f,0xff,0xbd,0x5a,0xe1,0xc9,0xc7,0x25,0x88,0x69,0x31,0x90,0xed,0x2b,0x36,0x87,0x43,0x30,0x87,0x21,0x3b,0x5b,0xdf, + 0x04,0xa0,0xab,0xcd,0xb1,0xef,0x03,0x5e,0x18,0x6e,0x72,0x06,0x06,0xb0,0x7f,0xd6,0x15,0x53,0x20,0x39,0x27,0x5a,0xc1,0xb6,0xf2,0x27,0x20,0xb7,0x56,0xc0,0xf8,0x57,0xcf,0x76,0xe4,0x65,0xcf,0xde,0xf3,0x06,0x02,0xb2,0xe0,0x55,0xa3,0x03,0xbc,0x6e,0x17,0x6d,0xfe,0x97,0x2d,0x06,0xcc,0x6f,0x38,0x21,0x78,0x03,0x87,0xbd,0x63,0x57,0xc1, + 0x04,0x85,0x9b,0x6b,0xeb,0x70,0x67,0x1b,0x3e,0x64,0x99,0x1b,0xb6,0x61,0x18,0x0d,0xbb,0xe8,0x35,0xf6,0x3c,0x0a,0x58,0x78,0xc3,0xf8,0x3f,0x09,0x22,0x66,0x0a,0x7c,0x09,0x33,0x89,0xbf,0x4c,0xe6,0xb5,0xc1,0xc2,0xf8,0x01,0xc8,0x4c,0x54,0x39,0x1d,0x53,0xaa,0x95,0x3e,0xad,0x5e,0x51,0xb7,0x75,0x7b,0x35,0x08,0x34,0x5b,0xb4,0xcd,0xeb, + 0x04,0x35,0x51,0x0d,0x43,0xf4,0xd1,0xa1,0x73,0xa0,0x46,0x7d,0x5c,0xb3,0x5a,0x41,0x70,0xc3,0xfc,0x40,0x7e,0x55,0xb4,0x16,0xb4,0xdf,0xce,0x28,0x65,0x0f,0x88,0x02,0xaf,0xe8,0xef,0x2a,0xdb,0xde,0x8b,0x40,0xa1,0x71,0x42,0x86,0x17,0x6d,0x67,0x44,0x89,0xbf,0x9a,0xcb,0x2e,0x4a,0x83,0x53,0xa7,0xda,0xe1,0xa9,0xe9,0x7c,0xbb,0x41,0x50, + 0x04,0xfa,0x4a,0xf0,0x89,0xc1,0x4d,0x6a,0x8b,0xe1,0x88,0x11,0x35,0x98,0x94,0x11,0x60,0x71,0x60,0xd1,0x41,0xa7,0xa8,0xcb,0x45,0x46,0xf3,0x58,0xa7,0x97,0xd2,0xaa,0xfd,0xbe,0x00,0x86,0x79,0x64,0x36,0x34,0x4d,0xae,0xec,0x06,0x3f,0x4f,0x4a,0x41,0x4a,0x87,0x79,0xe7,0x2a,0x96,0x08,0x92,0x33,0x5a,0xcd,0xfb,0xfd,0x45,0x2f,0x72,0x7a, + 0x04,0x3c,0xdc,0xaa,0x08,0x64,0x27,0x02,0x3b,0xbd,0x91,0xb5,0xb2,0xe2,0x12,0xbe,0x77,0xde,0x55,0x91,0xa1,0xa0,0xc2,0x10,0xd5,0x4f,0x04,0x82,0xf2,0x7c,0x42,0x65,0x58,0xf8,0xe1,0xf4,0xfe,0x6e,0x3b,0xf0,0x37,0xc0,0xe0,0x3d,0x40,0x43,0xc1,0xd9,0xb2,0x54,0x36,0xe0,0x80,0x3b,0x1a,0x42,0xb6,0xde,0x2e,0x40,0xd9,0x9e,0x83,0x9c,0x68, + 0x04,0xd7,0xad,0xbe,0x30,0xa5,0x68,0x2a,0xcf,0x9d,0x39,0x8f,0x58,0xda,0x8f,0xd3,0xb5,0x83,0x28,0x3d,0x9e,0xda,0x74,0xae,0x06,0x7b,0x9b,0x53,0x3c,0xd6,0xc0,0x82,0x4c,0xfe,0x50,0xd0,0x37,0x1c,0x0e,0x7b,0x59,0x04,0x3f,0xfa,0xd2,0x5e,0x17,0x44,0x5c,0xfb,0xdf,0xb3,0xfe,0xa4,0x0e,0x55,0xbc,0x7d,0xe1,0x9a,0xc5,0xf2,0x7c,0x64,0xa2, + 0x04,0x02,0x9e,0x1c,0x6e,0xb3,0x7c,0x38,0x3f,0xb4,0xe2,0x7e,0xbb,0x31,0x97,0x68,0x8f,0x8d,0x8a,0xf7,0x55,0xdb,0x83,0xb7,0x62,0x8e,0x17,0x57,0x9c,0xb3,0xf9,0x0f,0x05,0x8a,0x2b,0xf5,0x78,0x57,0xf5,0xff,0x63,0x31,0xcd,0xcf,0x87,0x44,0x0b,0x6e,0x69,0xcc,0x1b,0x6e,0x44,0x4c,0xe5,0x40,0xb8,0x22,0x2b,0x95,0x5c,0x98,0xa9,0x99,0x55, + 0x04,0x3a,0x35,0xde,0x21,0x3b,0x2d,0xc3,0x3e,0xb3,0x48,0x94,0x8a,0x22,0xed,0x5a,0x93,0x60,0x0f,0xad,0x07,0x1b,0xb0,0x17,0xa6,0xa2,0x50,0xe6,0x60,0x9b,0x13,0xf7,0xca,0xfb,0xec,0x06,0xb6,0x63,0xa5,0xf5,0x46,0x89,0xd0,0xee,0x67,0x09,0xfd,0x0d,0xa4,0x6a,0xcf,0xd2,0x60,0x38,0x93,0x59,0x35,0xf7,0x49,0xd6,0xd4,0xbc,0x21,0x06,0x0f, + 0x04,0x6b,0x91,0x0d,0x9e,0x99,0x43,0xcb,0xef,0xf7,0x17,0xca,0x95,0x46,0xaa,0x56,0x77,0xe0,0x61,0x18,0xf5,0xf0,0x4a,0x02,0x46,0xb5,0xba,0xb7,0x35,0x05,0x77,0x5d,0x65,0xc8,0x7a,0x4c,0x1f,0xd7,0xbc,0x58,0x4c,0x56,0x99,0x11,0x19,0x69,0x9b,0x90,0xb4,0xb3,0xa5,0x68,0xe5,0x08,0xea,0xa8,0x3f,0x11,0x83,0x32,0xda,0x91,0x52,0xb1,0x3a, + 0x04,0xf1,0x02,0xb9,0x0a,0xd3,0x78,0x72,0x5f,0xb7,0xff,0xe3,0xfc,0x3f,0xe6,0xef,0xb3,0x20,0xa7,0x28,0xa0,0x3c,0xe0,0x9a,0x88,0xee,0x25,0xba,0xb2,0xcf,0x13,0x3c,0x04,0xaf,0x2c,0xfe,0xe5,0x28,0xf3,0x91,0x3c,0x83,0x50,0x44,0x98,0xca,0x8b,0x3b,0x6d,0xeb,0x9e,0x28,0x42,0x41,0xb8,0xd0,0x1c,0x67,0x8a,0xb7,0x9a,0xd8,0x09,0x18,0x88, + 0x04,0x7f,0x42,0x0f,0xce,0xf9,0x3b,0x0b,0x9d,0x0a,0x9f,0x86,0xb2,0xc6,0x5e,0x18,0x93,0x8e,0x17,0xaa,0x84,0xea,0xde,0x2a,0x7a,0x64,0x40,0xad,0xec,0x91,0x4c,0xb2,0xf6,0xec,0x16,0x63,0xba,0xab,0x8a,0xf3,0x08,0x33,0x33,0x99,0xad,0xce,0xff,0x90,0x8e,0xe3,0x3c,0x8f,0x86,0xb3,0xdf,0x9e,0xf9,0x3a,0x51,0x52,0x09,0x31,0xf8,0x51,0xec, + 0x04,0x6b,0x83,0xad,0xf5,0x8b,0xbf,0x00,0xda,0x4b,0x77,0xb6,0xc4,0x61,0x59,0x25,0xcf,0x5a,0x8f,0x7b,0x72,0x99,0x7a,0xd9,0x69,0x04,0x85,0x54,0x90,0x83,0x4b,0xcf,0x82,0x22,0x4d,0xb9,0x40,0xbb,0xa0,0x28,0xdb,0xdd,0xaf,0x3c,0xba,0x94,0x9d,0xc4,0x1b,0x0d,0xb7,0x95,0x51,0x5e,0x34,0x54,0x9f,0xac,0x11,0xa1,0x83,0xb8,0x9d,0x5b,0xb7, + 0x04,0x04,0x10,0x23,0x67,0xdc,0x53,0x57,0x6a,0x83,0x85,0xfc,0x58,0xee,0x23,0x37,0xe2,0xb9,0xaf,0x54,0x7e,0x69,0x93,0x4f,0xe3,0xec,0x79,0x7a,0x84,0xc2,0x25,0xdf,0x0c,0x62,0x1c,0xec,0xc7,0x27,0x66,0x9f,0x2e,0x55,0x87,0x62,0xb6,0x5b,0x33,0xb3,0xcf,0x3f,0x22,0x8f,0xe9,0xa9,0xc2,0x22,0x23,0xab,0x71,0xe7,0x7f,0x90,0x4d,0x6a,0xa9, + 0x04,0x25,0x83,0x40,0x10,0x58,0x42,0xeb,0xe7,0x60,0xc4,0xfd,0xe1,0x3e,0x31,0xee,0xfd,0x52,0xe5,0x1a,0xae,0xf9,0x38,0xc4,0x47,0x7d,0x14,0x8b,0xba,0xc6,0xd3,0x74,0x12,0x30,0x1f,0x4b,0x4d,0x1b,0xfe,0x0e,0x70,0x46,0xcb,0x1f,0x99,0x3a,0x35,0x9f,0x91,0x91,0xfd,0x7b,0xca,0x7c,0x53,0xe0,0x39,0xfa,0x51,0xdb,0x8a,0x11,0x7e,0xfa,0xa3, + 0x04,0xd9,0xa5,0x21,0xd8,0x14,0x7c,0x1e,0x83,0xdf,0x82,0xb9,0xdb,0x62,0xb2,0x5e,0x6f,0xf1,0x41,0x7d,0xdd,0x41,0xae,0xf3,0xff,0xb1,0x82,0xad,0x23,0xf2,0x78,0x22,0xf7,0xb0,0xad,0x91,0x74,0x62,0xcd,0x2a,0x5a,0xbc,0xe2,0xec,0x2c,0x4a,0x4f,0x74,0x56,0xeb,0xdb,0x65,0xdb,0x10,0xd9,0x62,0x05,0x6e,0x75,0xf6,0xf8,0x85,0x3d,0x2a,0x4c, + 0x04,0x0b,0x58,0x00,0x6e,0x37,0x15,0x70,0x68,0x66,0x58,0xd4,0x58,0xf2,0x6f,0xaa,0x34,0xcc,0xf8,0xb4,0x9f,0xba,0x82,0x34,0xeb,0xd7,0x30,0x4c,0xbb,0xa3,0xab,0x1b,0x24,0x68,0x78,0x7e,0x9c,0x7e,0xa3,0x04,0x3e,0x0b,0xf2,0x7a,0xa9,0x73,0x0a,0x5a,0xbe,0x47,0x30,0x60,0xb7,0x7c,0x53,0xbd,0xdc,0x70,0xe2,0x01,0xd7,0xf5,0xb1,0xd8,0x9c, + 0x04,0x4a,0xb8,0xf5,0xac,0x88,0xee,0xcf,0xcb,0x03,0x94,0xf6,0xcf,0xe5,0x52,0x85,0x96,0xb6,0xb4,0xc4,0xfd,0xac,0x82,0x47,0xfd,0x62,0x95,0x72,0x89,0x13,0x3e,0x62,0x0e,0x1a,0xf5,0x18,0x52,0xe1,0x1b,0x19,0xd6,0x13,0x78,0x52,0xe2,0x18,0xfd,0x64,0xd2,0xeb,0xb5,0x67,0xf8,0xfa,0x92,0xa1,0xed,0x43,0xa5,0xe3,0x4f,0x56,0x94,0xa9,0x4b, + 0x04,0x90,0x32,0x01,0xba,0x08,0x35,0x3b,0xa6,0x15,0x8c,0x06,0xe6,0x6d,0xf0,0xb4,0x13,0xb7,0x71,0xd2,0x1a,0xcc,0x08,0x32,0x21,0x3b,0xd0,0x3d,0x58,0x95,0x75,0xe6,0x76,0x77,0xa9,0x0c,0xcf,0x2f,0x30,0x79,0xcd,0x2a,0xc6,0xc5,0x9c,0xc0,0x25,0x6a,0x61,0x2c,0x07,0x9b,0x8a,0x91,0xb5,0x9e,0xce,0x1e,0xfd,0x07,0x6f,0x53,0xbf,0x5b,0x04, + 0x04,0xc8,0x02,0x1b,0xe2,0x26,0x9a,0x2e,0xe8,0x38,0x53,0xe4,0xa1,0x2b,0xb0,0x68,0x08,0x25,0x08,0x8d,0x9a,0xc0,0xe5,0x6f,0xb5,0x05,0x10,0x9f,0x47,0x08,0xdd,0x9d,0x5d,0xd8,0x02,0xad,0x69,0x0d,0x8e,0x8b,0x81,0x7a,0x81,0x5d,0xe6,0x07,0x86,0x5a,0xfa,0xbf,0xbe,0xd7,0x65,0x09,0x88,0xf9,0x25,0xec,0xf2,0x3f,0xe5,0x65,0x4d,0x0c,0x9c, + 0x04,0xa5,0x3f,0x7c,0x41,0x2c,0x11,0xad,0x6a,0x36,0x2b,0xd2,0xbe,0x2e,0x7d,0x1f,0x20,0x44,0x02,0x97,0xbe,0x86,0x59,0x4a,0xbb,0xcb,0xea,0x25,0x94,0xdd,0xf9,0x37,0x23,0x79,0xdb,0x08,0xad,0x87,0xb5,0x36,0x93,0x9a,0x70,0x58,0x26,0x82,0xcb,0x75,0x70,0x26,0x36,0x55,0xcc,0x25,0xa2,0x97,0x9f,0x84,0x5f,0xd6,0x8b,0xe3,0xd8,0x29,0x53, + 0x04,0x46,0xfe,0xed,0x4e,0x52,0x29,0x63,0x19,0x2c,0xbd,0x6c,0x6e,0xda,0xbd,0x51,0x75,0xd1,0x0f,0x93,0x99,0x9a,0x58,0x5a,0x04,0x5a,0x30,0x26,0xb6,0x9b,0xb4,0xd5,0x28,0xed,0x7f,0x6a,0xbd,0x7b,0x39,0xe4,0x0e,0x08,0xe2,0x12,0x69,0x91,0xed,0x41,0x03,0x94,0xbf,0xda,0xbe,0xa9,0x90,0xab,0xb7,0xb2,0xca,0x5e,0xb9,0xf0,0x48,0xfa,0x4f, + 0x04,0x67,0xdb,0x11,0xee,0x0b,0x73,0x07,0x1b,0xf3,0xb8,0x15,0x86,0x4a,0x17,0x85,0x81,0xad,0xa3,0xd1,0x00,0x91,0x83,0x65,0xe7,0x12,0x0d,0x9b,0xde,0xc9,0xcd,0x9c,0x33,0x25,0xf5,0xeb,0x5a,0x1b,0x66,0xad,0x10,0x4a,0x5c,0x9e,0x43,0xb0,0x7a,0xfa,0x4b,0x15,0x2a,0x75,0xfa,0x22,0xa3,0xe4,0x29,0xaf,0x41,0xe4,0x59,0xe7,0x99,0x3e,0x45, + 0x04,0x14,0xcd,0xc4,0xf1,0x6c,0x07,0xd6,0xe6,0x07,0x4c,0xaa,0x8e,0xcc,0xa2,0x6a,0x01,0x86,0x34,0x7e,0x72,0x3d,0xce,0xdf,0x9a,0xff,0x9d,0xc6,0xfc,0x8c,0x38,0x15,0xbf,0x5d,0x64,0xfe,0x2d,0x7e,0x6a,0xbc,0x20,0x80,0x2a,0x1c,0x15,0x80,0x40,0xce,0xbd,0x61,0x4d,0xed,0xa0,0x34,0x79,0x87,0xe0,0xcd,0xcf,0xd4,0x1e,0x09,0x61,0x8c,0xf5, + 0x04,0x24,0x19,0x3c,0x35,0x01,0xff,0xa7,0x7e,0xbf,0x1e,0xe6,0x2f,0x7c,0x11,0x8b,0x28,0xc0,0x5a,0x1c,0x0a,0x94,0x6f,0x44,0x2b,0x20,0x8a,0x83,0x05,0xc6,0xa7,0x45,0xf8,0x86,0x36,0x03,0x29,0x9d,0xfd,0xf5,0xd2,0xbd,0xa1,0x92,0x30,0x00,0x7d,0x0e,0x03,0xae,0x61,0xfe,0x1c,0xae,0xaf,0xa5,0x84,0xdd,0xad,0x4c,0xea,0x6d,0xc7,0xd7,0x6a, + 0x04,0x08,0x1c,0xea,0xb1,0xd3,0xcd,0x53,0x17,0xfc,0x78,0x2c,0x9c,0x8d,0xc3,0x33,0x99,0x70,0x5a,0xba,0x68,0x99,0xc0,0xb8,0x04,0xef,0xa9,0x6e,0xd4,0xee,0x94,0x4d,0xa9,0x00,0xad,0xf5,0x1c,0xd3,0x1b,0x50,0x00,0xf2,0xd1,0x75,0x69,0x5d,0x48,0xa1,0x22,0x13,0xae,0x15,0x95,0xb9,0x83,0x72,0x64,0x3e,0xc0,0xeb,0x40,0x0e,0xf7,0x9d,0x41, + 0x04,0x13,0xe5,0x6b,0x20,0x78,0x55,0xea,0xbb,0x4b,0x8a,0x27,0xdf,0xe8,0xd1,0xec,0x89,0x64,0x4b,0xe7,0xc0,0x96,0xf6,0xc2,0xf3,0xa1,0x22,0xc9,0xcd,0x0b,0x8b,0x50,0x8b,0xb5,0xb7,0x97,0x0e,0x3a,0x14,0x11,0xf4,0xff,0xe3,0x71,0x14,0x05,0xec,0x65,0xef,0x98,0xdb,0x12,0xa2,0xb3,0x7d,0x8c,0x18,0xc8,0xd1,0x98,0x41,0x34,0xe8,0x54,0x92, + 0x04,0x5c,0xf9,0x5e,0x23,0xe6,0x81,0x05,0x9f,0x00,0x8b,0x32,0xdf,0x32,0x6f,0xfb,0x77,0x95,0xbd,0xf7,0x4b,0xb3,0x37,0xf7,0x7c,0xff,0x50,0x52,0xde,0x78,0x26,0x79,0x4b,0x5c,0xb0,0x38,0xec,0x1f,0xde,0xfd,0xe5,0x1f,0x6c,0x68,0xdc,0x5e,0x12,0xa1,0x98,0xa5,0x1c,0xe8,0x6b,0x92,0x16,0x78,0x83,0x68,0x7b,0x25,0x34,0x15,0xd6,0xd3,0x7a, + 0x04,0x9c,0x49,0x75,0x4a,0x4c,0x45,0xd9,0x7e,0x5b,0x70,0xd0,0x93,0x1b,0x98,0xf6,0x0b,0x3a,0x99,0xf5,0x1a,0x95,0x49,0x75,0x37,0xbd,0x85,0xed,0xe7,0xe9,0x87,0x94,0x29,0xdc,0xad,0xfe,0x27,0x3a,0x40,0x86,0xc3,0x0d,0xde,0x47,0x55,0x66,0x79,0x23,0xe5,0x8c,0x46,0x3e,0x8d,0x94,0xcb,0xb7,0xd5,0x6c,0x9e,0x0f,0x4d,0xe7,0x9e,0x6d,0x21, + 0x04,0xfc,0x7f,0xd9,0x84,0xdd,0x0d,0xc3,0xc9,0x38,0x46,0xf8,0xb4,0x1b,0x07,0x29,0x6e,0xa8,0x54,0x40,0x13,0x25,0xf1,0x55,0xf1,0x23,0x6f,0x2e,0x44,0x14,0xa9,0xb9,0xda,0x47,0x3f,0x38,0xa5,0xf8,0x4d,0x08,0xc0,0xac,0x7a,0x1d,0xab,0x8a,0x56,0x8e,0xac,0x21,0x06,0x60,0x74,0x94,0x74,0x49,0xa8,0xc3,0xd1,0x6f,0x05,0x5a,0x37,0x9b,0xff, + 0x04,0x33,0x7e,0x2e,0x26,0x0a,0x35,0x65,0xff,0x81,0xe0,0xbe,0x90,0x0c,0x8d,0xaf,0xb2,0xce,0x23,0x10,0x68,0x8c,0x3e,0xeb,0x6c,0x02,0x5c,0xac,0x20,0x8b,0x08,0xa1,0x8a,0x44,0x84,0xfc,0x5f,0xb0,0x1c,0x2d,0x40,0x4d,0xa9,0x9b,0x56,0xa4,0xdc,0x22,0x64,0x20,0xdc,0x3e,0x67,0x6f,0xd0,0x22,0x3b,0xa3,0xa4,0x5d,0x43,0xcd,0xcf,0x35,0x62, + 0x04,0xe2,0xb1,0x70,0xd1,0xdc,0x4d,0x9e,0x32,0x95,0x14,0xa5,0x4f,0x10,0xdc,0x81,0xd9,0x02,0xf3,0x75,0x2c,0x3a,0x6e,0x2f,0x8b,0xe5,0xd8,0x20,0xfa,0xfe,0xfa,0x9d,0x8b,0xe0,0x87,0xdb,0xd3,0x90,0x15,0x2e,0xbb,0x04,0xc7,0x3b,0x8c,0x50,0x4b,0x99,0x4a,0x76,0x83,0x72,0xd3,0xf9,0x20,0xa5,0xce,0xdc,0x42,0x42,0xbf,0x83,0x4c,0xcc,0x6f, + 0x04,0x67,0x02,0xab,0x6b,0x25,0x7c,0x24,0x44,0x0b,0xf7,0x19,0xc0,0x2d,0x21,0x61,0xe4,0xe3,0x1e,0x22,0xd5,0x5e,0xd8,0xad,0x0f,0x33,0xe5,0xaf,0x95,0x68,0xac,0x4a,0x9a,0xbf,0x87,0xac,0xcc,0x75,0x85,0x77,0x38,0x90,0x42,0xf5,0xb6,0x50,0xc3,0x7d,0xb6,0xb0,0xc7,0x68,0x22,0x03,0x15,0x6d,0xe7,0x37,0x28,0xa5,0x82,0xbe,0xd6,0xa6,0xd4, + 0x04,0x0c,0xec,0x0a,0xa4,0xde,0x0c,0x14,0x3f,0x5d,0x4c,0x3d,0x36,0xde,0x3d,0xb4,0xcd,0x72,0xe8,0xfe,0x0f,0xbd,0x33,0x6d,0xe8,0x79,0xa5,0x62,0xac,0x87,0xe6,0x28,0xd8,0xe7,0x5d,0x0d,0x0a,0xe3,0xd7,0xb4,0xd8,0x69,0xe7,0xf6,0xff,0x56,0x4e,0x21,0xef,0xc3,0x0a,0x15,0xff,0x2d,0x4c,0x87,0x61,0x81,0x04,0xfb,0xd4,0x2e,0xf5,0xe0,0x0b, + 0x04,0x92,0x76,0x15,0x1f,0xb9,0x99,0xff,0x3f,0x7f,0xcf,0x54,0x24,0x91,0xfb,0x62,0x47,0x9f,0xd1,0xea,0xe9,0x3f,0xc2,0xe7,0xd2,0x2c,0x38,0xd9,0x44,0x86,0x7c,0x44,0x7e,0xf0,0xe7,0x18,0x5e,0x4d,0x55,0xa1,0xc2,0xea,0xfa,0x2c,0xf8,0xd2,0x62,0x63,0x6d,0x6e,0x4b,0x35,0x3f,0xe7,0x1a,0xe3,0xd3,0xcc,0xe6,0xb1,0x58,0xd8,0x6c,0xf5,0xfe, + 0x04,0xe6,0x57,0xa9,0x1a,0xbd,0xcb,0x67,0xbf,0xfa,0x8f,0x78,0x56,0x5e,0xc7,0x96,0xb4,0x90,0x1f,0x29,0x91,0xc1,0x27,0x22,0xd2,0x7b,0xca,0x6a,0x02,0x17,0xf2,0xb0,0x0c,0x9b,0xb2,0xcf,0x5f,0x6c,0x57,0x80,0xc7,0x0f,0xa8,0xf0,0x31,0x59,0xbc,0xb0,0xd5,0x60,0x96,0xae,0xec,0xf5,0x3e,0xa5,0xe2,0x8d,0x10,0x58,0xc3,0xa5,0x0d,0x20,0x91, + 0x04,0x7c,0x05,0x1c,0x1e,0xeb,0xc7,0x67,0x46,0xeb,0x26,0x7e,0x8e,0x91,0xa4,0x7d,0x8a,0xb8,0x1b,0x89,0xbd,0x3b,0x3a,0x9d,0xe6,0xf1,0xc3,0xe6,0xb9,0x8d,0xb8,0x1c,0x7b,0x75,0xdf,0x08,0x88,0x82,0x15,0x0b,0x97,0xe2,0x01,0x46,0x54,0x7e,0xe0,0x7b,0x6b,0x56,0x20,0xbc,0xec,0xe4,0xd4,0x0a,0x53,0xee,0xed,0x84,0xe5,0xd4,0x77,0x9a,0x1f, + 0x04,0xd8,0x90,0x40,0x0f,0x12,0x30,0xfa,0x80,0xd8,0xd4,0xc9,0x51,0x73,0x92,0x4e,0x9e,0x7b,0x34,0x58,0xf7,0xe5,0x46,0x80,0xab,0x18,0x34,0xe5,0x05,0xa2,0xdc,0xcb,0x26,0xf7,0x14,0x37,0x4c,0x99,0x78,0x43,0x28,0x30,0xb8,0xe1,0xb8,0x27,0x42,0xca,0x86,0x77,0x7f,0x9b,0x8b,0x68,0x6b,0x19,0x24,0xee,0x55,0xe7,0xc5,0x72,0xc2,0xb1,0x19, + 0x04,0xf4,0x48,0x66,0xb8,0xee,0x1b,0x93,0x7d,0x18,0x2f,0xf7,0x9a,0xad,0xe4,0x1b,0x54,0x9b,0x71,0xff,0x1b,0xfa,0x88,0x2a,0x19,0x2e,0xc9,0x0d,0xc8,0x7a,0x51,0x77,0x4d,0x5e,0x33,0x5f,0x19,0x88,0x0e,0x84,0x38,0xb9,0xf2,0x05,0x93,0x26,0x64,0x51,0x2c,0xd6,0xdd,0x53,0xd5,0xa4,0x0a,0x70,0x08,0xfc,0x5c,0x98,0x12,0x4a,0x7d,0x95,0x54, + 0x04,0xfd,0x29,0x8a,0xb9,0x44,0xa0,0x87,0x02,0x81,0x6a,0x73,0x95,0xf8,0x4e,0x45,0xed,0x78,0x29,0x68,0xb7,0x01,0x83,0x8b,0x67,0xfa,0x25,0x28,0x11,0x1c,0xd4,0xf4,0x14,0x85,0x99,0x86,0x7c,0x89,0x17,0x4f,0x00,0xcc,0xf3,0x06,0x27,0x81,0x5e,0x66,0x18,0xbd,0x28,0x45,0xf3,0x58,0x19,0xdb,0x07,0x54,0x18,0x05,0x35,0xbb,0x4d,0x4b,0x2f, + 0x04,0x7b,0x78,0xd5,0x99,0x67,0xed,0x07,0xc8,0x3f,0x0e,0xd7,0xf8,0xf0,0xb2,0x63,0x88,0xdb,0x76,0xb0,0x86,0x3b,0x64,0xac,0x14,0xb7,0xec,0xbe,0xd8,0xe3,0xa1,0xbd,0xa2,0x4b,0x49,0xda,0xe1,0xad,0xf9,0x48,0x86,0x07,0x41,0x37,0x6c,0x91,0x9c,0xfd,0x50,0xff,0xcf,0x74,0x96,0x72,0xf1,0x9f,0x78,0xad,0x56,0x5e,0x88,0xf6,0x09,0x6d,0xf6, + 0x04,0x79,0x1c,0x90,0x17,0xb3,0xa9,0x3c,0xa2,0xf2,0xd0,0x3f,0xcf,0x18,0xb4,0x23,0x03,0x31,0xfd,0xc3,0xde,0x57,0x85,0xe8,0x47,0xc9,0xf5,0x1d,0x22,0xca,0xf5,0x0c,0xdb,0xed,0xc7,0x29,0xc9,0x2f,0x0a,0x88,0x23,0x3a,0x29,0xa2,0x25,0x9e,0x7e,0x62,0x65,0xb9,0x2a,0x14,0x38,0xc0,0xb5,0x95,0x91,0x67,0xfb,0xe2,0xaa,0x4a,0x65,0xa6,0xc0, + 0x04,0x47,0x57,0x86,0xce,0x21,0x5a,0x18,0x73,0xe0,0x4a,0x0c,0x67,0x64,0x2c,0x31,0x9a,0x6d,0x24,0xdf,0xfb,0x06,0xa4,0xcf,0xfb,0xb1,0x5a,0x82,0x56,0xd2,0xc8,0x11,0xec,0x5a,0x1b,0xba,0x7f,0x66,0x1e,0x38,0xd6,0x94,0xd9,0xa1,0x15,0x64,0xb5,0x11,0xaf,0x6c,0x66,0x32,0xa5,0xef,0xc9,0x33,0x73,0x26,0x42,0xdd,0x5c,0x49,0x28,0xa4,0x1b, + 0x04,0x75,0x9a,0xe7,0x72,0x33,0xb1,0x19,0xfb,0x37,0x89,0x05,0x97,0x60,0x11,0x2f,0x38,0xe8,0xd9,0xe6,0x9f,0x43,0x1c,0xf0,0xe8,0xf0,0xbb,0xe6,0xa0,0x6e,0x23,0xbc,0x5b,0x18,0xd6,0x9b,0x80,0x98,0x0f,0x53,0xb7,0xe8,0xc7,0x6c,0x9b,0x82,0xdc,0x61,0xf0,0x5c,0xdc,0x03,0x82,0x6c,0x2c,0x96,0x37,0xcc,0x02,0xaf,0x2a,0x6d,0xb0,0xe4,0xfa, + 0x04,0x3a,0xf2,0xb8,0x62,0x9a,0x34,0x75,0x29,0x4e,0xe0,0xd5,0x43,0x73,0x21,0xfc,0xd5,0xfa,0x45,0x54,0xc7,0x80,0xb6,0xb1,0x8b,0x86,0x24,0x2d,0x3e,0xdf,0x36,0xf5,0x51,0xed,0xe3,0x7c,0x4e,0xa3,0x19,0xd4,0x2f,0x8f,0xc3,0xcf,0x97,0xcf,0xe7,0xdd,0x17,0xe8,0x5b,0xa6,0xe1,0x1b,0xa2,0x60,0xed,0x99,0x1c,0x22,0xee,0x89,0x1a,0xbc,0x2b, + 0x04,0xca,0x2d,0xf3,0xb3,0xd7,0xd9,0x58,0xb0,0xd4,0x6e,0xd6,0xe0,0xff,0xe3,0xb7,0x48,0x8f,0x2e,0x13,0x66,0x09,0x51,0xeb,0x82,0x1c,0x24,0x24,0x6d,0x6c,0x7f,0x2e,0xc2,0x05,0x5e,0x78,0x0e,0x6a,0x53,0x4f,0x9f,0xf4,0x69,0xb0,0xba,0x3c,0x8d,0x38,0x96,0x2a,0xc0,0xac,0xdc,0x7b,0x4b,0x3d,0xc0,0x57,0xc0,0x7e,0xad,0x3f,0x4b,0x7a,0xa0, + 0x04,0xef,0x17,0xac,0x08,0x4a,0xba,0xd1,0x24,0x96,0xdf,0x80,0xd8,0x0d,0xbe,0x21,0xdf,0xad,0xe5,0x8e,0x30,0x2a,0xc0,0x39,0x80,0x02,0xc5,0x34,0x9d,0x85,0x25,0x28,0xcc,0xef,0x34,0x50,0x02,0x66,0xa5,0xdd,0x3f,0xb4,0x54,0x82,0x8e,0xd8,0x56,0x84,0xa6,0x2e,0x6e,0xb1,0x42,0xf6,0x5f,0x54,0x97,0xe6,0x4d,0x23,0x14,0x8f,0x75,0x79,0x76, + 0x04,0x62,0x4c,0xf7,0x45,0x9a,0x3e,0x09,0x7f,0x11,0x43,0x83,0xa1,0x25,0xc7,0xcd,0xec,0x33,0xb9,0x47,0xc5,0xbc,0x0a,0x26,0x79,0xd7,0xaa,0xe5,0x08,0xb5,0xd4,0x64,0x79,0x40,0x8c,0xac,0x79,0x1f,0x2e,0xd7,0x1d,0x9b,0xd5,0x94,0xbd,0x66,0xf6,0xce,0x70,0xd9,0x28,0xd3,0xb2,0x0f,0xe0,0x2b,0x5b,0x66,0xcf,0x74,0x3b,0x51,0x73,0x9a,0x74, + 0x04,0xe4,0x1e,0xc5,0x56,0xbb,0x3f,0x85,0xce,0xf6,0x65,0x1a,0x2d,0xb1,0x81,0x6d,0xab,0x3b,0xc8,0x28,0x98,0x87,0x14,0x82,0xdb,0xf1,0xcc,0x80,0x14,0x07,0xce,0x4d,0x1d,0xed,0xea,0xfe,0x8c,0x33,0x72,0x12,0x50,0xbf,0x75,0xcd,0xb9,0x18,0x1e,0x99,0x04,0x92,0xd3,0x70,0x80,0xe7,0xda,0xb4,0x1d,0xa1,0x67,0x3d,0x62,0xa8,0xb8,0x35,0xdf, + 0x04,0xb5,0xc3,0xcb,0x14,0x6d,0x30,0xfe,0xcf,0xd7,0xfe,0xd0,0x09,0x3d,0xcb,0xa0,0x18,0x46,0xa2,0x8a,0xa5,0x0c,0x7f,0xe3,0xc0,0xcf,0x4b,0x8c,0x5a,0xa8,0x37,0xd5,0xb0,0xb2,0x1b,0x76,0x05,0xca,0xdb,0xc7,0xb6,0x20,0x6e,0x5d,0xd4,0x28,0x9e,0x1d,0xe9,0xcc,0x36,0xbc,0x98,0x09,0x4f,0xb1,0x82,0x23,0xbe,0x63,0x6e,0x6d,0x36,0xe0,0xfa, + 0x04,0xb3,0xc6,0x28,0x48,0xbe,0xb0,0x63,0xfc,0x8f,0x28,0x5c,0x0d,0xa7,0x20,0x7e,0x70,0x7c,0x71,0x46,0x0b,0x8f,0x79,0x2a,0xe0,0x89,0x0f,0x23,0x62,0xfc,0x8f,0x02,0x10,0x9c,0xf8,0x0c,0x0e,0x0d,0x75,0xd2,0xf5,0x4a,0x6b,0xff,0xe3,0xfe,0xf3,0x94,0x41,0xed,0x0c,0xbf,0x29,0xc8,0x39,0x7b,0x76,0xa8,0x24,0xff,0x9e,0xcf,0x4c,0x77,0x2b, + 0x04,0x07,0xad,0x8c,0xd0,0x55,0x52,0x8f,0xeb,0x4b,0x3a,0x53,0xd3,0x54,0xc7,0xc7,0xcc,0x06,0x16,0xca,0x3f,0xf7,0x87,0xbb,0xb0,0xbf,0x79,0x90,0x96,0x06,0xd2,0x7e,0x8a,0x70,0xb4,0xd2,0x71,0xeb,0xd8,0x36,0x3d,0x9a,0xd9,0x10,0xcf,0x4d,0x84,0xe5,0x21,0x71,0xb5,0xb3,0x59,0x79,0x2f,0x7f,0xf8,0xa8,0x9c,0x44,0x27,0xfb,0x6a,0xfa,0x21, + 0x04,0x7c,0x66,0xfd,0x67,0xb7,0x9f,0x88,0x53,0x1a,0x07,0x47,0x28,0x87,0x26,0xdb,0xeb,0x29,0x9d,0xd8,0xe1,0x15,0x96,0x12,0xbf,0xf2,0xd9,0x79,0xfe,0x4b,0xd1,0x06,0x0c,0x15,0xc5,0x4c,0x5c,0xf4,0x0b,0x7a,0x6b,0x36,0xf4,0x40,0x0b,0xdb,0xaa,0x2b,0x6d,0xd0,0x66,0x9c,0x3b,0x45,0xa5,0x59,0x25,0x63,0x52,0x87,0x11,0x6a,0xaa,0xff,0x1c, + 0x04,0x94,0x06,0x46,0x98,0x28,0x0e,0x7e,0xb6,0xe1,0x4d,0xd8,0x1e,0xfa,0x9f,0x0a,0xb5,0x27,0xfe,0x6c,0xee,0xde,0xd6,0x0c,0xd4,0xd4,0x22,0x16,0x2c,0x39,0x7d,0x5b,0xad,0x16,0x3a,0x63,0x34,0x2b,0x44,0x62,0x9e,0x57,0xc0,0x9b,0xb4,0x90,0x11,0x8b,0x1d,0xaf,0x06,0xbc,0x0b,0xd1,0xde,0x48,0xa9,0x8e,0xa7,0xac,0x3e,0x89,0x3e,0x44,0x70, + 0x04,0xb4,0x54,0x03,0x93,0x84,0xab,0xb1,0x91,0xe5,0x93,0x46,0x39,0x76,0xde,0xa9,0x37,0x42,0x8b,0x76,0xa2,0xf2,0x1f,0x85,0x53,0xa9,0x94,0xe0,0xe2,0x3a,0x0d,0xe3,0x28,0x28,0x88,0xd4,0xe2,0x2e,0xaa,0x98,0x6d,0xfc,0xd2,0x0e,0x5a,0x4c,0x96,0x66,0xa2,0xa3,0x41,0xea,0xad,0xcd,0xf8,0x6b,0x6e,0x13,0x76,0x60,0xc9,0x55,0x61,0x56,0x6f, + 0x04,0xd4,0x3b,0x70,0x4b,0xcd,0xa6,0xed,0x2c,0xd8,0xca,0xcd,0x64,0xa6,0x71,0x91,0xda,0x2f,0x68,0xf2,0x5a,0x6a,0x98,0x3d,0xd7,0x90,0x10,0xb1,0x06,0x69,0x42,0x73,0x0f,0x2e,0xaa,0x0d,0x09,0x33,0xf7,0x10,0x91,0x7e,0x32,0x23,0xf2,0xfe,0xb2,0x33,0x88,0xad,0xd3,0xfe,0xd3,0xa2,0xa7,0xde,0x18,0xaf,0x50,0x80,0x3b,0x0b,0x20,0xd6,0xc9, + 0x04,0x9e,0xa3,0xdb,0x44,0xd3,0xc1,0xe0,0x97,0x15,0xec,0x33,0x0d,0x36,0x07,0xa0,0x6c,0xfd,0xc1,0xb0,0xba,0xf4,0xf5,0x70,0xfb,0xad,0x15,0xd6,0x3e,0x1a,0x8d,0x19,0x0b,0xda,0xe7,0x8a,0x1a,0x46,0xed,0x6f,0xda,0xa0,0x2e,0xa2,0x78,0x5c,0x2b,0xad,0x33,0xaa,0xce,0x95,0x39,0x7b,0x29,0x0e,0xb7,0xc2,0x64,0x28,0xef,0x68,0x49,0x4a,0xbf, + 0x04,0xe4,0xcb,0x3b,0x67,0xd6,0x21,0x08,0x68,0x7c,0x74,0xb3,0x6a,0x08,0x1c,0x3a,0xdb,0x9f,0xc4,0xe1,0x88,0xb5,0xe6,0x11,0x72,0x73,0x12,0xb7,0x08,0x86,0xe8,0x1a,0x79,0x5e,0xdb,0xa4,0xdf,0x71,0xb9,0xc4,0xb0,0x6f,0x7b,0x05,0x2b,0x5b,0x48,0xd9,0xe0,0xbe,0x85,0x5f,0xfc,0xc2,0xf2,0x79,0x26,0x52,0x4c,0xb2,0x2f,0xfb,0xb9,0xe8,0x65, + 0x04,0x6e,0x83,0x3d,0xc7,0x86,0x03,0x9c,0xb0,0x81,0xca,0x12,0x03,0x4a,0xdf,0xae,0x41,0xe3,0x45,0x4c,0xad,0x09,0x76,0xa0,0x96,0x12,0xf1,0xaf,0x4c,0x39,0x0d,0x58,0x9f,0x16,0xf4,0x99,0xbb,0x67,0x9c,0xe6,0x3d,0x15,0xbd,0x4b,0x82,0x13,0x92,0xe6,0xc3,0xde,0xb9,0xac,0x21,0x63,0xd0,0x21,0x1a,0x68,0xa6,0x16,0x7b,0xcb,0x5d,0xd0,0xe2, + 0x04,0x93,0xb0,0xcf,0x66,0xe6,0xc5,0x1e,0xc9,0xf5,0xb0,0x25,0x89,0x60,0x74,0x43,0xba,0xb7,0xb9,0x7b,0x18,0xf3,0xdd,0x2c,0x9c,0xc8,0x31,0xc0,0xa3,0x56,0xb6,0x0c,0x21,0xf9,0x60,0xbe,0xbf,0x79,0xb0,0xc2,0x95,0x79,0x42,0x37,0xc6,0x05,0x76,0xd6,0xa7,0x4e,0x5f,0x69,0x4d,0x9f,0xcc,0xdc,0x2c,0x4a,0x46,0x9e,0x00,0xb1,0x81,0x15,0xac, + 0x04,0x67,0xf4,0xd7,0xcf,0x5b,0x85,0x74,0xfa,0x36,0xec,0x8d,0x3d,0x4c,0xaa,0x36,0x9e,0xfe,0x05,0x21,0xff,0x9e,0x25,0x76,0x0c,0xf9,0x98,0x94,0xc6,0x4f,0x06,0x4c,0xa3,0x4d,0xb1,0x59,0x7f,0xbd,0x96,0xd7,0xb7,0xe3,0x19,0x23,0x6e,0x06,0x60,0xb0,0x58,0x00,0xed,0x99,0x09,0x9c,0x8c,0x10,0x22,0xd5,0x5b,0xe3,0xa8,0xfd,0x23,0x1e,0x96, + 0x04,0x43,0x96,0x38,0xad,0xcd,0xa8,0x70,0x13,0x74,0x36,0xee,0xb0,0x9e,0x27,0xc3,0x26,0x37,0x30,0x79,0x21,0x97,0x4b,0x64,0xb9,0xf7,0x3e,0x26,0x6d,0x8e,0x95,0x39,0x30,0x94,0xcf,0xcf,0x35,0x0b,0x98,0x28,0x24,0x37,0x97,0x4d,0xb3,0xe4,0x02,0xfd,0x86,0xe3,0xeb,0xdd,0xdc,0x5e,0x23,0xfc,0xd0,0x73,0x03,0xa0,0xa5,0xcf,0x28,0x2b,0xa4, + 0x04,0xbf,0x32,0x69,0x3d,0xd7,0x7e,0x18,0x2d,0x8b,0x26,0x50,0x38,0x28,0x32,0xf3,0x7f,0x67,0x70,0x09,0x01,0x32,0xaa,0x77,0xa7,0xeb,0xc1,0x82,0x15,0xe0,0x0c,0x44,0xc0,0x46,0x42,0xea,0x34,0x61,0xff,0x10,0xe2,0xe1,0x80,0x0d,0xc3,0x92,0x73,0x8d,0x7d,0x01,0x17,0x46,0x79,0xc9,0xd2,0xe3,0x82,0xa8,0x0e,0xd4,0x96,0x1f,0xe4,0x8b,0x6b, + 0x04,0xd2,0x0a,0x02,0xa6,0xd0,0x42,0x48,0x20,0xf7,0xc2,0xed,0x6a,0xfd,0x1b,0x7c,0x14,0x9f,0x67,0x62,0xbf,0x8c,0xe4,0xdb,0xa5,0x0d,0xed,0x97,0x92,0x36,0x8d,0xce,0xac,0xc5,0x74,0xcc,0x62,0x98,0xfa,0x1d,0x96,0xed,0xd1,0x78,0x30,0x9f,0x75,0x08,0xce,0x8a,0xab,0xf6,0x9f,0xc0,0xc4,0x9b,0x85,0x29,0x9b,0xaf,0x91,0x23,0x9e,0x66,0x65, + 0x04,0xaf,0xd3,0x21,0xe9,0xff,0x7b,0x24,0xd8,0x56,0xbf,0x14,0xbb,0xc5,0xaf,0xef,0x19,0x52,0x74,0x48,0x67,0xca,0xe4,0xa9,0xf3,0xe3,0x8f,0x66,0x73,0xda,0x90,0x8a,0xed,0x71,0x49,0x66,0xdf,0xee,0x5a,0xf5,0xb7,0xdd,0xfc,0x17,0x79,0xdb,0x74,0x98,0x7e,0x9e,0x87,0xf5,0x32,0xbe,0xa7,0x6a,0x2c,0xbe,0xd7,0x17,0xa3,0x6c,0x91,0x00,0xe7, + 0x04,0xcf,0xd6,0xd8,0x41,0x13,0xfc,0x92,0x0b,0x44,0xbf,0x6d,0x67,0xcb,0x84,0x16,0x91,0xdb,0xae,0x07,0xbd,0x67,0x32,0xe5,0xde,0xc0,0x45,0xe6,0x0d,0x90,0xb9,0x8f,0x71,0x10,0xcb,0xf8,0xc9,0xff,0xae,0xf3,0x6f,0x3d,0x53,0x13,0x2b,0x1c,0x10,0xdb,0x56,0x72,0xac,0xd5,0xdf,0x5b,0x87,0xcb,0x98,0xd1,0x9d,0xaf,0x87,0xb0,0xde,0x35,0x73, + 0x04,0xf0,0x96,0x16,0x82,0x7b,0x93,0xb6,0x01,0x7d,0x77,0x0c,0x75,0xe3,0x5b,0x01,0x62,0xc5,0x45,0x5c,0xe2,0x38,0x0e,0xf2,0xfe,0xc5,0x4e,0x33,0x6d,0xfe,0x94,0xcb,0xbc,0xf3,0xd0,0x1b,0x7b,0x10,0x2b,0xec,0x4f,0xf0,0x24,0x5d,0xb8,0xc9,0x43,0xc6,0x8c,0x23,0xcf,0x11,0x72,0xc6,0x55,0x44,0xaa,0x11,0x74,0xe4,0x4c,0xd5,0x24,0xf0,0x49, + 0x04,0xbf,0xeb,0x62,0xd5,0xcd,0xb7,0x33,0x3e,0x09,0x76,0xfa,0xd3,0xa2,0x59,0xdd,0xb9,0xcb,0x52,0x5a,0xee,0xe6,0x83,0x27,0x65,0x7a,0xed,0x59,0x28,0x53,0x52,0xf3,0x47,0x6e,0x88,0xbc,0x97,0x99,0xdf,0x4d,0x0c,0x14,0x2b,0xc6,0x32,0xc8,0x1d,0x40,0x48,0x6f,0xe2,0x37,0x63,0x92,0xe0,0x18,0x0a,0xf9,0x3d,0xeb,0xcb,0x82,0xc6,0x39,0xcd, + 0x04,0x6d,0x86,0x4a,0x7c,0xb7,0xf8,0xe3,0xa1,0xfe,0x1c,0x80,0x94,0xe3,0x85,0x2f,0x8f,0x43,0xcc,0x4c,0xa6,0xa9,0x03,0x95,0x12,0xb2,0xad,0xe5,0xf0,0x40,0xe3,0xb4,0x23,0x7c,0x90,0x8e,0xc1,0xcb,0x9f,0xbc,0x1f,0x6d,0x49,0x46,0x0a,0xc1,0x9f,0x2d,0x45,0x26,0xf6,0x6e,0x00,0xdb,0x60,0xd2,0x07,0x40,0x8b,0xd4,0x6c,0x95,0xbf,0xff,0xf0, + 0x04,0xfe,0xb6,0x8f,0x41,0xe8,0x06,0xa2,0x39,0xf6,0x24,0x45,0xd2,0x3d,0x1b,0x92,0x59,0x78,0xa9,0xb6,0x96,0xd6,0xf0,0xca,0xa9,0xdc,0x29,0xf4,0x05,0x39,0xb0,0x73,0xcc,0x2c,0x90,0x2a,0xff,0xb2,0x00,0x66,0xd2,0xc2,0xc9,0x20,0xce,0xb8,0xa4,0x53,0xe4,0x2c,0xd2,0x45,0x49,0x88,0xc3,0x32,0xcf,0x0d,0xb9,0x07,0xbb,0x4f,0xe9,0x59,0x43, + 0x04,0x57,0xd0,0x4c,0x65,0x33,0x25,0xa6,0xcb,0x99,0x8f,0x61,0xce,0x34,0x71,0x09,0xec,0xa0,0xef,0xff,0x9a,0x16,0xa7,0x34,0x13,0x4a,0x69,0xcd,0x1e,0x0b,0x08,0x1a,0xce,0xb4,0x3a,0xea,0x4f,0x71,0xb1,0xf2,0x80,0x2f,0xbe,0x41,0x07,0xd0,0xbf,0xb9,0xf6,0xfb,0xbd,0xa4,0x64,0x50,0x1b,0x87,0xff,0x73,0xc4,0x71,0x03,0xe3,0x72,0xf6,0x35, + 0x04,0x60,0x5f,0xd3,0x3a,0x42,0xd9,0x21,0xe0,0x1e,0xe7,0xf7,0x58,0x06,0x10,0x6d,0xe7,0x2c,0xb5,0x03,0x9f,0x65,0xff,0x31,0xd6,0xca,0x2e,0x1e,0xfd,0x6a,0xa8,0x1a,0x1c,0x95,0x78,0x9f,0x09,0x23,0xd7,0x05,0xfd,0x19,0xd5,0xa8,0xae,0x18,0xb6,0x66,0x87,0xcb,0x29,0x09,0x1e,0x17,0x94,0x4b,0x37,0xd2,0x7f,0x39,0x8b,0xd5,0x54,0x6b,0xdb, + 0x04,0x30,0x3c,0xe8,0x96,0xaa,0x57,0x0c,0xf8,0xf9,0x79,0x54,0xba,0x48,0xfc,0xc2,0x5f,0x5f,0x25,0x28,0x67,0xf0,0x1a,0x9b,0x9e,0xde,0xce,0xaa,0x6b,0xfc,0xce,0xdf,0x56,0x11,0x34,0xd6,0x29,0x0e,0x16,0x49,0xbb,0x02,0x8a,0x16,0xc6,0xf5,0x4e,0xb0,0x6c,0x7e,0x72,0x4a,0x94,0x7a,0x62,0x48,0x27,0x4a,0x4b,0xf6,0xa6,0xaa,0x13,0x90,0x96, + 0x04,0x1c,0x2c,0xa6,0x73,0x11,0xdc,0x5c,0x45,0x4d,0xc8,0x30,0x38,0x6b,0x79,0x97,0xe5,0x0b,0xc6,0x7e,0x3d,0x5f,0xf5,0x22,0xd3,0xe8,0xa3,0x9f,0x14,0x49,0x98,0xf8,0x84,0x86,0x2c,0x97,0x5f,0x54,0x8a,0x5f,0x55,0xdd,0x85,0x04,0xda,0xb5,0xc9,0xe8,0x8f,0x0e,0xd3,0x12,0x36,0x88,0xd4,0x75,0xb2,0x11,0xda,0x5a,0x4d,0x69,0x20,0xdd,0x63, + 0x04,0x56,0x33,0xcb,0xcf,0xdf,0x74,0x32,0x7d,0xe0,0x88,0x3f,0x59,0xe1,0x78,0x8e,0xed,0x76,0xbb,0x0b,0x9e,0x0f,0x9e,0x55,0xe2,0x76,0x9e,0xc9,0xaa,0x36,0x5a,0x30,0xe1,0xd9,0x13,0xbd,0x53,0x1f,0x4a,0x61,0xc2,0xd0,0x7b,0x84,0x7d,0x31,0x8e,0xe9,0x64,0x82,0xd2,0xf8,0xfa,0x7a,0x12,0xaa,0xb3,0xb3,0x03,0xc1,0x08,0x51,0xce,0x7f,0xcd, + 0x04,0x19,0xd5,0x3e,0x44,0xb0,0x58,0xc3,0x17,0xfb,0xed,0xbf,0x10,0x6c,0x98,0xf3,0x18,0x32,0xcd,0xfb,0x84,0xf2,0x1a,0xdd,0x75,0x3c,0xf2,0x13,0xba,0x5d,0xe9,0x02,0x6a,0x61,0x4c,0xf7,0xb7,0xb6,0x0e,0x75,0x9a,0x15,0xa6,0xc7,0xd8,0x64,0xed,0xde,0xc6,0xdc,0x25,0x35,0x19,0x97,0x5d,0xf7,0xf3,0xe9,0xbc,0x0c,0x77,0xfd,0x80,0xe5,0x10, + 0x04,0x1c,0x96,0xcc,0x2b,0x22,0xe5,0xbd,0xb1,0x95,0xb2,0xa4,0x71,0x87,0xfa,0xd5,0xee,0x67,0x36,0xbd,0x96,0xdc,0xef,0xef,0x20,0x25,0x9a,0x55,0x1e,0x98,0x47,0xb5,0xe0,0xc5,0xab,0x05,0x2c,0x88,0x36,0xe4,0xf7,0xcc,0x7b,0x65,0x54,0x57,0x75,0xd5,0x5b,0x0c,0x7b,0x0c,0x7f,0x83,0x0c,0x65,0x39,0x91,0x5c,0xb6,0x24,0xa5,0x07,0xdb,0xfe, + 0x04,0x73,0x32,0x42,0xcc,0x4a,0xfb,0x82,0x27,0x10,0x34,0x11,0x1b,0x81,0x30,0x9e,0x15,0x6a,0xe4,0x46,0x6e,0x7f,0x2f,0xc5,0xfc,0x10,0x42,0xf4,0xf6,0xe3,0xc4,0x4f,0x43,0x5c,0x6f,0x61,0x4d,0x4b,0xe1,0x8a,0x73,0x17,0x0c,0x85,0xa6,0xb6,0x8a,0x96,0x14,0x05,0x29,0x34,0xe1,0xd6,0x12,0x46,0x6d,0xd4,0x92,0x19,0x89,0x47,0x4f,0xf5,0x13, + 0x04,0x1a,0x24,0xb6,0x52,0x0a,0xf4,0xf0,0x28,0x82,0x4b,0xee,0xce,0x59,0xb6,0x03,0xd1,0x5d,0x6d,0x15,0xcd,0xe0,0x71,0x9a,0xd2,0xf7,0xb8,0xe3,0xfc,0xb6,0xc1,0x34,0x2c,0x7e,0xd7,0x02,0xa3,0x0e,0x87,0x5b,0x24,0x36,0xdb,0x2f,0x2d,0x36,0x87,0xd9,0x58,0x0d,0x3b,0xd7,0xb3,0xf8,0xd1,0x28,0x0a,0x81,0x07,0x1f,0x3c,0xcd,0x6b,0x40,0x7d, + 0x04,0x4a,0xde,0x6f,0xa1,0x3e,0x59,0x11,0x7e,0x05,0x4a,0xc1,0xbc,0xa3,0xca,0x52,0xf4,0x14,0x03,0x54,0x93,0xac,0x2e,0xe7,0xb1,0xa8,0x11,0xf1,0xfb,0x52,0x52,0x1e,0x81,0x16,0xad,0x61,0x2c,0xd7,0xab,0x0c,0x21,0xef,0x78,0x93,0x89,0x45,0xd8,0x70,0xda,0xc8,0x27,0xbe,0xcb,0x5b,0x87,0x3c,0x84,0x22,0x5c,0x4a,0xef,0x15,0x9e,0xe4,0xbb, + 0x04,0x34,0xb2,0xac,0x5a,0x3e,0x49,0x16,0xd0,0x81,0xd1,0xed,0x40,0x4b,0x5b,0xcc,0xfe,0x07,0x6a,0xa7,0xf4,0x1e,0x29,0xd0,0x36,0x23,0x90,0xf7,0xf0,0x84,0x58,0xb4,0x4c,0x25,0x98,0x7b,0x7f,0x7a,0x21,0x43,0x23,0x76,0x3e,0x1a,0xa1,0x04,0x4a,0x87,0x79,0xbb,0xff,0xc5,0xe2,0x2b,0xe6,0x28,0x13,0x8a,0x1d,0x80,0x26,0x83,0x64,0x69,0x8e, + 0x04,0x58,0xc2,0x5f,0x40,0x47,0x78,0x2b,0x81,0x5b,0x41,0x00,0x1d,0xea,0x63,0x6c,0x86,0xef,0x19,0xd6,0x7e,0xc0,0x56,0x32,0x41,0x27,0x22,0x5a,0xaf,0x6f,0xf1,0x08,0x32,0x76,0x13,0x25,0xc4,0xa7,0x03,0x07,0xdc,0xeb,0x9b,0xf4,0x51,0xc7,0x40,0x5e,0x42,0x58,0x08,0x68,0xe6,0x65,0xf3,0xf2,0x59,0x99,0x5f,0x8c,0x35,0x8e,0xb0,0x79,0x9d, + 0x04,0xe3,0xd0,0x5f,0x1a,0xff,0x72,0xac,0xff,0x70,0xe4,0xd5,0x1b,0x42,0x07,0x88,0x0e,0xc0,0x6b,0x4c,0x26,0x9d,0xb0,0x27,0x53,0xd6,0xd8,0x58,0xaa,0x5e,0x6d,0x56,0x1e,0x7c,0x75,0x6f,0x6b,0x0c,0xd1,0x06,0xbb,0x73,0x2e,0x5f,0x20,0xc9,0x1d,0xdd,0xe4,0xf2,0x4a,0x36,0x99,0xdf,0x11,0x25,0x20,0x6f,0xcc,0x47,0x44,0x9a,0xbb,0x7d,0x1e, + 0x04,0x75,0x63,0x8c,0xa9,0xef,0x9f,0xa2,0x52,0x42,0x9d,0x21,0x24,0x3c,0x77,0x8b,0xe3,0x55,0xbd,0x13,0x0c,0x1e,0xf6,0x26,0x59,0x3c,0xa0,0xc2,0x44,0xcf,0x2b,0x6e,0xf2,0x53,0xb8,0x87,0x66,0x23,0x0c,0xe8,0xde,0xd7,0x90,0x09,0x56,0xa5,0x29,0x1a,0x69,0x67,0xc2,0xa5,0x42,0x79,0x84,0x4c,0xb0,0x7d,0x7c,0x58,0x5d,0x87,0xd4,0x06,0x61, + 0x04,0x44,0x68,0x2e,0x43,0x74,0x48,0x73,0x0f,0x59,0x4a,0x82,0x0e,0xad,0x23,0x2c,0x44,0x43,0xf7,0xe7,0x84,0x37,0x0b,0xfb,0x03,0x13,0x04,0xb8,0x51,0x99,0xc4,0x15,0x9f,0x71,0x51,0xec,0xea,0xa0,0xa6,0x98,0xd1,0x57,0x85,0xcc,0x7a,0x2e,0x81,0x2a,0xed,0xa1,0x2f,0x9b,0xa4,0x23,0x8a,0x7f,0x5e,0x76,0xe9,0x30,0xf3,0x90,0x50,0x15,0xaa, + 0x04,0xc9,0x8b,0x01,0xfe,0x92,0xfe,0xae,0x44,0x1d,0x9f,0x4d,0xe5,0x0d,0x4d,0xfb,0xe9,0x78,0x97,0x11,0xd9,0x11,0xbe,0x6e,0xf7,0xcd,0x9c,0x55,0xf4,0xb3,0xe8,0xca,0xbd,0xd9,0xe3,0xaa,0xf1,0x66,0x05,0xb0,0xab,0x50,0x63,0x2d,0xf6,0xc0,0x0e,0xc8,0x55,0x4f,0x36,0xec,0xf4,0x27,0xd3,0x1d,0xf9,0x30,0xd4,0x45,0x8f,0xe1,0xcb,0xaf,0x11, + 0x04,0x91,0x73,0xae,0x01,0x4b,0x64,0x57,0x24,0x58,0x7e,0xe2,0x6e,0x17,0xbf,0xeb,0x61,0xf9,0x12,0x53,0xfe,0x86,0x53,0xda,0xfb,0xda,0x43,0x81,0xda,0x9f,0xa5,0x7e,0x98,0x15,0xa9,0x16,0x6e,0x1d,0xfc,0x2a,0x81,0xcb,0xe1,0x26,0xa2,0x59,0x4e,0x51,0xfb,0x98,0xfb,0xee,0x7b,0x3d,0x65,0x88,0xad,0x86,0xa8,0x64,0x31,0x14,0x14,0x44,0xf4, + 0x04,0xe4,0x10,0x2f,0x16,0xfa,0x7f,0x38,0x6e,0x91,0x2d,0x3a,0x7f,0x77,0xdc,0xc7,0xdc,0x9f,0x8a,0xf5,0x4c,0xae,0x11,0x7d,0xdb,0xa1,0x0a,0x3d,0x09,0x62,0x0e,0xff,0x8c,0x68,0x9c,0x20,0xe1,0x2c,0xe8,0xf7,0x84,0x12,0x94,0x5e,0x1d,0x3a,0xcb,0xf9,0x93,0x5e,0x46,0x53,0xfb,0x0d,0xce,0x02,0xb1,0x4a,0x7d,0x52,0x6a,0x11,0x4f,0x13,0x87, + 0x04,0x7a,0xa6,0x7d,0x00,0x33,0x22,0x6f,0xb2,0xb1,0xbf,0x97,0x5d,0x45,0x68,0xe1,0xf2,0x29,0x9e,0x82,0xf2,0xe4,0x59,0xff,0x0b,0x6e,0xe3,0xc0,0xc5,0x7d,0xbd,0x40,0x41,0x7c,0x20,0x63,0x46,0x44,0x99,0x3b,0xd8,0x4a,0xa3,0x61,0x03,0x7c,0xe8,0xbf,0x3f,0xb7,0x22,0x86,0xdf,0xdf,0x44,0x82,0x45,0x8b,0x07,0x6a,0x7a,0x5f,0x46,0xd1,0xdd, + 0x04,0x80,0x69,0x4b,0xa7,0xd6,0xad,0x6e,0xfa,0x8a,0xd5,0xce,0x04,0x35,0xa1,0xbd,0x22,0x5e,0x02,0x88,0xb6,0xfc,0x22,0xa1,0x1e,0x70,0x13,0xaa,0x0d,0x4e,0x9a,0x49,0x6b,0x31,0x6d,0x67,0xd1,0xc7,0x0e,0x6c,0x13,0x04,0x20,0xf5,0x7c,0xb6,0xe0,0xd6,0x0c,0xda,0x15,0x4c,0x73,0x7f,0x01,0x18,0x00,0x7c,0xfe,0xa5,0xc2,0xd5,0xb4,0xe3,0x97, + 0x04,0x06,0xc6,0x69,0x70,0xe5,0x39,0xd9,0xae,0x0f,0x8f,0x67,0xa7,0x2f,0x42,0x6c,0x10,0x0b,0x3b,0x2c,0xf2,0xe2,0x76,0xe9,0xb0,0xae,0xa7,0x5b,0x4e,0xfc,0x98,0x83,0x25,0x24,0xee,0xab,0x2b,0x41,0x3b,0xa1,0x7d,0xb8,0x11,0xf7,0x40,0xf9,0xfb,0x9f,0xc3,0xc7,0x3b,0x5c,0xe5,0x1f,0x1e,0x74,0xe7,0xe0,0x8b,0xcd,0x8a,0xb4,0x8d,0xae,0x83, + 0x04,0x41,0x27,0x7a,0x6f,0x20,0xd8,0x55,0xaf,0x6a,0xce,0xc5,0x3e,0x99,0x23,0x21,0x6d,0x74,0xee,0x2a,0xed,0x18,0xa4,0x14,0x05,0x91,0xeb,0xbb,0x0b,0x34,0x55,0x07,0x26,0x69,0xbc,0x7f,0x19,0xd6,0x46,0x47,0xe7,0x4f,0xf0,0x0d,0x0c,0x89,0xbb,0xfe,0x50,0x8e,0x32,0x2b,0x43,0x97,0xdd,0xb8,0x56,0x4e,0xd2,0x83,0x2e,0xaa,0x5b,0x2d,0x92, + 0x04,0x14,0x6d,0xee,0x2b,0xca,0xa5,0xcc,0x08,0x17,0xfe,0x19,0x1b,0x6d,0x10,0xde,0xf6,0x25,0x9d,0xf7,0x44,0xaf,0xdc,0x9e,0x5b,0x0d,0xde,0x52,0x3b,0x34,0x8a,0xaa,0xb4,0x45,0xb1,0x54,0x6f,0x79,0xb7,0xa6,0xaa,0xdf,0xa5,0x47,0xbf,0xa4,0x16,0xf6,0x2b,0x54,0xf7,0xa4,0x76,0xd6,0xd8,0x88,0x05,0x6b,0x9c,0x05,0xc7,0x2e,0x01,0x39,0xf1, + 0x04,0xc4,0x8e,0xe9,0x0f,0x8f,0xe8,0x00,0x66,0x40,0x86,0xed,0x5b,0xa1,0x29,0x30,0xca,0xcd,0xfa,0x17,0x5a,0x67,0xa2,0xc4,0x39,0x81,0x68,0xf6,0x26,0x69,0x9d,0xeb,0x8d,0xd7,0x8c,0x35,0xa4,0x80,0x42,0xaa,0xfb,0xc6,0xc7,0xca,0xf3,0xa6,0x83,0x85,0xdd,0xb5,0xd4,0x06,0xac,0xee,0x86,0xd9,0x64,0x03,0xe7,0x5b,0xaf,0xfe,0xce,0x00,0xe3, + 0x04,0x73,0x7d,0x92,0xf5,0xda,0xd5,0x1d,0x58,0x26,0x1a,0x77,0xe7,0x55,0x67,0x8a,0xb0,0x2b,0x10,0x79,0x12,0x04,0x1c,0x5d,0x29,0x5f,0x58,0x29,0xcb,0xd1,0x0c,0xd8,0xc5,0x9b,0x55,0xdd,0x08,0x4f,0x84,0x93,0x7c,0x27,0x56,0x5a,0x90,0x75,0xfe,0x10,0x87,0x45,0xe1,0x70,0x01,0x66,0x67,0x43,0xdb,0x55,0x14,0x36,0xe6,0x91,0xea,0x81,0x8d, + 0x04,0x59,0xef,0xed,0x74,0x73,0x03,0x89,0x1b,0xaa,0xb0,0xe1,0xdf,0xdc,0x32,0xd6,0x99,0x06,0xe0,0xfc,0x68,0x15,0xb0,0x56,0xda,0xe0,0xed,0xa2,0x08,0x09,0x57,0xa3,0xeb,0xf2,0x05,0xfd,0x29,0x9c,0x63,0xe5,0x49,0xd2,0x4c,0x15,0x39,0x35,0xd9,0x50,0x14,0x1c,0x3d,0xc2,0x69,0x9a,0xfe,0x87,0x31,0xa4,0x63,0x04,0xe2,0x03,0xca,0xc1,0x5d, + 0x04,0x8e,0xf9,0xa7,0x99,0x7b,0x71,0x7f,0xdb,0xc5,0xd2,0xa7,0xf9,0xa6,0x7f,0x70,0x5e,0x5d,0xee,0x4c,0x82,0xca,0x38,0x3b,0x7e,0xe2,0xd0,0x7c,0x24,0x85,0x03,0x96,0xd0,0x72,0xc9,0x8f,0x7d,0xc1,0x65,0x8f,0x9d,0xc3,0xc4,0x34,0xa9,0xfd,0xdc,0x2f,0x98,0x6c,0xc0,0xe3,0xe3,0xef,0x40,0x98,0x27,0x53,0x76,0x17,0xee,0x67,0x10,0x5f,0x2b, + 0x04,0x04,0x56,0x9e,0xc9,0xfb,0x3d,0x6b,0xce,0xdc,0x05,0x9e,0x7f,0xd0,0x4a,0xb7,0xd3,0xf6,0xba,0xc7,0x30,0xb1,0xb7,0x5a,0x11,0x74,0x9e,0x43,0x46,0x45,0x8f,0x92,0x96,0xa0,0x51,0xc8,0x4d,0x55,0x8d,0xbd,0x29,0x57,0xc1,0x59,0x07,0x47,0x77,0x76,0xaf,0x66,0x0a,0xc0,0x15,0x82,0xc0,0x01,0xdc,0x1f,0x86,0x8e,0xbf,0xc6,0xb3,0xb2,0x64, + 0x04,0x4b,0x29,0x8a,0x3e,0xba,0x6a,0x09,0xfc,0xd8,0x41,0x59,0x76,0xe0,0xfa,0xea,0x99,0x7f,0xd5,0x19,0xff,0xd3,0x36,0x3b,0xd2,0x01,0x07,0x75,0x21,0x23,0xe1,0x01,0x46,0x6a,0xbb,0x70,0xc0,0x13,0xba,0x23,0x89,0xc3,0x71,0xbe,0x19,0xdd,0x32,0x96,0xf0,0x60,0x0e,0x64,0xf0,0x57,0x55,0xe1,0x5c,0xf8,0x93,0x20,0xac,0x7f,0xfb,0x25,0xd6, + 0x04,0x18,0xbd,0xe0,0x79,0x52,0xd7,0xbe,0x89,0x14,0xd2,0xb2,0x54,0x4c,0x65,0xa3,0xde,0xbd,0xdd,0xd9,0xe7,0xce,0x8a,0x9c,0x46,0xa0,0x3d,0x12,0x4a,0xcf,0xb8,0x54,0x8b,0x01,0xa4,0xa1,0x75,0xa2,0xa8,0x1a,0xf9,0x8e,0x60,0x28,0x77,0x0d,0x05,0x5e,0x22,0xf1,0x01,0x6d,0xf1,0x54,0x62,0xb6,0x5f,0x55,0xa2,0xd4,0x85,0x0c,0xc4,0x15,0xe5, + 0x04,0x00,0x2b,0xeb,0x75,0x5f,0x69,0x4a,0x09,0xf6,0x0b,0xce,0x5b,0x34,0xdc,0x34,0x7c,0x5c,0x3a,0xa2,0x36,0xde,0x90,0x07,0xbc,0xdd,0x07,0x07,0xe9,0xbc,0x80,0x71,0x69,0x4f,0x44,0x3b,0x00,0x45,0x99,0x9f,0x2f,0x58,0x99,0xca,0x79,0x34,0x24,0xa9,0xb4,0x23,0xb0,0xec,0x0a,0x3e,0xdc,0xbb,0xf4,0xaf,0xb9,0xe6,0x65,0x26,0xcf,0x89,0xb2, + 0x04,0x95,0x7e,0x5b,0xcd,0x11,0xfc,0x45,0x0b,0xff,0xce,0xfe,0x63,0x6c,0x0b,0x73,0xf1,0x0f,0xe8,0x58,0x5e,0x04,0xc6,0xc7,0xaa,0x7f,0xa0,0xb6,0x03,0xd2,0x41,0x62,0xd9,0x9e,0x55,0x3e,0x94,0x09,0x56,0xaa,0x04,0xa2,0x37,0xa0,0xc2,0x57,0x0a,0x0c,0x7b,0xc3,0x71,0x21,0x72,0xb8,0xf7,0x8c,0x7b,0x47,0x0a,0x04,0x2a,0xe3,0x1f,0x32,0x23, + 0x04,0xc4,0x3b,0x1b,0x40,0x99,0xda,0x70,0xf8,0xd3,0x3f,0xbb,0x61,0xb6,0x8d,0x9b,0x0e,0x9c,0x7a,0xed,0xd4,0xf4,0x76,0x1c,0x67,0x22,0x99,0x66,0x66,0x97,0x4e,0x29,0x8e,0x97,0x8c,0x02,0xea,0x78,0x99,0xcd,0xd4,0x6a,0x47,0x40,0x5a,0xc0,0xd8,0x9f,0xd6,0xa4,0xd6,0x67,0x18,0xa4,0x50,0x24,0x38,0xad,0x45,0x46,0x32,0x60,0x97,0x68,0x41, + 0x04,0xde,0xb8,0x5f,0x60,0x4b,0xe1,0x93,0x0d,0xba,0xc6,0x62,0x9c,0xb9,0x62,0x10,0xf6,0xfb,0xc8,0x7c,0xe2,0xb2,0x60,0xb6,0x6c,0xc7,0xd6,0x61,0x86,0x18,0x06,0xaf,0xe1,0x12,0x0b,0xbc,0xf8,0x35,0x6d,0xcf,0xbf,0x1d,0xe4,0xbb,0xb7,0xd2,0x06,0x6c,0x3d,0xdd,0xfb,0xaf,0x33,0x0a,0xf7,0x54,0xc5,0x78,0x59,0x13,0x7a,0x9c,0xc4,0xa6,0x8e, + 0x04,0x27,0x89,0x9f,0xe2,0x48,0x11,0xad,0xc8,0x69,0xd4,0x9a,0xc4,0x51,0xcb,0x21,0x06,0x31,0xd1,0x9a,0xff,0x89,0x71,0xac,0x7c,0x3d,0xd2,0xfe,0x82,0x62,0x62,0x50,0x7f,0xd9,0xdd,0xff,0xef,0x4c,0xc9,0xcd,0x81,0xbd,0xd3,0xea,0xb8,0xac,0xdd,0x5c,0x28,0x7a,0x89,0x34,0xf8,0x2d,0xfc,0x25,0x5d,0xde,0xd1,0xac,0x1f,0x11,0x00,0xaa,0x17, + 0x04,0x43,0x01,0xf5,0x4b,0x35,0x92,0xd1,0xea,0x2a,0x40,0x98,0x9c,0x94,0x26,0x1d,0x2b,0x1d,0x1f,0xe2,0x97,0xed,0x6e,0xd6,0x41,0x25,0xee,0x24,0x1d,0xe0,0x5d,0x00,0x4b,0xc7,0x90,0x14,0xf1,0x56,0xe9,0xb7,0xbf,0xb3,0x6b,0x8a,0xd2,0xd6,0x6d,0x55,0xf3,0xa7,0x53,0x82,0x9a,0x9d,0xdb,0x86,0x05,0x5b,0xb9,0x16,0x6d,0xd3,0xaf,0xf4,0x57, + 0x04,0x36,0xb0,0xf6,0x6b,0xf5,0xf9,0xfd,0x4b,0x2d,0xf9,0xcd,0xae,0x2a,0xf8,0x73,0xa0,0x75,0xc5,0x54,0x97,0xd7,0xfe,0xc4,0x73,0x7a,0x7c,0x96,0x43,0xc2,0xc7,0x6f,0xe5,0xda,0x9f,0x72,0x87,0xb3,0xcd,0x4e,0x5f,0x05,0xb9,0xa1,0xa4,0xf6,0x4e,0x8a,0x8d,0x96,0xc3,0x16,0xe4,0x52,0x59,0x4d,0x02,0xa4,0x59,0x2a,0x21,0x07,0xec,0xe9,0x0b, + 0x04,0x82,0xab,0xb5,0x8a,0xfb,0x62,0xd2,0x61,0x87,0x8b,0xde,0xe1,0x26,0x64,0xdf,0x14,0x99,0xb8,0x24,0xf1,0xd6,0x0f,0xb0,0x28,0x11,0x64,0x2c,0xb0,0x2f,0x4a,0xff,0x5d,0x30,0x71,0x98,0x35,0xd9,0x6f,0x32,0xdc,0x03,0xc4,0x9d,0x81,0x5f,0xfa,0x21,0x28,0x57,0x33,0x13,0x7f,0x50,0x7c,0xe3,0x16,0xce,0xc6,0x5c,0xa5,0x62,0xce,0x2a,0xd0, + 0x04,0x7d,0xe7,0xb7,0xcf,0x5c,0x5f,0xf4,0x24,0x0d,0xaf,0x31,0xa5,0x0a,0xc6,0xcf,0x6b,0x16,0x9a,0xad,0x07,0xd2,0xc5,0x93,0x6c,0x73,0xb8,0x3e,0xe3,0x98,0x7e,0x22,0xa1,0x94,0x0c,0x1b,0xd7,0x8e,0x4b,0xe6,0x69,0x25,0x85,0xc9,0x9d,0xc9,0x2b,0x47,0x67,0x1e,0x2c,0xcb,0xcf,0x12,0xa9,0xa9,0x85,0x4c,0x66,0x07,0xf9,0x82,0x13,0xc1,0x08, + 0x04,0x06,0xfa,0x93,0x52,0x72,0x94,0xc8,0x53,0x3a,0xa4,0x01,0xce,0x4e,0x6c,0x8a,0xeb,0x05,0xa6,0x92,0x1b,0xc4,0x87,0x98,0xa8,0xe2,0x0a,0x0f,0x84,0xa5,0x08,0x5a,0xf4,0xec,0x48,0x28,0xf8,0x39,0x4d,0x22,0xde,0x43,0x04,0x31,0x17,0xb8,0x59,0x5f,0xb1,0x13,0x24,0x5f,0x72,0x85,0xcb,0x35,0x43,0x93,0x89,0xe8,0x54,0x7a,0x10,0x50,0x39, + 0x04,0x8a,0x4f,0x62,0x52,0x10,0xb4,0x48,0xdc,0x84,0x6a,0xd2,0x39,0x9b,0x31,0xcd,0x1b,0xc3,0xf1,0x78,0x8c,0x7b,0xed,0x69,0xcc,0x1c,0xb7,0xaa,0xc8,0xab,0x28,0xd5,0x39,0x30,0x07,0xc6,0xf1,0x1f,0x3e,0x24,0x8d,0xe6,0x51,0xc6,0x62,0x2d,0xe3,0x08,0xee,0x55,0x76,0xbe,0x84,0xef,0x1e,0xd8,0xed,0x91,0xfd,0x24,0x4f,0x14,0xfc,0x20,0x53, + 0x04,0x88,0x5e,0x45,0x2c,0xbb,0x0e,0x4b,0x2a,0x97,0x68,0xb7,0x59,0x6c,0x15,0x31,0x98,0xa9,0x22,0xda,0xbb,0xb8,0xd0,0xca,0x1d,0xc3,0xfa,0xf4,0xf0,0x97,0xf0,0x91,0x13,0xbe,0x9a,0xaa,0x63,0x09,0x18,0xd5,0x05,0x60,0x53,0xec,0xf7,0x38,0x8f,0x44,0x8b,0x91,0x2d,0x9c,0xcf,0xbe,0xd8,0x0d,0x7c,0xa2,0x3c,0x0e,0x79,0x91,0xa3,0x49,0x01, + 0x04,0xe2,0x26,0xdf,0x1f,0xcf,0x7c,0x13,0x7a,0x41,0xc9,0x20,0xff,0x74,0xd6,0x20,0x4f,0xaa,0x20,0x93,0xee,0xff,0xc4,0xa9,0xee,0x0a,0x23,0xfb,0x2e,0x99,0x40,0x41,0xc3,0x45,0x71,0x07,0x44,0x2c,0xc4,0xb3,0xaf,0x63,0x1c,0x4d,0xfb,0x5f,0x53,0xe2,0xc5,0x60,0x8b,0xed,0x04,0xff,0x66,0x53,0xb7,0x71,0xf7,0xcd,0x46,0x70,0xf8,0x10,0x34, + 0x04,0xf5,0x3e,0xad,0x95,0x75,0xee,0xbb,0xa3,0xb0,0xeb,0x0d,0x03,0x3a,0xcb,0x7e,0x99,0x38,0x8e,0x85,0x90,0xb4,0xad,0x2d,0xb5,0xea,0x4f,0x6b,0xd9,0xbd,0xe1,0x69,0x95,0xb5,0xf3,0xab,0x15,0xf9,0x73,0xca,0x9e,0x3a,0xa9,0xdf,0xe2,0x91,0x4e,0xeb,0xbd,0x2e,0x11,0x01,0x0b,0x45,0x55,0x13,0x90,0x79,0x08,0x80,0x03,0x96,0xfb,0x9d,0x1a, + 0x04,0x88,0x27,0x73,0xec,0x7e,0x10,0x60,0x5c,0x8f,0x9e,0x2e,0x3b,0x87,0x00,0x94,0x3b,0xe2,0x6b,0xcc,0x4c,0x9d,0x1f,0xed,0xf2,0xbd,0xcf,0xb3,0x69,0x94,0xf2,0x3c,0x7f,0x8e,0x5d,0x05,0xb2,0xfd,0xd2,0x95,0x4b,0x61,0x88,0x73,0x6e,0xbe,0x3f,0x56,0x46,0x60,0x2a,0x58,0xd9,0x78,0xb7,0x16,0xb5,0x30,0x4e,0xa5,0x67,0x77,0x69,0x1d,0xb3, + 0x04,0xa6,0x0b,0x64,0x58,0x25,0x6b,0x38,0xd4,0x64,0x44,0x51,0xb4,0x90,0xbd,0x35,0x7f,0xea,0xde,0x7b,0xb6,0xb8,0x45,0x3c,0x1f,0xc8,0x97,0x94,0xd5,0xa4,0x5f,0x76,0x8d,0x81,0xee,0xe9,0x05,0x48,0xa5,0x9e,0x5d,0x2c,0xec,0xd7,0x2d,0x4b,0x0b,0x5e,0x65,0x74,0xd6,0x5a,0x9d,0x83,0x7c,0x7c,0x59,0x0d,0x1d,0x12,0x5e,0xe3,0x7c,0x4d,0x51, + 0x04,0x52,0xd9,0xa4,0x4b,0xf0,0xbc,0x72,0x9e,0x5f,0x3f,0xfc,0x8a,0x73,0xa4,0xda,0x33,0x2e,0x29,0x62,0xb2,0x20,0x13,0x39,0x1b,0x60,0xeb,0x66,0xde,0x6e,0x1b,0x83,0x43,0x1e,0xb0,0xd9,0xc6,0xe9,0x2a,0x42,0x4b,0xc2,0x4a,0xb2,0x3c,0xaf,0x99,0xe3,0xcd,0xa8,0x30,0x26,0x36,0x89,0x65,0x36,0x26,0xf8,0xbe,0x91,0x59,0x0f,0xb7,0x5c,0xbd, + 0x04,0x78,0xa9,0x9d,0xfc,0xb7,0xdf,0x4d,0x92,0x77,0xf9,0x7b,0x5e,0x24,0xe9,0x79,0xf4,0x8a,0x8a,0xa8,0x98,0x3e,0xf9,0xdd,0x86,0x76,0x5d,0xcc,0xc3,0x3d,0x8a,0xde,0x9f,0x98,0x57,0xdc,0xcc,0xe2,0xa7,0xff,0x0a,0xc4,0x1b,0x25,0x5e,0xb8,0xdf,0x45,0xdf,0x61,0xb4,0xdb,0x58,0xfb,0x5e,0x99,0x76,0x14,0xbf,0x0d,0x5a,0xb2,0x17,0xdd,0x90, + 0x04,0x11,0x62,0x42,0x4a,0xa9,0xfa,0x0d,0x42,0xbf,0x60,0xe0,0x6a,0x16,0xb7,0xe7,0xea,0x45,0xac,0x0e,0x2f,0x07,0xf1,0xe3,0x67,0x35,0xbd,0x0d,0x98,0xc7,0x0b,0x88,0x50,0x69,0x3f,0x2a,0xc1,0x28,0xf4,0x7f,0x21,0x33,0x22,0xc5,0xf8,0x87,0x2d,0xde,0x92,0x61,0xaf,0xfe,0x61,0x4e,0x3f,0x36,0x4a,0x79,0x2d,0x17,0xb0,0xe8,0x42,0x18,0x40, + 0x04,0x30,0xd2,0xd4,0x2a,0x85,0x38,0x5b,0x64,0x81,0x7d,0x09,0x00,0xbc,0x8c,0x98,0x47,0x16,0x93,0x45,0x29,0x05,0x6d,0xa0,0x32,0xd5,0xfd,0xe8,0x44,0x91,0x5d,0x66,0x9b,0x0e,0x5e,0xf4,0x0d,0x56,0x6f,0x5b,0x23,0x99,0x21,0x32,0xc4,0xae,0x58,0x80,0x17,0xeb,0xd1,0x60,0xe5,0xdb,0xf4,0x80,0x4f,0x93,0x6c,0xb0,0xf2,0x57,0xa9,0x34,0x46, + 0x04,0xa7,0x7a,0x25,0x9a,0x55,0xed,0x98,0xd6,0x43,0xe1,0xa3,0xe1,0x38,0x04,0xc9,0x5e,0x54,0x3c,0x15,0x57,0xe6,0x14,0x1e,0x4e,0xd4,0x7d,0xcf,0x13,0xb9,0x41,0xa6,0xfa,0x8b,0xfa,0x5f,0x87,0x9a,0xb1,0x4a,0xeb,0xa7,0xb2,0xac,0x06,0xe5,0xa7,0x19,0xc8,0x6f,0x4a,0x2e,0xd3,0x91,0x16,0x03,0x80,0xaa,0x3b,0x6f,0x74,0x14,0x1c,0xd3,0x54, + 0x04,0xf8,0x94,0x54,0x59,0x3d,0xba,0x57,0x20,0x16,0x4d,0x17,0xbc,0x1c,0xa3,0x2f,0x10,0xdd,0xd1,0xa7,0xd3,0x7b,0x7b,0xf0,0x2e,0x5e,0xc0,0xd5,0x97,0x94,0xf4,0xd6,0x3d,0x34,0x26,0x8d,0xe3,0xf6,0xa2,0xc1,0x08,0x51,0x4a,0x52,0x70,0x2f,0x7e,0x67,0xd2,0x78,0x29,0xfa,0x03,0x40,0xb3,0xc4,0x71,0x06,0x51,0x29,0x14,0x83,0xc8,0xb2,0x13, + 0x04,0xb0,0x0b,0xef,0xcb,0x86,0x8e,0xeb,0x5d,0x55,0x8e,0xf2,0xec,0x2e,0xc6,0x79,0xdc,0x08,0x2e,0xc1,0x5a,0x57,0xc5,0x89,0x93,0x11,0x17,0x84,0x24,0x67,0x4b,0x8f,0x50,0x58,0x87,0x42,0x72,0x8a,0x63,0x84,0xa1,0x80,0x50,0x6b,0x87,0x39,0xa7,0x9c,0x4c,0xe9,0x5e,0x10,0x55,0xc0,0xd0,0xea,0xb2,0x25,0x4c,0xa5,0x5b,0x18,0xa3,0xe7,0xb2, + 0x04,0xb3,0xe2,0xf9,0xc7,0xf9,0xf0,0x68,0xc5,0xda,0x88,0x82,0xfd,0x58,0x1e,0x71,0x12,0xe5,0x38,0xaa,0x01,0xfe,0xb5,0xf0,0x17,0x43,0x3c,0x00,0xfc,0x8a,0x82,0x8f,0xcc,0xc5,0x6a,0x3f,0x69,0x2e,0x3b,0x23,0x7b,0x7c,0xaf,0x49,0x86,0x90,0x09,0xe6,0x74,0x3e,0x35,0xec,0x5a,0xed,0x19,0xd8,0x14,0xcf,0xc1,0x38,0x69,0xf7,0x8e,0xb8,0x95, + 0x04,0xe5,0xda,0xe9,0x77,0x9e,0x0c,0x16,0x8e,0x60,0xb8,0x42,0x50,0x8e,0x25,0x3d,0x2a,0xc8,0x0e,0x7e,0x50,0x4d,0xae,0xd9,0xfa,0xc0,0x77,0xb9,0xb4,0x49,0xc3,0x68,0xb5,0x7b,0xd8,0x66,0x1b,0xbb,0xcc,0xef,0x47,0x8f,0x05,0x0f,0x4f,0xfe,0xc8,0xaa,0x47,0xed,0x7f,0x98,0xe8,0x95,0x14,0xd9,0x08,0x3f,0xac,0xf0,0xa7,0xf2,0xf7,0xb7,0x0f, + 0x04,0x42,0x0e,0x10,0xbb,0x81,0xb3,0x79,0xd7,0x28,0x87,0x9f,0xe6,0x00,0xe6,0xf1,0xbf,0x2b,0x85,0xd8,0x02,0x38,0x48,0xa0,0x40,0xc7,0x65,0x4a,0x97,0x34,0xda,0x1a,0xc4,0xcb,0xee,0x56,0x15,0x71,0xa6,0x16,0xb0,0x94,0xa3,0x84,0x36,0xe0,0x2c,0x6d,0x7b,0x54,0xb4,0x27,0x9a,0x23,0x41,0x93,0xa8,0x28,0xe8,0x6e,0x21,0xe6,0xb7,0x1d,0x16, + 0x04,0x8d,0xbf,0x1b,0xa8,0x75,0x97,0x00,0x4a,0xf5,0x52,0x31,0x72,0x25,0x91,0x6a,0xbf,0x3d,0x71,0xdf,0xf9,0x0f,0xe9,0xe6,0x1f,0x9d,0x28,0x63,0xa6,0xde,0x21,0x8d,0x4a,0x08,0x97,0xe3,0x34,0x00,0x01,0x39,0xb0,0x84,0x9d,0x77,0x27,0x57,0xb1,0x50,0xe5,0xd8,0x6b,0x55,0xd7,0xa0,0x0a,0x74,0x4b,0xcc,0xbb,0x7c,0xb8,0xd1,0xa6,0xb0,0x7b, + 0x04,0x1a,0xcc,0xb8,0x5b,0x61,0x2d,0x32,0xd5,0x84,0x59,0xca,0xec,0x0b,0xb6,0x76,0x8f,0x05,0xce,0x80,0x94,0xe3,0x86,0x24,0x22,0xa7,0xc1,0x23,0x40,0xdd,0x31,0xbd,0x73,0x97,0xe0,0x37,0x7d,0x33,0xcc,0xdc,0xe8,0xbd,0x87,0x2f,0x89,0x8b,0xe6,0xcb,0xcf,0x72,0x74,0xb3,0xbe,0xef,0xb5,0xdd,0x7c,0xad,0xdd,0xf0,0x27,0xd0,0xc0,0x2c,0x2e, + 0x04,0x14,0xee,0xf4,0x1b,0x67,0xc1,0x7b,0x1d,0x4a,0x04,0x05,0x54,0x28,0x7c,0xd6,0xa9,0xe6,0xb3,0x08,0x03,0x35,0xea,0x4e,0x16,0x82,0x1d,0xbd,0x64,0x3e,0xc6,0x7d,0xba,0x6d,0x67,0xca,0xdc,0xbd,0x1a,0x3f,0x02,0x27,0xb7,0xca,0xf2,0xc0,0x60,0x4d,0x2b,0x35,0x07,0xae,0xb9,0x6e,0xd9,0x8c,0x32,0xe2,0x35,0x0f,0xe2,0x95,0xed,0x89,0x98, + 0x04,0xa9,0x9a,0xf5,0xde,0xc3,0xc9,0x95,0x08,0x0d,0xdc,0xc1,0x5d,0x79,0x94,0xda,0xff,0x26,0x6a,0xa5,0x3f,0x18,0x1f,0xba,0x4b,0xcd,0xd5,0x04,0xd2,0x06,0xbf,0xca,0x2f,0x37,0x39,0x58,0x8f,0x07,0x1e,0x41,0x92,0xb6,0x15,0x36,0x1e,0xc8,0x17,0x35,0xfe,0x2e,0xf2,0x92,0x3c,0x40,0x56,0xc4,0x32,0xf4,0xc2,0x78,0x2e,0x5d,0x72,0x22,0x15, + 0x04,0xa3,0x55,0xd8,0xd1,0x7d,0x50,0xf6,0x42,0x8e,0x0a,0xf3,0x45,0x92,0x16,0x62,0x58,0x7e,0x2b,0x62,0x49,0xee,0xd1,0xe3,0x26,0xab,0xb7,0xc8,0x60,0x50,0x36,0xb1,0xdb,0x1f,0xd7,0x2e,0xfa,0xca,0x90,0x82,0xbb,0x6f,0xab,0x44,0x35,0x9f,0xa7,0xf6,0xef,0x8a,0x45,0xd0,0x36,0x85,0x28,0x32,0xe2,0xad,0xe9,0xd4,0x1f,0x28,0x21,0x91,0x44, + 0x04,0xfa,0x53,0xe5,0xb5,0x8d,0x55,0xeb,0xf5,0x17,0xd8,0xdb,0x07,0xb0,0x21,0xd8,0x09,0x18,0xd1,0xf2,0x60,0xf9,0xe0,0xb3,0xd0,0x0b,0xd4,0x7b,0x24,0xa9,0x1a,0xe6,0xab,0x85,0xab,0x2a,0xdc,0xc3,0x1b,0x98,0xca,0xae,0xc2,0x68,0x1a,0x84,0x1d,0x50,0xbc,0x0e,0xda,0x87,0x55,0x61,0xfa,0xb7,0x0c,0x97,0x94,0x63,0xff,0xb6,0xa1,0xd7,0x4c, + 0x04,0x33,0xfe,0x37,0x94,0x93,0x75,0xde,0xbd,0x97,0x34,0xf5,0x4b,0x70,0x36,0xb7,0xa9,0x78,0xbc,0x8f,0xc4,0xae,0x3f,0xe9,0x27,0xa5,0x21,0xf9,0x40,0xd9,0xe3,0x5d,0xd3,0x8f,0x81,0xa9,0x16,0x0c,0x05,0xdf,0x04,0xe3,0x42,0x90,0xdb,0x40,0xc3,0xe0,0x45,0xb8,0x32,0x37,0x39,0x41,0xca,0x85,0xb4,0x33,0x85,0x4e,0x43,0xca,0xed,0x32,0x3d, + 0x04,0xb9,0xba,0x84,0x45,0x06,0x7d,0x0e,0x81,0xbd,0x32,0xdd,0x99,0xe6,0xb4,0xea,0x3d,0x44,0x2d,0x06,0x3a,0x8e,0xb9,0x87,0x35,0x18,0xee,0x3b,0xb1,0x8c,0x05,0x37,0x06,0x09,0x99,0x64,0xb6,0x88,0x91,0x05,0x78,0x4d,0x9d,0x6d,0x9d,0x9a,0xa7,0x9c,0x76,0xb6,0xa3,0xd3,0x37,0x63,0x15,0x95,0x3a,0xfd,0xcb,0x5a,0x74,0x39,0xe7,0xc7,0x06, + 0x04,0x78,0xb2,0x48,0x63,0x42,0x70,0xa7,0xa6,0x64,0x0b,0xd0,0xc6,0x45,0x95,0xdc,0x4e,0x98,0xad,0xfe,0x6b,0xdb,0x81,0x12,0x59,0x3a,0x41,0x73,0xe3,0x6d,0x4a,0x9b,0x49,0x69,0xa1,0xf3,0xd1,0x9b,0x32,0x58,0x98,0xe3,0x64,0x59,0xc4,0x1e,0xba,0x1d,0xe9,0x92,0x29,0xb0,0xba,0x2c,0xf1,0x33,0x74,0x61,0xc8,0x43,0x91,0xd9,0xae,0xa1,0xfc, + 0x04,0xc7,0x88,0x88,0x4a,0xc8,0x68,0x59,0x3d,0xb2,0x41,0xf5,0xb3,0xea,0x70,0x13,0x81,0x0d,0x3c,0xe2,0x8a,0x02,0x68,0x0a,0x96,0xff,0x35,0x7b,0x26,0x1f,0xad,0x61,0x1b,0xef,0x35,0x3b,0x0e,0x82,0xc1,0xc6,0x8c,0x47,0x1f,0xf1,0xed,0x5c,0x47,0x49,0xe1,0x68,0xe7,0xaf,0x85,0x91,0xa5,0xe6,0xda,0xb5,0x99,0xb9,0x66,0x20,0xde,0x0e,0xde, + 0x04,0x18,0x64,0xe3,0x73,0xac,0x60,0xc2,0x35,0x43,0xfe,0xa9,0xe1,0xf2,0x37,0x95,0x0a,0x81,0x69,0xe0,0x7c,0x81,0x7d,0xb6,0x9d,0x50,0x0e,0x55,0x92,0xd1,0xdf,0x9d,0x5a,0x10,0xda,0x46,0x51,0xef,0xcc,0xc4,0x6d,0x37,0xe7,0xea,0xe1,0x6c,0x36,0xac,0x86,0xa9,0xa8,0x6b,0x88,0xad,0x08,0x75,0x1a,0x8d,0xcd,0x15,0x06,0x00,0x19,0x70,0x4b, + 0x04,0xdd,0x73,0x08,0xd2,0xa6,0x75,0x7f,0x92,0x4d,0xc9,0x79,0x06,0x6e,0x75,0xee,0x6f,0xa5,0x2b,0x03,0x39,0x3d,0x28,0x92,0xf5,0x97,0x88,0xef,0xfa,0x55,0x3b,0x69,0x0d,0x1f,0xef,0x00,0xc1,0xc2,0x2b,0xa8,0x0b,0x95,0xd5,0x29,0x78,0x2d,0xbe,0xf5,0x5a,0x63,0x04,0x61,0x79,0xfb,0x4e,0xf0,0x0f,0xdc,0xcf,0x5b,0x62,0xce,0x55,0xc1,0x36, + 0x04,0x57,0x5d,0x51,0xbe,0x2b,0xdd,0xf5,0xbf,0x1a,0xb4,0x24,0x31,0xba,0x7e,0x3b,0x5f,0x29,0x47,0xbc,0x57,0x4d,0xf9,0xf6,0x0a,0x44,0x8b,0x8d,0xb5,0xca,0x28,0xc9,0x2c,0xd8,0x36,0xf5,0x5c,0x55,0x64,0x40,0xa7,0xdf,0x12,0x5d,0xe6,0x59,0x9b,0x21,0xae,0x68,0xf1,0x5d,0x5b,0x9f,0x42,0x2d,0x6e,0xec,0x88,0xab,0x2f,0x65,0x40,0x6b,0xf9, + 0x04,0xc7,0x42,0x2a,0x80,0xae,0xbd,0xb5,0x18,0xbd,0x2d,0xab,0xa6,0x91,0xd3,0x9a,0x25,0xea,0x2f,0xe4,0x9a,0x35,0xcd,0xfb,0x2a,0x0f,0x94,0xbd,0xfb,0xad,0xc6,0x62,0x9a,0xe5,0x5a,0xc7,0xc4,0x00,0xaf,0xd2,0x97,0x6b,0x7c,0x3b,0x24,0xf7,0x12,0x68,0x07,0xa5,0xa0,0xaf,0xb9,0x31,0xcf,0xa5,0xc6,0xad,0xa1,0xf4,0xff,0x98,0x4e,0xa5,0xa7, + 0x04,0xad,0x40,0x62,0x21,0x6f,0x84,0xff,0xd6,0x6e,0x32,0x64,0x97,0xbc,0xbc,0xab,0x98,0x22,0x83,0x49,0x33,0x92,0xec,0x0f,0x73,0x9c,0xef,0x8c,0xd7,0xea,0xf3,0x45,0x34,0x14,0xc5,0xa2,0x89,0xa8,0x46,0xe2,0x8b,0xf2,0x04,0x2e,0xa5,0xdc,0x7b,0x15,0xe2,0x52,0xf4,0x8d,0x3c,0xf9,0x80,0xe7,0xc4,0x75,0x1c,0xc3,0x54,0x93,0xa1,0xc3,0x28, + 0x04,0xcc,0xac,0xd1,0xbf,0x7c,0x7f,0x4e,0xa9,0xc7,0xe5,0x9b,0xd8,0x02,0x80,0x4a,0x9d,0x33,0x52,0x62,0x71,0x6a,0xc2,0x88,0xc6,0xee,0xfd,0x7a,0x71,0x35,0x34,0x9a,0x4f,0x7b,0x86,0x12,0xe2,0xbd,0xbd,0x43,0xb3,0xfc,0x4f,0xa6,0x94,0x1a,0xc1,0x5a,0x8f,0x37,0xe3,0x4f,0xe7,0x81,0x0a,0x0c,0x0d,0x43,0xc0,0x5a,0xfa,0xfb,0x64,0x80,0xef, + 0x04,0x9a,0xa7,0xf1,0xf9,0x34,0x74,0xfa,0x37,0x0c,0x4d,0xf3,0x80,0x5b,0xd2,0x83,0x93,0x28,0x89,0x58,0x80,0xdc,0xe1,0x97,0xa0,0x6c,0xf9,0x05,0x2e,0x6a,0xb7,0xa6,0x93,0x8c,0x9a,0x20,0x8b,0x33,0x5b,0xfd,0xa6,0xb0,0x13,0x21,0xf0,0x29,0xa0,0xd8,0x3c,0x8b,0xb9,0x65,0x61,0x20,0x84,0x81,0xf7,0xaf,0x6c,0x6c,0xf1,0xd2,0x65,0x78,0x43, + 0x04,0x83,0xb7,0xaf,0xfc,0xec,0x11,0x68,0x5d,0x15,0x61,0x4e,0x2d,0x53,0xc1,0xe7,0x35,0x04,0xe3,0xd9,0x83,0x44,0xbb,0xd5,0xfc,0x0a,0xd8,0x6d,0xc4,0xc3,0x67,0x04,0x32,0x3a,0x7f,0x73,0xa0,0x95,0x33,0xd1,0xa1,0x07,0x6a,0xa9,0xc4,0xaf,0x22,0xa6,0xba,0xb9,0x2f,0x3f,0x0d,0x76,0x67,0x98,0xdb,0x7a,0xa4,0x18,0x3c,0x03,0x7f,0x86,0xe6, + 0x04,0xae,0xeb,0xdd,0x97,0x1c,0xf4,0xe9,0x88,0xfa,0xbd,0x80,0x70,0xc7,0x5c,0x64,0xaa,0xb9,0x0a,0x83,0xa3,0x67,0x35,0xfe,0xcf,0xb3,0x85,0x60,0x59,0x79,0xc0,0x08,0xae,0x8c,0x39,0x88,0x8f,0x0d,0xaf,0x74,0xf9,0x8c,0xeb,0xbb,0x08,0xf6,0xb9,0x1a,0x51,0x93,0xf6,0x84,0xa5,0x67,0x61,0xb9,0xf2,0xb6,0x3d,0x87,0xd3,0xf6,0x04,0x91,0xed, + 0x04,0xe3,0x8e,0xec,0x4c,0x1a,0x4d,0x81,0xa5,0xd9,0x94,0xb0,0xd7,0x78,0x03,0x05,0xaf,0x65,0x18,0x92,0xcb,0xf0,0x7f,0x3a,0x07,0x62,0x8f,0x4e,0x24,0x73,0xa8,0xab,0x75,0x4b,0xda,0x96,0x62,0x24,0x62,0x88,0x0d,0x35,0x36,0xd3,0x90,0x13,0x2a,0x85,0xdb,0x61,0x47,0xf8,0x14,0xc6,0x2e,0xfb,0x58,0x0a,0x6f,0x52,0x95,0x98,0xb0,0xdd,0x1e, + 0x04,0x10,0xf0,0x2d,0x49,0x6e,0x9a,0x87,0x58,0xc8,0x31,0x38,0x98,0x92,0xa4,0x5e,0xd0,0x09,0x28,0x2e,0xa1,0xeb,0x20,0x1a,0xb8,0xca,0xf0,0x9e,0x6f,0x2d,0xe9,0xfa,0x4a,0xcc,0x12,0x6b,0xec,0xc2,0x04,0xc4,0x1a,0x94,0xaf,0xf4,0xf2,0xea,0xd7,0x55,0x2e,0xc2,0x3f,0xc6,0x8f,0x00,0x05,0x14,0x76,0x25,0xa9,0x56,0x22,0xb5,0x21,0x09,0x0d, + 0x04,0x4c,0x85,0x9a,0xff,0x34,0x2c,0x56,0xa9,0x50,0x8b,0x85,0x9a,0xb1,0x50,0x9e,0xdc,0xab,0xf6,0x6e,0x04,0x4e,0x20,0x26,0xcc,0x29,0x34,0x74,0x38,0x9b,0x3d,0x58,0xc1,0x6b,0xc0,0x6c,0xf9,0x9d,0xd6,0xd8,0x24,0x9c,0x5d,0x24,0x38,0x6a,0x55,0xa9,0x72,0x14,0xea,0x0c,0xda,0x27,0x0a,0xd9,0x47,0x09,0x86,0xc3,0xa3,0xd0,0x23,0xcb,0x07, + 0x04,0xd1,0xeb,0x4f,0x7c,0x68,0x0a,0x24,0x7a,0x14,0xf3,0xd6,0x7f,0x85,0xcd,0xb1,0xc4,0xc6,0xf1,0x3d,0x44,0x82,0x1f,0xc4,0x56,0xc9,0x24,0x7a,0x60,0x66,0x22,0xaf,0xec,0x49,0x52,0xcf,0x05,0xff,0x06,0xf0,0x6d,0x70,0x30,0xe8,0x89,0x04,0x73,0x70,0x96,0xcb,0xf8,0xdd,0x90,0xe4,0x78,0xa3,0xb5,0xdf,0xed,0x2e,0xe4,0x87,0xa0,0x83,0x5c, + 0x04,0x3b,0xf7,0x9d,0x6c,0x1a,0x20,0xd8,0x51,0x15,0xe9,0x73,0x07,0x97,0x07,0xf5,0x13,0x1e,0xed,0x2f,0x83,0xbe,0x56,0x83,0xc3,0x4d,0x0f,0xb3,0xee,0xe1,0xae,0x40,0xdf,0xd2,0xea,0x4f,0x1b,0x73,0x5c,0xf6,0x23,0x41,0x83,0x5a,0x57,0x21,0xc2,0x5d,0xaa,0x0d,0xc1,0xa3,0x88,0x6a,0xb7,0x5e,0xf6,0x53,0xf4,0x72,0xd8,0xf3,0xaa,0x1e,0x97, + 0x04,0xb1,0xf8,0x08,0x28,0x6a,0x42,0xee,0xee,0x85,0xd5,0x85,0xe5,0x4d,0xc2,0x8a,0xba,0x2a,0xeb,0xfb,0x95,0x68,0x05,0xf5,0xc0,0x11,0x27,0xbc,0xdf,0x43,0x51,0x54,0xcb,0x5b,0x17,0x8f,0xda,0x58,0x96,0xd9,0xe7,0x50,0x86,0x61,0xfe,0xe7,0xee,0x55,0xfa,0x96,0x23,0x61,0x0b,0x3d,0x9f,0x4a,0x59,0x15,0x6b,0x76,0xd8,0x87,0x7b,0x4e,0xf1, + 0x04,0xa2,0x1e,0x80,0xd0,0x9e,0x11,0xac,0xbc,0xcb,0xc9,0x09,0xde,0x6c,0x9f,0x11,0x59,0xad,0xdb,0xb5,0xdd,0x47,0x72,0x11,0xb9,0x0a,0x37,0x0f,0x8c,0x75,0x48,0xe6,0x0d,0x1d,0x7a,0xac,0xb6,0xe4,0x55,0xbc,0xdc,0x23,0x03,0x31,0xd7,0x9a,0xd9,0x46,0x4a,0x77,0xb7,0x02,0xc8,0x58,0x40,0x09,0x00,0xcb,0x44,0x88,0xcb,0x6c,0x28,0xbd,0x61, + 0x04,0x50,0x55,0xa8,0xc4,0x5e,0x81,0x38,0x5f,0x41,0x44,0xc7,0xb6,0xfb,0x32,0x11,0x93,0x95,0xa9,0x4d,0xbd,0x07,0x66,0x5e,0xd7,0xbc,0x1c,0xce,0x1e,0x62,0xdc,0x47,0xc8,0xb6,0xd5,0x0a,0x39,0xa5,0x5d,0x3b,0x8e,0x99,0x66,0x24,0xfb,0x6e,0xc2,0xf2,0x96,0x0c,0x7c,0x2b,0xc0,0xbc,0x94,0xb2,0xa6,0x3d,0x65,0x09,0x6f,0xd9,0x9c,0xa4,0x1a, + 0x04,0xaf,0x52,0x2f,0xc0,0xa6,0x14,0x40,0x17,0x39,0x45,0xb9,0x14,0xd6,0x40,0x4b,0x19,0x40,0xb5,0x47,0xa6,0xf7,0x68,0x55,0x02,0x80,0xfe,0x28,0xbd,0x33,0x1c,0x9c,0x66,0x1d,0x28,0x24,0x29,0xf2,0x91,0x12,0x98,0xf9,0xc5,0xb8,0x2f,0x87,0xc7,0xf5,0x04,0x47,0x06,0x74,0x8c,0x19,0x03,0x56,0x89,0xb2,0x16,0xd6,0x44,0x74,0xbf,0x5a,0xd0, + 0x04,0xec,0x1a,0x88,0x65,0x2d,0xe7,0x14,0xd2,0x1f,0xdd,0xb5,0x4d,0xb4,0xa3,0x42,0x35,0x21,0xae,0xad,0x58,0x28,0xb8,0x43,0xbd,0xde,0x9a,0x42,0xcf,0x4a,0x8b,0xf1,0x24,0xa6,0x95,0x68,0xc6,0x64,0xe2,0xd9,0x31,0x7a,0xc7,0x32,0xc9,0x8c,0x43,0x55,0x48,0xdc,0xec,0x0e,0xeb,0x8a,0xb3,0x10,0x27,0xee,0x5f,0x16,0x93,0xcc,0xd9,0x7c,0x68, + 0x04,0x48,0xe4,0xc9,0xcc,0x88,0xa6,0x01,0xeb,0x63,0x9f,0x81,0xff,0xa6,0x79,0x54,0x0b,0xf1,0xd7,0xbc,0xbe,0x87,0x6a,0x95,0x5e,0x73,0xbf,0xad,0xe0,0x55,0x38,0x41,0x60,0xba,0xe1,0x30,0x24,0x3e,0xf5,0xfd,0x32,0x8f,0x65,0x27,0x8e,0x00,0xca,0xd6,0x00,0x13,0x27,0xab,0x42,0xfd,0xf3,0xb9,0x65,0x4a,0xad,0x6f,0x26,0x05,0x42,0xb0,0x2b, + 0x04,0xe8,0x61,0x37,0x9f,0x1c,0x1b,0x07,0x54,0x01,0x55,0xbb,0xfe,0xf4,0xa6,0x9a,0x84,0xbe,0x81,0xb1,0x44,0x1d,0x43,0xe7,0x85,0x0c,0x7a,0xc1,0x00,0x5a,0x80,0x42,0x38,0xbb,0x33,0xc7,0x98,0x1d,0x38,0x3a,0x06,0xd1,0xb7,0x95,0x55,0x2a,0x7b,0x31,0xf4,0x91,0x45,0xfb,0xa9,0x37,0x87,0x6f,0xdc,0x9f,0x0d,0x13,0x8a,0xa5,0xb3,0xf3,0x22, + 0x04,0xb4,0x48,0x9c,0xd4,0x99,0x16,0x8b,0xd4,0x8c,0xd2,0xc3,0x11,0x67,0xed,0xad,0x24,0x6c,0x63,0x85,0x9b,0xf8,0xb4,0x83,0x98,0x61,0x7a,0x7a,0x05,0x56,0x34,0x1e,0x3c,0x0b,0x0f,0x66,0xf6,0x65,0x03,0x8b,0xaa,0x29,0xdb,0x8c,0x29,0x6d,0x4f,0x2a,0xe0,0x7b,0x9a,0xb9,0x19,0x3b,0xfc,0x00,0x98,0x1d,0x7d,0xf0,0x59,0x9c,0xe0,0x64,0x8d, + 0x04,0x88,0x4e,0x74,0x88,0x5e,0xa4,0x50,0xf5,0xaa,0xb0,0xcc,0x8f,0x06,0xc0,0x06,0x63,0x0e,0x8b,0x18,0x3a,0x06,0xbd,0xa5,0x09,0x32,0x2f,0xcd,0x97,0xba,0x5d,0x2d,0x2b,0x00,0xe1,0x37,0x3d,0x53,0x3b,0xd5,0x92,0x04,0x27,0xd1,0x06,0xb7,0xf3,0x3e,0xeb,0x53,0xd2,0x1b,0x5c,0xf4,0x6c,0xa0,0x15,0x1e,0x91,0x85,0x9e,0x81,0x1a,0x39,0xcb, + 0x04,0xc5,0x02,0x24,0xa8,0xcf,0x3a,0x19,0xda,0x61,0x33,0xe7,0x46,0xd0,0x02,0x17,0x28,0x5d,0xf8,0x55,0x89,0xed,0x33,0x4b,0x54,0xd9,0x5b,0x00,0x5b,0x8f,0x03,0x3f,0x7d,0xf7,0xbc,0x6a,0x5d,0xdc,0x59,0xd0,0x33,0xf0,0xc6,0x6b,0xed,0x57,0x14,0x9a,0x16,0x0f,0x25,0x72,0x31,0x17,0xa2,0xfc,0xd4,0x13,0xaf,0xf8,0xc9,0xad,0xa4,0x3b,0xf9, + 0x04,0xc6,0x6a,0x91,0x7f,0xc4,0x35,0xc9,0xf4,0x1c,0x47,0x42,0x8e,0x71,0x8a,0x30,0x17,0xb3,0xc5,0xc9,0x92,0xb4,0xd9,0x4a,0x66,0x36,0x02,0xf7,0x3f,0xd8,0x25,0xd0,0x43,0xa0,0x3c,0xb9,0xf5,0x81,0x74,0xcf,0xfb,0x35,0x9e,0x2f,0x54,0x1c,0xfb,0x5e,0x55,0x1c,0x50,0xfd,0x81,0x1b,0x82,0x36,0x2e,0xad,0xb2,0x16,0xa4,0xcf,0xd0,0xf8,0xc3, + 0x04,0xf5,0x5a,0x45,0x1e,0x6e,0x0d,0x8f,0x76,0x00,0xc7,0xbf,0x7c,0x05,0x74,0x1c,0x5e,0x59,0x85,0xb8,0xff,0xe4,0xea,0xb6,0x2d,0x4f,0xfc,0x04,0xae,0xdb,0x72,0x5a,0x66,0xe9,0x42,0xcf,0x48,0x6e,0xfc,0xf3,0xb8,0x54,0x88,0xcf,0x3c,0xd4,0xfb,0x02,0x48,0xb8,0x20,0x70,0x3b,0x93,0x8c,0xe7,0x7a,0x07,0x4a,0x2f,0x92,0x86,0xaf,0x03,0xbf, + 0x04,0xa9,0x6a,0xa2,0x5b,0xee,0x8c,0x8c,0xb6,0xf6,0xaa,0xf4,0x0b,0xe9,0x8c,0xa0,0x47,0xda,0x24,0x5e,0x8d,0x4c,0xae,0x28,0xfc,0x89,0x2a,0x03,0x69,0xb2,0x99,0xcb,0xa3,0xef,0x5f,0x54,0xbb,0x59,0xf4,0xad,0x58,0xa8,0x43,0x32,0xa0,0x0d,0x89,0xa1,0xcf,0x3d,0x56,0xc4,0xe6,0xec,0x9c,0x3a,0x46,0x7a,0x4a,0x2a,0x04,0xad,0x3b,0xce,0x97, + 0x04,0x49,0xf5,0x72,0xfa,0x8c,0xdf,0x67,0x50,0xad,0xab,0xc3,0xab,0x0e,0x46,0xbf,0x23,0xdd,0x7a,0xd7,0x11,0x4b,0xf3,0x19,0xf3,0x5a,0xfa,0x6a,0x2c,0xcb,0xe2,0xe7,0xd3,0x43,0xc4,0x4f,0x01,0x8f,0x8e,0xfc,0x9f,0x52,0x69,0x1b,0x27,0x4a,0x8c,0x89,0x28,0x3d,0x13,0xce,0x93,0xd1,0xb5,0x8a,0xea,0x11,0xd6,0x2c,0x88,0x59,0x9c,0x30,0x9c, + 0x04,0xb3,0x6f,0x6b,0x02,0xbf,0x1d,0x21,0x3d,0x9a,0xbc,0xfc,0x98,0xc2,0x5f,0xc8,0x1a,0xb3,0xb9,0x8c,0xb1,0x3d,0x67,0x8d,0xa8,0x71,0x31,0x0a,0xa0,0x93,0xab,0x7b,0x58,0xa5,0x0b,0x13,0x48,0x18,0x32,0x1a,0x48,0xff,0xc1,0xef,0x9f,0x86,0x24,0xe3,0x71,0xdd,0xf0,0x78,0xd8,0x98,0x3f,0xda,0x6c,0x4e,0xb2,0x7d,0xfb,0x25,0x51,0x74,0xe9, + 0x04,0x74,0xf5,0x7f,0xf3,0xda,0x8d,0x60,0xec,0x0b,0x38,0x2e,0x68,0x66,0xbe,0x45,0x02,0xf6,0x95,0x68,0x83,0x84,0xb4,0x05,0xe2,0x17,0x9a,0xab,0x61,0x06,0x61,0x96,0xd7,0xd2,0x40,0x64,0x18,0x5d,0x68,0xde,0x95,0xbd,0x72,0xb2,0x19,0xc0,0xc0,0xa9,0x38,0x79,0x32,0x4f,0x29,0x9f,0xb1,0x92,0x14,0xb3,0x3a,0x3e,0xd2,0xf1,0xbf,0x48,0x23, + 0x04,0x92,0x4f,0xe3,0x43,0x9d,0x35,0x42,0x7e,0x2a,0xd9,0xb1,0xf6,0xe6,0x78,0x77,0xed,0x34,0x41,0xd7,0x4b,0xdd,0x0e,0xb9,0xf8,0x2a,0xe3,0x60,0x43,0x4b,0xc2,0x06,0x24,0x53,0x7e,0x34,0x00,0x00,0x7c,0xd2,0xd1,0x40,0xf2,0xca,0xa0,0xf7,0xb6,0x1c,0x71,0x18,0xab,0xb9,0xac,0x5c,0x76,0x6e,0xca,0xb3,0xf8,0xf7,0x2e,0xa5,0xd9,0x6c,0xdf, + 0x04,0xfb,0x0e,0x48,0xa3,0x81,0x5a,0x2b,0x80,0xe9,0xe7,0x25,0x03,0x6a,0x23,0x97,0x57,0xe9,0xc5,0x98,0x78,0x50,0xa9,0x41,0xc5,0xf5,0xd2,0xb8,0x9b,0x77,0x6a,0xac,0x68,0x3a,0xdb,0x54,0x81,0xfc,0xd8,0x5f,0x00,0x13,0xfe,0xb2,0x05,0x05,0xeb,0xba,0xff,0x27,0xed,0xf8,0x47,0x4a,0x7c,0xf4,0xd9,0x85,0xec,0x56,0x73,0x65,0xec,0xbc,0x1d, + 0x04,0xe6,0x69,0x91,0x5e,0xe1,0x60,0x69,0x4e,0x85,0x59,0xd7,0x96,0x5f,0x7c,0xff,0x94,0x5c,0x1c,0xb0,0x76,0xf1,0x94,0xec,0x98,0x94,0xb1,0xa3,0x8b,0x10,0x72,0x6f,0xb0,0x38,0x96,0x75,0xe3,0x15,0x5b,0x06,0x9b,0x38,0x62,0xda,0x3d,0x11,0x12,0x17,0x9a,0x04,0xac,0xcb,0xe7,0xdb,0xb7,0x0b,0x3c,0xc4,0x8b,0xed,0xb7,0x59,0x1d,0x2e,0xac, + 0x04,0xb7,0x60,0xdf,0xff,0x4c,0x5c,0x20,0x0a,0xec,0x18,0xb9,0x30,0xb1,0x8d,0xf3,0x42,0x97,0xbb,0x42,0x1b,0x96,0x01,0x7e,0xf9,0x02,0x13,0x9f,0xe6,0xb1,0x23,0x49,0xf6,0xcc,0xb8,0xcf,0x83,0xd2,0x83,0x7c,0x75,0x20,0x30,0x0f,0x19,0x7b,0x49,0x1c,0x03,0x68,0x47,0x0e,0xe8,0x6f,0x74,0xca,0x03,0x81,0x68,0x2b,0xb6,0xad,0x80,0x34,0x4f, + 0x04,0xb0,0xe4,0xde,0x91,0x4f,0xe7,0x1b,0x61,0x63,0x6e,0x61,0x39,0x15,0x28,0xef,0xac,0x8b,0x6c,0x11,0xed,0xcd,0x41,0xc9,0x76,0x6a,0xf8,0x69,0x3d,0xbb,0x6e,0x41,0xf2,0x51,0x72,0x93,0x72,0x55,0x52,0xf2,0x2d,0xd6,0xe1,0xdb,0x7c,0x2c,0x24,0x3f,0x80,0xc1,0x07,0x13,0xf6,0xaa,0x48,0xfc,0x5e,0x39,0x5b,0xd9,0xec,0x51,0xf1,0xe9,0xc5, + 0x04,0x8e,0xb6,0xee,0x2e,0xe9,0xe0,0x61,0xac,0xb9,0x31,0x2a,0xd0,0x15,0xb1,0x95,0x4e,0xa4,0x7c,0xa3,0x04,0xa2,0xce,0xbb,0x77,0xf3,0xbf,0x6c,0x78,0x67,0x8c,0x11,0x49,0xd9,0x3f,0xc6,0xe8,0x05,0x61,0xf3,0x11,0x0f,0xd0,0xe9,0x5f,0xdc,0x0c,0xe8,0xda,0x2c,0x3f,0x32,0xf7,0xf5,0x81,0xf9,0xb6,0x66,0xd7,0x49,0x00,0xb3,0x76,0x0b,0x9f, + 0x04,0x90,0x12,0x10,0x21,0x54,0x6a,0x96,0xe7,0x87,0x9d,0x53,0xe7,0xb8,0x5c,0x21,0xf4,0x04,0x7d,0xf4,0x9b,0x9a,0xd8,0x50,0x20,0x10,0x4f,0x21,0x6d,0x01,0x0f,0x52,0x0d,0x1b,0xba,0x6e,0x76,0x57,0x42,0x39,0x5b,0x4c,0x89,0x4f,0xd0,0xea,0xaf,0x87,0x27,0x5d,0x1c,0x77,0x49,0x4c,0x01,0xcc,0xe8,0x82,0xde,0x28,0x05,0xd1,0x92,0x2c,0x0b, + 0x04,0x64,0xc1,0x71,0x2e,0x3e,0x9e,0xf4,0x40,0xc7,0xea,0x8f,0xaf,0x05,0x40,0xd2,0xe6,0xa0,0x5a,0xdc,0xcb,0xd5,0x3a,0x7f,0xb2,0x4f,0xf1,0x6a,0x95,0x02,0xa8,0x18,0xf7,0x47,0xcf,0xaf,0xd2,0x20,0x94,0x30,0xeb,0x77,0x94,0xf5,0xda,0x91,0xd6,0xc5,0xe2,0xdb,0x50,0x5b,0xa2,0x87,0xbc,0x6e,0xf3,0x97,0xbf,0x7f,0x30,0xc7,0x47,0x53,0x6a, + 0x04,0xcb,0xb0,0xde,0xab,0x12,0x57,0x54,0xf1,0xfd,0xb2,0x03,0x8b,0x04,0x34,0xed,0x9c,0xb3,0xfb,0x53,0xab,0x73,0x53,0x91,0x12,0x99,0x94,0xa5,0x35,0xd9,0x25,0xf6,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0x24,0x80,0x0d,0xea,0xc3,0xfe,0x4c,0x76,0x5b,0x6d,0xec,0x80,0xea,0x29,0x9d,0x77,0x1a,0xda,0x4f,0x30,0xe4,0xe1,0x56,0xb3,0xac,0xb7,0x20,0xdb,0xa3,0x73,0x94,0x71,0x5f,0xe4,0xc6,0x4b,0xb0,0x64,0x8e,0x26,0xd0,0x5c,0xb9,0xcc,0x98,0xac,0x86,0xd4,0xe9,0x7b,0x8b,0xf1,0x2f,0x92,0xb9,0xb2,0xfd,0xc3,0xae,0xcd,0x8e,0xa6,0x64,0x8b, + 0x04,0x8f,0x33,0x65,0x2f,0x5b,0xda,0x2c,0x32,0x95,0x3e,0xbf,0x2d,0x2e,0xca,0x95,0xe0,0x5b,0x17,0xc8,0xab,0x7d,0x99,0x60,0x1b,0xee,0x44,0x5d,0xf8,0x44,0xd4,0x6a,0x36,0x9c,0xf5,0xac,0x00,0x77,0x11,0xbd,0xbe,0x5c,0x03,0x33,0xdc,0x0c,0x06,0x36,0xa6,0x48,0x23,0xee,0x48,0x01,0x94,0x64,0x94,0x0d,0x1f,0x27,0xe0,0x5c,0x42,0x08,0xde, + 0x04,0x14,0x6d,0x3b,0x65,0xad,0xd9,0xf5,0x4c,0xcc,0xa2,0x85,0x33,0xc8,0x8e,0x2c,0xbc,0x63,0xf7,0x44,0x3e,0x16,0x58,0x78,0x3a,0xb4,0x1f,0x8e,0xf9,0x7c,0x2a,0x10,0xb5,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0xb0,0x34,0x44,0x18,0xa4,0x50,0x4c,0x07,0xe7,0x92,0x1e,0xd9,0xf0,0x07,0x14,0xb5,0xd3,0x90,0xe5,0xcb,0x5e,0x79,0x3b,0xb1,0x46,0x5f,0x73,0x17,0x4f,0x6c,0x26,0xfe,0x5f,0xe4,0xc6,0x4b,0xb0,0x64,0x8e,0x26,0xd0,0x5c,0xb9,0xcc,0x98,0xac,0x86,0xd4,0xe9,0x7b,0x8b,0xf1,0x2f,0x92,0xb9,0xb2,0xfd,0xc3,0xae,0xcd,0x8e,0xa6,0x64,0x8b, + 0x04,0x8a,0x98,0xc1,0xbc,0x6b,0xe7,0x5c,0x57,0x96,0xbe,0x4b,0x29,0xdd,0x88,0x5c,0x34,0x85,0xe7,0x5e,0x37,0xb4,0xcc,0xac,0x9b,0x37,0x25,0x1e,0x67,0x17,0x5f,0xf0,0xd6,0x9c,0xf5,0xac,0x00,0x77,0x11,0xbd,0xbe,0x5c,0x03,0x33,0xdc,0x0c,0x06,0x36,0xa6,0x48,0x23,0xee,0x48,0x01,0x94,0x64,0x94,0x0d,0x1f,0x27,0xe0,0x5c,0x42,0x08,0xde, + 0x04,0x1f,0xe1,0xe5,0xef,0x3f,0xce,0xb5,0xc1,0x35,0xab,0x77,0x41,0x33,0x3c,0xe5,0xa6,0xe8,0x0d,0x68,0x16,0x76,0x53,0xf6,0xb2,0xb2,0x4b,0xcb,0xcf,0xaa,0xaf,0xf5,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0x2b,0x4b,0xad,0xfc,0x97,0xb1,0x67,0x81,0xbc,0xff,0xf4,0xa5,0x25,0xcf,0x4d,0xd3,0x11,0x94,0xcb,0x03,0xbc,0xa5,0x6d,0x9b,0x0c,0xe9,0x6c,0x0c,0x0d,0x20,0x40,0xc0,0x5f,0xe4,0xc6,0x4b,0xb0,0x64,0x8e,0x26,0xd0,0x5c,0xb9,0xcc,0x98,0xac,0x86,0xd4,0xe9,0x7b,0x8b,0xf1,0x2f,0x92,0xb9,0xb2,0xfd,0xc3,0xae,0xcd,0x8e,0xa6,0x64,0x8b, + 0x04,0xe6,0x33,0xd9,0x14,0x38,0x3e,0x77,0x75,0xd4,0x02,0xf5,0xa8,0xf3,0xad,0x0d,0xeb,0x1f,0x00,0xd9,0x1c,0xcd,0x99,0xf3,0x48,0xda,0x96,0x83,0x9e,0xa3,0xcb,0x9d,0x52,0x9c,0xf5,0xac,0x00,0x77,0x11,0xbd,0xbe,0x5c,0x03,0x33,0xdc,0x0c,0x06,0x36,0xa6,0x48,0x23,0xee,0x48,0x01,0x94,0x64,0x94,0x0d,0x1f,0x27,0xe0,0x5c,0x42,0x08,0xde, + 0x04,0xd1,0xc1,0xb5,0x09,0xc9,0xdd,0xb7,0x62,0x21,0xa0,0x66,0xa2,0x2a,0x3c,0x33,0x3f,0xee,0x5e,0x1d,0x2d,0x1a,0x4b,0xab,0xde,0x4a,0x1d,0x33,0xec,0x24,0x7a,0x7e,0xa3,0x01,0x62,0xf9,0x54,0x53,0x4e,0xad,0xb1,0xb4,0xea,0x95,0xc5,0x7d,0x40,0xa1,0x02,0x14,0xe5,0xb7,0x46,0xee,0x6a,0xa4,0x19,0x4e,0xd2,0xb2,0x01,0x2b,0x72,0xf9,0x7d, + 0x04,0x75,0x5d,0x88,0x45,0xe7,0xb4,0xfd,0x27,0x03,0x53,0xf6,0x99,0x9e,0x97,0x24,0x22,0x24,0x01,0x55,0x27,0xbf,0x3f,0x94,0xcc,0x2c,0x69,0x3d,0x1b,0x6b,0xa1,0x22,0x98,0x60,0x4f,0x81,0x74,0xe3,0x60,0x5b,0x8f,0x18,0xbe,0xd3,0x74,0x2b,0x68,0x71,0xa8,0xcf,0xfc,0xe0,0x06,0xdb,0x31,0xb8,0xd7,0xd8,0x36,0xf5,0x0c,0xfc,0xda,0x7d,0x16, + 0x04,0xc6,0xf9,0xfc,0x86,0x44,0xba,0x5c,0x9e,0xa9,0xbe,0xb1,0x2c,0xe2,0xcb,0x91,0x1c,0x54,0x87,0xe8,0xb1,0xbe,0x91,0xd5,0xa1,0x68,0x31,0x8f,0x4a,0xe4,0x4d,0x66,0x80,0x7b,0xc3,0x37,0xa1,0xc8,0x2e,0x3c,0x5f,0x7a,0x29,0x27,0x98,0x7b,0x8f,0xae,0x13,0x62,0x72,0x37,0xd2,0x20,0xfa,0xfb,0x40,0x13,0x12,0x3b,0xfb,0xd9,0x5f,0x0b,0xa5, + 0x04,0xd3,0x17,0x9f,0xce,0x57,0x81,0xd0,0xc4,0x9c,0xe8,0x48,0x0a,0x81,0x1f,0x6f,0x08,0xe3,0xf1,0x23,0xd9,0xf6,0x01,0x0f,0xbf,0x61,0x9b,0x5d,0x86,0x8a,0x8e,0xa8,0x33,0xdd,0xf9,0xa6,0x66,0xbf,0x00,0x15,0xb2,0x0e,0x49,0x12,0xf7,0x0f,0x65,0x5e,0xf2,0x1b,0x82,0x08,0x75,0x96,0xaa,0x1e,0x2f,0x1e,0x28,0x65,0x35,0x0d,0x15,0x91,0x85, + 0x04,0x9e,0x09,0x80,0x95,0x46,0x3c,0x91,0xac,0x71,0x07,0xa9,0x20,0xcc,0xb2,0x76,0xd4,0x5e,0x1f,0x72,0x40,0xef,0x2b,0x93,0xb9,0x57,0xee,0x09,0x39,0x3d,0x32,0xe0,0x01,0x50,0x3a,0xf4,0xa2,0xe3,0xb2,0x62,0x79,0x56,0x4f,0xed,0x8e,0x77,0x2a,0x04,0x3e,0x75,0x63,0x0e,0x4e,0x38,0x59,0x97,0x6e,0xde,0x88,0xff,0xcf,0x16,0xf5,0xca,0x71, + 0x04,0xbf,0x30,0x34,0xa9,0x93,0x51,0x82,0xda,0x36,0x25,0x70,0x31,0x50,0x11,0x54,0x4a,0xc2,0xce,0x8a,0x9c,0x22,0x77,0x7c,0x2f,0xc7,0x67,0xac,0x9c,0x5c,0x0d,0xae,0xeb,0xcf,0x33,0x35,0x62,0xf3,0xe0,0x18,0x89,0x23,0x74,0x35,0x36,0x74,0xde,0x84,0x90,0xfc,0x9d,0x30,0x42,0x65,0x98,0xeb,0x60,0x07,0x79,0x15,0x4b,0xaf,0x2a,0xec,0x17, + 0x04,0x70,0x9c,0x71,0x79,0xc2,0xbb,0x27,0xce,0x39,0x85,0xba,0x42,0xfe,0xb8,0x70,0xf0,0x69,0xda,0xce,0xad,0x92,0x94,0xc8,0x05,0x57,0xbe,0x88,0x2f,0xb5,0x77,0x90,0x48,0x1e,0x6f,0xe2,0xc1,0xa7,0x15,0x16,0x3e,0xfa,0xf8,0x6e,0xa8,0xb1,0xe5,0x5e,0xa5,0x74,0x2d,0x6b,0x04,0x2e,0x6c,0xbf,0x8a,0xcc,0x69,0xc9,0x9f,0x82,0x71,0xa9,0x02, + 0x04,0x26,0x4c,0x00,0xa2,0xd9,0x25,0x14,0xa6,0xdb,0xe6,0x55,0xde,0x3c,0x71,0xa5,0x74,0x0c,0xec,0x4f,0xcb,0x25,0x1a,0xa4,0x8c,0xa6,0x74,0x5d,0xbe,0xa6,0xf5,0xf7,0xcf,0xc1,0xd5,0xee,0x9f,0xc3,0xce,0x49,0xfd,0x45,0x09,0xd3,0x3c,0x4d,0xcf,0xcc,0x1a,0x20,0xa6,0x60,0x52,0x9f,0xa9,0xeb,0xd6,0xe6,0xaf,0xc3,0xd5,0xc8,0x4c,0x72,0xbb, + 0x04,0xa1,0x21,0x24,0x60,0x6b,0xcb,0xbb,0x33,0xce,0xce,0xc7,0xfc,0x8d,0x78,0xb3,0x89,0x71,0x92,0xca,0x85,0x15,0x60,0xc5,0x39,0xe4,0x7d,0xd2,0x76,0xc6,0x3b,0xd3,0xc2,0xf2,0x0a,0x0c,0xa6,0x18,0xba,0x01,0x31,0xa2,0xe3,0x73,0xf3,0x1f,0x73,0xb3,0xf5,0x5e,0x91,0x88,0xd4,0x6f,0xdd,0xbc,0x63,0x87,0xe3,0x2a,0xef,0xb9,0xf3,0xba,0x12, + 0x04,0x24,0x4b,0x7a,0xfe,0x7f,0x31,0x28,0x9f,0x9d,0x6a,0xae,0xb7,0xf7,0x0d,0x29,0xa7,0xb4,0x9a,0x22,0x8c,0x7b,0xb2,0x02,0x76,0x4a,0xba,0x94,0xda,0xaa,0xa3,0x33,0x22,0x70,0xc6,0x09,0x75,0x74,0x8f,0x0c,0x74,0x9a,0x8b,0x0f,0x8f,0xc1,0xe2,0x22,0xdd,0xcb,0xd3,0x38,0x4f,0x6d,0x68,0xf0,0xb6,0xb6,0xff,0x67,0x9b,0x43,0x5c,0xdc,0xb1, + 0x04,0x2a,0xc2,0x9d,0xb2,0xeb,0xc4,0xfa,0x94,0x73,0xb4,0x2b,0xd3,0x35,0xa6,0x02,0x26,0x57,0x9c,0xc1,0x86,0xb2,0xc6,0x76,0xa3,0xb0,0x1b,0xc6,0x0e,0x58,0x96,0x16,0x16,0x5a,0xa9,0xc0,0xd1,0xb2,0x40,0xe6,0xdd,0x42,0x11,0xe3,0x23,0x54,0x25,0x63,0x4b,0x27,0x8a,0xd8,0x8f,0xed,0xe0,0x33,0x7d,0x5a,0xcf,0x31,0x36,0x58,0x7d,0x84,0x13, + 0x04,0xe6,0x2a,0xee,0x52,0x05,0xa8,0x06,0x3e,0x3a,0xe4,0x01,0xd5,0x3e,0x93,0x43,0x00,0x1e,0x55,0xeb,0x5f,0x4e,0x4d,0x6b,0x70,0xe2,0xb8,0x41,0x59,0xcf,0x31,0x57,0xe6,0x4b,0xa2,0xe4,0x20,0xca,0xbc,0x43,0xb6,0xe8,0xe8,0x65,0x90,0xfc,0x23,0x83,0xd1,0x78,0x27,0xdd,0x99,0xa6,0x0c,0x21,0x1f,0x19,0x0a,0x74,0x26,0x91,0x00,0xc1,0x41, + 0x04,0x31,0xdc,0xe6,0xde,0x74,0x1f,0x10,0x26,0x7f,0x2e,0x8f,0x3d,0x57,0x2a,0x4f,0x49,0xbe,0x5f,0xe5,0x2f,0xf7,0xbf,0xf3,0xc3,0xb4,0x64,0x6f,0x38,0x07,0x6c,0x06,0x75,0x27,0x02,0xa5,0x15,0xa9,0xa5,0x0d,0xb1,0xd8,0x6f,0xd4,0x2a,0xea,0x08,0x34,0xda,0xeb,0x62,0xbe,0x03,0xd0,0xcd,0x90,0x33,0xf8,0x4b,0x9c,0x4b,0x56,0xa1,0x9f,0x12, + 0x04,0x65,0x18,0xcd,0x66,0xb1,0xd8,0x41,0xe6,0x89,0xd5,0xdc,0x66,0x74,0xc7,0xcc,0x7d,0x96,0x45,0x74,0xd1,0x49,0x0f,0xff,0x79,0x06,0xbd,0x37,0x34,0x94,0x79,0x15,0x99,0x10,0x42,0x77,0x17,0x06,0x92,0xfa,0x6b,0xf2,0x27,0x05,0x80,0xd5,0x6d,0x1b,0xc8,0x1b,0x54,0xf4,0x77,0xd8,0xab,0x6c,0x3f,0x58,0x42,0x65,0x0a,0xc7,0x17,0x6d,0x71, + 0x04,0x95,0x2a,0x88,0xce,0x31,0xad,0x4c,0xb0,0x86,0x97,0x8e,0x6c,0x56,0x21,0xc3,0xd8,0x02,0x3b,0x2c,0x11,0x41,0x8d,0x6f,0xd0,0xdc,0xef,0x8d,0xe7,0x21,0x23,0xef,0xc1,0x5d,0x36,0x76,0x88,0xfd,0xe5,0xe0,0x82,0xf0,0x97,0x85,0x5a,0x0c,0x0a,0xdc,0x30,0x5d,0xd6,0xcf,0x46,0xf5,0x0c,0xa7,0x58,0x59,0xbb,0x24,0x3b,0x70,0x24,0x96,0x05, + 0x04,0x2a,0x43,0xf3,0x35,0x73,0xb6,0x19,0x71,0x90,0x99,0xcf,0x54,0xf6,0xcc,0xcb,0x28,0xd1,0x6d,0xf3,0x99,0x22,0x39,0xfa,0xdf,0x79,0xc7,0xac,0xb9,0xc6,0x4f,0x7a,0xf0,0xf4,0xd1,0xd2,0x2a,0xf7,0x18,0x7c,0x8d,0xe1,0xb9,0x92,0xa4,0x04,0x6c,0x41,0x9b,0x80,0x1c,0xde,0x57,0xd6,0x38,0xd3,0x0f,0x2e,0x1a,0xc4,0x93,0x53,0x11,0x7a,0x20, + 0x04,0x1b,0x1b,0x0c,0x75,0x40,0x87,0x85,0xe8,0x47,0x27,0xb0,0xe5,0x5e,0x4b,0xa2,0x0d,0x0f,0x25,0x99,0xc4,0xed,0x08,0x48,0x2d,0xc1,0xf3,0xb5,0xdf,0x54,0x56,0x91,0x38,0x01,0x62,0xf9,0x54,0x53,0x4e,0xad,0xb1,0xb4,0xea,0x95,0xc5,0x7d,0x40,0xa1,0x02,0x14,0xe5,0xb7,0x46,0xee,0x6a,0xa4,0x19,0x4e,0xd2,0xb2,0x01,0x2b,0x72,0xf9,0x7d, + 0x04,0x4d,0xd1,0x28,0x3b,0xcc,0xd3,0x6c,0xc3,0x40,0x2f,0x3a,0x81,0xe2,0xe9,0xb0,0xd6,0xa2,0xb2,0xb1,0xde,0xbb,0xbd,0x44,0xff,0xc1,0xf1,0x79,0xbd,0x49,0xcf,0x0a,0x7e,0x60,0x4f,0x81,0x74,0xe3,0x60,0x5b,0x8f,0x18,0xbe,0xd3,0x74,0x2b,0x68,0x71,0xa8,0xcf,0xfc,0xe0,0x06,0xdb,0x31,0xb8,0xd7,0xd8,0x36,0xf5,0x0c,0xfc,0xda,0x7d,0x16, + 0x04,0xa4,0x99,0xdb,0xf7,0x32,0xe4,0x38,0xbe,0x0e,0xb0,0x84,0xb9,0xe6,0xad,0x87,0x9d,0xd7,0xa2,0x90,0x4b,0xbb,0x00,0x4b,0x40,0x02,0x79,0x69,0xa1,0x71,0xf2,0xd4,0x26,0x7b,0xc3,0x37,0xa1,0xc8,0x2e,0x3c,0x5f,0x7a,0x29,0x27,0x98,0x7b,0x8f,0xae,0x13,0x62,0x72,0x37,0xd2,0x20,0xfa,0xfb,0x40,0x13,0x12,0x3b,0xfb,0xd9,0x5f,0x0b,0xa5, + 0x04,0xad,0xcf,0x0f,0xfb,0xa9,0xcb,0x6e,0xf0,0xc8,0x03,0x1c,0x42,0x91,0xa4,0x34,0xb1,0x8d,0x78,0xf4,0x2e,0x45,0xe6,0x2b,0xa0,0x1f,0xbe,0x91,0xf9,0x27,0x3f,0x0a,0xd1,0xdd,0xf9,0xa6,0x66,0xbf,0x00,0x15,0xb2,0x0e,0x49,0x12,0xf7,0x0f,0x65,0x5e,0xf2,0x1b,0x82,0x08,0x75,0x96,0xaa,0x1e,0x2f,0x1e,0x28,0x65,0x35,0x0d,0x15,0x91,0x85, + 0x04,0x21,0x71,0x27,0x25,0xd9,0x80,0x6a,0xcf,0x54,0xd3,0xa6,0xc8,0x2b,0xf9,0x3c,0x0f,0xe2,0x49,0x26,0x8c,0xa9,0xf4,0x2e,0xce,0xac,0x19,0xe9,0x3a,0x5e,0xab,0x80,0x56,0x50,0x3a,0xf4,0xa2,0xe3,0xb2,0x62,0x79,0x56,0x4f,0xed,0x8e,0x77,0x2a,0x04,0x3e,0x75,0x63,0x0e,0x4e,0x38,0x59,0x97,0x6e,0xde,0x88,0xff,0xcf,0x16,0xf5,0xca,0x71, + 0x04,0x1e,0x02,0x17,0x68,0x24,0xbd,0x31,0xea,0xbd,0xce,0x03,0xa9,0x40,0x3c,0x7d,0x3c,0x2a,0xc6,0x31,0xf9,0xb0,0xe8,0x8d,0x9a,0x92,0x47,0x01,0xc1,0xb2,0xf2,0x9b,0x85,0xcf,0x33,0x35,0x62,0xf3,0xe0,0x18,0x89,0x23,0x74,0x35,0x36,0x74,0xde,0x84,0x90,0xfc,0x9d,0x30,0x42,0x65,0x98,0xeb,0x60,0x07,0x79,0x15,0x4b,0xaf,0x2a,0xec,0x17, + 0x04,0x63,0xe7,0xa1,0xaf,0x36,0xd6,0xb5,0x40,0xa4,0x92,0x76,0xaa,0xc3,0xfe,0xc9,0xcb,0x45,0xed,0x6b,0xab,0x16,0x7c,0x06,0xb0,0x41,0x9a,0x77,0xb9,0x13,0x99,0xf6,0x18,0x1e,0x6f,0xe2,0xc1,0xa7,0x15,0x16,0x3e,0xfa,0xf8,0x6e,0xa8,0xb1,0xe5,0x5e,0xa5,0x74,0x2d,0x6b,0x04,0x2e,0x6c,0xbf,0x8a,0xcc,0x69,0xc9,0x9f,0x82,0x71,0xa9,0x02, + 0x04,0x1e,0x26,0x5a,0xb5,0xb7,0xf7,0x19,0x94,0x70,0xe5,0x32,0x65,0x3d,0x2a,0x7b,0x9a,0x8b,0x72,0x89,0x70,0xb8,0x38,0x13,0x7c,0x96,0x92,0xed,0x06,0x92,0x89,0x7b,0x2a,0xc1,0xd5,0xee,0x9f,0xc3,0xce,0x49,0xfd,0x45,0x09,0xd3,0x3c,0x4d,0xcf,0xcc,0x1a,0x20,0xa6,0x60,0x52,0x9f,0xa9,0xeb,0xd6,0xe6,0xaf,0xc3,0xd5,0xc8,0x4c,0x72,0xbb, + 0x04,0x54,0xd2,0xa4,0x39,0x4c,0x10,0x9f,0xcb,0xd3,0xcb,0x98,0x86,0xfe,0xc3,0xad,0xd5,0x1b,0xa4,0xd2,0xe4,0x4e,0x1d,0x56,0x76,0xe4,0xb9,0x8f,0x0c,0x13,0x65,0x5f,0xc5,0xf2,0x0a,0x0c,0xa6,0x18,0xba,0x01,0x31,0xa2,0xe3,0x73,0xf3,0x1f,0x73,0xb3,0xf5,0x5e,0x91,0x88,0xd4,0x6f,0xdd,0xbc,0x63,0x87,0xe3,0x2a,0xef,0xb9,0xf3,0xba,0x12, + 0x04,0x93,0xf1,0x45,0x92,0x07,0xfb,0x09,0xc6,0xf0,0xa8,0x8c,0x39,0x8a,0xc8,0x0d,0x10,0x52,0xa4,0xcd,0x33,0xe7,0xee,0xf5,0x68,0x7d,0xa9,0x9a,0xb9,0x7c,0x60,0x24,0xb7,0x70,0xc6,0x09,0x75,0x74,0x8f,0x0c,0x74,0x9a,0x8b,0x0f,0x8f,0xc1,0xe2,0x22,0xdd,0xcb,0xd3,0x38,0x4f,0x6d,0x68,0xf0,0xb6,0xb6,0xff,0x67,0x9b,0x43,0x5c,0xdc,0xb1, + 0x04,0x1f,0xa0,0x49,0xa1,0x89,0x2b,0x67,0x98,0x57,0xc6,0xdf,0xf0,0x8a,0xf1,0x9d,0xb7,0x0c,0xbc,0x99,0xb6,0xf2,0xd7,0xbc,0x51,0xa3,0x41,0xfe,0x79,0xd1,0x64,0x7f,0x4a,0x5a,0xa9,0xc0,0xd1,0xb2,0x40,0xe6,0xdd,0x42,0x11,0xe3,0x23,0x54,0x25,0x63,0x4b,0x27,0x8a,0xd8,0x8f,0xed,0xe0,0x33,0x7d,0x5a,0xcf,0x31,0x36,0x58,0x7d,0x84,0x13, + 0x04,0x84,0xe0,0xb1,0x92,0xd6,0x0a,0xbf,0x53,0x1e,0x82,0x8e,0x88,0x7d,0x36,0x6d,0x86,0x9e,0x10,0x33,0xa1,0x6e,0x9c,0x7f,0x11,0x67,0x45,0x8c,0x81,0x34,0xc1,0x0f,0xba,0x4b,0xa2,0xe4,0x20,0xca,0xbc,0x43,0xb6,0xe8,0xe8,0x65,0x90,0xfc,0x23,0x83,0xd1,0x78,0x27,0xdd,0x99,0xa6,0x0c,0x21,0x1f,0x19,0x0a,0x74,0x26,0x91,0x00,0xc1,0x41, + 0x04,0x2f,0x97,0x07,0xc6,0x71,0x18,0x72,0x41,0x11,0xef,0xbb,0xbb,0xf0,0x6b,0x62,0x3a,0xb2,0xff,0xd9,0x25,0x9d,0xdc,0x35,0x4f,0xca,0xaf,0x81,0xba,0x01,0xf6,0xfa,0x7b,0x27,0x02,0xa5,0x15,0xa9,0xa5,0x0d,0xb1,0xd8,0x6f,0xd4,0x2a,0xea,0x08,0x34,0xda,0xeb,0x62,0xbe,0x03,0xd0,0xcd,0x90,0x33,0xf8,0x4b,0x9c,0x4b,0x56,0xa1,0x9f,0x12, + 0x04,0xac,0x1f,0xbb,0xe4,0x22,0x93,0xa9,0xf9,0xae,0x10,0x4e,0xe2,0xda,0x0b,0x0a,0x9b,0x34,0x64,0xd5,0xd8,0xb1,0xe8,0x54,0xdf,0x19,0xd3,0xc4,0x45,0x6a,0xf8,0xf9,0xa6,0x10,0x42,0x77,0x17,0x06,0x92,0xfa,0x6b,0xf2,0x27,0x05,0x80,0xd5,0x6d,0x1b,0xc8,0x1b,0x54,0xf4,0x77,0xd8,0xab,0x6c,0x3f,0x58,0x42,0x65,0x0a,0xc7,0x17,0x6d,0x71, + 0x04,0xba,0xe1,0x0c,0xf9,0x3f,0xf7,0xb7,0x2d,0x6e,0xd9,0x85,0x19,0x60,0x2e,0x9f,0x03,0xaa,0x40,0x30,0x3f,0xa0,0x67,0x4f,0xb3,0xdd,0xee,0x7d,0x2d,0xb1,0xc9,0x2b,0xb2,0x5d,0x36,0x76,0x88,0xfd,0xe5,0xe0,0x82,0xf0,0x97,0x85,0x5a,0x0c,0x0a,0xdc,0x30,0x5d,0xd6,0xcf,0x46,0xf5,0x0c,0xa7,0x58,0x59,0xbb,0x24,0x3b,0x70,0x24,0x96,0x05, + 0x04,0xed,0xb4,0x28,0x8c,0xf5,0x56,0x76,0x73,0xd5,0x0a,0x1c,0xd9,0xe6,0xbe,0xa4,0x53,0x17,0x82,0x3f,0x30,0x38,0x3f,0x60,0xd9,0xbc,0x3b,0x9e,0xe4,0x2a,0xc2,0x98,0x71,0xf4,0xd1,0xd2,0x2a,0xf7,0x18,0x7c,0x8d,0xe1,0xb9,0x92,0xa4,0x04,0x6c,0x41,0x9b,0x80,0x1c,0xde,0x57,0xd6,0x38,0xd3,0x0f,0x2e,0x1a,0xc4,0x93,0x53,0x11,0x7a,0x20, + 0x04,0x13,0x23,0x3e,0x80,0xf5,0x9a,0xc2,0xb5,0x97,0x37,0xe8,0x78,0x77,0x78,0x2a,0xb3,0x02,0x7c,0x49,0x0d,0xf8,0xac,0x0b,0xf3,0xf3,0xef,0x16,0x33,0x87,0x2e,0xec,0x54,0x01,0x62,0xf9,0x54,0x53,0x4e,0xad,0xb1,0xb4,0xea,0x95,0xc5,0x7d,0x40,0xa1,0x02,0x14,0xe5,0xb7,0x46,0xee,0x6a,0xa4,0x19,0x4e,0xd2,0xb2,0x01,0x2b,0x72,0xf9,0x7d, + 0x04,0x3c,0xd1,0x4f,0x7e,0x4b,0x77,0x96,0x15,0xbc,0x7c,0xce,0xe4,0x7e,0x7f,0x2b,0x07,0x39,0x4b,0xf8,0xf9,0x85,0x03,0x26,0x34,0x11,0xa5,0x49,0x26,0x4a,0x8f,0xcf,0x19,0x60,0x4f,0x81,0x74,0xe3,0x60,0x5b,0x8f,0x18,0xbe,0xd3,0x74,0x2b,0x68,0x71,0xa8,0xcf,0xfc,0xe0,0x06,0xdb,0x31,0xb8,0xd7,0xd8,0x36,0xf5,0x0c,0xfc,0xda,0x7d,0x16, + 0x04,0x94,0x6c,0x27,0x82,0x88,0x61,0x6a,0xa3,0x47,0x90,0xca,0x19,0x36,0x86,0xe7,0x45,0xd3,0xd5,0x87,0x02,0x86,0x6d,0xdf,0x1e,0x95,0x55,0x07,0x11,0xa9,0xbf,0xbd,0xb8,0x7b,0xc3,0x37,0xa1,0xc8,0x2e,0x3c,0x5f,0x7a,0x29,0x27,0x98,0x7b,0x8f,0xae,0x13,0x62,0x72,0x37,0xd2,0x20,0xfa,0xfb,0x40,0x13,0x12,0x3b,0xfb,0xd9,0x5f,0x0b,0xa5, + 0x04,0x7f,0x19,0x50,0x35,0xfe,0xb2,0xc0,0x4a,0x9b,0x14,0x9b,0xb2,0xed,0x3c,0x5c,0x45,0x8e,0x95,0xe7,0xf7,0xc4,0x18,0xc4,0xa0,0x7e,0xa6,0x10,0x7e,0x4e,0x32,0x45,0x5a,0xdd,0xf9,0xa6,0x66,0xbf,0x00,0x15,0xb2,0x0e,0x49,0x12,0xf7,0x0f,0x65,0x5e,0xf2,0x1b,0x82,0x08,0x75,0x96,0xaa,0x1e,0x2f,0x1e,0x28,0x65,0x35,0x0d,0x15,0x91,0x85, + 0x04,0x40,0x85,0x58,0x44,0xe0,0x43,0x03,0x84,0x3a,0x24,0xb0,0x17,0x07,0x54,0x4d,0x1b,0xbf,0x97,0x67,0x32,0x66,0xe0,0x3d,0x77,0xfb,0xf8,0x0d,0x8b,0x64,0x21,0x9b,0xd8,0x50,0x3a,0xf4,0xa2,0xe3,0xb2,0x62,0x79,0x56,0x4f,0xed,0x8e,0x77,0x2a,0x04,0x3e,0x75,0x63,0x0e,0x4e,0x38,0x59,0x97,0x6e,0xde,0x88,0xff,0xcf,0x16,0xf5,0xca,0x71, + 0x04,0x22,0xcd,0xb3,0xee,0x47,0xf1,0x4b,0x3b,0x0c,0x0c,0x8c,0x25,0x6f,0xb2,0x2e,0x79,0x12,0x6b,0x43,0x6a,0x2c,0x9f,0xf6,0x35,0xa6,0x51,0x51,0xa0,0xf0,0xff,0xb1,0xbf,0xcf,0x33,0x35,0x62,0xf3,0xe0,0x18,0x89,0x23,0x74,0x35,0x36,0x74,0xde,0x84,0x90,0xfc,0x9d,0x30,0x42,0x65,0x98,0xeb,0x60,0x07,0x79,0x15,0x4b,0xaf,0x2a,0xec,0x17, + 0x04,0x2b,0x7b,0xec,0xd7,0x06,0x6e,0x22,0xf1,0x21,0xe7,0xcf,0x12,0x3d,0x48,0xc5,0x44,0x50,0x37,0xc5,0xa7,0x56,0xef,0x31,0x4a,0x66,0xa7,0x00,0x16,0x36,0xee,0x75,0xcf,0x1e,0x6f,0xe2,0xc1,0xa7,0x15,0x16,0x3e,0xfa,0xf8,0x6e,0xa8,0xb1,0xe5,0x5e,0xa5,0x74,0x2d,0x6b,0x04,0x2e,0x6c,0xbf,0x8a,0xcc,0x69,0xc9,0x9f,0x82,0x71,0xa9,0x02, + 0x04,0xbb,0x8d,0xa4,0xa7,0x6e,0xe3,0xd1,0xc4,0xb3,0x34,0x77,0xbc,0x86,0x63,0xde,0xf1,0x67,0xa1,0x26,0xc4,0x22,0xad,0x47,0xf6,0xc2,0xf8,0xb5,0x39,0xc6,0x80,0x89,0x36,0xc1,0xd5,0xee,0x9f,0xc3,0xce,0x49,0xfd,0x45,0x09,0xd3,0x3c,0x4d,0xcf,0xcc,0x1a,0x20,0xa6,0x60,0x52,0x9f,0xa9,0xeb,0xd6,0xe6,0xaf,0xc3,0xd5,0xc8,0x4c,0x72,0xbb, + 0x04,0x0a,0x0c,0x37,0x66,0x48,0x23,0xa5,0x00,0x5d,0x65,0x9f,0x7c,0x73,0xc3,0x9e,0xa1,0x72,0xc8,0x62,0x96,0x9c,0x81,0xe4,0x4f,0x36,0xc8,0x9e,0x7c,0x26,0x5e,0xc8,0xa8,0xf2,0x0a,0x0c,0xa6,0x18,0xba,0x01,0x31,0xa2,0xe3,0x73,0xf3,0x1f,0x73,0xb3,0xf5,0x5e,0x91,0x88,0xd4,0x6f,0xdd,0xbc,0x63,0x87,0xe3,0x2a,0xef,0xb9,0xf3,0xba,0x12, + 0x04,0x47,0xc3,0x3f,0x6f,0x78,0xd3,0xcd,0x99,0x71,0xec,0xc5,0x0e,0x7e,0x2a,0xc9,0x47,0xf8,0xc1,0x10,0x3f,0x9c,0x5f,0x08,0x21,0x37,0x9b,0xd0,0x6a,0xd8,0xfc,0xa4,0x56,0x70,0xc6,0x09,0x75,0x74,0x8f,0x0c,0x74,0x9a,0x8b,0x0f,0x8f,0xc1,0xe2,0x22,0xdd,0xcb,0xd3,0x38,0x4f,0x6d,0x68,0xf0,0xb6,0xb6,0xff,0x67,0x9b,0x43,0x5c,0xdc,0xb1, + 0x04,0xb5,0x9d,0x18,0xab,0x8b,0x0f,0x9d,0xd3,0x34,0x84,0xf4,0x3c,0x3f,0x68,0x60,0x22,0x9b,0xa6,0xa4,0xc2,0x5a,0x61,0xcd,0x0a,0xac,0xa2,0x3b,0x76,0xd6,0x05,0x66,0xcf,0x5a,0xa9,0xc0,0xd1,0xb2,0x40,0xe6,0xdd,0x42,0x11,0xe3,0x23,0x54,0x25,0x63,0x4b,0x27,0x8a,0xd8,0x8f,0xed,0xe0,0x33,0x7d,0x5a,0xcf,0x31,0x36,0x58,0x7d,0x84,0x13, + 0x04,0x94,0xf4,0x60,0x1b,0x24,0x4d,0x3a,0x6e,0xa6,0x99,0x6f,0xa2,0x44,0x36,0x4f,0x79,0x43,0x99,0xe0,0xff,0x43,0x16,0x15,0x7d,0xb6,0x02,0x32,0x22,0xfc,0x0d,0x90,0xbe,0x4b,0xa2,0xe4,0x20,0xca,0xbc,0x43,0xb6,0xe8,0xe8,0x65,0x90,0xfc,0x23,0x83,0xd1,0x78,0x27,0xdd,0x99,0xa6,0x0c,0x21,0x1f,0x19,0x0a,0x74,0x26,0x91,0x00,0xc1,0x41, + 0x04,0x9e,0x8c,0x11,0x5b,0x1a,0xc8,0x7d,0x98,0x6e,0xe1,0xb5,0x06,0xb8,0x6a,0x4e,0x7b,0x8e,0xa0,0x41,0xaa,0x6a,0x63,0xd6,0xec,0x80,0xec,0x0f,0x0c,0xf6,0x9c,0xfb,0x3f,0x27,0x02,0xa5,0x15,0xa9,0xa5,0x0d,0xb1,0xd8,0x6f,0xd4,0x2a,0xea,0x08,0x34,0xda,0xeb,0x62,0xbe,0x03,0xd0,0xcd,0x90,0x33,0xf8,0x4b,0x9c,0x4b,0x56,0xa1,0x9f,0x12, + 0x04,0xee,0xc7,0x76,0xb5,0x2b,0x94,0x14,0x1f,0xc8,0x19,0xd4,0xb6,0xb1,0x2d,0x28,0xe7,0x35,0x55,0xb5,0x56,0x05,0x07,0xab,0xa7,0xdf,0x6f,0x04,0x84,0x00,0x8d,0xe9,0x1f,0x10,0x42,0x77,0x17,0x06,0x92,0xfa,0x6b,0xf2,0x27,0x05,0x80,0xd5,0x6d,0x1b,0xc8,0x1b,0x54,0xf4,0x77,0xd8,0xab,0x6c,0x3f,0x58,0x42,0x65,0x0a,0xc7,0x17,0x6d,0x71, + 0x04,0xaf,0xf4,0x6a,0x38,0x8e,0x5a,0xfc,0x22,0x0a,0x8e,0xec,0x7a,0x49,0xaf,0x9d,0x24,0x53,0x84,0xa3,0xaf,0x1e,0x0b,0x40,0x7b,0x45,0x21,0xf4,0xe9,0x2d,0x12,0xdc,0xeb,0x5d,0x36,0x76,0x88,0xfd,0xe5,0xe0,0x82,0xf0,0x97,0x85,0x5a,0x0c,0x0a,0xdc,0x30,0x5d,0xd6,0xcf,0x46,0xf5,0x0c,0xa7,0x58,0x59,0xbb,0x24,0x3b,0x70,0x24,0x96,0x05, + 0x04,0xe8,0x07,0xe4,0x3d,0x96,0xf3,0x70,0x1a,0x9a,0x5c,0x13,0xd1,0x22,0x74,0x90,0x84,0x17,0x0f,0xcd,0x36,0xa5,0x86,0xa4,0x46,0xc9,0xfc,0xb4,0x60,0x0e,0xed,0xe4,0xfd,0xf4,0xd1,0xd2,0x2a,0xf7,0x18,0x7c,0x8d,0xe1,0xb9,0x92,0xa4,0x04,0x6c,0x41,0x9b,0x80,0x1c,0xde,0x57,0xd6,0x38,0xd3,0x0f,0x2e,0x1a,0xc4,0x93,0x53,0x11,0x7a,0x20, + 0x04,0x79,0x88,0x68,0xa5,0x69,0x16,0xd3,0x41,0xe7,0xd6,0xf9,0x63,0x59,0xae,0x36,0x58,0x83,0x6e,0x22,0x14,0x59,0xf4,0xf7,0xb7,0xb6,0x36,0x94,0xde,0x18,0xa5,0xe9,0x24,0x77,0x13,0xfd,0xb0,0x3a,0x8d,0xe8,0xc6,0xd2,0x9c,0xa3,0x8a,0x9f,0xba,0xa8,0x2e,0x5e,0x02,0xbe,0xad,0x2f,0x9e,0xec,0x69,0xb6,0x44,0x4b,0x7a,0xdb,0x05,0x33,0x3b, + 0x04,0xff,0x41,0x99,0x09,0xd8,0xa8,0xce,0x0a,0x94,0x16,0x05,0x1f,0x4e,0x25,0x62,0x08,0xc1,0xdc,0x03,0x55,0x81,0xa5,0x33,0x12,0xd5,0x66,0x13,0x7e,0x22,0x10,0x4e,0x98,0x77,0x42,0x1a,0xb0,0x1e,0x00,0xe8,0x38,0x41,0xb9,0x46,0xda,0xe5,0xbb,0x5a,0x23,0x97,0x3d,0xaa,0x98,0xfe,0x1a,0x81,0x72,0x88,0x3a,0xbc,0xbe,0xdc,0xed,0x70,0x21, + 0x04,0x8b,0x48,0x11,0x9d,0x70,0x89,0xd3,0xb9,0x5c,0xd2,0xea,0xf8,0xc8,0x55,0x84,0xfa,0x8f,0x5e,0x56,0xc4,0xc4,0xcc,0xee,0x70,0x37,0xd7,0x4c,0xdb,0xf8,0x8e,0x57,0x17,0x14,0xc1,0xaa,0xc5,0xf0,0xbf,0x1b,0x48,0xa4,0xab,0xcf,0x1d,0x92,0x91,0xb9,0xa8,0x77,0x6a,0x00,0x43,0x80,0x54,0x6a,0x5a,0x1c,0x1f,0x29,0x46,0x90,0xf6,0x19,0x69, + 0x04,0xe2,0x88,0x81,0x19,0x37,0x9b,0x5b,0x21,0x51,0xbd,0x78,0x85,0x05,0xde,0xf1,0xd6,0xbd,0x78,0x63,0x29,0x43,0x1c,0xaf,0x39,0x70,0x5d,0x9c,0xbf,0x96,0xa4,0x2e,0xa4,0x3b,0xb7,0x32,0x88,0x39,0xd2,0xae,0xca,0xc6,0x4b,0x1c,0xdb,0x18,0x2f,0x08,0xad,0xcc,0xaa,0xc3,0x27,0xed,0x00,0x89,0x87,0xa1,0x0e,0xdc,0x97,0x32,0x41,0x3c,0xed, + 0x04,0x6d,0xcc,0x39,0x71,0xbd,0x20,0x91,0x3d,0x59,0xa9,0x1f,0x20,0xd9,0x12,0xf5,0x6d,0x07,0xe7,0xf0,0x14,0x20,0x6b,0xef,0x4a,0x65,0x3d,0xdf,0xe5,0xd1,0x28,0x42,0xc3,0x9b,0x51,0xb1,0x7b,0x76,0xea,0x6c,0xc1,0x37,0xee,0xbd,0x93,0xc8,0x11,0xe6,0x36,0xd8,0xae,0x26,0xc7,0x0d,0x06,0x46,0x50,0xf7,0x20,0x5a,0x86,0x5d,0x01,0xa6,0xee, + 0x04,0x7e,0xbe,0xa4,0x58,0x54,0x56,0x9a,0x1f,0x7e,0xa6,0xb9,0x5b,0x82,0xd6,0xbe,0xfe,0xfb,0xf6,0x29,0x6e,0xbc,0x87,0xc8,0x10,0xb6,0xcb,0xa9,0x3c,0x0c,0x12,0x20,0xb2,0x3f,0x18,0x74,0xfa,0x08,0xa6,0x93,0xb0,0x86,0x64,0x3e,0xf2,0x1e,0xb5,0x9d,0x75,0x56,0x2d,0xa9,0x42,0x2d,0x13,0xd9,0xa3,0x9b,0x0b,0x17,0xe2,0x41,0xb0,0x4d,0x32, + 0x04,0xce,0xab,0x59,0x37,0x90,0x0d,0x34,0xfa,0x88,0x37,0x8d,0x37,0x1f,0x4a,0xca,0xa7,0xc6,0xa2,0x02,0x8b,0x61,0x43,0x21,0x34,0x13,0xf1,0x6b,0xa2,0xdc,0x71,0x47,0x87,0x77,0x13,0xfd,0xb0,0x3a,0x8d,0xe8,0xc6,0xd2,0x9c,0xa3,0x8a,0x9f,0xba,0xa8,0x2e,0x5e,0x02,0xbe,0xad,0x2f,0x9e,0xec,0x69,0xb6,0x44,0x4b,0x7a,0xdb,0x05,0x33,0x3b, + 0x04,0xa4,0xff,0xea,0x5e,0x25,0xf7,0x5e,0x4f,0x68,0x9c,0x81,0x08,0x4a,0x35,0xc1,0x22,0x0e,0x8e,0x6b,0x91,0x4c,0x48,0x2f,0x4a,0x2e,0x8f,0x93,0xcf,0xfc,0xa6,0x96,0x47,0x77,0x42,0x1a,0xb0,0x1e,0x00,0xe8,0x38,0x41,0xb9,0x46,0xda,0xe5,0xbb,0x5a,0x23,0x97,0x3d,0xaa,0x98,0xfe,0x1a,0x81,0x72,0x88,0x3a,0xbc,0xbe,0xdc,0xed,0x70,0x21, + 0x04,0xde,0x88,0x09,0xea,0x0e,0xcc,0xe1,0xd2,0x4a,0x04,0x31,0x42,0x95,0x10,0x38,0x3a,0x6f,0x6e,0x5a,0x1c,0x51,0xce,0xa3,0x2d,0x83,0x0c,0x6c,0x35,0x30,0x42,0x60,0x3e,0x14,0xc1,0xaa,0xc5,0xf0,0xbf,0x1b,0x48,0xa4,0xab,0xcf,0x1d,0x92,0x91,0xb9,0xa8,0x77,0x6a,0x00,0x43,0x80,0x54,0x6a,0x5a,0x1c,0x1f,0x29,0x46,0x90,0xf6,0x19,0x69, + 0x04,0x56,0x62,0x09,0xf1,0x74,0xd6,0xbf,0x79,0x72,0x0b,0x70,0xed,0xb2,0x7e,0x51,0x35,0x0b,0xee,0xb2,0xb0,0xbc,0xd0,0x83,0xbb,0xae,0x72,0x14,0xf7,0x1c,0xf8,0x24,0xd4,0x3b,0xb7,0x32,0x88,0x39,0xd2,0xae,0xca,0xc6,0x4b,0x1c,0xdb,0x18,0x2f,0x08,0xad,0xcc,0xaa,0xc3,0x27,0xed,0x00,0x89,0x87,0xa1,0x0e,0xdc,0x97,0x32,0x41,0x3c,0xed, + 0x04,0xcc,0x31,0x81,0xc0,0x12,0x71,0x37,0x53,0x6c,0xee,0xc9,0x4f,0xd4,0x59,0x96,0x65,0x7d,0xf7,0x2e,0x0f,0x97,0xc4,0x4b,0x9d,0xad,0x14,0x76,0x3c,0xe5,0x06,0xe9,0xdc,0x9b,0x51,0xb1,0x7b,0x76,0xea,0x6c,0xc1,0x37,0xee,0xbd,0x93,0xc8,0x11,0xe6,0x36,0xd8,0xae,0x26,0xc7,0x0d,0x06,0x46,0x50,0xf7,0x20,0x5a,0x86,0x5d,0x01,0xa6,0xee, + 0x04,0xd7,0x05,0x2a,0x1e,0xea,0xfc,0x0e,0x78,0xd7,0x9e,0x7f,0x26,0x00,0x3a,0xa0,0xa4,0x09,0x28,0x7c,0xf4,0x76,0x00,0x7d,0xf2,0x8d,0x28,0x1b,0x14,0x2b,0xe1,0xa0,0xe2,0x3f,0x18,0x74,0xfa,0x08,0xa6,0x93,0xb0,0x86,0x64,0x3e,0xf2,0x1e,0xb5,0x9d,0x75,0x56,0x2d,0xa9,0x42,0x2d,0x13,0xd9,0xa3,0x9b,0x0b,0x17,0xe2,0x41,0xb0,0x4d,0x32, + 0x04,0xb7,0xcc,0x3e,0x23,0x06,0xdb,0xf7,0xc3,0x8f,0xf1,0x79,0x65,0x87,0x06,0xfe,0xff,0xb5,0xef,0xdb,0x60,0x44,0xc7,0xe7,0x14,0x35,0xd7,0xff,0x7d,0x0a,0xe8,0xc7,0xb3,0x77,0x13,0xfd,0xb0,0x3a,0x8d,0xe8,0xc6,0xd2,0x9c,0xa3,0x8a,0x9f,0xba,0xa8,0x2e,0x5e,0x02,0xbe,0xad,0x2f,0x9e,0xec,0x69,0xb6,0x44,0x4b,0x7a,0xdb,0x05,0x33,0x3b, + 0x04,0x5b,0xbe,0x7c,0x98,0x01,0x5f,0xd3,0xa6,0x03,0x4d,0x79,0xd8,0x67,0xa4,0xdc,0xd5,0x2f,0x95,0x91,0x19,0x32,0x12,0x9d,0xa2,0xfc,0x0a,0x58,0xaf,0xe1,0x49,0x13,0x7f,0x77,0x42,0x1a,0xb0,0x1e,0x00,0xe8,0x38,0x41,0xb9,0x46,0xda,0xe5,0xbb,0x5a,0x23,0x97,0x3d,0xaa,0x98,0xfe,0x1a,0x81,0x72,0x88,0x3a,0xbc,0xbe,0xdc,0xed,0x70,0x21, + 0x04,0x96,0x2f,0xe4,0x78,0x80,0xa9,0x4a,0x74,0x59,0x28,0xe3,0xc4,0xa2,0x9a,0x42,0xcb,0x01,0x33,0x4f,0x1e,0xe9,0x64,0x6e,0x62,0x45,0x1c,0x46,0xec,0xd7,0x2f,0x41,0x09,0x14,0xc1,0xaa,0xc5,0xf0,0xbf,0x1b,0x48,0xa4,0xab,0xcf,0x1d,0x92,0x91,0xb9,0xa8,0x77,0x6a,0x00,0x43,0x80,0x54,0x6a,0x5a,0x1c,0x1f,0x29,0x46,0x90,0xf6,0x19,0x69, + 0x04,0xc7,0x15,0x74,0xf5,0x53,0x8d,0xe5,0x65,0x3c,0x37,0x16,0x8d,0x47,0xa2,0xbc,0xf4,0x36,0x98,0xea,0x26,0x00,0x12,0xcd,0x0a,0xe1,0x30,0x4e,0x47,0x4c,0x63,0xa4,0xe6,0x3b,0xb7,0x32,0x88,0x39,0xd2,0xae,0xca,0xc6,0x4b,0x1c,0xdb,0x18,0x2f,0x08,0xad,0xcc,0xaa,0xc3,0x27,0xed,0x00,0x89,0x87,0xa1,0x0e,0xdc,0x97,0x32,0x41,0x3c,0xed, + 0x04,0xc6,0x02,0x44,0xce,0x30,0x6e,0x37,0x6f,0x39,0x68,0x17,0x8f,0x52,0x93,0x74,0x2d,0x7a,0x20,0xe1,0xdc,0x47,0xcf,0xc5,0x17,0xed,0xad,0xa9,0xdb,0x49,0xd0,0xcb,0xbf,0x9b,0x51,0xb1,0x7b,0x76,0xea,0x6c,0xc1,0x37,0xee,0xbd,0x93,0xc8,0x11,0xe6,0x36,0xd8,0xae,0x26,0xc7,0x0d,0x06,0x46,0x50,0xf7,0x20,0x5a,0x86,0x5d,0x01,0xa6,0xee, + 0x04,0xaa,0x3c,0x31,0x88,0xc0,0xad,0x57,0x67,0xa9,0xba,0xc7,0x7e,0x7c,0xee,0xa0,0x5c,0xfa,0xe1,0x59,0x9c,0xcd,0x77,0xb9,0xfc,0xbc,0x0c,0x3b,0xad,0xc8,0x0c,0x36,0xca,0x3f,0x18,0x74,0xfa,0x08,0xa6,0x93,0xb0,0x86,0x64,0x3e,0xf2,0x1e,0xb5,0x9d,0x75,0x56,0x2d,0xa9,0x42,0x2d,0x13,0xd9,0xa3,0x9b,0x0b,0x17,0xe2,0x41,0xb0,0x4d,0x32, + 0x04,0x2c,0xce,0x8d,0xdf,0xe4,0x82,0x7d,0xc0,0x30,0xdd,0xf3,0x8f,0x99,0x8b,0x3f,0x2e,0xd5,0xe0,0x62,0x1d,0x0b,0x38,0x05,0x66,0x6d,0xaf,0x48,0xc8,0xc3,0x1e,0x75,0xe5,0x19,0x8d,0x9e,0xf4,0xe9,0x73,0xb6,0xbd,0xeb,0xe1,0x19,0xa3,0x5f,0xaa,0xe8,0x61,0x91,0xac,0xd7,0x58,0xc1,0xed,0x8a,0xcc,0xaf,0x1e,0x70,0x6a,0xd5,0x5d,0x83,0xd7, + 0x04,0x14,0xbf,0xc3,0xe5,0xa4,0x6b,0x69,0x88,0x1a,0x9a,0x34,0x6d,0x95,0x89,0x44,0x18,0x61,0x4e,0xd9,0x14,0x76,0xa1,0xdd,0xce,0x48,0x67,0x6b,0x7c,0xba,0xb9,0xba,0x02,0xf3,0x34,0xd6,0x4f,0x2c,0xaf,0x56,0x1b,0x06,0x3b,0xc1,0xf7,0x88,0x9e,0x93,0x73,0x02,0xa4,0x55,0xff,0x68,0x5d,0x8a,0xe5,0x7c,0xb2,0x44,0x4a,0x17,0xda,0xd0,0x68, + 0x04,0xbd,0x44,0x2f,0xa5,0xa2,0xa8,0xd7,0x2e,0x13,0xe4,0x4f,0xd2,0x22,0x2c,0x85,0xa0,0x06,0xf0,0x33,0x75,0xe0,0x21,0x1b,0x27,0x2f,0x55,0x50,0x52,0xb0,0x3d,0xb7,0x50,0xbe,0x34,0x57,0x37,0xf7,0xc6,0xb5,0xe7,0x0e,0x97,0xd9,0xfe,0x9d,0xc4,0xca,0x94,0xfb,0x18,0x5f,0x4b,0x9d,0x2a,0x00,0xe0,0x86,0xc1,0xd4,0x72,0x73,0xb3,0x36,0x02, + 0x04,0x0d,0x7a,0x3f,0xf4,0x9b,0xda,0x6a,0x58,0x7e,0xd0,0x76,0x91,0x45,0x04,0x25,0xaa,0x02,0xd2,0x53,0xba,0x57,0x3a,0x16,0xad,0x86,0xc6,0x1a,0xf4,0x12,0xdd,0x3c,0x77,0x0b,0x6d,0x3b,0x9e,0x57,0x0b,0xa0,0x04,0x87,0x7c,0x9a,0x69,0xe4,0x81,0xfe,0x21,0x5d,0xe0,0x3a,0x70,0x12,0x63,0x05,0xa4,0x52,0x82,0x6e,0x66,0xd9,0xb5,0x58,0x3e, + 0x04,0xbd,0xea,0x5d,0x2a,0x3a,0xdd,0xe7,0xdf,0x2e,0x83,0x9f,0xf6,0x3f,0x62,0x53,0x4b,0x3f,0x27,0xcb,0x19,0x1b,0xb5,0x4d,0xfa,0x1d,0x39,0xcb,0xff,0x71,0x3b,0xa9,0xed,0x30,0x7d,0x8f,0x1d,0x02,0xc6,0xf0,0x71,0x46,0x65,0x5e,0x63,0x83,0xb0,0xef,0x30,0x35,0xbe,0xe7,0x06,0x7c,0x33,0x6f,0xdb,0x91,0x36,0x5e,0x19,0x7a,0x97,0xb6,0x16, + 0x04,0xd4,0xc0,0x63,0xe3,0xc0,0x36,0xf4,0x7c,0x92,0xf6,0xf5,0x47,0x0a,0x26,0xa8,0x35,0xe1,0xa2,0x45,0x05,0xb1,0x4d,0x1b,0x29,0x27,0x90,0x62,0xa1,0x6c,0xf6,0xf4,0x89,0x19,0x8d,0x9e,0xf4,0xe9,0x73,0xb6,0xbd,0xeb,0xe1,0x19,0xa3,0x5f,0xaa,0xe8,0x61,0x91,0xac,0xd7,0x58,0xc1,0xed,0x8a,0xcc,0xaf,0x1e,0x70,0x6a,0xd5,0x5d,0x83,0xd7, + 0x04,0x3c,0xb9,0xf0,0x79,0x97,0x75,0x68,0x59,0xe9,0xb9,0xa8,0x5b,0x68,0x1f,0xa5,0x0e,0xe2,0x03,0x57,0xf5,0x35,0xc1,0xb3,0x11,0xc4,0x63,0x7d,0x16,0xb7,0x6b,0x9e,0xbf,0xf3,0x34,0xd6,0x4f,0x2c,0xaf,0x56,0x1b,0x06,0x3b,0xc1,0xf7,0x88,0x9e,0x93,0x73,0x02,0xa4,0x55,0xff,0x68,0x5d,0x8a,0xe5,0x7c,0xb2,0x44,0x4a,0x17,0xda,0xd0,0x68, + 0x04,0x79,0x34,0x12,0xff,0x63,0x6c,0x08,0xa2,0xd0,0xf6,0xd6,0x0c,0xc6,0x08,0xe9,0xa9,0x09,0x83,0x49,0xa2,0x50,0x1f,0x91,0xc9,0x5f,0x69,0x20,0x10,0xbc,0x12,0x38,0xb2,0xbe,0x34,0x57,0x37,0xf7,0xc6,0xb5,0xe7,0x0e,0x97,0xd9,0xfe,0x9d,0xc4,0xca,0x94,0xfb,0x18,0x5f,0x4b,0x9d,0x2a,0x00,0xe0,0x86,0xc1,0xd4,0x72,0x73,0xb3,0x36,0x02, + 0x04,0xbd,0x1e,0xb0,0x84,0x9e,0x2e,0x6a,0x13,0xd5,0x4b,0x76,0x51,0x8f,0x11,0xba,0x87,0x75,0xc2,0xd7,0x63,0x4d,0x85,0x15,0x25,0x34,0xbc,0x7c,0x3a,0xf4,0x16,0x1e,0xfa,0x0b,0x6d,0x3b,0x9e,0x57,0x0b,0xa0,0x04,0x87,0x7c,0x9a,0x69,0xe4,0x81,0xfe,0x21,0x5d,0xe0,0x3a,0x70,0x12,0x63,0x05,0xa4,0x52,0x82,0x6e,0x66,0xd9,0xb5,0x58,0x3e, + 0x04,0x62,0x4b,0x3b,0x4b,0xa9,0x93,0xa8,0xb9,0x38,0x12,0x56,0x89,0xf6,0xcf,0x75,0x73,0x92,0xee,0x39,0x0d,0x14,0xa9,0x0f,0xea,0x6d,0xb9,0x44,0xb5,0xa8,0xde,0xb8,0xd0,0x30,0x7d,0x8f,0x1d,0x02,0xc6,0xf0,0x71,0x46,0x65,0x5e,0x63,0x83,0xb0,0xef,0x30,0x35,0xbe,0xe7,0x06,0x7c,0x33,0x6f,0xdb,0x91,0x36,0x5e,0x19,0x7a,0x97,0xb6,0x16, + 0x04,0xfe,0x71,0x0e,0x3c,0x5b,0x46,0x8d,0xc3,0x3c,0x2b,0x17,0x29,0x5c,0x4e,0x18,0x9b,0x48,0x7d,0x58,0xdd,0x43,0x7a,0xdf,0x70,0x6a,0xc0,0x54,0x93,0xcf,0xea,0x8d,0xf0,0x19,0x8d,0x9e,0xf4,0xe9,0x73,0xb6,0xbd,0xeb,0xe1,0x19,0xa3,0x5f,0xaa,0xe8,0x61,0x91,0xac,0xd7,0x58,0xc1,0xed,0x8a,0xcc,0xaf,0x1e,0x70,0x6a,0xd5,0x5d,0x83,0xd7, + 0x04,0xae,0x86,0x4b,0xa0,0xc4,0x1f,0x2e,0x1d,0xfb,0xac,0x23,0x37,0x02,0x57,0x16,0xd8,0xbc,0xad,0xce,0xf6,0x53,0x9c,0x6f,0x1f,0xf3,0x35,0x17,0x6b,0x8d,0xda,0xa3,0x6e,0xf3,0x34,0xd6,0x4f,0x2c,0xaf,0x56,0x1b,0x06,0x3b,0xc1,0xf7,0x88,0x9e,0x93,0x73,0x02,0xa4,0x55,0xff,0x68,0x5d,0x8a,0xe5,0x7c,0xb2,0x44,0x4a,0x17,0xda,0xd0,0x68, + 0x04,0xc9,0x87,0xbd,0x5a,0xf9,0xeb,0x20,0x2f,0x1b,0x24,0xda,0x21,0x17,0xca,0x90,0xb6,0xef,0x8c,0x82,0xe7,0xcf,0xbf,0x53,0x0f,0x71,0x41,0x8f,0x9a,0x93,0xb0,0x08,0x5c,0xbe,0x34,0x57,0x37,0xf7,0xc6,0xb5,0xe7,0x0e,0x97,0xd9,0xfe,0x9d,0xc4,0xca,0x94,0xfb,0x18,0x5f,0x4b,0x9d,0x2a,0x00,0xe0,0x86,0xc1,0xd4,0x72,0x73,0xb3,0x36,0x02, + 0x04,0x35,0x67,0x0f,0x86,0xc5,0xf7,0x2b,0x93,0xab,0xe4,0x13,0x1d,0x2b,0xea,0x1f,0xce,0x87,0x6a,0xd4,0xe2,0x5b,0x40,0xd4,0x2d,0x44,0x7d,0x68,0xcf,0xf9,0x0c,0xa0,0xbe,0x0b,0x6d,0x3b,0x9e,0x57,0x0b,0xa0,0x04,0x87,0x7c,0x9a,0x69,0xe4,0x81,0xfe,0x21,0x5d,0xe0,0x3a,0x70,0x12,0x63,0x05,0xa4,0x52,0x82,0x6e,0x66,0xd9,0xb5,0x58,0x3e, + 0x04,0xdf,0xca,0x67,0x8a,0x1b,0x8e,0x6f,0x67,0x99,0x6a,0x09,0x7f,0xc9,0xce,0x37,0x41,0x2d,0xe9,0xfb,0xd9,0xcf,0xa1,0xa2,0x1b,0x75,0x0c,0xef,0x48,0xe5,0xe5,0x95,0xa1,0x30,0x7d,0x8f,0x1d,0x02,0xc6,0xf0,0x71,0x46,0x65,0x5e,0x63,0x83,0xb0,0xef,0x30,0x35,0xbe,0xe7,0x06,0x7c,0x33,0x6f,0xdb,0x91,0x36,0x5e,0x19,0x7a,0x97,0xb6,0x16, + 0x04,0x32,0xbd,0xd9,0x78,0xeb,0x62,0xb1,0xf3,0x69,0xa5,0x6d,0x09,0x49,0xab,0x85,0x51,0xa7,0xad,0x52,0x7d,0x96,0x02,0xe8,0x91,0xce,0x45,0x75,0x86,0xc2,0xa8,0x56,0x9e,0x98,0x1e,0x67,0xfa,0xe0,0x53,0xb0,0x3f,0xc3,0x3e,0x1a,0x29,0x1f,0x0a,0x3b,0xeb,0x58,0xfc,0xeb,0x2e,0x85,0xbb,0x12,0x05,0xda,0xce,0xe1,0x23,0x2d,0xfd,0x31,0x6b, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e, + 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2e, + 0x04,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2f, + 0x04,0x49,0xc2,0x48,0xed,0xc6,0x59,0xe1,0x84,0x82,0xb7,0x10,0x57,0x48,0xa4,0xb9,0x5d,0x3a,0x46,0x95,0x2a,0x5b,0xa7,0x2d,0xa0,0xd7,0x02,0xdc,0x97,0xa6,0x4e,0x99,0x79,0x9d,0x8c,0xff,0x7a,0x5c,0x4b,0x92,0x5e,0x43,0x60,0xec,0xe2,0x5c,0xcf,0x30,0x7d,0x7a,0x9a,0x70,0x63,0x28,0x6b,0xbd,0x16,0xef,0x64,0xc6,0x5f,0x54,0x67,0x57,0xe4, + 0x04,0x49,0xc2,0x48,0xed,0xc6,0x59,0xe1,0x84,0x82,0xb7,0x10,0x57,0x48,0xa4,0xb9,0x5d,0x3a,0x46,0x95,0x2a,0x5b,0xa7,0x2d,0xa0,0xd7,0x02,0xdc,0x97,0xa6,0x4e,0x99,0x79,0x9d,0x8c,0xff,0x7a,0x5c,0x4b,0x92,0x5e,0x43,0x60,0xec,0xe2,0x5c,0xcf,0x30,0x7d,0x7a,0x9a,0x70,0x63,0x28,0x6b,0xbd,0x16,0xef,0x64,0xc6,0x5f,0x54,0x67,0x57,0xe2, + 0x04,0x07,0x4f,0x56,0xdc,0x2e,0xa6,0x48,0xef,0x89,0xc3,0xb7,0x2e,0x23,0xbb,0xd2,0xda,0x36,0xf6,0x02,0x43,0xe4,0xd2,0x06,0x7b,0x70,0x60,0x4a,0xf1,0xc2,0x16,0x5c,0xec,0x2f,0x86,0x60,0x3d,0x60,0xc8,0xa6,0x11,0xd5,0xb8,0x4b,0xa3,0xd9,0x1d,0xfe,0x1a,0x48,0x08,0x25,0xbc,0xc4,0xaf,0x3b,0xcf, + 0x04,0xcb,0xf6,0x60,0x65,0x95,0xa3,0xee,0x50,0xf9,0xfc,0xea,0xa2,0x79,0x8c,0x27,0x40,0xc8,0x25,0x40,0x51,0x6b,0x4e,0x5a,0x7d,0x36,0x1f,0xf2,0x4e,0x9d,0xd1,0x53,0x64,0xe5,0x40,0x8b,0x2e,0x67,0x9f,0x9d,0x53,0x10,0xd1,0xf6,0x89,0x3b,0x36,0xce,0x16,0xb4,0xa5,0x07,0x50,0x91,0x75,0xfc,0xb5,0x2a,0xea,0x53,0xb7,0x81,0x55,0x6b,0x39, + 0x04,0xfb,0x60,0x75,0xd2,0x6c,0x35,0x01,0xc0,0x14,0xe4,0x8c,0x79,0xb3,0x46,0x3c,0xd7,0x68,0x37,0x8c,0x39,0x0d,0x7e,0x6e,0xeb,0x37,0x97,0x17,0xd4,0x90,0xc4,0xe6,0x34,0x78,0x04,0x35,0x77,0x19,0x79,0x87,0x88,0x16,0x70,0xbc,0x13,0xfd,0x0b,0x5f,0x0b,0xa1,0x0f,0x06,0xbc,0xef,0x27,0x11,0xc2,0x8f,0x5e,0xfd,0x7e,0x31,0xd5,0x15,0x7c, + 0x02,0x97,0x7c,0xb7,0xfb,0x9a,0x0e,0xc5,0xb2,0x08,0xe8,0x11,0xd6,0xa0,0x79,0x5e,0xb7,0x8d,0x76,0x42,0xe3,0xca,0xc4,0x2a,0x80,0x1b,0xcc,0x8f,0xc0,0xf0,0x64,0x72,0xd4}; + +static const unsigned char wycheproof_ecdh_shared_secrets[] = { 0x54,0x4d,0xfa,0xe2,0x2a,0xf6,0xaf,0x93,0x90,0x42,0xb1,0xd8,0x5b,0x71,0xa1,0xe4,0x9e,0x9a,0x56,0x14,0x12,0x3c,0x4d,0x6a,0xd0,0xc8,0xaf,0x65,0xba,0xf8,0x7d,0x65, + 0x54,0x4d,0xfa,0xe2,0x2a,0xf6,0xaf,0x93,0x90,0x42,0xb1,0xd8,0x5b,0x71,0xa1,0xe4,0x9e,0x9a,0x56,0x14,0x12,0x3c,0x4d,0x6a,0xd0,0xc8,0xaf,0x65,0xba,0xf8,0x7d,0x65, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xfc,0x2c, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x07, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01, + 0x0b,0x7b,0xeb,0xa3,0x4f,0xeb,0x64,0x7d,0xa2,0x00,0xbe,0xd0,0x5f,0xad,0x57,0xc0,0x34,0x8d,0x24,0x9e,0x2a,0x90,0xc8,0x8f,0x31,0xf9,0x94,0x8b,0xb6,0x5d,0x52,0x07, + 0x21,0x0c,0x79,0x05,0x73,0x63,0x23,0x59,0xb1,0xed,0xb4,0x30,0x2c,0x11,0x7d,0x8a,0x13,0x26,0x54,0x69,0x2c,0x3f,0xee,0xb7,0xde,0x3a,0x86,0xac,0x3f,0x3b,0x53,0xf7, + 0x42,0x18,0xf2,0x0a,0xe6,0xc6,0x46,0xb3,0x63,0xdb,0x68,0x60,0x58,0x22,0xfb,0x14,0x26,0x4c,0xa8,0xd2,0x58,0x7f,0xdd,0x6f,0xbc,0x75,0x0d,0x58,0x7e,0x76,0xa7,0xee, + 0x39,0xf8,0x83,0xf1,0x05,0xac,0x7f,0x09,0xf4,0xe7,0xe4,0xdc,0xc8,0x4b,0xc7,0xff,0x4b,0x3b,0x74,0xf3,0x01,0xef,0xaa,0xaf,0x8b,0x63,0x8f,0x47,0x72,0x0f,0xda,0xec, + 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x50, + 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa, + 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, + 0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0xcb, + 0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0c, + 0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, + 0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, + 0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00, + 0x7f,0xff,0x00,0x01,0xff,0xfc,0x00,0x07,0xff,0xf0,0x00,0x1f,0xff,0xc0,0x00,0x7f,0xff,0x00,0x01,0xff,0xfc,0x00,0x07,0xff,0xf0,0x00,0x1f,0xff,0xc0,0x00,0x7f,0xff, + 0x80,0x00,0xff,0xfe,0x00,0x03,0xff,0xf8,0x00,0x0f,0xff,0xe0,0x00,0x3f,0xff,0x80,0x00,0xff,0xfe,0x00,0x03,0xff,0xf8,0x00,0x0f,0xff,0xe0,0x00,0x3f,0xff,0x7f,0xff, + 0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xfd, + 0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,0xff,0xfe,0xff,0xfe, + 0x80,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x07,0xff,0xff,0xfe,0x00,0x00,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x1f,0xff,0xff,0xf8,0x00,0x00,0x03,0xff,0xff,0xfd, + 0x7f,0xff,0xff,0xe0,0x00,0x00,0x0f,0xff,0xff,0xfc,0x00,0x00,0x01,0xff,0xff,0xff,0x80,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x07,0xff,0xff,0xfd,0xff,0xff,0xfe, + 0x00,0x00,0x03,0xff,0xff,0xff,0x00,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x03,0xff,0xff,0xff,0x00,0x00,0x00,0x3f,0xff,0xff,0xf0,0x00,0x00,0x03,0xff,0xff,0xfc, + 0xff,0xff,0xfc,0x00,0x00,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x0f,0xff,0xff,0xfc,0x00,0x00,0x00,0xff,0xff,0xff,0xc0,0x00,0x00,0x0f,0xff,0xff,0xfb,0xff,0xff,0xfe, + 0xff,0xff,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff, + 0x00,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xbf,0xff,0xff,0xfd, + 0xff,0x00,0x00,0x00,0x01,0xff,0xff,0xff,0xfc,0x00,0x00,0x00,0x07,0xff,0xff,0xff,0xf0,0x00,0x00,0x00,0x1f,0xff,0xff,0xff,0xc0,0x00,0x00,0x00,0x7f,0xff,0xff,0xfd, + 0x00,0xff,0xff,0xff,0xfe,0x00,0x00,0x00,0x03,0xff,0xff,0xff,0xf8,0x00,0x00,0x00,0x0f,0xff,0xff,0xff,0xe0,0x00,0x00,0x00,0x3f,0xff,0xff,0xff,0x80,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xfe, + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xf5, + 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0xff,0xff,0xfe,0xbc, + 0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x32,0xff,0xff,0xff,0x3c, + 0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x6d,0xb6,0xda,0xe2, + 0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x71,0xc7,0x1c,0x55,0x55,0x54,0xe8, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9f,0xa2,0xf1,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x7c,0x07,0xb1,0x99,0xb6,0xa6,0x2e,0x7a,0xc6,0x46,0xc7,0xe1,0xde,0xe9,0x4a,0xca,0x55,0xde,0x1a,0x97,0x25,0x1d,0xdf,0x92,0xfc,0xd4,0xfe,0x01,0x45,0xb4,0x0f,0x12, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0x03,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x24,0xdc,0xb0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x52,0x06,0xc3,0xde,0x46,0x94,0x9b,0x9d,0xa1,0x60,0x29,0x5e,0xe0,0xaa,0x14,0x2f,0xe3,0xe6,0x62,0x9c,0xc2,0x5e,0x2d,0x67,0x1e,0x58,0x2e,0x30,0xff,0x87,0x50,0x82, + 0x8a,0x8c,0x18,0xb7,0x8e,0x1b,0x1f,0xcf,0xd2,0x2e,0xe1,0x8b,0x4a,0x3a,0x9f,0x39,0x1a,0x3f,0xdf,0x15,0x40,0x8f,0xb7,0xf8,0xc1,0xdb,0xa3,0x3c,0x27,0x1d,0xbd,0x2f, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0x03,0x7e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x24,0xdc,0xb0,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0x52,0x06,0xc3,0xde,0x46,0x94,0x9b,0x9d,0xa1,0x60,0x29,0x5e,0xe0,0xaa,0x14,0x2f,0xe3,0xe6,0x62,0x9c,0xc2,0x5e,0x2d,0x67,0x1e,0x58,0x2e,0x30,0xff,0x87,0x50,0x82, + 0x8a,0x8c,0x18,0xb7,0x8e,0x1b,0x1f,0xcf,0xd2,0x2e,0xe1,0x8b,0x4a,0x3a,0x9f,0x39,0x1a,0x3f,0xdf,0x15,0x40,0x8f,0xb7,0xf8,0xc1,0xdb,0xa3,0x3c,0x27,0x1d,0xbd,0x2f, + 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x12,0x6b,0x54,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, + 0xe5,0x9d,0xdc,0x76,0x46,0xe4,0xae,0xf0,0x62,0x3c,0x71,0xc4,0x86,0xf2,0x4d,0x5d,0x32,0xf7,0x25,0x7e,0xf3,0xda,0xb8,0xfa,0x52,0x4b,0x39,0x4e,0xae,0x19,0xeb,0xe1, + 0x12,0xc2,0xad,0x36,0xa5,0x9f,0xda,0x5a,0xc4,0xf7,0xe9,0x7f,0xf6,0x11,0x72,0x8d,0x07,0x48,0xac,0x35,0x9f,0xca,0x9b,0x12,0xf6,0xd4,0xf4,0x35,0x19,0x51,0x64,0x87, + 0x45,0xaa,0x96,0x66,0x75,0x78,0x15,0xe9,0x97,0x41,0x40,0xd1,0xb5,0x71,0x91,0xc9,0x2c,0x58,0x8f,0x6e,0x56,0x81,0x13,0x1e,0x0d,0xf9,0xb3,0xd2,0x41,0x83,0x1a,0xd4, + 0xb9,0x09,0x64,0xc0,0x5e,0x46,0x4c,0x23,0xac,0xb7,0x47,0xa4,0xc8,0x35,0x11,0xe9,0x30,0x07,0xf7,0x49,0x9b,0x06,0x5c,0x8e,0x8e,0xcc,0xec,0x95,0x5d,0x87,0x31,0xf4, + 0xe9,0x7f,0xb4,0xc4,0xfb,0x33,0xd6,0xa1,0x14,0xda,0x6e,0x0d,0x18,0x0e,0x54,0xf9,0x9e,0xc1,0xec,0xe9,0xff,0x55,0x88,0x71,0x05,0x4e,0x99,0xd2,0x21,0x93,0x0d,0x16, + 0x1e,0xea,0x9c,0x27,0x56,0xa3,0x30,0x5b,0xb5,0x17,0x8f,0x2c,0x37,0x43,0x6e,0x7b,0x41,0xcf,0x38,0x05,0xcd,0x0a,0x10,0x87,0xd2,0xd0,0x24,0x07,0xfc,0x55,0x3c,0x09, + 0x2f,0x1c,0x5c,0x59,0x0f,0x97,0xf7,0x93,0x51,0xfb,0x9d,0x36,0xc5,0x97,0xd1,0xc6,0x1f,0x1c,0x40,0x9f,0xcd,0xed,0xae,0xae,0x79,0x51,0x12,0xfa,0x1a,0x2c,0x74,0x53, + 0x82,0xb8,0xe9,0x0e,0x6b,0x64,0x41,0xb7,0x16,0x4c,0x97,0x25,0xac,0x1a,0x35,0xf0,0x98,0x78,0x80,0x96,0xaf,0x95,0xc2,0x76,0xfa,0xc3,0xc5,0xa3,0x83,0xd6,0xb5,0x6c, + 0x8a,0x95,0x5b,0x6c,0xf4,0xd5,0x18,0x55,0x8e,0x59,0x37,0x24,0x44,0xd3,0xfd,0x9b,0x78,0x93,0x3e,0x2d,0x32,0x29,0xdf,0xdf,0xa6,0xf5,0xf6,0x64,0x03,0x29,0x0e,0x19, + 0x56,0x26,0xbb,0xf7,0x9f,0x10,0x82,0x7e,0x23,0xfa,0x5a,0xef,0x9a,0x26,0x53,0x3f,0x5f,0x4e,0x74,0x72,0x93,0x4e,0xd9,0x75,0x9b,0x7b,0x3a,0x77,0xcd,0xa0,0x4b,0x82, + 0x19,0x08,0xae,0x93,0x6f,0x53,0xb9,0xa8,0xa2,0xd0,0x97,0x07,0xae,0x41,0x40,0x84,0x09,0x0b,0x17,0x53,0x65,0x40,0x14,0x25,0x47,0x9b,0x10,0xb8,0xc3,0xe8,0xd1,0xba, + 0x5e,0x13,0xb3,0xdc,0x04,0xe3,0x3f,0x18,0xd1,0x28,0x6c,0x60,0x6c,0xb0,0x19,0x17,0x85,0xf6,0x94,0xe8,0x2e,0x17,0x79,0x61,0x45,0xc9,0xe7,0xb4,0x9b,0xc2,0xaf,0x58, + 0xa9,0x95,0x57,0x2a,0xd1,0x74,0x89,0x7f,0xf1,0x97,0x1e,0x6d,0x1e,0x39,0xf9,0x08,0x44,0x8a,0x58,0x78,0xda,0x1e,0x60,0xf3,0x90,0x1f,0x57,0xca,0xcd,0x49,0xe5,0xf6, + 0xcd,0x84,0x27,0xea,0x93,0xf9,0xfe,0xde,0x38,0xa7,0x0d,0x0c,0x39,0xdb,0xd9,0x67,0x59,0x61,0x3b,0xa0,0x0f,0x27,0xb9,0xdb,0x39,0x71,0xc8,0x0a,0xec,0x07,0xe2,0xd6, + 0x76,0x6b,0x07,0x52,0xcd,0x89,0x5b,0x4b,0x85,0x43,0xd4,0x4c,0x9a,0x34,0x88,0x68,0xff,0xff,0x12,0xae,0xd6,0x32,0xf8,0x07,0x0e,0x73,0x1d,0x45,0x0d,0x8a,0x8c,0x94, + 0x09,0xb0,0xaa,0x83,0x98,0x93,0xb7,0xad,0x37,0xcc,0x83,0x16,0x0e,0x6f,0x3c,0x55,0x06,0xbb,0xe3,0x23,0x49,0x7c,0x21,0x50,0x5a,0xe9,0x93,0x7c,0x75,0xd9,0x43,0xc8, + 0x3c,0x2a,0x61,0x12,0x1f,0x09,0x4d,0x5e,0xec,0xdd,0xf7,0xd3,0xb0,0x01,0x6c,0x17,0x0b,0x90,0xfd,0x3f,0x2f,0xea,0x0b,0x12,0xe3,0x1d,0xb0,0x4a,0xe7,0xc2,0x79,0xa2, + 0x9a,0x64,0x1d,0x5e,0xfa,0x8b,0xe7,0xdc,0x72,0x3a,0xa5,0x8e,0x2e,0x52,0xa1,0x50,0xc8,0xef,0xce,0xd2,0xfa,0x10,0x84,0x04,0x12,0x49,0x77,0x3c,0x75,0x62,0xc6,0x6d, + 0xd3,0x29,0x77,0xec,0xa6,0x4d,0x22,0x3e,0xa9,0x0f,0x10,0xf7,0x2f,0x81,0x0e,0xc6,0x4d,0x66,0x18,0x33,0xac,0xc4,0xc8,0x39,0x59,0x1d,0xa8,0x13,0xef,0x86,0xf7,0x36, + 0x55,0x13,0x7f,0xec,0xb2,0x1e,0xb3,0xeb,0xed,0x1b,0x41,0xfb,0x2f,0x7e,0x1c,0xa3,0x37,0x00,0x94,0x65,0xf8,0x55,0xf3,0xf9,0x20,0xbc,0x7d,0x0b,0x73,0xc2,0xda,0x32, + 0x0b,0xde,0x65,0x9e,0xd8,0x92,0x81,0xe6,0xc8,0xa5,0xfb,0xda,0xb7,0x64,0xd0,0x49,0x9b,0x86,0xd1,0x9d,0x33,0xf4,0xc9,0x78,0xe2,0x60,0xbb,0xae,0x58,0x7d,0x40,0x57, + 0x31,0x35,0xa6,0x28,0x3b,0x97,0xe7,0x53,0x7a,0x8b,0xc2,0x08,0xa3,0x55,0xc2,0xa8,0x54,0xb8,0xee,0x6e,0x42,0x27,0x20,0x67,0x30,0xe6,0xd7,0x25,0xda,0x04,0x4d,0xee, + 0x2a,0x3d,0x29,0xce,0x04,0x9f,0xc5,0x0b,0x00,0xfa,0xb5,0x0e,0x75,0x81,0xb8,0x4d,0x44,0x1d,0x29,0x7b,0xe6,0x51,0x5f,0xbe,0x83,0xdc,0x48,0x5b,0xdf,0x32,0xb6,0xdc, + 0x03,0xc2,0x02,0xa6,0x4e,0x60,0xff,0x59,0x48,0xd2,0x98,0x16,0xd6,0x84,0x20,0xc6,0x4c,0x05,0x18,0xa7,0x52,0x2a,0x92,0x93,0x81,0x36,0x5b,0x12,0x45,0x77,0x0a,0x02, + 0xd0,0x7f,0xcf,0x7b,0x89,0xbd,0x1b,0xa2,0x41,0x94,0xca,0xf9,0x77,0xdb,0x68,0xa5,0x50,0x3a,0x47,0x1a,0x37,0xd3,0x74,0xe0,0x91,0x7a,0x5f,0xe3,0x1d,0x48,0xc9,0x9e, + 0xea,0x9f,0x3a,0x53,0xab,0x40,0x53,0xdf,0x0b,0xae,0x01,0x56,0x76,0x7a,0x62,0xec,0x5b,0xa0,0xde,0x43,0x73,0xef,0x12,0xcb,0xfb,0x19,0xaa,0x80,0xc6,0xbc,0xd9,0x04, + 0xf0,0x55,0x7b,0xe2,0xb2,0x6d,0xdb,0x56,0xd4,0x4d,0x2c,0xb8,0x52,0x22,0x4a,0x29,0x1d,0xe7,0x71,0x41,0x8f,0xe1,0x48,0xa7,0x30,0xa7,0x6d,0xad,0xf5,0x88,0x2f,0x18, + 0xc6,0x8f,0x07,0x23,0x3e,0xfd,0x07,0x45,0xd8,0xbc,0xd5,0x1a,0x89,0x15,0x87,0x17,0xc2,0xdc,0x53,0x2f,0x75,0xa9,0xe4,0xde,0x20,0x76,0xe1,0xb8,0x30,0x65,0x4e,0xc8, + 0x6e,0xec,0x8a,0x68,0xeb,0x5f,0x9c,0xaf,0x2a,0xb3,0x05,0x3a,0x30,0x47,0xbb,0xc0,0x84,0x12,0xa1,0xd4,0x33,0xd7,0x9e,0xea,0x65,0xef,0xfc,0x5e,0x0c,0xd5,0x83,0xbf, + 0xbb,0xd9,0xd3,0x05,0xb9,0x9f,0xf3,0xdb,0x56,0xf7,0x7f,0xea,0x9e,0x89,0xf3,0x22,0x60,0xee,0x73,0x26,0x04,0x00,0x67,0xce,0x05,0xdd,0x15,0xe0,0xdc,0xc1,0x3e,0xd8, + 0x1f,0x81,0xaa,0x3d,0x70,0xf8,0x75,0x6b,0x94,0x95,0xfb,0xa8,0x29,0x21,0x71,0x7d,0x40,0x06,0x20,0x6a,0x44,0x51,0xd8,0xd5,0x9f,0x3c,0x9b,0x8d,0x95,0xb5,0x48,0xe8, + 0x66,0xe7,0x07,0xfa,0xf9,0x54,0xd1,0xec,0x84,0xfe,0x0f,0x68,0xf8,0x29,0xbe,0xb2,0xfe,0x95,0x05,0x82,0x71,0xb6,0x36,0x36,0x2e,0x3e,0xb5,0xc5,0xd4,0x92,0xcb,0xf8, + 0x42,0xdd,0x6d,0x83,0xbb,0xce,0x6a,0xfa,0xb5,0x04,0x5e,0x13,0x93,0x83,0x8a,0x97,0xa4,0x61,0x61,0xc2,0x5a,0xe9,0x1d,0xb0,0x14,0x3e,0x98,0x5d,0x29,0x16,0x2f,0xaa, + 0xab,0x43,0x91,0x7a,0x64,0xc1,0xb0,0x10,0x15,0x96,0x43,0xc1,0x8e,0x2e,0xb0,0x6d,0x25,0xee,0xda,0xe5,0xb7,0x8d,0x02,0xfa,0x9b,0x3d,0xeb,0xac,0xbf,0x31,0xb7,0x77, + 0xf3,0x9b,0xf4,0x90,0x11,0xcb,0x32,0x3e,0xe0,0x0f,0x77,0xe0,0x34,0x4a,0x9b,0x9d,0xa1,0x25,0x6d,0xb9,0x26,0x46,0xdd,0xa0,0xe3,0x42,0xf8,0xc1,0xad,0x37,0x41,0xc5, + 0x27,0x86,0x0f,0xa0,0x67,0x9e,0xdd,0x45,0x56,0xf0,0x42,0x3a,0x21,0xcc,0x21,0xe1,0xe3,0xf1,0x70,0x1d,0xa3,0xe6,0x2a,0x54,0x49,0x74,0xae,0x94,0xf1,0x5f,0x91,0xa0, + 0x2b,0xcf,0xc9,0x5b,0xba,0x84,0x52,0x4d,0x80,0x93,0xdc,0xe1,0x09,0x2b,0xc1,0x57,0xca,0x1f,0xa4,0x2a,0x37,0xaa,0xca,0x9b,0x07,0x59,0x43,0x7f,0x94,0x0c,0x3e,0x7d, + 0x1a,0x32,0x74,0x9d,0xcf,0x04,0x7a,0x7e,0x06,0x19,0x4c,0xcb,0x34,0xd7,0xc9,0x53,0x8a,0x16,0xdd,0xab,0xee,0xed,0xe7,0x4b,0xea,0x5f,0x7e,0xf0,0x49,0x79,0xf7,0xf7, + 0x11,0x9a,0xa4,0x77,0xaf,0xad,0x55,0x0e,0x98,0xdb,0x77,0xbf,0xb4,0xe7,0x1a,0x4b,0x6e,0xc7,0x9e,0xc4,0xfe,0x17,0xb7,0x28,0x3f,0x9b,0x8b,0xb7,0xb9,0xfd,0xb5,0xec, + 0x21,0xed,0xb7,0x00,0xcf,0x62,0xc1,0xbb,0x81,0x6a,0x87,0x79,0x88,0xee,0x8c,0x5b,0xc1,0x6a,0x84,0x64,0xbc,0xb6,0x45,0x4a,0xdb,0x8a,0xbf,0x8b,0x5c,0xef,0x7c,0xeb, + 0x1b,0xa5,0x45,0x71,0xd1,0xd2,0x80,0xf5,0xfa,0x2d,0x0c,0x58,0x46,0xec,0x39,0x2c,0x72,0x1a,0xcd,0x4b,0xa7,0xe4,0xaa,0xdc,0x3d,0xc2,0x35,0x39,0x57,0xab,0xd8,0x0b, + 0x9d,0x42,0x2c,0xe4,0x2f,0x74,0xaa,0x02,0x72,0xe5,0x53,0x0b,0x5d,0xd0,0x94,0x22,0x5f,0x11,0xd1,0x10,0x0f,0xed,0x95,0x4f,0xf7,0x14,0xa2,0xd4,0x71,0x55,0x9c,0xef, + 0xa5,0xab,0x2c,0xc5,0xbb,0x68,0x81,0xf7,0xe7,0x34,0xd7,0xcc,0xc9,0xd4,0x48,0x12,0x7d,0x94,0x65,0xfd,0x34,0x2d,0x81,0xc8,0x38,0x15,0x72,0x05,0x9b,0x3a,0xa2,0xb7, + 0xe9,0x76,0x05,0x7e,0x8a,0x32,0x2d,0xfd,0xb2,0xde,0xbd,0x55,0xd8,0xe5,0x88,0x02,0xfb,0x54,0x42,0x59,0x50,0xb2,0xdb,0xfd,0x00,0xf0,0x81,0x3d,0xe2,0x71,0x05,0xe4, + 0x09,0xfa,0x5a,0x51,0x05,0x58,0xa1,0x21,0x10,0xda,0xf7,0x51,0x17,0xaf,0x1e,0x17,0x5f,0x93,0xd7,0xc4,0xd8,0xba,0x41,0xc5,0xbf,0x3e,0xfe,0x95,0xd8,0x29,0xff,0x50, + 0x98,0xbc,0x61,0x8f,0xae,0xf7,0xc4,0x31,0x1c,0x3d,0x8f,0xd3,0x7b,0x39,0xe9,0xba,0xad,0x78,0x0e,0x14,0xf0,0x52,0x7f,0xa6,0x9a,0x3f,0x4c,0x2b,0x66,0xac,0x63,0x94, + 0x8a,0x0b,0x2d,0xde,0xf3,0xa1,0x10,0x8f,0x6e,0xa3,0x67,0xed,0x08,0x07,0x9a,0x0e,0xc9,0x84,0x94,0xfe,0x46,0xcf,0xad,0x58,0x4b,0xdc,0x98,0xe9,0x9e,0x6d,0x7f,0x99, + 0x89,0xb8,0x63,0x29,0xf0,0xf1,0x3a,0xab,0x07,0xa4,0x8d,0x0d,0x3b,0x7a,0xfe,0x53,0x0a,0xd2,0x60,0xa9,0x0d,0xe6,0xc2,0x5e,0xc3,0xda,0x8b,0x69,0x05,0x50,0x25,0x51, + 0x75,0x1b,0x52,0x1d,0xe6,0x38,0x4a,0x01,0x7c,0xaa,0xfa,0x10,0x41,0x9f,0xc3,0x5d,0x58,0xf6,0xdb,0xac,0xe8,0x6f,0x6b,0x53,0x3c,0x11,0x7e,0x38,0xda,0xb1,0xd6,0x89, + 0xf2,0x82,0xa7,0x89,0x42,0x21,0x8f,0xac,0x63,0x8e,0xeb,0x0e,0xb1,0x50,0x98,0xf5,0xaa,0xba,0xe1,0x5b,0x3d,0xdb,0x7a,0xbd,0xd4,0x0a,0x8a,0xd3,0xb5,0x54,0x0c,0x8e, + 0x6a,0xeb,0x70,0x04,0xf6,0xcf,0x6b,0x05,0xf3,0x0b,0xf4,0x81,0xe8,0xb3,0x2a,0x1e,0x25,0xfc,0x66,0xd9,0x6a,0x4a,0x53,0x16,0x57,0x27,0xbb,0x30,0x4c,0xc2,0x7b,0xaa, + 0x67,0xb5,0xa9,0x92,0x6b,0xc5,0x80,0x25,0xc8,0xbc,0x2b,0x95,0x04,0xb7,0x2c,0x3a,0x84,0x65,0x17,0x3d,0x70,0xf5,0xd5,0xec,0x15,0x80,0xfe,0x88,0xc5,0xa4,0x88,0x7b, + 0x12,0x18,0x2c,0x05,0x56,0x8a,0x6b,0x18,0xa9,0x8e,0xa1,0x91,0x10,0x33,0x01,0x46,0xe7,0xdb,0xc4,0x92,0x74,0xf3,0x24,0xb5,0xed,0xef,0x4e,0xb8,0x61,0xf7,0x2b,0xec, + 0xf7,0x59,0x20,0xe6,0x1e,0x7d,0x05,0xc3,0xcf,0x41,0x07,0xe5,0xe8,0x1f,0x3c,0x1b,0xe7,0xff,0xb0,0x63,0x7f,0x0a,0xc8,0xb8,0x95,0xd8,0x73,0x61,0x34,0x5d,0x9a,0x87, + 0x37,0x3a,0xca,0x70,0xb0,0x36,0xb7,0x0c,0xf8,0xe4,0x6f,0xc9,0x45,0x7a,0x8e,0x19,0xc6,0x82,0x1b,0xe2,0xf2,0xd6,0xc1,0x6e,0xda,0xdd,0x20,0xd7,0xb3,0x0e,0xb3,0xba, + 0xca,0xec,0x9d,0xe4,0xa7,0x4d,0x76,0x60,0x3c,0x5d,0x5d,0x07,0xde,0x2d,0xf0,0xd4,0x35,0xbe,0xf2,0xb9,0x06,0x3b,0x51,0x23,0x30,0x5d,0x2f,0xcb,0xd5,0xdb,0xb3,0x18, + 0x27,0x98,0x05,0x11,0xf4,0x33,0xfe,0xea,0x84,0x47,0x5b,0x82,0x28,0x1b,0x1f,0xa6,0xb9,0x46,0xc9,0x7c,0x64,0x67,0x38,0xd5,0xac,0x33,0x45,0x25,0x0f,0x86,0x03,0x7d, + 0x20,0xb2,0x7f,0x84,0xae,0x12,0x8f,0x67,0x4e,0x14,0x4d,0x82,0xbc,0xd1,0x54,0x41,0x46,0xbf,0xd0,0x15,0x0b,0x08,0x43,0xea,0x58,0x53,0x14,0xf5,0x9c,0xc5,0x4a,0xae, + 0x92,0x59,0x27,0x91,0xff,0x90,0xb5,0x95,0xdd,0x2a,0xe7,0xec,0x03,0x9b,0xf6,0xb7,0xbf,0xea,0xe7,0xf0,0x44,0x76,0x1f,0x5e,0x7f,0xa8,0x65,0x64,0xeb,0xc4,0x6b,0x2b, + 0x8e,0x61,0xb2,0xe0,0x72,0xbd,0x14,0x01,0xda,0x12,0xa3,0xf3,0xd8,0x16,0x4d,0xae,0xda,0xb0,0xbf,0x0c,0xa7,0x95,0xbc,0xf5,0x6a,0xff,0x81,0xd0,0x7c,0xaf,0x72,0x81, + 0xa4,0x11,0x70,0xf6,0x16,0xc5,0x49,0x9e,0x28,0x9b,0x48,0x93,0xb3,0x97,0x3e,0x11,0x55,0xf6,0x6f,0xf3,0x54,0xae,0x6a,0x81,0x2b,0xcd,0x0e,0x33,0xbd,0x7d,0xd5,0xcc, + 0xb8,0xcb,0xc2,0x7d,0x4e,0xa1,0xb2,0x5f,0x22,0x92,0x29,0x2a,0xe5,0x3a,0x3b,0xb9,0x54,0xb7,0xca,0x77,0xcc,0xca,0x5b,0x4d,0xcc,0xf1,0xb9,0x58,0xb0,0xaa,0xd1,0x63, + 0x4b,0xaa,0xee,0x93,0xa7,0x52,0x39,0x7b,0xf2,0xad,0x0b,0xe7,0x2a,0xc8,0x2b,0x0a,0xd2,0x41,0x7e,0x16,0x7b,0xfd,0xfc,0xe4,0x90,0x4f,0x01,0x2d,0x4c,0x33,0xfe,0xa6, + 0x3b,0x3d,0x86,0x18,0x7d,0x05,0xa0,0x01,0x2d,0x83,0xbe,0x28,0x09,0x87,0xdc,0x95,0xb1,0xc0,0xc9,0xb5,0x7f,0x25,0x3b,0x64,0x53,0x0d,0x1d,0x42,0x20,0xaa,0x4a,0xbf, + 0x47,0x2d,0x4b,0x34,0xf5,0xbe,0x6b,0x49,0x9f,0x76,0xb0,0xd9,0xe4,0x39,0xe1,0x15,0xf6,0xa8,0x9b,0x72,0x5d,0x9e,0x9e,0x81,0x11,0x85,0xa6,0x15,0xf1,0x40,0x07,0xd0, + 0xfa,0x67,0xf4,0xa9,0xea,0x34,0xfd,0xe1,0x96,0xa7,0xdf,0xf6,0xbc,0x1a,0x29,0x17,0xb1,0x52,0x6d,0x54,0x95,0x03,0x35,0xbe,0xa2,0xab,0xe2,0x2e,0x1e,0xda,0xb4,0x10, + 0x95,0xc1,0x31,0xde,0x0c,0x89,0xe5,0xb1,0x7f,0x91,0xe5,0x67,0x79,0xc1,0x57,0x1d,0xe2,0xc8,0xa2,0x07,0x94,0x08,0x4f,0xa2,0x74,0xec,0xcc,0x8e,0xed,0x1d,0x3d,0x65, + 0x5b,0xae,0x6d,0x6d,0x23,0xa6,0x8f,0x28,0x3f,0xe0,0xde,0x46,0xf1,0xd7,0x4c,0x0f,0x52,0xe2,0x78,0xcb,0x18,0x1f,0x55,0xc4,0x35,0x3f,0x76,0x8b,0xa1,0x62,0xaa,0xc7, + 0xb4,0xfe,0x12,0x01,0xa8,0x64,0x7b,0xe6,0xd6,0xd5,0x9f,0x40,0x6f,0xa9,0x70,0xcc,0x85,0x8f,0x5a,0x46,0xa5,0x0a,0x6a,0xe9,0xd9,0x92,0xc0,0xe2,0x3f,0x5e,0x2a,0xd3, + 0xb7,0x21,0xeb,0xc7,0xeb,0x1b,0x09,0x43,0x8d,0x75,0x4a,0xe8,0x03,0x02,0xb2,0xa2,0xbf,0x40,0xf8,0x66,0xec,0x50,0x75,0x40,0xab,0x51,0x20,0xb2,0x2f,0x86,0x88,0x86, + 0xb8,0xda,0x5d,0x1b,0xf9,0x41,0x9e,0x2b,0x87,0x6e,0x70,0x88,0x71,0xa9,0xa2,0x95,0x74,0x68,0x66,0x89,0xba,0xe8,0xd8,0x79,0x85,0xd7,0x2a,0x4e,0x57,0x3d,0xde,0xd4, + 0x39,0xaa,0x2b,0xbc,0x4b,0x6f,0x30,0xc2,0x68,0xb1,0x99,0x09,0xd5,0x07,0x01,0x55,0xc3,0x9c,0x60,0x64,0x9b,0x7a,0x2e,0xbe,0xc2,0x66,0xbd,0xd1,0x8f,0xff,0x8c,0xbf, + 0xe4,0x03,0x96,0xa9,0x08,0xc2,0xcc,0xa4,0x50,0x4f,0x4f,0x40,0xbe,0x39,0x4a,0x12,0x24,0x4a,0xe1,0x84,0xf6,0x90,0x9e,0xc7,0x25,0xce,0x72,0x34,0x85,0xbb,0xbb,0x97, + 0x13,0xa2,0x1d,0xc5,0x0c,0xdf,0xae,0xab,0xd5,0x72,0xf2,0xd9,0x4d,0xc0,0xf3,0xf7,0x68,0xf1,0x7f,0x99,0x0e,0xe5,0x9d,0x7f,0x16,0xac,0xe9,0xbf,0xad,0x8a,0x70,0x5c, + 0xa8,0x2f,0xb3,0xbb,0xdf,0x6d,0x69,0xc7,0x39,0x8e,0xe9,0x02,0x0f,0xe0,0x06,0xd5,0xb2,0x8c,0x63,0x2f,0x2d,0xa3,0x57,0x39,0x3f,0xe5,0x8d,0xeb,0x8d,0x27,0xfd,0x08, + 0x8f,0xa4,0x4f,0x09,0xcf,0xdd,0xef,0x86,0xaa,0x90,0x07,0xcd,0x4b,0xea,0x6f,0x0b,0xc9,0xb5,0xb2,0x11,0x52,0x56,0x30,0x3d,0xf0,0x9f,0x8a,0x20,0x90,0x9c,0x52,0x71, + 0xef,0x76,0x29,0x92,0xd2,0x2b,0xac,0xaf,0x06,0xaa,0x1e,0x48,0x2c,0x07,0x11,0x04,0x6b,0x52,0xe0,0xe4,0x0d,0xe2,0xa2,0x1d,0x4e,0x38,0xdf,0x01,0x09,0xad,0x67,0xc0, + 0x3b,0x09,0x36,0xf2,0x23,0x37,0xec,0xe9,0x71,0xee,0x10,0x21,0x78,0xf3,0x7b,0xca,0x3c,0xb6,0x9b,0x50,0xb8,0xec,0x9c,0x9b,0x47,0x33,0x4c,0x68,0xb5,0xd4,0x32,0x0b, + 0xec,0x57,0x18,0x78,0xfb,0x1e,0x3b,0x1f,0x5d,0x4f,0x66,0xb8,0xb0,0x80,0xbd,0x4e,0x50,0x41,0x0b,0x6e,0xee,0xa4,0xdc,0xd3,0xce,0xdd,0x46,0x22,0xbf,0x87,0x61,0x60, + 0x9f,0x3d,0x9d,0xe8,0x7d,0x9c,0xc5,0x09,0x9f,0xf4,0xf5,0x6d,0x91,0x3b,0x98,0xb5,0xeb,0x12,0x60,0xe2,0xb3,0xa2,0xd7,0xa3,0xc5,0xe0,0x1a,0x7e,0x68,0x21,0x9d,0x10, + 0x23,0xad,0xda,0x65,0x71,0xd4,0xad,0x7e,0x94,0x0c,0x21,0x02,0x3a,0xf3,0xff,0xed,0xef,0x9d,0x8f,0x64,0xe8,0x3c,0xc1,0xcf,0x6e,0x99,0x2d,0x1d,0xa1,0x45,0x1d,0x91, + 0x91,0xe7,0x0b,0xd8,0xbf,0x85,0xbc,0x63,0x11,0xb2,0xcd,0x77,0x91,0xb7,0xed,0xf0,0x0e,0x22,0xf9,0xcb,0x8b,0xfd,0x72,0x57,0x1e,0xc9,0xa0,0x3b,0xbf,0x71,0x6f,0x37, + 0xa7,0xd2,0xf3,0xe3,0xfa,0xa7,0x72,0xd7,0xa8,0x60,0x26,0xe2,0xf1,0x83,0xdb,0xe7,0xa2,0x98,0xae,0x3d,0x1b,0xc3,0xab,0xce,0xa0,0xdf,0x3c,0x11,0xca,0xe4,0xca,0x60, + 0xc6,0x11,0xd2,0x7e,0x7c,0xb5,0x2e,0x7c,0x56,0xcf,0xa9,0x06,0x2e,0x59,0xf3,0xde,0xfe,0x7c,0x1e,0x22,0x57,0x27,0xb9,0x04,0x93,0x84,0xa1,0x80,0xbd,0x16,0x88,0xa8, + 0x66,0x1f,0x5d,0x36,0xb5,0x7a,0xf4,0x89,0x82,0xe4,0x4f,0xf8,0x9a,0xe7,0x5f,0x84,0x9a,0x08,0xb1,0xda,0xed,0x64,0x17,0xa2,0x02,0x12,0xbe,0xa8,0x8c,0x7f,0x2f,0x8a, + 0x54,0x0e,0x25,0x5f,0x6c,0xb5,0x8d,0x23,0x79,0x90,0xa7,0x43,0x7c,0xc7,0xaa,0xe7,0x70,0x42,0x87,0x96,0xde,0xb6,0x07,0xbc,0x29,0xfb,0xf0,0xa4,0xd1,0x18,0x73,0xc8, + 0xac,0x67,0x05,0xaf,0x9d,0x05,0x9c,0xac,0x99,0x77,0x96,0x7c,0x0c,0xe5,0x14,0xd7,0x0d,0xc5,0x1d,0x88,0xfd,0xe6,0x84,0x12,0x3a,0x92,0x12,0x44,0x93,0x3b,0xa8,0xec, + 0xf7,0xa5,0xb6,0x9b,0xc3,0x9a,0x97,0x6b,0xfa,0x66,0x44,0xa1,0x52,0x78,0x9c,0x31,0x49,0x35,0x20,0x93,0xb1,0xdc,0xc4,0xb6,0xb0,0x6f,0x6c,0x4c,0x7c,0x90,0xfd,0xf3, + 0xf0,0x58,0x7f,0xbd,0x10,0xe3,0x32,0xad,0x29,0x7b,0x5e,0x46,0x3d,0x4f,0x09,0xd2,0x16,0x7c,0x85,0x89,0xc4,0x6d,0xc6,0x68,0x0c,0x13,0xb0,0x44,0xa3,0x44,0x85,0xea, + 0x2f,0xb4,0x99,0x13,0x32,0xa5,0xd6,0x48,0xdf,0x5c,0xa6,0xbb,0xd0,0x85,0x75,0xc7,0x55,0x37,0x73,0xa9,0x73,0x12,0x30,0x34,0x40,0xcf,0xe7,0xe4,0x3d,0x3a,0x26,0x8c, + 0xcb,0x65,0x08,0x2d,0xf5,0xf5,0x4c,0xdc,0x66,0x86,0x25,0x01,0x7c,0xdf,0x45,0xf2,0x2f,0x30,0x5a,0x8f,0x34,0xad,0x91,0xfa,0xbf,0x36,0xc0,0x71,0x49,0x6c,0x84,0xcc, + 0x64,0x41,0xac,0x7b,0xe8,0x1c,0x2f,0xb6,0x47,0x26,0x55,0x52,0x8f,0x21,0x45,0x4d,0x40,0x23,0x6a,0x87,0x8f,0xba,0xc2,0xce,0x31,0xe4,0x35,0x8a,0xb4,0xed,0x02,0xcc, + 0x0b,0x58,0x6c,0x44,0x2e,0xaf,0x01,0x6f,0x38,0x21,0x99,0x72,0x9f,0x60,0x24,0x0c,0xe5,0x0c,0x0f,0x71,0x07,0xc4,0x88,0xa4,0x23,0xd4,0x27,0x94,0xdb,0x5f,0x66,0x63, + 0xb3,0x76,0xd9,0xbc,0x19,0x09,0xee,0xf9,0x29,0x53,0xce,0xbc,0x3b,0xd6,0xf2,0xbc,0x0c,0xd6,0xcc,0xa6,0x20,0xc1,0x90,0x14,0x17,0x40,0xf6,0x22,0x39,0x57,0x93,0x34, + 0xae,0x73,0x9f,0x62,0x4c,0xcb,0x1f,0x0e,0xc9,0x64,0xb2,0xd1,0x89,0x6d,0x2d,0xf8,0x3c,0xa1,0x96,0x9a,0xd6,0xca,0x26,0xb3,0x34,0x34,0x20,0x13,0xd8,0x32,0x82,0xaa, + 0x3c,0x25,0x12,0x6e,0xce,0x58,0xad,0x8e,0x93,0xeb,0xfe,0x6e,0x75,0x47,0xb0,0x5b,0x39,0xc6,0xd9,0x85,0x8e,0x55,0x9f,0xc0,0x1f,0xf6,0xb6,0xe5,0x0b,0x0a,0x22,0xac, + 0xe4,0x7d,0x65,0x8d,0xf5,0xc1,0xf9,0x59,0x9d,0x4e,0x56,0x09,0x54,0xab,0x86,0x0e,0x9a,0x63,0x77,0xde,0xcb,0x0b,0x56,0xef,0x3c,0x13,0xde,0xe3,0x61,0x85,0xb2,0xf3, + 0xd8,0x27,0x9c,0x1e,0xc9,0x51,0x89,0xfe,0x63,0xd7,0x5d,0x1c,0x6d,0x7f,0xc3,0x12,0xe4,0x11,0xa3,0xd1,0x1e,0x4d,0x67,0x1a,0x49,0xfa,0x17,0xfa,0x36,0xc3,0xce,0xe1, + 0x07,0x7c,0x7a,0x4e,0x60,0x60,0x99,0xd7,0x81,0xcb,0xe5,0xa8,0x9c,0xaf,0x7b,0xdf,0x4f,0x44,0x8b,0x1c,0x0d,0x7d,0x30,0x97,0x26,0x3a,0x04,0x51,0x70,0x27,0x5a,0x3a, + 0x20,0x25,0x80,0x8c,0x60,0x9a,0xb0,0xb0,0x79,0x24,0x44,0x4e,0xa4,0xaa,0x0f,0xa5,0x25,0x63,0x85,0x8a,0x53,0x22,0x1f,0x71,0x9c,0x91,0xb1,0x55,0x76,0xf4,0x9e,0xa2, + 0x98,0x32,0x40,0x5d,0x56,0x5c,0x97,0xba,0x1d,0x6f,0xf4,0x6e,0x1d,0x8f,0xe3,0x38,0x86,0x22,0x2c,0xba,0xa6,0x99,0x63,0x86,0x8d,0x12,0xa8,0xbe,0x07,0xab,0xac,0x6d, + 0xc4,0xbb,0xf4,0x45,0x47,0xe8,0x12,0x8b,0x9a,0x46,0xed,0x92,0xce,0xb0,0x7d,0xf6,0x91,0xe2,0xe9,0x1d,0x0b,0x47,0xda,0xc0,0xdc,0x2a,0xfd,0x14,0x12,0x1e,0x7a,0x80, + 0x17,0x0a,0x91,0xaa,0x81,0x96,0xdf,0x6f,0x0d,0x09,0xec,0x19,0x7f,0xc5,0x26,0x99,0x6f,0xfc,0xb6,0x79,0x28,0x80,0xf0,0x10,0x18,0xb3,0x32,0x7a,0x09,0x6f,0xe6,0x38, + 0xed,0x52,0x7e,0x31,0x22,0x3f,0x17,0x5a,0xa7,0x86,0xf1,0x46,0xb3,0xfe,0x05,0x61,0xa4,0x1b,0x10,0x51,0xd5,0xeb,0x32,0x24,0x97,0x90,0x48,0x1e,0xab,0x1e,0xf3,0x81, + 0x5a,0x74,0x55,0x57,0x32,0xd8,0x54,0x1d,0x2f,0x73,0xe3,0xa5,0x9e,0xb3,0x1a,0x13,0x1c,0x8d,0x41,0x46,0x4a,0x1f,0x2c,0x37,0x53,0x1a,0x25,0xf4,0xa6,0xd3,0xbf,0xe4, + 0xf2,0x75,0x0c,0x99,0x6f,0x22,0x76,0x26,0x29,0xa3,0xf8,0x08,0xda,0x6e,0xed,0xd7,0xcc,0x72,0xaf,0x4f,0xb0,0xbd,0x81,0x6c,0x86,0xe6,0x36,0x26,0x4b,0xf5,0x76,0x64, + 0x5d,0x21,0x63,0xca,0x85,0x07,0x49,0x99,0x1c,0xf7,0x82,0xc3,0x85,0x2e,0x86,0xb0,0x5e,0x6b,0x05,0xec,0x86,0x62,0x90,0x5b,0x60,0xcc,0x7b,0x7e,0x37,0x43,0x4f,0xbd, + 0xf8,0xcf,0x2c,0xcc,0xdc,0xb5,0x3b,0x3d,0x3c,0x6d,0x19,0x90,0xae,0x16,0xc7,0x1a,0xd9,0xd1,0x41,0xca,0x49,0xf8,0x57,0x4a,0x72,0x04,0x7c,0xe6,0xc2,0xda,0x95,0x0b, + 0xcc,0xf6,0xe1,0x4d,0x1a,0xdd,0x6e,0x4b,0x5a,0x42,0x28,0xe5,0xaa,0xd0,0xb3,0x1f,0xac,0x4b,0x45,0xe2,0x11,0x2c,0x1c,0x76,0x7e,0x93,0x3c,0x6a,0x0c,0x3f,0x2e,0xdb, + 0x57,0x55,0x64,0x59,0xe9,0xd3,0x2b,0x75,0xa1,0x37,0x76,0xbd,0xdc,0x8f,0x54,0x7c,0xb6,0x47,0x08,0x13,0x3e,0x79,0x17,0xb6,0x1e,0x36,0x97,0xc3,0x92,0x00,0x3d,0xe7, + 0xe5,0x49,0x0c,0xb4,0x94,0xbc,0x6a,0xb2,0x10,0x8d,0xa2,0xcb,0x0b,0x92,0x6c,0xd8,0x78,0x71,0x2f,0x54,0xbf,0xa7,0x2b,0x59,0xf7,0x02,0xc1,0x80,0xc6,0x2b,0x0c,0x91, + 0xb3,0xca,0x75,0x3c,0x1e,0x10,0x67,0xb5,0x50,0x73,0x6a,0x66,0xc0,0xd6,0xb6,0xf4,0x7e,0x93,0x94,0xc5,0x6b,0xb8,0x0b,0x5d,0x42,0x04,0xfb,0xec,0x9e,0x59,0xb4,0x90, + 0xb0,0xcf,0x8c,0x17,0x8a,0xd9,0x59,0x52,0x52,0x02,0x64,0xd0,0xf4,0xa2,0x43,0x89,0xbf,0x1b,0x23,0xdc,0x7a,0xc1,0xb6,0x5d,0x4e,0x8f,0xe8,0x22,0xdc,0xf2,0x0d,0x67, + 0x15,0xe4,0x0d,0xc4,0x9e,0xd6,0x2d,0x35,0xe8,0xc9,0x19,0x99,0xb0,0x50,0x68,0xf4,0x19,0x23,0x8a,0x22,0x2d,0xeb,0xa2,0x06,0xdf,0x47,0xd9,0x09,0xd3,0xa1,0xf4,0x0f, + 0xe9,0x45,0x80,0x64,0xd3,0xbf,0xc4,0x44,0x41,0x74,0x86,0xac,0x13,0x34,0xa9,0x3c,0x9a,0xa4,0x46,0x80,0x31,0x13,0x4e,0xe0,0x19,0x6c,0xa6,0xe3,0x17,0x13,0x95,0x6c, + 0xf4,0x44,0x6e,0x98,0xa6,0x3b,0x05,0x98,0x01,0x1b,0xaa,0xa4,0xf9,0x30,0x51,0x32,0x18,0xe8,0x37,0x0a,0xbf,0xbd,0x46,0xf7,0x21,0xc8,0xdb,0xf3,0x7e,0x17,0x0d,0x85, + 0xdc,0xa8,0x27,0x68,0x7a,0xa2,0x4f,0x2f,0xcb,0xca,0xb5,0xc3,0x80,0x69,0xf4,0x86,0x0d,0xee,0x66,0x98,0xfc,0x23,0x90,0x8b,0x06,0xc7,0xda,0xe7,0x13,0xa1,0x41,0xf9, + 0x19,0x71,0x4f,0x1d,0x4a,0xaf,0x8b,0xd6,0x15,0x20,0xb6,0x47,0x63,0x3a,0x8e,0x53,0x09,0x94,0x99,0xac,0x36,0x8c,0x3d,0xd6,0xf1,0xb0,0x84,0x89,0x16,0x19,0xb0,0xc0, + 0xd7,0xa2,0xda,0x8d,0xe2,0x43,0x4e,0x2a,0xd2,0x64,0xf9,0x70,0x6b,0x30,0xd0,0x65,0x7c,0x72,0x76,0x06,0xd8,0x28,0x5d,0x21,0x79,0x80,0x0a,0x97,0x0b,0x4f,0xae,0xe3, + 0x85,0x3d,0x4e,0x01,0xd4,0xdd,0x4c,0x9d,0x6e,0x78,0x20,0xad,0xc1,0x6f,0x32,0xce,0x7b,0xfe,0xec,0x0d,0x57,0x8d,0xea,0xf2,0x8a,0xf9,0xcb,0xb3,0x31,0x5e,0x8f,0x1b, + 0x35,0x71,0x5b,0xef,0xcf,0xde,0xd1,0x6e,0x67,0xfc,0x0d,0xce,0xbe,0x94,0x5c,0x62,0x64,0xca,0x0d,0x91,0xb3,0x66,0x3b,0xd3,0xec,0x07,0x22,0xb5,0x85,0xe5,0xd6,0x52, + 0x2b,0xaf,0x10,0x86,0x68,0xe8,0x2b,0x7f,0xca,0xf3,0xf5,0xe3,0x27,0x26,0x37,0xb4,0x26,0xc5,0x51,0xd8,0xaf,0x0e,0x55,0xf5,0xd7,0x4b,0xc3,0x17,0xa4,0x47,0x47,0x67, + 0xbb,0xa4,0x43,0xb1,0x60,0x99,0x7a,0xa8,0xb7,0xfb,0x27,0x48,0x91,0x1d,0xc2,0x15,0x4c,0x0f,0x6b,0x98,0x6f,0xbe,0x9a,0x49,0xe0,0xa2,0x93,0x4f,0xa5,0xf3,0x29,0x54, + 0xb4,0x83,0x17,0x36,0x60,0x1e,0x73,0x87,0x05,0x0b,0xa3,0xd4,0x01,0xae,0xa2,0x41,0xc3,0x50,0x6b,0x56,0xa0,0x47,0x38,0x86,0xc4,0x08,0xb3,0x66,0xc8,0x69,0x64,0x29, + 0xec,0xd0,0xc9,0xe1,0xac,0xb9,0x0f,0xf8,0xbd,0xe8,0x8f,0x77,0x57,0xa0,0x89,0xcc,0x86,0xcb,0xa2,0x7f,0x0d,0x15,0xfd,0xf7,0x37,0xab,0x3b,0x8e,0xcf,0x9f,0xd9,0xc8, + 0x6b,0x9e,0xe6,0x18,0x59,0x8f,0x33,0xc1,0x84,0xcd,0x63,0xcf,0x89,0x30,0xa4,0xdb,0x3a,0x2d,0x4e,0xa0,0x22,0xd5,0x0e,0x63,0xcd,0xff,0xf8,0x57,0x34,0xa7,0x7a,0xb4, + 0xd8,0x01,0xdc,0x93,0x54,0xcb,0x75,0x6e,0x6c,0x27,0xde,0x5a,0x7c,0xc8,0x8e,0xd5,0xcb,0x21,0x4a,0xc5,0x09,0x1b,0x40,0x90,0x62,0x4e,0xe8,0xaf,0xbc,0xba,0x35,0xf9, + 0x03,0x30,0x7e,0xa5,0x57,0x02,0x46,0x86,0x91,0x0d,0x2d,0x1d,0x2d,0x27,0x60,0xd8,0x26,0x64,0x41,0x3b,0x8f,0xee,0xc6,0x6a,0xe8,0xd2,0xdb,0xf1,0x02,0x5f,0x0c,0x45, + 0xdc,0x2c,0xd9,0x43,0x21,0x64,0x3e,0x89,0xdc,0xc9,0x2a,0xcb,0x01,0x28,0xd8,0x86,0xb2,0x8c,0xb7,0xd6,0x6a,0x0e,0xaa,0x5b,0x96,0x19,0x44,0x65,0x70,0x87,0x80,0xd6, + 0xb8,0x31,0xf4,0xa0,0xfb,0x75,0x92,0x7b,0xdd,0x29,0x45,0xc0,0x08,0x1f,0x11,0xcc,0xe8,0x71,0xc9,0xd6,0xdb,0xf8,0x3b,0x78,0x95,0x74,0x8c,0x3f,0x46,0x37,0x5a,0xc7, + 0xed,0x60,0x7a,0x9e,0x6d,0x41,0xa4,0xbc,0x05,0x35,0xc5,0x16,0x1c,0x98,0x61,0x3e,0xda,0xc6,0xb5,0x19,0x59,0x0b,0x48,0x14,0x20,0xfb,0x2b,0xa1,0xed,0x2c,0x35,0xe6, + 0x64,0xa6,0x8f,0xad,0x23,0x78,0x59,0x1a,0x18,0xf8,0xf2,0xa4,0xe3,0x46,0xfa,0xf5,0x9d,0xa2,0x94,0x46,0xec,0x16,0xb3,0xfb,0x8c,0x37,0xae,0xf2,0xd7,0x9f,0xae,0xa5, + 0x0f,0xdd,0xd5,0x0b,0xb2,0x76,0x66,0xd4,0xd3,0x8e,0x6e,0xc1,0x8c,0x8a,0xe1,0xbe,0x3d,0x76,0x3b,0xe7,0xdd,0x11,0x06,0x72,0x13,0xe9,0x97,0xfa,0x40,0x59,0xc6,0x7a, + 0x9c,0x41,0x20,0x23,0xb7,0xa6,0x6e,0xbc,0x95,0x79,0xa8,0xd1,0x6b,0xfd,0x31,0x09,0xba,0x08,0x5c,0x42,0xf3,0xfd,0x39,0x5e,0x07,0x53,0x45,0x29,0xad,0x23,0x40,0xa4, + 0x28,0x71,0x77,0x26,0xdc,0x36,0x74,0xab,0xb4,0xf8,0x2b,0x66,0x83,0x7e,0x86,0x85,0xed,0xe1,0x6c,0xb0,0xcd,0x96,0x58,0x24,0x35,0x2a,0xc0,0xa2,0xf9,0xd8,0x93,0xa7, + 0x2e,0x74,0x66,0x11,0x09,0xf0,0xcb,0xc6,0xd5,0x87,0x79,0x03,0x30,0xd6,0x79,0x88,0x65,0x8b,0xcf,0xab,0xf1,0xf7,0x49,0x8a,0x2b,0x32,0x79,0x21,0x28,0x28,0xe2,0x07, + 0xd2,0x02,0xdf,0x66,0x62,0xba,0x06,0xd3,0x08,0x83,0x63,0xc6,0x0e,0x34,0x12,0x83,0xf7,0xb6,0x30,0x01,0x04,0xd5,0x8c,0xf6,0xd7,0x07,0x26,0x2b,0xe6,0x97,0x2b,0x59, + 0xa5,0x4a,0x81,0xc1,0x8f,0x4b,0x7a,0xb0,0xf3,0x70,0x20,0x13,0x67,0x85,0x66,0xce,0x29,0xe9,0x1c,0x41,0x42,0x11,0x4d,0x62,0xf8,0x67,0xa5,0x27,0x8f,0x89,0xcf,0xff, + 0x9a,0x95,0x41,0x12,0xf5,0x2d,0x76,0x70,0x9d,0x64,0x73,0x9d,0xc7,0x5e,0x9c,0xe7,0xa7,0x6a,0xa1,0x92,0x42,0xb3,0x06,0x39,0x1f,0xcf,0x25,0xff,0x92,0xb7,0x69,0x01, + 0x87,0x63,0xcb,0x23,0x5f,0x27,0x80,0xc1,0xbb,0xd3,0x5f,0xe6,0xc3,0x87,0xd5,0x50,0x5f,0x72,0xeb,0x0a,0x77,0xb1,0x04,0xc7,0x75,0xc2,0xb3,0xb4,0x27,0x86,0xd7,0xc9, + 0xb9,0x30,0x9d,0xdc,0x5e,0xb6,0x4a,0x4d,0x81,0x9a,0x8a,0x33,0x2b,0x06,0x1a,0x59,0xf1,0x63,0xa5,0xf5,0x0d,0x48,0x65,0x69,0x7e,0x4d,0x12,0x3e,0xfc,0x9b,0x2b,0x29, + 0x87,0xe9,0xf5,0xec,0x4a,0x90,0x91,0xd9,0x4a,0xc2,0x2a,0x6a,0x71,0x40,0x82,0x13,0xf4,0x44,0xbe,0x09,0x4c,0x61,0x8d,0x45,0x96,0x82,0xe1,0x73,0x57,0x63,0x19,0x39, + 0xc6,0x9a,0x00,0x01,0x71,0x84,0xa1,0x3c,0x71,0x3c,0xc0,0xa7,0x0e,0x89,0xc6,0x01,0x74,0x36,0x1d,0x07,0xde,0xa5,0x08,0x5f,0xd7,0x07,0xf4,0xb5,0xed,0x3f,0xae,0xad, + 0xc1,0x39,0xb7,0x56,0x15,0xe1,0x01,0x0c,0x92,0x0b,0x07,0xd1,0x4f,0x6a,0x19,0x80,0xff,0x4c,0x97,0xa0,0xa9,0xbb,0x8a,0x09,0x7a,0xec,0x2a,0x45,0x6b,0x6b,0xc4,0xed, + 0x70,0xaa,0xb5,0xe9,0x6e,0x49,0x91,0x32,0x1f,0xaf,0x44,0x0c,0xa2,0xde,0xa8,0x61,0xba,0x00,0x7d,0xf0,0x8e,0xe4,0x6c,0x6f,0x57,0x97,0x31,0xea,0xd5,0x16,0x36,0xda, + 0xe2,0xae,0x03,0xb8,0x44,0xb3,0xf2,0x79,0xd5,0xcd,0x16,0xbf,0xf2,0x0a,0xb5,0xca,0xd0,0x7e,0x4c,0x98,0x4f,0x21,0xcb,0xe7,0x3e,0x19,0x97,0xa0,0x2b,0xd2,0xc2,0x91, + 0x0a,0xab,0x6b,0x19,0xe4,0x20,0x55,0x48,0xf9,0x29,0x36,0x2e,0x72,0xb0,0x77,0xf2,0x36,0x56,0x67,0xbd,0xd8,0x1d,0x93,0xa4,0x04,0x34,0x3e,0x7a,0x5f,0x84,0xc6,0xba, + 0xd9,0x6c,0xdd,0x08,0xe6,0xee,0xec,0xa6,0x90,0x98,0x9b,0x65,0x90,0x24,0xf3,0x24,0xe1,0x8c,0x2f,0xaf,0x5c,0x50,0x95,0x8d,0xa6,0x98,0x5f,0x70,0x82,0x60,0x95,0xc5, + 0x43,0x4b,0xd6,0x8e,0x45,0x63,0x0c,0xa1,0xb3,0x48,0x45,0x17,0xda,0x08,0x0e,0x3c,0x31,0x98,0xdd,0xec,0x5e,0xf1,0xf7,0xe9,0xd2,0xe3,0x42,0x5d,0xf2,0x14,0xb9,0x0d, + 0xae,0xa4,0x74,0x44,0xc8,0x97,0xf7,0x15,0x7f,0x33,0x6c,0x77,0xb7,0x40,0x19,0x79,0x06,0x6d,0x66,0x17,0xb5,0x9a,0x01,0x98,0x8f,0x78,0xf6,0xc9,0xa9,0x8f,0xee,0xdf, + 0x48,0x6c,0xf8,0x95,0x9f,0x7d,0x93,0x9c,0x4c,0x79,0xa0,0x71,0x5b,0xa7,0xbb,0xf0,0xcc,0x3f,0xa7,0xb2,0xa1,0xd6,0x0e,0x86,0xad,0x09,0x7c,0x91,0xe5,0x61,0x2e,0x24, + 0x5a,0x1f,0x06,0x74,0xb1,0x39,0x7b,0x6e,0x65,0x3f,0xf6,0xe4,0x73,0xd6,0x41,0xda,0x4f,0xb9,0xe7,0xbc,0x90,0xa7,0x38,0x02,0x73,0x9a,0x03,0x49,0x14,0x85,0x00,0xfa, + 0x9a,0x90,0x75,0x14,0xa9,0xec,0xc8,0x5f,0x96,0x59,0xb9,0xe9,0x79,0x09,0xa3,0x8f,0x97,0x2b,0x0c,0x9a,0x7c,0x00,0x97,0x78,0xb8,0x19,0x04,0x38,0xa8,0xeb,0xc0,0x0a, + 0x94,0x16,0x85,0xfe,0x4d,0xe8,0x16,0x26,0x11,0x57,0xb2,0xfe,0x3d,0x3a,0xc2,0x81,0x95,0xd8,0x1f,0xac,0x62,0x25,0xfd,0x31,0x03,0xee,0x60,0xa0,0xc2,0x4d,0xf4,0x72, + 0xb2,0x03,0xeb,0x03,0x65,0xa4,0x06,0x24,0xa4,0x42,0x57,0x2e,0x0b,0xad,0x80,0xe1,0xf0,0xc9,0x95,0x8e,0x57,0x09,0x51,0x2e,0x76,0xb2,0x8f,0x4e,0x0b,0xfb,0x22,0x91, + 0xe0,0x9d,0x25,0xf8,0x22,0x47,0x1e,0x64,0x70,0x64,0xb5,0xb6,0x8c,0xd2,0xae,0x42,0xd6,0xbe,0x7b,0x87,0x65,0xcd,0xc0,0x26,0xbb,0x76,0x96,0xa5,0x24,0xc8,0x3f,0x49, + 0x97,0xe3,0xc2,0x9f,0x69,0xd9,0x03,0x2e,0x67,0x69,0x33,0xed,0xb1,0x52,0xf2,0x43,0x8e,0xc7,0xdf,0xfb,0x17,0x64,0x14,0x42,0xce,0x93,0x42,0xe1,0x38,0xf8,0x16,0x67, + 0xcd,0x78,0x74,0x61,0x2d,0x68,0xc9,0x07,0xb4,0x34,0xbd,0x81,0xbf,0x1b,0x1a,0x83,0xcf,0x94,0x29,0xb2,0x4c,0xee,0x75,0x3c,0xc2,0x28,0xec,0xbd,0xd6,0x65,0x73,0x88, + 0x62,0x1d,0xdb,0x18,0x93,0x13,0x7c,0x12,0x14,0x7e,0x90,0x9d,0xff,0x83,0x08,0x59,0xdc,0xd7,0x3d,0xdb,0x00,0xac,0xdb,0x40,0x97,0xf1,0xd6,0x6e,0x14,0xfe,0x36,0x6e, + 0x19,0xad,0x36,0x2e,0xf4,0x4a,0x36,0x34,0x2c,0xf9,0x14,0x3b,0x88,0x47,0x0d,0x56,0x59,0xfc,0xa6,0xa3,0xa3,0x0c,0x90,0x42,0x71,0xf6,0xd6,0xbd,0xc0,0x5e,0x94,0x07, + 0x43,0xbd,0x8c,0xf3,0x70,0x25,0x7b,0xc8,0x8f,0x38,0xb0,0xde,0xd6,0x8a,0xf2,0xf9,0xd9,0x39,0x77,0x23,0x4a,0x19,0xfb,0xf6,0x7a,0xbf,0x2e,0x0a,0x4c,0x09,0xc1,0x20, + 0x9d,0x92,0x0e,0x7a,0x6f,0x61,0xfe,0x41,0x40,0xbb,0xe5,0x6f,0x43,0x17,0xe3,0x89,0x2d,0x21,0xa8,0x0f,0xb4,0x80,0xa0,0x91,0xa3,0xc1,0x6a,0x0a,0x67,0xa7,0xa9,0x7d, + 0x07,0x96,0x22,0x17,0x92,0x86,0x02,0x98,0xf1,0xb4,0xc5,0xaa,0x15,0x61,0xec,0x5d,0xb0,0x1a,0xd8,0x76,0xc3,0x55,0x2b,0xd9,0x6b,0x00,0xaa,0x23,0xef,0x47,0xb7,0x1d, + 0x8c,0xec,0x89,0x08,0x42,0x61,0x7d,0xe7,0x78,0x9c,0x3c,0x29,0x09,0xe2,0xd3,0x80,0x31,0xd5,0xaa,0xd9,0x57,0xd9,0x95,0xbd,0xec,0x62,0x2b,0x01,0x0c,0xe9,0xe0,0xb7, + 0x1d,0x4c,0x7c,0x7a,0xa3,0x59,0x14,0x0e,0xdf,0x90,0x7c,0x82,0x34,0xef,0x16,0xb9,0x2f,0x20,0x1f,0x56,0x2c,0x22,0x37,0xaa,0x32,0xad,0xbc,0xbd,0xc0,0xca,0xbd,0x0c, + 0xb1,0x51,0x34,0xb9,0xe9,0x19,0x96,0xe2,0x28,0xea,0x7b,0xa6,0xcb,0x45,0x00,0xa1,0x17,0x98,0x3c,0x8e,0xeb,0x68,0x71,0x74,0x65,0x73,0x54,0xe5,0x99,0x61,0xe5,0x21, + 0x90,0x6a,0xcb,0x96,0x12,0x0e,0xc7,0x68,0x4e,0x39,0x11,0x00,0xcf,0x0b,0xb7,0x47,0x69,0x16,0x78,0xeb,0x3e,0x14,0x7f,0x53,0xdb,0x88,0x6b,0xa0,0xfc,0x5a,0xa7,0x0d, + 0x73,0xdd,0x08,0x7b,0x1c,0xb3,0xc5,0xa0,0x7a,0xcd,0xb9,0xb0,0xa4,0xa0,0x2c,0x64,0xb7,0x08,0x7a,0xe9,0x78,0x36,0xe9,0x43,0x43,0x9d,0xbf,0xdf,0x41,0xea,0xc8,0x33, + 0xf7,0x3c,0x49,0xf6,0xda,0x53,0x7b,0x2f,0xf3,0x0e,0xad,0x75,0x38,0xc0,0x47,0x26,0xbc,0x74,0x15,0x25,0x35,0xd2,0x2b,0x6b,0xaf,0x92,0xd0,0x6a,0xdb,0x45,0xe6,0x76, + 0xf4,0xa7,0x57,0xce,0xb0,0xba,0x6c,0xb9,0x61,0x8a,0xcd,0x8f,0xef,0x68,0xd2,0xc8,0xfe,0x99,0x01,0xff,0xf1,0x41,0x77,0xf2,0x7b,0x6e,0x6b,0x8c,0x6b,0xd3,0x4c,0xb7, + 0x3e,0xb4,0xa6,0x34,0xd0,0x09,0x01,0x75,0x34,0x76,0x13,0xb7,0xee,0xd6,0xd4,0x9b,0x9b,0x59,0x44,0xe7,0x0a,0xcc,0x3e,0xd9,0x84,0x74,0x98,0x9d,0x30,0xa4,0xc2,0x99, + 0x52,0x0d,0xff,0x4d,0x04,0x08,0x58,0x71,0xcf,0xf6,0x9b,0x3a,0x20,0xa7,0x5b,0x8f,0x3b,0x10,0x3d,0xa0,0xe4,0x68,0x36,0x5e,0x8c,0x92,0x87,0xc0,0xa7,0xad,0x7d,0x9e, + 0xc8,0x0a,0xc1,0x3c,0x5d,0x2e,0x67,0x23,0xe8,0x48,0xed,0xb0,0x23,0xfc,0x17,0xec,0xae,0x55,0x37,0x81,0xa4,0xaa,0xc9,0x0f,0x25,0x77,0xfa,0xe7,0x51,0x17,0x11,0xcf, + 0xb0,0xc2,0x8a,0x99,0x38,0xcf,0x09,0x5a,0x4b,0x0e,0xbf,0x3d,0xaa,0x6a,0x16,0xe1,0x9e,0x3f,0x41,0x99,0xe3,0x47,0x5c,0xa3,0xaa,0x58,0x74,0x6f,0x65,0x1b,0x92,0x1e, + 0x78,0xdb,0xfe,0xc6,0xb4,0xaa,0xd2,0xd0,0xa9,0x9b,0xdd,0xe7,0xb9,0x09,0x96,0x32,0x4c,0x0f,0x7b,0x9d,0x13,0x6a,0x6e,0xde,0x5c,0x29,0x95,0x19,0x7d,0x0d,0x41,0x2a, + 0x36,0xa2,0xe7,0x7f,0x56,0xc3,0xe5,0xb1,0x1e,0x35,0xbf,0x4b,0xa5,0xde,0x18,0x85,0xcf,0x02,0x64,0x64,0x3c,0xac,0x5d,0x6f,0x7b,0xfb,0x1a,0xe0,0x1e,0x39,0xa6,0xc0, + 0x9f,0x4e,0x92,0xd9,0xa9,0x59,0xc0,0x9e,0xed,0xdd,0x15,0x2f,0x6d,0x95,0xff,0x2c,0x31,0x57,0x44,0x6f,0x47,0x7f,0xbe,0xd2,0x14,0xa0,0x06,0x21,0xd0,0x14,0xf9,0x36, + 0xd0,0xb1,0x65,0x61,0x34,0x9f,0x18,0x2e,0xf2,0x79,0x2d,0x0c,0x2d,0xd5,0x85,0x60,0x1c,0xe4,0xe0,0x32,0x75,0x4b,0x76,0x28,0xb3,0xd8,0x01,0xf1,0x87,0xc1,0x4f,0xd4, + 0x5f,0xd6,0xd7,0xf0,0xba,0x31,0x7a,0x36,0x43,0x4e,0x1a,0x99,0x5b,0xed,0x54,0xa4,0x28,0x98,0xd9,0x40,0xee,0x5f,0xa4,0x57,0x83,0x73,0xe8,0xd4,0xc2,0x3f,0x55,0x67, + 0xbb,0xe5,0x59,0xb7,0x7e,0x83,0x90,0x5b,0x08,0x95,0x4d,0xc3,0x73,0x6a,0x27,0x52,0xd5,0x6a,0x5b,0xc3,0x66,0xa5,0xfc,0xd8,0x4e,0x04,0x2a,0x78,0xc8,0xaf,0x68,0xd3, + 0xe6,0x24,0x29,0xb8,0xeb,0x32,0x2d,0x24,0xe4,0xbd,0xb9,0xa7,0x2b,0xf6,0xe9,0xc9,0x4d,0x82,0x96,0x2b,0x26,0xd9,0x9f,0x63,0x3e,0x1f,0x21,0x70,0x9b,0x7e,0xdd,0xbe, + 0x58,0x22,0xc1,0x68,0xaa,0xb9,0xbb,0x6f,0xfe,0x00,0xb7,0xc4,0xc7,0xbe,0x55,0x51,0xda,0xa8,0x30,0x4b,0x8d,0x2c,0x06,0x96,0xe2,0xd7,0x7f,0xe5,0x0b,0x9d,0x8d,0x8d, + 0xba,0xe2,0x6f,0xa6,0x9d,0xa0,0x0a,0xa0,0x3f,0xd9,0x02,0x8f,0xa8,0x4d,0x46,0xb9,0x2c,0x13,0xd5,0xe5,0x55,0xb2,0xe7,0xb3,0xdb,0x0d,0x09,0xbb,0x95,0xd4,0x14,0x86, + 0x97,0xce,0x8c,0x4b,0x6e,0x03,0x17,0x76,0xb1,0x9f,0xc7,0xc9,0x57,0x7c,0xb2,0x6f,0x08,0x52,0x74,0xa5,0x84,0x07,0x26,0x7b,0xca,0x35,0xa9,0x76,0x92,0xa2,0xe8,0xe6, + 0x5e,0xb5,0x72,0x2f,0x98,0xaa,0xd0,0x62,0x20,0x97,0xd9,0x44,0xbb,0x12,0x0e,0x09,0xe7,0xa1,0x22,0x49,0x8b,0x20,0xae,0x2b,0xff,0xf9,0x1c,0x8b,0x36,0x2d,0xaa,0xd2, + 0xf5,0xc9,0xb8,0x8d,0x48,0x11,0x20,0x41,0x33,0x4c,0x57,0x4f,0x93,0x31,0x36,0x70,0xcd,0xec,0xbe,0x0c,0x0b,0x6c,0x26,0x55,0x77,0x8d,0xf8,0xff,0x62,0x02,0x5d,0x3f, + 0xef,0xfa,0x36,0x2f,0xce,0x62,0xe2,0x71,0x01,0x6d,0x50,0xa0,0xe3,0x5c,0x03,0x14,0x55,0xfc,0xa2,0x80,0xb8,0x0e,0xd2,0xcc,0xe8,0x7c,0x83,0xe5,0x7e,0x3c,0xfd,0x36, + 0x59,0xb8,0xdc,0xdc,0x66,0x76,0x02,0x91,0x09,0x87,0x1f,0xc6,0x7b,0x46,0x6a,0x7f,0xb6,0x22,0x22,0x5c,0xd6,0xc7,0x7b,0xbc,0x21,0xb1,0xb6,0x28,0x46,0x47,0x98,0xa2, + 0x42,0xdd,0x3a,0x8e,0x14,0xdf,0xe9,0xfe,0x2e,0xbf,0x80,0x74,0x69,0x89,0xba,0x66,0xf2,0x8e,0x54,0x60,0x11,0x6a,0x02,0xbc,0xe2,0x4c,0x54,0x9d,0x11,0x7d,0x6b,0x0f, + 0xb0,0xe1,0x02,0x5b,0x39,0xc5,0x48,0x1a,0x74,0x8a,0x04,0x61,0xaa,0x77,0x73,0xa6,0xb3,0x42,0xad,0xea,0xd4,0xb4,0x58,0x75,0x21,0xa1,0x95,0x3d,0x4f,0xf0,0x29,0x6b, + 0x9d,0xd7,0x11,0x80,0x06,0xee,0x56,0xfc,0xcf,0x30,0x7a,0x31,0xa6,0x33,0x4b,0xe7,0xe1,0x9d,0xb2,0xde,0xca,0x68,0xfd,0x45,0xb3,0xf4,0xf9,0x4f,0x10,0x0d,0xe6,0xa4, + 0x1f,0xb1,0x63,0x36,0x39,0x3b,0xa6,0x03,0xfb,0x2e,0xb7,0x01,0xfe,0xd0,0xe9,0x82,0xad,0x32,0x96,0x4a,0xfa,0xe7,0xdb,0xbf,0xbc,0x5a,0x81,0x12,0x38,0x2e,0x51,0xe3, + 0x9a,0x6d,0x03,0xa1,0x7e,0x68,0x56,0x1a,0x10,0x5d,0xa6,0x6d,0x2f,0xb1,0xd9,0xec,0x9e,0x3c,0xa6,0xc6,0x86,0xf6,0x5d,0x9d,0xa9,0x26,0x84,0x9d,0x7a,0xf4,0xfc,0xb7, + 0x3c,0x03,0x07,0x7e,0x00,0x98,0xa8,0x45,0xf7,0xc9,0xb2,0x2b,0x73,0xee,0xcd,0x49,0x5a,0x2d,0x6a,0x0b,0x34,0xd2,0x11,0x15,0x4e,0xe3,0x89,0x86,0x34,0xf8,0x23,0xb4, + 0xb8,0x45,0x4b,0xcf,0x84,0x63,0xc2,0xbd,0x59,0xf7,0x53,0x8b,0x65,0xf1,0x1b,0x9c,0x98,0xc1,0x8c,0x13,0x43,0x84,0x17,0xcc,0x08,0xa3,0x9c,0x88,0x42,0xa0,0xb7,0xed, + 0xb4,0xdf,0x5f,0x33,0x5a,0x04,0x61,0xa3,0x88,0x52,0x20,0x5a,0xc7,0x3b,0xc5,0x15,0x12,0xb5,0xc7,0xf6,0xa8,0x30,0x5f,0x1a,0x8d,0x4f,0x19,0x1c,0xb6,0xfd,0x3b,0x2a, + 0xa9,0xde,0x6e,0x92,0xaf,0x14,0xbf,0x4e,0xb1,0x1d,0x75,0x33,0xbb,0xcb,0x28,0xcf,0x62,0x2e,0xc5,0xe5,0x2e,0x4a,0x2f,0x4c,0xde,0x4d,0xdc,0x3d,0x21,0xba,0xbc,0xee, + 0xed,0xcd,0x8e,0x48,0xdf,0x11,0xaa,0x67,0xa9,0x0c,0x75,0x61,0x49,0x83,0x46,0x6d,0x24,0x4e,0x4b,0x54,0x73,0xf8,0xac,0x01,0xa4,0x1c,0x14,0x6d,0xb1,0x3c,0x48,0x27, + 0x2c,0x8d,0xd7,0x47,0x92,0xce,0xd2,0x81,0xf9,0xcb,0x16,0x1d,0x2f,0x64,0xd2,0x38,0xcb,0xac,0x2d,0x18,0xf8,0x66,0x1b,0x0f,0x56,0x74,0xd7,0x9c,0xd5,0xc6,0xed,0xb8, + 0x50,0x3f,0xb9,0xbf,0x4b,0x57,0xb0,0x0e,0x0c,0x23,0x9b,0x3e,0x83,0x71,0xf2,0x46,0x60,0xaa,0x01,0xcb,0xf7,0x9f,0x4c,0x49,0x9e,0x4f,0xe1,0xa1,0x55,0x52,0x8f,0xf9, + 0xe6,0x1a,0xd5,0xf8,0x06,0x32,0x38,0x2b,0x62,0x6f,0x9a,0x77,0xfb,0x7f,0x5d,0xb0,0x20,0xdb,0xc0,0x84,0xc8,0x88,0xc6,0xb0,0x99,0x93,0xe1,0x2f,0xe4,0xd3,0x16,0x04, + 0x51,0xc1,0x0b,0x83,0x32,0xb3,0x3f,0xaf,0x52,0x9c,0x58,0xcc,0x2d,0xa4,0x5a,0x23,0xbb,0xfe,0xcc,0x1d,0x4e,0x0a,0xa4,0xea,0x54,0xfd,0x81,0x9b,0x7e,0x31,0xe5,0x55, + 0x98,0xd6,0x78,0x22,0xc3,0x18,0xdb,0x06,0x53,0xa4,0x70,0xa6,0xed,0x96,0xe7,0xc2,0x2a,0x04,0x6a,0x2a,0x25,0x66,0x4c,0x19,0x53,0x9a,0xf6,0x2a,0xe1,0xd3,0xa9,0x6b, + 0x7c,0x46,0x48,0xcd,0x80,0x8d,0xf9,0xa5,0x4f,0x99,0x2b,0x29,0x4a,0x3e,0xce,0x56,0x2b,0xa5,0xef,0xbe,0xba,0x7e,0x17,0x60,0xf1,0xf1,0x07,0xed,0x1a,0xf8,0xc1,0x87, + 0x41,0xb8,0x9b,0x46,0xf0,0x18,0xa3,0xac,0x88,0x4a,0xd9,0x21,0xe4,0x9f,0xcf,0x5d,0x96,0x77,0xae,0x84,0xe3,0x9e,0x6e,0xa8,0xde,0x84,0x4a,0xcc,0x33,0x7d,0x84,0x81, + 0xd1,0x55,0xb0,0xe0,0xe3,0x7d,0xa1,0xa1,0x9a,0xf0,0xe8,0x5e,0x68,0xe7,0xbb,0x41,0x80,0xaa,0xb5,0x5b,0x1e,0x95,0x50,0x1a,0x1a,0x3a,0xe0,0xcd,0x95,0x40,0x4a,0xee, + 0x12,0xbd,0x72,0xe9,0x52,0xe6,0xb8,0x12,0x55,0xad,0x79,0xaf,0x19,0x31,0x0d,0xa2,0xe0,0xef,0x97,0x72,0x00,0x33,0x84,0xa1,0xf3,0x57,0x53,0xe6,0xbe,0xab,0x71,0xd6, + 0x35,0x14,0xb8,0x36,0x2e,0xe1,0xe7,0x0e,0x84,0x6e,0xde,0x7e,0xd5,0x72,0x83,0xf5,0xd5,0x89,0x1f,0xdb,0x9b,0x0c,0x56,0x05,0xda,0x45,0xdb,0xc5,0xc6,0xf4,0x4e,0x53, + 0xf6,0xc8,0x29,0xed,0x9c,0xa3,0xdf,0xdd,0x1f,0x16,0x5a,0x20,0x44,0x61,0xe1,0xc1,0x66,0x20,0xe7,0x52,0x21,0x6e,0x2b,0x6e,0x3a,0xab,0x61,0x97,0xf3,0xdd,0x2b,0x3b, + 0x37,0x19,0xf7,0xaf,0xe8,0x2c,0x3f,0xa5,0x4c,0x0c,0x12,0x60,0x47,0x62,0x46,0x44,0x1d,0x38,0x79,0x70,0x93,0x5e,0x4c,0x76,0x96,0x5c,0xed,0x96,0xda,0x3a,0x07,0xde, + 0x0a,0x36,0x8c,0x74,0xc5,0x6c,0x61,0xaa,0xb0,0x24,0x40,0xe6,0x4b,0x26,0x99,0xc2,0x4c,0xda,0xcb,0x4d,0xfb,0xcd,0xeb,0xe0,0xb3,0xcf,0x80,0x1e,0x86,0xf1,0xf7,0x4f, + 0xde,0x5b,0x6c,0x29,0xf2,0xf4,0xf1,0x7f,0x8e,0xd9,0x25,0xf1,0x29,0x15,0x94,0x10,0xe4,0x55,0x7d,0xff,0xc5,0x47,0x29,0x44,0xb8,0x86,0x2c,0x42,0xbd,0x2b,0x18,0x0a, + 0x8f,0xca,0x30,0xfc,0x5d,0x73,0x1f,0x42,0xd3,0x76,0x64,0xd5,0x2b,0x64,0xe0,0x22,0xd9,0x8a,0x25,0x06,0x5f,0xb1,0xf8,0xbd,0x77,0x85,0x3d,0x7f,0x2b,0xbf,0x07,0xe0, + 0xc9,0x43,0x1b,0x6d,0xed,0xa0,0xc9,0xf9,0x2f,0x36,0x8f,0x7c,0xa1,0x29,0x86,0xf0,0xe0,0x7e,0x01,0x24,0x22,0xb8,0x40,0xc7,0xaa,0x78,0x4a,0x0c,0x71,0x3b,0x50,0x1f, + 0x67,0x2c,0x23,0x39,0xe4,0xc3,0x9e,0x36,0xcf,0xe1,0x3e,0x2c,0xfe,0x35,0x28,0x59,0xe1,0xef,0x66,0x31,0x8f,0xe9,0xf9,0x7d,0xd2,0x6d,0x9d,0x03,0xa9,0x17,0x1f,0x7f, + 0x8c,0xd1,0x13,0x40,0x31,0x3b,0x97,0x8f,0xa3,0x77,0x49,0xf4,0xb3,0x67,0xc0,0x87,0xfd,0x90,0x0f,0x17,0x94,0x10,0x02,0xde,0x22,0xce,0x40,0x29,0xaa,0x55,0x0e,0x7f, + 0x6f,0x1c,0xc2,0xd0,0x7f,0x6e,0xe0,0x7d,0x0b,0x13,0x8b,0x60,0x1c,0x94,0xde,0xb2,0x0a,0xa2,0x34,0xe5,0x26,0xfa,0xb3,0xee,0x4a,0xdc,0x98,0x70,0x70,0x85,0xa7,0x3d, + 0xc2,0x81,0x2e,0xb9,0xb4,0x56,0x29,0x75,0x72,0xe8,0xd8,0x70,0x75,0x4b,0x48,0x48,0x9e,0xa3,0x66,0xf3,0x51,0xf8,0x22,0x75,0x9d,0xe8,0x31,0x72,0x68,0x15,0xe5,0x82, + 0x9c,0xf1,0x68,0x9a,0x01,0x5a,0xc3,0x95,0x8d,0xc9,0x5f,0xc7,0x1c,0xb0,0xd1,0x03,0xe8,0x1b,0x45,0x94,0x68,0x46,0x38,0x93,0x3a,0x5d,0xaa,0xa9,0x9f,0xb3,0xb1,0xfa, + 0x2d,0x60,0x49,0xf8,0xe4,0x6c,0x67,0xc1,0x7d,0xdf,0xc8,0x17,0x8d,0xd9,0x18,0xb2,0x3f,0xd1,0x96,0x9e,0x11,0xc9,0x59,0xb6,0x4e,0xa4,0x2e,0x39,0xc9,0xa8,0x7d,0xea, + 0x9b,0x7f,0x8b,0xe2,0x62,0xb9,0xcd,0x27,0x51,0xef,0x8e,0xae,0x2b,0xad,0x7b,0x1e,0xcf,0x07,0xcb,0x76,0x61,0x3c,0xfe,0x70,0x88,0xcc,0x9b,0xde,0xf1,0xd0,0x44,0x36, + 0x52,0x98,0x0b,0x59,0x80,0xdf,0x38,0xf7,0xc2,0xd5,0x9e,0x4e,0x30,0x7d,0xa2,0x56,0x55,0xd5,0x0c,0x6e,0x03,0x02,0x34,0xb2,0x41,0xc0,0x98,0xc9,0x35,0xa5,0x59,0x6d, + 0x2f,0x1f,0x69,0x90,0xc3,0x01,0x36,0xd6,0xf4,0x4d,0xe8,0x14,0x5f,0x19,0x18,0x40,0xc4,0xb9,0xef,0xbc,0xf8,0x7c,0x39,0xb7,0x99,0x5c,0x26,0x2b,0xdc,0xdf,0x9d,0x40, + 0xaf,0xe5,0xb6,0x0f,0xe3,0xe1,0xdc,0x87,0x3b,0x3f,0x30,0x22,0x89,0x3a,0x35,0x98,0x80,0xe8,0x17,0x53,0x7b,0xeb,0x96,0xb3,0xd4,0x8d,0x37,0x57,0x66,0xab,0x59,0xe6, + 0x33,0x15,0x05,0x38,0x97,0x35,0x10,0x82,0x7c,0xaf,0xdf,0xe9,0x44,0x9e,0x7a,0x5a,0x2e,0x1a,0x79,0x46,0xf4,0xe4,0x85,0xa0,0x0f,0xf2,0x19,0xb2,0xcd,0x58,0xd8,0x01, + 0xb5,0x52,0x3f,0x93,0x82,0xb3,0x5e,0xd9,0xe1,0xc4,0xf2,0xb4,0x20,0xdf,0x9f,0x61,0xe6,0xac,0x8f,0x6d,0x34,0x22,0x13,0xfa,0x4d,0x75,0x45,0x8f,0x5b,0xd8,0x28,0xd1, + 0xad,0x9a,0x53,0xd0,0x53,0x15,0x00,0x9f,0xb1,0x48,0x73,0x69,0xf7,0x2f,0xdc,0x33,0xe6,0xdb,0xba,0x14,0x85,0xef,0xae,0xde,0x29,0x51,0x43,0x35,0x26,0xd2,0xfd,0x0a, + 0xa8,0x8c,0xca,0x88,0xb5,0x9c,0xd8,0x6e,0xdd,0xa2,0x02,0xcb,0x4e,0xa1,0xb2,0xd5,0x41,0xd5,0xc8,0xc2,0x2c,0x06,0x2a,0x08,0xf9,0xdb,0x49,0x6d,0x56,0x25,0x73,0x30, + 0xb7,0xf5,0x31,0xb4,0xa9,0xac,0x00,0x95,0x2b,0xfc,0xf2,0xcb,0xec,0x41,0xe5,0x8b,0x54,0xc4,0xf4,0x12,0xf4,0x64,0xbc,0xf1,0xf1,0xbf,0x10,0xa2,0x4b,0x9b,0x19,0x74, + 0x47,0x34,0x73,0x51,0x8f,0x0e,0x84,0x3d,0x1f,0xb5,0x10,0x5b,0x16,0xfe,0x88,0xed,0xaa,0x41,0x8b,0x39,0x6c,0xab,0x7c,0xb5,0x53,0x24,0x16,0xd1,0x71,0xf2,0xe7,0xbc, + 0xc2,0x56,0x3f,0x49,0xe6,0x23,0xb1,0x39,0xa8,0x3c,0x4c,0xb7,0x1c,0xb7,0x3d,0xeb,0x06,0x45,0x83,0x85,0x65,0x8b,0xf8,0x79,0x6b,0xac,0x0c,0x2e,0xd1,0x2c,0x8a,0x67, + 0x28,0xc2,0x47,0xae,0x91,0xfd,0xac,0x1b,0x29,0x89,0x64,0x15,0xfe,0xc6,0x0f,0x42,0x52,0xfe,0xed,0x9c,0x9f,0xfa,0x02,0x16,0xd3,0x13,0x50,0xd7,0x08,0x64,0x6d,0x89, + 0x76,0xe9,0xe6,0xf1,0x33,0x9b,0xff,0x54,0xb8,0x2a,0x45,0x98,0x07,0x45,0x52,0x6f,0xf9,0x24,0x9e,0x94,0x2b,0x1f,0x83,0x6a,0xab,0x71,0x9f,0xd9,0x59,0xfc,0x80,0x99, + 0x0d,0xe8,0x21,0x77,0xc8,0x0f,0x4e,0x35,0xf3,0xb7,0xa3,0x00,0xe8,0x9a,0xc2,0x88,0xf3,0x0e,0x01,0xa8,0x65,0x89,0x33,0xc1,0x6b,0x8c,0x90,0x60,0x5e,0x35,0xd6,0xc7, + 0xf4,0x1d,0xe3,0xa7,0x75,0x97,0x83,0x5f,0xa9,0x04,0xd1,0xf0,0x54,0x11,0x36,0x8e,0x6e,0x87,0x8a,0xbd,0x04,0x85,0x47,0x7d,0x16,0x2b,0x2c,0x76,0x4e,0xf0,0x45,0xac, + 0xc4,0xdb,0xe3,0xb9,0x4e,0x72,0x9b,0x1e,0x0a,0xe3,0x4f,0xfb,0x0f,0x6b,0x0d,0x95,0xd7,0xe6,0x19,0xab,0x39,0x43,0xaa,0x38,0x36,0xcf,0x1e,0x72,0x1a,0x47,0x0a,0x9e, + 0x83,0xb3,0x10,0x61,0xf1,0xb7,0x01,0x48,0x87,0x0a,0x92,0x82,0xa4,0x64,0x1c,0xc8,0x42,0x89,0x43,0xa3,0xb1,0x0e,0x03,0x01,0x95,0x5f,0x59,0x60,0xc3,0x86,0xfb,0x04, + 0x5f,0x74,0xc0,0x66,0x59,0x5f,0xe9,0xea,0x28,0x32,0x74,0x96,0x4a,0xe8,0x3f,0xba,0x1a,0x73,0xef,0x9d,0x29,0xd2,0x4e,0x66,0x04,0xa4,0xaa,0x08,0x81,0xfe,0x39,0x0d, + 0xc6,0x72,0x60,0x1d,0x95,0x1b,0xdb,0x55,0x0e,0xa9,0xcc,0x58,0xd2,0x03,0x13,0x37,0xdb,0x39,0xa3,0x79,0x9d,0xe2,0x1a,0xf4,0xe5,0xc2,0x3e,0x2f,0xd7,0xf5,0x37,0xda, + 0xb2,0xc2,0xc0,0x05,0x32,0xd4,0x68,0xd2,0x53,0x74,0xae,0x2e,0x6e,0xc9,0xbc,0x52,0xbc,0xb2,0xe8,0xdf,0x20,0xad,0x1a,0x40,0x71,0x9b,0x7d,0x91,0x74,0x6d,0xae,0xab, + 0xe5,0xfe,0x7c,0x96,0x37,0x18,0x78,0xcf,0x86,0xdb,0x42,0x10,0xa4,0x87,0xd7,0xd3,0x3a,0xc4,0xbc,0xc4,0x5b,0x8d,0xf2,0x15,0x2e,0x82,0xaa,0x72,0x28,0xa9,0x91,0xe2, + 0x1b,0xb9,0xa5,0x01,0xab,0x9d,0x21,0x52,0x30,0xcd,0x10,0x72,0x04,0x2b,0x3c,0x82,0x71,0xae,0xc3,0xb2,0xc1,0xda,0x10,0xd1,0xa8,0xc8,0x10,0xfc,0xea,0xed,0x47,0xa4, + 0xfd,0xc1,0x5a,0x26,0xab,0xba,0xde,0x34,0x16,0xe1,0x20,0x1a,0x6d,0x73,0x71,0x28,0xa2,0xf8,0x97,0xf0,0xd8,0x81,0x08,0x64,0x54,0x53,0xa1,0xb3,0xdd,0xd0,0x56,0x88, + 0xe3,0x63,0x48,0xe3,0xa4,0x64,0xbc,0x51,0x83,0x84,0x80,0x6c,0x54,0x8e,0x15,0x6e,0xdd,0x99,0x4c,0xb6,0x94,0x64,0x73,0xc2,0x65,0xa2,0x49,0x14,0xd5,0x55,0x9f,0x1c, + 0x7d,0x65,0x68,0x4b,0xdc,0xe4,0xac,0x95,0xdb,0x00,0x2f,0xba,0x35,0x0d,0xc8,0x9d,0x0d,0x0f,0xc9,0xe1,0x22,0x60,0xd0,0x18,0x68,0x54,0x3f,0x2a,0x6c,0x8c,0x5b,0x8d, + 0x6e,0xc6,0xba,0x23,0x74,0xab,0x0a,0x9a,0xe6,0x63,0xf3,0xf7,0x36,0x71,0x15,0x8a,0xaa,0xba,0xc3,0xac,0x68,0x9d,0x6c,0x27,0x02,0xeb,0xdf,0x41,0x86,0x59,0x7a,0x85, + 0x6d,0x6e,0x87,0x78,0x7d,0x0a,0x94,0x7e,0xcf,0xbf,0x79,0x62,0x14,0x2f,0xde,0x8f,0xf9,0xb5,0x90,0xe4,0x72,0xc0,0xc4,0x6b,0xbc,0x5d,0x39,0x02,0x0e,0x4f,0x78,0xa7, + 0x56,0xea,0x43,0x82,0xf8,0xe1,0xab,0xfc,0xb2,0x11,0x98,0x9f,0x50,0x06,0x76,0x44,0x9a,0xbc,0xeb,0xfe,0x2c,0xd2,0x20,0x4d,0xd8,0x92,0x3d,0xeb,0x53,0x0a,0x6c,0x7b, + 0x2c,0x36,0x2c,0x27,0xb3,0x10,0x7e,0xa8,0xa0,0x42,0xc0,0x5c,0xc5,0x0c,0x4a,0x8d,0xda,0xae,0x8c,0xdc,0x33,0xd0,0x58,0x49,0x29,0x51,0xa0,0x3f,0x8d,0x8f,0x81,0x94, + 0x01,0x88,0xda,0x28,0x9c,0xe8,0x97,0x4a,0x4f,0x44,0x52,0x09,0x60,0xfa,0xe8,0xb3,0x53,0x75,0x0a,0xca,0x78,0x92,0x72,0xe9,0xf9,0x0d,0x12,0x15,0xba,0xcd,0xd8,0x70, + 0xf7,0x8b,0xd7,0xff,0x89,0x9c,0x81,0xb8,0x66,0xbe,0x17,0xc0,0xa9,0x4b,0xec,0x59,0x28,0x38,0xd7,0x8d,0x1f,0x0c,0x0c,0xf5,0x32,0x82,0x9b,0x6c,0x46,0x4c,0x28,0xac, + 0x99,0xf6,0x15,0x1f,0xba,0x28,0x06,0x7e,0xac,0x73,0x35,0x49,0x20,0xfc,0xc1,0xfa,0x17,0xfe,0xa6,0x32,0x25,0xa5,0x83,0x32,0x3c,0xb6,0xc3,0xd4,0x05,0x4e,0xca,0xca, + 0x68,0xca,0x39,0xde,0x0c,0xec,0x22,0x97,0x52,0x9f,0x56,0x87,0x6b,0xc3,0xde,0x7b,0xe3,0x70,0xf3,0x00,0xe8,0x7c,0x2b,0x09,0xcd,0xbb,0x51,0x20,0x38,0x2d,0x69,0x77, + 0x1a,0xf2,0x54,0xaf,0x90,0xc1,0x6d,0xbd,0x21,0x7f,0x33,0x56,0xf7,0xfe,0xf9,0xad,0x53,0x2d,0x49,0x02,0xa6,0xd6,0x72,0x18,0xe3,0x18,0x8a,0x9e,0x84,0x0f,0xc9,0x29, + 0x9e,0x23,0x22,0x23,0xaf,0xd0,0xd5,0x7a,0x7b,0x15,0x0f,0x65,0x70,0x0a,0xc6,0x0a,0x78,0xba,0xe2,0xaa,0xfc,0x0c,0xf9,0xd1,0xa8,0x20,0x45,0x2c,0xa1,0xe5,0x7a,0x14, + 0xec,0x2f,0x75,0x42,0xcc,0x1d,0xf6,0x65,0x76,0x4c,0x5b,0x9b,0xff,0x75,0x12,0x08,0xd6,0x68,0xbe,0x9f,0x3d,0x61,0xcd,0x6c,0x33,0xb3,0x5e,0xd0,0xf4,0xfe,0x5a,0x17, + 0xb0,0x95,0xe9,0xc2,0xf9,0x33,0xa0,0x00,0x53,0xa9,0x57,0x58,0xdc,0x20,0xfe,0x1e,0x72,0xa7,0x98,0x46,0x2f,0x90,0xfd,0x67,0xfa,0xfb,0xbd,0x68,0xd7,0x61,0xdd,0x67, + 0x95,0x48,0x4c,0x55,0x54,0xb5,0x43,0xf8,0xeb,0x2f,0xc2,0x18,0xcc,0x46,0xff,0xe6,0x48,0xa3,0xbf,0xac,0x41,0xe6,0xdf,0xaf,0xca,0x1b,0xa1,0x1f,0x8c,0x53,0xed,0x6e, + 0xf2,0x2e,0xbb,0x68,0x43,0x28,0x1b,0x54,0xb2,0x2a,0x9f,0xf1,0xa9,0x14,0x85,0xc7,0xdb,0x8f,0x95,0xdb,0x4b,0xf8,0xa1,0x13,0x1f,0x89,0x2b,0x3b,0xfc,0xe5,0x66,0x62, + 0x99,0x62,0x3d,0x9f,0x44,0x7b,0x66,0xcb,0x32,0x24,0x88,0xea,0x46,0x3b,0x3e,0x40,0xd5,0x62,0x0f,0x4d,0xf7,0x8f,0x89,0xc6,0x2f,0xe0,0xba,0x8b,0x90,0xff,0x38,0x6e, + 0xd6,0x11,0xaf,0xb4,0x04,0x6c,0x9f,0x4b,0x28,0x87,0xb7,0xdd,0x4d,0x45,0xb8,0x0e,0x95,0x84,0xec,0xa9,0x3f,0x5a,0x85,0x5d,0xc3,0x0e,0x52,0x9e,0xed,0xbf,0x50,0x17, + 0x04,0x38,0x08,0x5a,0xb0,0x10,0x4f,0xb4,0x7c,0x69,0x6b,0xe5,0xc0,0x8f,0x95,0xe3,0x19,0xed,0x55,0x07,0xab,0x78,0x1f,0xe1,0xcd,0xcc,0xd6,0xdd,0xb3,0x4b,0xda,0x67, + 0x32,0x6d,0xba,0xbf,0xfe,0x17,0xc6,0xef,0xc7,0x10,0xbd,0xb8,0xd0,0x4d,0x16,0xc8,0x62,0x4c,0x08,0x3d,0x48,0xbf,0xa6,0xe4,0x41,0x1d,0x22,0x12,0x64,0xd8,0x27,0x7f, + 0xf4,0x7a,0x91,0xe2,0x9e,0xbe,0x69,0xba,0xab,0x6b,0x34,0x0b,0xb6,0x4a,0x6d,0xc3,0x4f,0xca,0x75,0x46,0xfd,0x6e,0xba,0x53,0xf5,0xbb,0xe4,0x1f,0x61,0x78,0xc7,0xc6, + 0xcf,0x83,0x31,0x9c,0x73,0x53,0x48,0xdd,0x13,0xc4,0x4b,0x05,0x5f,0x67,0xa2,0x92,0xf7,0xaf,0xc5,0xd9,0xd2,0xbd,0x07,0x06,0xc9,0x66,0xad,0x76,0x53,0x68,0xd4,0x22, + 0x41,0xee,0x78,0x01,0xcc,0xb7,0x02,0xf2,0xf6,0x33,0xd1,0xd0,0xec,0x20,0xd7,0xc4,0x27,0x93,0x68,0x86,0xdf,0x89,0xad,0x33,0xd1,0x9d,0xbb,0x56,0xf6,0x6a,0x26,0x56, + 0xaf,0x82,0x8d,0x6b,0xc2,0x1a,0xd6,0xb4,0x57,0x0b,0x5f,0x68,0xa6,0x20,0x8d,0x3a,0x2f,0x46,0xed,0xca,0x69,0xb1,0x98,0x0f,0xe5,0x04,0x67,0x92,0xc6,0x8c,0xab,0x80, + 0x4e,0xbf,0x7f,0x17,0x4c,0xdb,0x3f,0xda,0x94,0xf9,0x96,0x98,0x31,0x7f,0xfe,0xf5,0xf4,0xd4,0xfb,0x93,0x3f,0x32,0x92,0xf1,0xaa,0xa7,0x82,0xc3,0x54,0xba,0x03,0xe7, + 0x16,0x49,0xf8,0x3c,0x47,0xa6,0x64,0x0a,0x94,0xb7,0x73,0xab,0x43,0x09,0xbd,0x69,0x64,0x10,0x94,0x33,0xe3,0xf3,0xee,0x5b,0x02,0x4d,0x19,0x15,0xef,0x51,0x39,0xde, + 0xf4,0x34,0xc3,0xff,0xe1,0x09,0x52,0x84,0x56,0xc2,0x3d,0x6c,0xfe,0x51,0xec,0x0b,0x10,0xbe,0x60,0x6d,0x7a,0x26,0x77,0x5f,0xe2,0xff,0x0a,0x9b,0x18,0xf9,0x2f,0x39, + 0xbd,0x02,0xb9,0xdf,0xc8,0xef,0x76,0x07,0x08,0x95,0x0b,0xd9,0x72,0xf2,0xdc,0x24,0x48,0x93,0xb6,0x1b,0x6b,0x46,0xc3,0xb1,0x9b,0xe1,0xb2,0xda,0x7b,0x03,0x4a,0xc5, + 0x41,0x22,0x69,0xbf,0xc1,0x5d,0x8b,0x1f,0xd7,0xf2,0x5d,0xe3,0x3b,0x15,0x15,0xea,0x67,0xf2,0x19,0x4e,0x73,0xba,0x06,0xc8,0x5e,0xf9,0x9b,0xb4,0x27,0x22,0xf9,0x5d, + 0x0a,0xd7,0x55,0x6a,0x62,0x10,0x74,0xa7,0x71,0xbf,0x12,0x91,0x63,0xd0,0x9a,0x2e,0x9d,0x2e,0x17,0x4f,0x2b,0x8a,0x4b,0x69,0x73,0xe8,0x9e,0xa1,0x38,0xc9,0xa6,0x03, + 0x76,0xac,0xc7,0x4d,0xd6,0x08,0x72,0xab,0x29,0xe1,0xbc,0xb9,0x9d,0xd4,0x63,0x65,0xc7,0xc7,0xf7,0x92,0x61,0x9c,0x90,0x1c,0x7b,0xa5,0xc6,0x83,0x78,0xb2,0x33,0xf5, + 0x50,0xe2,0x3b,0x94,0xfc,0xc3,0x3d,0x93,0xdb,0xcd,0x71,0xe9,0x55,0xe1,0x95,0xfe,0x0b,0xf6,0xac,0x9b,0x04,0xb1,0x5f,0x00,0x1e,0x53,0xb5,0xdc,0x7b,0xad,0x15,0x8e, + 0x33,0x24,0xbf,0x2f,0xb3,0x48,0x6b,0x11,0x04,0xff,0xfa,0x35,0xef,0x38,0x97,0x5f,0xaf,0xfb,0xa1,0xeb,0xe4,0x2c,0x54,0x39,0x92,0x06,0xfa,0xce,0x50,0x54,0x48,0xc7, + 0x23,0x5f,0xd3,0xe7,0x21,0x6c,0x92,0xf7,0x38,0x60,0xf0,0xac,0x01,0x21,0xb4,0x26,0x4f,0xf8,0x9d,0x80,0xbc,0x75,0xd5,0x9d,0xd4,0x55,0x29,0x85,0x97,0xc5,0xf2,0xec, + 0x0b,0xf7,0x58,0xde,0x27,0x05,0x23,0x19,0xda,0xc3,0x9b,0x32,0x4a,0x6e,0xa5,0x5e,0x92,0x86,0x03,0xa3,0xef,0x90,0x49,0xad,0x14,0x7f,0x8c,0xa3,0x5f,0x55,0xb6,0x56, + 0x31,0x2e,0xea,0xae,0xe3,0x97,0x22,0x4f,0xc1,0x7d,0xec,0x71,0x91,0xce,0x69,0xce,0xf4,0x0e,0x8f,0xb3,0x73,0x51,0x6c,0x2b,0x1e,0xda,0xda,0x03,0x36,0xc9,0x9c,0x13, + 0xaa,0x16,0x91,0x85,0x8e,0x6a,0x1a,0x06,0xc6,0xdf,0x57,0xce,0x10,0xa4,0xc7,0x30,0x97,0x4c,0x06,0xd1,0xe0,0x10,0x6d,0x1a,0x31,0xb5,0x1b,0x91,0x5c,0xd6,0xb6,0x0e, + 0x57,0x86,0xd6,0xea,0x09,0xff,0xb2,0x1a,0x63,0xad,0xb0,0x20,0xb1,0x17,0x09,0x64,0x84,0xef,0x99,0x5e,0x8c,0x4a,0x72,0xaf,0xa4,0x79,0xcb,0xa9,0x5c,0x95,0x99,0x20, + 0xae,0x0c,0x78,0x45,0xb8,0x29,0x95,0x26,0x3c,0x51,0xe1,0x3e,0x29,0x74,0x12,0xd1,0x7b,0x65,0x0a,0xa8,0x3d,0xce,0x4f,0x55,0xa0,0x69,0xdb,0xee,0x67,0x1c,0x16,0xb8, + 0xe5,0xe7,0x64,0xa3,0x8b,0x73,0x81,0x6f,0x6e,0x11,0xe7,0xcf,0x29,0x8b,0x2b,0xe5,0x4d,0x11,0x24,0x9c,0x61,0x5f,0x0a,0x71,0x49,0x8a,0x0a,0x82,0x1b,0x57,0x36,0xbb, + 0x6a,0xa7,0xe7,0x4a,0x7a,0x83,0x8e,0xfa,0x96,0x07,0xf3,0x58,0x7d,0x41,0x17,0xf1,0x91,0x4c,0x57,0xfa,0x92,0x4b,0x44,0x1c,0x27,0xfb,0x7a,0x7c,0x31,0xfb,0xaa,0xc4, + 0x39,0x1b,0x62,0x4f,0x28,0xeb,0x39,0x81,0x56,0x66,0x6d,0xbe,0xc1,0xd6,0x35,0xf8,0xff,0x17,0x53,0xeb,0x86,0x29,0x79,0x73,0xa1,0xc2,0x83,0x1b,0x10,0x91,0xe2,0xdf, + 0xe3,0xf3,0x9d,0x07,0x1b,0x74,0x3c,0x80,0x41,0x45,0x4d,0x1d,0xac,0xba,0x93,0xdc,0x9f,0x3f,0x12,0xa5,0xae,0x1b,0xfb,0xeb,0xaa,0x59,0xfc,0x4c,0xef,0xee,0x6b,0x82, + 0x09,0xd0,0xd1,0xb9,0x2a,0xf1,0xe7,0x11,0x1d,0x22,0x3b,0xf5,0xef,0xcd,0xfa,0x6d,0xf2,0x62,0x2a,0xb3,0xcf,0x16,0x1a,0xf0,0xeb,0xbf,0x06,0xad,0x00,0xc0,0x9b,0x6e, + 0xa7,0x38,0x72,0x7e,0x0f,0x5b,0x20,0x44,0x80,0x09,0xd1,0x02,0x9c,0xa7,0x27,0xf2,0x38,0x0d,0x2c,0x6e,0x15,0x2a,0x6e,0x2d,0xa8,0xea,0x50,0x53,0x1c,0xe3,0x94,0x99, + 0xa3,0x14,0xe4,0xee,0x9e,0x30,0x3d,0x97,0x0b,0x4e,0x9f,0x0c,0xdc,0x26,0x26,0x57,0xd5,0xc5,0x19,0x2f,0x05,0x54,0x66,0xb9,0xd0,0x9d,0x9c,0x88,0x8d,0x6b,0x72,0x56, + 0x8f,0x4e,0x1b,0xf8,0xe5,0x18,0x2a,0x1f,0xbc,0xde,0xac,0x92,0x4d,0xf1,0xba,0x2f,0x93,0x71,0x62,0xd4,0x8a,0x20,0x67,0x83,0xc4,0x81,0x32,0xcb,0x58,0x2c,0x07,0xdb, + 0x16,0x68,0x2c,0x86,0x2c,0xf5,0x37,0x55,0xb3,0xc2,0x8a,0xdf,0x7d,0xe0,0x52,0xd5,0xcf,0x0e,0x81,0xe5,0xd8,0xac,0xb3,0x46,0x70,0x2a,0x39,0x2b,0xc6,0xb2,0xb1,0xd5, + 0xcc,0x33,0xe8,0x40,0xb5,0x35,0x4b,0xf6,0xe0,0x88,0x04,0x7e,0x76,0xdc,0x16,0x8f,0x15,0xc0,0xc1,0xaa,0x94,0x67,0x31,0x60,0x0f,0x52,0xd6,0xf1,0xc9,0x29,0x9b,0x27, + 0xd7,0xb4,0xf5,0xe2,0xdd,0x1e,0xbe,0xcf,0xc9,0x23,0x18,0xd9,0x20,0x85,0x27,0x1b,0xe4,0x82,0xfe,0x65,0xa0,0x3e,0x83,0xb2,0xe3,0x58,0xa3,0x97,0xa5,0x97,0x44,0x9b, + 0x1d,0x88,0xed,0x8e,0x45,0x79,0xa4,0xc6,0x2f,0xed,0x95,0xea,0xfe,0x15,0x28,0xf8,0xd5,0x05,0x60,0x41,0xfc,0x41,0xf3,0xef,0x06,0x36,0x05,0xdd,0xc9,0x80,0xee,0x09, + 0xa6,0x69,0x85,0x78,0x65,0x0d,0xad,0xb4,0x52,0xd6,0x77,0xc3,0x98,0x3e,0x6b,0x80,0x91,0x52,0xd7,0xd2,0xd8,0xfb,0xa3,0x49,0xce,0xc6,0x86,0xe7,0x2e,0x6f,0x86,0x93, + 0x8e,0x42,0xc3,0x89,0x02,0xb2,0x5f,0xa1,0x38,0xb9,0x5f,0x4f,0x28,0x0b,0x68,0x4c,0x09,0xe1,0x21,0x2c,0x4f,0x06,0xa2,0xbc,0x2c,0x2b,0x2b,0x87,0x90,0x11,0x20,0x34, + 0xa1,0x9f,0x11,0x65,0xd3,0x1c,0x16,0x95,0x35,0x99,0x29,0xde,0xeb,0xcd,0x24,0x84,0x6c,0xcb,0x9a,0x3c,0x2a,0x38,0xc1,0x0b,0xdc,0x7c,0x85,0x5b,0xf8,0xa3,0x2d,0xf7, + 0x0a,0x87,0x93,0x5c,0x03,0x6d,0xe6,0x66,0xb7,0x61,0x9f,0x14,0xec,0x58,0xf9,0xf7,0x86,0x98,0xcc,0x23,0xa6,0x67,0x61,0x6f,0x84,0xc1,0x77,0xf3,0x46,0x61,0xeb,0xe2, + 0x90,0xac,0xcd,0x1c,0x3a,0xf1,0xcd,0x78,0x2e,0xa1,0xe8,0x64,0xa3,0x07,0xaa,0xef,0x6a,0x01,0xfd,0x3a,0x63,0x05,0xa0,0xad,0xae,0x37,0xe7,0x68,0x44,0xb9,0xce,0x10, + 0xe1,0x64,0xd8,0x8f,0xcb,0xd1,0xcc,0xdd,0x65,0x4d,0xe0,0x41,0x5b,0xfb,0xd2,0xa1,0x71,0x59,0x07,0x13,0x01,0x5f,0x4a,0x17,0x55,0x50,0x4e,0x62,0xf7,0xa0,0x38,0x70, + 0xd4,0xb6,0xd4,0x25,0x1a,0xc1,0xf8,0xa0,0xb0,0xc7,0x5b,0xba,0xc3,0x51,0x7a,0x13,0xea,0x0c,0x85,0x7b,0x54,0x99,0xb0,0x3d,0x15,0x3b,0xe6,0x63,0xa8,0x71,0x54,0x80, + 0xf5,0x27,0x0d,0x0c,0x41,0x19,0xf1,0xef,0x46,0x7a,0x37,0x50,0x16,0x88,0xb4,0xbf,0x4a,0x51,0x6e,0x5f,0x58,0xa0,0xf5,0xa4,0x0f,0x23,0xae,0x70,0xee,0x81,0x3c,0x26, + 0x17,0x63,0xeb,0x5b,0xd3,0x67,0x7d,0xe8,0x8e,0x98,0xaa,0xd8,0x40,0x38,0x83,0x84,0x22,0xd6,0xe5,0x56,0x05,0xa1,0x47,0x61,0x78,0x8c,0xf3,0x05,0x67,0x2e,0xb6,0x70, + 0x98,0xc9,0x5e,0xf9,0xfd,0xed,0x24,0x1d,0xa0,0x93,0x92,0x57,0x31,0x44,0xda,0xf4,0x4b,0x03,0x32,0x51,0x8f,0x45,0x81,0x67,0xe0,0x9d,0x67,0x20,0x11,0xea,0x46,0x18, + 0xb0,0xfe,0x8f,0xc6,0xab,0xe8,0x53,0xb1,0xea,0x6a,0xa4,0xf4,0xb4,0x49,0x0b,0xcd,0x94,0xff,0xd3,0x53,0x2c,0x1d,0x7c,0xce,0x36,0xd0,0x59,0xac,0x8f,0x29,0xcd,0x67, + 0x4f,0xdc,0x7c,0xc0,0x4b,0x24,0x59,0xf7,0x3c,0x85,0x60,0x23,0xe8,0x92,0x69,0x9b,0x90,0x18,0xba,0xca,0x1b,0x8e,0x3b,0x04,0x0e,0xc7,0x43,0x24,0x60,0x7c,0x97,0xc5, + 0x56,0x11,0x38,0x97,0x99,0x56,0xfe,0x6a,0x1a,0xea,0xe0,0x62,0x77,0x45,0x6c,0x7e,0x5e,0x7e,0x7d,0x64,0x39,0x10,0xe2,0x47,0xfb,0x24,0x8d,0xd7,0x43,0x56,0x91,0xa0, + 0x06,0xc0,0x6a,0xbb,0x60,0x3b,0xff,0x68,0xf3,0x56,0xce,0x49,0x6c,0x17,0xfc,0xd0,0x66,0x2f,0xa0,0x40,0xeb,0x0c,0xd4,0x5a,0x98,0x11,0x2e,0x6c,0x1e,0xea,0x11,0xdb, + 0x31,0x92,0x97,0xf7,0x7a,0x75,0x38,0x1b,0x65,0xd7,0x31,0x07,0xe8,0x26,0xee,0xa0,0xe6,0x9d,0x85,0x98,0x5d,0xb4,0x56,0x8f,0xea,0x21,0xd1,0x2d,0xda,0x69,0x69,0x21, + 0xc3,0xef,0x6e,0xb9,0x1a,0xad,0x69,0x45,0x6e,0xde,0x51,0x74,0xb0,0xe5,0xe3,0xd6,0x86,0x3c,0x02,0x4a,0xef,0x31,0x85,0xd2,0x25,0x89,0x46,0x36,0x29,0x03,0xe5,0x76, + 0xa1,0x8b,0x1f,0xba,0x4d,0x49,0x64,0x19,0xed,0xe7,0x0c,0xc2,0x3c,0xee,0xd6,0x74,0x52,0x6f,0x34,0x29,0x9e,0x5b,0x09,0xc0,0xee,0x2d,0xd1,0x66,0x96,0x93,0xfe,0xf9, + 0x9f,0xc7,0xff,0xf3,0xbb,0x4d,0x6e,0x5a,0x4d,0x52,0xeb,0x0e,0x3c,0x51,0x3a,0x3c,0x9f,0xa5,0x60,0x14,0xc0,0x30,0x44,0x95,0x46,0xcd,0xa7,0x44,0xaa,0x12,0x6f,0x6e, + 0x61,0xcb,0x2f,0xb9,0x9b,0x69,0x5e,0xcb,0xaf,0x91,0xa9,0x5e,0x6e,0x0c,0x7e,0x24,0x63,0x3b,0xc7,0x61,0x3e,0xbf,0x51,0x8c,0x6f,0x1c,0x81,0x61,0xdc,0x75,0xea,0x5f, + 0xaf,0x30,0x6c,0x99,0x3d,0xee,0x0d,0xcf,0xc4,0x41,0xeb,0xe5,0x33,0x60,0xb5,0x69,0xe2,0x1f,0x18,0x60,0x52,0xdb,0x81,0x97,0xf4,0xa1,0x24,0xfa,0x77,0xb9,0x81,0x48, + 0xaa,0x7f,0xc9,0xfe,0x60,0x44,0x5e,0xac,0x24,0x51,0xec,0x24,0xc1,0xa4,0x49,0x09,0x84,0x2f,0xa1,0x40,0x25,0xf2,0xa1,0xd3,0xdd,0x7f,0x31,0x01,0x9f,0x96,0x2b,0xe5, + 0x08,0x2a,0x43,0xa8,0x41,0x77,0x82,0xa7,0x95,0xc8,0xd4,0xc7,0x0f,0x43,0xed,0xca,0xbb,0xc2,0x45,0xa8,0x82,0x0a,0xc0,0x1b,0xe9,0x0c,0x1a,0xcf,0x03,0x43,0xba,0x91, + 0x70,0x81,0x0b,0x47,0x80,0xa6,0x3c,0x86,0x04,0x27,0xd3,0xa0,0x26,0x9f,0x6c,0x9d,0x3c,0x2e,0xa3,0x34,0x94,0xc5,0x0e,0x58,0xa2,0x0b,0x94,0x80,0x03,0x4b,0xc7,0xa0, + 0xa7,0xd3,0x4e,0xe2,0x5f,0xbb,0x35,0x4f,0x86,0x38,0xd3,0x18,0x50,0xda,0xb4,0x1e,0x4b,0x08,0x68,0x86,0xf7,0xed,0x3f,0x2d,0x6e,0x03,0x5b,0xce,0xb8,0xca,0xb8,0xa0, + 0x3f,0x09,0xcb,0xc1,0x2e,0xd1,0x70,0x1f,0x59,0xdd,0x5a,0xa8,0x3d,0xae,0xf5,0xe6,0x67,0x6a,0xdf,0x7f,0xd2,0x35,0xc5,0x3f,0x69,0xae,0xb5,0xd5,0xb6,0x77,0x99,0xe0, + 0xe0,0x4e,0x88,0x1f,0x41,0x6b,0xb5,0xaa,0x37,0x96,0x40,0x7a,0xa5,0xff,0xdd,0xf8,0xe1,0xb2,0x44,0x6b,0x18,0x5f,0x70,0x0f,0x69,0x53,0x46,0x83,0x84,0xfa,0xaf,0x76, + 0xad,0xac,0xe7,0x1f,0x40,0x00,0x6c,0x04,0x55,0x75,0x40,0xc2,0xed,0x81,0x02,0xd8,0x30,0xc7,0xf6,0x38,0xe2,0x20,0x1e,0xfe,0xb4,0x7d,0x73,0x2d,0xa7,0x9f,0x13,0xd9, + 0xb8,0xcb,0xf0,0x96,0x8f,0xb7,0x0d,0x39,0x10,0x59,0xd0,0x90,0xb3,0x0d,0x1c,0x4e,0xdc,0xd2,0xda,0xd7,0xab,0xbf,0x7a,0xa4,0xad,0x45,0x2f,0x5a,0x46,0x44,0xa7,0xbe, + 0x07,0x25,0x72,0x45,0xda,0x4b,0xc2,0x66,0x96,0xe2,0x45,0x53,0x1c,0x7a,0x97,0xc2,0xb5,0x29,0xf1,0xca,0x2d,0x8c,0x05,0x16,0x26,0x52,0x0e,0x6b,0x83,0xd7,0xfa,0xf2, + 0xd6,0xaa,0x40,0x1b,0x9c,0xe1,0x7e,0xcf,0x7d,0xd7,0xb0,0x86,0x1d,0xfe,0xb3,0x6b,0xb1,0x74,0x9d,0x12,0x53,0x39,0x91,0xe6,0x6c,0x0d,0x94,0x22,0x81,0xae,0x13,0xab, + 0xf4,0x3b,0xfe,0x4e,0xcc,0xc2,0x4e,0xbf,0x6e,0x36,0xc5,0xbc,0xac,0xa4,0x7b,0x77,0x0c,0x17,0xbc,0xb5,0x9e,0xa7,0x88,0xb1,0x5c,0x74,0xae,0x6c,0x9d,0xd0,0x55,0xa1, + 0x00,0x9b,0xc3,0xab,0xb3,0xcf,0x0a,0xca,0x21,0x4f,0x0e,0x8d,0xb5,0x08,0x8d,0x52,0x0b,0x3d,0x4a,0xad,0xb1,0xd4,0x4c,0x4a,0x2b,0xe7,0xf0,0x31,0x46,0x1c,0x94,0x20, + 0x8b,0xcb,0x07,0xa3,0xd0,0xfa,0x82,0xaf,0x60,0xc8,0x8a,0x8d,0x67,0x81,0x0e,0xbc,0xa0,0xea,0x27,0x54,0x83,0x84,0xe9,0x6d,0x34,0x83,0x31,0x02,0x12,0x21,0x93,0x12, + 0xa0,0x9d,0xdc,0x7c,0xfe,0x02,0x3a,0xcd,0x95,0x71,0xef,0x07,0x54,0x01,0x02,0x89,0xc8,0x04,0x67,0x8c,0x04,0x3f,0x90,0x0f,0x26,0x91,0xdd,0x80,0x1b,0x94,0x2e,0xd4, + 0xda,0x98,0x05,0x4d,0x51,0xac,0x96,0x15,0xe9,0xd4,0xf5,0xce,0xda,0x1f,0x1b,0xad,0x40,0x30,0x2a,0xc1,0x16,0x03,0x43,0x1e,0xfe,0xc1,0x3a,0xb5,0x0e,0x32,0xfc,0xf2, + 0xd6,0x07,0x95,0xd8,0xf3,0x10,0xb1,0x55,0x72,0x65,0x34,0xb8,0xbe,0x3d,0x0b,0x8a,0x7b,0xc2,0xce,0xd4,0x68,0xc6,0xe6,0x4c,0x8b,0x9a,0xe0,0x87,0xb3,0x3e,0xe0,0x0b, + 0x67,0x5f,0xef,0x8f,0x56,0x80,0xbf,0x76,0x22,0x0e,0x91,0x36,0x26,0x13,0x94,0x40,0x99,0x04,0x6b,0x0b,0xa0,0x7e,0x58,0x24,0xe9,0x3f,0x3e,0x3c,0xc2,0xcc,0x27,0x58, + 0x76,0xb4,0x39,0xf8,0xea,0x7b,0x42,0xf1,0x1c,0xd5,0x9e,0x6d,0x91,0xb2,0xd2,0xa7,0x25,0x77,0xc1,0x85,0x38,0x6b,0x6a,0xf6,0x63,0x9b,0xe8,0xe3,0x86,0x4a,0x7f,0x27, + 0x56,0xe6,0x3f,0xa7,0x88,0x12,0x1d,0x5e,0xfa,0x0c,0xe3,0xca,0xf4,0x60,0x5a,0xf1,0x8d,0x48,0xc6,0x31,0x49,0x6c,0xdf,0xa8,0x62,0xc4,0x3e,0xcf,0x5e,0x5f,0xc1,0x27, + 0xcf,0xf3,0xb5,0xe1,0x9e,0xd6,0x7e,0x51,0x11,0xdd,0x76,0xe3,0x10,0xa1,0xf1,0x1d,0x7f,0x99,0xa9,0x3f,0xbe,0x9c,0xc5,0xc6,0xf3,0x38,0x40,0x86,0xca,0xcd,0x11,0x42, + 0xe2,0x94,0x83,0x88,0x4a,0x74,0xfb,0x84,0xf4,0x60,0x16,0x54,0x88,0x5a,0x0f,0x57,0x46,0x91,0x39,0x4f,0x06,0x4e,0xa6,0x93,0x7a,0x84,0x61,0x75,0xef,0x08,0x1f,0xc5, + 0x9c,0x6a,0x4b,0xcb,0x2f,0xc0,0x86,0xac,0xa8,0x72,0x6d,0x85,0x0f,0xa7,0x99,0x20,0x21,0x4a,0xf4,0xc1,0x51,0xac,0xea,0x0f,0xcf,0x12,0xa7,0x69,0xad,0x1f,0x35,0x74, + 0x34,0xb7,0xab,0xc3,0xf3,0xe3,0x6e,0x37,0xe2,0xd5,0x72,0x8a,0x87,0x0a,0x29,0x3a,0x16,0x40,0x31,0x46,0xca,0x67,0xff,0x91,0xcb,0xab,0xee,0xe2,0xbb,0x2e,0x03,0x8b, + 0x9b,0xd1,0x28,0x4f,0x1b,0xcb,0x19,0x34,0xd4,0x83,0x83,0x4c,0xae,0x41,0xa7,0x7d,0xb2,0x8c,0xd9,0x55,0x38,0x69,0x38,0x47,0x55,0xb6,0x98,0x3f,0x4f,0x38,0x48,0xa0, + 0x16,0x7e,0x3d,0xb6,0xa9,0x12,0xac,0x61,0x17,0x64,0x45,0x25,0x91,0x1f,0xc8,0x87,0x2e,0xd3,0x3b,0x8e,0x0b,0xbd,0x50,0x07,0x3d,0xd3,0xc1,0x7a,0x74,0x4e,0x61,0xe0, + 0x7c,0x30,0x20,0xe2,0x79,0xcb,0x5a,0xf1,0x41,0x84,0xb4,0x65,0x3c,0xc8,0x7c,0x1d,0xdd,0x7f,0x49,0xcd,0x31,0xcd,0x37,0x1a,0xe8,0x13,0x68,0x1d,0xd6,0x61,0x7d,0x0e, + 0xac,0xfd,0xff,0x56,0x6b,0x8b,0x55,0x31,0x88,0x69,0xfa,0x64,0x6f,0x78,0x9f,0x80,0x36,0xd4,0x0b,0x90,0xf0,0xfc,0x52,0x0a,0xe2,0xa5,0xa2,0x75,0x44,0xf9,0x62,0xc0, + 0x5c,0x6b,0x01,0xcf,0xf4,0xe6,0xce,0x81,0xa6,0x30,0x23,0x8b,0x5d,0xb3,0x66,0x2e,0x77,0xfb,0x88,0xbf,0xfd,0xde,0x61,0x44,0x3a,0x7d,0x85,0x54,0xba,0x00,0x1e,0xf2, + 0xe7,0x28,0x1d,0x12,0xb7,0x4b,0x06,0xee,0xcb,0x27,0x3e,0xc3,0xe0,0xd8,0xfe,0x66,0x3e,0x9e,0xc1,0xd5,0xa5,0x0c,0x2b,0x6c,0x68,0xec,0x8b,0x36,0x93,0xf2,0x3c,0x4c, + 0x80,0x64,0x3e,0xd8,0xb9,0x05,0x2a,0x2e,0x74,0x6a,0x26,0xd9,0x17,0x8f,0xe2,0xcc,0xff,0x35,0xed,0xbb,0x81,0xf6,0x0c,0xd7,0x80,0x04,0xfb,0x8d,0x5f,0x14,0x3a,0xae, + 0x75,0x87,0x3a,0xc5,0x44,0xad,0x69,0xd3,0xdd,0xc5,0xc9,0xcf,0xfe,0x38,0x4d,0x27,0x5e,0x9d,0xa2,0x94,0x9d,0x69,0x82,0xda,0x4b,0x99,0x0f,0x8b,0xf2,0xb7,0x64,0x74, + 0x35,0x5c,0x9f,0xac,0xa2,0x9c,0xf7,0xcc,0x96,0x88,0x53,0xee,0x29,0xff,0xe6,0x2d,0x11,0x27,0xfc,0xc1,0xdc,0x57,0xe9,0xdd,0xaf,0x0e,0x0f,0x44,0x71,0x46,0x06,0x4e, + 0xfc,0x17,0x5a,0x5e,0xf1,0x85,0x95,0xb6,0x9e,0x45,0xbe,0x2c,0xda,0x8a,0xe0,0x0d,0x9c,0x8b,0xdb,0xef,0xbc,0xf7,0xf6,0x92,0xf9,0x1c,0xef,0xdc,0x56,0x0e,0x47,0x22, + 0x46,0x55,0x91,0x46,0xa9,0x3a,0xae,0x90,0x4d,0xbc,0xaa,0xaa,0x07,0xe6,0xcd,0x1b,0xb4,0x50,0xf1,0xb3,0x7c,0x83,0x92,0x9a,0x99,0x4b,0x45,0x79,0x23,0x33,0xd5,0xf6, + 0xc6,0x4b,0x07,0x11,0x90,0x54,0xa3,0x79,0x61,0xc0,0xa1,0x77,0x15,0x82,0x56,0x08,0x1b,0x38,0xb0,0x08,0x7b,0x30,0x7e,0x0c,0xad,0x7e,0x30,0xd7,0x90,0xce,0xb0,0xce, + 0xbe,0xa8,0xcf,0xc0,0xbe,0xe8,0x57,0x1c,0xcf,0x0c,0x52,0x56,0x54,0xef,0x26,0xd1,0xfc,0x78,0x2b,0xb2,0x2d,0xec,0xcf,0x67,0xea,0x4e,0xa0,0x80,0x3d,0xc1,0x5d,0xaf, + 0x60,0x45,0x1d,0xa4,0xad,0xfe,0x5b,0xb3,0x93,0x10,0x90,0x69,0xef,0xdc,0x84,0x41,0x5e,0xc8,0xa2,0xc4,0x29,0x95,0x5c,0xbf,0x22,0xa4,0x34,0x0f,0x8f,0xc4,0x89,0x36, + 0xd6,0x8e,0x74,0x6f,0x3d,0x43,0xfe,0xac,0x5f,0xd4,0x89,0x8d,0xe9,0x43,0xdc,0x38,0x20,0x5a,0xf7,0xe2,0x63,0x1e,0xd7,0x32,0x07,0x9b,0xbf,0xc8,0xab,0x52,0x51,0x1c, + 0x28,0xda,0xea,0xad,0xc6,0x09,0x38,0x6d,0x77,0x0d,0xff,0x4c,0x71,0x20,0xb2,0xa8,0x7c,0xab,0x3e,0x21,0xfd,0xb8,0xa6,0xe4,0xdc,0x12,0x40,0xa5,0x1d,0x12,0xe5,0x5c, + 0xbb,0x41,0x10,0xb7,0x34,0xc8,0xef,0x8a,0x08,0xbb,0x60,0x11,0xac,0xb3,0x5c,0xbd,0xa9,0xae,0x8e,0x2e,0xf6,0xc4,0xd0,0x86,0x25,0x76,0xa6,0x87,0x92,0x66,0x7b,0xb9, + 0xe2,0x5c,0x50,0x03,0x7c,0xa1,0x91,0x38,0x51,0xb9,0x75,0x87,0x52,0x65,0x9f,0xb6,0x1c,0x02,0xd2,0xa7,0xc6,0xb6,0xaa,0xe2,0x9b,0xda,0x30,0x19,0x07,0xd9,0x9f,0x5d, + 0xad,0x25,0x9f,0x01,0xe9,0x53,0x26,0x3f,0x40,0xa3,0x9b,0x14,0xa5,0x38,0xd0,0x76,0x71,0x0c,0x19,0x20,0x7a,0xf9,0x36,0xfe,0xab,0xdf,0x03,0xbd,0xa7,0xf0,0x67,0xa5, + 0x5e,0xc6,0x02,0x5a,0xc7,0xb2,0x5c,0x0f,0x09,0x5f,0x3f,0xde,0xe3,0xe2,0xe5,0x08,0xbd,0x14,0x37,0xb9,0x70,0x5c,0x25,0x43,0xc0,0xe5,0xaf,0x1c,0x1d,0x36,0x3f,0xfd, + 0xa2,0xf9,0x3a,0x84,0x57,0x4a,0x26,0xb4,0x38,0x80,0xcd,0xe6,0xed,0x44,0x0c,0x7f,0x7c,0xc7,0x2c,0x92,0x50,0x4d,0x52,0x71,0x99,0x9a,0x8a,0x78,0xff,0xe3,0x49,0x1d, + 0x8d,0x0c,0xdb,0x49,0x77,0xba,0x76,0x61,0xd4,0x10,0x36,0xae,0xb7,0xa5,0xf2,0xdd,0x20,0x77,0x16,0xd5,0xd7,0x6e,0xeb,0x26,0x62,0x90,0x43,0xc5,0x59,0xec,0x29,0x00, + 0xde,0xfd,0xe4,0xaa,0x48,0xf8,0x9b,0x03,0xf6,0x23,0xea,0x1f,0x94,0x6f,0x1a,0xa9,0x38,0xc5,0xaa,0xb8,0x79,0xca,0x63,0x19,0x59,0x69,0x26,0xf0,0x85,0x57,0x8e,0xdc, + 0xaf,0xe0,0xbf,0xed,0x69,0xa6,0x00,0x16,0x38,0x65,0x40,0x61,0x27,0xa8,0x97,0x2b,0x61,0x32,0x32,0xaa,0x4c,0x93,0x3a,0x06,0xb5,0xa5,0xb5,0xbc,0xff,0x15,0x96,0xf8, + 0xf4,0x9b,0xca,0x7a,0x6a,0x52,0x56,0xdd,0xf7,0x12,0x77,0x59,0x17,0xc3,0x0e,0x48,0x73,0x15,0x34,0x69,0xba,0xe1,0x2f,0xd5,0xc5,0x57,0x10,0x31,0xdb,0x7b,0x12,0x05, + 0x9c,0x88,0xb6,0x11,0xb7,0xf9,0xaa,0xd3,0x3f,0xab,0xb0,0x9c,0xff,0x61,0x8b,0xb1,0xca,0x6f,0xb9,0x04,0xa2,0x89,0xb1,0x48,0x1d,0xa3,0xd1,0xe4,0xe7,0x25,0x89,0xe4, + 0x42,0xf6,0x34,0xc0,0x6c,0x4a,0x0e,0x7e,0x95,0x6d,0xb6,0xe8,0x66,0x66,0x60,0x3d,0x26,0x37,0x4c,0xc7,0x4b,0x11,0x02,0x6f,0x03,0x18,0xd1,0xa2,0x56,0x81,0xa7,0x12, + 0xe2,0xce,0xb9,0x46,0xe7,0x99,0x3f,0x27,0xa4,0x32,0x7a,0xbd,0xf6,0x1d,0x4f,0x06,0x57,0x7e,0x89,0xc6,0x3b,0x62,0xa2,0x4a,0xef,0xbd,0x90,0x57,0x10,0xd1,0x86,0x69, + 0x71,0x63,0x7a,0x5d,0xa2,0x41,0x2a,0x92,0x1f,0x16,0x36,0xc6,0x9a,0x6e,0xe8,0x10,0x83,0xee,0x2b,0x0e,0x13,0x76,0x6a,0xd1,0x22,0x79,0x1e,0xf6,0xf7,0x71,0x89,0x6d, + 0xbd,0x26,0x5e,0xd3,0x07,0x8c,0xa8,0xc7,0x78,0x8f,0x59,0x41,0x87,0xc9,0x6c,0x67,0x5a,0xa6,0x23,0xec,0xd0,0x1b,0xfc,0xad,0x62,0xd7,0x6a,0x78,0x81,0x33,0x4f,0x63, + 0x8d,0x07,0x3f,0xc5,0x92,0xfb,0x7a,0xa6,0xf7,0xb9,0x08,0xed,0x07,0x14,0x8a,0xa7,0xbe,0x5a,0x13,0x5c,0x4b,0x34,0x3e,0xbe,0x29,0x51,0x98,0xcb,0xa7,0x8e,0x71,0xce, + 0xa2,0x6d,0x69,0x8e,0x46,0x13,0x59,0x5a,0xa6,0x1c,0x8e,0x29,0x07,0xd5,0x24,0x1d,0x6d,0x14,0x90,0x97,0x37,0xdf,0x59,0x89,0x58,0x41,0xd0,0x77,0x27,0xbf,0x13,0x48, + 0xa8,0xed,0xc6,0xf9,0xaf,0x6b,0xf7,0x41,0x22,0xc1,0x1c,0xa1,0xa5,0x0a,0xfb,0xc4,0xa3,0xc4,0x98,0x7b,0xd0,0xd1,0xf7,0x32,0x84,0xd2,0xc1,0x37,0x1e,0x61,0x34,0x05, + 0x17,0x96,0x3d,0xe0,0x78,0x99,0x6e,0xb8,0x50,0x3c,0x7c,0xc3,0xe1,0xa2,0xd5,0x14,0x7d,0x7f,0x0b,0xfb,0x25,0x1a,0x02,0x0b,0x43,0x92,0x03,0x30,0x63,0x58,0x7c,0x8d, + 0x06,0x27,0x99,0xa1,0x95,0x45,0xd3,0x1b,0x3e,0xd7,0x22,0x53,0xbc,0xde,0x59,0x76,0x2a,0xa6,0x10,0x4a,0x88,0xac,0x5e,0x2f,0xb6,0x89,0x26,0xb0,0xf7,0x14,0x66,0x98, + 0x9f,0x42,0xdd,0x8f,0xce,0x13,0xf8,0x10,0x3b,0x3b,0x2b,0xc1,0x5e,0x61,0x24,0x2e,0x68,0x20,0xfe,0x13,0x25,0xa2,0x0e,0xf4,0x60,0xfe,0x64,0xd9,0xeb,0x12,0xb2,0x31, + 0xd1,0xb2,0x04,0xe5,0x2d,0x1f,0xac,0x6d,0x50,0x41,0x32,0xc7,0x6c,0xa2,0x33,0xc8,0x7e,0x37,0x7d,0xcc,0x79,0xc8,0x93,0xc9,0x70,0xdd,0xbb,0x9f,0x87,0xb2,0x7f,0xa0, + 0xc8,0xd6,0xbd,0x28,0xc1,0xe6,0x5a,0xe7,0xc7,0xa5,0xde,0xbe,0x67,0xa7,0xdf,0xaf,0x92,0xb4,0x29,0xed,0xe3,0x68,0xef,0xc9,0xda,0x7d,0x57,0x8a,0x53,0x9b,0x70,0x54, + 0x0d,0x1f,0x90,0x5c,0xc7,0x47,0x20,0xbd,0xe6,0x7a,0xe8,0x4f,0x58,0x27,0x28,0x58,0x8c,0x75,0x44,0x4c,0x27,0x3d,0xae,0x41,0x06,0xfa,0x20,0xd1,0xd6,0x94,0x64,0x30, + 0x3f,0x01,0x4e,0x30,0x91,0x92,0x58,0x8f,0xa8,0x3e,0x47,0xd4,0xac,0x96,0x85,0xd2,0x04,0x12,0x04,0xe2,0xea,0xf6,0x33,0xa1,0x31,0x28,0x12,0xe5,0x1a,0xe7,0x4c,0xbd, + 0x68,0xb4,0x04,0xd5,0x56,0xc8,0x20,0x04,0xc6,0xc4,0xbb,0xa4,0x51,0x8e,0xc0,0x0b,0x1d,0x4f,0x11,0x61,0xca,0xfe,0x6c,0x89,0xae,0xb8,0x49,0x4a,0x9b,0xa0,0x9d,0xb5, + 0xc3,0x31,0xad,0xe7,0xa4,0x57,0xdf,0x7f,0x12,0xa2,0xf5,0xc4,0x3d,0x7e,0xa9,0x48,0x6c,0x15,0x63,0xb8,0x1c,0xd8,0xa0,0xf2,0x3f,0x92,0x3c,0x1a,0x9f,0xa6,0x12,0xe3, + 0x17,0xb5,0xc7,0xa3,0x11,0xee,0xa9,0xd2,0xab,0x75,0x71,0xf8,0xb9,0xf8,0x48,0xd4,0x70,0x59,0x97,0xcf,0x3e,0xaf,0x9b,0xdc,0xbe,0x0e,0x34,0xa6,0x70,0xf8,0x1f,0x45, + 0x2f,0x0e,0x4e,0xcc,0xbc,0x45,0x18,0xac,0xe5,0x58,0xe0,0x66,0x04,0xf9,0xbf,0xf4,0x78,0x7f,0x5b,0x01,0x94,0x37,0xb5,0x21,0x95,0xec,0xb6,0xb8,0x21,0x91,0xa6,0xae, + 0x74,0x94,0xd8,0x64,0xcb,0x6e,0xa9,0xc5,0xd9,0x82,0xd4,0x0a,0x5f,0x10,0x37,0x00,0xd0,0x2d,0xc9,0x82,0x63,0x77,0x53,0xcf,0xc7,0xd8,0xaf,0xe1,0xbe,0xaf,0xff,0x70, + 0xa9,0x68,0x73,0xee,0xf5,0xd4,0x38,0xb8,0x07,0x85,0x3b,0x67,0x71,0xc6,0xa5,0x19,0x7e,0x6e,0xef,0x21,0xef,0xef,0xca,0x53,0x8b,0x45,0xe9,0xe9,0x81,0xc0,0x32,0xe5, + 0x91,0x24,0x61,0x89,0x13,0xf2,0x0c,0xdf,0xfa,0x64,0x22,0x07,0xf1,0x92,0xe6,0x7e,0xb8,0x0a,0xde,0x53,0xac,0x55,0x35,0x46,0x9a,0xbe,0x90,0x03,0x6d,0x4a,0xf7,0xe2, + 0x9d,0x8b,0x74,0x88,0x8d,0x94,0x28,0x70,0xb2,0x21,0xde,0x7a,0x64,0x20,0x32,0x89,0x2b,0xc9,0x9e,0x34,0xbd,0x85,0x50,0x19,0x5f,0x6f,0x5f,0x09,0x75,0x47,0x33,0x4a, + 0x16,0x98,0x33,0x77,0xc0,0xf1,0xa9,0xc0,0x04,0x49,0x5b,0x3f,0xd9,0x65,0x83,0x63,0x11,0x6e,0xea,0x64,0x47,0x87,0xd0,0x59,0xd1,0x14,0x0f,0xb9,0x07,0x55,0x5d,0x4a, + 0x08,0x1a,0xf4,0x0a,0x81,0xd4,0x8c,0x6b,0x53,0x01,0x40,0xdb,0x93,0x5e,0x60,0x5b,0xf4,0xcc,0x7b,0x10,0x88,0x5f,0x5b,0x14,0x8f,0x95,0xf1,0xbc,0x8a,0xd2,0xe5,0x2d, + 0x7e,0x4b,0x97,0x3e,0x6d,0x4a,0x35,0x7c,0x40,0x02,0x43,0xa6,0x48,0xc8,0xa0,0xa6,0xa3,0x5c,0xf2,0x31,0x75,0x4a,0xfd,0xef,0x31,0x2d,0x2f,0x4b,0x6a,0xbb,0x98,0x8f, + 0x0f,0x02,0x35,0xda,0x2a,0x06,0xc8,0xd4,0x08,0xc2,0x71,0x51,0xf3,0xf1,0x53,0x42,0xed,0x8c,0x19,0x45,0xaa,0xf8,0x4e,0xd1,0x49,0x93,0x78,0x6d,0x6a,0xc5,0xf5,0x70, + 0x56,0x22,0xc2,0xfb,0xe8,0xaf,0x5a,0xd6,0xce,0xf7,0x2a,0x01,0xbe,0x18,0x6e,0x55,0x48,0x47,0x57,0x61,0x06,0xf8,0x97,0x97,0x72,0xfa,0x56,0x11,0x4d,0x11,0x60,0xab, + 0xbb,0x95,0xe0,0xd0,0xfb,0xaa,0xd8,0x6c,0x5b,0xd8,0x7b,0x95,0x94,0x6c,0x77,0xff,0x1d,0x65,0x32,0x2a,0x17,0x5c,0xcf,0x16,0x41,0x91,0x02,0xc0,0xa1,0x7f,0x5a,0x72, + 0x45,0x10,0x68,0x3c,0x7b,0xfa,0x25,0x1f,0x0c,0xb5,0x6b,0xba,0x7e,0x0a,0xb7,0x4d,0x90,0xf5,0xe2,0xca,0x01,0xe9,0x1e,0x7c,0xa9,0x93,0x12,0xcc,0xff,0x2d,0x90,0xb6, + 0x02,0x54,0x85,0x14,0x2c,0xa1,0xce,0xd7,0x52,0x28,0x9f,0x77,0x21,0x30,0xfc,0x10,0xc7,0x5a,0x45,0x08,0xc4,0x6b,0xff,0xde,0xf9,0x29,0x0a,0xd3,0xe7,0xba,0xf9,0xca, + 0x90,0x67,0x93,0x21,0x50,0x72,0x49,0x65,0xaa,0x47,0x9c,0x1e,0xf1,0xbe,0x55,0x54,0x4b,0xed,0x9f,0xa9,0x45,0x00,0xa3,0xb6,0x78,0x87,0xed,0x91,0xae,0x3b,0x81,0xe5, + 0xf8,0x08,0x4a,0x89,0xad,0xcc,0xdc,0x3a,0xef,0x89,0xe5,0x09,0x1a,0x0f,0x07,0xd6,0x16,0x0a,0x66,0xcb,0x95,0x75,0x24,0x11,0x00,0xc1,0xd3,0x9b,0xf0,0x54,0x9a,0xe2, + 0x44,0x62,0x55,0x8c,0x89,0x90,0x21,0x17,0x05,0x1c,0xb2,0xc5,0x99,0xad,0x66,0xf0,0x08,0x87,0xb5,0x4c,0xae,0x3d,0xa9,0xc0,0x4d,0x31,0x7a,0x5b,0x2a,0xfb,0x46,0x3b, + 0x30,0xb4,0x74,0x1a,0x64,0xf8,0x7d,0x28,0xec,0x00,0x29,0xbd,0x19,0x6b,0x5a,0x74,0x55,0x5f,0x2c,0x9a,0x97,0x6a,0x46,0xd6,0x28,0x57,0x24,0x74,0x46,0x6a,0x63,0x1d, + 0x3a,0xfc,0x04,0xac,0x92,0x11,0x7e,0x50,0xb0,0x91,0x3b,0x09,0xdb,0xbb,0x4e,0x6c,0x78,0x0c,0x05,0x15,0x00,0x20,0x1f,0xad,0x51,0x2b,0x79,0x08,0x0b,0xff,0x39,0xe2, + 0x60,0x96,0x37,0x04,0x85,0x86,0xed,0xc6,0x4c,0xf5,0xf2,0x8f,0x1a,0x50,0x57,0x68,0xc6,0x86,0x47,0x11,0x10,0x07,0x0d,0x78,0x3d,0xe4,0x99,0xff,0xe6,0xfe,0x84,0xda, + 0xb1,0xd4,0xf2,0x7a,0x69,0x83,0xc8,0xee,0x41,0x7e,0xf0,0xf5,0x27,0xd8,0x89,0xd4,0xa1,0xae,0x41,0xd3,0x63,0x92,0x44,0x57,0x8c,0x43,0xd6,0x50,0xc2,0x99,0xfc,0xd1, + 0x00,0x07,0xc9,0xa2,0x7a,0xc5,0x06,0x7c,0x9f,0x0a,0xd1,0xa4,0xd1,0xe6,0x21,0x10,0xda,0x13,0x18,0x89,0x3a,0x65,0x87,0x29,0x71,0x3d,0x82,0xe3,0x33,0x85,0x5b,0x82, + 0x8a,0x3b,0x23,0xa9,0x1f,0x0d,0x5d,0xb8,0x07,0x4a,0x6a,0x88,0x68,0x89,0xee,0x3e,0x19,0xaa,0xf0,0x9b,0x66,0xac,0x9a,0xad,0x2e,0x15,0xc8,0xbd,0xba,0x68,0x08,0x5c, + 0xc2,0xaf,0x76,0x3f,0x41,0x4c,0xb2,0xd7,0xfd,0x46,0x25,0x7f,0x03,0x13,0xb5,0x82,0xc0,0x99,0xb5,0xe2,0x3b,0x73,0xe0,0x73,0xb5,0xab,0x7c,0x23,0x0c,0x45,0xc8,0x83, + 0x34,0x00,0x56,0x94,0xe3,0xca,0xc0,0x93,0x32,0xaa,0x42,0x80,0x7e,0x3a,0xfd,0xc3,0xb3,0xb3,0xbc,0x7c,0x7b,0xe8,0x87,0xd1,0xf9,0x8d,0x76,0x77,0x8c,0x55,0xcf,0xd7, + 0x58,0x41,0xac,0xd3,0xcf,0xf2,0xd6,0x28,0x61,0xbb,0xe1,0x10,0x84,0x73,0x80,0x06,0xd6,0x8c,0xcf,0x35,0xac,0xae,0x61,0x5e,0xe9,0x52,0x47,0x26,0xe9,0x3d,0x0d,0xa5, + 0x43,0x48,0xe4,0xcb,0xa3,0x71,0xea,0xd0,0x39,0x82,0x01,0x8a,0xbc,0x9a,0xac,0xec,0xae,0xbf,0xd6,0x36,0xdd,0xa8,0x2e,0x60,0x9f,0xd2,0x98,0x94,0x7f,0x90,0x7d,0xe8, + 0xe5,0x62,0x21,0xc2,0xb0,0xdc,0x33,0xb9,0x8b,0x90,0xdf,0xd3,0x23,0x9a,0x2c,0x0c,0xb1,0xe4,0xad,0x03,0x99,0xa3,0xaa,0xef,0x3f,0x9d,0x47,0xfb,0x10,0x3d,0xae,0xf0, + 0x5b,0x34,0xa2,0x9b,0x1c,0x4d,0xdc,0xb2,0x10,0x11,0x62,0xd3,0x4b,0xed,0x9f,0x07,0x02,0x36,0x1f,0xe5,0xaf,0x50,0x5d,0xf3,0x15,0xef,0xf7,0xbe,0xfd,0x0e,0x47,0x19, + 0xce,0xce,0x52,0x1b,0x8b,0x5a,0x32,0xbb,0xee,0x38,0x93,0x6b,0xa7,0xd6,0x45,0x82,0x4f,0x23,0x8e,0x56,0x17,0x01,0xa3,0x86,0xfb,0x88,0x8e,0x01,0x0d,0xb5,0x4b,0x2f, + 0x82,0x95,0x21,0xb7,0x9d,0x71,0xf5,0x01,0x1e,0x07,0x97,0x56,0xb8,0x51,0xa0,0xd5,0xc8,0x35,0x57,0x86,0x61,0x89,0xa6,0x25,0x8c,0x1e,0x78,0xa1,0x70,0x0c,0x69,0x04, + 0x8c,0x59,0x34,0x79,0x35,0x05,0xa6,0xa1,0xf8,0x4d,0x41,0x28,0x33,0x41,0x68,0x0c,0x49,0x23,0xf1,0xf4,0xd5,0x62,0x98,0x9a,0x11,0xcc,0x62,0x6f,0xea,0x5e,0xda,0x5a, + 0x35,0x6c,0xae,0xe7,0xe7,0xee,0xe0,0x31,0xa1,0x5e,0x54,0xc3,0xa5,0xc4,0xe7,0x2f,0x9c,0x74,0xbb,0x28,0x7c,0xe6,0x01,0x61,0x9e,0xf8,0x5e,0xb9,0x6c,0x28,0x94,0x52, + 0x09,0xc7,0x33,0x7d,0xf6,0xc2,0xb3,0x5e,0xdf,0x3a,0x21,0x38,0x25,0x11,0xcc,0x5a,0xdd,0x1a,0x71,0xa8,0x4c,0xbf,0x8d,0x33,0x96,0xa5,0xbe,0x54,0x8d,0x92,0xfa,0x67, + 0xd1,0x6c,0xae,0xdd,0x25,0x79,0x36,0x66,0xf9,0xe2,0x6f,0x53,0x31,0x38,0x21,0x06,0xf5,0x40,0x95,0xb3,0xd2,0x0d,0x40,0xc7,0x45,0xb6,0x8c,0xa7,0x6c,0x0e,0x69,0x83, + 0xb8,0xae,0x1e,0x21,0xd8,0xb3,0x4c,0xe4,0xca,0xff,0xed,0x71,0x67,0xa2,0x68,0x68,0xec,0x80,0xa7,0xd4,0xa6,0xa9,0x8b,0x63,0x9d,0x4d,0x05,0xcd,0x22,0x65,0x04,0xde, + 0x02,0x77,0x63,0x15,0xfe,0x14,0x7a,0x36,0xa4,0xb0,0x98,0x74,0x92,0xb6,0x50,0x3a,0xcd,0xea,0x60,0xf9,0x26,0x45,0x0e,0x5e,0xdd,0xb9,0xf8,0x8f,0xc8,0x21,0x78,0xd3, + 0x39,0x88,0xc9,0xc7,0x05,0x0a,0x28,0x79,0x49,0x34,0xe5,0xbd,0x67,0x62,0x9b,0x55,0x6d,0x97,0xa4,0x85,0x8d,0x22,0x81,0x28,0x35,0xf4,0xa3,0x7d,0xca,0x35,0x19,0x43, + 0x34,0x00,0x56,0x94,0xe3,0xca,0xc0,0x93,0x32,0xaa,0x42,0x80,0x7e,0x3a,0xfd,0xc3,0xb3,0xb3,0xbc,0x7c,0x7b,0xe8,0x87,0xd1,0xf9,0x8d,0x76,0x77,0x8c,0x55,0xcf,0xd7, + 0x4b,0x52,0x25,0x7d,0x8b,0x3b,0xa3,0x87,0x79,0x7f,0xdf,0x7a,0x75,0x2f,0x19,0x5d,0xdc,0x4f,0x7d,0x76,0x26,0x3d,0xe6,0x1d,0x0d,0x52,0xa5,0xec,0x14,0xa3,0x6c,0xbf, + 0x38,0x0c,0x53,0xe0,0xa5,0x09,0xeb,0xb3,0xb6,0x33,0x46,0x59,0x81,0x05,0x21,0x9b,0x43,0xd5,0x1a,0xe1,0x96,0xb4,0x55,0x7d,0x59,0xbb,0xd6,0x78,0x24,0x03,0x2d,0xff, + 0x38,0x0c,0x53,0xe0,0xa5,0x09,0xeb,0xb3,0xb6,0x33,0x46,0x59,0x81,0x05,0x21,0x9b,0x43,0xd5,0x1a,0xe1,0x96,0xb4,0x55,0x7d,0x59,0xbb,0xd6,0x78,0x24,0x03,0x2d,0xff, + 0x38,0x0c,0x53,0xe0,0xa5,0x09,0xeb,0xb3,0xb6,0x33,0x46,0x59,0x81,0x05,0x21,0x9b,0x43,0xd5,0x1a,0xe1,0x96,0xb4,0x55,0x7d,0x59,0xbb,0xd6,0x78,0x24,0x03,0x2d,0xff, + 0x38,0x0c,0x53,0xe0,0xa5,0x09,0xeb,0xb3,0xb6,0x33,0x46,0x59,0x81,0x05,0x21,0x9b,0x43,0xd5,0x1a,0xe1,0x96,0xb4,0x55,0x7d,0x59,0xbb,0xd6,0x78,0x24,0x03,0x2d,0xff, + 0x38,0x0c,0x53,0xe0,0xa5,0x09,0xeb,0xb3,0xb6,0x33,0x46,0x59,0x81,0x05,0x21,0x9b,0x43,0xd5,0x1a,0xe1,0x96,0xb4,0x55,0x7d,0x59,0xbb,0xd6,0x78,0x24,0x03,0x2d,0xff, + 0x38,0x0c,0x53,0xe0,0xa5,0x09,0xeb,0xb3,0xb6,0x33,0x46,0x59,0x81,0x05,0x21,0x9b,0x43,0xd5,0x1a,0xe1,0x96,0xb4,0x55,0x7d,0x59,0xbb,0xd6,0x78,0x24,0x03,0x2d,0xff}; + +static const wycheproof_ecdh_testvector testvectors[SECP256K1_ECDH_WYCHEPROOF_NUMBER_TESTVECTORS] = { + /* tcId: 1. normal case */ + {0, 65, 0, 32, 0, 32, 1, 1 }, + /* tcId: 2. compressed public key */ + {65, 33, 0, 32, 32, 32, 1, 2 }, + /* tcId: 3. shared secret has x-coordinate that satisfies x**2 + a = 1 */ + {98, 65, 32, 32, 64, 32, 1, 3 }, + /* tcId: 4. shared secret has x-coordinate that satisfies x**2 + a = 4 */ + {163, 65, 32, 32, 96, 32, 1, 4 }, + /* tcId: 5. shared secret has x-coordinate that satisfies x**2 + a = 9 */ + {228, 65, 32, 32, 128, 32, 1, 5 }, + /* tcId: 6. shared secret has x-coordinate p-3 */ + {293, 65, 32, 32, 160, 32, 1, 6 }, + /* tcId: 7. shared secret has x-coordinate 2**16 + 0 */ + {358, 65, 32, 32, 192, 32, 1, 7 }, + /* tcId: 8. shared secret has x-coordinate 2**32 + 7 */ + {423, 65, 32, 32, 224, 32, 1, 8 }, + /* tcId: 9. shared secret has x-coordinate 2**64 + 1 */ + {488, 65, 32, 32, 256, 32, 1, 9 }, + /* tcId: 10. shared secret has x-coordinate 2**96 + 1 */ + {553, 65, 32, 32, 288, 32, 1, 10 }, + /* tcId: 11. shared secret has x-coordinate that satisfies x**2 + a = -6 */ + {618, 65, 32, 32, 320, 32, 1, 11 }, + /* tcId: 12. shared secret has x-coordinate that satisfies x**2 + a = 2 */ + {683, 65, 32, 32, 352, 32, 1, 12 }, + /* tcId: 13. shared secret has x-coordinate that satisfies x**2 + a = 8 */ + {748, 65, 32, 32, 384, 32, 1, 13 }, + /* tcId: 14. shared secret has x-coordinate that satisfies x**2 = 2**96 + 2 */ + {813, 65, 32, 32, 416, 32, 1, 14 }, + /* tcId: 15. shared secret has x-coordinate with repeating bit-pattern of size 2 */ + {878, 65, 32, 32, 448, 32, 1, 15 }, + /* tcId: 16. shared secret has x-coordinate with repeating bit-pattern of size 2 */ + {943, 65, 32, 32, 480, 32, 1, 16 }, + /* tcId: 17. shared secret has x-coordinate with repeating bit-pattern of size 4 */ + {1008, 65, 32, 32, 512, 32, 1, 17 }, + /* tcId: 18. shared secret has x-coordinate with repeating bit-pattern of size 4 */ + {1073, 65, 32, 32, 544, 32, 1, 18 }, + /* tcId: 19. shared secret has x-coordinate with repeating bit-pattern of size 8 */ + {1138, 65, 32, 32, 576, 32, 1, 19 }, + /* tcId: 20. shared secret has x-coordinate with repeating bit-pattern of size 8 */ + {1203, 65, 32, 32, 608, 32, 1, 20 }, + /* tcId: 21. shared secret has x-coordinate with repeating bit-pattern of size 16 */ + {1268, 65, 32, 32, 640, 32, 1, 21 }, + /* tcId: 22. shared secret has x-coordinate with repeating bit-pattern of size 16 */ + {1333, 65, 32, 32, 672, 32, 1, 22 }, + /* tcId: 23. shared secret has x-coordinate with repeating bit-pattern of size 30 */ + {1398, 65, 32, 32, 704, 32, 1, 23 }, + /* tcId: 24. shared secret has x-coordinate with repeating bit-pattern of size 30 */ + {1463, 65, 32, 32, 736, 32, 1, 24 }, + /* tcId: 25. shared secret has x-coordinate with repeating bit-pattern of size 32 */ + {1528, 65, 32, 32, 768, 32, 1, 25 }, + /* tcId: 26. shared secret has x-coordinate with repeating bit-pattern of size 32 */ + {1593, 65, 32, 32, 800, 32, 1, 26 }, + /* tcId: 27. shared secret has x-coordinate with repeating bit-pattern of size 51 */ + {1658, 65, 32, 32, 832, 32, 1, 27 }, + /* tcId: 28. shared secret has x-coordinate with repeating bit-pattern of size 51 */ + {1723, 65, 32, 32, 864, 32, 1, 28 }, + /* tcId: 29. shared secret has x-coordinate with repeating bit-pattern of size 52 */ + {1788, 65, 32, 32, 896, 32, 1, 29 }, + /* tcId: 30. shared secret has x-coordinate with repeating bit-pattern of size 52 */ + {1853, 65, 32, 32, 928, 32, 1, 30 }, + /* tcId: 31. shared secret has x-coordinate with repeating bit-pattern of size 60 */ + {1918, 65, 32, 32, 960, 32, 1, 31 }, + /* tcId: 32. shared secret has x-coordinate with repeating bit-pattern of size 60 */ + {1983, 65, 32, 32, 992, 32, 1, 32 }, + /* tcId: 33. shared secret has x-coordinate with repeating bit-pattern of size 62 */ + {2048, 65, 32, 32, 1024, 32, 1, 33 }, + /* tcId: 34. shared secret has x-coordinate with repeating bit-pattern of size 62 */ + {2113, 65, 32, 32, 1056, 32, 1, 34 }, + /* tcId: 35. shared secret has x-coordinate with repeating bit-pattern of size 64 */ + {2178, 65, 32, 32, 1088, 32, 1, 35 }, + /* tcId: 36. shared secret has x-coordinate with repeating bit-pattern of size 64 */ + {2243, 65, 32, 32, 1120, 32, 1, 36 }, + /* tcId: 37. shared secret has x-coordinate with repeating bit-pattern of size 112 */ + {2308, 65, 32, 32, 1152, 32, 1, 37 }, + /* tcId: 38. shared secret has x-coordinate with repeating bit-pattern of size 112 */ + {2373, 65, 32, 32, 1184, 32, 1, 38 }, + /* tcId: 39. shared secret has x-coordinate with repeating bit-pattern of size 128 */ + {2438, 65, 32, 32, 1216, 32, 1, 39 }, + /* tcId: 40. shared secret has x-coordinate with repeating bit-pattern of size 128 */ + {2503, 65, 32, 32, 1248, 32, 1, 40 }, + /* tcId: 41. shared secret has an x-coordinate of approx p//3 */ + {2568, 65, 32, 32, 1280, 32, 1, 41 }, + /* tcId: 42. shared secret has an x-coordinate of approx p//5 */ + {2633, 65, 32, 32, 1312, 32, 1, 42 }, + /* tcId: 43. shared secret has an x-coordinate of approx p//7 */ + {2698, 65, 32, 32, 1344, 32, 1, 43 }, + /* tcId: 44. shared secret has an x-coordinate of approx p//9 */ + {2763, 65, 32, 32, 1376, 32, 1, 44 }, + /* tcId: 45. y-coordinate of the public key has many trailing 1's */ + {2828, 65, 32, 32, 1408, 32, 1, 45 }, + /* tcId: 46. y-coordinate of the public key has many trailing 1's */ + {2893, 65, 64, 32, 1440, 32, 1, 46 }, + /* tcId: 47. y-coordinate of the public key is small */ + {2958, 65, 32, 32, 1472, 32, 1, 47 }, + /* tcId: 48. y-coordinate of the public key is small */ + {3023, 65, 32, 32, 1504, 32, 1, 48 }, + /* tcId: 49. y-coordinate of the public key is small */ + {3088, 65, 64, 32, 1536, 32, 1, 49 }, + /* tcId: 50. y-coordinate of the public key is small */ + {3153, 65, 64, 32, 1568, 32, 1, 50 }, + /* tcId: 51. y-coordinate of the public key is large */ + {3218, 65, 32, 32, 1600, 32, 1, 51 }, + /* tcId: 52. y-coordinate of the public key is large */ + {3283, 65, 32, 32, 1632, 32, 1, 52 }, + /* tcId: 53. y-coordinate of the public key is large */ + {3348, 65, 64, 32, 1664, 32, 1, 53 }, + /* tcId: 54. y-coordinate of the public key is large */ + {3413, 65, 64, 32, 1696, 32, 1, 54 }, + /* tcId: 55. y-coordinate of the public key has many trailing 0's */ + {3478, 65, 32, 32, 1728, 32, 1, 55 }, + /* tcId: 56. y-coordinate of the public key has many trailing 0's */ + {3543, 65, 64, 32, 1760, 32, 1, 56 }, + /* tcId: 57. ephemeral key has x-coordinate that satisfies x**2 + a = 1 */ + {3608, 65, 64, 32, 1792, 32, 1, 57 }, + /* tcId: 58. ephemeral key has x-coordinate that satisfies x**2 + a = 4 */ + {3673, 65, 64, 32, 1824, 32, 1, 58 }, + /* tcId: 59. ephemeral key has x-coordinate that satisfies x**2 + a = 9 */ + {3738, 65, 64, 32, 1856, 32, 1, 59 }, + /* tcId: 60. ephemeral key has x-coordinate p-3 */ + {3803, 65, 64, 32, 1888, 32, 1, 60 }, + /* tcId: 61. ephemeral key has x-coordinate 2**16 + 0 */ + {3868, 65, 64, 32, 1920, 32, 1, 61 }, + /* tcId: 62. ephemeral key has x-coordinate 2**32 + 7 */ + {3933, 65, 64, 32, 1952, 32, 1, 62 }, + /* tcId: 63. ephemeral key has x-coordinate 2**64 + 1 */ + {3998, 65, 64, 32, 1984, 32, 1, 63 }, + /* tcId: 64. ephemeral key has x-coordinate 2**96 + 1 */ + {4063, 65, 64, 32, 2016, 32, 1, 64 }, + /* tcId: 65. ephemeral key has x-coordinate that satisfies x**2 + a = -6 */ + {4128, 65, 64, 32, 2048, 32, 1, 65 }, + /* tcId: 66. ephemeral key has x-coordinate that satisfies x**2 + a = 2 */ + {4193, 65, 64, 32, 2080, 32, 1, 66 }, + /* tcId: 67. ephemeral key has x-coordinate that satisfies x**2 + a = 8 */ + {4258, 65, 64, 32, 2112, 32, 1, 67 }, + /* tcId: 68. ephemeral key has x-coordinate that satisfies x**2 = 2**96 + 2 */ + {4323, 65, 64, 32, 2144, 32, 1, 68 }, + /* tcId: 69. ephemeral key has x-coordinate with repeating bit-pattern of size 2 */ + {4388, 65, 64, 32, 2176, 32, 1, 69 }, + /* tcId: 70. ephemeral key has x-coordinate with repeating bit-pattern of size 2 */ + {4453, 65, 64, 32, 2208, 32, 1, 70 }, + /* tcId: 71. ephemeral key has x-coordinate with repeating bit-pattern of size 4 */ + {4518, 65, 64, 32, 2240, 32, 1, 71 }, + /* tcId: 72. ephemeral key has x-coordinate with repeating bit-pattern of size 4 */ + {4583, 65, 64, 32, 2272, 32, 1, 72 }, + /* tcId: 73. ephemeral key has x-coordinate with repeating bit-pattern of size 8 */ + {4648, 65, 64, 32, 2304, 32, 1, 73 }, + /* tcId: 74. ephemeral key has x-coordinate with repeating bit-pattern of size 8 */ + {4713, 65, 64, 32, 2336, 32, 1, 74 }, + /* tcId: 75. ephemeral key has x-coordinate with repeating bit-pattern of size 16 */ + {4778, 65, 64, 32, 2368, 32, 1, 75 }, + /* tcId: 76. ephemeral key has x-coordinate with repeating bit-pattern of size 16 */ + {4843, 65, 64, 32, 2400, 32, 1, 76 }, + /* tcId: 77. ephemeral key has x-coordinate with repeating bit-pattern of size 30 */ + {4908, 65, 64, 32, 2432, 32, 1, 77 }, + /* tcId: 78. ephemeral key has x-coordinate with repeating bit-pattern of size 30 */ + {4973, 65, 64, 32, 2464, 32, 1, 78 }, + /* tcId: 79. ephemeral key has x-coordinate with repeating bit-pattern of size 32 */ + {5038, 65, 64, 32, 2496, 32, 1, 79 }, + /* tcId: 80. ephemeral key has x-coordinate with repeating bit-pattern of size 32 */ + {5103, 65, 64, 32, 2528, 32, 1, 80 }, + /* tcId: 81. ephemeral key has x-coordinate with repeating bit-pattern of size 51 */ + {5168, 65, 64, 32, 2560, 32, 1, 81 }, + /* tcId: 82. ephemeral key has x-coordinate with repeating bit-pattern of size 51 */ + {5233, 65, 64, 32, 2592, 32, 1, 82 }, + /* tcId: 83. ephemeral key has x-coordinate with repeating bit-pattern of size 52 */ + {5298, 65, 64, 32, 2624, 32, 1, 83 }, + /* tcId: 84. ephemeral key has x-coordinate with repeating bit-pattern of size 52 */ + {5363, 65, 64, 32, 2656, 32, 1, 84 }, + /* tcId: 85. ephemeral key has x-coordinate with repeating bit-pattern of size 60 */ + {5428, 65, 64, 32, 2688, 32, 1, 85 }, + /* tcId: 86. ephemeral key has x-coordinate with repeating bit-pattern of size 60 */ + {5493, 65, 64, 32, 2720, 32, 1, 86 }, + /* tcId: 87. ephemeral key has x-coordinate with repeating bit-pattern of size 62 */ + {5558, 65, 64, 32, 2752, 32, 1, 87 }, + /* tcId: 88. ephemeral key has x-coordinate with repeating bit-pattern of size 62 */ + {5623, 65, 64, 32, 2784, 32, 1, 88 }, + /* tcId: 89. ephemeral key has x-coordinate with repeating bit-pattern of size 64 */ + {5688, 65, 64, 32, 2816, 32, 1, 89 }, + /* tcId: 90. ephemeral key has x-coordinate with repeating bit-pattern of size 64 */ + {5753, 65, 64, 32, 2848, 32, 1, 90 }, + /* tcId: 91. ephemeral key has x-coordinate with repeating bit-pattern of size 112 */ + {5818, 65, 64, 32, 2880, 32, 1, 91 }, + /* tcId: 92. ephemeral key has x-coordinate with repeating bit-pattern of size 112 */ + {5883, 65, 64, 32, 2912, 32, 1, 92 }, + /* tcId: 93. ephemeral key has x-coordinate with repeating bit-pattern of size 128 */ + {5948, 65, 64, 32, 2944, 32, 1, 93 }, + /* tcId: 94. ephemeral key has x-coordinate with repeating bit-pattern of size 128 */ + {6013, 65, 64, 32, 2976, 32, 1, 94 }, + /* tcId: 95. ephemeral key has an x-coordinate of approx p//3 */ + {6078, 65, 64, 32, 3008, 32, 1, 95 }, + /* tcId: 96. ephemeral key has an x-coordinate of approx p//5 */ + {6143, 65, 64, 32, 3040, 32, 1, 96 }, + /* tcId: 97. ephemeral key has an x-coordinate of approx p//7 */ + {6208, 65, 64, 32, 3072, 32, 1, 97 }, + /* tcId: 98. ephemeral key has an x-coordinate of approx p//9 */ + {6273, 65, 64, 32, 3104, 32, 1, 98 }, + /* tcId: 99. edge case for Jacobian and projective coordinates */ + {6338, 65, 96, 32, 3136, 32, 1, 99 }, + /* tcId: 100. edge case for Jacobian and projective coordinates */ + {6403, 65, 96, 32, 3168, 32, 1, 100 }, + /* tcId: 101. edge case for Jacobian and projective coordinates */ + {6468, 65, 96, 32, 3200, 32, 1, 101 }, + /* tcId: 102. edge case for Jacobian and projective coordinates */ + {6533, 65, 128, 32, 3232, 32, 1, 102 }, + /* tcId: 103. edge case for Jacobian and projective coordinates */ + {6598, 65, 128, 32, 3264, 32, 1, 103 }, + /* tcId: 104. edge case for Jacobian and projective coordinates */ + {6663, 65, 128, 32, 3296, 32, 1, 104 }, + /* tcId: 105. edge case for Jacobian and projective coordinates in left to right addition chain */ + {6728, 65, 96, 32, 3328, 32, 1, 105 }, + /* tcId: 106. edge case for Jacobian and projective coordinates in left to right addition chain */ + {6793, 65, 96, 32, 3360, 32, 1, 106 }, + /* tcId: 107. edge case for Jacobian and projective coordinates in left to right addition chain */ + {6858, 65, 96, 32, 3392, 32, 1, 107 }, + /* tcId: 108. edge case for Jacobian and projective coordinates in left to right addition chain */ + {6923, 65, 96, 32, 3424, 32, 1, 108 }, + /* tcId: 109. edge case for Jacobian and projective coordinates in left to right addition chain */ + {6988, 65, 96, 32, 3456, 32, 1, 109 }, + /* tcId: 110. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7053, 65, 96, 32, 3488, 32, 1, 110 }, + /* tcId: 111. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7118, 65, 96, 32, 3520, 32, 1, 111 }, + /* tcId: 112. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7183, 65, 96, 32, 3552, 32, 1, 112 }, + /* tcId: 113. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7248, 65, 96, 32, 3584, 32, 1, 113 }, + /* tcId: 114. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7313, 65, 96, 32, 3616, 32, 1, 114 }, + /* tcId: 115. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7378, 65, 96, 32, 3648, 32, 1, 115 }, + /* tcId: 116. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7443, 65, 96, 32, 3680, 32, 1, 116 }, + /* tcId: 117. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7508, 65, 96, 32, 3712, 32, 1, 117 }, + /* tcId: 118. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7573, 65, 96, 32, 3744, 32, 1, 118 }, + /* tcId: 119. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7638, 65, 96, 32, 3776, 32, 1, 119 }, + /* tcId: 120. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7703, 65, 96, 32, 3808, 32, 1, 120 }, + /* tcId: 121. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7768, 65, 128, 32, 3840, 32, 1, 121 }, + /* tcId: 122. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7833, 65, 128, 32, 3872, 32, 1, 122 }, + /* tcId: 123. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7898, 65, 128, 32, 3904, 32, 1, 123 }, + /* tcId: 124. edge case for Jacobian and projective coordinates in left to right addition chain */ + {7963, 65, 128, 32, 3936, 32, 1, 124 }, + /* tcId: 125. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8028, 65, 128, 32, 3968, 32, 1, 125 }, + /* tcId: 126. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8093, 65, 128, 32, 4000, 32, 1, 126 }, + /* tcId: 127. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8158, 65, 128, 32, 4032, 32, 1, 127 }, + /* tcId: 128. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8223, 65, 128, 32, 4064, 32, 1, 128 }, + /* tcId: 129. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8288, 65, 128, 32, 4096, 32, 1, 129 }, + /* tcId: 130. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8353, 65, 128, 32, 4128, 32, 1, 130 }, + /* tcId: 131. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8418, 65, 128, 32, 4160, 32, 1, 131 }, + /* tcId: 132. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8483, 65, 128, 32, 4192, 32, 1, 132 }, + /* tcId: 133. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8548, 65, 128, 32, 4224, 32, 1, 133 }, + /* tcId: 134. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8613, 65, 128, 32, 4256, 32, 1, 134 }, + /* tcId: 135. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8678, 65, 128, 32, 4288, 32, 1, 135 }, + /* tcId: 136. edge case for Jacobian and projective coordinates in left to right addition chain */ + {8743, 65, 128, 32, 4320, 32, 1, 136 }, + /* tcId: 137. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {8808, 65, 128, 32, 4352, 32, 1, 137 }, + /* tcId: 138. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {8873, 65, 128, 32, 4384, 32, 1, 138 }, + /* tcId: 139. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {8938, 65, 128, 32, 4416, 32, 1, 139 }, + /* tcId: 140. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9003, 65, 128, 32, 4448, 32, 1, 140 }, + /* tcId: 141. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9068, 65, 128, 32, 4480, 32, 1, 141 }, + /* tcId: 142. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9133, 65, 128, 32, 4512, 32, 1, 142 }, + /* tcId: 143. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9198, 65, 128, 32, 4544, 32, 1, 143 }, + /* tcId: 144. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9263, 65, 128, 32, 4576, 32, 1, 144 }, + /* tcId: 145. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9328, 65, 128, 32, 4608, 32, 1, 145 }, + /* tcId: 146. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9393, 65, 128, 32, 4640, 32, 1, 146 }, + /* tcId: 147. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9458, 65, 128, 32, 4672, 32, 1, 147 }, + /* tcId: 148. edge case for Jacobian and projective coordinates in precomputation or right to left addition chain */ + {9523, 65, 128, 32, 4704, 32, 1, 148 }, + /* tcId: 149. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9588, 65, 128, 32, 4736, 32, 1, 149 }, + /* tcId: 150. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9653, 65, 128, 32, 4768, 32, 1, 150 }, + /* tcId: 151. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9718, 65, 128, 32, 4800, 32, 1, 151 }, + /* tcId: 152. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9783, 65, 128, 32, 4832, 32, 1, 152 }, + /* tcId: 153. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9848, 65, 128, 32, 4864, 32, 1, 153 }, + /* tcId: 154. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9913, 65, 128, 32, 4896, 32, 1, 154 }, + /* tcId: 155. edge case for Jacobian and projective coordinates in right to left addition chain */ + {9978, 65, 128, 32, 4928, 32, 1, 155 }, + /* tcId: 156. edge case for Jacobian and projective coordinates in right to left addition chain */ + {10043, 65, 128, 32, 4960, 32, 1, 156 }, + /* tcId: 157. edge case for Jacobian and projective coordinates in right to left addition chain */ + {10108, 65, 128, 32, 4992, 32, 1, 157 }, + /* tcId: 158. edge case for Jacobian and projective coordinates in right to left addition chain */ + {10173, 65, 128, 32, 5024, 32, 1, 158 }, + /* tcId: 159. edge case for computation of x with projective coordinates */ + {10238, 65, 128, 32, 5056, 32, 1, 159 }, + /* tcId: 160. edge case for computation of x with projective coordinates */ + {10303, 65, 128, 32, 5088, 32, 1, 160 }, + /* tcId: 161. edge case for computation of x with projective coordinates */ + {10368, 65, 128, 32, 5120, 32, 1, 161 }, + /* tcId: 162. edge case for computation of x with projective coordinates */ + {10433, 65, 128, 32, 5152, 32, 1, 162 }, + /* tcId: 163. edge case for computation of x with projective coordinates */ + {10498, 65, 128, 32, 5184, 32, 1, 163 }, + /* tcId: 164. edge case for computation of x with projective coordinates */ + {10563, 65, 128, 32, 5216, 32, 1, 164 }, + /* tcId: 165. edge case for computation of x with projective coordinates */ + {10628, 65, 128, 32, 5248, 32, 1, 165 }, + /* tcId: 166. edge case for computation of x with projective coordinates */ + {10693, 65, 128, 32, 5280, 32, 1, 166 }, + /* tcId: 167. edge case for computation of x with projective coordinates */ + {10758, 65, 128, 32, 5312, 32, 1, 167 }, + /* tcId: 168. edge case for computation of x with projective coordinates in left to right addition chain */ + {10823, 65, 128, 32, 5344, 32, 1, 168 }, + /* tcId: 169. edge case for computation of x with projective coordinates in left to right addition chain */ + {10888, 65, 128, 32, 5376, 32, 1, 169 }, + /* tcId: 170. edge case for computation of x with projective coordinates in left to right addition chain */ + {10953, 65, 128, 32, 5408, 32, 1, 170 }, + /* tcId: 171. edge case for computation of x with projective coordinates in left to right addition chain */ + {11018, 65, 128, 32, 5440, 32, 1, 171 }, + /* tcId: 172. edge case for computation of x with projective coordinates in left to right addition chain */ + {11083, 65, 128, 32, 5472, 32, 1, 172 }, + /* tcId: 173. edge case for computation of x with projective coordinates in left to right addition chain */ + {11148, 65, 128, 32, 5504, 32, 1, 173 }, + /* tcId: 174. edge case for computation of x with projective coordinates in left to right addition chain */ + {11213, 65, 128, 32, 5536, 32, 1, 174 }, + /* tcId: 175. edge case for computation of x with projective coordinates in left to right addition chain */ + {11278, 65, 128, 32, 5568, 32, 1, 175 }, + /* tcId: 176. edge case for computation of x with projective coordinates in left to right addition chain */ + {11343, 65, 128, 32, 5600, 32, 1, 176 }, + /* tcId: 177. edge case for computation of x with projective coordinates in left to right addition chain */ + {11408, 65, 128, 32, 5632, 32, 1, 177 }, + /* tcId: 178. edge case for computation of x with projective coordinates in left to right addition chain */ + {11473, 65, 128, 32, 5664, 32, 1, 178 }, + /* tcId: 179. edge case for computation of x with projective coordinates in left to right addition chain */ + {11538, 65, 128, 32, 5696, 32, 1, 179 }, + /* tcId: 180. edge case for computation of x with projective coordinates in left to right addition chain */ + {11603, 65, 128, 32, 5728, 32, 1, 180 }, + /* tcId: 181. edge case for computation of x with projective coordinates in left to right addition chain */ + {11668, 65, 128, 32, 5760, 32, 1, 181 }, + /* tcId: 182. edge case for computation of x with projective coordinates in left to right addition chain */ + {11733, 65, 128, 32, 5792, 32, 1, 182 }, + /* tcId: 183. edge case for computation of x with projective coordinates in left to right addition chain */ + {11798, 65, 128, 32, 5824, 32, 1, 183 }, + /* tcId: 184. edge case for computation of x with projective coordinates in left to right addition chain */ + {11863, 65, 128, 32, 5856, 32, 1, 184 }, + /* tcId: 185. edge case for computation of x with projective coordinates in left to right addition chain */ + {11928, 65, 128, 32, 5888, 32, 1, 185 }, + /* tcId: 186. edge case for computation of x with projective coordinates in left to right addition chain */ + {11993, 65, 128, 32, 5920, 32, 1, 186 }, + /* tcId: 187. edge case for computation of x with projective coordinates in left to right addition chain */ + {12058, 65, 128, 32, 5952, 32, 1, 187 }, + /* tcId: 188. edge case for computation of x with projective coordinates in left to right addition chain */ + {12123, 65, 128, 32, 5984, 32, 1, 188 }, + /* tcId: 189. edge case for computation of x with projective coordinates in left to right addition chain */ + {12188, 65, 128, 32, 6016, 32, 1, 189 }, + /* tcId: 190. edge case for computation of x with projective coordinates in left to right addition chain */ + {12253, 65, 128, 32, 6048, 32, 1, 190 }, + /* tcId: 191. edge case for computation of x with projective coordinates in left to right addition chain */ + {12318, 65, 128, 32, 6080, 32, 1, 191 }, + /* tcId: 192. edge case for computation of x with projective coordinates in left to right addition chain */ + {12383, 65, 128, 32, 6112, 32, 1, 192 }, + /* tcId: 193. edge case for computation of x with projective coordinates in left to right addition chain */ + {12448, 65, 128, 32, 6144, 32, 1, 193 }, + /* tcId: 194. edge case for computation of x with projective coordinates in left to right addition chain */ + {12513, 65, 128, 32, 6176, 32, 1, 194 }, + /* tcId: 195. edge case for computation of x with projective coordinates in left to right addition chain */ + {12578, 65, 128, 32, 6208, 32, 1, 195 }, + /* tcId: 196. edge case for computation of x with projective coordinates in left to right addition chain */ + {12643, 65, 128, 32, 6240, 32, 1, 196 }, + /* tcId: 197. edge case for computation of x with projective coordinates in left to right addition chain */ + {12708, 65, 128, 32, 6272, 32, 1, 197 }, + /* tcId: 198. edge case for computation of x with projective coordinates in left to right addition chain */ + {12773, 65, 128, 32, 6304, 32, 1, 198 }, + /* tcId: 199. edge case for computation of x with projective coordinates in left to right addition chain */ + {12838, 65, 128, 32, 6336, 32, 1, 199 }, + /* tcId: 200. edge case for computation of x with projective coordinates in left to right addition chain */ + {12903, 65, 128, 32, 6368, 32, 1, 200 }, + /* tcId: 201. edge case for computation of x with projective coordinates in left to right addition chain */ + {12968, 65, 128, 32, 6400, 32, 1, 201 }, + /* tcId: 202. edge case for computation of x with projective coordinates in left to right addition chain */ + {13033, 65, 128, 32, 6432, 32, 1, 202 }, + /* tcId: 203. edge case for computation of x with projective coordinates in left to right addition chain */ + {13098, 65, 128, 32, 6464, 32, 1, 203 }, + /* tcId: 204. edge case for computation of x with projective coordinates in left to right addition chain */ + {13163, 65, 128, 32, 6496, 32, 1, 204 }, + /* tcId: 205. edge case for computation of x with projective coordinates in left to right addition chain */ + {13228, 65, 128, 32, 6528, 32, 1, 205 }, + /* tcId: 206. edge case for computation of x with projective coordinates in left to right addition chain */ + {13293, 65, 128, 32, 6560, 32, 1, 206 }, + /* tcId: 207. edge case for computation of x with projective coordinates in left to right addition chain */ + {13358, 65, 128, 32, 6592, 32, 1, 207 }, + /* tcId: 208. edge case for computation of x with projective coordinates in left to right addition chain */ + {13423, 65, 128, 32, 6624, 32, 1, 208 }, + /* tcId: 209. edge case for computation of x with projective coordinates in left to right addition chain */ + {13488, 65, 128, 32, 6656, 32, 1, 209 }, + /* tcId: 210. edge case for computation of x with projective coordinates in left to right addition chain */ + {13553, 65, 128, 32, 6688, 32, 1, 210 }, + /* tcId: 211. edge case for computation of x with projective coordinates in left to right addition chain */ + {13618, 65, 128, 32, 6720, 32, 1, 211 }, + /* tcId: 212. edge case for computation of x with projective coordinates in left to right addition chain */ + {13683, 65, 128, 32, 6752, 32, 1, 212 }, + /* tcId: 213. edge case for computation of x with projective coordinates in left to right addition chain */ + {13748, 65, 128, 32, 6784, 32, 1, 213 }, + /* tcId: 214. edge case for computation of x with projective coordinates in left to right addition chain */ + {13813, 65, 128, 32, 6816, 32, 1, 214 }, + /* tcId: 215. edge case for computation of x with projective coordinates in left to right addition chain */ + {13878, 65, 128, 32, 6848, 32, 1, 215 }, + /* tcId: 216. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {13943, 65, 128, 32, 6880, 32, 1, 216 }, + /* tcId: 217. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14008, 65, 128, 32, 6912, 32, 1, 217 }, + /* tcId: 218. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14073, 65, 128, 32, 6944, 32, 1, 218 }, + /* tcId: 219. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14138, 65, 128, 32, 6976, 32, 1, 219 }, + /* tcId: 220. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14203, 65, 128, 32, 7008, 32, 1, 220 }, + /* tcId: 221. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14268, 65, 128, 32, 7040, 32, 1, 221 }, + /* tcId: 222. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14333, 65, 128, 32, 7072, 32, 1, 222 }, + /* tcId: 223. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14398, 65, 128, 32, 7104, 32, 1, 223 }, + /* tcId: 224. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14463, 65, 128, 32, 7136, 32, 1, 224 }, + /* tcId: 225. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14528, 65, 128, 32, 7168, 32, 1, 225 }, + /* tcId: 226. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14593, 65, 128, 32, 7200, 32, 1, 226 }, + /* tcId: 227. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14658, 65, 128, 32, 7232, 32, 1, 227 }, + /* tcId: 228. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14723, 65, 128, 32, 7264, 32, 1, 228 }, + /* tcId: 229. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14788, 65, 128, 32, 7296, 32, 1, 229 }, + /* tcId: 230. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14853, 65, 128, 32, 7328, 32, 1, 230 }, + /* tcId: 231. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14918, 65, 128, 32, 7360, 32, 1, 231 }, + /* tcId: 232. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {14983, 65, 128, 32, 7392, 32, 1, 232 }, + /* tcId: 233. edge case for computation of x with projective coordinates in precomputation or right to left addition chain */ + {15048, 65, 128, 32, 7424, 32, 1, 233 }, + /* tcId: 234. edge case for computation of x with projective coordinates in right to left addition chain */ + {15113, 65, 128, 32, 7456, 32, 1, 234 }, + /* tcId: 235. edge case for computation of x with projective coordinates in right to left addition chain */ + {15178, 65, 128, 32, 7488, 32, 1, 235 }, + /* tcId: 236. edge case for computation of x with projective coordinates in right to left addition chain */ + {15243, 65, 128, 32, 7520, 32, 1, 236 }, + /* tcId: 237. edge case for computation of x with projective coordinates in right to left addition chain */ + {15308, 65, 128, 32, 7552, 32, 1, 237 }, + /* tcId: 238. edge case for computation of x with projective coordinates in right to left addition chain */ + {15373, 65, 128, 32, 7584, 32, 1, 238 }, + /* tcId: 239. edge case for computation of x with projective coordinates in right to left addition chain */ + {15438, 65, 128, 32, 7616, 32, 1, 239 }, + /* tcId: 240. edge case for computation of x with projective coordinates in right to left addition chain */ + {15503, 65, 128, 32, 7648, 32, 1, 240 }, + /* tcId: 241. edge case for computation of x with projective coordinates in right to left addition chain */ + {15568, 65, 128, 32, 7680, 32, 1, 241 }, + /* tcId: 242. edge case for computation of x with projective coordinates in right to left addition chain */ + {15633, 65, 128, 32, 7712, 32, 1, 242 }, + /* tcId: 243. edge case for computation of x with projective coordinates in right to left addition chain */ + {15698, 65, 128, 32, 7744, 32, 1, 243 }, + /* tcId: 244. edge case for computation of x with projective coordinates in right to left addition chain */ + {15763, 65, 128, 32, 7776, 32, 1, 244 }, + /* tcId: 245. edge case for computation of x with projective coordinates in right to left addition chain */ + {15828, 65, 128, 32, 7808, 32, 1, 245 }, + /* tcId: 246. edge case for computation of x with projective coordinates in right to left addition chain */ + {15893, 65, 128, 32, 7840, 32, 1, 246 }, + /* tcId: 247. edge case for computation of x with projective coordinates in right to left addition chain */ + {15958, 65, 128, 32, 7872, 32, 1, 247 }, + /* tcId: 248. edge case for computation of x with projective coordinates in right to left addition chain */ + {16023, 65, 128, 32, 7904, 32, 1, 248 }, + /* tcId: 249. edge case for computation of y with projective coordinates */ + {16088, 65, 128, 32, 7936, 32, 1, 249 }, + /* tcId: 250. edge case for computation of y with projective coordinates */ + {16153, 65, 128, 32, 7968, 32, 1, 250 }, + /* tcId: 251. edge case for computation of y with projective coordinates */ + {16218, 65, 128, 32, 8000, 32, 1, 251 }, + /* tcId: 252. edge case for computation of y with projective coordinates in left to right addition chain */ + {16283, 65, 128, 32, 8032, 32, 1, 252 }, + /* tcId: 253. edge case for computation of y with projective coordinates in left to right addition chain */ + {16348, 65, 128, 32, 8064, 32, 1, 253 }, + /* tcId: 254. edge case for computation of y with projective coordinates in left to right addition chain */ + {16413, 65, 128, 32, 8096, 32, 1, 254 }, + /* tcId: 255. edge case for computation of y with projective coordinates in left to right addition chain */ + {16478, 65, 128, 32, 8128, 32, 1, 255 }, + /* tcId: 256. edge case for computation of y with projective coordinates in left to right addition chain */ + {16543, 65, 128, 32, 8160, 32, 1, 256 }, + /* tcId: 257. edge case for computation of y with projective coordinates in left to right addition chain */ + {16608, 65, 128, 32, 8192, 32, 1, 257 }, + /* tcId: 258. edge case for computation of y with projective coordinates in left to right addition chain */ + {16673, 65, 128, 32, 8224, 32, 1, 258 }, + /* tcId: 259. edge case for computation of y with projective coordinates in left to right addition chain */ + {16738, 65, 128, 32, 8256, 32, 1, 259 }, + /* tcId: 260. edge case for computation of y with projective coordinates in left to right addition chain */ + {16803, 65, 128, 32, 8288, 32, 1, 260 }, + /* tcId: 261. edge case for computation of y with projective coordinates in left to right addition chain */ + {16868, 65, 128, 32, 8320, 32, 1, 261 }, + /* tcId: 262. edge case for computation of y with projective coordinates in left to right addition chain */ + {16933, 65, 128, 32, 8352, 32, 1, 262 }, + /* tcId: 263. edge case for computation of y with projective coordinates in left to right addition chain */ + {16998, 65, 128, 32, 8384, 32, 1, 263 }, + /* tcId: 264. edge case for computation of y with projective coordinates in left to right addition chain */ + {17063, 65, 128, 32, 8416, 32, 1, 264 }, + /* tcId: 265. edge case for computation of y with projective coordinates in left to right addition chain */ + {17128, 65, 128, 32, 8448, 32, 1, 265 }, + /* tcId: 266. edge case for computation of y with projective coordinates in left to right addition chain */ + {17193, 65, 128, 32, 8480, 32, 1, 266 }, + /* tcId: 267. edge case for computation of y with projective coordinates in left to right addition chain */ + {17258, 65, 128, 32, 8512, 32, 1, 267 }, + /* tcId: 268. edge case for computation of y with projective coordinates in precomputation or right to left addition chain */ + {17323, 65, 128, 32, 8544, 32, 1, 268 }, + /* tcId: 269. edge case for computation of y with projective coordinates in precomputation or right to left addition chain */ + {17388, 65, 128, 32, 8576, 32, 1, 269 }, + /* tcId: 270. edge case for computation of y with projective coordinates in precomputation or right to left addition chain */ + {17453, 65, 128, 32, 8608, 32, 1, 270 }, + /* tcId: 271. edge case for computation of y with projective coordinates in precomputation or right to left addition chain */ + {17518, 65, 128, 32, 8640, 32, 1, 271 }, + /* tcId: 272. edge case for computation of y with projective coordinates in precomputation or right to left addition chain */ + {17583, 65, 128, 32, 8672, 32, 1, 272 }, + /* tcId: 273. edge case for computation of y with projective coordinates in precomputation or right to left addition chain */ + {17648, 65, 128, 32, 8704, 32, 1, 273 }, + /* tcId: 274. edge case for computation of y with projective coordinates in right to left addition chain */ + {17713, 65, 128, 32, 8736, 32, 1, 274 }, + /* tcId: 275. edge case for computation of y with projective coordinates in right to left addition chain */ + {17778, 65, 128, 32, 8768, 32, 1, 275 }, + /* tcId: 276. edge case for computation of y with projective coordinates in right to left addition chain */ + {17843, 65, 128, 32, 8800, 32, 1, 276 }, + /* tcId: 277. edge case for computation of y with projective coordinates in right to left addition chain */ + {17908, 65, 128, 32, 8832, 32, 1, 277 }, + /* tcId: 278. edge case for computation of y with projective coordinates in right to left addition chain */ + {17973, 65, 128, 32, 8864, 32, 1, 278 }, + /* tcId: 279. point with coordinate x = 1 */ + {3608, 65, 128, 32, 8896, 32, 1, 279 }, + /* tcId: 280. point with coordinate x = 1 */ + {18038, 65, 128, 32, 8928, 32, 1, 280 }, + /* tcId: 281. point with coordinate x = 1 */ + {18103, 65, 128, 32, 8960, 32, 1, 281 }, + /* tcId: 282. point with coordinate x = 1 in left to right addition chain */ + {18168, 65, 128, 32, 8992, 32, 1, 282 }, + /* tcId: 283. point with coordinate x = 1 in left to right addition chain */ + {18233, 65, 128, 32, 9024, 32, 1, 283 }, + /* tcId: 284. point with coordinate x = 1 in left to right addition chain */ + {18298, 65, 128, 32, 9056, 32, 1, 284 }, + /* tcId: 285. point with coordinate x = 1 in left to right addition chain */ + {18363, 65, 128, 32, 9088, 32, 1, 285 }, + /* tcId: 286. point with coordinate x = 1 in left to right addition chain */ + {18428, 65, 128, 32, 9120, 32, 1, 286 }, + /* tcId: 287. point with coordinate x = 1 in left to right addition chain */ + {18493, 65, 128, 32, 9152, 32, 1, 287 }, + /* tcId: 288. point with coordinate x = 1 in left to right addition chain */ + {18558, 65, 128, 32, 9184, 32, 1, 288 }, + /* tcId: 289. point with coordinate x = 1 in left to right addition chain */ + {18623, 65, 128, 32, 9216, 32, 1, 289 }, + /* tcId: 290. point with coordinate x = 1 in left to right addition chain */ + {18688, 65, 128, 32, 9248, 32, 1, 290 }, + /* tcId: 291. point with coordinate x = 1 in left to right addition chain */ + {18753, 65, 128, 32, 9280, 32, 1, 291 }, + /* tcId: 292. point with coordinate x = 1 in left to right addition chain */ + {18818, 65, 128, 32, 9312, 32, 1, 292 }, + /* tcId: 293. point with coordinate x = 1 in left to right addition chain */ + {18883, 65, 128, 32, 9344, 32, 1, 293 }, + /* tcId: 294. point with coordinate x = 1 in left to right addition chain */ + {18948, 65, 128, 32, 9376, 32, 1, 294 }, + /* tcId: 295. point with coordinate x = 1 in left to right addition chain */ + {19013, 65, 128, 32, 9408, 32, 1, 295 }, + /* tcId: 296. point with coordinate x = 1 in left to right addition chain */ + {19078, 65, 128, 32, 9440, 32, 1, 296 }, + /* tcId: 297. point with coordinate x = 1 in left to right addition chain */ + {19143, 65, 128, 32, 9472, 32, 1, 297 }, + /* tcId: 298. point with coordinate x = 1 in precomputation or right to left addition chain */ + {19208, 65, 128, 32, 9504, 32, 1, 298 }, + /* tcId: 299. point with coordinate x = 1 in precomputation or right to left addition chain */ + {19273, 65, 128, 32, 9536, 32, 1, 299 }, + /* tcId: 300. point with coordinate x = 1 in precomputation or right to left addition chain */ + {19338, 65, 128, 32, 9568, 32, 1, 300 }, + /* tcId: 301. point with coordinate x = 1 in precomputation or right to left addition chain */ + {19403, 65, 128, 32, 9600, 32, 1, 301 }, + /* tcId: 302. point with coordinate x = 1 in precomputation or right to left addition chain */ + {19468, 65, 128, 32, 9632, 32, 1, 302 }, + /* tcId: 303. point with coordinate x = 1 in precomputation or right to left addition chain */ + {19533, 65, 128, 32, 9664, 32, 1, 303 }, + /* tcId: 304. point with coordinate x = 1 in right to left addition chain */ + {19598, 65, 128, 32, 9696, 32, 1, 304 }, + /* tcId: 305. point with coordinate x = 1 in right to left addition chain */ + {19663, 65, 128, 32, 9728, 32, 1, 305 }, + /* tcId: 306. point with coordinate x = 1 in right to left addition chain */ + {19728, 65, 128, 32, 9760, 32, 1, 306 }, + /* tcId: 307. point with coordinate x = 1 in right to left addition chain */ + {19793, 65, 128, 32, 9792, 32, 1, 307 }, + /* tcId: 308. point with coordinate x = 1 in right to left addition chain */ + {19858, 65, 128, 32, 9824, 32, 1, 308 }, + /* tcId: 309. point with coordinate x = 2 */ + {3673, 65, 128, 32, 9856, 32, 1, 309 }, + /* tcId: 310. point with coordinate x = 2 */ + {19923, 65, 128, 32, 9888, 32, 1, 310 }, + /* tcId: 311. point with coordinate x = 2 */ + {19988, 65, 128, 32, 9920, 32, 1, 311 }, + /* tcId: 312. point with coordinate x = 2 in left to right addition chain */ + {20053, 65, 128, 32, 9952, 32, 1, 312 }, + /* tcId: 313. point with coordinate x = 2 in left to right addition chain */ + {20118, 65, 128, 32, 9984, 32, 1, 313 }, + /* tcId: 314. point with coordinate x = 2 in left to right addition chain */ + {20183, 65, 128, 32, 10016, 32, 1, 314 }, + /* tcId: 315. point with coordinate x = 2 in left to right addition chain */ + {20248, 65, 128, 32, 10048, 32, 1, 315 }, + /* tcId: 316. point with coordinate x = 2 in left to right addition chain */ + {20313, 65, 128, 32, 10080, 32, 1, 316 }, + /* tcId: 317. point with coordinate x = 2 in left to right addition chain */ + {20378, 65, 128, 32, 10112, 32, 1, 317 }, + /* tcId: 318. point with coordinate x = 2 in left to right addition chain */ + {20443, 65, 128, 32, 10144, 32, 1, 318 }, + /* tcId: 319. point with coordinate x = 2 in left to right addition chain */ + {20508, 65, 128, 32, 10176, 32, 1, 319 }, + /* tcId: 320. point with coordinate x = 2 in left to right addition chain */ + {20573, 65, 128, 32, 10208, 32, 1, 320 }, + /* tcId: 321. point with coordinate x = 2 in left to right addition chain */ + {20638, 65, 128, 32, 10240, 32, 1, 321 }, + /* tcId: 322. point with coordinate x = 2 in left to right addition chain */ + {20703, 65, 128, 32, 10272, 32, 1, 322 }, + /* tcId: 323. point with coordinate x = 2 in left to right addition chain */ + {20768, 65, 128, 32, 10304, 32, 1, 323 }, + /* tcId: 324. point with coordinate x = 2 in left to right addition chain */ + {20833, 65, 128, 32, 10336, 32, 1, 324 }, + /* tcId: 325. point with coordinate x = 2 in left to right addition chain */ + {20898, 65, 128, 32, 10368, 32, 1, 325 }, + /* tcId: 326. point with coordinate x = 2 in left to right addition chain */ + {20963, 65, 128, 32, 10400, 32, 1, 326 }, + /* tcId: 327. point with coordinate x = 2 in left to right addition chain */ + {21028, 65, 128, 32, 10432, 32, 1, 327 }, + /* tcId: 328. point with coordinate x = 2 in precomputation or right to left addition chain */ + {21093, 65, 128, 32, 10464, 32, 1, 328 }, + /* tcId: 329. point with coordinate x = 2 in precomputation or right to left addition chain */ + {21158, 65, 128, 32, 10496, 32, 1, 329 }, + /* tcId: 330. point with coordinate x = 2 in precomputation or right to left addition chain */ + {21223, 65, 128, 32, 10528, 32, 1, 330 }, + /* tcId: 331. point with coordinate x = 2 in precomputation or right to left addition chain */ + {21288, 65, 128, 32, 10560, 32, 1, 331 }, + /* tcId: 332. point with coordinate x = 2 in precomputation or right to left addition chain */ + {21353, 65, 128, 32, 10592, 32, 1, 332 }, + /* tcId: 333. point with coordinate x = 2 in precomputation or right to left addition chain */ + {21418, 65, 128, 32, 10624, 32, 1, 333 }, + /* tcId: 334. point with coordinate x = 2 in right to left addition chain */ + {21483, 65, 128, 32, 10656, 32, 1, 334 }, + /* tcId: 335. point with coordinate x = 2 in right to left addition chain */ + {21548, 65, 128, 32, 10688, 32, 1, 335 }, + /* tcId: 336. point with coordinate x = 2 in right to left addition chain */ + {21613, 65, 128, 32, 10720, 32, 1, 336 }, + /* tcId: 337. point with coordinate x = 2 in right to left addition chain */ + {21678, 65, 128, 32, 10752, 32, 1, 337 }, + /* tcId: 338. point with coordinate x = 2 in right to left addition chain */ + {21743, 65, 128, 32, 10784, 32, 1, 338 }, + /* tcId: 339. point with coordinate x = 3 */ + {3738, 65, 128, 32, 10816, 32, 1, 339 }, + /* tcId: 340. point with coordinate x = 3 */ + {21808, 65, 128, 32, 10848, 32, 1, 340 }, + /* tcId: 341. point with coordinate x = 3 */ + {21873, 65, 128, 32, 10880, 32, 1, 341 }, + /* tcId: 342. point with coordinate x = 3 in left to right addition chain */ + {21938, 65, 128, 32, 10912, 32, 1, 342 }, + /* tcId: 343. point with coordinate x = 3 in left to right addition chain */ + {22003, 65, 128, 32, 10944, 32, 1, 343 }, + /* tcId: 344. point with coordinate x = 3 in left to right addition chain */ + {22068, 65, 128, 32, 10976, 32, 1, 344 }, + /* tcId: 345. point with coordinate x = 3 in left to right addition chain */ + {22133, 65, 128, 32, 11008, 32, 1, 345 }, + /* tcId: 346. point with coordinate x = 3 in left to right addition chain */ + {22198, 65, 128, 32, 11040, 32, 1, 346 }, + /* tcId: 347. point with coordinate x = 3 in left to right addition chain */ + {22263, 65, 128, 32, 11072, 32, 1, 347 }, + /* tcId: 348. point with coordinate x = 3 in left to right addition chain */ + {22328, 65, 128, 32, 11104, 32, 1, 348 }, + /* tcId: 349. point with coordinate x = 3 in left to right addition chain */ + {22393, 65, 128, 32, 11136, 32, 1, 349 }, + /* tcId: 350. point with coordinate x = 3 in left to right addition chain */ + {22458, 65, 128, 32, 11168, 32, 1, 350 }, + /* tcId: 351. point with coordinate x = 3 in left to right addition chain */ + {22523, 65, 128, 32, 11200, 32, 1, 351 }, + /* tcId: 352. point with coordinate x = 3 in left to right addition chain */ + {22588, 65, 128, 32, 11232, 32, 1, 352 }, + /* tcId: 353. point with coordinate x = 3 in left to right addition chain */ + {22653, 65, 128, 32, 11264, 32, 1, 353 }, + /* tcId: 354. point with coordinate x = 3 in left to right addition chain */ + {22718, 65, 128, 32, 11296, 32, 1, 354 }, + /* tcId: 355. point with coordinate x = 3 in left to right addition chain */ + {22783, 65, 128, 32, 11328, 32, 1, 355 }, + /* tcId: 356. point with coordinate x = 3 in left to right addition chain */ + {22848, 65, 128, 32, 11360, 32, 1, 356 }, + /* tcId: 357. point with coordinate x = 3 in left to right addition chain */ + {22913, 65, 128, 32, 11392, 32, 1, 357 }, + /* tcId: 358. point with coordinate x = 3 in precomputation or right to left addition chain */ + {22978, 65, 128, 32, 11424, 32, 1, 358 }, + /* tcId: 359. point with coordinate x = 3 in precomputation or right to left addition chain */ + {23043, 65, 128, 32, 11456, 32, 1, 359 }, + /* tcId: 360. point with coordinate x = 3 in precomputation or right to left addition chain */ + {23108, 65, 128, 32, 11488, 32, 1, 360 }, + /* tcId: 361. point with coordinate x = 3 in precomputation or right to left addition chain */ + {23173, 65, 128, 32, 11520, 32, 1, 361 }, + /* tcId: 362. point with coordinate x = 3 in precomputation or right to left addition chain */ + {23238, 65, 128, 32, 11552, 32, 1, 362 }, + /* tcId: 363. point with coordinate x = 3 in precomputation or right to left addition chain */ + {23303, 65, 128, 32, 11584, 32, 1, 363 }, + /* tcId: 364. point with coordinate x = 3 in right to left addition chain */ + {23368, 65, 128, 32, 11616, 32, 1, 364 }, + /* tcId: 365. point with coordinate x = 3 in right to left addition chain */ + {23433, 65, 128, 32, 11648, 32, 1, 365 }, + /* tcId: 366. point with coordinate x = 3 in right to left addition chain */ + {23498, 65, 128, 32, 11680, 32, 1, 366 }, + /* tcId: 367. point with coordinate x = 3 in right to left addition chain */ + {23563, 65, 128, 32, 11712, 32, 1, 367 }, + /* tcId: 368. point with coordinate x = 3 in right to left addition chain */ + {23628, 65, 128, 32, 11744, 32, 1, 368 }, + /* tcId: 369. point with coordinate y = 1 */ + {23693, 65, 128, 32, 11776, 32, 1, 369 }, + /* tcId: 370. point with coordinate y = 1 */ + {23758, 65, 128, 32, 11808, 32, 1, 370 }, + /* tcId: 371. point with coordinate y = 1 */ + {23823, 65, 128, 32, 11840, 32, 1, 371 }, + /* tcId: 372. point with coordinate y = 1 */ + {23888, 65, 128, 32, 11872, 32, 1, 372 }, + /* tcId: 373. point with coordinate y = 1 */ + {23953, 65, 128, 32, 11904, 32, 1, 373 }, + /* tcId: 374. point with coordinate y = 1 */ + {24018, 65, 128, 32, 11936, 32, 1, 374 }, + /* tcId: 375. point with coordinate y = 1 */ + {24083, 65, 128, 32, 11968, 32, 1, 375 }, + /* tcId: 376. point with coordinate y = 1 */ + {24148, 65, 128, 32, 12000, 32, 1, 376 }, + /* tcId: 377. point with coordinate y = 1 */ + {24213, 65, 128, 32, 12032, 32, 1, 377 }, + /* tcId: 378. point with coordinate y = 1 in left to right addition chain */ + {24278, 65, 128, 32, 12064, 32, 1, 378 }, + /* tcId: 379. point with coordinate y = 1 in left to right addition chain */ + {24343, 65, 128, 32, 12096, 32, 1, 379 }, + /* tcId: 380. point with coordinate y = 1 in left to right addition chain */ + {24408, 65, 128, 32, 12128, 32, 1, 380 }, + /* tcId: 381. point with coordinate y = 1 in left to right addition chain */ + {24473, 65, 128, 32, 12160, 32, 1, 381 }, + /* tcId: 382. point with coordinate y = 1 in left to right addition chain */ + {24538, 65, 128, 32, 12192, 32, 1, 382 }, + /* tcId: 383. point with coordinate y = 1 in left to right addition chain */ + {24603, 65, 128, 32, 12224, 32, 1, 383 }, + /* tcId: 384. point with coordinate y = 1 in left to right addition chain */ + {24668, 65, 128, 32, 12256, 32, 1, 384 }, + /* tcId: 385. point with coordinate y = 1 in left to right addition chain */ + {24733, 65, 128, 32, 12288, 32, 1, 385 }, + /* tcId: 386. point with coordinate y = 1 in left to right addition chain */ + {24798, 65, 128, 32, 12320, 32, 1, 386 }, + /* tcId: 387. point with coordinate y = 1 in left to right addition chain */ + {24863, 65, 128, 32, 12352, 32, 1, 387 }, + /* tcId: 388. point with coordinate y = 1 in left to right addition chain */ + {24928, 65, 128, 32, 12384, 32, 1, 388 }, + /* tcId: 389. point with coordinate y = 1 in left to right addition chain */ + {24993, 65, 128, 32, 12416, 32, 1, 389 }, + /* tcId: 390. point with coordinate y = 1 in left to right addition chain */ + {25058, 65, 128, 32, 12448, 32, 1, 390 }, + /* tcId: 391. point with coordinate y = 1 in left to right addition chain */ + {25123, 65, 128, 32, 12480, 32, 1, 391 }, + /* tcId: 392. point with coordinate y = 1 in left to right addition chain */ + {25188, 65, 128, 32, 12512, 32, 1, 392 }, + /* tcId: 393. point with coordinate y = 1 in left to right addition chain */ + {25253, 65, 128, 32, 12544, 32, 1, 393 }, + /* tcId: 394. point with coordinate y = 1 in left to right addition chain */ + {25318, 65, 128, 32, 12576, 32, 1, 394 }, + /* tcId: 395. point with coordinate y = 1 in left to right addition chain */ + {25383, 65, 128, 32, 12608, 32, 1, 395 }, + /* tcId: 396. point with coordinate y = 1 in left to right addition chain */ + {25448, 65, 128, 32, 12640, 32, 1, 396 }, + /* tcId: 397. point with coordinate y = 1 in left to right addition chain */ + {25513, 65, 128, 32, 12672, 32, 1, 397 }, + /* tcId: 398. point with coordinate y = 1 in left to right addition chain */ + {25578, 65, 128, 32, 12704, 32, 1, 398 }, + /* tcId: 399. point with coordinate y = 1 in left to right addition chain */ + {25643, 65, 128, 32, 12736, 32, 1, 399 }, + /* tcId: 400. point with coordinate y = 1 in left to right addition chain */ + {25708, 65, 128, 32, 12768, 32, 1, 400 }, + /* tcId: 401. point with coordinate y = 1 in left to right addition chain */ + {25773, 65, 128, 32, 12800, 32, 1, 401 }, + /* tcId: 402. point with coordinate y = 1 in left to right addition chain */ + {25838, 65, 128, 32, 12832, 32, 1, 402 }, + /* tcId: 403. point with coordinate y = 1 in left to right addition chain */ + {25903, 65, 128, 32, 12864, 32, 1, 403 }, + /* tcId: 404. point with coordinate y = 1 in left to right addition chain */ + {25968, 65, 128, 32, 12896, 32, 1, 404 }, + /* tcId: 405. point with coordinate y = 1 in left to right addition chain */ + {26033, 65, 128, 32, 12928, 32, 1, 405 }, + /* tcId: 406. point with coordinate y = 1 in left to right addition chain */ + {26098, 65, 128, 32, 12960, 32, 1, 406 }, + /* tcId: 407. point with coordinate y = 1 in left to right addition chain */ + {26163, 65, 128, 32, 12992, 32, 1, 407 }, + /* tcId: 408. point with coordinate y = 1 in left to right addition chain */ + {26228, 65, 128, 32, 13024, 32, 1, 408 }, + /* tcId: 409. point with coordinate y = 1 in left to right addition chain */ + {26293, 65, 128, 32, 13056, 32, 1, 409 }, + /* tcId: 410. point with coordinate y = 1 in left to right addition chain */ + {26358, 65, 128, 32, 13088, 32, 1, 410 }, + /* tcId: 411. point with coordinate y = 1 in left to right addition chain */ + {26423, 65, 128, 32, 13120, 32, 1, 411 }, + /* tcId: 412. point with coordinate y = 1 in left to right addition chain */ + {26488, 65, 128, 32, 13152, 32, 1, 412 }, + /* tcId: 413. point with coordinate y = 1 in left to right addition chain */ + {26553, 65, 128, 32, 13184, 32, 1, 413 }, + /* tcId: 414. point with coordinate y = 1 in left to right addition chain */ + {26618, 65, 128, 32, 13216, 32, 1, 414 }, + /* tcId: 415. point with coordinate y = 1 in left to right addition chain */ + {26683, 65, 128, 32, 13248, 32, 1, 415 }, + /* tcId: 416. point with coordinate y = 1 in left to right addition chain */ + {26748, 65, 128, 32, 13280, 32, 1, 416 }, + /* tcId: 417. point with coordinate y = 1 in left to right addition chain */ + {26813, 65, 128, 32, 13312, 32, 1, 417 }, + /* tcId: 418. point with coordinate y = 1 in left to right addition chain */ + {26878, 65, 128, 32, 13344, 32, 1, 418 }, + /* tcId: 419. point with coordinate y = 1 in left to right addition chain */ + {26943, 65, 128, 32, 13376, 32, 1, 419 }, + /* tcId: 420. point with coordinate y = 1 in left to right addition chain */ + {27008, 65, 128, 32, 13408, 32, 1, 420 }, + /* tcId: 421. point with coordinate y = 1 in left to right addition chain */ + {27073, 65, 128, 32, 13440, 32, 1, 421 }, + /* tcId: 422. point with coordinate y = 1 in left to right addition chain */ + {27138, 65, 128, 32, 13472, 32, 1, 422 }, + /* tcId: 423. point with coordinate y = 1 in left to right addition chain */ + {27203, 65, 128, 32, 13504, 32, 1, 423 }, + /* tcId: 424. point with coordinate y = 1 in left to right addition chain */ + {27268, 65, 128, 32, 13536, 32, 1, 424 }, + /* tcId: 425. point with coordinate y = 1 in left to right addition chain */ + {27333, 65, 128, 32, 13568, 32, 1, 425 }, + /* tcId: 426. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27398, 65, 128, 32, 13600, 32, 1, 426 }, + /* tcId: 427. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27463, 65, 128, 32, 13632, 32, 1, 427 }, + /* tcId: 428. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27528, 65, 128, 32, 13664, 32, 1, 428 }, + /* tcId: 429. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27593, 65, 128, 32, 13696, 32, 1, 429 }, + /* tcId: 430. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27658, 65, 128, 32, 13728, 32, 1, 430 }, + /* tcId: 431. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27723, 65, 128, 32, 13760, 32, 1, 431 }, + /* tcId: 432. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27788, 65, 128, 32, 13792, 32, 1, 432 }, + /* tcId: 433. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27853, 65, 128, 32, 13824, 32, 1, 433 }, + /* tcId: 434. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27918, 65, 128, 32, 13856, 32, 1, 434 }, + /* tcId: 435. point with coordinate y = 1 in precomputation or right to left addition chain */ + {27983, 65, 128, 32, 13888, 32, 1, 435 }, + /* tcId: 436. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28048, 65, 128, 32, 13920, 32, 1, 436 }, + /* tcId: 437. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28113, 65, 128, 32, 13952, 32, 1, 437 }, + /* tcId: 438. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28178, 65, 128, 32, 13984, 32, 1, 438 }, + /* tcId: 439. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28243, 65, 128, 32, 14016, 32, 1, 439 }, + /* tcId: 440. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28308, 65, 128, 32, 14048, 32, 1, 440 }, + /* tcId: 441. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28373, 65, 128, 32, 14080, 32, 1, 441 }, + /* tcId: 442. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28438, 65, 128, 32, 14112, 32, 1, 442 }, + /* tcId: 443. point with coordinate y = 1 in precomputation or right to left addition chain */ + {28503, 65, 128, 32, 14144, 32, 1, 443 }, + /* tcId: 444. point with coordinate y = 1 in right to left addition chain */ + {28568, 65, 128, 32, 14176, 32, 1, 444 }, + /* tcId: 445. point with coordinate y = 1 in right to left addition chain */ + {28633, 65, 128, 32, 14208, 32, 1, 445 }, + /* tcId: 446. point with coordinate y = 1 in right to left addition chain */ + {28698, 65, 128, 32, 14240, 32, 1, 446 }, + /* tcId: 447. point with coordinate y = 1 in right to left addition chain */ + {28763, 65, 128, 32, 14272, 32, 1, 447 }, + /* tcId: 448. point with coordinate y = 1 in right to left addition chain */ + {28828, 65, 128, 32, 14304, 32, 1, 448 }, + /* tcId: 449. point with coordinate y = 1 in right to left addition chain */ + {28893, 65, 128, 32, 14336, 32, 1, 449 }, + /* tcId: 450. point with coordinate y = 1 in right to left addition chain */ + {28958, 65, 128, 32, 14368, 32, 1, 450 }, + /* tcId: 451. point with coordinate y = 1 in right to left addition chain */ + {29023, 65, 128, 32, 14400, 32, 1, 451 }, + /* tcId: 452. point with coordinate y = 1 in right to left addition chain */ + {29088, 65, 128, 32, 14432, 32, 1, 452 }, + /* tcId: 453. point with coordinate y = 1 in right to left addition chain */ + {29153, 65, 128, 32, 14464, 32, 1, 453 }, + /* tcId: 454. point with coordinate y = 1 in right to left addition chain */ + {29218, 65, 128, 32, 14496, 32, 1, 454 }, + /* tcId: 455. point with coordinate y = 1 in right to left addition chain */ + {29283, 65, 128, 32, 14528, 32, 1, 455 }, + /* tcId: 456. point with coordinate y = 1 in right to left addition chain */ + {29348, 65, 128, 32, 14560, 32, 1, 456 }, + /* tcId: 457. point with coordinate y = 1 in right to left addition chain */ + {29413, 65, 128, 32, 14592, 32, 1, 457 }, + /* tcId: 458. point with coordinate y = 1 in right to left addition chain */ + {29478, 65, 128, 32, 14624, 32, 1, 458 }, + /* tcId: 459. edge case private key */ + {29543, 65, 160, 32, 14656, 32, 1, 459 }, + /* tcId: 460. edge case private key */ + {29543, 65, 192, 32, 14688, 32, 1, 460 }, + /* tcId: 461. edge case private key */ + {29543, 65, 224, 32, 14720, 32, 1, 461 }, + /* tcId: 462. edge case private key */ + {29543, 65, 256, 32, 14752, 32, 1, 462 }, + /* tcId: 463. edge case private key */ + {29543, 65, 288, 32, 14784, 32, 1, 463 }, + /* tcId: 464. edge case private key */ + {29543, 65, 320, 32, 14816, 32, 1, 464 }, + /* tcId: 465. edge case private key */ + {29543, 65, 352, 32, 14848, 32, 1, 465 }, + /* tcId: 466. edge case private key */ + {29543, 65, 384, 32, 14880, 32, 1, 466 }, + /* tcId: 467. edge case private key */ + {29543, 65, 416, 32, 14912, 32, 1, 467 }, + /* tcId: 468. edge case private key */ + {29543, 65, 448, 32, 14944, 32, 1, 468 }, + /* tcId: 469. edge case private key */ + {29543, 65, 480, 32, 14976, 32, 1, 469 }, + /* tcId: 470. edge case private key */ + {29543, 65, 512, 32, 15008, 32, 1, 470 }, + /* tcId: 471. edge case private key */ + {29543, 65, 544, 32, 15040, 32, 1, 471 }, + /* tcId: 472. edge case private key */ + {29543, 65, 576, 32, 15072, 32, 1, 472 }, + /* tcId: 473. edge case private key */ + {29543, 65, 608, 32, 15104, 32, 1, 473 }, + /* tcId: 474. edge case private key */ + {29543, 65, 640, 32, 15136, 32, 1, 474 }, + /* tcId: 475. point is not on curve */ + {29608, 65, 672, 32, 15168, 0, 0, 475 }, + /* tcId: 476. point is not on curve */ + {29673, 65, 672, 32, 15168, 0, 0, 476 }, + /* tcId: 477. point is not on curve */ + {29738, 65, 672, 32, 15168, 0, 0, 477 }, + /* tcId: 478. point is not on curve */ + {29803, 65, 672, 32, 15168, 0, 0, 478 }, + /* tcId: 479. point is not on curve */ + {29868, 65, 672, 32, 15168, 0, 0, 479 }, + /* tcId: 480. point is not on curve */ + {29933, 65, 672, 32, 15168, 0, 0, 480 }, + /* tcId: 481. point is not on curve */ + {29998, 65, 672, 32, 15168, 0, 0, 481 }, + /* tcId: 482. point is not on curve */ + {30063, 65, 672, 32, 15168, 0, 0, 482 }, + /* tcId: 483. point is not on curve */ + {30128, 65, 672, 32, 15168, 0, 0, 483 }, + /* tcId: 484. point is not on curve */ + {30193, 65, 672, 32, 15168, 0, 0, 484 }, + /* tcId: 485. point is not on curve */ + {30258, 65, 672, 32, 15168, 0, 0, 485 }, + /* tcId: 486. point is not on curve */ + {30323, 65, 672, 32, 15168, 0, 0, 486 }, + /* tcId: 487. point is not on curve */ + {30388, 65, 672, 32, 15168, 0, 0, 487 }, + /* tcId: 488. point is not on curve */ + {30453, 65, 672, 32, 15168, 0, 0, 488 }, + /* tcId: 489. point is not on curve */ + {30518, 65, 672, 32, 15168, 0, 0, 489 }, + /* tcId: 490. point is not on curve */ + {30583, 65, 672, 32, 15168, 0, 0, 490 }, + /* tcId: 491. */ + {30648, 0, 672, 32, 15168, 0, 0, 491 }, + /* tcId: 494. public point not on curve */ + {30648, 65, 704, 32, 15168, 0, 0, 494 }, + /* tcId: 495. public point = (0,0) */ + {29608, 65, 704, 32, 15168, 0, 0, 495 }, + /* tcId: 498. order = 1 */ + {30713, 65, 704, 32, 15168, 32, 1, 498 }, + /* tcId: 499. order = 26959946667150639794667015087019630673536463705607434823784316690060 */ + {30713, 65, 704, 32, 15200, 32, 1, 499 }, + /* tcId: 500. generator = (0,0) */ + {30713, 65, 704, 32, 15232, 32, 1, 500 }, + /* tcId: 501. generator not on curve */ + {30713, 65, 704, 32, 15264, 32, 1, 501 }, + /* tcId: 506. cofactor = None */ + {30713, 65, 704, 32, 15296, 32, 1, 506 }, + /* tcId: 508. using secp224r1 */ + {30778, 57, 704, 32, 15328, 0, 0, 508 }, + /* tcId: 509. using secp256r1 */ + {30835, 65, 704, 32, 15328, 0, 0, 509 }, + /* tcId: 510. a = 0 */ + {30713, 65, 704, 32, 15328, 32, 1, 510 }, + /* tcId: 511. public key of order 3 */ + {30900, 65, 704, 32, 15360, 0, 0, 511 }, + /* tcId: 528. invalid public key */ + {30965, 33, 736, 32, 15360, 0, 0, 528 }, + +}; diff --git a/src/wycheproof/ecdh_secp256k1_test.json b/src/wycheproof/ecdh_secp256k1_test.json new file mode 100644 index 00000000000..16db6189128 --- /dev/null +++ b/src/wycheproof/ecdh_secp256k1_test.json @@ -0,0 +1,8441 @@ +{ + "algorithm" : "ECDH", + "schema" : "ecdh_test_schema.json", + "generatorVersion" : "0.9rc5", + "numberOfTests" : 752, + "header" : [ + "Test vectors of type EcdhTest are intended for", + "testing an ECDH implementations using X509 encoded", + "public keys and integers for private keys.", + "Test vectors of this format are useful for testing", + "Java providers." + ], + "notes" : { + "AdditionChain" : { + "bugType" : "KNOWN_BUG", + "description" : "The private key has an unusual bit pattern, such as high or low Hamming weight. The goal is to test edge cases for addition chain implementations." + }, + "CompressedPoint" : { + "bugType" : "UNKNOWN", + "description" : "The point in the public key is compressed. Not every library supports points in compressed format." + }, + "CompressedPublic" : { + "bugType" : "FUNCTIONALITY", + "description" : "The public key in the test vector is compressed. Some implementations do not support compressed points." + }, + "EdgeCaseDoubling" : { + "bugType" : "EDGE_CASE", + "description" : "The test vector contains an EC point that hits an edge case (e.g. a coordinate 0) when doubled. The goal of the test vector is to check for arithmetic errors in these test cases.", + "effect" : "The effect of such arithmetic errors is unclear and requires further analysis." + }, + "EdgeCaseEphemeralKey" : { + "bugType" : "EDGE_CASE", + "description" : "The test vector contains an ephemeral public key that is an edge case." + }, + "EdgeCaseSharedSecret" : { + "bugType" : "EDGE_CASE", + "description" : "The test vector contains a public key and private key such that the shared ECDH secret is a special case. The goal of this test vector is to detect arithmetic errors.", + "effect" : "The seriousness of an arithmetic error is unclear. It requires further analysis to determine if the bug is exploitable." + }, + "InvalidAsn" : { + "bugType" : "UNKNOWN", + "description" : "The public key in this test uses an invalid ASN encoding. Some cases where the ASN parser is not strictly checking the ASN format are benign as long as the ECDH computation still returns the correct shared value." + }, + "InvalidCompressedPublic" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The test vector contains a compressed public key that does not exist. I.e., it contains an x-coordinate that does not correspond to any points on the curve. Such keys should be rejected " + }, + "InvalidCurveAttack" : { + "bugType" : "CONFIDENTIALITY", + "description" : "The point of the public key is not on the curve. ", + "effect" : "If an implementation does not check whether a point is on the curve then it is likely that the implementation is susceptible to an invalid curve attack. Many implementations compute the shared ECDH secret over a curve defined by the point on the public key. This curve can be weak and hence leak information about the private key." + }, + "InvalidEncoding" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The test vector contains a public key with an invalid encoding." + }, + "InvalidPublic" : { + "bugType" : "CAN_OF_WORMS", + "description" : "The public key has been modified and is invalid. An implementation should always check whether the public key is valid and on the same curve as the private key. The test vector includes the shared secret computed with the original public key if the public point is on the curve of the private key.", + "effect" : "Generating a shared secret other than the one with the original key likely indicates that the bug is exploitable." + }, + "LargeCofactor" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The cofactor is larger than the limits specified in FIPS-PUB 186-4 table 1, p.36." + }, + "Modified curve parameter" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The parameters a and b of the curve have been modified. The parameters haven been chosen so that public key or generator still are also valid points on the new curve." + }, + "ModifiedCofactor" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The cofactor has been modified. ", + "effect" : "The seriousness of accepting a key with modified cofactor depends on whether the primitive using the key actually uses the cofactor." + }, + "ModifiedGenerator" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The generator of the EC group has been modified.", + "effect" : "The seriousness of the modification depends on whether the cryptographic primitive uses the generator. In the worst case such a modification allows an invalid curve attack." + }, + "ModifiedGroup" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The EC curve of the public key has been modified. EC curve primitives should always check that the keys are on the expected curve." + }, + "ModifiedPrime" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The modulus of the public key has been modified. The public point of the public key has been chosen so that it is both a point on both the curve of the modified public key and the private key." + }, + "ModifiedPublicPoint" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The public point of the key has been modified and is not on the curve.", + "effect" : "Not checking that a public point is on the curve may allow an invalid curve attack." + }, + "NegativeCofactor" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The cofactor of the curve is negative." + }, + "Normal" : { + "bugType" : "BASIC", + "description" : "The test vector contains a pseudorandomly generated, valid test case. Implementations are expected to pass this test." + }, + "UnnamedCurve" : { + "bugType" : "UNKNOWN", + "description" : "The public key does not use a named curve. RFC 3279 allows to encode such curves by explicitly encoding, the parameters of the curve equation, modulus, generator, order and cofactor. However, many crypto libraries only support named curves. Modifying some of the EC parameters and encoding the corresponding public key as an unnamed curve is a potential attack vector." + }, + "UnusedParam" : { + "bugType" : "MALLEABILITY", + "description" : "A parameter that is typically not used for ECDH has been modified. Sometimes libraries ignore small differences between public and private key. For example, a library might ignore an incorrect cofactor in the public key. We consider ignoring such changes as acceptable as long as these differences do not change the outcome of the ECDH computation, i.e. as long as the computation is done on the curve from the private key." + }, + "WeakPublicKey" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The vector contains a weak public key. The curve is not a named curve, the public key point has order 3 and has been chosen to be on the same curve as the private key. This test vector is used to check ECC implementations for missing steps in the verification of the public key." + }, + "WrongCurve" : { + "bugType" : "CONFIDENTIALITY", + "description" : "The public key and private key use distinct curves. Implementations are expected to reject such parameters.", + "effect" : "Computing an ECDH key exchange with public and private keys can in the worst case lead to an invalid curve attack. Hence, it is important that ECDH implementations check the input parameters. The severity of such bugs is typically smaller if an implementation ensures that the point is on the curve and that the ECDH computation is performed on the curve of the private key. Some of the test vectors with modified public key contain shared ECDH secrets, that were computed over the curve of the private key." + }, + "WrongOrder" : { + "bugType" : "MODIFIED_PARAMETER", + "description" : "The order of the public key has been modified.", + "effect" : "If this order is used in a cryptographic primitive instead of the correct order then an invalid curve attack is possible and the private keys may leak. E.g. ECDHC in BC 1.52 suffered from this." + } + }, + "testGroups" : [ + { + "type" : "EcdhTest", + "curve" : "secp256k1", + "encoding" : "asn", + "tests" : [ + { + "tcId" : 1, + "comment" : "normal case", + "flags" : [ + "Normal" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d8096af8a11e0b80037e1ee68246b5dcbb0aeb1cf1244fd767db80f3fa27da2b396812ea1686e7472e9692eaf3e958e50e9500d3b4c77243db1f2acd67ba9cc4", + "private" : "00f4b7ff7cccc98813a69fae3df222bfe3f4e28f764bf91b4a10d8096ce446b254", + "shared" : "544dfae22af6af939042b1d85b71a1e49e9a5614123c4d6ad0c8af65baf87d65", + "result" : "valid" + }, + { + "tcId" : 2, + "comment" : "compressed public key", + "flags" : [ + "CompressedPublic", + "CompressedPoint" + ], + "public" : "3036301006072a8648ce3d020106052b8104000a03220002d8096af8a11e0b80037e1ee68246b5dcbb0aeb1cf1244fd767db80f3fa27da2b", + "private" : "00f4b7ff7cccc98813a69fae3df222bfe3f4e28f764bf91b4a10d8096ce446b254", + "shared" : "544dfae22af6af939042b1d85b71a1e49e9a5614123c4d6ad0c8af65baf87d65", + "result" : "acceptable" + }, + { + "tcId" : 3, + "comment" : "shared secret has x-coordinate that satisfies x**2 + a = 1", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004965ff42d654e058ee7317cced7caf093fbb180d8d3a74b0dcd9d8cd47a39d5cb9c2aa4daac01a4be37c20467ede964662f12983e0b5272a47a5f2785685d8087", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000000000000000000000000000001", + "result" : "valid" + }, + { + "tcId" : 4, + "comment" : "shared secret has x-coordinate that satisfies x**2 + a = 4", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000406c4b87ba76c6dcb101f54a050a086aa2cb0722f03137df5a922472f1bdc11b982e3c735c4b6c481d09269559f080ad08632f370a054af12c1fd1eced2ea9211", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000000000000000000000000000002", + "result" : "valid" + }, + { + "tcId" : 5, + "comment" : "shared secret has x-coordinate that satisfies x**2 + a = 9", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bba30eef7967a2f2f08a2ffadac0e41fd4db12a93cef0b045b5706f2853821e6d50b2bf8cbf530e619869e07c021ef16f693cfc0a4b0d4ed5a8f464692bf3d6e", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000000000000000000000000000003", + "result" : "valid" + }, + { + "tcId" : 6, + "comment" : "shared secret has x-coordinate p-3", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046da9eb2cdac02122d5f05cf6a8cd768e378f664ea4a7871d10e25f57eb1ee1cc5b2b5abf9c6c6596f8f383ddbcb3bcc2d5a7cc605984931239ca9669946032ee", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2c", + "result" : "valid" + }, + { + "tcId" : 7, + "comment" : "shared secret has x-coordinate 2**16 + 0", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f2976154c4f53ce392d1fe39a891a4611ba8cf046023cd8f1bcd9fdd2e921191b25cf31caedfbb415381637bc3f599a34fba3e1413f644cb1668469f4558a772", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000000000000000000000000010000", + "result" : "valid" + }, + { + "tcId" : 8, + "comment" : "shared secret has x-coordinate 2**32 + 7", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045e422fea67cca5ebaeac87745c81b10ef807030367e6fce012254176ec8cf199881592f42c264371e19e3037388ab64f32fa8870e62905e7af205e43b02aad12", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000000000000000000000100000007", + "result" : "valid" + }, + { + "tcId" : 9, + "comment" : "shared secret has x-coordinate 2**64 + 1", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bb57b9a1231be042d185c03eda6926a6def177fe6745eda000c520d66581f0cdf1d73c80453f2fe30725adf951390c739e36fc8677691db107881342613d00ab", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000000000000010000000000000001", + "result" : "valid" + }, + { + "tcId" : 10, + "comment" : "shared secret has x-coordinate 2**96 + 1", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045563c76c19377638f7d517bdbe0ace467eb5d4dd9fb4bf18332bab8f07b1d80c261332d46e316711278bacccd88005ee4c115fa84089fd190674626e5ed1ebfe", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000000000000000000000000001000000000000000000000001", + "result" : "valid" + }, + { + "tcId" : 11, + "comment" : "shared secret has x-coordinate that satisfies x**2 + a = -6", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048983aae8c002f2b555acb2370adb9b50ba4cac1bfcc9039a125c70ca7c5fc0d1f6efeb8ae4ba8c69429d93244382447ac534891c66090025282655719bd72512", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0b7beba34feb647da200bed05fad57c0348d249e2a90c88f31f9948bb65d5207", + "result" : "valid" + }, + { + "tcId" : 12, + "comment" : "shared secret has x-coordinate that satisfies x**2 + a = 2", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000423556564850c50fba51f1e64ef98378ef5c22feafa29499ca27600c473cace889d5679e917daa7f4c7899517d37826284f031de01a60bc813696414d04531a21", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "210c790573632359b1edb4302c117d8a132654692c3feeb7de3a86ac3f3b53f7", + "result" : "valid" + }, + { + "tcId" : 13, + "comment" : "shared secret has x-coordinate that satisfies x**2 + a = 8", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ddbf807e22c56a19cf6c472829150350781034a5eddec365694d4bd5c865ead14e674127028c91d3394cac37293a866055d10f0f40a3706ad16b64fc9d5998bd", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "4218f20ae6c646b363db68605822fb14264ca8d2587fdd6fbc750d587e76a7ee", + "result" : "valid" + }, + { + "tcId" : 14, + "comment" : "shared secret has x-coordinate that satisfies x**2 = 2**96 + 2", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000464688eae7aabd248f6f44a0d6e2c438e4100001813eb71f9f082fad3dfe43e287dab3dabe7d436001a0fb763015dedbb90f811000ec8f5f29953e3af42f92065", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "39f883f105ac7f09f4e7e4dcc84bc7ff4b3b74f301efaaaf8b638f47720fdaec", + "result" : "valid" + }, + { + "tcId" : 15, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 2", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c404e17141d102bba2f1cb16bb954a208798b04dca8dd139a8ab7f01f0dbef39c7b8e55f2257a480077e4190570a004cbe668200c9c78eaa53b61b20fce4c685", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "5555555555555555555555555555555555555555555555555555555555555550", + "result" : "valid" + }, + { + "tcId" : 16, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 2", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e160e87c0a562a1dbb59b4c2f614720e7753608672eb8d883b91e25f8cfc58474623cba584e1324bc49bcdf0891166b545b7704e2bbda705d0d73b7530e47952", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "result" : "valid" + }, + { + "tcId" : 17, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 4", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045d4d182b18782a02685dcc7b671ec742ce308c7acc8e6260f67e81516eb546e8a38f0756074eea4857953398b6d05597c7ceb5e65e4e8cee31e81c5658824ce4", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "3333333333333333333333333333333333333333333333333333333333333333", + "result" : "valid" + }, + { + "tcId" : 18, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 4", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048ecd6a2576f42626792076935e2fe961599e484cd212bce2623b83aa22f546d2a7f855b09bef286bcbe9e8bab17fd56d7055df64f344310c3522e8f227e472c8", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccb", + "result" : "valid" + }, + { + "tcId" : 19, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 8", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046826f79ef84da803460aed09198d2bbb42d7892ed608aacbb281a95acae11465a25809191aa5bdfa61b8963beacb4eb133266a90f33d1b2ca4f6152d37a94fd8", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0c", + "result" : "valid" + }, + { + "tcId" : 20, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 8", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a54bb2ae80086053a5fa4fdb1836a8c6ac41783650b0f79a5428c98ff64d078a12bbb4cb8af20ca75ec15b2e0d47a83ca93fc78cd92640a02e8002966f1fe80b", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0", + "result" : "valid" + }, + { + "tcId" : 21, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 16", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bace46eed492743c693e1a33adb046b7722c55ce369d1438e67f9c5b3412783145262dd4a86c8a527b23f4114b8a9b9f36f9701835f50b678b24d2a9155ebc2c", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff", + "result" : "valid" + }, + { + "tcId" : 22, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 16", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000401055147863aa060c0e104e243ec01eda2b0e0c6814e232d671abcba9715d5ce0c13006aa7960c54fe3f20220bef766756c910fd05764afc318375540cef2d5c", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00", + "result" : "valid" + }, + { + "tcId" : 23, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 30", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004595e46ee7c2d7183ff2ea760ffd8472fb834ec89c08b6ef48ff92b44a13a6e1ae563e23953c97c26441323d2500c84e8cee04c15d4d5d2cc458703d1f2d02d31", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "7fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff", + "result" : "valid" + }, + { + "tcId" : 24, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 30", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046a40adc811b09e83ba0fb8a94fea50591ca9e58bb7d47304950dbff78dad777ee3bd08f742d7e8e30cff31bc6a6cc02c8717ee25838aabffa6e48f65cce74d81", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "8000fffe0003fff8000fffe0003fff8000fffe0003fff8000fffe0003fff7fff", + "result" : "valid" + }, + { + "tcId" : 25, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 32", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045a33fe91d7e35db7875208bee77f4cc0006f1439cc845f695b6a12673dcd03d18f86ee121c5ea0da3eb0210509e12db845296225ca973e2e19ce3e3d01486090", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000fffd", + "result" : "valid" + }, + { + "tcId" : 26, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 32", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f6ebaab62c35fd4b8bec9d95bcfc433e6bde7c0f0d5ef75d6fd326aaf28f23b0b2f4d1c2e891706b7bada59fb0f6a32b5463982a9c8c2d8ea38954418183b634", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000fffefffe", + "result" : "valid" + }, + { + "tcId" : 27, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 51", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004524392416f8cfc5f84dc9b72f2887c684e4bd24796f0065078e18d16bc43b56ea02178311799eb61ad3b3e7dcda10404dc4541c13e3de0ceb40c9aa7afabc53b", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "8000003ffffff0000007fffffe000000ffffffc000001ffffff8000003fffffd", + "result" : "valid" + }, + { + "tcId" : 28, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 51", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000499965c477a240aebbd19cd094c8b62852de8663d0cc9f06eeb395ffc92d121f64811882f406080d7d04ea4f339bddd2e5ef0345b5834142f75b562154d5ec7ae", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "7fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffdfffffe", + "result" : "valid" + }, + { + "tcId" : 29, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 52", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ad3d179877e74ee258ba6f8e128bc2a0045c06a3d3c30fcce01ca8d9e1afee4ea3fe47156fb727fc1c55ef9db516df665cbb073405c2c301a8fe1d10f3b9b300", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003fffffc", + "result" : "valid" + }, + { + "tcId" : 30, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 52", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044bb19deae638fc5fa7070cc90e969bac3f8384a59ea11cb01bc091edf1a4cbd677ed6bdf8971d3e63c903d9acabc28b75af661a03457261c5a8d5940ad02c509", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "fffffc000000ffffffc000000ffffffc000000ffffffc000000ffffffbfffffe", + "result" : "valid" + }, + { + "tcId" : 31, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 60", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000424175c078e305d3139e5dab727a6ab8587b26daa470a529a23c10585cb56c038bf1f2b937ae074ff94b15f5cb5e60eb5d32afba2077539db794294bcaab71a81", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff", + "result" : "valid" + }, + { + "tcId" : 32, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 60", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ef691afe2ee4aa18a8485a71c0e20eff1337ae0622acc09ccda10f49574ae840b82730bb2eef59a17ab095acd131e5fcf8ba11150a9421bbab6b9f146aa78ffb", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000fffffffc0000000fffffffc0000000fffffffc0000000fffffffbffffffd", + "result" : "valid" + }, + { + "tcId" : 33, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 62", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004067e7df09f5e38f2b2823f65a6b1135c3290586fef6eceffa6d59595748879f66932b3f70d603229e10a57344ecde503a2df930651046c2f1d2b719bfc93e0a1", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ff00000001fffffffc00000007fffffff00000001fffffffc00000007ffffffd", + "result" : "valid" + }, + { + "tcId" : 34, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 62", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b8722ecdde7c85317e486b03656b83910ac3c88687a4291e8bb9a4b6a52cc6e02e4158a5a88de023d6a135bd04c1585ef46741890376135453ec562da5b3760b", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "00fffffffe00000003fffffff80000000fffffffe00000003fffffff80000000", + "result" : "valid" + }, + { + "tcId" : 35, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 64", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004728e15d578212bc42287c0118c82c84b126f97d549223c10ad07f4e98af912385d23b1a6e716925855a247b16effe92773315241ac951cdfefdfac0ed16467f6", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "00000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff", + "result" : "valid" + }, + { + "tcId" : 36, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 64", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c3ef35fd4cda66e8e850095e1e697aee56decc29484aa463f879c7b6dd7669e625945351276719c5e3bb8e514f69305b6085b7c782a07b26a842887c33a93dc6", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ffffffff00000000ffffffff00000000ffffffff00000000fffffffeffffffff", + "result" : "valid" + }, + { + "tcId" : 37, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 112", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004784907c6be6202770b98d01f1ffe11b9ed2c97515843f57c2c06363a9dadc7011de5fbaa7356cf3ba28cb7b932a07c8321007c7c45396751fe70724343d2b19f", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ffffffff00000000000000ffffffffffffff00000000000000fffffffffffffe", + "result" : "valid" + }, + { + "tcId" : 38, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 112", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047c016dee8b5411f8e95184daf8e318119e844b8bdc70d75efb99b8d0ff10ab745e905103d57d6537908e6e9864aee4f0917f5b920d06f980aa823f043ef9139e", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "00000000ffffffffffffff00000000000000ffffffffffffff00000000000000", + "result" : "valid" + }, + { + "tcId" : 39, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 128", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000436e1e76ffdbe8577520b0716eb88c18ea72a49e5a4e5680a7d290093f841cb6e7310728b59c7572c4b35fb6c29c36ebabfc53553c06ecf747fcfbefcf6114e1c", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "0000000000000000ffffffffffffffff0000000000000000ffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 40, + "comment" : "shared secret has x-coordinate with repeating bit-pattern of size 128", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047a19501d646fc9332a8525af4cc79523b57d736b69bb24b06270c1b1dadf88ce834efa1bce854ff5bcade40cbcee9f40154bc26036adc5cf87e50ea388af2987", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "ffffffffffffffff0000000000000000fffffffffffffffefffffffffffffff5", + "result" : "valid" + }, + { + "tcId" : 41, + "comment" : "shared secret has an x-coordinate of approx p//3", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f43b610a2a5c5f6e2b395567489657059e3351c6f9a7e2ebde52638abfea006ab2d690513e9187c0cc903ceee022ee421c594a8bd7610c68cd8143adfc741dde", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "55555555555555555555555555555555555555555555555555555554fffffebc", + "result" : "valid" + }, + { + "tcId" : 42, + "comment" : "shared secret has an x-coordinate of approx p//5", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d93bfdaa797cd4bd81dea80d7c72a24923ce50e94bfc4ee1bd5f5f10eea3f8ecc0b5941890a26e88e5029c283e0fadeccc0b980f8a5098aa7835c5c958d471e5", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "33333333333333333333333333333333333333333333333333333332ffffff3c", + "result" : "valid" + }, + { + "tcId" : 43, + "comment" : "shared secret has an x-coordinate of approx p//7", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040ac1ea7a29f7ace8a38b2fedbfe4d0d9ae45344432ab3eb5e0a5b66716f61c6aaaa39a5f098fd4472587d14bdf72b3dd3e966b5f0b6e400fff6e0e9c8453fc79", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "249249249249249249249249249249249249249249249249249249246db6dae2", + "result" : "valid" + }, + { + "tcId" : 44, + "comment" : "shared secret has an x-coordinate of approx p//9", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bf2e8a61a21d96e74a296b397e53044f373acb73a6ea4a398d89c56549e96b7fe846fd0df239691d0682b067a50a2423d88b4d970b1d3d8141a066d13c186f96", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "1c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c555554e8", + "result" : "valid" + }, + { + "tcId" : 45, + "comment" : "y-coordinate of the public key has many trailing 1's", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000456baf1d72606c7af5a5fa108620b0839e2c7dd40b832ef847e5b64c86efe1aa563e586a667a65bbb5692500df1ff8403736838b30ea9791d9d390e3dc6689e2c", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "800000000000000000000000009fa2f1ffffffffffffffffffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 46, + "comment" : "y-coordinate of the public key has many trailing 1's", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004800000000000000000000000009fa2f1ffffffffffffffffffffffffffffffff07ed353c9f1039edcc9cc5336c034dc131a4087692c2e56bc1dd1904e3ffffff", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "7c07b199b6a62e7ac646c7e1dee94aca55de1a97251ddf92fcd4fe0145b40f12", + "result" : "valid" + }, + { + "tcId" : 47, + "comment" : "y-coordinate of the public key is small", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045e4c2cf1320ec84ef8920867b409a9a91d2dd008216a282e36bd84e884726fa05a5e4af11cf63ceaaa42a6dc9e4ccb394852cf84284e8d2627572fbf22c0ba88", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "80000000000000000000000000a3037effffffffffffffffffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 48, + "comment" : "y-coordinate of the public key is small", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000402a30c2fabc87e6730625dec2f0d03894387b7f743ce69c47351ebe5ee98a48307eb78d38770fea1a44f4da72c26f85b17f3501a4f9394fe29856ccbf15fd284", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "8000000000000000000000000124dcb0ffffffffffffffffffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 49, + "comment" : "y-coordinate of the public key is small", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000480000000000000000000000000a3037effffffffffffffffffffffffffffffff0000031a6bf344b86730ac5c54a7751aefdba135759b9d535ca64111f298a38d", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "5206c3de46949b9da160295ee0aa142fe3e6629cc25e2d671e582e30ff875082", + "result" : "valid" + }, + { + "tcId" : 50, + "comment" : "y-coordinate of the public key is small", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048000000000000000000000000124dcb0ffffffffffffffffffffffffffffffff0000013bc6f08431e729ed2863f2f4ac8a30279695c8109c340a39fa86f451cd", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "8a8c18b78e1b1fcfd22ee18b4a3a9f391a3fdf15408fb7f8c1dba33c271dbd2f", + "result" : "valid" + }, + { + "tcId" : 51, + "comment" : "y-coordinate of the public key is large", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045e4c2cf1320ec84ef8920867b409a9a91d2dd008216a282e36bd84e884726fa0a5a1b50ee309c31555bd592361b334c6b7ad307bd7b172d9d8a8d03fdd3f41a7", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "80000000000000000000000000a3037effffffffffffffffffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 52, + "comment" : "y-coordinate of the public key is large", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000402a30c2fabc87e6730625dec2f0d03894387b7f743ce69c47351ebe5ee98a483f814872c788f015e5bb0b258d3d907a4e80cafe5b06c6b01d67a93330ea029ab", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "8000000000000000000000000124dcb0ffffffffffffffffffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 53, + "comment" : "y-coordinate of the public key is large", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000480000000000000000000000000a3037efffffffffffffffffffffffffffffffffffffce5940cbb4798cf53a3ab588ae510245eca8a6462aca359beed0d6758a2", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "5206c3de46949b9da160295ee0aa142fe3e6629cc25e2d671e582e30ff875082", + "result" : "valid" + }, + { + "tcId" : 54, + "comment" : "y-coordinate of the public key is large", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048000000000000000000000000124dcb0fffffffffffffffffffffffffffffffffffffec4390f7bce18d612d79c0d0b5375cfd8696a37ef63cbf5c604790baa62", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "8a8c18b78e1b1fcfd22ee18b4a3a9f391a3fdf15408fb7f8c1dba33c271dbd2f", + "result" : "valid" + }, + { + "tcId" : 55, + "comment" : "y-coordinate of the public key has many trailing 0's", + "flags" : [ + "EdgeCaseSharedSecret" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045450cace04386adc54a14350793e83bdc5f265d6c29287ecd07f791ad2784c4cebd3c24451322334d8d51033e9d34b6bb592b1995d07867863d1044bd59d7501", + "private" : "00a2b6442a37f8a3764aeff4011a4c422b389a1e509669c43f279c8b7e32d80c3a", + "shared" : "80000000000000000000000001126b54ffffffffffffffffffffffffffffffff", + "result" : "valid" + }, + { + "tcId" : 56, + "comment" : "y-coordinate of the public key has many trailing 0's", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000480000000000000000000000001126b54ffffffffffffffffffffffffffffffff4106a369068d454ea4b9c3ac6177f87fc8fd3aa240b2ccb4882bdccbd4000000", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "e59ddc7646e4aef0623c71c486f24d5d32f7257ef3dab8fa524b394eae19ebe1", + "result" : "valid" + }, + { + "tcId" : 57, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 + a = 1", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000014218f20ae6c646b363db68605822fb14264ca8d2587fdd6fbc750d587e76a7ee", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "12c2ad36a59fda5ac4f7e97ff611728d0748ac359fca9b12f6d4f43519516487", + "result" : "valid" + }, + { + "tcId" : 58, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 + a = 4", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004000000000000000000000000000000000000000000000000000000000000000266fbe727b2ba09e09f5a98d70a5efce8424c5fa425bbda1c511f860657b8535e", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "45aa9666757815e9974140d1b57191c92c588f6e5681131e0df9b3d241831ad4", + "result" : "valid" + }, + { + "tcId" : 59, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 + a = 9", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000032f233395c8b07a3834a0e59bda43944b5df378852e560ebc0f22877e9f49bb4b", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "b90964c05e464c23acb747a4c83511e93007f7499b065c8e8eccec955d8731f4", + "result" : "valid" + }, + { + "tcId" : 60, + "comment" : "ephemeral key has x-coordinate p-3", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2c0e994b14ea72f8c3eb95c71ef692575e775058332d7e52d0995cf8038871b67d", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "e97fb4c4fb33d6a114da6e0d180e54f99ec1ece9ff558871054e99d221930d16", + "result" : "valid" + }, + { + "tcId" : 61, + "comment" : "ephemeral key has x-coordinate 2**16 + 0", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000100003c81e87241d9451d286ddbe65b14d47234307b80ce74b8921af7d4935707549d", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "1eea9c2756a3305bb5178f2c37436e7b41cf3805cd0a1087d2d02407fc553c09", + "result" : "valid" + }, + { + "tcId" : 62, + "comment" : "ephemeral key has x-coordinate 2**32 + 7", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004000000000000000000000000000000000000000000000000000000010000000715098598dc12cf294ea5ac1eb5eeae9139f5cfd3d0ffdcfa7297a01dce1ee9df", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "2f1c5c590f97f79351fb9d36c597d1c61f1c409fcdedaeae795112fa1a2c7453", + "result" : "valid" + }, + { + "tcId" : 63, + "comment" : "ephemeral key has x-coordinate 2**64 + 1", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004000000000000000000000000000000000000000000000001000000000000000161bd3a38f707713b97eaf8d0184e0079e2a62cfba75d428b1326ea861aade950", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "82b8e90e6b6441b7164c9725ac1a35f098788096af95c276fac3c5a383d6b56c", + "result" : "valid" + }, + { + "tcId" : 64, + "comment" : "ephemeral key has x-coordinate 2**96 + 1", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004000000000000000000000000000000000000000100000000000000000000000115820e7e26670c6b45c1e0caa951eab312754180baa9fcff9f7e7bf46deea7fc", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "8a955b6cf4d518558e59372444d3fd9b78933e2d3229dfdfa6f5f66403290e19", + "result" : "valid" + }, + { + "tcId" : 65, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 + a = -6", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040b7beba34feb647da200bed05fad57c0348d249e2a90c88f31f9948bb65d52077435a6bef91b92ae32cf51d7149cad0353a46513851427c34436536ec7eae483", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "5626bbf79f10827e23fa5aef9a26533f5f4e7472934ed9759b7b3a77cda04b82", + "result" : "valid" + }, + { + "tcId" : 66, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 + a = 2", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004210c790573632359b1edb4302c117d8a132654692c3feeb7de3a86ac3f3b53f75f450dbbf718a4f6582d7af83953170b3037fb81a450a5ca5acbec74ad6cac89", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "1908ae936f53b9a8a2d09707ae414084090b175365401425479b10b8c3e8d1ba", + "result" : "valid" + }, + { + "tcId" : 67, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 + a = 8", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044218f20ae6c646b363db68605822fb14264ca8d2587fdd6fbc750d587e76a7ee37269a64bbcf3a3f227631c7a8ce532c77245a1c0db4343f16aa1d339fd2591a", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "5e13b3dc04e33f18d1286c606cb0191785f694e82e17796145c9e7b49bc2af58", + "result" : "valid" + }, + { + "tcId" : 68, + "comment" : "ephemeral key has x-coordinate that satisfies x**2 = 2**96 + 2", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000439f883f105ac7f09f4e7e4dcc84bc7ff4b3b74f301efaaaf8b638f47720fdaec24f50efd39b8ae7536e8806927eac6fd52210a239fb4129e0bfed333476575ea", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "a995572ad174897ff1971e6d1e39f908448a5878da1e60f3901f57cacd49e5f6", + "result" : "valid" + }, + { + "tcId" : 69, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 2", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045555555555555555555555555555555555555555555555555555555555555550134a74fc6e7d7acef5bb20e969abb6f026ec0cb04dff34f7916ca64b07fff511", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "cd8427ea93f9fede38a70d0c39dbd96759613ba00f27b9db3971c80aec07e2d6", + "result" : "valid" + }, + { + "tcId" : 70, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 2", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa769afe397a5709201bda50ce2d31a13fde4076722a857719924009cc28159869", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "766b0752cd895b4b8543d44c9a348868ffff12aed632f8070e731d450d8a8c94", + "result" : "valid" + }, + { + "tcId" : 71, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 4", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000433333333333333333333333333333333333333333333333333333333333333330434e877eaa71340aa5e57e58a01f0b0aec8d24b5c64aa77ef95fae9b4958c5d", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "09b0aa839893b7ad37cc83160e6f3c5506bbe323497c21505ae9937c75d943c8", + "result" : "valid" + }, + { + "tcId" : 72, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 4", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccb2e808a8b6c6e5bc068f96348d68171e66159a0ee27073c82fc3f9581a4a1fb28", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "3c2a61121f094d5eecddf7d3b0016c170b90fd3f2fea0b12e31db04ae7c279a2", + "result" : "valid" + }, + { + "tcId" : 73, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 8", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0c1d854210f797c547bd3b3feccde1ce3e67c61c3400141da2068520e2bae9bf90", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "9a641d5efa8be7dc723aa58e2e52a150c8efced2fa1084041249773c7562c66d", + "result" : "valid" + }, + { + "tcId" : 74, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 8", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f022bcbf40d658bf3ff02d98aea5ae45d43ed85f6de9268f0eae85210f2fed81c6", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "d32977eca64d223ea90f10f72f810ec64d661833acc4c839591da813ef86f736", + "result" : "valid" + }, + { + "tcId" : 75, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 16", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff210a46304881329c9807b71b6393ba104b9f27d976065e852429fd664de98eee", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "55137fecb21eb3ebed1b41fb2f7e1ca337009465f855f3f920bc7d0b73c2da32", + "result" : "valid" + }, + { + "tcId" : 76, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 16", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff007011d6e851e5a53fde41c1f348690c0188f24c105d5cfca5b6ff3c93dbfdef99", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "0bde659ed89281e6c8a5fbdab764d0499b86d19d33f4c978e260bbae587d4057", + "result" : "valid" + }, + { + "tcId" : 77, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 30", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047fff0001fffc0007fff0001fffc0007fff0001fffc0007fff0001fffc0007fff4b66003c7482d0f2fd7b1cb2b0b7078cd199f2208fc37eb2ef286ccb2f1224e7", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "3135a6283b97e7537a8bc208a355c2a854b8ee6e4227206730e6d725da044dee", + "result" : "valid" + }, + { + "tcId" : 78, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 30", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048000fffe0003fff8000fffe0003fff8000fffe0003fff8000fffe0003fff7fff0a2331880cb3f8f9004bf68fc379beb6e3affadcbe81bd4f9bf76e4ac5ab2c37", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "2a3d29ce049fc50b00fab50e7581b84d441d297be6515fbe83dc485bdf32b6dc", + "result" : "valid" + }, + { + "tcId" : 79, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 32", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000fffd3b6a2629d598a045be28a1687288cc4d0c389cc6fe627c5cc3aa2ab963db7495", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "03c202a64e60ff5948d29816d68420c64c0518a7522a929381365b1245770a02", + "result" : "valid" + }, + { + "tcId" : 80, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 32", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000fffefffe35e39d53d101a6aa4ab434c55a70b03d244b6a2025a18d4d549dea451c031392", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "d07fcf7b89bd1ba24194caf977db68a5503a471a37d374e0917a5fe31d48c99e", + "result" : "valid" + }, + { + "tcId" : 81, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 51", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048000003ffffff0000007fffffe000000ffffffc000001ffffff8000003fffffd3aa774f4d29fefddd9546ad1f7b2b79cf42634284fbb1d7c702e9fca3fe049af", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "ea9f3a53ab4053df0bae0156767a62ec5ba0de4373ef12cbfb19aa80c6bcd904", + "result" : "valid" + }, + { + "tcId" : 82, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 51", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047fffffe000000ffffffc000001ffffff8000003ffffff0000007fffffdfffffe23e4bca0984da424a6120a13dc676c777607562d16ed9b8fa94c21fff7151d4e", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "f0557be2b26ddb56d44d2cb852224a291de771418fe148a730a76dadf5882f18", + "result" : "valid" + }, + { + "tcId" : 83, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 52", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004000003ffffff0000003ffffff0000003ffffff0000003ffffff0000003fffffc2a95c81253ac554846812d2a4415f6edcf954209008d260a806b85aba759ff72", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "c68f07233efd0745d8bcd51a89158717c2dc532f75a9e4de2076e1b830654ec8", + "result" : "valid" + }, + { + "tcId" : 84, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 52", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffc000000ffffffc000000ffffffc000000ffffffc000000ffffffbfffffe031537fcabe5d5e25165a18b1bd408212cb523efea0fc0fd1eac46e83b0d0b52", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "6eec8a68eb5f9caf2ab3053a3047bbc08412a1d433d79eea65effc5e0cd583bf", + "result" : "valid" + }, + { + "tcId" : 85, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 60", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ffff00000003fffffff00000003fffffff00000003fffffff00000003fffffff63a88b2e0c8987c6310cf81d0c935f00213f98a3dad2f43c8128fa313a90d55b", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "bbd9d305b99ff3db56f77fea9e89f32260ee7326040067ce05dd15e0dcc13ed8", + "result" : "valid" + }, + { + "tcId" : 86, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 60", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000fffffffc0000000fffffffc0000000fffffffc0000000fffffffbffffffd2407bddc5a50b2a7b96a288efb838bf768c6066e60b72f08a9782da2e39bd34f", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "1f81aa3d70f8756b9495fba82921717d4006206a4451d8d59f3c9b8d95b548e8", + "result" : "valid" + }, + { + "tcId" : 87, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 62", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ff00000001fffffffc00000007fffffff00000001fffffffc00000007ffffffd4af9cc406a46943ffe0fe630bd21f205eefa05355f3a13c9943d58e16e880435", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "66e707faf954d1ec84fe0f68f829beb2fe95058271b636362e3eb5c5d492cbf8", + "result" : "valid" + }, + { + "tcId" : 88, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 62", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400fffffffe00000003fffffff80000000fffffffe00000003fffffff800000002796cf7bde36dc6b1950001228b7249d3438a35fe5be98661255bf63a879b3a5", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "42dd6d83bbce6afab5045e1393838a97a46161c25ae91db0143e985d29162faa", + "result" : "valid" + }, + { + "tcId" : 89, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 64", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000ffffffff00000000ffffffff00000000ffffffff00000000ffffffff73b0886496aed70db371e2e49db640abba547e5e0c2763b73a0a42f84348a6b1", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "ab43917a64c1b010159643c18e2eb06d25eedae5b78d02fa9b3debacbf31b777", + "result" : "valid" + }, + { + "tcId" : 90, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 64", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ffffffff00000000ffffffff00000000ffffffff00000000fffffffeffffffff0013a9be0cbaaacf4e0f53ee45bc573eaa44dbf48d5fafc26856b44d6d00e2be", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "f39bf49011cb323ee00f77e0344a9b9da1256db92646dda0e342f8c1ad3741c5", + "result" : "valid" + }, + { + "tcId" : 91, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 112", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ffffffff00000000000000ffffffffffffff00000000000000fffffffffffffe6e563bca873bd591c9663391c826150795e3c42cedd269e68ff0e56dc971d554", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "27860fa0679edd4556f0423a21cc21e1e3f1701da3e62a544974ae94f15f91a0", + "result" : "valid" + }, + { + "tcId" : 92, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 112", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000ffffffffffffff00000000000000ffffffffffffff000000000000005b5b2ec553be67fd73add4cc2bced4ebe6d04a05b0e926e312037b3951667847", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "2bcfc95bba84524d8093dce1092bc157ca1fa42a37aaca9b0759437f940c3e7d", + "result" : "valid" + }, + { + "tcId" : 93, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 128", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000000000000000ffffffffffffffff0000000000000000ffffffffffffffff31cf13671b574e313c35217566f18bd2c5f758c140d24e94e6a4fda7f4c7b12b", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "1a32749dcf047a7e06194ccb34d7c9538a16ddabeeede74bea5f7ef04979f7f7", + "result" : "valid" + }, + { + "tcId" : 94, + "comment" : "ephemeral key has x-coordinate with repeating bit-pattern of size 128", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ffffffffffffffff0000000000000000fffffffffffffffefffffffffffffff53a54141598334650d1f99a12850769f53d34529b07ae591244c6ed702f1aa171", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "119aa477afad550e98db77bfb4e71a4b6ec79ec4fe17b7283f9b8bb7b9fdb5ec", + "result" : "valid" + }, + { + "tcId" : 95, + "comment" : "ephemeral key has an x-coordinate of approx p//3", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000455555555555555555555555555555555555555555555555555555554fffffebc7c976bddab1d1a302cfa176c25434558ec7cac238e739ca9849aa104323b106c", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "21edb700cf62c1bb816a877988ee8c5bc16a8464bcb6454adb8abf8b5cef7ceb", + "result" : "valid" + }, + { + "tcId" : 96, + "comment" : "ephemeral key has an x-coordinate of approx p//5", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000433333333333333333333333333333333333333333333333333333332ffffff3c7b2bf3716a9e336e162966597e5c423bb9d3d0d0c3c02b9e2dc4aabad17bfdcb", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "1ba54571d1d280f5fa2d0c5846ec392c721acd4ba7e4aadc3dc2353957abd80b", + "result" : "valid" + }, + { + "tcId" : 97, + "comment" : "ephemeral key has an x-coordinate of approx p//7", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004249249249249249249249249249249249249249249249249249249246db6dae22817588aa19f910e8bed1f89a6b5ea6cde4800dd9beb28d1336bb46075118144", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "9d422ce42f74aa0272e5530b5dd094225f11d1100fed954ff714a2d471559cef", + "result" : "valid" + }, + { + "tcId" : 98, + "comment" : "ephemeral key has an x-coordinate of approx p//9", + "flags" : [ + "EdgeCaseEphemeralKey" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c71c555554e83c4d16ba6991011cf3f94feeff3f48ad29ed9a22bcef8fac40d9b2af25e2b909", + "private" : "2bc15cf3981eab61e594ebf591290a045ca9326a8d3dd49f3de1190d39270bb8", + "shared" : "a5ab2cc5bb6881f7e734d7ccc9d448127d9465fd342d81c8381572059b3aa2b7", + "result" : "valid" + }, + { + "tcId" : 99, + "comment" : "edge case for Jacobian and projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000459294e8bc54e76d48b5594f01fe4729566d9b6df6385982fbb533183921f1a124543e4110bf4cd22e1d444d83e24c5ecdb328a98f2f93e8edcb99b07d5d9fafc", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "e976057e8a322dfdb2debd55d8e58802fb54425950b2dbfd00f0813de27105e4", + "result" : "valid" + }, + { + "tcId" : 100, + "comment" : "edge case for Jacobian and projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000429b579690264954985187aaa9ea313d39b5c828e022afce8fd0cb764ed693473ba8cde1b2be1749cf4d5bc0df578009c9650e44b6c385c5ee2621ffffc205cb7", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "09fa5a510558a12110daf75117af1e175f93d7c4d8ba41c5bf3efe95d829ff50", + "result" : "valid" + }, + { + "tcId" : 101, + "comment" : "edge case for Jacobian and projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044150a111e0489cc82d43ba66f404ba0df2b1fa13ffea361442f7854f9abb381465627e96f372fd0400eca42113890cb110c11eda22405bcd295b1caab9d93af7", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "98bc618faef7c4311c3d8fd37b39e9baad780e14f0527fa69a3f4c2b66ac6394", + "result" : "valid" + }, + { + "tcId" : 102, + "comment" : "edge case for Jacobian and projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a74646c798fd5a0af442da69c822cdf1134adba361f90663d626481aa10e0004567160696818286b72f01a3e5e8caca736249160c7ded69dd51913c303a2fa97", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8a0b2ddef3a1108f6ea367ed08079a0ec98494fe46cfad584bdc98e99e6d7f99", + "result" : "valid" + }, + { + "tcId" : 103, + "comment" : "edge case for Jacobian and projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004611c65eecd9e3de528f639e8b6698688db1f4fc8c11650a601fe6daeca5c59665fa45a23400633ba3630244aa6b0144de2ab3b6295e3dfa15f586e40a84053af", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "89b86329f0f13aab07a48d0d3b7afe530ad260a90de6c25ec3da8b6905502551", + "result" : "valid" + }, + { + "tcId" : 104, + "comment" : "edge case for Jacobian and projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b49c6791647937568c7570064856420835d44af1ceddd682967fbd44fc97294cd135651bd7ee3aab957eba10ed4b7a5c40ca00d959ca663080c4eaf0e189bc21", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "751b521de6384a017caafa10419fc35d58f6dbace86f6b533c117e38dab1d689", + "result" : "valid" + }, + { + "tcId" : 105, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c73c71d856cb949a31c249c1e99b11ffb698cbc1dbf4002e956cdeb655f84045716e98dec10a9905fa1d3a851f4f1fe617356cb56d5643a148eec376237a27f1", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "f282a78942218fac638eeb0eb15098f5aabae15b3ddb7abdd40a8ad3b5540c8e", + "result" : "valid" + }, + { + "tcId" : 106, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004acabedbe760e9330af3508209ba0081b9ce061327d1ea0b6ffdc577dbaf28e269cd00176358828215d30ade0cff8cdc0856c84fcdb424feb93ce58a2554a9bcd", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "6aeb7004f6cf6b05f30bf481e8b32a1e25fc66d96a4a53165727bb304cc27baa", + "result" : "valid" + }, + { + "tcId" : 107, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044cc9197bfdef17d33a9ea743bf83747b564d6ad11e6080957a9d3ac44165fa793ce20d13d431071be367e592f8a22f88edee1cd51cadb0845ebea64b11c45708", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "67b5a9926bc58025c8bc2b9504b72c3a8465173d70f5d5ec1580fe88c5a4887b", + "result" : "valid" + }, + { + "tcId" : 108, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fbf411afc88358dff2ba156ce273d7b15d0ba3980a60a82eb38bfa58995e163d57c62e53070e8e6cb1df4ef509eb2598dbdb07a5ffd71301eaa2892ad1238f4a", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "12182c05568a6b18a98ea19110330146e7dbc49274f324b5edef4eb861f72bec", + "result" : "valid" + }, + { + "tcId" : 109, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004cd7863adddaf0099647139ce64ca0b39dbd312ccf96c15a62f2c49e628248235999f82afd0f76e744afd0fca2aab36f22ff7ebefd8e541fcb6e972704b8ac521", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "f75920e61e7d05c3cf4107e5e81f3c1be7ffb0637f0ac8b895d87361345d9a87", + "result" : "valid" + }, + { + "tcId" : 110, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bd4fd857640a6bdf5da42ffc5c2c1755c4c125a99d380a5935eb1c4c3a9c2a3a4760df25ca561724a82e3f9c9d782536db4310d6c9c769f51b733de44a9c02f1", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "373aca70b036b70cf8e46fc9457a8e19c6821be2f2d6c16edadd20d7b30eb3ba", + "result" : "valid" + }, + { + "tcId" : 111, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000445654b3b66065743ac86854daa77c9e5cf713a402fbd4ada365f4f96bf1717cd63cf23ba035de430a2128dab0d2c7b939d44c66624f6979275cd37cd02370669", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "caec9de4a74d76603c5d5d07de2df0d435bef2b9063b5123305d2fcbd5dbb318", + "result" : "valid" + }, + { + "tcId" : 112, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004dda793fe7fdea5c7481c756f59fbff48481777a54218d95eaa24e7b86d8a5858fdac18590cd96e193db51c50307d2606674d5b8afcc82d1b672dd8e09719a6ac", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "27980511f433feea84475b82281b1fa6b946c97c646738d5ac3345250f86037d", + "result" : "valid" + }, + { + "tcId" : 113, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042e043b851fc5a5f12deb76fe94182b99bbce727b476783f9d868ad3ab7ac7a251462b469c2e02491e05a3a4523e09a6be8e5b2d10419cb7760a8503ae4eb7e7b", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "20b27f84ae128f674e144d82bcd1544146bfd0150b0843ea585314f59cc54aae", + "result" : "valid" + }, + { + "tcId" : 114, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043d8fddf41e52320c8081e0d60f5397993abdfa979c4b5e832ac61bf3cc2e6fd94504fe3207dbd18ebad2b921a52a16a33659939c16fbb9186caf5e2cf3170346", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "92592791ff90b595dd2ae7ec039bf6b7bfeae7f044761f5e7fa86564ebc46b2b", + "result" : "valid" + }, + { + "tcId" : 115, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000465106fdca0c408738c2316f3ec2238d459157bab2c2855323b95bd271c91dedcd9fc2d685446789829251d293a50d150df5f1fc1a0604e4defaa9a8e3f8c9169", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "8e61b2e072bd1401da12a3f3d8164daedab0bf0ca795bcf56aff81d07caf7281", + "result" : "valid" + }, + { + "tcId" : 116, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004320c813548183aadb0e7d21a0ffe472bfa9b4ffe815adefd09180a3ae2d15fbcd0ca20611d2232847aa80e7f7691c008ff886dfce550f90c4c19982ed779b466", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "a41170f616c5499e289b4893b3973e1155f66ff354ae6a812bcd0e33bd7dd5cc", + "result" : "valid" + }, + { + "tcId" : 117, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a0e2b1a92a6afa9fe68424bc63dcad620b7dc844e4571f5404ab9d18bf08545ccba1c1ff49bf7baa9be1fc0ac4bba63b41ba7a374e15fc39b884d80a75b07092", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "b8cbc27d4ea1b25f2292292ae53a3bb954b7ca77ccca5b4dccf1b958b0aad163", + "result" : "valid" + }, + { + "tcId" : 118, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004dc97139a3dd1411d74616154aa0d6bce787cfafbd8fd060b680b04b422b0d22f6ab50e5c68e027805953bf7c3be40a8f7c9b56c6dbbe86337e6163ada01d9d63", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "4baaee93a752397bf2ad0be72ac82b0ad2417e167bfdfce4904f012d4c33fea6", + "result" : "valid" + }, + { + "tcId" : 119, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040978d42e1594569589b578266cedb6088a84c9cc9baff0070dc1d934342605e62ce80a966b5ca0344981f4229c7ab622a853bd9bc59b662ecd92df238e4e46ed", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "3b3d86187d05a0012d83be280987dc95b1c0c9b57f253b64530d1d4220aa4abf", + "result" : "valid" + }, + { + "tcId" : 120, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a8630a7bdb78a970a01b20c3e7b95d25d3eebdc8e94ecfe0f508e4136eca49afa5eb12114b50ac77d68d410cd5ef5107b2e68f08600e5e6938c452d51d6993ba", + "private" : "00938f3dbe37135cd8c8c48a676b28b2334b72a3f09814c8efb6a451be00c93d23", + "shared" : "472d4b34f5be6b499f76b0d9e439e115f6a89b725d9e9e811185a615f14007d0", + "result" : "valid" + }, + { + "tcId" : 121, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c4ea8ed31ab4a8c994a965efd4770bbb5e26ee54cb7217ffd31fa888c108feca063c415201329dda130f43973f442ad320da0ccf289cd1b71489ca0a7201d5a6", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "fa67f4a9ea34fde196a7dff6bc1a2917b1526d54950335bea2abe22e1edab410", + "result" : "valid" + }, + { + "tcId" : 122, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000491780d1905316105d6a6aca94a0d4488d134f985f7e29adecb1bc6cd0c211a788035b06e495d1e58b085bfb6720bca84557b670de34587df0d7e3aad5bbc803a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "95c131de0c89e5b17f91e56779c1571de2c8a20794084fa274eccc8eed1d3d65", + "result" : "valid" + }, + { + "tcId" : 123, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041961a1a4b29671f1d835b313ffeba4d8203d8414cdc0ea11e47d619b47038b1de50a63b89cbc8956a5870c6c4830e2102d5281b9b5dc127b1052fe7b3e11c438", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5bae6d6d23a68f283fe0de46f1d74c0f52e278cb181f55c4353f768ba162aac7", + "result" : "valid" + }, + { + "tcId" : 124, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000429a9e7f25109a8c4bd80dbea05fbb46aade58797c3b2fa5f00f0f081669ae39d2c78fb1160de6eda50f472ba659d4f1db4ea6e297244b6ae68a051d96e62e75e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b4fe1201a8647be6d6d59f406fa970cc858f5a46a50a6ae9d992c0e23f5e2ad3", + "result" : "valid" + }, + { + "tcId" : 125, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041617dc03d3eea42e8ea2c5bd034a38c5a3d74165a548074b7b5765ccd8465b7f61089d6dde53430f34cf8285ddbc584d1543fdc70c2333fc315eed4e930ac3a1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b721ebc7eb1b09438d754ae80302b2a2bf40f866ec507540ab5120b22f868886", + "result" : "valid" + }, + { + "tcId" : 126, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000420e7a1358436f675f3774d60954b5621145b8f5260b5503636f54878ecaaff8dccaf2fffcb7c7084e325dae5e24bff5a34e37980d1722016dd6667da71f164c4", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b8da5d1bf9419e2b876e708871a9a29574686689bae8d87985d72a4e573dded4", + "result" : "valid" + }, + { + "tcId" : 127, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042759bf4c336501340cbc67afb4a8f5744f9131d973966a9de50ded60fbe045121b67a9e81e53b064adeddd16a4c030dbb189ccd7019b329d67a527c311723469", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "39aa2bbc4b6f30c268b19909d5070155c39c60649b7a2ebec266bdd18fff8cbf", + "result" : "valid" + }, + { + "tcId" : 128, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000419b8a10f5021f11e29e18611fa8284b7e9a3f67cf36eec8ecc4d7a5b54803411311a8a4e199d98eb358e19a27e80cda6af142d6091ddaa9370ed610453abc6c8", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e40396a908c2cca4504f4f40be394a12244ae184f6909ec725ce723485bbbb97", + "result" : "valid" + }, + { + "tcId" : 129, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049ba841f41245ac08955966470425593290b9e1d87bda8f47df19048db8e3d83097f68905f360ced26801872a7ff124c3637b02c4a596b83abafe7bce567ca177", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "13a21dc50cdfaeabd572f2d94dc0f3f768f17f990ee59d7f16ace9bfad8a705c", + "result" : "valid" + }, + { + "tcId" : 130, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000468af761d053dee64aca5e98f547feb2dfb6f5edb8138011c7f5c33809b4b9e00466dd76cb8ceeb5132862052ad3e08bfea245ef16ca0d00ed0c4b45fb6bd3028", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a82fb3bbdf6d69c7398ee9020fe006d5b28c632f2da357393fe58deb8d27fd08", + "result" : "valid" + }, + { + "tcId" : 131, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000405dc8b18bc286f203213b1319413dfa4911d6c2e30f3c778c55e4e5f5d9bfdbacd0b3b209e76049895ae80ff63c0225a563228cd99243f628a9dbae70d773c66", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8fa44f09cfddef86aa9007cd4bea6f0bc9b5b2115256303df09f8a20909c5271", + "result" : "valid" + }, + { + "tcId" : 132, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bacb606384b1930bb4b74ded236d03d3bb1739a51b73f20dc3349ec3b383180a6896ed59fa0b654a9c404b34fee2c767be2383f4b8b171d2359806b04b502d16", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ef762992d22bacaf06aa1e482c0711046b52e0e40de2a21d4e38df0109ad67c0", + "result" : "valid" + }, + { + "tcId" : 133, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000448ab89b2a312de510a6d3c9ac9e4c4f5b46e04d3f858433b7646e46273d94dce4a0c7da616388f1eb8d55ece64ab695e5405d779c92f3bc2595c27d65def8db9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3b0936f22337ece971ee102178f37bca3cb69b50b8ec9c9b47334c68b5d4320b", + "result" : "valid" + }, + { + "tcId" : 134, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fd9de304ea5f18dd641510b9809473d39a2373ed5a470ffc5ea7c83093911b4540baabb9d912279aeea44379110abec75ab7994a6183c6294bad27bab5bbf821", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ec571878fb1e3b1f5d4f66b8b080bd4e50410b6eeea4dcd3cedd4622bf876160", + "result" : "valid" + }, + { + "tcId" : 135, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bf8976a28221000d7f5219fa8d06f9f8ae47be626f89c2bb6c4d0323bf02f8490c78bc948c6bf82a191f1de972e57db35b05918594ccfbe8da19bd46facbda78", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9f3d9de87d9cc5099ff4f56d913b98b5eb1260e2b3a2d7a3c5e01a7e68219d10", + "result" : "valid" + }, + { + "tcId" : 136, + "comment" : "edge case for Jacobian and projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c3229c9b4f409a6539484152b39535c512a66748972025165fd888c388369fb3298cc41dda36fcb15a0d97cabf757bf0737dae70829f4b9a1d499d9e9911673a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "23adda6571d4ad7e940c21023af3ffedef9d8f64e83cc1cf6e992d1da1451d91", + "result" : "valid" + }, + { + "tcId" : 137, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046f2c3dd84b44daca936a2edaf43adc8c1bd5f42801231718fce6f5e94d144717a247598c11eaa2c507b0e96dfdd03294cba4472ae8a2128e36f1eabd315aeb25", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "91e70bd8bf85bc6311b2cd7791b7edf00e22f9cb8bfd72571ec9a03bbf716f37", + "result" : "valid" + }, + { + "tcId" : 138, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a511b09334f032cc33ee4ddbb839304f6bbf1daa4a80de524ca24ebb65a0a92e4ea48243cf7e26deaf4de7779ca71f76d9dc6c8c1b7f44cf190fddbe82c2c940", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a7d2f3e3faa772d7a86026e2f183dbe7a298ae3d1bc3abcea0df3c11cae4ca60", + "result" : "valid" + }, + { + "tcId" : 139, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047cf4a6ec110db892e45a7b2ab38b411a6c41e86fd21a6455ca1a4c2e2220681309b3e399ae30098bf872c9aed5db69d14cb71149abb05cf5227a620c4b16b740", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c611d27e7cb52e7c56cfa9062e59f3defe7c1e225727b9049384a180bd1688a8", + "result" : "valid" + }, + { + "tcId" : 140, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000436c7dcd152fb7e53fd16228465ea0c419da29cc6c79fd4266303b3bd06aa0b9036363a959f8c0b400da525ad7674677f829092ae7f7e8dbf88397fcd19047af5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "661f5d36b57af48982e44ff89ae75f849a08b1daed6417a20212bea88c7f2f8a", + "result" : "valid" + }, + { + "tcId" : 141, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b61d3cd27bfa1269234a777e118f7db10a3844e8c7d1162c099a8099d887dfb849520e9a038f8ba8804d44f22b37452514f0aefea93bab7bdf180db54485aada", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "540e255f6cb58d237990a7437cc7aae770428796deb607bc29fbf0a4d11873c8", + "result" : "valid" + }, + { + "tcId" : 142, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ac9cbc8bd917192928d9a065fb1f89be4bea850186fd466a7a9014066ce002c51a906c90eee55cb5692f0ac046746ee4bd2205fe5f435d1e71f19a8cb8550f3e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ac6705af9d059cac9977967c0ce514d70dc51d88fde684123a921244933ba8ec", + "result" : "valid" + }, + { + "tcId" : 143, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c050d058aada9e43767f1f760abdbc421ae220fd01e832ae81c628bfb1277c99d35483fe6aea51dea9c017c326ba7bbd4175687a72dc5c4f449eed0c53a08052", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f7a5b69bc39a976bfa6644a152789c3149352093b1dcc4b6b06f6c4c7c90fdf3", + "result" : "valid" + }, + { + "tcId" : 144, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004399542882ca4d5fae3282c4edffc3c7eda7c451e46adee4219015e91c8c69cf8b123f8ede48ab76fe2c9218326cb06542a832d0a32b7ac0d485b4629bfaf0d76", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f0587fbd10e332ad297b5e463d4f09d2167c8589c46dc6680c13b044a34485ea", + "result" : "valid" + }, + { + "tcId" : 145, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bfc304fd88ad8f11801d35286a49505cf349403d8100efe903d078efd5d3a66ebf05d6fe2a14c069902f0d8eb6800460731d48395efac4428ed87b00f3fc6fb0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2fb4991332a5d648df5ca6bbd08575c7553773a97312303440cfe7e43d3a268c", + "result" : "valid" + }, + { + "tcId" : 146, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046881678d6c6d8ceb01de5d6664a0b57b470f149492e8e7513e121fad849aba1b2ad34db024ccd2694e497f6adf4d3cf5adbf518c768a4628bc2e159d0949f2aa", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "cb65082df5f54cdc668625017cdf45f22f305a8f34ad91fabf36c071496c84cc", + "result" : "valid" + }, + { + "tcId" : 147, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e38dac9ca4ef5b35da77d846093e0d29c1ca350e72b5a6ce901bed9f472ea199f805fc3202920782f49f4b6e7257a4364dd5451d982f29b62d5d4b8e07a33068", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "6441ac7be81c2fb6472655528f21454d40236a878fbac2ce31e4358ab4ed02cc", + "result" : "valid" + }, + { + "tcId" : 148, + "comment" : "edge case for Jacobian and projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042d8c6732e3d0e1822193243bb9ec3fc2c7f264e94ee61b295de5b3c10db937f135343453838114a4752a5514bcfb9dce10f83e0190c540fef10675cb42584a05", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0b586c442eaf016f382199729f60240ce50c0f7107c488a423d42794db5f6663", + "result" : "valid" + }, + { + "tcId" : 149, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000420bec8d2b5aae1f955b7992198bcfe20880494150058cf6151fe14f6071bad3132dc1ce503969b824c5a9e23aeb472255dd23f97d02f68281ad0269818b17e49", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b376d9bc1909eef92953cebc3bd6f2bc0cd6cca620c190141740f62239579334", + "result" : "valid" + }, + { + "tcId" : 150, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f456946770af5d069d60b279ae519ea18e719abaf5787476873a5e61f969074d47eb27520d72fce10650d312a5431bbd6b3f37cd46755b7a8e1ef1a796f90908", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ae739f624ccb1f0ec964b2d1896d2df83ca1969ad6ca26b334342013d83282aa", + "result" : "valid" + }, + { + "tcId" : 151, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d1390a944d24f300fdab9bd272bbaca056feb71c0c37468e0327b08504d55f3a80a4b240565aa43be8f3e2089b4788049c5d378b667e987e01aa8a08a4cd2c95", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3c25126ece58ad8e93ebfe6e7547b05b39c6d9858e559fc01ff6b6e50b0a22ac", + "result" : "valid" + }, + { + "tcId" : 152, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043e61ff2443d10b1e25fb0ce19f57ae39223d33fbb0e5ee2b4740fa19384b7d0e1408119a70aa9b230d9f18269c065c53d4c2619673b49377af4cdd536c931aae", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e47d658df5c1f9599d4e560954ab860e9a6377decb0b56ef3c13dee36185b2f3", + "result" : "valid" + }, + { + "tcId" : 153, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b06028d729039617f912e86d1d1f44e93e63aa216ab0641813d06c16a3edaee979d21572f9540d7b07b0a6667f7e0a9452f6f9f3671e522e2b497eec138a46ea", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d8279c1ec95189fe63d75d1c6d7fc312e411a3d11e4d671a49fa17fa36c3cee1", + "result" : "valid" + }, + { + "tcId" : 154, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040a8f74cee50d1e853a38c026f627fe47d81fc11f886268b35379a32ada249bb91d63cf0198e1c926bcb65ce21813e4d72118b7092a5e8bc152909222ac19603a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "077c7a4e606099d781cbe5a89caf7bdf4f448b1c0d7d3097263a045170275a3a", + "result" : "valid" + }, + { + "tcId" : 155, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040edb7020cf4d6ab14b5a3f8f698d66eff983588846d718b4845d674e7bbfc0edd92a27e40e5ab2e0cd2d0ac1ab679402ce36f16d3ebfc0fd9df817dab17292d9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2025808c609ab0b07924444ea4aa0fa52563858a53221f719c91b15576f49ea2", + "result" : "valid" + }, + { + "tcId" : 156, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f06c77cac24a6ee51421863a0d1469418f0a6430e062da18f27dd57401c0b612032b7e0591455ca33b4e49e53facf5864410ba046ba5d4fc6bacfea9a0782ff3", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9832405d565c97ba1d6ff46e1d8fe33886222cbaa69963868d12a8be07abac6d", + "result" : "valid" + }, + { + "tcId" : 157, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004cb2b9df4ddc430df7b0befcb5a826da1589a15bef1b6b25f1201daab5b2fa4ac3801e27d112f0f3276722dcb58b8b4f4844a2e614de49db440b7cc7620812734", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c4bbf44547e8128b9a46ed92ceb07df691e2e91d0b47dac0dc2afd14121e7a80", + "result" : "valid" + }, + { + "tcId" : 158, + "comment" : "edge case for Jacobian and projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000445206b62e4a3c4404c74ae8695cdb905a8e6a9456da09c72c72eb7712d9d52e81ddc2d56b634e4ab66b798cdb4db86cf94f02208f747304ab3d5aa2bb125e137", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "170a91aa8196df6f0d09ec197fc526996ffcb6792880f01018b3327a096fe638", + "result" : "valid" + }, + { + "tcId" : 159, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004584d2dc258bd4650e6fa04fe9d3d2a5e768d795945ed2323f844d0a8fa0c6fbd5f96256b9e1b7263fa00fa758cd6be15d9f6157fad66c729ab0dad694564e834", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ed527e31223f175aa786f146b3fe0561a41b1051d5eb32249790481eab1ef381", + "result" : "valid" + }, + { + "tcId" : 160, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046c5527898ae8067da56ac82caf338c9e7f40ee4489115daf0aba923a8b6e501e430f5970ce9d01d03ec076f8daf685cf4d5a9ccd5eb9e849d43ae2f36f2e80e5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5a74555732d8541d2f73e3a59eb31a131c8d41464a1f2c37531a25f4a6d3bfe4", + "result" : "valid" + }, + { + "tcId" : 161, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000452cd9924795fe2a251af7cb569f66d9141db894545d798a0db3d30e50f100fe204ea81c808587c90f3f2c94d993c2d0cc4be64dd6aeb9dc81c70d78885b2f776", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f2750c996f22762629a3f808da6eedd7cc72af4fb0bd816c86e636264bf57664", + "result" : "valid" + }, + { + "tcId" : 162, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bbad8da4c018bdc15a5af8f3da4b384c530ea75560cdfd242bfa3235d8d3595f734cbd866487b83fcb84a4ac74ac548f2535b79b57d02f03a1a37e2791a096e4", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5d2163ca850749991cf782c3852e86b05e6b05ec8662905b60cc7b7e37434fbd", + "result" : "valid" + }, + { + "tcId" : 163, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004389aa52235043bbd759868898bbe277ab996ea9387bd7098b0072442bd2b42f5b823364e9144a1eef1f10093fda0c30168f3004e2c2ea74fde4978f3aa1a31c0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f8cf2cccdcb53b3d3c6d1990ae16c71ad9d141ca49f8574a72047ce6c2da950b", + "result" : "valid" + }, + { + "tcId" : 164, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fd1bac144354cfe1cd4c64aa3a2f77f0aefa26cc5141082676370a0f1ec92cd8fee66992d2d2fcb87f90da0a6743378466655519bc782dd7b0ab570f6ed451d8", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ccf6e14d1add6e4b5a4228e5aad0b31fac4b45e2112c1c767e933c6a0c3f2edb", + "result" : "valid" + }, + { + "tcId" : 165, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000478c926b0ee01c000c25a83631219f08d8b34745d2ea2fdc9ebdc5a2288fa9b0306bc00ab3790508e5705eeabfbaa0744719c9bd7b467ca4a37a06f6fdbe6d86c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "57556459e9d32b75a13776bddc8f547cb64708133e7917b61e3697c392003de7", + "result" : "valid" + }, + { + "tcId" : 166, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044cae5606bad6013f7f36190d7254cbf0d5a92b338e4a47702a3c97a3371d7ec280d273dd598c20392c540e58bec9b180406f3fa6e6c529a851bcf2b96d8f3809", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e5490cb494bc6ab2108da2cb0b926cd878712f54bfa72b59f702c180c62b0c91", + "result" : "valid" + }, + { + "tcId" : 167, + "comment" : "edge case for computation of x with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000408ccbd74f297fe71ca3115c0b1ef4e0421b99ce91ffcd4b72a530b22993e18e9ba0ae1bdbe1c2836ffe9a61ae5a899f152c90b42823638be4d51dc3afa99e6a0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b3ca753c1e1067b550736a66c0d6b6f47e9394c56bb80b5d4204fbec9e59b490", + "result" : "valid" + }, + { + "tcId" : 168, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004aaccef834f57e6c5526fe92748cd8cdc1375c2ac71139f5d2587305bd3fdd3cd965dd5374b6a319850c23ebc2ec7a2deb7ff3e428679d4afc9df7e75f2e06e4d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b0cf8c178ad95952520264d0f4a24389bf1b23dc7ac1b65d4e8fe822dcf20d67", + "result" : "valid" + }, + { + "tcId" : 169, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a585e1ed6e47224a472cf4ed4ff34e6251c62ac682e4b70992d5002f08d9e203e9b7b28895b9db4016e5d94a9f59385c16db738a83b84e6d43ecef820c55d462", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "15e40dc49ed62d35e8c91999b05068f419238a222deba206df47d909d3a1f40f", + "result" : "valid" + }, + { + "tcId" : 170, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b104d0cc4a987771655105cfc840f195746e112334c54801fd93f4be8b114a1d3cd8cbcf4b274166f82cfe57393042e3534e68df2f4c3dad1b7ce72b47cad256", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e9458064d3bfc444417486ac1334a93c9aa4468031134ee0196ca6e31713956c", + "result" : "valid" + }, + { + "tcId" : 171, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000482bed3d552098d2fc9e02f1f3cc32f5f31cf6cd101bbb8b42bc6f732badc1976229257d92b241f2031ecaeba10f1ac154d8a3bea309328231272eb6aa01aa65f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f4446e98a63b0598011baaa4f930513218e8370abfbd46f721c8dbf37e170d85", + "result" : "valid" + }, + { + "tcId" : 172, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045c4fb681213bf39b68e7ca914d2830b12a7a32c96a9c788ad2987c009e08d0a376a02ccf594c28995cfcb285ed5d91dded92921108a0b40928487cd07180ab21", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "dca827687aa24f2fcbcab5c38069f4860dee6698fc23908b06c7dae713a141f9", + "result" : "valid" + }, + { + "tcId" : 173, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046b29f8c006869ab6be793ea72b970aceebb7a4c4b6fbafecd1e35713a28bf284c76b07dc14f1dc533f1c4ccb0973eb53e53023f0b0f1a8914c7708c2d73d4817", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "19714f1d4aaf8bd61520b647633a8e53099499ac368c3dd6f1b084891619b0c0", + "result" : "valid" + }, + { + "tcId" : 174, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046e6849c2b07a37c4f36be911b323e4ce70c18b15902612c4fc0fe6d91e7c180de925544363c68035498cbb2236f5c1ecd0e4b2cbb5801a8cac4d0883f651bbd0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d7a2da8de2434e2ad264f9706b30d0657c727606d8285d2179800a970b4faee3", + "result" : "valid" + }, + { + "tcId" : 175, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000433649a1e74c7ffb5edc3949c58b7a7f4b5348288f621c50fbbdb714fa42aa793cbfd969e077b00ead21082f0980009868f79e430ef1c216394bb0e9eda135e9c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "853d4e01d4dd4c9d6e7820adc16f32ce7bfeec0d578deaf28af9cbb3315e8f1b", + "result" : "valid" + }, + { + "tcId" : 176, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bf976ef204532bf67443e8b8d9987a683184ec26420329ba268e54e90b480de0beb108df26eda91eb4fd23d26af6f2d78a4281d5ede075c2c715fb1c4f876784", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "35715befcfded16e67fc0dcebe945c6264ca0d91b3663bd3ec0722b585e5d652", + "result" : "valid" + }, + { + "tcId" : 177, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042c435d9faa598070b4920277506c100de62a7df05c34a39317785d628d74dde3c7f5d0bedf54af1c7d21ff955128002fd5296237384723fef1fb806c2a6d8ea9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2baf108668e82b7fcaf3f5e3272637b426c551d8af0e55f5d74bc317a4474767", + "result" : "valid" + }, + { + "tcId" : 178, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043819dfaab5537863c8dbf406ac18dd675619c9a7a554620ad8a14492bba425a3d68e8c68181555e22362415c95a31724ebfe8b2bf1764e209eae9e53b3f462a0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bba443b160997aa8b7fb2748911dc2154c0f6b986fbe9a49e0a2934fa5f32954", + "result" : "valid" + }, + { + "tcId" : 179, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000470ad3a9c9a9db71d420abae84ccdb12768851bac6a82ffd03d89621a50a7c311bfff7c664c211f93768f84b5255d95c7f67887c3305d789d7fcedc2d29989f9a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b4831736601e7387050ba3d401aea241c3506b56a0473886c408b366c8696429", + "result" : "valid" + }, + { + "tcId" : 180, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000458391361fbc8115c978e82037814d31aa3a88873ed6c74c4aaea9727e300d94542924c67b5cf828be827e581dafcbd16e653e72a4f2d4d0550805387b9417e77", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ecd0c9e1acb90ff8bde88f7757a089cc86cba27f0d15fdf737ab3b8ecf9fd9c8", + "result" : "valid" + }, + { + "tcId" : 181, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000423a2be684b0b5f04bef5c6ca8a991bf752f5964f6fdf36d7129100daf80f1434b6f3ca2a5e85ce005e1cb6d2b13094c434fdc1c095a3ae5e53f64949ca56691b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "6b9ee618598f33c184cd63cf8930a4db3a2d4ea022d50e63cdfff85734a77ab4", + "result" : "valid" + }, + { + "tcId" : 182, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004147b8a2fb4f6e85eead81ca0b3f230b8d8cc230de73107d9cabcbc5b39e4e7eadaa44ec1ed0b95f6109223bc480e917419d860f9b9a75f81d6f8ca3ada377533", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d801dc9354cb756e6c27de5a7cc88ed5cb214ac5091b4090624ee8afbcba35f9", + "result" : "valid" + }, + { + "tcId" : 183, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042b3fe64bb142789e89e1092db46b613012bcfae57759ea908165c0362f804f36c0053faf3266ad7eecedcb24636b99c935f1c8e73168f0eeb3ddfb660801e55b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "03307ea557024686910d2d1d2d2760d82664413b8feec66ae8d2dbf1025f0c45", + "result" : "valid" + }, + { + "tcId" : 184, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c4ed72445465cdb44f58b0e1af0823226ea79eb2e1bc3f27fb8e4ce7b85f4a30c237e574c59a992406fd517f4d905e03d7a2b0a40ef85aa3c73bd46a1a06a918", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "dc2cd94321643e89dcc92acb0128d886b28cb7d66a0eaa5b96194465708780d6", + "result" : "valid" + }, + { + "tcId" : 185, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000418ef4e2fadaac1b982a7d2d12e9d5148ecf336b1d3775da2f7df822ad49a1324bd07046a3f8e949e7a0d960fe9d9a1de0f61497cb4e7b2f39aee6844396f997f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b831f4a0fb75927bdd2945c0081f11cce871c9d6dbf83b7895748c3f46375ac7", + "result" : "valid" + }, + { + "tcId" : 186, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004398ca1a944210a10b1f5732071259528df87d42d3d7b006bc6fd9e1e09f6fa30fed379db3f1bd915db2ba27384ec13715417446ee84fb5fd0a4bf6431cfd3f15", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ed607a9e6d41a4bc0535c5161c98613edac6b519590b481420fb2ba1ed2c35e6", + "result" : "valid" + }, + { + "tcId" : 187, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d1c182adb101ebe5fec3910f80058e091d1325433d4fd3bbb38eb75bcaf2698a21218f7544ce84dcfe52e817ec0ba6bf84460f49932b3ec5ed27682d337f270d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "64a68fad2378591a18f8f2a4e346faf59da29446ec16b3fb8c37aef2d79faea5", + "result" : "valid" + }, + { + "tcId" : 188, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043f68c4e412c57da015568e0a9fcc3db499b77e6c0f55050828c50c35493af5e3d0b53fe30b0c6cf42cdf9f4f01d5c9058f8169b241bdea225932f9033f8bc5eb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0fddd50bb27666d4d38e6ec18c8ae1be3d763be7dd11067213e997fa4059c67a", + "result" : "valid" + }, + { + "tcId" : 189, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000456dd4c2b1d7a1a2d6559b5203fcb8974fa81be7d64cf0ae7a14fd965dfd69cddebe1ca78d5583fda3487040dcd94764f8dc619e8d74aae8d9665f340693c21b3", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9c412023b7a66ebc9579a8d16bfd3109ba085c42f3fd395e07534529ad2340a4", + "result" : "valid" + }, + { + "tcId" : 190, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e1e5053b6f43b8714a025acfb86a8f51195488099b1f5d63310a6becd7ccb47ef0d16bc0c3234470ffa8d45f582fcb65ff9ccaaa6ae0cd6b572bebaa50c17741", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "28717726dc3674abb4f82b66837e8685ede16cb0cd965824352ac0a2f9d893a7", + "result" : "valid" + }, + { + "tcId" : 191, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041a46571a1438ca23dc7912a8a7b2245d70c852a6e9f4d385dd608427ec3c41e7fe06e2dedfbaa376a614657ce61701a7db181e5b1f3139045b8424ee54964b7a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2e74661109f0cbc6d587790330d67988658bcfabf1f7498a2b3279212828e207", + "result" : "valid" + }, + { + "tcId" : 192, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048ce5a3c8bd2544695a005841612a7c5d05beb07cf7bca1027172b030acf7d275fba0c339f74ce36d104fffbd5ae1c9c72588693190ed2b3687433087213b5bdf", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d202df6662ba06d3088363c60e341283f7b6300104d58cf6d707262be6972b59", + "result" : "valid" + }, + { + "tcId" : 193, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a0abcdb1ef035e186e720606b07fd615532039275ac1b6f22720b756c0f857cf76e465cfdef30602b2e055a303bc6e176dfe972d06cc6f3821780387bd6357c1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a54a81c18f4b7ab0f3702013678566ce29e91c4142114d62f867a5278f89cfff", + "result" : "valid" + }, + { + "tcId" : 194, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004859b6beb70671b3e64991bb661180dbbe835f63c0a5878c3f83f0922660a7c093389bf4ce6b5c1c2f801c84c54391d53aa953ead5e51b7757b3508345bb4cdeb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9a954112f52d76709d64739dc75e9ce7a76aa19242b306391fcf25ff92b76901", + "result" : "valid" + }, + { + "tcId" : 195, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000435510d43f4d1a173a0467d5cb35a4170c3fc407e55b416b4dfce28650f8802afe8ef2adbde8b40a1714286176d674489bf9acb2e4a8353a7dae1a9e97cbb4150", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8763cb235f2780c1bbd35fe6c387d5505f72eb0a77b104c775c2b3b42786d7c9", + "result" : "valid" + }, + { + "tcId" : 196, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fa4af089c14d6a8be1881135989411607160d141a7a8cb4546f358a797d2aafdbe0086796436344daeec063f4f4a414a8779e72a960892335acdfbfd452f727a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b9309ddc5eb64a4d819a8a332b061a59f163a5f50d4865697e4d123efc9b2b29", + "result" : "valid" + }, + { + "tcId" : 197, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043cdcaa086427023bbd91b5b2e212be77de5591a1a0c210d54f0482f27c426558f8e1f4fe6e3bf037c0e03d4043c1d9b25436e0803b1a42b6de2e40d99e839c68", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "87e9f5ec4a9091d94ac22a6a71408213f444be094c618d459682e17357631939", + "result" : "valid" + }, + { + "tcId" : 198, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d7adbe30a5682acf9d398f58da8fd3b583283d9eda74ae067b9b533cd6c0824cfe50d0371c0e7b59043ffad25e17445cfbdfb3fea40e55bc7de19ac5f27c64a2", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c69a00017184a13c713cc0a70e89c60174361d07dea5085fd707f4b5ed3faead", + "result" : "valid" + }, + { + "tcId" : 199, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004029e1c6eb37c383fb4e27ebb3197688f8d8af755db83b7628e17579cb3f90f058a2bf57857f5ff6331cdcf87440b6e69cc1b6e444ce540b8222b955c98a99955", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c139b75615e1010c920b07d14f6a1980ff4c97a0a9bb8a097aec2a456b6bc4ed", + "result" : "valid" + }, + { + "tcId" : 200, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043a35de213b2dc33eb348948a22ed5a93600fad071bb017a6a250e6609b13f7cafbec06b663a5f54689d0ee6709fd0da46acfd26038935935f749d6d4bc21060f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "70aab5e96e4991321faf440ca2dea861ba007df08ee46c6f579731ead51636da", + "result" : "valid" + }, + { + "tcId" : 201, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046b910d9e9943cbeff717ca9546aa5677e06118f5f04a0246b5bab73505775d65c87a4c1fd7bc584c56991119699b90b4b3a568e508eaa83f118332da9152b13a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e2ae03b844b3f279d5cd16bff20ab5cad07e4c984f21cbe73e1997a02bd2c291", + "result" : "valid" + }, + { + "tcId" : 202, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f102b90ad378725fb7ffe3fc3fe6efb320a728a03ce09a88ee25bab2cf133c04af2cfee528f3913c83504498ca8b3b6deb9e284241b8d01c678ab79ad8091888", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0aab6b19e4205548f929362e72b077f2365667bdd81d93a404343e7a5f84c6ba", + "result" : "valid" + }, + { + "tcId" : 203, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047f420fcef93b0b9d0a9f86b2c65e18938e17aa84eade2a7a6440adec914cb2f6ec1663baab8af308333399adceff908ee33c8f86b3df9ef93a51520931f851ec", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d96cdd08e6eeeca690989b659024f324e18c2faf5c50958da6985f70826095c5", + "result" : "valid" + }, + { + "tcId" : 204, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046b83adf58bbf00da4b77b6c4615925cf5a8f7b72997ad96904855490834bcf82224db940bba028dbddaf3cba949dc41b0db795515e34549fac11a183b89d5bb7", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "434bd68e45630ca1b3484517da080e3c3198ddec5ef1f7e9d2e3425df214b90d", + "result" : "valid" + }, + { + "tcId" : 205, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000404102367dc53576a8385fc58ee2337e2b9af547e69934fe3ec797a84c225df0c621cecc727669f2e558762b65b33b3cf3f228fe9a9c22223ab71e77f904d6aa9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "aea47444c897f7157f336c77b7401979066d6617b59a01988f78f6c9a98feedf", + "result" : "valid" + }, + { + "tcId" : 206, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004258340105842ebe760c4fde13e31eefd52e51aaef938c4477d148bbac6d37412301f4b4d1bfe0e7046cb1f993a359f9191fd7bca7c53e039fa51db8a117efaa3", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "486cf8959f7d939c4c79a0715ba7bbf0cc3fa7b2a1d60e86ad097c91e5612e24", + "result" : "valid" + }, + { + "tcId" : 207, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d9a521d8147c1e83df82b9db62b25e6ff1417ddd41aef3ffb182ad23f27822f7b0ad917462cd2a5abce2ec2c4a4f7456ebdb65db10d962056e75f6f8853d2a4c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5a1f0674b1397b6e653ff6e473d641da4fb9e7bc90a73802739a0349148500fa", + "result" : "valid" + }, + { + "tcId" : 208, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040b58006e371570686658d458f26faa34ccf8b49fba8234ebd7304cbba3ab1b2468787e9c7ea3043e0bf27aa9730a5abe473060b77c53bddc70e201d7f5b1d89c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9a907514a9ecc85f9659b9e97909a38f972b0c9a7c009778b8190438a8ebc00a", + "result" : "valid" + }, + { + "tcId" : 209, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044ab8f5ac88eecfcb0394f6cfe5528596b6b4c4fdac8247fd62957289133e620e1af51852e11b19d6137852e218fd64d2ebb567f8fa92a1ed43a5e34f5694a94b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "941685fe4de816261157b2fe3d3ac28195d81fac6225fd3103ee60a0c24df472", + "result" : "valid" + }, + { + "tcId" : 210, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004903201ba08353ba6158c06e66df0b413b771d21acc0832213bd03d589575e67677a90ccf2f3079cd2ac6c59cc0256a612c079b8a91b59ece1efd076f53bf5b04", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b203eb0365a40624a442572e0bad80e1f0c9958e5709512e76b28f4e0bfb2291", + "result" : "valid" + }, + { + "tcId" : 211, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c8021be2269a2ee83853e4a12bb0680825088d9ac0e56fb505109f4708dd9d5dd802ad690d8e8b817a815de607865afabfbed7650988f925ecf23fe5654d0c9c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e09d25f822471e647064b5b68cd2ae42d6be7b8765cdc026bb7696a524c83f49", + "result" : "valid" + }, + { + "tcId" : 212, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a53f7c412c11ad6a362bd2be2e7d1f20440297be86594abbcbea2594ddf9372379db08ad87b536939a70582682cb7570263655cc25a2979f845fd68be3d82953", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "97e3c29f69d9032e676933edb152f2438ec7dffb17641442ce9342e138f81667", + "result" : "valid" + }, + { + "tcId" : 213, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000446feed4e522963192cbd6c6edabd5175d10f93999a585a045a3026b69bb4d528ed7f6abd7b39e40e08e2126991ed410394bfdabea990abb7b2ca5eb9f048fa4f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "cd7874612d68c907b434bd81bf1b1a83cf9429b24cee753cc228ecbdd6657388", + "result" : "valid" + }, + { + "tcId" : 214, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000467db11ee0b73071bf3b815864a178581ada3d100918365e7120d9bdec9cd9c3325f5eb5a1b66ad104a5c9e43b07afa4b152a75fa22a3e429af41e459e7993e45", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "621ddb1893137c12147e909dff830859dcd73ddb00acdb4097f1d66e14fe366e", + "result" : "valid" + }, + { + "tcId" : 215, + "comment" : "edge case for computation of x with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000414cdc4f16c07d6e6074caa8ecca26a0186347e723dcedf9aff9dc6fc8c3815bf5d64fe2d7e6abc20802a1c158040cebd614deda0347987e0cdcfd41e09618cf5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "19ad362ef44a36342cf9143b88470d5659fca6a3a30c904271f6d6bdc05e9407", + "result" : "valid" + }, + { + "tcId" : 216, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000424193c3501ffa77ebf1ee62f7c118b28c05a1c0a946f442b208a8305c6a745f8863603299dfdf5d2bda19230007d0e03ae61fe1caeafa584ddad4cea6dc7d76a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "43bd8cf370257bc88f38b0ded68af2f9d93977234a19fbf67abf2e0a4c09c120", + "result" : "valid" + }, + { + "tcId" : 217, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004081ceab1d3cd5317fc782c9c8dc33399705aba6899c0b804efa96ed4ee944da900adf51cd31b5000f2d175695d48a12213ae1595b98372643ec0eb400ef79d41", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9d920e7a6f61fe4140bbe56f4317e3892d21a80fb480a091a3c16a0a67a7a97d", + "result" : "valid" + }, + { + "tcId" : 218, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000413e56b207855eabb4b8a27dfe8d1ec89644be7c096f6c2f3a122c9cd0b8b508bb5b7970e3a1411f4ffe3711405ec65ef98db12a2b37d8c18c8d1984134e85492", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0796221792860298f1b4c5aa1561ec5db01ad876c3552bd96b00aa23ef47b71d", + "result" : "valid" + }, + { + "tcId" : 219, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045cf95e23e681059f008b32df326ffb7795bdf74bb337f77cff5052de7826794b5cb038ec1fdefde51f6c68dc5e12a198a51ce86b92167883687b253415d6d37a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8cec890842617de7789c3c2909e2d38031d5aad957d995bdec622b010ce9e0b7", + "result" : "valid" + }, + { + "tcId" : 220, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049c49754a4c45d97e5b70d0931b98f60b3a99f51a95497537bd85ede7e9879429dcadfe273a4086c30dde4755667923e58c463e8d94cbb7d56c9e0f4de79e6d21", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1d4c7c7aa359140edf907c8234ef16b92f201f562c2237aa32adbcbdc0cabd0c", + "result" : "valid" + }, + { + "tcId" : 221, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fc7fd984dd0dc3c93846f8b41b07296ea854401325f155f1236f2e4414a9b9da473f38a5f84d08c0ac7a1dab8a568eac21066074947449a8c3d16f055a379bff", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b15134b9e91996e228ea7ba6cb4500a117983c8eeb687174657354e59961e521", + "result" : "valid" + }, + { + "tcId" : 222, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004337e2e260a3565ff81e0be900c8dafb2ce2310688c3eeb6c025cac208b08a18a4484fc5fb01c2d404da99b56a4dc226420dc3e676fd0223ba3a45d43cdcf3562", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "906acb96120ec7684e391100cf0bb747691678eb3e147f53db886ba0fc5aa70d", + "result" : "valid" + }, + { + "tcId" : 223, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e2b170d1dc4d9e329514a54f10dc81d902f3752c3a6e2f8be5d820fafefa9d8be087dbd390152ebb04c73b8c504b994a768372d3f920a5cedc4242bf834ccc6f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "73dd087b1cb3c5a07acdb9b0a4a02c64b7087ae97836e943439dbfdf41eac833", + "result" : "valid" + }, + { + "tcId" : 224, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046702ab6b257c24440bf719c02d2161e4e31e22d55ed8ad0f33e5af9568ac4a9abf87accc758577389042f5b650c37db6b0c7682203156de73728a582bed6a6d4", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f73c49f6da537b2ff30ead7538c04726bc74152535d22b6baf92d06adb45e676", + "result" : "valid" + }, + { + "tcId" : 225, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040cec0aa4de0c143f5d4c3d36de3db4cd72e8fe0fbd336de879a562ac87e628d8e75d0d0ae3d7b4d869e7f6ff564e21efc30a15ff2d4c87618104fbd42ef5e00b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f4a757ceb0ba6cb9618acd8fef68d2c8fe9901fff14177f27b6e6b8c6bd34cb7", + "result" : "valid" + }, + { + "tcId" : 226, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049276151fb999ff3f7fcf542491fb62479fd1eae93fc2e7d22c38d944867c447ef0e7185e4d55a1c2eafa2cf8d262636d6e4b353fe71ae3d3cce6b158d86cf5fe", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3eb4a634d0090175347613b7eed6d49b9b5944e70acc3ed98474989d30a4c299", + "result" : "valid" + }, + { + "tcId" : 227, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e657a91abdcb67bffa8f78565ec796b4901f2991c12722d27bca6a0217f2b00c9bb2cf5f6c5780c70fa8f03159bcb0d56096aeecf53ea5e28d1058c3a50d2091", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "520dff4d04085871cff69b3a20a75b8f3b103da0e468365e8c9287c0a7ad7d9e", + "result" : "valid" + }, + { + "tcId" : 228, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047c051c1eebc76746eb267e8e91a47d8ab81b89bd3b3a9de6f1c3e6b98db81c7b75df088882150b97e20146547ee07b6b5620bcece4d40a53eeed84e5d4779a1f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c80ac13c5d2e6723e848edb023fc17ecae553781a4aac90f2577fae7511711cf", + "result" : "valid" + }, + { + "tcId" : 229, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d890400f1230fa80d8d4c95173924e9e7b3458f7e54680ab1834e505a2dccb26f714374c9978432830b8e1b82742ca86777f9b8b686b1924ee55e7c572c2b119", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b0c28a9938cf095a4b0ebf3daa6a16e19e3f4199e3475ca3aa58746f651b921e", + "result" : "valid" + }, + { + "tcId" : 230, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f44866b8ee1b937d182ff79aade41b549b71ff1bfa882a192ec90dc87a51774d5e335f19880e8438b9f205932664512cd6dd53d5a40a7008fc5c98124a7d9554", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "78dbfec6b4aad2d0a99bdde7b90996324c0f7b9d136a6ede5c2995197d0d412a", + "result" : "valid" + }, + { + "tcId" : 231, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fd298ab944a08702816a7395f84e45ed782968b701838b67fa2528111cd4f4148599867c89174f00ccf30627815e6618bd2845f35819db0754180535bb4d4b2f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "36a2e77f56c3e5b11e35bf4ba5de1885cf0264643cac5d6f7bfb1ae01e39a6c0", + "result" : "valid" + }, + { + "tcId" : 232, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047b78d59967ed07c83f0ed7f8f0b26388db76b0863b64ac14b7ecbed8e3a1bda24b49dae1adf948860741376c919cfd50ffcf749672f19f78ad565e88f6096df6", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9f4e92d9a959c09eeddd152f6d95ff2c3157446f477fbed214a00621d014f936", + "result" : "valid" + }, + { + "tcId" : 233, + "comment" : "edge case for computation of x with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004791c9017b3a93ca2f2d03fcf18b4230331fdc3de5785e847c9f51d22caf50cdbedc729c92f0a88233a29a2259e7e6265b92a1438c0b5959167fbe2aa4a65a6c0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d0b16561349f182ef2792d0c2dd585601ce4e032754b7628b3d801f187c14fd4", + "result" : "valid" + }, + { + "tcId" : 234, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004475786ce215a1873e04a0c67642c319a6d24dffb06a4cffbb15a8256d2c811ec5a1bba7f661e38d694d9a11564b511af6c6632a5efc933732642dd5c4928a41b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5fd6d7f0ba317a36434e1a995bed54a42898d940ee5fa4578373e8d4c23f5567", + "result" : "valid" + }, + { + "tcId" : 235, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004759ae77233b119fb3789059760112f38e8d9e69f431cf0e8f0bbe6a06e23bc5b18d69b80980f53b7e8c76c9b82dc61f05cdc03826c2c9637cc02af2a6db0e4fa", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bbe559b77e83905b08954dc3736a2752d56a5bc366a5fcd84e042a78c8af68d3", + "result" : "valid" + }, + { + "tcId" : 236, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043af2b8629a3475294ee0d5437321fcd5fa4554c780b6b18b86242d3edf36f551ede37c4ea319d42f8fc3cf97cfe7dd17e85ba6e11ba260ed991c22ee891abc2b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e62429b8eb322d24e4bdb9a72bf6e9c94d82962b26d99f633e1f21709b7eddbe", + "result" : "valid" + }, + { + "tcId" : 237, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ca2df3b3d7d958b0d46ed6e0ffe3b7488f2e13660951eb821c24246d6c7f2ec2055e780e6a534f9ff469b0ba3c8d38962ac0acdc7b4b3dc057c07ead3f4b7aa0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5822c168aab9bb6ffe00b7c4c7be5551daa8304b8d2c0696e2d77fe50b9d8d8d", + "result" : "valid" + }, + { + "tcId" : 238, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ef17ac084abad12496df80d80dbe21dfade58e302ac0398002c5349d852528ccef34500266a5dd3fb454828ed85684a62e6eb142f65f5497e64d23148f757976", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bae26fa69da00aa03fd9028fa84d46b92c13d5e555b2e7b3db0d09bb95d41486", + "result" : "valid" + }, + { + "tcId" : 239, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004624cf7459a3e097f114383a125c7cdec33b947c5bc0a2679d7aae508b5d46479408cac791f2ed71d9bd594bd66f6ce70d928d3b20fe02b5b66cf743b51739a74", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "97ce8c4b6e031776b19fc7c9577cb26f085274a58407267bca35a97692a2e8e6", + "result" : "valid" + }, + { + "tcId" : 240, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e41ec556bb3f85cef6651a2db1816dab3bc82898871482dbf1cc801407ce4d1dedeafe8c33721250bf75cdb9181e990492d37080e7dab41da1673d62a8b835df", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5eb5722f98aad0622097d944bb120e09e7a122498b20ae2bfff91c8b362daad2", + "result" : "valid" + }, + { + "tcId" : 241, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b5c3cb146d30fecfd7fed0093dcba01846a28aa50c7fe3c0cf4b8c5aa837d5b0b21b7605cadbc7b6206e5dd4289e1de9cc36bc98094fb18223be636e6d36e0fa", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f5c9b88d48112041334c574f93313670cdecbe0c0b6c2655778df8ff62025d3f", + "result" : "valid" + }, + { + "tcId" : 242, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b3c62848beb063fc8f285c0da7207e707c71460b8f792ae0890f2362fc8f02109cf80c0e0d75d2f54a6bffe3fef39441ed0cbf29c8397b76a824ff9ecf4c772b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "effa362fce62e271016d50a0e35c031455fca280b80ed2cce87c83e57e3cfd36", + "result" : "valid" + }, + { + "tcId" : 243, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000407ad8cd055528feb4b3a53d354c7c7cc0616ca3ff787bbb0bf79909606d27e8a70b4d271ebd8363d9ad910cf4d84e52171b5b359792f7ff8a89c4427fb6afa21", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "59b8dcdc6676029109871fc67b466a7fb622225cd6c77bbc21b1b628464798a2", + "result" : "valid" + }, + { + "tcId" : 244, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047c66fd67b79f88531a0747288726dbeb299dd8e1159612bff2d979fe4bd1060c15c54c5cf40b7a6b36f4400bdbaa2b6dd0669c3b45a55925635287116aaaff1c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "42dd3a8e14dfe9fe2ebf80746989ba66f28e5460116a02bce24c549d117d6b0f", + "result" : "valid" + }, + { + "tcId" : 245, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000494064698280e7eb6e14dd81efa9f0ab527fe6ceeded60cd4d422162c397d5bad163a63342b44629e57c09bb490118b1daf06bc0bd1de48a98ea7ac3e893e4470", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b0e1025b39c5481a748a0461aa7773a6b342adead4b4587521a1953d4ff0296b", + "result" : "valid" + }, + { + "tcId" : 246, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b454039384abb191e593463976dea937428b76a2f21f8553a994e0e23a0de3282888d4e22eaa986dfcd20e5a4c9666a2a341eaadcdf86b6e137660c95561566f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9dd7118006ee56fccf307a31a6334be7e19db2deca68fd45b3f4f94f100de6a4", + "result" : "valid" + }, + { + "tcId" : 247, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d43b704bcda6ed2cd8cacd64a67191da2f68f25a6a983dd79010b1066942730f2eaa0d0933f710917e3223f2feb23388add3fed3a2a7de18af50803b0b20d6c9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1fb16336393ba603fb2eb701fed0e982ad32964afae7dbbfbc5a8112382e51e3", + "result" : "valid" + }, + { + "tcId" : 248, + "comment" : "edge case for computation of x with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049ea3db44d3c1e09715ec330d3607a06cfdc1b0baf4f570fbad15d63e1a8d190bdae78a1a46ed6fdaa02ea2785c2bad33aace95397b290eb7c26428ef68494abf", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9a6d03a17e68561a105da66d2fb1d9ec9e3ca6c686f65d9da926849d7af4fcb7", + "result" : "valid" + }, + { + "tcId" : 249, + "comment" : "edge case for computation of y with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e4cb3b67d62108687c74b36a081c3adb9fc4e188b5e611727312b70886e81a795edba4df71b9c4b06f7b052b5b48d9e0be855ffcc2f27926524cb22ffbb9e865", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3c03077e0098a845f7c9b22b73eecd495a2d6a0b34d211154ee3898634f823b4", + "result" : "valid" + }, + { + "tcId" : 250, + "comment" : "edge case for computation of y with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046e833dc786039cb081ca12034adfae41e3454cad0976a09612f1af4c390d589f16f499bb679ce63d15bd4b821392e6c3deb9ac2163d0211a68a6167bcb5dd0e2", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b8454bcf8463c2bd59f7538b65f11b9c98c18c13438417cc08a39c8842a0b7ed", + "result" : "valid" + }, + { + "tcId" : 251, + "comment" : "edge case for computation of y with projective coordinates", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000493b0cf66e6c51ec9f5b02589607443bab7b97b18f3dd2c9cc831c0a356b60c21f960bebf79b0c295794237c60576d6a74e5f694d9fccdc2c4a469e00b18115ac", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b4df5f335a0461a38852205ac73bc51512b5c7f6a8305f1a8d4f191cb6fd3b2a", + "result" : "valid" + }, + { + "tcId" : 252, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000467f4d7cf5b8574fa36ec8d3d4caa369efe0521ff9e25760cf99894c64f064ca34db1597fbd96d7b7e319236e0660b05800ed99099c8c1022d55be3a8fd231e96", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a9de6e92af14bf4eb11d7533bbcb28cf622ec5e52e4a2f4cde4ddc3d21babcee", + "result" : "valid" + }, + { + "tcId" : 253, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004439638adcda870137436eeb09e27c32637307921974b64b9f73e266d8e95393094cfcf350b98282437974db3e402fd86e3ebdddc5e23fcd07303a0a5cf282ba4", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "edcd8e48df11aa67a90c75614983466d244e4b5473f8ac01a41c146db13c4827", + "result" : "valid" + }, + { + "tcId" : 254, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bf32693dd77e182d8b2650382832f37f6770090132aa77a7ebc18215e00c44c04642ea3461ff10e2e1800dc392738d7d01174679c9d2e382a80ed4961fe48b6b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2c8dd74792ced281f9cb161d2f64d238cbac2d18f8661b0f5674d79cd5c6edb8", + "result" : "valid" + }, + { + "tcId" : 255, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d20a02a6d0424820f7c2ed6afd1b7c149f6762bf8ce4dba50ded9792368dceacc574cc6298fa1d96edd178309f7508ce8aabf69fc0c49b85299baf91239e6665", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "503fb9bf4b57b00e0c239b3e8371f24660aa01cbf79f4c499e4fe1a155528ff9", + "result" : "valid" + }, + { + "tcId" : 256, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004afd321e9ff7b24d856bf14bbc5afef1952744867cae4a9f3e38f6673da908aed714966dfee5af5b7ddfc1779db74987e9e87f532bea76a2cbed717a36c9100e7", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e61ad5f80632382b626f9a77fb7f5db020dbc084c888c6b09993e12fe4d31604", + "result" : "valid" + }, + { + "tcId" : 257, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004cfd6d84113fc920b44bf6d67cb841691dbae07bd6732e5dec045e60d90b98f7110cbf8c9ffaef36f3d53132b1c10db5672acd5df5b87cb98d19daf87b0de3573", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "51c10b8332b33faf529c58cc2da45a23bbfecc1d4e0aa4ea54fd819b7e31e555", + "result" : "valid" + }, + { + "tcId" : 258, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f09616827b93b6017d770c75e35b0162c5455ce2380ef2fec54e336dfe94cbbcf3d01b7b102bec4ff0245db8c943c68c23cf1172c65544aa1174e44cd524f049", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "98d67822c318db0653a470a6ed96e7c22a046a2a25664c19539af62ae1d3a96b", + "result" : "valid" + }, + { + "tcId" : 259, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bfeb62d5cdb7333e0976fad3a259ddb9cb525aeee68327657aed59285352f3476e88bc9799df4d0c142bc632c81d40486fe2376392e0180af93debcb82c639cd", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "7c4648cd808df9a54f992b294a3ece562ba5efbeba7e1760f1f107ed1af8c187", + "result" : "valid" + }, + { + "tcId" : 260, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046d864a7cb7f8e3a1fe1c8094e3852f8f43cc4ca6a9039512b2ade5f040e3b4237c908ec1cb9fbc1f6d49460ac19f2d4526f66e00db60d207408bd46c95bffff0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "41b89b46f018a3ac884ad921e49fcf5d9677ae84e39e6ea8de844acc337d8481", + "result" : "valid" + }, + { + "tcId" : 261, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004feb68f41e806a239f62445d23d1b925978a9b696d6f0caa9dc29f40539b073cc2c902affb20066d2c2c920ceb8a453e42cd2454988c332cf0db907bb4fe95943", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d155b0e0e37da1a19af0e85e68e7bb4180aab55b1e95501a1a3ae0cd95404aee", + "result" : "valid" + }, + { + "tcId" : 262, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000457d04c653325a6cb998f61ce347109eca0efff9a16a734134a69cd1e0b081aceb43aea4f71b1f2802fbe4107d0bfb9f6fbbda464501b87ff73c47103e372f635", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "12bd72e952e6b81255ad79af19310da2e0ef9772003384a1f35753e6beab71d6", + "result" : "valid" + }, + { + "tcId" : 263, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004605fd33a42d921e01ee7f75806106de72cb5039f65ff31d6ca2e1efd6aa81a1c95789f0923d705fd19d5a8ae18b66687cb29091e17944b37d27f398bd5546bdb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3514b8362ee1e70e846ede7ed57283f5d5891fdb9b0c5605da45dbc5c6f44e53", + "result" : "valid" + }, + { + "tcId" : 264, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004303ce896aa570cf8f97954ba48fcc25f5f252867f01a9b9edeceaa6bfccedf561134d6290e1649bb028a16c6f54eb06c7e724a947a6248274a4bf6a6aa139096", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f6c829ed9ca3dfdd1f165a204461e1c16620e752216e2b6e3aab6197f3dd2b3b", + "result" : "valid" + }, + { + "tcId" : 265, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041c2ca67311dc5c454dc830386b7997e50bc67e3d5ff522d3e8a39f144998f884862c975f548a5f55dd8504dab5c9e88f0ed3123688d475b211da5a4d6920dd63", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3719f7afe82c3fa54c0c1260476246441d387970935e4c76965ced96da3a07de", + "result" : "valid" + }, + { + "tcId" : 266, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045633cbcfdf74327de0883f59e1788eed76bb0b9e0f9e55e2769ec9aa365a30e1d913bd531f4a61c2d07b847d318ee96482d2f8fa7a12aab3b303c10851ce7fcd", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0a368c74c56c61aab02440e64b2699c24cdacb4dfbcdebe0b3cf801e86f1f74f", + "result" : "valid" + }, + { + "tcId" : 267, + "comment" : "edge case for computation of y with projective coordinates in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000419d53e44b058c317fbedbf106c98f31832cdfb84f21add753cf213ba5de9026a614cf7b7b60e759a15a6c7d864eddec6dc253519975df7f3e9bc0c77fd80e510", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "de5b6c29f2f4f17f8ed925f129159410e4557dffc5472944b8862c42bd2b180a", + "result" : "valid" + }, + { + "tcId" : 268, + "comment" : "edge case for computation of y with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041c96cc2b22e5bdb195b2a47187fad5ee6736bd96dcefef20259a551e9847b5e0c5ab052c8836e4f7cc7b65545775d55b0c7b0c7f830c6539915cb624a507dbfe", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8fca30fc5d731f42d37664d52b64e022d98a25065fb1f8bd77853d7f2bbf07e0", + "result" : "valid" + }, + { + "tcId" : 269, + "comment" : "edge case for computation of y with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004733242cc4afb82271034111b81309e156ae4466e7f2fc5fc1042f4f6e3c44f435c6f614d4be18a73170c85a6b68a9614052934e1d612466dd4921989474ff513", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c9431b6deda0c9f92f368f7ca12986f0e07e012422b840c7aa784a0c713b501f", + "result" : "valid" + }, + { + "tcId" : 270, + "comment" : "edge case for computation of y with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041a24b6520af4f028824beece59b603d15d6d15cde0719ad2f7b8e3fcb6c1342c7ed702a30e875b2436db2f2d3687d9580d3bd7b3f8d1280a81071f3ccd6b407d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "672c2339e4c39e36cfe13e2cfe352859e1ef66318fe9f97dd26d9d03a9171f7f", + "result" : "valid" + }, + { + "tcId" : 271, + "comment" : "edge case for computation of y with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044ade6fa13e59117e054ac1bca3ca52f414035493ac2ee7b1a811f1fb52521e8116ad612cd7ab0c21ef78938945d870dac827becb5b873c84225c4aef159ee4bb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8cd11340313b978fa37749f4b367c087fd900f17941002de22ce4029aa550e7f", + "result" : "valid" + }, + { + "tcId" : 272, + "comment" : "edge case for computation of y with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000434b2ac5a3e4916d081d1ed404b5bccfe076aa7f41e29d0362390f7f08458b44c25987b7f7a214323763e1aa1044a8779bbffc5e22be628138a1d80268364698e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "6f1cc2d07f6ee07d0b138b601c94deb20aa234e526fab3ee4adc98707085a73d", + "result" : "valid" + }, + { + "tcId" : 273, + "comment" : "edge case for computation of y with projective coordinates in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000458c25f4047782b815b41001dea636c86ef19d67ec056324127225aaf6ff10832761325c4a70307dceb9bf451c7405e42580868e665f3f259995f8c358eb0799d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c2812eb9b456297572e8d870754b48489ea366f351f822759de831726815e582", + "result" : "valid" + }, + { + "tcId" : 274, + "comment" : "edge case for computation of y with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e3d05f1aff72acff70e4d51b4207880ec06b4c269db02753d6d858aa5e6d561e7c756f6b0cd106bb732e5f20c91ddde4f24a3699df1125206fcc47449abb7d1e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9cf1689a015ac3958dc95fc71cb0d103e81b4594684638933a5daaa99fb3b1fa", + "result" : "valid" + }, + { + "tcId" : 275, + "comment" : "edge case for computation of y with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000475638ca9ef9fa252429d21243c778be355bd130c1ef626593ca0c244cf2b6ef253b88766230ce8ded7900956a5291a6967c2a54279844cb07d7c585d87d40661", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2d6049f8e46c67c17ddfc8178dd918b23fd1969e11c959b64ea42e39c9a87dea", + "result" : "valid" + }, + { + "tcId" : 276, + "comment" : "edge case for computation of y with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000444682e437448730f594a820ead232c4443f7e784370bfb031304b85199c4159f7151eceaa0a698d15785cc7a2e812aeda12f9ba4238a7f5e76e930f3905015aa", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9b7f8be262b9cd2751ef8eae2bad7b1ecf07cb76613cfe7088cc9bdef1d04436", + "result" : "valid" + }, + { + "tcId" : 277, + "comment" : "edge case for computation of y with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c98b01fe92feae441d9f4de50d4dfbe9789711d911be6ef7cd9c55f4b3e8cabdd9e3aaf16605b0ab50632df6c00ec8554f36ecf427d31df930d4458fe1cbaf11", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "52980b5980df38f7c2d59e4e307da25655d50c6e030234b241c098c935a5596d", + "result" : "valid" + }, + { + "tcId" : 278, + "comment" : "edge case for computation of y with projective coordinates in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049173ae014b645724587ee26e17bfeb61f91253fe8653dafbda4381da9fa57e9815a9166e1dfc2a81cbe126a2594e51fb98fbee7b3d6588ad86a86431141444f4", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2f1f6990c30136d6f44de8145f191840c4b9efbcf87c39b7995c262bdcdf9d40", + "result" : "valid" + }, + { + "tcId" : 279, + "comment" : "point with coordinate x = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000014218f20ae6c646b363db68605822fb14264ca8d2587fdd6fbc750d587e76a7ee", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "afe5b60fe3e1dc873b3f3022893a359880e817537beb96b3d48d375766ab59e6", + "result" : "valid" + }, + { + "tcId" : 280, + "comment" : "point with coordinate x = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e4102f16fa7f386e912d3a7f77dcc7dc9f8af54cae117ddba10a3d09620eff8c689c20e12ce8f78412945e1d3acbf9935e4653fb0dce02b14a7d526a114f1387", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "33150538973510827cafdfe9449e7a5a2e1a7946f4e485a00ff219b2cd58d801", + "result" : "valid" + }, + { + "tcId" : 281, + "comment" : "point with coordinate x = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047aa67d0033226fb2b1bf975d4568e1f2299e82f2e459ff0b6ee3c0c57dbd40417c20634644993bd84aa361037ce8bf3fb72286dfdf4482458b076a7a5f46d1dd", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b5523f9382b35ed9e1c4f2b420df9f61e6ac8f6d342213fa4d75458f5bd828d1", + "result" : "valid" + }, + { + "tcId" : 282, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000480694ba7d6ad6efa8ad5ce0435a1bd225e0288b6fc22a11e7013aa0d4e9a496b316d67d1c70e6c130420f57cb6e0d60cda154c737f0118007cfea5c2d5b4e397", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ad9a53d05315009fb1487369f72fdc33e6dbba1485efaede2951433526d2fd0a", + "result" : "valid" + }, + { + "tcId" : 283, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000406c66970e539d9ae0f8f67a72f426c100b3b2cf2e276e9b0aea75b4efc98832524eeab2b413ba17db811f740f9fb9fc3c73b5ce51f1e74e7e08bcd8ab48dae83", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a88cca88b59cd86edda202cb4ea1b2d541d5c8c22c062a08f9db496d56257330", + "result" : "valid" + }, + { + "tcId" : 284, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000441277a6f20d855af6acec53e9923216d74ee2aed18a4140591ebbb0b3455072669bc7f19d64647e74ff00d0c89bbfe508e322b4397ddb8564ed2832eaa5b2d92", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b7f531b4a9ac00952bfcf2cbec41e58b54c4f412f464bcf1f1bf10a24b9b1974", + "result" : "valid" + }, + { + "tcId" : 285, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004146dee2bcaa5cc0817fe191b6d10def6259df744afdc9e5b0dde523b348aaab445b1546f79b7a6aadfa547bfa416f62b54f7a476d6d888056b9c05c72e0139f1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "473473518f0e843d1fb5105b16fe88edaa418b396cab7cb5532416d171f2e7bc", + "result" : "valid" + }, + { + "tcId" : 286, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c48ee90f8fe800664086ed5ba12930cacdfa175a67a2c4398168f626699deb8dd78c35a48042aafbc6c7caf3a68385ddb5d406acee86d96403e75baffece00e3", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c2563f49e623b139a83c4cb71cb73deb06458385658bf8796bac0c2ed12c8a67", + "result" : "valid" + }, + { + "tcId" : 287, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004737d92f5dad51d58261a77e755678ab02b107912041c5d295f5829cbd10cd8c59b55dd084f84937c27565a9075fe108745e17001666743db551436e691ea818d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "28c247ae91fdac1b29896415fec60f4252feed9c9ffa0216d31350d708646d89", + "result" : "valid" + }, + { + "tcId" : 288, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000459efed747303891baab0e1dfdc32d69906e0fc6815b056dae0eda2080957a3ebf205fd299c63e549d24c153935d950141c3dc2699afe8731a46304e203cac15d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "76e9e6f1339bff54b82a45980745526ff9249e942b1f836aab719fd959fc8099", + "result" : "valid" + }, + { + "tcId" : 289, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048ef9a7997b717fdbc5d2a7f9a67f705e5dee4c82ca383b7ee2d07c24850396d072c98f7dc1658f9dc3c434a9fddc2f986cc0e3e3ef409827537617ee67105f2b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0de82177c80f4e35f3b7a300e89ac288f30e01a8658933c16b8c90605e35d6c7", + "result" : "valid" + }, + { + "tcId" : 290, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000404569ec9fb3d6bcedc059e7fd04ab7d3f6bac730b1b75a11749e4346458f9296a051c84d558dbd2957c15907477776af660ac01582c001dc1f868ebfc6b3b264", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f41de3a77597835fa904d1f05411368e6e878abd0485477d162b2c764ef045ac", + "result" : "valid" + }, + { + "tcId" : 291, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044b298a3eba6a09fcd8415976e0faea997fd519ffd3363bd20107752123e101466abb70c013ba2389c371be19dd3296f0600e64f05755e15cf89320ac7ffb25d6", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c4dbe3b94e729b1e0ae34ffb0f6b0d95d7e619ab3943aa3836cf1e721a470a9e", + "result" : "valid" + }, + { + "tcId" : 292, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000418bde07952d7be8914d2b2544c65a3debdddd9e7ce8a9c46a03d124acfb8548b01a4a175a2a81af98e6028770d055e22f1016df15462b65f55a2d4850cc415e5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "83b31061f1b70148870a9282a4641cc8428943a3b10e0301955f5960c386fb04", + "result" : "valid" + }, + { + "tcId" : 293, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004002beb755f694a09f60bce5b34dc347c5c3aa236de9007bcdd0707e9bc8071694f443b0045999f2f5899ca793424a9b423b0ec0a3edcbbf4afb9e66526cf89b2", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5f74c066595fe9ea283274964ae83fba1a73ef9d29d24e6604a4aa0881fe390d", + "result" : "valid" + }, + { + "tcId" : 294, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004957e5bcd11fc450bffcefe636c0b73f10fe8585e04c6c7aa7fa0b603d24162d99e553e940956aa04a237a0c2570a0c7bc3712172b8f78c7b470a042ae31f3223", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c672601d951bdb550ea9cc58d2031337db39a3799de21af4e5c23e2fd7f537da", + "result" : "valid" + }, + { + "tcId" : 295, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c43b1b4099da70f8d33fbb61b68d9b0e9c7aedd4f4761c6722996666974e298e978c02ea7899cdd46a47405ac0d89fd6a4d66718a4502438ad45463260976841", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b2c2c00532d468d25374ae2e6ec9bc52bcb2e8df20ad1a40719b7d91746daeab", + "result" : "valid" + }, + { + "tcId" : 296, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004deb85f604be1930dbac6629cb96210f6fbc87ce2b260b66cc7d661861806afe1120bbcf8356dcfbf1de4bbb7d2066c3dddfbaf330af754c57859137a9cc4a68e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e5fe7c96371878cf86db4210a487d7d33ac4bcc45b8df2152e82aa7228a991e2", + "result" : "valid" + }, + { + "tcId" : 297, + "comment" : "point with coordinate x = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000427899fe24811adc869d49ac451cb210631d19aff8971ac7c3dd2fe826262507fd9ddffef4cc9cd81bdd3eab8acdd5c287a8934f82dfc255dded1ac1f1100aa17", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1bb9a501ab9d215230cd1072042b3c8271aec3b2c1da10d1a8c810fceaed47a4", + "result" : "valid" + }, + { + "tcId" : 298, + "comment" : "point with coordinate x = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044301f54b3592d1ea2a40989c94261d2b1d1fe297ed6ed64125ee241de05d004bc79014f156e9b7bfb36b8ad2d66d55f3a753829a9ddb86055bb9166dd3aff457", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "fdc15a26abbade3416e1201a6d737128a2f897f0d88108645453a1b3ddd05688", + "result" : "valid" + }, + { + "tcId" : 299, + "comment" : "point with coordinate x = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000436b0f66bf5f9fd4b2df9cdae2af873a075c55497d7fec4737a7c9643c2c76fe5da9f7287b3cd4e5f05b9a1a4f64e8a8d96c316e452594d02a4592a2107ece90b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e36348e3a464bc518384806c548e156edd994cb6946473c265a24914d5559f1c", + "result" : "valid" + }, + { + "tcId" : 300, + "comment" : "point with coordinate x = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000482abb58afb62d261878bdee12664df1499b824f1d60fb02811642cb02f4aff5d30719835d96f32dc03c49d815ffa21285733137f507ce316cec65ca562ce2ad0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "7d65684bdce4ac95db002fba350dc89d0d0fc9e12260d01868543f2a6c8c5b8d", + "result" : "valid" + }, + { + "tcId" : 301, + "comment" : "point with coordinate x = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047de7b7cf5c5ff4240daf31a50ac6cf6b169aad07d2c5936c73b83ee3987e22a1940c1bd78e4be6692585c99dc92b47671e2ccbcf12a9a9854c6607f98213c108", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "6ec6ba2374ab0a9ae663f3f73671158aaabac3ac689d6c2702ebdf4186597a85", + "result" : "valid" + }, + { + "tcId" : 302, + "comment" : "point with coordinate x = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000406fa93527294c8533aa401ce4e6c8aeb05a6921bc48798a8e20a0f84a5085af4ec4828f8394d22de43043117b8595fb113245f7285cb35439389e8547a105039", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "6d6e87787d0a947ecfbf7962142fde8ff9b590e472c0c46bbc5d39020e4f78a7", + "result" : "valid" + }, + { + "tcId" : 303, + "comment" : "point with coordinate x = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048a4f625210b448dc846ad2399b31cd1bc3f1788c7bed69cc1cb7aac8ab28d5393007c6f11f3e248de651c6622de308ee5576be84ef1ed8ed91fd244f14fc2053", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "56ea4382f8e1abfcb211989f500676449abcebfe2cd2204dd8923deb530a6c7b", + "result" : "valid" + }, + { + "tcId" : 304, + "comment" : "point with coordinate x = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004885e452cbb0e4b2a9768b7596c153198a922dabbb8d0ca1dc3faf4f097f09113be9aaa630918d5056053ecf7388f448b912d9ccfbed80d7ca23c0e7991a34901", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2c362c27b3107ea8a042c05cc50c4a8ddaae8cdc33d058492951a03f8d8f8194", + "result" : "valid" + }, + { + "tcId" : 305, + "comment" : "point with coordinate x = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e226df1fcf7c137a41c920ff74d6204faa2093eeffc4a9ee0a23fb2e994041c3457107442cc4b3af631c4dfb5f53e2c5608bed04ff6653b771f7cd4670f81034", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0188da289ce8974a4f44520960fae8b353750aca789272e9f90d1215bacdd870", + "result" : "valid" + }, + { + "tcId" : 306, + "comment" : "point with coordinate x = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f53ead9575eebba3b0eb0d033acb7e99388e8590b4ad2db5ea4f6bd9bde16995b5f3ab15f973ca9e3aa9dfe2914eebbd2e11010b455513907908800396fb9d1a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f78bd7ff899c81b866be17c0a94bec592838d78d1f0c0cf532829b6c464c28ac", + "result" : "valid" + }, + { + "tcId" : 307, + "comment" : "point with coordinate x = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004882773ec7e10605c8f9e2e3b8700943be26bcc4c9d1fedf2bdcfb36994f23c7f8e5d05b2fdd2954b6188736ebe3f5646602a58d978b716b5304ea56777691db3", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "99f6151fba28067eac73354920fcc1fa17fea63225a583323cb6c3d4054ecaca", + "result" : "valid" + }, + { + "tcId" : 308, + "comment" : "point with coordinate x = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a60b6458256b38d4644451b490bd357feade7bb6b8453c1fc89794d5a45f768d81eee90548a59e5d2cecd72d4b0b5e6574d65a9d837c7c590d1d125ee37c4d51", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "68ca39de0cec2297529f56876bc3de7be370f300e87c2b09cdbb5120382d6977", + "result" : "valid" + }, + { + "tcId" : 309, + "comment" : "point with coordinate x = 2", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004000000000000000000000000000000000000000000000000000000000000000266fbe727b2ba09e09f5a98d70a5efce8424c5fa425bbda1c511f860657b8535e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1af254af90c16dbd217f3356f7fef9ad532d4902a6d67218e3188a9e840fc929", + "result" : "valid" + }, + { + "tcId" : 310, + "comment" : "point with coordinate x = 2", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000452d9a44bf0bc729e5f3ffc8a73a4da332e2962b22013391b60eb66de6e1b83431eb0d9c6e92a424bc24ab23caf99e3cda830263689653626f8be91590fb75cbd", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9e232223afd0d57a7b150f65700ac60a78bae2aafc0cf9d1a820452ca1e57a14", + "result" : "valid" + }, + { + "tcId" : 311, + "comment" : "point with coordinate x = 2", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000478a99dfcb7df4d9277f97b5e24e979f48a8aa8983ef9dd86765dccc33d8ade9f9857dccce2a7ff0ac41b255eb8df45df61b4db58fb5e997614bf0d5ab217dd90", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ec2f7542cc1df665764c5b9bff751208d668be9f3d61cd6c33b35ed0f4fe5a17", + "result" : "valid" + }, + { + "tcId" : 312, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041162424aa9fa0d42bf60e06a16b7e7ea45ac0e2f07f1e36735bd0d98c70b8850693f2ac128f47f213322c5f8872dde9261affe614e3f364a792d17b0e8421840", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b095e9c2f933a00053a95758dc20fe1e72a798462f90fd67fafbbd68d761dd67", + "result" : "valid" + }, + { + "tcId" : 313, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000430d2d42a85385b64817d0900bc8c984716934529056da032d5fde844915d669b0e5ef40d566f5b23992132c4ae588017ebd160e5dbf4804f936cb0f257a93446", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "95484c5554b543f8eb2fc218cc46ffe648a3bfac41e6dfafca1ba11f8c53ed6e", + "result" : "valid" + }, + { + "tcId" : 314, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a77a259a55ed98d643e1a3e13804c95e543c1557e6141e4ed47dcf13b941a6fa8bfa5f879ab14aeba7b2ac06e5a719c86f4a2ed391160380aa3b6f74141cd354", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f22ebb6843281b54b22a9ff1a91485c7db8f95db4bf8a1131f892b3bfce56662", + "result" : "valid" + }, + { + "tcId" : 315, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f89454593dba5720164d17bc1ca32f10ddd1a7d37b7bf02e5ec0d59794f4d63d34268de3f6a2c108514a52702f7e67d27829fa0340b3c4710651291483c8b213", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "99623d9f447b66cb322488ea463b3e40d5620f4df78f89c62fe0ba8b90ff386e", + "result" : "valid" + }, + { + "tcId" : 316, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b00befcb868eeb5d558ef2ec2ec679dc082ec15a57c5899311178424674b8f50588742728a6384a180506b8739a79c4ce95e1055c0d0eab2254ca55b18a3e7b2", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d611afb4046c9f4b2887b7dd4d45b80e9584eca93f5a855dc30e529eedbf5017", + "result" : "valid" + }, + { + "tcId" : 317, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b3e2f9c7f9f068c5da8882fd581e7112e538aa01feb5f017433c00fc8a828fccc56a3f692e3b237b7caf49869009e6743e35ec5aed19d814cfc13869f78eb895", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0438085ab0104fb47c696be5c08f95e319ed5507ab781fe1cdccd6ddb34bda67", + "result" : "valid" + }, + { + "tcId" : 318, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e5dae9779e0c168e60b842508e253d2ac80e7e504daed9fac077b9b449c368b57bd8661bbbccef478f050f4ffec8aa47ed7f98e89514d9083facf0a7f2f7b70f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "326dbabffe17c6efc710bdb8d04d16c8624c083d48bfa6e4411d221264d8277f", + "result" : "valid" + }, + { + "tcId" : 319, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004420e10bb81b379d728879fe600e6f1bf2b85d8023848a040c7654a9734da1ac4cbee561571a616b094a38436e02c6d7b54b4279a234193a828e86e21e6b71d16", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f47a91e29ebe69baab6b340bb64a6dc34fca7546fd6eba53f5bbe41f6178c7c6", + "result" : "valid" + }, + { + "tcId" : 320, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048dbf1ba87597004af552317225916abf3d71dff90fe9e61f9d2863a6de218d4a0897e334000139b0849d772757b150e5d86b55d7a00a744bccbb7cb8d1a6b07b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "cf83319c735348dd13c44b055f67a292f7afc5d9d2bd0706c966ad765368d422", + "result" : "valid" + }, + { + "tcId" : 321, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041accb85b612d32d58459caec0bb6768f05ce8094e3862422a7c12340dd31bd7397e0377d33ccdce8bd872f898be6cbcf7274b3beefb5dd7cadddf027d0c02c2e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "41ee7801ccb702f2f633d1d0ec20d7c427936886df89ad33d19dbb56f66a2656", + "result" : "valid" + }, + { + "tcId" : 322, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000414eef41b67c17b1d4a040554287cd6a9e6b3080335ea4e16821dbd643ec67dba6d67cadcbd1a3f0227b7caf2c0604d2b3507aeb96ed98c32e2350fe295ed8998", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "af828d6bc21ad6b4570b5f68a6208d3a2f46edca69b1980fe5046792c68cab80", + "result" : "valid" + }, + { + "tcId" : 323, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a99af5dec3c995080ddcc15d7994daff266aa53f181fba4bcdd504d206bfca2f3739588f071e4192b615361ec81735fe2ef2923c4056c432f4c2782e5d722215", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "4ebf7f174cdb3fda94f99698317ffef5f4d4fb933f3292f1aaa782c354ba03e7", + "result" : "valid" + }, + { + "tcId" : 324, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a355d8d17d50f6428e0af345921662587e2b6249eed1e326abb7c8605036b1db1fd72efaca9082bb6fab44359fa7f6ef8a45d036852832e2ade9d41f28219144", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1649f83c47a6640a94b773ab4309bd6964109433e3f3ee5b024d1915ef5139de", + "result" : "valid" + }, + { + "tcId" : 325, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fa53e5b58d55ebf517d8db07b021d80918d1f260f9e0b3d00bd47b24a91ae6ab85ab2adcc31b98caaec2681a841d50bc0eda875561fab70c979463ffb6a1d74c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f434c3ffe109528456c23d6cfe51ec0b10be606d7a26775fe2ff0a9b18f92f39", + "result" : "valid" + }, + { + "tcId" : 326, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000433fe37949375debd9734f54b7036b7a978bc8fc4ae3fe927a521f940d9e35dd38f81a9160c05df04e34290db40c3e045b832373941ca85b433854e43caed323d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bd02b9dfc8ef760708950bd972f2dc244893b61b6b46c3b19be1b2da7b034ac5", + "result" : "valid" + }, + { + "tcId" : 327, + "comment" : "point with coordinate x = 2 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b9ba8445067d0e81bd32dd99e6b4ea3d442d063a8eb9873518ee3bb18c053706099964b6889105784d9d6d9d9aa79c76b6a3d3376315953afdcb5a7439e7c706", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "412269bfc15d8b1fd7f25de33b1515ea67f2194e73ba06c85ef99bb42722f95d", + "result" : "valid" + }, + { + "tcId" : 328, + "comment" : "point with coordinate x = 2 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000478b248634270a7a6640bd0c64595dc4e98adfe6bdb8112593a4173e36d4a9b4969a1f3d19b325898e36459c41eba1de99229b0ba2cf1337461c84391d9aea1fc", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0ad7556a621074a771bf129163d09a2e9d2e174f2b8a4b6973e89ea138c9a603", + "result" : "valid" + }, + { + "tcId" : 329, + "comment" : "point with coordinate x = 2 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c788884ac868593db241f5b3ea7013810d3ce28a02680a96ff357b261fad611bef353b0e82c1c68c471ff1ed5c4749e168e7af8591a5e6dab599b96620de0ede", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "76acc74dd60872ab29e1bcb99dd46365c7c7f792619c901c7ba5c68378b233f5", + "result" : "valid" + }, + { + "tcId" : 330, + "comment" : "point with coordinate x = 2 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041864e373ac60c23543fea9e1f237950a8169e07c817db69d500e5592d1df9d5a10da4651efccc46d37e7eae16c36ac86a9a86b88ad08751a8dcd15060019704b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "50e23b94fcc33d93dbcd71e955e195fe0bf6ac9b04b15f001e53b5dc7bad158e", + "result" : "valid" + }, + { + "tcId" : 331, + "comment" : "point with coordinate x = 2 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004dd7308d2a6757f924dc979066e75ee6fa52b03393d2892f59788effa553b690d1fef00c1c22ba80b95d529782dbef55a63046179fb4ef00fdccf5b62ce55c136", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3324bf2fb3486b1104fffa35ef38975faffba1ebe42c54399206face505448c7", + "result" : "valid" + }, + { + "tcId" : 332, + "comment" : "point with coordinate x = 2 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004575d51be2bddf5bf1ab42431ba7e3b5f2947bc574df9f60a448b8db5ca28c92cd836f55c556440a7df125de6599b21ae68f15d5b9f422d6eec88ab2f65406bf9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "235fd3e7216c92f73860f0ac0121b4264ff89d80bc75d59dd455298597c5f2ec", + "result" : "valid" + }, + { + "tcId" : 333, + "comment" : "point with coordinate x = 2 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c7422a80aebdb518bd2daba691d39a25ea2fe49a35cdfb2a0f94bdfbadc6629ae55ac7c400afd2976b7c3b24f7126807a5a0afb931cfa5c6ada1f4ff984ea5a7", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0bf758de27052319dac39b324a6ea55e928603a3ef9049ad147f8ca35f55b656", + "result" : "valid" + }, + { + "tcId" : 334, + "comment" : "point with coordinate x = 2 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ad4062216f84ffd66e326497bcbcab982283493392ec0f739cef8cd7eaf3453414c5a289a846e28bf2042ea5dc7b15e252f48d3cf980e7c4751cc35493a1c328", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "312eeaaee397224fc17dec7191ce69cef40e8fb373516c2b1edada0336c99c13", + "result" : "valid" + }, + { + "tcId" : 335, + "comment" : "point with coordinate x = 2 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ccacd1bf7c7f4ea9c7e59bd802804a9d335262716ac288c6eefd7a7135349a4f7b8612e2bdbd43b3fc4fa6941ac15a8f37e34fe7810a0c0d43c05afafb6480ef", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "aa1691858e6a1a06c6df57ce10a4c730974c06d1e0106d1a31b51b915cd6b60e", + "result" : "valid" + }, + { + "tcId" : 336, + "comment" : "point with coordinate x = 2 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049aa7f1f93474fa370c4df3805bd2839328895880dce197a06cf9052e6ab7a6938c9a208b335bfda6b01321f029a0d83c8bb96561208481f7af6c6cf1d2657843", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5786d6ea09ffb21a63adb020b117096484ef995e8c4a72afa479cba95c959920", + "result" : "valid" + }, + { + "tcId" : 337, + "comment" : "point with coordinate x = 2 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000483b7affcec11685d15614e2d53c1e73504e3d98344bbd5fc0ad86dc4c36704323a7f73a09533d1a1076aa9c4af22a6bab92f3f0d766798db7aa4183c037f86e6", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ae0c7845b82995263c51e13e297412d17b650aa83dce4f55a069dbee671c16b8", + "result" : "valid" + }, + { + "tcId" : 338, + "comment" : "point with coordinate x = 2 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004aeebdd971cf4e988fabd8070c75c64aab90a83a36735fecfb385605979c008ae8c39888f0daf74f98cebbb08f6b91a5193f684a56761b9f2b63d87d3f60491ed", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e5e764a38b73816f6e11e7cf298b2be54d11249c615f0a71498a0a821b5736bb", + "result" : "valid" + }, + { + "tcId" : 339, + "comment" : "point with coordinate x = 3", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000032f233395c8b07a3834a0e59bda43944b5df378852e560ebc0f22877e9f49bb4b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "6aa7e74a7a838efa9607f3587d4117f1914c57fa924b441c27fb7a7c31fbaac4", + "result" : "valid" + }, + { + "tcId" : 340, + "comment" : "point with coordinate x = 3", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e38eec4c1a4d81a5d994b0d7780305af651892cbf07f3a07628f4e2473a8ab754bda96622462880d3536d390132a85db6147f814c62efb580a6f529598b0dd1e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "391b624f28eb398156666dbec1d635f8ff1753eb86297973a1c2831b1091e2df", + "result" : "valid" + }, + { + "tcId" : 341, + "comment" : "point with coordinate x = 3", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000410f02d496e9a8758c831389892a45ed009282ea1eb201ab8caf09e6f2de9fa4acc126becc204c41a94aff4f2ead7552ec23fc68f0005147625a95622b521090d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e3f39d071b743c8041454d1dacba93dc9f3f12a5ae1bfbebaa59fc4cefee6b82", + "result" : "valid" + }, + { + "tcId" : 342, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044c859aff342c56a9508b859ab1509edcabf66e044e2026cc293474389b3d58c16bc06cf99dd6d8249c5d24386a55a97214ea0cda270ad9470986c3a3d023cb07", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "09d0d1b92af1e7111d223bf5efcdfa6df2622ab3cf161af0ebbf06ad00c09b6e", + "result" : "valid" + }, + { + "tcId" : 343, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d1eb4f7c680a247a14f3d67f85cdb1c4c6f13d44821fc456c9247a606622afec4952cf05ff06f06d7030e88904737096cbf8dd90e478a3b5dfed2ee487a0835c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a738727e0f5b20448009d1029ca727f2380d2c6e152a6e2da8ea50531ce39499", + "result" : "valid" + }, + { + "tcId" : 344, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043bf79d6c1a20d85115e973079707f5131eed2f83be5683c34d0fb3eee1ae40dfd2ea4f1b735cf62341835a5721c25daa0dc1a3886ab75ef653f472d8f3aa1e97", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a314e4ee9e303d970b4e9f0cdc262657d5c5192f055466b9d09d9c888d6b7256", + "result" : "valid" + }, + { + "tcId" : 345, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b1f808286a42eeee85d585e54dc28aba2aebfb956805f5c01127bcdf435154cb5b178fda5896d9e7508661fee7ee55fa9623610b3d9f4a59156b76d8877b4ef1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8f4e1bf8e5182a1fbcdeac924df1ba2f937162d48a206783c48132cb582c07db", + "result" : "valid" + }, + { + "tcId" : 346, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a21e80d09e11acbccbc909de6c9f1159addbb5dd477211b90a370f8c7548e60d1d7aacb6e455bcdc230331d79ad9464a77b702c858400900cb4488cb6c28bd61", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "16682c862cf53755b3c28adf7de052d5cf0e81e5d8acb346702a392bc6b2b1d5", + "result" : "valid" + }, + { + "tcId" : 347, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045055a8c45e81385f4144c7b6fb32119395a94dbd07665ed7bc1cce1e62dc47c8b6d50a39a55d3b8e996624fb6ec2f2960c7c2bc0bc94b2a63d65096fd99ca41a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "cc33e840b5354bf6e088047e76dc168f15c0c1aa946731600f52d6f1c9299b27", + "result" : "valid" + }, + { + "tcId" : 348, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004af522fc0a61440173945b914d6404b1940b547a6f768550280fe28bd331c9c661d282429f2911298f9c5b82f87c7f5044706748c19035689b216d64474bf5ad0", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d7b4f5e2dd1ebecfc92318d92085271be482fe65a03e83b2e358a397a597449b", + "result" : "valid" + }, + { + "tcId" : 349, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ec1a88652de714d21fddb54db4a3423521aead5828b843bdde9a42cf4a8bf124a69568c664e2d9317ac732c98c435548dcec0eeb8ab31027ee5f1693ccd97c68", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1d88ed8e4579a4c62fed95eafe1528f8d5056041fc41f3ef063605ddc980ee09", + "result" : "valid" + }, + { + "tcId" : 350, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000448e4c9cc88a601eb639f81ffa679540bf1d7bcbe876a955e73bfade055384160bae130243ef5fd328f65278e00cad6001327ab42fdf3b9654aad6f260542b02b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a6698578650dadb452d677c3983e6b809152d7d2d8fba349cec686e72e6f8693", + "result" : "valid" + }, + { + "tcId" : 351, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e861379f1c1b07540155bbfef4a69a84be81b1441d43e7850c7ac1005a804238bb33c7981d383a06d1b795552a7b31f49145fba937876fdc9f0d138aa5b3f322", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8e42c38902b25fa138b95f4f280b684c09e1212c4f06a2bc2c2b2b8790112034", + "result" : "valid" + }, + { + "tcId" : 352, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b4489cd499168bd48cd2c31167edad246c63859bf8b48398617a7a0556341e3c0b0f66f665038baa29db8c296d4f2ae07b9ab9193bfc00981d7df0599ce0648d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a19f1165d31c1695359929deebcd24846ccb9a3c2a38c10bdc7c855bf8a32df7", + "result" : "valid" + }, + { + "tcId" : 353, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004884e74885ea450f5aab0cc8f06c006630e8b183a06bda509322fcd97ba5d2d2b00e1373d533bd5920427d106b7f33eeb53d21b5cf46ca0151e91859e811a39cb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0a87935c036de666b7619f14ec58f9f78698cc23a667616f84c177f34661ebe2", + "result" : "valid" + }, + { + "tcId" : 354, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c50224a8cf3a19da6133e746d00217285df85589ed334b54d95b005b8f033f7df7bc6a5ddc59d033f0c66bed57149a160f25723117a2fcd413aff8c9ada43bf9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "90accd1c3af1cd782ea1e864a307aaef6a01fd3a6305a0adae37e76844b9ce10", + "result" : "valid" + }, + { + "tcId" : 355, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c66a917fc435c9f41c47428e718a3017b3c5c992b4d94a663602f73fd825d043a03cb9f58174cffb359e2f541cfb5e551c50fd811b82362eadb216a4cfd0f8c3", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e164d88fcbd1ccdd654de0415bfbd2a171590713015f4a1755504e62f7a03870", + "result" : "valid" + }, + { + "tcId" : 356, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004f55a451e6e0d8f7600c7bf7c05741c5e5985b8ffe4eab62d4ffc04aedb725a66e942cf486efcf3b85488cf3cd4fb0248b820703b938ce77a074a2f9286af03bf", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d4b6d4251ac1f8a0b0c75bbac3517a13ea0c857b5499b03d153be663a8715480", + "result" : "valid" + }, + { + "tcId" : 357, + "comment" : "point with coordinate x = 3 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a96aa25bee8c8cb6f6aaf40be98ca047da245e8d4cae28fc892a0369b299cba3ef5f54bb59f4ad58a84332a00d89a1cf3d56c4e6ec9c3a467a4a2a04ad3bce97", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f5270d0c4119f1ef467a37501688b4bf4a516e5f58a0f5a40f23ae70ee813c26", + "result" : "valid" + }, + { + "tcId" : 358, + "comment" : "point with coordinate x = 3 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000449f572fa8cdf6750adabc3ab0e46bf23dd7ad7114bf319f35afa6a2ccbe2e7d343c44f018f8efc9f52691b274a8c89283d13ce93d1b58aea11d62c88599c309c", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "1763eb5bd3677de88e98aad84038838422d6e55605a14761788cf305672eb670", + "result" : "valid" + }, + { + "tcId" : 359, + "comment" : "point with coordinate x = 3 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b36f6b02bf1d213d9abcfc98c25fc81ab3b98cb13d678da871310aa093ab7b58a50b134818321a48ffc1ef9f8624e371ddf078d8983fda6c4eb27dfb255174e9", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "98c95ef9fded241da09392573144daf44b0332518f458167e09d672011ea4618", + "result" : "valid" + }, + { + "tcId" : 360, + "comment" : "point with coordinate x = 3 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000474f57ff3da8d60ec0b382e6866be4502f695688384b405e2179aab61066196d7d24064185d68de95bd72b219c0c0a93879324f299fb19214b33a3ed2f1bf4823", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b0fe8fc6abe853b1ea6aa4f4b4490bcd94ffd3532c1d7cce36d059ac8f29cd67", + "result" : "valid" + }, + { + "tcId" : 361, + "comment" : "point with coordinate x = 3 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004924fe3439d35427e2ad9b1f6e67877ed3441d74bdd0eb9f82ae360434bc20624537e3400007cd2d140f2caa0f7b61c7118abb9ac5c766ecab3f8f72ea5d96cdf", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "4fdc7cc04b2459f73c856023e892699b9018baca1b8e3b040ec74324607c97c5", + "result" : "valid" + }, + { + "tcId" : 362, + "comment" : "point with coordinate x = 3 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fb0e48a3815a2b80e9e725036a239757e9c5987850a941c5f5d2b89b776aac683adb5481fcd85f0013feb20505ebbaff27edf8474a7cf4d985ec567365ecbc1d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "561138979956fe6a1aeae06277456c7e5e7e7d643910e247fb248dd7435691a0", + "result" : "valid" + }, + { + "tcId" : 363, + "comment" : "point with coordinate x = 3 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e669915ee160694e8559d7965f7cff945c1cb076f194ec9894b1a38b10726fb0389675e3155b069b3862da3d1112179a04accbe7dbb70b3cc48bedb7591d2eac", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "06c06abb603bff68f356ce496c17fcd0662fa040eb0cd45a98112e6c1eea11db", + "result" : "valid" + }, + { + "tcId" : 364, + "comment" : "point with coordinate x = 3 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b760dfff4c5c200aec18b930b18df34297bb421b96017ef902139fe6b12349f6ccb8cf83d2837c7520300f197b491c0368470ee86f74ca0381682bb6ad80344f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "319297f77a75381b65d73107e826eea0e69d85985db4568fea21d12dda696921", + "result" : "valid" + }, + { + "tcId" : 365, + "comment" : "point with coordinate x = 3 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b0e4de914fe71b61636e61391528efac8b6c11edcd41c9766af8693dbb6e41f2517293725552f22dd6e1db7c2c243f80c10713f6aa48fc5e395bd9ec51f1e9c5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c3ef6eb91aad69456ede5174b0e5e3d6863c024aef3185d2258946362903e576", + "result" : "valid" + }, + { + "tcId" : 366, + "comment" : "point with coordinate x = 3 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048eb6ee2ee9e061acb9312ad015b1954ea47ca304a2cebb77f3bf6c78678c1149d93fc6e80561f3110fd0e95fdc0ce8da2c3f32f7f581f9b666d74900b3760b9f", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a18b1fba4d496419ede70cc23ceed674526f34299e5b09c0ee2dd1669693fef9", + "result" : "valid" + }, + { + "tcId" : 367, + "comment" : "point with coordinate x = 3 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000490121021546a96e7879d53e7b85c21f4047df49b9ad85020104f216d010f520d1bba6e765742395b4c894fd0eaaf87275d1c77494c01cce882de2805d1922c0b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9fc7fff3bb4d6e5a4d52eb0e3c513a3c9fa56014c030449546cda744aa126f6e", + "result" : "valid" + }, + { + "tcId" : 368, + "comment" : "point with coordinate x = 3 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000464c1712e3e9ef440c7ea8faf0540d2e6a05adccbd53a7fb24ff16a9502a818f747cfafd2209430eb7794f5da91d6c5e2db505ba287bc6ef397bf7f30c747536a", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "61cb2fb99b695ecbaf91a95e6e0c7e24633bc7613ebf518c6f1c8161dc75ea5f", + "result" : "valid" + }, + { + "tcId" : 369, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004cbb0deab125754f1fdb2038b0434ed9cb3fb53ab735391129994a535d925f6730000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "af306c993dee0dcfc441ebe53360b569e21f186052db8197f4a124fa77b98148", + "result" : "valid" + }, + { + "tcId" : 370, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000424800deac3fe4c765b6dec80ea299d771ada4f30e4e156b3acb720dba37394715fe4c64bb0648e26d05cb9cc98ac86d4e97b8bf12f92b9b2fdc3aecd8ea6648b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "aa7fc9fe60445eac2451ec24c1a44909842fa14025f2a1d3dd7f31019f962be5", + "result" : "valid" + }, + { + "tcId" : 371, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048f33652f5bda2c32953ebf2d2eca95e05b17c8ab7d99601bee445df844d46a369cf5ac007711bdbe5c0333dc0c0636a64823ee48019464940d1f27e05c4208de", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "082a43a8417782a795c8d4c70f43edcabbc245a8820ac01be90c1acf0343ba91", + "result" : "valid" + }, + { + "tcId" : 372, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004146d3b65add9f54ccca28533c88e2cbc63f7443e1658783ab41f8ef97c2a10b50000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "70810b4780a63c860427d3a0269f6c9d3c2ea33494c50e58a20b9480034bc7a0", + "result" : "valid" + }, + { + "tcId" : 373, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b0344418a4504c07e7921ed9f00714b5d390e5cb5e793bb1465f73174f6c26fe5fe4c64bb0648e26d05cb9cc98ac86d4e97b8bf12f92b9b2fdc3aecd8ea6648b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a7d34ee25fbb354f8638d31850dab41e4b086886f7ed3f2d6e035bceb8cab8a0", + "result" : "valid" + }, + { + "tcId" : 374, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048a98c1bc6be75c5796be4b29dd885c3485e75e37b4ccac9b37251e67175ff0d69cf5ac007711bdbe5c0333dc0c0636a64823ee48019464940d1f27e05c4208de", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3f09cbc12ed1701f59dd5aa83daef5e6676adf7fd235c53f69aeb5d5b67799e0", + "result" : "valid" + }, + { + "tcId" : 375, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041fe1e5ef3fceb5c135ab7741333ce5a6e80d68167653f6b2b24bcbcfaaaff5070000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e04e881f416bb5aa3796407aa5ffddf8e1b2446b185f700f6953468384faaf76", + "result" : "valid" + }, + { + "tcId" : 376, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042b4badfc97b16781bcfff4a525cf4dd31194cb03bca56d9b0ce96c0c0d2040c05fe4c64bb0648e26d05cb9cc98ac86d4e97b8bf12f92b9b2fdc3aecd8ea6648b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "adace71f40006c04557540c2ed8102d830c7f638e2201efeb47d732da79f13d9", + "result" : "valid" + }, + { + "tcId" : 377, + "comment" : "point with coordinate y = 1", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e633d914383e7775d402f5a8f3ad0deb1f00d91ccd99f348da96839ea3cb9d529cf5ac007711bdbe5c0333dc0c0636a64823ee48019464940d1f27e05c4208de", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b8cbf0968fb70d391059d090b30d1c4edcd2dad7abbf7aa4ad452f5a4644a7be", + "result" : "valid" + }, + { + "tcId" : 378, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d1c1b509c9ddb76221a066a22a3c333fee5e1d2d1a4babde4a1d33ec247a7ea30162f954534eadb1b4ea95c57d40a10214e5b746ee6aa4194ed2b2012b72f97d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "07257245da4bc26696e245531c7a97c2b529f1ca2d8c051626520e6b83d7faf2", + "result" : "valid" + }, + { + "tcId" : 379, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004755d8845e7b4fd270353f6999e97242224015527bf3f94cc2c693d1b6ba12298604f8174e3605b8f18bed3742b6871a8cffce006db31b8d7d836f50cfcda7d16", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d6aa401b9ce17ecf7dd7b0861dfeb36bb1749d12533991e66c0d942281ae13ab", + "result" : "valid" + }, + { + "tcId" : 380, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c6f9fc8644ba5c9ea9beb12ce2cb911c5487e8b1be91d5a168318f4ae44d66807bc337a1c82e3c5f7a2927987b8fae13627237d220fafb4013123bfbd95f0ba5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f43bfe4eccc24ebf6e36c5bcaca47b770c17bcb59ea788b15c74ae6c9dd055a1", + "result" : "valid" + }, + { + "tcId" : 381, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d3179fce5781d0c49ce8480a811f6f08e3f123d9f6010fbf619b5d868a8ea833ddf9a666bf0015b20e4912f70f655ef21b82087596aa1e2f1e2865350d159185", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "009bc3abb3cf0aca214f0e8db5088d520b3d4aadb1d44c4a2be7f031461c9420", + "result" : "valid" + }, + { + "tcId" : 382, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049e098095463c91ac7107a920ccb276d45e1f7240ef2b93b957ee09393d32e001503af4a2e3b26279564fed8e772a043e75630e4e3859976ede88ffcf16f5ca71", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8bcb07a3d0fa82af60c88a8d67810ebca0ea27548384e96d3483310212219312", + "result" : "valid" + }, + { + "tcId" : 383, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bf3034a9935182da362570315011544ac2ce8a9c22777c2fc767ac9c5c0daeebcf333562f3e018892374353674de8490fc9d30426598eb600779154baf2aec17", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a09ddc7cfe023acd9571ef0754010289c804678c043f900f2691dd801b942ed4", + "result" : "valid" + }, + { + "tcId" : 384, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004709c7179c2bb27ce3985ba42feb870f069dacead9294c80557be882fb57790481e6fe2c1a715163efaf86ea8b1e55ea5742d6b042e6cbf8acc69c99f8271a902", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "da98054d51ac9615e9d4f5ceda1f1bad40302ac11603431efec13ab50e32fcf2", + "result" : "valid" + }, + { + "tcId" : 385, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004264c00a2d92514a6dbe655de3c71a5740cec4fcb251aa48ca6745dbea6f5f7cfc1d5ee9fc3ce49fd4509d33c4dcfcc1a20a660529fa9ebd6e6afc3d5c84c72bb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d60795d8f310b155726534b8be3d0b8a7bc2ced468c6e64c8b9ae087b33ee00b", + "result" : "valid" + }, + { + "tcId" : 386, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a12124606bcbbb33cecec7fc8d78b3897192ca851560c539e47dd276c63bd3c2f20a0ca618ba0131a2e373f31f73b3f55e9188d46fddbc6387e32aefb9f3ba12", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "675fef8f5680bf76220e91362613944099046b0ba07e5824e93f3e3cc2cc2758", + "result" : "valid" + }, + { + "tcId" : 387, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004244b7afe7f31289f9d6aaeb7f70d29a7b49a228c7bb202764aba94daaaa3332270c60975748f0c749a8b0f8fc1e222ddcbd3384f6d68f0b6b6ff679b435cdcb1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "76b439f8ea7b42f11cd59e6d91b2d2a72577c185386b6af6639be8e3864a7f27", + "result" : "valid" + }, + { + "tcId" : 388, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042ac29db2ebc4fa9473b42bd335a60226579cc186b2c676a3b01bc60e589616165aa9c0d1b240e6dd4211e3235425634b278ad88fede0337d5acf3136587d8413", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "56e63fa788121d5efa0ce3caf4605af18d48c631496cdfa862c43ecf5e5fc127", + "result" : "valid" + }, + { + "tcId" : 389, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e62aee5205a8063e3ae401d53e9343001e55eb5f4e4d6b70e2b84159cf3157e64ba2e420cabc43b6e8e86590fc2383d17827dd99a60c211f190a74269100c141", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "cff3b5e19ed67e5111dd76e310a1f11d7f99a93fbe9cc5c6f3384086cacd1142", + "result" : "valid" + }, + { + "tcId" : 390, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000431dce6de741f10267f2e8f3d572a4f49be5fe52ff7bff3c3b4646f38076c06752702a515a9a50db1d86fd42aea0834daeb62be03d0cd9033f84b9c4b56a19f12", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e29483884a74fb84f4601654885a0f574691394f064ea6937a846175ef081fc5", + "result" : "valid" + }, + { + "tcId" : 391, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046518cd66b1d841e689d5dc6674c7cc7d964574d1490fff7906bd373494791599104277170692fa6bf2270580d56d1bc81b54f477d8ab6c3f5842650ac7176d71", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9c6a4bcb2fc086aca8726d850fa79920214af4c151acea0fcf12a769ad1f3574", + "result" : "valid" + }, + { + "tcId" : 392, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004952a88ce31ad4cb086978e6c5621c3d8023b2c11418d6fd0dcef8de72123efc15d367688fde5e082f097855a0c0adc305dd6cf46f50ca75859bb243b70249605", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "34b7abc3f3e36e37e2d5728a870a293a16403146ca67ff91cbabeee2bb2e038b", + "result" : "valid" + }, + { + "tcId" : 393, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042a43f33573b619719099cf54f6cccb28d16df3992239fadf79c7acb9c64f7af0f4d1d22af7187c8de1b992a4046c419b801cde57d638d30f2e1ac49353117a20", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9bd1284f1bcb1934d483834cae41a77db28cd9553869384755b6983f4f3848a0", + "result" : "valid" + }, + { + "tcId" : 394, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041b1b0c75408785e84727b0e55e4ba20d0f2599c4ed08482dc1f3b5df545691380162f954534eadb1b4ea95c57d40a10214e5b746ee6aa4194ed2b2012b72f97d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "167e3db6a912ac6117644525911fc8872ed33b8e0bbd50073dd3c17a744e61e0", + "result" : "valid" + }, + { + "tcId" : 395, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200044dd1283bccd36cc3402f3a81e2e9b0d6a2b2b1debbbd44ffc1f179bd49cf0a7e604f8174e3605b8f18bed3742b6871a8cffce006db31b8d7d836f50cfcda7d16", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "7c3020e279cb5af14184b4653cc87c1ddd7f49cd31cd371ae813681dd6617d0e", + "result" : "valid" + }, + { + "tcId" : 396, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a499dbf732e438be0eb084b9e6ad879dd7a2904bbb004b40027969a171f2d4267bc337a1c82e3c5f7a2927987b8fae13627237d220fafb4013123bfbd95f0ba5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "acfdff566b8b55318869fa646f789f8036d40b90f0fc520ae2a5a27544f962c0", + "result" : "valid" + }, + { + "tcId" : 397, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004adcf0ffba9cb6ef0c8031c4291a434b18d78f42e45e62ba01fbe91f9273f0ad1ddf9a666bf0015b20e4912f70f655ef21b82087596aa1e2f1e2865350d159185", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5c6b01cff4e6ce81a630238b5db3662e77fb88bffdde61443a7d8554ba001ef2", + "result" : "valid" + }, + { + "tcId" : 398, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000421712725d9806acf54d3a6c82bf93c0fe249268ca9f42eceac19e93a5eab8056503af4a2e3b26279564fed8e772a043e75630e4e3859976ede88ffcf16f5ca71", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e7281d12b74b06eecb273ec3e0d8fe663e9ec1d5a50c2b6c68ec8b3693f23c4c", + "result" : "valid" + }, + { + "tcId" : 399, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041e02176824bd31eabdce03a9403c7d3c2ac631f9b0e88d9a924701c1b2f29b85cf333562f3e018892374353674de8490fc9d30426598eb600779154baf2aec17", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "80643ed8b9052a2e746a26d9178fe2ccff35edbb81f60cd78004fb8d5f143aae", + "result" : "valid" + }, + { + "tcId" : 400, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000463e7a1af36d6b540a49276aac3fec9cb45ed6bab167c06b0419a77b91399f6181e6fe2c1a715163efaf86ea8b1e55ea5742d6b042e6cbf8acc69c99f8271a902", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "75873ac544ad69d3ddc5c9cffe384d275e9da2949d6982da4b990f8bf2b76474", + "result" : "valid" + }, + { + "tcId" : 401, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041e265ab5b7f7199470e532653d2a7b9a8b728970b838137c9692ed0692897b2ac1d5ee9fc3ce49fd4509d33c4dcfcc1a20a660529fa9ebd6e6afc3d5c84c72bb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "355c9faca29cf7cc968853ee29ffe62d1127fcc1dc57e9ddaf0e0f447146064e", + "result" : "valid" + }, + { + "tcId" : 402, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000454d2a4394c109fcbd3cb9886fec3add51ba4d2e44e1d5676e4b98f0c13655fc5f20a0ca618ba0131a2e373f31f73b3f55e9188d46fddbc6387e32aefb9f3ba12", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "fc175a5ef18595b69e45be2cda8ae00d9c8bdbefbcf7f692f91cefdc560e4722", + "result" : "valid" + }, + { + "tcId" : 403, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000493f1459207fb09c6f0a88c398ac80d1052a4cd33e7eef5687da99ab97c6024b770c60975748f0c749a8b0f8fc1e222ddcbd3384f6d68f0b6b6ff679b435cdcb1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "46559146a93aae904dbcaaaa07e6cd1bb450f1b37c83929a994b45792333d5f6", + "result" : "valid" + }, + { + "tcId" : 404, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200041fa049a1892b679857c6dff08af19db70cbc99b6f2d7bc51a341fe79d1647f4a5aa9c0d1b240e6dd4211e3235425634b278ad88fede0337d5acf3136587d8413", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c64b07119054a37961c0a177158256081b38b0087b307e0cad7e30d790ceb0ce", + "result" : "valid" + }, + { + "tcId" : 405, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000484e0b192d60abf531e828e887d366d869e1033a16e9c7f1167458c8134c10fba4ba2e420cabc43b6e8e86590fc2383d17827dd99a60c211f190a74269100c141", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bea8cfc0bee8571ccf0c525654ef26d1fc782bb22deccf67ea4ea0803dc15daf", + "result" : "valid" + }, + { + "tcId" : 406, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042f9707c67118724111efbbbbf06b623ab2ffd9259ddc354fcaaf81ba01f6fa7b2702a515a9a50db1d86fd42aea0834daeb62be03d0cd9033f84b9c4b56a19f12", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "60451da4adfe5bb393109069efdc84415ec8a2c429955cbf22a4340f8fc48936", + "result" : "valid" + }, + { + "tcId" : 407, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ac1fbbe42293a9f9ae104ee2da0b0a9b3464d5d8b1e854df19d3c4456af8f9a6104277170692fa6bf2270580d56d1bc81b54f477d8ab6c3f5842650ac7176d71", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d68e746f3d43feac5fd4898de943dc38205af7e2631ed732079bbfc8ab52511c", + "result" : "valid" + }, + { + "tcId" : 408, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bae10cf93ff7b72d6ed98519602e9f03aa40303fa0674fb3ddee7d2db1c92bb25d367688fde5e082f097855a0c0adc305dd6cf46f50ca75859bb243b70249605", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "28daeaadc609386d770dff4c7120b2a87cab3e21fdb8a6e4dc1240a51d12e55c", + "result" : "valid" + }, + { + "tcId" : 409, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004edb4288cf5567673d50a1cd9e6bea45317823f30383f60d9bc3b9ee42ac29871f4d1d22af7187c8de1b992a4046c419b801cde57d638d30f2e1ac49353117a20", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bb4110b734c8ef8a08bb6011acb35cbda9ae8e2ef6c4d0862576a68792667bb9", + "result" : "valid" + }, + { + "tcId" : 410, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000413233e80f59ac2b59737e87877782ab3027c490df8ac0bf3f3ef1633872eec540162f954534eadb1b4ea95c57d40a10214e5b746ee6aa4194ed2b2012b72f97d", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e25c50037ca1913851b9758752659fb61c02d2a7c6b6aae29bda301907d99f5d", + "result" : "valid" + }, + { + "tcId" : 411, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043cd14f7e4b779615bc7ccee47e7f2b07394bf8f98503263411a549264a8fcf19604f8174e3605b8f18bed3742b6871a8cffce006db31b8d7d836f50cfcda7d16", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "ad259f01e953263f40a39b14a538d076710c19207af936feabdf03bda7f067a5", + "result" : "valid" + }, + { + "tcId" : 412, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004946c278288616aa34790ca193686e745d3d58702866ddf1e95550711a9bfbdb87bc337a1c82e3c5f7a2927987b8fae13627237d220fafb4013123bfbd95f0ba5", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5ec6025ac7b25c0f095f3fdee3e2e508bd1437b9705c2543c0e5af1c1d363ffd", + "result" : "valid" + }, + { + "tcId" : 413, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047f195035feb2c04a9b149bb2ed3c5c458e95e7f7c418c4a07ea6107e4e32455addf9a666bf0015b20e4912f70f655ef21b82087596aa1e2f1e2865350d159185", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a2f93a84574a26b43880cde6ed440c7f7cc72c92504d5271999a8a78ffe3491d", + "result" : "valid" + }, + { + "tcId" : 414, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000440855844e04303843a24b01707544d1bbf97673266e03d77fbf80d8b64219bd8503af4a2e3b26279564fed8e772a043e75630e4e3859976ede88ffcf16f5ca71", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8d0cdb4977ba7661d41036aeb7a5f2dd207716d5d76eeb26629043c559ec2900", + "result" : "valid" + }, + { + "tcId" : 415, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000422cdb3ee47f14b3b0c0c8c256fb22e79126b436a2c9ff635a65151a0f0ffb1bfcf333562f3e018892374353674de8490fc9d30426598eb600779154baf2aec17", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "defde4aa48f89b03f623ea1f946f1aa938c5aab879ca6319596926f085578edc", + "result" : "valid" + }, + { + "tcId" : 416, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042b7becd7066e22f121e7cf123d48c5445037c5a756ef314a66a7001636ee75cf1e6fe2c1a715163efaf86ea8b1e55ea5742d6b042e6cbf8acc69c99f8271a902", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "afe0bfed69a600163865406127a8972b613232aa4c933a06b5a5b5bcff1596f8", + "result" : "valid" + }, + { + "tcId" : 417, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bb8da4a76ee3d1c4b33477bc8663def167a126c422ad47f6c2f8b539c6808936c1d5ee9fc3ce49fd4509d33c4dcfcc1a20a660529fa9ebd6e6afc3d5c84c72bb", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f49bca7a6a5256ddf712775917c30e4873153469bae12fd5c5571031db7b1205", + "result" : "valid" + }, + { + "tcId" : 418, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040a0c37664823a5005d659f7c73c39ea172c862969c81e44f36c89e7c265ec8a8f20a0ca618ba0131a2e373f31f73b3f55e9188d46fddbc6387e32aefb9f3ba12", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9c88b611b7f9aad33fabb09cff618bb1ca6fb904a289b1481da3d1e4e72589e4", + "result" : "valid" + }, + { + "tcId" : 419, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000447c33f6f78d3cd9971ecc50e7e2ac947f8c1103f9c5f0821379bd06ad8fca45670c60975748f0c749a8b0f8fc1e222ddcbd3384f6d68f0b6b6ff679b435cdcb1", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "42f634c06c4a0e7e956db6e86666603d26374cc74b11026f0318d1a25681a712", + "result" : "valid" + }, + { + "tcId" : 420, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b59d18ab8b0f9dd33484f43c3f6860229ba6a4c25a61cd0aaca23b76d60566cf5aa9c0d1b240e6dd4211e3235425634b278ad88fede0337d5acf3136587d8413", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "e2ceb946e7993f27a4327abdf61d4f06577e89c63b62a24aefbd905710d18669", + "result" : "valid" + }, + { + "tcId" : 421, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000494f4601b244d3a6ea6996fa244364f794399e0ff4316157db6023222fc0d90be4ba2e420cabc43b6e8e86590fc2383d17827dd99a60c211f190a74269100c141", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "71637a5da2412a921f1636c69a6ee81083ee2b0e13766ad122791ef6f771896d", + "result" : "valid" + }, + { + "tcId" : 422, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200049e8c115b1ac87d986ee1b506b86a4e7b8ea041aa6a63d6ec80ec0f0cf69cfb3f2702a515a9a50db1d86fd42aea0834daeb62be03d0cd9033f84b9c4b56a19f12", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bd265ed3078ca8c7788f594187c96c675aa623ecd01bfcad62d76a7881334f63", + "result" : "valid" + }, + { + "tcId" : 423, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004eec776b52b94141fc819d4b6b12d28e73555b5560507aba7df6f0484008de91f104277170692fa6bf2270580d56d1bc81b54f477d8ab6c3f5842650ac7176d71", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8d073fc592fb7aa6f7b908ed07148aa7be5a135c4b343ebe295198cba78e71ce", + "result" : "valid" + }, + { + "tcId" : 424, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004aff46a388e5afc220a8eec7a49af9d245384a3af1e0b407b4521f4e92d12dceb5d367688fde5e082f097855a0c0adc305dd6cf46f50ca75859bb243b70249605", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a26d698e4613595aa61c8e2907d5241d6d14909737df59895841d07727bf1348", + "result" : "valid" + }, + { + "tcId" : 425, + "comment" : "point with coordinate y = 1 in left to right addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e807e43d96f3701a9a5c13d122749084170fcd36a586a446c9fcb4600eede4fdf4d1d22af7187c8de1b992a4046c419b801cde57d638d30f2e1ac49353117a20", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a8edc6f9af6bf74122c11ca1a50afbc4a3c4987bd0d1f73284d2c1371e613405", + "result" : "valid" + }, + { + "tcId" : 426, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004798868a56916d341e7d6f96359ae3658836e221459f4f7b7b63694de18a5e9247713fdb03a8de8c6d29ca38a9fbaa82e5e02bead2f9eec69b6444b7adb05333b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "17963de078996eb8503c7cc3e1a2d5147d7f0bfb251a020b4392033063587c8d", + "result" : "valid" + }, + { + "tcId" : 427, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ff419909d8a8ce0a9416051f4e256208c1dc035581a53312d566137e22104e9877421ab01e00e83841b946dae5bb5a23973daa98fe1a8172883abcbedced7021", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "062799a19545d31b3ed72253bcde59762aa6104a88ac5e2fb68926b0f7146698", + "result" : "valid" + }, + { + "tcId" : 428, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200048b48119d7089d3b95cd2eaf8c85584fa8f5e56c4c4ccee7037d74cdbf88e571714c1aac5f0bf1b48a4abcf1d9291b9a8776a004380546a5a1c1f294690f61969", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9f42dd8fce13f8103b3b2bc15e61242e6820fe1325a20ef460fe64d9eb12b231", + "result" : "valid" + }, + { + "tcId" : 429, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e2888119379b5b2151bd788505def1d6bd786329431caf39705d9cbf96a42ea43bb7328839d2aecac64b1cdb182f08adccaac327ed008987a10edc9732413ced", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "d1b204e52d1fac6d504132c76ca233c87e377dcc79c893c970ddbb9f87b27fa0", + "result" : "valid" + }, + { + "tcId" : 430, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200046dcc3971bd20913d59a91f20d912f56d07e7f014206bef4a653ddfe5d12842c39b51b17b76ea6cc137eebd93c811e636d8ae26c70d064650f7205a865d01a6ee", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c8d6bd28c1e65ae7c7a5debe67a7dfaf92b429ede368efc9da7d578a539b7054", + "result" : "valid" + }, + { + "tcId" : 431, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200047ebea45854569a1f7ea6b95b82d6befefbf6296ebc87c810b6cba93c0c1220b23f1874fa08a693b086643ef21eb59d75562da9422d13d9a39b0b17e241b04d32", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0d1f905cc74720bde67ae84f582728588c75444c273dae4106fa20d1d6946430", + "result" : "valid" + }, + { + "tcId" : 432, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ceab5937900d34fa88378d371f4acaa7c6a2028b6143213413f16ba2dc7147877713fdb03a8de8c6d29ca38a9fbaa82e5e02bead2f9eec69b6444b7adb05333b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3f014e309192588fa83e47d4ac9685d2041204e2eaf633a1312812e51ae74cbd", + "result" : "valid" + }, + { + "tcId" : 433, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004a4ffea5e25f75e4f689c81084a35c1220e8e6b914c482f4a2e8f93cffca6964777421ab01e00e83841b946dae5bb5a23973daa98fe1a8172883abcbedced7021", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "68b404d556c82004c6c4bba4518ec00b1d4f1161cafe6c89aeb8494a9ba09db5", + "result" : "valid" + }, + { + "tcId" : 434, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004de8809ea0ecce1d24a0431429510383a6f6e5a1c51cea32d830c6c353042603e14c1aac5f0bf1b48a4abcf1d9291b9a8776a004380546a5a1c1f294690f61969", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c331ade7a457df7f12a2f5c43d7ea9486c1563b81cd8a0f23f923c1a9fa612e3", + "result" : "valid" + }, + { + "tcId" : 435, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004566209f174d6bf79720b70edb27e51350beeb2b0bcd083bbae7214f71cf824d43bb7328839d2aecac64b1cdb182f08adccaac327ed008987a10edc9732413ced", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "17b5c7a311eea9d2ab7571f8b9f848d4705997cf3eaf9bdcbe0e34a670f81f45", + "result" : "valid" + }, + { + "tcId" : 436, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004cc3181c0127137536ceec94fd45996657df72e0f97c44b9dad14763ce506e9dc9b51b17b76ea6cc137eebd93c811e636d8ae26c70d064650f7205a865d01a6ee", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "2f0e4eccbc4518ace558e06604f9bff4787f5b019437b52195ecb6b82191a6ae", + "result" : "valid" + }, + { + "tcId" : 437, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d7052a1eeafc0e78d79e7f26003aa0a409287cf476007df28d281b142be1a0e23f1874fa08a693b086643ef21eb59d75562da9422d13d9a39b0b17e241b04d32", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "7494d864cb6ea9c5d982d40a5f103700d02dc982637753cfc7d8afe1beafff70", + "result" : "valid" + }, + { + "tcId" : 438, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004b7cc3e2306dbf7c38ff179658706feffb5efdb6044c7e71435d7ff7d0ae8c7b37713fdb03a8de8c6d29ca38a9fbaa82e5e02bead2f9eec69b6444b7adb05333b", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "a96873eef5d438b807853b6771c6a5197e6eef21efefca538b45e9e981c032e5", + "result" : "valid" + }, + { + "tcId" : 439, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200045bbe7c98015fd3a6034d79d867a4dcd52f95911932129da2fc0a58afe149137f77421ab01e00e83841b946dae5bb5a23973daa98fe1a8172883abcbedced7021", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9124618913f20cdffa642207f192e67eb80ade53ac5535469abe90036d4af7e2", + "result" : "valid" + }, + { + "tcId" : 440, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004962fe47880a94a745928e3c4a29a42cb01334f1ee9646e62451c46ecd72f410914c1aac5f0bf1b48a4abcf1d9291b9a8776a004380546a5a1c1f294690f61969", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9d8b74888d942870b221de7a642032892bc99e34bd8550195f6f5f097547334a", + "result" : "valid" + }, + { + "tcId" : 441, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c71574f5538de5653c37168d47a2bcf43698ea260012cd0ae1304e474c63a4e63bb7328839d2aecac64b1cdb182f08adccaac327ed008987a10edc9732413ced", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "16983377c0f1a9c004495b3fd9658363116eea644787d059d1140fb907555d4a", + "result" : "valid" + }, + { + "tcId" : 442, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c60244ce306e376f3968178f5293742d7a20e1dc47cfc517edada9db49d0cbbf9b51b17b76ea6cc137eebd93c811e636d8ae26c70d064650f7205a865d01a6ee", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "081af40a81d48c6b530140db935e605bf4cc7b10885f5b148f95f1bc8ad2e52d", + "result" : "valid" + }, + { + "tcId" : 443, + "comment" : "point with coordinate y = 1 in precomputation or right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004aa3c3188c0ad5767a9bac77e7ceea05cfae1599ccd77b9fcbc0c3badc80c36ca3f1874fa08a693b086643ef21eb59d75562da9422d13d9a39b0b17e241b04d32", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "7e4b973e6d4a357c400243a648c8a0a6a35cf231754afdef312d2f4b6abb988f", + "result" : "valid" + }, + { + "tcId" : 444, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200042cce8ddfe4827dc030ddf38f998b3f2ed5e0621d0b3805666daf48c8c31e75e5198d9ef4e973b6bdebe119a35faae86191acd758c1ed8accaf1e706ad55d83d7", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0f0235da2a06c8d408c27151f3f15342ed8c1945aaf84ed14993786d6ac5f570", + "result" : "valid" + }, + { + "tcId" : 445, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000414bfc3e5a46b69881a9a346d95894418614ed91476a1ddce48676b7cbab9ba02f334d64f2caf561b063bc1f7889e937302a455ff685d8ae57cb2444a17dad068", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "5622c2fbe8af5ad6cef72a01be186e554847576106f8979772fa56114d1160ab", + "result" : "valid" + }, + { + "tcId" : 446, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bd442fa5a2a8d72e13e44fd2222c85a006f03375e0211b272f555052b03db750be345737f7c6b5e70e97d9fe9dc4ca94fb185f4b9d2a00e086c1d47273b33602", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "bb95e0d0fbaad86c5bd87b95946c77ff1d65322a175ccf16419102c0a17f5a72", + "result" : "valid" + }, + { + "tcId" : 447, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040d7a3ff49bda6a587ed07691450425aa02d253ba573a16ad86c61af412dd3c770b6d3b9e570ba004877c9a69e481fe215de03a70126305a452826e66d9b5583e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "4510683c7bfa251f0cb56bba7e0ab74d90f5e2ca01e91e7ca99312ccff2d90b6", + "result" : "valid" + }, + { + "tcId" : 448, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bdea5d2a3adde7df2e839ff63f62534b3f27cb191bb54dfa1d39cbff713ba9ed307d8f1d02c6f07146655e6383b0ef3035bee7067c336fdb91365e197a97b616", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "025485142ca1ced752289f772130fc10c75a4508c46bffdef9290ad3e7baf9ca", + "result" : "valid" + }, + { + "tcId" : 449, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004d4c063e3c036f47c92f6f5470a26a835e1a24505b14d1b29279062a16cf6f489198d9ef4e973b6bdebe119a35faae86191acd758c1ed8accaf1e706ad55d83d7", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "9067932150724965aa479c1ef1be55544bed9fa94500a3b67887ed91ae3b81e5", + "result" : "valid" + }, + { + "tcId" : 450, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200043cb9f07997756859e9b9a85b681fa50ee20357f535c1b311c4637d16b76b9ebff334d64f2caf561b063bc1f7889e937302a455ff685d8ae57cb2444a17dad068", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "f8084a89adccdc3aef89e5091a0f07d6160a66cb9575241100c1d39bf0549ae2", + "result" : "valid" + }, + { + "tcId" : 451, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004793412ff636c08a2d0f6d60cc608e9a9098349a2501f91c95f692010bc1238b2be345737f7c6b5e70e97d9fe9dc4ca94fb185f4b9d2a00e086c1d47273b33602", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "4462558c89902117051cb2c599ad66f00887b54cae3da9c04d317a5b2afb463b", + "result" : "valid" + }, + { + "tcId" : 452, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004bd1eb0849e2e6a13d54b76518f11ba8775c2d7634d85152534bc7c3af4161efa0b6d3b9e570ba004877c9a69e481fe215de03a70126305a452826e66d9b5583e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "30b4741a64f87d28ec0029bd196b5a74555f2c9a976a46d628572474466a631d", + "result" : "valid" + }, + { + "tcId" : 453, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004624b3b4ba993a8b938125689f6cf757392ee390d14a90fea6db944b5a8deb8d0307d8f1d02c6f07146655e6383b0ef3035bee7067c336fdb91365e197a97b616", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "3afc04ac92117e50b0913b09dbbb4e6c780c051500201fad512b79080bff39e2", + "result" : "valid" + }, + { + "tcId" : 454, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fe710e3c5b468dc33c2b17295c4e189b487d58dd437adf706ac05493cfea8df0198d9ef4e973b6bdebe119a35faae86191acd758c1ed8accaf1e706ad55d83d7", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "609637048586edc64cf5f28f1a505768c686471110070d783de499ffe6fe84da", + "result" : "valid" + }, + { + "tcId" : 455, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004ae864ba0c41f2e1dfbac2337025716d8bcadcef6539c6f1ff335176b8ddaa36ef334d64f2caf561b063bc1f7889e937302a455ff685d8ae57cb2444a17dad068", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "b1d4f27a6983c8ee417ef0f527d889d4a1ae41d3639244578c43d650c299fcd1", + "result" : "valid" + }, + { + "tcId" : 456, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004c987bd5af9eb202f1b24da2117ca90b6ef8c82e7cfbf530f71418f9a93b0085cbe345737f7c6b5e70e97d9fe9dc4ca94fb185f4b9d2a00e086c1d47273b33602", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "0007c9a27ac5067c9f0ad1a4d1e62110da1318893a658729713d82e333855b82", + "result" : "valid" + }, + { + "tcId" : 457, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000435670f86c5f72b93abe4131d2bea1fce876ad4e25b40d42d447d68cff90ca0be0b6d3b9e570ba004877c9a69e481fe215de03a70126305a452826e66d9b5583e", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "8a3b23a91f0d5db8074a6a886889ee3e19aaf09b66ac9aad2e15c8bdba68085c", + "result" : "valid" + }, + { + "tcId" : 458, + "comment" : "point with coordinate y = 1 in right to left addition chain", + "flags" : [ + "EdgeCaseDoubling" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004dfca678a1b8e6f67996a097fc9ce37412de9fbd9cfa1a21b750cef48e5e595a1307d8f1d02c6f07146655e6383b0ef3035bee7067c336fdb91365e197a97b616", + "private" : "00c1781d86cac2c052b865f228e64bd1ce433c78ca7dfca9e8b810473e2ce17da5", + "shared" : "c2af763f414cb2d7fd46257f0313b582c099b5e23b73e073b5ab7c230c45c883", + "result" : "valid" + }, + { + "tcId" : 459, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "03", + "shared" : "34005694e3cac09332aa42807e3afdc3b3b3bc7c7be887d1f98d76778c55cfd7", + "result" : "valid" + }, + { + "tcId" : 460, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "shared" : "5841acd3cff2d62861bbe11084738006d68ccf35acae615ee9524726e93d0da5", + "result" : "valid" + }, + { + "tcId" : 461, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "0100000000000000000000000000000000000000000000000000000000000000", + "shared" : "4348e4cba371ead03982018abc9aacecaebfd636dda82e609fd298947f907de8", + "result" : "valid" + }, + { + "tcId" : 462, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "shared" : "e56221c2b0dc33b98b90dfd3239a2c0cb1e4ad0399a3aaef3f9d47fb103daef0", + "result" : "valid" + }, + { + "tcId" : 463, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "008000000000000000000000000000000000000000000000000000000000000000", + "shared" : "5b34a29b1c4ddcb2101162d34bed9f0702361fe5af505df315eff7befd0e4719", + "result" : "valid" + }, + { + "tcId" : 464, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03abfd25e8cd0364141", + "shared" : "cece521b8b5a32bbee38936ba7d645824f238e561701a386fb888e010db54b2f", + "result" : "valid" + }, + { + "tcId" : 465, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfc25e8cd0364141", + "shared" : "829521b79d71f5011e079756b851a0d5c83557866189a6258c1e78a1700c6904", + "result" : "valid" + }, + { + "tcId" : 466, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfca5e8cd0364141", + "shared" : "8c5934793505a6a1f84d41283341680c4923f1f4d562989a11cc626fea5eda5a", + "result" : "valid" + }, + { + "tcId" : 467, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8bd0364141", + "shared" : "356caee7e7eee031a15e54c3a5c4e72f9c74bb287ce601619ef85eb96c289452", + "result" : "valid" + }, + { + "tcId" : 468, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03640c3", + "shared" : "09c7337df6c2b35edf3a21382511cc5add1a71a84cbf8d3396a5be548d92fa67", + "result" : "valid" + }, + { + "tcId" : 469, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364103", + "shared" : "d16caedd25793666f9e26f5331382106f54095b3d20d40c745b68ca76c0e6983", + "result" : "valid" + }, + { + "tcId" : 470, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364123", + "shared" : "b8ae1e21d8b34ce4caffed7167a26868ec80a7d4a6a98b639d4d05cd226504de", + "result" : "valid" + }, + { + "tcId" : 471, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364133", + "shared" : "02776315fe147a36a4b0987492b6503acdea60f926450e5eddb9f88fc82178d3", + "result" : "valid" + }, + { + "tcId" : 472, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413b", + "shared" : "3988c9c7050a28794934e5bd67629b556d97a4858d22812835f4a37dca351943", + "result" : "valid" + }, + { + "tcId" : 473, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413e", + "shared" : "34005694e3cac09332aa42807e3afdc3b3b3bc7c7be887d1f98d76778c55cfd7", + "result" : "valid" + }, + { + "tcId" : 474, + "comment" : "edge case private key", + "flags" : [ + "AdditionChain" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000432bdd978eb62b1f369a56d0949ab8551a7ad527d9602e891ce457586c2a8569e981e67fae053b03fc33e1a291f0a3beb58fceb2e85bb1205dacee1232dfd316b", + "private" : "00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036413f", + "shared" : "4b52257d8b3ba387797fdf7a752f195ddc4f7d76263de61d0d52a5ec14a36cbf", + "result" : "valid" + }, + { + "tcId" : 475, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 476, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 477, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 478, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000000000000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 479, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 480, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 481, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 482, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a034200040000000000000000000000000000000000000000000000000000000000000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 483, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e0000000000000000000000000000000000000000000000000000000000000000", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 484, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e0000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 485, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 486, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2efffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 487, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f0000000000000000000000000000000000000000000000000000000000000000", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 488, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f0000000000000000000000000000000000000000000000000000000000000001", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 489, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 490, + "comment" : "point is not on curve", + "flags" : [ + "InvalidCurveAttack" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 491, + "comment" : "", + "flags" : [ + "InvalidEncoding" + ], + "public" : "3015301006072a8648ce3d020106052b8104000a030100", + "private" : "00c6cafb74e2a50c83b3d232c4585237f44d4c5433c4b3f50ce978e6aeda3a4f5d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 492, + "comment" : "public key has invalid point of order 2 on secp256r1. The point of the public key is a valid on secp256k1.", + "flags" : [ + "WrongCurve" + ], + "public" : "3059301306072a8648ce3d020106082a8648ce3d03010703420004ffffffff00000001000000000000000000000000ffffffffffffffffffffffff32d98e0d77dd0e543770ec994c0ae837e7bb36eb1d910b58a14a2a08dc182f83", + "private" : "3b25129f3410ec89cc6dc539fd7601873ba6abf72a6d023f1aa9041765430ee6", + "shared" : "1d3fc2b2e48b3e96c6323380fadb467825e69f5b9078a9e02173b477bc232cc1", + "result" : "invalid" + }, + { + "tcId" : 493, + "comment" : "public key has invalid point of order 2 on FRP256v1. The point of the public key is a valid on secp256k1.", + "flags" : [ + "WrongCurve" + ], + "public" : "305b301506072a8648ce3d0201060a2a817a01815f6582000103420004f1fd178c0b3ad58f10126de8ce42435b3961adbcabc8ca6de8fcf353d86e9c03247e9edb2a633201dfc68fbd34556690db38ef76732f8a9052ee40d84e2ec35b", + "private" : "485dea32cd245db99d88e1852587c161b81abeabb151ad3fc1e4dd2f591e9936", + "shared" : "0a373d77057a50e3aad60b1e51bc017523dc2bdfef1c07cf4ed8393839224d0a", + "result" : "invalid" + }, + { + "tcId" : 494, + "comment" : "public point not on curve", + "flags" : [ + "ModifiedPublicPoint", + "InvalidPublic" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e4", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 495, + "comment" : "public point = (0,0)", + "flags" : [ + "ModifiedPublicPoint", + "InvalidPublic" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a0342000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 496, + "comment" : "order = -115792089237316195423570985008687907852837564279074904382605163141518161494337", + "flags" : [ + "WrongOrder", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b80221ff000000000000000000000000000000014551231950b75fc4402da1732fc9bebf0201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "invalid" + }, + { + "tcId" : 497, + "comment" : "order = 0", + "flags" : [ + "WrongOrder", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201133081cc06072a8648ce3d02013081c0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b80201000201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "invalid" + }, + { + "tcId" : 498, + "comment" : "order = 1", + "flags" : [ + "WrongOrder", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "308201133081cc06072a8648ce3d02013081c0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b80201010201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 499, + "comment" : "order = 26959946667150639794667015087019630673536463705607434823784316690060", + "flags" : [ + "WrongOrder", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "3082012f3081e806072a8648ce3d02013081dc020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8021d00fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8c0201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 500, + "comment" : "generator = (0,0)", + "flags" : [ + "ModifiedGenerator", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 501, + "comment" : "generator not on curve", + "flags" : [ + "ModifiedGenerator", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4ba022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 502, + "comment" : "cofactor = -1", + "flags" : [ + "NegativeCofactor", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410201ff0342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "invalid" + }, + { + "tcId" : 503, + "comment" : "cofactor = 0", + "flags" : [ + "NegativeCofactor", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201303081e906072a8648ce3d02013081dd020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "invalid" + }, + { + "tcId" : 504, + "comment" : "cofactor = 2", + "flags" : [ + "ModifiedCofactor", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410201020342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 505, + "comment" : "cofactor = n", + "flags" : [ + "LargeCofactor", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201553082010d06072a8648ce3d020130820100020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "invalid" + }, + { + "tcId" : 506, + "comment" : "cofactor = None", + "flags" : [ + "ModifiedCofactor", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "308201303081e906072a8648ce3d02013081dd020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 507, + "comment" : "modified prime", + "flags" : [ + "ModifiedPrime", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fb524ac7055bebf603a4e216abaa6a9ef8eb2bbea2cd820e59d46d8501f6268b304404200000000000000000000000000000000000000000000000000000000000000000042000000000000000000000000000000000000000000000000000000000000000070441040000000000000000000006597fa94f5b8380000000000000000000000000000f229ba06e5c03dbcba0eec01b4bcca549cda86e507e8813b5bb2b42df88f12f47022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141020101034200040000000000000000000006597fa94f5b8380000000000000000000000000000f229ba06e5c03dbcba0eec01b4bcca549cda86e507e8813b5bb2b42df88f12f47", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "c5956b8cf7244e3c0457658a214210b358205cab12374d523ecf57895cecfeb0", + "result" : "invalid" + }, + { + "tcId" : 508, + "comment" : "using secp224r1", + "flags" : [ + "ModifiedGroup", + "InvalidPublic" + ], + "public" : "304e301006072a8648ce3d020106052b81040021033a0004074f56dc2ea648ef89c3b72e23bbd2da36f60243e4d2067b70604af1c2165cec2f86603d60c8a611d5b84ba3d91dfe1a480825bcc4af3bcf", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 509, + "comment" : "using secp256r1", + "flags" : [ + "ModifiedGroup", + "InvalidPublic" + ], + "public" : "3059301306072a8648ce3d020106082a8648ce3d03010703420004cbf6606595a3ee50f9fceaa2798c2740c82540516b4e5a7d361ff24e9dd15364e5408b2e679f9d5310d1f6893b36ce16b4a507509175fcb52aea53b781556b39", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 510, + "comment" : "a = 0", + "flags" : [ + "Modified curve parameter", + "UnusedParam", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f3044042000000000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000000704410449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd03641410201010342000449c248edc659e18482b7105748a4b95d3a46952a5ba72da0d702dc97a64e99799d8cff7a5c4b925e4360ece25ccf307d7a9a7063286bbd16ef64c65f546757e2", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "380c53e0a509ebb3b63346598105219b43d51ae196b4557d59bbd67824032dff", + "result" : "acceptable" + }, + { + "tcId" : 511, + "comment" : "public key of order 3", + "flags" : [ + "WeakPublicKey", + "InvalidPublic", + "UnnamedCurve" + ], + "public" : "308201333081ec06072a8648ce3d02013081e0020101302c06072a8648ce3d0101022100fffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f304404209234b518bfe789f01e2389571299e39b4596c63a14d598659341dd313c65e08a04209d569a9efeeb4362b094d096024cba7b53d51dbc33818c8cdf37b9315d2e7bab044104fb6075d26c3501c014e48c79b3463cd768378c390d7e6eeb379717d490c4e63487fbca88e6867877e98f43ec02f4a0f45ef0f94310d8ee3d70a10280ce2ae6b3022100fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd036414102010103420004fb6075d26c3501c014e48c79b3463cd768378c390d7e6eeb379717d490c4e63478043577197987881670bc13fd0b5f0ba10f06bcef2711c28f5efd7e31d5157c", + "private" : "00cfe75ee764197aa7732a5478556b478898423d2bc0e484a6ebb3674a6036a65d", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 512, + "comment" : "Public key uses wrong curve: secp224r1", + "flags" : [ + "WrongCurve" + ], + "public" : "304e301006072a8648ce3d020106052b81040021033a000450eb062b54940a455719d523e1ec106525dda34c2fd95ace62b9b16d315d323f089173d10c45dceff155942431750c00ca36f463828e9fab", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 513, + "comment" : "Public key uses wrong curve: secp256r1", + "flags" : [ + "WrongCurve" + ], + "public" : "3059301306072a8648ce3d020106082a8648ce3d0301070342000406372852584037722a7f9bfaad5661acb623162d45f70a552c617f4080e873aa43609275dff6dcaaa122a745d0f154681f9c7726867b43e7523b7f5ab5ea963e", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 514, + "comment" : "Public key uses wrong curve: secp384r1", + "flags" : [ + "WrongCurve" + ], + "public" : "3076301006072a8648ce3d020106052b81040022036200040ef5804731d918f037506ee00b8602b877c7d509ffa2c0847a86e7a2d358ba7c981c2a74b22401ac615307a6deb275402fa6c8218c3374f8a91752d2eff6bd14ad8cae596d2f37dae8aeec085760edf4fda9a7cf70253898a54183469072a561", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 515, + "comment" : "Public key uses wrong curve: secp521r1", + "flags" : [ + "WrongCurve" + ], + "public" : "30819b301006072a8648ce3d020106052b81040023038186000400921da57110db26c7838a69d574fc98588c5c07a792cb379f46664cc773c1e1f6fa16148667748ede232d1a1f1cea7f152c5d586172acbeaa48416bcbd70bb27f0f01b4477e1ae74bf4f093184a9f26f103712ccf6ceb45a0505b191606d897edaf872b37f0f90a933000a80fc3207048323c16883a3d67a90aa78bcc9c5e58d784b9b9", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 516, + "comment" : "Public key uses wrong curve: secp224k1", + "flags" : [ + "WrongCurve" + ], + "public" : "304e301006072a8648ce3d020106052b81040020033a000456dd09f8a8c19039286b6aa79d099ff3e35ff74400437d2072fd9faa7f2901db79d793f55268980f7d395055330a91b46bf4a62c3a528230", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 517, + "comment" : "Public key uses wrong curve: brainpoolP224r1", + "flags" : [ + "WrongCurve" + ], + "public" : "3052301406072a8648ce3d020106092b2403030208010105033a00042c9fdd1914cacdb28e39e6fc24b4c3c666cc0d438acc4529a6cc297a2d0fdecb3028d9e4d84c711db352379c080c78659969bdc5d3218901", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 518, + "comment" : "Public key uses wrong curve: brainpoolP256r1", + "flags" : [ + "WrongCurve" + ], + "public" : "305a301406072a8648ce3d020106092b240303020801010703420004120e4db849e5d960741c7d221aa80fe6e4fcd578191b7f845a68a6fcb8647719a6fffb6165d8ec39389eecc530839c321b2e9040027fba5d9cb9311df7cd3d4d", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 519, + "comment" : "Public key uses wrong curve: brainpoolP320r1", + "flags" : [ + "WrongCurve" + ], + "public" : "306a301406072a8648ce3d020106092b2403030208010109035200040efb1c104938f59a931fe6bf69f7ead4036d2336075a708e66b020e1bc5bb6d9cdc86d4e8fa181d7c7ea1af28353044e8cec12eec75a6dd87a5dc902024d93f8c8d9bf43b453fd919151f9bd7bb955c7", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 520, + "comment" : "Public key uses wrong curve: brainpoolP384r1", + "flags" : [ + "WrongCurve" + ], + "public" : "307a301406072a8648ce3d020106092b240303020801010b036200043e96d75b79214e69a4550e25375478bdc9c2a9d0178a77b5700bd5f12e3ce142f50c93dc1ee7268456d7eae2d44b718d6f159e896ae14fbe3aba397801a95e2bb6a9a761e865b289dd9db64aa07c794cedf77328543b94c9b54ce0cf04c60ac8", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 521, + "comment" : "Public key uses wrong curve: brainpoolP512r1", + "flags" : [ + "WrongCurve" + ], + "public" : "30819b301406072a8648ce3d020106092b240303020801010d03818200044f191130740f1b75ae13402960eb22ea801db80ed51a461e06a7b3ba60c9bddd132a6465bbee8afd70cfb4495efbda4f1567b958e6e305bfcb4ac8f05172688e0f2f175aa12425be3ab7271b42f258639e868677d1163c12e641229f1e6427761c9e294de51db564151b21a051d2f7a13661852799557a556a5f3c51d36d083a", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 522, + "comment" : "Public key uses wrong curve: brainpoolP224t1", + "flags" : [ + "WrongCurve" + ], + "public" : "3052301406072a8648ce3d020106092b2403030208010106033a00044964b948cefa39cd769e3480d4840a3c58e966161be80df02d9aab33b4a318a32f30130224edcefe0dd64342404e594aa334995b179f641f", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 523, + "comment" : "Public key uses wrong curve: brainpoolP256t1", + "flags" : [ + "WrongCurve" + ], + "public" : "305a301406072a8648ce3d020106092b24030302080101080342000411157979c08bcd175d34572209a85f3f5d602e35bdc3b553b0f19307672b31ba69d0556bce48c43e2e7e6177055221a4c4b7eb17ee9708f49216de76d6e92ab8", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 524, + "comment" : "Public key uses wrong curve: brainpoolP320t1", + "flags" : [ + "WrongCurve" + ], + "public" : "306a301406072a8648ce3d020106092b240303020801010a035200048bb517e198930eba57293419876a8793f711de37c27f200e6fb2c2b13e9fabd4fbc42ad61751ca583031ba76cbc6d745d115addc74eab63bf415c4fa20dbbecae98ac3c3da1a041705cf8959e2ccf453", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 525, + "comment" : "Public key uses wrong curve: brainpoolP384t1", + "flags" : [ + "WrongCurve" + ], + "public" : "307a301406072a8648ce3d020106092b240303020801010c036200045eb38d0261b744b03abef4ae7c17bc886b5b426bd910958f8a49ef62053048f869541b7a05d244315fc9cd74271ec3d518d94114b6006017f4ed5e3c06322baa1c75809a1057ba6fa46d1e1a9927a262e627940d5da538b5a3d1d794d9c866a4", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 526, + "comment" : "Public key uses wrong curve: brainpoolP512t1", + "flags" : [ + "WrongCurve" + ], + "public" : "30819b301406072a8648ce3d020106092b240303020801010e0381820004035fc238e57d980beae0215fb89108f9c6c4afda5d920f9d0583ee7d65f8778ecfff24a31d4f32deb6ea5f7e3adb6affb9327a5e62e09cba07c88b119fd104a83b7811e958e393971a5c9417412070b9f18b03be37e81e0bca5d3ff0873ed1f3113ed0fc57a0344321fb4d6c43f2f6e630a3d3883efe4c21df3e0f0b1208226b", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 527, + "comment" : "Public key uses wrong curve: FRP256v1", + "flags" : [ + "WrongCurve" + ], + "public" : "305b301506072a8648ce3d0201060a2a817a01815f6582000103420004375e9438d4ab14e298a75eab1e2d51a9248c8ee0bbb24397cbd4651517faedd26d4ded568d2348a473aa5a7570107dc6fc60a2ce0c4143446b5b09ab3fcc7bb4", + "private" : "00dafa209e0f81119a4afa3f1bc46e2f7947354e3727c608b05c4950b10386643a", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 528, + "comment" : "invalid public key", + "flags" : [ + "InvalidCompressedPublic", + "CompressedPoint" + ], + "public" : "3036301006072a8648ce3d020106052b8104000a03220002977cb7fb9a0ec5b208e811d6a0795eb78d7642e3cac42a801bcc8fc0f06472d4", + "private" : "00d09182a4d0c94ba85f82eff9fc1bddb0b07d3f2af8632fc1c73a3604e8f0b335", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 529, + "comment" : "public key is a low order point on twist", + "flags" : [ + "WrongCurve", + "CompressedPoint" + ], + "public" : "3036301006072a8648ce3d020106052b8104000a032200020000000000000000000000000000000000000000000000000000000000000000", + "private" : "0098b5c223cf9cc0920a5145ba1fd2f6afee7e1f66d0120b8536685fdf05ebb300", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 530, + "comment" : "public key is a low order point on twist", + "flags" : [ + "WrongCurve", + "CompressedPoint" + ], + "public" : "3036301006072a8648ce3d020106052b8104000a032200030000000000000000000000000000000000000000000000000000000000000000", + "private" : "0098b5c223cf9cc0920a5145ba1fd2f6afee7e1f66d0120b8536685fdf05ebb2ff", + "shared" : "", + "result" : "invalid" + }, + { + "tcId" : 531, + "comment" : "length of sequence uses long form encoding", + "flags" : [ + "InvalidAsn" + ], + "public" : "308156301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 532, + "comment" : "length of sequence uses long form encoding", + "flags" : [ + "InvalidAsn" + ], + "public" : "305730811006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 533, + "comment" : "length of sequence contains a leading 0", + "flags" : [ + "InvalidAsn" + ], + "public" : "30820056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 534, + "comment" : "length of sequence contains a leading 0", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583082001006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 535, + "comment" : "length of sequence uses 87 instead of 86", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 536, + "comment" : "length of sequence uses 85 instead of 86", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 537, + "comment" : "uint32 overflow in length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30850100000056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 538, + "comment" : "uint32 overflow in length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b3085010000001006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 539, + "comment" : "uint64 overflow in length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3089010000000000000056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 540, + "comment" : "uint64 overflow in length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305f308901000000000000001006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 541, + "comment" : "length of sequence = 2**31 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "30847fffffff301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 542, + "comment" : "length of sequence = 2**31 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a30847fffffff06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 543, + "comment" : "length of sequence = 2**32 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "3084ffffffff301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 544, + "comment" : "length of sequence = 2**32 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a3084ffffffff06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 545, + "comment" : "length of sequence = 2**40 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "3085ffffffffff301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 546, + "comment" : "length of sequence = 2**40 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b3085ffffffffff06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 547, + "comment" : "length of sequence = 2**64 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "3088ffffffffffffffff301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 548, + "comment" : "length of sequence = 2**64 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e3088ffffffffffffffff06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 549, + "comment" : "incorrect length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30ff301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 550, + "comment" : "incorrect length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305630ff06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 551, + "comment" : "replaced sequence by an indefinite length tag without termination", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 552, + "comment" : "replaced sequence by an indefinite length tag without termination", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056308006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 553, + "comment" : "removing sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 554, + "comment" : "removing sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "304403420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 555, + "comment" : "lonely sequence tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "30", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 556, + "comment" : "lonely sequence tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "30453003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 557, + "comment" : "appending 0's to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 558, + "comment" : "appending 0's to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d020106052b8104000a000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 559, + "comment" : "prepending 0's to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30580000301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 560, + "comment" : "prepending 0's to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583012000006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 561, + "comment" : "appending unused 0's to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 562, + "comment" : "appending unused 0's to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 563, + "comment" : "appending null value to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670500", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 564, + "comment" : "appending null value to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d020106052b8104000a050003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 565, + "comment" : "prepending garbage to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b4981773056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 566, + "comment" : "prepending garbage to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a25003056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 567, + "comment" : "prepending garbage to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b3015498177301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 568, + "comment" : "prepending garbage to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a30142500301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 569, + "comment" : "appending garbage to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670004deadbeef", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 570, + "comment" : "appending garbage to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e3012301006072a8648ce3d020106052b8104000a0004deadbeef03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 571, + "comment" : "including undefined tags", + "flags" : [ + "InvalidAsn" + ], + "public" : "305eaa00bb00cd003056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 572, + "comment" : "including undefined tags", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e3018aa00bb00cd00301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 573, + "comment" : "including undefined tags", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e3018260faa00bb00cd0006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 574, + "comment" : "including undefined tags", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e301806072a8648ce3d0201260daa00bb00cd0006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 575, + "comment" : "including undefined tags", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e301006072a8648ce3d020106052b8104000a234aaa00bb00cd0003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 576, + "comment" : "truncated length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3081", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 577, + "comment" : "truncated length of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3046308103420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 578, + "comment" : "including undefined tags to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305caa02aabb3056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 579, + "comment" : "including undefined tags to sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305c3016aa02aabb301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 580, + "comment" : "Replacing sequence with NULL", + "flags" : [ + "InvalidAsn" + ], + "public" : "0500", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 581, + "comment" : "Replacing sequence with NULL", + "flags" : [ + "InvalidAsn" + ], + "public" : "3046050003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 582, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "2e56301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 583, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "2f56301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 584, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3156301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 585, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3256301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 586, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "ff56301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 587, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30562e1006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 588, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30562f1006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 589, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056311006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 590, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056321006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 591, + "comment" : "changing tag value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056ff1006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 592, + "comment" : "dropping value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 593, + "comment" : "dropping value of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3046300003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 594, + "comment" : "truncated sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 595, + "comment" : "truncated sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30551006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 596, + "comment" : "truncated sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055300f06072a8648ce3d020106052b81040003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 597, + "comment" : "truncated sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055300f072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 598, + "comment" : "sequence of size 4183 to check for overflows", + "flags" : [ + "InvalidAsn" + ], + "public" : "30821057301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 599, + "comment" : "indefinite length", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 600, + "comment" : "indefinite length", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058308006072a8648ce3d020106052b8104000a000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 601, + "comment" : "indefinite length with truncated delimiter", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da326700", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 602, + "comment" : "indefinite length with truncated delimiter", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057308006072a8648ce3d020106052b8104000a0003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 603, + "comment" : "indefinite length with additional element", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da326705000000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 604, + "comment" : "indefinite length with additional element", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a308006072a8648ce3d020106052b8104000a0500000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 605, + "comment" : "indefinite length with truncated element", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267060811220000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 606, + "comment" : "indefinite length with truncated element", + "flags" : [ + "InvalidAsn" + ], + "public" : "305c308006072a8648ce3d020106052b8104000a06081122000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 607, + "comment" : "indefinite length with garbage", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000fe02beef", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 608, + "comment" : "indefinite length with garbage", + "flags" : [ + "InvalidAsn" + ], + "public" : "305c308006072a8648ce3d020106052b8104000a0000fe02beef03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 609, + "comment" : "indefinite length with nonempty EOC", + "flags" : [ + "InvalidAsn" + ], + "public" : "3080301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670002beef", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 610, + "comment" : "indefinite length with nonempty EOC", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a308006072a8648ce3d020106052b8104000a0002beef03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 611, + "comment" : "prepend empty sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583000301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 612, + "comment" : "prepend empty sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583012300006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 613, + "comment" : "append empty sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32673000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 614, + "comment" : "append empty sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d020106052b8104000a300003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 615, + "comment" : "append garbage with high tag number", + "flags" : [ + "InvalidAsn" + ], + "public" : "3059301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267bf7f00", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 616, + "comment" : "append garbage with high tag number", + "flags" : [ + "InvalidAsn" + ], + "public" : "3059301306072a8648ce3d020106052b8104000abf7f0003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 617, + "comment" : "append null with explicit tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267a0020500", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 618, + "comment" : "append null with explicit tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406072a8648ce3d020106052b8104000aa002050003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 619, + "comment" : "append null with implicit tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267a000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 620, + "comment" : "append null with implicit tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d020106052b8104000aa00003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 621, + "comment" : "sequence of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 622, + "comment" : "sequence of sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583012301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 623, + "comment" : "truncated sequence: removed last 1 elements", + "flags" : [ + "InvalidAsn" + ], + "public" : "3012301006072a8648ce3d020106052b8104000a", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 624, + "comment" : "truncated sequence: removed last 1 elements", + "flags" : [ + "InvalidAsn" + ], + "public" : "304f300906072a8648ce3d020103420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 625, + "comment" : "repeating element in sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "30819a301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da326703420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 626, + "comment" : "repeating element in sequence", + "flags" : [ + "InvalidAsn" + ], + "public" : "305d301706072a8648ce3d020106052b8104000a06052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 627, + "comment" : "length of sequence uses 17 instead of 16", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301106072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 628, + "comment" : "length of sequence uses 15 instead of 16", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056300f06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 629, + "comment" : "sequence of size 4113 to check for overflows", + "flags" : [ + "InvalidAsn" + ], + "public" : "308210593082101106072a8648ce3d020106052b8104000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 630, + "comment" : "length of oid uses long form encoding", + "flags" : [ + "InvalidAsn" + ], + "public" : "305730110681072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 631, + "comment" : "length of oid uses long form encoding", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106072a8648ce3d02010681052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 632, + "comment" : "length of oid contains a leading 0", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583012068200072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 633, + "comment" : "length of oid contains a leading 0", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d0201068200052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 634, + "comment" : "length of oid uses 8 instead of 7", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006082a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 635, + "comment" : "length of oid uses 6 instead of 7", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006062a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 636, + "comment" : "uint32 overflow in length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b3015068501000000072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 637, + "comment" : "uint32 overflow in length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b301506072a8648ce3d0201068501000000052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 638, + "comment" : "uint64 overflow in length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305f301906890100000000000000072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 639, + "comment" : "uint64 overflow in length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305f301906072a8648ce3d020106890100000000000000052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 640, + "comment" : "length of oid = 2**31 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406847fffffff2a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 641, + "comment" : "length of oid = 2**31 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406072a8648ce3d020106847fffffff2b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 642, + "comment" : "length of oid = 2**32 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a30140684ffffffff2a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 643, + "comment" : "length of oid = 2**32 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406072a8648ce3d02010684ffffffff2b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 644, + "comment" : "length of oid = 2**40 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b30150685ffffffffff2a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 645, + "comment" : "length of oid = 2**40 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b301506072a8648ce3d02010685ffffffffff2b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 646, + "comment" : "length of oid = 2**64 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e30180688ffffffffffffffff2a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 647, + "comment" : "length of oid = 2**64 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e301806072a8648ce3d02010688ffffffffffffffff2b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 648, + "comment" : "incorrect length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006ff2a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 649, + "comment" : "incorrect length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106ff2b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 650, + "comment" : "replaced oid by an indefinite length tag without termination", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006802a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 651, + "comment" : "replaced oid by an indefinite length tag without termination", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106802b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 652, + "comment" : "removing oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "304d300706052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 653, + "comment" : "lonely oid tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "304e30080606052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 654, + "comment" : "lonely oid tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "3050300a06072a8648ce3d02010603420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 655, + "comment" : "appending 0's to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206092a8648ce3d0201000006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 656, + "comment" : "appending 0's to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d020106072b8104000a000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 657, + "comment" : "prepending 0's to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583012060900002a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 658, + "comment" : "prepending 0's to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d0201060700002b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 659, + "comment" : "appending unused 0's to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d0201000006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 660, + "comment" : "appending null value to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206092a8648ce3d0201050006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 661, + "comment" : "appending null value to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301206072a8648ce3d020106072b8104000a050003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 662, + "comment" : "prepending garbage to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b3015260c49817706072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 663, + "comment" : "prepending garbage to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a3014260b250006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 664, + "comment" : "prepending garbage to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b301506072a8648ce3d0201260a49817706052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 665, + "comment" : "prepending garbage to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406072a8648ce3d02012609250006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 666, + "comment" : "appending garbage to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e3018260906072a8648ce3d02010004deadbeef06052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 667, + "comment" : "appending garbage to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e301806072a8648ce3d0201260706052b8104000a0004deadbeef03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 668, + "comment" : "truncated length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "304f3009068106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 669, + "comment" : "truncated length of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3051300b06072a8648ce3d0201068103420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 670, + "comment" : "including undefined tags to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305c3016260daa02aabb06072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 671, + "comment" : "including undefined tags to oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305c301606072a8648ce3d0201260baa02aabb06052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 672, + "comment" : "Replacing oid with NULL", + "flags" : [ + "InvalidAsn" + ], + "public" : "304f3009050006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 673, + "comment" : "Replacing oid with NULL", + "flags" : [ + "InvalidAsn" + ], + "public" : "3051300b06072a8648ce3d0201050003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 674, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301004072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 675, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301005072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 676, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301007072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 677, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301008072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 678, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "30563010ff072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 679, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020104052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 680, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020105052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 681, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020107052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 682, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020108052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 683, + "comment" : "changing tag value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d0201ff052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 684, + "comment" : "dropping value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "304f3009060006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 685, + "comment" : "dropping value of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3051300b06072a8648ce3d0201060003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 686, + "comment" : "modifying first byte of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305630100607288648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 687, + "comment" : "modifying first byte of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d02010605298104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 688, + "comment" : "modifying last byte of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d028106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 689, + "comment" : "modifying last byte of oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104008a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 690, + "comment" : "truncated oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055300f06062a8648ce3d0206052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 691, + "comment" : "truncated oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055300f06068648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 692, + "comment" : "truncated oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055300f06072a8648ce3d020106042b81040003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 693, + "comment" : "truncated oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055300f06072a8648ce3d020106048104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 694, + "comment" : "oid of size 4104 to check for overflows", + "flags" : [ + "InvalidAsn" + ], + "public" : "3082105b30821013068210082a8648ce3d0201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 695, + "comment" : "wrong oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3054300e06052b0e03021a06052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 696, + "comment" : "wrong oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "30583012060960864801650304020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 697, + "comment" : "wrong oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b0e03021a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 698, + "comment" : "wrong oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406072a8648ce3d0201060960864801650304020103420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 699, + "comment" : "longer oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106082a8648ce3d02010106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 700, + "comment" : "longer oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106072a8648ce3d020106062b8104000a0103420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 701, + "comment" : "oid with modified node", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d021106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 702, + "comment" : "oid with modified node", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a3014060b2a8648ce3d02888080800106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 703, + "comment" : "oid with modified node", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104001a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 704, + "comment" : "oid with modified node", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301406072a8648ce3d020106092b810400888080800a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 705, + "comment" : "large integer in oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305f301906102a8648ce3d028280808080808080800106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 706, + "comment" : "large integer in oid", + "flags" : [ + "InvalidAsn" + ], + "public" : "305f301906072a8648ce3d0201060e2b8104008280808080808080800a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 707, + "comment" : "oid with invalid node", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106082a8648ce3d0201e006052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 708, + "comment" : "oid with invalid node", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106082a808648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 709, + "comment" : "oid with invalid node", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106072a8648ce3d020106062b8104000ae003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 710, + "comment" : "oid with invalid node", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301106072a8648ce3d020106062b808104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 711, + "comment" : "oid with 263 nodes", + "flags" : [ + "InvalidAsn" + ], + "public" : "3082015b30820113068201082a8648ce3d0201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 712, + "comment" : "length of oid uses 6 instead of 5", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106062b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 713, + "comment" : "length of oid uses 4 instead of 5", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106042b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 714, + "comment" : "oid of size 4102 to check for overflows", + "flags" : [ + "InvalidAsn" + ], + "public" : "3082105b3082101306072a8648ce3d0201068210062b8104000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 715, + "comment" : "oid with 262 nodes", + "flags" : [ + "InvalidAsn" + ], + "public" : "3082015b3082011306072a8648ce3d0201068201062b8104000a010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010103420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 716, + "comment" : "length of bit string uses long form encoding", + "flags" : [ + "InvalidAsn" + ], + "public" : "3057301006072a8648ce3d020106052b8104000a0381420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 717, + "comment" : "length of bit string contains a leading 0", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a038200420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 718, + "comment" : "length of bit string uses 67 instead of 66", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03430004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 719, + "comment" : "length of bit string uses 65 instead of 66", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03410004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 720, + "comment" : "uint32 overflow in length of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b301006072a8648ce3d020106052b8104000a038501000000420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 721, + "comment" : "uint64 overflow in length of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305f301006072a8648ce3d020106052b8104000a03890100000000000000420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 722, + "comment" : "length of bit string = 2**31 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301006072a8648ce3d020106052b8104000a03847fffffff0004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 723, + "comment" : "length of bit string = 2**32 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301006072a8648ce3d020106052b8104000a0384ffffffff0004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 724, + "comment" : "length of bit string = 2**40 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b301006072a8648ce3d020106052b8104000a0385ffffffffff0004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 725, + "comment" : "length of bit string = 2**64 - 1", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e301006072a8648ce3d020106052b8104000a0388ffffffffffffffff0004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 726, + "comment" : "incorrect length of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03ff0004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 727, + "comment" : "replaced bit string by an indefinite length tag without termination", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03800004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 728, + "comment" : "lonely bit string tag", + "flags" : [ + "InvalidAsn" + ], + "public" : "3013301006072a8648ce3d020106052b8104000a03", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 729, + "comment" : "appending 0's to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a03440004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 730, + "comment" : "prepending 0's to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a034400000004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 731, + "comment" : "appending null value to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3058301006072a8648ce3d020106052b8104000a03440004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670500", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 732, + "comment" : "prepending garbage to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305b301006072a8648ce3d020106052b8104000a234749817703420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 733, + "comment" : "prepending garbage to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301006072a8648ce3d020106052b8104000a2346250003420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 734, + "comment" : "appending garbage to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305e301006072a8648ce3d020106052b8104000a234403420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670004deadbeef", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 735, + "comment" : "truncated length of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3014301006072a8648ce3d020106052b8104000a0381", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 736, + "comment" : "including undefined tags to bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305c301006072a8648ce3d020106052b8104000a2348aa02aabb03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 737, + "comment" : "Replacing bit string with NULL", + "flags" : [ + "InvalidAsn" + ], + "public" : "3014301006072a8648ce3d020106052b8104000a0500", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 738, + "comment" : "changing tag value of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a01420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 739, + "comment" : "changing tag value of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a02420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 740, + "comment" : "changing tag value of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a04420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 741, + "comment" : "changing tag value of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a05420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 742, + "comment" : "changing tag value of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000aff420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 743, + "comment" : "dropping value of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3014301006072a8648ce3d020106052b8104000a0300", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 744, + "comment" : "modifying first byte of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420204e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 745, + "comment" : "modifying last byte of bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32e7", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 746, + "comment" : "truncated bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055301006072a8648ce3d020106052b8104000a03410004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 747, + "comment" : "truncated bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3055301006072a8648ce3d020106052b8104000a034104e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 748, + "comment" : "bit string of size 4163 to check for overflows", + "flags" : [ + "InvalidAsn" + ], + "public" : "30821059301006072a8648ce3d020106052b8104000a038210430004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da32670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 749, + "comment" : "declaring bits as unused in bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03420104e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 750, + "comment" : "unused bits in bit string", + "flags" : [ + "InvalidAsn" + ], + "public" : "305a301006072a8648ce3d020106052b8104000a03462004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da326701020304", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 751, + "comment" : "unused bits in empty bit-string", + "flags" : [ + "InvalidAsn" + ], + "public" : "3015301006072a8648ce3d020106052b8104000a030103", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + }, + { + "tcId" : 752, + "comment" : "128 unused bits", + "flags" : [ + "InvalidAsn" + ], + "public" : "3056301006072a8648ce3d020106052b8104000a03428004e03faca42a8b811759211d49b69dd0e0a686b28ff7b5817789a2f80050791335bf34cf495029075de25603fd56dd3cef36ee8503b9f3b0c1340c8e4012da3267", + "private" : "0495800a83e6c1d61886d332e2613aa3f70df22865b0387ca6ca195cfcd2b2b1", + "shared" : "ebdca74dbf2c8ef63af8d86e0e0ee4511399bc08a395c4ea050bab43a29d2646", + "result" : "acceptable" + } + ] + } + ] +} diff --git a/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h b/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h index 736737fd61f..556c235689d 100644 --- a/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h +++ b/src/wycheproof/ecdsa_secp256k1_sha256_bitcoin_test.h @@ -1,4 +1,4 @@ -/* Note: this file was autogenerated using tests_wycheproof_generate.py. Do not edit. */ +/* Note: this file was autogenerated using tests_wycheproof_generate_ecdsa.py. Do not edit. */ #define SECP256K1_ECDSA_WYCHEPROOF_NUMBER_TESTVECTORS (463) typedef struct { diff --git a/tools/symbol-check.py b/tools/symbol-check.py new file mode 100755 index 00000000000..e7f478082f2 --- /dev/null +++ b/tools/symbol-check.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python3 +"""Check that a libsecp256k1 shared library exports only expected symbols. + +Usage examples: + - When building with Autotools: + ./tools/symbol-check.py .libs/libsecp256k1.so + ./tools/symbol-check.py .libs/libsecp256k1-.dll + ./tools/symbol-check.py .libs/libsecp256k1.dylib + + - When building with CMake: + ./tools/symbol-check.py build/lib/libsecp256k1.so + ./tools/symbol-check.py build/bin/libsecp256k1-.dll + ./tools/symbol-check.py build/lib/libsecp256k1.dylib""" + +import re +import sys +import subprocess + +import lief + + +class UnexpectedExport(RuntimeError): + pass + + +def get_exported_exports(library) -> list[str]: + """Adapter function to get exported symbols based on the library format.""" + if library.format == lief.Binary.FORMATS.ELF: + return [symbol.name for symbol in library.exported_symbols] + elif library.format == lief.Binary.FORMATS.PE: + return [entry.name for entry in library.get_export().entries] + elif library.format == lief.Binary.FORMATS.MACHO: + return [symbol.name[1:] for symbol in library.exported_symbols] + raise NotImplementedError(f"Unsupported format: {library.format}") + + +def grep_expected_symbols() -> list[str]: + """Guess the list of expected exported symbols from the source code.""" + grep_output = subprocess.check_output( + ["git", "grep", r"^\s*SECP256K1_API", "--", "include"], + universal_newlines=True, + encoding="utf-8" + ) + lines = grep_output.split("\n") + pattern = re.compile(r'\bsecp256k1_\w+') + exported: list[str] = [pattern.findall(line)[-1] for line in lines if line.strip()] + return exported + + +def check_symbols(library, expected_exports) -> None: + """Check that the library exports only the expected symbols.""" + actual_exports = get_exported_exports(library) + unexpected_exports = set(actual_exports) - set(expected_exports) + if unexpected_exports != set(): + raise UnexpectedExport(f"Unexpected exported symbols: {unexpected_exports}") + +def main(): + if len(sys.argv) != 2: + print(__doc__) + return 1 + library = lief.parse(sys.argv[1]) + expected_exports = grep_expected_symbols() + try: + check_symbols(library, expected_exports) + except UnexpectedExport as e: + print(f"{sys.argv[0]}: In {sys.argv[1]}: {e}") + return 1 + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tools/tests_wycheproof_generate_ecdh.py b/tools/tests_wycheproof_generate_ecdh.py new file mode 100755 index 00000000000..97551d01a12 --- /dev/null +++ b/tools/tests_wycheproof_generate_ecdh.py @@ -0,0 +1,166 @@ +#!/usr/bin/env python3 +# Copyright (c) 2024 Random "Randy" Lattice and Sean Andersen +# Distributed under the MIT software license, see the accompanying +# file COPYING or https://www.opensource.org/licenses/mit-license.php. +''' +Generate a C file with ECDH testvectors from the Wycheproof project. +''' + +import json +import sys + +from binascii import hexlify, unhexlify +from wycheproof_utils import to_c_array + +def should_skip_flags(test_vector_flags): + # skip these vectors because they are for ASN.1 encoding issues and other curves. + # for more details, see https://github.com/bitcoin-core/secp256k1/pull/1492#discussion_r1572491546 + flags_to_skip = {"InvalidAsn", "WrongCurve"} + return any(flag in test_vector_flags for flag in flags_to_skip) + +def should_skip_tcid(test_vector_tcid): + # We skip some test case IDs that have a public key whose custom ASN.1 representation explicitly + # encodes some curve parameters that are invalid. libsecp256k1 never parses this part so we do + # not care testing those. See https://github.com/bitcoin-core/secp256k1/pull/1492#discussion_r1572491546 + tcids_to_skip = [496, 497, 502, 503, 504, 505, 507] + return test_vector_tcid in tcids_to_skip + +# Rudimentary ASN.1 DER public key parser. +# This should not be used for anything other than parsing Wycheproof test vectors. +def parse_der_pk(s): + tag = s[0] + L = int(s[1]) + offset = 0 + if L & 0x80: + if L == 0x81: + L = int(s[2]) + offset = 1 + elif L == 0x82: + L = 256 * int(s[2]) + int(s[3]) + offset = 2 + else: + raise ValueError("invalid L") + value = s[(offset + 2):(L + 2 + offset)] + rest = s[(L + 2 + offset):] + + if len(rest) > 0 or tag == 0x06: # OBJECT IDENTIFIER + return parse_der_pk(rest) + if tag == 0x03: # BIT STRING + return value + if tag == 0x30: # SEQUENCE + return parse_der_pk(value) + raise ValueError("unknown tag") + +def parse_public_key(pk): + der_pub_key = parse_der_pk(unhexlify(pk)) # Convert back to str and strip off the `0x` + return hexlify(der_pub_key).decode()[2:] + +def normalize_private_key(sk): + # Ensure the private key is at most 64 characters long, retaining the last 64 if longer. + # In the wycheproof test vectors, some private keys have leading zeroes + normalized = sk[-64:].zfill(64) + if len(normalized) != 64: + raise ValueError("private key must be exactly 64 characters long.") + return normalized + +def normalize_expected_result(er): + result_mapping = {"invalid": 0, "valid": 1, "acceptable": 1} + return result_mapping[er] + +filename_input = sys.argv[1] + +with open(filename_input) as f: + doc = json.load(f) + +num_vectors = 0 +offset_sk_running, offset_pk_running, offset_shared = 0, 0, 0 +test_vectors_out = "" +private_keys = "" +shared_secrets = "" +public_keys = "" +cache_sks = {} +cache_public_keys = {} + +for group in doc['testGroups']: + assert group["type"] == "EcdhTest" + assert group["curve"] == "secp256k1" + for test_vector in group['tests']: + if should_skip_flags(test_vector['flags']) or should_skip_tcid(test_vector['tcId']): + continue + + public_key = parse_public_key(test_vector['public']) + private_key = normalize_private_key(test_vector['private']) + expected_result = normalize_expected_result(test_vector['result']) + + # // 2 to convert hex to byte length + shared_size = len(test_vector['shared']) // 2 + sk_size = len(private_key) // 2 + pk_size = len(public_key) // 2 + + new_sk = False + sk = to_c_array(private_key) + sk_offset = offset_sk_running + + # check for repeated sk + if sk not in cache_sks: + if num_vectors != 0 and sk_size != 0: + private_keys += ",\n " + cache_sks[sk] = offset_sk_running + private_keys += sk + new_sk = True + else: + sk_offset = cache_sks[sk] + + new_pk = False + pk = to_c_array(public_key) if public_key != '0x' else '' + + pk_offset = offset_pk_running + # check for repeated pk + if pk not in cache_public_keys: + if num_vectors != 0 and len(pk) != 0: + public_keys += ",\n " + cache_public_keys[pk] = offset_pk_running + public_keys += pk + new_pk = True + else: + pk_offset = cache_public_keys[pk] + + + shared_secrets += ",\n " if num_vectors and shared_size else "" + shared_secrets += to_c_array(test_vector['shared']) + wycheproof_tcid = test_vector['tcId'] + + test_vectors_out += " /" + "* tcId: " + str(test_vector['tcId']) + ". " + test_vector['comment'] + " *" + "/\n" + test_vectors_out += f" {{{pk_offset}, {pk_size}, {sk_offset}, {sk_size}, {offset_shared}, {shared_size}, {expected_result}, {wycheproof_tcid} }},\n" + if new_sk: + offset_sk_running += sk_size + if new_pk: + offset_pk_running += pk_size + offset_shared += shared_size + num_vectors += 1 + +struct_definition = """ +typedef struct { + size_t pk_offset; + size_t pk_len; + size_t sk_offset; + size_t sk_len; + size_t shared_offset; + size_t shared_len; + int expected_result; + int wycheproof_tcid; +} wycheproof_ecdh_testvector; +""" + +print("/* Note: this file was autogenerated using tests_wycheproof_ecdh.py. Do not edit. */") +print(f"#define SECP256K1_ECDH_WYCHEPROOF_NUMBER_TESTVECTORS ({num_vectors})") + +print(struct_definition) + +print("static const unsigned char wycheproof_ecdh_private_keys[] = { " + private_keys + "};\n") +print("static const unsigned char wycheproof_ecdh_public_keys[] = { " + public_keys + "};\n") +print("static const unsigned char wycheproof_ecdh_shared_secrets[] = { " + shared_secrets + "};\n") + +print("static const wycheproof_ecdh_testvector testvectors[SECP256K1_ECDH_WYCHEPROOF_NUMBER_TESTVECTORS] = {") +print(test_vectors_out) +print("};") diff --git a/tools/tests_wycheproof_generate.py b/tools/tests_wycheproof_generate_ecdsa.py similarity index 95% rename from tools/tests_wycheproof_generate.py rename to tools/tests_wycheproof_generate_ecdsa.py index b26dfa89d66..91ff9e318a1 100755 --- a/tools/tests_wycheproof_generate.py +++ b/tools/tests_wycheproof_generate_ecdsa.py @@ -9,6 +9,8 @@ Generate a C file with ECDSA testvectors from the Wycheproof project. import json import sys +from wycheproof_utils import to_c_array + filename_input = sys.argv[1] with open(filename_input) as f: @@ -16,12 +18,6 @@ with open(filename_input) as f: num_groups = len(doc['testGroups']) -def to_c_array(x): - if x == "": - return "" - s = ',0x'.join(a+b for a,b in zip(x[::2], x[1::2])) - return "0x" + s - num_vectors = 0 offset_msg_running, offset_pk_running, offset_sig = 0, 0, 0 @@ -101,7 +97,7 @@ typedef struct { """ -print("/* Note: this file was autogenerated using tests_wycheproof_generate.py. Do not edit. */") +print("/* Note: this file was autogenerated using tests_wycheproof_generate_ecdsa.py. Do not edit. */") print(f"#define SECP256K1_ECDSA_WYCHEPROOF_NUMBER_TESTVECTORS ({num_vectors})") print(struct_definition) diff --git a/tools/wycheproof_utils.py b/tools/wycheproof_utils.py new file mode 100644 index 00000000000..e8d2edd08f9 --- /dev/null +++ b/tools/wycheproof_utils.py @@ -0,0 +1,12 @@ +# Copyright (c) 2024 Random "Randy" Lattice and Sean Andersen +# Distributed under the MIT software license, see the accompanying +# file COPYING or https://www.opensource.org/licenses/mit-license.php. +''' +Utility functions for generating C files for testvectors from the Wycheproof project. +''' + +def to_c_array(x): + if x == "": + return "" + s = ',0x'.join(a + b for a, b in zip(x[::2], x[1::2])) + return "0x" + s